Dokan – Best WooCommerce Multivendor Marketplace Solution – Build Your Own Amazon, eBay, Etsy - Version 3.6.5

Version Description

Download this release

Release Info

Developer tareq1988
Plugin Icon wp plugin Dokan – Best WooCommerce Multivendor Marketplace Solution – Build Your Own Amazon, eBay, Etsy
Version 3.6.5
Comparing to
See all releases

Code changes from version 3.6.4 to 3.6.5

assets/css/setup-no-wc.css CHANGED
@@ -63,8 +63,7 @@ body {
63
  .wc-setup .wc-setup-actions .button-primary {
64
  background-color: #bb77ae;
65
  border-color: #a36597;
66
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 0 #a36597;
67
- text-shadow: 0 -1px 1px #a36597, 1px 0 1px #a36597, 0 1px 1px #a36597, -1px 0 1px #a36597;
68
  margin: 0;
69
  opacity: 1;
70
  }
@@ -292,15 +291,13 @@ body {
292
  color: #fff;
293
  background: #f2624d;
294
  border-color: #f2624d;
295
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 0 #f2624d;
296
- text-shadow: 0 -1px 1px #f2624d, 1px 0 1px #f2624d, 0 1px 1px #f2624d, -1px 0 1px #f2624d;
297
  }
298
  .wc-setup .wc-setup-actions .button-primary:hover,
299
  .wc-setup .wc-setup-actions .button-primary:active,
300
  .wc-setup .wc-setup-actions .button-primary:focus {
301
  background-color: #ef381d;
302
  border-color: #ef381d;
303
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 0 #ef381d;
304
  }
305
  .wc-setup .wc-setup-content a {
306
  color: #f2624d;
63
  .wc-setup .wc-setup-actions .button-primary {
64
  background-color: #bb77ae;
65
  border-color: #a36597;
66
+ text-shadow: none;
 
67
  margin: 0;
68
  opacity: 1;
69
  }
291
  color: #fff;
292
  background: #f2624d;
293
  border-color: #f2624d;
294
+ text-shadow: none;
 
295
  }
296
  .wc-setup .wc-setup-actions .button-primary:hover,
297
  .wc-setup .wc-setup-actions .button-primary:active,
298
  .wc-setup .wc-setup-actions .button-primary:focus {
299
  background-color: #ef381d;
300
  border-color: #ef381d;
 
301
  }
302
  .wc-setup .wc-setup-content a {
303
  color: #f2624d;
assets/css/setup.css CHANGED
@@ -162,15 +162,13 @@
162
  color: #fff;
163
  background: #f2624d;
164
  border-color: #f2624d;
165
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 0 #f2624d;
166
- text-shadow: 0 -1px 1px #f2624d, 1px 0 1px #f2624d, 0 1px 1px #f2624d, -1px 0 1px #f2624d;
167
  }
168
  .wc-setup .wc-setup-actions .button-primary:hover,
169
  .wc-setup .wc-setup-actions .button-primary:active,
170
  .wc-setup .wc-setup-actions .button-primary:focus {
171
  background-color: #ef381d;
172
  border-color: #ef381d;
173
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 0 #ef381d;
174
  }
175
  .wc-setup .wc-setup-content a {
176
  color: #f2624d;
162
  color: #fff;
163
  background: #f2624d;
164
  border-color: #f2624d;
165
+ text-shadow: none;
 
166
  }
167
  .wc-setup .wc-setup-actions .button-primary:hover,
168
  .wc-setup .wc-setup-actions .button-primary:active,
169
  .wc-setup .wc-setup-actions .button-primary:focus {
170
  background-color: #ef381d;
171
  border-color: #ef381d;
 
172
  }
173
  .wc-setup .wc-setup-content a {
174
  color: #f2624d;
assets/css/style.css CHANGED
@@ -602,8 +602,10 @@ a.dokan-btn:focus,
602
  input[type='submit'].dokan-btn.focus,
603
  a.dokan-btn.focus,
604
  .dokan-btn.focus {
605
- color: #333;
 
606
  text-decoration: none;
 
607
  }
608
  input[type='submit'].dokan-btn:active,
609
  a.dokan-btn:active,
@@ -1435,10 +1437,12 @@ table.my_account_orders tbody tr td.order-actions a.button {
1435
  margin-left: 10px;
1436
  }
1437
  .dokan-dashboard-content ul.dokan_tabs li a {
 
1438
  display: block;
1439
  padding: 6px 8px !important;
1440
  }
1441
  .dokan-dashboard-content ul.dokan_tabs li a:hover {
 
1442
  background-color: #eee;
1443
  }
1444
  .dokan-dashboard-content ul.dokan_tabs li.dokan-hide {
@@ -1447,6 +1451,9 @@ table.my_account_orders tbody tr td.order-actions a.button {
1447
  .dokan-dashboard-content ul.dokan_tabs li.active {
1448
  border-bottom: 1px solid #fff !important;
1449
  }
 
 
 
1450
  .wc_error_tip {
1451
  max-width: 20em;
1452
  line-height: 1.8em;
@@ -1698,15 +1705,22 @@ ul.subsubsub {
1698
  padding: 0;
1699
  }
1700
  ul.subsubsub li {
1701
- line-height: 13px;
1702
  padding: 0 5px;
 
1703
  border-right: 1px solid #EDEDED;
1704
  }
 
 
 
 
 
 
 
1705
  ul.subsubsub li:last-child {
1706
  border-right: none;
1707
  }
1708
  ul.subsubsub li.active a {
1709
- color: #999;
1710
  }
1711
  .pagination-wrap ul.pagination {
1712
  display: inline-block;
@@ -1771,6 +1785,12 @@ table.dokan-table .toggle-row::before {
1771
  font-size: inherit;
1772
  text-rendering: auto;
1773
  }
 
 
 
 
 
 
1774
  table.dokan-table .is-expanded .toggle-row::before {
1775
  content: '\f0d8';
1776
  }
@@ -1988,7 +2008,7 @@ span.error {
1988
  .dokan-announcement-wrapper .dokan-announcement-wrapper-item .dokan-annnouncement-date .announcement-day {
1989
  font-size: 20px;
1990
  font-weight: bold;
1991
- margin-top: 16px;
1992
  }
1993
  .dokan-announcement-wrapper .dokan-announcement-wrapper-item .dokan-annnouncement-date .announcement-year {
1994
  font-weight: bold;
@@ -2226,6 +2246,9 @@ div.media-sidebar a.edit-attachment {
2226
  .dokan-dashboard .dokan-dashboard-wrap * {
2227
  box-sizing: border-box;
2228
  }
 
 
 
2229
  .dokan-dashboard header.dokan-dashboard-header {
2230
  margin: 0 0 15px 0;
2231
  }
@@ -2278,6 +2301,16 @@ div.media-sidebar a.edit-attachment {
2278
  color: #ccc;
2279
  padding-right: 5px;
2280
  }
 
 
 
 
 
 
 
 
 
 
2281
  .dokan-dashboard .dokan-dashboard-content article.dashboard-content-area .dashboard-widget.big-counter {
2282
  text-align: center;
2283
  }
@@ -2324,6 +2357,9 @@ div.media-sidebar a.edit-attachment {
2324
  .dokan-dashboard .dokan-dashboard-content article.dashboard-content-area .dashboard-widget .chart-placeholder.main {
2325
  height: 347px;
2326
  }
 
 
 
2327
  .dokan-dashboard .dokan-dashboard-content article.dashboard-content-area .dashboard-widget .list-count .count {
2328
  float: right;
2329
  }
@@ -2663,7 +2699,25 @@ div.media-sidebar a.edit-attachment {
2663
  width: 100%!important;
2664
  }
2665
  }
2666
- .dokan-orders-content .dokan-orders-area td.thumb img {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2667
  padding: 2px;
2668
  margin: 0;
2669
  border: 1px solid #dfdfdf;
@@ -2671,6 +2725,13 @@ div.media-sidebar a.edit-attachment {
2671
  width: 46px;
2672
  height: auto;
2673
  }
 
 
 
 
 
 
 
2674
  .dokan-orders-content .dokan-orders-area table.table.order-items {
2675
  margin-bottom: 0;
2676
  }
@@ -2718,11 +2779,15 @@ div.media-sidebar a.edit-attachment {
2718
  padding: 0 5px;
2719
  border-right: 1px solid #EDEDED;
2720
  }
 
 
 
 
2721
  .dokan-orders-content .dokan-orders-area ul.order-statuses-filter li:last-child {
2722
  border-right: none;
2723
  }
2724
  .dokan-orders-content .dokan-orders-area ul.order-statuses-filter li.active a {
2725
- color: #999;
2726
  }
2727
  .dokan-orders-content .dokan-orders-area ul.order_notes {
2728
  font-size: 13px;
@@ -2787,12 +2852,6 @@ div.media-sidebar a.edit-attachment {
2787
  font-size: 12px;
2788
  color: #ccc;
2789
  }
2790
- .dokan-product-listing .dokan-product-listing-area .row-actions .delete a {
2791
- color: #a05;
2792
- }
2793
- .dokan-product-listing .dokan-product-listing-area .row-actions .delete a:hover {
2794
- color: red;
2795
- }
2796
  .dokan-product-listing .dokan-product-listing-area tr:hover .row-actions {
2797
  visibility: visible;
2798
  }
@@ -2875,6 +2934,18 @@ div.media-sidebar a.edit-attachment {
2875
  .dokan-product-listing .dokan-product-listing-area table.product-listing-table td {
2876
  vertical-align: top;
2877
  }
 
 
 
 
 
 
 
 
 
 
 
 
2878
  .dokan-product-listing .dokan-product-listing-area table.product-listing-table p {
2879
  margin-bottom: 0px;
2880
  padding-bottom: 0px;
@@ -5313,6 +5384,9 @@ div.media-sidebar a.edit-attachment {
5313
  vertical-align: middle;
5314
  margin-right: 10px;
5315
  }
 
 
 
5316
  .dokan-withdraw-content .dokan-withdraw-area .dokan-panel-body .dokan-panel-inner-container .dokan-w5 {
5317
  position: absolute;
5318
  right: 10px;
602
  input[type='submit'].dokan-btn.focus,
603
  a.dokan-btn.focus,
604
  .dokan-btn.focus {
605
+ color: #fff;
606
+ border-color: #f05025;
607
  text-decoration: none;
608
+ background-color: #f05025;
609
  }
610
  input[type='submit'].dokan-btn:active,
611
  a.dokan-btn:active,
1437
  margin-left: 10px;
1438
  }
1439
  .dokan-dashboard-content ul.dokan_tabs li a {
1440
+ color: #6d6d6d;
1441
  display: block;
1442
  padding: 6px 8px !important;
1443
  }
1444
  .dokan-dashboard-content ul.dokan_tabs li a:hover {
1445
+ color: #000;
1446
  background-color: #eee;
1447
  }
1448
  .dokan-dashboard-content ul.dokan_tabs li.dokan-hide {
1451
  .dokan-dashboard-content ul.dokan_tabs li.active {
1452
  border-bottom: 1px solid #fff !important;
1453
  }
1454
+ .dokan-dashboard-content ul.dokan_tabs li.active a {
1455
+ color: #000;
1456
+ }
1457
  .wc_error_tip {
1458
  max-width: 20em;
1459
  line-height: 1.8em;
1705
  padding: 0;
1706
  }
1707
  ul.subsubsub li {
 
1708
  padding: 0 5px;
1709
+ line-height: 13px;
1710
  border-right: 1px solid #EDEDED;
1711
  }
1712
+ ul.subsubsub li a {
1713
+ color: #6d6d6d;
1714
+ transition: 0.2s linear;
1715
+ }
1716
+ ul.subsubsub li a:hover {
1717
+ color: #000;
1718
+ }
1719
  ul.subsubsub li:last-child {
1720
  border-right: none;
1721
  }
1722
  ul.subsubsub li.active a {
1723
+ color: #000;
1724
  }
1725
  .pagination-wrap ul.pagination {
1726
  display: inline-block;
1785
  font-size: inherit;
1786
  text-rendering: auto;
1787
  }
1788
+ table.dokan-table td a {
1789
+ color: #6d6d6d;
1790
+ }
1791
+ table.dokan-table td a:hover {
1792
+ color: #000;
1793
+ }
1794
  table.dokan-table .is-expanded .toggle-row::before {
1795
  content: '\f0d8';
1796
  }
2008
  .dokan-announcement-wrapper .dokan-announcement-wrapper-item .dokan-annnouncement-date .announcement-day {
2009
  font-size: 20px;
2010
  font-weight: bold;
2011
+ margin-top: 4px;
2012
  }
2013
  .dokan-announcement-wrapper .dokan-announcement-wrapper-item .dokan-annnouncement-date .announcement-year {
2014
  font-weight: bold;
2246
  .dokan-dashboard .dokan-dashboard-wrap * {
2247
  box-sizing: border-box;
2248
  }
2249
+ .dokan-dashboard .dokan-dashboard-wrap a:focus {
2250
+ outline-color: #ff5a40;
2251
+ }
2252
  .dokan-dashboard header.dokan-dashboard-header {
2253
  margin: 0 0 15px 0;
2254
  }
2301
  color: #ccc;
2302
  padding-right: 5px;
2303
  }
2304
+ .dokan-dashboard .dokan-dashboard-content article.dashboard-content-area .dashboard-widget .widget-title .pull-right {
2305
+ float: right;
2306
+ }
2307
+ .dokan-dashboard .dokan-dashboard-content article.dashboard-content-area .dashboard-widget .widget-title .pull-right a {
2308
+ color: #6d6d6d;
2309
+ transition: 0.2s linear;
2310
+ }
2311
+ .dokan-dashboard .dokan-dashboard-content article.dashboard-content-area .dashboard-widget .widget-title .pull-right a:hover {
2312
+ color: #000;
2313
+ }
2314
  .dokan-dashboard .dokan-dashboard-content article.dashboard-content-area .dashboard-widget.big-counter {
2315
  text-align: center;
2316
  }
2357
  .dokan-dashboard .dokan-dashboard-content article.dashboard-content-area .dashboard-widget .chart-placeholder.main {
2358
  height: 347px;
2359
  }
2360
+ .dokan-dashboard .dokan-dashboard-content article.dashboard-content-area .dashboard-widget .list-count a {
2361
+ color: #6d6d6d;
2362
+ }
2363
  .dokan-dashboard .dokan-dashboard-content article.dashboard-content-area .dashboard-widget .list-count .count {
2364
  float: right;
2365
  }
2699
  width: 100%!important;
2700
  }
2701
  }
2702
+ .dokan-orders-content .dokan-orders-area td.dokan-order-action {
2703
+ gap: 5px;
2704
+ width: 100%;
2705
+ display: grid;
2706
+ grid-gap: 5px;
2707
+ flex-direction: column;
2708
+ grid-template-columns: repeat(3, 1fr);
2709
+ }
2710
+ .dokan-orders-content .dokan-orders-area td.dokan-order-action .wpo_wcpdf {
2711
+ border: 1px solid transparent;
2712
+ padding: 5px 10px;
2713
+ border-color: #ccc;
2714
+ border-radius: 3px;
2715
+ background-color: #fff;
2716
+ }
2717
+ .dokan-orders-content .dokan-orders-area td.dokan-order-action .wpo_wcpdf img {
2718
+ width: 22px !important;
2719
+ }
2720
+ .dokan-orders-content .dokan-orders-area td img {
2721
  padding: 2px;
2722
  margin: 0;
2723
  border: 1px solid #dfdfdf;
2725
  width: 46px;
2726
  height: auto;
2727
  }
2728
+ .dokan-orders-content .dokan-orders-area td a {
2729
+ color: #6d6d6d;
2730
+ transition: 0.2s linear;
2731
+ }
2732
+ .dokan-orders-content .dokan-orders-area td a:hover {
2733
+ color: #000;
2734
+ }
2735
  .dokan-orders-content .dokan-orders-area table.table.order-items {
2736
  margin-bottom: 0;
2737
  }
2779
  padding: 0 5px;
2780
  border-right: 1px solid #EDEDED;
2781
  }
2782
+ .dokan-orders-content .dokan-orders-area ul.order-statuses-filter li a {
2783
+ color: #6d6d6d;
2784
+ transition: 0.2s linear;
2785
+ }
2786
  .dokan-orders-content .dokan-orders-area ul.order-statuses-filter li:last-child {
2787
  border-right: none;
2788
  }
2789
  .dokan-orders-content .dokan-orders-area ul.order-statuses-filter li.active a {
2790
+ color: #000;
2791
  }
2792
  .dokan-orders-content .dokan-orders-area ul.order_notes {
2793
  font-size: 13px;
2852
  font-size: 12px;
2853
  color: #ccc;
2854
  }
 
 
 
 
 
 
2855
  .dokan-product-listing .dokan-product-listing-area tr:hover .row-actions {
2856
  visibility: visible;
2857
  }
2934
  .dokan-product-listing .dokan-product-listing-area table.product-listing-table td {
2935
  vertical-align: top;
2936
  }
2937
+ .dokan-product-listing .dokan-product-listing-area table.product-listing-table td.column-primary a,
2938
+ .dokan-product-listing .dokan-product-listing-area table.product-listing-table td .row-actions a {
2939
+ color: #6d6d6d;
2940
+ }
2941
+ .dokan-product-listing .dokan-product-listing-area table.product-listing-table td.column-primary a:hover,
2942
+ .dokan-product-listing .dokan-product-listing-area table.product-listing-table td .row-actions a:hover {
2943
+ color: #000;
2944
+ }
2945
+ .dokan-product-listing .dokan-product-listing-area table.product-listing-table td.column-primary .delete a:hover,
2946
+ .dokan-product-listing .dokan-product-listing-area table.product-listing-table td .row-actions .delete a:hover {
2947
+ color: red;
2948
+ }
2949
  .dokan-product-listing .dokan-product-listing-area table.product-listing-table p {
2950
  margin-bottom: 0px;
2951
  padding-bottom: 0px;
5384
  vertical-align: middle;
5385
  margin-right: 10px;
5386
  }
5387
+ .dokan-withdraw-content .dokan-withdraw-area .dokan-panel-body .dokan-panel-inner-container .dokan-w8 strong a {
5388
+ color: #f05025;
5389
+ }
5390
  .dokan-withdraw-content .dokan-withdraw-area .dokan-panel-body .dokan-panel-inner-container .dokan-w5 {
5391
  position: absolute;
5392
  right: 10px;
assets/js/product-category-ui.js CHANGED
@@ -110,7 +110,8 @@ Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
110
  $(category_box).attr('data-activate', 'no');
111
  },
112
  setCatUiBasedOnOneCat: function setCatUiBasedOnOneCat(catId, category) {
113
- ProductCategory.disableDoneBtn(category.children.length > 0);
 
114
 
115
  var allUl = __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_toConsumableArray___default()(category.parents);
116
 
110
  $(category_box).attr('data-activate', 'no');
111
  },
112
  setCatUiBasedOnOneCat: function setCatUiBasedOnOneCat(catId, category) {
113
+ var disable = undefined !== category.children.length && category.children.length > 0;
114
+ ProductCategory.disableDoneBtn(disable);
115
 
116
  var allUl = __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_toConsumableArray___default()(category.parents);
117
 
assets/js/product-category-ui.min.js CHANGED
@@ -1 +1 @@
1
- dokanWebpack([6],{289:function(a,t,e){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=e(21),o=e.n(n),c=e(290),i=e.n(c),r=e(22),d=e.n(r);!function(a){var t=a("#dokan-product-category-modal"),e=a("#dokan-cat-search-res"),n=a("#dokan-cat-search-res-ul"),c=a(".dokan-single-categories-right"),r=a(".dokan-single-categories-left"),s=[],l=[],u="",g=0,h="",p={init:function(){a("body").on("click",".dokan-product-category-li",this.categoryLiClick),a("body").on("click",".dokan-cat-search-res-li",this.clickSearchResLi),a("body").on("keyup","#dokan-single-cat-search-input",p.debounce(this.typeToSearch,500)),a("#dokan-single-categories").scroll(this.categoryScroll),a("body").on("click",".dokan-single-categories-right-box",p.indicatorScrollTo),a("body").on("click",".dokan-single-categories-left-box",function(){p.indicatorScrollTo(!1)}),a("body").on("click",".dokan-single-cat-select-btn",p.chooseCatButton),a("body").on("click",".dokan-category-open-modal",p.initModal),a("body").on("click","#dokan-category-close-modal",p.hideCategoryModal),a("body").on("click",".dokan-single-cat-add-btn",p.addANewCatBox),a("body").on("click",".dokan-select-product-category-remove-container",p.removeCatBox)},initModal:function(){u=a(this).data("dokansclevel"),g=a(this).data("selectfor");var t=a(this).siblings(".dokan-cat-inputs-holder").find(".dokan_chosen_product_cat");a(this).parent().attr("data-activate","yes"),p.openModal(t)},removeCatBox:function(){a(this).closest(".dokan-select-product-category-container")[0].remove()},categoryLiClick:function(){var t=a(this).data(),e=t.catlevel,n=t.termId,o=t.name,c=t.haschild;h=n,p.removeAfterClickedUls(e,n),p.loadChildCategories(e,n,o,c)},clickSearchResLi:function(){var t=a(this).data(),e=t.termid,n=t.index;t.name;e&&(h=e,p.setCatUiBasedOnOneCat(e,l[n]))},typeToSearch:function(){var t=a(this).val();a("#dokan-cat-search-text-limit").html(t.length),t.length>0?(p.hideSearchResults(!1),p.doSearchCates(t)):p.hideSearchResults()},categoryScroll:function(){var t=a("#dokan-single-categories").get(0).scrollWidth-a("#dokan-single-categories").innerWidth(),e=a(this).scrollLeft(),n=t-e;p.showIndicators(r,e),p.showIndicators(c,n)},chooseCatButton:function(){var t=".dokan-select-product-category-container.dokan_select_cat_for_".concat(g,"_").concat(u,"[data-activate='yes']");a(t).parent().children(".dokan-select-product-category-container").children(".dokan-cat-inputs-holder").find(".dokan_chosen_product_cat_".concat(h)).length?dokan_sweetalert(dokan_product_category_data.i18n.duplicate_category,{icon:"warning"}):(p.setCatName(p.getSelectedLabel(),a(t)),p.setCatId(h,a(t)),p.hideCategoryModal(),a(t).attr("data-activate","no"))},setCatUiBasedOnOneCat:function(a,t){p.disableDoneBtn(t.children.length>0);var e=i()(t.parents),n=i()(t.parents);e.unshift(0),n.push(Number(a));var o=e.map(function(a,t){return p.getCategoriesWithParentId(a,t+1,n[t])});s=o,p.updateCategoryUi(),p.hideSearchResults(),p.scrollTo(o.length)},doSearchCates:function(a){return o()(d.a.mark(function t(){var e,n,o,c;return d.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:for(n in e=[],dokan_product_category_data.categories)o=dokan_product_category_data.categories[n],c=o.name,a=a.toLowerCase(),c.toLowerCase().indexOf(a)>=0&&e.push(o);l=e,p.updateSearchResultUi();case 4:case"end":return t.stop()}},t)}))()},hideSearchResults:function(){!(arguments.length>0&&void 0!==arguments[0])||arguments[0]?e.addClass("dokan-hide"):e.removeClass("dokan-hide")},showIndicators:function(a,t){t>5?a.removeClass("dokan-hide"):a.addClass("dokan-hide")},showCategoryModal:function(){h="",p.disableDoneBtn(),t.css("display","flex"),p.hideSearchResults(),a("#dokan-single-cat-search-input").val(""),s=[],p.loadAllParentCategories()},disableDoneBtn:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];a(".dokan-single-cat-select-btn").prop("disabled",t)},hideCategoryModal:function(){t.css("display","none"),a(".dokan-select-product-category-container").attr("data-activate","no")},loadAllParentCategories:function(){s.push(p.getCategoriesWithParentId()),p.updateCategoryUi()},getCategoriesWithParentId:function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,e=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=[];for(var o in dokan_product_category_data.categories){var c=dokan_product_category_data.categories[o];c.parent_id==a&&(c.uiActivaion=Number(c.term_id)===e&&"dokan-product-category-li-active",n.push(c))}return{categories:n,level:t,term_id:a}},loadChildCategories:function(a,t,e,n){if(n){p.disableDoneBtn();var o=p.getCategoriesWithParentId(t,a+1);s.push(o),p.updateCategoryUi(),p.scrollTo(a)}else p.disableDoneBtn(!1)},updateSearchResultUi:function(){var a="";a=l.map(function(a,t){return'<li data-name="'.concat(a.name,'" data-termid="').concat(a.term_id,'" data-index="').concat(t,'" class="dokan-cat-search-res-li">\n <div class="dokan-cat-search-res-item">\n ').concat(a.name,'\n </div>\n <div class="dokan-cat-search-res-history">\n ').concat(p.getSearchedParentHistory(a.parents,a.name),"\n </div>\n </li>")}),0==l.length&&(a='<li data-name="" data-termid="" data-index="" class="dokan-cat-search-res-li">\n <div class="dokan-cat-search-res-item">\n '.concat(window.dokan.i18n_no_result_found,'\n </div>\n <div class="dokan-cat-search-res-history">\n </div>\n </li>')),n.html(a)},getSearchedParentHistory:function(a,t){var e="";return e=a.map(function(a,t){return'<span class="dokan-cat-search-res-suggestion">'.concat(p.findCategory(a).name,'</span>\n <span class="dokan-cat-search-res-indicator"><i class="fas fa-caret-right"></i></span>')}).join(""),e+='<span class="dokan-cat-search-res-suggestion-selected">'.concat(p.highlight(t),"</span>")},highlight:function(t){var e=a("#dokan-single-cat-search-input").val().toLowerCase(),n=t.toLowerCase().indexOf(e);if(n>=0)return"<span>".concat(t.substring(0,n),"</span>\n <span class='dokan-cat-highlight'>").concat(t.substring(n,n+e.length),"</span>\n <span>").concat(t.substring(n+e.length),"</span>")},updateCategoryUi:function(){var t=p.getCatUlHtml();a("#dokan-single-categories").html(t),p.updateSelectedLabel(),p.adjustCategoryPosition()},updateSelectedLabel:function(){a("#dokan-selected-category-span").html(p.getSelectedLabel())},adjustCategoryPosition:function(){a.each(a(".dokan-product-category-ul").find(".dokan-product-category-li-active"),function(t,e){var n=a(e).data(),o=n.catlevel,c=n.indexli;a("#".concat(o,"-level-cat-ul")).scrollTop(36.38*c)})},getSelectedLabel:function(){var t=a(".dokan-product-category-li-active"),e=t.length,n="";return t.each(function(a,t){var o=t.dataset;n+='<span class="dokan-selected-category-product '.concat(e==a+1?"dokan-cat-selected":"",'">').concat(o.name,"</span>\n ").concat(e!=a+1?'<span class="dokan-selected-category-icon"><i class="fas fa-chevron-right"></i></span>':"")}),n},updateCategorySelection:function(a,t){var e=s[a-1].categories.map(function(a){return a.term_id==t?a.uiActivaion="dokan-product-category-li-active":a.uiActivaion="",a});s[a-1].categories=e,p.updateCategoryUi()},getCatUlHtml:function(){return s.map(function(a,t){var e=p.getCatLiHtml(a.categories,a.level);return'<ul id="'.concat(a.level,'-level-cat-ul" class="dokan-product-category-ul ').concat(a.level,'-level-cat" data-level="').concat(a.level,'">').concat(e,"</ul>")})},getCatLiHtml:function(a,t){var e="";return a.forEach(function(a,n){e+='<li data-indexli="'.concat(n,'" data-haschild="').concat(a.children.length>0,'" data-name="').concat(a.name,'" data-catLevel="').concat(t,'" class="').concat(a.uiActivaion?a.uiActivaion:""," dokan-product-category-li ").concat(a.children.length>0?"dokan-cat-has-child":"",'" data-term-id="').concat(a.term_id,'" data-taxonomy="product_cat">\n <span class="dokan-product-category">').concat(a.name,'</span>\n <span class="dokan-product-category-icon"><i class="fas fa-chevron-right"></i></span>\n </li>')}),e},removeAfterClickedUls:function(a,t){var e=s.filter(function(t){if(t.level<=a)return t});s=e,p.updateCategorySelection(a,t)},scrollTo:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;a("#dokan-single-categories").animate({scrollLeft:300*t},800)},indicatorScrollTo:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];a("#dokan-single-categories").animate({scrollLeft:"".concat(t?"+":"-","=350px")},800)},setCatId:function(a,t){var e='<input data-field-name="chosen_product_cat" type="hidden" class="dokan_chosen_product_cat dokan_chosen_product_cat_'.concat(a,'" name="chosen_product_cat[]" value="').concat(a,'"></input>');e+='<input type="hidden" name="chosen_product_cat_bulk[]" value="'.concat(a,'"></input>'),t.children(".dokan-cih-level-".concat(u)).html(e)},setCatName:function(a,t){t.children(".dokan-select-product-category").children(".dokan-ssct-level-".concat(u)).html(a)},addANewCatBox:function(){var t=a(this)[0],e=a(t).data("selectfor");g=e;var n=a(this).parent().siblings(".dokan-add-new-cat-box").children(".dokan-select-product-category-container").length,o=a(this).parent().siblings(".dokan-add-new-cat-box").children(".dokan-select-product-category-container")[n-1],c=a(o).find("#dokan-category-open-modal").data("dokansclevel")+1;isNaN(c)&&(c=0);var i='\n <div data-activate="no" class="dokan-select-product-category-container dokan_select_cat_for_'.concat(e,"_").concat(c,'">\n <div class="dokan-form-group dokan-select-product-category dokan-category-open-modal" data-dokansclevel="').concat(c,'" id="dokan-category-open-modal" data-selectfor="').concat(e,'">\n <span id="dokan_product_cat_res" class="dokan-select-product-category-title dokan-ssct-level-').concat(c,'">- ').concat(dokan_product_category_data.i18n.select_a_category,' -</span>\n <span class="dokan-select-product-category-icon"><i class="fas fa-edit"></i></span>\n </div>\n ').concat(dokan_product_category_data.is_single?"":'\n <div class="dokan-select-product-category-remove-container">\n <span class="dokan-select-product-category-remove"><i class="fas fa-times"></i></span>\n </div>','\n <span class="dokan-cat-inputs-holder dokan-cih-level-').concat(c,'" ></span>\n </div>\n ');a(this).parent().parent().children(".cat_box_for_".concat(e)).append(i)},findCategory:function(a){return dokan_product_category_data.categories[a]},debounce:function(a,t,e){var n;return function(){var o=this,c=arguments,i=e&&!n;clearTimeout(n),n=setTimeout(function(){n=null,e||a.apply(o,c)},t),i&&a.apply(o,c)}},openModal:function(a){if(p.showCategoryModal(),a.length>0){var t=a.val();h=t;var e=dokan_product_category_data.categories[t];p.setCatUiBasedOnOneCat(t,e)}}};a(document).ready(function(){p.init()})}(jQuery)}},[289]);
1
+ dokanWebpack([6],{289:function(a,t,e){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=e(21),o=e.n(n),c=e(290),i=e.n(c),r=e(22),d=e.n(r);!function(a){var t=a("#dokan-product-category-modal"),e=a("#dokan-cat-search-res"),n=a("#dokan-cat-search-res-ul"),c=a(".dokan-single-categories-right"),r=a(".dokan-single-categories-left"),s=[],l=[],u="",g=0,h="",p={init:function(){a("body").on("click",".dokan-product-category-li",this.categoryLiClick),a("body").on("click",".dokan-cat-search-res-li",this.clickSearchResLi),a("body").on("keyup","#dokan-single-cat-search-input",p.debounce(this.typeToSearch,500)),a("#dokan-single-categories").scroll(this.categoryScroll),a("body").on("click",".dokan-single-categories-right-box",p.indicatorScrollTo),a("body").on("click",".dokan-single-categories-left-box",function(){p.indicatorScrollTo(!1)}),a("body").on("click",".dokan-single-cat-select-btn",p.chooseCatButton),a("body").on("click",".dokan-category-open-modal",p.initModal),a("body").on("click","#dokan-category-close-modal",p.hideCategoryModal),a("body").on("click",".dokan-single-cat-add-btn",p.addANewCatBox),a("body").on("click",".dokan-select-product-category-remove-container",p.removeCatBox)},initModal:function(){u=a(this).data("dokansclevel"),g=a(this).data("selectfor");var t=a(this).siblings(".dokan-cat-inputs-holder").find(".dokan_chosen_product_cat");a(this).parent().attr("data-activate","yes"),p.openModal(t)},removeCatBox:function(){a(this).closest(".dokan-select-product-category-container")[0].remove()},categoryLiClick:function(){var t=a(this).data(),e=t.catlevel,n=t.termId,o=t.name,c=t.haschild;h=n,p.removeAfterClickedUls(e,n),p.loadChildCategories(e,n,o,c)},clickSearchResLi:function(){var t=a(this).data(),e=t.termid,n=t.index;t.name;e&&(h=e,p.setCatUiBasedOnOneCat(e,l[n]))},typeToSearch:function(){var t=a(this).val();a("#dokan-cat-search-text-limit").html(t.length),t.length>0?(p.hideSearchResults(!1),p.doSearchCates(t)):p.hideSearchResults()},categoryScroll:function(){var t=a("#dokan-single-categories").get(0).scrollWidth-a("#dokan-single-categories").innerWidth(),e=a(this).scrollLeft(),n=t-e;p.showIndicators(r,e),p.showIndicators(c,n)},chooseCatButton:function(){var t=".dokan-select-product-category-container.dokan_select_cat_for_".concat(g,"_").concat(u,"[data-activate='yes']");a(t).parent().children(".dokan-select-product-category-container").children(".dokan-cat-inputs-holder").find(".dokan_chosen_product_cat_".concat(h)).length?dokan_sweetalert(dokan_product_category_data.i18n.duplicate_category,{icon:"warning"}):(p.setCatName(p.getSelectedLabel(),a(t)),p.setCatId(h,a(t)),p.hideCategoryModal(),a(t).attr("data-activate","no"))},setCatUiBasedOnOneCat:function(a,t){var e=void 0!==t.children.length&&t.children.length>0;p.disableDoneBtn(e);var n=i()(t.parents),o=i()(t.parents);n.unshift(0),o.push(Number(a));var c=n.map(function(a,t){return p.getCategoriesWithParentId(a,t+1,o[t])});s=c,p.updateCategoryUi(),p.hideSearchResults(),p.scrollTo(c.length)},doSearchCates:function(a){return o()(d.a.mark(function t(){var e,n,o,c;return d.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:for(n in e=[],dokan_product_category_data.categories)o=dokan_product_category_data.categories[n],c=o.name,a=a.toLowerCase(),c.toLowerCase().indexOf(a)>=0&&e.push(o);l=e,p.updateSearchResultUi();case 4:case"end":return t.stop()}},t)}))()},hideSearchResults:function(){!(arguments.length>0&&void 0!==arguments[0])||arguments[0]?e.addClass("dokan-hide"):e.removeClass("dokan-hide")},showIndicators:function(a,t){t>5?a.removeClass("dokan-hide"):a.addClass("dokan-hide")},showCategoryModal:function(){h="",p.disableDoneBtn(),t.css("display","flex"),p.hideSearchResults(),a("#dokan-single-cat-search-input").val(""),s=[],p.loadAllParentCategories()},disableDoneBtn:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];a(".dokan-single-cat-select-btn").prop("disabled",t)},hideCategoryModal:function(){t.css("display","none"),a(".dokan-select-product-category-container").attr("data-activate","no")},loadAllParentCategories:function(){s.push(p.getCategoriesWithParentId()),p.updateCategoryUi()},getCategoriesWithParentId:function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,e=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=[];for(var o in dokan_product_category_data.categories){var c=dokan_product_category_data.categories[o];c.parent_id==a&&(c.uiActivaion=Number(c.term_id)===e&&"dokan-product-category-li-active",n.push(c))}return{categories:n,level:t,term_id:a}},loadChildCategories:function(a,t,e,n){if(n){p.disableDoneBtn();var o=p.getCategoriesWithParentId(t,a+1);s.push(o),p.updateCategoryUi(),p.scrollTo(a)}else p.disableDoneBtn(!1)},updateSearchResultUi:function(){var a="";a=l.map(function(a,t){return'<li data-name="'.concat(a.name,'" data-termid="').concat(a.term_id,'" data-index="').concat(t,'" class="dokan-cat-search-res-li">\n <div class="dokan-cat-search-res-item">\n ').concat(a.name,'\n </div>\n <div class="dokan-cat-search-res-history">\n ').concat(p.getSearchedParentHistory(a.parents,a.name),"\n </div>\n </li>")}),0==l.length&&(a='<li data-name="" data-termid="" data-index="" class="dokan-cat-search-res-li">\n <div class="dokan-cat-search-res-item">\n '.concat(window.dokan.i18n_no_result_found,'\n </div>\n <div class="dokan-cat-search-res-history">\n </div>\n </li>')),n.html(a)},getSearchedParentHistory:function(a,t){var e="";return e=a.map(function(a,t){return'<span class="dokan-cat-search-res-suggestion">'.concat(p.findCategory(a).name,'</span>\n <span class="dokan-cat-search-res-indicator"><i class="fas fa-caret-right"></i></span>')}).join(""),e+='<span class="dokan-cat-search-res-suggestion-selected">'.concat(p.highlight(t),"</span>")},highlight:function(t){var e=a("#dokan-single-cat-search-input").val().toLowerCase(),n=t.toLowerCase().indexOf(e);if(n>=0)return"<span>".concat(t.substring(0,n),"</span>\n <span class='dokan-cat-highlight'>").concat(t.substring(n,n+e.length),"</span>\n <span>").concat(t.substring(n+e.length),"</span>")},updateCategoryUi:function(){var t=p.getCatUlHtml();a("#dokan-single-categories").html(t),p.updateSelectedLabel(),p.adjustCategoryPosition()},updateSelectedLabel:function(){a("#dokan-selected-category-span").html(p.getSelectedLabel())},adjustCategoryPosition:function(){a.each(a(".dokan-product-category-ul").find(".dokan-product-category-li-active"),function(t,e){var n=a(e).data(),o=n.catlevel,c=n.indexli;a("#".concat(o,"-level-cat-ul")).scrollTop(36.38*c)})},getSelectedLabel:function(){var t=a(".dokan-product-category-li-active"),e=t.length,n="";return t.each(function(a,t){var o=t.dataset;n+='<span class="dokan-selected-category-product '.concat(e==a+1?"dokan-cat-selected":"",'">').concat(o.name,"</span>\n ").concat(e!=a+1?'<span class="dokan-selected-category-icon"><i class="fas fa-chevron-right"></i></span>':"")}),n},updateCategorySelection:function(a,t){var e=s[a-1].categories.map(function(a){return a.term_id==t?a.uiActivaion="dokan-product-category-li-active":a.uiActivaion="",a});s[a-1].categories=e,p.updateCategoryUi()},getCatUlHtml:function(){return s.map(function(a,t){var e=p.getCatLiHtml(a.categories,a.level);return'<ul id="'.concat(a.level,'-level-cat-ul" class="dokan-product-category-ul ').concat(a.level,'-level-cat" data-level="').concat(a.level,'">').concat(e,"</ul>")})},getCatLiHtml:function(a,t){var e="";return a.forEach(function(a,n){e+='<li data-indexli="'.concat(n,'" data-haschild="').concat(a.children.length>0,'" data-name="').concat(a.name,'" data-catLevel="').concat(t,'" class="').concat(a.uiActivaion?a.uiActivaion:""," dokan-product-category-li ").concat(a.children.length>0?"dokan-cat-has-child":"",'" data-term-id="').concat(a.term_id,'" data-taxonomy="product_cat">\n <span class="dokan-product-category">').concat(a.name,'</span>\n <span class="dokan-product-category-icon"><i class="fas fa-chevron-right"></i></span>\n </li>')}),e},removeAfterClickedUls:function(a,t){var e=s.filter(function(t){if(t.level<=a)return t});s=e,p.updateCategorySelection(a,t)},scrollTo:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;a("#dokan-single-categories").animate({scrollLeft:300*t},800)},indicatorScrollTo:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];a("#dokan-single-categories").animate({scrollLeft:"".concat(t?"+":"-","=350px")},800)},setCatId:function(a,t){var e='<input data-field-name="chosen_product_cat" type="hidden" class="dokan_chosen_product_cat dokan_chosen_product_cat_'.concat(a,'" name="chosen_product_cat[]" value="').concat(a,'"></input>');e+='<input type="hidden" name="chosen_product_cat_bulk[]" value="'.concat(a,'"></input>'),t.children(".dokan-cih-level-".concat(u)).html(e)},setCatName:function(a,t){t.children(".dokan-select-product-category").children(".dokan-ssct-level-".concat(u)).html(a)},addANewCatBox:function(){var t=a(this)[0],e=a(t).data("selectfor");g=e;var n=a(this).parent().siblings(".dokan-add-new-cat-box").children(".dokan-select-product-category-container").length,o=a(this).parent().siblings(".dokan-add-new-cat-box").children(".dokan-select-product-category-container")[n-1],c=a(o).find("#dokan-category-open-modal").data("dokansclevel")+1;isNaN(c)&&(c=0);var i='\n <div data-activate="no" class="dokan-select-product-category-container dokan_select_cat_for_'.concat(e,"_").concat(c,'">\n <div class="dokan-form-group dokan-select-product-category dokan-category-open-modal" data-dokansclevel="').concat(c,'" id="dokan-category-open-modal" data-selectfor="').concat(e,'">\n <span id="dokan_product_cat_res" class="dokan-select-product-category-title dokan-ssct-level-').concat(c,'">- ').concat(dokan_product_category_data.i18n.select_a_category,' -</span>\n <span class="dokan-select-product-category-icon"><i class="fas fa-edit"></i></span>\n </div>\n ').concat(dokan_product_category_data.is_single?"":'\n <div class="dokan-select-product-category-remove-container">\n <span class="dokan-select-product-category-remove"><i class="fas fa-times"></i></span>\n </div>','\n <span class="dokan-cat-inputs-holder dokan-cih-level-').concat(c,'" ></span>\n </div>\n ');a(this).parent().parent().children(".cat_box_for_".concat(e)).append(i)},findCategory:function(a){return dokan_product_category_data.categories[a]},debounce:function(a,t,e){var n;return function(){var o=this,c=arguments,i=e&&!n;clearTimeout(n),n=setTimeout(function(){n=null,e||a.apply(o,c)},t),i&&a.apply(o,c)}},openModal:function(a){if(p.showCategoryModal(),a.length>0){var t=a.val();h=t;var e=dokan_product_category_data.categories[t];p.setCatUiBasedOnOneCat(t,e)}}};a(document).ready(function(){p.init()})}(jQuery)}},[289]);
assets/js/vue-vendor.js CHANGED
@@ -218,12048 +218,11913 @@ module.exports = function normalizeComponent (
218
 
219
  "use strict";
220
  Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
221
- /* WEBPACK VAR INJECTION */(function(process, global, setImmediate) {/*!
222
- * Vue.js v2.6.14
223
- * (c) 2014-2021 Evan You
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
224
  * Released under the MIT License.
225
  */
226
- /* */
227
-
228
- var emptyObject = Object.freeze({});
229
-
230
- // These helpers produce better VM code in JS engines due to their
231
- // explicitness and function inlining.
232
- function isUndef (v) {
233
- return v === undefined || v === null
234
- }
235
-
236
- function isDef (v) {
237
- return v !== undefined && v !== null
238
- }
239
-
240
- function isTrue (v) {
241
- return v === true
242
- }
243
-
244
- function isFalse (v) {
245
- return v === false
246
- }
247
-
248
- /**
249
- * Check if value is primitive.
250
- */
251
- function isPrimitive (value) {
252
- return (
253
- typeof value === 'string' ||
254
- typeof value === 'number' ||
255
- // $flow-disable-line
256
- typeof value === 'symbol' ||
257
- typeof value === 'boolean'
258
- )
259
- }
260
-
261
- /**
262
- * Quick object check - this is primarily used to tell
263
- * Objects from primitive values when we know the value
264
- * is a JSON-compliant type.
265
- */
266
- function isObject (obj) {
267
- return obj !== null && typeof obj === 'object'
268
- }
269
-
270
- /**
271
- * Get the raw type string of a value, e.g., [object Object].
272
- */
273
- var _toString = Object.prototype.toString;
274
-
275
- function toRawType (value) {
276
- return _toString.call(value).slice(8, -1)
277
- }
278
-
279
- /**
280
- * Strict object type check. Only returns true
281
- * for plain JavaScript objects.
282
- */
283
- function isPlainObject (obj) {
284
- return _toString.call(obj) === '[object Object]'
285
- }
286
-
287
- function isRegExp (v) {
288
- return _toString.call(v) === '[object RegExp]'
289
- }
290
-
291
- /**
292
- * Check if val is a valid array index.
293
- */
294
- function isValidArrayIndex (val) {
295
- var n = parseFloat(String(val));
296
- return n >= 0 && Math.floor(n) === n && isFinite(val)
297
- }
298
-
299
- function isPromise (val) {
300
- return (
301
- isDef(val) &&
302
- typeof val.then === 'function' &&
303
- typeof val.catch === 'function'
304
- )
305
- }
306
-
307
- /**
308
- * Convert a value to a string that is actually rendered.
309
- */
310
- function toString (val) {
311
- return val == null
312
- ? ''
313
- : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)
314
- ? JSON.stringify(val, null, 2)
315
- : String(val)
316
- }
317
-
318
- /**
319
- * Convert an input value to a number for persistence.
320
- * If the conversion fails, return original string.
321
- */
322
- function toNumber (val) {
323
- var n = parseFloat(val);
324
- return isNaN(n) ? val : n
325
- }
326
-
327
- /**
328
- * Make a map and return a function for checking if a key
329
- * is in that map.
330
- */
331
- function makeMap (
332
- str,
333
- expectsLowerCase
334
- ) {
335
- var map = Object.create(null);
336
- var list = str.split(',');
337
- for (var i = 0; i < list.length; i++) {
338
- map[list[i]] = true;
339
- }
340
- return expectsLowerCase
341
- ? function (val) { return map[val.toLowerCase()]; }
342
- : function (val) { return map[val]; }
343
- }
344
-
345
- /**
346
- * Check if a tag is a built-in tag.
347
- */
348
- var isBuiltInTag = makeMap('slot,component', true);
349
-
350
- /**
351
- * Check if an attribute is a reserved attribute.
352
- */
353
- var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');
354
-
355
- /**
356
- * Remove an item from an array.
357
- */
358
- function remove (arr, item) {
359
- if (arr.length) {
360
- var index = arr.indexOf(item);
361
- if (index > -1) {
362
- return arr.splice(index, 1)
363
- }
364
- }
365
- }
366
-
367
- /**
368
- * Check whether an object has the property.
369
- */
370
- var hasOwnProperty = Object.prototype.hasOwnProperty;
371
- function hasOwn (obj, key) {
372
- return hasOwnProperty.call(obj, key)
373
- }
374
-
375
- /**
376
- * Create a cached version of a pure function.
377
- */
378
- function cached (fn) {
379
- var cache = Object.create(null);
380
- return (function cachedFn (str) {
381
- var hit = cache[str];
382
- return hit || (cache[str] = fn(str))
383
- })
384
- }
385
-
386
- /**
387
- * Camelize a hyphen-delimited string.
388
- */
389
- var camelizeRE = /-(\w)/g;
390
- var camelize = cached(function (str) {
391
- return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })
392
- });
393
-
394
- /**
395
- * Capitalize a string.
396
- */
397
- var capitalize = cached(function (str) {
398
- return str.charAt(0).toUpperCase() + str.slice(1)
399
- });
400
-
401
- /**
402
- * Hyphenate a camelCase string.
403
- */
404
- var hyphenateRE = /\B([A-Z])/g;
405
- var hyphenate = cached(function (str) {
406
- return str.replace(hyphenateRE, '-$1').toLowerCase()
407
- });
408
-
409
- /**
410
- * Simple bind polyfill for environments that do not support it,
411
- * e.g., PhantomJS 1.x. Technically, we don't need this anymore
412
- * since native bind is now performant enough in most browsers.
413
- * But removing it would mean breaking code that was able to run in
414
- * PhantomJS 1.x, so this must be kept for backward compatibility.
415
- */
416
-
417
- /* istanbul ignore next */
418
- function polyfillBind (fn, ctx) {
419
- function boundFn (a) {
420
- var l = arguments.length;
421
- return l
422
- ? l > 1
423
- ? fn.apply(ctx, arguments)
424
- : fn.call(ctx, a)
425
- : fn.call(ctx)
426
- }
427
-
428
- boundFn._length = fn.length;
429
- return boundFn
430
- }
431
-
432
- function nativeBind (fn, ctx) {
433
- return fn.bind(ctx)
434
- }
435
-
436
- var bind = Function.prototype.bind
437
- ? nativeBind
438
- : polyfillBind;
439
-
440
- /**
441
- * Convert an Array-like object to a real Array.
442
- */
443
- function toArray (list, start) {
444
- start = start || 0;
445
- var i = list.length - start;
446
- var ret = new Array(i);
447
- while (i--) {
448
- ret[i] = list[i + start];
449
- }
450
- return ret
451
- }
452
-
453
- /**
454
- * Mix properties into target object.
455
- */
456
- function extend (to, _from) {
457
- for (var key in _from) {
458
- to[key] = _from[key];
459
- }
460
- return to
461
- }
462
-
463
- /**
464
- * Merge an Array of Objects into a single Object.
465
- */
466
- function toObject (arr) {
467
- var res = {};
468
- for (var i = 0; i < arr.length; i++) {
469
- if (arr[i]) {
470
- extend(res, arr[i]);
471
- }
472
- }
473
- return res
474
- }
475
-
476
- /* eslint-disable no-unused-vars */
477
-
478
- /**
479
- * Perform no operation.
480
- * Stubbing args to make Flow happy without leaving useless transpiled code
481
- * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).
482
- */
483
- function noop (a, b, c) {}
484
-
485
- /**
486
- * Always return false.
487
- */
488
- var no = function (a, b, c) { return false; };
489
-
490
- /* eslint-enable no-unused-vars */
491
-
492
- /**
493
- * Return the same value.
494
- */
495
- var identity = function (_) { return _; };
496
-
497
- /**
498
- * Generate a string containing static keys from compiler modules.
499
- */
500
- function genStaticKeys (modules) {
501
- return modules.reduce(function (keys, m) {
502
- return keys.concat(m.staticKeys || [])
503
- }, []).join(',')
504
- }
505
-
506
- /**
507
- * Check if two values are loosely equal - that is,
508
- * if they are plain objects, do they have the same shape?
509
- */
510
- function looseEqual (a, b) {
511
- if (a === b) { return true }
512
- var isObjectA = isObject(a);
513
- var isObjectB = isObject(b);
514
- if (isObjectA && isObjectB) {
515
- try {
516
- var isArrayA = Array.isArray(a);
517
- var isArrayB = Array.isArray(b);
518
- if (isArrayA && isArrayB) {
519
- return a.length === b.length && a.every(function (e, i) {
520
- return looseEqual(e, b[i])
521
- })
522
- } else if (a instanceof Date && b instanceof Date) {
523
- return a.getTime() === b.getTime()
524
- } else if (!isArrayA && !isArrayB) {
525
- var keysA = Object.keys(a);
526
- var keysB = Object.keys(b);
527
- return keysA.length === keysB.length && keysA.every(function (key) {
528
- return looseEqual(a[key], b[key])
529
- })
530
- } else {
531
- /* istanbul ignore next */
532
- return false
533
- }
534
- } catch (e) {
535
- /* istanbul ignore next */
536
- return false
537
- }
538
- } else if (!isObjectA && !isObjectB) {
539
- return String(a) === String(b)
540
- } else {
541
- return false
542
- }
543
- }
544
-
545
- /**
546
- * Return the first index at which a loosely equal value can be
547
- * found in the array (if value is a plain object, the array must
548
- * contain an object of the same shape), or -1 if it is not present.
549
- */
550
- function looseIndexOf (arr, val) {
551
- for (var i = 0; i < arr.length; i++) {
552
- if (looseEqual(arr[i], val)) { return i }
553
- }
554
- return -1
555
- }
556
-
557
- /**
558
- * Ensure a function is called only once.
559
- */
560
- function once (fn) {
561
- var called = false;
562
- return function () {
563
- if (!called) {
564
- called = true;
565
- fn.apply(this, arguments);
566
- }
567
- }
568
- }
569
-
570
- var SSR_ATTR = 'data-server-rendered';
571
-
572
- var ASSET_TYPES = [
573
- 'component',
574
- 'directive',
575
- 'filter'
576
- ];
577
-
578
- var LIFECYCLE_HOOKS = [
579
- 'beforeCreate',
580
- 'created',
581
- 'beforeMount',
582
- 'mounted',
583
- 'beforeUpdate',
584
- 'updated',
585
- 'beforeDestroy',
586
- 'destroyed',
587
- 'activated',
588
- 'deactivated',
589
- 'errorCaptured',
590
- 'serverPrefetch'
591
  ];
592
 
593
- /* */
594
-
595
-
596
-
597
- var config = ({
598
- /**
599
- * Option merge strategies (used in core/util/options)
600
- */
601
- // $flow-disable-line
602
- optionMergeStrategies: Object.create(null),
603
-
604
- /**
605
- * Whether to suppress warnings.
606
- */
607
- silent: false,
608
-
609
- /**
610
- * Show production mode tip message on boot?
611
- */
612
- productionTip: process.env.NODE_ENV !== 'production',
613
-
614
- /**
615
- * Whether to enable devtools
616
- */
617
- devtools: process.env.NODE_ENV !== 'production',
618
-
619
- /**
620
- * Whether to record perf
621
- */
622
- performance: false,
623
-
624
- /**
625
- * Error handler for watcher errors
626
- */
627
- errorHandler: null,
628
-
629
- /**
630
- * Warn handler for watcher warns
631
- */
632
- warnHandler: null,
633
-
634
- /**
635
- * Ignore certain custom elements
636
- */
637
- ignoredElements: [],
638
-
639
- /**
640
- * Custom user key aliases for v-on
641
- */
642
- // $flow-disable-line
643
- keyCodes: Object.create(null),
644
-
645
- /**
646
- * Check if a tag is reserved so that it cannot be registered as a
647
- * component. This is platform-dependent and may be overwritten.
648
- */
649
- isReservedTag: no,
650
-
651
- /**
652
- * Check if an attribute is reserved so that it cannot be used as a component
653
- * prop. This is platform-dependent and may be overwritten.
654
- */
655
- isReservedAttr: no,
656
-
657
- /**
658
- * Check if a tag is an unknown element.
659
- * Platform-dependent.
660
- */
661
- isUnknownElement: no,
662
-
663
- /**
664
- * Get the namespace of an element
665
- */
666
- getTagNamespace: noop,
667
-
668
- /**
669
- * Parse the real tag name for the specific platform.
670
- */
671
- parsePlatformTagName: identity,
672
-
673
- /**
674
- * Check if an attribute must be bound using property, e.g. value
675
- * Platform-dependent.
676
- */
677
- mustUseProp: no,
678
-
679
- /**
680
- * Perform updates asynchronously. Intended to be used by Vue Test Utils
681
- * This will significantly reduce performance if set to false.
682
- */
683
- async: true,
684
-
685
- /**
686
- * Exposed for legacy reasons
687
- */
688
- _lifecycleHooks: LIFECYCLE_HOOKS
689
- });
690
-
691
- /* */
692
-
693
- /**
694
- * unicode letters used for parsing html tags, component names and property paths.
695
- * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname
696
- * skipping \u10000-\uEFFFF due to it freezing up PhantomJS
697
- */
698
- 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/;
699
-
700
- /**
701
- * Check if a string starts with $ or _
702
- */
703
- function isReserved (str) {
704
- var c = (str + '').charCodeAt(0);
705
- return c === 0x24 || c === 0x5F
706
- }
707
-
708
- /**
709
- * Define a property.
710
- */
711
- function def (obj, key, val, enumerable) {
712
- Object.defineProperty(obj, key, {
713
- value: val,
714
- enumerable: !!enumerable,
715
- writable: true,
716
- configurable: true
717
- });
718
- }
719
-
720
- /**
721
- * Parse simple path.
722
- */
723
- var bailRE = new RegExp(("[^" + (unicodeRegExp.source) + ".$_\\d]"));
724
- function parsePath (path) {
725
- if (bailRE.test(path)) {
726
- return
727
- }
728
- var segments = path.split('.');
729
- return function (obj) {
730
- for (var i = 0; i < segments.length; i++) {
731
- if (!obj) { return }
732
- obj = obj[segments[i]];
733
- }
734
- return obj
735
- }
736
- }
737
-
738
- /* */
739
-
740
- // can we use __proto__?
741
- var hasProto = '__proto__' in {};
742
-
743
- // Browser environment sniffing
744
- var inBrowser = typeof window !== 'undefined';
745
- var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;
746
- var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();
747
- var UA = inBrowser && window.navigator.userAgent.toLowerCase();
748
- var isIE = UA && /msie|trident/.test(UA);
749
- var isIE9 = UA && UA.indexOf('msie 9.0') > 0;
750
- var isEdge = UA && UA.indexOf('edge/') > 0;
751
- var isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');
752
- var isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');
753
- var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge;
754
- var isPhantomJS = UA && /phantomjs/.test(UA);
755
- var isFF = UA && UA.match(/firefox\/(\d+)/);
756
-
757
- // Firefox has a "watch" function on Object.prototype...
758
- var nativeWatch = ({}).watch;
759
-
760
- var supportsPassive = false;
761
- if (inBrowser) {
762
- try {
763
- var opts = {};
764
- Object.defineProperty(opts, 'passive', ({
765
- get: function get () {
766
- /* istanbul ignore next */
767
- supportsPassive = true;
768
- }
769
- })); // https://github.com/facebook/flow/issues/285
770
- window.addEventListener('test-passive', null, opts);
771
- } catch (e) {}
772
- }
773
-
774
- // this needs to be lazy-evaled because vue may be required before
775
- // vue-server-renderer can set VUE_ENV
776
- var _isServer;
777
- var isServerRendering = function () {
778
- if (_isServer === undefined) {
779
- /* istanbul ignore if */
780
- if (!inBrowser && !inWeex && typeof global !== 'undefined') {
781
- // detect presence of vue-server-renderer and avoid
782
- // Webpack shimming the process
783
- _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';
784
- } else {
785
- _isServer = false;
786
- }
787
- }
788
- return _isServer
789
  };
790
 
791
- // detect devtools
792
- var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
793
 
794
- /* istanbul ignore next */
795
- function isNative (Ctor) {
796
- return typeof Ctor === 'function' && /native code/.test(Ctor.toString())
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
797
  }
798
 
799
- var hasSymbol =
800
- typeof Symbol !== 'undefined' && isNative(Symbol) &&
801
- typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);
802
-
803
- var _Set;
804
- /* istanbul ignore if */ // $flow-disable-line
805
- if (typeof Set !== 'undefined' && isNative(Set)) {
806
- // use native Set when available.
807
- _Set = Set;
808
- } else {
809
- // a non-standard Set polyfill that only works with primitive keys.
810
- _Set = /*@__PURE__*/(function () {
811
- function Set () {
812
- this.set = Object.create(null);
813
- }
814
- Set.prototype.has = function has (key) {
815
- return this.set[key] === true
816
- };
817
- Set.prototype.add = function add (key) {
818
- this.set[key] = true;
819
- };
820
- Set.prototype.clear = function clear () {
821
- this.set = Object.create(null);
822
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
823
 
824
- return Set;
825
- }());
826
- }
827
-
828
- /* */
829
-
830
- var warn = noop;
831
- var tip = noop;
832
- var generateComponentTrace = (noop); // work around flow check
833
- var formatComponentName = (noop);
834
-
835
- if (process.env.NODE_ENV !== 'production') {
836
- var hasConsole = typeof console !== 'undefined';
837
- var classifyRE = /(?:^|[-_])(\w)/g;
838
- var classify = function (str) { return str
839
- .replace(classifyRE, function (c) { return c.toUpperCase(); })
840
- .replace(/[-_]/g, ''); };
841
-
842
- warn = function (msg, vm) {
843
- var trace = vm ? generateComponentTrace(vm) : '';
844
-
845
- if (config.warnHandler) {
846
- config.warnHandler.call(null, msg, vm, trace);
847
- } else if (hasConsole && (!config.silent)) {
848
- console.error(("[Vue warn]: " + msg + trace));
849
- }
850
- };
851
-
852
- tip = function (msg, vm) {
853
- if (hasConsole && (!config.silent)) {
854
- console.warn("[Vue tip]: " + msg + (
855
- vm ? generateComponentTrace(vm) : ''
856
- ));
857
- }
858
- };
859
-
860
- formatComponentName = function (vm, includeFile) {
861
- if (vm.$root === vm) {
862
- return '<Root>'
863
- }
864
- var options = typeof vm === 'function' && vm.cid != null
865
- ? vm.options
866
- : vm._isVue
867
- ? vm.$options || vm.constructor.options
868
- : vm;
869
- var name = options.name || options._componentTag;
870
- var file = options.__file;
871
- if (!name && file) {
872
- var match = file.match(/([^/\\]+)\.vue$/);
873
- name = match && match[1];
874
- }
875
-
876
- return (
877
- (name ? ("<" + (classify(name)) + ">") : "<Anonymous>") +
878
- (file && includeFile !== false ? (" at " + file) : '')
879
- )
880
- };
881
-
882
- var repeat = function (str, n) {
883
- var res = '';
884
- while (n) {
885
- if (n % 2 === 1) { res += str; }
886
- if (n > 1) { str += str; }
887
- n >>= 1;
888
- }
889
- return res
890
- };
891
-
892
- generateComponentTrace = function (vm) {
893
- if (vm._isVue && vm.$parent) {
894
- var tree = [];
895
- var currentRecursiveSequence = 0;
896
- while (vm) {
897
- if (tree.length > 0) {
898
- var last = tree[tree.length - 1];
899
- if (last.constructor === vm.constructor) {
900
- currentRecursiveSequence++;
901
- vm = vm.$parent;
902
- continue
903
- } else if (currentRecursiveSequence > 0) {
904
- tree[tree.length - 1] = [last, currentRecursiveSequence];
905
- currentRecursiveSequence = 0;
906
- }
907
- }
908
- tree.push(vm);
909
- vm = vm.$parent;
910
- }
911
- return '\n\nfound in\n\n' + tree
912
- .map(function (vm, i) { return ("" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)
913
- ? ((formatComponentName(vm[0])) + "... (" + (vm[1]) + " recursive calls)")
914
- : formatComponentName(vm))); })
915
- .join('\n')
916
- } else {
917
- return ("\n\n(found in " + (formatComponentName(vm)) + ")")
918
- }
919
- };
920
- }
921
-
922
- /* */
923
-
924
- var uid = 0;
925
-
926
- /**
927
- * A dep is an observable that can have multiple
928
- * directives subscribing to it.
929
- */
930
- var Dep = function Dep () {
931
- this.id = uid++;
932
- this.subs = [];
933
- };
934
-
935
- Dep.prototype.addSub = function addSub (sub) {
936
- this.subs.push(sub);
937
- };
938
-
939
- Dep.prototype.removeSub = function removeSub (sub) {
940
- remove(this.subs, sub);
941
- };
942
-
943
- Dep.prototype.depend = function depend () {
944
- if (Dep.target) {
945
- Dep.target.addDep(this);
946
- }
947
- };
948
-
949
- Dep.prototype.notify = function notify () {
950
- // stabilize the subscriber list first
951
- var subs = this.subs.slice();
952
- if (process.env.NODE_ENV !== 'production' && !config.async) {
953
- // subs aren't sorted in scheduler if not running async
954
- // we need to sort them now to make sure they fire in correct
955
- // order
956
- subs.sort(function (a, b) { return a.id - b.id; });
957
- }
958
- for (var i = 0, l = subs.length; i < l; i++) {
959
- subs[i].update();
960
- }
961
- };
962
-
963
- // The current target watcher being evaluated.
964
- // This is globally unique because only one watcher
965
- // can be evaluated at a time.
966
- Dep.target = null;
967
- var targetStack = [];
968
-
969
- function pushTarget (target) {
970
- targetStack.push(target);
971
- Dep.target = target;
972
- }
973
-
974
- function popTarget () {
975
- targetStack.pop();
976
- Dep.target = targetStack[targetStack.length - 1];
977
- }
978
-
979
- /* */
980
-
981
- var VNode = function VNode (
982
- tag,
983
- data,
984
- children,
985
- text,
986
- elm,
987
- context,
988
- componentOptions,
989
- asyncFactory
990
- ) {
991
- this.tag = tag;
992
- this.data = data;
993
- this.children = children;
994
- this.text = text;
995
- this.elm = elm;
996
- this.ns = undefined;
997
- this.context = context;
998
- this.fnContext = undefined;
999
- this.fnOptions = undefined;
1000
- this.fnScopeId = undefined;
1001
- this.key = data && data.key;
1002
- this.componentOptions = componentOptions;
1003
- this.componentInstance = undefined;
1004
- this.parent = undefined;
1005
- this.raw = false;
1006
- this.isStatic = false;
1007
- this.isRootInsert = true;
1008
- this.isComment = false;
1009
- this.isCloned = false;
1010
- this.isOnce = false;
1011
- this.asyncFactory = asyncFactory;
1012
- this.asyncMeta = undefined;
1013
- this.isAsyncPlaceholder = false;
1014
- };
1015
-
1016
- var prototypeAccessors = { child: { configurable: true } };
1017
-
1018
- // DEPRECATED: alias for componentInstance for backwards compat.
1019
- /* istanbul ignore next */
1020
- prototypeAccessors.child.get = function () {
1021
- return this.componentInstance
1022
- };
1023
-
1024
- Object.defineProperties( VNode.prototype, prototypeAccessors );
1025
-
1026
- var createEmptyVNode = function (text) {
1027
- if ( text === void 0 ) text = '';
1028
-
1029
- var node = new VNode();
1030
- node.text = text;
1031
- node.isComment = true;
1032
- return node
1033
- };
1034
-
1035
- function createTextVNode (val) {
1036
- return new VNode(undefined, undefined, undefined, String(val))
1037
- }
1038
-
1039
- // optimized shallow clone
1040
- // used for static nodes and slot nodes because they may be reused across
1041
- // multiple renders, cloning them avoids errors when DOM manipulations rely
1042
- // on their elm reference.
1043
- function cloneVNode (vnode) {
1044
- var cloned = new VNode(
1045
- vnode.tag,
1046
- vnode.data,
1047
- // #7975
1048
- // clone children array to avoid mutating original in case of cloning
1049
- // a child.
1050
- vnode.children && vnode.children.slice(),
1051
- vnode.text,
1052
- vnode.elm,
1053
- vnode.context,
1054
- vnode.componentOptions,
1055
- vnode.asyncFactory
1056
- );
1057
- cloned.ns = vnode.ns;
1058
- cloned.isStatic = vnode.isStatic;
1059
- cloned.key = vnode.key;
1060
- cloned.isComment = vnode.isComment;
1061
- cloned.fnContext = vnode.fnContext;
1062
- cloned.fnOptions = vnode.fnOptions;
1063
- cloned.fnScopeId = vnode.fnScopeId;
1064
- cloned.asyncMeta = vnode.asyncMeta;
1065
- cloned.isCloned = true;
1066
- return cloned
1067
- }
1068
-
1069
- /*
1070
- * not type checking this file because flow doesn't play well with
1071
- * dynamically accessing methods on Array prototype
1072
- */
1073
-
1074
- var arrayProto = Array.prototype;
1075
- var arrayMethods = Object.create(arrayProto);
1076
-
1077
- var methodsToPatch = [
1078
- 'push',
1079
- 'pop',
1080
- 'shift',
1081
- 'unshift',
1082
- 'splice',
1083
- 'sort',
1084
- 'reverse'
1085
- ];
1086
-
1087
- /**
1088
- * Intercept mutating methods and emit events
1089
- */
1090
- methodsToPatch.forEach(function (method) {
1091
- // cache original method
1092
- var original = arrayProto[method];
1093
- def(arrayMethods, method, function mutator () {
1094
- var args = [], len = arguments.length;
1095
- while ( len-- ) args[ len ] = arguments[ len ];
1096
-
1097
- var result = original.apply(this, args);
1098
- var ob = this.__ob__;
1099
- var inserted;
1100
- switch (method) {
1101
- case 'push':
1102
- case 'unshift':
1103
- inserted = args;
1104
- break
1105
- case 'splice':
1106
- inserted = args.slice(2);
1107
- break
1108
- }
1109
- if (inserted) { ob.observeArray(inserted); }
1110
- // notify change
1111
- ob.dep.notify();
1112
- return result
1113
- });
1114
- });
1115
-
1116
- /* */
1117
-
1118
- var arrayKeys = Object.getOwnPropertyNames(arrayMethods);
1119
-
1120
- /**
1121
- * In some cases we may want to disable observation inside a component's
1122
- * update computation.
1123
- */
1124
- var shouldObserve = true;
1125
-
1126
- function toggleObserving (value) {
1127
- shouldObserve = value;
1128
- }
1129
-
1130
- /**
1131
- * Observer class that is attached to each observed
1132
- * object. Once attached, the observer converts the target
1133
- * object's property keys into getter/setters that
1134
- * collect dependencies and dispatch updates.
1135
- */
1136
- var Observer = function Observer (value) {
1137
- this.value = value;
1138
- this.dep = new Dep();
1139
- this.vmCount = 0;
1140
- def(value, '__ob__', this);
1141
- if (Array.isArray(value)) {
1142
- if (hasProto) {
1143
- protoAugment(value, arrayMethods);
1144
- } else {
1145
- copyAugment(value, arrayMethods, arrayKeys);
1146
- }
1147
- this.observeArray(value);
1148
- } else {
1149
- this.walk(value);
1150
- }
1151
- };
1152
-
1153
- /**
1154
- * Walk through all properties and convert them into
1155
- * getter/setters. This method should only be called when
1156
- * value type is Object.
1157
- */
1158
- Observer.prototype.walk = function walk (obj) {
1159
- var keys = Object.keys(obj);
1160
- for (var i = 0; i < keys.length; i++) {
1161
- defineReactive$$1(obj, keys[i]);
1162
- }
1163
- };
1164
-
1165
- /**
1166
- * Observe a list of Array items.
1167
- */
1168
- Observer.prototype.observeArray = function observeArray (items) {
1169
- for (var i = 0, l = items.length; i < l; i++) {
1170
- observe(items[i]);
1171
- }
1172
- };
1173
-
1174
- // helpers
1175
-
1176
- /**
1177
- * Augment a target Object or Array by intercepting
1178
- * the prototype chain using __proto__
1179
- */
1180
- function protoAugment (target, src) {
1181
- /* eslint-disable no-proto */
1182
- target.__proto__ = src;
1183
- /* eslint-enable no-proto */
1184
- }
1185
-
1186
- /**
1187
- * Augment a target Object or Array by defining
1188
- * hidden properties.
1189
- */
1190
- /* istanbul ignore next */
1191
- function copyAugment (target, src, keys) {
1192
- for (var i = 0, l = keys.length; i < l; i++) {
1193
- var key = keys[i];
1194
- def(target, key, src[key]);
1195
- }
1196
- }
1197
-
1198
- /**
1199
- * Attempt to create an observer instance for a value,
1200
- * returns the new observer if successfully observed,
1201
- * or the existing observer if the value already has one.
1202
- */
1203
- function observe (value, asRootData) {
1204
- if (!isObject(value) || value instanceof VNode) {
1205
- return
1206
- }
1207
- var ob;
1208
- if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {
1209
- ob = value.__ob__;
1210
- } else if (
1211
- shouldObserve &&
1212
- !isServerRendering() &&
1213
- (Array.isArray(value) || isPlainObject(value)) &&
1214
- Object.isExtensible(value) &&
1215
- !value._isVue
1216
- ) {
1217
- ob = new Observer(value);
1218
- }
1219
- if (asRootData && ob) {
1220
- ob.vmCount++;
1221
- }
1222
- return ob
1223
- }
1224
-
1225
- /**
1226
- * Define a reactive property on an Object.
1227
- */
1228
- function defineReactive$$1 (
1229
- obj,
1230
- key,
1231
- val,
1232
- customSetter,
1233
- shallow
1234
- ) {
1235
- var dep = new Dep();
1236
-
1237
- var property = Object.getOwnPropertyDescriptor(obj, key);
1238
- if (property && property.configurable === false) {
1239
- return
1240
- }
1241
-
1242
- // cater for pre-defined getter/setters
1243
- var getter = property && property.get;
1244
- var setter = property && property.set;
1245
- if ((!getter || setter) && arguments.length === 2) {
1246
- val = obj[key];
1247
- }
1248
-
1249
- var childOb = !shallow && observe(val);
1250
- Object.defineProperty(obj, key, {
1251
- enumerable: true,
1252
- configurable: true,
1253
- get: function reactiveGetter () {
1254
- var value = getter ? getter.call(obj) : val;
1255
- if (Dep.target) {
1256
- dep.depend();
1257
- if (childOb) {
1258
- childOb.dep.depend();
1259
- if (Array.isArray(value)) {
1260
- dependArray(value);
1261
- }
1262
- }
1263
- }
1264
- return value
1265
- },
1266
- set: function reactiveSetter (newVal) {
1267
- var value = getter ? getter.call(obj) : val;
1268
- /* eslint-disable no-self-compare */
1269
- if (newVal === value || (newVal !== newVal && value !== value)) {
1270
- return
1271
- }
1272
- /* eslint-enable no-self-compare */
1273
- if (process.env.NODE_ENV !== 'production' && customSetter) {
1274
- customSetter();
1275
- }
1276
- // #7981: for accessor properties without setter
1277
- if (getter && !setter) { return }
1278
- if (setter) {
1279
- setter.call(obj, newVal);
1280
- } else {
1281
- val = newVal;
1282
- }
1283
- childOb = !shallow && observe(newVal);
1284
- dep.notify();
1285
- }
1286
- });
1287
- }
1288
-
1289
- /**
1290
- * Set a property on an object. Adds the new property and
1291
- * triggers change notification if the property doesn't
1292
- * already exist.
1293
- */
1294
- function set (target, key, val) {
1295
- if (process.env.NODE_ENV !== 'production' &&
1296
- (isUndef(target) || isPrimitive(target))
1297
- ) {
1298
- warn(("Cannot set reactive property on undefined, null, or primitive value: " + ((target))));
1299
- }
1300
- if (Array.isArray(target) && isValidArrayIndex(key)) {
1301
- target.length = Math.max(target.length, key);
1302
- target.splice(key, 1, val);
1303
- return val
1304
- }
1305
- if (key in target && !(key in Object.prototype)) {
1306
- target[key] = val;
1307
- return val
1308
- }
1309
- var ob = (target).__ob__;
1310
- if (target._isVue || (ob && ob.vmCount)) {
1311
- process.env.NODE_ENV !== 'production' && warn(
1312
- 'Avoid adding reactive properties to a Vue instance or its root $data ' +
1313
- 'at runtime - declare it upfront in the data option.'
1314
- );
1315
- return val
1316
- }
1317
- if (!ob) {
1318
- target[key] = val;
1319
- return val
1320
- }
1321
- defineReactive$$1(ob.value, key, val);
1322
- ob.dep.notify();
1323
- return val
1324
- }
1325
-
1326
- /**
1327
- * Delete a property and trigger change if necessary.
1328
- */
1329
- function del (target, key) {
1330
- if (process.env.NODE_ENV !== 'production' &&
1331
- (isUndef(target) || isPrimitive(target))
1332
- ) {
1333
- warn(("Cannot delete reactive property on undefined, null, or primitive value: " + ((target))));
1334
- }
1335
- if (Array.isArray(target) && isValidArrayIndex(key)) {
1336
- target.splice(key, 1);
1337
- return
1338
- }
1339
- var ob = (target).__ob__;
1340
- if (target._isVue || (ob && ob.vmCount)) {
1341
- process.env.NODE_ENV !== 'production' && warn(
1342
- 'Avoid deleting properties on a Vue instance or its root $data ' +
1343
- '- just set it to null.'
1344
- );
1345
- return
1346
- }
1347
- if (!hasOwn(target, key)) {
1348
- return
1349
- }
1350
- delete target[key];
1351
- if (!ob) {
1352
- return
1353
- }
1354
- ob.dep.notify();
1355
- }
1356
-
1357
- /**
1358
- * Collect dependencies on array elements when the array is touched, since
1359
- * we cannot intercept array element access like property getters.
1360
- */
1361
- function dependArray (value) {
1362
- for (var e = (void 0), i = 0, l = value.length; i < l; i++) {
1363
- e = value[i];
1364
- e && e.__ob__ && e.__ob__.dep.depend();
1365
- if (Array.isArray(e)) {
1366
- dependArray(e);
1367
- }
1368
- }
1369
- }
1370
-
1371
- /* */
1372
-
1373
- /**
1374
- * Option overwriting strategies are functions that handle
1375
- * how to merge a parent option value and a child option
1376
- * value into the final value.
1377
- */
1378
- var strats = config.optionMergeStrategies;
1379
-
1380
- /**
1381
- * Options with restrictions
1382
- */
1383
- if (process.env.NODE_ENV !== 'production') {
1384
- strats.el = strats.propsData = function (parent, child, vm, key) {
1385
- if (!vm) {
1386
- warn(
1387
- "option \"" + key + "\" can only be used during instance " +
1388
- 'creation with the `new` keyword.'
1389
- );
1390
- }
1391
- return defaultStrat(parent, child)
1392
- };
1393
- }
1394
-
1395
- /**
1396
- * Helper that recursively merges two data objects together.
1397
- */
1398
- function mergeData (to, from) {
1399
- if (!from) { return to }
1400
- var key, toVal, fromVal;
1401
-
1402
- var keys = hasSymbol
1403
- ? Reflect.ownKeys(from)
1404
- : Object.keys(from);
1405
-
1406
- for (var i = 0; i < keys.length; i++) {
1407
- key = keys[i];
1408
- // in case the object is already observed...
1409
- if (key === '__ob__') { continue }
1410
- toVal = to[key];
1411
- fromVal = from[key];
1412
- if (!hasOwn(to, key)) {
1413
- set(to, key, fromVal);
1414
- } else if (
1415
- toVal !== fromVal &&
1416
- isPlainObject(toVal) &&
1417
- isPlainObject(fromVal)
1418
- ) {
1419
- mergeData(toVal, fromVal);
1420
- }
1421
- }
1422
- return to
1423
- }
1424
-
1425
- /**
1426
- * Data
1427
- */
1428
- function mergeDataOrFn (
1429
- parentVal,
1430
- childVal,
1431
- vm
1432
- ) {
1433
- if (!vm) {
1434
- // in a Vue.extend merge, both should be functions
1435
- if (!childVal) {
1436
- return parentVal
1437
- }
1438
- if (!parentVal) {
1439
- return childVal
1440
- }
1441
- // when parentVal & childVal are both present,
1442
- // we need to return a function that returns the
1443
- // merged result of both functions... no need to
1444
- // check if parentVal is a function here because
1445
- // it has to be a function to pass previous merges.
1446
- return function mergedDataFn () {
1447
- return mergeData(
1448
- typeof childVal === 'function' ? childVal.call(this, this) : childVal,
1449
- typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal
1450
- )
1451
- }
1452
- } else {
1453
- return function mergedInstanceDataFn () {
1454
- // instance merge
1455
- var instanceData = typeof childVal === 'function'
1456
- ? childVal.call(vm, vm)
1457
- : childVal;
1458
- var defaultData = typeof parentVal === 'function'
1459
- ? parentVal.call(vm, vm)
1460
- : parentVal;
1461
- if (instanceData) {
1462
- return mergeData(instanceData, defaultData)
1463
- } else {
1464
- return defaultData
1465
- }
1466
- }
1467
- }
1468
- }
1469
-
1470
- strats.data = function (
1471
- parentVal,
1472
- childVal,
1473
- vm
1474
- ) {
1475
- if (!vm) {
1476
- if (childVal && typeof childVal !== 'function') {
1477
- process.env.NODE_ENV !== 'production' && warn(
1478
- 'The "data" option should be a function ' +
1479
- 'that returns a per-instance value in component ' +
1480
- 'definitions.',
1481
- vm
1482
- );
1483
-
1484
- return parentVal
1485
- }
1486
- return mergeDataOrFn(parentVal, childVal)
1487
- }
1488
-
1489
- return mergeDataOrFn(parentVal, childVal, vm)
1490
- };
1491
-
1492
- /**
1493
- * Hooks and props are merged as arrays.
1494
- */
1495
- function mergeHook (
1496
- parentVal,
1497
- childVal
1498
- ) {
1499
- var res = childVal
1500
- ? parentVal
1501
- ? parentVal.concat(childVal)
1502
- : Array.isArray(childVal)
1503
- ? childVal
1504
- : [childVal]
1505
- : parentVal;
1506
- return res
1507
- ? dedupeHooks(res)
1508
- : res
1509
- }
1510
-
1511
- function dedupeHooks (hooks) {
1512
- var res = [];
1513
- for (var i = 0; i < hooks.length; i++) {
1514
- if (res.indexOf(hooks[i]) === -1) {
1515
- res.push(hooks[i]);
1516
- }
1517
- }
1518
- return res
1519
- }
1520
-
1521
- LIFECYCLE_HOOKS.forEach(function (hook) {
1522
- strats[hook] = mergeHook;
1523
- });
1524
-
1525
- /**
1526
- * Assets
1527
- *
1528
- * When a vm is present (instance creation), we need to do
1529
- * a three-way merge between constructor options, instance
1530
- * options and parent options.
1531
- */
1532
- function mergeAssets (
1533
- parentVal,
1534
- childVal,
1535
- vm,
1536
- key
1537
- ) {
1538
- var res = Object.create(parentVal || null);
1539
- if (childVal) {
1540
- process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);
1541
- return extend(res, childVal)
1542
- } else {
1543
- return res
1544
- }
1545
- }
1546
-
1547
- ASSET_TYPES.forEach(function (type) {
1548
- strats[type + 's'] = mergeAssets;
1549
- });
1550
-
1551
- /**
1552
- * Watchers.
1553
- *
1554
- * Watchers hashes should not overwrite one
1555
- * another, so we merge them as arrays.
1556
- */
1557
- strats.watch = function (
1558
- parentVal,
1559
- childVal,
1560
- vm,
1561
- key
1562
- ) {
1563
- // work around Firefox's Object.prototype.watch...
1564
- if (parentVal === nativeWatch) { parentVal = undefined; }
1565
- if (childVal === nativeWatch) { childVal = undefined; }
1566
- /* istanbul ignore if */
1567
- if (!childVal) { return Object.create(parentVal || null) }
1568
- if (process.env.NODE_ENV !== 'production') {
1569
- assertObjectType(key, childVal, vm);
1570
- }
1571
- if (!parentVal) { return childVal }
1572
- var ret = {};
1573
- extend(ret, parentVal);
1574
- for (var key$1 in childVal) {
1575
- var parent = ret[key$1];
1576
- var child = childVal[key$1];
1577
- if (parent && !Array.isArray(parent)) {
1578
- parent = [parent];
1579
- }
1580
- ret[key$1] = parent
1581
- ? parent.concat(child)
1582
- : Array.isArray(child) ? child : [child];
1583
- }
1584
- return ret
1585
- };
1586
-
1587
- /**
1588
- * Other object hashes.
1589
- */
1590
- strats.props =
1591
- strats.methods =
1592
- strats.inject =
1593
- strats.computed = function (
1594
- parentVal,
1595
- childVal,
1596
- vm,
1597
- key
1598
- ) {
1599
- if (childVal && process.env.NODE_ENV !== 'production') {
1600
- assertObjectType(key, childVal, vm);
1601
- }
1602
- if (!parentVal) { return childVal }
1603
- var ret = Object.create(null);
1604
- extend(ret, parentVal);
1605
- if (childVal) { extend(ret, childVal); }
1606
- return ret
1607
- };
1608
- strats.provide = mergeDataOrFn;
1609
-
1610
- /**
1611
- * Default strategy.
1612
- */
1613
- var defaultStrat = function (parentVal, childVal) {
1614
- return childVal === undefined
1615
- ? parentVal
1616
- : childVal
1617
- };
1618
-
1619
- /**
1620
- * Validate component names
1621
- */
1622
- function checkComponents (options) {
1623
- for (var key in options.components) {
1624
- validateComponentName(key);
1625
- }
1626
- }
1627
-
1628
- function validateComponentName (name) {
1629
- if (!new RegExp(("^[a-zA-Z][\\-\\.0-9_" + (unicodeRegExp.source) + "]*$")).test(name)) {
1630
- warn(
1631
- 'Invalid component name: "' + name + '". Component names ' +
1632
- 'should conform to valid custom element name in html5 specification.'
1633
- );
1634
- }
1635
- if (isBuiltInTag(name) || config.isReservedTag(name)) {
1636
- warn(
1637
- 'Do not use built-in or reserved HTML elements as component ' +
1638
- 'id: ' + name
1639
- );
1640
- }
1641
- }
1642
-
1643
- /**
1644
- * Ensure all props option syntax are normalized into the
1645
- * Object-based format.
1646
- */
1647
- function normalizeProps (options, vm) {
1648
- var props = options.props;
1649
- if (!props) { return }
1650
- var res = {};
1651
- var i, val, name;
1652
- if (Array.isArray(props)) {
1653
- i = props.length;
1654
- while (i--) {
1655
- val = props[i];
1656
- if (typeof val === 'string') {
1657
- name = camelize(val);
1658
- res[name] = { type: null };
1659
- } else if (process.env.NODE_ENV !== 'production') {
1660
- warn('props must be strings when using array syntax.');
1661
- }
1662
- }
1663
- } else if (isPlainObject(props)) {
1664
- for (var key in props) {
1665
- val = props[key];
1666
- name = camelize(key);
1667
- res[name] = isPlainObject(val)
1668
- ? val
1669
- : { type: val };
1670
- }
1671
- } else if (process.env.NODE_ENV !== 'production') {
1672
- warn(
1673
- "Invalid value for option \"props\": expected an Array or an Object, " +
1674
- "but got " + (toRawType(props)) + ".",
1675
- vm
1676
- );
1677
- }
1678
- options.props = res;
1679
- }
1680
-
1681
- /**
1682
- * Normalize all injections into Object-based format
1683
- */
1684
- function normalizeInject (options, vm) {
1685
- var inject = options.inject;
1686
- if (!inject) { return }
1687
- var normalized = options.inject = {};
1688
- if (Array.isArray(inject)) {
1689
- for (var i = 0; i < inject.length; i++) {
1690
- normalized[inject[i]] = { from: inject[i] };
1691
- }
1692
- } else if (isPlainObject(inject)) {
1693
- for (var key in inject) {
1694
- var val = inject[key];
1695
- normalized[key] = isPlainObject(val)
1696
- ? extend({ from: key }, val)
1697
- : { from: val };
1698
- }
1699
- } else if (process.env.NODE_ENV !== 'production') {
1700
- warn(
1701
- "Invalid value for option \"inject\": expected an Array or an Object, " +
1702
- "but got " + (toRawType(inject)) + ".",
1703
- vm
1704
- );
1705
- }
1706
- }
1707
-
1708
- /**
1709
- * Normalize raw function directives into object format.
1710
- */
1711
- function normalizeDirectives (options) {
1712
- var dirs = options.directives;
1713
- if (dirs) {
1714
- for (var key in dirs) {
1715
- var def$$1 = dirs[key];
1716
- if (typeof def$$1 === 'function') {
1717
- dirs[key] = { bind: def$$1, update: def$$1 };
1718
- }
1719
- }
1720
- }
1721
- }
1722
-
1723
- function assertObjectType (name, value, vm) {
1724
- if (!isPlainObject(value)) {
1725
- warn(
1726
- "Invalid value for option \"" + name + "\": expected an Object, " +
1727
- "but got " + (toRawType(value)) + ".",
1728
- vm
1729
- );
1730
- }
1731
- }
1732
-
1733
- /**
1734
- * Merge two option objects into a new one.
1735
- * Core utility used in both instantiation and inheritance.
1736
- */
1737
- function mergeOptions (
1738
- parent,
1739
- child,
1740
- vm
1741
- ) {
1742
- if (process.env.NODE_ENV !== 'production') {
1743
- checkComponents(child);
1744
- }
1745
-
1746
- if (typeof child === 'function') {
1747
- child = child.options;
1748
- }
1749
-
1750
- normalizeProps(child, vm);
1751
- normalizeInject(child, vm);
1752
- normalizeDirectives(child);
1753
-
1754
- // Apply extends and mixins on the child options,
1755
- // but only if it is a raw options object that isn't
1756
- // the result of another mergeOptions call.
1757
- // Only merged options has the _base property.
1758
- if (!child._base) {
1759
- if (child.extends) {
1760
- parent = mergeOptions(parent, child.extends, vm);
1761
- }
1762
- if (child.mixins) {
1763
- for (var i = 0, l = child.mixins.length; i < l; i++) {
1764
- parent = mergeOptions(parent, child.mixins[i], vm);
1765
- }
1766
- }
1767
- }
1768
-
1769
- var options = {};
1770
- var key;
1771
- for (key in parent) {
1772
- mergeField(key);
1773
- }
1774
- for (key in child) {
1775
- if (!hasOwn(parent, key)) {
1776
- mergeField(key);
1777
- }
1778
- }
1779
- function mergeField (key) {
1780
- var strat = strats[key] || defaultStrat;
1781
- options[key] = strat(parent[key], child[key], vm, key);
1782
- }
1783
- return options
1784
- }
1785
-
1786
- /**
1787
- * Resolve an asset.
1788
- * This function is used because child instances need access
1789
- * to assets defined in its ancestor chain.
1790
- */
1791
- function resolveAsset (
1792
- options,
1793
- type,
1794
- id,
1795
- warnMissing
1796
- ) {
1797
- /* istanbul ignore if */
1798
- if (typeof id !== 'string') {
1799
- return
1800
- }
1801
- var assets = options[type];
1802
- // check local registration variations first
1803
- if (hasOwn(assets, id)) { return assets[id] }
1804
- var camelizedId = camelize(id);
1805
- if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }
1806
- var PascalCaseId = capitalize(camelizedId);
1807
- if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }
1808
- // fallback to prototype chain
1809
- var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];
1810
- if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {
1811
- warn(
1812
- 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,
1813
- options
1814
- );
1815
- }
1816
- return res
1817
- }
1818
-
1819
- /* */
1820
-
1821
-
1822
-
1823
- function validateProp (
1824
- key,
1825
- propOptions,
1826
- propsData,
1827
- vm
1828
- ) {
1829
- var prop = propOptions[key];
1830
- var absent = !hasOwn(propsData, key);
1831
- var value = propsData[key];
1832
- // boolean casting
1833
- var booleanIndex = getTypeIndex(Boolean, prop.type);
1834
- if (booleanIndex > -1) {
1835
- if (absent && !hasOwn(prop, 'default')) {
1836
- value = false;
1837
- } else if (value === '' || value === hyphenate(key)) {
1838
- // only cast empty string / same name to boolean if
1839
- // boolean has higher priority
1840
- var stringIndex = getTypeIndex(String, prop.type);
1841
- if (stringIndex < 0 || booleanIndex < stringIndex) {
1842
- value = true;
1843
- }
1844
- }
1845
- }
1846
- // check default value
1847
- if (value === undefined) {
1848
- value = getPropDefaultValue(vm, prop, key);
1849
- // since the default value is a fresh copy,
1850
- // make sure to observe it.
1851
- var prevShouldObserve = shouldObserve;
1852
- toggleObserving(true);
1853
- observe(value);
1854
- toggleObserving(prevShouldObserve);
1855
- }
1856
- if (
1857
- process.env.NODE_ENV !== 'production' &&
1858
- // skip validation for weex recycle-list child component props
1859
- !(false)
1860
- ) {
1861
- assertProp(prop, key, value, vm, absent);
1862
- }
1863
- return value
1864
- }
1865
-
1866
- /**
1867
- * Get the default value of a prop.
1868
- */
1869
- function getPropDefaultValue (vm, prop, key) {
1870
- // no default, return undefined
1871
- if (!hasOwn(prop, 'default')) {
1872
- return undefined
1873
- }
1874
- var def = prop.default;
1875
- // warn against non-factory defaults for Object & Array
1876
- if (process.env.NODE_ENV !== 'production' && isObject(def)) {
1877
- warn(
1878
- 'Invalid default value for prop "' + key + '": ' +
1879
- 'Props with type Object/Array must use a factory function ' +
1880
- 'to return the default value.',
1881
- vm
1882
- );
1883
- }
1884
- // the raw prop value was also undefined from previous render,
1885
- // return previous default value to avoid unnecessary watcher trigger
1886
- if (vm && vm.$options.propsData &&
1887
- vm.$options.propsData[key] === undefined &&
1888
- vm._props[key] !== undefined
1889
- ) {
1890
- return vm._props[key]
1891
- }
1892
- // call factory function for non-Function types
1893
- // a value is Function if its prototype is function even across different execution context
1894
- return typeof def === 'function' && getType(prop.type) !== 'Function'
1895
- ? def.call(vm)
1896
- : def
1897
- }
1898
-
1899
- /**
1900
- * Assert whether a prop is valid.
1901
- */
1902
- function assertProp (
1903
- prop,
1904
- name,
1905
- value,
1906
- vm,
1907
- absent
1908
- ) {
1909
- if (prop.required && absent) {
1910
- warn(
1911
- 'Missing required prop: "' + name + '"',
1912
- vm
1913
- );
1914
- return
1915
- }
1916
- if (value == null && !prop.required) {
1917
- return
1918
- }
1919
- var type = prop.type;
1920
- var valid = !type || type === true;
1921
- var expectedTypes = [];
1922
- if (type) {
1923
- if (!Array.isArray(type)) {
1924
- type = [type];
1925
- }
1926
- for (var i = 0; i < type.length && !valid; i++) {
1927
- var assertedType = assertType(value, type[i], vm);
1928
- expectedTypes.push(assertedType.expectedType || '');
1929
- valid = assertedType.valid;
1930
- }
1931
- }
1932
-
1933
- var haveExpectedTypes = expectedTypes.some(function (t) { return t; });
1934
- if (!valid && haveExpectedTypes) {
1935
- warn(
1936
- getInvalidTypeMessage(name, value, expectedTypes),
1937
- vm
1938
- );
1939
- return
1940
- }
1941
- var validator = prop.validator;
1942
- if (validator) {
1943
- if (!validator(value)) {
1944
- warn(
1945
- 'Invalid prop: custom validator check failed for prop "' + name + '".',
1946
- vm
1947
- );
1948
- }
1949
- }
1950
- }
1951
-
1952
- var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol|BigInt)$/;
1953
-
1954
- function assertType (value, type, vm) {
1955
- var valid;
1956
- var expectedType = getType(type);
1957
- if (simpleCheckRE.test(expectedType)) {
1958
- var t = typeof value;
1959
- valid = t === expectedType.toLowerCase();
1960
- // for primitive wrapper objects
1961
- if (!valid && t === 'object') {
1962
- valid = value instanceof type;
1963
- }
1964
- } else if (expectedType === 'Object') {
1965
- valid = isPlainObject(value);
1966
- } else if (expectedType === 'Array') {
1967
- valid = Array.isArray(value);
1968
- } else {
1969
- try {
1970
- valid = value instanceof type;
1971
- } catch (e) {
1972
- warn('Invalid prop type: "' + String(type) + '" is not a constructor', vm);
1973
- valid = false;
1974
- }
1975
- }
1976
- return {
1977
- valid: valid,
1978
- expectedType: expectedType
1979
- }
1980
- }
1981
-
1982
- var functionTypeCheckRE = /^\s*function (\w+)/;
1983
-
1984
- /**
1985
- * Use function string name to check built-in types,
1986
- * because a simple equality check will fail when running
1987
- * across different vms / iframes.
1988
- */
1989
- function getType (fn) {
1990
- var match = fn && fn.toString().match(functionTypeCheckRE);
1991
- return match ? match[1] : ''
1992
- }
1993
-
1994
- function isSameType (a, b) {
1995
- return getType(a) === getType(b)
1996
- }
1997
-
1998
- function getTypeIndex (type, expectedTypes) {
1999
- if (!Array.isArray(expectedTypes)) {
2000
- return isSameType(expectedTypes, type) ? 0 : -1
2001
- }
2002
- for (var i = 0, len = expectedTypes.length; i < len; i++) {
2003
- if (isSameType(expectedTypes[i], type)) {
2004
- return i
2005
- }
2006
- }
2007
- return -1
2008
- }
2009
-
2010
- function getInvalidTypeMessage (name, value, expectedTypes) {
2011
- var message = "Invalid prop: type check failed for prop \"" + name + "\"." +
2012
- " Expected " + (expectedTypes.map(capitalize).join(', '));
2013
- var expectedType = expectedTypes[0];
2014
- var receivedType = toRawType(value);
2015
- // check if we need to specify expected value
2016
- if (
2017
- expectedTypes.length === 1 &&
2018
- isExplicable(expectedType) &&
2019
- isExplicable(typeof value) &&
2020
- !isBoolean(expectedType, receivedType)
2021
- ) {
2022
- message += " with value " + (styleValue(value, expectedType));
2023
- }
2024
- message += ", got " + receivedType + " ";
2025
- // check if we need to specify received value
2026
- if (isExplicable(receivedType)) {
2027
- message += "with value " + (styleValue(value, receivedType)) + ".";
2028
- }
2029
- return message
2030
- }
2031
-
2032
- function styleValue (value, type) {
2033
- if (type === 'String') {
2034
- return ("\"" + value + "\"")
2035
- } else if (type === 'Number') {
2036
- return ("" + (Number(value)))
2037
- } else {
2038
- return ("" + value)
2039
- }
2040
- }
2041
-
2042
- var EXPLICABLE_TYPES = ['string', 'number', 'boolean'];
2043
- function isExplicable (value) {
2044
- return EXPLICABLE_TYPES.some(function (elem) { return value.toLowerCase() === elem; })
2045
- }
2046
-
2047
- function isBoolean () {
2048
- var args = [], len = arguments.length;
2049
- while ( len-- ) args[ len ] = arguments[ len ];
2050
-
2051
- return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })
2052
- }
2053
-
2054
- /* */
2055
-
2056
- function handleError (err, vm, info) {
2057
- // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.
2058
- // See: https://github.com/vuejs/vuex/issues/1505
2059
- pushTarget();
2060
- try {
2061
- if (vm) {
2062
- var cur = vm;
2063
- while ((cur = cur.$parent)) {
2064
- var hooks = cur.$options.errorCaptured;
2065
- if (hooks) {
2066
- for (var i = 0; i < hooks.length; i++) {
2067
- try {
2068
- var capture = hooks[i].call(cur, err, vm, info) === false;
2069
- if (capture) { return }
2070
- } catch (e) {
2071
- globalHandleError(e, cur, 'errorCaptured hook');
2072
- }
2073
- }
2074
- }
2075
- }
2076
- }
2077
- globalHandleError(err, vm, info);
2078
- } finally {
2079
- popTarget();
2080
- }
2081
- }
2082
-
2083
- function invokeWithErrorHandling (
2084
- handler,
2085
- context,
2086
- args,
2087
- vm,
2088
- info
2089
- ) {
2090
- var res;
2091
- try {
2092
- res = args ? handler.apply(context, args) : handler.call(context);
2093
- if (res && !res._isVue && isPromise(res) && !res._handled) {
2094
- res.catch(function (e) { return handleError(e, vm, info + " (Promise/async)"); });
2095
- // issue #9511
2096
- // avoid catch triggering multiple times when nested calls
2097
- res._handled = true;
2098
- }
2099
- } catch (e) {
2100
- handleError(e, vm, info);
2101
- }
2102
- return res
2103
- }
2104
-
2105
- function globalHandleError (err, vm, info) {
2106
- if (config.errorHandler) {
2107
- try {
2108
- return config.errorHandler.call(null, err, vm, info)
2109
- } catch (e) {
2110
- // if the user intentionally throws the original error in the handler,
2111
- // do not log it twice
2112
- if (e !== err) {
2113
- logError(e, null, 'config.errorHandler');
2114
- }
2115
- }
2116
- }
2117
- logError(err, vm, info);
2118
- }
2119
-
2120
- function logError (err, vm, info) {
2121
- if (process.env.NODE_ENV !== 'production') {
2122
- warn(("Error in " + info + ": \"" + (err.toString()) + "\""), vm);
2123
- }
2124
- /* istanbul ignore else */
2125
- if ((inBrowser || inWeex) && typeof console !== 'undefined') {
2126
- console.error(err);
2127
- } else {
2128
- throw err
2129
- }
2130
- }
2131
-
2132
- /* */
2133
-
2134
- var isUsingMicroTask = false;
2135
-
2136
- var callbacks = [];
2137
- var pending = false;
2138
-
2139
- function flushCallbacks () {
2140
- pending = false;
2141
- var copies = callbacks.slice(0);
2142
- callbacks.length = 0;
2143
- for (var i = 0; i < copies.length; i++) {
2144
- copies[i]();
2145
- }
2146
- }
2147
-
2148
- // Here we have async deferring wrappers using microtasks.
2149
- // In 2.5 we used (macro) tasks (in combination with microtasks).
2150
- // However, it has subtle problems when state is changed right before repaint
2151
- // (e.g. #6813, out-in transitions).
2152
- // Also, using (macro) tasks in event handler would cause some weird behaviors
2153
- // that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).
2154
- // So we now use microtasks everywhere, again.
2155
- // A major drawback of this tradeoff is that there are some scenarios
2156
- // where microtasks have too high a priority and fire in between supposedly
2157
- // sequential events (e.g. #4521, #6690, which have workarounds)
2158
- // or even between bubbling of the same event (#6566).
2159
- var timerFunc;
2160
-
2161
- // The nextTick behavior leverages the microtask queue, which can be accessed
2162
- // via either native Promise.then or MutationObserver.
2163
- // MutationObserver has wider support, however it is seriously bugged in
2164
- // UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It
2165
- // completely stops working after triggering a few times... so, if native
2166
- // Promise is available, we will use it:
2167
- /* istanbul ignore next, $flow-disable-line */
2168
- if (typeof Promise !== 'undefined' && isNative(Promise)) {
2169
- var p = Promise.resolve();
2170
- timerFunc = function () {
2171
- p.then(flushCallbacks);
2172
- // In problematic UIWebViews, Promise.then doesn't completely break, but
2173
- // it can get stuck in a weird state where callbacks are pushed into the
2174
- // microtask queue but the queue isn't being flushed, until the browser
2175
- // needs to do some other work, e.g. handle a timer. Therefore we can
2176
- // "force" the microtask queue to be flushed by adding an empty timer.
2177
- if (isIOS) { setTimeout(noop); }
2178
- };
2179
- isUsingMicroTask = true;
2180
- } else if (!isIE && typeof MutationObserver !== 'undefined' && (
2181
- isNative(MutationObserver) ||
2182
- // PhantomJS and iOS 7.x
2183
- MutationObserver.toString() === '[object MutationObserverConstructor]'
2184
- )) {
2185
- // Use MutationObserver where native Promise is not available,
2186
- // e.g. PhantomJS, iOS7, Android 4.4
2187
- // (#6466 MutationObserver is unreliable in IE11)
2188
- var counter = 1;
2189
- var observer = new MutationObserver(flushCallbacks);
2190
- var textNode = document.createTextNode(String(counter));
2191
- observer.observe(textNode, {
2192
- characterData: true
2193
- });
2194
- timerFunc = function () {
2195
- counter = (counter + 1) % 2;
2196
- textNode.data = String(counter);
2197
- };
2198
- isUsingMicroTask = true;
2199
- } else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {
2200
- // Fallback to setImmediate.
2201
- // Technically it leverages the (macro) task queue,
2202
- // but it is still a better choice than setTimeout.
2203
- timerFunc = function () {
2204
- setImmediate(flushCallbacks);
2205
- };
2206
- } else {
2207
- // Fallback to setTimeout.
2208
- timerFunc = function () {
2209
- setTimeout(flushCallbacks, 0);
2210
- };
2211
- }
2212
-
2213
- function nextTick (cb, ctx) {
2214
- var _resolve;
2215
- callbacks.push(function () {
2216
- if (cb) {
2217
- try {
2218
- cb.call(ctx);
2219
- } catch (e) {
2220
- handleError(e, ctx, 'nextTick');
2221
- }
2222
- } else if (_resolve) {
2223
- _resolve(ctx);
2224
- }
2225
- });
2226
- if (!pending) {
2227
- pending = true;
2228
- timerFunc();
2229
- }
2230
- // $flow-disable-line
2231
- if (!cb && typeof Promise !== 'undefined') {
2232
- return new Promise(function (resolve) {
2233
- _resolve = resolve;
2234
- })
2235
- }
2236
- }
2237
-
2238
- /* */
2239
-
2240
- var mark;
2241
- var measure;
2242
-
2243
- if (process.env.NODE_ENV !== 'production') {
2244
- var perf = inBrowser && window.performance;
2245
- /* istanbul ignore if */
2246
- if (
2247
- perf &&
2248
- perf.mark &&
2249
- perf.measure &&
2250
- perf.clearMarks &&
2251
- perf.clearMeasures
2252
- ) {
2253
- mark = function (tag) { return perf.mark(tag); };
2254
- measure = function (name, startTag, endTag) {
2255
- perf.measure(name, startTag, endTag);
2256
- perf.clearMarks(startTag);
2257
- perf.clearMarks(endTag);
2258
- // perf.clearMeasures(name)
2259
- };
2260
- }
2261
- }
2262
-
2263
- /* not type checking this file because flow doesn't play well with Proxy */
2264
-
2265
- var initProxy;
2266
-
2267
- if (process.env.NODE_ENV !== 'production') {
2268
- var allowedGlobals = makeMap(
2269
- 'Infinity,undefined,NaN,isFinite,isNaN,' +
2270
- 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +
2271
- 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,' +
2272
- 'require' // for Webpack/Browserify
2273
- );
2274
-
2275
- var warnNonPresent = function (target, key) {
2276
- warn(
2277
- "Property or method \"" + key + "\" is not defined on the instance but " +
2278
- 'referenced during render. Make sure that this property is reactive, ' +
2279
- 'either in the data option, or for class-based components, by ' +
2280
- 'initializing the property. ' +
2281
- 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',
2282
- target
2283
- );
2284
- };
2285
-
2286
- var warnReservedPrefix = function (target, key) {
2287
- warn(
2288
- "Property \"" + key + "\" must be accessed with \"$data." + key + "\" because " +
2289
- 'properties starting with "$" or "_" are not proxied in the Vue instance to ' +
2290
- 'prevent conflicts with Vue internals. ' +
2291
- 'See: https://vuejs.org/v2/api/#data',
2292
- target
2293
- );
2294
- };
2295
-
2296
- var hasProxy =
2297
- typeof Proxy !== 'undefined' && isNative(Proxy);
2298
-
2299
- if (hasProxy) {
2300
- var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');
2301
- config.keyCodes = new Proxy(config.keyCodes, {
2302
- set: function set (target, key, value) {
2303
- if (isBuiltInModifier(key)) {
2304
- warn(("Avoid overwriting built-in modifier in config.keyCodes: ." + key));
2305
- return false
2306
- } else {
2307
- target[key] = value;
2308
- return true
2309
- }
2310
- }
2311
- });
2312
- }
2313
-
2314
- var hasHandler = {
2315
- has: function has (target, key) {
2316
- var has = key in target;
2317
- var isAllowed = allowedGlobals(key) ||
2318
- (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));
2319
- if (!has && !isAllowed) {
2320
- if (key in target.$data) { warnReservedPrefix(target, key); }
2321
- else { warnNonPresent(target, key); }
2322
- }
2323
- return has || !isAllowed
2324
- }
2325
- };
2326
-
2327
- var getHandler = {
2328
- get: function get (target, key) {
2329
- if (typeof key === 'string' && !(key in target)) {
2330
- if (key in target.$data) { warnReservedPrefix(target, key); }
2331
- else { warnNonPresent(target, key); }
2332
- }
2333
- return target[key]
2334
- }
2335
- };
2336
-
2337
- initProxy = function initProxy (vm) {
2338
- if (hasProxy) {
2339
- // determine which proxy handler to use
2340
- var options = vm.$options;
2341
- var handlers = options.render && options.render._withStripped
2342
- ? getHandler
2343
- : hasHandler;
2344
- vm._renderProxy = new Proxy(vm, handlers);
2345
- } else {
2346
- vm._renderProxy = vm;
2347
- }
2348
- };
2349
- }
2350
-
2351
- /* */
2352
-
2353
- var seenObjects = new _Set();
2354
-
2355
- /**
2356
- * Recursively traverse an object to evoke all converted
2357
- * getters, so that every nested property inside the object
2358
- * is collected as a "deep" dependency.
2359
- */
2360
- function traverse (val) {
2361
- _traverse(val, seenObjects);
2362
- seenObjects.clear();
2363
- }
2364
-
2365
- function _traverse (val, seen) {
2366
- var i, keys;
2367
- var isA = Array.isArray(val);
2368
- if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {
2369
- return
2370
- }
2371
- if (val.__ob__) {
2372
- var depId = val.__ob__.dep.id;
2373
- if (seen.has(depId)) {
2374
- return
2375
- }
2376
- seen.add(depId);
2377
- }
2378
- if (isA) {
2379
- i = val.length;
2380
- while (i--) { _traverse(val[i], seen); }
2381
- } else {
2382
- keys = Object.keys(val);
2383
- i = keys.length;
2384
- while (i--) { _traverse(val[keys[i]], seen); }
2385
- }
2386
- }
2387
-
2388
- /* */
2389
-
2390
- var normalizeEvent = cached(function (name) {
2391
- var passive = name.charAt(0) === '&';
2392
- name = passive ? name.slice(1) : name;
2393
- var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first
2394
- name = once$$1 ? name.slice(1) : name;
2395
- var capture = name.charAt(0) === '!';
2396
- name = capture ? name.slice(1) : name;
2397
- return {
2398
- name: name,
2399
- once: once$$1,
2400
- capture: capture,
2401
- passive: passive
2402
- }
2403
- });
2404
-
2405
- function createFnInvoker (fns, vm) {
2406
- function invoker () {
2407
- var arguments$1 = arguments;
2408
-
2409
- var fns = invoker.fns;
2410
- if (Array.isArray(fns)) {
2411
- var cloned = fns.slice();
2412
- for (var i = 0; i < cloned.length; i++) {
2413
- invokeWithErrorHandling(cloned[i], null, arguments$1, vm, "v-on handler");
2414
- }
2415
- } else {
2416
- // return handler return value for single handlers
2417
- return invokeWithErrorHandling(fns, null, arguments, vm, "v-on handler")
2418
- }
2419
- }
2420
- invoker.fns = fns;
2421
- return invoker
2422
- }
2423
-
2424
- function updateListeners (
2425
- on,
2426
- oldOn,
2427
- add,
2428
- remove$$1,
2429
- createOnceHandler,
2430
- vm
2431
- ) {
2432
- var name, def$$1, cur, old, event;
2433
- for (name in on) {
2434
- def$$1 = cur = on[name];
2435
- old = oldOn[name];
2436
- event = normalizeEvent(name);
2437
- if (isUndef(cur)) {
2438
- process.env.NODE_ENV !== 'production' && warn(
2439
- "Invalid handler for event \"" + (event.name) + "\": got " + String(cur),
2440
- vm
2441
- );
2442
- } else if (isUndef(old)) {
2443
- if (isUndef(cur.fns)) {
2444
- cur = on[name] = createFnInvoker(cur, vm);
2445
- }
2446
- if (isTrue(event.once)) {
2447
- cur = on[name] = createOnceHandler(event.name, cur, event.capture);
2448
- }
2449
- add(event.name, cur, event.capture, event.passive, event.params);
2450
- } else if (cur !== old) {
2451
- old.fns = cur;
2452
- on[name] = old;
2453
- }
2454
- }
2455
- for (name in oldOn) {
2456
- if (isUndef(on[name])) {
2457
- event = normalizeEvent(name);
2458
- remove$$1(event.name, oldOn[name], event.capture);
2459
- }
2460
- }
2461
- }
2462
-
2463
- /* */
2464
-
2465
- function mergeVNodeHook (def, hookKey, hook) {
2466
- if (def instanceof VNode) {
2467
- def = def.data.hook || (def.data.hook = {});
2468
- }
2469
- var invoker;
2470
- var oldHook = def[hookKey];
2471
-
2472
- function wrappedHook () {
2473
- hook.apply(this, arguments);
2474
- // important: remove merged hook to ensure it's called only once
2475
- // and prevent memory leak
2476
- remove(invoker.fns, wrappedHook);
2477
- }
2478
-
2479
- if (isUndef(oldHook)) {
2480
- // no existing hook
2481
- invoker = createFnInvoker([wrappedHook]);
2482
- } else {
2483
- /* istanbul ignore if */
2484
- if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {
2485
- // already a merged invoker
2486
- invoker = oldHook;
2487
- invoker.fns.push(wrappedHook);
2488
- } else {
2489
- // existing plain hook
2490
- invoker = createFnInvoker([oldHook, wrappedHook]);
2491
- }
2492
- }
2493
-
2494
- invoker.merged = true;
2495
- def[hookKey] = invoker;
2496
- }
2497
-
2498
- /* */
2499
-
2500
- function extractPropsFromVNodeData (
2501
- data,
2502
- Ctor,
2503
- tag
2504
- ) {
2505
- // we are only extracting raw values here.
2506
- // validation and default values are handled in the child
2507
- // component itself.
2508
- var propOptions = Ctor.options.props;
2509
- if (isUndef(propOptions)) {
2510
- return
2511
- }
2512
- var res = {};
2513
- var attrs = data.attrs;
2514
- var props = data.props;
2515
- if (isDef(attrs) || isDef(props)) {
2516
- for (var key in propOptions) {
2517
- var altKey = hyphenate(key);
2518
- if (process.env.NODE_ENV !== 'production') {
2519
- var keyInLowerCase = key.toLowerCase();
2520
- if (
2521
- key !== keyInLowerCase &&
2522
- attrs && hasOwn(attrs, keyInLowerCase)
2523
- ) {
2524
- tip(
2525
- "Prop \"" + keyInLowerCase + "\" is passed to component " +
2526
- (formatComponentName(tag || Ctor)) + ", but the declared prop name is" +
2527
- " \"" + key + "\". " +
2528
- "Note that HTML attributes are case-insensitive and camelCased " +
2529
- "props need to use their kebab-case equivalents when using in-DOM " +
2530
- "templates. You should probably use \"" + altKey + "\" instead of \"" + key + "\"."
2531
- );
2532
- }
2533
- }
2534
- checkProp(res, props, key, altKey, true) ||
2535
- checkProp(res, attrs, key, altKey, false);
2536
- }
2537
- }
2538
- return res
2539
- }
2540
-
2541
- function checkProp (
2542
- res,
2543
- hash,
2544
- key,
2545
- altKey,
2546
- preserve
2547
- ) {
2548
- if (isDef(hash)) {
2549
- if (hasOwn(hash, key)) {
2550
- res[key] = hash[key];
2551
- if (!preserve) {
2552
- delete hash[key];
2553
- }
2554
- return true
2555
- } else if (hasOwn(hash, altKey)) {
2556
- res[key] = hash[altKey];
2557
- if (!preserve) {
2558
- delete hash[altKey];
2559
- }
2560
- return true
2561
- }
2562
- }
2563
- return false
2564
- }
2565
-
2566
- /* */
2567
-
2568
- // The template compiler attempts to minimize the need for normalization by
2569
- // statically analyzing the template at compile time.
2570
- //
2571
- // For plain HTML markup, normalization can be completely skipped because the
2572
- // generated render function is guaranteed to return Array<VNode>. There are
2573
- // two cases where extra normalization is needed:
2574
-
2575
- // 1. When the children contains components - because a functional component
2576
- // may return an Array instead of a single root. In this case, just a simple
2577
- // normalization is needed - if any child is an Array, we flatten the whole
2578
- // thing with Array.prototype.concat. It is guaranteed to be only 1-level deep
2579
- // because functional components already normalize their own children.
2580
- function simpleNormalizeChildren (children) {
2581
- for (var i = 0; i < children.length; i++) {
2582
- if (Array.isArray(children[i])) {
2583
- return Array.prototype.concat.apply([], children)
2584
- }
2585
- }
2586
- return children
2587
- }
2588
-
2589
- // 2. When the children contains constructs that always generated nested Arrays,
2590
- // e.g. <template>, <slot>, v-for, or when the children is provided by user
2591
- // with hand-written render functions / JSX. In such cases a full normalization
2592
- // is needed to cater to all possible types of children values.
2593
- function normalizeChildren (children) {
2594
- return isPrimitive(children)
2595
- ? [createTextVNode(children)]
2596
- : Array.isArray(children)
2597
- ? normalizeArrayChildren(children)
2598
- : undefined
2599
- }
2600
-
2601
- function isTextNode (node) {
2602
- return isDef(node) && isDef(node.text) && isFalse(node.isComment)
2603
- }
2604
-
2605
- function normalizeArrayChildren (children, nestedIndex) {
2606
- var res = [];
2607
- var i, c, lastIndex, last;
2608
- for (i = 0; i < children.length; i++) {
2609
- c = children[i];
2610
- if (isUndef(c) || typeof c === 'boolean') { continue }
2611
- lastIndex = res.length - 1;
2612
- last = res[lastIndex];
2613
- // nested
2614
- if (Array.isArray(c)) {
2615
- if (c.length > 0) {
2616
- c = normalizeArrayChildren(c, ((nestedIndex || '') + "_" + i));
2617
- // merge adjacent text nodes
2618
- if (isTextNode(c[0]) && isTextNode(last)) {
2619
- res[lastIndex] = createTextVNode(last.text + (c[0]).text);
2620
- c.shift();
2621
- }
2622
- res.push.apply(res, c);
2623
- }
2624
- } else if (isPrimitive(c)) {
2625
- if (isTextNode(last)) {
2626
- // merge adjacent text nodes
2627
- // this is necessary for SSR hydration because text nodes are
2628
- // essentially merged when rendered to HTML strings
2629
- res[lastIndex] = createTextVNode(last.text + c);
2630
- } else if (c !== '') {
2631
- // convert primitive to vnode
2632
- res.push(createTextVNode(c));
2633
- }
2634
- } else {
2635
- if (isTextNode(c) && isTextNode(last)) {
2636
- // merge adjacent text nodes
2637
- res[lastIndex] = createTextVNode(last.text + c.text);
2638
- } else {
2639
- // default key for nested array children (likely generated by v-for)
2640
- if (isTrue(children._isVList) &&
2641
- isDef(c.tag) &&
2642
- isUndef(c.key) &&
2643
- isDef(nestedIndex)) {
2644
- c.key = "__vlist" + nestedIndex + "_" + i + "__";
2645
- }
2646
- res.push(c);
2647
- }
2648
- }
2649
- }
2650
- return res
2651
- }
2652
-
2653
- /* */
2654
-
2655
- function initProvide (vm) {
2656
- var provide = vm.$options.provide;
2657
- if (provide) {
2658
- vm._provided = typeof provide === 'function'
2659
- ? provide.call(vm)
2660
- : provide;
2661
- }
2662
- }
2663
-
2664
- function initInjections (vm) {
2665
- var result = resolveInject(vm.$options.inject, vm);
2666
- if (result) {
2667
- toggleObserving(false);
2668
- Object.keys(result).forEach(function (key) {
2669
- /* istanbul ignore else */
2670
- if (process.env.NODE_ENV !== 'production') {
2671
- defineReactive$$1(vm, key, result[key], function () {
2672
- warn(
2673
- "Avoid mutating an injected value directly since the changes will be " +
2674
- "overwritten whenever the provided component re-renders. " +
2675
- "injection being mutated: \"" + key + "\"",
2676
- vm
2677
- );
2678
- });
2679
- } else {
2680
- defineReactive$$1(vm, key, result[key]);
2681
- }
2682
- });
2683
- toggleObserving(true);
2684
- }
2685
- }
2686
-
2687
- function resolveInject (inject, vm) {
2688
- if (inject) {
2689
- // inject is :any because flow is not smart enough to figure out cached
2690
- var result = Object.create(null);
2691
- var keys = hasSymbol
2692
- ? Reflect.ownKeys(inject)
2693
- : Object.keys(inject);
2694
-
2695
- for (var i = 0; i < keys.length; i++) {
2696
- var key = keys[i];
2697
- // #6574 in case the inject object is observed...
2698
- if (key === '__ob__') { continue }
2699
- var provideKey = inject[key].from;
2700
- var source = vm;
2701
- while (source) {
2702
- if (source._provided && hasOwn(source._provided, provideKey)) {
2703
- result[key] = source._provided[provideKey];
2704
- break
2705
- }
2706
- source = source.$parent;
2707
- }
2708
- if (!source) {
2709
- if ('default' in inject[key]) {
2710
- var provideDefault = inject[key].default;
2711
- result[key] = typeof provideDefault === 'function'
2712
- ? provideDefault.call(vm)
2713
- : provideDefault;
2714
- } else if (process.env.NODE_ENV !== 'production') {
2715
- warn(("Injection \"" + key + "\" not found"), vm);
2716
- }
2717
- }
2718
- }
2719
- return result
2720
- }
2721
- }
2722
-
2723
- /* */
2724
-
2725
-
2726
-
2727
- /**
2728
- * Runtime helper for resolving raw children VNodes into a slot object.
2729
- */
2730
- function resolveSlots (
2731
- children,
2732
- context
2733
- ) {
2734
- if (!children || !children.length) {
2735
- return {}
2736
- }
2737
- var slots = {};
2738
- for (var i = 0, l = children.length; i < l; i++) {
2739
- var child = children[i];
2740
- var data = child.data;
2741
- // remove slot attribute if the node is resolved as a Vue slot node
2742
- if (data && data.attrs && data.attrs.slot) {
2743
- delete data.attrs.slot;
2744
- }
2745
- // named slots should only be respected if the vnode was rendered in the
2746
- // same context.
2747
- if ((child.context === context || child.fnContext === context) &&
2748
- data && data.slot != null
2749
- ) {
2750
- var name = data.slot;
2751
- var slot = (slots[name] || (slots[name] = []));
2752
- if (child.tag === 'template') {
2753
- slot.push.apply(slot, child.children || []);
2754
- } else {
2755
- slot.push(child);
2756
- }
2757
- } else {
2758
- (slots.default || (slots.default = [])).push(child);
2759
- }
2760
- }
2761
- // ignore slots that contains only whitespace
2762
- for (var name$1 in slots) {
2763
- if (slots[name$1].every(isWhitespace)) {
2764
- delete slots[name$1];
2765
- }
2766
- }
2767
- return slots
2768
- }
2769
-
2770
- function isWhitespace (node) {
2771
- return (node.isComment && !node.asyncFactory) || node.text === ' '
2772
- }
2773
-
2774
- /* */
2775
-
2776
- function isAsyncPlaceholder (node) {
2777
- return node.isComment && node.asyncFactory
2778
- }
2779
-
2780
- /* */
2781
-
2782
- function normalizeScopedSlots (
2783
- slots,
2784
- normalSlots,
2785
- prevSlots
2786
- ) {
2787
- var res;
2788
- var hasNormalSlots = Object.keys(normalSlots).length > 0;
2789
- var isStable = slots ? !!slots.$stable : !hasNormalSlots;
2790
- var key = slots && slots.$key;
2791
- if (!slots) {
2792
- res = {};
2793
- } else if (slots._normalized) {
2794
- // fast path 1: child component re-render only, parent did not change
2795
- return slots._normalized
2796
- } else if (
2797
- isStable &&
2798
- prevSlots &&
2799
- prevSlots !== emptyObject &&
2800
- key === prevSlots.$key &&
2801
- !hasNormalSlots &&
2802
- !prevSlots.$hasNormal
2803
- ) {
2804
- // fast path 2: stable scoped slots w/ no normal slots to proxy,
2805
- // only need to normalize once
2806
- return prevSlots
2807
- } else {
2808
- res = {};
2809
- for (var key$1 in slots) {
2810
- if (slots[key$1] && key$1[0] !== '$') {
2811
- res[key$1] = normalizeScopedSlot(normalSlots, key$1, slots[key$1]);
2812
- }
2813
- }
2814
- }
2815
- // expose normal slots on scopedSlots
2816
- for (var key$2 in normalSlots) {
2817
- if (!(key$2 in res)) {
2818
- res[key$2] = proxyNormalSlot(normalSlots, key$2);
2819
- }
2820
- }
2821
- // avoriaz seems to mock a non-extensible $scopedSlots object
2822
- // and when that is passed down this would cause an error
2823
- if (slots && Object.isExtensible(slots)) {
2824
- (slots)._normalized = res;
2825
- }
2826
- def(res, '$stable', isStable);
2827
- def(res, '$key', key);
2828
- def(res, '$hasNormal', hasNormalSlots);
2829
- return res
2830
- }
2831
-
2832
- function normalizeScopedSlot(normalSlots, key, fn) {
2833
- var normalized = function () {
2834
- var res = arguments.length ? fn.apply(null, arguments) : fn({});
2835
- res = res && typeof res === 'object' && !Array.isArray(res)
2836
- ? [res] // single vnode
2837
- : normalizeChildren(res);
2838
- var vnode = res && res[0];
2839
- return res && (
2840
- !vnode ||
2841
- (res.length === 1 && vnode.isComment && !isAsyncPlaceholder(vnode)) // #9658, #10391
2842
- ) ? undefined
2843
- : res
2844
- };
2845
- // this is a slot using the new v-slot syntax without scope. although it is
2846
- // compiled as a scoped slot, render fn users would expect it to be present
2847
- // on this.$slots because the usage is semantically a normal slot.
2848
- if (fn.proxy) {
2849
- Object.defineProperty(normalSlots, key, {
2850
- get: normalized,
2851
- enumerable: true,
2852
- configurable: true
2853
- });
2854
- }
2855
- return normalized
2856
- }
2857
-
2858
- function proxyNormalSlot(slots, key) {
2859
- return function () { return slots[key]; }
2860
- }
2861
-
2862
- /* */
2863
-
2864
- /**
2865
- * Runtime helper for rendering v-for lists.
2866
- */
2867
- function renderList (
2868
- val,
2869
- render
2870
- ) {
2871
- var ret, i, l, keys, key;
2872
- if (Array.isArray(val) || typeof val === 'string') {
2873
- ret = new Array(val.length);
2874
- for (i = 0, l = val.length; i < l; i++) {
2875
- ret[i] = render(val[i], i);
2876
- }
2877
- } else if (typeof val === 'number') {
2878
- ret = new Array(val);
2879
- for (i = 0; i < val; i++) {
2880
- ret[i] = render(i + 1, i);
2881
- }
2882
- } else if (isObject(val)) {
2883
- if (hasSymbol && val[Symbol.iterator]) {
2884
- ret = [];
2885
- var iterator = val[Symbol.iterator]();
2886
- var result = iterator.next();
2887
- while (!result.done) {
2888
- ret.push(render(result.value, ret.length));
2889
- result = iterator.next();
2890
- }
2891
- } else {
2892
- keys = Object.keys(val);
2893
- ret = new Array(keys.length);
2894
- for (i = 0, l = keys.length; i < l; i++) {
2895
- key = keys[i];
2896
- ret[i] = render(val[key], key, i);
2897
- }
2898
- }
2899
- }
2900
- if (!isDef(ret)) {
2901
- ret = [];
2902
- }
2903
- (ret)._isVList = true;
2904
- return ret
2905
- }
2906
-
2907
- /* */
2908
-
2909
- /**
2910
- * Runtime helper for rendering <slot>
2911
- */
2912
- function renderSlot (
2913
- name,
2914
- fallbackRender,
2915
- props,
2916
- bindObject
2917
- ) {
2918
- var scopedSlotFn = this.$scopedSlots[name];
2919
- var nodes;
2920
- if (scopedSlotFn) {
2921
- // scoped slot
2922
- props = props || {};
2923
- if (bindObject) {
2924
- if (process.env.NODE_ENV !== 'production' && !isObject(bindObject)) {
2925
- warn('slot v-bind without argument expects an Object', this);
2926
- }
2927
- props = extend(extend({}, bindObject), props);
2928
- }
2929
- nodes =
2930
- scopedSlotFn(props) ||
2931
- (typeof fallbackRender === 'function' ? fallbackRender() : fallbackRender);
2932
- } else {
2933
- nodes =
2934
- this.$slots[name] ||
2935
- (typeof fallbackRender === 'function' ? fallbackRender() : fallbackRender);
2936
- }
2937
-
2938
- var target = props && props.slot;
2939
- if (target) {
2940
- return this.$createElement('template', { slot: target }, nodes)
2941
- } else {
2942
- return nodes
2943
- }
2944
- }
2945
-
2946
- /* */
2947
-
2948
- /**
2949
- * Runtime helper for resolving filters
2950
- */
2951
- function resolveFilter (id) {
2952
- return resolveAsset(this.$options, 'filters', id, true) || identity
2953
- }
2954
-
2955
- /* */
2956
-
2957
- function isKeyNotMatch (expect, actual) {
2958
- if (Array.isArray(expect)) {
2959
- return expect.indexOf(actual) === -1
2960
- } else {
2961
- return expect !== actual
2962
- }
2963
- }
2964
-
2965
- /**
2966
- * Runtime helper for checking keyCodes from config.
2967
- * exposed as Vue.prototype._k
2968
- * passing in eventKeyName as last argument separately for backwards compat
2969
- */
2970
- function checkKeyCodes (
2971
- eventKeyCode,
2972
- key,
2973
- builtInKeyCode,
2974
- eventKeyName,
2975
- builtInKeyName
2976
- ) {
2977
- var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;
2978
- if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {
2979
- return isKeyNotMatch(builtInKeyName, eventKeyName)
2980
- } else if (mappedKeyCode) {
2981
- return isKeyNotMatch(mappedKeyCode, eventKeyCode)
2982
- } else if (eventKeyName) {
2983
- return hyphenate(eventKeyName) !== key
2984
- }
2985
- return eventKeyCode === undefined
2986
- }
2987
-
2988
- /* */
2989
-
2990
- /**
2991
- * Runtime helper for merging v-bind="object" into a VNode's data.
2992
- */
2993
- function bindObjectProps (
2994
- data,
2995
- tag,
2996
- value,
2997
- asProp,
2998
- isSync
2999
- ) {
3000
- if (value) {
3001
- if (!isObject(value)) {
3002
- process.env.NODE_ENV !== 'production' && warn(
3003
- 'v-bind without argument expects an Object or Array value',
3004
- this
3005
- );
3006
- } else {
3007
- if (Array.isArray(value)) {
3008
- value = toObject(value);
3009
- }
3010
- var hash;
3011
- var loop = function ( key ) {
3012
- if (
3013
- key === 'class' ||
3014
- key === 'style' ||
3015
- isReservedAttribute(key)
3016
- ) {
3017
- hash = data;
3018
- } else {
3019
- var type = data.attrs && data.attrs.type;
3020
- hash = asProp || config.mustUseProp(tag, type, key)
3021
- ? data.domProps || (data.domProps = {})
3022
- : data.attrs || (data.attrs = {});
3023
- }
3024
- var camelizedKey = camelize(key);
3025
- var hyphenatedKey = hyphenate(key);
3026
- if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {
3027
- hash[key] = value[key];
3028
-
3029
- if (isSync) {
3030
- var on = data.on || (data.on = {});
3031
- on[("update:" + key)] = function ($event) {
3032
- value[key] = $event;
3033
- };
3034
- }
3035
- }
3036
- };
3037
-
3038
- for (var key in value) loop( key );
3039
- }
3040
- }
3041
- return data
3042
- }
3043
-
3044
- /* */
3045
-
3046
- /**
3047
- * Runtime helper for rendering static trees.
3048
- */
3049
- function renderStatic (
3050
- index,
3051
- isInFor
3052
- ) {
3053
- var cached = this._staticTrees || (this._staticTrees = []);
3054
- var tree = cached[index];
3055
- // if has already-rendered static tree and not inside v-for,
3056
- // we can reuse the same tree.
3057
- if (tree && !isInFor) {
3058
- return tree
3059
- }
3060
- // otherwise, render a fresh tree.
3061
- tree = cached[index] = this.$options.staticRenderFns[index].call(
3062
- this._renderProxy,
3063
- null,
3064
- this // for render fns generated for functional component templates
3065
- );
3066
- markStatic(tree, ("__static__" + index), false);
3067
- return tree
3068
- }
3069
-
3070
- /**
3071
- * Runtime helper for v-once.
3072
- * Effectively it means marking the node as static with a unique key.
3073
- */
3074
- function markOnce (
3075
- tree,
3076
- index,
3077
- key
3078
- ) {
3079
- markStatic(tree, ("__once__" + index + (key ? ("_" + key) : "")), true);
3080
- return tree
3081
- }
3082
-
3083
- function markStatic (
3084
- tree,
3085
- key,
3086
- isOnce
3087
- ) {
3088
- if (Array.isArray(tree)) {
3089
- for (var i = 0; i < tree.length; i++) {
3090
- if (tree[i] && typeof tree[i] !== 'string') {
3091
- markStaticNode(tree[i], (key + "_" + i), isOnce);
3092
- }
3093
- }
3094
- } else {
3095
- markStaticNode(tree, key, isOnce);
3096
- }
3097
- }
3098
-
3099
- function markStaticNode (node, key, isOnce) {
3100
- node.isStatic = true;
3101
- node.key = key;
3102
- node.isOnce = isOnce;
3103
- }
3104
-
3105
- /* */
3106
-
3107
- function bindObjectListeners (data, value) {
3108
- if (value) {
3109
- if (!isPlainObject(value)) {
3110
- process.env.NODE_ENV !== 'production' && warn(
3111
- 'v-on without argument expects an Object value',
3112
- this
3113
- );
3114
- } else {
3115
- var on = data.on = data.on ? extend({}, data.on) : {};
3116
- for (var key in value) {
3117
- var existing = on[key];
3118
- var ours = value[key];
3119
- on[key] = existing ? [].concat(existing, ours) : ours;
3120
- }
3121
- }
3122
- }
3123
- return data
3124
- }
3125
-
3126
- /* */
3127
-
3128
- function resolveScopedSlots (
3129
- fns, // see flow/vnode
3130
- res,
3131
- // the following are added in 2.6
3132
- hasDynamicKeys,
3133
- contentHashKey
3134
- ) {
3135
- res = res || { $stable: !hasDynamicKeys };
3136
- for (var i = 0; i < fns.length; i++) {
3137
- var slot = fns[i];
3138
- if (Array.isArray(slot)) {
3139
- resolveScopedSlots(slot, res, hasDynamicKeys);
3140
- } else if (slot) {
3141
- // marker for reverse proxying v-slot without scope on this.$slots
3142
- if (slot.proxy) {
3143
- slot.fn.proxy = true;
3144
- }
3145
- res[slot.key] = slot.fn;
3146
- }
3147
- }
3148
- if (contentHashKey) {
3149
- (res).$key = contentHashKey;
3150
- }
3151
- return res
3152
- }
3153
-
3154
- /* */
3155
-
3156
- function bindDynamicKeys (baseObj, values) {
3157
- for (var i = 0; i < values.length; i += 2) {
3158
- var key = values[i];
3159
- if (typeof key === 'string' && key) {
3160
- baseObj[values[i]] = values[i + 1];
3161
- } else if (process.env.NODE_ENV !== 'production' && key !== '' && key !== null) {
3162
- // null is a special value for explicitly removing a binding
3163
- warn(
3164
- ("Invalid value for dynamic directive argument (expected string or null): " + key),
3165
- this
3166
- );
3167
- }
3168
- }
3169
- return baseObj
3170
- }
3171
-
3172
- // helper to dynamically append modifier runtime markers to event names.
3173
- // ensure only append when value is already string, otherwise it will be cast
3174
- // to string and cause the type check to miss.
3175
- function prependModifier (value, symbol) {
3176
- return typeof value === 'string' ? symbol + value : value
3177
- }
3178
-
3179
- /* */
3180
-
3181
- function installRenderHelpers (target) {
3182
- target._o = markOnce;
3183
- target._n = toNumber;
3184
- target._s = toString;
3185
- target._l = renderList;
3186
- target._t = renderSlot;
3187
- target._q = looseEqual;
3188
- target._i = looseIndexOf;
3189
- target._m = renderStatic;
3190
- target._f = resolveFilter;
3191
- target._k = checkKeyCodes;
3192
- target._b = bindObjectProps;
3193
- target._v = createTextVNode;
3194
- target._e = createEmptyVNode;
3195
- target._u = resolveScopedSlots;
3196
- target._g = bindObjectListeners;
3197
- target._d = bindDynamicKeys;
3198
- target._p = prependModifier;
3199
- }
3200
-
3201
- /* */
3202
-
3203
- function FunctionalRenderContext (
3204
- data,
3205
- props,
3206
- children,
3207
- parent,
3208
- Ctor
3209
- ) {
3210
- var this$1 = this;
3211
-
3212
- var options = Ctor.options;
3213
- // ensure the createElement function in functional components
3214
- // gets a unique context - this is necessary for correct named slot check
3215
- var contextVm;
3216
- if (hasOwn(parent, '_uid')) {
3217
- contextVm = Object.create(parent);
3218
- // $flow-disable-line
3219
- contextVm._original = parent;
3220
- } else {
3221
- // the context vm passed in is a functional context as well.
3222
- // in this case we want to make sure we are able to get a hold to the
3223
- // real context instance.
3224
- contextVm = parent;
3225
- // $flow-disable-line
3226
- parent = parent._original;
3227
- }
3228
- var isCompiled = isTrue(options._compiled);
3229
- var needNormalization = !isCompiled;
3230
-
3231
- this.data = data;
3232
- this.props = props;
3233
- this.children = children;
3234
- this.parent = parent;
3235
- this.listeners = data.on || emptyObject;
3236
- this.injections = resolveInject(options.inject, parent);
3237
- this.slots = function () {
3238
- if (!this$1.$slots) {
3239
- normalizeScopedSlots(
3240
- data.scopedSlots,
3241
- this$1.$slots = resolveSlots(children, parent)
3242
- );
3243
- }
3244
- return this$1.$slots
3245
- };
3246
-
3247
- Object.defineProperty(this, 'scopedSlots', ({
3248
- enumerable: true,
3249
- get: function get () {
3250
- return normalizeScopedSlots(data.scopedSlots, this.slots())
3251
- }
3252
- }));
3253
-
3254
- // support for compiled functional template
3255
- if (isCompiled) {
3256
- // exposing $options for renderStatic()
3257
- this.$options = options;
3258
- // pre-resolve slots for renderSlot()
3259
- this.$slots = this.slots();
3260
- this.$scopedSlots = normalizeScopedSlots(data.scopedSlots, this.$slots);
3261
- }
3262
-
3263
- if (options._scopeId) {
3264
- this._c = function (a, b, c, d) {
3265
- var vnode = createElement(contextVm, a, b, c, d, needNormalization);
3266
- if (vnode && !Array.isArray(vnode)) {
3267
- vnode.fnScopeId = options._scopeId;
3268
- vnode.fnContext = parent;
3269
- }
3270
- return vnode
3271
- };
3272
- } else {
3273
- this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };
3274
- }
3275
- }
3276
-
3277
- installRenderHelpers(FunctionalRenderContext.prototype);
3278
-
3279
- function createFunctionalComponent (
3280
- Ctor,
3281
- propsData,
3282
- data,
3283
- contextVm,
3284
- children
3285
- ) {
3286
- var options = Ctor.options;
3287
- var props = {};
3288
- var propOptions = options.props;
3289
- if (isDef(propOptions)) {
3290
- for (var key in propOptions) {
3291
- props[key] = validateProp(key, propOptions, propsData || emptyObject);
3292
- }
3293
- } else {
3294
- if (isDef(data.attrs)) { mergeProps(props, data.attrs); }
3295
- if (isDef(data.props)) { mergeProps(props, data.props); }
3296
- }
3297
-
3298
- var renderContext = new FunctionalRenderContext(
3299
- data,
3300
- props,
3301
- children,
3302
- contextVm,
3303
- Ctor
3304
- );
3305
-
3306
- var vnode = options.render.call(null, renderContext._c, renderContext);
3307
-
3308
- if (vnode instanceof VNode) {
3309
- return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext)
3310
- } else if (Array.isArray(vnode)) {
3311
- var vnodes = normalizeChildren(vnode) || [];
3312
- var res = new Array(vnodes.length);
3313
- for (var i = 0; i < vnodes.length; i++) {
3314
- res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);
3315
- }
3316
- return res
3317
- }
3318
- }
3319
-
3320
- function cloneAndMarkFunctionalResult (vnode, data, contextVm, options, renderContext) {
3321
- // #7817 clone node before setting fnContext, otherwise if the node is reused
3322
- // (e.g. it was from a cached normal slot) the fnContext causes named slots
3323
- // that should not be matched to match.
3324
- var clone = cloneVNode(vnode);
3325
- clone.fnContext = contextVm;
3326
- clone.fnOptions = options;
3327
- if (process.env.NODE_ENV !== 'production') {
3328
- (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext = renderContext;
3329
- }
3330
- if (data.slot) {
3331
- (clone.data || (clone.data = {})).slot = data.slot;
3332
- }
3333
- return clone
3334
- }
3335
-
3336
- function mergeProps (to, from) {
3337
- for (var key in from) {
3338
- to[camelize(key)] = from[key];
3339
- }
3340
- }
3341
-
3342
- /* */
3343
-
3344
- /* */
3345
-
3346
- /* */
3347
-
3348
- /* */
3349
-
3350
- // inline hooks to be invoked on component VNodes during patch
3351
- var componentVNodeHooks = {
3352
- init: function init (vnode, hydrating) {
3353
- if (
3354
- vnode.componentInstance &&
3355
- !vnode.componentInstance._isDestroyed &&
3356
- vnode.data.keepAlive
3357
- ) {
3358
- // kept-alive components, treat as a patch
3359
- var mountedNode = vnode; // work around flow
3360
- componentVNodeHooks.prepatch(mountedNode, mountedNode);
3361
- } else {
3362
- var child = vnode.componentInstance = createComponentInstanceForVnode(
3363
- vnode,
3364
- activeInstance
3365
- );
3366
- child.$mount(hydrating ? vnode.elm : undefined, hydrating);
3367
- }
3368
- },
3369
-
3370
- prepatch: function prepatch (oldVnode, vnode) {
3371
- var options = vnode.componentOptions;
3372
- var child = vnode.componentInstance = oldVnode.componentInstance;
3373
- updateChildComponent(
3374
- child,
3375
- options.propsData, // updated props
3376
- options.listeners, // updated listeners
3377
- vnode, // new parent vnode
3378
- options.children // new children
3379
- );
3380
- },
3381
-
3382
- insert: function insert (vnode) {
3383
- var context = vnode.context;
3384
- var componentInstance = vnode.componentInstance;
3385
- if (!componentInstance._isMounted) {
3386
- componentInstance._isMounted = true;
3387
- callHook(componentInstance, 'mounted');
3388
- }
3389
- if (vnode.data.keepAlive) {
3390
- if (context._isMounted) {
3391
- // vue-router#1212
3392
- // During updates, a kept-alive component's child components may
3393
- // change, so directly walking the tree here may call activated hooks
3394
- // on incorrect children. Instead we push them into a queue which will
3395
- // be processed after the whole patch process ended.
3396
- queueActivatedComponent(componentInstance);
3397
- } else {
3398
- activateChildComponent(componentInstance, true /* direct */);
3399
- }
3400
- }
3401
- },
3402
-
3403
- destroy: function destroy (vnode) {
3404
- var componentInstance = vnode.componentInstance;
3405
- if (!componentInstance._isDestroyed) {
3406
- if (!vnode.data.keepAlive) {
3407
- componentInstance.$destroy();
3408
- } else {
3409
- deactivateChildComponent(componentInstance, true /* direct */);
3410
- }
3411
- }
3412
- }
3413
- };
3414
-
3415
- var hooksToMerge = Object.keys(componentVNodeHooks);
3416
-
3417
- function createComponent (
3418
- Ctor,
3419
- data,
3420
- context,
3421
- children,
3422
- tag
3423
- ) {
3424
- if (isUndef(Ctor)) {
3425
- return
3426
- }
3427
-
3428
- var baseCtor = context.$options._base;
3429
-
3430
- // plain options object: turn it into a constructor
3431
- if (isObject(Ctor)) {
3432
- Ctor = baseCtor.extend(Ctor);
3433
- }
3434
-
3435
- // if at this stage it's not a constructor or an async component factory,
3436
- // reject.
3437
- if (typeof Ctor !== 'function') {
3438
- if (process.env.NODE_ENV !== 'production') {
3439
- warn(("Invalid Component definition: " + (String(Ctor))), context);
3440
- }
3441
- return
3442
- }
3443
-
3444
- // async component
3445
- var asyncFactory;
3446
- if (isUndef(Ctor.cid)) {
3447
- asyncFactory = Ctor;
3448
- Ctor = resolveAsyncComponent(asyncFactory, baseCtor);
3449
- if (Ctor === undefined) {
3450
- // return a placeholder node for async component, which is rendered
3451
- // as a comment node but preserves all the raw information for the node.
3452
- // the information will be used for async server-rendering and hydration.
3453
- return createAsyncPlaceholder(
3454
- asyncFactory,
3455
- data,
3456
- context,
3457
- children,
3458
- tag
3459
- )
3460
- }
3461
- }
3462
-
3463
- data = data || {};
3464
-
3465
- // resolve constructor options in case global mixins are applied after
3466
- // component constructor creation
3467
- resolveConstructorOptions(Ctor);
3468
-
3469
- // transform component v-model data into props & events
3470
- if (isDef(data.model)) {
3471
- transformModel(Ctor.options, data);
3472
- }
3473
-
3474
- // extract props
3475
- var propsData = extractPropsFromVNodeData(data, Ctor, tag);
3476
-
3477
- // functional component
3478
- if (isTrue(Ctor.options.functional)) {
3479
- return createFunctionalComponent(Ctor, propsData, data, context, children)
3480
- }
3481
-
3482
- // extract listeners, since these needs to be treated as
3483
- // child component listeners instead of DOM listeners
3484
- var listeners = data.on;
3485
- // replace with listeners with .native modifier
3486
- // so it gets processed during parent component patch.
3487
- data.on = data.nativeOn;
3488
-
3489
- if (isTrue(Ctor.options.abstract)) {
3490
- // abstract components do not keep anything
3491
- // other than props & listeners & slot
3492
-
3493
- // work around flow
3494
- var slot = data.slot;
3495
- data = {};
3496
- if (slot) {
3497
- data.slot = slot;
3498
- }
3499
- }
3500
-
3501
- // install component management hooks onto the placeholder node
3502
- installComponentHooks(data);
3503
-
3504
- // return a placeholder vnode
3505
- var name = Ctor.options.name || tag;
3506
- var vnode = new VNode(
3507
- ("vue-component-" + (Ctor.cid) + (name ? ("-" + name) : '')),
3508
- data, undefined, undefined, undefined, context,
3509
- { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },
3510
- asyncFactory
3511
- );
3512
-
3513
- return vnode
3514
- }
3515
-
3516
- function createComponentInstanceForVnode (
3517
- // we know it's MountedComponentVNode but flow doesn't
3518
- vnode,
3519
- // activeInstance in lifecycle state
3520
- parent
3521
- ) {
3522
- var options = {
3523
- _isComponent: true,
3524
- _parentVnode: vnode,
3525
- parent: parent
3526
- };
3527
- // check inline-template render functions
3528
- var inlineTemplate = vnode.data.inlineTemplate;
3529
- if (isDef(inlineTemplate)) {
3530
- options.render = inlineTemplate.render;
3531
- options.staticRenderFns = inlineTemplate.staticRenderFns;
3532
- }
3533
- return new vnode.componentOptions.Ctor(options)
3534
- }
3535
-
3536
- function installComponentHooks (data) {
3537
- var hooks = data.hook || (data.hook = {});
3538
- for (var i = 0; i < hooksToMerge.length; i++) {
3539
- var key = hooksToMerge[i];
3540
- var existing = hooks[key];
3541
- var toMerge = componentVNodeHooks[key];
3542
- if (existing !== toMerge && !(existing && existing._merged)) {
3543
- hooks[key] = existing ? mergeHook$1(toMerge, existing) : toMerge;
3544
- }
3545
- }
3546
- }
3547
-
3548
- function mergeHook$1 (f1, f2) {
3549
- var merged = function (a, b) {
3550
- // flow complains about extra args which is why we use any
3551
- f1(a, b);
3552
- f2(a, b);
3553
- };
3554
- merged._merged = true;
3555
- return merged
3556
- }
3557
-
3558
- // transform component v-model info (value and callback) into
3559
- // prop and event handler respectively.
3560
- function transformModel (options, data) {
3561
- var prop = (options.model && options.model.prop) || 'value';
3562
- var event = (options.model && options.model.event) || 'input'
3563
- ;(data.attrs || (data.attrs = {}))[prop] = data.model.value;
3564
- var on = data.on || (data.on = {});
3565
- var existing = on[event];
3566
- var callback = data.model.callback;
3567
- if (isDef(existing)) {
3568
- if (
3569
- Array.isArray(existing)
3570
- ? existing.indexOf(callback) === -1
3571
- : existing !== callback
3572
- ) {
3573
- on[event] = [callback].concat(existing);
3574
- }
3575
- } else {
3576
- on[event] = callback;
3577
- }
3578
- }
3579
-
3580
- /* */
3581
-
3582
- var SIMPLE_NORMALIZE = 1;
3583
- var ALWAYS_NORMALIZE = 2;
3584
-
3585
- // wrapper function for providing a more flexible interface
3586
- // without getting yelled at by flow
3587
- function createElement (
3588
- context,
3589
- tag,
3590
- data,
3591
- children,
3592
- normalizationType,
3593
- alwaysNormalize
3594
- ) {
3595
- if (Array.isArray(data) || isPrimitive(data)) {
3596
- normalizationType = children;
3597
- children = data;
3598
- data = undefined;
3599
- }
3600
- if (isTrue(alwaysNormalize)) {
3601
- normalizationType = ALWAYS_NORMALIZE;
3602
- }
3603
- return _createElement(context, tag, data, children, normalizationType)
3604
- }
3605
-
3606
- function _createElement (
3607
- context,
3608
- tag,
3609
- data,
3610
- children,
3611
- normalizationType
3612
- ) {
3613
- if (isDef(data) && isDef((data).__ob__)) {
3614
- process.env.NODE_ENV !== 'production' && warn(
3615
- "Avoid using observed data object as vnode data: " + (JSON.stringify(data)) + "\n" +
3616
- 'Always create fresh vnode data objects in each render!',
3617
- context
3618
- );
3619
- return createEmptyVNode()
3620
- }
3621
- // object syntax in v-bind
3622
- if (isDef(data) && isDef(data.is)) {
3623
- tag = data.is;
3624
- }
3625
- if (!tag) {
3626
- // in case of component :is set to falsy value
3627
- return createEmptyVNode()
3628
- }
3629
- // warn against non-primitive key
3630
- if (process.env.NODE_ENV !== 'production' &&
3631
- isDef(data) && isDef(data.key) && !isPrimitive(data.key)
3632
- ) {
3633
- {
3634
- warn(
3635
- 'Avoid using non-primitive value as key, ' +
3636
- 'use string/number value instead.',
3637
- context
3638
- );
3639
- }
3640
- }
3641
- // support single function children as default scoped slot
3642
- if (Array.isArray(children) &&
3643
- typeof children[0] === 'function'
3644
- ) {
3645
- data = data || {};
3646
- data.scopedSlots = { default: children[0] };
3647
- children.length = 0;
3648
- }
3649
- if (normalizationType === ALWAYS_NORMALIZE) {
3650
- children = normalizeChildren(children);
3651
- } else if (normalizationType === SIMPLE_NORMALIZE) {
3652
- children = simpleNormalizeChildren(children);
3653
- }
3654
- var vnode, ns;
3655
- if (typeof tag === 'string') {
3656
- var Ctor;
3657
- ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);
3658
- if (config.isReservedTag(tag)) {
3659
- // platform built-in elements
3660
- if (process.env.NODE_ENV !== 'production' && isDef(data) && isDef(data.nativeOn) && data.tag !== 'component') {
3661
- warn(
3662
- ("The .native modifier for v-on is only valid on components but it was used on <" + tag + ">."),
3663
- context
3664
- );
3665
- }
3666
- vnode = new VNode(
3667
- config.parsePlatformTagName(tag), data, children,
3668
- undefined, undefined, context
3669
- );
3670
- } else if ((!data || !data.pre) && isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {
3671
- // component
3672
- vnode = createComponent(Ctor, data, context, children, tag);
3673
- } else {
3674
- // unknown or unlisted namespaced elements
3675
- // check at runtime because it may get assigned a namespace when its
3676
- // parent normalizes children
3677
- vnode = new VNode(
3678
- tag, data, children,
3679
- undefined, undefined, context
3680
- );
3681
- }
3682
- } else {
3683
- // direct component options / constructor
3684
- vnode = createComponent(tag, data, context, children);
3685
- }
3686
- if (Array.isArray(vnode)) {
3687
- return vnode
3688
- } else if (isDef(vnode)) {
3689
- if (isDef(ns)) { applyNS(vnode, ns); }
3690
- if (isDef(data)) { registerDeepBindings(data); }
3691
- return vnode
3692
- } else {
3693
- return createEmptyVNode()
3694
- }
3695
- }
3696
-
3697
- function applyNS (vnode, ns, force) {
3698
- vnode.ns = ns;
3699
- if (vnode.tag === 'foreignObject') {
3700
- // use default namespace inside foreignObject
3701
- ns = undefined;
3702
- force = true;
3703
- }
3704
- if (isDef(vnode.children)) {
3705
- for (var i = 0, l = vnode.children.length; i < l; i++) {
3706
- var child = vnode.children[i];
3707
- if (isDef(child.tag) && (
3708
- isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {
3709
- applyNS(child, ns, force);
3710
- }
3711
- }
3712
- }
3713
- }
3714
-
3715
- // ref #5318
3716
- // necessary to ensure parent re-render when deep bindings like :style and
3717
- // :class are used on slot nodes
3718
- function registerDeepBindings (data) {
3719
- if (isObject(data.style)) {
3720
- traverse(data.style);
3721
- }
3722
- if (isObject(data.class)) {
3723
- traverse(data.class);
3724
- }
3725
- }
3726
-
3727
- /* */
3728
-
3729
- function initRender (vm) {
3730
- vm._vnode = null; // the root of the child tree
3731
- vm._staticTrees = null; // v-once cached trees
3732
- var options = vm.$options;
3733
- var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree
3734
- var renderContext = parentVnode && parentVnode.context;
3735
- vm.$slots = resolveSlots(options._renderChildren, renderContext);
3736
- vm.$scopedSlots = emptyObject;
3737
- // bind the createElement fn to this instance
3738
- // so that we get proper render context inside it.
3739
- // args order: tag, data, children, normalizationType, alwaysNormalize
3740
- // internal version is used by render functions compiled from templates
3741
- vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };
3742
- // normalization is always applied for the public version, used in
3743
- // user-written render functions.
3744
- vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };
3745
-
3746
- // $attrs & $listeners are exposed for easier HOC creation.
3747
- // they need to be reactive so that HOCs using them are always updated
3748
- var parentData = parentVnode && parentVnode.data;
3749
-
3750
- /* istanbul ignore else */
3751
- if (process.env.NODE_ENV !== 'production') {
3752
- defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {
3753
- !isUpdatingChildComponent && warn("$attrs is readonly.", vm);
3754
- }, true);
3755
- defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, function () {
3756
- !isUpdatingChildComponent && warn("$listeners is readonly.", vm);
3757
- }, true);
3758
- } else {
3759
- defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, null, true);
3760
- defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, null, true);
3761
- }
3762
- }
3763
-
3764
- var currentRenderingInstance = null;
3765
-
3766
- function renderMixin (Vue) {
3767
- // install runtime convenience helpers
3768
- installRenderHelpers(Vue.prototype);
3769
-
3770
- Vue.prototype.$nextTick = function (fn) {
3771
- return nextTick(fn, this)
3772
- };
3773
-
3774
- Vue.prototype._render = function () {
3775
- var vm = this;
3776
- var ref = vm.$options;
3777
- var render = ref.render;
3778
- var _parentVnode = ref._parentVnode;
3779
-
3780
- if (_parentVnode) {
3781
- vm.$scopedSlots = normalizeScopedSlots(
3782
- _parentVnode.data.scopedSlots,
3783
- vm.$slots,
3784
- vm.$scopedSlots
3785
- );
3786
- }
3787
-
3788
- // set parent vnode. this allows render functions to have access
3789
- // to the data on the placeholder node.
3790
- vm.$vnode = _parentVnode;
3791
- // render self
3792
- var vnode;
3793
- try {
3794
- // There's no need to maintain a stack because all render fns are called
3795
- // separately from one another. Nested component's render fns are called
3796
- // when parent component is patched.
3797
- currentRenderingInstance = vm;
3798
- vnode = render.call(vm._renderProxy, vm.$createElement);
3799
- } catch (e) {
3800
- handleError(e, vm, "render");
3801
- // return error render result,
3802
- // or previous vnode to prevent render error causing blank component
3803
- /* istanbul ignore else */
3804
- if (process.env.NODE_ENV !== 'production' && vm.$options.renderError) {
3805
- try {
3806
- vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);
3807
- } catch (e) {
3808
- handleError(e, vm, "renderError");
3809
- vnode = vm._vnode;
3810
- }
3811
- } else {
3812
- vnode = vm._vnode;
3813
- }
3814
- } finally {
3815
- currentRenderingInstance = null;
3816
- }
3817
- // if the returned array contains only a single node, allow it
3818
- if (Array.isArray(vnode) && vnode.length === 1) {
3819
- vnode = vnode[0];
3820
- }
3821
- // return empty vnode in case the render function errored out
3822
- if (!(vnode instanceof VNode)) {
3823
- if (process.env.NODE_ENV !== 'production' && Array.isArray(vnode)) {
3824
- warn(
3825
- 'Multiple root nodes returned from render function. Render function ' +
3826
- 'should return a single root node.',
3827
- vm
3828
- );
3829
- }
3830
- vnode = createEmptyVNode();
3831
- }
3832
- // set parent
3833
- vnode.parent = _parentVnode;
3834
- return vnode
3835
- };
3836
- }
3837
-
3838
- /* */
3839
-
3840
- function ensureCtor (comp, base) {
3841
- if (
3842
- comp.__esModule ||
3843
- (hasSymbol && comp[Symbol.toStringTag] === 'Module')
3844
- ) {
3845
- comp = comp.default;
3846
- }
3847
- return isObject(comp)
3848
- ? base.extend(comp)
3849
- : comp
3850
- }
3851
-
3852
- function createAsyncPlaceholder (
3853
- factory,
3854
- data,
3855
- context,
3856
- children,
3857
- tag
3858
- ) {
3859
- var node = createEmptyVNode();
3860
- node.asyncFactory = factory;
3861
- node.asyncMeta = { data: data, context: context, children: children, tag: tag };
3862
- return node
3863
- }
3864
-
3865
- function resolveAsyncComponent (
3866
- factory,
3867
- baseCtor
3868
- ) {
3869
- if (isTrue(factory.error) && isDef(factory.errorComp)) {
3870
- return factory.errorComp
3871
- }
3872
-
3873
- if (isDef(factory.resolved)) {
3874
- return factory.resolved
3875
- }
3876
-
3877
- var owner = currentRenderingInstance;
3878
- if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {
3879
- // already pending
3880
- factory.owners.push(owner);
3881
- }
3882
-
3883
- if (isTrue(factory.loading) && isDef(factory.loadingComp)) {
3884
- return factory.loadingComp
3885
- }
3886
-
3887
- if (owner && !isDef(factory.owners)) {
3888
- var owners = factory.owners = [owner];
3889
- var sync = true;
3890
- var timerLoading = null;
3891
- var timerTimeout = null
3892
-
3893
- ;(owner).$on('hook:destroyed', function () { return remove(owners, owner); });
3894
-
3895
- var forceRender = function (renderCompleted) {
3896
- for (var i = 0, l = owners.length; i < l; i++) {
3897
- (owners[i]).$forceUpdate();
3898
- }
3899
-
3900
- if (renderCompleted) {
3901
- owners.length = 0;
3902
- if (timerLoading !== null) {
3903
- clearTimeout(timerLoading);
3904
- timerLoading = null;
3905
- }
3906
- if (timerTimeout !== null) {
3907
- clearTimeout(timerTimeout);
3908
- timerTimeout = null;
3909
- }
3910
- }
3911
- };
3912
-
3913
- var resolve = once(function (res) {
3914
- // cache resolved
3915
- factory.resolved = ensureCtor(res, baseCtor);
3916
- // invoke callbacks only if this is not a synchronous resolve
3917
- // (async resolves are shimmed as synchronous during SSR)
3918
- if (!sync) {
3919
- forceRender(true);
3920
- } else {
3921
- owners.length = 0;
3922
- }
3923
- });
3924
-
3925
- var reject = once(function (reason) {
3926
- process.env.NODE_ENV !== 'production' && warn(
3927
- "Failed to resolve async component: " + (String(factory)) +
3928
- (reason ? ("\nReason: " + reason) : '')
3929
- );
3930
- if (isDef(factory.errorComp)) {
3931
- factory.error = true;
3932
- forceRender(true);
3933
- }
3934
- });
3935
-
3936
- var res = factory(resolve, reject);
3937
-
3938
- if (isObject(res)) {
3939
- if (isPromise(res)) {
3940
- // () => Promise
3941
- if (isUndef(factory.resolved)) {
3942
- res.then(resolve, reject);
3943
- }
3944
- } else if (isPromise(res.component)) {
3945
- res.component.then(resolve, reject);
3946
-
3947
- if (isDef(res.error)) {
3948
- factory.errorComp = ensureCtor(res.error, baseCtor);
3949
- }
3950
-
3951
- if (isDef(res.loading)) {
3952
- factory.loadingComp = ensureCtor(res.loading, baseCtor);
3953
- if (res.delay === 0) {
3954
- factory.loading = true;
3955
- } else {
3956
- timerLoading = setTimeout(function () {
3957
- timerLoading = null;
3958
- if (isUndef(factory.resolved) && isUndef(factory.error)) {
3959
- factory.loading = true;
3960
- forceRender(false);
3961
- }
3962
- }, res.delay || 200);
3963
- }
3964
- }
3965
-
3966
- if (isDef(res.timeout)) {
3967
- timerTimeout = setTimeout(function () {
3968
- timerTimeout = null;
3969
- if (isUndef(factory.resolved)) {
3970
- reject(
3971
- process.env.NODE_ENV !== 'production'
3972
- ? ("timeout (" + (res.timeout) + "ms)")
3973
- : null
3974
- );
3975
- }
3976
- }, res.timeout);
3977
- }
3978
- }
3979
- }
3980
-
3981
- sync = false;
3982
- // return in case resolved synchronously
3983
- return factory.loading
3984
- ? factory.loadingComp
3985
- : factory.resolved
3986
- }
3987
- }
3988
-
3989
- /* */
3990
-
3991
- function getFirstComponentChild (children) {
3992
- if (Array.isArray(children)) {
3993
- for (var i = 0; i < children.length; i++) {
3994
- var c = children[i];
3995
- if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {
3996
- return c
3997
- }
3998
- }
3999
- }
4000
- }
4001
-
4002
- /* */
4003
-
4004
- /* */
4005
-
4006
- function initEvents (vm) {
4007
- vm._events = Object.create(null);
4008
- vm._hasHookEvent = false;
4009
- // init parent attached events
4010
- var listeners = vm.$options._parentListeners;
4011
- if (listeners) {
4012
- updateComponentListeners(vm, listeners);
4013
- }
4014
- }
4015
-
4016
- var target;
4017
-
4018
- function add (event, fn) {
4019
- target.$on(event, fn);
4020
- }
4021
-
4022
- function remove$1 (event, fn) {
4023
- target.$off(event, fn);
4024
- }
4025
-
4026
- function createOnceHandler (event, fn) {
4027
- var _target = target;
4028
- return function onceHandler () {
4029
- var res = fn.apply(null, arguments);
4030
- if (res !== null) {
4031
- _target.$off(event, onceHandler);
4032
- }
4033
- }
4034
- }
4035
-
4036
- function updateComponentListeners (
4037
- vm,
4038
- listeners,
4039
- oldListeners
4040
- ) {
4041
- target = vm;
4042
- updateListeners(listeners, oldListeners || {}, add, remove$1, createOnceHandler, vm);
4043
- target = undefined;
4044
- }
4045
-
4046
- function eventsMixin (Vue) {
4047
- var hookRE = /^hook:/;
4048
- Vue.prototype.$on = function (event, fn) {
4049
- var vm = this;
4050
- if (Array.isArray(event)) {
4051
- for (var i = 0, l = event.length; i < l; i++) {
4052
- vm.$on(event[i], fn);
4053
- }
4054
- } else {
4055
- (vm._events[event] || (vm._events[event] = [])).push(fn);
4056
- // optimize hook:event cost by using a boolean flag marked at registration
4057
- // instead of a hash lookup
4058
- if (hookRE.test(event)) {
4059
- vm._hasHookEvent = true;
4060
- }
4061
- }
4062
- return vm
4063
- };
4064
-
4065
- Vue.prototype.$once = function (event, fn) {
4066
- var vm = this;
4067
- function on () {
4068
- vm.$off(event, on);
4069
- fn.apply(vm, arguments);
4070
- }
4071
- on.fn = fn;
4072
- vm.$on(event, on);
4073
- return vm
4074
- };
4075
-
4076
- Vue.prototype.$off = function (event, fn) {
4077
- var vm = this;
4078
- // all
4079
- if (!arguments.length) {
4080
- vm._events = Object.create(null);
4081
- return vm
4082
- }
4083
- // array of events
4084
- if (Array.isArray(event)) {
4085
- for (var i$1 = 0, l = event.length; i$1 < l; i$1++) {
4086
- vm.$off(event[i$1], fn);
4087
- }
4088
- return vm
4089
- }
4090
- // specific event
4091
- var cbs = vm._events[event];
4092
- if (!cbs) {
4093
- return vm
4094
- }
4095
- if (!fn) {
4096
- vm._events[event] = null;
4097
- return vm
4098
- }
4099
- // specific handler
4100
- var cb;
4101
- var i = cbs.length;
4102
- while (i--) {
4103
- cb = cbs[i];
4104
- if (cb === fn || cb.fn === fn) {
4105
- cbs.splice(i, 1);
4106
- break
4107
- }
4108
- }
4109
- return vm
4110
- };
4111
-
4112
- Vue.prototype.$emit = function (event) {
4113
- var vm = this;
4114
- if (process.env.NODE_ENV !== 'production') {
4115
- var lowerCaseEvent = event.toLowerCase();
4116
- if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {
4117
- tip(
4118
- "Event \"" + lowerCaseEvent + "\" is emitted in component " +
4119
- (formatComponentName(vm)) + " but the handler is registered for \"" + event + "\". " +
4120
- "Note that HTML attributes are case-insensitive and you cannot use " +
4121
- "v-on to listen to camelCase events when using in-DOM templates. " +
4122
- "You should probably use \"" + (hyphenate(event)) + "\" instead of \"" + event + "\"."
4123
- );
4124
- }
4125
- }
4126
- var cbs = vm._events[event];
4127
- if (cbs) {
4128
- cbs = cbs.length > 1 ? toArray(cbs) : cbs;
4129
- var args = toArray(arguments, 1);
4130
- var info = "event handler for \"" + event + "\"";
4131
- for (var i = 0, l = cbs.length; i < l; i++) {
4132
- invokeWithErrorHandling(cbs[i], vm, args, vm, info);
4133
- }
4134
- }
4135
- return vm
4136
- };
4137
- }
4138
-
4139
- /* */
4140
-
4141
- var activeInstance = null;
4142
- var isUpdatingChildComponent = false;
4143
-
4144
- function setActiveInstance(vm) {
4145
- var prevActiveInstance = activeInstance;
4146
- activeInstance = vm;
4147
- return function () {
4148
- activeInstance = prevActiveInstance;
4149
- }
4150
- }
4151
-
4152
- function initLifecycle (vm) {
4153
- var options = vm.$options;
4154
-
4155
- // locate first non-abstract parent
4156
- var parent = options.parent;
4157
- if (parent && !options.abstract) {
4158
- while (parent.$options.abstract && parent.$parent) {
4159
- parent = parent.$parent;
4160
- }
4161
- parent.$children.push(vm);
4162
- }
4163
-
4164
- vm.$parent = parent;
4165
- vm.$root = parent ? parent.$root : vm;
4166
-
4167
- vm.$children = [];
4168
- vm.$refs = {};
4169
-
4170
- vm._watcher = null;
4171
- vm._inactive = null;
4172
- vm._directInactive = false;
4173
- vm._isMounted = false;
4174
- vm._isDestroyed = false;
4175
- vm._isBeingDestroyed = false;
4176
- }
4177
-
4178
- function lifecycleMixin (Vue) {
4179
- Vue.prototype._update = function (vnode, hydrating) {
4180
- var vm = this;
4181
- var prevEl = vm.$el;
4182
- var prevVnode = vm._vnode;
4183
- var restoreActiveInstance = setActiveInstance(vm);
4184
- vm._vnode = vnode;
4185
- // Vue.prototype.__patch__ is injected in entry points
4186
- // based on the rendering backend used.
4187
- if (!prevVnode) {
4188
- // initial render
4189
- vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */);
4190
- } else {
4191
- // updates
4192
- vm.$el = vm.__patch__(prevVnode, vnode);
4193
- }
4194
- restoreActiveInstance();
4195
- // update __vue__ reference
4196
- if (prevEl) {
4197
- prevEl.__vue__ = null;
4198
- }
4199
- if (vm.$el) {
4200
- vm.$el.__vue__ = vm;
4201
- }
4202
- // if parent is an HOC, update its $el as well
4203
- if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {
4204
- vm.$parent.$el = vm.$el;
4205
- }
4206
- // updated hook is called by the scheduler to ensure that children are
4207
- // updated in a parent's updated hook.
4208
- };
4209
-
4210
- Vue.prototype.$forceUpdate = function () {
4211
- var vm = this;
4212
- if (vm._watcher) {
4213
- vm._watcher.update();
4214
- }
4215
- };
4216
-
4217
- Vue.prototype.$destroy = function () {
4218
- var vm = this;
4219
- if (vm._isBeingDestroyed) {
4220
- return
4221
- }
4222
- callHook(vm, 'beforeDestroy');
4223
- vm._isBeingDestroyed = true;
4224
- // remove self from parent
4225
- var parent = vm.$parent;
4226
- if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {
4227
- remove(parent.$children, vm);
4228
- }
4229
- // teardown watchers
4230
- if (vm._watcher) {
4231
- vm._watcher.teardown();
4232
- }
4233
- var i = vm._watchers.length;
4234
- while (i--) {
4235
- vm._watchers[i].teardown();
4236
- }
4237
- // remove reference from data ob
4238
- // frozen object may not have observer.
4239
- if (vm._data.__ob__) {
4240
- vm._data.__ob__.vmCount--;
4241
- }
4242
- // call the last hook...
4243
- vm._isDestroyed = true;
4244
- // invoke destroy hooks on current rendered tree
4245
- vm.__patch__(vm._vnode, null);
4246
- // fire destroyed hook
4247
- callHook(vm, 'destroyed');
4248
- // turn off all instance listeners.
4249
- vm.$off();
4250
- // remove __vue__ reference
4251
- if (vm.$el) {
4252
- vm.$el.__vue__ = null;
4253
- }
4254
- // release circular reference (#6759)
4255
- if (vm.$vnode) {
4256
- vm.$vnode.parent = null;
4257
- }
4258
- };
4259
- }
4260
-
4261
- function mountComponent (
4262
- vm,
4263
- el,
4264
- hydrating
4265
- ) {
4266
- vm.$el = el;
4267
- if (!vm.$options.render) {
4268
- vm.$options.render = createEmptyVNode;
4269
- if (process.env.NODE_ENV !== 'production') {
4270
- /* istanbul ignore if */
4271
- if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||
4272
- vm.$options.el || el) {
4273
- warn(
4274
- 'You are using the runtime-only build of Vue where the template ' +
4275
- 'compiler is not available. Either pre-compile the templates into ' +
4276
- 'render functions, or use the compiler-included build.',
4277
- vm
4278
- );
4279
- } else {
4280
- warn(
4281
- 'Failed to mount component: template or render function not defined.',
4282
- vm
4283
- );
4284
- }
4285
- }
4286
- }
4287
- callHook(vm, 'beforeMount');
4288
-
4289
- var updateComponent;
4290
- /* istanbul ignore if */
4291
- if (process.env.NODE_ENV !== 'production' && config.performance && mark) {
4292
- updateComponent = function () {
4293
- var name = vm._name;
4294
- var id = vm._uid;
4295
- var startTag = "vue-perf-start:" + id;
4296
- var endTag = "vue-perf-end:" + id;
4297
-
4298
- mark(startTag);
4299
- var vnode = vm._render();
4300
- mark(endTag);
4301
- measure(("vue " + name + " render"), startTag, endTag);
4302
-
4303
- mark(startTag);
4304
- vm._update(vnode, hydrating);
4305
- mark(endTag);
4306
- measure(("vue " + name + " patch"), startTag, endTag);
4307
- };
4308
- } else {
4309
- updateComponent = function () {
4310
- vm._update(vm._render(), hydrating);
4311
- };
4312
- }
4313
-
4314
- // we set this to vm._watcher inside the watcher's constructor
4315
- // since the watcher's initial patch may call $forceUpdate (e.g. inside child
4316
- // component's mounted hook), which relies on vm._watcher being already defined
4317
- new Watcher(vm, updateComponent, noop, {
4318
- before: function before () {
4319
- if (vm._isMounted && !vm._isDestroyed) {
4320
- callHook(vm, 'beforeUpdate');
4321
- }
4322
- }
4323
- }, true /* isRenderWatcher */);
4324
- hydrating = false;
4325
-
4326
- // manually mounted instance, call mounted on self
4327
- // mounted is called for render-created child components in its inserted hook
4328
- if (vm.$vnode == null) {
4329
- vm._isMounted = true;
4330
- callHook(vm, 'mounted');
4331
- }
4332
- return vm
4333
- }
4334
-
4335
- function updateChildComponent (
4336
- vm,
4337
- propsData,
4338
- listeners,
4339
- parentVnode,
4340
- renderChildren
4341
- ) {
4342
- if (process.env.NODE_ENV !== 'production') {
4343
- isUpdatingChildComponent = true;
4344
- }
4345
-
4346
- // determine whether component has slot children
4347
- // we need to do this before overwriting $options._renderChildren.
4348
-
4349
- // check if there are dynamic scopedSlots (hand-written or compiled but with
4350
- // dynamic slot names). Static scoped slots compiled from template has the
4351
- // "$stable" marker.
4352
- var newScopedSlots = parentVnode.data.scopedSlots;
4353
- var oldScopedSlots = vm.$scopedSlots;
4354
- var hasDynamicScopedSlot = !!(
4355
- (newScopedSlots && !newScopedSlots.$stable) ||
4356
- (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||
4357
- (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key) ||
4358
- (!newScopedSlots && vm.$scopedSlots.$key)
4359
- );
4360
-
4361
- // Any static slot children from the parent may have changed during parent's
4362
- // update. Dynamic scoped slots may also have changed. In such cases, a forced
4363
- // update is necessary to ensure correctness.
4364
- var needsForceUpdate = !!(
4365
- renderChildren || // has new static slots
4366
- vm.$options._renderChildren || // has old static slots
4367
- hasDynamicScopedSlot
4368
- );
4369
-
4370
- vm.$options._parentVnode = parentVnode;
4371
- vm.$vnode = parentVnode; // update vm's placeholder node without re-render
4372
-
4373
- if (vm._vnode) { // update child tree's parent
4374
- vm._vnode.parent = parentVnode;
4375
- }
4376
- vm.$options._renderChildren = renderChildren;
4377
-
4378
- // update $attrs and $listeners hash
4379
- // these are also reactive so they may trigger child update if the child
4380
- // used them during render
4381
- vm.$attrs = parentVnode.data.attrs || emptyObject;
4382
- vm.$listeners = listeners || emptyObject;
4383
-
4384
- // update props
4385
- if (propsData && vm.$options.props) {
4386
- toggleObserving(false);
4387
- var props = vm._props;
4388
- var propKeys = vm.$options._propKeys || [];
4389
- for (var i = 0; i < propKeys.length; i++) {
4390
- var key = propKeys[i];
4391
- var propOptions = vm.$options.props; // wtf flow?
4392
- props[key] = validateProp(key, propOptions, propsData, vm);
4393
- }
4394
- toggleObserving(true);
4395
- // keep a copy of raw propsData
4396
- vm.$options.propsData = propsData;
4397
- }
4398
-
4399
- // update listeners
4400
- listeners = listeners || emptyObject;
4401
- var oldListeners = vm.$options._parentListeners;
4402
- vm.$options._parentListeners = listeners;
4403
- updateComponentListeners(vm, listeners, oldListeners);
4404
-
4405
- // resolve slots + force update if has children
4406
- if (needsForceUpdate) {
4407
- vm.$slots = resolveSlots(renderChildren, parentVnode.context);
4408
- vm.$forceUpdate();
4409
- }
4410
-
4411
- if (process.env.NODE_ENV !== 'production') {
4412
- isUpdatingChildComponent = false;
4413
- }
4414
- }
4415
-
4416
- function isInInactiveTree (vm) {
4417
- while (vm && (vm = vm.$parent)) {
4418
- if (vm._inactive) { return true }
4419
- }
4420
- return false
4421
- }
4422
-
4423
- function activateChildComponent (vm, direct) {
4424
- if (direct) {
4425
- vm._directInactive = false;
4426
- if (isInInactiveTree(vm)) {
4427
- return
4428
- }
4429
- } else if (vm._directInactive) {
4430
- return
4431
- }
4432
- if (vm._inactive || vm._inactive === null) {
4433
- vm._inactive = false;
4434
- for (var i = 0; i < vm.$children.length; i++) {
4435
- activateChildComponent(vm.$children[i]);
4436
- }
4437
- callHook(vm, 'activated');
4438
- }
4439
- }
4440
-
4441
- function deactivateChildComponent (vm, direct) {
4442
- if (direct) {
4443
- vm._directInactive = true;
4444
- if (isInInactiveTree(vm)) {
4445
- return
4446
- }
4447
- }
4448
- if (!vm._inactive) {
4449
- vm._inactive = true;
4450
- for (var i = 0; i < vm.$children.length; i++) {
4451
- deactivateChildComponent(vm.$children[i]);
4452
- }
4453
- callHook(vm, 'deactivated');
4454
- }
4455
- }
4456
-
4457
- function callHook (vm, hook) {
4458
- // #7573 disable dep collection when invoking lifecycle hooks
4459
- pushTarget();
4460
- var handlers = vm.$options[hook];
4461
- var info = hook + " hook";
4462
- if (handlers) {
4463
- for (var i = 0, j = handlers.length; i < j; i++) {
4464
- invokeWithErrorHandling(handlers[i], vm, null, vm, info);
4465
- }
4466
- }
4467
- if (vm._hasHookEvent) {
4468
- vm.$emit('hook:' + hook);
4469
- }
4470
- popTarget();
4471
- }
4472
-
4473
- /* */
4474
-
4475
- var MAX_UPDATE_COUNT = 100;
4476
-
4477
- var queue = [];
4478
- var activatedChildren = [];
4479
- var has = {};
4480
- var circular = {};
4481
- var waiting = false;
4482
- var flushing = false;
4483
- var index = 0;
4484
-
4485
- /**
4486
- * Reset the scheduler's state.
4487
- */
4488
- function resetSchedulerState () {
4489
- index = queue.length = activatedChildren.length = 0;
4490
- has = {};
4491
- if (process.env.NODE_ENV !== 'production') {
4492
- circular = {};
4493
- }
4494
- waiting = flushing = false;
4495
- }
4496
-
4497
- // Async edge case #6566 requires saving the timestamp when event listeners are
4498
- // attached. However, calling performance.now() has a perf overhead especially
4499
- // if the page has thousands of event listeners. Instead, we take a timestamp
4500
- // every time the scheduler flushes and use that for all event listeners
4501
- // attached during that flush.
4502
- var currentFlushTimestamp = 0;
4503
-
4504
- // Async edge case fix requires storing an event listener's attach timestamp.
4505
- var getNow = Date.now;
4506
-
4507
- // Determine what event timestamp the browser is using. Annoyingly, the
4508
- // timestamp can either be hi-res (relative to page load) or low-res
4509
- // (relative to UNIX epoch), so in order to compare time we have to use the
4510
- // same timestamp type when saving the flush timestamp.
4511
- // All IE versions use low-res event timestamps, and have problematic clock
4512
- // implementations (#9632)
4513
- if (inBrowser && !isIE) {
4514
- var performance = window.performance;
4515
- if (
4516
- performance &&
4517
- typeof performance.now === 'function' &&
4518
- getNow() > document.createEvent('Event').timeStamp
4519
- ) {
4520
- // if the event timestamp, although evaluated AFTER the Date.now(), is
4521
- // smaller than it, it means the event is using a hi-res timestamp,
4522
- // and we need to use the hi-res version for event listener timestamps as
4523
- // well.
4524
- getNow = function () { return performance.now(); };
4525
- }
4526
- }
4527
-
4528
- /**
4529
- * Flush both queues and run the watchers.
4530
- */
4531
- function flushSchedulerQueue () {
4532
- currentFlushTimestamp = getNow();
4533
- flushing = true;
4534
- var watcher, id;
4535
-
4536
- // Sort queue before flush.
4537
- // This ensures that:
4538
- // 1. Components are updated from parent to child. (because parent is always
4539
- // created before the child)
4540
- // 2. A component's user watchers are run before its render watcher (because
4541
- // user watchers are created before the render watcher)
4542
- // 3. If a component is destroyed during a parent component's watcher run,
4543
- // its watchers can be skipped.
4544
- queue.sort(function (a, b) { return a.id - b.id; });
4545
-
4546
- // do not cache length because more watchers might be pushed
4547
- // as we run existing watchers
4548
- for (index = 0; index < queue.length; index++) {
4549
- watcher = queue[index];
4550
- if (watcher.before) {
4551
- watcher.before();
4552
- }
4553
- id = watcher.id;
4554
- has[id] = null;
4555
- watcher.run();
4556
- // in dev build, check and stop circular updates.
4557
- if (process.env.NODE_ENV !== 'production' && has[id] != null) {
4558
- circular[id] = (circular[id] || 0) + 1;
4559
- if (circular[id] > MAX_UPDATE_COUNT) {
4560
- warn(
4561
- 'You may have an infinite update loop ' + (
4562
- watcher.user
4563
- ? ("in watcher with expression \"" + (watcher.expression) + "\"")
4564
- : "in a component render function."
4565
- ),
4566
- watcher.vm
4567
- );
4568
- break
4569
- }
4570
- }
4571
- }
4572
-
4573
- // keep copies of post queues before resetting state
4574
- var activatedQueue = activatedChildren.slice();
4575
- var updatedQueue = queue.slice();
4576
-
4577
- resetSchedulerState();
4578
-
4579
- // call component updated and activated hooks
4580
- callActivatedHooks(activatedQueue);
4581
- callUpdatedHooks(updatedQueue);
4582
-
4583
- // devtool hook
4584
- /* istanbul ignore if */
4585
- if (devtools && config.devtools) {
4586
- devtools.emit('flush');
4587
- }
4588
- }
4589
-
4590
- function callUpdatedHooks (queue) {
4591
- var i = queue.length;
4592
- while (i--) {
4593
- var watcher = queue[i];
4594
- var vm = watcher.vm;
4595
- if (vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {
4596
- callHook(vm, 'updated');
4597
- }
4598
- }
4599
- }
4600
-
4601
- /**
4602
- * Queue a kept-alive component that was activated during patch.
4603
- * The queue will be processed after the entire tree has been patched.
4604
- */
4605
- function queueActivatedComponent (vm) {
4606
- // setting _inactive to false here so that a render function can
4607
- // rely on checking whether it's in an inactive tree (e.g. router-view)
4608
- vm._inactive = false;
4609
- activatedChildren.push(vm);
4610
- }
4611
-
4612
- function callActivatedHooks (queue) {
4613
- for (var i = 0; i < queue.length; i++) {
4614
- queue[i]._inactive = true;
4615
- activateChildComponent(queue[i], true /* true */);
4616
- }
4617
- }
4618
-
4619
- /**
4620
- * Push a watcher into the watcher queue.
4621
- * Jobs with duplicate IDs will be skipped unless it's
4622
- * pushed when the queue is being flushed.
4623
- */
4624
- function queueWatcher (watcher) {
4625
- var id = watcher.id;
4626
- if (has[id] == null) {
4627
- has[id] = true;
4628
- if (!flushing) {
4629
- queue.push(watcher);
4630
- } else {
4631
- // if already flushing, splice the watcher based on its id
4632
- // if already past its id, it will be run next immediately.
4633
- var i = queue.length - 1;
4634
- while (i > index && queue[i].id > watcher.id) {
4635
- i--;
4636
- }
4637
- queue.splice(i + 1, 0, watcher);
4638
- }
4639
- // queue the flush
4640
- if (!waiting) {
4641
- waiting = true;
4642
-
4643
- if (process.env.NODE_ENV !== 'production' && !config.async) {
4644
- flushSchedulerQueue();
4645
- return
4646
- }
4647
- nextTick(flushSchedulerQueue);
4648
- }
4649
- }
4650
- }
4651
-
4652
- /* */
4653
-
4654
-
4655
-
4656
- var uid$2 = 0;
4657
-
4658
- /**
4659
- * A watcher parses an expression, collects dependencies,
4660
- * and fires callback when the expression value changes.
4661
- * This is used for both the $watch() api and directives.
4662
- */
4663
- var Watcher = function Watcher (
4664
- vm,
4665
- expOrFn,
4666
- cb,
4667
- options,
4668
- isRenderWatcher
4669
- ) {
4670
- this.vm = vm;
4671
- if (isRenderWatcher) {
4672
- vm._watcher = this;
4673
- }
4674
- vm._watchers.push(this);
4675
- // options
4676
- if (options) {
4677
- this.deep = !!options.deep;
4678
- this.user = !!options.user;
4679
- this.lazy = !!options.lazy;
4680
- this.sync = !!options.sync;
4681
- this.before = options.before;
4682
- } else {
4683
- this.deep = this.user = this.lazy = this.sync = false;
4684
- }
4685
- this.cb = cb;
4686
- this.id = ++uid$2; // uid for batching
4687
- this.active = true;
4688
- this.dirty = this.lazy; // for lazy watchers
4689
- this.deps = [];
4690
- this.newDeps = [];
4691
- this.depIds = new _Set();
4692
- this.newDepIds = new _Set();
4693
- this.expression = process.env.NODE_ENV !== 'production'
4694
- ? expOrFn.toString()
4695
- : '';
4696
- // parse expression for getter
4697
- if (typeof expOrFn === 'function') {
4698
- this.getter = expOrFn;
4699
- } else {
4700
- this.getter = parsePath(expOrFn);
4701
- if (!this.getter) {
4702
- this.getter = noop;
4703
- process.env.NODE_ENV !== 'production' && warn(
4704
- "Failed watching path: \"" + expOrFn + "\" " +
4705
- 'Watcher only accepts simple dot-delimited paths. ' +
4706
- 'For full control, use a function instead.',
4707
- vm
4708
- );
4709
- }
4710
- }
4711
- this.value = this.lazy
4712
- ? undefined
4713
- : this.get();
4714
- };
4715
-
4716
- /**
4717
- * Evaluate the getter, and re-collect dependencies.
4718
- */
4719
- Watcher.prototype.get = function get () {
4720
- pushTarget(this);
4721
- var value;
4722
- var vm = this.vm;
4723
- try {
4724
- value = this.getter.call(vm, vm);
4725
- } catch (e) {
4726
- if (this.user) {
4727
- handleError(e, vm, ("getter for watcher \"" + (this.expression) + "\""));
4728
- } else {
4729
- throw e
4730
- }
4731
- } finally {
4732
- // "touch" every property so they are all tracked as
4733
- // dependencies for deep watching
4734
- if (this.deep) {
4735
- traverse(value);
4736
- }
4737
- popTarget();
4738
- this.cleanupDeps();
4739
- }
4740
- return value
4741
- };
4742
-
4743
- /**
4744
- * Add a dependency to this directive.
4745
- */
4746
- Watcher.prototype.addDep = function addDep (dep) {
4747
- var id = dep.id;
4748
- if (!this.newDepIds.has(id)) {
4749
- this.newDepIds.add(id);
4750
- this.newDeps.push(dep);
4751
- if (!this.depIds.has(id)) {
4752
- dep.addSub(this);
4753
- }
4754
- }
4755
- };
4756
-
4757
- /**
4758
- * Clean up for dependency collection.
4759
- */
4760
- Watcher.prototype.cleanupDeps = function cleanupDeps () {
4761
- var i = this.deps.length;
4762
- while (i--) {
4763
- var dep = this.deps[i];
4764
- if (!this.newDepIds.has(dep.id)) {
4765
- dep.removeSub(this);
4766
- }
4767
- }
4768
- var tmp = this.depIds;
4769
- this.depIds = this.newDepIds;
4770
- this.newDepIds = tmp;
4771
- this.newDepIds.clear();
4772
- tmp = this.deps;
4773
- this.deps = this.newDeps;
4774
- this.newDeps = tmp;
4775
- this.newDeps.length = 0;
4776
- };
4777
-
4778
- /**
4779
- * Subscriber interface.
4780
- * Will be called when a dependency changes.
4781
- */
4782
- Watcher.prototype.update = function update () {
4783
- /* istanbul ignore else */
4784
- if (this.lazy) {
4785
- this.dirty = true;
4786
- } else if (this.sync) {
4787
- this.run();
4788
- } else {
4789
- queueWatcher(this);
4790
- }
4791
- };
4792
-
4793
- /**
4794
- * Scheduler job interface.
4795
- * Will be called by the scheduler.
4796
- */
4797
- Watcher.prototype.run = function run () {
4798
- if (this.active) {
4799
- var value = this.get();
4800
- if (
4801
- value !== this.value ||
4802
- // Deep watchers and watchers on Object/Arrays should fire even
4803
- // when the value is the same, because the value may
4804
- // have mutated.
4805
- isObject(value) ||
4806
- this.deep
4807
- ) {
4808
- // set new value
4809
- var oldValue = this.value;
4810
- this.value = value;
4811
- if (this.user) {
4812
- var info = "callback for watcher \"" + (this.expression) + "\"";
4813
- invokeWithErrorHandling(this.cb, this.vm, [value, oldValue], this.vm, info);
4814
- } else {
4815
- this.cb.call(this.vm, value, oldValue);
4816
- }
4817
- }
4818
- }
4819
- };
4820
-
4821
- /**
4822
- * Evaluate the value of the watcher.
4823
- * This only gets called for lazy watchers.
4824
- */
4825
- Watcher.prototype.evaluate = function evaluate () {
4826
- this.value = this.get();
4827
- this.dirty = false;
4828
- };
4829
-
4830
- /**
4831
- * Depend on all deps collected by this watcher.
4832
- */
4833
- Watcher.prototype.depend = function depend () {
4834
- var i = this.deps.length;
4835
- while (i--) {
4836
- this.deps[i].depend();
4837
- }
4838
- };
4839
-
4840
- /**
4841
- * Remove self from all dependencies' subscriber list.
4842
- */
4843
- Watcher.prototype.teardown = function teardown () {
4844
- if (this.active) {
4845
- // remove self from vm's watcher list
4846
- // this is a somewhat expensive operation so we skip it
4847
- // if the vm is being destroyed.
4848
- if (!this.vm._isBeingDestroyed) {
4849
- remove(this.vm._watchers, this);
4850
- }
4851
- var i = this.deps.length;
4852
- while (i--) {
4853
- this.deps[i].removeSub(this);
4854
- }
4855
- this.active = false;
4856
- }
4857
- };
4858
-
4859
- /* */
4860
-
4861
- var sharedPropertyDefinition = {
4862
- enumerable: true,
4863
- configurable: true,
4864
- get: noop,
4865
- set: noop
4866
- };
4867
-
4868
- function proxy (target, sourceKey, key) {
4869
- sharedPropertyDefinition.get = function proxyGetter () {
4870
- return this[sourceKey][key]
4871
- };
4872
- sharedPropertyDefinition.set = function proxySetter (val) {
4873
- this[sourceKey][key] = val;
4874
- };
4875
- Object.defineProperty(target, key, sharedPropertyDefinition);
4876
- }
4877
-
4878
- function initState (vm) {
4879
- vm._watchers = [];
4880
- var opts = vm.$options;
4881
- if (opts.props) { initProps(vm, opts.props); }
4882
- if (opts.methods) { initMethods(vm, opts.methods); }
4883
- if (opts.data) {
4884
- initData(vm);
4885
- } else {
4886
- observe(vm._data = {}, true /* asRootData */);
4887
- }
4888
- if (opts.computed) { initComputed(vm, opts.computed); }
4889
- if (opts.watch && opts.watch !== nativeWatch) {
4890
- initWatch(vm, opts.watch);
4891
- }
4892
- }
4893
-
4894
- function initProps (vm, propsOptions) {
4895
- var propsData = vm.$options.propsData || {};
4896
- var props = vm._props = {};
4897
- // cache prop keys so that future props updates can iterate using Array
4898
- // instead of dynamic object key enumeration.
4899
- var keys = vm.$options._propKeys = [];
4900
- var isRoot = !vm.$parent;
4901
- // root instance props should be converted
4902
- if (!isRoot) {
4903
- toggleObserving(false);
4904
- }
4905
- var loop = function ( key ) {
4906
- keys.push(key);
4907
- var value = validateProp(key, propsOptions, propsData, vm);
4908
- /* istanbul ignore else */
4909
- if (process.env.NODE_ENV !== 'production') {
4910
- var hyphenatedKey = hyphenate(key);
4911
- if (isReservedAttribute(hyphenatedKey) ||
4912
- config.isReservedAttr(hyphenatedKey)) {
4913
- warn(
4914
- ("\"" + hyphenatedKey + "\" is a reserved attribute and cannot be used as component prop."),
4915
- vm
4916
- );
4917
- }
4918
- defineReactive$$1(props, key, value, function () {
4919
- if (!isRoot && !isUpdatingChildComponent) {
4920
- warn(
4921
- "Avoid mutating a prop directly since the value will be " +
4922
- "overwritten whenever the parent component re-renders. " +
4923
- "Instead, use a data or computed property based on the prop's " +
4924
- "value. Prop being mutated: \"" + key + "\"",
4925
- vm
4926
- );
4927
- }
4928
- });
4929
- } else {
4930
- defineReactive$$1(props, key, value);
4931
- }
4932
- // static props are already proxied on the component's prototype
4933
- // during Vue.extend(). We only need to proxy props defined at
4934
- // instantiation here.
4935
- if (!(key in vm)) {
4936
- proxy(vm, "_props", key);
4937
- }
4938
- };
4939
-
4940
- for (var key in propsOptions) loop( key );
4941
- toggleObserving(true);
4942
- }
4943
-
4944
- function initData (vm) {
4945
- var data = vm.$options.data;
4946
- data = vm._data = typeof data === 'function'
4947
- ? getData(data, vm)
4948
- : data || {};
4949
- if (!isPlainObject(data)) {
4950
- data = {};
4951
- process.env.NODE_ENV !== 'production' && warn(
4952
- 'data functions should return an object:\n' +
4953
- 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',
4954
- vm
4955
- );
4956
- }
4957
- // proxy data on instance
4958
- var keys = Object.keys(data);
4959
- var props = vm.$options.props;
4960
- var methods = vm.$options.methods;
4961
- var i = keys.length;
4962
- while (i--) {
4963
- var key = keys[i];
4964
- if (process.env.NODE_ENV !== 'production') {
4965
- if (methods && hasOwn(methods, key)) {
4966
- warn(
4967
- ("Method \"" + key + "\" has already been defined as a data property."),
4968
- vm
4969
- );
4970
- }
4971
- }
4972
- if (props && hasOwn(props, key)) {
4973
- process.env.NODE_ENV !== 'production' && warn(
4974
- "The data property \"" + key + "\" is already declared as a prop. " +
4975
- "Use prop default value instead.",
4976
- vm
4977
- );
4978
- } else if (!isReserved(key)) {
4979
- proxy(vm, "_data", key);
4980
- }
4981
- }
4982
- // observe data
4983
- observe(data, true /* asRootData */);
4984
- }
4985
-
4986
- function getData (data, vm) {
4987
- // #7573 disable dep collection when invoking data getters
4988
- pushTarget();
4989
- try {
4990
- return data.call(vm, vm)
4991
- } catch (e) {
4992
- handleError(e, vm, "data()");
4993
- return {}
4994
- } finally {
4995
- popTarget();
4996
- }
4997
- }
4998
-
4999
- var computedWatcherOptions = { lazy: true };
5000
-
5001
- function initComputed (vm, computed) {
5002
- // $flow-disable-line
5003
- var watchers = vm._computedWatchers = Object.create(null);
5004
- // computed properties are just getters during SSR
5005
- var isSSR = isServerRendering();
5006
-
5007
- for (var key in computed) {
5008
- var userDef = computed[key];
5009
- var getter = typeof userDef === 'function' ? userDef : userDef.get;
5010
- if (process.env.NODE_ENV !== 'production' && getter == null) {
5011
- warn(
5012
- ("Getter is missing for computed property \"" + key + "\"."),
5013
- vm
5014
- );
5015
- }
5016
-
5017
- if (!isSSR) {
5018
- // create internal watcher for the computed property.
5019
- watchers[key] = new Watcher(
5020
- vm,
5021
- getter || noop,
5022
- noop,
5023
- computedWatcherOptions
5024
- );
5025
- }
5026
-
5027
- // component-defined computed properties are already defined on the
5028
- // component prototype. We only need to define computed properties defined
5029
- // at instantiation here.
5030
- if (!(key in vm)) {
5031
- defineComputed(vm, key, userDef);
5032
- } else if (process.env.NODE_ENV !== 'production') {
5033
- if (key in vm.$data) {
5034
- warn(("The computed property \"" + key + "\" is already defined in data."), vm);
5035
- } else if (vm.$options.props && key in vm.$options.props) {
5036
- warn(("The computed property \"" + key + "\" is already defined as a prop."), vm);
5037
- } else if (vm.$options.methods && key in vm.$options.methods) {
5038
- warn(("The computed property \"" + key + "\" is already defined as a method."), vm);
5039
- }
5040
- }
5041
- }
5042
- }
5043
-
5044
- function defineComputed (
5045
- target,
5046
- key,
5047
- userDef
5048
- ) {
5049
- var shouldCache = !isServerRendering();
5050
- if (typeof userDef === 'function') {
5051
- sharedPropertyDefinition.get = shouldCache
5052
- ? createComputedGetter(key)
5053
- : createGetterInvoker(userDef);
5054
- sharedPropertyDefinition.set = noop;
5055
- } else {
5056
- sharedPropertyDefinition.get = userDef.get
5057
- ? shouldCache && userDef.cache !== false
5058
- ? createComputedGetter(key)
5059
- : createGetterInvoker(userDef.get)
5060
- : noop;
5061
- sharedPropertyDefinition.set = userDef.set || noop;
5062
- }
5063
- if (process.env.NODE_ENV !== 'production' &&
5064
- sharedPropertyDefinition.set === noop) {
5065
- sharedPropertyDefinition.set = function () {
5066
- warn(
5067
- ("Computed property \"" + key + "\" was assigned to but it has no setter."),
5068
- this
5069
- );
5070
- };
5071
- }
5072
- Object.defineProperty(target, key, sharedPropertyDefinition);
5073
- }
5074
-
5075
- function createComputedGetter (key) {
5076
- return function computedGetter () {
5077
- var watcher = this._computedWatchers && this._computedWatchers[key];
5078
- if (watcher) {
5079
- if (watcher.dirty) {
5080
- watcher.evaluate();
5081
- }
5082
- if (Dep.target) {
5083
- watcher.depend();
5084
- }
5085
- return watcher.value
5086
- }
5087
- }
5088
- }
5089
-
5090
- function createGetterInvoker(fn) {
5091
- return function computedGetter () {
5092
- return fn.call(this, this)
5093
- }
5094
- }
5095
-
5096
- function initMethods (vm, methods) {
5097
- var props = vm.$options.props;
5098
- for (var key in methods) {
5099
- if (process.env.NODE_ENV !== 'production') {
5100
- if (typeof methods[key] !== 'function') {
5101
- warn(
5102
- "Method \"" + key + "\" has type \"" + (typeof methods[key]) + "\" in the component definition. " +
5103
- "Did you reference the function correctly?",
5104
- vm
5105
- );
5106
- }
5107
- if (props && hasOwn(props, key)) {
5108
- warn(
5109
- ("Method \"" + key + "\" has already been defined as a prop."),
5110
- vm
5111
- );
5112
- }
5113
- if ((key in vm) && isReserved(key)) {
5114
- warn(
5115
- "Method \"" + key + "\" conflicts with an existing Vue instance method. " +
5116
- "Avoid defining component methods that start with _ or $."
5117
- );
5118
- }
5119
- }
5120
- vm[key] = typeof methods[key] !== 'function' ? noop : bind(methods[key], vm);
5121
- }
5122
- }
5123
-
5124
- function initWatch (vm, watch) {
5125
- for (var key in watch) {
5126
- var handler = watch[key];
5127
- if (Array.isArray(handler)) {
5128
- for (var i = 0; i < handler.length; i++) {
5129
- createWatcher(vm, key, handler[i]);
5130
- }
5131
- } else {
5132
- createWatcher(vm, key, handler);
5133
- }
5134
- }
5135
- }
5136
-
5137
- function createWatcher (
5138
- vm,
5139
- expOrFn,
5140
- handler,
5141
- options
5142
- ) {
5143
- if (isPlainObject(handler)) {
5144
- options = handler;
5145
- handler = handler.handler;
5146
- }
5147
- if (typeof handler === 'string') {
5148
- handler = vm[handler];
5149
- }
5150
- return vm.$watch(expOrFn, handler, options)
5151
- }
5152
-
5153
- function stateMixin (Vue) {
5154
- // flow somehow has problems with directly declared definition object
5155
- // when using Object.defineProperty, so we have to procedurally build up
5156
- // the object here.
5157
- var dataDef = {};
5158
- dataDef.get = function () { return this._data };
5159
- var propsDef = {};
5160
- propsDef.get = function () { return this._props };
5161
- if (process.env.NODE_ENV !== 'production') {
5162
- dataDef.set = function () {
5163
- warn(
5164
- 'Avoid replacing instance root $data. ' +
5165
- 'Use nested data properties instead.',
5166
- this
5167
- );
5168
- };
5169
- propsDef.set = function () {
5170
- warn("$props is readonly.", this);
5171
- };
5172
- }
5173
- Object.defineProperty(Vue.prototype, '$data', dataDef);
5174
- Object.defineProperty(Vue.prototype, '$props', propsDef);
5175
-
5176
- Vue.prototype.$set = set;
5177
- Vue.prototype.$delete = del;
5178
-
5179
- Vue.prototype.$watch = function (
5180
- expOrFn,
5181
- cb,
5182
- options
5183
- ) {
5184
- var vm = this;
5185
- if (isPlainObject(cb)) {
5186
- return createWatcher(vm, expOrFn, cb, options)
5187
- }
5188
- options = options || {};
5189
- options.user = true;
5190
- var watcher = new Watcher(vm, expOrFn, cb, options);
5191
- if (options.immediate) {
5192
- var info = "callback for immediate watcher \"" + (watcher.expression) + "\"";
5193
- pushTarget();
5194
- invokeWithErrorHandling(cb, vm, [watcher.value], vm, info);
5195
- popTarget();
5196
- }
5197
- return function unwatchFn () {
5198
- watcher.teardown();
5199
- }
5200
- };
5201
- }
5202
-
5203
- /* */
5204
-
5205
- var uid$3 = 0;
5206
-
5207
- function initMixin (Vue) {
5208
- Vue.prototype._init = function (options) {
5209
- var vm = this;
5210
- // a uid
5211
- vm._uid = uid$3++;
5212
-
5213
- var startTag, endTag;
5214
- /* istanbul ignore if */
5215
- if (process.env.NODE_ENV !== 'production' && config.performance && mark) {
5216
- startTag = "vue-perf-start:" + (vm._uid);
5217
- endTag = "vue-perf-end:" + (vm._uid);
5218
- mark(startTag);
5219
- }
5220
-
5221
- // a flag to avoid this being observed
5222
- vm._isVue = true;
5223
- // merge options
5224
- if (options && options._isComponent) {
5225
- // optimize internal component instantiation
5226
- // since dynamic options merging is pretty slow, and none of the
5227
- // internal component options needs special treatment.
5228
- initInternalComponent(vm, options);
5229
- } else {
5230
- vm.$options = mergeOptions(
5231
- resolveConstructorOptions(vm.constructor),
5232
- options || {},
5233
- vm
5234
- );
5235
- }
5236
- /* istanbul ignore else */
5237
- if (process.env.NODE_ENV !== 'production') {
5238
- initProxy(vm);
5239
- } else {
5240
- vm._renderProxy = vm;
5241
- }
5242
- // expose real self
5243
- vm._self = vm;
5244
- initLifecycle(vm);
5245
- initEvents(vm);
5246
- initRender(vm);
5247
- callHook(vm, 'beforeCreate');
5248
- initInjections(vm); // resolve injections before data/props
5249
- initState(vm);
5250
- initProvide(vm); // resolve provide after data/props
5251
- callHook(vm, 'created');
5252
-
5253
- /* istanbul ignore if */
5254
- if (process.env.NODE_ENV !== 'production' && config.performance && mark) {
5255
- vm._name = formatComponentName(vm, false);
5256
- mark(endTag);
5257
- measure(("vue " + (vm._name) + " init"), startTag, endTag);
5258
- }
5259
-
5260
- if (vm.$options.el) {
5261
- vm.$mount(vm.$options.el);
5262
- }
5263
- };
5264
- }
5265
-
5266
- function initInternalComponent (vm, options) {
5267
- var opts = vm.$options = Object.create(vm.constructor.options);
5268
- // doing this because it's faster than dynamic enumeration.
5269
- var parentVnode = options._parentVnode;
5270
- opts.parent = options.parent;
5271
- opts._parentVnode = parentVnode;
5272
-
5273
- var vnodeComponentOptions = parentVnode.componentOptions;
5274
- opts.propsData = vnodeComponentOptions.propsData;
5275
- opts._parentListeners = vnodeComponentOptions.listeners;
5276
- opts._renderChildren = vnodeComponentOptions.children;
5277
- opts._componentTag = vnodeComponentOptions.tag;
5278
-
5279
- if (options.render) {
5280
- opts.render = options.render;
5281
- opts.staticRenderFns = options.staticRenderFns;
5282
- }
5283
- }
5284
-
5285
- function resolveConstructorOptions (Ctor) {
5286
- var options = Ctor.options;
5287
- if (Ctor.super) {
5288
- var superOptions = resolveConstructorOptions(Ctor.super);
5289
- var cachedSuperOptions = Ctor.superOptions;
5290
- if (superOptions !== cachedSuperOptions) {
5291
- // super option changed,
5292
- // need to resolve new options.
5293
- Ctor.superOptions = superOptions;
5294
- // check if there are any late-modified/attached options (#4976)
5295
- var modifiedOptions = resolveModifiedOptions(Ctor);
5296
- // update base extend options
5297
- if (modifiedOptions) {
5298
- extend(Ctor.extendOptions, modifiedOptions);
5299
- }
5300
- options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);
5301
- if (options.name) {
5302
- options.components[options.name] = Ctor;
5303
- }
5304
- }
5305
- }
5306
- return options
5307
- }
5308
-
5309
- function resolveModifiedOptions (Ctor) {
5310
- var modified;
5311
- var latest = Ctor.options;
5312
- var sealed = Ctor.sealedOptions;
5313
- for (var key in latest) {
5314
- if (latest[key] !== sealed[key]) {
5315
- if (!modified) { modified = {}; }
5316
- modified[key] = latest[key];
5317
- }
5318
- }
5319
- return modified
5320
- }
5321
-
5322
- function Vue (options) {
5323
- if (process.env.NODE_ENV !== 'production' &&
5324
- !(this instanceof Vue)
5325
- ) {
5326
- warn('Vue is a constructor and should be called with the `new` keyword');
5327
- }
5328
- this._init(options);
5329
- }
5330
-
5331
- initMixin(Vue);
5332
- stateMixin(Vue);
5333
- eventsMixin(Vue);
5334
- lifecycleMixin(Vue);
5335
- renderMixin(Vue);
5336
-
5337
- /* */
5338
-
5339
- function initUse (Vue) {
5340
- Vue.use = function (plugin) {
5341
- var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));
5342
- if (installedPlugins.indexOf(plugin) > -1) {
5343
- return this
5344
- }
5345
-
5346
- // additional parameters
5347
- var args = toArray(arguments, 1);
5348
- args.unshift(this);
5349
- if (typeof plugin.install === 'function') {
5350
- plugin.install.apply(plugin, args);
5351
- } else if (typeof plugin === 'function') {
5352
- plugin.apply(null, args);
5353
- }
5354
- installedPlugins.push(plugin);
5355
- return this
5356
- };
5357
- }
5358
-
5359
- /* */
5360
-
5361
- function initMixin$1 (Vue) {
5362
- Vue.mixin = function (mixin) {
5363
- this.options = mergeOptions(this.options, mixin);
5364
- return this
5365
- };
5366
- }
5367
-
5368
- /* */
5369
-
5370
- function initExtend (Vue) {
5371
- /**
5372
- * Each instance constructor, including Vue, has a unique
5373
- * cid. This enables us to create wrapped "child
5374
- * constructors" for prototypal inheritance and cache them.
5375
- */
5376
- Vue.cid = 0;
5377
- var cid = 1;
5378
-
5379
- /**
5380
- * Class inheritance
5381
- */
5382
- Vue.extend = function (extendOptions) {
5383
- extendOptions = extendOptions || {};
5384
- var Super = this;
5385
- var SuperId = Super.cid;
5386
- var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});
5387
- if (cachedCtors[SuperId]) {
5388
- return cachedCtors[SuperId]
5389
- }
5390
-
5391
- var name = extendOptions.name || Super.options.name;
5392
- if (process.env.NODE_ENV !== 'production' && name) {
5393
- validateComponentName(name);
5394
- }
5395
-
5396
- var Sub = function VueComponent (options) {
5397
- this._init(options);
5398
- };
5399
- Sub.prototype = Object.create(Super.prototype);
5400
- Sub.prototype.constructor = Sub;
5401
- Sub.cid = cid++;
5402
- Sub.options = mergeOptions(
5403
- Super.options,
5404
- extendOptions
5405
- );
5406
- Sub['super'] = Super;
5407
-
5408
- // For props and computed properties, we define the proxy getters on
5409
- // the Vue instances at extension time, on the extended prototype. This
5410
- // avoids Object.defineProperty calls for each instance created.
5411
- if (Sub.options.props) {
5412
- initProps$1(Sub);
5413
- }
5414
- if (Sub.options.computed) {
5415
- initComputed$1(Sub);
5416
- }
5417
-
5418
- // allow further extension/mixin/plugin usage
5419
- Sub.extend = Super.extend;
5420
- Sub.mixin = Super.mixin;
5421
- Sub.use = Super.use;
5422
-
5423
- // create asset registers, so extended classes
5424
- // can have their private assets too.
5425
- ASSET_TYPES.forEach(function (type) {
5426
- Sub[type] = Super[type];
5427
- });
5428
- // enable recursive self-lookup
5429
- if (name) {
5430
- Sub.options.components[name] = Sub;
5431
- }
5432
-
5433
- // keep a reference to the super options at extension time.
5434
- // later at instantiation we can check if Super's options have
5435
- // been updated.
5436
- Sub.superOptions = Super.options;
5437
- Sub.extendOptions = extendOptions;
5438
- Sub.sealedOptions = extend({}, Sub.options);
5439
-
5440
- // cache constructor
5441
- cachedCtors[SuperId] = Sub;
5442
- return Sub
5443
- };
5444
- }
5445
-
5446
- function initProps$1 (Comp) {
5447
- var props = Comp.options.props;
5448
- for (var key in props) {
5449
- proxy(Comp.prototype, "_props", key);
5450
- }
5451
- }
5452
-
5453
- function initComputed$1 (Comp) {
5454
- var computed = Comp.options.computed;
5455
- for (var key in computed) {
5456
- defineComputed(Comp.prototype, key, computed[key]);
5457
- }
5458
- }
5459
-
5460
- /* */
5461
-
5462
- function initAssetRegisters (Vue) {
5463
- /**
5464
- * Create asset registration methods.
5465
- */
5466
- ASSET_TYPES.forEach(function (type) {
5467
- Vue[type] = function (
5468
- id,
5469
- definition
5470
- ) {
5471
- if (!definition) {
5472
- return this.options[type + 's'][id]
5473
- } else {
5474
- /* istanbul ignore if */
5475
- if (process.env.NODE_ENV !== 'production' && type === 'component') {
5476
- validateComponentName(id);
5477
- }
5478
- if (type === 'component' && isPlainObject(definition)) {
5479
- definition.name = definition.name || id;
5480
- definition = this.options._base.extend(definition);
5481
- }
5482
- if (type === 'directive' && typeof definition === 'function') {
5483
- definition = { bind: definition, update: definition };
5484
- }
5485
- this.options[type + 's'][id] = definition;
5486
- return definition
5487
- }
5488
- };
5489
- });
5490
- }
5491
-
5492
- /* */
5493
-
5494
-
5495
-
5496
-
5497
-
5498
- function getComponentName (opts) {
5499
- return opts && (opts.Ctor.options.name || opts.tag)
5500
- }
5501
-
5502
- function matches (pattern, name) {
5503
- if (Array.isArray(pattern)) {
5504
- return pattern.indexOf(name) > -1
5505
- } else if (typeof pattern === 'string') {
5506
- return pattern.split(',').indexOf(name) > -1
5507
- } else if (isRegExp(pattern)) {
5508
- return pattern.test(name)
5509
- }
5510
- /* istanbul ignore next */
5511
- return false
5512
- }
5513
-
5514
- function pruneCache (keepAliveInstance, filter) {
5515
- var cache = keepAliveInstance.cache;
5516
- var keys = keepAliveInstance.keys;
5517
- var _vnode = keepAliveInstance._vnode;
5518
- for (var key in cache) {
5519
- var entry = cache[key];
5520
- if (entry) {
5521
- var name = entry.name;
5522
- if (name && !filter(name)) {
5523
- pruneCacheEntry(cache, key, keys, _vnode);
5524
- }
5525
- }
5526
- }
5527
- }
5528
-
5529
- function pruneCacheEntry (
5530
- cache,
5531
- key,
5532
- keys,
5533
- current
5534
- ) {
5535
- var entry = cache[key];
5536
- if (entry && (!current || entry.tag !== current.tag)) {
5537
- entry.componentInstance.$destroy();
5538
- }
5539
- cache[key] = null;
5540
- remove(keys, key);
5541
- }
5542
-
5543
- var patternTypes = [String, RegExp, Array];
5544
-
5545
- var KeepAlive = {
5546
- name: 'keep-alive',
5547
- abstract: true,
5548
-
5549
- props: {
5550
- include: patternTypes,
5551
- exclude: patternTypes,
5552
- max: [String, Number]
5553
- },
5554
-
5555
- methods: {
5556
- cacheVNode: function cacheVNode() {
5557
- var ref = this;
5558
- var cache = ref.cache;
5559
- var keys = ref.keys;
5560
- var vnodeToCache = ref.vnodeToCache;
5561
- var keyToCache = ref.keyToCache;
5562
- if (vnodeToCache) {
5563
- var tag = vnodeToCache.tag;
5564
- var componentInstance = vnodeToCache.componentInstance;
5565
- var componentOptions = vnodeToCache.componentOptions;
5566
- cache[keyToCache] = {
5567
- name: getComponentName(componentOptions),
5568
- tag: tag,
5569
- componentInstance: componentInstance,
5570
- };
5571
- keys.push(keyToCache);
5572
- // prune oldest entry
5573
- if (this.max && keys.length > parseInt(this.max)) {
5574
- pruneCacheEntry(cache, keys[0], keys, this._vnode);
5575
- }
5576
- this.vnodeToCache = null;
5577
- }
5578
- }
5579
- },
5580
-
5581
- created: function created () {
5582
- this.cache = Object.create(null);
5583
- this.keys = [];
5584
- },
5585
-
5586
- destroyed: function destroyed () {
5587
- for (var key in this.cache) {
5588
- pruneCacheEntry(this.cache, key, this.keys);
5589
- }
5590
- },
5591
-
5592
- mounted: function mounted () {
5593
- var this$1 = this;
5594
-
5595
- this.cacheVNode();
5596
- this.$watch('include', function (val) {
5597
- pruneCache(this$1, function (name) { return matches(val, name); });
5598
- });
5599
- this.$watch('exclude', function (val) {
5600
- pruneCache(this$1, function (name) { return !matches(val, name); });
5601
- });
5602
- },
5603
-
5604
- updated: function updated () {
5605
- this.cacheVNode();
5606
- },
5607
-
5608
- render: function render () {
5609
- var slot = this.$slots.default;
5610
- var vnode = getFirstComponentChild(slot);
5611
- var componentOptions = vnode && vnode.componentOptions;
5612
- if (componentOptions) {
5613
- // check pattern
5614
- var name = getComponentName(componentOptions);
5615
- var ref = this;
5616
- var include = ref.include;
5617
- var exclude = ref.exclude;
5618
- if (
5619
- // not included
5620
- (include && (!name || !matches(include, name))) ||
5621
- // excluded
5622
- (exclude && name && matches(exclude, name))
5623
- ) {
5624
- return vnode
5625
- }
5626
-
5627
- var ref$1 = this;
5628
- var cache = ref$1.cache;
5629
- var keys = ref$1.keys;
5630
- var key = vnode.key == null
5631
- // same constructor may get registered as different local components
5632
- // so cid alone is not enough (#3269)
5633
- ? componentOptions.Ctor.cid + (componentOptions.tag ? ("::" + (componentOptions.tag)) : '')
5634
- : vnode.key;
5635
- if (cache[key]) {
5636
- vnode.componentInstance = cache[key].componentInstance;
5637
- // make current key freshest
5638
- remove(keys, key);
5639
- keys.push(key);
5640
- } else {
5641
- // delay setting the cache until update
5642
- this.vnodeToCache = vnode;
5643
- this.keyToCache = key;
5644
- }
5645
-
5646
- vnode.data.keepAlive = true;
5647
- }
5648
- return vnode || (slot && slot[0])
5649
- }
5650
- };
5651
-
5652
- var builtInComponents = {
5653
- KeepAlive: KeepAlive
5654
- };
5655
-
5656
- /* */
5657
-
5658
- function initGlobalAPI (Vue) {
5659
- // config
5660
- var configDef = {};
5661
- configDef.get = function () { return config; };
5662
- if (process.env.NODE_ENV !== 'production') {
5663
- configDef.set = function () {
5664
- warn(
5665
- 'Do not replace the Vue.config object, set individual fields instead.'
5666
- );
5667
- };
5668
- }
5669
- Object.defineProperty(Vue, 'config', configDef);
5670
-
5671
- // exposed util methods.
5672
- // NOTE: these are not considered part of the public API - avoid relying on
5673
- // them unless you are aware of the risk.
5674
- Vue.util = {
5675
- warn: warn,
5676
- extend: extend,
5677
- mergeOptions: mergeOptions,
5678
- defineReactive: defineReactive$$1
5679
- };
5680
-
5681
- Vue.set = set;
5682
- Vue.delete = del;
5683
- Vue.nextTick = nextTick;
5684
-
5685
- // 2.6 explicit observable API
5686
- Vue.observable = function (obj) {
5687
- observe(obj);
5688
- return obj
5689
- };
5690
-
5691
- Vue.options = Object.create(null);
5692
- ASSET_TYPES.forEach(function (type) {
5693
- Vue.options[type + 's'] = Object.create(null);
5694
- });
5695
-
5696
- // this is used to identify the "base" constructor to extend all plain-object
5697
- // components with in Weex's multi-instance scenarios.
5698
- Vue.options._base = Vue;
5699
-
5700
- extend(Vue.options.components, builtInComponents);
5701
-
5702
- initUse(Vue);
5703
- initMixin$1(Vue);
5704
- initExtend(Vue);
5705
- initAssetRegisters(Vue);
5706
- }
5707
-
5708
- initGlobalAPI(Vue);
5709
-
5710
- Object.defineProperty(Vue.prototype, '$isServer', {
5711
- get: isServerRendering
5712
- });
5713
-
5714
- Object.defineProperty(Vue.prototype, '$ssrContext', {
5715
- get: function get () {
5716
- /* istanbul ignore next */
5717
- return this.$vnode && this.$vnode.ssrContext
5718
- }
5719
- });
5720
-
5721
- // expose FunctionalRenderContext for ssr runtime helper installation
5722
- Object.defineProperty(Vue, 'FunctionalRenderContext', {
5723
- value: FunctionalRenderContext
5724
- });
5725
-
5726
- Vue.version = '2.6.14';
5727
-
5728
- /* */
5729
-
5730
- // these are reserved for web because they are directly compiled away
5731
- // during template compilation
5732
- var isReservedAttr = makeMap('style,class');
5733
-
5734
- // attributes that should be using props for binding
5735
- var acceptValue = makeMap('input,textarea,option,select,progress');
5736
- var mustUseProp = function (tag, type, attr) {
5737
- return (
5738
- (attr === 'value' && acceptValue(tag)) && type !== 'button' ||
5739
- (attr === 'selected' && tag === 'option') ||
5740
- (attr === 'checked' && tag === 'input') ||
5741
- (attr === 'muted' && tag === 'video')
5742
- )
5743
- };
5744
-
5745
- var isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');
5746
-
5747
- var isValidContentEditableValue = makeMap('events,caret,typing,plaintext-only');
5748
-
5749
- var convertEnumeratedValue = function (key, value) {
5750
- return isFalsyAttrValue(value) || value === 'false'
5751
- ? 'false'
5752
- // allow arbitrary string value for contenteditable
5753
- : key === 'contenteditable' && isValidContentEditableValue(value)
5754
- ? value
5755
- : 'true'
5756
- };
5757
-
5758
- var isBooleanAttr = makeMap(
5759
- 'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +
5760
- 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +
5761
- 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +
5762
- 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +
5763
- 'required,reversed,scoped,seamless,selected,sortable,' +
5764
- 'truespeed,typemustmatch,visible'
5765
- );
5766
-
5767
- var xlinkNS = 'http://www.w3.org/1999/xlink';
5768
-
5769
- var isXlink = function (name) {
5770
- return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink'
5771
- };
5772
-
5773
- var getXlinkProp = function (name) {
5774
- return isXlink(name) ? name.slice(6, name.length) : ''
5775
- };
5776
-
5777
- var isFalsyAttrValue = function (val) {
5778
- return val == null || val === false
5779
- };
5780
-
5781
- /* */
5782
-
5783
- function genClassForVnode (vnode) {
5784
- var data = vnode.data;
5785
- var parentNode = vnode;
5786
- var childNode = vnode;
5787
- while (isDef(childNode.componentInstance)) {
5788
- childNode = childNode.componentInstance._vnode;
5789
- if (childNode && childNode.data) {
5790
- data = mergeClassData(childNode.data, data);
5791
- }
5792
- }
5793
- while (isDef(parentNode = parentNode.parent)) {
5794
- if (parentNode && parentNode.data) {
5795
- data = mergeClassData(data, parentNode.data);
5796
- }
5797
- }
5798
- return renderClass(data.staticClass, data.class)
5799
- }
5800
-
5801
- function mergeClassData (child, parent) {
5802
- return {
5803
- staticClass: concat(child.staticClass, parent.staticClass),
5804
- class: isDef(child.class)
5805
- ? [child.class, parent.class]
5806
- : parent.class
5807
- }
5808
- }
5809
-
5810
- function renderClass (
5811
- staticClass,
5812
- dynamicClass
5813
- ) {
5814
- if (isDef(staticClass) || isDef(dynamicClass)) {
5815
- return concat(staticClass, stringifyClass(dynamicClass))
5816
- }
5817
- /* istanbul ignore next */
5818
- return ''
5819
- }
5820
-
5821
- function concat (a, b) {
5822
- return a ? b ? (a + ' ' + b) : a : (b || '')
5823
- }
5824
-
5825
- function stringifyClass (value) {
5826
- if (Array.isArray(value)) {
5827
- return stringifyArray(value)
5828
- }
5829
- if (isObject(value)) {
5830
- return stringifyObject(value)
5831
- }
5832
- if (typeof value === 'string') {
5833
- return value
5834
- }
5835
- /* istanbul ignore next */
5836
- return ''
5837
- }
5838
-
5839
- function stringifyArray (value) {
5840
- var res = '';
5841
- var stringified;
5842
- for (var i = 0, l = value.length; i < l; i++) {
5843
- if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {
5844
- if (res) { res += ' '; }
5845
- res += stringified;
5846
- }
5847
- }
5848
- return res
5849
- }
5850
-
5851
- function stringifyObject (value) {
5852
- var res = '';
5853
- for (var key in value) {
5854
- if (value[key]) {
5855
- if (res) { res += ' '; }
5856
- res += key;
5857
- }
5858
- }
5859
- return res
5860
- }
5861
-
5862
- /* */
5863
-
5864
- var namespaceMap = {
5865
- svg: 'http://www.w3.org/2000/svg',
5866
- math: 'http://www.w3.org/1998/Math/MathML'
5867
- };
5868
-
5869
- var isHTMLTag = makeMap(
5870
- 'html,body,base,head,link,meta,style,title,' +
5871
- 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +
5872
- 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +
5873
- 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +
5874
- 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +
5875
- 'embed,object,param,source,canvas,script,noscript,del,ins,' +
5876
- 'caption,col,colgroup,table,thead,tbody,td,th,tr,' +
5877
- 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +
5878
- 'output,progress,select,textarea,' +
5879
- 'details,dialog,menu,menuitem,summary,' +
5880
- 'content,element,shadow,template,blockquote,iframe,tfoot'
5881
- );
5882
-
5883
- // this map is intentionally selective, only covering SVG elements that may
5884
- // contain child elements.
5885
- var isSVG = makeMap(
5886
- 'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +
5887
- 'foreignobject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +
5888
- 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view',
5889
- true
5890
- );
5891
-
5892
- var isPreTag = function (tag) { return tag === 'pre'; };
5893
-
5894
- var isReservedTag = function (tag) {
5895
- return isHTMLTag(tag) || isSVG(tag)
5896
- };
5897
-
5898
- function getTagNamespace (tag) {
5899
- if (isSVG(tag)) {
5900
- return 'svg'
5901
- }
5902
- // basic support for MathML
5903
- // note it doesn't support other MathML elements being component roots
5904
- if (tag === 'math') {
5905
- return 'math'
5906
- }
5907
- }
5908
-
5909
- var unknownElementCache = Object.create(null);
5910
- function isUnknownElement (tag) {
5911
- /* istanbul ignore if */
5912
- if (!inBrowser) {
5913
- return true
5914
- }
5915
- if (isReservedTag(tag)) {
5916
- return false
5917
- }
5918
- tag = tag.toLowerCase();
5919
- /* istanbul ignore if */
5920
- if (unknownElementCache[tag] != null) {
5921
- return unknownElementCache[tag]
5922
- }
5923
- var el = document.createElement(tag);
5924
- if (tag.indexOf('-') > -1) {
5925
- // http://stackoverflow.com/a/28210364/1070244
5926
- return (unknownElementCache[tag] = (
5927
- el.constructor === window.HTMLUnknownElement ||
5928
- el.constructor === window.HTMLElement
5929
- ))
5930
- } else {
5931
- return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()))
5932
- }
5933
- }
5934
-
5935
- var isTextInputType = makeMap('text,number,password,search,email,tel,url');
5936
-
5937
- /* */
5938
-
5939
- /**
5940
- * Query an element selector if it's not an element already.
5941
- */
5942
- function query (el) {
5943
- if (typeof el === 'string') {
5944
- var selected = document.querySelector(el);
5945
- if (!selected) {
5946
- process.env.NODE_ENV !== 'production' && warn(
5947
- 'Cannot find element: ' + el
5948
- );
5949
- return document.createElement('div')
5950
- }
5951
- return selected
5952
- } else {
5953
- return el
5954
- }
5955
- }
5956
-
5957
- /* */
5958
-
5959
- function createElement$1 (tagName, vnode) {
5960
- var elm = document.createElement(tagName);
5961
- if (tagName !== 'select') {
5962
- return elm
5963
- }
5964
- // false or null will remove the attribute but undefined will not
5965
- if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {
5966
- elm.setAttribute('multiple', 'multiple');
5967
- }
5968
- return elm
5969
- }
5970
-
5971
- function createElementNS (namespace, tagName) {
5972
- return document.createElementNS(namespaceMap[namespace], tagName)
5973
- }
5974
-
5975
- function createTextNode (text) {
5976
- return document.createTextNode(text)
5977
- }
5978
-
5979
- function createComment (text) {
5980
- return document.createComment(text)
5981
- }
5982
-
5983
- function insertBefore (parentNode, newNode, referenceNode) {
5984
- parentNode.insertBefore(newNode, referenceNode);
5985
- }
5986
-
5987
- function removeChild (node, child) {
5988
- node.removeChild(child);
5989
- }
5990
-
5991
- function appendChild (node, child) {
5992
- node.appendChild(child);
5993
- }
5994
-
5995
- function parentNode (node) {
5996
- return node.parentNode
5997
- }
5998
-
5999
- function nextSibling (node) {
6000
- return node.nextSibling
6001
- }
6002
-
6003
- function tagName (node) {
6004
- return node.tagName
6005
- }
6006
-
6007
- function setTextContent (node, text) {
6008
- node.textContent = text;
6009
- }
6010
-
6011
- function setStyleScope (node, scopeId) {
6012
- node.setAttribute(scopeId, '');
6013
- }
6014
-
6015
- var nodeOps = /*#__PURE__*/Object.freeze({
6016
- createElement: createElement$1,
6017
- createElementNS: createElementNS,
6018
- createTextNode: createTextNode,
6019
- createComment: createComment,
6020
- insertBefore: insertBefore,
6021
- removeChild: removeChild,
6022
- appendChild: appendChild,
6023
- parentNode: parentNode,
6024
- nextSibling: nextSibling,
6025
- tagName: tagName,
6026
- setTextContent: setTextContent,
6027
- setStyleScope: setStyleScope
6028
- });
6029
-
6030
- /* */
6031
-
6032
- var ref = {
6033
- create: function create (_, vnode) {
6034
- registerRef(vnode);
6035
- },
6036
- update: function update (oldVnode, vnode) {
6037
- if (oldVnode.data.ref !== vnode.data.ref) {
6038
- registerRef(oldVnode, true);
6039
- registerRef(vnode);
6040
- }
6041
- },
6042
- destroy: function destroy (vnode) {
6043
- registerRef(vnode, true);
6044
- }
6045
- };
6046
-
6047
- function registerRef (vnode, isRemoval) {
6048
- var key = vnode.data.ref;
6049
- if (!isDef(key)) { return }
6050
-
6051
- var vm = vnode.context;
6052
- var ref = vnode.componentInstance || vnode.elm;
6053
- var refs = vm.$refs;
6054
- if (isRemoval) {
6055
- if (Array.isArray(refs[key])) {
6056
- remove(refs[key], ref);
6057
- } else if (refs[key] === ref) {
6058
- refs[key] = undefined;
6059
- }
6060
- } else {
6061
- if (vnode.data.refInFor) {
6062
- if (!Array.isArray(refs[key])) {
6063
- refs[key] = [ref];
6064
- } else if (refs[key].indexOf(ref) < 0) {
6065
- // $flow-disable-line
6066
- refs[key].push(ref);
6067
- }
6068
- } else {
6069
- refs[key] = ref;
6070
- }
6071
- }
6072
- }
6073
-
6074
- /**
6075
- * Virtual DOM patching algorithm based on Snabbdom by
6076
- * Simon Friis Vindum (@paldepind)
6077
- * Licensed under the MIT License
6078
- * https://github.com/paldepind/snabbdom/blob/master/LICENSE
6079
- *
6080
- * modified by Evan You (@yyx990803)
6081
- *
6082
- * Not type-checking this because this file is perf-critical and the cost
6083
- * of making flow understand it is not worth it.
6084
- */
6085
-
6086
- var emptyNode = new VNode('', {}, []);
6087
-
6088
- var hooks = ['create', 'activate', 'update', 'remove', 'destroy'];
6089
-
6090
- function sameVnode (a, b) {
6091
- return (
6092
- a.key === b.key &&
6093
- a.asyncFactory === b.asyncFactory && (
6094
- (
6095
- a.tag === b.tag &&
6096
- a.isComment === b.isComment &&
6097
- isDef(a.data) === isDef(b.data) &&
6098
- sameInputType(a, b)
6099
- ) || (
6100
- isTrue(a.isAsyncPlaceholder) &&
6101
- isUndef(b.asyncFactory.error)
6102
- )
6103
- )
6104
- )
6105
- }
6106
-
6107
- function sameInputType (a, b) {
6108
- if (a.tag !== 'input') { return true }
6109
- var i;
6110
- var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;
6111
- var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type;
6112
- return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB)
6113
- }
6114
-
6115
- function createKeyToOldIdx (children, beginIdx, endIdx) {
6116
- var i, key;
6117
- var map = {};
6118
- for (i = beginIdx; i <= endIdx; ++i) {
6119
- key = children[i].key;
6120
- if (isDef(key)) { map[key] = i; }
6121
- }
6122
- return map
6123
- }
6124
-
6125
- function createPatchFunction (backend) {
6126
- var i, j;
6127
- var cbs = {};
6128
-
6129
- var modules = backend.modules;
6130
- var nodeOps = backend.nodeOps;
6131
-
6132
- for (i = 0; i < hooks.length; ++i) {
6133
- cbs[hooks[i]] = [];
6134
- for (j = 0; j < modules.length; ++j) {
6135
- if (isDef(modules[j][hooks[i]])) {
6136
- cbs[hooks[i]].push(modules[j][hooks[i]]);
6137
- }
6138
- }
6139
- }
6140
-
6141
- function emptyNodeAt (elm) {
6142
- return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm)
6143
- }
6144
-
6145
- function createRmCb (childElm, listeners) {
6146
- function remove$$1 () {
6147
- if (--remove$$1.listeners === 0) {
6148
- removeNode(childElm);
6149
- }
6150
- }
6151
- remove$$1.listeners = listeners;
6152
- return remove$$1
6153
- }
6154
-
6155
- function removeNode (el) {
6156
- var parent = nodeOps.parentNode(el);
6157
- // element may have already been removed due to v-html / v-text
6158
- if (isDef(parent)) {
6159
- nodeOps.removeChild(parent, el);
6160
- }
6161
- }
6162
-
6163
- function isUnknownElement$$1 (vnode, inVPre) {
6164
- return (
6165
- !inVPre &&
6166
- !vnode.ns &&
6167
- !(
6168
- config.ignoredElements.length &&
6169
- config.ignoredElements.some(function (ignore) {
6170
- return isRegExp(ignore)
6171
- ? ignore.test(vnode.tag)
6172
- : ignore === vnode.tag
6173
- })
6174
- ) &&
6175
- config.isUnknownElement(vnode.tag)
6176
- )
6177
- }
6178
-
6179
- var creatingElmInVPre = 0;
6180
-
6181
- function createElm (
6182
- vnode,
6183
- insertedVnodeQueue,
6184
- parentElm,
6185
- refElm,
6186
- nested,
6187
- ownerArray,
6188
- index
6189
- ) {
6190
- if (isDef(vnode.elm) && isDef(ownerArray)) {
6191
- // This vnode was used in a previous render!
6192
- // now it's used as a new node, overwriting its elm would cause
6193
- // potential patch errors down the road when it's used as an insertion
6194
- // reference node. Instead, we clone the node on-demand before creating
6195
- // associated DOM element for it.
6196
- vnode = ownerArray[index] = cloneVNode(vnode);
6197
- }
6198
-
6199
- vnode.isRootInsert = !nested; // for transition enter check
6200
- if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {
6201
- return
6202
- }
6203
-
6204
- var data = vnode.data;
6205
- var children = vnode.children;
6206
- var tag = vnode.tag;
6207
- if (isDef(tag)) {
6208
- if (process.env.NODE_ENV !== 'production') {
6209
- if (data && data.pre) {
6210
- creatingElmInVPre++;
6211
- }
6212
- if (isUnknownElement$$1(vnode, creatingElmInVPre)) {
6213
- warn(
6214
- 'Unknown custom element: <' + tag + '> - did you ' +
6215
- 'register the component correctly? For recursive components, ' +
6216
- 'make sure to provide the "name" option.',
6217
- vnode.context
6218
- );
6219
- }
6220
- }
6221
-
6222
- vnode.elm = vnode.ns
6223
- ? nodeOps.createElementNS(vnode.ns, tag)
6224
- : nodeOps.createElement(tag, vnode);
6225
- setScope(vnode);
6226
-
6227
- /* istanbul ignore if */
6228
- {
6229
- createChildren(vnode, children, insertedVnodeQueue);
6230
- if (isDef(data)) {
6231
- invokeCreateHooks(vnode, insertedVnodeQueue);
6232
- }
6233
- insert(parentElm, vnode.elm, refElm);
6234
- }
6235
-
6236
- if (process.env.NODE_ENV !== 'production' && data && data.pre) {
6237
- creatingElmInVPre--;
6238
- }
6239
- } else if (isTrue(vnode.isComment)) {
6240
- vnode.elm = nodeOps.createComment(vnode.text);
6241
- insert(parentElm, vnode.elm, refElm);
6242
- } else {
6243
- vnode.elm = nodeOps.createTextNode(vnode.text);
6244
- insert(parentElm, vnode.elm, refElm);
6245
- }
6246
- }
6247
-
6248
- function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) {
6249
- var i = vnode.data;
6250
- if (isDef(i)) {
6251
- var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;
6252
- if (isDef(i = i.hook) && isDef(i = i.init)) {
6253
- i(vnode, false /* hydrating */);
6254
- }
6255
- // after calling the init hook, if the vnode is a child component
6256
- // it should've created a child instance and mounted it. the child
6257
- // component also has set the placeholder vnode's elm.
6258
- // in that case we can just return the element and be done.
6259
- if (isDef(vnode.componentInstance)) {
6260
- initComponent(vnode, insertedVnodeQueue);
6261
- insert(parentElm, vnode.elm, refElm);
6262
- if (isTrue(isReactivated)) {
6263
- reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);
6264
- }
6265
- return true
6266
- }
6267
- }
6268
- }
6269
-
6270
- function initComponent (vnode, insertedVnodeQueue) {
6271
- if (isDef(vnode.data.pendingInsert)) {
6272
- insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);
6273
- vnode.data.pendingInsert = null;
6274
- }
6275
- vnode.elm = vnode.componentInstance.$el;
6276
- if (isPatchable(vnode)) {
6277
- invokeCreateHooks(vnode, insertedVnodeQueue);
6278
- setScope(vnode);
6279
- } else {
6280
- // empty component root.
6281
- // skip all element-related modules except for ref (#3455)
6282
- registerRef(vnode);
6283
- // make sure to invoke the insert hook
6284
- insertedVnodeQueue.push(vnode);
6285
- }
6286
- }
6287
-
6288
- function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) {
6289
- var i;
6290
- // hack for #4339: a reactivated component with inner transition
6291
- // does not trigger because the inner node's created hooks are not called
6292
- // again. It's not ideal to involve module-specific logic in here but
6293
- // there doesn't seem to be a better way to do it.
6294
- var innerNode = vnode;
6295
- while (innerNode.componentInstance) {
6296
- innerNode = innerNode.componentInstance._vnode;
6297
- if (isDef(i = innerNode.data) && isDef(i = i.transition)) {
6298
- for (i = 0; i < cbs.activate.length; ++i) {
6299
- cbs.activate[i](emptyNode, innerNode);
6300
- }
6301
- insertedVnodeQueue.push(innerNode);
6302
- break
6303
- }
6304
- }
6305
- // unlike a newly created component,
6306
- // a reactivated keep-alive component doesn't insert itself
6307
- insert(parentElm, vnode.elm, refElm);
6308
- }
6309
-
6310
- function insert (parent, elm, ref$$1) {
6311
- if (isDef(parent)) {
6312
- if (isDef(ref$$1)) {
6313
- if (nodeOps.parentNode(ref$$1) === parent) {
6314
- nodeOps.insertBefore(parent, elm, ref$$1);
6315
- }
6316
- } else {
6317
- nodeOps.appendChild(parent, elm);
6318
- }
6319
- }
6320
- }
6321
-
6322
- function createChildren (vnode, children, insertedVnodeQueue) {
6323
- if (Array.isArray(children)) {
6324
- if (process.env.NODE_ENV !== 'production') {
6325
- checkDuplicateKeys(children);
6326
- }
6327
- for (var i = 0; i < children.length; ++i) {
6328
- createElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i);
6329
- }
6330
- } else if (isPrimitive(vnode.text)) {
6331
- nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));
6332
- }
6333
- }
6334
-
6335
- function isPatchable (vnode) {
6336
- while (vnode.componentInstance) {
6337
- vnode = vnode.componentInstance._vnode;
6338
- }
6339
- return isDef(vnode.tag)
6340
- }
6341
-
6342
- function invokeCreateHooks (vnode, insertedVnodeQueue) {
6343
- for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {
6344
- cbs.create[i$1](emptyNode, vnode);
6345
- }
6346
- i = vnode.data.hook; // Reuse variable
6347
- if (isDef(i)) {
6348
- if (isDef(i.create)) { i.create(emptyNode, vnode); }
6349
- if (isDef(i.insert)) { insertedVnodeQueue.push(vnode); }
6350
- }
6351
- }
6352
-
6353
- // set scope id attribute for scoped CSS.
6354
- // this is implemented as a special case to avoid the overhead
6355
- // of going through the normal attribute patching process.
6356
- function setScope (vnode) {
6357
- var i;
6358
- if (isDef(i = vnode.fnScopeId)) {
6359
- nodeOps.setStyleScope(vnode.elm, i);
6360
- } else {
6361
- var ancestor = vnode;
6362
- while (ancestor) {
6363
- if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {
6364
- nodeOps.setStyleScope(vnode.elm, i);
6365
- }
6366
- ancestor = ancestor.parent;
6367
- }
6368
- }
6369
- // for slot content they should also get the scopeId from the host instance.
6370
- if (isDef(i = activeInstance) &&
6371
- i !== vnode.context &&
6372
- i !== vnode.fnContext &&
6373
- isDef(i = i.$options._scopeId)
6374
- ) {
6375
- nodeOps.setStyleScope(vnode.elm, i);
6376
- }
6377
- }
6378
-
6379
- function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {
6380
- for (; startIdx <= endIdx; ++startIdx) {
6381
- createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);
6382
- }
6383
- }
6384
-
6385
- function invokeDestroyHook (vnode) {
6386
- var i, j;
6387
- var data = vnode.data;
6388
- if (isDef(data)) {
6389
- if (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); }
6390
- for (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); }
6391
- }
6392
- if (isDef(i = vnode.children)) {
6393
- for (j = 0; j < vnode.children.length; ++j) {
6394
- invokeDestroyHook(vnode.children[j]);
6395
- }
6396
- }
6397
- }
6398
-
6399
- function removeVnodes (vnodes, startIdx, endIdx) {
6400
- for (; startIdx <= endIdx; ++startIdx) {
6401
- var ch = vnodes[startIdx];
6402
- if (isDef(ch)) {
6403
- if (isDef(ch.tag)) {
6404
- removeAndInvokeRemoveHook(ch);
6405
- invokeDestroyHook(ch);
6406
- } else { // Text node
6407
- removeNode(ch.elm);
6408
- }
6409
- }
6410
- }
6411
- }
6412
-
6413
- function removeAndInvokeRemoveHook (vnode, rm) {
6414
- if (isDef(rm) || isDef(vnode.data)) {
6415
- var i;
6416
- var listeners = cbs.remove.length + 1;
6417
- if (isDef(rm)) {
6418
- // we have a recursively passed down rm callback
6419
- // increase the listeners count
6420
- rm.listeners += listeners;
6421
- } else {
6422
- // directly removing
6423
- rm = createRmCb(vnode.elm, listeners);
6424
- }
6425
- // recursively invoke hooks on child component root node
6426
- if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {
6427
- removeAndInvokeRemoveHook(i, rm);
6428
- }
6429
- for (i = 0; i < cbs.remove.length; ++i) {
6430
- cbs.remove[i](vnode, rm);
6431
- }
6432
- if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {
6433
- i(vnode, rm);
6434
- } else {
6435
- rm();
6436
- }
6437
- } else {
6438
- removeNode(vnode.elm);
6439
- }
6440
- }
6441
-
6442
- function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {
6443
- var oldStartIdx = 0;
6444
- var newStartIdx = 0;
6445
- var oldEndIdx = oldCh.length - 1;
6446
- var oldStartVnode = oldCh[0];
6447
- var oldEndVnode = oldCh[oldEndIdx];
6448
- var newEndIdx = newCh.length - 1;
6449
- var newStartVnode = newCh[0];
6450
- var newEndVnode = newCh[newEndIdx];
6451
- var oldKeyToIdx, idxInOld, vnodeToMove, refElm;
6452
-
6453
- // removeOnly is a special flag used only by <transition-group>
6454
- // to ensure removed elements stay in correct relative positions
6455
- // during leaving transitions
6456
- var canMove = !removeOnly;
6457
-
6458
- if (process.env.NODE_ENV !== 'production') {
6459
- checkDuplicateKeys(newCh);
6460
- }
6461
-
6462
- while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {
6463
- if (isUndef(oldStartVnode)) {
6464
- oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left
6465
- } else if (isUndef(oldEndVnode)) {
6466
- oldEndVnode = oldCh[--oldEndIdx];
6467
- } else if (sameVnode(oldStartVnode, newStartVnode)) {
6468
- patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);
6469
- oldStartVnode = oldCh[++oldStartIdx];
6470
- newStartVnode = newCh[++newStartIdx];
6471
- } else if (sameVnode(oldEndVnode, newEndVnode)) {
6472
- patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);
6473
- oldEndVnode = oldCh[--oldEndIdx];
6474
- newEndVnode = newCh[--newEndIdx];
6475
- } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right
6476
- patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);
6477
- canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));
6478
- oldStartVnode = oldCh[++oldStartIdx];
6479
- newEndVnode = newCh[--newEndIdx];
6480
- } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left
6481
- patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);
6482
- canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);
6483
- oldEndVnode = oldCh[--oldEndIdx];
6484
- newStartVnode = newCh[++newStartIdx];
6485
- } else {
6486
- if (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); }
6487
- idxInOld = isDef(newStartVnode.key)
6488
- ? oldKeyToIdx[newStartVnode.key]
6489
- : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);
6490
- if (isUndef(idxInOld)) { // New element
6491
- createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);
6492
- } else {
6493
- vnodeToMove = oldCh[idxInOld];
6494
- if (sameVnode(vnodeToMove, newStartVnode)) {
6495
- patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);
6496
- oldCh[idxInOld] = undefined;
6497
- canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);
6498
- } else {
6499
- // same key but different element. treat as new element
6500
- createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);
6501
- }
6502
- }
6503
- newStartVnode = newCh[++newStartIdx];
6504
- }
6505
- }
6506
- if (oldStartIdx > oldEndIdx) {
6507
- refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;
6508
- addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);
6509
- } else if (newStartIdx > newEndIdx) {
6510
- removeVnodes(oldCh, oldStartIdx, oldEndIdx);
6511
- }
6512
- }
6513
-
6514
- function checkDuplicateKeys (children) {
6515
- var seenKeys = {};
6516
- for (var i = 0; i < children.length; i++) {
6517
- var vnode = children[i];
6518
- var key = vnode.key;
6519
- if (isDef(key)) {
6520
- if (seenKeys[key]) {
6521
- warn(
6522
- ("Duplicate keys detected: '" + key + "'. This may cause an update error."),
6523
- vnode.context
6524
- );
6525
- } else {
6526
- seenKeys[key] = true;
6527
- }
6528
- }
6529
- }
6530
- }
6531
-
6532
- function findIdxInOld (node, oldCh, start, end) {
6533
- for (var i = start; i < end; i++) {
6534
- var c = oldCh[i];
6535
- if (isDef(c) && sameVnode(node, c)) { return i }
6536
- }
6537
- }
6538
-
6539
- function patchVnode (
6540
- oldVnode,
6541
- vnode,
6542
- insertedVnodeQueue,
6543
- ownerArray,
6544
- index,
6545
- removeOnly
6546
- ) {
6547
- if (oldVnode === vnode) {
6548
- return
6549
- }
6550
-
6551
- if (isDef(vnode.elm) && isDef(ownerArray)) {
6552
- // clone reused vnode
6553
- vnode = ownerArray[index] = cloneVNode(vnode);
6554
- }
6555
-
6556
- var elm = vnode.elm = oldVnode.elm;
6557
-
6558
- if (isTrue(oldVnode.isAsyncPlaceholder)) {
6559
- if (isDef(vnode.asyncFactory.resolved)) {
6560
- hydrate(oldVnode.elm, vnode, insertedVnodeQueue);
6561
- } else {
6562
- vnode.isAsyncPlaceholder = true;
6563
- }
6564
- return
6565
- }
6566
-
6567
- // reuse element for static trees.
6568
- // note we only do this if the vnode is cloned -
6569
- // if the new node is not cloned it means the render functions have been
6570
- // reset by the hot-reload-api and we need to do a proper re-render.
6571
- if (isTrue(vnode.isStatic) &&
6572
- isTrue(oldVnode.isStatic) &&
6573
- vnode.key === oldVnode.key &&
6574
- (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))
6575
- ) {
6576
- vnode.componentInstance = oldVnode.componentInstance;
6577
- return
6578
- }
6579
-
6580
- var i;
6581
- var data = vnode.data;
6582
- if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {
6583
- i(oldVnode, vnode);
6584
- }
6585
-
6586
- var oldCh = oldVnode.children;
6587
- var ch = vnode.children;
6588
- if (isDef(data) && isPatchable(vnode)) {
6589
- for (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); }
6590
- if (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); }
6591
- }
6592
- if (isUndef(vnode.text)) {
6593
- if (isDef(oldCh) && isDef(ch)) {
6594
- if (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); }
6595
- } else if (isDef(ch)) {
6596
- if (process.env.NODE_ENV !== 'production') {
6597
- checkDuplicateKeys(ch);
6598
- }
6599
- if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); }
6600
- addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);
6601
- } else if (isDef(oldCh)) {
6602
- removeVnodes(oldCh, 0, oldCh.length - 1);
6603
- } else if (isDef(oldVnode.text)) {
6604
- nodeOps.setTextContent(elm, '');
6605
- }
6606
- } else if (oldVnode.text !== vnode.text) {
6607
- nodeOps.setTextContent(elm, vnode.text);
6608
- }
6609
- if (isDef(data)) {
6610
- if (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); }
6611
- }
6612
- }
6613
-
6614
- function invokeInsertHook (vnode, queue, initial) {
6615
- // delay insert hooks for component root nodes, invoke them after the
6616
- // element is really inserted
6617
- if (isTrue(initial) && isDef(vnode.parent)) {
6618
- vnode.parent.data.pendingInsert = queue;
6619
- } else {
6620
- for (var i = 0; i < queue.length; ++i) {
6621
- queue[i].data.hook.insert(queue[i]);
6622
- }
6623
- }
6624
- }
6625
-
6626
- var hydrationBailed = false;
6627
- // list of modules that can skip create hook during hydration because they
6628
- // are already rendered on the client or has no need for initialization
6629
- // Note: style is excluded because it relies on initial clone for future
6630
- // deep updates (#7063).
6631
- var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');
6632
-
6633
- // Note: this is a browser-only function so we can assume elms are DOM nodes.
6634
- function hydrate (elm, vnode, insertedVnodeQueue, inVPre) {
6635
- var i;
6636
- var tag = vnode.tag;
6637
- var data = vnode.data;
6638
- var children = vnode.children;
6639
- inVPre = inVPre || (data && data.pre);
6640
- vnode.elm = elm;
6641
-
6642
- if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {
6643
- vnode.isAsyncPlaceholder = true;
6644
- return true
6645
- }
6646
- // assert node match
6647
- if (process.env.NODE_ENV !== 'production') {
6648
- if (!assertNodeMatch(elm, vnode, inVPre)) {
6649
- return false
6650
- }
6651
- }
6652
- if (isDef(data)) {
6653
- if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); }
6654
- if (isDef(i = vnode.componentInstance)) {
6655
- // child component. it should have hydrated its own tree.
6656
- initComponent(vnode, insertedVnodeQueue);
6657
- return true
6658
- }
6659
- }
6660
- if (isDef(tag)) {
6661
- if (isDef(children)) {
6662
- // empty element, allow client to pick up and populate children
6663
- if (!elm.hasChildNodes()) {
6664
- createChildren(vnode, children, insertedVnodeQueue);
6665
- } else {
6666
- // v-html and domProps: innerHTML
6667
- if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) {
6668
- if (i !== elm.innerHTML) {
6669
- /* istanbul ignore if */
6670
- if (process.env.NODE_ENV !== 'production' &&
6671
- typeof console !== 'undefined' &&
6672
- !hydrationBailed
6673
- ) {
6674
- hydrationBailed = true;
6675
- console.warn('Parent: ', elm);
6676
- console.warn('server innerHTML: ', i);
6677
- console.warn('client innerHTML: ', elm.innerHTML);
6678
- }
6679
- return false
6680
- }
6681
- } else {
6682
- // iterate and compare children lists
6683
- var childrenMatch = true;
6684
- var childNode = elm.firstChild;
6685
- for (var i$1 = 0; i$1 < children.length; i$1++) {
6686
- if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue, inVPre)) {
6687
- childrenMatch = false;
6688
- break
6689
- }
6690
- childNode = childNode.nextSibling;
6691
- }
6692
- // if childNode is not null, it means the actual childNodes list is
6693
- // longer than the virtual children list.
6694
- if (!childrenMatch || childNode) {
6695
- /* istanbul ignore if */
6696
- if (process.env.NODE_ENV !== 'production' &&
6697
- typeof console !== 'undefined' &&
6698
- !hydrationBailed
6699
- ) {
6700
- hydrationBailed = true;
6701
- console.warn('Parent: ', elm);
6702
- console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);
6703
- }
6704
- return false
6705
- }
6706
- }
6707
- }
6708
- }
6709
- if (isDef(data)) {
6710
- var fullInvoke = false;
6711
- for (var key in data) {
6712
- if (!isRenderedModule(key)) {
6713
- fullInvoke = true;
6714
- invokeCreateHooks(vnode, insertedVnodeQueue);
6715
- break
6716
- }
6717
- }
6718
- if (!fullInvoke && data['class']) {
6719
- // ensure collecting deps for deep class bindings for future updates
6720
- traverse(data['class']);
6721
- }
6722
- }
6723
- } else if (elm.data !== vnode.text) {
6724
- elm.data = vnode.text;
6725
- }
6726
- return true
6727
- }
6728
-
6729
- function assertNodeMatch (node, vnode, inVPre) {
6730
- if (isDef(vnode.tag)) {
6731
- return vnode.tag.indexOf('vue-component') === 0 || (
6732
- !isUnknownElement$$1(vnode, inVPre) &&
6733
- vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase())
6734
- )
6735
- } else {
6736
- return node.nodeType === (vnode.isComment ? 8 : 3)
6737
- }
6738
- }
6739
-
6740
- return function patch (oldVnode, vnode, hydrating, removeOnly) {
6741
- if (isUndef(vnode)) {
6742
- if (isDef(oldVnode)) { invokeDestroyHook(oldVnode); }
6743
- return
6744
- }
6745
-
6746
- var isInitialPatch = false;
6747
- var insertedVnodeQueue = [];
6748
-
6749
- if (isUndef(oldVnode)) {
6750
- // empty mount (likely as component), create new root element
6751
- isInitialPatch = true;
6752
- createElm(vnode, insertedVnodeQueue);
6753
- } else {
6754
- var isRealElement = isDef(oldVnode.nodeType);
6755
- if (!isRealElement && sameVnode(oldVnode, vnode)) {
6756
- // patch existing root node
6757
- patchVnode(oldVnode, vnode, insertedVnodeQueue, null, null, removeOnly);
6758
- } else {
6759
- if (isRealElement) {
6760
- // mounting to a real element
6761
- // check if this is server-rendered content and if we can perform
6762
- // a successful hydration.
6763
- if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {
6764
- oldVnode.removeAttribute(SSR_ATTR);
6765
- hydrating = true;
6766
- }
6767
- if (isTrue(hydrating)) {
6768
- if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {
6769
- invokeInsertHook(vnode, insertedVnodeQueue, true);
6770
- return oldVnode
6771
- } else if (process.env.NODE_ENV !== 'production') {
6772
- warn(
6773
- 'The client-side rendered virtual DOM tree is not matching ' +
6774
- 'server-rendered content. This is likely caused by incorrect ' +
6775
- 'HTML markup, for example nesting block-level elements inside ' +
6776
- '<p>, or missing <tbody>. Bailing hydration and performing ' +
6777
- 'full client-side render.'
6778
- );
6779
- }
6780
- }
6781
- // either not server-rendered, or hydration failed.
6782
- // create an empty node and replace it
6783
- oldVnode = emptyNodeAt(oldVnode);
6784
- }
6785
-
6786
- // replacing existing element
6787
- var oldElm = oldVnode.elm;
6788
- var parentElm = nodeOps.parentNode(oldElm);
6789
-
6790
- // create new node
6791
- createElm(
6792
- vnode,
6793
- insertedVnodeQueue,
6794
- // extremely rare edge case: do not insert if old element is in a
6795
- // leaving transition. Only happens when combining transition +
6796
- // keep-alive + HOCs. (#4590)
6797
- oldElm._leaveCb ? null : parentElm,
6798
- nodeOps.nextSibling(oldElm)
6799
- );
6800
-
6801
- // update parent placeholder node element, recursively
6802
- if (isDef(vnode.parent)) {
6803
- var ancestor = vnode.parent;
6804
- var patchable = isPatchable(vnode);
6805
- while (ancestor) {
6806
- for (var i = 0; i < cbs.destroy.length; ++i) {
6807
- cbs.destroy[i](ancestor);
6808
- }
6809
- ancestor.elm = vnode.elm;
6810
- if (patchable) {
6811
- for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {
6812
- cbs.create[i$1](emptyNode, ancestor);
6813
- }
6814
- // #6513
6815
- // invoke insert hooks that may have been merged by create hooks.
6816
- // e.g. for directives that uses the "inserted" hook.
6817
- var insert = ancestor.data.hook.insert;
6818
- if (insert.merged) {
6819
- // start at index 1 to avoid re-invoking component mounted hook
6820
- for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {
6821
- insert.fns[i$2]();
6822
- }
6823
- }
6824
- } else {
6825
- registerRef(ancestor);
6826
- }
6827
- ancestor = ancestor.parent;
6828
- }
6829
- }
6830
-
6831
- // destroy old node
6832
- if (isDef(parentElm)) {
6833
- removeVnodes([oldVnode], 0, 0);
6834
- } else if (isDef(oldVnode.tag)) {
6835
- invokeDestroyHook(oldVnode);
6836
- }
6837
- }
6838
- }
6839
-
6840
- invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);
6841
- return vnode.elm
6842
- }
6843
- }
6844
-
6845
- /* */
6846
-
6847
- var directives = {
6848
- create: updateDirectives,
6849
- update: updateDirectives,
6850
- destroy: function unbindDirectives (vnode) {
6851
- updateDirectives(vnode, emptyNode);
6852
- }
6853
- };
6854
-
6855
- function updateDirectives (oldVnode, vnode) {
6856
- if (oldVnode.data.directives || vnode.data.directives) {
6857
- _update(oldVnode, vnode);
6858
- }
6859
- }
6860
-
6861
- function _update (oldVnode, vnode) {
6862
- var isCreate = oldVnode === emptyNode;
6863
- var isDestroy = vnode === emptyNode;
6864
- var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);
6865
- var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);
6866
-
6867
- var dirsWithInsert = [];
6868
- var dirsWithPostpatch = [];
6869
-
6870
- var key, oldDir, dir;
6871
- for (key in newDirs) {
6872
- oldDir = oldDirs[key];
6873
- dir = newDirs[key];
6874
- if (!oldDir) {
6875
- // new directive, bind
6876
- callHook$1(dir, 'bind', vnode, oldVnode);
6877
- if (dir.def && dir.def.inserted) {
6878
- dirsWithInsert.push(dir);
6879
- }
6880
- } else {
6881
- // existing directive, update
6882
- dir.oldValue = oldDir.value;
6883
- dir.oldArg = oldDir.arg;
6884
- callHook$1(dir, 'update', vnode, oldVnode);
6885
- if (dir.def && dir.def.componentUpdated) {
6886
- dirsWithPostpatch.push(dir);
6887
- }
6888
- }
6889
- }
6890
-
6891
- if (dirsWithInsert.length) {
6892
- var callInsert = function () {
6893
- for (var i = 0; i < dirsWithInsert.length; i++) {
6894
- callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);
6895
- }
6896
- };
6897
- if (isCreate) {
6898
- mergeVNodeHook(vnode, 'insert', callInsert);
6899
- } else {
6900
- callInsert();
6901
- }
6902
- }
6903
-
6904
- if (dirsWithPostpatch.length) {
6905
- mergeVNodeHook(vnode, 'postpatch', function () {
6906
- for (var i = 0; i < dirsWithPostpatch.length; i++) {
6907
- callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);
6908
- }
6909
- });
6910
- }
6911
-
6912
- if (!isCreate) {
6913
- for (key in oldDirs) {
6914
- if (!newDirs[key]) {
6915
- // no longer present, unbind
6916
- callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);
6917
- }
6918
- }
6919
- }
6920
- }
6921
-
6922
- var emptyModifiers = Object.create(null);
6923
-
6924
- function normalizeDirectives$1 (
6925
- dirs,
6926
- vm
6927
- ) {
6928
- var res = Object.create(null);
6929
- if (!dirs) {
6930
- // $flow-disable-line
6931
- return res
6932
- }
6933
- var i, dir;
6934
- for (i = 0; i < dirs.length; i++) {
6935
- dir = dirs[i];
6936
- if (!dir.modifiers) {
6937
- // $flow-disable-line
6938
- dir.modifiers = emptyModifiers;
6939
- }
6940
- res[getRawDirName(dir)] = dir;
6941
- dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);
6942
- }
6943
- // $flow-disable-line
6944
- return res
6945
- }
6946
-
6947
- function getRawDirName (dir) {
6948
- return dir.rawName || ((dir.name) + "." + (Object.keys(dir.modifiers || {}).join('.')))
6949
- }
6950
-
6951
- function callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {
6952
- var fn = dir.def && dir.def[hook];
6953
- if (fn) {
6954
- try {
6955
- fn(vnode.elm, dir, vnode, oldVnode, isDestroy);
6956
- } catch (e) {
6957
- handleError(e, vnode.context, ("directive " + (dir.name) + " " + hook + " hook"));
6958
- }
6959
- }
6960
- }
6961
-
6962
- var baseModules = [
6963
- ref,
6964
- directives
6965
- ];
6966
-
6967
- /* */
6968
-
6969
- function updateAttrs (oldVnode, vnode) {
6970
- var opts = vnode.componentOptions;
6971
- if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {
6972
- return
6973
- }
6974
- if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {
6975
- return
6976
- }
6977
- var key, cur, old;
6978
- var elm = vnode.elm;
6979
- var oldAttrs = oldVnode.data.attrs || {};
6980
- var attrs = vnode.data.attrs || {};
6981
- // clone observed objects, as the user probably wants to mutate it
6982
- if (isDef(attrs.__ob__)) {
6983
- attrs = vnode.data.attrs = extend({}, attrs);
6984
- }
6985
-
6986
- for (key in attrs) {
6987
- cur = attrs[key];
6988
- old = oldAttrs[key];
6989
- if (old !== cur) {
6990
- setAttr(elm, key, cur, vnode.data.pre);
6991
- }
6992
- }
6993
- // #4391: in IE9, setting type can reset value for input[type=radio]
6994
- // #6666: IE/Edge forces progress value down to 1 before setting a max
6995
- /* istanbul ignore if */
6996
- if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {
6997
- setAttr(elm, 'value', attrs.value);
6998
- }
6999
- for (key in oldAttrs) {
7000
- if (isUndef(attrs[key])) {
7001
- if (isXlink(key)) {
7002
- elm.removeAttributeNS(xlinkNS, getXlinkProp(key));
7003
- } else if (!isEnumeratedAttr(key)) {
7004
- elm.removeAttribute(key);
7005
- }
7006
- }
7007
- }
7008
- }
7009
-
7010
- function setAttr (el, key, value, isInPre) {
7011
- if (isInPre || el.tagName.indexOf('-') > -1) {
7012
- baseSetAttr(el, key, value);
7013
- } else if (isBooleanAttr(key)) {
7014
- // set attribute for blank value
7015
- // e.g. <option disabled>Select one</option>
7016
- if (isFalsyAttrValue(value)) {
7017
- el.removeAttribute(key);
7018
- } else {
7019
- // technically allowfullscreen is a boolean attribute for <iframe>,
7020
- // but Flash expects a value of "true" when used on <embed> tag
7021
- value = key === 'allowfullscreen' && el.tagName === 'EMBED'
7022
- ? 'true'
7023
- : key;
7024
- el.setAttribute(key, value);
7025
- }
7026
- } else if (isEnumeratedAttr(key)) {
7027
- el.setAttribute(key, convertEnumeratedValue(key, value));
7028
- } else if (isXlink(key)) {
7029
- if (isFalsyAttrValue(value)) {
7030
- el.removeAttributeNS(xlinkNS, getXlinkProp(key));
7031
- } else {
7032
- el.setAttributeNS(xlinkNS, key, value);
7033
- }
7034
- } else {
7035
- baseSetAttr(el, key, value);
7036
- }
7037
- }
7038
-
7039
- function baseSetAttr (el, key, value) {
7040
- if (isFalsyAttrValue(value)) {
7041
- el.removeAttribute(key);
7042
- } else {
7043
- // #7138: IE10 & 11 fires input event when setting placeholder on
7044
- // <textarea>... block the first input event and remove the blocker
7045
- // immediately.
7046
- /* istanbul ignore if */
7047
- if (
7048
- isIE && !isIE9 &&
7049
- el.tagName === 'TEXTAREA' &&
7050
- key === 'placeholder' && value !== '' && !el.__ieph
7051
- ) {
7052
- var blocker = function (e) {
7053
- e.stopImmediatePropagation();
7054
- el.removeEventListener('input', blocker);
7055
- };
7056
- el.addEventListener('input', blocker);
7057
- // $flow-disable-line
7058
- el.__ieph = true; /* IE placeholder patched */
7059
- }
7060
- el.setAttribute(key, value);
7061
- }
7062
- }
7063
-
7064
- var attrs = {
7065
- create: updateAttrs,
7066
- update: updateAttrs
7067
- };
7068
-
7069
- /* */
7070
-
7071
- function updateClass (oldVnode, vnode) {
7072
- var el = vnode.elm;
7073
- var data = vnode.data;
7074
- var oldData = oldVnode.data;
7075
- if (
7076
- isUndef(data.staticClass) &&
7077
- isUndef(data.class) && (
7078
- isUndef(oldData) || (
7079
- isUndef(oldData.staticClass) &&
7080
- isUndef(oldData.class)
7081
- )
7082
- )
7083
- ) {
7084
- return
7085
- }
7086
-
7087
- var cls = genClassForVnode(vnode);
7088
-
7089
- // handle transition classes
7090
- var transitionClass = el._transitionClasses;
7091
- if (isDef(transitionClass)) {
7092
- cls = concat(cls, stringifyClass(transitionClass));
7093
- }
7094
-
7095
- // set the class
7096
- if (cls !== el._prevClass) {
7097
- el.setAttribute('class', cls);
7098
- el._prevClass = cls;
7099
- }
7100
- }
7101
-
7102
- var klass = {
7103
- create: updateClass,
7104
- update: updateClass
7105
- };
7106
-
7107
- /* */
7108
-
7109
- var validDivisionCharRE = /[\w).+\-_$\]]/;
7110
-
7111
- function parseFilters (exp) {
7112
- var inSingle = false;
7113
- var inDouble = false;
7114
- var inTemplateString = false;
7115
- var inRegex = false;
7116
- var curly = 0;
7117
- var square = 0;
7118
- var paren = 0;
7119
- var lastFilterIndex = 0;
7120
- var c, prev, i, expression, filters;
7121
-
7122
- for (i = 0; i < exp.length; i++) {
7123
- prev = c;
7124
- c = exp.charCodeAt(i);
7125
- if (inSingle) {
7126
- if (c === 0x27 && prev !== 0x5C) { inSingle = false; }
7127
- } else if (inDouble) {
7128
- if (c === 0x22 && prev !== 0x5C) { inDouble = false; }
7129
- } else if (inTemplateString) {
7130
- if (c === 0x60 && prev !== 0x5C) { inTemplateString = false; }
7131
- } else if (inRegex) {
7132
- if (c === 0x2f && prev !== 0x5C) { inRegex = false; }
7133
- } else if (
7134
- c === 0x7C && // pipe
7135
- exp.charCodeAt(i + 1) !== 0x7C &&
7136
- exp.charCodeAt(i - 1) !== 0x7C &&
7137
- !curly && !square && !paren
7138
- ) {
7139
- if (expression === undefined) {
7140
- // first filter, end of expression
7141
- lastFilterIndex = i + 1;
7142
- expression = exp.slice(0, i).trim();
7143
- } else {
7144
- pushFilter();
7145
- }
7146
- } else {
7147
- switch (c) {
7148
- case 0x22: inDouble = true; break // "
7149
- case 0x27: inSingle = true; break // '
7150
- case 0x60: inTemplateString = true; break // `
7151
- case 0x28: paren++; break // (
7152
- case 0x29: paren--; break // )
7153
- case 0x5B: square++; break // [
7154
- case 0x5D: square--; break // ]
7155
- case 0x7B: curly++; break // {
7156
- case 0x7D: curly--; break // }
7157
- }
7158
- if (c === 0x2f) { // /
7159
- var j = i - 1;
7160
- var p = (void 0);
7161
- // find first non-whitespace prev char
7162
- for (; j >= 0; j--) {
7163
- p = exp.charAt(j);
7164
- if (p !== ' ') { break }
7165
- }
7166
- if (!p || !validDivisionCharRE.test(p)) {
7167
- inRegex = true;
7168
- }
7169
- }
7170
- }
7171
- }
7172
-
7173
- if (expression === undefined) {
7174
- expression = exp.slice(0, i).trim();
7175
- } else if (lastFilterIndex !== 0) {
7176
- pushFilter();
7177
- }
7178
-
7179
- function pushFilter () {
7180
- (filters || (filters = [])).push(exp.slice(lastFilterIndex, i).trim());
7181
- lastFilterIndex = i + 1;
7182
- }
7183
-
7184
- if (filters) {
7185
- for (i = 0; i < filters.length; i++) {
7186
- expression = wrapFilter(expression, filters[i]);
7187
- }
7188
- }
7189
-
7190
- return expression
7191
- }
7192
-
7193
- function wrapFilter (exp, filter) {
7194
- var i = filter.indexOf('(');
7195
- if (i < 0) {
7196
- // _f: resolveFilter
7197
- return ("_f(\"" + filter + "\")(" + exp + ")")
7198
- } else {
7199
- var name = filter.slice(0, i);
7200
- var args = filter.slice(i + 1);
7201
- return ("_f(\"" + name + "\")(" + exp + (args !== ')' ? ',' + args : args))
7202
- }
7203
- }
7204
-
7205
- /* */
7206
-
7207
-
7208
-
7209
- /* eslint-disable no-unused-vars */
7210
- function baseWarn (msg, range) {
7211
- console.error(("[Vue compiler]: " + msg));
7212
- }
7213
- /* eslint-enable no-unused-vars */
7214
-
7215
- function pluckModuleFunction (
7216
- modules,
7217
- key
7218
- ) {
7219
- return modules
7220
- ? modules.map(function (m) { return m[key]; }).filter(function (_) { return _; })
7221
- : []
7222
- }
7223
-
7224
- function addProp (el, name, value, range, dynamic) {
7225
- (el.props || (el.props = [])).push(rangeSetItem({ name: name, value: value, dynamic: dynamic }, range));
7226
- el.plain = false;
7227
- }
7228
-
7229
- function addAttr (el, name, value, range, dynamic) {
7230
- var attrs = dynamic
7231
- ? (el.dynamicAttrs || (el.dynamicAttrs = []))
7232
- : (el.attrs || (el.attrs = []));
7233
- attrs.push(rangeSetItem({ name: name, value: value, dynamic: dynamic }, range));
7234
- el.plain = false;
7235
- }
7236
-
7237
- // add a raw attr (use this in preTransforms)
7238
- function addRawAttr (el, name, value, range) {
7239
- el.attrsMap[name] = value;
7240
- el.attrsList.push(rangeSetItem({ name: name, value: value }, range));
7241
- }
7242
-
7243
- function addDirective (
7244
- el,
7245
- name,
7246
- rawName,
7247
- value,
7248
- arg,
7249
- isDynamicArg,
7250
- modifiers,
7251
- range
7252
- ) {
7253
- (el.directives || (el.directives = [])).push(rangeSetItem({
7254
- name: name,
7255
- rawName: rawName,
7256
- value: value,
7257
- arg: arg,
7258
- isDynamicArg: isDynamicArg,
7259
- modifiers: modifiers
7260
- }, range));
7261
- el.plain = false;
7262
- }
7263
-
7264
- function prependModifierMarker (symbol, name, dynamic) {
7265
- return dynamic
7266
- ? ("_p(" + name + ",\"" + symbol + "\")")
7267
- : symbol + name // mark the event as captured
7268
- }
7269
-
7270
- function addHandler (
7271
- el,
7272
- name,
7273
- value,
7274
- modifiers,
7275
- important,
7276
- warn,
7277
- range,
7278
- dynamic
7279
- ) {
7280
- modifiers = modifiers || emptyObject;
7281
- // warn prevent and passive modifier
7282
- /* istanbul ignore if */
7283
- if (
7284
- process.env.NODE_ENV !== 'production' && warn &&
7285
- modifiers.prevent && modifiers.passive
7286
- ) {
7287
- warn(
7288
- 'passive and prevent can\'t be used together. ' +
7289
- 'Passive handler can\'t prevent default event.',
7290
- range
7291
- );
7292
- }
7293
-
7294
- // normalize click.right and click.middle since they don't actually fire
7295
- // this is technically browser-specific, but at least for now browsers are
7296
- // the only target envs that have right/middle clicks.
7297
- if (modifiers.right) {
7298
- if (dynamic) {
7299
- name = "(" + name + ")==='click'?'contextmenu':(" + name + ")";
7300
- } else if (name === 'click') {
7301
- name = 'contextmenu';
7302
- delete modifiers.right;
7303
- }
7304
- } else if (modifiers.middle) {
7305
- if (dynamic) {
7306
- name = "(" + name + ")==='click'?'mouseup':(" + name + ")";
7307
- } else if (name === 'click') {
7308
- name = 'mouseup';
7309
- }
7310
- }
7311
-
7312
- // check capture modifier
7313
- if (modifiers.capture) {
7314
- delete modifiers.capture;
7315
- name = prependModifierMarker('!', name, dynamic);
7316
- }
7317
- if (modifiers.once) {
7318
- delete modifiers.once;
7319
- name = prependModifierMarker('~', name, dynamic);
7320
- }
7321
- /* istanbul ignore if */
7322
- if (modifiers.passive) {
7323
- delete modifiers.passive;
7324
- name = prependModifierMarker('&', name, dynamic);
7325
- }
7326
-
7327
- var events;
7328
- if (modifiers.native) {
7329
- delete modifiers.native;
7330
- events = el.nativeEvents || (el.nativeEvents = {});
7331
- } else {
7332
- events = el.events || (el.events = {});
7333
- }
7334
-
7335
- var newHandler = rangeSetItem({ value: value.trim(), dynamic: dynamic }, range);
7336
- if (modifiers !== emptyObject) {
7337
- newHandler.modifiers = modifiers;
7338
- }
7339
-
7340
- var handlers = events[name];
7341
- /* istanbul ignore if */
7342
- if (Array.isArray(handlers)) {
7343
- important ? handlers.unshift(newHandler) : handlers.push(newHandler);
7344
- } else if (handlers) {
7345
- events[name] = important ? [newHandler, handlers] : [handlers, newHandler];
7346
- } else {
7347
- events[name] = newHandler;
7348
- }
7349
-
7350
- el.plain = false;
7351
- }
7352
-
7353
- function getRawBindingAttr (
7354
- el,
7355
- name
7356
- ) {
7357
- return el.rawAttrsMap[':' + name] ||
7358
- el.rawAttrsMap['v-bind:' + name] ||
7359
- el.rawAttrsMap[name]
7360
- }
7361
-
7362
- function getBindingAttr (
7363
- el,
7364
- name,
7365
- getStatic
7366
- ) {
7367
- var dynamicValue =
7368
- getAndRemoveAttr(el, ':' + name) ||
7369
- getAndRemoveAttr(el, 'v-bind:' + name);
7370
- if (dynamicValue != null) {
7371
- return parseFilters(dynamicValue)
7372
- } else if (getStatic !== false) {
7373
- var staticValue = getAndRemoveAttr(el, name);
7374
- if (staticValue != null) {
7375
- return JSON.stringify(staticValue)
7376
- }
7377
- }
7378
- }
7379
-
7380
- // note: this only removes the attr from the Array (attrsList) so that it
7381
- // doesn't get processed by processAttrs.
7382
- // By default it does NOT remove it from the map (attrsMap) because the map is
7383
- // needed during codegen.
7384
- function getAndRemoveAttr (
7385
- el,
7386
- name,
7387
- removeFromMap
7388
- ) {
7389
- var val;
7390
- if ((val = el.attrsMap[name]) != null) {
7391
- var list = el.attrsList;
7392
- for (var i = 0, l = list.length; i < l; i++) {
7393
- if (list[i].name === name) {
7394
- list.splice(i, 1);
7395
- break
7396
- }
7397
- }
7398
- }
7399
- if (removeFromMap) {
7400
- delete el.attrsMap[name];
7401
- }
7402
- return val
7403
- }
7404
-
7405
- function getAndRemoveAttrByRegex (
7406
- el,
7407
- name
7408
- ) {
7409
- var list = el.attrsList;
7410
- for (var i = 0, l = list.length; i < l; i++) {
7411
- var attr = list[i];
7412
- if (name.test(attr.name)) {
7413
- list.splice(i, 1);
7414
- return attr
7415
- }
7416
- }
7417
- }
7418
-
7419
- function rangeSetItem (
7420
- item,
7421
- range
7422
- ) {
7423
- if (range) {
7424
- if (range.start != null) {
7425
- item.start = range.start;
7426
- }
7427
- if (range.end != null) {
7428
- item.end = range.end;
7429
- }
7430
- }
7431
- return item
7432
- }
7433
-
7434
- /* */
7435
-
7436
- /**
7437
- * Cross-platform code generation for component v-model
7438
- */
7439
- function genComponentModel (
7440
- el,
7441
- value,
7442
- modifiers
7443
- ) {
7444
- var ref = modifiers || {};
7445
- var number = ref.number;
7446
- var trim = ref.trim;
7447
-
7448
- var baseValueExpression = '$$v';
7449
- var valueExpression = baseValueExpression;
7450
- if (trim) {
7451
- valueExpression =
7452
- "(typeof " + baseValueExpression + " === 'string'" +
7453
- "? " + baseValueExpression + ".trim()" +
7454
- ": " + baseValueExpression + ")";
7455
- }
7456
- if (number) {
7457
- valueExpression = "_n(" + valueExpression + ")";
7458
- }
7459
- var assignment = genAssignmentCode(value, valueExpression);
7460
-
7461
- el.model = {
7462
- value: ("(" + value + ")"),
7463
- expression: JSON.stringify(value),
7464
- callback: ("function (" + baseValueExpression + ") {" + assignment + "}")
7465
- };
7466
- }
7467
-
7468
- /**
7469
- * Cross-platform codegen helper for generating v-model value assignment code.
7470
- */
7471
- function genAssignmentCode (
7472
- value,
7473
- assignment
7474
- ) {
7475
- var res = parseModel(value);
7476
- if (res.key === null) {
7477
- return (value + "=" + assignment)
7478
- } else {
7479
- return ("$set(" + (res.exp) + ", " + (res.key) + ", " + assignment + ")")
7480
- }
7481
- }
7482
-
7483
- /**
7484
- * Parse a v-model expression into a base path and a final key segment.
7485
- * Handles both dot-path and possible square brackets.
7486
- *
7487
- * Possible cases:
7488
- *
7489
- * - test
7490
- * - test[key]
7491
- * - test[test1[key]]
7492
- * - test["a"][key]
7493
- * - xxx.test[a[a].test1[key]]
7494
- * - test.xxx.a["asa"][test1[key]]
7495
- *
7496
- */
7497
-
7498
- var len, str, chr, index$1, expressionPos, expressionEndPos;
7499
-
7500
-
7501
-
7502
- function parseModel (val) {
7503
- // Fix https://github.com/vuejs/vue/pull/7730
7504
- // allow v-model="obj.val " (trailing whitespace)
7505
- val = val.trim();
7506
- len = val.length;
7507
-
7508
- if (val.indexOf('[') < 0 || val.lastIndexOf(']') < len - 1) {
7509
- index$1 = val.lastIndexOf('.');
7510
- if (index$1 > -1) {
7511
- return {
7512
- exp: val.slice(0, index$1),
7513
- key: '"' + val.slice(index$1 + 1) + '"'
7514
- }
7515
- } else {
7516
- return {
7517
- exp: val,
7518
- key: null
7519
- }
7520
- }
7521
- }
7522
-
7523
- str = val;
7524
- index$1 = expressionPos = expressionEndPos = 0;
7525
-
7526
- while (!eof()) {
7527
- chr = next();
7528
- /* istanbul ignore if */
7529
- if (isStringStart(chr)) {
7530
- parseString(chr);
7531
- } else if (chr === 0x5B) {
7532
- parseBracket(chr);
7533
- }
7534
- }
7535
-
7536
- return {
7537
- exp: val.slice(0, expressionPos),
7538
- key: val.slice(expressionPos + 1, expressionEndPos)
7539
- }
7540
- }
7541
-
7542
- function next () {
7543
- return str.charCodeAt(++index$1)
7544
- }
7545
-
7546
- function eof () {
7547
- return index$1 >= len
7548
- }
7549
-
7550
- function isStringStart (chr) {
7551
- return chr === 0x22 || chr === 0x27
7552
- }
7553
-
7554
- function parseBracket (chr) {
7555
- var inBracket = 1;
7556
- expressionPos = index$1;
7557
- while (!eof()) {
7558
- chr = next();
7559
- if (isStringStart(chr)) {
7560
- parseString(chr);
7561
- continue
7562
- }
7563
- if (chr === 0x5B) { inBracket++; }
7564
- if (chr === 0x5D) { inBracket--; }
7565
- if (inBracket === 0) {
7566
- expressionEndPos = index$1;
7567
- break
7568
- }
7569
- }
7570
- }
7571
-
7572
- function parseString (chr) {
7573
- var stringQuote = chr;
7574
- while (!eof()) {
7575
- chr = next();
7576
- if (chr === stringQuote) {
7577
- break
7578
- }
7579
- }
7580
- }
7581
-
7582
- /* */
7583
-
7584
- var warn$1;
7585
-
7586
- // in some cases, the event used has to be determined at runtime
7587
- // so we used some reserved tokens during compile.
7588
- var RANGE_TOKEN = '__r';
7589
- var CHECKBOX_RADIO_TOKEN = '__c';
7590
-
7591
- function model (
7592
- el,
7593
- dir,
7594
- _warn
7595
- ) {
7596
- warn$1 = _warn;
7597
- var value = dir.value;
7598
- var modifiers = dir.modifiers;
7599
- var tag = el.tag;
7600
- var type = el.attrsMap.type;
7601
-
7602
- if (process.env.NODE_ENV !== 'production') {
7603
- // inputs with type="file" are read only and setting the input's
7604
- // value will throw an error.
7605
- if (tag === 'input' && type === 'file') {
7606
- warn$1(
7607
- "<" + (el.tag) + " v-model=\"" + value + "\" type=\"file\">:\n" +
7608
- "File inputs are read only. Use a v-on:change listener instead.",
7609
- el.rawAttrsMap['v-model']
7610
- );
7611
- }
7612
- }
7613
-
7614
- if (el.component) {
7615
- genComponentModel(el, value, modifiers);
7616
- // component v-model doesn't need extra runtime
7617
- return false
7618
- } else if (tag === 'select') {
7619
- genSelect(el, value, modifiers);
7620
- } else if (tag === 'input' && type === 'checkbox') {
7621
- genCheckboxModel(el, value, modifiers);
7622
- } else if (tag === 'input' && type === 'radio') {
7623
- genRadioModel(el, value, modifiers);
7624
- } else if (tag === 'input' || tag === 'textarea') {
7625
- genDefaultModel(el, value, modifiers);
7626
- } else if (!config.isReservedTag(tag)) {
7627
- genComponentModel(el, value, modifiers);
7628
- // component v-model doesn't need extra runtime
7629
- return false
7630
- } else if (process.env.NODE_ENV !== 'production') {
7631
- warn$1(
7632
- "<" + (el.tag) + " v-model=\"" + value + "\">: " +
7633
- "v-model is not supported on this element type. " +
7634
- 'If you are working with contenteditable, it\'s recommended to ' +
7635
- 'wrap a library dedicated for that purpose inside a custom component.',
7636
- el.rawAttrsMap['v-model']
7637
- );
7638
- }
7639
-
7640
- // ensure runtime directive metadata
7641
- return true
7642
- }
7643
-
7644
- function genCheckboxModel (
7645
- el,
7646
- value,
7647
- modifiers
7648
- ) {
7649
- var number = modifiers && modifiers.number;
7650
- var valueBinding = getBindingAttr(el, 'value') || 'null';
7651
- var trueValueBinding = getBindingAttr(el, 'true-value') || 'true';
7652
- var falseValueBinding = getBindingAttr(el, 'false-value') || 'false';
7653
- addProp(el, 'checked',
7654
- "Array.isArray(" + value + ")" +
7655
- "?_i(" + value + "," + valueBinding + ")>-1" + (
7656
- trueValueBinding === 'true'
7657
- ? (":(" + value + ")")
7658
- : (":_q(" + value + "," + trueValueBinding + ")")
7659
- )
7660
- );
7661
- addHandler(el, 'change',
7662
- "var $$a=" + value + "," +
7663
- '$$el=$event.target,' +
7664
- "$$c=$$el.checked?(" + trueValueBinding + "):(" + falseValueBinding + ");" +
7665
- 'if(Array.isArray($$a)){' +
7666
- "var $$v=" + (number ? '_n(' + valueBinding + ')' : valueBinding) + "," +
7667
- '$$i=_i($$a,$$v);' +
7668
- "if($$el.checked){$$i<0&&(" + (genAssignmentCode(value, '$$a.concat([$$v])')) + ")}" +
7669
- "else{$$i>-1&&(" + (genAssignmentCode(value, '$$a.slice(0,$$i).concat($$a.slice($$i+1))')) + ")}" +
7670
- "}else{" + (genAssignmentCode(value, '$$c')) + "}",
7671
- null, true
7672
- );
7673
- }
7674
-
7675
- function genRadioModel (
7676
- el,
7677
- value,
7678
- modifiers
7679
- ) {
7680
- var number = modifiers && modifiers.number;
7681
- var valueBinding = getBindingAttr(el, 'value') || 'null';
7682
- valueBinding = number ? ("_n(" + valueBinding + ")") : valueBinding;
7683
- addProp(el, 'checked', ("_q(" + value + "," + valueBinding + ")"));
7684
- addHandler(el, 'change', genAssignmentCode(value, valueBinding), null, true);
7685
- }
7686
-
7687
- function genSelect (
7688
- el,
7689
- value,
7690
- modifiers
7691
- ) {
7692
- var number = modifiers && modifiers.number;
7693
- var selectedVal = "Array.prototype.filter" +
7694
- ".call($event.target.options,function(o){return o.selected})" +
7695
- ".map(function(o){var val = \"_value\" in o ? o._value : o.value;" +
7696
- "return " + (number ? '_n(val)' : 'val') + "})";
7697
-
7698
- var assignment = '$event.target.multiple ? $$selectedVal : $$selectedVal[0]';
7699
- var code = "var $$selectedVal = " + selectedVal + ";";
7700
- code = code + " " + (genAssignmentCode(value, assignment));
7701
- addHandler(el, 'change', code, null, true);
7702
- }
7703
-
7704
- function genDefaultModel (
7705
- el,
7706
- value,
7707
- modifiers
7708
- ) {
7709
- var type = el.attrsMap.type;
7710
-
7711
- // warn if v-bind:value conflicts with v-model
7712
- // except for inputs with v-bind:type
7713
- if (process.env.NODE_ENV !== 'production') {
7714
- var value$1 = el.attrsMap['v-bind:value'] || el.attrsMap[':value'];
7715
- var typeBinding = el.attrsMap['v-bind:type'] || el.attrsMap[':type'];
7716
- if (value$1 && !typeBinding) {
7717
- var binding = el.attrsMap['v-bind:value'] ? 'v-bind:value' : ':value';
7718
- warn$1(
7719
- binding + "=\"" + value$1 + "\" conflicts with v-model on the same element " +
7720
- 'because the latter already expands to a value binding internally',
7721
- el.rawAttrsMap[binding]
7722
- );
7723
- }
7724
- }
7725
-
7726
- var ref = modifiers || {};
7727
- var lazy = ref.lazy;
7728
- var number = ref.number;
7729
- var trim = ref.trim;
7730
- var needCompositionGuard = !lazy && type !== 'range';
7731
- var event = lazy
7732
- ? 'change'
7733
- : type === 'range'
7734
- ? RANGE_TOKEN
7735
- : 'input';
7736
-
7737
- var valueExpression = '$event.target.value';
7738
- if (trim) {
7739
- valueExpression = "$event.target.value.trim()";
7740
- }
7741
- if (number) {
7742
- valueExpression = "_n(" + valueExpression + ")";
7743
- }
7744
-
7745
- var code = genAssignmentCode(value, valueExpression);
7746
- if (needCompositionGuard) {
7747
- code = "if($event.target.composing)return;" + code;
7748
- }
7749
-
7750
- addProp(el, 'value', ("(" + value + ")"));
7751
- addHandler(el, event, code, null, true);
7752
- if (trim || number) {
7753
- addHandler(el, 'blur', '$forceUpdate()');
7754
- }
7755
- }
7756
-
7757
- /* */
7758
-
7759
- // normalize v-model event tokens that can only be determined at runtime.
7760
- // it's important to place the event as the first in the array because
7761
- // the whole point is ensuring the v-model callback gets called before
7762
- // user-attached handlers.
7763
- function normalizeEvents (on) {
7764
- /* istanbul ignore if */
7765
- if (isDef(on[RANGE_TOKEN])) {
7766
- // IE input[type=range] only supports `change` event
7767
- var event = isIE ? 'change' : 'input';
7768
- on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);
7769
- delete on[RANGE_TOKEN];
7770
- }
7771
- // This was originally intended to fix #4521 but no longer necessary
7772
- // after 2.5. Keeping it for backwards compat with generated code from < 2.4
7773
- /* istanbul ignore if */
7774
- if (isDef(on[CHECKBOX_RADIO_TOKEN])) {
7775
- on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);
7776
- delete on[CHECKBOX_RADIO_TOKEN];
7777
- }
7778
- }
7779
-
7780
- var target$1;
7781
-
7782
- function createOnceHandler$1 (event, handler, capture) {
7783
- var _target = target$1; // save current target element in closure
7784
- return function onceHandler () {
7785
- var res = handler.apply(null, arguments);
7786
- if (res !== null) {
7787
- remove$2(event, onceHandler, capture, _target);
7788
- }
7789
- }
7790
- }
7791
-
7792
- // #9446: Firefox <= 53 (in particular, ESR 52) has incorrect Event.timeStamp
7793
- // implementation and does not fire microtasks in between event propagation, so
7794
- // safe to exclude.
7795
- var useMicrotaskFix = isUsingMicroTask && !(isFF && Number(isFF[1]) <= 53);
7796
-
7797
- function add$1 (
7798
- name,
7799
- handler,
7800
- capture,
7801
- passive
7802
- ) {
7803
- // async edge case #6566: inner click event triggers patch, event handler
7804
- // attached to outer element during patch, and triggered again. This
7805
- // happens because browsers fire microtask ticks between event propagation.
7806
- // the solution is simple: we save the timestamp when a handler is attached,
7807
- // and the handler would only fire if the event passed to it was fired
7808
- // AFTER it was attached.
7809
- if (useMicrotaskFix) {
7810
- var attachedTimestamp = currentFlushTimestamp;
7811
- var original = handler;
7812
- handler = original._wrapper = function (e) {
7813
- if (
7814
- // no bubbling, should always fire.
7815
- // this is just a safety net in case event.timeStamp is unreliable in
7816
- // certain weird environments...
7817
- e.target === e.currentTarget ||
7818
- // event is fired after handler attachment
7819
- e.timeStamp >= attachedTimestamp ||
7820
- // bail for environments that have buggy event.timeStamp implementations
7821
- // #9462 iOS 9 bug: event.timeStamp is 0 after history.pushState
7822
- // #9681 QtWebEngine event.timeStamp is negative value
7823
- e.timeStamp <= 0 ||
7824
- // #9448 bail if event is fired in another document in a multi-page
7825
- // electron/nw.js app, since event.timeStamp will be using a different
7826
- // starting reference
7827
- e.target.ownerDocument !== document
7828
- ) {
7829
- return original.apply(this, arguments)
7830
- }
7831
- };
7832
- }
7833
- target$1.addEventListener(
7834
- name,
7835
- handler,
7836
- supportsPassive
7837
- ? { capture: capture, passive: passive }
7838
- : capture
7839
- );
7840
- }
7841
-
7842
- function remove$2 (
7843
- name,
7844
- handler,
7845
- capture,
7846
- _target
7847
- ) {
7848
- (_target || target$1).removeEventListener(
7849
- name,
7850
- handler._wrapper || handler,
7851
- capture
7852
- );
7853
- }
7854
-
7855
- function updateDOMListeners (oldVnode, vnode) {
7856
- if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {
7857
- return
7858
- }
7859
- var on = vnode.data.on || {};
7860
- var oldOn = oldVnode.data.on || {};
7861
- target$1 = vnode.elm;
7862
- normalizeEvents(on);
7863
- updateListeners(on, oldOn, add$1, remove$2, createOnceHandler$1, vnode.context);
7864
- target$1 = undefined;
7865
- }
7866
-
7867
- var events = {
7868
- create: updateDOMListeners,
7869
- update: updateDOMListeners
7870
- };
7871
-
7872
- /* */
7873
-
7874
- var svgContainer;
7875
-
7876
- function updateDOMProps (oldVnode, vnode) {
7877
- if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {
7878
- return
7879
- }
7880
- var key, cur;
7881
- var elm = vnode.elm;
7882
- var oldProps = oldVnode.data.domProps || {};
7883
- var props = vnode.data.domProps || {};
7884
- // clone observed objects, as the user probably wants to mutate it
7885
- if (isDef(props.__ob__)) {
7886
- props = vnode.data.domProps = extend({}, props);
7887
- }
7888
-
7889
- for (key in oldProps) {
7890
- if (!(key in props)) {
7891
- elm[key] = '';
7892
- }
7893
- }
7894
-
7895
- for (key in props) {
7896
- cur = props[key];
7897
- // ignore children if the node has textContent or innerHTML,
7898
- // as these will throw away existing DOM nodes and cause removal errors
7899
- // on subsequent patches (#3360)
7900
- if (key === 'textContent' || key === 'innerHTML') {
7901
- if (vnode.children) { vnode.children.length = 0; }
7902
- if (cur === oldProps[key]) { continue }
7903
- // #6601 work around Chrome version <= 55 bug where single textNode
7904
- // replaced by innerHTML/textContent retains its parentNode property
7905
- if (elm.childNodes.length === 1) {
7906
- elm.removeChild(elm.childNodes[0]);
7907
- }
7908
- }
7909
-
7910
- if (key === 'value' && elm.tagName !== 'PROGRESS') {
7911
- // store value as _value as well since
7912
- // non-string values will be stringified
7913
- elm._value = cur;
7914
- // avoid resetting cursor position when value is the same
7915
- var strCur = isUndef(cur) ? '' : String(cur);
7916
- if (shouldUpdateValue(elm, strCur)) {
7917
- elm.value = strCur;
7918
- }
7919
- } else if (key === 'innerHTML' && isSVG(elm.tagName) && isUndef(elm.innerHTML)) {
7920
- // IE doesn't support innerHTML for SVG elements
7921
- svgContainer = svgContainer || document.createElement('div');
7922
- svgContainer.innerHTML = "<svg>" + cur + "</svg>";
7923
- var svg = svgContainer.firstChild;
7924
- while (elm.firstChild) {
7925
- elm.removeChild(elm.firstChild);
7926
- }
7927
- while (svg.firstChild) {
7928
- elm.appendChild(svg.firstChild);
7929
- }
7930
- } else if (
7931
- // skip the update if old and new VDOM state is the same.
7932
- // `value` is handled separately because the DOM value may be temporarily
7933
- // out of sync with VDOM state due to focus, composition and modifiers.
7934
- // This #4521 by skipping the unnecessary `checked` update.
7935
- cur !== oldProps[key]
7936
- ) {
7937
- // some property updates can throw
7938
- // e.g. `value` on <progress> w/ non-finite value
7939
- try {
7940
- elm[key] = cur;
7941
- } catch (e) {}
7942
- }
7943
- }
7944
- }
7945
-
7946
- // check platforms/web/util/attrs.js acceptValue
7947
-
7948
-
7949
- function shouldUpdateValue (elm, checkVal) {
7950
- return (!elm.composing && (
7951
- elm.tagName === 'OPTION' ||
7952
- isNotInFocusAndDirty(elm, checkVal) ||
7953
- isDirtyWithModifiers(elm, checkVal)
7954
- ))
7955
- }
7956
-
7957
- function isNotInFocusAndDirty (elm, checkVal) {
7958
- // return true when textbox (.number and .trim) loses focus and its value is
7959
- // not equal to the updated value
7960
- var notInFocus = true;
7961
- // #6157
7962
- // work around IE bug when accessing document.activeElement in an iframe
7963
- try { notInFocus = document.activeElement !== elm; } catch (e) {}
7964
- return notInFocus && elm.value !== checkVal
7965
- }
7966
-
7967
- function isDirtyWithModifiers (elm, newVal) {
7968
- var value = elm.value;
7969
- var modifiers = elm._vModifiers; // injected by v-model runtime
7970
- if (isDef(modifiers)) {
7971
- if (modifiers.number) {
7972
- return toNumber(value) !== toNumber(newVal)
7973
- }
7974
- if (modifiers.trim) {
7975
- return value.trim() !== newVal.trim()
7976
- }
7977
- }
7978
- return value !== newVal
7979
- }
7980
-
7981
- var domProps = {
7982
- create: updateDOMProps,
7983
- update: updateDOMProps
7984
- };
7985
-
7986
- /* */
7987
-
7988
- var parseStyleText = cached(function (cssText) {
7989
- var res = {};
7990
- var listDelimiter = /;(?![^(]*\))/g;
7991
- var propertyDelimiter = /:(.+)/;
7992
- cssText.split(listDelimiter).forEach(function (item) {
7993
- if (item) {
7994
- var tmp = item.split(propertyDelimiter);
7995
- tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());
7996
- }
7997
- });
7998
- return res
7999
- });
8000
-
8001
- // merge static and dynamic style data on the same vnode
8002
- function normalizeStyleData (data) {
8003
- var style = normalizeStyleBinding(data.style);
8004
- // static style is pre-processed into an object during compilation
8005
- // and is always a fresh object, so it's safe to merge into it
8006
- return data.staticStyle
8007
- ? extend(data.staticStyle, style)
8008
- : style
8009
- }
8010
-
8011
- // normalize possible array / string values into Object
8012
- function normalizeStyleBinding (bindingStyle) {
8013
- if (Array.isArray(bindingStyle)) {
8014
- return toObject(bindingStyle)
8015
- }
8016
- if (typeof bindingStyle === 'string') {
8017
- return parseStyleText(bindingStyle)
8018
- }
8019
- return bindingStyle
8020
- }
8021
-
8022
- /**
8023
- * parent component style should be after child's
8024
- * so that parent component's style could override it
8025
- */
8026
- function getStyle (vnode, checkChild) {
8027
- var res = {};
8028
- var styleData;
8029
-
8030
- if (checkChild) {
8031
- var childNode = vnode;
8032
- while (childNode.componentInstance) {
8033
- childNode = childNode.componentInstance._vnode;
8034
- if (
8035
- childNode && childNode.data &&
8036
- (styleData = normalizeStyleData(childNode.data))
8037
- ) {
8038
- extend(res, styleData);
8039
- }
8040
- }
8041
- }
8042
-
8043
- if ((styleData = normalizeStyleData(vnode.data))) {
8044
- extend(res, styleData);
8045
- }
8046
-
8047
- var parentNode = vnode;
8048
- while ((parentNode = parentNode.parent)) {
8049
- if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {
8050
- extend(res, styleData);
8051
- }
8052
- }
8053
- return res
8054
- }
8055
-
8056
- /* */
8057
-
8058
- var cssVarRE = /^--/;
8059
- var importantRE = /\s*!important$/;
8060
- var setProp = function (el, name, val) {
8061
- /* istanbul ignore if */
8062
- if (cssVarRE.test(name)) {
8063
- el.style.setProperty(name, val);
8064
- } else if (importantRE.test(val)) {
8065
- el.style.setProperty(hyphenate(name), val.replace(importantRE, ''), 'important');
8066
- } else {
8067
- var normalizedName = normalize(name);
8068
- if (Array.isArray(val)) {
8069
- // Support values array created by autoprefixer, e.g.
8070
- // {display: ["-webkit-box", "-ms-flexbox", "flex"]}
8071
- // Set them one by one, and the browser will only set those it can recognize
8072
- for (var i = 0, len = val.length; i < len; i++) {
8073
- el.style[normalizedName] = val[i];
8074
- }
8075
- } else {
8076
- el.style[normalizedName] = val;
8077
- }
8078
- }
8079
- };
8080
-
8081
- var vendorNames = ['Webkit', 'Moz', 'ms'];
8082
-
8083
- var emptyStyle;
8084
- var normalize = cached(function (prop) {
8085
- emptyStyle = emptyStyle || document.createElement('div').style;
8086
- prop = camelize(prop);
8087
- if (prop !== 'filter' && (prop in emptyStyle)) {
8088
- return prop
8089
- }
8090
- var capName = prop.charAt(0).toUpperCase() + prop.slice(1);
8091
- for (var i = 0; i < vendorNames.length; i++) {
8092
- var name = vendorNames[i] + capName;
8093
- if (name in emptyStyle) {
8094
- return name
8095
- }
8096
- }
8097
- });
8098
-
8099
- function updateStyle (oldVnode, vnode) {
8100
- var data = vnode.data;
8101
- var oldData = oldVnode.data;
8102
-
8103
- if (isUndef(data.staticStyle) && isUndef(data.style) &&
8104
- isUndef(oldData.staticStyle) && isUndef(oldData.style)
8105
- ) {
8106
- return
8107
- }
8108
-
8109
- var cur, name;
8110
- var el = vnode.elm;
8111
- var oldStaticStyle = oldData.staticStyle;
8112
- var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};
8113
-
8114
- // if static style exists, stylebinding already merged into it when doing normalizeStyleData
8115
- var oldStyle = oldStaticStyle || oldStyleBinding;
8116
-
8117
- var style = normalizeStyleBinding(vnode.data.style) || {};
8118
-
8119
- // store normalized style under a different key for next diff
8120
- // make sure to clone it if it's reactive, since the user likely wants
8121
- // to mutate it.
8122
- vnode.data.normalizedStyle = isDef(style.__ob__)
8123
- ? extend({}, style)
8124
- : style;
8125
-
8126
- var newStyle = getStyle(vnode, true);
8127
-
8128
- for (name in oldStyle) {
8129
- if (isUndef(newStyle[name])) {
8130
- setProp(el, name, '');
8131
- }
8132
- }
8133
- for (name in newStyle) {
8134
- cur = newStyle[name];
8135
- if (cur !== oldStyle[name]) {
8136
- // ie9 setting to null has no effect, must use empty string
8137
- setProp(el, name, cur == null ? '' : cur);
8138
- }
8139
- }
8140
- }
8141
-
8142
- var style = {
8143
- create: updateStyle,
8144
- update: updateStyle
8145
- };
8146
-
8147
- /* */
8148
-
8149
- var whitespaceRE = /\s+/;
8150
-
8151
- /**
8152
- * Add class with compatibility for SVG since classList is not supported on
8153
- * SVG elements in IE
8154
- */
8155
- function addClass (el, cls) {
8156
- /* istanbul ignore if */
8157
- if (!cls || !(cls = cls.trim())) {
8158
- return
8159
- }
8160
-
8161
- /* istanbul ignore else */
8162
- if (el.classList) {
8163
- if (cls.indexOf(' ') > -1) {
8164
- cls.split(whitespaceRE).forEach(function (c) { return el.classList.add(c); });
8165
- } else {
8166
- el.classList.add(cls);
8167
- }
8168
- } else {
8169
- var cur = " " + (el.getAttribute('class') || '') + " ";
8170
- if (cur.indexOf(' ' + cls + ' ') < 0) {
8171
- el.setAttribute('class', (cur + cls).trim());
8172
- }
8173
- }
8174
- }
8175
-
8176
- /**
8177
- * Remove class with compatibility for SVG since classList is not supported on
8178
- * SVG elements in IE
8179
- */
8180
- function removeClass (el, cls) {
8181
- /* istanbul ignore if */
8182
- if (!cls || !(cls = cls.trim())) {
8183
- return
8184
- }
8185
-
8186
- /* istanbul ignore else */
8187
- if (el.classList) {
8188
- if (cls.indexOf(' ') > -1) {
8189
- cls.split(whitespaceRE).forEach(function (c) { return el.classList.remove(c); });
8190
- } else {
8191
- el.classList.remove(cls);
8192
- }
8193
- if (!el.classList.length) {
8194
- el.removeAttribute('class');
8195
- }
8196
- } else {
8197
- var cur = " " + (el.getAttribute('class') || '') + " ";
8198
- var tar = ' ' + cls + ' ';
8199
- while (cur.indexOf(tar) >= 0) {
8200
- cur = cur.replace(tar, ' ');
8201
- }
8202
- cur = cur.trim();
8203
- if (cur) {
8204
- el.setAttribute('class', cur);
8205
- } else {
8206
- el.removeAttribute('class');
8207
- }
8208
- }
8209
- }
8210
-
8211
- /* */
8212
-
8213
- function resolveTransition (def$$1) {
8214
- if (!def$$1) {
8215
- return
8216
- }
8217
- /* istanbul ignore else */
8218
- if (typeof def$$1 === 'object') {
8219
- var res = {};
8220
- if (def$$1.css !== false) {
8221
- extend(res, autoCssTransition(def$$1.name || 'v'));
8222
- }
8223
- extend(res, def$$1);
8224
- return res
8225
- } else if (typeof def$$1 === 'string') {
8226
- return autoCssTransition(def$$1)
8227
- }
8228
- }
8229
-
8230
- var autoCssTransition = cached(function (name) {
8231
- return {
8232
- enterClass: (name + "-enter"),
8233
- enterToClass: (name + "-enter-to"),
8234
- enterActiveClass: (name + "-enter-active"),
8235
- leaveClass: (name + "-leave"),
8236
- leaveToClass: (name + "-leave-to"),
8237
- leaveActiveClass: (name + "-leave-active")
8238
- }
8239
- });
8240
-
8241
- var hasTransition = inBrowser && !isIE9;
8242
- var TRANSITION = 'transition';
8243
- var ANIMATION = 'animation';
8244
-
8245
- // Transition property/event sniffing
8246
- var transitionProp = 'transition';
8247
- var transitionEndEvent = 'transitionend';
8248
- var animationProp = 'animation';
8249
- var animationEndEvent = 'animationend';
8250
- if (hasTransition) {
8251
- /* istanbul ignore if */
8252
- if (window.ontransitionend === undefined &&
8253
- window.onwebkittransitionend !== undefined
8254
- ) {
8255
- transitionProp = 'WebkitTransition';
8256
- transitionEndEvent = 'webkitTransitionEnd';
8257
- }
8258
- if (window.onanimationend === undefined &&
8259
- window.onwebkitanimationend !== undefined
8260
- ) {
8261
- animationProp = 'WebkitAnimation';
8262
- animationEndEvent = 'webkitAnimationEnd';
8263
- }
8264
- }
8265
-
8266
- // binding to window is necessary to make hot reload work in IE in strict mode
8267
- var raf = inBrowser
8268
- ? window.requestAnimationFrame
8269
- ? window.requestAnimationFrame.bind(window)
8270
- : setTimeout
8271
- : /* istanbul ignore next */ function (fn) { return fn(); };
8272
-
8273
- function nextFrame (fn) {
8274
- raf(function () {
8275
- raf(fn);
8276
- });
8277
- }
8278
-
8279
- function addTransitionClass (el, cls) {
8280
- var transitionClasses = el._transitionClasses || (el._transitionClasses = []);
8281
- if (transitionClasses.indexOf(cls) < 0) {
8282
- transitionClasses.push(cls);
8283
- addClass(el, cls);
8284
- }
8285
- }
8286
-
8287
- function removeTransitionClass (el, cls) {
8288
- if (el._transitionClasses) {
8289
- remove(el._transitionClasses, cls);
8290
- }
8291
- removeClass(el, cls);
8292
- }
8293
-
8294
- function whenTransitionEnds (
8295
- el,
8296
- expectedType,
8297
- cb
8298
- ) {
8299
- var ref = getTransitionInfo(el, expectedType);
8300
- var type = ref.type;
8301
- var timeout = ref.timeout;
8302
- var propCount = ref.propCount;
8303
- if (!type) { return cb() }
8304
- var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;
8305
- var ended = 0;
8306
- var end = function () {
8307
- el.removeEventListener(event, onEnd);
8308
- cb();
8309
- };
8310
- var onEnd = function (e) {
8311
- if (e.target === el) {
8312
- if (++ended >= propCount) {
8313
- end();
8314
- }
8315
- }
8316
- };
8317
- setTimeout(function () {
8318
- if (ended < propCount) {
8319
- end();
8320
- }
8321
- }, timeout + 1);
8322
- el.addEventListener(event, onEnd);
8323
- }
8324
-
8325
- var transformRE = /\b(transform|all)(,|$)/;
8326
-
8327
- function getTransitionInfo (el, expectedType) {
8328
- var styles = window.getComputedStyle(el);
8329
- // JSDOM may return undefined for transition properties
8330
- var transitionDelays = (styles[transitionProp + 'Delay'] || '').split(', ');
8331
- var transitionDurations = (styles[transitionProp + 'Duration'] || '').split(', ');
8332
- var transitionTimeout = getTimeout(transitionDelays, transitionDurations);
8333
- var animationDelays = (styles[animationProp + 'Delay'] || '').split(', ');
8334
- var animationDurations = (styles[animationProp + 'Duration'] || '').split(', ');
8335
- var animationTimeout = getTimeout(animationDelays, animationDurations);
8336
-
8337
- var type;
8338
- var timeout = 0;
8339
- var propCount = 0;
8340
- /* istanbul ignore if */
8341
- if (expectedType === TRANSITION) {
8342
- if (transitionTimeout > 0) {
8343
- type = TRANSITION;
8344
- timeout = transitionTimeout;
8345
- propCount = transitionDurations.length;
8346
- }
8347
- } else if (expectedType === ANIMATION) {
8348
- if (animationTimeout > 0) {
8349
- type = ANIMATION;
8350
- timeout = animationTimeout;
8351
- propCount = animationDurations.length;
8352
- }
8353
- } else {
8354
- timeout = Math.max(transitionTimeout, animationTimeout);
8355
- type = timeout > 0
8356
- ? transitionTimeout > animationTimeout
8357
- ? TRANSITION
8358
- : ANIMATION
8359
- : null;
8360
- propCount = type
8361
- ? type === TRANSITION
8362
- ? transitionDurations.length
8363
- : animationDurations.length
8364
- : 0;
8365
- }
8366
- var hasTransform =
8367
- type === TRANSITION &&
8368
- transformRE.test(styles[transitionProp + 'Property']);
8369
- return {
8370
- type: type,
8371
- timeout: timeout,
8372
- propCount: propCount,
8373
- hasTransform: hasTransform
8374
- }
8375
- }
8376
-
8377
- function getTimeout (delays, durations) {
8378
- /* istanbul ignore next */
8379
- while (delays.length < durations.length) {
8380
- delays = delays.concat(delays);
8381
- }
8382
-
8383
- return Math.max.apply(null, durations.map(function (d, i) {
8384
- return toMs(d) + toMs(delays[i])
8385
- }))
8386
- }
8387
-
8388
- // Old versions of Chromium (below 61.0.3163.100) formats floating pointer numbers
8389
- // in a locale-dependent way, using a comma instead of a dot.
8390
- // If comma is not replaced with a dot, the input will be rounded down (i.e. acting
8391
- // as a floor function) causing unexpected behaviors
8392
- function toMs (s) {
8393
- return Number(s.slice(0, -1).replace(',', '.')) * 1000
8394
- }
8395
-
8396
- /* */
8397
-
8398
- function enter (vnode, toggleDisplay) {
8399
- var el = vnode.elm;
8400
-
8401
- // call leave callback now
8402
- if (isDef(el._leaveCb)) {
8403
- el._leaveCb.cancelled = true;
8404
- el._leaveCb();
8405
- }
8406
-
8407
- var data = resolveTransition(vnode.data.transition);
8408
- if (isUndef(data)) {
8409
- return
8410
- }
8411
-
8412
- /* istanbul ignore if */
8413
- if (isDef(el._enterCb) || el.nodeType !== 1) {
8414
- return
8415
- }
8416
-
8417
- var css = data.css;
8418
- var type = data.type;
8419
- var enterClass = data.enterClass;
8420
- var enterToClass = data.enterToClass;
8421
- var enterActiveClass = data.enterActiveClass;
8422
- var appearClass = data.appearClass;
8423
- var appearToClass = data.appearToClass;
8424
- var appearActiveClass = data.appearActiveClass;
8425
- var beforeEnter = data.beforeEnter;
8426
- var enter = data.enter;
8427
- var afterEnter = data.afterEnter;
8428
- var enterCancelled = data.enterCancelled;
8429
- var beforeAppear = data.beforeAppear;
8430
- var appear = data.appear;
8431
- var afterAppear = data.afterAppear;
8432
- var appearCancelled = data.appearCancelled;
8433
- var duration = data.duration;
8434
-
8435
- // activeInstance will always be the <transition> component managing this
8436
- // transition. One edge case to check is when the <transition> is placed
8437
- // as the root node of a child component. In that case we need to check
8438
- // <transition>'s parent for appear check.
8439
- var context = activeInstance;
8440
- var transitionNode = activeInstance.$vnode;
8441
- while (transitionNode && transitionNode.parent) {
8442
- context = transitionNode.context;
8443
- transitionNode = transitionNode.parent;
8444
- }
8445
-
8446
- var isAppear = !context._isMounted || !vnode.isRootInsert;
8447
-
8448
- if (isAppear && !appear && appear !== '') {
8449
- return
8450
- }
8451
-
8452
- var startClass = isAppear && appearClass
8453
- ? appearClass
8454
- : enterClass;
8455
- var activeClass = isAppear && appearActiveClass
8456
- ? appearActiveClass
8457
- : enterActiveClass;
8458
- var toClass = isAppear && appearToClass
8459
- ? appearToClass
8460
- : enterToClass;
8461
-
8462
- var beforeEnterHook = isAppear
8463
- ? (beforeAppear || beforeEnter)
8464
- : beforeEnter;
8465
- var enterHook = isAppear
8466
- ? (typeof appear === 'function' ? appear : enter)
8467
- : enter;
8468
- var afterEnterHook = isAppear
8469
- ? (afterAppear || afterEnter)
8470
- : afterEnter;
8471
- var enterCancelledHook = isAppear
8472
- ? (appearCancelled || enterCancelled)
8473
- : enterCancelled;
8474
-
8475
- var explicitEnterDuration = toNumber(
8476
- isObject(duration)
8477
- ? duration.enter
8478
- : duration
8479
- );
8480
-
8481
- if (process.env.NODE_ENV !== 'production' && explicitEnterDuration != null) {
8482
- checkDuration(explicitEnterDuration, 'enter', vnode);
8483
- }
8484
-
8485
- var expectsCSS = css !== false && !isIE9;
8486
- var userWantsControl = getHookArgumentsLength(enterHook);
8487
-
8488
- var cb = el._enterCb = once(function () {
8489
- if (expectsCSS) {
8490
- removeTransitionClass(el, toClass);
8491
- removeTransitionClass(el, activeClass);
8492
- }
8493
- if (cb.cancelled) {
8494
- if (expectsCSS) {
8495
- removeTransitionClass(el, startClass);
8496
- }
8497
- enterCancelledHook && enterCancelledHook(el);
8498
- } else {
8499
- afterEnterHook && afterEnterHook(el);
8500
- }
8501
- el._enterCb = null;
8502
- });
8503
-
8504
- if (!vnode.data.show) {
8505
- // remove pending leave element on enter by injecting an insert hook
8506
- mergeVNodeHook(vnode, 'insert', function () {
8507
- var parent = el.parentNode;
8508
- var pendingNode = parent && parent._pending && parent._pending[vnode.key];
8509
- if (pendingNode &&
8510
- pendingNode.tag === vnode.tag &&
8511
- pendingNode.elm._leaveCb
8512
- ) {
8513
- pendingNode.elm._leaveCb();
8514
- }
8515
- enterHook && enterHook(el, cb);
8516
- });
8517
- }
8518
-
8519
- // start enter transition
8520
- beforeEnterHook && beforeEnterHook(el);
8521
- if (expectsCSS) {
8522
- addTransitionClass(el, startClass);
8523
- addTransitionClass(el, activeClass);
8524
- nextFrame(function () {
8525
- removeTransitionClass(el, startClass);
8526
- if (!cb.cancelled) {
8527
- addTransitionClass(el, toClass);
8528
- if (!userWantsControl) {
8529
- if (isValidDuration(explicitEnterDuration)) {
8530
- setTimeout(cb, explicitEnterDuration);
8531
- } else {
8532
- whenTransitionEnds(el, type, cb);
8533
- }
8534
- }
8535
- }
8536
- });
8537
- }
8538
-
8539
- if (vnode.data.show) {
8540
- toggleDisplay && toggleDisplay();
8541
- enterHook && enterHook(el, cb);
8542
- }
8543
-
8544
- if (!expectsCSS && !userWantsControl) {
8545
- cb();
8546
- }
8547
- }
8548
-
8549
- function leave (vnode, rm) {
8550
- var el = vnode.elm;
8551
-
8552
- // call enter callback now
8553
- if (isDef(el._enterCb)) {
8554
- el._enterCb.cancelled = true;
8555
- el._enterCb();
8556
- }
8557
-
8558
- var data = resolveTransition(vnode.data.transition);
8559
- if (isUndef(data) || el.nodeType !== 1) {
8560
- return rm()
8561
- }
8562
-
8563
- /* istanbul ignore if */
8564
- if (isDef(el._leaveCb)) {
8565
- return
8566
- }
8567
-
8568
- var css = data.css;
8569
- var type = data.type;
8570
- var leaveClass = data.leaveClass;
8571
- var leaveToClass = data.leaveToClass;
8572
- var leaveActiveClass = data.leaveActiveClass;
8573
- var beforeLeave = data.beforeLeave;
8574
- var leave = data.leave;
8575
- var afterLeave = data.afterLeave;
8576
- var leaveCancelled = data.leaveCancelled;
8577
- var delayLeave = data.delayLeave;
8578
- var duration = data.duration;
8579
-
8580
- var expectsCSS = css !== false && !isIE9;
8581
- var userWantsControl = getHookArgumentsLength(leave);
8582
-
8583
- var explicitLeaveDuration = toNumber(
8584
- isObject(duration)
8585
- ? duration.leave
8586
- : duration
8587
- );
8588
-
8589
- if (process.env.NODE_ENV !== 'production' && isDef(explicitLeaveDuration)) {
8590
- checkDuration(explicitLeaveDuration, 'leave', vnode);
8591
- }
8592
-
8593
- var cb = el._leaveCb = once(function () {
8594
- if (el.parentNode && el.parentNode._pending) {
8595
- el.parentNode._pending[vnode.key] = null;
8596
- }
8597
- if (expectsCSS) {
8598
- removeTransitionClass(el, leaveToClass);
8599
- removeTransitionClass(el, leaveActiveClass);
8600
- }
8601
- if (cb.cancelled) {
8602
- if (expectsCSS) {
8603
- removeTransitionClass(el, leaveClass);
8604
- }
8605
- leaveCancelled && leaveCancelled(el);
8606
- } else {
8607
- rm();
8608
- afterLeave && afterLeave(el);
8609
- }
8610
- el._leaveCb = null;
8611
- });
8612
-
8613
- if (delayLeave) {
8614
- delayLeave(performLeave);
8615
- } else {
8616
- performLeave();
8617
- }
8618
-
8619
- function performLeave () {
8620
- // the delayed leave may have already been cancelled
8621
- if (cb.cancelled) {
8622
- return
8623
- }
8624
- // record leaving element
8625
- if (!vnode.data.show && el.parentNode) {
8626
- (el.parentNode._pending || (el.parentNode._pending = {}))[(vnode.key)] = vnode;
8627
- }
8628
- beforeLeave && beforeLeave(el);
8629
- if (expectsCSS) {
8630
- addTransitionClass(el, leaveClass);
8631
- addTransitionClass(el, leaveActiveClass);
8632
- nextFrame(function () {
8633
- removeTransitionClass(el, leaveClass);
8634
- if (!cb.cancelled) {
8635
- addTransitionClass(el, leaveToClass);
8636
- if (!userWantsControl) {
8637
- if (isValidDuration(explicitLeaveDuration)) {
8638
- setTimeout(cb, explicitLeaveDuration);
8639
- } else {
8640
- whenTransitionEnds(el, type, cb);
8641
- }
8642
- }
8643
- }
8644
- });
8645
- }
8646
- leave && leave(el, cb);
8647
- if (!expectsCSS && !userWantsControl) {
8648
- cb();
8649
- }
8650
- }
8651
- }
8652
-
8653
- // only used in dev mode
8654
- function checkDuration (val, name, vnode) {
8655
- if (typeof val !== 'number') {
8656
- warn(
8657
- "<transition> explicit " + name + " duration is not a valid number - " +
8658
- "got " + (JSON.stringify(val)) + ".",
8659
- vnode.context
8660
- );
8661
- } else if (isNaN(val)) {
8662
- warn(
8663
- "<transition> explicit " + name + " duration is NaN - " +
8664
- 'the duration expression might be incorrect.',
8665
- vnode.context
8666
- );
8667
- }
8668
- }
8669
-
8670
- function isValidDuration (val) {
8671
- return typeof val === 'number' && !isNaN(val)
8672
- }
8673
-
8674
- /**
8675
- * Normalize a transition hook's argument length. The hook may be:
8676
- * - a merged hook (invoker) with the original in .fns
8677
- * - a wrapped component method (check ._length)
8678
- * - a plain function (.length)
8679
- */
8680
- function getHookArgumentsLength (fn) {
8681
- if (isUndef(fn)) {
8682
- return false
8683
- }
8684
- var invokerFns = fn.fns;
8685
- if (isDef(invokerFns)) {
8686
- // invoker
8687
- return getHookArgumentsLength(
8688
- Array.isArray(invokerFns)
8689
- ? invokerFns[0]
8690
- : invokerFns
8691
- )
8692
- } else {
8693
- return (fn._length || fn.length) > 1
8694
- }
8695
- }
8696
-
8697
- function _enter (_, vnode) {
8698
- if (vnode.data.show !== true) {
8699
- enter(vnode);
8700
- }
8701
- }
8702
-
8703
- var transition = inBrowser ? {
8704
- create: _enter,
8705
- activate: _enter,
8706
- remove: function remove$$1 (vnode, rm) {
8707
- /* istanbul ignore else */
8708
- if (vnode.data.show !== true) {
8709
- leave(vnode, rm);
8710
- } else {
8711
- rm();
8712
- }
8713
- }
8714
- } : {};
8715
-
8716
- var platformModules = [
8717
- attrs,
8718
- klass,
8719
- events,
8720
- domProps,
8721
- style,
8722
- transition
8723
- ];
8724
-
8725
- /* */
8726
-
8727
- // the directive module should be applied last, after all
8728
- // built-in modules have been applied.
8729
- var modules = platformModules.concat(baseModules);
8730
-
8731
- var patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });
8732
-
8733
- /**
8734
- * Not type checking this file because flow doesn't like attaching
8735
- * properties to Elements.
8736
- */
8737
-
8738
- /* istanbul ignore if */
8739
- if (isIE9) {
8740
- // http://www.matts411.com/post/internet-explorer-9-oninput/
8741
- document.addEventListener('selectionchange', function () {
8742
- var el = document.activeElement;
8743
- if (el && el.vmodel) {
8744
- trigger(el, 'input');
8745
- }
8746
- });
8747
- }
8748
-
8749
- var directive = {
8750
- inserted: function inserted (el, binding, vnode, oldVnode) {
8751
- if (vnode.tag === 'select') {
8752
- // #6903
8753
- if (oldVnode.elm && !oldVnode.elm._vOptions) {
8754
- mergeVNodeHook(vnode, 'postpatch', function () {
8755
- directive.componentUpdated(el, binding, vnode);
8756
- });
8757
- } else {
8758
- setSelected(el, binding, vnode.context);
8759
- }
8760
- el._vOptions = [].map.call(el.options, getValue);
8761
- } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {
8762
- el._vModifiers = binding.modifiers;
8763
- if (!binding.modifiers.lazy) {
8764
- el.addEventListener('compositionstart', onCompositionStart);
8765
- el.addEventListener('compositionend', onCompositionEnd);
8766
- // Safari < 10.2 & UIWebView doesn't fire compositionend when
8767
- // switching focus before confirming composition choice
8768
- // this also fixes the issue where some browsers e.g. iOS Chrome
8769
- // fires "change" instead of "input" on autocomplete.
8770
- el.addEventListener('change', onCompositionEnd);
8771
- /* istanbul ignore if */
8772
- if (isIE9) {
8773
- el.vmodel = true;
8774
- }
8775
- }
8776
- }
8777
- },
8778
-
8779
- componentUpdated: function componentUpdated (el, binding, vnode) {
8780
- if (vnode.tag === 'select') {
8781
- setSelected(el, binding, vnode.context);
8782
- // in case the options rendered by v-for have changed,
8783
- // it's possible that the value is out-of-sync with the rendered options.
8784
- // detect such cases and filter out values that no longer has a matching
8785
- // option in the DOM.
8786
- var prevOptions = el._vOptions;
8787
- var curOptions = el._vOptions = [].map.call(el.options, getValue);
8788
- if (curOptions.some(function (o, i) { return !looseEqual(o, prevOptions[i]); })) {
8789
- // trigger change event if
8790
- // no matching option found for at least one value
8791
- var needReset = el.multiple
8792
- ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions); })
8793
- : binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions);
8794
- if (needReset) {
8795
- trigger(el, 'change');
8796
- }
8797
- }
8798
- }
8799
- }
8800
- };
8801
-
8802
- function setSelected (el, binding, vm) {
8803
- actuallySetSelected(el, binding, vm);
8804
- /* istanbul ignore if */
8805
- if (isIE || isEdge) {
8806
- setTimeout(function () {
8807
- actuallySetSelected(el, binding, vm);
8808
- }, 0);
8809
- }
8810
- }
8811
-
8812
- function actuallySetSelected (el, binding, vm) {
8813
- var value = binding.value;
8814
- var isMultiple = el.multiple;
8815
- if (isMultiple && !Array.isArray(value)) {
8816
- process.env.NODE_ENV !== 'production' && warn(
8817
- "<select multiple v-model=\"" + (binding.expression) + "\"> " +
8818
- "expects an Array value for its binding, but got " + (Object.prototype.toString.call(value).slice(8, -1)),
8819
- vm
8820
- );
8821
- return
8822
- }
8823
- var selected, option;
8824
- for (var i = 0, l = el.options.length; i < l; i++) {
8825
- option = el.options[i];
8826
- if (isMultiple) {
8827
- selected = looseIndexOf(value, getValue(option)) > -1;
8828
- if (option.selected !== selected) {
8829
- option.selected = selected;
8830
- }
8831
- } else {
8832
- if (looseEqual(getValue(option), value)) {
8833
- if (el.selectedIndex !== i) {
8834
- el.selectedIndex = i;
8835
- }
8836
- return
8837
- }
8838
- }
8839
- }
8840
- if (!isMultiple) {
8841
- el.selectedIndex = -1;
8842
- }
8843
- }
8844
-
8845
- function hasNoMatchingOption (value, options) {
8846
- return options.every(function (o) { return !looseEqual(o, value); })
8847
- }
8848
-
8849
- function getValue (option) {
8850
- return '_value' in option
8851
- ? option._value
8852
- : option.value
8853
- }
8854
-
8855
- function onCompositionStart (e) {
8856
- e.target.composing = true;
8857
- }
8858
-
8859
- function onCompositionEnd (e) {
8860
- // prevent triggering an input event for no reason
8861
- if (!e.target.composing) { return }
8862
- e.target.composing = false;
8863
- trigger(e.target, 'input');
8864
- }
8865
-
8866
- function trigger (el, type) {
8867
- var e = document.createEvent('HTMLEvents');
8868
- e.initEvent(type, true, true);
8869
- el.dispatchEvent(e);
8870
- }
8871
-
8872
- /* */
8873
-
8874
- // recursively search for possible transition defined inside the component root
8875
- function locateNode (vnode) {
8876
- return vnode.componentInstance && (!vnode.data || !vnode.data.transition)
8877
- ? locateNode(vnode.componentInstance._vnode)
8878
- : vnode
8879
- }
8880
-
8881
- var show = {
8882
- bind: function bind (el, ref, vnode) {
8883
- var value = ref.value;
8884
-
8885
- vnode = locateNode(vnode);
8886
- var transition$$1 = vnode.data && vnode.data.transition;
8887
- var originalDisplay = el.__vOriginalDisplay =
8888
- el.style.display === 'none' ? '' : el.style.display;
8889
- if (value && transition$$1) {
8890
- vnode.data.show = true;
8891
- enter(vnode, function () {
8892
- el.style.display = originalDisplay;
8893
- });
8894
- } else {
8895
- el.style.display = value ? originalDisplay : 'none';
8896
- }
8897
- },
8898
-
8899
- update: function update (el, ref, vnode) {
8900
- var value = ref.value;
8901
- var oldValue = ref.oldValue;
8902
-
8903
- /* istanbul ignore if */
8904
- if (!value === !oldValue) { return }
8905
- vnode = locateNode(vnode);
8906
- var transition$$1 = vnode.data && vnode.data.transition;
8907
- if (transition$$1) {
8908
- vnode.data.show = true;
8909
- if (value) {
8910
- enter(vnode, function () {
8911
- el.style.display = el.__vOriginalDisplay;
8912
- });
8913
- } else {
8914
- leave(vnode, function () {
8915
- el.style.display = 'none';
8916
- });
8917
- }
8918
- } else {
8919
- el.style.display = value ? el.__vOriginalDisplay : 'none';
8920
- }
8921
- },
8922
-
8923
- unbind: function unbind (
8924
- el,
8925
- binding,
8926
- vnode,
8927
- oldVnode,
8928
- isDestroy
8929
- ) {
8930
- if (!isDestroy) {
8931
- el.style.display = el.__vOriginalDisplay;
8932
- }
8933
- }
8934
- };
8935
-
8936
- var platformDirectives = {
8937
- model: directive,
8938
- show: show
8939
- };
8940
-
8941
- /* */
8942
-
8943
- var transitionProps = {
8944
- name: String,
8945
- appear: Boolean,
8946
- css: Boolean,
8947
- mode: String,
8948
- type: String,
8949
- enterClass: String,
8950
- leaveClass: String,
8951
- enterToClass: String,
8952
- leaveToClass: String,
8953
- enterActiveClass: String,
8954
- leaveActiveClass: String,
8955
- appearClass: String,
8956
- appearActiveClass: String,
8957
- appearToClass: String,
8958
- duration: [Number, String, Object]
8959
- };
8960
-
8961
- // in case the child is also an abstract component, e.g. <keep-alive>
8962
- // we want to recursively retrieve the real component to be rendered
8963
- function getRealChild (vnode) {
8964
- var compOptions = vnode && vnode.componentOptions;
8965
- if (compOptions && compOptions.Ctor.options.abstract) {
8966
- return getRealChild(getFirstComponentChild(compOptions.children))
8967
- } else {
8968
- return vnode
8969
- }
8970
- }
8971
-
8972
- function extractTransitionData (comp) {
8973
- var data = {};
8974
- var options = comp.$options;
8975
- // props
8976
- for (var key in options.propsData) {
8977
- data[key] = comp[key];
8978
- }
8979
- // events.
8980
- // extract listeners and pass them directly to the transition methods
8981
- var listeners = options._parentListeners;
8982
- for (var key$1 in listeners) {
8983
- data[camelize(key$1)] = listeners[key$1];
8984
- }
8985
- return data
8986
- }
8987
-
8988
- function placeholder (h, rawChild) {
8989
- if (/\d-keep-alive$/.test(rawChild.tag)) {
8990
- return h('keep-alive', {
8991
- props: rawChild.componentOptions.propsData
8992
- })
8993
- }
8994
- }
8995
-
8996
- function hasParentTransition (vnode) {
8997
- while ((vnode = vnode.parent)) {
8998
- if (vnode.data.transition) {
8999
- return true
9000
- }
9001
- }
9002
- }
9003
-
9004
- function isSameChild (child, oldChild) {
9005
- return oldChild.key === child.key && oldChild.tag === child.tag
9006
- }
9007
-
9008
- var isNotTextNode = function (c) { return c.tag || isAsyncPlaceholder(c); };
9009
-
9010
- var isVShowDirective = function (d) { return d.name === 'show'; };
9011
-
9012
- var Transition = {
9013
- name: 'transition',
9014
- props: transitionProps,
9015
- abstract: true,
9016
-
9017
- render: function render (h) {
9018
- var this$1 = this;
9019
-
9020
- var children = this.$slots.default;
9021
- if (!children) {
9022
- return
9023
- }
9024
-
9025
- // filter out text nodes (possible whitespaces)
9026
- children = children.filter(isNotTextNode);
9027
- /* istanbul ignore if */
9028
- if (!children.length) {
9029
- return
9030
- }
9031
-
9032
- // warn multiple elements
9033
- if (process.env.NODE_ENV !== 'production' && children.length > 1) {
9034
- warn(
9035
- '<transition> can only be used on a single element. Use ' +
9036
- '<transition-group> for lists.',
9037
- this.$parent
9038
- );
9039
- }
9040
-
9041
- var mode = this.mode;
9042
-
9043
- // warn invalid mode
9044
- if (process.env.NODE_ENV !== 'production' &&
9045
- mode && mode !== 'in-out' && mode !== 'out-in'
9046
- ) {
9047
- warn(
9048
- 'invalid <transition> mode: ' + mode,
9049
- this.$parent
9050
- );
9051
- }
9052
-
9053
- var rawChild = children[0];
9054
-
9055
- // if this is a component root node and the component's
9056
- // parent container node also has transition, skip.
9057
- if (hasParentTransition(this.$vnode)) {
9058
- return rawChild
9059
- }
9060
-
9061
- // apply transition data to child
9062
- // use getRealChild() to ignore abstract components e.g. keep-alive
9063
- var child = getRealChild(rawChild);
9064
- /* istanbul ignore if */
9065
- if (!child) {
9066
- return rawChild
9067
- }
9068
-
9069
- if (this._leaving) {
9070
- return placeholder(h, rawChild)
9071
- }
9072
-
9073
- // ensure a key that is unique to the vnode type and to this transition
9074
- // component instance. This key will be used to remove pending leaving nodes
9075
- // during entering.
9076
- var id = "__transition-" + (this._uid) + "-";
9077
- child.key = child.key == null
9078
- ? child.isComment
9079
- ? id + 'comment'
9080
- : id + child.tag
9081
- : isPrimitive(child.key)
9082
- ? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)
9083
- : child.key;
9084
-
9085
- var data = (child.data || (child.data = {})).transition = extractTransitionData(this);
9086
- var oldRawChild = this._vnode;
9087
- var oldChild = getRealChild(oldRawChild);
9088
-
9089
- // mark v-show
9090
- // so that the transition module can hand over the control to the directive
9091
- if (child.data.directives && child.data.directives.some(isVShowDirective)) {
9092
- child.data.show = true;
9093
- }
9094
-
9095
- if (
9096
- oldChild &&
9097
- oldChild.data &&
9098
- !isSameChild(child, oldChild) &&
9099
- !isAsyncPlaceholder(oldChild) &&
9100
- // #6687 component root is a comment node
9101
- !(oldChild.componentInstance && oldChild.componentInstance._vnode.isComment)
9102
- ) {
9103
- // replace old child transition data with fresh one
9104
- // important for dynamic transitions!
9105
- var oldData = oldChild.data.transition = extend({}, data);
9106
- // handle transition mode
9107
- if (mode === 'out-in') {
9108
- // return placeholder node and queue update when leave finishes
9109
- this._leaving = true;
9110
- mergeVNodeHook(oldData, 'afterLeave', function () {
9111
- this$1._leaving = false;
9112
- this$1.$forceUpdate();
9113
- });
9114
- return placeholder(h, rawChild)
9115
- } else if (mode === 'in-out') {
9116
- if (isAsyncPlaceholder(child)) {
9117
- return oldRawChild
9118
- }
9119
- var delayedLeave;
9120
- var performLeave = function () { delayedLeave(); };
9121
- mergeVNodeHook(data, 'afterEnter', performLeave);
9122
- mergeVNodeHook(data, 'enterCancelled', performLeave);
9123
- mergeVNodeHook(oldData, 'delayLeave', function (leave) { delayedLeave = leave; });
9124
- }
9125
- }
9126
-
9127
- return rawChild
9128
- }
9129
- };
9130
-
9131
- /* */
9132
-
9133
- var props = extend({
9134
- tag: String,
9135
- moveClass: String
9136
- }, transitionProps);
9137
-
9138
- delete props.mode;
9139
-
9140
- var TransitionGroup = {
9141
- props: props,
9142
-
9143
- beforeMount: function beforeMount () {
9144
- var this$1 = this;
9145
-
9146
- var update = this._update;
9147
- this._update = function (vnode, hydrating) {
9148
- var restoreActiveInstance = setActiveInstance(this$1);
9149
- // force removing pass
9150
- this$1.__patch__(
9151
- this$1._vnode,
9152
- this$1.kept,
9153
- false, // hydrating
9154
- true // removeOnly (!important, avoids unnecessary moves)
9155
- );
9156
- this$1._vnode = this$1.kept;
9157
- restoreActiveInstance();
9158
- update.call(this$1, vnode, hydrating);
9159
- };
9160
- },
9161
-
9162
- render: function render (h) {
9163
- var tag = this.tag || this.$vnode.data.tag || 'span';
9164
- var map = Object.create(null);
9165
- var prevChildren = this.prevChildren = this.children;
9166
- var rawChildren = this.$slots.default || [];
9167
- var children = this.children = [];
9168
- var transitionData = extractTransitionData(this);
9169
-
9170
- for (var i = 0; i < rawChildren.length; i++) {
9171
- var c = rawChildren[i];
9172
- if (c.tag) {
9173
- if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {
9174
- children.push(c);
9175
- map[c.key] = c
9176
- ;(c.data || (c.data = {})).transition = transitionData;
9177
- } else if (process.env.NODE_ENV !== 'production') {
9178
- var opts = c.componentOptions;
9179
- var name = opts ? (opts.Ctor.options.name || opts.tag || '') : c.tag;
9180
- warn(("<transition-group> children must be keyed: <" + name + ">"));
9181
- }
9182
- }
9183
- }
9184
-
9185
- if (prevChildren) {
9186
- var kept = [];
9187
- var removed = [];
9188
- for (var i$1 = 0; i$1 < prevChildren.length; i$1++) {
9189
- var c$1 = prevChildren[i$1];
9190
- c$1.data.transition = transitionData;
9191
- c$1.data.pos = c$1.elm.getBoundingClientRect();
9192
- if (map[c$1.key]) {
9193
- kept.push(c$1);
9194
- } else {
9195
- removed.push(c$1);
9196
- }
9197
- }
9198
- this.kept = h(tag, null, kept);
9199
- this.removed = removed;
9200
- }
9201
-
9202
- return h(tag, null, children)
9203
- },
9204
-
9205
- updated: function updated () {
9206
- var children = this.prevChildren;
9207
- var moveClass = this.moveClass || ((this.name || 'v') + '-move');
9208
- if (!children.length || !this.hasMove(children[0].elm, moveClass)) {
9209
- return
9210
- }
9211
-
9212
- // we divide the work into three loops to avoid mixing DOM reads and writes
9213
- // in each iteration - which helps prevent layout thrashing.
9214
- children.forEach(callPendingCbs);
9215
- children.forEach(recordPosition);
9216
- children.forEach(applyTranslation);
9217
-
9218
- // force reflow to put everything in position
9219
- // assign to this to avoid being removed in tree-shaking
9220
- // $flow-disable-line
9221
- this._reflow = document.body.offsetHeight;
9222
-
9223
- children.forEach(function (c) {
9224
- if (c.data.moved) {
9225
- var el = c.elm;
9226
- var s = el.style;
9227
- addTransitionClass(el, moveClass);
9228
- s.transform = s.WebkitTransform = s.transitionDuration = '';
9229
- el.addEventListener(transitionEndEvent, el._moveCb = function cb (e) {
9230
- if (e && e.target !== el) {
9231
- return
9232
- }
9233
- if (!e || /transform$/.test(e.propertyName)) {
9234
- el.removeEventListener(transitionEndEvent, cb);
9235
- el._moveCb = null;
9236
- removeTransitionClass(el, moveClass);
9237
- }
9238
- });
9239
- }
9240
- });
9241
- },
9242
-
9243
- methods: {
9244
- hasMove: function hasMove (el, moveClass) {
9245
- /* istanbul ignore if */
9246
- if (!hasTransition) {
9247
- return false
9248
- }
9249
- /* istanbul ignore if */
9250
- if (this._hasMove) {
9251
- return this._hasMove
9252
- }
9253
- // Detect whether an element with the move class applied has
9254
- // CSS transitions. Since the element may be inside an entering
9255
- // transition at this very moment, we make a clone of it and remove
9256
- // all other transition classes applied to ensure only the move class
9257
- // is applied.
9258
- var clone = el.cloneNode();
9259
- if (el._transitionClasses) {
9260
- el._transitionClasses.forEach(function (cls) { removeClass(clone, cls); });
9261
- }
9262
- addClass(clone, moveClass);
9263
- clone.style.display = 'none';
9264
- this.$el.appendChild(clone);
9265
- var info = getTransitionInfo(clone);
9266
- this.$el.removeChild(clone);
9267
- return (this._hasMove = info.hasTransform)
9268
- }
9269
- }
9270
- };
9271
-
9272
- function callPendingCbs (c) {
9273
- /* istanbul ignore if */
9274
- if (c.elm._moveCb) {
9275
- c.elm._moveCb();
9276
- }
9277
- /* istanbul ignore if */
9278
- if (c.elm._enterCb) {
9279
- c.elm._enterCb();
9280
- }
9281
- }
9282
-
9283
- function recordPosition (c) {
9284
- c.data.newPos = c.elm.getBoundingClientRect();
9285
- }
9286
-
9287
- function applyTranslation (c) {
9288
- var oldPos = c.data.pos;
9289
- var newPos = c.data.newPos;
9290
- var dx = oldPos.left - newPos.left;
9291
- var dy = oldPos.top - newPos.top;
9292
- if (dx || dy) {
9293
- c.data.moved = true;
9294
- var s = c.elm.style;
9295
- s.transform = s.WebkitTransform = "translate(" + dx + "px," + dy + "px)";
9296
- s.transitionDuration = '0s';
9297
- }
9298
- }
9299
-
9300
- var platformComponents = {
9301
- Transition: Transition,
9302
- TransitionGroup: TransitionGroup
9303
- };
9304
-
9305
- /* */
9306
-
9307
- // install platform specific utils
9308
- Vue.config.mustUseProp = mustUseProp;
9309
- Vue.config.isReservedTag = isReservedTag;
9310
- Vue.config.isReservedAttr = isReservedAttr;
9311
- Vue.config.getTagNamespace = getTagNamespace;
9312
- Vue.config.isUnknownElement = isUnknownElement;
9313
-
9314
- // install platform runtime directives & components
9315
- extend(Vue.options.directives, platformDirectives);
9316
- extend(Vue.options.components, platformComponents);
9317
-
9318
- // install platform patch function
9319
- Vue.prototype.__patch__ = inBrowser ? patch : noop;
9320
-
9321
- // public mount method
9322
- Vue.prototype.$mount = function (
9323
- el,
9324
- hydrating
9325
- ) {
9326
- el = el && inBrowser ? query(el) : undefined;
9327
- return mountComponent(this, el, hydrating)
9328
- };
9329
-
9330
- // devtools global hook
9331
- /* istanbul ignore next */
9332
- if (inBrowser) {
9333
- setTimeout(function () {
9334
- if (config.devtools) {
9335
- if (devtools) {
9336
- devtools.emit('init', Vue);
9337
- } else if (
9338
- process.env.NODE_ENV !== 'production' &&
9339
- process.env.NODE_ENV !== 'test'
9340
- ) {
9341
- console[console.info ? 'info' : 'log'](
9342
- 'Download the Vue Devtools extension for a better development experience:\n' +
9343
- 'https://github.com/vuejs/vue-devtools'
9344
- );
9345
- }
9346
- }
9347
- if (process.env.NODE_ENV !== 'production' &&
9348
- process.env.NODE_ENV !== 'test' &&
9349
- config.productionTip !== false &&
9350
- typeof console !== 'undefined'
9351
- ) {
9352
- console[console.info ? 'info' : 'log'](
9353
- "You are running Vue in development mode.\n" +
9354
- "Make sure to turn on production mode when deploying for production.\n" +
9355
- "See more tips at https://vuejs.org/guide/deployment.html"
9356
- );
9357
- }
9358
- }, 0);
9359
- }
9360
-
9361
- /* */
9362
-
9363
- var defaultTagRE = /\{\{((?:.|\r?\n)+?)\}\}/g;
9364
- var regexEscapeRE = /[-.*+?^${}()|[\]\/\\]/g;
9365
-
9366
- var buildRegex = cached(function (delimiters) {
9367
- var open = delimiters[0].replace(regexEscapeRE, '\\$&');
9368
- var close = delimiters[1].replace(regexEscapeRE, '\\$&');
9369
- return new RegExp(open + '((?:.|\\n)+?)' + close, 'g')
9370
- });
9371
-
9372
-
9373
-
9374
- function parseText (
9375
- text,
9376
- delimiters
9377
- ) {
9378
- var tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE;
9379
- if (!tagRE.test(text)) {
9380
- return
9381
- }
9382
- var tokens = [];
9383
- var rawTokens = [];
9384
- var lastIndex = tagRE.lastIndex = 0;
9385
- var match, index, tokenValue;
9386
- while ((match = tagRE.exec(text))) {
9387
- index = match.index;
9388
- // push text token
9389
- if (index > lastIndex) {
9390
- rawTokens.push(tokenValue = text.slice(lastIndex, index));
9391
- tokens.push(JSON.stringify(tokenValue));
9392
- }
9393
- // tag token
9394
- var exp = parseFilters(match[1].trim());
9395
- tokens.push(("_s(" + exp + ")"));
9396
- rawTokens.push({ '@binding': exp });
9397
- lastIndex = index + match[0].length;
9398
- }
9399
- if (lastIndex < text.length) {
9400
- rawTokens.push(tokenValue = text.slice(lastIndex));
9401
- tokens.push(JSON.stringify(tokenValue));
9402
- }
9403
- return {
9404
- expression: tokens.join('+'),
9405
- tokens: rawTokens
9406
- }
9407
- }
9408
-
9409
- /* */
9410
-
9411
- function transformNode (el, options) {
9412
- var warn = options.warn || baseWarn;
9413
- var staticClass = getAndRemoveAttr(el, 'class');
9414
- if (process.env.NODE_ENV !== 'production' && staticClass) {
9415
- var res = parseText(staticClass, options.delimiters);
9416
- if (res) {
9417
- warn(
9418
- "class=\"" + staticClass + "\": " +
9419
- 'Interpolation inside attributes has been removed. ' +
9420
- 'Use v-bind or the colon shorthand instead. For example, ' +
9421
- 'instead of <div class="{{ val }}">, use <div :class="val">.',
9422
- el.rawAttrsMap['class']
9423
- );
9424
- }
9425
- }
9426
- if (staticClass) {
9427
- el.staticClass = JSON.stringify(staticClass);
9428
- }
9429
- var classBinding = getBindingAttr(el, 'class', false /* getStatic */);
9430
- if (classBinding) {
9431
- el.classBinding = classBinding;
9432
- }
9433
- }
9434
-
9435
- function genData (el) {
9436
- var data = '';
9437
- if (el.staticClass) {
9438
- data += "staticClass:" + (el.staticClass) + ",";
9439
- }
9440
- if (el.classBinding) {
9441
- data += "class:" + (el.classBinding) + ",";
9442
- }
9443
- return data
9444
- }
9445
-
9446
- var klass$1 = {
9447
- staticKeys: ['staticClass'],
9448
- transformNode: transformNode,
9449
- genData: genData
9450
- };
9451
-
9452
- /* */
9453
-
9454
- function transformNode$1 (el, options) {
9455
- var warn = options.warn || baseWarn;
9456
- var staticStyle = getAndRemoveAttr(el, 'style');
9457
- if (staticStyle) {
9458
- /* istanbul ignore if */
9459
- if (process.env.NODE_ENV !== 'production') {
9460
- var res = parseText(staticStyle, options.delimiters);
9461
- if (res) {
9462
- warn(
9463
- "style=\"" + staticStyle + "\": " +
9464
- 'Interpolation inside attributes has been removed. ' +
9465
- 'Use v-bind or the colon shorthand instead. For example, ' +
9466
- 'instead of <div style="{{ val }}">, use <div :style="val">.',
9467
- el.rawAttrsMap['style']
9468
- );
9469
- }
9470
- }
9471
- el.staticStyle = JSON.stringify(parseStyleText(staticStyle));
9472
- }
9473
-
9474
- var styleBinding = getBindingAttr(el, 'style', false /* getStatic */);
9475
- if (styleBinding) {
9476
- el.styleBinding = styleBinding;
9477
- }
9478
- }
9479
-
9480
- function genData$1 (el) {
9481
- var data = '';
9482
- if (el.staticStyle) {
9483
- data += "staticStyle:" + (el.staticStyle) + ",";
9484
- }
9485
- if (el.styleBinding) {
9486
- data += "style:(" + (el.styleBinding) + "),";
9487
- }
9488
- return data
9489
- }
9490
-
9491
- var style$1 = {
9492
- staticKeys: ['staticStyle'],
9493
- transformNode: transformNode$1,
9494
- genData: genData$1
9495
- };
9496
-
9497
- /* */
9498
-
9499
- var decoder;
9500
-
9501
- var he = {
9502
- decode: function decode (html) {
9503
- decoder = decoder || document.createElement('div');
9504
- decoder.innerHTML = html;
9505
- return decoder.textContent
9506
- }
9507
- };
9508
-
9509
- /* */
9510
-
9511
- var isUnaryTag = makeMap(
9512
- 'area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' +
9513
- 'link,meta,param,source,track,wbr'
9514
- );
9515
-
9516
- // Elements that you can, intentionally, leave open
9517
- // (and which close themselves)
9518
- var canBeLeftOpenTag = makeMap(
9519
- 'colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source'
9520
- );
9521
-
9522
- // HTML5 tags https://html.spec.whatwg.org/multipage/indices.html#elements-3
9523
- // Phrasing Content https://html.spec.whatwg.org/multipage/dom.html#phrasing-content
9524
- var isNonPhrasingTag = makeMap(
9525
- 'address,article,aside,base,blockquote,body,caption,col,colgroup,dd,' +
9526
- 'details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,' +
9527
- 'h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,' +
9528
- 'optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,' +
9529
- 'title,tr,track'
9530
- );
9531
-
9532
- /**
9533
- * Not type-checking this file because it's mostly vendor code.
9534
- */
9535
-
9536
- // Regular Expressions for parsing tags and attributes
9537
- var attribute = /^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/;
9538
- var dynamicArgAttribute = /^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+?\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/;
9539
- var ncname = "[a-zA-Z_][\\-\\.0-9_a-zA-Z" + (unicodeRegExp.source) + "]*";
9540
- var qnameCapture = "((?:" + ncname + "\\:)?" + ncname + ")";
9541
- var startTagOpen = new RegExp(("^<" + qnameCapture));
9542
- var startTagClose = /^\s*(\/?)>/;
9543
- var endTag = new RegExp(("^<\\/" + qnameCapture + "[^>]*>"));
9544
- var doctype = /^<!DOCTYPE [^>]+>/i;
9545
- // #7298: escape - to avoid being passed as HTML comment when inlined in page
9546
- var comment = /^<!\--/;
9547
- var conditionalComment = /^<!\[/;
9548
-
9549
- // Special Elements (can contain anything)
9550
- var isPlainTextElement = makeMap('script,style,textarea', true);
9551
- var reCache = {};
9552
-
9553
- var decodingMap = {
9554
- '&lt;': '<',
9555
- '&gt;': '>',
9556
- '&quot;': '"',
9557
- '&amp;': '&',
9558
- '&#10;': '\n',
9559
- '&#9;': '\t',
9560
- '&#39;': "'"
9561
- };
9562
- var encodedAttr = /&(?:lt|gt|quot|amp|#39);/g;
9563
- var encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#39|#10|#9);/g;
9564
-
9565
- // #5992
9566
- var isIgnoreNewlineTag = makeMap('pre,textarea', true);
9567
- var shouldIgnoreFirstNewline = function (tag, html) { return tag && isIgnoreNewlineTag(tag) && html[0] === '\n'; };
9568
-
9569
- function decodeAttr (value, shouldDecodeNewlines) {
9570
- var re = shouldDecodeNewlines ? encodedAttrWithNewLines : encodedAttr;
9571
- return value.replace(re, function (match) { return decodingMap[match]; })
9572
- }
9573
-
9574
- function parseHTML (html, options) {
9575
- var stack = [];
9576
- var expectHTML = options.expectHTML;
9577
- var isUnaryTag$$1 = options.isUnaryTag || no;
9578
- var canBeLeftOpenTag$$1 = options.canBeLeftOpenTag || no;
9579
- var index = 0;
9580
- var last, lastTag;
9581
- while (html) {
9582
- last = html;
9583
- // Make sure we're not in a plaintext content element like script/style
9584
- if (!lastTag || !isPlainTextElement(lastTag)) {
9585
- var textEnd = html.indexOf('<');
9586
- if (textEnd === 0) {
9587
- // Comment:
9588
- if (comment.test(html)) {
9589
- var commentEnd = html.indexOf('-->');
9590
-
9591
- if (commentEnd >= 0) {
9592
- if (options.shouldKeepComment) {
9593
- options.comment(html.substring(4, commentEnd), index, index + commentEnd + 3);
9594
- }
9595
- advance(commentEnd + 3);
9596
- continue
9597
- }
9598
- }
9599
-
9600
- // http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment
9601
- if (conditionalComment.test(html)) {
9602
- var conditionalEnd = html.indexOf(']>');
9603
-
9604
- if (conditionalEnd >= 0) {
9605
- advance(conditionalEnd + 2);
9606
- continue
9607
- }
9608
- }
9609
-
9610
- // Doctype:
9611
- var doctypeMatch = html.match(doctype);
9612
- if (doctypeMatch) {
9613
- advance(doctypeMatch[0].length);
9614
- continue
9615
- }
9616
-
9617
- // End tag:
9618
- var endTagMatch = html.match(endTag);
9619
- if (endTagMatch) {
9620
- var curIndex = index;
9621
- advance(endTagMatch[0].length);
9622
- parseEndTag(endTagMatch[1], curIndex, index);
9623
- continue
9624
- }
9625
-
9626
- // Start tag:
9627
- var startTagMatch = parseStartTag();
9628
- if (startTagMatch) {
9629
- handleStartTag(startTagMatch);
9630
- if (shouldIgnoreFirstNewline(startTagMatch.tagName, html)) {
9631
- advance(1);
9632
- }
9633
- continue
9634
- }
9635
- }
9636
-
9637
- var text = (void 0), rest = (void 0), next = (void 0);
9638
- if (textEnd >= 0) {
9639
- rest = html.slice(textEnd);
9640
- while (
9641
- !endTag.test(rest) &&
9642
- !startTagOpen.test(rest) &&
9643
- !comment.test(rest) &&
9644
- !conditionalComment.test(rest)
9645
- ) {
9646
- // < in plain text, be forgiving and treat it as text
9647
- next = rest.indexOf('<', 1);
9648
- if (next < 0) { break }
9649
- textEnd += next;
9650
- rest = html.slice(textEnd);
9651
- }
9652
- text = html.substring(0, textEnd);
9653
- }
9654
-
9655
- if (textEnd < 0) {
9656
- text = html;
9657
- }
9658
-
9659
- if (text) {
9660
- advance(text.length);
9661
- }
9662
-
9663
- if (options.chars && text) {
9664
- options.chars(text, index - text.length, index);
9665
- }
9666
- } else {
9667
- var endTagLength = 0;
9668
- var stackedTag = lastTag.toLowerCase();
9669
- var reStackedTag = reCache[stackedTag] || (reCache[stackedTag] = new RegExp('([\\s\\S]*?)(</' + stackedTag + '[^>]*>)', 'i'));
9670
- var rest$1 = html.replace(reStackedTag, function (all, text, endTag) {
9671
- endTagLength = endTag.length;
9672
- if (!isPlainTextElement(stackedTag) && stackedTag !== 'noscript') {
9673
- text = text
9674
- .replace(/<!\--([\s\S]*?)-->/g, '$1') // #7298
9675
- .replace(/<!\[CDATA\[([\s\S]*?)]]>/g, '$1');
9676
- }
9677
- if (shouldIgnoreFirstNewline(stackedTag, text)) {
9678
- text = text.slice(1);
9679
- }
9680
- if (options.chars) {
9681
- options.chars(text);
9682
- }
9683
- return ''
9684
- });
9685
- index += html.length - rest$1.length;
9686
- html = rest$1;
9687
- parseEndTag(stackedTag, index - endTagLength, index);
9688
- }
9689
-
9690
- if (html === last) {
9691
- options.chars && options.chars(html);
9692
- if (process.env.NODE_ENV !== 'production' && !stack.length && options.warn) {
9693
- options.warn(("Mal-formatted tag at end of template: \"" + html + "\""), { start: index + html.length });
9694
- }
9695
- break
9696
- }
9697
- }
9698
-
9699
- // Clean up any remaining tags
9700
- parseEndTag();
9701
-
9702
- function advance (n) {
9703
- index += n;
9704
- html = html.substring(n);
9705
- }
9706
-
9707
- function parseStartTag () {
9708
- var start = html.match(startTagOpen);
9709
- if (start) {
9710
- var match = {
9711
- tagName: start[1],
9712
- attrs: [],
9713
- start: index
9714
- };
9715
- advance(start[0].length);
9716
- var end, attr;
9717
- while (!(end = html.match(startTagClose)) && (attr = html.match(dynamicArgAttribute) || html.match(attribute))) {
9718
- attr.start = index;
9719
- advance(attr[0].length);
9720
- attr.end = index;
9721
- match.attrs.push(attr);
9722
- }
9723
- if (end) {
9724
- match.unarySlash = end[1];
9725
- advance(end[0].length);
9726
- match.end = index;
9727
- return match
9728
- }
9729
- }
9730
- }
9731
-
9732
- function handleStartTag (match) {
9733
- var tagName = match.tagName;
9734
- var unarySlash = match.unarySlash;
9735
-
9736
- if (expectHTML) {
9737
- if (lastTag === 'p' && isNonPhrasingTag(tagName)) {
9738
- parseEndTag(lastTag);
9739
- }
9740
- if (canBeLeftOpenTag$$1(tagName) && lastTag === tagName) {
9741
- parseEndTag(tagName);
9742
- }
9743
- }
9744
-
9745
- var unary = isUnaryTag$$1(tagName) || !!unarySlash;
9746
-
9747
- var l = match.attrs.length;
9748
- var attrs = new Array(l);
9749
- for (var i = 0; i < l; i++) {
9750
- var args = match.attrs[i];
9751
- var value = args[3] || args[4] || args[5] || '';
9752
- var shouldDecodeNewlines = tagName === 'a' && args[1] === 'href'
9753
- ? options.shouldDecodeNewlinesForHref
9754
- : options.shouldDecodeNewlines;
9755
- attrs[i] = {
9756
- name: args[1],
9757
- value: decodeAttr(value, shouldDecodeNewlines)
9758
- };
9759
- if (process.env.NODE_ENV !== 'production' && options.outputSourceRange) {
9760
- attrs[i].start = args.start + args[0].match(/^\s*/).length;
9761
- attrs[i].end = args.end;
9762
- }
9763
- }
9764
-
9765
- if (!unary) {
9766
- stack.push({ tag: tagName, lowerCasedTag: tagName.toLowerCase(), attrs: attrs, start: match.start, end: match.end });
9767
- lastTag = tagName;
9768
- }
9769
-
9770
- if (options.start) {
9771
- options.start(tagName, attrs, unary, match.start, match.end);
9772
- }
9773
- }
9774
-
9775
- function parseEndTag (tagName, start, end) {
9776
- var pos, lowerCasedTagName;
9777
- if (start == null) { start = index; }
9778
- if (end == null) { end = index; }
9779
-
9780
- // Find the closest opened tag of the same type
9781
- if (tagName) {
9782
- lowerCasedTagName = tagName.toLowerCase();
9783
- for (pos = stack.length - 1; pos >= 0; pos--) {
9784
- if (stack[pos].lowerCasedTag === lowerCasedTagName) {
9785
- break
9786
- }
9787
- }
9788
- } else {
9789
- // If no tag name is provided, clean shop
9790
- pos = 0;
9791
- }
9792
-
9793
- if (pos >= 0) {
9794
- // Close all the open elements, up the stack
9795
- for (var i = stack.length - 1; i >= pos; i--) {
9796
- if (process.env.NODE_ENV !== 'production' &&
9797
- (i > pos || !tagName) &&
9798
- options.warn
9799
- ) {
9800
- options.warn(
9801
- ("tag <" + (stack[i].tag) + "> has no matching end tag."),
9802
- { start: stack[i].start, end: stack[i].end }
9803
- );
9804
- }
9805
- if (options.end) {
9806
- options.end(stack[i].tag, start, end);
9807
- }
9808
- }
9809
-
9810
- // Remove the open elements from the stack
9811
- stack.length = pos;
9812
- lastTag = pos && stack[pos - 1].tag;
9813
- } else if (lowerCasedTagName === 'br') {
9814
- if (options.start) {
9815
- options.start(tagName, [], true, start, end);
9816
- }
9817
- } else if (lowerCasedTagName === 'p') {
9818
- if (options.start) {
9819
- options.start(tagName, [], false, start, end);
9820
- }
9821
- if (options.end) {
9822
- options.end(tagName, start, end);
9823
- }
9824
- }
9825
- }
9826
- }
9827
-
9828
- /* */
9829
-
9830
- var onRE = /^@|^v-on:/;
9831
- var dirRE = /^v-|^@|^:|^#/;
9832
- var forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/;
9833
- var forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/;
9834
- var stripParensRE = /^\(|\)$/g;
9835
- var dynamicArgRE = /^\[.*\]$/;
9836
-
9837
- var argRE = /:(.*)$/;
9838
- var bindRE = /^:|^\.|^v-bind:/;
9839
- var modifierRE = /\.[^.\]]+(?=[^\]]*$)/g;
9840
-
9841
- var slotRE = /^v-slot(:|$)|^#/;
9842
-
9843
- var lineBreakRE = /[\r\n]/;
9844
- var whitespaceRE$1 = /[ \f\t\r\n]+/g;
9845
-
9846
- var invalidAttributeRE = /[\s"'<>\/=]/;
9847
-
9848
- var decodeHTMLCached = cached(he.decode);
9849
-
9850
- var emptySlotScopeToken = "_empty_";
9851
-
9852
- // configurable state
9853
- var warn$2;
9854
- var delimiters;
9855
- var transforms;
9856
- var preTransforms;
9857
- var postTransforms;
9858
- var platformIsPreTag;
9859
- var platformMustUseProp;
9860
- var platformGetTagNamespace;
9861
- var maybeComponent;
9862
-
9863
- function createASTElement (
9864
- tag,
9865
- attrs,
9866
- parent
9867
- ) {
9868
- return {
9869
- type: 1,
9870
- tag: tag,
9871
- attrsList: attrs,
9872
- attrsMap: makeAttrsMap(attrs),
9873
- rawAttrsMap: {},
9874
- parent: parent,
9875
- children: []
9876
- }
9877
- }
9878
-
9879
- /**
9880
- * Convert HTML string to AST.
9881
- */
9882
- function parse (
9883
- template,
9884
- options
9885
- ) {
9886
- warn$2 = options.warn || baseWarn;
9887
-
9888
- platformIsPreTag = options.isPreTag || no;
9889
- platformMustUseProp = options.mustUseProp || no;
9890
- platformGetTagNamespace = options.getTagNamespace || no;
9891
- var isReservedTag = options.isReservedTag || no;
9892
- maybeComponent = function (el) { return !!(
9893
- el.component ||
9894
- el.attrsMap[':is'] ||
9895
- el.attrsMap['v-bind:is'] ||
9896
- !(el.attrsMap.is ? isReservedTag(el.attrsMap.is) : isReservedTag(el.tag))
9897
- ); };
9898
- transforms = pluckModuleFunction(options.modules, 'transformNode');
9899
- preTransforms = pluckModuleFunction(options.modules, 'preTransformNode');
9900
- postTransforms = pluckModuleFunction(options.modules, 'postTransformNode');
9901
-
9902
- delimiters = options.delimiters;
9903
-
9904
- var stack = [];
9905
- var preserveWhitespace = options.preserveWhitespace !== false;
9906
- var whitespaceOption = options.whitespace;
9907
- var root;
9908
- var currentParent;
9909
- var inVPre = false;
9910
- var inPre = false;
9911
- var warned = false;
9912
-
9913
- function warnOnce (msg, range) {
9914
- if (!warned) {
9915
- warned = true;
9916
- warn$2(msg, range);
9917
- }
9918
- }
9919
-
9920
- function closeElement (element) {
9921
- trimEndingWhitespace(element);
9922
- if (!inVPre && !element.processed) {
9923
- element = processElement(element, options);
9924
- }
9925
- // tree management
9926
- if (!stack.length && element !== root) {
9927
- // allow root elements with v-if, v-else-if and v-else
9928
- if (root.if && (element.elseif || element.else)) {
9929
- if (process.env.NODE_ENV !== 'production') {
9930
- checkRootConstraints(element);
9931
- }
9932
- addIfCondition(root, {
9933
- exp: element.elseif,
9934
- block: element
9935
- });
9936
- } else if (process.env.NODE_ENV !== 'production') {
9937
- warnOnce(
9938
- "Component template should contain exactly one root element. " +
9939
- "If you are using v-if on multiple elements, " +
9940
- "use v-else-if to chain them instead.",
9941
- { start: element.start }
9942
- );
9943
- }
9944
- }
9945
- if (currentParent && !element.forbidden) {
9946
- if (element.elseif || element.else) {
9947
- processIfConditions(element, currentParent);
9948
- } else {
9949
- if (element.slotScope) {
9950
- // scoped slot
9951
- // keep it in the children list so that v-else(-if) conditions can
9952
- // find it as the prev node.
9953
- var name = element.slotTarget || '"default"'
9954
- ;(currentParent.scopedSlots || (currentParent.scopedSlots = {}))[name] = element;
9955
- }
9956
- currentParent.children.push(element);
9957
- element.parent = currentParent;
9958
- }
9959
- }
9960
-
9961
- // final children cleanup
9962
- // filter out scoped slots
9963
- element.children = element.children.filter(function (c) { return !(c).slotScope; });
9964
- // remove trailing whitespace node again
9965
- trimEndingWhitespace(element);
9966
-
9967
- // check pre state
9968
- if (element.pre) {
9969
- inVPre = false;
9970
- }
9971
- if (platformIsPreTag(element.tag)) {
9972
- inPre = false;
9973
- }
9974
- // apply post-transforms
9975
- for (var i = 0; i < postTransforms.length; i++) {
9976
- postTransforms[i](element, options);
9977
- }
9978
- }
9979
-
9980
- function trimEndingWhitespace (el) {
9981
- // remove trailing whitespace node
9982
- if (!inPre) {
9983
- var lastNode;
9984
- while (
9985
- (lastNode = el.children[el.children.length - 1]) &&
9986
- lastNode.type === 3 &&
9987
- lastNode.text === ' '
9988
- ) {
9989
- el.children.pop();
9990
- }
9991
- }
9992
- }
9993
-
9994
- function checkRootConstraints (el) {
9995
- if (el.tag === 'slot' || el.tag === 'template') {
9996
- warnOnce(
9997
- "Cannot use <" + (el.tag) + "> as component root element because it may " +
9998
- 'contain multiple nodes.',
9999
- { start: el.start }
10000
- );
10001
- }
10002
- if (el.attrsMap.hasOwnProperty('v-for')) {
10003
- warnOnce(
10004
- 'Cannot use v-for on stateful component root element because ' +
10005
- 'it renders multiple elements.',
10006
- el.rawAttrsMap['v-for']
10007
- );
10008
- }
10009
- }
10010
-
10011
- parseHTML(template, {
10012
- warn: warn$2,
10013
- expectHTML: options.expectHTML,
10014
- isUnaryTag: options.isUnaryTag,
10015
- canBeLeftOpenTag: options.canBeLeftOpenTag,
10016
- shouldDecodeNewlines: options.shouldDecodeNewlines,
10017
- shouldDecodeNewlinesForHref: options.shouldDecodeNewlinesForHref,
10018
- shouldKeepComment: options.comments,
10019
- outputSourceRange: options.outputSourceRange,
10020
- start: function start (tag, attrs, unary, start$1, end) {
10021
- // check namespace.
10022
- // inherit parent ns if there is one
10023
- var ns = (currentParent && currentParent.ns) || platformGetTagNamespace(tag);
10024
-
10025
- // handle IE svg bug
10026
- /* istanbul ignore if */
10027
- if (isIE && ns === 'svg') {
10028
- attrs = guardIESVGBug(attrs);
10029
- }
10030
-
10031
- var element = createASTElement(tag, attrs, currentParent);
10032
- if (ns) {
10033
- element.ns = ns;
10034
- }
10035
-
10036
- if (process.env.NODE_ENV !== 'production') {
10037
- if (options.outputSourceRange) {
10038
- element.start = start$1;
10039
- element.end = end;
10040
- element.rawAttrsMap = element.attrsList.reduce(function (cumulated, attr) {
10041
- cumulated[attr.name] = attr;
10042
- return cumulated
10043
- }, {});
10044
- }
10045
- attrs.forEach(function (attr) {
10046
- if (invalidAttributeRE.test(attr.name)) {
10047
- warn$2(
10048
- "Invalid dynamic argument expression: attribute names cannot contain " +
10049
- "spaces, quotes, <, >, / or =.",
10050
- {
10051
- start: attr.start + attr.name.indexOf("["),
10052
- end: attr.start + attr.name.length
10053
- }
10054
- );
10055
- }
10056
- });
10057
- }
10058
-
10059
- if (isForbiddenTag(element) && !isServerRendering()) {
10060
- element.forbidden = true;
10061
- process.env.NODE_ENV !== 'production' && warn$2(
10062
- 'Templates should only be responsible for mapping the state to the ' +
10063
- 'UI. Avoid placing tags with side-effects in your templates, such as ' +
10064
- "<" + tag + ">" + ', as they will not be parsed.',
10065
- { start: element.start }
10066
- );
10067
- }
10068
-
10069
- // apply pre-transforms
10070
- for (var i = 0; i < preTransforms.length; i++) {
10071
- element = preTransforms[i](element, options) || element;
10072
- }
10073
-
10074
- if (!inVPre) {
10075
- processPre(element);
10076
- if (element.pre) {
10077
- inVPre = true;
10078
- }
10079
- }
10080
- if (platformIsPreTag(element.tag)) {
10081
- inPre = true;
10082
- }
10083
- if (inVPre) {
10084
- processRawAttrs(element);
10085
- } else if (!element.processed) {
10086
- // structural directives
10087
- processFor(element);
10088
- processIf(element);
10089
- processOnce(element);
10090
- }
10091
-
10092
- if (!root) {
10093
- root = element;
10094
- if (process.env.NODE_ENV !== 'production') {
10095
- checkRootConstraints(root);
10096
- }
10097
- }
10098
-
10099
- if (!unary) {
10100
- currentParent = element;
10101
- stack.push(element);
10102
- } else {
10103
- closeElement(element);
10104
- }
10105
- },
10106
-
10107
- end: function end (tag, start, end$1) {
10108
- var element = stack[stack.length - 1];
10109
- // pop stack
10110
- stack.length -= 1;
10111
- currentParent = stack[stack.length - 1];
10112
- if (process.env.NODE_ENV !== 'production' && options.outputSourceRange) {
10113
- element.end = end$1;
10114
- }
10115
- closeElement(element);
10116
- },
10117
-
10118
- chars: function chars (text, start, end) {
10119
- if (!currentParent) {
10120
- if (process.env.NODE_ENV !== 'production') {
10121
- if (text === template) {
10122
- warnOnce(
10123
- 'Component template requires a root element, rather than just text.',
10124
- { start: start }
10125
- );
10126
- } else if ((text = text.trim())) {
10127
- warnOnce(
10128
- ("text \"" + text + "\" outside root element will be ignored."),
10129
- { start: start }
10130
- );
10131
- }
10132
- }
10133
- return
10134
- }
10135
- // IE textarea placeholder bug
10136
- /* istanbul ignore if */
10137
- if (isIE &&
10138
- currentParent.tag === 'textarea' &&
10139
- currentParent.attrsMap.placeholder === text
10140
- ) {
10141
- return
10142
- }
10143
- var children = currentParent.children;
10144
- if (inPre || text.trim()) {
10145
- text = isTextTag(currentParent) ? text : decodeHTMLCached(text);
10146
- } else if (!children.length) {
10147
- // remove the whitespace-only node right after an opening tag
10148
- text = '';
10149
- } else if (whitespaceOption) {
10150
- if (whitespaceOption === 'condense') {
10151
- // in condense mode, remove the whitespace node if it contains
10152
- // line break, otherwise condense to a single space
10153
- text = lineBreakRE.test(text) ? '' : ' ';
10154
- } else {
10155
- text = ' ';
10156
- }
10157
- } else {
10158
- text = preserveWhitespace ? ' ' : '';
10159
- }
10160
- if (text) {
10161
- if (!inPre && whitespaceOption === 'condense') {
10162
- // condense consecutive whitespaces into single space
10163
- text = text.replace(whitespaceRE$1, ' ');
10164
- }
10165
- var res;
10166
- var child;
10167
- if (!inVPre && text !== ' ' && (res = parseText(text, delimiters))) {
10168
- child = {
10169
- type: 2,
10170
- expression: res.expression,
10171
- tokens: res.tokens,
10172
- text: text
10173
- };
10174
- } else if (text !== ' ' || !children.length || children[children.length - 1].text !== ' ') {
10175
- child = {
10176
- type: 3,
10177
- text: text
10178
- };
10179
- }
10180
- if (child) {
10181
- if (process.env.NODE_ENV !== 'production' && options.outputSourceRange) {
10182
- child.start = start;
10183
- child.end = end;
10184
- }
10185
- children.push(child);
10186
- }
10187
- }
10188
- },
10189
- comment: function comment (text, start, end) {
10190
- // adding anything as a sibling to the root node is forbidden
10191
- // comments should still be allowed, but ignored
10192
- if (currentParent) {
10193
- var child = {
10194
- type: 3,
10195
- text: text,
10196
- isComment: true
10197
- };
10198
- if (process.env.NODE_ENV !== 'production' && options.outputSourceRange) {
10199
- child.start = start;
10200
- child.end = end;
10201
- }
10202
- currentParent.children.push(child);
10203
- }
10204
- }
10205
- });
10206
- return root
10207
- }
10208
-
10209
- function processPre (el) {
10210
- if (getAndRemoveAttr(el, 'v-pre') != null) {
10211
- el.pre = true;
10212
- }
10213
- }
10214
-
10215
- function processRawAttrs (el) {
10216
- var list = el.attrsList;
10217
- var len = list.length;
10218
- if (len) {
10219
- var attrs = el.attrs = new Array(len);
10220
- for (var i = 0; i < len; i++) {
10221
- attrs[i] = {
10222
- name: list[i].name,
10223
- value: JSON.stringify(list[i].value)
10224
- };
10225
- if (list[i].start != null) {
10226
- attrs[i].start = list[i].start;
10227
- attrs[i].end = list[i].end;
10228
- }
10229
- }
10230
- } else if (!el.pre) {
10231
- // non root node in pre blocks with no attributes
10232
- el.plain = true;
10233
- }
10234
- }
10235
-
10236
- function processElement (
10237
- element,
10238
- options
10239
- ) {
10240
- processKey(element);
10241
-
10242
- // determine whether this is a plain element after
10243
- // removing structural attributes
10244
- element.plain = (
10245
- !element.key &&
10246
- !element.scopedSlots &&
10247
- !element.attrsList.length
10248
- );
10249
-
10250
- processRef(element);
10251
- processSlotContent(element);
10252
- processSlotOutlet(element);
10253
- processComponent(element);
10254
- for (var i = 0; i < transforms.length; i++) {
10255
- element = transforms[i](element, options) || element;
10256
- }
10257
- processAttrs(element);
10258
- return element
10259
- }
10260
-
10261
- function processKey (el) {
10262
- var exp = getBindingAttr(el, 'key');
10263
- if (exp) {
10264
- if (process.env.NODE_ENV !== 'production') {
10265
- if (el.tag === 'template') {
10266
- warn$2(
10267
- "<template> cannot be keyed. Place the key on real elements instead.",
10268
- getRawBindingAttr(el, 'key')
10269
- );
10270
- }
10271
- if (el.for) {
10272
- var iterator = el.iterator2 || el.iterator1;
10273
- var parent = el.parent;
10274
- if (iterator && iterator === exp && parent && parent.tag === 'transition-group') {
10275
- warn$2(
10276
- "Do not use v-for index as key on <transition-group> children, " +
10277
- "this is the same as not using keys.",
10278
- getRawBindingAttr(el, 'key'),
10279
- true /* tip */
10280
- );
10281
- }
10282
- }
10283
- }
10284
- el.key = exp;
10285
- }
10286
- }
10287
-
10288
- function processRef (el) {
10289
- var ref = getBindingAttr(el, 'ref');
10290
- if (ref) {
10291
- el.ref = ref;
10292
- el.refInFor = checkInFor(el);
10293
- }
10294
- }
10295
-
10296
- function processFor (el) {
10297
- var exp;
10298
- if ((exp = getAndRemoveAttr(el, 'v-for'))) {
10299
- var res = parseFor(exp);
10300
- if (res) {
10301
- extend(el, res);
10302
- } else if (process.env.NODE_ENV !== 'production') {
10303
- warn$2(
10304
- ("Invalid v-for expression: " + exp),
10305
- el.rawAttrsMap['v-for']
10306
- );
10307
- }
10308
- }
10309
- }
10310
-
10311
-
10312
-
10313
- function parseFor (exp) {
10314
- var inMatch = exp.match(forAliasRE);
10315
- if (!inMatch) { return }
10316
- var res = {};
10317
- res.for = inMatch[2].trim();
10318
- var alias = inMatch[1].trim().replace(stripParensRE, '');
10319
- var iteratorMatch = alias.match(forIteratorRE);
10320
- if (iteratorMatch) {
10321
- res.alias = alias.replace(forIteratorRE, '').trim();
10322
- res.iterator1 = iteratorMatch[1].trim();
10323
- if (iteratorMatch[2]) {
10324
- res.iterator2 = iteratorMatch[2].trim();
10325
- }
10326
- } else {
10327
- res.alias = alias;
10328
- }
10329
- return res
10330
- }
10331
-
10332
- function processIf (el) {
10333
- var exp = getAndRemoveAttr(el, 'v-if');
10334
- if (exp) {
10335
- el.if = exp;
10336
- addIfCondition(el, {
10337
- exp: exp,
10338
- block: el
10339
- });
10340
- } else {
10341
- if (getAndRemoveAttr(el, 'v-else') != null) {
10342
- el.else = true;
10343
- }
10344
- var elseif = getAndRemoveAttr(el, 'v-else-if');
10345
- if (elseif) {
10346
- el.elseif = elseif;
10347
- }
10348
- }
10349
- }
10350
-
10351
- function processIfConditions (el, parent) {
10352
- var prev = findPrevElement(parent.children);
10353
- if (prev && prev.if) {
10354
- addIfCondition(prev, {
10355
- exp: el.elseif,
10356
- block: el
10357
- });
10358
- } else if (process.env.NODE_ENV !== 'production') {
10359
- warn$2(
10360
- "v-" + (el.elseif ? ('else-if="' + el.elseif + '"') : 'else') + " " +
10361
- "used on element <" + (el.tag) + "> without corresponding v-if.",
10362
- el.rawAttrsMap[el.elseif ? 'v-else-if' : 'v-else']
10363
- );
10364
- }
10365
- }
10366
-
10367
- function findPrevElement (children) {
10368
- var i = children.length;
10369
- while (i--) {
10370
- if (children[i].type === 1) {
10371
- return children[i]
10372
- } else {
10373
- if (process.env.NODE_ENV !== 'production' && children[i].text !== ' ') {
10374
- warn$2(
10375
- "text \"" + (children[i].text.trim()) + "\" between v-if and v-else(-if) " +
10376
- "will be ignored.",
10377
- children[i]
10378
- );
10379
- }
10380
- children.pop();
10381
- }
10382
- }
10383
- }
10384
-
10385
- function addIfCondition (el, condition) {
10386
- if (!el.ifConditions) {
10387
- el.ifConditions = [];
10388
- }
10389
- el.ifConditions.push(condition);
10390
- }
10391
-
10392
- function processOnce (el) {
10393
- var once$$1 = getAndRemoveAttr(el, 'v-once');
10394
- if (once$$1 != null) {
10395
- el.once = true;
10396
- }
10397
- }
10398
-
10399
- // handle content being passed to a component as slot,
10400
- // e.g. <template slot="xxx">, <div slot-scope="xxx">
10401
- function processSlotContent (el) {
10402
- var slotScope;
10403
- if (el.tag === 'template') {
10404
- slotScope = getAndRemoveAttr(el, 'scope');
10405
- /* istanbul ignore if */
10406
- if (process.env.NODE_ENV !== 'production' && slotScope) {
10407
- warn$2(
10408
- "the \"scope\" attribute for scoped slots have been deprecated and " +
10409
- "replaced by \"slot-scope\" since 2.5. The new \"slot-scope\" attribute " +
10410
- "can also be used on plain elements in addition to <template> to " +
10411
- "denote scoped slots.",
10412
- el.rawAttrsMap['scope'],
10413
- true
10414
- );
10415
- }
10416
- el.slotScope = slotScope || getAndRemoveAttr(el, 'slot-scope');
10417
- } else if ((slotScope = getAndRemoveAttr(el, 'slot-scope'))) {
10418
- /* istanbul ignore if */
10419
- if (process.env.NODE_ENV !== 'production' && el.attrsMap['v-for']) {
10420
- warn$2(
10421
- "Ambiguous combined usage of slot-scope and v-for on <" + (el.tag) + "> " +
10422
- "(v-for takes higher priority). Use a wrapper <template> for the " +
10423
- "scoped slot to make it clearer.",
10424
- el.rawAttrsMap['slot-scope'],
10425
- true
10426
- );
10427
- }
10428
- el.slotScope = slotScope;
10429
- }
10430
-
10431
- // slot="xxx"
10432
- var slotTarget = getBindingAttr(el, 'slot');
10433
- if (slotTarget) {
10434
- el.slotTarget = slotTarget === '""' ? '"default"' : slotTarget;
10435
- el.slotTargetDynamic = !!(el.attrsMap[':slot'] || el.attrsMap['v-bind:slot']);
10436
- // preserve slot as an attribute for native shadow DOM compat
10437
- // only for non-scoped slots.
10438
- if (el.tag !== 'template' && !el.slotScope) {
10439
- addAttr(el, 'slot', slotTarget, getRawBindingAttr(el, 'slot'));
10440
- }
10441
- }
10442
-
10443
- // 2.6 v-slot syntax
10444
- {
10445
- if (el.tag === 'template') {
10446
- // v-slot on <template>
10447
- var slotBinding = getAndRemoveAttrByRegex(el, slotRE);
10448
- if (slotBinding) {
10449
- if (process.env.NODE_ENV !== 'production') {
10450
- if (el.slotTarget || el.slotScope) {
10451
- warn$2(
10452
- "Unexpected mixed usage of different slot syntaxes.",
10453
- el
10454
- );
10455
- }
10456
- if (el.parent && !maybeComponent(el.parent)) {
10457
- warn$2(
10458
- "<template v-slot> can only appear at the root level inside " +
10459
- "the receiving component",
10460
- el
10461
- );
10462
- }
10463
- }
10464
- var ref = getSlotName(slotBinding);
10465
- var name = ref.name;
10466
- var dynamic = ref.dynamic;
10467
- el.slotTarget = name;
10468
- el.slotTargetDynamic = dynamic;
10469
- el.slotScope = slotBinding.value || emptySlotScopeToken; // force it into a scoped slot for perf
10470
- }
10471
- } else {
10472
- // v-slot on component, denotes default slot
10473
- var slotBinding$1 = getAndRemoveAttrByRegex(el, slotRE);
10474
- if (slotBinding$1) {
10475
- if (process.env.NODE_ENV !== 'production') {
10476
- if (!maybeComponent(el)) {
10477
- warn$2(
10478
- "v-slot can only be used on components or <template>.",
10479
- slotBinding$1
10480
- );
10481
- }
10482
- if (el.slotScope || el.slotTarget) {
10483
- warn$2(
10484
- "Unexpected mixed usage of different slot syntaxes.",
10485
- el
10486
- );
10487
- }
10488
- if (el.scopedSlots) {
10489
- warn$2(
10490
- "To avoid scope ambiguity, the default slot should also use " +
10491
- "<template> syntax when there are other named slots.",
10492
- slotBinding$1
10493
- );
10494
- }
10495
- }
10496
- // add the component's children to its default slot
10497
- var slots = el.scopedSlots || (el.scopedSlots = {});
10498
- var ref$1 = getSlotName(slotBinding$1);
10499
- var name$1 = ref$1.name;
10500
- var dynamic$1 = ref$1.dynamic;
10501
- var slotContainer = slots[name$1] = createASTElement('template', [], el);
10502
- slotContainer.slotTarget = name$1;
10503
- slotContainer.slotTargetDynamic = dynamic$1;
10504
- slotContainer.children = el.children.filter(function (c) {
10505
- if (!c.slotScope) {
10506
- c.parent = slotContainer;
10507
- return true
10508
- }
10509
- });
10510
- slotContainer.slotScope = slotBinding$1.value || emptySlotScopeToken;
10511
- // remove children as they are returned from scopedSlots now
10512
- el.children = [];
10513
- // mark el non-plain so data gets generated
10514
- el.plain = false;
10515
- }
10516
- }
10517
- }
10518
- }
10519
-
10520
- function getSlotName (binding) {
10521
- var name = binding.name.replace(slotRE, '');
10522
- if (!name) {
10523
- if (binding.name[0] !== '#') {
10524
- name = 'default';
10525
- } else if (process.env.NODE_ENV !== 'production') {
10526
- warn$2(
10527
- "v-slot shorthand syntax requires a slot name.",
10528
- binding
10529
- );
10530
- }
10531
- }
10532
- return dynamicArgRE.test(name)
10533
- // dynamic [name]
10534
- ? { name: name.slice(1, -1), dynamic: true }
10535
- // static name
10536
- : { name: ("\"" + name + "\""), dynamic: false }
10537
- }
10538
-
10539
- // handle <slot/> outlets
10540
- function processSlotOutlet (el) {
10541
- if (el.tag === 'slot') {
10542
- el.slotName = getBindingAttr(el, 'name');
10543
- if (process.env.NODE_ENV !== 'production' && el.key) {
10544
- warn$2(
10545
- "`key` does not work on <slot> because slots are abstract outlets " +
10546
- "and can possibly expand into multiple elements. " +
10547
- "Use the key on a wrapping element instead.",
10548
- getRawBindingAttr(el, 'key')
10549
- );
10550
- }
10551
- }
10552
- }
10553
-
10554
- function processComponent (el) {
10555
- var binding;
10556
- if ((binding = getBindingAttr(el, 'is'))) {
10557
- el.component = binding;
10558
- }
10559
- if (getAndRemoveAttr(el, 'inline-template') != null) {
10560
- el.inlineTemplate = true;
10561
- }
10562
- }
10563
-
10564
- function processAttrs (el) {
10565
- var list = el.attrsList;
10566
- var i, l, name, rawName, value, modifiers, syncGen, isDynamic;
10567
- for (i = 0, l = list.length; i < l; i++) {
10568
- name = rawName = list[i].name;
10569
- value = list[i].value;
10570
- if (dirRE.test(name)) {
10571
- // mark element as dynamic
10572
- el.hasBindings = true;
10573
- // modifiers
10574
- modifiers = parseModifiers(name.replace(dirRE, ''));
10575
- // support .foo shorthand syntax for the .prop modifier
10576
- if (modifiers) {
10577
- name = name.replace(modifierRE, '');
10578
- }
10579
- if (bindRE.test(name)) { // v-bind
10580
- name = name.replace(bindRE, '');
10581
- value = parseFilters(value);
10582
- isDynamic = dynamicArgRE.test(name);
10583
- if (isDynamic) {
10584
- name = name.slice(1, -1);
10585
- }
10586
- if (
10587
- process.env.NODE_ENV !== 'production' &&
10588
- value.trim().length === 0
10589
- ) {
10590
- warn$2(
10591
- ("The value for a v-bind expression cannot be empty. Found in \"v-bind:" + name + "\"")
10592
- );
10593
- }
10594
- if (modifiers) {
10595
- if (modifiers.prop && !isDynamic) {
10596
- name = camelize(name);
10597
- if (name === 'innerHtml') { name = 'innerHTML'; }
10598
- }
10599
- if (modifiers.camel && !isDynamic) {
10600
- name = camelize(name);
10601
- }
10602
- if (modifiers.sync) {
10603
- syncGen = genAssignmentCode(value, "$event");
10604
- if (!isDynamic) {
10605
- addHandler(
10606
- el,
10607
- ("update:" + (camelize(name))),
10608
- syncGen,
10609
- null,
10610
- false,
10611
- warn$2,
10612
- list[i]
10613
- );
10614
- if (hyphenate(name) !== camelize(name)) {
10615
- addHandler(
10616
- el,
10617
- ("update:" + (hyphenate(name))),
10618
- syncGen,
10619
- null,
10620
- false,
10621
- warn$2,
10622
- list[i]
10623
- );
10624
- }
10625
- } else {
10626
- // handler w/ dynamic event name
10627
- addHandler(
10628
- el,
10629
- ("\"update:\"+(" + name + ")"),
10630
- syncGen,
10631
- null,
10632
- false,
10633
- warn$2,
10634
- list[i],
10635
- true // dynamic
10636
- );
10637
- }
10638
- }
10639
- }
10640
- if ((modifiers && modifiers.prop) || (
10641
- !el.component && platformMustUseProp(el.tag, el.attrsMap.type, name)
10642
- )) {
10643
- addProp(el, name, value, list[i], isDynamic);
10644
- } else {
10645
- addAttr(el, name, value, list[i], isDynamic);
10646
- }
10647
- } else if (onRE.test(name)) { // v-on
10648
- name = name.replace(onRE, '');
10649
- isDynamic = dynamicArgRE.test(name);
10650
- if (isDynamic) {
10651
- name = name.slice(1, -1);
10652
- }
10653
- addHandler(el, name, value, modifiers, false, warn$2, list[i], isDynamic);
10654
- } else { // normal directives
10655
- name = name.replace(dirRE, '');
10656
- // parse arg
10657
- var argMatch = name.match(argRE);
10658
- var arg = argMatch && argMatch[1];
10659
- isDynamic = false;
10660
- if (arg) {
10661
- name = name.slice(0, -(arg.length + 1));
10662
- if (dynamicArgRE.test(arg)) {
10663
- arg = arg.slice(1, -1);
10664
- isDynamic = true;
10665
- }
10666
- }
10667
- addDirective(el, name, rawName, value, arg, isDynamic, modifiers, list[i]);
10668
- if (process.env.NODE_ENV !== 'production' && name === 'model') {
10669
- checkForAliasModel(el, value);
10670
- }
10671
- }
10672
- } else {
10673
- // literal attribute
10674
- if (process.env.NODE_ENV !== 'production') {
10675
- var res = parseText(value, delimiters);
10676
- if (res) {
10677
- warn$2(
10678
- name + "=\"" + value + "\": " +
10679
- 'Interpolation inside attributes has been removed. ' +
10680
- 'Use v-bind or the colon shorthand instead. For example, ' +
10681
- 'instead of <div id="{{ val }}">, use <div :id="val">.',
10682
- list[i]
10683
- );
10684
- }
10685
- }
10686
- addAttr(el, name, JSON.stringify(value), list[i]);
10687
- // #6887 firefox doesn't update muted state if set via attribute
10688
- // even immediately after element creation
10689
- if (!el.component &&
10690
- name === 'muted' &&
10691
- platformMustUseProp(el.tag, el.attrsMap.type, name)) {
10692
- addProp(el, name, 'true', list[i]);
10693
- }
10694
- }
10695
- }
10696
- }
10697
-
10698
- function checkInFor (el) {
10699
- var parent = el;
10700
- while (parent) {
10701
- if (parent.for !== undefined) {
10702
- return true
10703
- }
10704
- parent = parent.parent;
10705
- }
10706
- return false
10707
- }
10708
-
10709
- function parseModifiers (name) {
10710
- var match = name.match(modifierRE);
10711
- if (match) {
10712
- var ret = {};
10713
- match.forEach(function (m) { ret[m.slice(1)] = true; });
10714
- return ret
10715
- }
10716
- }
10717
-
10718
- function makeAttrsMap (attrs) {
10719
- var map = {};
10720
- for (var i = 0, l = attrs.length; i < l; i++) {
10721
- if (
10722
- process.env.NODE_ENV !== 'production' &&
10723
- map[attrs[i].name] && !isIE && !isEdge
10724
- ) {
10725
- warn$2('duplicate attribute: ' + attrs[i].name, attrs[i]);
10726
- }
10727
- map[attrs[i].name] = attrs[i].value;
10728
- }
10729
- return map
10730
- }
10731
-
10732
- // for script (e.g. type="x/template") or style, do not decode content
10733
- function isTextTag (el) {
10734
- return el.tag === 'script' || el.tag === 'style'
10735
- }
10736
-
10737
- function isForbiddenTag (el) {
10738
- return (
10739
- el.tag === 'style' ||
10740
- (el.tag === 'script' && (
10741
- !el.attrsMap.type ||
10742
- el.attrsMap.type === 'text/javascript'
10743
- ))
10744
- )
10745
- }
10746
-
10747
- var ieNSBug = /^xmlns:NS\d+/;
10748
- var ieNSPrefix = /^NS\d+:/;
10749
-
10750
- /* istanbul ignore next */
10751
- function guardIESVGBug (attrs) {
10752
- var res = [];
10753
- for (var i = 0; i < attrs.length; i++) {
10754
- var attr = attrs[i];
10755
- if (!ieNSBug.test(attr.name)) {
10756
- attr.name = attr.name.replace(ieNSPrefix, '');
10757
- res.push(attr);
10758
- }
10759
- }
10760
- return res
10761
- }
10762
-
10763
- function checkForAliasModel (el, value) {
10764
- var _el = el;
10765
- while (_el) {
10766
- if (_el.for && _el.alias === value) {
10767
- warn$2(
10768
- "<" + (el.tag) + " v-model=\"" + value + "\">: " +
10769
- "You are binding v-model directly to a v-for iteration alias. " +
10770
- "This will not be able to modify the v-for source array because " +
10771
- "writing to the alias is like modifying a function local variable. " +
10772
- "Consider using an array of objects and use v-model on an object property instead.",
10773
- el.rawAttrsMap['v-model']
10774
- );
10775
- }
10776
- _el = _el.parent;
10777
- }
10778
- }
10779
-
10780
- /* */
10781
-
10782
- function preTransformNode (el, options) {
10783
- if (el.tag === 'input') {
10784
- var map = el.attrsMap;
10785
- if (!map['v-model']) {
10786
- return
10787
- }
10788
-
10789
- var typeBinding;
10790
- if (map[':type'] || map['v-bind:type']) {
10791
- typeBinding = getBindingAttr(el, 'type');
10792
- }
10793
- if (!map.type && !typeBinding && map['v-bind']) {
10794
- typeBinding = "(" + (map['v-bind']) + ").type";
10795
- }
10796
-
10797
- if (typeBinding) {
10798
- var ifCondition = getAndRemoveAttr(el, 'v-if', true);
10799
- var ifConditionExtra = ifCondition ? ("&&(" + ifCondition + ")") : "";
10800
- var hasElse = getAndRemoveAttr(el, 'v-else', true) != null;
10801
- var elseIfCondition = getAndRemoveAttr(el, 'v-else-if', true);
10802
- // 1. checkbox
10803
- var branch0 = cloneASTElement(el);
10804
- // process for on the main node
10805
- processFor(branch0);
10806
- addRawAttr(branch0, 'type', 'checkbox');
10807
- processElement(branch0, options);
10808
- branch0.processed = true; // prevent it from double-processed
10809
- branch0.if = "(" + typeBinding + ")==='checkbox'" + ifConditionExtra;
10810
- addIfCondition(branch0, {
10811
- exp: branch0.if,
10812
- block: branch0
10813
- });
10814
- // 2. add radio else-if condition
10815
- var branch1 = cloneASTElement(el);
10816
- getAndRemoveAttr(branch1, 'v-for', true);
10817
- addRawAttr(branch1, 'type', 'radio');
10818
- processElement(branch1, options);
10819
- addIfCondition(branch0, {
10820
- exp: "(" + typeBinding + ")==='radio'" + ifConditionExtra,
10821
- block: branch1
10822
- });
10823
- // 3. other
10824
- var branch2 = cloneASTElement(el);
10825
- getAndRemoveAttr(branch2, 'v-for', true);
10826
- addRawAttr(branch2, ':type', typeBinding);
10827
- processElement(branch2, options);
10828
- addIfCondition(branch0, {
10829
- exp: ifCondition,
10830
- block: branch2
10831
- });
10832
-
10833
- if (hasElse) {
10834
- branch0.else = true;
10835
- } else if (elseIfCondition) {
10836
- branch0.elseif = elseIfCondition;
10837
- }
10838
-
10839
- return branch0
10840
- }
10841
- }
10842
- }
10843
-
10844
- function cloneASTElement (el) {
10845
- return createASTElement(el.tag, el.attrsList.slice(), el.parent)
10846
- }
10847
-
10848
- var model$1 = {
10849
- preTransformNode: preTransformNode
10850
- };
10851
-
10852
- var modules$1 = [
10853
- klass$1,
10854
- style$1,
10855
- model$1
10856
- ];
10857
-
10858
- /* */
10859
-
10860
- function text (el, dir) {
10861
- if (dir.value) {
10862
- addProp(el, 'textContent', ("_s(" + (dir.value) + ")"), dir);
10863
- }
10864
- }
10865
-
10866
- /* */
10867
-
10868
- function html (el, dir) {
10869
- if (dir.value) {
10870
- addProp(el, 'innerHTML', ("_s(" + (dir.value) + ")"), dir);
10871
- }
10872
- }
10873
-
10874
- var directives$1 = {
10875
- model: model,
10876
- text: text,
10877
- html: html
10878
- };
10879
-
10880
- /* */
10881
-
10882
- var baseOptions = {
10883
- expectHTML: true,
10884
- modules: modules$1,
10885
- directives: directives$1,
10886
- isPreTag: isPreTag,
10887
- isUnaryTag: isUnaryTag,
10888
- mustUseProp: mustUseProp,
10889
- canBeLeftOpenTag: canBeLeftOpenTag,
10890
- isReservedTag: isReservedTag,
10891
- getTagNamespace: getTagNamespace,
10892
- staticKeys: genStaticKeys(modules$1)
10893
- };
10894
-
10895
- /* */
10896
-
10897
- var isStaticKey;
10898
- var isPlatformReservedTag;
10899
-
10900
- var genStaticKeysCached = cached(genStaticKeys$1);
10901
-
10902
- /**
10903
- * Goal of the optimizer: walk the generated template AST tree
10904
- * and detect sub-trees that are purely static, i.e. parts of
10905
- * the DOM that never needs to change.
10906
- *
10907
- * Once we detect these sub-trees, we can:
10908
- *
10909
- * 1. Hoist them into constants, so that we no longer need to
10910
- * create fresh nodes for them on each re-render;
10911
- * 2. Completely skip them in the patching process.
10912
- */
10913
- function optimize (root, options) {
10914
- if (!root) { return }
10915
- isStaticKey = genStaticKeysCached(options.staticKeys || '');
10916
- isPlatformReservedTag = options.isReservedTag || no;
10917
- // first pass: mark all non-static nodes.
10918
- markStatic$1(root);
10919
- // second pass: mark static roots.
10920
- markStaticRoots(root, false);
10921
- }
10922
-
10923
- function genStaticKeys$1 (keys) {
10924
- return makeMap(
10925
- 'type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap' +
10926
- (keys ? ',' + keys : '')
10927
- )
10928
- }
10929
-
10930
- function markStatic$1 (node) {
10931
- node.static = isStatic(node);
10932
- if (node.type === 1) {
10933
- // do not make component slot content static. this avoids
10934
- // 1. components not able to mutate slot nodes
10935
- // 2. static slot content fails for hot-reloading
10936
- if (
10937
- !isPlatformReservedTag(node.tag) &&
10938
- node.tag !== 'slot' &&
10939
- node.attrsMap['inline-template'] == null
10940
- ) {
10941
- return
10942
- }
10943
- for (var i = 0, l = node.children.length; i < l; i++) {
10944
- var child = node.children[i];
10945
- markStatic$1(child);
10946
- if (!child.static) {
10947
- node.static = false;
10948
- }
10949
- }
10950
- if (node.ifConditions) {
10951
- for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {
10952
- var block = node.ifConditions[i$1].block;
10953
- markStatic$1(block);
10954
- if (!block.static) {
10955
- node.static = false;
10956
- }
10957
- }
10958
- }
10959
- }
10960
- }
10961
-
10962
- function markStaticRoots (node, isInFor) {
10963
- if (node.type === 1) {
10964
- if (node.static || node.once) {
10965
- node.staticInFor = isInFor;
10966
- }
10967
- // For a node to qualify as a static root, it should have children that
10968
- // are not just static text. Otherwise the cost of hoisting out will
10969
- // outweigh the benefits and it's better off to just always render it fresh.
10970
- if (node.static && node.children.length && !(
10971
- node.children.length === 1 &&
10972
- node.children[0].type === 3
10973
- )) {
10974
- node.staticRoot = true;
10975
- return
10976
- } else {
10977
- node.staticRoot = false;
10978
- }
10979
- if (node.children) {
10980
- for (var i = 0, l = node.children.length; i < l; i++) {
10981
- markStaticRoots(node.children[i], isInFor || !!node.for);
10982
- }
10983
- }
10984
- if (node.ifConditions) {
10985
- for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {
10986
- markStaticRoots(node.ifConditions[i$1].block, isInFor);
10987
- }
10988
- }
10989
- }
10990
- }
10991
-
10992
- function isStatic (node) {
10993
- if (node.type === 2) { // expression
10994
- return false
10995
- }
10996
- if (node.type === 3) { // text
10997
- return true
10998
- }
10999
- return !!(node.pre || (
11000
- !node.hasBindings && // no dynamic bindings
11001
- !node.if && !node.for && // not v-if or v-for or v-else
11002
- !isBuiltInTag(node.tag) && // not a built-in
11003
- isPlatformReservedTag(node.tag) && // not a component
11004
- !isDirectChildOfTemplateFor(node) &&
11005
- Object.keys(node).every(isStaticKey)
11006
- ))
11007
- }
11008
-
11009
- function isDirectChildOfTemplateFor (node) {
11010
- while (node.parent) {
11011
- node = node.parent;
11012
- if (node.tag !== 'template') {
11013
- return false
11014
- }
11015
- if (node.for) {
11016
- return true
11017
- }
11018
- }
11019
- return false
11020
- }
11021
-
11022
- /* */
11023
-
11024
- var fnExpRE = /^([\w$_]+|\([^)]*?\))\s*=>|^function(?:\s+[\w$]+)?\s*\(/;
11025
- var fnInvokeRE = /\([^)]*?\);*$/;
11026
- var simplePathRE = /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/;
11027
-
11028
- // KeyboardEvent.keyCode aliases
11029
- var keyCodes = {
11030
- esc: 27,
11031
- tab: 9,
11032
- enter: 13,
11033
- space: 32,
11034
- up: 38,
11035
- left: 37,
11036
- right: 39,
11037
- down: 40,
11038
- 'delete': [8, 46]
11039
- };
11040
-
11041
- // KeyboardEvent.key aliases
11042
- var keyNames = {
11043
- // #7880: IE11 and Edge use `Esc` for Escape key name.
11044
- esc: ['Esc', 'Escape'],
11045
- tab: 'Tab',
11046
- enter: 'Enter',
11047
- // #9112: IE11 uses `Spacebar` for Space key name.
11048
- space: [' ', 'Spacebar'],
11049
- // #7806: IE11 uses key names without `Arrow` prefix for arrow keys.
11050
- up: ['Up', 'ArrowUp'],
11051
- left: ['Left', 'ArrowLeft'],
11052
- right: ['Right', 'ArrowRight'],
11053
- down: ['Down', 'ArrowDown'],
11054
- // #9112: IE11 uses `Del` for Delete key name.
11055
- 'delete': ['Backspace', 'Delete', 'Del']
11056
- };
11057
-
11058
- // #4868: modifiers that prevent the execution of the listener
11059
- // need to explicitly return null so that we can determine whether to remove
11060
- // the listener for .once
11061
- var genGuard = function (condition) { return ("if(" + condition + ")return null;"); };
11062
-
11063
- var modifierCode = {
11064
- stop: '$event.stopPropagation();',
11065
- prevent: '$event.preventDefault();',
11066
- self: genGuard("$event.target !== $event.currentTarget"),
11067
- ctrl: genGuard("!$event.ctrlKey"),
11068
- shift: genGuard("!$event.shiftKey"),
11069
- alt: genGuard("!$event.altKey"),
11070
- meta: genGuard("!$event.metaKey"),
11071
- left: genGuard("'button' in $event && $event.button !== 0"),
11072
- middle: genGuard("'button' in $event && $event.button !== 1"),
11073
- right: genGuard("'button' in $event && $event.button !== 2")
11074
- };
11075
-
11076
- function genHandlers (
11077
- events,
11078
- isNative
11079
- ) {
11080
- var prefix = isNative ? 'nativeOn:' : 'on:';
11081
- var staticHandlers = "";
11082
- var dynamicHandlers = "";
11083
- for (var name in events) {
11084
- var handlerCode = genHandler(events[name]);
11085
- if (events[name] && events[name].dynamic) {
11086
- dynamicHandlers += name + "," + handlerCode + ",";
11087
- } else {
11088
- staticHandlers += "\"" + name + "\":" + handlerCode + ",";
11089
- }
11090
- }
11091
- staticHandlers = "{" + (staticHandlers.slice(0, -1)) + "}";
11092
- if (dynamicHandlers) {
11093
- return prefix + "_d(" + staticHandlers + ",[" + (dynamicHandlers.slice(0, -1)) + "])"
11094
- } else {
11095
- return prefix + staticHandlers
11096
- }
11097
- }
11098
-
11099
- function genHandler (handler) {
11100
- if (!handler) {
11101
- return 'function(){}'
11102
- }
11103
-
11104
- if (Array.isArray(handler)) {
11105
- return ("[" + (handler.map(function (handler) { return genHandler(handler); }).join(',')) + "]")
11106
- }
11107
-
11108
- var isMethodPath = simplePathRE.test(handler.value);
11109
- var isFunctionExpression = fnExpRE.test(handler.value);
11110
- var isFunctionInvocation = simplePathRE.test(handler.value.replace(fnInvokeRE, ''));
11111
-
11112
- if (!handler.modifiers) {
11113
- if (isMethodPath || isFunctionExpression) {
11114
- return handler.value
11115
- }
11116
- return ("function($event){" + (isFunctionInvocation ? ("return " + (handler.value)) : handler.value) + "}") // inline statement
11117
- } else {
11118
- var code = '';
11119
- var genModifierCode = '';
11120
- var keys = [];
11121
- for (var key in handler.modifiers) {
11122
- if (modifierCode[key]) {
11123
- genModifierCode += modifierCode[key];
11124
- // left/right
11125
- if (keyCodes[key]) {
11126
- keys.push(key);
11127
- }
11128
- } else if (key === 'exact') {
11129
- var modifiers = (handler.modifiers);
11130
- genModifierCode += genGuard(
11131
- ['ctrl', 'shift', 'alt', 'meta']
11132
- .filter(function (keyModifier) { return !modifiers[keyModifier]; })
11133
- .map(function (keyModifier) { return ("$event." + keyModifier + "Key"); })
11134
- .join('||')
11135
- );
11136
- } else {
11137
- keys.push(key);
11138
- }
11139
- }
11140
- if (keys.length) {
11141
- code += genKeyFilter(keys);
11142
- }
11143
- // Make sure modifiers like prevent and stop get executed after key filtering
11144
- if (genModifierCode) {
11145
- code += genModifierCode;
11146
- }
11147
- var handlerCode = isMethodPath
11148
- ? ("return " + (handler.value) + ".apply(null, arguments)")
11149
- : isFunctionExpression
11150
- ? ("return (" + (handler.value) + ").apply(null, arguments)")
11151
- : isFunctionInvocation
11152
- ? ("return " + (handler.value))
11153
- : handler.value;
11154
- return ("function($event){" + code + handlerCode + "}")
11155
- }
11156
- }
11157
-
11158
- function genKeyFilter (keys) {
11159
- return (
11160
- // make sure the key filters only apply to KeyboardEvents
11161
- // #9441: can't use 'keyCode' in $event because Chrome autofill fires fake
11162
- // key events that do not have keyCode property...
11163
- "if(!$event.type.indexOf('key')&&" +
11164
- (keys.map(genFilterCode).join('&&')) + ")return null;"
11165
- )
11166
- }
11167
-
11168
- function genFilterCode (key) {
11169
- var keyVal = parseInt(key, 10);
11170
- if (keyVal) {
11171
- return ("$event.keyCode!==" + keyVal)
11172
- }
11173
- var keyCode = keyCodes[key];
11174
- var keyName = keyNames[key];
11175
- return (
11176
- "_k($event.keyCode," +
11177
- (JSON.stringify(key)) + "," +
11178
- (JSON.stringify(keyCode)) + "," +
11179
- "$event.key," +
11180
- "" + (JSON.stringify(keyName)) +
11181
- ")"
11182
- )
11183
- }
11184
-
11185
- /* */
11186
-
11187
- function on (el, dir) {
11188
- if (process.env.NODE_ENV !== 'production' && dir.modifiers) {
11189
- warn("v-on without argument does not support modifiers.");
11190
- }
11191
- el.wrapListeners = function (code) { return ("_g(" + code + "," + (dir.value) + ")"); };
11192
- }
11193
-
11194
- /* */
11195
-
11196
- function bind$1 (el, dir) {
11197
- el.wrapData = function (code) {
11198
- return ("_b(" + code + ",'" + (el.tag) + "'," + (dir.value) + "," + (dir.modifiers && dir.modifiers.prop ? 'true' : 'false') + (dir.modifiers && dir.modifiers.sync ? ',true' : '') + ")")
11199
- };
11200
- }
11201
-
11202
- /* */
11203
-
11204
- var baseDirectives = {
11205
- on: on,
11206
- bind: bind$1,
11207
- cloak: noop
11208
- };
11209
-
11210
- /* */
11211
-
11212
-
11213
-
11214
-
11215
-
11216
- var CodegenState = function CodegenState (options) {
11217
- this.options = options;
11218
- this.warn = options.warn || baseWarn;
11219
- this.transforms = pluckModuleFunction(options.modules, 'transformCode');
11220
- this.dataGenFns = pluckModuleFunction(options.modules, 'genData');
11221
- this.directives = extend(extend({}, baseDirectives), options.directives);
11222
- var isReservedTag = options.isReservedTag || no;
11223
- this.maybeComponent = function (el) { return !!el.component || !isReservedTag(el.tag); };
11224
- this.onceId = 0;
11225
- this.staticRenderFns = [];
11226
- this.pre = false;
11227
- };
11228
-
11229
-
11230
-
11231
- function generate (
11232
- ast,
11233
- options
11234
- ) {
11235
- var state = new CodegenState(options);
11236
- // fix #11483, Root level <script> tags should not be rendered.
11237
- var code = ast ? (ast.tag === 'script' ? 'null' : genElement(ast, state)) : '_c("div")';
11238
- return {
11239
- render: ("with(this){return " + code + "}"),
11240
- staticRenderFns: state.staticRenderFns
11241
- }
11242
- }
11243
-
11244
- function genElement (el, state) {
11245
- if (el.parent) {
11246
- el.pre = el.pre || el.parent.pre;
11247
- }
11248
-
11249
- if (el.staticRoot && !el.staticProcessed) {
11250
- return genStatic(el, state)
11251
- } else if (el.once && !el.onceProcessed) {
11252
- return genOnce(el, state)
11253
- } else if (el.for && !el.forProcessed) {
11254
- return genFor(el, state)
11255
- } else if (el.if && !el.ifProcessed) {
11256
- return genIf(el, state)
11257
- } else if (el.tag === 'template' && !el.slotTarget && !state.pre) {
11258
- return genChildren(el, state) || 'void 0'
11259
- } else if (el.tag === 'slot') {
11260
- return genSlot(el, state)
11261
- } else {
11262
- // component or element
11263
- var code;
11264
- if (el.component) {
11265
- code = genComponent(el.component, el, state);
11266
- } else {
11267
- var data;
11268
- if (!el.plain || (el.pre && state.maybeComponent(el))) {
11269
- data = genData$2(el, state);
11270
- }
11271
-
11272
- var children = el.inlineTemplate ? null : genChildren(el, state, true);
11273
- code = "_c('" + (el.tag) + "'" + (data ? ("," + data) : '') + (children ? ("," + children) : '') + ")";
11274
- }
11275
- // module transforms
11276
- for (var i = 0; i < state.transforms.length; i++) {
11277
- code = state.transforms[i](el, code);
11278
- }
11279
- return code
11280
- }
11281
- }
11282
-
11283
- // hoist static sub-trees out
11284
- function genStatic (el, state) {
11285
- el.staticProcessed = true;
11286
- // Some elements (templates) need to behave differently inside of a v-pre
11287
- // node. All pre nodes are static roots, so we can use this as a location to
11288
- // wrap a state change and reset it upon exiting the pre node.
11289
- var originalPreState = state.pre;
11290
- if (el.pre) {
11291
- state.pre = el.pre;
11292
- }
11293
- state.staticRenderFns.push(("with(this){return " + (genElement(el, state)) + "}"));
11294
- state.pre = originalPreState;
11295
- return ("_m(" + (state.staticRenderFns.length - 1) + (el.staticInFor ? ',true' : '') + ")")
11296
- }
11297
-
11298
- // v-once
11299
- function genOnce (el, state) {
11300
- el.onceProcessed = true;
11301
- if (el.if && !el.ifProcessed) {
11302
- return genIf(el, state)
11303
- } else if (el.staticInFor) {
11304
- var key = '';
11305
- var parent = el.parent;
11306
- while (parent) {
11307
- if (parent.for) {
11308
- key = parent.key;
11309
- break
11310
- }
11311
- parent = parent.parent;
11312
- }
11313
- if (!key) {
11314
- process.env.NODE_ENV !== 'production' && state.warn(
11315
- "v-once can only be used inside v-for that is keyed. ",
11316
- el.rawAttrsMap['v-once']
11317
- );
11318
- return genElement(el, state)
11319
- }
11320
- return ("_o(" + (genElement(el, state)) + "," + (state.onceId++) + "," + key + ")")
11321
- } else {
11322
- return genStatic(el, state)
11323
- }
11324
- }
11325
-
11326
- function genIf (
11327
- el,
11328
- state,
11329
- altGen,
11330
- altEmpty
11331
- ) {
11332
- el.ifProcessed = true; // avoid recursion
11333
- return genIfConditions(el.ifConditions.slice(), state, altGen, altEmpty)
11334
- }
11335
-
11336
- function genIfConditions (
11337
- conditions,
11338
- state,
11339
- altGen,
11340
- altEmpty
11341
- ) {
11342
- if (!conditions.length) {
11343
- return altEmpty || '_e()'
11344
- }
11345
-
11346
- var condition = conditions.shift();
11347
- if (condition.exp) {
11348
- return ("(" + (condition.exp) + ")?" + (genTernaryExp(condition.block)) + ":" + (genIfConditions(conditions, state, altGen, altEmpty)))
11349
- } else {
11350
- return ("" + (genTernaryExp(condition.block)))
11351
- }
11352
-
11353
- // v-if with v-once should generate code like (a)?_m(0):_m(1)
11354
- function genTernaryExp (el) {
11355
- return altGen
11356
- ? altGen(el, state)
11357
- : el.once
11358
- ? genOnce(el, state)
11359
- : genElement(el, state)
11360
- }
11361
- }
11362
-
11363
- function genFor (
11364
- el,
11365
- state,
11366
- altGen,
11367
- altHelper
11368
- ) {
11369
- var exp = el.for;
11370
- var alias = el.alias;
11371
- var iterator1 = el.iterator1 ? ("," + (el.iterator1)) : '';
11372
- var iterator2 = el.iterator2 ? ("," + (el.iterator2)) : '';
11373
-
11374
- if (process.env.NODE_ENV !== 'production' &&
11375
- state.maybeComponent(el) &&
11376
- el.tag !== 'slot' &&
11377
- el.tag !== 'template' &&
11378
- !el.key
11379
- ) {
11380
- state.warn(
11381
- "<" + (el.tag) + " v-for=\"" + alias + " in " + exp + "\">: component lists rendered with " +
11382
- "v-for should have explicit keys. " +
11383
- "See https://vuejs.org/guide/list.html#key for more info.",
11384
- el.rawAttrsMap['v-for'],
11385
- true /* tip */
11386
- );
11387
- }
11388
-
11389
- el.forProcessed = true; // avoid recursion
11390
- return (altHelper || '_l') + "((" + exp + ")," +
11391
- "function(" + alias + iterator1 + iterator2 + "){" +
11392
- "return " + ((altGen || genElement)(el, state)) +
11393
- '})'
11394
- }
11395
-
11396
- function genData$2 (el, state) {
11397
- var data = '{';
11398
-
11399
- // directives first.
11400
- // directives may mutate the el's other properties before they are generated.
11401
- var dirs = genDirectives(el, state);
11402
- if (dirs) { data += dirs + ','; }
11403
-
11404
- // key
11405
- if (el.key) {
11406
- data += "key:" + (el.key) + ",";
11407
- }
11408
- // ref
11409
- if (el.ref) {
11410
- data += "ref:" + (el.ref) + ",";
11411
- }
11412
- if (el.refInFor) {
11413
- data += "refInFor:true,";
11414
- }
11415
- // pre
11416
- if (el.pre) {
11417
- data += "pre:true,";
11418
- }
11419
- // record original tag name for components using "is" attribute
11420
- if (el.component) {
11421
- data += "tag:\"" + (el.tag) + "\",";
11422
- }
11423
- // module data generation functions
11424
- for (var i = 0; i < state.dataGenFns.length; i++) {
11425
- data += state.dataGenFns[i](el);
11426
- }
11427
- // attributes
11428
- if (el.attrs) {
11429
- data += "attrs:" + (genProps(el.attrs)) + ",";
11430
- }
11431
- // DOM props
11432
- if (el.props) {
11433
- data += "domProps:" + (genProps(el.props)) + ",";
11434
- }
11435
- // event handlers
11436
- if (el.events) {
11437
- data += (genHandlers(el.events, false)) + ",";
11438
- }
11439
- if (el.nativeEvents) {
11440
- data += (genHandlers(el.nativeEvents, true)) + ",";
11441
- }
11442
- // slot target
11443
- // only for non-scoped slots
11444
- if (el.slotTarget && !el.slotScope) {
11445
- data += "slot:" + (el.slotTarget) + ",";
11446
- }
11447
- // scoped slots
11448
- if (el.scopedSlots) {
11449
- data += (genScopedSlots(el, el.scopedSlots, state)) + ",";
11450
- }
11451
- // component v-model
11452
- if (el.model) {
11453
- data += "model:{value:" + (el.model.value) + ",callback:" + (el.model.callback) + ",expression:" + (el.model.expression) + "},";
11454
- }
11455
- // inline-template
11456
- if (el.inlineTemplate) {
11457
- var inlineTemplate = genInlineTemplate(el, state);
11458
- if (inlineTemplate) {
11459
- data += inlineTemplate + ",";
11460
- }
11461
- }
11462
- data = data.replace(/,$/, '') + '}';
11463
- // v-bind dynamic argument wrap
11464
- // v-bind with dynamic arguments must be applied using the same v-bind object
11465
- // merge helper so that class/style/mustUseProp attrs are handled correctly.
11466
- if (el.dynamicAttrs) {
11467
- data = "_b(" + data + ",\"" + (el.tag) + "\"," + (genProps(el.dynamicAttrs)) + ")";
11468
- }
11469
- // v-bind data wrap
11470
- if (el.wrapData) {
11471
- data = el.wrapData(data);
11472
- }
11473
- // v-on data wrap
11474
- if (el.wrapListeners) {
11475
- data = el.wrapListeners(data);
11476
- }
11477
- return data
11478
- }
11479
-
11480
- function genDirectives (el, state) {
11481
- var dirs = el.directives;
11482
- if (!dirs) { return }
11483
- var res = 'directives:[';
11484
- var hasRuntime = false;
11485
- var i, l, dir, needRuntime;
11486
- for (i = 0, l = dirs.length; i < l; i++) {
11487
- dir = dirs[i];
11488
- needRuntime = true;
11489
- var gen = state.directives[dir.name];
11490
- if (gen) {
11491
- // compile-time directive that manipulates AST.
11492
- // returns true if it also needs a runtime counterpart.
11493
- needRuntime = !!gen(el, dir, state.warn);
11494
- }
11495
- if (needRuntime) {
11496
- hasRuntime = true;
11497
- res += "{name:\"" + (dir.name) + "\",rawName:\"" + (dir.rawName) + "\"" + (dir.value ? (",value:(" + (dir.value) + "),expression:" + (JSON.stringify(dir.value))) : '') + (dir.arg ? (",arg:" + (dir.isDynamicArg ? dir.arg : ("\"" + (dir.arg) + "\""))) : '') + (dir.modifiers ? (",modifiers:" + (JSON.stringify(dir.modifiers))) : '') + "},";
11498
- }
11499
- }
11500
- if (hasRuntime) {
11501
- return res.slice(0, -1) + ']'
11502
- }
11503
- }
11504
-
11505
- function genInlineTemplate (el, state) {
11506
- var ast = el.children[0];
11507
- if (process.env.NODE_ENV !== 'production' && (
11508
- el.children.length !== 1 || ast.type !== 1
11509
- )) {
11510
- state.warn(
11511
- 'Inline-template components must have exactly one child element.',
11512
- { start: el.start }
11513
- );
11514
- }
11515
- if (ast && ast.type === 1) {
11516
- var inlineRenderFns = generate(ast, state.options);
11517
- return ("inlineTemplate:{render:function(){" + (inlineRenderFns.render) + "},staticRenderFns:[" + (inlineRenderFns.staticRenderFns.map(function (code) { return ("function(){" + code + "}"); }).join(',')) + "]}")
11518
- }
11519
- }
11520
-
11521
- function genScopedSlots (
11522
- el,
11523
- slots,
11524
- state
11525
- ) {
11526
- // by default scoped slots are considered "stable", this allows child
11527
- // components with only scoped slots to skip forced updates from parent.
11528
- // but in some cases we have to bail-out of this optimization
11529
- // for example if the slot contains dynamic names, has v-if or v-for on them...
11530
- var needsForceUpdate = el.for || Object.keys(slots).some(function (key) {
11531
- var slot = slots[key];
11532
- return (
11533
- slot.slotTargetDynamic ||
11534
- slot.if ||
11535
- slot.for ||
11536
- containsSlotChild(slot) // is passing down slot from parent which may be dynamic
11537
- )
11538
- });
11539
-
11540
- // #9534: if a component with scoped slots is inside a conditional branch,
11541
- // it's possible for the same component to be reused but with different
11542
- // compiled slot content. To avoid that, we generate a unique key based on
11543
- // the generated code of all the slot contents.
11544
- var needsKey = !!el.if;
11545
-
11546
- // OR when it is inside another scoped slot or v-for (the reactivity may be
11547
- // disconnected due to the intermediate scope variable)
11548
- // #9438, #9506
11549
- // TODO: this can be further optimized by properly analyzing in-scope bindings
11550
- // and skip force updating ones that do not actually use scope variables.
11551
- if (!needsForceUpdate) {
11552
- var parent = el.parent;
11553
- while (parent) {
11554
- if (
11555
- (parent.slotScope && parent.slotScope !== emptySlotScopeToken) ||
11556
- parent.for
11557
- ) {
11558
- needsForceUpdate = true;
11559
- break
11560
- }
11561
- if (parent.if) {
11562
- needsKey = true;
11563
- }
11564
- parent = parent.parent;
11565
- }
11566
- }
11567
-
11568
- var generatedSlots = Object.keys(slots)
11569
- .map(function (key) { return genScopedSlot(slots[key], state); })
11570
- .join(',');
11571
-
11572
- return ("scopedSlots:_u([" + generatedSlots + "]" + (needsForceUpdate ? ",null,true" : "") + (!needsForceUpdate && needsKey ? (",null,false," + (hash(generatedSlots))) : "") + ")")
11573
- }
11574
-
11575
- function hash(str) {
11576
- var hash = 5381;
11577
- var i = str.length;
11578
- while(i) {
11579
- hash = (hash * 33) ^ str.charCodeAt(--i);
11580
- }
11581
- return hash >>> 0
11582
- }
11583
-
11584
- function containsSlotChild (el) {
11585
- if (el.type === 1) {
11586
- if (el.tag === 'slot') {
11587
- return true
11588
- }
11589
- return el.children.some(containsSlotChild)
11590
- }
11591
- return false
11592
- }
11593
-
11594
- function genScopedSlot (
11595
- el,
11596
- state
11597
- ) {
11598
- var isLegacySyntax = el.attrsMap['slot-scope'];
11599
- if (el.if && !el.ifProcessed && !isLegacySyntax) {
11600
- return genIf(el, state, genScopedSlot, "null")
11601
- }
11602
- if (el.for && !el.forProcessed) {
11603
- return genFor(el, state, genScopedSlot)
11604
- }
11605
- var slotScope = el.slotScope === emptySlotScopeToken
11606
- ? ""
11607
- : String(el.slotScope);
11608
- var fn = "function(" + slotScope + "){" +
11609
- "return " + (el.tag === 'template'
11610
- ? el.if && isLegacySyntax
11611
- ? ("(" + (el.if) + ")?" + (genChildren(el, state) || 'undefined') + ":undefined")
11612
- : genChildren(el, state) || 'undefined'
11613
- : genElement(el, state)) + "}";
11614
- // reverse proxy v-slot without scope on this.$slots
11615
- var reverseProxy = slotScope ? "" : ",proxy:true";
11616
- return ("{key:" + (el.slotTarget || "\"default\"") + ",fn:" + fn + reverseProxy + "}")
11617
- }
11618
-
11619
- function genChildren (
11620
- el,
11621
- state,
11622
- checkSkip,
11623
- altGenElement,
11624
- altGenNode
11625
- ) {
11626
- var children = el.children;
11627
- if (children.length) {
11628
- var el$1 = children[0];
11629
- // optimize single v-for
11630
- if (children.length === 1 &&
11631
- el$1.for &&
11632
- el$1.tag !== 'template' &&
11633
- el$1.tag !== 'slot'
11634
- ) {
11635
- var normalizationType = checkSkip
11636
- ? state.maybeComponent(el$1) ? ",1" : ",0"
11637
- : "";
11638
- return ("" + ((altGenElement || genElement)(el$1, state)) + normalizationType)
11639
- }
11640
- var normalizationType$1 = checkSkip
11641
- ? getNormalizationType(children, state.maybeComponent)
11642
- : 0;
11643
- var gen = altGenNode || genNode;
11644
- return ("[" + (children.map(function (c) { return gen(c, state); }).join(',')) + "]" + (normalizationType$1 ? ("," + normalizationType$1) : ''))
11645
- }
11646
- }
11647
-
11648
- // determine the normalization needed for the children array.
11649
- // 0: no normalization needed
11650
- // 1: simple normalization needed (possible 1-level deep nested array)
11651
- // 2: full normalization needed
11652
- function getNormalizationType (
11653
- children,
11654
- maybeComponent
11655
- ) {
11656
- var res = 0;
11657
- for (var i = 0; i < children.length; i++) {
11658
- var el = children[i];
11659
- if (el.type !== 1) {
11660
- continue
11661
- }
11662
- if (needsNormalization(el) ||
11663
- (el.ifConditions && el.ifConditions.some(function (c) { return needsNormalization(c.block); }))) {
11664
- res = 2;
11665
- break
11666
- }
11667
- if (maybeComponent(el) ||
11668
- (el.ifConditions && el.ifConditions.some(function (c) { return maybeComponent(c.block); }))) {
11669
- res = 1;
11670
- }
11671
- }
11672
- return res
11673
- }
11674
-
11675
- function needsNormalization (el) {
11676
- return el.for !== undefined || el.tag === 'template' || el.tag === 'slot'
11677
- }
11678
-
11679
- function genNode (node, state) {
11680
- if (node.type === 1) {
11681
- return genElement(node, state)
11682
- } else if (node.type === 3 && node.isComment) {
11683
- return genComment(node)
11684
- } else {
11685
- return genText(node)
11686
- }
11687
- }
11688
-
11689
- function genText (text) {
11690
- return ("_v(" + (text.type === 2
11691
- ? text.expression // no need for () because already wrapped in _s()
11692
- : transformSpecialNewlines(JSON.stringify(text.text))) + ")")
11693
- }
11694
-
11695
- function genComment (comment) {
11696
- return ("_e(" + (JSON.stringify(comment.text)) + ")")
11697
- }
11698
-
11699
- function genSlot (el, state) {
11700
- var slotName = el.slotName || '"default"';
11701
- var children = genChildren(el, state);
11702
- var res = "_t(" + slotName + (children ? (",function(){return " + children + "}") : '');
11703
- var attrs = el.attrs || el.dynamicAttrs
11704
- ? genProps((el.attrs || []).concat(el.dynamicAttrs || []).map(function (attr) { return ({
11705
- // slot props are camelized
11706
- name: camelize(attr.name),
11707
- value: attr.value,
11708
- dynamic: attr.dynamic
11709
- }); }))
11710
- : null;
11711
- var bind$$1 = el.attrsMap['v-bind'];
11712
- if ((attrs || bind$$1) && !children) {
11713
- res += ",null";
11714
- }
11715
- if (attrs) {
11716
- res += "," + attrs;
11717
- }
11718
- if (bind$$1) {
11719
- res += (attrs ? '' : ',null') + "," + bind$$1;
11720
- }
11721
- return res + ')'
11722
- }
11723
-
11724
- // componentName is el.component, take it as argument to shun flow's pessimistic refinement
11725
- function genComponent (
11726
- componentName,
11727
- el,
11728
- state
11729
- ) {
11730
- var children = el.inlineTemplate ? null : genChildren(el, state, true);
11731
- return ("_c(" + componentName + "," + (genData$2(el, state)) + (children ? ("," + children) : '') + ")")
11732
- }
11733
-
11734
- function genProps (props) {
11735
- var staticProps = "";
11736
- var dynamicProps = "";
11737
- for (var i = 0; i < props.length; i++) {
11738
- var prop = props[i];
11739
- var value = transformSpecialNewlines(prop.value);
11740
- if (prop.dynamic) {
11741
- dynamicProps += (prop.name) + "," + value + ",";
11742
- } else {
11743
- staticProps += "\"" + (prop.name) + "\":" + value + ",";
11744
- }
11745
- }
11746
- staticProps = "{" + (staticProps.slice(0, -1)) + "}";
11747
- if (dynamicProps) {
11748
- return ("_d(" + staticProps + ",[" + (dynamicProps.slice(0, -1)) + "])")
11749
- } else {
11750
- return staticProps
11751
- }
11752
- }
11753
-
11754
- // #3895, #4268
11755
- function transformSpecialNewlines (text) {
11756
- return text
11757
- .replace(/\u2028/g, '\\u2028')
11758
- .replace(/\u2029/g, '\\u2029')
11759
- }
11760
-
11761
- /* */
11762
-
11763
-
11764
-
11765
- // these keywords should not appear inside expressions, but operators like
11766
- // typeof, instanceof and in are allowed
11767
- var prohibitedKeywordRE = new RegExp('\\b' + (
11768
- 'do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,' +
11769
- 'super,throw,while,yield,delete,export,import,return,switch,default,' +
11770
- 'extends,finally,continue,debugger,function,arguments'
11771
- ).split(',').join('\\b|\\b') + '\\b');
11772
-
11773
- // these unary operators should not be used as property/method names
11774
- var unaryOperatorsRE = new RegExp('\\b' + (
11775
- 'delete,typeof,void'
11776
- ).split(',').join('\\s*\\([^\\)]*\\)|\\b') + '\\s*\\([^\\)]*\\)');
11777
-
11778
- // strip strings in expressions
11779
- var stripStringRE = /'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`/g;
11780
-
11781
- // detect problematic expressions in a template
11782
- function detectErrors (ast, warn) {
11783
- if (ast) {
11784
- checkNode(ast, warn);
11785
- }
11786
- }
11787
-
11788
- function checkNode (node, warn) {
11789
- if (node.type === 1) {
11790
- for (var name in node.attrsMap) {
11791
- if (dirRE.test(name)) {
11792
- var value = node.attrsMap[name];
11793
- if (value) {
11794
- var range = node.rawAttrsMap[name];
11795
- if (name === 'v-for') {
11796
- checkFor(node, ("v-for=\"" + value + "\""), warn, range);
11797
- } else if (name === 'v-slot' || name[0] === '#') {
11798
- checkFunctionParameterExpression(value, (name + "=\"" + value + "\""), warn, range);
11799
- } else if (onRE.test(name)) {
11800
- checkEvent(value, (name + "=\"" + value + "\""), warn, range);
11801
- } else {
11802
- checkExpression(value, (name + "=\"" + value + "\""), warn, range);
11803
- }
11804
- }
11805
- }
11806
- }
11807
- if (node.children) {
11808
- for (var i = 0; i < node.children.length; i++) {
11809
- checkNode(node.children[i], warn);
11810
- }
11811
- }
11812
- } else if (node.type === 2) {
11813
- checkExpression(node.expression, node.text, warn, node);
11814
- }
11815
- }
11816
-
11817
- function checkEvent (exp, text, warn, range) {
11818
- var stripped = exp.replace(stripStringRE, '');
11819
- var keywordMatch = stripped.match(unaryOperatorsRE);
11820
- if (keywordMatch && stripped.charAt(keywordMatch.index - 1) !== '$') {
11821
- warn(
11822
- "avoid using JavaScript unary operator as property name: " +
11823
- "\"" + (keywordMatch[0]) + "\" in expression " + (text.trim()),
11824
- range
11825
- );
11826
- }
11827
- checkExpression(exp, text, warn, range);
11828
- }
11829
-
11830
- function checkFor (node, text, warn, range) {
11831
- checkExpression(node.for || '', text, warn, range);
11832
- checkIdentifier(node.alias, 'v-for alias', text, warn, range);
11833
- checkIdentifier(node.iterator1, 'v-for iterator', text, warn, range);
11834
- checkIdentifier(node.iterator2, 'v-for iterator', text, warn, range);
11835
- }
11836
-
11837
- function checkIdentifier (
11838
- ident,
11839
- type,
11840
- text,
11841
- warn,
11842
- range
11843
- ) {
11844
- if (typeof ident === 'string') {
11845
- try {
11846
- new Function(("var " + ident + "=_"));
11847
- } catch (e) {
11848
- warn(("invalid " + type + " \"" + ident + "\" in expression: " + (text.trim())), range);
11849
- }
11850
- }
11851
- }
11852
-
11853
- function checkExpression (exp, text, warn, range) {
11854
- try {
11855
- new Function(("return " + exp));
11856
- } catch (e) {
11857
- var keywordMatch = exp.replace(stripStringRE, '').match(prohibitedKeywordRE);
11858
- if (keywordMatch) {
11859
- warn(
11860
- "avoid using JavaScript keyword as property name: " +
11861
- "\"" + (keywordMatch[0]) + "\"\n Raw expression: " + (text.trim()),
11862
- range
11863
- );
11864
- } else {
11865
- warn(
11866
- "invalid expression: " + (e.message) + " in\n\n" +
11867
- " " + exp + "\n\n" +
11868
- " Raw expression: " + (text.trim()) + "\n",
11869
- range
11870
- );
11871
- }
11872
- }
11873
- }
11874
-
11875
- function checkFunctionParameterExpression (exp, text, warn, range) {
11876
- try {
11877
- new Function(exp, '');
11878
- } catch (e) {
11879
- warn(
11880
- "invalid function parameter expression: " + (e.message) + " in\n\n" +
11881
- " " + exp + "\n\n" +
11882
- " Raw expression: " + (text.trim()) + "\n",
11883
- range
11884
- );
11885
- }
11886
- }
11887
-
11888
- /* */
11889
-
11890
- var range = 2;
11891
-
11892
- function generateCodeFrame (
11893
- source,
11894
- start,
11895
- end
11896
- ) {
11897
- if ( start === void 0 ) start = 0;
11898
- if ( end === void 0 ) end = source.length;
11899
-
11900
- var lines = source.split(/\r?\n/);
11901
- var count = 0;
11902
- var res = [];
11903
- for (var i = 0; i < lines.length; i++) {
11904
- count += lines[i].length + 1;
11905
- if (count >= start) {
11906
- for (var j = i - range; j <= i + range || end > count; j++) {
11907
- if (j < 0 || j >= lines.length) { continue }
11908
- res.push(("" + (j + 1) + (repeat$1(" ", 3 - String(j + 1).length)) + "| " + (lines[j])));
11909
- var lineLength = lines[j].length;
11910
- if (j === i) {
11911
- // push underline
11912
- var pad = start - (count - lineLength) + 1;
11913
- var length = end > count ? lineLength - pad : end - start;
11914
- res.push(" | " + repeat$1(" ", pad) + repeat$1("^", length));
11915
- } else if (j > i) {
11916
- if (end > count) {
11917
- var length$1 = Math.min(end - count, lineLength);
11918
- res.push(" | " + repeat$1("^", length$1));
11919
- }
11920
- count += lineLength + 1;
11921
- }
11922
- }
11923
- break
11924
- }
11925
- }
11926
- return res.join('\n')
11927
- }
11928
-
11929
- function repeat$1 (str, n) {
11930
- var result = '';
11931
- if (n > 0) {
11932
- while (true) { // eslint-disable-line
11933
- if (n & 1) { result += str; }
11934
- n >>>= 1;
11935
- if (n <= 0) { break }
11936
- str += str;
11937
- }
11938
- }
11939
- return result
11940
- }
11941
-
11942
- /* */
11943
-
11944
-
11945
-
11946
- function createFunction (code, errors) {
11947
- try {
11948
- return new Function(code)
11949
- } catch (err) {
11950
- errors.push({ err: err, code: code });
11951
- return noop
11952
- }
11953
  }
11954
 
11955
- function createCompileToFunctionFn (compile) {
11956
- var cache = Object.create(null);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11957
 
11958
- return function compileToFunctions (
11959
- template,
11960
- options,
11961
- vm
11962
- ) {
11963
- options = extend({}, options);
11964
- var warn$$1 = options.warn || warn;
11965
- delete options.warn;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11966
 
11967
- /* istanbul ignore if */
11968
- if (process.env.NODE_ENV !== 'production') {
11969
- // detect possible CSP restriction
11970
- try {
11971
- new Function('return 1');
11972
- } catch (e) {
11973
- if (e.toString().match(/unsafe-eval|CSP/)) {
11974
- warn$$1(
11975
- 'It seems you are using the standalone build of Vue.js in an ' +
11976
- 'environment with Content Security Policy that prohibits unsafe-eval. ' +
11977
- 'The template compiler cannot work in this environment. Consider ' +
11978
- 'relaxing the policy to allow unsafe-eval or pre-compiling your ' +
11979
- 'templates into render functions.'
11980
- );
11981
- }
11982
- }
11983
- }
11984
 
11985
- // check cache
11986
- var key = options.delimiters
11987
- ? String(options.delimiters) + template
11988
- : template;
11989
- if (cache[key]) {
11990
- return cache[key]
11991
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11992
 
11993
- // compile
11994
- var compiled = compile(template, options);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11995
 
11996
- // check compilation errors/tips
11997
- if (process.env.NODE_ENV !== 'production') {
11998
- if (compiled.errors && compiled.errors.length) {
11999
- if (options.outputSourceRange) {
12000
- compiled.errors.forEach(function (e) {
12001
- warn$$1(
12002
- "Error compiling template:\n\n" + (e.msg) + "\n\n" +
12003
- generateCodeFrame(template, e.start, e.end),
12004
- vm
12005
- );
12006
- });
12007
- } else {
12008
- warn$$1(
12009
- "Error compiling template:\n\n" + template + "\n\n" +
12010
- compiled.errors.map(function (e) { return ("- " + e); }).join('\n') + '\n',
12011
- vm
12012
- );
12013
- }
12014
- }
12015
- if (compiled.tips && compiled.tips.length) {
12016
- if (options.outputSourceRange) {
12017
- compiled.tips.forEach(function (e) { return tip(e.msg, vm); });
12018
- } else {
12019
- compiled.tips.forEach(function (msg) { return tip(msg, vm); });
12020
- }
12021
- }
12022
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12023
 
12024
- // turn code into functions
12025
- var res = {};
12026
- var fnGenErrors = [];
12027
- res.render = createFunction(compiled.render, fnGenErrors);
12028
- res.staticRenderFns = compiled.staticRenderFns.map(function (code) {
12029
- return createFunction(code, fnGenErrors)
12030
- });
 
 
 
 
 
 
 
 
12031
 
12032
- // check function generation errors.
12033
- // this should only happen if there is a bug in the compiler itself.
12034
- // mostly for codegen development use
12035
- /* istanbul ignore if */
12036
- if (process.env.NODE_ENV !== 'production') {
12037
- if ((!compiled.errors || !compiled.errors.length) && fnGenErrors.length) {
12038
- warn$$1(
12039
- "Failed to generate render function:\n\n" +
12040
- fnGenErrors.map(function (ref) {
12041
- var err = ref.err;
12042
- var code = ref.code;
12043
-
12044
- return ((err.toString()) + " in\n\n" + code + "\n");
12045
- }).join('\n'),
12046
- vm
12047
- );
12048
- }
12049
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12050
 
12051
- return (cache[key] = res)
12052
- }
12053
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12054
 
12055
- /* */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12056
 
12057
- function createCompilerCreator (baseCompile) {
12058
- return function createCompiler (baseOptions) {
12059
- function compile (
12060
- template,
12061
- options
12062
- ) {
12063
- var finalOptions = Object.create(baseOptions);
12064
- var errors = [];
12065
- var tips = [];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12066
 
12067
- var warn = function (msg, range, tip) {
12068
- (tip ? tips : errors).push(msg);
12069
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12070
 
12071
- if (options) {
12072
- if (process.env.NODE_ENV !== 'production' && options.outputSourceRange) {
12073
- // $flow-disable-line
12074
- var leadingSpaceLength = template.match(/^\s*/)[0].length;
12075
-
12076
- warn = function (msg, range, tip) {
12077
- var data = { msg: msg };
12078
- if (range) {
12079
- if (range.start != null) {
12080
- data.start = range.start + leadingSpaceLength;
12081
- }
12082
- if (range.end != null) {
12083
- data.end = range.end + leadingSpaceLength;
12084
- }
12085
- }
12086
- (tip ? tips : errors).push(data);
12087
- };
12088
- }
12089
- // merge custom modules
12090
- if (options.modules) {
12091
- finalOptions.modules =
12092
- (baseOptions.modules || []).concat(options.modules);
12093
- }
12094
- // merge custom directives
12095
- if (options.directives) {
12096
- finalOptions.directives = extend(
12097
- Object.create(baseOptions.directives || null),
12098
- options.directives
12099
- );
12100
- }
12101
- // copy other options
12102
- for (var key in options) {
12103
- if (key !== 'modules' && key !== 'directives') {
12104
- finalOptions[key] = options[key];
12105
- }
12106
- }
12107
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12108
 
12109
- finalOptions.warn = warn;
 
 
 
12110
 
12111
- var compiled = baseCompile(template.trim(), finalOptions);
12112
- if (process.env.NODE_ENV !== 'production') {
12113
- detectErrors(compiled.ast, warn);
12114
- }
12115
- compiled.errors = errors;
12116
- compiled.tips = tips;
12117
- return compiled
12118
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12119
 
12120
- return {
12121
- compile: compile,
12122
- compileToFunctions: createCompileToFunctionFn(compile)
12123
- }
12124
- }
12125
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12126
 
12127
- /* */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12128
 
12129
- // `createCompilerCreator` allows creating compilers that use alternative
12130
- // parser/optimizer/codegen, e.g the SSR optimizing compiler.
12131
- // Here we just export a default compiler using the default parts.
12132
- var createCompiler = createCompilerCreator(function baseCompile (
12133
- template,
12134
- options
12135
- ) {
12136
- var ast = parse(template.trim(), options);
12137
- if (options.optimize !== false) {
12138
- optimize(ast, options);
12139
- }
12140
- var code = generate(ast, options);
12141
- return {
12142
- ast: ast,
12143
- render: code.render,
12144
- staticRenderFns: code.staticRenderFns
12145
- }
12146
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12147
 
12148
- /* */
 
 
 
 
 
 
 
12149
 
12150
- var ref$1 = createCompiler(baseOptions);
12151
- var compile = ref$1.compile;
12152
- var compileToFunctions = ref$1.compileToFunctions;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12153
 
12154
- /* */
12155
 
12156
- // check whether current browser encodes a char inside attribute values
12157
- var div;
12158
- function getShouldDecode (href) {
12159
- div = div || document.createElement('div');
12160
- div.innerHTML = href ? "<a href=\"\n\"/>" : "<div a=\"\n\"/>";
12161
- return div.innerHTML.indexOf('&#10;') > 0
12162
  }
12163
 
12164
- // #3663: IE encodes newlines inside attribute values while other browsers don't
12165
- var shouldDecodeNewlines = inBrowser ? getShouldDecode(false) : false;
12166
- // #6828: chrome encodes content in a[href]
12167
- var shouldDecodeNewlinesForHref = inBrowser ? getShouldDecode(true) : false;
12168
-
12169
- /* */
12170
-
12171
- var idToTemplate = cached(function (id) {
12172
- var el = query(id);
12173
- return el && el.innerHTML
12174
- });
12175
-
12176
- var mount = Vue.prototype.$mount;
12177
- Vue.prototype.$mount = function (
12178
- el,
12179
- hydrating
12180
- ) {
12181
- el = el && query(el);
12182
 
12183
- /* istanbul ignore if */
12184
- if (el === document.body || el === document.documentElement) {
12185
- process.env.NODE_ENV !== 'production' && warn(
12186
- "Do not mount Vue to <html> or <body> - mount to normal elements instead."
12187
- );
12188
- return this
12189
- }
12190
 
12191
- var options = this.$options;
12192
- // resolve template/el and convert to render function
12193
- if (!options.render) {
12194
- var template = options.template;
12195
- if (template) {
12196
- if (typeof template === 'string') {
12197
- if (template.charAt(0) === '#') {
12198
- template = idToTemplate(template);
12199
- /* istanbul ignore if */
12200
- if (process.env.NODE_ENV !== 'production' && !template) {
12201
- warn(
12202
- ("Template element not found or is empty: " + (options.template)),
12203
- this
12204
- );
12205
- }
12206
- }
12207
- } else if (template.nodeType) {
12208
- template = template.innerHTML;
12209
- } else {
12210
- if (process.env.NODE_ENV !== 'production') {
12211
- warn('invalid template option:' + template, this);
12212
- }
12213
- return this
12214
- }
12215
- } else if (el) {
12216
- template = getOuterHTML(el);
12217
- }
12218
- if (template) {
12219
- /* istanbul ignore if */
12220
- if (process.env.NODE_ENV !== 'production' && config.performance && mark) {
12221
- mark('compile');
12222
- }
12223
 
12224
- var ref = compileToFunctions(template, {
12225
- outputSourceRange: process.env.NODE_ENV !== 'production',
12226
- shouldDecodeNewlines: shouldDecodeNewlines,
12227
- shouldDecodeNewlinesForHref: shouldDecodeNewlinesForHref,
12228
- delimiters: options.delimiters,
12229
- comments: options.comments
12230
- }, this);
12231
- var render = ref.render;
12232
- var staticRenderFns = ref.staticRenderFns;
12233
- options.render = render;
12234
- options.staticRenderFns = staticRenderFns;
12235
-
12236
- /* istanbul ignore if */
12237
- if (process.env.NODE_ENV !== 'production' && config.performance && mark) {
12238
- mark('compile end');
12239
- measure(("vue " + (this._name) + " compile"), 'compile', 'compile end');
12240
- }
12241
- }
12242
- }
12243
- return mount.call(this, el, hydrating)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12244
  };
12245
 
12246
- /**
12247
- * Get outerHTML of elements, taking care
12248
- * of SVG elements in IE as well.
12249
- */
12250
- function getOuterHTML (el) {
12251
- if (el.outerHTML) {
12252
- return el.outerHTML
12253
- } else {
12254
- var container = document.createElement('div');
12255
- container.appendChild(el.cloneNode(true));
12256
- return container.innerHTML
12257
- }
12258
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12259
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12260
  Vue.compile = compileToFunctions;
12261
 
12262
- /* harmony default export */ __webpack_exports__["default"] = (Vue);
12263
 
12264
  /* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(18), __webpack_require__(7), __webpack_require__(111).setImmediate))
12265
 
@@ -13216,9 +13081,16 @@ function validateHookName(hookName) {
13216
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
13217
 
13218
  "use strict";
13219
- /* WEBPACK VAR INJECTION */(function(process) {/*!
13220
- * vue-router v3.5.3
13221
- * (c) 2021 Evan You
 
 
 
 
 
 
 
13222
  * @license MIT
13223
  */
13224
  /* */
@@ -13736,7 +13608,7 @@ function parsePath (path) {
13736
  }
13737
 
13738
  function cleanPath (path) {
13739
- return path.replace(/\/+/g, '/')
13740
  }
13741
 
13742
  var isarray = Array.isArray || function (arr) {
@@ -14308,7 +14180,7 @@ var Link = {
14308
  }
14309
  },
14310
  render: function render (h) {
14311
- var this$1 = this;
14312
 
14313
  var router = this.$router;
14314
  var current = this.$route;
@@ -14351,7 +14223,7 @@ var Link = {
14351
 
14352
  var handler = function (e) {
14353
  if (guardEvent(e)) {
14354
- if (this$1.replace) {
14355
  router.replace(location, noop);
14356
  } else {
14357
  router.push(location, noop);
@@ -14667,7 +14539,7 @@ function addRouteRecord (
14667
  warn(
14668
  false,
14669
  "Named Route '" + (route.name) + "' has a default child route. " +
14670
- "When navigating to this named route (:to=\"{name: '" + (route.name) + "'\"), " +
14671
  "the default child route will not be rendered. Remove the name from " +
14672
  "this route and use the name of the default child route for named " +
14673
  "links instead."
@@ -15211,25 +15083,6 @@ function replaceState (url) {
15211
  pushState(url, true);
15212
  }
15213
 
15214
- /* */
15215
-
15216
- function runQueue (queue, fn, cb) {
15217
- var step = function (index) {
15218
- if (index >= queue.length) {
15219
- cb();
15220
- } else {
15221
- if (queue[index]) {
15222
- fn(queue[index], function () {
15223
- step(index + 1);
15224
- });
15225
- } else {
15226
- step(index + 1);
15227
- }
15228
- }
15229
- };
15230
- step(0);
15231
- }
15232
-
15233
  // When changing thing, also edit router.d.ts
15234
  var NavigationFailureType = {
15235
  redirected: 2,
@@ -15315,6 +15168,25 @@ function isNavigationFailure (err, errorType) {
15315
 
15316
  /* */
15317
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15318
  function resolveAsyncComponents (matched) {
15319
  return function (to, from, next) {
15320
  var hasAsync = false;
@@ -15461,7 +15333,7 @@ History.prototype.transitionTo = function transitionTo (
15461
  onComplete,
15462
  onAbort
15463
  ) {
15464
- var this$1 = this;
15465
 
15466
  var route;
15467
  // catch redirect option https://github.com/vuejs/vue-router/issues/3201
@@ -15478,17 +15350,17 @@ History.prototype.transitionTo = function transitionTo (
15478
  this.confirmTransition(
15479
  route,
15480
  function () {
15481
- this$1.updateRoute(route);
15482
  onComplete && onComplete(route);
15483
- this$1.ensureURL();
15484
- this$1.router.afterHooks.forEach(function (hook) {
15485
  hook && hook(route, prev);
15486
  });
15487
 
15488
  // fire ready cbs once
15489
- if (!this$1.ready) {
15490
- this$1.ready = true;
15491
- this$1.readyCbs.forEach(function (cb) {
15492
  cb(route);
15493
  });
15494
  }
@@ -15497,14 +15369,14 @@ History.prototype.transitionTo = function transitionTo (
15497
  if (onAbort) {
15498
  onAbort(err);
15499
  }
15500
- if (err && !this$1.ready) {
15501
  // Initial redirection should not mark the history as ready yet
15502
  // because it's triggered by the redirection instead
15503
  // https://github.com/vuejs/vue-router/issues/3225
15504
  // https://github.com/vuejs/vue-router/issues/3331
15505
  if (!isNavigationFailure(err, NavigationFailureType.redirected) || prev !== START) {
15506
- this$1.ready = true;
15507
- this$1.readyErrorCbs.forEach(function (cb) {
15508
  cb(err);
15509
  });
15510
  }
@@ -15514,7 +15386,7 @@ History.prototype.transitionTo = function transitionTo (
15514
  };
15515
 
15516
  History.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {
15517
- var this$1 = this;
15518
 
15519
  var current = this.current;
15520
  this.pending = route;
@@ -15523,8 +15395,8 @@ History.prototype.confirmTransition = function confirmTransition (route, onCompl
15523
  // https://github.com/vuejs/vue-router/pull/3047 before that change,
15524
  // redirect and aborted navigation would produce an err == null
15525
  if (!isNavigationFailure(err) && isError(err)) {
15526
- if (this$1.errorCbs.length) {
15527
- this$1.errorCbs.forEach(function (cb) {
15528
  cb(err);
15529
  });
15530
  } else {
@@ -15573,17 +15445,17 @@ History.prototype.confirmTransition = function confirmTransition (route, onCompl
15573
  );
15574
 
15575
  var iterator = function (hook, next) {
15576
- if (this$1.pending !== route) {
15577
  return abort(createNavigationCancelledError(current, route))
15578
  }
15579
  try {
15580
  hook(route, current, function (to) {
15581
  if (to === false) {
15582
  // next(false) -> abort navigation, ensure current URL
15583
- this$1.ensureURL(true);
15584
  abort(createNavigationAbortedError(current, route));
15585
  } else if (isError(to)) {
15586
- this$1.ensureURL(true);
15587
  abort(to);
15588
  } else if (
15589
  typeof to === 'string' ||
@@ -15593,9 +15465,9 @@ History.prototype.confirmTransition = function confirmTransition (route, onCompl
15593
  // next('/') or next({ path: '/' }) -> redirect
15594
  abort(createNavigationRedirectedError(current, route));
15595
  if (typeof to === 'object' && to.replace) {
15596
- this$1.replace(to);
15597
  } else {
15598
- this$1.push(to);
15599
  }
15600
  } else {
15601
  // confirm transition and pass on the value
@@ -15611,15 +15483,15 @@ History.prototype.confirmTransition = function confirmTransition (route, onCompl
15611
  // wait until async components are resolved before
15612
  // extracting in-component enter guards
15613
  var enterGuards = extractEnterGuards(activated);
15614
- var queue = enterGuards.concat(this$1.router.resolveHooks);
15615
  runQueue(queue, iterator, function () {
15616
- if (this$1.pending !== route) {
15617
  return abort(createNavigationCancelledError(current, route))
15618
  }
15619
- this$1.pending = null;
15620
  onComplete(route);
15621
- if (this$1.router.app) {
15622
- this$1.router.app.$nextTick(function () {
15623
  handleRouteEntered(route);
15624
  });
15625
  }
@@ -15776,7 +15648,7 @@ var HTML5History = /*@__PURE__*/(function (History) {
15776
  HTML5History.prototype.constructor = HTML5History;
15777
 
15778
  HTML5History.prototype.setupListeners = function setupListeners () {
15779
- var this$1 = this;
15780
 
15781
  if (this.listeners.length > 0) {
15782
  return
@@ -15791,16 +15663,16 @@ var HTML5History = /*@__PURE__*/(function (History) {
15791
  }
15792
 
15793
  var handleRoutingEvent = function () {
15794
- var current = this$1.current;
15795
 
15796
  // Avoiding first `popstate` event dispatched in some browsers but first
15797
  // history route not updated since async guard at the same time.
15798
- var location = getLocation(this$1.base);
15799
- if (this$1.current === START && location === this$1._startLocation) {
15800
  return
15801
  }
15802
 
15803
- this$1.transitionTo(location, function (route) {
15804
  if (supportsScroll) {
15805
  handleScroll(router, route, current, true);
15806
  }
@@ -15817,25 +15689,25 @@ var HTML5History = /*@__PURE__*/(function (History) {
15817
  };
15818
 
15819
  HTML5History.prototype.push = function push (location, onComplete, onAbort) {
15820
- var this$1 = this;
15821
 
15822
  var ref = this;
15823
  var fromRoute = ref.current;
15824
  this.transitionTo(location, function (route) {
15825
- pushState(cleanPath(this$1.base + route.fullPath));
15826
- handleScroll(this$1.router, route, fromRoute, false);
15827
  onComplete && onComplete(route);
15828
  }, onAbort);
15829
  };
15830
 
15831
  HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {
15832
- var this$1 = this;
15833
 
15834
  var ref = this;
15835
  var fromRoute = ref.current;
15836
  this.transitionTo(location, function (route) {
15837
- replaceState(cleanPath(this$1.base + route.fullPath));
15838
- handleScroll(this$1.router, route, fromRoute, false);
15839
  onComplete && onComplete(route);
15840
  }, onAbort);
15841
  };
@@ -15887,7 +15759,7 @@ var HashHistory = /*@__PURE__*/(function (History) {
15887
  // this is delayed until the app mounts
15888
  // to avoid the hashchange listener being fired too early
15889
  HashHistory.prototype.setupListeners = function setupListeners () {
15890
- var this$1 = this;
15891
 
15892
  if (this.listeners.length > 0) {
15893
  return
@@ -15902,13 +15774,13 @@ var HashHistory = /*@__PURE__*/(function (History) {
15902
  }
15903
 
15904
  var handleRoutingEvent = function () {
15905
- var current = this$1.current;
15906
  if (!ensureSlash()) {
15907
  return
15908
  }
15909
- this$1.transitionTo(getHash(), function (route) {
15910
  if (supportsScroll) {
15911
- handleScroll(this$1.router, route, current, true);
15912
  }
15913
  if (!supportsPushState) {
15914
  replaceHash(route.fullPath);
@@ -15926,7 +15798,7 @@ var HashHistory = /*@__PURE__*/(function (History) {
15926
  };
15927
 
15928
  HashHistory.prototype.push = function push (location, onComplete, onAbort) {
15929
- var this$1 = this;
15930
 
15931
  var ref = this;
15932
  var fromRoute = ref.current;
@@ -15934,7 +15806,7 @@ var HashHistory = /*@__PURE__*/(function (History) {
15934
  location,
15935
  function (route) {
15936
  pushHash(route.fullPath);
15937
- handleScroll(this$1.router, route, fromRoute, false);
15938
  onComplete && onComplete(route);
15939
  },
15940
  onAbort
@@ -15942,7 +15814,7 @@ var HashHistory = /*@__PURE__*/(function (History) {
15942
  };
15943
 
15944
  HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {
15945
- var this$1 = this;
15946
 
15947
  var ref = this;
15948
  var fromRoute = ref.current;
@@ -15950,7 +15822,7 @@ var HashHistory = /*@__PURE__*/(function (History) {
15950
  location,
15951
  function (route) {
15952
  replaceHash(route.fullPath);
15953
- handleScroll(this$1.router, route, fromRoute, false);
15954
  onComplete && onComplete(route);
15955
  },
15956
  onAbort
@@ -16042,13 +15914,13 @@ var AbstractHistory = /*@__PURE__*/(function (History) {
16042
  AbstractHistory.prototype.constructor = AbstractHistory;
16043
 
16044
  AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {
16045
- var this$1 = this;
16046
 
16047
  this.transitionTo(
16048
  location,
16049
  function (route) {
16050
- this$1.stack = this$1.stack.slice(0, this$1.index + 1).concat(route);
16051
- this$1.index++;
16052
  onComplete && onComplete(route);
16053
  },
16054
  onAbort
@@ -16056,12 +15928,12 @@ var AbstractHistory = /*@__PURE__*/(function (History) {
16056
  };
16057
 
16058
  AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {
16059
- var this$1 = this;
16060
 
16061
  this.transitionTo(
16062
  location,
16063
  function (route) {
16064
- this$1.stack = this$1.stack.slice(0, this$1.index).concat(route);
16065
  onComplete && onComplete(route);
16066
  },
16067
  onAbort
@@ -16069,7 +15941,7 @@ var AbstractHistory = /*@__PURE__*/(function (History) {
16069
  };
16070
 
16071
  AbstractHistory.prototype.go = function go (n) {
16072
- var this$1 = this;
16073
 
16074
  var targetIndex = this.index + n;
16075
  if (targetIndex < 0 || targetIndex >= this.stack.length) {
@@ -16079,16 +15951,16 @@ var AbstractHistory = /*@__PURE__*/(function (History) {
16079
  this.confirmTransition(
16080
  route,
16081
  function () {
16082
- var prev = this$1.current;
16083
- this$1.index = targetIndex;
16084
- this$1.updateRoute(route);
16085
- this$1.router.afterHooks.forEach(function (hook) {
16086
  hook && hook(route, prev);
16087
  });
16088
  },
16089
  function (err) {
16090
  if (isNavigationFailure(err, NavigationFailureType.duplicated)) {
16091
- this$1.index = targetIndex;
16092
  }
16093
  }
16094
  );
@@ -16108,6 +15980,8 @@ var AbstractHistory = /*@__PURE__*/(function (History) {
16108
 
16109
  /* */
16110
 
 
 
16111
  var VueRouter = function VueRouter (options) {
16112
  if ( options === void 0 ) options = {};
16113
 
@@ -16161,7 +16035,7 @@ prototypeAccessors.currentRoute.get = function () {
16161
  };
16162
 
16163
  VueRouter.prototype.init = function init (app /* Vue component instance */) {
16164
- var this$1 = this;
16165
 
16166
  process.env.NODE_ENV !== 'production' &&
16167
  assert(
@@ -16176,13 +16050,13 @@ VueRouter.prototype.init = function init (app /* Vue component instance */) {
16176
  // https://github.com/vuejs/vue-router/issues/2639
16177
  app.$once('hook:destroyed', function () {
16178
  // clean out app from this.apps array once destroyed
16179
- var index = this$1.apps.indexOf(app);
16180
- if (index > -1) { this$1.apps.splice(index, 1); }
16181
  // ensure we still have a main app or null if no apps
16182
  // we do not release the router so it can be reused
16183
- if (this$1.app === app) { this$1.app = this$1.apps[0] || null; }
16184
 
16185
- if (!this$1.app) { this$1.history.teardown(); }
16186
  });
16187
 
16188
  // main app previously initialized
@@ -16198,11 +16072,11 @@ VueRouter.prototype.init = function init (app /* Vue component instance */) {
16198
  if (history instanceof HTML5History || history instanceof HashHistory) {
16199
  var handleInitialScroll = function (routeOrError) {
16200
  var from = history.current;
16201
- var expectScroll = this$1.options.scrollBehavior;
16202
  var supportsScroll = supportsPushState && expectScroll;
16203
 
16204
  if (supportsScroll && 'fullPath' in routeOrError) {
16205
- handleScroll(this$1, routeOrError, from, false);
16206
  }
16207
  };
16208
  var setupListeners = function (routeOrError) {
@@ -16217,7 +16091,7 @@ VueRouter.prototype.init = function init (app /* Vue component instance */) {
16217
  }
16218
 
16219
  history.listen(function (route) {
16220
- this$1.apps.forEach(function (app) {
16221
  app._route = route;
16222
  });
16223
  });
@@ -16244,12 +16118,12 @@ VueRouter.prototype.onError = function onError (errorCb) {
16244
  };
16245
 
16246
  VueRouter.prototype.push = function push (location, onComplete, onAbort) {
16247
- var this$1 = this;
16248
 
16249
  // $flow-disable-line
16250
  if (!onComplete && !onAbort && typeof Promise !== 'undefined') {
16251
  return new Promise(function (resolve, reject) {
16252
- this$1.history.push(location, resolve, reject);
16253
  })
16254
  } else {
16255
  this.history.push(location, onComplete, onAbort);
@@ -16257,12 +16131,12 @@ VueRouter.prototype.push = function push (location, onComplete, onAbort) {
16257
  };
16258
 
16259
  VueRouter.prototype.replace = function replace (location, onComplete, onAbort) {
16260
- var this$1 = this;
16261
 
16262
  // $flow-disable-line
16263
  if (!onComplete && !onAbort && typeof Promise !== 'undefined') {
16264
  return new Promise(function (resolve, reject) {
16265
- this$1.history.replace(location, resolve, reject);
16266
  })
16267
  } else {
16268
  this.history.replace(location, onComplete, onAbort);
@@ -16344,6 +16218,8 @@ VueRouter.prototype.addRoutes = function addRoutes (routes) {
16344
 
16345
  Object.defineProperties( VueRouter.prototype, prototypeAccessors );
16346
 
 
 
16347
  function registerHook (list, fn) {
16348
  list.push(fn);
16349
  return function () {
@@ -16357,17 +16233,20 @@ function createHref (base, fullPath, mode) {
16357
  return base ? cleanPath(base + '/' + path) : path
16358
  }
16359
 
 
 
 
 
 
16360
  VueRouter.install = install;
16361
- VueRouter.version = '3.5.3';
16362
  VueRouter.isNavigationFailure = isNavigationFailure;
16363
  VueRouter.NavigationFailureType = NavigationFailureType;
16364
  VueRouter.START_LOCATION = START;
16365
 
16366
- if (inBrowser && window.Vue) {
16367
- window.Vue.use(VueRouter);
16368
- }
16369
 
16370
- /* harmony default export */ __webpack_exports__["a"] = (VueRouter);
16371
 
16372
  /* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(18)))
16373
 
@@ -19741,169 +19620,169 @@ module.exports = function (css) {
19741
 
19742
 
19743
  //
19744
-
19745
- // Check if the request came from the browser and is not server rendered
19746
- if (typeof window !== 'undefined') {
19747
- Promise.resolve().then(function () { return slick$1; });
19748
- }
19749
-
19750
- var script = {
19751
- props: {
19752
- options: {
19753
- type: Object,
19754
- default: function() {
19755
- return {};
19756
- },
19757
- },
19758
- },
19759
-
19760
- mounted: function() {
19761
- this.create();
19762
- },
19763
-
19764
- destroyed: function() {
19765
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el).slick('unslick');
19766
- },
19767
-
19768
- methods: {
19769
- create: function() {
19770
- var $slick = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el);
19771
-
19772
- $slick.on('afterChange', this.onAfterChange);
19773
- $slick.on('beforeChange', this.onBeforeChange);
19774
- $slick.on('breakpoint', this.onBreakpoint);
19775
- $slick.on('destroy', this.onDestroy);
19776
- $slick.on('edge', this.onEdge);
19777
- $slick.on('init', this.onInit);
19778
- $slick.on('reInit', this.onReInit);
19779
- $slick.on('setPosition', this.onSetPosition);
19780
- $slick.on('swipe', this.onSwipe);
19781
- $slick.on('lazyLoaded', this.onLazyLoaded);
19782
- $slick.on('lazyLoadError', this.onLazyLoadError);
19783
-
19784
- $slick.slick(this.options);
19785
- },
19786
-
19787
- destroy: function() {
19788
- var $slick = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el);
19789
-
19790
- $slick.off('afterChange', this.onAfterChange);
19791
- $slick.off('beforeChange', this.onBeforeChange);
19792
- $slick.off('breakpoint', this.onBreakpoint);
19793
- $slick.off('destroy', this.onDestroy);
19794
- $slick.off('edge', this.onEdge);
19795
- $slick.off('init', this.onInit);
19796
- $slick.off('reInit', this.onReInit);
19797
- $slick.off('setPosition', this.onSetPosition);
19798
- $slick.off('swipe', this.onSwipe);
19799
- $slick.off('lazyLoaded', this.onLazyLoaded);
19800
- $slick.off('lazyLoadError', this.onLazyLoadError);
19801
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el).slick('unslick');
19802
- },
19803
-
19804
- reSlick: function() {
19805
- this.destroy();
19806
- this.create();
19807
- },
19808
-
19809
- next: function() {
19810
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el).slick('slickNext');
19811
- },
19812
-
19813
- prev: function() {
19814
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el).slick('slickPrev');
19815
- },
19816
-
19817
- pause: function() {
19818
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el).slick('slickPause');
19819
- },
19820
-
19821
- play: function() {
19822
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el).slick('slickPlay');
19823
- },
19824
-
19825
- goTo: function(index, dontAnimate) {
19826
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el).slick('slickGoTo', index, dontAnimate);
19827
- },
19828
-
19829
- currentSlide: function() {
19830
- return __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el).slick('slickCurrentSlide');
19831
- },
19832
-
19833
- add: function(element, index, addBefore) {
19834
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el).slick('slickAdd', element, index, addBefore);
19835
- },
19836
-
19837
- remove: function(index, removeBefore) {
19838
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el).slick('slickRemove', index, removeBefore);
19839
- },
19840
-
19841
- filter: function(filterData) {
19842
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el).slick('slickFilter', filterData);
19843
- },
19844
-
19845
- unfilter: function() {
19846
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el).slick('slickUnfilter');
19847
- },
19848
-
19849
- getOption: function(option) {
19850
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el).slick('slickGetOption', option);
19851
- },
19852
-
19853
- setOption: function(option, value, refresh) {
19854
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el).slick('slickSetOption', option, value, refresh);
19855
- },
19856
-
19857
- setPosition: function() {
19858
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el).slick('setPosition');
19859
- },
19860
-
19861
- // Events
19862
- onAfterChange: function(event, slick, currentSlide) {
19863
- this.$emit('afterChange', event, slick, currentSlide);
19864
- },
19865
-
19866
- onBeforeChange: function(event, slick, currentSlide, nextSlide) {
19867
- this.$emit('beforeChange', event, slick, currentSlide, nextSlide);
19868
- },
19869
-
19870
- onBreakpoint: function(event, slick, breakpoint) {
19871
- this.$emit('breakpoint', event, slick, breakpoint);
19872
- },
19873
-
19874
- onDestroy: function(event, slick) {
19875
- this.$emit('destroy', event, slick);
19876
- },
19877
-
19878
- onEdge: function(event, slick, direction) {
19879
- this.$emit('edge', event, slick, direction);
19880
- },
19881
-
19882
- onInit: function(event, slick) {
19883
- this.$emit('init', event, slick);
19884
- },
19885
-
19886
- onReInit: function(event, slick) {
19887
- this.$emit('reInit', event, slick);
19888
- },
19889
-
19890
- onSetPosition: function(event, slick) {
19891
- this.$emit('setPosition', event, slick);
19892
- },
19893
-
19894
- onSwipe: function(event, slick, direction) {
19895
- this.$emit('swipe', event, slick, direction);
19896
- },
19897
-
19898
- onLazyLoaded: function(event, slick, image, imageSource) {
19899
- this.$emit('lazyLoaded', event, slick, image, imageSource);
19900
- },
19901
-
19902
- onLazyLoadError: function(event, slick, image, imageSource) {
19903
- this.$emit('lazyLoadError', event, slick, image, imageSource);
19904
- },
19905
- },
19906
-
19907
  };
19908
 
19909
  function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier
@@ -20029,16 +19908,16 @@ __vue_render__._withStripped = true;
20029
  undefined
20030
  );
20031
 
20032
- var install = function installMyComponent(Vue, opt) {
20033
- // Don't install if already installed, or SSR
20034
- if (install.installed || Vue.prototype.$isServer) { return }
20035
- install.installed = true;
20036
-
20037
- Vue.component('slick', Slick);
20038
- };
20039
-
20040
- // Inject install function into component - allows component
20041
- // to be registered via Vue.use() as well as Vue.component()
20042
  Slick.install = install;
20043
 
20044
  function createCommonjsModule(fn, module) {
218
 
219
  "use strict";
220
  Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
221
+ /* WEBPACK VAR INJECTION */(function(process, global, setImmediate) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EffectScope", function() { return EffectScope; });
222
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "computed", function() { return computed; });
223
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "customRef", function() { return customRef; });
224
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return Vue; });
225
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defineAsyncComponent", function() { return defineAsyncComponent; });
226
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defineComponent", function() { return defineComponent; });
227
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "del", function() { return del; });
228
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "effectScope", function() { return effectScope; });
229
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCurrentInstance", function() { return getCurrentInstance; });
230
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCurrentScope", function() { return getCurrentScope; });
231
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return h; });
232
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "inject", function() { return inject; });
233
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isProxy", function() { return isProxy; });
234
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isReactive", function() { return isReactive; });
235
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isReadonly", function() { return isReadonly; });
236
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isRef", function() { return isRef; });
237
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isShallow", function() { return isShallow; });
238
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "markRaw", function() { return markRaw; });
239
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeDefaults", function() { return mergeDefaults; });
240
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "nextTick", function() { return nextTick; });
241
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onActivated", function() { return onActivated; });
242
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onBeforeMount", function() { return onBeforeMount; });
243
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onBeforeUnmount", function() { return onBeforeUnmount; });
244
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onBeforeUpdate", function() { return onBeforeUpdate; });
245
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onDeactivated", function() { return onDeactivated; });
246
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onErrorCaptured", function() { return onErrorCaptured; });
247
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onMounted", function() { return onMounted; });
248
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onRenderTracked", function() { return onRenderTracked; });
249
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onRenderTriggered", function() { return onRenderTriggered; });
250
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onScopeDispose", function() { return onScopeDispose; });
251
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onServerPrefetch", function() { return onServerPrefetch; });
252
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onUnmounted", function() { return onUnmounted; });
253
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onUpdated", function() { return onUpdated; });
254
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "provide", function() { return provide; });
255
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "proxyRefs", function() { return proxyRefs; });
256
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "reactive", function() { return reactive; });
257
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "readonly", function() { return readonly; });
258
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ref", function() { return ref$1; });
259
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "set", function() { return set; });
260
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "shallowReactive", function() { return shallowReactive; });
261
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "shallowReadonly", function() { return shallowReadonly; });
262
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "shallowRef", function() { return shallowRef; });
263
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toRaw", function() { return toRaw; });
264
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toRef", function() { return toRef; });
265
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toRefs", function() { return toRefs; });
266
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "triggerRef", function() { return triggerRef; });
267
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "unref", function() { return unref; });
268
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useAttrs", function() { return useAttrs; });
269
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useCssModule", function() { return useCssModule; });
270
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useCssVars", function() { return useCssVars; });
271
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useListeners", function() { return useListeners; });
272
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useSlots", function() { return useSlots; });
273
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; });
274
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "watch", function() { return watch; });
275
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "watchEffect", function() { return watchEffect; });
276
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "watchPostEffect", function() { return watchPostEffect; });
277
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "watchSyncEffect", function() { return watchSyncEffect; });
278
+ /*!
279
+ * Vue.js v2.7.10
280
+ * (c) 2014-2022 Evan You
281
  * Released under the MIT License.
282
  */
283
+ var emptyObject = Object.freeze({});
284
+ var isArray = Array.isArray;
285
+ // These helpers produce better VM code in JS engines due to their
286
+ // explicitness and function inlining.
287
+ function isUndef(v) {
288
+ return v === undefined || v === null;
289
+ }
290
+ function isDef(v) {
291
+ return v !== undefined && v !== null;
292
+ }
293
+ function isTrue(v) {
294
+ return v === true;
295
+ }
296
+ function isFalse(v) {
297
+ return v === false;
298
+ }
299
+ /**
300
+ * Check if value is primitive.
301
+ */
302
+ function isPrimitive(value) {
303
+ return (typeof value === 'string' ||
304
+ typeof value === 'number' ||
305
+ // $flow-disable-line
306
+ typeof value === 'symbol' ||
307
+ typeof value === 'boolean');
308
+ }
309
+ function isFunction(value) {
310
+ return typeof value === 'function';
311
+ }
312
+ /**
313
+ * Quick object check - this is primarily used to tell
314
+ * objects from primitive values when we know the value
315
+ * is a JSON-compliant type.
316
+ */
317
+ function isObject(obj) {
318
+ return obj !== null && typeof obj === 'object';
319
+ }
320
+ /**
321
+ * Get the raw type string of a value, e.g., [object Object].
322
+ */
323
+ var _toString = Object.prototype.toString;
324
+ function toRawType(value) {
325
+ return _toString.call(value).slice(8, -1);
326
+ }
327
+ /**
328
+ * Strict object type check. Only returns true
329
+ * for plain JavaScript objects.
330
+ */
331
+ function isPlainObject(obj) {
332
+ return _toString.call(obj) === '[object Object]';
333
+ }
334
+ function isRegExp(v) {
335
+ return _toString.call(v) === '[object RegExp]';
336
+ }
337
+ /**
338
+ * Check if val is a valid array index.
339
+ */
340
+ function isValidArrayIndex(val) {
341
+ var n = parseFloat(String(val));
342
+ return n >= 0 && Math.floor(n) === n && isFinite(val);
343
+ }
344
+ function isPromise(val) {
345
+ return (isDef(val) &&
346
+ typeof val.then === 'function' &&
347
+ typeof val.catch === 'function');
348
+ }
349
+ /**
350
+ * Convert a value to a string that is actually rendered.
351
+ */
352
+ function toString(val) {
353
+ return val == null
354
+ ? ''
355
+ : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)
356
+ ? JSON.stringify(val, null, 2)
357
+ : String(val);
358
+ }
359
+ /**
360
+ * Convert an input value to a number for persistence.
361
+ * If the conversion fails, return original string.
362
+ */
363
+ function toNumber(val) {
364
+ var n = parseFloat(val);
365
+ return isNaN(n) ? val : n;
366
+ }
367
+ /**
368
+ * Make a map and return a function for checking if a key
369
+ * is in that map.
370
+ */
371
+ function makeMap(str, expectsLowerCase) {
372
+ var map = Object.create(null);
373
+ var list = str.split(',');
374
+ for (var i = 0; i < list.length; i++) {
375
+ map[list[i]] = true;
376
+ }
377
+ return expectsLowerCase ? function (val) { return map[val.toLowerCase()]; } : function (val) { return map[val]; };
378
+ }
379
+ /**
380
+ * Check if a tag is a built-in tag.
381
+ */
382
+ var isBuiltInTag = makeMap('slot,component', true);
383
+ /**
384
+ * Check if an attribute is a reserved attribute.
385
+ */
386
+ var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');
387
+ /**
388
+ * Remove an item from an array.
389
+ */
390
+ function remove$2(arr, item) {
391
+ if (arr.length) {
392
+ var index = arr.indexOf(item);
393
+ if (index > -1) {
394
+ return arr.splice(index, 1);
395
+ }
396
+ }
397
+ }
398
+ /**
399
+ * Check whether an object has the property.
400
+ */
401
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
402
+ function hasOwn(obj, key) {
403
+ return hasOwnProperty.call(obj, key);
404
+ }
405
+ /**
406
+ * Create a cached version of a pure function.
407
+ */
408
+ function cached(fn) {
409
+ var cache = Object.create(null);
410
+ return function cachedFn(str) {
411
+ var hit = cache[str];
412
+ return hit || (cache[str] = fn(str));
413
+ };
414
+ }
415
+ /**
416
+ * Camelize a hyphen-delimited string.
417
+ */
418
+ var camelizeRE = /-(\w)/g;
419
+ var camelize = cached(function (str) {
420
+ return str.replace(camelizeRE, function (_, c) { return (c ? c.toUpperCase() : ''); });
421
+ });
422
+ /**
423
+ * Capitalize a string.
424
+ */
425
+ var capitalize = cached(function (str) {
426
+ return str.charAt(0).toUpperCase() + str.slice(1);
427
+ });
428
+ /**
429
+ * Hyphenate a camelCase string.
430
+ */
431
+ var hyphenateRE = /\B([A-Z])/g;
432
+ var hyphenate = cached(function (str) {
433
+ return str.replace(hyphenateRE, '-$1').toLowerCase();
434
+ });
435
+ /**
436
+ * Simple bind polyfill for environments that do not support it,
437
+ * e.g., PhantomJS 1.x. Technically, we don't need this anymore
438
+ * since native bind is now performant enough in most browsers.
439
+ * But removing it would mean breaking code that was able to run in
440
+ * PhantomJS 1.x, so this must be kept for backward compatibility.
441
+ */
442
+ /* istanbul ignore next */
443
+ function polyfillBind(fn, ctx) {
444
+ function boundFn(a) {
445
+ var l = arguments.length;
446
+ return l
447
+ ? l > 1
448
+ ? fn.apply(ctx, arguments)
449
+ : fn.call(ctx, a)
450
+ : fn.call(ctx);
451
+ }
452
+ boundFn._length = fn.length;
453
+ return boundFn;
454
+ }
455
+ function nativeBind(fn, ctx) {
456
+ return fn.bind(ctx);
457
+ }
458
+ // @ts-expect-error bind cannot be `undefined`
459
+ var bind$1 = Function.prototype.bind ? nativeBind : polyfillBind;
460
+ /**
461
+ * Convert an Array-like object to a real Array.
462
+ */
463
+ function toArray(list, start) {
464
+ start = start || 0;
465
+ var i = list.length - start;
466
+ var ret = new Array(i);
467
+ while (i--) {
468
+ ret[i] = list[i + start];
469
+ }
470
+ return ret;
471
+ }
472
+ /**
473
+ * Mix properties into target object.
474
+ */
475
+ function extend(to, _from) {
476
+ for (var key in _from) {
477
+ to[key] = _from[key];
478
+ }
479
+ return to;
480
+ }
481
+ /**
482
+ * Merge an Array of Objects into a single Object.
483
+ */
484
+ function toObject(arr) {
485
+ var res = {};
486
+ for (var i = 0; i < arr.length; i++) {
487
+ if (arr[i]) {
488
+ extend(res, arr[i]);
489
+ }
490
+ }
491
+ return res;
492
+ }
493
+ /* eslint-disable no-unused-vars */
494
+ /**
495
+ * Perform no operation.
496
+ * Stubbing args to make Flow happy without leaving useless transpiled code
497
+ * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).
498
+ */
499
+ function noop(a, b, c) { }
500
+ /**
501
+ * Always return false.
502
+ */
503
+ var no = function (a, b, c) { return false; };
504
+ /* eslint-enable no-unused-vars */
505
+ /**
506
+ * Return the same value.
507
+ */
508
+ var identity = function (_) { return _; };
509
+ /**
510
+ * Generate a string containing static keys from compiler modules.
511
+ */
512
+ function genStaticKeys$1(modules) {
513
+ return modules
514
+ .reduce(function (keys, m) {
515
+ return keys.concat(m.staticKeys || []);
516
+ }, [])
517
+ .join(',');
518
+ }
519
+ /**
520
+ * Check if two values are loosely equal - that is,
521
+ * if they are plain objects, do they have the same shape?
522
+ */
523
+ function looseEqual(a, b) {
524
+ if (a === b)
525
+ return true;
526
+ var isObjectA = isObject(a);
527
+ var isObjectB = isObject(b);
528
+ if (isObjectA && isObjectB) {
529
+ try {
530
+ var isArrayA = Array.isArray(a);
531
+ var isArrayB = Array.isArray(b);
532
+ if (isArrayA && isArrayB) {
533
+ return (a.length === b.length &&
534
+ a.every(function (e, i) {
535
+ return looseEqual(e, b[i]);
536
+ }));
537
+ }
538
+ else if (a instanceof Date && b instanceof Date) {
539
+ return a.getTime() === b.getTime();
540
+ }
541
+ else if (!isArrayA && !isArrayB) {
542
+ var keysA = Object.keys(a);
543
+ var keysB = Object.keys(b);
544
+ return (keysA.length === keysB.length &&
545
+ keysA.every(function (key) {
546
+ return looseEqual(a[key], b[key]);
547
+ }));
548
+ }
549
+ else {
550
+ /* istanbul ignore next */
551
+ return false;
552
+ }
553
+ }
554
+ catch (e) {
555
+ /* istanbul ignore next */
556
+ return false;
557
+ }
558
+ }
559
+ else if (!isObjectA && !isObjectB) {
560
+ return String(a) === String(b);
561
+ }
562
+ else {
563
+ return false;
564
+ }
565
+ }
566
+ /**
567
+ * Return the first index at which a loosely equal value can be
568
+ * found in the array (if value is a plain object, the array must
569
+ * contain an object of the same shape), or -1 if it is not present.
570
+ */
571
+ function looseIndexOf(arr, val) {
572
+ for (var i = 0; i < arr.length; i++) {
573
+ if (looseEqual(arr[i], val))
574
+ return i;
575
+ }
576
+ return -1;
577
+ }
578
+ /**
579
+ * Ensure a function is called only once.
580
+ */
581
+ function once(fn) {
582
+ var called = false;
583
+ return function () {
584
+ if (!called) {
585
+ called = true;
586
+ fn.apply(this, arguments);
587
+ }
588
+ };
589
+ }
590
+ // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is#polyfill
591
+ function hasChanged(x, y) {
592
+ if (x === y) {
593
+ return x === 0 && 1 / x !== 1 / y;
594
+ }
595
+ else {
596
+ return x === x || y === y;
597
+ }
598
+ }
599
+
600
+ var SSR_ATTR = 'data-server-rendered';
601
+ var ASSET_TYPES = ['component', 'directive', 'filter'];
602
+ var LIFECYCLE_HOOKS = [
603
+ 'beforeCreate',
604
+ 'created',
605
+ 'beforeMount',
606
+ 'mounted',
607
+ 'beforeUpdate',
608
+ 'updated',
609
+ 'beforeDestroy',
610
+ 'destroyed',
611
+ 'activated',
612
+ 'deactivated',
613
+ 'errorCaptured',
614
+ 'serverPrefetch',
615
+ 'renderTracked',
616
+ 'renderTriggered'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
617
  ];
618
 
619
+ var config = {
620
+ /**
621
+ * Option merge strategies (used in core/util/options)
622
+ */
623
+ // $flow-disable-line
624
+ optionMergeStrategies: Object.create(null),
625
+ /**
626
+ * Whether to suppress warnings.
627
+ */
628
+ silent: false,
629
+ /**
630
+ * Show production mode tip message on boot?
631
+ */
632
+ productionTip: process.env.NODE_ENV !== 'production',
633
+ /**
634
+ * Whether to enable devtools
635
+ */
636
+ devtools: process.env.NODE_ENV !== 'production',
637
+ /**
638
+ * Whether to record perf
639
+ */
640
+ performance: false,
641
+ /**
642
+ * Error handler for watcher errors
643
+ */
644
+ errorHandler: null,
645
+ /**
646
+ * Warn handler for watcher warns
647
+ */
648
+ warnHandler: null,
649
+ /**
650
+ * Ignore certain custom elements
651
+ */
652
+ ignoredElements: [],
653
+ /**
654
+ * Custom user key aliases for v-on
655
+ */
656
+ // $flow-disable-line
657
+ keyCodes: Object.create(null),
658
+ /**
659
+ * Check if a tag is reserved so that it cannot be registered as a
660
+ * component. This is platform-dependent and may be overwritten.
661
+ */
662
+ isReservedTag: no,
663
+ /**
664
+ * Check if an attribute is reserved so that it cannot be used as a component
665
+ * prop. This is platform-dependent and may be overwritten.
666
+ */
667
+ isReservedAttr: no,
668
+ /**
669
+ * Check if a tag is an unknown element.
670
+ * Platform-dependent.
671
+ */
672
+ isUnknownElement: no,
673
+ /**
674
+ * Get the namespace of an element
675
+ */
676
+ getTagNamespace: noop,
677
+ /**
678
+ * Parse the real tag name for the specific platform.
679
+ */
680
+ parsePlatformTagName: identity,
681
+ /**
682
+ * Check if an attribute must be bound using property, e.g. value
683
+ * Platform-dependent.
684
+ */
685
+ mustUseProp: no,
686
+ /**
687
+ * Perform updates asynchronously. Intended to be used by Vue Test Utils
688
+ * This will significantly reduce performance if set to false.
689
+ */
690
+ async: true,
691
+ /**
692
+ * Exposed for legacy reasons
693
+ */
694
+ _lifecycleHooks: LIFECYCLE_HOOKS
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
695
  };
696
 
697
+ /**
698
+ * unicode letters used for parsing html tags, component names and property paths.
699
+ * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname
700
+ * skipping \u10000-\uEFFFF due to it freezing up PhantomJS
701
+ */
702
+ 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/;
703
+ /**
704
+ * Check if a string starts with $ or _
705
+ */
706
+ function isReserved(str) {
707
+ var c = (str + '').charCodeAt(0);
708
+ return c === 0x24 || c === 0x5f;
709
+ }
710
+ /**
711
+ * Define a property.
712
+ */
713
+ function def(obj, key, val, enumerable) {
714
+ Object.defineProperty(obj, key, {
715
+ value: val,
716
+ enumerable: !!enumerable,
717
+ writable: true,
718
+ configurable: true
719
+ });
720
+ }
721
+ /**
722
+ * Parse simple path.
723
+ */
724
+ var bailRE = new RegExp("[^".concat(unicodeRegExp.source, ".$_\\d]"));
725
+ function parsePath(path) {
726
+ if (bailRE.test(path)) {
727
+ return;
728
+ }
729
+ var segments = path.split('.');
730
+ return function (obj) {
731
+ for (var i = 0; i < segments.length; i++) {
732
+ if (!obj)
733
+ return;
734
+ obj = obj[segments[i]];
735
+ }
736
+ return obj;
737
+ };
738
+ }
739
+
740
+ // can we use __proto__?
741
+ var hasProto = '__proto__' in {};
742
+ // Browser environment sniffing
743
+ var inBrowser = typeof window !== 'undefined';
744
+ var UA = inBrowser && window.navigator.userAgent.toLowerCase();
745
+ var isIE = UA && /msie|trident/.test(UA);
746
+ var isIE9 = UA && UA.indexOf('msie 9.0') > 0;
747
+ var isEdge = UA && UA.indexOf('edge/') > 0;
748
+ UA && UA.indexOf('android') > 0;
749
+ var isIOS = UA && /iphone|ipad|ipod|ios/.test(UA);
750
+ UA && /chrome\/\d+/.test(UA) && !isEdge;
751
+ UA && /phantomjs/.test(UA);
752
+ var isFF = UA && UA.match(/firefox\/(\d+)/);
753
+ // Firefox has a "watch" function on Object.prototype...
754
+ // @ts-expect-error firebox support
755
+ var nativeWatch = {}.watch;
756
+ var supportsPassive = false;
757
+ if (inBrowser) {
758
+ try {
759
+ var opts = {};
760
+ Object.defineProperty(opts, 'passive', {
761
+ get: function () {
762
+ /* istanbul ignore next */
763
+ supportsPassive = true;
764
+ }
765
+ }); // https://github.com/facebook/flow/issues/285
766
+ window.addEventListener('test-passive', null, opts);
767
+ }
768
+ catch (e) { }
769
+ }
770
+ // this needs to be lazy-evaled because vue may be required before
771
+ // vue-server-renderer can set VUE_ENV
772
+ var _isServer;
773
+ var isServerRendering = function () {
774
+ if (_isServer === undefined) {
775
+ /* istanbul ignore if */
776
+ if (!inBrowser && typeof global !== 'undefined') {
777
+ // detect presence of vue-server-renderer and avoid
778
+ // Webpack shimming the process
779
+ _isServer =
780
+ global['process'] && global['process'].env.VUE_ENV === 'server';
781
+ }
782
+ else {
783
+ _isServer = false;
784
+ }
785
+ }
786
+ return _isServer;
787
+ };
788
+ // detect devtools
789
+ var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;
790
+ /* istanbul ignore next */
791
+ function isNative(Ctor) {
792
+ return typeof Ctor === 'function' && /native code/.test(Ctor.toString());
793
+ }
794
+ var hasSymbol = typeof Symbol !== 'undefined' &&
795
+ isNative(Symbol) &&
796
+ typeof Reflect !== 'undefined' &&
797
+ isNative(Reflect.ownKeys);
798
+ var _Set; // $flow-disable-line
799
+ /* istanbul ignore if */ if (typeof Set !== 'undefined' && isNative(Set)) {
800
+ // use native Set when available.
801
+ _Set = Set;
802
+ }
803
+ else {
804
+ // a non-standard Set polyfill that only works with primitive keys.
805
+ _Set = /** @class */ (function () {
806
+ function Set() {
807
+ this.set = Object.create(null);
808
+ }
809
+ Set.prototype.has = function (key) {
810
+ return this.set[key] === true;
811
+ };
812
+ Set.prototype.add = function (key) {
813
+ this.set[key] = true;
814
+ };
815
+ Set.prototype.clear = function () {
816
+ this.set = Object.create(null);
817
+ };
818
+ return Set;
819
+ }());
820
+ }
821
+
822
+ var currentInstance = null;
823
+ /**
824
+ * This is exposed for compatibility with v3 (e.g. some functions in VueUse
825
+ * relies on it). Do not use this internally, just use `currentInstance`.
826
+ *
827
+ * @internal this function needs manual type declaration because it relies
828
+ * on previously manually authored types from Vue 2
829
+ */
830
+ function getCurrentInstance() {
831
+ return currentInstance && { proxy: currentInstance };
832
+ }
833
+ /**
834
+ * @internal
835
+ */
836
+ function setCurrentInstance(vm) {
837
+ if (vm === void 0) { vm = null; }
838
+ if (!vm)
839
+ currentInstance && currentInstance._scope.off();
840
+ currentInstance = vm;
841
+ vm && vm._scope.on();
842
+ }
843
+
844
+ /**
845
+ * @internal
846
+ */
847
+ var VNode = /** @class */ (function () {
848
+ function VNode(tag, data, children, text, elm, context, componentOptions, asyncFactory) {
849
+ this.tag = tag;
850
+ this.data = data;
851
+ this.children = children;
852
+ this.text = text;
853
+ this.elm = elm;
854
+ this.ns = undefined;
855
+ this.context = context;
856
+ this.fnContext = undefined;
857
+ this.fnOptions = undefined;
858
+ this.fnScopeId = undefined;
859
+ this.key = data && data.key;
860
+ this.componentOptions = componentOptions;
861
+ this.componentInstance = undefined;
862
+ this.parent = undefined;
863
+ this.raw = false;
864
+ this.isStatic = false;
865
+ this.isRootInsert = true;
866
+ this.isComment = false;
867
+ this.isCloned = false;
868
+ this.isOnce = false;
869
+ this.asyncFactory = asyncFactory;
870
+ this.asyncMeta = undefined;
871
+ this.isAsyncPlaceholder = false;
872
+ }
873
+ Object.defineProperty(VNode.prototype, "child", {
874
+ // DEPRECATED: alias for componentInstance for backwards compat.
875
+ /* istanbul ignore next */
876
+ get: function () {
877
+ return this.componentInstance;
878
+ },
879
+ enumerable: false,
880
+ configurable: true
881
+ });
882
+ return VNode;
883
+ }());
884
+ var createEmptyVNode = function (text) {
885
+ if (text === void 0) { text = ''; }
886
+ var node = new VNode();
887
+ node.text = text;
888
+ node.isComment = true;
889
+ return node;
890
+ };
891
+ function createTextVNode(val) {
892
+ return new VNode(undefined, undefined, undefined, String(val));
893
+ }
894
+ // optimized shallow clone
895
+ // used for static nodes and slot nodes because they may be reused across
896
+ // multiple renders, cloning them avoids errors when DOM manipulations rely
897
+ // on their elm reference.
898
+ function cloneVNode(vnode) {
899
+ var cloned = new VNode(vnode.tag, vnode.data,
900
+ // #7975
901
+ // clone children array to avoid mutating original in case of cloning
902
+ // a child.
903
+ vnode.children && vnode.children.slice(), vnode.text, vnode.elm, vnode.context, vnode.componentOptions, vnode.asyncFactory);
904
+ cloned.ns = vnode.ns;
905
+ cloned.isStatic = vnode.isStatic;
906
+ cloned.key = vnode.key;
907
+ cloned.isComment = vnode.isComment;
908
+ cloned.fnContext = vnode.fnContext;
909
+ cloned.fnOptions = vnode.fnOptions;
910
+ cloned.fnScopeId = vnode.fnScopeId;
911
+ cloned.asyncMeta = vnode.asyncMeta;
912
+ cloned.isCloned = true;
913
+ return cloned;
914
+ }
915
+
916
+ /* not type checking this file because flow doesn't play well with Proxy */
917
+ var initProxy;
918
+ if (process.env.NODE_ENV !== 'production') {
919
+ var allowedGlobals_1 = makeMap('Infinity,undefined,NaN,isFinite,isNaN,' +
920
+ 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +
921
+ 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,' +
922
+ 'require' // for Webpack/Browserify
923
+ );
924
+ var warnNonPresent_1 = function (target, key) {
925
+ warn$2("Property or method \"".concat(key, "\" is not defined on the instance but ") +
926
+ 'referenced during render. Make sure that this property is reactive, ' +
927
+ 'either in the data option, or for class-based components, by ' +
928
+ 'initializing the property. ' +
929
+ 'See: https://v2.vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.', target);
930
+ };
931
+ var warnReservedPrefix_1 = function (target, key) {
932
+ warn$2("Property \"".concat(key, "\" must be accessed with \"$data.").concat(key, "\" because ") +
933
+ 'properties starting with "$" or "_" are not proxied in the Vue instance to ' +
934
+ 'prevent conflicts with Vue internals. ' +
935
+ 'See: https://v2.vuejs.org/v2/api/#data', target);
936
+ };
937
+ var hasProxy_1 = typeof Proxy !== 'undefined' && isNative(Proxy);
938
+ if (hasProxy_1) {
939
+ var isBuiltInModifier_1 = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');
940
+ config.keyCodes = new Proxy(config.keyCodes, {
941
+ set: function (target, key, value) {
942
+ if (isBuiltInModifier_1(key)) {
943
+ warn$2("Avoid overwriting built-in modifier in config.keyCodes: .".concat(key));
944
+ return false;
945
+ }
946
+ else {
947
+ target[key] = value;
948
+ return true;
949
+ }
950
+ }
951
+ });
952
+ }
953
+ var hasHandler_1 = {
954
+ has: function (target, key) {
955
+ var has = key in target;
956
+ var isAllowed = allowedGlobals_1(key) ||
957
+ (typeof key === 'string' &&
958
+ key.charAt(0) === '_' &&
959
+ !(key in target.$data));
960
+ if (!has && !isAllowed) {
961
+ if (key in target.$data)
962
+ warnReservedPrefix_1(target, key);
963
+ else
964
+ warnNonPresent_1(target, key);
965
+ }
966
+ return has || !isAllowed;
967
+ }
968
+ };
969
+ var getHandler_1 = {
970
+ get: function (target, key) {
971
+ if (typeof key === 'string' && !(key in target)) {
972
+ if (key in target.$data)
973
+ warnReservedPrefix_1(target, key);
974
+ else
975
+ warnNonPresent_1(target, key);
976
+ }
977
+ return target[key];
978
+ }
979
+ };
980
+ initProxy = function initProxy(vm) {
981
+ if (hasProxy_1) {
982
+ // determine which proxy handler to use
983
+ var options = vm.$options;
984
+ var handlers = options.render && options.render._withStripped ? getHandler_1 : hasHandler_1;
985
+ vm._renderProxy = new Proxy(vm, handlers);
986
+ }
987
+ else {
988
+ vm._renderProxy = vm;
989
+ }
990
+ };
991
+ }
992
+
993
+ /******************************************************************************
994
+ Copyright (c) Microsoft Corporation.
995
+
996
+ Permission to use, copy, modify, and/or distribute this software for any
997
+ purpose with or without fee is hereby granted.
998
+
999
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
1000
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
1001
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
1002
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
1003
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
1004
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
1005
+ PERFORMANCE OF THIS SOFTWARE.
1006
+ ***************************************************************************** */
1007
+
1008
+ var __assign = function() {
1009
+ __assign = Object.assign || function __assign(t) {
1010
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
1011
+ s = arguments[i];
1012
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
1013
+ }
1014
+ return t;
1015
+ };
1016
+ return __assign.apply(this, arguments);
1017
+ };
1018
 
1019
+ var uid$2 = 0;
1020
+ /**
1021
+ * A dep is an observable that can have multiple
1022
+ * directives subscribing to it.
1023
+ * @internal
1024
+ */
1025
+ var Dep = /** @class */ (function () {
1026
+ function Dep() {
1027
+ this.id = uid$2++;
1028
+ this.subs = [];
1029
+ }
1030
+ Dep.prototype.addSub = function (sub) {
1031
+ this.subs.push(sub);
1032
+ };
1033
+ Dep.prototype.removeSub = function (sub) {
1034
+ remove$2(this.subs, sub);
1035
+ };
1036
+ Dep.prototype.depend = function (info) {
1037
+ if (Dep.target) {
1038
+ Dep.target.addDep(this);
1039
+ if (process.env.NODE_ENV !== 'production' && info && Dep.target.onTrack) {
1040
+ Dep.target.onTrack(__assign({ effect: Dep.target }, info));
1041
+ }
1042
+ }
1043
+ };
1044
+ Dep.prototype.notify = function (info) {
1045
+ // stabilize the subscriber list first
1046
+ var subs = this.subs.slice();
1047
+ if (process.env.NODE_ENV !== 'production' && !config.async) {
1048
+ // subs aren't sorted in scheduler if not running async
1049
+ // we need to sort them now to make sure they fire in correct
1050
+ // order
1051
+ subs.sort(function (a, b) { return a.id - b.id; });
1052
+ }
1053
+ for (var i = 0, l = subs.length; i < l; i++) {
1054
+ if (process.env.NODE_ENV !== 'production' && info) {
1055
+ var sub = subs[i];
1056
+ sub.onTrigger &&
1057
+ sub.onTrigger(__assign({ effect: subs[i] }, info));
1058
+ }
1059
+ subs[i].update();
1060
+ }
1061
+ };
1062
+ return Dep;
1063
+ }());
1064
+ // The current target watcher being evaluated.
1065
+ // This is globally unique because only one watcher
1066
+ // can be evaluated at a time.
1067
+ Dep.target = null;
1068
+ var targetStack = [];
1069
+ function pushTarget(target) {
1070
+ targetStack.push(target);
1071
+ Dep.target = target;
1072
+ }
1073
+ function popTarget() {
1074
+ targetStack.pop();
1075
+ Dep.target = targetStack[targetStack.length - 1];
1076
  }
1077
 
1078
+ /*
1079
+ * not type checking this file because flow doesn't play well with
1080
+ * dynamically accessing methods on Array prototype
1081
+ */
1082
+ var arrayProto = Array.prototype;
1083
+ var arrayMethods = Object.create(arrayProto);
1084
+ var methodsToPatch = [
1085
+ 'push',
1086
+ 'pop',
1087
+ 'shift',
1088
+ 'unshift',
1089
+ 'splice',
1090
+ 'sort',
1091
+ 'reverse'
1092
+ ];
1093
+ /**
1094
+ * Intercept mutating methods and emit events
1095
+ */
1096
+ methodsToPatch.forEach(function (method) {
1097
+ // cache original method
1098
+ var original = arrayProto[method];
1099
+ def(arrayMethods, method, function mutator() {
1100
+ var args = [];
1101
+ for (var _i = 0; _i < arguments.length; _i++) {
1102
+ args[_i] = arguments[_i];
1103
+ }
1104
+ var result = original.apply(this, args);
1105
+ var ob = this.__ob__;
1106
+ var inserted;
1107
+ switch (method) {
1108
+ case 'push':
1109
+ case 'unshift':
1110
+ inserted = args;
1111
+ break;
1112
+ case 'splice':
1113
+ inserted = args.slice(2);
1114
+ break;
1115
+ }
1116
+ if (inserted)
1117
+ ob.observeArray(inserted);
1118
+ // notify change
1119
+ if (process.env.NODE_ENV !== 'production') {
1120
+ ob.dep.notify({
1121
+ type: "array mutation" /* TriggerOpTypes.ARRAY_MUTATION */,
1122
+ target: this,
1123
+ key: method
1124
+ });
1125
+ }
1126
+ else {
1127
+ ob.dep.notify();
1128
+ }
1129
+ return result;
1130
+ });
1131
+ });
1132
 
1133
+ var arrayKeys = Object.getOwnPropertyNames(arrayMethods);
1134
+ var NO_INIITIAL_VALUE = {};
1135
+ /**
1136
+ * In some cases we may want to disable observation inside a component's
1137
+ * update computation.
1138
+ */
1139
+ var shouldObserve = true;
1140
+ function toggleObserving(value) {
1141
+ shouldObserve = value;
1142
+ }
1143
+ // ssr mock dep
1144
+ var mockDep = {
1145
+ notify: noop,
1146
+ depend: noop,
1147
+ addSub: noop,
1148
+ removeSub: noop
1149
+ };
1150
+ /**
1151
+ * Observer class that is attached to each observed
1152
+ * object. Once attached, the observer converts the target
1153
+ * object's property keys into getter/setters that
1154
+ * collect dependencies and dispatch updates.
1155
+ */
1156
+ var Observer = /** @class */ (function () {
1157
+ function Observer(value, shallow, mock) {
1158
+ if (shallow === void 0) { shallow = false; }
1159
+ if (mock === void 0) { mock = false; }
1160
+ this.value = value;
1161
+ this.shallow = shallow;
1162
+ this.mock = mock;
1163
+ // this.value = value
1164
+ this.dep = mock ? mockDep : new Dep();
1165
+ this.vmCount = 0;
1166
+ def(value, '__ob__', this);
1167
+ if (isArray(value)) {
1168
+ if (!mock) {
1169
+ if (hasProto) {
1170
+ value.__proto__ = arrayMethods;
1171
+ /* eslint-enable no-proto */
1172
+ }
1173
+ else {
1174
+ for (var i = 0, l = arrayKeys.length; i < l; i++) {
1175
+ var key = arrayKeys[i];
1176
+ def(value, key, arrayMethods[key]);
1177
+ }
1178
+ }
1179
+ }
1180
+ if (!shallow) {
1181
+ this.observeArray(value);
1182
+ }
1183
+ }
1184
+ else {
1185
+ /**
1186
+ * Walk through all properties and convert them into
1187
+ * getter/setters. This method should only be called when
1188
+ * value type is Object.
1189
+ */
1190
+ var keys = Object.keys(value);
1191
+ for (var i = 0; i < keys.length; i++) {
1192
+ var key = keys[i];
1193
+ defineReactive(value, key, NO_INIITIAL_VALUE, undefined, shallow, mock);
1194
+ }
1195
+ }
1196
+ }
1197
+ /**
1198
+ * Observe a list of Array items.
1199
+ */
1200
+ Observer.prototype.observeArray = function (value) {
1201
+ for (var i = 0, l = value.length; i < l; i++) {
1202
+ observe(value[i], false, this.mock);
1203
+ }
1204
+ };
1205
+ return Observer;
1206
+ }());
1207
+ // helpers
1208
+ /**
1209
+ * Attempt to create an observer instance for a value,
1210
+ * returns the new observer if successfully observed,
1211
+ * or the existing observer if the value already has one.
1212
+ */
1213
+ function observe(value, shallow, ssrMockReactivity) {
1214
+ if (!isObject(value) || isRef(value) || value instanceof VNode) {
1215
+ return;
1216
+ }
1217
+ var ob;
1218
+ if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {
1219
+ ob = value.__ob__;
1220
+ }
1221
+ else if (shouldObserve &&
1222
+ (ssrMockReactivity || !isServerRendering()) &&
1223
+ (isArray(value) || isPlainObject(value)) &&
1224
+ Object.isExtensible(value) &&
1225
+ !value.__v_skip /* ReactiveFlags.SKIP */) {
1226
+ ob = new Observer(value, shallow, ssrMockReactivity);
1227
+ }
1228
+ return ob;
1229
+ }
1230
+ /**
1231
+ * Define a reactive property on an Object.
1232
+ */
1233
+ function defineReactive(obj, key, val, customSetter, shallow, mock) {
1234
+ var dep = new Dep();
1235
+ var property = Object.getOwnPropertyDescriptor(obj, key);
1236
+ if (property && property.configurable === false) {
1237
+ return;
1238
+ }
1239
+ // cater for pre-defined getter/setters
1240
+ var getter = property && property.get;
1241
+ var setter = property && property.set;
1242
+ if ((!getter || setter) &&
1243
+ (val === NO_INIITIAL_VALUE || arguments.length === 2)) {
1244
+ val = obj[key];
1245
+ }
1246
+ var childOb = !shallow && observe(val, false, mock);
1247
+ Object.defineProperty(obj, key, {
1248
+ enumerable: true,
1249
+ configurable: true,
1250
+ get: function reactiveGetter() {
1251
+ var value = getter ? getter.call(obj) : val;
1252
+ if (Dep.target) {
1253
+ if (process.env.NODE_ENV !== 'production') {
1254
+ dep.depend({
1255
+ target: obj,
1256
+ type: "get" /* TrackOpTypes.GET */,
1257
+ key: key
1258
+ });
1259
+ }
1260
+ else {
1261
+ dep.depend();
1262
+ }
1263
+ if (childOb) {
1264
+ childOb.dep.depend();
1265
+ if (isArray(value)) {
1266
+ dependArray(value);
1267
+ }
1268
+ }
1269
+ }
1270
+ return isRef(value) && !shallow ? value.value : value;
1271
+ },
1272
+ set: function reactiveSetter(newVal) {
1273
+ var value = getter ? getter.call(obj) : val;
1274
+ if (!hasChanged(value, newVal)) {
1275
+ return;
1276
+ }
1277
+ if (process.env.NODE_ENV !== 'production' && customSetter) {
1278
+ customSetter();
1279
+ }
1280
+ if (setter) {
1281
+ setter.call(obj, newVal);
1282
+ }
1283
+ else if (getter) {
1284
+ // #7981: for accessor properties without setter
1285
+ return;
1286
+ }
1287
+ else if (!shallow && isRef(value) && !isRef(newVal)) {
1288
+ value.value = newVal;
1289
+ return;
1290
+ }
1291
+ else {
1292
+ val = newVal;
1293
+ }
1294
+ childOb = !shallow && observe(newVal, false, mock);
1295
+ if (process.env.NODE_ENV !== 'production') {
1296
+ dep.notify({
1297
+ type: "set" /* TriggerOpTypes.SET */,
1298
+ target: obj,
1299
+ key: key,
1300
+ newValue: newVal,
1301
+ oldValue: value
1302
+ });
1303
+ }
1304
+ else {
1305
+ dep.notify();
1306
+ }
1307
+ }
1308
+ });
1309
+ return dep;
1310
+ }
1311
+ function set(target, key, val) {
1312
+ if (process.env.NODE_ENV !== 'production' && (isUndef(target) || isPrimitive(target))) {
1313
+ warn$2("Cannot set reactive property on undefined, null, or primitive value: ".concat(target));
1314
+ }
1315
+ if (isReadonly(target)) {
1316
+ process.env.NODE_ENV !== 'production' && warn$2("Set operation on key \"".concat(key, "\" failed: target is readonly."));
1317
+ return;
1318
+ }
1319
+ var ob = target.__ob__;
1320
+ if (isArray(target) && isValidArrayIndex(key)) {
1321
+ target.length = Math.max(target.length, key);
1322
+ target.splice(key, 1, val);
1323
+ // when mocking for SSR, array methods are not hijacked
1324
+ if (ob && !ob.shallow && ob.mock) {
1325
+ observe(val, false, true);
1326
+ }
1327
+ return val;
1328
+ }
1329
+ if (key in target && !(key in Object.prototype)) {
1330
+ target[key] = val;
1331
+ return val;
1332
+ }
1333
+ if (target._isVue || (ob && ob.vmCount)) {
1334
+ process.env.NODE_ENV !== 'production' &&
1335
+ warn$2('Avoid adding reactive properties to a Vue instance or its root $data ' +
1336
+ 'at runtime - declare it upfront in the data option.');
1337
+ return val;
1338
+ }
1339
+ if (!ob) {
1340
+ target[key] = val;
1341
+ return val;
1342
+ }
1343
+ defineReactive(ob.value, key, val, undefined, ob.shallow, ob.mock);
1344
+ if (process.env.NODE_ENV !== 'production') {
1345
+ ob.dep.notify({
1346
+ type: "add" /* TriggerOpTypes.ADD */,
1347
+ target: target,
1348
+ key: key,
1349
+ newValue: val,
1350
+ oldValue: undefined
1351
+ });
1352
+ }
1353
+ else {
1354
+ ob.dep.notify();
1355
+ }
1356
+ return val;
1357
+ }
1358
+ function del(target, key) {
1359
+ if (process.env.NODE_ENV !== 'production' && (isUndef(target) || isPrimitive(target))) {
1360
+ warn$2("Cannot delete reactive property on undefined, null, or primitive value: ".concat(target));
1361
+ }
1362
+ if (isArray(target) && isValidArrayIndex(key)) {
1363
+ target.splice(key, 1);
1364
+ return;
1365
+ }
1366
+ var ob = target.__ob__;
1367
+ if (target._isVue || (ob && ob.vmCount)) {
1368
+ process.env.NODE_ENV !== 'production' &&
1369
+ warn$2('Avoid deleting properties on a Vue instance or its root $data ' +
1370
+ '- just set it to null.');
1371
+ return;
1372
+ }
1373
+ if (isReadonly(target)) {
1374
+ process.env.NODE_ENV !== 'production' &&
1375
+ warn$2("Delete operation on key \"".concat(key, "\" failed: target is readonly."));
1376
+ return;
1377
+ }
1378
+ if (!hasOwn(target, key)) {
1379
+ return;
1380
+ }
1381
+ delete target[key];
1382
+ if (!ob) {
1383
+ return;
1384
+ }
1385
+ if (process.env.NODE_ENV !== 'production') {
1386
+ ob.dep.notify({
1387
+ type: "delete" /* TriggerOpTypes.DELETE */,
1388
+ target: target,
1389
+ key: key
1390
+ });
1391
+ }
1392
+ else {
1393
+ ob.dep.notify();
1394
+ }
1395
+ }
1396
+ /**
1397
+ * Collect dependencies on array elements when the array is touched, since
1398
+ * we cannot intercept array element access like property getters.
1399
+ */
1400
+ function dependArray(value) {
1401
+ for (var e = void 0, i = 0, l = value.length; i < l; i++) {
1402
+ e = value[i];
1403
+ if (e && e.__ob__) {
1404
+ e.__ob__.dep.depend();
1405
+ }
1406
+ if (isArray(e)) {
1407
+ dependArray(e);
1408
+ }
1409
+ }
1410
+ }
1411
+
1412
+ function reactive(target) {
1413
+ makeReactive(target, false);
1414
+ return target;
1415
+ }
1416
+ /**
1417
+ * Return a shallowly-reactive copy of the original object, where only the root
1418
+ * level properties are reactive. It also does not auto-unwrap refs (even at the
1419
+ * root level).
1420
+ */
1421
+ function shallowReactive(target) {
1422
+ makeReactive(target, true);
1423
+ def(target, "__v_isShallow" /* ReactiveFlags.IS_SHALLOW */, true);
1424
+ return target;
1425
+ }
1426
+ function makeReactive(target, shallow) {
1427
+ // if trying to observe a readonly proxy, return the readonly version.
1428
+ if (!isReadonly(target)) {
1429
+ if (process.env.NODE_ENV !== 'production') {
1430
+ if (isArray(target)) {
1431
+ warn$2("Avoid using Array as root value for ".concat(shallow ? "shallowReactive()" : "reactive()", " as it cannot be tracked in watch() or watchEffect(). Use ").concat(shallow ? "shallowRef()" : "ref()", " instead. This is a Vue-2-only limitation."));
1432
+ }
1433
+ var existingOb = target && target.__ob__;
1434
+ if (existingOb && existingOb.shallow !== shallow) {
1435
+ warn$2("Target is already a ".concat(existingOb.shallow ? "" : "non-", "shallow reactive object, and cannot be converted to ").concat(shallow ? "" : "non-", "shallow."));
1436
+ }
1437
+ }
1438
+ var ob = observe(target, shallow, isServerRendering() /* ssr mock reactivity */);
1439
+ if (process.env.NODE_ENV !== 'production' && !ob) {
1440
+ if (target == null || isPrimitive(target)) {
1441
+ warn$2("value cannot be made reactive: ".concat(String(target)));
1442
+ }
1443
+ if (isCollectionType(target)) {
1444
+ warn$2("Vue 2 does not support reactive collection types such as Map or Set.");
1445
+ }
1446
+ }
1447
+ }
1448
+ }
1449
+ function isReactive(value) {
1450
+ if (isReadonly(value)) {
1451
+ return isReactive(value["__v_raw" /* ReactiveFlags.RAW */]);
1452
+ }
1453
+ return !!(value && value.__ob__);
1454
+ }
1455
+ function isShallow(value) {
1456
+ return !!(value && value.__v_isShallow);
1457
+ }
1458
+ function isReadonly(value) {
1459
+ return !!(value && value.__v_isReadonly);
1460
+ }
1461
+ function isProxy(value) {
1462
+ return isReactive(value) || isReadonly(value);
1463
+ }
1464
+ function toRaw(observed) {
1465
+ var raw = observed && observed["__v_raw" /* ReactiveFlags.RAW */];
1466
+ return raw ? toRaw(raw) : observed;
1467
+ }
1468
+ function markRaw(value) {
1469
+ def(value, "__v_skip" /* ReactiveFlags.SKIP */, true);
1470
+ return value;
1471
+ }
1472
+ /**
1473
+ * @internal
1474
+ */
1475
+ function isCollectionType(value) {
1476
+ var type = toRawType(value);
1477
+ return (type === 'Map' || type === 'WeakMap' || type === 'Set' || type === 'WeakSet');
1478
+ }
1479
+
1480
+ /**
1481
+ * @internal
1482
+ */
1483
+ var RefFlag = "__v_isRef";
1484
+ function isRef(r) {
1485
+ return !!(r && r.__v_isRef === true);
1486
+ }
1487
+ function ref$1(value) {
1488
+ return createRef(value, false);
1489
+ }
1490
+ function shallowRef(value) {
1491
+ return createRef(value, true);
1492
+ }
1493
+ function createRef(rawValue, shallow) {
1494
+ if (isRef(rawValue)) {
1495
+ return rawValue;
1496
+ }
1497
+ var ref = {};
1498
+ def(ref, RefFlag, true);
1499
+ def(ref, "__v_isShallow" /* ReactiveFlags.IS_SHALLOW */, shallow);
1500
+ def(ref, 'dep', defineReactive(ref, 'value', rawValue, null, shallow, isServerRendering()));
1501
+ return ref;
1502
+ }
1503
+ function triggerRef(ref) {
1504
+ if (process.env.NODE_ENV !== 'production' && !ref.dep) {
1505
+ warn$2("received object is not a triggerable ref.");
1506
+ }
1507
+ if (process.env.NODE_ENV !== 'production') {
1508
+ ref.dep &&
1509
+ ref.dep.notify({
1510
+ type: "set" /* TriggerOpTypes.SET */,
1511
+ target: ref,
1512
+ key: 'value'
1513
+ });
1514
+ }
1515
+ else {
1516
+ ref.dep && ref.dep.notify();
1517
+ }
1518
+ }
1519
+ function unref(ref) {
1520
+ return isRef(ref) ? ref.value : ref;
1521
+ }
1522
+ function proxyRefs(objectWithRefs) {
1523
+ if (isReactive(objectWithRefs)) {
1524
+ return objectWithRefs;
1525
+ }
1526
+ var proxy = {};
1527
+ var keys = Object.keys(objectWithRefs);
1528
+ for (var i = 0; i < keys.length; i++) {
1529
+ proxyWithRefUnwrap(proxy, objectWithRefs, keys[i]);
1530
+ }
1531
+ return proxy;
1532
+ }
1533
+ function proxyWithRefUnwrap(target, source, key) {
1534
+ Object.defineProperty(target, key, {
1535
+ enumerable: true,
1536
+ configurable: true,
1537
+ get: function () {
1538
+ var val = source[key];
1539
+ if (isRef(val)) {
1540
+ return val.value;
1541
+ }
1542
+ else {
1543
+ var ob = val && val.__ob__;
1544
+ if (ob)
1545
+ ob.dep.depend();
1546
+ return val;
1547
+ }
1548
+ },
1549
+ set: function (value) {
1550
+ var oldValue = source[key];
1551
+ if (isRef(oldValue) && !isRef(value)) {
1552
+ oldValue.value = value;
1553
+ }
1554
+ else {
1555
+ source[key] = value;
1556
+ }
1557
+ }
1558
+ });
1559
+ }
1560
+ function customRef(factory) {
1561
+ var dep = new Dep();
1562
+ var _a = factory(function () {
1563
+ if (process.env.NODE_ENV !== 'production') {
1564
+ dep.depend({
1565
+ target: ref,
1566
+ type: "get" /* TrackOpTypes.GET */,
1567
+ key: 'value'
1568
+ });
1569
+ }
1570
+ else {
1571
+ dep.depend();
1572
+ }
1573
+ }, function () {
1574
+ if (process.env.NODE_ENV !== 'production') {
1575
+ dep.notify({
1576
+ target: ref,
1577
+ type: "set" /* TriggerOpTypes.SET */,
1578
+ key: 'value'
1579
+ });
1580
+ }
1581
+ else {
1582
+ dep.notify();
1583
+ }
1584
+ }), get = _a.get, set = _a.set;
1585
+ var ref = {
1586
+ get value() {
1587
+ return get();
1588
+ },
1589
+ set value(newVal) {
1590
+ set(newVal);
1591
+ }
1592
+ };
1593
+ def(ref, RefFlag, true);
1594
+ return ref;
1595
+ }
1596
+ function toRefs(object) {
1597
+ if (process.env.NODE_ENV !== 'production' && !isReactive(object)) {
1598
+ warn$2("toRefs() expects a reactive object but received a plain one.");
1599
+ }
1600
+ var ret = isArray(object) ? new Array(object.length) : {};
1601
+ for (var key in object) {
1602
+ ret[key] = toRef(object, key);
1603
+ }
1604
+ return ret;
1605
+ }
1606
+ function toRef(object, key, defaultValue) {
1607
+ var val = object[key];
1608
+ if (isRef(val)) {
1609
+ return val;
1610
+ }
1611
+ var ref = {
1612
+ get value() {
1613
+ var val = object[key];
1614
+ return val === undefined ? defaultValue : val;
1615
+ },
1616
+ set value(newVal) {
1617
+ object[key] = newVal;
1618
+ }
1619
+ };
1620
+ def(ref, RefFlag, true);
1621
+ return ref;
1622
+ }
1623
+
1624
+ var rawToReadonlyFlag = "__v_rawToReadonly";
1625
+ var rawToShallowReadonlyFlag = "__v_rawToShallowReadonly";
1626
+ function readonly(target) {
1627
+ return createReadonly(target, false);
1628
+ }
1629
+ function createReadonly(target, shallow) {
1630
+ if (!isPlainObject(target)) {
1631
+ if (process.env.NODE_ENV !== 'production') {
1632
+ if (isArray(target)) {
1633
+ warn$2("Vue 2 does not support readonly arrays.");
1634
+ }
1635
+ else if (isCollectionType(target)) {
1636
+ warn$2("Vue 2 does not support readonly collection types such as Map or Set.");
1637
+ }
1638
+ else {
1639
+ warn$2("value cannot be made readonly: ".concat(typeof target));
1640
+ }
1641
+ }
1642
+ return target;
1643
+ }
1644
+ // already a readonly object
1645
+ if (isReadonly(target)) {
1646
+ return target;
1647
+ }
1648
+ // already has a readonly proxy
1649
+ var existingFlag = shallow ? rawToShallowReadonlyFlag : rawToReadonlyFlag;
1650
+ var existingProxy = target[existingFlag];
1651
+ if (existingProxy) {
1652
+ return existingProxy;
1653
+ }
1654
+ var proxy = Object.create(Object.getPrototypeOf(target));
1655
+ def(target, existingFlag, proxy);
1656
+ def(proxy, "__v_isReadonly" /* ReactiveFlags.IS_READONLY */, true);
1657
+ def(proxy, "__v_raw" /* ReactiveFlags.RAW */, target);
1658
+ if (isRef(target)) {
1659
+ def(proxy, RefFlag, true);
1660
+ }
1661
+ if (shallow || isShallow(target)) {
1662
+ def(proxy, "__v_isShallow" /* ReactiveFlags.IS_SHALLOW */, true);
1663
+ }
1664
+ var keys = Object.keys(target);
1665
+ for (var i = 0; i < keys.length; i++) {
1666
+ defineReadonlyProperty(proxy, target, keys[i], shallow);
1667
+ }
1668
+ return proxy;
1669
+ }
1670
+ function defineReadonlyProperty(proxy, target, key, shallow) {
1671
+ Object.defineProperty(proxy, key, {
1672
+ enumerable: true,
1673
+ configurable: true,
1674
+ get: function () {
1675
+ var val = target[key];
1676
+ return shallow || !isPlainObject(val) ? val : readonly(val);
1677
+ },
1678
+ set: function () {
1679
+ process.env.NODE_ENV !== 'production' &&
1680
+ warn$2("Set operation on key \"".concat(key, "\" failed: target is readonly."));
1681
+ }
1682
+ });
1683
+ }
1684
+ /**
1685
+ * Returns a reactive-copy of the original object, where only the root level
1686
+ * properties are readonly, and does NOT unwrap refs nor recursively convert
1687
+ * returned properties.
1688
+ * This is used for creating the props proxy object for stateful components.
1689
+ */
1690
+ function shallowReadonly(target) {
1691
+ return createReadonly(target, true);
1692
+ }
1693
+
1694
+ function computed(getterOrOptions, debugOptions) {
1695
+ var getter;
1696
+ var setter;
1697
+ var onlyGetter = isFunction(getterOrOptions);
1698
+ if (onlyGetter) {
1699
+ getter = getterOrOptions;
1700
+ setter = process.env.NODE_ENV !== 'production'
1701
+ ? function () {
1702
+ warn$2('Write operation failed: computed value is readonly');
1703
+ }
1704
+ : noop;
1705
+ }
1706
+ else {
1707
+ getter = getterOrOptions.get;
1708
+ setter = getterOrOptions.set;
1709
+ }
1710
+ var watcher = isServerRendering()
1711
+ ? null
1712
+ : new Watcher(currentInstance, getter, noop, { lazy: true });
1713
+ if (process.env.NODE_ENV !== 'production' && watcher && debugOptions) {
1714
+ watcher.onTrack = debugOptions.onTrack;
1715
+ watcher.onTrigger = debugOptions.onTrigger;
1716
+ }
1717
+ var ref = {
1718
+ // some libs rely on the presence effect for checking computed refs
1719
+ // from normal refs, but the implementation doesn't matter
1720
+ effect: watcher,
1721
+ get value() {
1722
+ if (watcher) {
1723
+ if (watcher.dirty) {
1724
+ watcher.evaluate();
1725
+ }
1726
+ if (Dep.target) {
1727
+ if (process.env.NODE_ENV !== 'production' && Dep.target.onTrack) {
1728
+ Dep.target.onTrack({
1729
+ effect: Dep.target,
1730
+ target: ref,
1731
+ type: "get" /* TrackOpTypes.GET */,
1732
+ key: 'value'
1733
+ });
1734
+ }
1735
+ watcher.depend();
1736
+ }
1737
+ return watcher.value;
1738
+ }
1739
+ else {
1740
+ return getter();
1741
+ }
1742
+ },
1743
+ set value(newVal) {
1744
+ setter(newVal);
1745
+ }
1746
+ };
1747
+ def(ref, RefFlag, true);
1748
+ def(ref, "__v_isReadonly" /* ReactiveFlags.IS_READONLY */, onlyGetter);
1749
+ return ref;
1750
+ }
1751
+
1752
+ var mark;
1753
+ var measure;
1754
+ if (process.env.NODE_ENV !== 'production') {
1755
+ var perf_1 = inBrowser && window.performance;
1756
+ /* istanbul ignore if */
1757
+ if (perf_1 &&
1758
+ // @ts-ignore
1759
+ perf_1.mark &&
1760
+ // @ts-ignore
1761
+ perf_1.measure &&
1762
+ // @ts-ignore
1763
+ perf_1.clearMarks &&
1764
+ // @ts-ignore
1765
+ perf_1.clearMeasures) {
1766
+ mark = function (tag) { return perf_1.mark(tag); };
1767
+ measure = function (name, startTag, endTag) {
1768
+ perf_1.measure(name, startTag, endTag);
1769
+ perf_1.clearMarks(startTag);
1770
+ perf_1.clearMarks(endTag);
1771
+ // perf.clearMeasures(name)
1772
+ };
1773
+ }
1774
+ }
1775
+
1776
+ var normalizeEvent = cached(function (name) {
1777
+ var passive = name.charAt(0) === '&';
1778
+ name = passive ? name.slice(1) : name;
1779
+ var once = name.charAt(0) === '~'; // Prefixed last, checked first
1780
+ name = once ? name.slice(1) : name;
1781
+ var capture = name.charAt(0) === '!';
1782
+ name = capture ? name.slice(1) : name;
1783
+ return {
1784
+ name: name,
1785
+ once: once,
1786
+ capture: capture,
1787
+ passive: passive
1788
+ };
1789
+ });
1790
+ function createFnInvoker(fns, vm) {
1791
+ function invoker() {
1792
+ var fns = invoker.fns;
1793
+ if (isArray(fns)) {
1794
+ var cloned = fns.slice();
1795
+ for (var i = 0; i < cloned.length; i++) {
1796
+ invokeWithErrorHandling(cloned[i], null, arguments, vm, "v-on handler");
1797
+ }
1798
+ }
1799
+ else {
1800
+ // return handler return value for single handlers
1801
+ return invokeWithErrorHandling(fns, null, arguments, vm, "v-on handler");
1802
+ }
1803
+ }
1804
+ invoker.fns = fns;
1805
+ return invoker;
1806
+ }
1807
+ function updateListeners(on, oldOn, add, remove, createOnceHandler, vm) {
1808
+ var name, cur, old, event;
1809
+ for (name in on) {
1810
+ cur = on[name];
1811
+ old = oldOn[name];
1812
+ event = normalizeEvent(name);
1813
+ if (isUndef(cur)) {
1814
+ process.env.NODE_ENV !== 'production' &&
1815
+ warn$2("Invalid handler for event \"".concat(event.name, "\": got ") + String(cur), vm);
1816
+ }
1817
+ else if (isUndef(old)) {
1818
+ if (isUndef(cur.fns)) {
1819
+ cur = on[name] = createFnInvoker(cur, vm);
1820
+ }
1821
+ if (isTrue(event.once)) {
1822
+ cur = on[name] = createOnceHandler(event.name, cur, event.capture);
1823
+ }
1824
+ add(event.name, cur, event.capture, event.passive, event.params);
1825
+ }
1826
+ else if (cur !== old) {
1827
+ old.fns = cur;
1828
+ on[name] = old;
1829
+ }
1830
+ }
1831
+ for (name in oldOn) {
1832
+ if (isUndef(on[name])) {
1833
+ event = normalizeEvent(name);
1834
+ remove(event.name, oldOn[name], event.capture);
1835
+ }
1836
+ }
1837
+ }
1838
+
1839
+ function mergeVNodeHook(def, hookKey, hook) {
1840
+ if (def instanceof VNode) {
1841
+ def = def.data.hook || (def.data.hook = {});
1842
+ }
1843
+ var invoker;
1844
+ var oldHook = def[hookKey];
1845
+ function wrappedHook() {
1846
+ hook.apply(this, arguments);
1847
+ // important: remove merged hook to ensure it's called only once
1848
+ // and prevent memory leak
1849
+ remove$2(invoker.fns, wrappedHook);
1850
+ }
1851
+ if (isUndef(oldHook)) {
1852
+ // no existing hook
1853
+ invoker = createFnInvoker([wrappedHook]);
1854
+ }
1855
+ else {
1856
+ /* istanbul ignore if */
1857
+ if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {
1858
+ // already a merged invoker
1859
+ invoker = oldHook;
1860
+ invoker.fns.push(wrappedHook);
1861
+ }
1862
+ else {
1863
+ // existing plain hook
1864
+ invoker = createFnInvoker([oldHook, wrappedHook]);
1865
+ }
1866
+ }
1867
+ invoker.merged = true;
1868
+ def[hookKey] = invoker;
1869
+ }
1870
+
1871
+ function extractPropsFromVNodeData(data, Ctor, tag) {
1872
+ // we are only extracting raw values here.
1873
+ // validation and default values are handled in the child
1874
+ // component itself.
1875
+ var propOptions = Ctor.options.props;
1876
+ if (isUndef(propOptions)) {
1877
+ return;
1878
+ }
1879
+ var res = {};
1880
+ var attrs = data.attrs, props = data.props;
1881
+ if (isDef(attrs) || isDef(props)) {
1882
+ for (var key in propOptions) {
1883
+ var altKey = hyphenate(key);
1884
+ if (process.env.NODE_ENV !== 'production') {
1885
+ var keyInLowerCase = key.toLowerCase();
1886
+ if (key !== keyInLowerCase && attrs && hasOwn(attrs, keyInLowerCase)) {
1887
+ tip("Prop \"".concat(keyInLowerCase, "\" is passed to component ") +
1888
+ "".concat(formatComponentName(
1889
+ // @ts-expect-error tag is string
1890
+ tag || Ctor), ", but the declared prop name is") +
1891
+ " \"".concat(key, "\". ") +
1892
+ "Note that HTML attributes are case-insensitive and camelCased " +
1893
+ "props need to use their kebab-case equivalents when using in-DOM " +
1894
+ "templates. You should probably use \"".concat(altKey, "\" instead of \"").concat(key, "\"."));
1895
+ }
1896
+ }
1897
+ checkProp(res, props, key, altKey, true) ||
1898
+ checkProp(res, attrs, key, altKey, false);
1899
+ }
1900
+ }
1901
+ return res;
1902
+ }
1903
+ function checkProp(res, hash, key, altKey, preserve) {
1904
+ if (isDef(hash)) {
1905
+ if (hasOwn(hash, key)) {
1906
+ res[key] = hash[key];
1907
+ if (!preserve) {
1908
+ delete hash[key];
1909
+ }
1910
+ return true;
1911
+ }
1912
+ else if (hasOwn(hash, altKey)) {
1913
+ res[key] = hash[altKey];
1914
+ if (!preserve) {
1915
+ delete hash[altKey];
1916
+ }
1917
+ return true;
1918
+ }
1919
+ }
1920
+ return false;
1921
+ }
1922
+
1923
+ // The template compiler attempts to minimize the need for normalization by
1924
+ // statically analyzing the template at compile time.
1925
+ //
1926
+ // For plain HTML markup, normalization can be completely skipped because the
1927
+ // generated render function is guaranteed to return Array<VNode>. There are
1928
+ // two cases where extra normalization is needed:
1929
+ // 1. When the children contains components - because a functional component
1930
+ // may return an Array instead of a single root. In this case, just a simple
1931
+ // normalization is needed - if any child is an Array, we flatten the whole
1932
+ // thing with Array.prototype.concat. It is guaranteed to be only 1-level deep
1933
+ // because functional components already normalize their own children.
1934
+ function simpleNormalizeChildren(children) {
1935
+ for (var i = 0; i < children.length; i++) {
1936
+ if (isArray(children[i])) {
1937
+ return Array.prototype.concat.apply([], children);
1938
+ }
1939
+ }
1940
+ return children;
1941
+ }
1942
+ // 2. When the children contains constructs that always generated nested Arrays,
1943
+ // e.g. <template>, <slot>, v-for, or when the children is provided by user
1944
+ // with hand-written render functions / JSX. In such cases a full normalization
1945
+ // is needed to cater to all possible types of children values.
1946
+ function normalizeChildren(children) {
1947
+ return isPrimitive(children)
1948
+ ? [createTextVNode(children)]
1949
+ : isArray(children)
1950
+ ? normalizeArrayChildren(children)
1951
+ : undefined;
1952
+ }
1953
+ function isTextNode(node) {
1954
+ return isDef(node) && isDef(node.text) && isFalse(node.isComment);
1955
+ }
1956
+ function normalizeArrayChildren(children, nestedIndex) {
1957
+ var res = [];
1958
+ var i, c, lastIndex, last;
1959
+ for (i = 0; i < children.length; i++) {
1960
+ c = children[i];
1961
+ if (isUndef(c) || typeof c === 'boolean')
1962
+ continue;
1963
+ lastIndex = res.length - 1;
1964
+ last = res[lastIndex];
1965
+ // nested
1966
+ if (isArray(c)) {
1967
+ if (c.length > 0) {
1968
+ c = normalizeArrayChildren(c, "".concat(nestedIndex || '', "_").concat(i));
1969
+ // merge adjacent text nodes
1970
+ if (isTextNode(c[0]) && isTextNode(last)) {
1971
+ res[lastIndex] = createTextVNode(last.text + c[0].text);
1972
+ c.shift();
1973
+ }
1974
+ res.push.apply(res, c);
1975
+ }
1976
+ }
1977
+ else if (isPrimitive(c)) {
1978
+ if (isTextNode(last)) {
1979
+ // merge adjacent text nodes
1980
+ // this is necessary for SSR hydration because text nodes are
1981
+ // essentially merged when rendered to HTML strings
1982
+ res[lastIndex] = createTextVNode(last.text + c);
1983
+ }
1984
+ else if (c !== '') {
1985
+ // convert primitive to vnode
1986
+ res.push(createTextVNode(c));
1987
+ }
1988
+ }
1989
+ else {
1990
+ if (isTextNode(c) && isTextNode(last)) {
1991
+ // merge adjacent text nodes
1992
+ res[lastIndex] = createTextVNode(last.text + c.text);
1993
+ }
1994
+ else {
1995
+ // default key for nested array children (likely generated by v-for)
1996
+ if (isTrue(children._isVList) &&
1997
+ isDef(c.tag) &&
1998
+ isUndef(c.key) &&
1999
+ isDef(nestedIndex)) {
2000
+ c.key = "__vlist".concat(nestedIndex, "_").concat(i, "__");
2001
+ }
2002
+ res.push(c);
2003
+ }
2004
+ }
2005
+ }
2006
+ return res;
2007
+ }
2008
+
2009
+ var SIMPLE_NORMALIZE = 1;
2010
+ var ALWAYS_NORMALIZE = 2;
2011
+ // wrapper function for providing a more flexible interface
2012
+ // without getting yelled at by flow
2013
+ function createElement$1(context, tag, data, children, normalizationType, alwaysNormalize) {
2014
+ if (isArray(data) || isPrimitive(data)) {
2015
+ normalizationType = children;
2016
+ children = data;
2017
+ data = undefined;
2018
+ }
2019
+ if (isTrue(alwaysNormalize)) {
2020
+ normalizationType = ALWAYS_NORMALIZE;
2021
+ }
2022
+ return _createElement(context, tag, data, children, normalizationType);
2023
+ }
2024
+ function _createElement(context, tag, data, children, normalizationType) {
2025
+ if (isDef(data) && isDef(data.__ob__)) {
2026
+ process.env.NODE_ENV !== 'production' &&
2027
+ warn$2("Avoid using observed data object as vnode data: ".concat(JSON.stringify(data), "\n") + 'Always create fresh vnode data objects in each render!', context);
2028
+ return createEmptyVNode();
2029
+ }
2030
+ // object syntax in v-bind
2031
+ if (isDef(data) && isDef(data.is)) {
2032
+ tag = data.is;
2033
+ }
2034
+ if (!tag) {
2035
+ // in case of component :is set to falsy value
2036
+ return createEmptyVNode();
2037
+ }
2038
+ // warn against non-primitive key
2039
+ if (process.env.NODE_ENV !== 'production' && isDef(data) && isDef(data.key) && !isPrimitive(data.key)) {
2040
+ warn$2('Avoid using non-primitive value as key, ' +
2041
+ 'use string/number value instead.', context);
2042
+ }
2043
+ // support single function children as default scoped slot
2044
+ if (isArray(children) && isFunction(children[0])) {
2045
+ data = data || {};
2046
+ data.scopedSlots = { default: children[0] };
2047
+ children.length = 0;
2048
+ }
2049
+ if (normalizationType === ALWAYS_NORMALIZE) {
2050
+ children = normalizeChildren(children);
2051
+ }
2052
+ else if (normalizationType === SIMPLE_NORMALIZE) {
2053
+ children = simpleNormalizeChildren(children);
2054
+ }
2055
+ var vnode, ns;
2056
+ if (typeof tag === 'string') {
2057
+ var Ctor = void 0;
2058
+ ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);
2059
+ if (config.isReservedTag(tag)) {
2060
+ // platform built-in elements
2061
+ if (process.env.NODE_ENV !== 'production' &&
2062
+ isDef(data) &&
2063
+ isDef(data.nativeOn) &&
2064
+ data.tag !== 'component') {
2065
+ warn$2("The .native modifier for v-on is only valid on components but it was used on <".concat(tag, ">."), context);
2066
+ }
2067
+ vnode = new VNode(config.parsePlatformTagName(tag), data, children, undefined, undefined, context);
2068
+ }
2069
+ else if ((!data || !data.pre) &&
2070
+ isDef((Ctor = resolveAsset(context.$options, 'components', tag)))) {
2071
+ // component
2072
+ vnode = createComponent(Ctor, data, context, children, tag);
2073
+ }
2074
+ else {
2075
+ // unknown or unlisted namespaced elements
2076
+ // check at runtime because it may get assigned a namespace when its
2077
+ // parent normalizes children
2078
+ vnode = new VNode(tag, data, children, undefined, undefined, context);
2079
+ }
2080
+ }
2081
+ else {
2082
+ // direct component options / constructor
2083
+ vnode = createComponent(tag, data, context, children);
2084
+ }
2085
+ if (isArray(vnode)) {
2086
+ return vnode;
2087
+ }
2088
+ else if (isDef(vnode)) {
2089
+ if (isDef(ns))
2090
+ applyNS(vnode, ns);
2091
+ if (isDef(data))
2092
+ registerDeepBindings(data);
2093
+ return vnode;
2094
+ }
2095
+ else {
2096
+ return createEmptyVNode();
2097
+ }
2098
+ }
2099
+ function applyNS(vnode, ns, force) {
2100
+ vnode.ns = ns;
2101
+ if (vnode.tag === 'foreignObject') {
2102
+ // use default namespace inside foreignObject
2103
+ ns = undefined;
2104
+ force = true;
2105
+ }
2106
+ if (isDef(vnode.children)) {
2107
+ for (var i = 0, l = vnode.children.length; i < l; i++) {
2108
+ var child = vnode.children[i];
2109
+ if (isDef(child.tag) &&
2110
+ (isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {
2111
+ applyNS(child, ns, force);
2112
+ }
2113
+ }
2114
+ }
2115
+ }
2116
+ // ref #5318
2117
+ // necessary to ensure parent re-render when deep bindings like :style and
2118
+ // :class are used on slot nodes
2119
+ function registerDeepBindings(data) {
2120
+ if (isObject(data.style)) {
2121
+ traverse(data.style);
2122
+ }
2123
+ if (isObject(data.class)) {
2124
+ traverse(data.class);
2125
+ }
2126
+ }
2127
+
2128
+ /**
2129
+ * Runtime helper for rendering v-for lists.
2130
+ */
2131
+ function renderList(val, render) {
2132
+ var ret = null, i, l, keys, key;
2133
+ if (isArray(val) || typeof val === 'string') {
2134
+ ret = new Array(val.length);
2135
+ for (i = 0, l = val.length; i < l; i++) {
2136
+ ret[i] = render(val[i], i);
2137
+ }
2138
+ }
2139
+ else if (typeof val === 'number') {
2140
+ ret = new Array(val);
2141
+ for (i = 0; i < val; i++) {
2142
+ ret[i] = render(i + 1, i);
2143
+ }
2144
+ }
2145
+ else if (isObject(val)) {
2146
+ if (hasSymbol && val[Symbol.iterator]) {
2147
+ ret = [];
2148
+ var iterator = val[Symbol.iterator]();
2149
+ var result = iterator.next();
2150
+ while (!result.done) {
2151
+ ret.push(render(result.value, ret.length));
2152
+ result = iterator.next();
2153
+ }
2154
+ }
2155
+ else {
2156
+ keys = Object.keys(val);
2157
+ ret = new Array(keys.length);
2158
+ for (i = 0, l = keys.length; i < l; i++) {
2159
+ key = keys[i];
2160
+ ret[i] = render(val[key], key, i);
2161
+ }
2162
+ }
2163
+ }
2164
+ if (!isDef(ret)) {
2165
+ ret = [];
2166
+ }
2167
+ ret._isVList = true;
2168
+ return ret;
2169
+ }
2170
+
2171
+ /**
2172
+ * Runtime helper for rendering <slot>
2173
+ */
2174
+ function renderSlot(name, fallbackRender, props, bindObject) {
2175
+ var scopedSlotFn = this.$scopedSlots[name];
2176
+ var nodes;
2177
+ if (scopedSlotFn) {
2178
+ // scoped slot
2179
+ props = props || {};
2180
+ if (bindObject) {
2181
+ if (process.env.NODE_ENV !== 'production' && !isObject(bindObject)) {
2182
+ warn$2('slot v-bind without argument expects an Object', this);
2183
+ }
2184
+ props = extend(extend({}, bindObject), props);
2185
+ }
2186
+ nodes =
2187
+ scopedSlotFn(props) ||
2188
+ (isFunction(fallbackRender) ? fallbackRender() : fallbackRender);
2189
+ }
2190
+ else {
2191
+ nodes =
2192
+ this.$slots[name] ||
2193
+ (isFunction(fallbackRender) ? fallbackRender() : fallbackRender);
2194
+ }
2195
+ var target = props && props.slot;
2196
+ if (target) {
2197
+ return this.$createElement('template', { slot: target }, nodes);
2198
+ }
2199
+ else {
2200
+ return nodes;
2201
+ }
2202
+ }
2203
+
2204
+ /**
2205
+ * Runtime helper for resolving filters
2206
+ */
2207
+ function resolveFilter(id) {
2208
+ return resolveAsset(this.$options, 'filters', id, true) || identity;
2209
+ }
2210
+
2211
+ function isKeyNotMatch(expect, actual) {
2212
+ if (isArray(expect)) {
2213
+ return expect.indexOf(actual) === -1;
2214
+ }
2215
+ else {
2216
+ return expect !== actual;
2217
+ }
2218
+ }
2219
+ /**
2220
+ * Runtime helper for checking keyCodes from config.
2221
+ * exposed as Vue.prototype._k
2222
+ * passing in eventKeyName as last argument separately for backwards compat
2223
+ */
2224
+ function checkKeyCodes(eventKeyCode, key, builtInKeyCode, eventKeyName, builtInKeyName) {
2225
+ var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;
2226
+ if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {
2227
+ return isKeyNotMatch(builtInKeyName, eventKeyName);
2228
+ }
2229
+ else if (mappedKeyCode) {
2230
+ return isKeyNotMatch(mappedKeyCode, eventKeyCode);
2231
+ }
2232
+ else if (eventKeyName) {
2233
+ return hyphenate(eventKeyName) !== key;
2234
+ }
2235
+ return eventKeyCode === undefined;
2236
+ }
2237
+
2238
+ /**
2239
+ * Runtime helper for merging v-bind="object" into a VNode's data.
2240
+ */
2241
+ function bindObjectProps(data, tag, value, asProp, isSync) {
2242
+ if (value) {
2243
+ if (!isObject(value)) {
2244
+ process.env.NODE_ENV !== 'production' &&
2245
+ warn$2('v-bind without argument expects an Object or Array value', this);
2246
+ }
2247
+ else {
2248
+ if (isArray(value)) {
2249
+ value = toObject(value);
2250
+ }
2251
+ var hash = void 0;
2252
+ var _loop_1 = function (key) {
2253
+ if (key === 'class' || key === 'style' || isReservedAttribute(key)) {
2254
+ hash = data;
2255
+ }
2256
+ else {
2257
+ var type = data.attrs && data.attrs.type;
2258
+ hash =
2259
+ asProp || config.mustUseProp(tag, type, key)
2260
+ ? data.domProps || (data.domProps = {})
2261
+ : data.attrs || (data.attrs = {});
2262
+ }
2263
+ var camelizedKey = camelize(key);
2264
+ var hyphenatedKey = hyphenate(key);
2265
+ if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {
2266
+ hash[key] = value[key];
2267
+ if (isSync) {
2268
+ var on = data.on || (data.on = {});
2269
+ on["update:".concat(key)] = function ($event) {
2270
+ value[key] = $event;
2271
+ };
2272
+ }
2273
+ }
2274
+ };
2275
+ for (var key in value) {
2276
+ _loop_1(key);
2277
+ }
2278
+ }
2279
+ }
2280
+ return data;
2281
+ }
2282
+
2283
+ /**
2284
+ * Runtime helper for rendering static trees.
2285
+ */
2286
+ function renderStatic(index, isInFor) {
2287
+ var cached = this._staticTrees || (this._staticTrees = []);
2288
+ var tree = cached[index];
2289
+ // if has already-rendered static tree and not inside v-for,
2290
+ // we can reuse the same tree.
2291
+ if (tree && !isInFor) {
2292
+ return tree;
2293
+ }
2294
+ // otherwise, render a fresh tree.
2295
+ tree = cached[index] = this.$options.staticRenderFns[index].call(this._renderProxy, this._c, this // for render fns generated for functional component templates
2296
+ );
2297
+ markStatic$1(tree, "__static__".concat(index), false);
2298
+ return tree;
2299
+ }
2300
+ /**
2301
+ * Runtime helper for v-once.
2302
+ * Effectively it means marking the node as static with a unique key.
2303
+ */
2304
+ function markOnce(tree, index, key) {
2305
+ markStatic$1(tree, "__once__".concat(index).concat(key ? "_".concat(key) : ""), true);
2306
+ return tree;
2307
+ }
2308
+ function markStatic$1(tree, key, isOnce) {
2309
+ if (isArray(tree)) {
2310
+ for (var i = 0; i < tree.length; i++) {
2311
+ if (tree[i] && typeof tree[i] !== 'string') {
2312
+ markStaticNode(tree[i], "".concat(key, "_").concat(i), isOnce);
2313
+ }
2314
+ }
2315
+ }
2316
+ else {
2317
+ markStaticNode(tree, key, isOnce);
2318
+ }
2319
+ }
2320
+ function markStaticNode(node, key, isOnce) {
2321
+ node.isStatic = true;
2322
+ node.key = key;
2323
+ node.isOnce = isOnce;
2324
+ }
2325
+
2326
+ function bindObjectListeners(data, value) {
2327
+ if (value) {
2328
+ if (!isPlainObject(value)) {
2329
+ process.env.NODE_ENV !== 'production' && warn$2('v-on without argument expects an Object value', this);
2330
+ }
2331
+ else {
2332
+ var on = (data.on = data.on ? extend({}, data.on) : {});
2333
+ for (var key in value) {
2334
+ var existing = on[key];
2335
+ var ours = value[key];
2336
+ on[key] = existing ? [].concat(existing, ours) : ours;
2337
+ }
2338
+ }
2339
+ }
2340
+ return data;
2341
+ }
2342
+
2343
+ function resolveScopedSlots(fns, res,
2344
+ // the following are added in 2.6
2345
+ hasDynamicKeys, contentHashKey) {
2346
+ res = res || { $stable: !hasDynamicKeys };
2347
+ for (var i = 0; i < fns.length; i++) {
2348
+ var slot = fns[i];
2349
+ if (isArray(slot)) {
2350
+ resolveScopedSlots(slot, res, hasDynamicKeys);
2351
+ }
2352
+ else if (slot) {
2353
+ // marker for reverse proxying v-slot without scope on this.$slots
2354
+ // @ts-expect-error
2355
+ if (slot.proxy) {
2356
+ // @ts-expect-error
2357
+ slot.fn.proxy = true;
2358
+ }
2359
+ res[slot.key] = slot.fn;
2360
+ }
2361
+ }
2362
+ if (contentHashKey) {
2363
+ res.$key = contentHashKey;
2364
+ }
2365
+ return res;
2366
+ }
2367
+
2368
+ // helper to process dynamic keys for dynamic arguments in v-bind and v-on.
2369
+ function bindDynamicKeys(baseObj, values) {
2370
+ for (var i = 0; i < values.length; i += 2) {
2371
+ var key = values[i];
2372
+ if (typeof key === 'string' && key) {
2373
+ baseObj[values[i]] = values[i + 1];
2374
+ }
2375
+ else if (process.env.NODE_ENV !== 'production' && key !== '' && key !== null) {
2376
+ // null is a special value for explicitly removing a binding
2377
+ warn$2("Invalid value for dynamic directive argument (expected string or null): ".concat(key), this);
2378
+ }
2379
+ }
2380
+ return baseObj;
2381
+ }
2382
+ // helper to dynamically append modifier runtime markers to event names.
2383
+ // ensure only append when value is already string, otherwise it will be cast
2384
+ // to string and cause the type check to miss.
2385
+ function prependModifier(value, symbol) {
2386
+ return typeof value === 'string' ? symbol + value : value;
2387
+ }
2388
+
2389
+ function installRenderHelpers(target) {
2390
+ target._o = markOnce;
2391
+ target._n = toNumber;
2392
+ target._s = toString;
2393
+ target._l = renderList;
2394
+ target._t = renderSlot;
2395
+ target._q = looseEqual;
2396
+ target._i = looseIndexOf;
2397
+ target._m = renderStatic;
2398
+ target._f = resolveFilter;
2399
+ target._k = checkKeyCodes;
2400
+ target._b = bindObjectProps;
2401
+ target._v = createTextVNode;
2402
+ target._e = createEmptyVNode;
2403
+ target._u = resolveScopedSlots;
2404
+ target._g = bindObjectListeners;
2405
+ target._d = bindDynamicKeys;
2406
+ target._p = prependModifier;
2407
+ }
2408
+
2409
+ /**
2410
+ * Runtime helper for resolving raw children VNodes into a slot object.
2411
+ */
2412
+ function resolveSlots(children, context) {
2413
+ if (!children || !children.length) {
2414
+ return {};
2415
+ }
2416
+ var slots = {};
2417
+ for (var i = 0, l = children.length; i < l; i++) {
2418
+ var child = children[i];
2419
+ var data = child.data;
2420
+ // remove slot attribute if the node is resolved as a Vue slot node
2421
+ if (data && data.attrs && data.attrs.slot) {
2422
+ delete data.attrs.slot;
2423
+ }
2424
+ // named slots should only be respected if the vnode was rendered in the
2425
+ // same context.
2426
+ if ((child.context === context || child.fnContext === context) &&
2427
+ data &&
2428
+ data.slot != null) {
2429
+ var name_1 = data.slot;
2430
+ var slot = slots[name_1] || (slots[name_1] = []);
2431
+ if (child.tag === 'template') {
2432
+ slot.push.apply(slot, child.children || []);
2433
+ }
2434
+ else {
2435
+ slot.push(child);
2436
+ }
2437
+ }
2438
+ else {
2439
+ (slots.default || (slots.default = [])).push(child);
2440
+ }
2441
+ }
2442
+ // ignore slots that contains only whitespace
2443
+ for (var name_2 in slots) {
2444
+ if (slots[name_2].every(isWhitespace)) {
2445
+ delete slots[name_2];
2446
+ }
2447
+ }
2448
+ return slots;
2449
+ }
2450
+ function isWhitespace(node) {
2451
+ return (node.isComment && !node.asyncFactory) || node.text === ' ';
2452
+ }
2453
+
2454
+ function isAsyncPlaceholder(node) {
2455
+ // @ts-expect-error not really boolean type
2456
+ return node.isComment && node.asyncFactory;
2457
+ }
2458
+
2459
+ function normalizeScopedSlots(ownerVm, scopedSlots, normalSlots, prevScopedSlots) {
2460
+ var res;
2461
+ var hasNormalSlots = Object.keys(normalSlots).length > 0;
2462
+ var isStable = scopedSlots ? !!scopedSlots.$stable : !hasNormalSlots;
2463
+ var key = scopedSlots && scopedSlots.$key;
2464
+ if (!scopedSlots) {
2465
+ res = {};
2466
+ }
2467
+ else if (scopedSlots._normalized) {
2468
+ // fast path 1: child component re-render only, parent did not change
2469
+ return scopedSlots._normalized;
2470
+ }
2471
+ else if (isStable &&
2472
+ prevScopedSlots &&
2473
+ prevScopedSlots !== emptyObject &&
2474
+ key === prevScopedSlots.$key &&
2475
+ !hasNormalSlots &&
2476
+ !prevScopedSlots.$hasNormal) {
2477
+ // fast path 2: stable scoped slots w/ no normal slots to proxy,
2478
+ // only need to normalize once
2479
+ return prevScopedSlots;
2480
+ }
2481
+ else {
2482
+ res = {};
2483
+ for (var key_1 in scopedSlots) {
2484
+ if (scopedSlots[key_1] && key_1[0] !== '$') {
2485
+ res[key_1] = normalizeScopedSlot(ownerVm, normalSlots, key_1, scopedSlots[key_1]);
2486
+ }
2487
+ }
2488
+ }
2489
+ // expose normal slots on scopedSlots
2490
+ for (var key_2 in normalSlots) {
2491
+ if (!(key_2 in res)) {
2492
+ res[key_2] = proxyNormalSlot(normalSlots, key_2);
2493
+ }
2494
+ }
2495
+ // avoriaz seems to mock a non-extensible $scopedSlots object
2496
+ // and when that is passed down this would cause an error
2497
+ if (scopedSlots && Object.isExtensible(scopedSlots)) {
2498
+ scopedSlots._normalized = res;
2499
+ }
2500
+ def(res, '$stable', isStable);
2501
+ def(res, '$key', key);
2502
+ def(res, '$hasNormal', hasNormalSlots);
2503
+ return res;
2504
+ }
2505
+ function normalizeScopedSlot(vm, normalSlots, key, fn) {
2506
+ var normalized = function () {
2507
+ var cur = currentInstance;
2508
+ setCurrentInstance(vm);
2509
+ var res = arguments.length ? fn.apply(null, arguments) : fn({});
2510
+ res =
2511
+ res && typeof res === 'object' && !isArray(res)
2512
+ ? [res] // single vnode
2513
+ : normalizeChildren(res);
2514
+ var vnode = res && res[0];
2515
+ setCurrentInstance(cur);
2516
+ return res &&
2517
+ (!vnode ||
2518
+ (res.length === 1 && vnode.isComment && !isAsyncPlaceholder(vnode))) // #9658, #10391
2519
+ ? undefined
2520
+ : res;
2521
+ };
2522
+ // this is a slot using the new v-slot syntax without scope. although it is
2523
+ // compiled as a scoped slot, render fn users would expect it to be present
2524
+ // on this.$slots because the usage is semantically a normal slot.
2525
+ if (fn.proxy) {
2526
+ Object.defineProperty(normalSlots, key, {
2527
+ get: normalized,
2528
+ enumerable: true,
2529
+ configurable: true
2530
+ });
2531
+ }
2532
+ return normalized;
2533
+ }
2534
+ function proxyNormalSlot(slots, key) {
2535
+ return function () { return slots[key]; };
2536
+ }
2537
+
2538
+ function initSetup(vm) {
2539
+ var options = vm.$options;
2540
+ var setup = options.setup;
2541
+ if (setup) {
2542
+ var ctx = (vm._setupContext = createSetupContext(vm));
2543
+ setCurrentInstance(vm);
2544
+ pushTarget();
2545
+ var setupResult = invokeWithErrorHandling(setup, null, [vm._props || shallowReactive({}), ctx], vm, "setup");
2546
+ popTarget();
2547
+ setCurrentInstance();
2548
+ if (isFunction(setupResult)) {
2549
+ // render function
2550
+ // @ts-ignore
2551
+ options.render = setupResult;
2552
+ }
2553
+ else if (isObject(setupResult)) {
2554
+ // bindings
2555
+ if (process.env.NODE_ENV !== 'production' && setupResult instanceof VNode) {
2556
+ warn$2("setup() should not return VNodes directly - " +
2557
+ "return a render function instead.");
2558
+ }
2559
+ vm._setupState = setupResult;
2560
+ // __sfc indicates compiled bindings from <script setup>
2561
+ if (!setupResult.__sfc) {
2562
+ for (var key in setupResult) {
2563
+ if (!isReserved(key)) {
2564
+ proxyWithRefUnwrap(vm, setupResult, key);
2565
+ }
2566
+ else if (process.env.NODE_ENV !== 'production') {
2567
+ warn$2("Avoid using variables that start with _ or $ in setup().");
2568
+ }
2569
+ }
2570
+ }
2571
+ else {
2572
+ // exposed for compiled render fn
2573
+ var proxy = (vm._setupProxy = {});
2574
+ for (var key in setupResult) {
2575
+ if (key !== '__sfc') {
2576
+ proxyWithRefUnwrap(proxy, setupResult, key);
2577
+ }
2578
+ }
2579
+ }
2580
+ }
2581
+ else if (process.env.NODE_ENV !== 'production' && setupResult !== undefined) {
2582
+ warn$2("setup() should return an object. Received: ".concat(setupResult === null ? 'null' : typeof setupResult));
2583
+ }
2584
+ }
2585
+ }
2586
+ function createSetupContext(vm) {
2587
+ var exposeCalled = false;
2588
+ return {
2589
+ get attrs() {
2590
+ if (!vm._attrsProxy) {
2591
+ var proxy = (vm._attrsProxy = {});
2592
+ def(proxy, '_v_attr_proxy', true);
2593
+ syncSetupProxy(proxy, vm.$attrs, emptyObject, vm, '$attrs');
2594
+ }
2595
+ return vm._attrsProxy;
2596
+ },
2597
+ get listeners() {
2598
+ if (!vm._listenersProxy) {
2599
+ var proxy = (vm._listenersProxy = {});
2600
+ syncSetupProxy(proxy, vm.$listeners, emptyObject, vm, '$listeners');
2601
+ }
2602
+ return vm._listenersProxy;
2603
+ },
2604
+ get slots() {
2605
+ return initSlotsProxy(vm);
2606
+ },
2607
+ emit: bind$1(vm.$emit, vm),
2608
+ expose: function (exposed) {
2609
+ if (process.env.NODE_ENV !== 'production') {
2610
+ if (exposeCalled) {
2611
+ warn$2("expose() should be called only once per setup().", vm);
2612
+ }
2613
+ exposeCalled = true;
2614
+ }
2615
+ if (exposed) {
2616
+ Object.keys(exposed).forEach(function (key) {
2617
+ return proxyWithRefUnwrap(vm, exposed, key);
2618
+ });
2619
+ }
2620
+ }
2621
+ };
2622
+ }
2623
+ function syncSetupProxy(to, from, prev, instance, type) {
2624
+ var changed = false;
2625
+ for (var key in from) {
2626
+ if (!(key in to)) {
2627
+ changed = true;
2628
+ defineProxyAttr(to, key, instance, type);
2629
+ }
2630
+ else if (from[key] !== prev[key]) {
2631
+ changed = true;
2632
+ }
2633
+ }
2634
+ for (var key in to) {
2635
+ if (!(key in from)) {
2636
+ changed = true;
2637
+ delete to[key];
2638
+ }
2639
+ }
2640
+ return changed;
2641
+ }
2642
+ function defineProxyAttr(proxy, key, instance, type) {
2643
+ Object.defineProperty(proxy, key, {
2644
+ enumerable: true,
2645
+ configurable: true,
2646
+ get: function () {
2647
+ return instance[type][key];
2648
+ }
2649
+ });
2650
+ }
2651
+ function initSlotsProxy(vm) {
2652
+ if (!vm._slotsProxy) {
2653
+ syncSetupSlots((vm._slotsProxy = {}), vm.$scopedSlots);
2654
+ }
2655
+ return vm._slotsProxy;
2656
+ }
2657
+ function syncSetupSlots(to, from) {
2658
+ for (var key in from) {
2659
+ to[key] = from[key];
2660
+ }
2661
+ for (var key in to) {
2662
+ if (!(key in from)) {
2663
+ delete to[key];
2664
+ }
2665
+ }
2666
+ }
2667
+ /**
2668
+ * @internal use manual type def because public setup context type relies on
2669
+ * legacy VNode types
2670
+ */
2671
+ function useSlots() {
2672
+ return getContext().slots;
2673
+ }
2674
+ /**
2675
+ * @internal use manual type def because public setup context type relies on
2676
+ * legacy VNode types
2677
+ */
2678
+ function useAttrs() {
2679
+ return getContext().attrs;
2680
+ }
2681
+ /**
2682
+ * Vue 2 only
2683
+ * @internal use manual type def because public setup context type relies on
2684
+ * legacy VNode types
2685
+ */
2686
+ function useListeners() {
2687
+ return getContext().listeners;
2688
+ }
2689
+ function getContext() {
2690
+ if (process.env.NODE_ENV !== 'production' && !currentInstance) {
2691
+ warn$2("useContext() called without active instance.");
2692
+ }
2693
+ var vm = currentInstance;
2694
+ return vm._setupContext || (vm._setupContext = createSetupContext(vm));
2695
+ }
2696
+ /**
2697
+ * Runtime helper for merging default declarations. Imported by compiled code
2698
+ * only.
2699
+ * @internal
2700
+ */
2701
+ function mergeDefaults(raw, defaults) {
2702
+ var props = isArray(raw)
2703
+ ? raw.reduce(function (normalized, p) { return ((normalized[p] = {}), normalized); }, {})
2704
+ : raw;
2705
+ for (var key in defaults) {
2706
+ var opt = props[key];
2707
+ if (opt) {
2708
+ if (isArray(opt) || isFunction(opt)) {
2709
+ props[key] = { type: opt, default: defaults[key] };
2710
+ }
2711
+ else {
2712
+ opt.default = defaults[key];
2713
+ }
2714
+ }
2715
+ else if (opt === null) {
2716
+ props[key] = { default: defaults[key] };
2717
+ }
2718
+ else if (process.env.NODE_ENV !== 'production') {
2719
+ warn$2("props default key \"".concat(key, "\" has no corresponding declaration."));
2720
+ }
2721
+ }
2722
+ return props;
2723
+ }
2724
+
2725
+ function initRender(vm) {
2726
+ vm._vnode = null; // the root of the child tree
2727
+ vm._staticTrees = null; // v-once cached trees
2728
+ var options = vm.$options;
2729
+ var parentVnode = (vm.$vnode = options._parentVnode); // the placeholder node in parent tree
2730
+ var renderContext = parentVnode && parentVnode.context;
2731
+ vm.$slots = resolveSlots(options._renderChildren, renderContext);
2732
+ vm.$scopedSlots = parentVnode
2733
+ ? normalizeScopedSlots(vm.$parent, parentVnode.data.scopedSlots, vm.$slots)
2734
+ : emptyObject;
2735
+ // bind the createElement fn to this instance
2736
+ // so that we get proper render context inside it.
2737
+ // args order: tag, data, children, normalizationType, alwaysNormalize
2738
+ // internal version is used by render functions compiled from templates
2739
+ // @ts-expect-error
2740
+ vm._c = function (a, b, c, d) { return createElement$1(vm, a, b, c, d, false); };
2741
+ // normalization is always applied for the public version, used in
2742
+ // user-written render functions.
2743
+ // @ts-expect-error
2744
+ vm.$createElement = function (a, b, c, d) { return createElement$1(vm, a, b, c, d, true); };
2745
+ // $attrs & $listeners are exposed for easier HOC creation.
2746
+ // they need to be reactive so that HOCs using them are always updated
2747
+ var parentData = parentVnode && parentVnode.data;
2748
+ /* istanbul ignore else */
2749
+ if (process.env.NODE_ENV !== 'production') {
2750
+ defineReactive(vm, '$attrs', (parentData && parentData.attrs) || emptyObject, function () {
2751
+ !isUpdatingChildComponent && warn$2("$attrs is readonly.", vm);
2752
+ }, true);
2753
+ defineReactive(vm, '$listeners', options._parentListeners || emptyObject, function () {
2754
+ !isUpdatingChildComponent && warn$2("$listeners is readonly.", vm);
2755
+ }, true);
2756
+ }
2757
+ else {
2758
+ defineReactive(vm, '$attrs', (parentData && parentData.attrs) || emptyObject, null, true);
2759
+ defineReactive(vm, '$listeners', options._parentListeners || emptyObject, null, true);
2760
+ }
2761
+ }
2762
+ var currentRenderingInstance = null;
2763
+ function renderMixin(Vue) {
2764
+ // install runtime convenience helpers
2765
+ installRenderHelpers(Vue.prototype);
2766
+ Vue.prototype.$nextTick = function (fn) {
2767
+ return nextTick(fn, this);
2768
+ };
2769
+ Vue.prototype._render = function () {
2770
+ var vm = this;
2771
+ var _a = vm.$options, render = _a.render, _parentVnode = _a._parentVnode;
2772
+ if (_parentVnode && vm._isMounted) {
2773
+ vm.$scopedSlots = normalizeScopedSlots(vm.$parent, _parentVnode.data.scopedSlots, vm.$slots, vm.$scopedSlots);
2774
+ if (vm._slotsProxy) {
2775
+ syncSetupSlots(vm._slotsProxy, vm.$scopedSlots);
2776
+ }
2777
+ }
2778
+ // set parent vnode. this allows render functions to have access
2779
+ // to the data on the placeholder node.
2780
+ vm.$vnode = _parentVnode;
2781
+ // render self
2782
+ var vnode;
2783
+ try {
2784
+ // There's no need to maintain a stack because all render fns are called
2785
+ // separately from one another. Nested component's render fns are called
2786
+ // when parent component is patched.
2787
+ setCurrentInstance(vm);
2788
+ currentRenderingInstance = vm;
2789
+ vnode = render.call(vm._renderProxy, vm.$createElement);
2790
+ }
2791
+ catch (e) {
2792
+ handleError(e, vm, "render");
2793
+ // return error render result,
2794
+ // or previous vnode to prevent render error causing blank component
2795
+ /* istanbul ignore else */
2796
+ if (process.env.NODE_ENV !== 'production' && vm.$options.renderError) {
2797
+ try {
2798
+ vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);
2799
+ }
2800
+ catch (e) {
2801
+ handleError(e, vm, "renderError");
2802
+ vnode = vm._vnode;
2803
+ }
2804
+ }
2805
+ else {
2806
+ vnode = vm._vnode;
2807
+ }
2808
+ }
2809
+ finally {
2810
+ currentRenderingInstance = null;
2811
+ setCurrentInstance();
2812
+ }
2813
+ // if the returned array contains only a single node, allow it
2814
+ if (isArray(vnode) && vnode.length === 1) {
2815
+ vnode = vnode[0];
2816
+ }
2817
+ // return empty vnode in case the render function errored out
2818
+ if (!(vnode instanceof VNode)) {
2819
+ if (process.env.NODE_ENV !== 'production' && isArray(vnode)) {
2820
+ warn$2('Multiple root nodes returned from render function. Render function ' +
2821
+ 'should return a single root node.', vm);
2822
+ }
2823
+ vnode = createEmptyVNode();
2824
+ }
2825
+ // set parent
2826
+ vnode.parent = _parentVnode;
2827
+ return vnode;
2828
+ };
2829
+ }
2830
+
2831
+ function ensureCtor(comp, base) {
2832
+ if (comp.__esModule || (hasSymbol && comp[Symbol.toStringTag] === 'Module')) {
2833
+ comp = comp.default;
2834
+ }
2835
+ return isObject(comp) ? base.extend(comp) : comp;
2836
+ }
2837
+ function createAsyncPlaceholder(factory, data, context, children, tag) {
2838
+ var node = createEmptyVNode();
2839
+ node.asyncFactory = factory;
2840
+ node.asyncMeta = { data: data, context: context, children: children, tag: tag };
2841
+ return node;
2842
+ }
2843
+ function resolveAsyncComponent(factory, baseCtor) {
2844
+ if (isTrue(factory.error) && isDef(factory.errorComp)) {
2845
+ return factory.errorComp;
2846
+ }
2847
+ if (isDef(factory.resolved)) {
2848
+ return factory.resolved;
2849
+ }
2850
+ var owner = currentRenderingInstance;
2851
+ if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {
2852
+ // already pending
2853
+ factory.owners.push(owner);
2854
+ }
2855
+ if (isTrue(factory.loading) && isDef(factory.loadingComp)) {
2856
+ return factory.loadingComp;
2857
+ }
2858
+ if (owner && !isDef(factory.owners)) {
2859
+ var owners_1 = (factory.owners = [owner]);
2860
+ var sync_1 = true;
2861
+ var timerLoading_1 = null;
2862
+ var timerTimeout_1 = null;
2863
+ owner.$on('hook:destroyed', function () { return remove$2(owners_1, owner); });
2864
+ var forceRender_1 = function (renderCompleted) {
2865
+ for (var i = 0, l = owners_1.length; i < l; i++) {
2866
+ owners_1[i].$forceUpdate();
2867
+ }
2868
+ if (renderCompleted) {
2869
+ owners_1.length = 0;
2870
+ if (timerLoading_1 !== null) {
2871
+ clearTimeout(timerLoading_1);
2872
+ timerLoading_1 = null;
2873
+ }
2874
+ if (timerTimeout_1 !== null) {
2875
+ clearTimeout(timerTimeout_1);
2876
+ timerTimeout_1 = null;
2877
+ }
2878
+ }
2879
+ };
2880
+ var resolve = once(function (res) {
2881
+ // cache resolved
2882
+ factory.resolved = ensureCtor(res, baseCtor);
2883
+ // invoke callbacks only if this is not a synchronous resolve
2884
+ // (async resolves are shimmed as synchronous during SSR)
2885
+ if (!sync_1) {
2886
+ forceRender_1(true);
2887
+ }
2888
+ else {
2889
+ owners_1.length = 0;
2890
+ }
2891
+ });
2892
+ var reject_1 = once(function (reason) {
2893
+ process.env.NODE_ENV !== 'production' &&
2894
+ warn$2("Failed to resolve async component: ".concat(String(factory)) +
2895
+ (reason ? "\nReason: ".concat(reason) : ''));
2896
+ if (isDef(factory.errorComp)) {
2897
+ factory.error = true;
2898
+ forceRender_1(true);
2899
+ }
2900
+ });
2901
+ var res_1 = factory(resolve, reject_1);
2902
+ if (isObject(res_1)) {
2903
+ if (isPromise(res_1)) {
2904
+ // () => Promise
2905
+ if (isUndef(factory.resolved)) {
2906
+ res_1.then(resolve, reject_1);
2907
+ }
2908
+ }
2909
+ else if (isPromise(res_1.component)) {
2910
+ res_1.component.then(resolve, reject_1);
2911
+ if (isDef(res_1.error)) {
2912
+ factory.errorComp = ensureCtor(res_1.error, baseCtor);
2913
+ }
2914
+ if (isDef(res_1.loading)) {
2915
+ factory.loadingComp = ensureCtor(res_1.loading, baseCtor);
2916
+ if (res_1.delay === 0) {
2917
+ factory.loading = true;
2918
+ }
2919
+ else {
2920
+ // @ts-expect-error NodeJS timeout type
2921
+ timerLoading_1 = setTimeout(function () {
2922
+ timerLoading_1 = null;
2923
+ if (isUndef(factory.resolved) && isUndef(factory.error)) {
2924
+ factory.loading = true;
2925
+ forceRender_1(false);
2926
+ }
2927
+ }, res_1.delay || 200);
2928
+ }
2929
+ }
2930
+ if (isDef(res_1.timeout)) {
2931
+ // @ts-expect-error NodeJS timeout type
2932
+ timerTimeout_1 = setTimeout(function () {
2933
+ timerTimeout_1 = null;
2934
+ if (isUndef(factory.resolved)) {
2935
+ reject_1(process.env.NODE_ENV !== 'production' ? "timeout (".concat(res_1.timeout, "ms)") : null);
2936
+ }
2937
+ }, res_1.timeout);
2938
+ }
2939
+ }
2940
+ }
2941
+ sync_1 = false;
2942
+ // return in case resolved synchronously
2943
+ return factory.loading ? factory.loadingComp : factory.resolved;
2944
+ }
2945
+ }
2946
+
2947
+ function getFirstComponentChild(children) {
2948
+ if (isArray(children)) {
2949
+ for (var i = 0; i < children.length; i++) {
2950
+ var c = children[i];
2951
+ if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {
2952
+ return c;
2953
+ }
2954
+ }
2955
+ }
2956
+ }
2957
+
2958
+ function initEvents(vm) {
2959
+ vm._events = Object.create(null);
2960
+ vm._hasHookEvent = false;
2961
+ // init parent attached events
2962
+ var listeners = vm.$options._parentListeners;
2963
+ if (listeners) {
2964
+ updateComponentListeners(vm, listeners);
2965
+ }
2966
+ }
2967
+ var target$1;
2968
+ function add$1(event, fn) {
2969
+ target$1.$on(event, fn);
2970
+ }
2971
+ function remove$1(event, fn) {
2972
+ target$1.$off(event, fn);
2973
+ }
2974
+ function createOnceHandler$1(event, fn) {
2975
+ var _target = target$1;
2976
+ return function onceHandler() {
2977
+ var res = fn.apply(null, arguments);
2978
+ if (res !== null) {
2979
+ _target.$off(event, onceHandler);
2980
+ }
2981
+ };
2982
+ }
2983
+ function updateComponentListeners(vm, listeners, oldListeners) {
2984
+ target$1 = vm;
2985
+ updateListeners(listeners, oldListeners || {}, add$1, remove$1, createOnceHandler$1, vm);
2986
+ target$1 = undefined;
2987
+ }
2988
+ function eventsMixin(Vue) {
2989
+ var hookRE = /^hook:/;
2990
+ Vue.prototype.$on = function (event, fn) {
2991
+ var vm = this;
2992
+ if (isArray(event)) {
2993
+ for (var i = 0, l = event.length; i < l; i++) {
2994
+ vm.$on(event[i], fn);
2995
+ }
2996
+ }
2997
+ else {
2998
+ (vm._events[event] || (vm._events[event] = [])).push(fn);
2999
+ // optimize hook:event cost by using a boolean flag marked at registration
3000
+ // instead of a hash lookup
3001
+ if (hookRE.test(event)) {
3002
+ vm._hasHookEvent = true;
3003
+ }
3004
+ }
3005
+ return vm;
3006
+ };
3007
+ Vue.prototype.$once = function (event, fn) {
3008
+ var vm = this;
3009
+ function on() {
3010
+ vm.$off(event, on);
3011
+ fn.apply(vm, arguments);
3012
+ }
3013
+ on.fn = fn;
3014
+ vm.$on(event, on);
3015
+ return vm;
3016
+ };
3017
+ Vue.prototype.$off = function (event, fn) {
3018
+ var vm = this;
3019
+ // all
3020
+ if (!arguments.length) {
3021
+ vm._events = Object.create(null);
3022
+ return vm;
3023
+ }
3024
+ // array of events
3025
+ if (isArray(event)) {
3026
+ for (var i_1 = 0, l = event.length; i_1 < l; i_1++) {
3027
+ vm.$off(event[i_1], fn);
3028
+ }
3029
+ return vm;
3030
+ }
3031
+ // specific event
3032
+ var cbs = vm._events[event];
3033
+ if (!cbs) {
3034
+ return vm;
3035
+ }
3036
+ if (!fn) {
3037
+ vm._events[event] = null;
3038
+ return vm;
3039
+ }
3040
+ // specific handler
3041
+ var cb;
3042
+ var i = cbs.length;
3043
+ while (i--) {
3044
+ cb = cbs[i];
3045
+ if (cb === fn || cb.fn === fn) {
3046
+ cbs.splice(i, 1);
3047
+ break;
3048
+ }
3049
+ }
3050
+ return vm;
3051
+ };
3052
+ Vue.prototype.$emit = function (event) {
3053
+ var vm = this;
3054
+ if (process.env.NODE_ENV !== 'production') {
3055
+ var lowerCaseEvent = event.toLowerCase();
3056
+ if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {
3057
+ tip("Event \"".concat(lowerCaseEvent, "\" is emitted in component ") +
3058
+ "".concat(formatComponentName(vm), " but the handler is registered for \"").concat(event, "\". ") +
3059
+ "Note that HTML attributes are case-insensitive and you cannot use " +
3060
+ "v-on to listen to camelCase events when using in-DOM templates. " +
3061
+ "You should probably use \"".concat(hyphenate(event), "\" instead of \"").concat(event, "\"."));
3062
+ }
3063
+ }
3064
+ var cbs = vm._events[event];
3065
+ if (cbs) {
3066
+ cbs = cbs.length > 1 ? toArray(cbs) : cbs;
3067
+ var args = toArray(arguments, 1);
3068
+ var info = "event handler for \"".concat(event, "\"");
3069
+ for (var i = 0, l = cbs.length; i < l; i++) {
3070
+ invokeWithErrorHandling(cbs[i], vm, args, vm, info);
3071
+ }
3072
+ }
3073
+ return vm;
3074
+ };
3075
+ }
3076
+
3077
+ var activeInstance = null;
3078
+ var isUpdatingChildComponent = false;
3079
+ function setActiveInstance(vm) {
3080
+ var prevActiveInstance = activeInstance;
3081
+ activeInstance = vm;
3082
+ return function () {
3083
+ activeInstance = prevActiveInstance;
3084
+ };
3085
+ }
3086
+ function initLifecycle(vm) {
3087
+ var options = vm.$options;
3088
+ // locate first non-abstract parent
3089
+ var parent = options.parent;
3090
+ if (parent && !options.abstract) {
3091
+ while (parent.$options.abstract && parent.$parent) {
3092
+ parent = parent.$parent;
3093
+ }
3094
+ parent.$children.push(vm);
3095
+ }
3096
+ vm.$parent = parent;
3097
+ vm.$root = parent ? parent.$root : vm;
3098
+ vm.$children = [];
3099
+ vm.$refs = {};
3100
+ vm._provided = parent ? parent._provided : Object.create(null);
3101
+ vm._watcher = null;
3102
+ vm._inactive = null;
3103
+ vm._directInactive = false;
3104
+ vm._isMounted = false;
3105
+ vm._isDestroyed = false;
3106
+ vm._isBeingDestroyed = false;
3107
+ }
3108
+ function lifecycleMixin(Vue) {
3109
+ Vue.prototype._update = function (vnode, hydrating) {
3110
+ var vm = this;
3111
+ var prevEl = vm.$el;
3112
+ var prevVnode = vm._vnode;
3113
+ var restoreActiveInstance = setActiveInstance(vm);
3114
+ vm._vnode = vnode;
3115
+ // Vue.prototype.__patch__ is injected in entry points
3116
+ // based on the rendering backend used.
3117
+ if (!prevVnode) {
3118
+ // initial render
3119
+ vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */);
3120
+ }
3121
+ else {
3122
+ // updates
3123
+ vm.$el = vm.__patch__(prevVnode, vnode);
3124
+ }
3125
+ restoreActiveInstance();
3126
+ // update __vue__ reference
3127
+ if (prevEl) {
3128
+ prevEl.__vue__ = null;
3129
+ }
3130
+ if (vm.$el) {
3131
+ vm.$el.__vue__ = vm;
3132
+ }
3133
+ // if parent is an HOC, update its $el as well
3134
+ var wrapper = vm;
3135
+ while (wrapper &&
3136
+ wrapper.$vnode &&
3137
+ wrapper.$parent &&
3138
+ wrapper.$vnode === wrapper.$parent._vnode) {
3139
+ wrapper.$parent.$el = wrapper.$el;
3140
+ wrapper = wrapper.$parent;
3141
+ }
3142
+ // updated hook is called by the scheduler to ensure that children are
3143
+ // updated in a parent's updated hook.
3144
+ };
3145
+ Vue.prototype.$forceUpdate = function () {
3146
+ var vm = this;
3147
+ if (vm._watcher) {
3148
+ vm._watcher.update();
3149
+ }
3150
+ };
3151
+ Vue.prototype.$destroy = function () {
3152
+ var vm = this;
3153
+ if (vm._isBeingDestroyed) {
3154
+ return;
3155
+ }
3156
+ callHook$1(vm, 'beforeDestroy');
3157
+ vm._isBeingDestroyed = true;
3158
+ // remove self from parent
3159
+ var parent = vm.$parent;
3160
+ if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {
3161
+ remove$2(parent.$children, vm);
3162
+ }
3163
+ // teardown scope. this includes both the render watcher and other
3164
+ // watchers created
3165
+ vm._scope.stop();
3166
+ // remove reference from data ob
3167
+ // frozen object may not have observer.
3168
+ if (vm._data.__ob__) {
3169
+ vm._data.__ob__.vmCount--;
3170
+ }
3171
+ // call the last hook...
3172
+ vm._isDestroyed = true;
3173
+ // invoke destroy hooks on current rendered tree
3174
+ vm.__patch__(vm._vnode, null);
3175
+ // fire destroyed hook
3176
+ callHook$1(vm, 'destroyed');
3177
+ // turn off all instance listeners.
3178
+ vm.$off();
3179
+ // remove __vue__ reference
3180
+ if (vm.$el) {
3181
+ vm.$el.__vue__ = null;
3182
+ }
3183
+ // release circular reference (#6759)
3184
+ if (vm.$vnode) {
3185
+ vm.$vnode.parent = null;
3186
+ }
3187
+ };
3188
+ }
3189
+ function mountComponent(vm, el, hydrating) {
3190
+ vm.$el = el;
3191
+ if (!vm.$options.render) {
3192
+ // @ts-expect-error invalid type
3193
+ vm.$options.render = createEmptyVNode;
3194
+ if (process.env.NODE_ENV !== 'production') {
3195
+ /* istanbul ignore if */
3196
+ if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||
3197
+ vm.$options.el ||
3198
+ el) {
3199
+ warn$2('You are using the runtime-only build of Vue where the template ' +
3200
+ 'compiler is not available. Either pre-compile the templates into ' +
3201
+ 'render functions, or use the compiler-included build.', vm);
3202
+ }
3203
+ else {
3204
+ warn$2('Failed to mount component: template or render function not defined.', vm);
3205
+ }
3206
+ }
3207
+ }
3208
+ callHook$1(vm, 'beforeMount');
3209
+ var updateComponent;
3210
+ /* istanbul ignore if */
3211
+ if (process.env.NODE_ENV !== 'production' && config.performance && mark) {
3212
+ updateComponent = function () {
3213
+ var name = vm._name;
3214
+ var id = vm._uid;
3215
+ var startTag = "vue-perf-start:".concat(id);
3216
+ var endTag = "vue-perf-end:".concat(id);
3217
+ mark(startTag);
3218
+ var vnode = vm._render();
3219
+ mark(endTag);
3220
+ measure("vue ".concat(name, " render"), startTag, endTag);
3221
+ mark(startTag);
3222
+ vm._update(vnode, hydrating);
3223
+ mark(endTag);
3224
+ measure("vue ".concat(name, " patch"), startTag, endTag);
3225
+ };
3226
+ }
3227
+ else {
3228
+ updateComponent = function () {
3229
+ vm._update(vm._render(), hydrating);
3230
+ };
3231
+ }
3232
+ var watcherOptions = {
3233
+ before: function () {
3234
+ if (vm._isMounted && !vm._isDestroyed) {
3235
+ callHook$1(vm, 'beforeUpdate');
3236
+ }
3237
+ }
3238
+ };
3239
+ if (process.env.NODE_ENV !== 'production') {
3240
+ watcherOptions.onTrack = function (e) { return callHook$1(vm, 'renderTracked', [e]); };
3241
+ watcherOptions.onTrigger = function (e) { return callHook$1(vm, 'renderTriggered', [e]); };
3242
+ }
3243
+ // we set this to vm._watcher inside the watcher's constructor
3244
+ // since the watcher's initial patch may call $forceUpdate (e.g. inside child
3245
+ // component's mounted hook), which relies on vm._watcher being already defined
3246
+ new Watcher(vm, updateComponent, noop, watcherOptions, true /* isRenderWatcher */);
3247
+ hydrating = false;
3248
+ // flush buffer for flush: "pre" watchers queued in setup()
3249
+ var preWatchers = vm._preWatchers;
3250
+ if (preWatchers) {
3251
+ for (var i = 0; i < preWatchers.length; i++) {
3252
+ preWatchers[i].run();
3253
+ }
3254
+ }
3255
+ // manually mounted instance, call mounted on self
3256
+ // mounted is called for render-created child components in its inserted hook
3257
+ if (vm.$vnode == null) {
3258
+ vm._isMounted = true;
3259
+ callHook$1(vm, 'mounted');
3260
+ }
3261
+ return vm;
3262
+ }
3263
+ function updateChildComponent(vm, propsData, listeners, parentVnode, renderChildren) {
3264
+ if (process.env.NODE_ENV !== 'production') {
3265
+ isUpdatingChildComponent = true;
3266
+ }
3267
+ // determine whether component has slot children
3268
+ // we need to do this before overwriting $options._renderChildren.
3269
+ // check if there are dynamic scopedSlots (hand-written or compiled but with
3270
+ // dynamic slot names). Static scoped slots compiled from template has the
3271
+ // "$stable" marker.
3272
+ var newScopedSlots = parentVnode.data.scopedSlots;
3273
+ var oldScopedSlots = vm.$scopedSlots;
3274
+ var hasDynamicScopedSlot = !!((newScopedSlots && !newScopedSlots.$stable) ||
3275
+ (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||
3276
+ (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key) ||
3277
+ (!newScopedSlots && vm.$scopedSlots.$key));
3278
+ // Any static slot children from the parent may have changed during parent's
3279
+ // update. Dynamic scoped slots may also have changed. In such cases, a forced
3280
+ // update is necessary to ensure correctness.
3281
+ var needsForceUpdate = !!(renderChildren || // has new static slots
3282
+ vm.$options._renderChildren || // has old static slots
3283
+ hasDynamicScopedSlot);
3284
+ var prevVNode = vm.$vnode;
3285
+ vm.$options._parentVnode = parentVnode;
3286
+ vm.$vnode = parentVnode; // update vm's placeholder node without re-render
3287
+ if (vm._vnode) {
3288
+ // update child tree's parent
3289
+ vm._vnode.parent = parentVnode;
3290
+ }
3291
+ vm.$options._renderChildren = renderChildren;
3292
+ // update $attrs and $listeners hash
3293
+ // these are also reactive so they may trigger child update if the child
3294
+ // used them during render
3295
+ var attrs = parentVnode.data.attrs || emptyObject;
3296
+ if (vm._attrsProxy) {
3297
+ // force update if attrs are accessed and has changed since it may be
3298
+ // passed to a child component.
3299
+ if (syncSetupProxy(vm._attrsProxy, attrs, (prevVNode.data && prevVNode.data.attrs) || emptyObject, vm, '$attrs')) {
3300
+ needsForceUpdate = true;
3301
+ }
3302
+ }
3303
+ vm.$attrs = attrs;
3304
+ // update listeners
3305
+ listeners = listeners || emptyObject;
3306
+ var prevListeners = vm.$options._parentListeners;
3307
+ if (vm._listenersProxy) {
3308
+ syncSetupProxy(vm._listenersProxy, listeners, prevListeners || emptyObject, vm, '$listeners');
3309
+ }
3310
+ vm.$listeners = vm.$options._parentListeners = listeners;
3311
+ updateComponentListeners(vm, listeners, prevListeners);
3312
+ // update props
3313
+ if (propsData && vm.$options.props) {
3314
+ toggleObserving(false);
3315
+ var props = vm._props;
3316
+ var propKeys = vm.$options._propKeys || [];
3317
+ for (var i = 0; i < propKeys.length; i++) {
3318
+ var key = propKeys[i];
3319
+ var propOptions = vm.$options.props; // wtf flow?
3320
+ props[key] = validateProp(key, propOptions, propsData, vm);
3321
+ }
3322
+ toggleObserving(true);
3323
+ // keep a copy of raw propsData
3324
+ vm.$options.propsData = propsData;
3325
+ }
3326
+ // resolve slots + force update if has children
3327
+ if (needsForceUpdate) {
3328
+ vm.$slots = resolveSlots(renderChildren, parentVnode.context);
3329
+ vm.$forceUpdate();
3330
+ }
3331
+ if (process.env.NODE_ENV !== 'production') {
3332
+ isUpdatingChildComponent = false;
3333
+ }
3334
+ }
3335
+ function isInInactiveTree(vm) {
3336
+ while (vm && (vm = vm.$parent)) {
3337
+ if (vm._inactive)
3338
+ return true;
3339
+ }
3340
+ return false;
3341
+ }
3342
+ function activateChildComponent(vm, direct) {
3343
+ if (direct) {
3344
+ vm._directInactive = false;
3345
+ if (isInInactiveTree(vm)) {
3346
+ return;
3347
+ }
3348
+ }
3349
+ else if (vm._directInactive) {
3350
+ return;
3351
+ }
3352
+ if (vm._inactive || vm._inactive === null) {
3353
+ vm._inactive = false;
3354
+ for (var i = 0; i < vm.$children.length; i++) {
3355
+ activateChildComponent(vm.$children[i]);
3356
+ }
3357
+ callHook$1(vm, 'activated');
3358
+ }
3359
+ }
3360
+ function deactivateChildComponent(vm, direct) {
3361
+ if (direct) {
3362
+ vm._directInactive = true;
3363
+ if (isInInactiveTree(vm)) {
3364
+ return;
3365
+ }
3366
+ }
3367
+ if (!vm._inactive) {
3368
+ vm._inactive = true;
3369
+ for (var i = 0; i < vm.$children.length; i++) {
3370
+ deactivateChildComponent(vm.$children[i]);
3371
+ }
3372
+ callHook$1(vm, 'deactivated');
3373
+ }
3374
+ }
3375
+ function callHook$1(vm, hook, args, setContext) {
3376
+ if (setContext === void 0) { setContext = true; }
3377
+ // #7573 disable dep collection when invoking lifecycle hooks
3378
+ pushTarget();
3379
+ var prev = currentInstance;
3380
+ setContext && setCurrentInstance(vm);
3381
+ var handlers = vm.$options[hook];
3382
+ var info = "".concat(hook, " hook");
3383
+ if (handlers) {
3384
+ for (var i = 0, j = handlers.length; i < j; i++) {
3385
+ invokeWithErrorHandling(handlers[i], vm, args || null, vm, info);
3386
+ }
3387
+ }
3388
+ if (vm._hasHookEvent) {
3389
+ vm.$emit('hook:' + hook);
3390
+ }
3391
+ setContext && setCurrentInstance(prev);
3392
+ popTarget();
3393
+ }
3394
+
3395
+ var MAX_UPDATE_COUNT = 100;
3396
+ var queue = [];
3397
+ var activatedChildren = [];
3398
+ var has = {};
3399
+ var circular = {};
3400
+ var waiting = false;
3401
+ var flushing = false;
3402
+ var index$1 = 0;
3403
+ /**
3404
+ * Reset the scheduler's state.
3405
+ */
3406
+ function resetSchedulerState() {
3407
+ index$1 = queue.length = activatedChildren.length = 0;
3408
+ has = {};
3409
+ if (process.env.NODE_ENV !== 'production') {
3410
+ circular = {};
3411
+ }
3412
+ waiting = flushing = false;
3413
+ }
3414
+ // Async edge case #6566 requires saving the timestamp when event listeners are
3415
+ // attached. However, calling performance.now() has a perf overhead especially
3416
+ // if the page has thousands of event listeners. Instead, we take a timestamp
3417
+ // every time the scheduler flushes and use that for all event listeners
3418
+ // attached during that flush.
3419
+ var currentFlushTimestamp = 0;
3420
+ // Async edge case fix requires storing an event listener's attach timestamp.
3421
+ var getNow = Date.now;
3422
+ // Determine what event timestamp the browser is using. Annoyingly, the
3423
+ // timestamp can either be hi-res (relative to page load) or low-res
3424
+ // (relative to UNIX epoch), so in order to compare time we have to use the
3425
+ // same timestamp type when saving the flush timestamp.
3426
+ // All IE versions use low-res event timestamps, and have problematic clock
3427
+ // implementations (#9632)
3428
+ if (inBrowser && !isIE) {
3429
+ var performance_1 = window.performance;
3430
+ if (performance_1 &&
3431
+ typeof performance_1.now === 'function' &&
3432
+ getNow() > document.createEvent('Event').timeStamp) {
3433
+ // if the event timestamp, although evaluated AFTER the Date.now(), is
3434
+ // smaller than it, it means the event is using a hi-res timestamp,
3435
+ // and we need to use the hi-res version for event listener timestamps as
3436
+ // well.
3437
+ getNow = function () { return performance_1.now(); };
3438
+ }
3439
+ }
3440
+ var sortCompareFn = function (a, b) {
3441
+ if (a.post) {
3442
+ if (!b.post)
3443
+ return 1;
3444
+ }
3445
+ else if (b.post) {
3446
+ return -1;
3447
+ }
3448
+ return a.id - b.id;
3449
+ };
3450
+ /**
3451
+ * Flush both queues and run the watchers.
3452
+ */
3453
+ function flushSchedulerQueue() {
3454
+ currentFlushTimestamp = getNow();
3455
+ flushing = true;
3456
+ var watcher, id;
3457
+ // Sort queue before flush.
3458
+ // This ensures that:
3459
+ // 1. Components are updated from parent to child. (because parent is always
3460
+ // created before the child)
3461
+ // 2. A component's user watchers are run before its render watcher (because
3462
+ // user watchers are created before the render watcher)
3463
+ // 3. If a component is destroyed during a parent component's watcher run,
3464
+ // its watchers can be skipped.
3465
+ queue.sort(sortCompareFn);
3466
+ // do not cache length because more watchers might be pushed
3467
+ // as we run existing watchers
3468
+ for (index$1 = 0; index$1 < queue.length; index$1++) {
3469
+ watcher = queue[index$1];
3470
+ if (watcher.before) {
3471
+ watcher.before();
3472
+ }
3473
+ id = watcher.id;
3474
+ has[id] = null;
3475
+ watcher.run();
3476
+ // in dev build, check and stop circular updates.
3477
+ if (process.env.NODE_ENV !== 'production' && has[id] != null) {
3478
+ circular[id] = (circular[id] || 0) + 1;
3479
+ if (circular[id] > MAX_UPDATE_COUNT) {
3480
+ warn$2('You may have an infinite update loop ' +
3481
+ (watcher.user
3482
+ ? "in watcher with expression \"".concat(watcher.expression, "\"")
3483
+ : "in a component render function."), watcher.vm);
3484
+ break;
3485
+ }
3486
+ }
3487
+ }
3488
+ // keep copies of post queues before resetting state
3489
+ var activatedQueue = activatedChildren.slice();
3490
+ var updatedQueue = queue.slice();
3491
+ resetSchedulerState();
3492
+ // call component updated and activated hooks
3493
+ callActivatedHooks(activatedQueue);
3494
+ callUpdatedHooks(updatedQueue);
3495
+ // devtool hook
3496
+ /* istanbul ignore if */
3497
+ if (devtools && config.devtools) {
3498
+ devtools.emit('flush');
3499
+ }
3500
+ }
3501
+ function callUpdatedHooks(queue) {
3502
+ var i = queue.length;
3503
+ while (i--) {
3504
+ var watcher = queue[i];
3505
+ var vm = watcher.vm;
3506
+ if (vm && vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {
3507
+ callHook$1(vm, 'updated');
3508
+ }
3509
+ }
3510
+ }
3511
+ /**
3512
+ * Queue a kept-alive component that was activated during patch.
3513
+ * The queue will be processed after the entire tree has been patched.
3514
+ */
3515
+ function queueActivatedComponent(vm) {
3516
+ // setting _inactive to false here so that a render function can
3517
+ // rely on checking whether it's in an inactive tree (e.g. router-view)
3518
+ vm._inactive = false;
3519
+ activatedChildren.push(vm);
3520
+ }
3521
+ function callActivatedHooks(queue) {
3522
+ for (var i = 0; i < queue.length; i++) {
3523
+ queue[i]._inactive = true;
3524
+ activateChildComponent(queue[i], true /* true */);
3525
+ }
3526
+ }
3527
+ /**
3528
+ * Push a watcher into the watcher queue.
3529
+ * Jobs with duplicate IDs will be skipped unless it's
3530
+ * pushed when the queue is being flushed.
3531
+ */
3532
+ function queueWatcher(watcher) {
3533
+ var id = watcher.id;
3534
+ if (has[id] != null) {
3535
+ return;
3536
+ }
3537
+ if (watcher === Dep.target && watcher.noRecurse) {
3538
+ return;
3539
+ }
3540
+ has[id] = true;
3541
+ if (!flushing) {
3542
+ queue.push(watcher);
3543
+ }
3544
+ else {
3545
+ // if already flushing, splice the watcher based on its id
3546
+ // if already past its id, it will be run next immediately.
3547
+ var i = queue.length - 1;
3548
+ while (i > index$1 && queue[i].id > watcher.id) {
3549
+ i--;
3550
+ }
3551
+ queue.splice(i + 1, 0, watcher);
3552
+ }
3553
+ // queue the flush
3554
+ if (!waiting) {
3555
+ waiting = true;
3556
+ if (process.env.NODE_ENV !== 'production' && !config.async) {
3557
+ flushSchedulerQueue();
3558
+ return;
3559
+ }
3560
+ nextTick(flushSchedulerQueue);
3561
+ }
3562
+ }
3563
+
3564
+ var WATCHER = "watcher";
3565
+ var WATCHER_CB = "".concat(WATCHER, " callback");
3566
+ var WATCHER_GETTER = "".concat(WATCHER, " getter");
3567
+ var WATCHER_CLEANUP = "".concat(WATCHER, " cleanup");
3568
+ // Simple effect.
3569
+ function watchEffect(effect, options) {
3570
+ return doWatch(effect, null, options);
3571
+ }
3572
+ function watchPostEffect(effect, options) {
3573
+ return doWatch(effect, null, (process.env.NODE_ENV !== 'production'
3574
+ ? __assign(__assign({}, options), { flush: 'post' }) : { flush: 'post' }));
3575
+ }
3576
+ function watchSyncEffect(effect, options) {
3577
+ return doWatch(effect, null, (process.env.NODE_ENV !== 'production'
3578
+ ? __assign(__assign({}, options), { flush: 'sync' }) : { flush: 'sync' }));
3579
+ }
3580
+ // initial value for watchers to trigger on undefined initial values
3581
+ var INITIAL_WATCHER_VALUE = {};
3582
+ // implementation
3583
+ function watch(source, cb, options) {
3584
+ if (process.env.NODE_ENV !== 'production' && typeof cb !== 'function') {
3585
+ warn$2("`watch(fn, options?)` signature has been moved to a separate API. " +
3586
+ "Use `watchEffect(fn, options?)` instead. `watch` now only " +
3587
+ "supports `watch(source, cb, options?) signature.");
3588
+ }
3589
+ return doWatch(source, cb, options);
3590
+ }
3591
+ function doWatch(source, cb, _a) {
3592
+ var _b = _a === void 0 ? emptyObject : _a, immediate = _b.immediate, deep = _b.deep, _c = _b.flush, flush = _c === void 0 ? 'pre' : _c, onTrack = _b.onTrack, onTrigger = _b.onTrigger;
3593
+ if (process.env.NODE_ENV !== 'production' && !cb) {
3594
+ if (immediate !== undefined) {
3595
+ warn$2("watch() \"immediate\" option is only respected when using the " +
3596
+ "watch(source, callback, options?) signature.");
3597
+ }
3598
+ if (deep !== undefined) {
3599
+ warn$2("watch() \"deep\" option is only respected when using the " +
3600
+ "watch(source, callback, options?) signature.");
3601
+ }
3602
+ }
3603
+ var warnInvalidSource = function (s) {
3604
+ warn$2("Invalid watch source: ".concat(s, ". A watch source can only be a getter/effect ") +
3605
+ "function, a ref, a reactive object, or an array of these types.");
3606
+ };
3607
+ var instance = currentInstance;
3608
+ var call = function (fn, type, args) {
3609
+ if (args === void 0) { args = null; }
3610
+ return invokeWithErrorHandling(fn, null, args, instance, type);
3611
+ };
3612
+ var getter;
3613
+ var forceTrigger = false;
3614
+ var isMultiSource = false;
3615
+ if (isRef(source)) {
3616
+ getter = function () { return source.value; };
3617
+ forceTrigger = isShallow(source);
3618
+ }
3619
+ else if (isReactive(source)) {
3620
+ getter = function () {
3621
+ source.__ob__.dep.depend();
3622
+ return source;
3623
+ };
3624
+ deep = true;
3625
+ }
3626
+ else if (isArray(source)) {
3627
+ isMultiSource = true;
3628
+ forceTrigger = source.some(function (s) { return isReactive(s) || isShallow(s); });
3629
+ getter = function () {
3630
+ return source.map(function (s) {
3631
+ if (isRef(s)) {
3632
+ return s.value;
3633
+ }
3634
+ else if (isReactive(s)) {
3635
+ return traverse(s);
3636
+ }
3637
+ else if (isFunction(s)) {
3638
+ return call(s, WATCHER_GETTER);
3639
+ }
3640
+ else {
3641
+ process.env.NODE_ENV !== 'production' && warnInvalidSource(s);
3642
+ }
3643
+ });
3644
+ };
3645
+ }
3646
+ else if (isFunction(source)) {
3647
+ if (cb) {
3648
+ // getter with cb
3649
+ getter = function () { return call(source, WATCHER_GETTER); };
3650
+ }
3651
+ else {
3652
+ // no cb -> simple effect
3653
+ getter = function () {
3654
+ if (instance && instance._isDestroyed) {
3655
+ return;
3656
+ }
3657
+ if (cleanup) {
3658
+ cleanup();
3659
+ }
3660
+ return call(source, WATCHER, [onCleanup]);
3661
+ };
3662
+ }
3663
+ }
3664
+ else {
3665
+ getter = noop;
3666
+ process.env.NODE_ENV !== 'production' && warnInvalidSource(source);
3667
+ }
3668
+ if (cb && deep) {
3669
+ var baseGetter_1 = getter;
3670
+ getter = function () { return traverse(baseGetter_1()); };
3671
+ }
3672
+ var cleanup;
3673
+ var onCleanup = function (fn) {
3674
+ cleanup = watcher.onStop = function () {
3675
+ call(fn, WATCHER_CLEANUP);
3676
+ };
3677
+ };
3678
+ // in SSR there is no need to setup an actual effect, and it should be noop
3679
+ // unless it's eager
3680
+ if (isServerRendering()) {
3681
+ // we will also not call the invalidate callback (+ runner is not set up)
3682
+ onCleanup = noop;
3683
+ if (!cb) {
3684
+ getter();
3685
+ }
3686
+ else if (immediate) {
3687
+ call(cb, WATCHER_CB, [
3688
+ getter(),
3689
+ isMultiSource ? [] : undefined,
3690
+ onCleanup
3691
+ ]);
3692
+ }
3693
+ return noop;
3694
+ }
3695
+ var watcher = new Watcher(currentInstance, getter, noop, {
3696
+ lazy: true
3697
+ });
3698
+ watcher.noRecurse = !cb;
3699
+ var oldValue = isMultiSource ? [] : INITIAL_WATCHER_VALUE;
3700
+ // overwrite default run
3701
+ watcher.run = function () {
3702
+ if (!watcher.active) {
3703
+ return;
3704
+ }
3705
+ if (cb) {
3706
+ // watch(source, cb)
3707
+ var newValue = watcher.get();
3708
+ if (deep ||
3709
+ forceTrigger ||
3710
+ (isMultiSource
3711
+ ? newValue.some(function (v, i) {
3712
+ return hasChanged(v, oldValue[i]);
3713
+ })
3714
+ : hasChanged(newValue, oldValue))) {
3715
+ // cleanup before running cb again
3716
+ if (cleanup) {
3717
+ cleanup();
3718
+ }
3719
+ call(cb, WATCHER_CB, [
3720
+ newValue,
3721
+ // pass undefined as the old value when it's changed for the first time
3722
+ oldValue === INITIAL_WATCHER_VALUE ? undefined : oldValue,
3723
+ onCleanup
3724
+ ]);
3725
+ oldValue = newValue;
3726
+ }
3727
+ }
3728
+ else {
3729
+ // watchEffect
3730
+ watcher.get();
3731
+ }
3732
+ };
3733
+ if (flush === 'sync') {
3734
+ watcher.update = watcher.run;
3735
+ }
3736
+ else if (flush === 'post') {
3737
+ watcher.post = true;
3738
+ watcher.update = function () { return queueWatcher(watcher); };
3739
+ }
3740
+ else {
3741
+ // pre
3742
+ watcher.update = function () {
3743
+ if (instance && instance === currentInstance && !instance._isMounted) {
3744
+ // pre-watcher triggered before
3745
+ var buffer = instance._preWatchers || (instance._preWatchers = []);
3746
+ if (buffer.indexOf(watcher) < 0)
3747
+ buffer.push(watcher);
3748
+ }
3749
+ else {
3750
+ queueWatcher(watcher);
3751
+ }
3752
+ };
3753
+ }
3754
+ if (process.env.NODE_ENV !== 'production') {
3755
+ watcher.onTrack = onTrack;
3756
+ watcher.onTrigger = onTrigger;
3757
+ }
3758
+ // initial run
3759
+ if (cb) {
3760
+ if (immediate) {
3761
+ watcher.run();
3762
+ }
3763
+ else {
3764
+ oldValue = watcher.get();
3765
+ }
3766
+ }
3767
+ else if (flush === 'post' && instance) {
3768
+ instance.$once('hook:mounted', function () { return watcher.get(); });
3769
+ }
3770
+ else {
3771
+ watcher.get();
3772
+ }
3773
+ return function () {
3774
+ watcher.teardown();
3775
+ };
3776
+ }
3777
+
3778
+ var activeEffectScope;
3779
+ var EffectScope = /** @class */ (function () {
3780
+ function EffectScope(detached) {
3781
+ if (detached === void 0) { detached = false; }
3782
+ /**
3783
+ * @internal
3784
+ */
3785
+ this.active = true;
3786
+ /**
3787
+ * @internal
3788
+ */
3789
+ this.effects = [];
3790
+ /**
3791
+ * @internal
3792
+ */
3793
+ this.cleanups = [];
3794
+ if (!detached && activeEffectScope) {
3795
+ this.parent = activeEffectScope;
3796
+ this.index =
3797
+ (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;
3798
+ }
3799
+ }
3800
+ EffectScope.prototype.run = function (fn) {
3801
+ if (this.active) {
3802
+ var currentEffectScope = activeEffectScope;
3803
+ try {
3804
+ activeEffectScope = this;
3805
+ return fn();
3806
+ }
3807
+ finally {
3808
+ activeEffectScope = currentEffectScope;
3809
+ }
3810
+ }
3811
+ else if (process.env.NODE_ENV !== 'production') {
3812
+ warn$2("cannot run an inactive effect scope.");
3813
+ }
3814
+ };
3815
+ /**
3816
+ * This should only be called on non-detached scopes
3817
+ * @internal
3818
+ */
3819
+ EffectScope.prototype.on = function () {
3820
+ activeEffectScope = this;
3821
+ };
3822
+ /**
3823
+ * This should only be called on non-detached scopes
3824
+ * @internal
3825
+ */
3826
+ EffectScope.prototype.off = function () {
3827
+ activeEffectScope = this.parent;
3828
+ };
3829
+ EffectScope.prototype.stop = function (fromParent) {
3830
+ if (this.active) {
3831
+ var i = void 0, l = void 0;
3832
+ for (i = 0, l = this.effects.length; i < l; i++) {
3833
+ this.effects[i].teardown();
3834
+ }
3835
+ for (i = 0, l = this.cleanups.length; i < l; i++) {
3836
+ this.cleanups[i]();
3837
+ }
3838
+ if (this.scopes) {
3839
+ for (i = 0, l = this.scopes.length; i < l; i++) {
3840
+ this.scopes[i].stop(true);
3841
+ }
3842
+ }
3843
+ // nested scope, dereference from parent to avoid memory leaks
3844
+ if (this.parent && !fromParent) {
3845
+ // optimized O(1) removal
3846
+ var last = this.parent.scopes.pop();
3847
+ if (last && last !== this) {
3848
+ this.parent.scopes[this.index] = last;
3849
+ last.index = this.index;
3850
+ }
3851
+ }
3852
+ this.active = false;
3853
+ }
3854
+ };
3855
+ return EffectScope;
3856
+ }());
3857
+ function effectScope(detached) {
3858
+ return new EffectScope(detached);
3859
+ }
3860
+ /**
3861
+ * @internal
3862
+ */
3863
+ function recordEffectScope(effect, scope) {
3864
+ if (scope === void 0) { scope = activeEffectScope; }
3865
+ if (scope && scope.active) {
3866
+ scope.effects.push(effect);
3867
+ }
3868
+ }
3869
+ function getCurrentScope() {
3870
+ return activeEffectScope;
3871
+ }
3872
+ function onScopeDispose(fn) {
3873
+ if (activeEffectScope) {
3874
+ activeEffectScope.cleanups.push(fn);
3875
+ }
3876
+ else if (process.env.NODE_ENV !== 'production') {
3877
+ warn$2("onScopeDispose() is called when there is no active effect scope" +
3878
+ " to be associated with.");
3879
+ }
3880
+ }
3881
+
3882
+ function provide(key, value) {
3883
+ if (!currentInstance) {
3884
+ if (process.env.NODE_ENV !== 'production') {
3885
+ warn$2("provide() can only be used inside setup().");
3886
+ }
3887
+ }
3888
+ else {
3889
+ // TS doesn't allow symbol as index type
3890
+ resolveProvided(currentInstance)[key] = value;
3891
+ }
3892
+ }
3893
+ function resolveProvided(vm) {
3894
+ // by default an instance inherits its parent's provides object
3895
+ // but when it needs to provide values of its own, it creates its
3896
+ // own provides object using parent provides object as prototype.
3897
+ // this way in `inject` we can simply look up injections from direct
3898
+ // parent and let the prototype chain do the work.
3899
+ var existing = vm._provided;
3900
+ var parentProvides = vm.$parent && vm.$parent._provided;
3901
+ if (parentProvides === existing) {
3902
+ return (vm._provided = Object.create(parentProvides));
3903
+ }
3904
+ else {
3905
+ return existing;
3906
+ }
3907
+ }
3908
+ function inject(key, defaultValue, treatDefaultAsFactory) {
3909
+ if (treatDefaultAsFactory === void 0) { treatDefaultAsFactory = false; }
3910
+ // fallback to `currentRenderingInstance` so that this can be called in
3911
+ // a functional component
3912
+ var instance = currentInstance;
3913
+ if (instance) {
3914
+ // #2400
3915
+ // to support `app.use` plugins,
3916
+ // fallback to appContext's `provides` if the instance is at root
3917
+ var provides = instance.$parent && instance.$parent._provided;
3918
+ if (provides && key in provides) {
3919
+ // TS doesn't allow symbol as index type
3920
+ return provides[key];
3921
+ }
3922
+ else if (arguments.length > 1) {
3923
+ return treatDefaultAsFactory && isFunction(defaultValue)
3924
+ ? defaultValue.call(instance)
3925
+ : defaultValue;
3926
+ }
3927
+ else if (process.env.NODE_ENV !== 'production') {
3928
+ warn$2("injection \"".concat(String(key), "\" not found."));
3929
+ }
3930
+ }
3931
+ else if (process.env.NODE_ENV !== 'production') {
3932
+ warn$2("inject() can only be used inside setup() or functional components.");
3933
+ }
3934
+ }
3935
+
3936
+ /**
3937
+ * @internal this function needs manual public type declaration because it relies
3938
+ * on previously manually authored types from Vue 2
3939
+ */
3940
+ function h(type, props, children) {
3941
+ if (!currentInstance) {
3942
+ process.env.NODE_ENV !== 'production' &&
3943
+ warn$2("globally imported h() can only be invoked when there is an active " +
3944
+ "component instance, e.g. synchronously in a component's render or setup function.");
3945
+ }
3946
+ return createElement$1(currentInstance, type, props, children, 2, true);
3947
+ }
3948
+
3949
+ function handleError(err, vm, info) {
3950
+ // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.
3951
+ // See: https://github.com/vuejs/vuex/issues/1505
3952
+ pushTarget();
3953
+ try {
3954
+ if (vm) {
3955
+ var cur = vm;
3956
+ while ((cur = cur.$parent)) {
3957
+ var hooks = cur.$options.errorCaptured;
3958
+ if (hooks) {
3959
+ for (var i = 0; i < hooks.length; i++) {
3960
+ try {
3961
+ var capture = hooks[i].call(cur, err, vm, info) === false;
3962
+ if (capture)
3963
+ return;
3964
+ }
3965
+ catch (e) {
3966
+ globalHandleError(e, cur, 'errorCaptured hook');
3967
+ }
3968
+ }
3969
+ }
3970
+ }
3971
+ }
3972
+ globalHandleError(err, vm, info);
3973
+ }
3974
+ finally {
3975
+ popTarget();
3976
+ }
3977
+ }
3978
+ function invokeWithErrorHandling(handler, context, args, vm, info) {
3979
+ var res;
3980
+ try {
3981
+ res = args ? handler.apply(context, args) : handler.call(context);
3982
+ if (res && !res._isVue && isPromise(res) && !res._handled) {
3983
+ res.catch(function (e) { return handleError(e, vm, info + " (Promise/async)"); });
3984
+ res._handled = true;
3985
+ }
3986
+ }
3987
+ catch (e) {
3988
+ handleError(e, vm, info);
3989
+ }
3990
+ return res;
3991
+ }
3992
+ function globalHandleError(err, vm, info) {
3993
+ if (config.errorHandler) {
3994
+ try {
3995
+ return config.errorHandler.call(null, err, vm, info);
3996
+ }
3997
+ catch (e) {
3998
+ // if the user intentionally throws the original error in the handler,
3999
+ // do not log it twice
4000
+ if (e !== err) {
4001
+ logError(e, null, 'config.errorHandler');
4002
+ }
4003
+ }
4004
+ }
4005
+ logError(err, vm, info);
4006
+ }
4007
+ function logError(err, vm, info) {
4008
+ if (process.env.NODE_ENV !== 'production') {
4009
+ warn$2("Error in ".concat(info, ": \"").concat(err.toString(), "\""), vm);
4010
+ }
4011
+ /* istanbul ignore else */
4012
+ if (inBrowser && typeof console !== 'undefined') {
4013
+ console.error(err);
4014
+ }
4015
+ else {
4016
+ throw err;
4017
+ }
4018
+ }
4019
+
4020
+ /* globals MutationObserver */
4021
+ var isUsingMicroTask = false;
4022
+ var callbacks = [];
4023
+ var pending = false;
4024
+ function flushCallbacks() {
4025
+ pending = false;
4026
+ var copies = callbacks.slice(0);
4027
+ callbacks.length = 0;
4028
+ for (var i = 0; i < copies.length; i++) {
4029
+ copies[i]();
4030
+ }
4031
+ }
4032
+ // Here we have async deferring wrappers using microtasks.
4033
+ // In 2.5 we used (macro) tasks (in combination with microtasks).
4034
+ // However, it has subtle problems when state is changed right before repaint
4035
+ // (e.g. #6813, out-in transitions).
4036
+ // Also, using (macro) tasks in event handler would cause some weird behaviors
4037
+ // that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).
4038
+ // So we now use microtasks everywhere, again.
4039
+ // A major drawback of this tradeoff is that there are some scenarios
4040
+ // where microtasks have too high a priority and fire in between supposedly
4041
+ // sequential events (e.g. #4521, #6690, which have workarounds)
4042
+ // or even between bubbling of the same event (#6566).
4043
+ var timerFunc;
4044
+ // The nextTick behavior leverages the microtask queue, which can be accessed
4045
+ // via either native Promise.then or MutationObserver.
4046
+ // MutationObserver has wider support, however it is seriously bugged in
4047
+ // UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It
4048
+ // completely stops working after triggering a few times... so, if native
4049
+ // Promise is available, we will use it:
4050
+ /* istanbul ignore next, $flow-disable-line */
4051
+ if (typeof Promise !== 'undefined' && isNative(Promise)) {
4052
+ var p_1 = Promise.resolve();
4053
+ timerFunc = function () {
4054
+ p_1.then(flushCallbacks);
4055
+ // In problematic UIWebViews, Promise.then doesn't completely break, but
4056
+ // it can get stuck in a weird state where callbacks are pushed into the
4057
+ // microtask queue but the queue isn't being flushed, until the browser
4058
+ // needs to do some other work, e.g. handle a timer. Therefore we can
4059
+ // "force" the microtask queue to be flushed by adding an empty timer.
4060
+ if (isIOS)
4061
+ setTimeout(noop);
4062
+ };
4063
+ isUsingMicroTask = true;
4064
+ }
4065
+ else if (!isIE &&
4066
+ typeof MutationObserver !== 'undefined' &&
4067
+ (isNative(MutationObserver) ||
4068
+ // PhantomJS and iOS 7.x
4069
+ MutationObserver.toString() === '[object MutationObserverConstructor]')) {
4070
+ // Use MutationObserver where native Promise is not available,
4071
+ // e.g. PhantomJS, iOS7, Android 4.4
4072
+ // (#6466 MutationObserver is unreliable in IE11)
4073
+ var counter_1 = 1;
4074
+ var observer = new MutationObserver(flushCallbacks);
4075
+ var textNode_1 = document.createTextNode(String(counter_1));
4076
+ observer.observe(textNode_1, {
4077
+ characterData: true
4078
+ });
4079
+ timerFunc = function () {
4080
+ counter_1 = (counter_1 + 1) % 2;
4081
+ textNode_1.data = String(counter_1);
4082
+ };
4083
+ isUsingMicroTask = true;
4084
+ }
4085
+ else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {
4086
+ // Fallback to setImmediate.
4087
+ // Technically it leverages the (macro) task queue,
4088
+ // but it is still a better choice than setTimeout.
4089
+ timerFunc = function () {
4090
+ setImmediate(flushCallbacks);
4091
+ };
4092
+ }
4093
+ else {
4094
+ // Fallback to setTimeout.
4095
+ timerFunc = function () {
4096
+ setTimeout(flushCallbacks, 0);
4097
+ };
4098
+ }
4099
+ /**
4100
+ * @internal
4101
+ */
4102
+ function nextTick(cb, ctx) {
4103
+ var _resolve;
4104
+ callbacks.push(function () {
4105
+ if (cb) {
4106
+ try {
4107
+ cb.call(ctx);
4108
+ }
4109
+ catch (e) {
4110
+ handleError(e, ctx, 'nextTick');
4111
+ }
4112
+ }
4113
+ else if (_resolve) {
4114
+ _resolve(ctx);
4115
+ }
4116
+ });
4117
+ if (!pending) {
4118
+ pending = true;
4119
+ timerFunc();
4120
+ }
4121
+ // $flow-disable-line
4122
+ if (!cb && typeof Promise !== 'undefined') {
4123
+ return new Promise(function (resolve) {
4124
+ _resolve = resolve;
4125
+ });
4126
+ }
4127
+ }
4128
+
4129
+ function useCssModule(name) {
4130
+ if (name === void 0) { name = '$style'; }
4131
+ /* istanbul ignore else */
4132
+ {
4133
+ if (!currentInstance) {
4134
+ process.env.NODE_ENV !== 'production' && warn$2("useCssModule must be called inside setup()");
4135
+ return emptyObject;
4136
+ }
4137
+ var mod = currentInstance[name];
4138
+ if (!mod) {
4139
+ process.env.NODE_ENV !== 'production' &&
4140
+ warn$2("Current instance does not have CSS module named \"".concat(name, "\"."));
4141
+ return emptyObject;
4142
+ }
4143
+ return mod;
4144
+ }
4145
+ }
4146
+
4147
+ /**
4148
+ * Runtime helper for SFC's CSS variable injection feature.
4149
+ * @private
4150
+ */
4151
+ function useCssVars(getter) {
4152
+ if (!inBrowser && !false)
4153
+ return;
4154
+ var instance = currentInstance;
4155
+ if (!instance) {
4156
+ process.env.NODE_ENV !== 'production' &&
4157
+ warn$2("useCssVars is called without current active component instance.");
4158
+ return;
4159
+ }
4160
+ watchPostEffect(function () {
4161
+ var el = instance.$el;
4162
+ var vars = getter(instance, instance._setupProxy);
4163
+ if (el && el.nodeType === 1) {
4164
+ var style = el.style;
4165
+ for (var key in vars) {
4166
+ style.setProperty("--".concat(key), vars[key]);
4167
+ }
4168
+ }
4169
+ });
4170
+ }
4171
+
4172
+ /**
4173
+ * v3-compatible async component API.
4174
+ * @internal the type is manually declared in <root>/types/v3-define-async-component.d.ts
4175
+ * because it relies on existing manual types
4176
+ */
4177
+ function defineAsyncComponent(source) {
4178
+ if (isFunction(source)) {
4179
+ source = { loader: source };
4180
+ }
4181
+ var loader = source.loader, loadingComponent = source.loadingComponent, errorComponent = source.errorComponent, _a = source.delay, delay = _a === void 0 ? 200 : _a, timeout = source.timeout, // undefined = never times out
4182
+ _b = source.suspensible, // undefined = never times out
4183
+ suspensible = _b === void 0 ? false : _b, // in Vue 3 default is true
4184
+ userOnError = source.onError;
4185
+ if (process.env.NODE_ENV !== 'production' && suspensible) {
4186
+ warn$2("The suspensiblbe option for async components is not supported in Vue2. It is ignored.");
4187
+ }
4188
+ var pendingRequest = null;
4189
+ var retries = 0;
4190
+ var retry = function () {
4191
+ retries++;
4192
+ pendingRequest = null;
4193
+ return load();
4194
+ };
4195
+ var load = function () {
4196
+ var thisRequest;
4197
+ return (pendingRequest ||
4198
+ (thisRequest = pendingRequest =
4199
+ loader()
4200
+ .catch(function (err) {
4201
+ err = err instanceof Error ? err : new Error(String(err));
4202
+ if (userOnError) {
4203
+ return new Promise(function (resolve, reject) {
4204
+ var userRetry = function () { return resolve(retry()); };
4205
+ var userFail = function () { return reject(err); };
4206
+ userOnError(err, userRetry, userFail, retries + 1);
4207
+ });
4208
+ }
4209
+ else {
4210
+ throw err;
4211
+ }
4212
+ })
4213
+ .then(function (comp) {
4214
+ if (thisRequest !== pendingRequest && pendingRequest) {
4215
+ return pendingRequest;
4216
+ }
4217
+ if (process.env.NODE_ENV !== 'production' && !comp) {
4218
+ warn$2("Async component loader resolved to undefined. " +
4219
+ "If you are using retry(), make sure to return its return value.");
4220
+ }
4221
+ // interop module default
4222
+ if (comp &&
4223
+ (comp.__esModule || comp[Symbol.toStringTag] === 'Module')) {
4224
+ comp = comp.default;
4225
+ }
4226
+ if (process.env.NODE_ENV !== 'production' && comp && !isObject(comp) && !isFunction(comp)) {
4227
+ throw new Error("Invalid async component load result: ".concat(comp));
4228
+ }
4229
+ return comp;
4230
+ })));
4231
+ };
4232
+ return function () {
4233
+ var component = load();
4234
+ return {
4235
+ component: component,
4236
+ delay: delay,
4237
+ timeout: timeout,
4238
+ error: errorComponent,
4239
+ loading: loadingComponent
4240
+ };
4241
+ };
4242
+ }
4243
+
4244
+ function createLifeCycle(hookName) {
4245
+ return function (fn, target) {
4246
+ if (target === void 0) { target = currentInstance; }
4247
+ if (!target) {
4248
+ process.env.NODE_ENV !== 'production' &&
4249
+ warn$2("".concat(formatName(hookName), " is called when there is no active component instance to be ") +
4250
+ "associated with. " +
4251
+ "Lifecycle injection APIs can only be used during execution of setup().");
4252
+ return;
4253
+ }
4254
+ return injectHook(target, hookName, fn);
4255
+ };
4256
+ }
4257
+ function formatName(name) {
4258
+ if (name === 'beforeDestroy') {
4259
+ name = 'beforeUnmount';
4260
+ }
4261
+ else if (name === 'destroyed') {
4262
+ name = 'unmounted';
4263
+ }
4264
+ return "on".concat(name[0].toUpperCase() + name.slice(1));
4265
+ }
4266
+ function injectHook(instance, hookName, fn) {
4267
+ var options = instance.$options;
4268
+ options[hookName] = mergeLifecycleHook(options[hookName], fn);
4269
+ }
4270
+ var onBeforeMount = createLifeCycle('beforeMount');
4271
+ var onMounted = createLifeCycle('mounted');
4272
+ var onBeforeUpdate = createLifeCycle('beforeUpdate');
4273
+ var onUpdated = createLifeCycle('updated');
4274
+ var onBeforeUnmount = createLifeCycle('beforeDestroy');
4275
+ var onUnmounted = createLifeCycle('destroyed');
4276
+ var onActivated = createLifeCycle('activated');
4277
+ var onDeactivated = createLifeCycle('deactivated');
4278
+ var onServerPrefetch = createLifeCycle('serverPrefetch');
4279
+ var onRenderTracked = createLifeCycle('renderTracked');
4280
+ var onRenderTriggered = createLifeCycle('renderTriggered');
4281
+ var injectErrorCapturedHook = createLifeCycle('errorCaptured');
4282
+ function onErrorCaptured(hook, target) {
4283
+ if (target === void 0) { target = currentInstance; }
4284
+ injectErrorCapturedHook(hook, target);
4285
+ }
4286
+
4287
+ /**
4288
+ * Note: also update dist/vue.runtime.mjs when adding new exports to this file.
4289
+ */
4290
+ var version = '2.7.10';
4291
+ /**
4292
+ * @internal type is manually declared in <root>/types/v3-define-component.d.ts
4293
+ */
4294
+ function defineComponent(options) {
4295
+ return options;
4296
+ }
4297
+
4298
+ var seenObjects = new _Set();
4299
+ /**
4300
+ * Recursively traverse an object to evoke all converted
4301
+ * getters, so that every nested property inside the object
4302
+ * is collected as a "deep" dependency.
4303
+ */
4304
+ function traverse(val) {
4305
+ _traverse(val, seenObjects);
4306
+ seenObjects.clear();
4307
+ return val;
4308
+ }
4309
+ function _traverse(val, seen) {
4310
+ var i, keys;
4311
+ var isA = isArray(val);
4312
+ if ((!isA && !isObject(val)) ||
4313
+ Object.isFrozen(val) ||
4314
+ val instanceof VNode) {
4315
+ return;
4316
+ }
4317
+ if (val.__ob__) {
4318
+ var depId = val.__ob__.dep.id;
4319
+ if (seen.has(depId)) {
4320
+ return;
4321
+ }
4322
+ seen.add(depId);
4323
+ }
4324
+ if (isA) {
4325
+ i = val.length;
4326
+ while (i--)
4327
+ _traverse(val[i], seen);
4328
+ }
4329
+ else if (isRef(val)) {
4330
+ _traverse(val.value, seen);
4331
+ }
4332
+ else {
4333
+ keys = Object.keys(val);
4334
+ i = keys.length;
4335
+ while (i--)
4336
+ _traverse(val[keys[i]], seen);
4337
+ }
4338
+ }
4339
+
4340
+ var uid$1 = 0;
4341
+ /**
4342
+ * A watcher parses an expression, collects dependencies,
4343
+ * and fires callback when the expression value changes.
4344
+ * This is used for both the $watch() api and directives.
4345
+ * @internal
4346
+ */
4347
+ var Watcher = /** @class */ (function () {
4348
+ function Watcher(vm, expOrFn, cb, options, isRenderWatcher) {
4349
+ recordEffectScope(this,
4350
+ // if the active effect scope is manually created (not a component scope),
4351
+ // prioritize it
4352
+ activeEffectScope && !activeEffectScope._vm
4353
+ ? activeEffectScope
4354
+ : vm
4355
+ ? vm._scope
4356
+ : undefined);
4357
+ if ((this.vm = vm) && isRenderWatcher) {
4358
+ vm._watcher = this;
4359
+ }
4360
+ // options
4361
+ if (options) {
4362
+ this.deep = !!options.deep;
4363
+ this.user = !!options.user;
4364
+ this.lazy = !!options.lazy;
4365
+ this.sync = !!options.sync;
4366
+ this.before = options.before;
4367
+ if (process.env.NODE_ENV !== 'production') {
4368
+ this.onTrack = options.onTrack;
4369
+ this.onTrigger = options.onTrigger;
4370
+ }
4371
+ }
4372
+ else {
4373
+ this.deep = this.user = this.lazy = this.sync = false;
4374
+ }
4375
+ this.cb = cb;
4376
+ this.id = ++uid$1; // uid for batching
4377
+ this.active = true;
4378
+ this.post = false;
4379
+ this.dirty = this.lazy; // for lazy watchers
4380
+ this.deps = [];
4381
+ this.newDeps = [];
4382
+ this.depIds = new _Set();
4383
+ this.newDepIds = new _Set();
4384
+ this.expression = process.env.NODE_ENV !== 'production' ? expOrFn.toString() : '';
4385
+ // parse expression for getter
4386
+ if (isFunction(expOrFn)) {
4387
+ this.getter = expOrFn;
4388
+ }
4389
+ else {
4390
+ this.getter = parsePath(expOrFn);
4391
+ if (!this.getter) {
4392
+ this.getter = noop;
4393
+ process.env.NODE_ENV !== 'production' &&
4394
+ warn$2("Failed watching path: \"".concat(expOrFn, "\" ") +
4395
+ 'Watcher only accepts simple dot-delimited paths. ' +
4396
+ 'For full control, use a function instead.', vm);
4397
+ }
4398
+ }
4399
+ this.value = this.lazy ? undefined : this.get();
4400
+ }
4401
+ /**
4402
+ * Evaluate the getter, and re-collect dependencies.
4403
+ */
4404
+ Watcher.prototype.get = function () {
4405
+ pushTarget(this);
4406
+ var value;
4407
+ var vm = this.vm;
4408
+ try {
4409
+ value = this.getter.call(vm, vm);
4410
+ }
4411
+ catch (e) {
4412
+ if (this.user) {
4413
+ handleError(e, vm, "getter for watcher \"".concat(this.expression, "\""));
4414
+ }
4415
+ else {
4416
+ throw e;
4417
+ }
4418
+ }
4419
+ finally {
4420
+ // "touch" every property so they are all tracked as
4421
+ // dependencies for deep watching
4422
+ if (this.deep) {
4423
+ traverse(value);
4424
+ }
4425
+ popTarget();
4426
+ this.cleanupDeps();
4427
+ }
4428
+ return value;
4429
+ };
4430
+ /**
4431
+ * Add a dependency to this directive.
4432
+ */
4433
+ Watcher.prototype.addDep = function (dep) {
4434
+ var id = dep.id;
4435
+ if (!this.newDepIds.has(id)) {
4436
+ this.newDepIds.add(id);
4437
+ this.newDeps.push(dep);
4438
+ if (!this.depIds.has(id)) {
4439
+ dep.addSub(this);
4440
+ }
4441
+ }
4442
+ };
4443
+ /**
4444
+ * Clean up for dependency collection.
4445
+ */
4446
+ Watcher.prototype.cleanupDeps = function () {
4447
+ var i = this.deps.length;
4448
+ while (i--) {
4449
+ var dep = this.deps[i];
4450
+ if (!this.newDepIds.has(dep.id)) {
4451
+ dep.removeSub(this);
4452
+ }
4453
+ }
4454
+ var tmp = this.depIds;
4455
+ this.depIds = this.newDepIds;
4456
+ this.newDepIds = tmp;
4457
+ this.newDepIds.clear();
4458
+ tmp = this.deps;
4459
+ this.deps = this.newDeps;
4460
+ this.newDeps = tmp;
4461
+ this.newDeps.length = 0;
4462
+ };
4463
+ /**
4464
+ * Subscriber interface.
4465
+ * Will be called when a dependency changes.
4466
+ */
4467
+ Watcher.prototype.update = function () {
4468
+ /* istanbul ignore else */
4469
+ if (this.lazy) {
4470
+ this.dirty = true;
4471
+ }
4472
+ else if (this.sync) {
4473
+ this.run();
4474
+ }
4475
+ else {
4476
+ queueWatcher(this);
4477
+ }
4478
+ };
4479
+ /**
4480
+ * Scheduler job interface.
4481
+ * Will be called by the scheduler.
4482
+ */
4483
+ Watcher.prototype.run = function () {
4484
+ if (this.active) {
4485
+ var value = this.get();
4486
+ if (value !== this.value ||
4487
+ // Deep watchers and watchers on Object/Arrays should fire even
4488
+ // when the value is the same, because the value may
4489
+ // have mutated.
4490
+ isObject(value) ||
4491
+ this.deep) {
4492
+ // set new value
4493
+ var oldValue = this.value;
4494
+ this.value = value;
4495
+ if (this.user) {
4496
+ var info = "callback for watcher \"".concat(this.expression, "\"");
4497
+ invokeWithErrorHandling(this.cb, this.vm, [value, oldValue], this.vm, info);
4498
+ }
4499
+ else {
4500
+ this.cb.call(this.vm, value, oldValue);
4501
+ }
4502
+ }
4503
+ }
4504
+ };
4505
+ /**
4506
+ * Evaluate the value of the watcher.
4507
+ * This only gets called for lazy watchers.
4508
+ */
4509
+ Watcher.prototype.evaluate = function () {
4510
+ this.value = this.get();
4511
+ this.dirty = false;
4512
+ };
4513
+ /**
4514
+ * Depend on all deps collected by this watcher.
4515
+ */
4516
+ Watcher.prototype.depend = function () {
4517
+ var i = this.deps.length;
4518
+ while (i--) {
4519
+ this.deps[i].depend();
4520
+ }
4521
+ };
4522
+ /**
4523
+ * Remove self from all dependencies' subscriber list.
4524
+ */
4525
+ Watcher.prototype.teardown = function () {
4526
+ if (this.vm && !this.vm._isBeingDestroyed) {
4527
+ remove$2(this.vm._scope.effects, this);
4528
+ }
4529
+ if (this.active) {
4530
+ var i = this.deps.length;
4531
+ while (i--) {
4532
+ this.deps[i].removeSub(this);
4533
+ }
4534
+ this.active = false;
4535
+ if (this.onStop) {
4536
+ this.onStop();
4537
+ }
4538
+ }
4539
+ };
4540
+ return Watcher;
4541
+ }());
4542
+
4543
+ var sharedPropertyDefinition = {
4544
+ enumerable: true,
4545
+ configurable: true,
4546
+ get: noop,
4547
+ set: noop
4548
+ };
4549
+ function proxy(target, sourceKey, key) {
4550
+ sharedPropertyDefinition.get = function proxyGetter() {
4551
+ return this[sourceKey][key];
4552
+ };
4553
+ sharedPropertyDefinition.set = function proxySetter(val) {
4554
+ this[sourceKey][key] = val;
4555
+ };
4556
+ Object.defineProperty(target, key, sharedPropertyDefinition);
4557
+ }
4558
+ function initState(vm) {
4559
+ var opts = vm.$options;
4560
+ if (opts.props)
4561
+ initProps$1(vm, opts.props);
4562
+ // Composition API
4563
+ initSetup(vm);
4564
+ if (opts.methods)
4565
+ initMethods(vm, opts.methods);
4566
+ if (opts.data) {
4567
+ initData(vm);
4568
+ }
4569
+ else {
4570
+ var ob = observe((vm._data = {}));
4571
+ ob && ob.vmCount++;
4572
+ }
4573
+ if (opts.computed)
4574
+ initComputed$1(vm, opts.computed);
4575
+ if (opts.watch && opts.watch !== nativeWatch) {
4576
+ initWatch(vm, opts.watch);
4577
+ }
4578
+ }
4579
+ function initProps$1(vm, propsOptions) {
4580
+ var propsData = vm.$options.propsData || {};
4581
+ var props = (vm._props = shallowReactive({}));
4582
+ // cache prop keys so that future props updates can iterate using Array
4583
+ // instead of dynamic object key enumeration.
4584
+ var keys = (vm.$options._propKeys = []);
4585
+ var isRoot = !vm.$parent;
4586
+ // root instance props should be converted
4587
+ if (!isRoot) {
4588
+ toggleObserving(false);
4589
+ }
4590
+ var _loop_1 = function (key) {
4591
+ keys.push(key);
4592
+ var value = validateProp(key, propsOptions, propsData, vm);
4593
+ /* istanbul ignore else */
4594
+ if (process.env.NODE_ENV !== 'production') {
4595
+ var hyphenatedKey = hyphenate(key);
4596
+ if (isReservedAttribute(hyphenatedKey) ||
4597
+ config.isReservedAttr(hyphenatedKey)) {
4598
+ warn$2("\"".concat(hyphenatedKey, "\" is a reserved attribute and cannot be used as component prop."), vm);
4599
+ }
4600
+ defineReactive(props, key, value, function () {
4601
+ if (!isRoot && !isUpdatingChildComponent) {
4602
+ warn$2("Avoid mutating a prop directly since the value will be " +
4603
+ "overwritten whenever the parent component re-renders. " +
4604
+ "Instead, use a data or computed property based on the prop's " +
4605
+ "value. Prop being mutated: \"".concat(key, "\""), vm);
4606
+ }
4607
+ });
4608
+ }
4609
+ else {
4610
+ defineReactive(props, key, value);
4611
+ }
4612
+ // static props are already proxied on the component's prototype
4613
+ // during Vue.extend(). We only need to proxy props defined at
4614
+ // instantiation here.
4615
+ if (!(key in vm)) {
4616
+ proxy(vm, "_props", key);
4617
+ }
4618
+ };
4619
+ for (var key in propsOptions) {
4620
+ _loop_1(key);
4621
+ }
4622
+ toggleObserving(true);
4623
+ }
4624
+ function initData(vm) {
4625
+ var data = vm.$options.data;
4626
+ data = vm._data = isFunction(data) ? getData(data, vm) : data || {};
4627
+ if (!isPlainObject(data)) {
4628
+ data = {};
4629
+ process.env.NODE_ENV !== 'production' &&
4630
+ warn$2('data functions should return an object:\n' +
4631
+ 'https://v2.vuejs.org/v2/guide/components.html#data-Must-Be-a-Function', vm);
4632
+ }
4633
+ // proxy data on instance
4634
+ var keys = Object.keys(data);
4635
+ var props = vm.$options.props;
4636
+ var methods = vm.$options.methods;
4637
+ var i = keys.length;
4638
+ while (i--) {
4639
+ var key = keys[i];
4640
+ if (process.env.NODE_ENV !== 'production') {
4641
+ if (methods && hasOwn(methods, key)) {
4642
+ warn$2("Method \"".concat(key, "\" has already been defined as a data property."), vm);
4643
+ }
4644
+ }
4645
+ if (props && hasOwn(props, key)) {
4646
+ process.env.NODE_ENV !== 'production' &&
4647
+ warn$2("The data property \"".concat(key, "\" is already declared as a prop. ") +
4648
+ "Use prop default value instead.", vm);
4649
+ }
4650
+ else if (!isReserved(key)) {
4651
+ proxy(vm, "_data", key);
4652
+ }
4653
+ }
4654
+ // observe data
4655
+ var ob = observe(data);
4656
+ ob && ob.vmCount++;
4657
+ }
4658
+ function getData(data, vm) {
4659
+ // #7573 disable dep collection when invoking data getters
4660
+ pushTarget();
4661
+ try {
4662
+ return data.call(vm, vm);
4663
+ }
4664
+ catch (e) {
4665
+ handleError(e, vm, "data()");
4666
+ return {};
4667
+ }
4668
+ finally {
4669
+ popTarget();
4670
+ }
4671
+ }
4672
+ var computedWatcherOptions = { lazy: true };
4673
+ function initComputed$1(vm, computed) {
4674
+ // $flow-disable-line
4675
+ var watchers = (vm._computedWatchers = Object.create(null));
4676
+ // computed properties are just getters during SSR
4677
+ var isSSR = isServerRendering();
4678
+ for (var key in computed) {
4679
+ var userDef = computed[key];
4680
+ var getter = isFunction(userDef) ? userDef : userDef.get;
4681
+ if (process.env.NODE_ENV !== 'production' && getter == null) {
4682
+ warn$2("Getter is missing for computed property \"".concat(key, "\"."), vm);
4683
+ }
4684
+ if (!isSSR) {
4685
+ // create internal watcher for the computed property.
4686
+ watchers[key] = new Watcher(vm, getter || noop, noop, computedWatcherOptions);
4687
+ }
4688
+ // component-defined computed properties are already defined on the
4689
+ // component prototype. We only need to define computed properties defined
4690
+ // at instantiation here.
4691
+ if (!(key in vm)) {
4692
+ defineComputed(vm, key, userDef);
4693
+ }
4694
+ else if (process.env.NODE_ENV !== 'production') {
4695
+ if (key in vm.$data) {
4696
+ warn$2("The computed property \"".concat(key, "\" is already defined in data."), vm);
4697
+ }
4698
+ else if (vm.$options.props && key in vm.$options.props) {
4699
+ warn$2("The computed property \"".concat(key, "\" is already defined as a prop."), vm);
4700
+ }
4701
+ else if (vm.$options.methods && key in vm.$options.methods) {
4702
+ warn$2("The computed property \"".concat(key, "\" is already defined as a method."), vm);
4703
+ }
4704
+ }
4705
+ }
4706
+ }
4707
+ function defineComputed(target, key, userDef) {
4708
+ var shouldCache = !isServerRendering();
4709
+ if (isFunction(userDef)) {
4710
+ sharedPropertyDefinition.get = shouldCache
4711
+ ? createComputedGetter(key)
4712
+ : createGetterInvoker(userDef);
4713
+ sharedPropertyDefinition.set = noop;
4714
+ }
4715
+ else {
4716
+ sharedPropertyDefinition.get = userDef.get
4717
+ ? shouldCache && userDef.cache !== false
4718
+ ? createComputedGetter(key)
4719
+ : createGetterInvoker(userDef.get)
4720
+ : noop;
4721
+ sharedPropertyDefinition.set = userDef.set || noop;
4722
+ }
4723
+ if (process.env.NODE_ENV !== 'production' && sharedPropertyDefinition.set === noop) {
4724
+ sharedPropertyDefinition.set = function () {
4725
+ warn$2("Computed property \"".concat(key, "\" was assigned to but it has no setter."), this);
4726
+ };
4727
+ }
4728
+ Object.defineProperty(target, key, sharedPropertyDefinition);
4729
+ }
4730
+ function createComputedGetter(key) {
4731
+ return function computedGetter() {
4732
+ var watcher = this._computedWatchers && this._computedWatchers[key];
4733
+ if (watcher) {
4734
+ if (watcher.dirty) {
4735
+ watcher.evaluate();
4736
+ }
4737
+ if (Dep.target) {
4738
+ if (process.env.NODE_ENV !== 'production' && Dep.target.onTrack) {
4739
+ Dep.target.onTrack({
4740
+ effect: Dep.target,
4741
+ target: this,
4742
+ type: "get" /* TrackOpTypes.GET */,
4743
+ key: key
4744
+ });
4745
+ }
4746
+ watcher.depend();
4747
+ }
4748
+ return watcher.value;
4749
+ }
4750
+ };
4751
+ }
4752
+ function createGetterInvoker(fn) {
4753
+ return function computedGetter() {
4754
+ return fn.call(this, this);
4755
+ };
4756
+ }
4757
+ function initMethods(vm, methods) {
4758
+ var props = vm.$options.props;
4759
+ for (var key in methods) {
4760
+ if (process.env.NODE_ENV !== 'production') {
4761
+ if (typeof methods[key] !== 'function') {
4762
+ warn$2("Method \"".concat(key, "\" has type \"").concat(typeof methods[key], "\" in the component definition. ") +
4763
+ "Did you reference the function correctly?", vm);
4764
+ }
4765
+ if (props && hasOwn(props, key)) {
4766
+ warn$2("Method \"".concat(key, "\" has already been defined as a prop."), vm);
4767
+ }
4768
+ if (key in vm && isReserved(key)) {
4769
+ warn$2("Method \"".concat(key, "\" conflicts with an existing Vue instance method. ") +
4770
+ "Avoid defining component methods that start with _ or $.");
4771
+ }
4772
+ }
4773
+ vm[key] = typeof methods[key] !== 'function' ? noop : bind$1(methods[key], vm);
4774
+ }
4775
+ }
4776
+ function initWatch(vm, watch) {
4777
+ for (var key in watch) {
4778
+ var handler = watch[key];
4779
+ if (isArray(handler)) {
4780
+ for (var i = 0; i < handler.length; i++) {
4781
+ createWatcher(vm, key, handler[i]);
4782
+ }
4783
+ }
4784
+ else {
4785
+ createWatcher(vm, key, handler);
4786
+ }
4787
+ }
4788
+ }
4789
+ function createWatcher(vm, expOrFn, handler, options) {
4790
+ if (isPlainObject(handler)) {
4791
+ options = handler;
4792
+ handler = handler.handler;
4793
+ }
4794
+ if (typeof handler === 'string') {
4795
+ handler = vm[handler];
4796
+ }
4797
+ return vm.$watch(expOrFn, handler, options);
4798
+ }
4799
+ function stateMixin(Vue) {
4800
+ // flow somehow has problems with directly declared definition object
4801
+ // when using Object.defineProperty, so we have to procedurally build up
4802
+ // the object here.
4803
+ var dataDef = {};
4804
+ dataDef.get = function () {
4805
+ return this._data;
4806
+ };
4807
+ var propsDef = {};
4808
+ propsDef.get = function () {
4809
+ return this._props;
4810
+ };
4811
+ if (process.env.NODE_ENV !== 'production') {
4812
+ dataDef.set = function () {
4813
+ warn$2('Avoid replacing instance root $data. ' +
4814
+ 'Use nested data properties instead.', this);
4815
+ };
4816
+ propsDef.set = function () {
4817
+ warn$2("$props is readonly.", this);
4818
+ };
4819
+ }
4820
+ Object.defineProperty(Vue.prototype, '$data', dataDef);
4821
+ Object.defineProperty(Vue.prototype, '$props', propsDef);
4822
+ Vue.prototype.$set = set;
4823
+ Vue.prototype.$delete = del;
4824
+ Vue.prototype.$watch = function (expOrFn, cb, options) {
4825
+ var vm = this;
4826
+ if (isPlainObject(cb)) {
4827
+ return createWatcher(vm, expOrFn, cb, options);
4828
+ }
4829
+ options = options || {};
4830
+ options.user = true;
4831
+ var watcher = new Watcher(vm, expOrFn, cb, options);
4832
+ if (options.immediate) {
4833
+ var info = "callback for immediate watcher \"".concat(watcher.expression, "\"");
4834
+ pushTarget();
4835
+ invokeWithErrorHandling(cb, vm, [watcher.value], vm, info);
4836
+ popTarget();
4837
+ }
4838
+ return function unwatchFn() {
4839
+ watcher.teardown();
4840
+ };
4841
+ };
4842
+ }
4843
+
4844
+ function initProvide(vm) {
4845
+ var provideOption = vm.$options.provide;
4846
+ if (provideOption) {
4847
+ var provided = isFunction(provideOption)
4848
+ ? provideOption.call(vm)
4849
+ : provideOption;
4850
+ if (!isObject(provided)) {
4851
+ return;
4852
+ }
4853
+ var source = resolveProvided(vm);
4854
+ // IE9 doesn't support Object.getOwnPropertyDescriptors so we have to
4855
+ // iterate the keys ourselves.
4856
+ var keys = hasSymbol ? Reflect.ownKeys(provided) : Object.keys(provided);
4857
+ for (var i = 0; i < keys.length; i++) {
4858
+ var key = keys[i];
4859
+ Object.defineProperty(source, key, Object.getOwnPropertyDescriptor(provided, key));
4860
+ }
4861
+ }
4862
+ }
4863
+ function initInjections(vm) {
4864
+ var result = resolveInject(vm.$options.inject, vm);
4865
+ if (result) {
4866
+ toggleObserving(false);
4867
+ Object.keys(result).forEach(function (key) {
4868
+ /* istanbul ignore else */
4869
+ if (process.env.NODE_ENV !== 'production') {
4870
+ defineReactive(vm, key, result[key], function () {
4871
+ warn$2("Avoid mutating an injected value directly since the changes will be " +
4872
+ "overwritten whenever the provided component re-renders. " +
4873
+ "injection being mutated: \"".concat(key, "\""), vm);
4874
+ });
4875
+ }
4876
+ else {
4877
+ defineReactive(vm, key, result[key]);
4878
+ }
4879
+ });
4880
+ toggleObserving(true);
4881
+ }
4882
+ }
4883
+ function resolveInject(inject, vm) {
4884
+ if (inject) {
4885
+ // inject is :any because flow is not smart enough to figure out cached
4886
+ var result = Object.create(null);
4887
+ var keys = hasSymbol ? Reflect.ownKeys(inject) : Object.keys(inject);
4888
+ for (var i = 0; i < keys.length; i++) {
4889
+ var key = keys[i];
4890
+ // #6574 in case the inject object is observed...
4891
+ if (key === '__ob__')
4892
+ continue;
4893
+ var provideKey = inject[key].from;
4894
+ if (provideKey in vm._provided) {
4895
+ result[key] = vm._provided[provideKey];
4896
+ }
4897
+ else if ('default' in inject[key]) {
4898
+ var provideDefault = inject[key].default;
4899
+ result[key] = isFunction(provideDefault)
4900
+ ? provideDefault.call(vm)
4901
+ : provideDefault;
4902
+ }
4903
+ else if (process.env.NODE_ENV !== 'production') {
4904
+ warn$2("Injection \"".concat(key, "\" not found"), vm);
4905
+ }
4906
+ }
4907
+ return result;
4908
+ }
4909
+ }
4910
+
4911
+ var uid = 0;
4912
+ function initMixin$1(Vue) {
4913
+ Vue.prototype._init = function (options) {
4914
+ var vm = this;
4915
+ // a uid
4916
+ vm._uid = uid++;
4917
+ var startTag, endTag;
4918
+ /* istanbul ignore if */
4919
+ if (process.env.NODE_ENV !== 'production' && config.performance && mark) {
4920
+ startTag = "vue-perf-start:".concat(vm._uid);
4921
+ endTag = "vue-perf-end:".concat(vm._uid);
4922
+ mark(startTag);
4923
+ }
4924
+ // a flag to mark this as a Vue instance without having to do instanceof
4925
+ // check
4926
+ vm._isVue = true;
4927
+ // avoid instances from being observed
4928
+ vm.__v_skip = true;
4929
+ // effect scope
4930
+ vm._scope = new EffectScope(true /* detached */);
4931
+ vm._scope._vm = true;
4932
+ // merge options
4933
+ if (options && options._isComponent) {
4934
+ // optimize internal component instantiation
4935
+ // since dynamic options merging is pretty slow, and none of the
4936
+ // internal component options needs special treatment.
4937
+ initInternalComponent(vm, options);
4938
+ }
4939
+ else {
4940
+ vm.$options = mergeOptions(resolveConstructorOptions(vm.constructor), options || {}, vm);
4941
+ }
4942
+ /* istanbul ignore else */
4943
+ if (process.env.NODE_ENV !== 'production') {
4944
+ initProxy(vm);
4945
+ }
4946
+ else {
4947
+ vm._renderProxy = vm;
4948
+ }
4949
+ // expose real self
4950
+ vm._self = vm;
4951
+ initLifecycle(vm);
4952
+ initEvents(vm);
4953
+ initRender(vm);
4954
+ callHook$1(vm, 'beforeCreate', undefined, false /* setContext */);
4955
+ initInjections(vm); // resolve injections before data/props
4956
+ initState(vm);
4957
+ initProvide(vm); // resolve provide after data/props
4958
+ callHook$1(vm, 'created');
4959
+ /* istanbul ignore if */
4960
+ if (process.env.NODE_ENV !== 'production' && config.performance && mark) {
4961
+ vm._name = formatComponentName(vm, false);
4962
+ mark(endTag);
4963
+ measure("vue ".concat(vm._name, " init"), startTag, endTag);
4964
+ }
4965
+ if (vm.$options.el) {
4966
+ vm.$mount(vm.$options.el);
4967
+ }
4968
+ };
4969
+ }
4970
+ function initInternalComponent(vm, options) {
4971
+ var opts = (vm.$options = Object.create(vm.constructor.options));
4972
+ // doing this because it's faster than dynamic enumeration.
4973
+ var parentVnode = options._parentVnode;
4974
+ opts.parent = options.parent;
4975
+ opts._parentVnode = parentVnode;
4976
+ var vnodeComponentOptions = parentVnode.componentOptions;
4977
+ opts.propsData = vnodeComponentOptions.propsData;
4978
+ opts._parentListeners = vnodeComponentOptions.listeners;
4979
+ opts._renderChildren = vnodeComponentOptions.children;
4980
+ opts._componentTag = vnodeComponentOptions.tag;
4981
+ if (options.render) {
4982
+ opts.render = options.render;
4983
+ opts.staticRenderFns = options.staticRenderFns;
4984
+ }
4985
+ }
4986
+ function resolveConstructorOptions(Ctor) {
4987
+ var options = Ctor.options;
4988
+ if (Ctor.super) {
4989
+ var superOptions = resolveConstructorOptions(Ctor.super);
4990
+ var cachedSuperOptions = Ctor.superOptions;
4991
+ if (superOptions !== cachedSuperOptions) {
4992
+ // super option changed,
4993
+ // need to resolve new options.
4994
+ Ctor.superOptions = superOptions;
4995
+ // check if there are any late-modified/attached options (#4976)
4996
+ var modifiedOptions = resolveModifiedOptions(Ctor);
4997
+ // update base extend options
4998
+ if (modifiedOptions) {
4999
+ extend(Ctor.extendOptions, modifiedOptions);
5000
+ }
5001
+ options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);
5002
+ if (options.name) {
5003
+ options.components[options.name] = Ctor;
5004
+ }
5005
+ }
5006
+ }
5007
+ return options;
5008
+ }
5009
+ function resolveModifiedOptions(Ctor) {
5010
+ var modified;
5011
+ var latest = Ctor.options;
5012
+ var sealed = Ctor.sealedOptions;
5013
+ for (var key in latest) {
5014
+ if (latest[key] !== sealed[key]) {
5015
+ if (!modified)
5016
+ modified = {};
5017
+ modified[key] = latest[key];
5018
+ }
5019
+ }
5020
+ return modified;
5021
+ }
5022
+
5023
+ function FunctionalRenderContext(data, props, children, parent, Ctor) {
5024
+ var _this = this;
5025
+ var options = Ctor.options;
5026
+ // ensure the createElement function in functional components
5027
+ // gets a unique context - this is necessary for correct named slot check
5028
+ var contextVm;
5029
+ if (hasOwn(parent, '_uid')) {
5030
+ contextVm = Object.create(parent);
5031
+ contextVm._original = parent;
5032
+ }
5033
+ else {
5034
+ // the context vm passed in is a functional context as well.
5035
+ // in this case we want to make sure we are able to get a hold to the
5036
+ // real context instance.
5037
+ contextVm = parent;
5038
+ // @ts-ignore
5039
+ parent = parent._original;
5040
+ }
5041
+ var isCompiled = isTrue(options._compiled);
5042
+ var needNormalization = !isCompiled;
5043
+ this.data = data;
5044
+ this.props = props;
5045
+ this.children = children;
5046
+ this.parent = parent;
5047
+ this.listeners = data.on || emptyObject;
5048
+ this.injections = resolveInject(options.inject, parent);
5049
+ this.slots = function () {
5050
+ if (!_this.$slots) {
5051
+ normalizeScopedSlots(parent, data.scopedSlots, (_this.$slots = resolveSlots(children, parent)));
5052
+ }
5053
+ return _this.$slots;
5054
+ };
5055
+ Object.defineProperty(this, 'scopedSlots', {
5056
+ enumerable: true,
5057
+ get: function () {
5058
+ return normalizeScopedSlots(parent, data.scopedSlots, this.slots());
5059
+ }
5060
+ });
5061
+ // support for compiled functional template
5062
+ if (isCompiled) {
5063
+ // exposing $options for renderStatic()
5064
+ this.$options = options;
5065
+ // pre-resolve slots for renderSlot()
5066
+ this.$slots = this.slots();
5067
+ this.$scopedSlots = normalizeScopedSlots(parent, data.scopedSlots, this.$slots);
5068
+ }
5069
+ if (options._scopeId) {
5070
+ this._c = function (a, b, c, d) {
5071
+ var vnode = createElement$1(contextVm, a, b, c, d, needNormalization);
5072
+ if (vnode && !isArray(vnode)) {
5073
+ vnode.fnScopeId = options._scopeId;
5074
+ vnode.fnContext = parent;
5075
+ }
5076
+ return vnode;
5077
+ };
5078
+ }
5079
+ else {
5080
+ this._c = function (a, b, c, d) {
5081
+ return createElement$1(contextVm, a, b, c, d, needNormalization);
5082
+ };
5083
+ }
5084
+ }
5085
+ installRenderHelpers(FunctionalRenderContext.prototype);
5086
+ function createFunctionalComponent(Ctor, propsData, data, contextVm, children) {
5087
+ var options = Ctor.options;
5088
+ var props = {};
5089
+ var propOptions = options.props;
5090
+ if (isDef(propOptions)) {
5091
+ for (var key in propOptions) {
5092
+ props[key] = validateProp(key, propOptions, propsData || emptyObject);
5093
+ }
5094
+ }
5095
+ else {
5096
+ if (isDef(data.attrs))
5097
+ mergeProps(props, data.attrs);
5098
+ if (isDef(data.props))
5099
+ mergeProps(props, data.props);
5100
+ }
5101
+ var renderContext = new FunctionalRenderContext(data, props, children, contextVm, Ctor);
5102
+ var vnode = options.render.call(null, renderContext._c, renderContext);
5103
+ if (vnode instanceof VNode) {
5104
+ return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext);
5105
+ }
5106
+ else if (isArray(vnode)) {
5107
+ var vnodes = normalizeChildren(vnode) || [];
5108
+ var res = new Array(vnodes.length);
5109
+ for (var i = 0; i < vnodes.length; i++) {
5110
+ res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);
5111
+ }
5112
+ return res;
5113
+ }
5114
+ }
5115
+ function cloneAndMarkFunctionalResult(vnode, data, contextVm, options, renderContext) {
5116
+ // #7817 clone node before setting fnContext, otherwise if the node is reused
5117
+ // (e.g. it was from a cached normal slot) the fnContext causes named slots
5118
+ // that should not be matched to match.
5119
+ var clone = cloneVNode(vnode);
5120
+ clone.fnContext = contextVm;
5121
+ clone.fnOptions = options;
5122
+ if (process.env.NODE_ENV !== 'production') {
5123
+ (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext =
5124
+ renderContext;
5125
+ }
5126
+ if (data.slot) {
5127
+ (clone.data || (clone.data = {})).slot = data.slot;
5128
+ }
5129
+ return clone;
5130
+ }
5131
+ function mergeProps(to, from) {
5132
+ for (var key in from) {
5133
+ to[camelize(key)] = from[key];
5134
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5135
  }
5136
 
5137
+ function getComponentName(options) {
5138
+ return options.name || options.__name || options._componentTag;
5139
+ }
5140
+ // inline hooks to be invoked on component VNodes during patch
5141
+ var componentVNodeHooks = {
5142
+ init: function (vnode, hydrating) {
5143
+ if (vnode.componentInstance &&
5144
+ !vnode.componentInstance._isDestroyed &&
5145
+ vnode.data.keepAlive) {
5146
+ // kept-alive components, treat as a patch
5147
+ var mountedNode = vnode; // work around flow
5148
+ componentVNodeHooks.prepatch(mountedNode, mountedNode);
5149
+ }
5150
+ else {
5151
+ var child = (vnode.componentInstance = createComponentInstanceForVnode(vnode, activeInstance));
5152
+ child.$mount(hydrating ? vnode.elm : undefined, hydrating);
5153
+ }
5154
+ },
5155
+ prepatch: function (oldVnode, vnode) {
5156
+ var options = vnode.componentOptions;
5157
+ var child = (vnode.componentInstance = oldVnode.componentInstance);
5158
+ updateChildComponent(child, options.propsData, // updated props
5159
+ options.listeners, // updated listeners
5160
+ vnode, // new parent vnode
5161
+ options.children // new children
5162
+ );
5163
+ },
5164
+ insert: function (vnode) {
5165
+ var context = vnode.context, componentInstance = vnode.componentInstance;
5166
+ if (!componentInstance._isMounted) {
5167
+ componentInstance._isMounted = true;
5168
+ callHook$1(componentInstance, 'mounted');
5169
+ }
5170
+ if (vnode.data.keepAlive) {
5171
+ if (context._isMounted) {
5172
+ // vue-router#1212
5173
+ // During updates, a kept-alive component's child components may
5174
+ // change, so directly walking the tree here may call activated hooks
5175
+ // on incorrect children. Instead we push them into a queue which will
5176
+ // be processed after the whole patch process ended.
5177
+ queueActivatedComponent(componentInstance);
5178
+ }
5179
+ else {
5180
+ activateChildComponent(componentInstance, true /* direct */);
5181
+ }
5182
+ }
5183
+ },
5184
+ destroy: function (vnode) {
5185
+ var componentInstance = vnode.componentInstance;
5186
+ if (!componentInstance._isDestroyed) {
5187
+ if (!vnode.data.keepAlive) {
5188
+ componentInstance.$destroy();
5189
+ }
5190
+ else {
5191
+ deactivateChildComponent(componentInstance, true /* direct */);
5192
+ }
5193
+ }
5194
+ }
5195
+ };
5196
+ var hooksToMerge = Object.keys(componentVNodeHooks);
5197
+ function createComponent(Ctor, data, context, children, tag) {
5198
+ if (isUndef(Ctor)) {
5199
+ return;
5200
+ }
5201
+ var baseCtor = context.$options._base;
5202
+ // plain options object: turn it into a constructor
5203
+ if (isObject(Ctor)) {
5204
+ Ctor = baseCtor.extend(Ctor);
5205
+ }
5206
+ // if at this stage it's not a constructor or an async component factory,
5207
+ // reject.
5208
+ if (typeof Ctor !== 'function') {
5209
+ if (process.env.NODE_ENV !== 'production') {
5210
+ warn$2("Invalid Component definition: ".concat(String(Ctor)), context);
5211
+ }
5212
+ return;
5213
+ }
5214
+ // async component
5215
+ var asyncFactory;
5216
+ // @ts-expect-error
5217
+ if (isUndef(Ctor.cid)) {
5218
+ asyncFactory = Ctor;
5219
+ Ctor = resolveAsyncComponent(asyncFactory, baseCtor);
5220
+ if (Ctor === undefined) {
5221
+ // return a placeholder node for async component, which is rendered
5222
+ // as a comment node but preserves all the raw information for the node.
5223
+ // the information will be used for async server-rendering and hydration.
5224
+ return createAsyncPlaceholder(asyncFactory, data, context, children, tag);
5225
+ }
5226
+ }
5227
+ data = data || {};
5228
+ // resolve constructor options in case global mixins are applied after
5229
+ // component constructor creation
5230
+ resolveConstructorOptions(Ctor);
5231
+ // transform component v-model data into props & events
5232
+ if (isDef(data.model)) {
5233
+ // @ts-expect-error
5234
+ transformModel(Ctor.options, data);
5235
+ }
5236
+ // extract props
5237
+ // @ts-expect-error
5238
+ var propsData = extractPropsFromVNodeData(data, Ctor, tag);
5239
+ // functional component
5240
+ // @ts-expect-error
5241
+ if (isTrue(Ctor.options.functional)) {
5242
+ return createFunctionalComponent(Ctor, propsData, data, context, children);
5243
+ }
5244
+ // extract listeners, since these needs to be treated as
5245
+ // child component listeners instead of DOM listeners
5246
+ var listeners = data.on;
5247
+ // replace with listeners with .native modifier
5248
+ // so it gets processed during parent component patch.
5249
+ data.on = data.nativeOn;
5250
+ // @ts-expect-error
5251
+ if (isTrue(Ctor.options.abstract)) {
5252
+ // abstract components do not keep anything
5253
+ // other than props & listeners & slot
5254
+ // work around flow
5255
+ var slot = data.slot;
5256
+ data = {};
5257
+ if (slot) {
5258
+ data.slot = slot;
5259
+ }
5260
+ }
5261
+ // install component management hooks onto the placeholder node
5262
+ installComponentHooks(data);
5263
+ // return a placeholder vnode
5264
+ // @ts-expect-error
5265
+ var name = getComponentName(Ctor.options) || tag;
5266
+ var vnode = new VNode(
5267
+ // @ts-expect-error
5268
+ "vue-component-".concat(Ctor.cid).concat(name ? "-".concat(name) : ''), data, undefined, undefined, undefined, context,
5269
+ // @ts-expect-error
5270
+ { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children }, asyncFactory);
5271
+ return vnode;
5272
+ }
5273
+ function createComponentInstanceForVnode(
5274
+ // we know it's MountedComponentVNode but flow doesn't
5275
+ vnode,
5276
+ // activeInstance in lifecycle state
5277
+ parent) {
5278
+ var options = {
5279
+ _isComponent: true,
5280
+ _parentVnode: vnode,
5281
+ parent: parent
5282
+ };
5283
+ // check inline-template render functions
5284
+ var inlineTemplate = vnode.data.inlineTemplate;
5285
+ if (isDef(inlineTemplate)) {
5286
+ options.render = inlineTemplate.render;
5287
+ options.staticRenderFns = inlineTemplate.staticRenderFns;
5288
+ }
5289
+ return new vnode.componentOptions.Ctor(options);
5290
+ }
5291
+ function installComponentHooks(data) {
5292
+ var hooks = data.hook || (data.hook = {});
5293
+ for (var i = 0; i < hooksToMerge.length; i++) {
5294
+ var key = hooksToMerge[i];
5295
+ var existing = hooks[key];
5296
+ var toMerge = componentVNodeHooks[key];
5297
+ // @ts-expect-error
5298
+ if (existing !== toMerge && !(existing && existing._merged)) {
5299
+ hooks[key] = existing ? mergeHook(toMerge, existing) : toMerge;
5300
+ }
5301
+ }
5302
+ }
5303
+ function mergeHook(f1, f2) {
5304
+ var merged = function (a, b) {
5305
+ // flow complains about extra args which is why we use any
5306
+ f1(a, b);
5307
+ f2(a, b);
5308
+ };
5309
+ merged._merged = true;
5310
+ return merged;
5311
+ }
5312
+ // transform component v-model info (value and callback) into
5313
+ // prop and event handler respectively.
5314
+ function transformModel(options, data) {
5315
+ var prop = (options.model && options.model.prop) || 'value';
5316
+ var event = (options.model && options.model.event) || 'input';
5317
+ (data.attrs || (data.attrs = {}))[prop] = data.model.value;
5318
+ var on = data.on || (data.on = {});
5319
+ var existing = on[event];
5320
+ var callback = data.model.callback;
5321
+ if (isDef(existing)) {
5322
+ if (isArray(existing)
5323
+ ? existing.indexOf(callback) === -1
5324
+ : existing !== callback) {
5325
+ on[event] = [callback].concat(existing);
5326
+ }
5327
+ }
5328
+ else {
5329
+ on[event] = callback;
5330
+ }
5331
+ }
5332
+
5333
+ var warn$2 = noop;
5334
+ var tip = noop;
5335
+ var generateComponentTrace; // work around flow check
5336
+ var formatComponentName;
5337
+ if (process.env.NODE_ENV !== 'production') {
5338
+ var hasConsole_1 = typeof console !== 'undefined';
5339
+ var classifyRE_1 = /(?:^|[-_])(\w)/g;
5340
+ var classify_1 = function (str) {
5341
+ return str.replace(classifyRE_1, function (c) { return c.toUpperCase(); }).replace(/[-_]/g, '');
5342
+ };
5343
+ warn$2 = function (msg, vm) {
5344
+ if (vm === void 0) { vm = currentInstance; }
5345
+ var trace = vm ? generateComponentTrace(vm) : '';
5346
+ if (config.warnHandler) {
5347
+ config.warnHandler.call(null, msg, vm, trace);
5348
+ }
5349
+ else if (hasConsole_1 && !config.silent) {
5350
+ console.error("[Vue warn]: ".concat(msg).concat(trace));
5351
+ }
5352
+ };
5353
+ tip = function (msg, vm) {
5354
+ if (hasConsole_1 && !config.silent) {
5355
+ console.warn("[Vue tip]: ".concat(msg) + (vm ? generateComponentTrace(vm) : ''));
5356
+ }
5357
+ };
5358
+ formatComponentName = function (vm, includeFile) {
5359
+ if (vm.$root === vm) {
5360
+ return '<Root>';
5361
+ }
5362
+ var options = isFunction(vm) && vm.cid != null
5363
+ ? vm.options
5364
+ : vm._isVue
5365
+ ? vm.$options || vm.constructor.options
5366
+ : vm;
5367
+ var name = getComponentName(options);
5368
+ var file = options.__file;
5369
+ if (!name && file) {
5370
+ var match = file.match(/([^/\\]+)\.vue$/);
5371
+ name = match && match[1];
5372
+ }
5373
+ return ((name ? "<".concat(classify_1(name), ">") : "<Anonymous>") +
5374
+ (file && includeFile !== false ? " at ".concat(file) : ''));
5375
+ };
5376
+ var repeat_1 = function (str, n) {
5377
+ var res = '';
5378
+ while (n) {
5379
+ if (n % 2 === 1)
5380
+ res += str;
5381
+ if (n > 1)
5382
+ str += str;
5383
+ n >>= 1;
5384
+ }
5385
+ return res;
5386
+ };
5387
+ generateComponentTrace = function (vm) {
5388
+ if (vm._isVue && vm.$parent) {
5389
+ var tree = [];
5390
+ var currentRecursiveSequence = 0;
5391
+ while (vm) {
5392
+ if (tree.length > 0) {
5393
+ var last = tree[tree.length - 1];
5394
+ if (last.constructor === vm.constructor) {
5395
+ currentRecursiveSequence++;
5396
+ vm = vm.$parent;
5397
+ continue;
5398
+ }
5399
+ else if (currentRecursiveSequence > 0) {
5400
+ tree[tree.length - 1] = [last, currentRecursiveSequence];
5401
+ currentRecursiveSequence = 0;
5402
+ }
5403
+ }
5404
+ tree.push(vm);
5405
+ vm = vm.$parent;
5406
+ }
5407
+ return ('\n\nfound in\n\n' +
5408
+ tree
5409
+ .map(function (vm, i) {
5410
+ return "".concat(i === 0 ? '---> ' : repeat_1(' ', 5 + i * 2)).concat(isArray(vm)
5411
+ ? "".concat(formatComponentName(vm[0]), "... (").concat(vm[1], " recursive calls)")
5412
+ : formatComponentName(vm));
5413
+ })
5414
+ .join('\n'));
5415
+ }
5416
+ else {
5417
+ return "\n\n(found in ".concat(formatComponentName(vm), ")");
5418
+ }
5419
+ };
5420
+ }
5421
+
5422
+ /**
5423
+ * Option overwriting strategies are functions that handle
5424
+ * how to merge a parent option value and a child option
5425
+ * value into the final value.
5426
+ */
5427
+ var strats = config.optionMergeStrategies;
5428
+ /**
5429
+ * Options with restrictions
5430
+ */
5431
+ if (process.env.NODE_ENV !== 'production') {
5432
+ strats.el = strats.propsData = function (parent, child, vm, key) {
5433
+ if (!vm) {
5434
+ warn$2("option \"".concat(key, "\" can only be used during instance ") +
5435
+ 'creation with the `new` keyword.');
5436
+ }
5437
+ return defaultStrat(parent, child);
5438
+ };
5439
+ }
5440
+ /**
5441
+ * Helper that recursively merges two data objects together.
5442
+ */
5443
+ function mergeData(to, from) {
5444
+ if (!from)
5445
+ return to;
5446
+ var key, toVal, fromVal;
5447
+ var keys = hasSymbol
5448
+ ? Reflect.ownKeys(from)
5449
+ : Object.keys(from);
5450
+ for (var i = 0; i < keys.length; i++) {
5451
+ key = keys[i];
5452
+ // in case the object is already observed...
5453
+ if (key === '__ob__')
5454
+ continue;
5455
+ toVal = to[key];
5456
+ fromVal = from[key];
5457
+ if (!hasOwn(to, key)) {
5458
+ set(to, key, fromVal);
5459
+ }
5460
+ else if (toVal !== fromVal &&
5461
+ isPlainObject(toVal) &&
5462
+ isPlainObject(fromVal)) {
5463
+ mergeData(toVal, fromVal);
5464
+ }
5465
+ }
5466
+ return to;
5467
+ }
5468
+ /**
5469
+ * Data
5470
+ */
5471
+ function mergeDataOrFn(parentVal, childVal, vm) {
5472
+ if (!vm) {
5473
+ // in a Vue.extend merge, both should be functions
5474
+ if (!childVal) {
5475
+ return parentVal;
5476
+ }
5477
+ if (!parentVal) {
5478
+ return childVal;
5479
+ }
5480
+ // when parentVal & childVal are both present,
5481
+ // we need to return a function that returns the
5482
+ // merged result of both functions... no need to
5483
+ // check if parentVal is a function here because
5484
+ // it has to be a function to pass previous merges.
5485
+ return function mergedDataFn() {
5486
+ return mergeData(isFunction(childVal) ? childVal.call(this, this) : childVal, isFunction(parentVal) ? parentVal.call(this, this) : parentVal);
5487
+ };
5488
+ }
5489
+ else {
5490
+ return function mergedInstanceDataFn() {
5491
+ // instance merge
5492
+ var instanceData = isFunction(childVal)
5493
+ ? childVal.call(vm, vm)
5494
+ : childVal;
5495
+ var defaultData = isFunction(parentVal)
5496
+ ? parentVal.call(vm, vm)
5497
+ : parentVal;
5498
+ if (instanceData) {
5499
+ return mergeData(instanceData, defaultData);
5500
+ }
5501
+ else {
5502
+ return defaultData;
5503
+ }
5504
+ };
5505
+ }
5506
+ }
5507
+ strats.data = function (parentVal, childVal, vm) {
5508
+ if (!vm) {
5509
+ if (childVal && typeof childVal !== 'function') {
5510
+ process.env.NODE_ENV !== 'production' &&
5511
+ warn$2('The "data" option should be a function ' +
5512
+ 'that returns a per-instance value in component ' +
5513
+ 'definitions.', vm);
5514
+ return parentVal;
5515
+ }
5516
+ return mergeDataOrFn(parentVal, childVal);
5517
+ }
5518
+ return mergeDataOrFn(parentVal, childVal, vm);
5519
+ };
5520
+ /**
5521
+ * Hooks and props are merged as arrays.
5522
+ */
5523
+ function mergeLifecycleHook(parentVal, childVal) {
5524
+ var res = childVal
5525
+ ? parentVal
5526
+ ? parentVal.concat(childVal)
5527
+ : isArray(childVal)
5528
+ ? childVal
5529
+ : [childVal]
5530
+ : parentVal;
5531
+ return res ? dedupeHooks(res) : res;
5532
+ }
5533
+ function dedupeHooks(hooks) {
5534
+ var res = [];
5535
+ for (var i = 0; i < hooks.length; i++) {
5536
+ if (res.indexOf(hooks[i]) === -1) {
5537
+ res.push(hooks[i]);
5538
+ }
5539
+ }
5540
+ return res;
5541
+ }
5542
+ LIFECYCLE_HOOKS.forEach(function (hook) {
5543
+ strats[hook] = mergeLifecycleHook;
5544
+ });
5545
+ /**
5546
+ * Assets
5547
+ *
5548
+ * When a vm is present (instance creation), we need to do
5549
+ * a three-way merge between constructor options, instance
5550
+ * options and parent options.
5551
+ */
5552
+ function mergeAssets(parentVal, childVal, vm, key) {
5553
+ var res = Object.create(parentVal || null);
5554
+ if (childVal) {
5555
+ process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);
5556
+ return extend(res, childVal);
5557
+ }
5558
+ else {
5559
+ return res;
5560
+ }
5561
+ }
5562
+ ASSET_TYPES.forEach(function (type) {
5563
+ strats[type + 's'] = mergeAssets;
5564
+ });
5565
+ /**
5566
+ * Watchers.
5567
+ *
5568
+ * Watchers hashes should not overwrite one
5569
+ * another, so we merge them as arrays.
5570
+ */
5571
+ strats.watch = function (parentVal, childVal, vm, key) {
5572
+ // work around Firefox's Object.prototype.watch...
5573
+ //@ts-expect-error work around
5574
+ if (parentVal === nativeWatch)
5575
+ parentVal = undefined;
5576
+ //@ts-expect-error work around
5577
+ if (childVal === nativeWatch)
5578
+ childVal = undefined;
5579
+ /* istanbul ignore if */
5580
+ if (!childVal)
5581
+ return Object.create(parentVal || null);
5582
+ if (process.env.NODE_ENV !== 'production') {
5583
+ assertObjectType(key, childVal, vm);
5584
+ }
5585
+ if (!parentVal)
5586
+ return childVal;
5587
+ var ret = {};
5588
+ extend(ret, parentVal);
5589
+ for (var key_1 in childVal) {
5590
+ var parent_1 = ret[key_1];
5591
+ var child = childVal[key_1];
5592
+ if (parent_1 && !isArray(parent_1)) {
5593
+ parent_1 = [parent_1];
5594
+ }
5595
+ ret[key_1] = parent_1 ? parent_1.concat(child) : isArray(child) ? child : [child];
5596
+ }
5597
+ return ret;
5598
+ };
5599
+ /**
5600
+ * Other object hashes.
5601
+ */
5602
+ strats.props =
5603
+ strats.methods =
5604
+ strats.inject =
5605
+ strats.computed =
5606
+ function (parentVal, childVal, vm, key) {
5607
+ if (childVal && process.env.NODE_ENV !== 'production') {
5608
+ assertObjectType(key, childVal, vm);
5609
+ }
5610
+ if (!parentVal)
5611
+ return childVal;
5612
+ var ret = Object.create(null);
5613
+ extend(ret, parentVal);
5614
+ if (childVal)
5615
+ extend(ret, childVal);
5616
+ return ret;
5617
+ };
5618
+ strats.provide = mergeDataOrFn;
5619
+ /**
5620
+ * Default strategy.
5621
+ */
5622
+ var defaultStrat = function (parentVal, childVal) {
5623
+ return childVal === undefined ? parentVal : childVal;
5624
+ };
5625
+ /**
5626
+ * Validate component names
5627
+ */
5628
+ function checkComponents(options) {
5629
+ for (var key in options.components) {
5630
+ validateComponentName(key);
5631
+ }
5632
+ }
5633
+ function validateComponentName(name) {
5634
+ if (!new RegExp("^[a-zA-Z][\\-\\.0-9_".concat(unicodeRegExp.source, "]*$")).test(name)) {
5635
+ warn$2('Invalid component name: "' +
5636
+ name +
5637
+ '". Component names ' +
5638
+ 'should conform to valid custom element name in html5 specification.');
5639
+ }
5640
+ if (isBuiltInTag(name) || config.isReservedTag(name)) {
5641
+ warn$2('Do not use built-in or reserved HTML elements as component ' +
5642
+ 'id: ' +
5643
+ name);
5644
+ }
5645
+ }
5646
+ /**
5647
+ * Ensure all props option syntax are normalized into the
5648
+ * Object-based format.
5649
+ */
5650
+ function normalizeProps(options, vm) {
5651
+ var props = options.props;
5652
+ if (!props)
5653
+ return;
5654
+ var res = {};
5655
+ var i, val, name;
5656
+ if (isArray(props)) {
5657
+ i = props.length;
5658
+ while (i--) {
5659
+ val = props[i];
5660
+ if (typeof val === 'string') {
5661
+ name = camelize(val);
5662
+ res[name] = { type: null };
5663
+ }
5664
+ else if (process.env.NODE_ENV !== 'production') {
5665
+ warn$2('props must be strings when using array syntax.');
5666
+ }
5667
+ }
5668
+ }
5669
+ else if (isPlainObject(props)) {
5670
+ for (var key in props) {
5671
+ val = props[key];
5672
+ name = camelize(key);
5673
+ res[name] = isPlainObject(val) ? val : { type: val };
5674
+ }
5675
+ }
5676
+ else if (process.env.NODE_ENV !== 'production') {
5677
+ warn$2("Invalid value for option \"props\": expected an Array or an Object, " +
5678
+ "but got ".concat(toRawType(props), "."), vm);
5679
+ }
5680
+ options.props = res;
5681
+ }
5682
+ /**
5683
+ * Normalize all injections into Object-based format
5684
+ */
5685
+ function normalizeInject(options, vm) {
5686
+ var inject = options.inject;
5687
+ if (!inject)
5688
+ return;
5689
+ var normalized = (options.inject = {});
5690
+ if (isArray(inject)) {
5691
+ for (var i = 0; i < inject.length; i++) {
5692
+ normalized[inject[i]] = { from: inject[i] };
5693
+ }
5694
+ }
5695
+ else if (isPlainObject(inject)) {
5696
+ for (var key in inject) {
5697
+ var val = inject[key];
5698
+ normalized[key] = isPlainObject(val)
5699
+ ? extend({ from: key }, val)
5700
+ : { from: val };
5701
+ }
5702
+ }
5703
+ else if (process.env.NODE_ENV !== 'production') {
5704
+ warn$2("Invalid value for option \"inject\": expected an Array or an Object, " +
5705
+ "but got ".concat(toRawType(inject), "."), vm);
5706
+ }
5707
+ }
5708
+ /**
5709
+ * Normalize raw function directives into object format.
5710
+ */
5711
+ function normalizeDirectives$1(options) {
5712
+ var dirs = options.directives;
5713
+ if (dirs) {
5714
+ for (var key in dirs) {
5715
+ var def = dirs[key];
5716
+ if (isFunction(def)) {
5717
+ dirs[key] = { bind: def, update: def };
5718
+ }
5719
+ }
5720
+ }
5721
+ }
5722
+ function assertObjectType(name, value, vm) {
5723
+ if (!isPlainObject(value)) {
5724
+ warn$2("Invalid value for option \"".concat(name, "\": expected an Object, ") +
5725
+ "but got ".concat(toRawType(value), "."), vm);
5726
+ }
5727
+ }
5728
+ /**
5729
+ * Merge two option objects into a new one.
5730
+ * Core utility used in both instantiation and inheritance.
5731
+ */
5732
+ function mergeOptions(parent, child, vm) {
5733
+ if (process.env.NODE_ENV !== 'production') {
5734
+ checkComponents(child);
5735
+ }
5736
+ if (isFunction(child)) {
5737
+ // @ts-expect-error
5738
+ child = child.options;
5739
+ }
5740
+ normalizeProps(child, vm);
5741
+ normalizeInject(child, vm);
5742
+ normalizeDirectives$1(child);
5743
+ // Apply extends and mixins on the child options,
5744
+ // but only if it is a raw options object that isn't
5745
+ // the result of another mergeOptions call.
5746
+ // Only merged options has the _base property.
5747
+ if (!child._base) {
5748
+ if (child.extends) {
5749
+ parent = mergeOptions(parent, child.extends, vm);
5750
+ }
5751
+ if (child.mixins) {
5752
+ for (var i = 0, l = child.mixins.length; i < l; i++) {
5753
+ parent = mergeOptions(parent, child.mixins[i], vm);
5754
+ }
5755
+ }
5756
+ }
5757
+ var options = {};
5758
+ var key;
5759
+ for (key in parent) {
5760
+ mergeField(key);
5761
+ }
5762
+ for (key in child) {
5763
+ if (!hasOwn(parent, key)) {
5764
+ mergeField(key);
5765
+ }
5766
+ }
5767
+ function mergeField(key) {
5768
+ var strat = strats[key] || defaultStrat;
5769
+ options[key] = strat(parent[key], child[key], vm, key);
5770
+ }
5771
+ return options;
5772
+ }
5773
+ /**
5774
+ * Resolve an asset.
5775
+ * This function is used because child instances need access
5776
+ * to assets defined in its ancestor chain.
5777
+ */
5778
+ function resolveAsset(options, type, id, warnMissing) {
5779
+ /* istanbul ignore if */
5780
+ if (typeof id !== 'string') {
5781
+ return;
5782
+ }
5783
+ var assets = options[type];
5784
+ // check local registration variations first
5785
+ if (hasOwn(assets, id))
5786
+ return assets[id];
5787
+ var camelizedId = camelize(id);
5788
+ if (hasOwn(assets, camelizedId))
5789
+ return assets[camelizedId];
5790
+ var PascalCaseId = capitalize(camelizedId);
5791
+ if (hasOwn(assets, PascalCaseId))
5792
+ return assets[PascalCaseId];
5793
+ // fallback to prototype chain
5794
+ var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];
5795
+ if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {
5796
+ warn$2('Failed to resolve ' + type.slice(0, -1) + ': ' + id);
5797
+ }
5798
+ return res;
5799
+ }
5800
+
5801
+ function validateProp(key, propOptions, propsData, vm) {
5802
+ var prop = propOptions[key];
5803
+ var absent = !hasOwn(propsData, key);
5804
+ var value = propsData[key];
5805
+ // boolean casting
5806
+ var booleanIndex = getTypeIndex(Boolean, prop.type);
5807
+ if (booleanIndex > -1) {
5808
+ if (absent && !hasOwn(prop, 'default')) {
5809
+ value = false;
5810
+ }
5811
+ else if (value === '' || value === hyphenate(key)) {
5812
+ // only cast empty string / same name to boolean if
5813
+ // boolean has higher priority
5814
+ var stringIndex = getTypeIndex(String, prop.type);
5815
+ if (stringIndex < 0 || booleanIndex < stringIndex) {
5816
+ value = true;
5817
+ }
5818
+ }
5819
+ }
5820
+ // check default value
5821
+ if (value === undefined) {
5822
+ value = getPropDefaultValue(vm, prop, key);
5823
+ // since the default value is a fresh copy,
5824
+ // make sure to observe it.
5825
+ var prevShouldObserve = shouldObserve;
5826
+ toggleObserving(true);
5827
+ observe(value);
5828
+ toggleObserving(prevShouldObserve);
5829
+ }
5830
+ if (process.env.NODE_ENV !== 'production') {
5831
+ assertProp(prop, key, value, vm, absent);
5832
+ }
5833
+ return value;
5834
+ }
5835
+ /**
5836
+ * Get the default value of a prop.
5837
+ */
5838
+ function getPropDefaultValue(vm, prop, key) {
5839
+ // no default, return undefined
5840
+ if (!hasOwn(prop, 'default')) {
5841
+ return undefined;
5842
+ }
5843
+ var def = prop.default;
5844
+ // warn against non-factory defaults for Object & Array
5845
+ if (process.env.NODE_ENV !== 'production' && isObject(def)) {
5846
+ warn$2('Invalid default value for prop "' +
5847
+ key +
5848
+ '": ' +
5849
+ 'Props with type Object/Array must use a factory function ' +
5850
+ 'to return the default value.', vm);
5851
+ }
5852
+ // the raw prop value was also undefined from previous render,
5853
+ // return previous default value to avoid unnecessary watcher trigger
5854
+ if (vm &&
5855
+ vm.$options.propsData &&
5856
+ vm.$options.propsData[key] === undefined &&
5857
+ vm._props[key] !== undefined) {
5858
+ return vm._props[key];
5859
+ }
5860
+ // call factory function for non-Function types
5861
+ // a value is Function if its prototype is function even across different execution context
5862
+ return isFunction(def) && getType(prop.type) !== 'Function'
5863
+ ? def.call(vm)
5864
+ : def;
5865
+ }
5866
+ /**
5867
+ * Assert whether a prop is valid.
5868
+ */
5869
+ function assertProp(prop, name, value, vm, absent) {
5870
+ if (prop.required && absent) {
5871
+ warn$2('Missing required prop: "' + name + '"', vm);
5872
+ return;
5873
+ }
5874
+ if (value == null && !prop.required) {
5875
+ return;
5876
+ }
5877
+ var type = prop.type;
5878
+ var valid = !type || type === true;
5879
+ var expectedTypes = [];
5880
+ if (type) {
5881
+ if (!isArray(type)) {
5882
+ type = [type];
5883
+ }
5884
+ for (var i = 0; i < type.length && !valid; i++) {
5885
+ var assertedType = assertType(value, type[i], vm);
5886
+ expectedTypes.push(assertedType.expectedType || '');
5887
+ valid = assertedType.valid;
5888
+ }
5889
+ }
5890
+ var haveExpectedTypes = expectedTypes.some(function (t) { return t; });
5891
+ if (!valid && haveExpectedTypes) {
5892
+ warn$2(getInvalidTypeMessage(name, value, expectedTypes), vm);
5893
+ return;
5894
+ }
5895
+ var validator = prop.validator;
5896
+ if (validator) {
5897
+ if (!validator(value)) {
5898
+ warn$2('Invalid prop: custom validator check failed for prop "' + name + '".', vm);
5899
+ }
5900
+ }
5901
+ }
5902
+ var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol|BigInt)$/;
5903
+ function assertType(value, type, vm) {
5904
+ var valid;
5905
+ var expectedType = getType(type);
5906
+ if (simpleCheckRE.test(expectedType)) {
5907
+ var t = typeof value;
5908
+ valid = t === expectedType.toLowerCase();
5909
+ // for primitive wrapper objects
5910
+ if (!valid && t === 'object') {
5911
+ valid = value instanceof type;
5912
+ }
5913
+ }
5914
+ else if (expectedType === 'Object') {
5915
+ valid = isPlainObject(value);
5916
+ }
5917
+ else if (expectedType === 'Array') {
5918
+ valid = isArray(value);
5919
+ }
5920
+ else {
5921
+ try {
5922
+ valid = value instanceof type;
5923
+ }
5924
+ catch (e) {
5925
+ warn$2('Invalid prop type: "' + String(type) + '" is not a constructor', vm);
5926
+ valid = false;
5927
+ }
5928
+ }
5929
+ return {
5930
+ valid: valid,
5931
+ expectedType: expectedType
5932
+ };
5933
+ }
5934
+ var functionTypeCheckRE = /^\s*function (\w+)/;
5935
+ /**
5936
+ * Use function string name to check built-in types,
5937
+ * because a simple equality check will fail when running
5938
+ * across different vms / iframes.
5939
+ */
5940
+ function getType(fn) {
5941
+ var match = fn && fn.toString().match(functionTypeCheckRE);
5942
+ return match ? match[1] : '';
5943
+ }
5944
+ function isSameType(a, b) {
5945
+ return getType(a) === getType(b);
5946
+ }
5947
+ function getTypeIndex(type, expectedTypes) {
5948
+ if (!isArray(expectedTypes)) {
5949
+ return isSameType(expectedTypes, type) ? 0 : -1;
5950
+ }
5951
+ for (var i = 0, len = expectedTypes.length; i < len; i++) {
5952
+ if (isSameType(expectedTypes[i], type)) {
5953
+ return i;
5954
+ }
5955
+ }
5956
+ return -1;
5957
+ }
5958
+ function getInvalidTypeMessage(name, value, expectedTypes) {
5959
+ var message = "Invalid prop: type check failed for prop \"".concat(name, "\".") +
5960
+ " Expected ".concat(expectedTypes.map(capitalize).join(', '));
5961
+ var expectedType = expectedTypes[0];
5962
+ var receivedType = toRawType(value);
5963
+ // check if we need to specify expected value
5964
+ if (expectedTypes.length === 1 &&
5965
+ isExplicable(expectedType) &&
5966
+ isExplicable(typeof value) &&
5967
+ !isBoolean(expectedType, receivedType)) {
5968
+ message += " with value ".concat(styleValue(value, expectedType));
5969
+ }
5970
+ message += ", got ".concat(receivedType, " ");
5971
+ // check if we need to specify received value
5972
+ if (isExplicable(receivedType)) {
5973
+ message += "with value ".concat(styleValue(value, receivedType), ".");
5974
+ }
5975
+ return message;
5976
+ }
5977
+ function styleValue(value, type) {
5978
+ if (type === 'String') {
5979
+ return "\"".concat(value, "\"");
5980
+ }
5981
+ else if (type === 'Number') {
5982
+ return "".concat(Number(value));
5983
+ }
5984
+ else {
5985
+ return "".concat(value);
5986
+ }
5987
+ }
5988
+ var EXPLICABLE_TYPES = ['string', 'number', 'boolean'];
5989
+ function isExplicable(value) {
5990
+ return EXPLICABLE_TYPES.some(function (elem) { return value.toLowerCase() === elem; });
5991
+ }
5992
+ function isBoolean() {
5993
+ var args = [];
5994
+ for (var _i = 0; _i < arguments.length; _i++) {
5995
+ args[_i] = arguments[_i];
5996
+ }
5997
+ return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; });
5998
+ }
5999
+
6000
+ function Vue(options) {
6001
+ if (process.env.NODE_ENV !== 'production' && !(this instanceof Vue)) {
6002
+ warn$2('Vue is a constructor and should be called with the `new` keyword');
6003
+ }
6004
+ this._init(options);
6005
+ }
6006
+ //@ts-expect-error Vue has function type
6007
+ initMixin$1(Vue);
6008
+ //@ts-expect-error Vue has function type
6009
+ stateMixin(Vue);
6010
+ //@ts-expect-error Vue has function type
6011
+ eventsMixin(Vue);
6012
+ //@ts-expect-error Vue has function type
6013
+ lifecycleMixin(Vue);
6014
+ //@ts-expect-error Vue has function type
6015
+ renderMixin(Vue);
6016
 
6017
+ function initUse(Vue) {
6018
+ Vue.use = function (plugin) {
6019
+ var installedPlugins = this._installedPlugins || (this._installedPlugins = []);
6020
+ if (installedPlugins.indexOf(plugin) > -1) {
6021
+ return this;
6022
+ }
6023
+ // additional parameters
6024
+ var args = toArray(arguments, 1);
6025
+ args.unshift(this);
6026
+ if (isFunction(plugin.install)) {
6027
+ plugin.install.apply(plugin, args);
6028
+ }
6029
+ else if (isFunction(plugin)) {
6030
+ plugin.apply(null, args);
6031
+ }
6032
+ installedPlugins.push(plugin);
6033
+ return this;
6034
+ };
6035
+ }
6036
+
6037
+ function initMixin(Vue) {
6038
+ Vue.mixin = function (mixin) {
6039
+ this.options = mergeOptions(this.options, mixin);
6040
+ return this;
6041
+ };
6042
+ }
6043
+
6044
+ function initExtend(Vue) {
6045
+ /**
6046
+ * Each instance constructor, including Vue, has a unique
6047
+ * cid. This enables us to create wrapped "child
6048
+ * constructors" for prototypal inheritance and cache them.
6049
+ */
6050
+ Vue.cid = 0;
6051
+ var cid = 1;
6052
+ /**
6053
+ * Class inheritance
6054
+ */
6055
+ Vue.extend = function (extendOptions) {
6056
+ extendOptions = extendOptions || {};
6057
+ var Super = this;
6058
+ var SuperId = Super.cid;
6059
+ var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});
6060
+ if (cachedCtors[SuperId]) {
6061
+ return cachedCtors[SuperId];
6062
+ }
6063
+ var name = getComponentName(extendOptions) || getComponentName(Super.options);
6064
+ if (process.env.NODE_ENV !== 'production' && name) {
6065
+ validateComponentName(name);
6066
+ }
6067
+ var Sub = function VueComponent(options) {
6068
+ this._init(options);
6069
+ };
6070
+ Sub.prototype = Object.create(Super.prototype);
6071
+ Sub.prototype.constructor = Sub;
6072
+ Sub.cid = cid++;
6073
+ Sub.options = mergeOptions(Super.options, extendOptions);
6074
+ Sub['super'] = Super;
6075
+ // For props and computed properties, we define the proxy getters on
6076
+ // the Vue instances at extension time, on the extended prototype. This
6077
+ // avoids Object.defineProperty calls for each instance created.
6078
+ if (Sub.options.props) {
6079
+ initProps(Sub);
6080
+ }
6081
+ if (Sub.options.computed) {
6082
+ initComputed(Sub);
6083
+ }
6084
+ // allow further extension/mixin/plugin usage
6085
+ Sub.extend = Super.extend;
6086
+ Sub.mixin = Super.mixin;
6087
+ Sub.use = Super.use;
6088
+ // create asset registers, so extended classes
6089
+ // can have their private assets too.
6090
+ ASSET_TYPES.forEach(function (type) {
6091
+ Sub[type] = Super[type];
6092
+ });
6093
+ // enable recursive self-lookup
6094
+ if (name) {
6095
+ Sub.options.components[name] = Sub;
6096
+ }
6097
+ // keep a reference to the super options at extension time.
6098
+ // later at instantiation we can check if Super's options have
6099
+ // been updated.
6100
+ Sub.superOptions = Super.options;
6101
+ Sub.extendOptions = extendOptions;
6102
+ Sub.sealedOptions = extend({}, Sub.options);
6103
+ // cache constructor
6104
+ cachedCtors[SuperId] = Sub;
6105
+ return Sub;
6106
+ };
6107
+ }
6108
+ function initProps(Comp) {
6109
+ var props = Comp.options.props;
6110
+ for (var key in props) {
6111
+ proxy(Comp.prototype, "_props", key);
6112
+ }
6113
+ }
6114
+ function initComputed(Comp) {
6115
+ var computed = Comp.options.computed;
6116
+ for (var key in computed) {
6117
+ defineComputed(Comp.prototype, key, computed[key]);
6118
+ }
6119
+ }
6120
+
6121
+ function initAssetRegisters(Vue) {
6122
+ /**
6123
+ * Create asset registration methods.
6124
+ */
6125
+ ASSET_TYPES.forEach(function (type) {
6126
+ // @ts-expect-error function is not exact same type
6127
+ Vue[type] = function (id, definition) {
6128
+ if (!definition) {
6129
+ return this.options[type + 's'][id];
6130
+ }
6131
+ else {
6132
+ /* istanbul ignore if */
6133
+ if (process.env.NODE_ENV !== 'production' && type === 'component') {
6134
+ validateComponentName(id);
6135
+ }
6136
+ if (type === 'component' && isPlainObject(definition)) {
6137
+ // @ts-expect-error
6138
+ definition.name = definition.name || id;
6139
+ definition = this.options._base.extend(definition);
6140
+ }
6141
+ if (type === 'directive' && isFunction(definition)) {
6142
+ definition = { bind: definition, update: definition };
6143
+ }
6144
+ this.options[type + 's'][id] = definition;
6145
+ return definition;
6146
+ }
6147
+ };
6148
+ });
6149
+ }
6150
+
6151
+ function _getComponentName(opts) {
6152
+ return opts && (getComponentName(opts.Ctor.options) || opts.tag);
6153
+ }
6154
+ function matches(pattern, name) {
6155
+ if (isArray(pattern)) {
6156
+ return pattern.indexOf(name) > -1;
6157
+ }
6158
+ else if (typeof pattern === 'string') {
6159
+ return pattern.split(',').indexOf(name) > -1;
6160
+ }
6161
+ else if (isRegExp(pattern)) {
6162
+ return pattern.test(name);
6163
+ }
6164
+ /* istanbul ignore next */
6165
+ return false;
6166
+ }
6167
+ function pruneCache(keepAliveInstance, filter) {
6168
+ var cache = keepAliveInstance.cache, keys = keepAliveInstance.keys, _vnode = keepAliveInstance._vnode;
6169
+ for (var key in cache) {
6170
+ var entry = cache[key];
6171
+ if (entry) {
6172
+ var name_1 = entry.name;
6173
+ if (name_1 && !filter(name_1)) {
6174
+ pruneCacheEntry(cache, key, keys, _vnode);
6175
+ }
6176
+ }
6177
+ }
6178
+ }
6179
+ function pruneCacheEntry(cache, key, keys, current) {
6180
+ var entry = cache[key];
6181
+ if (entry && (!current || entry.tag !== current.tag)) {
6182
+ // @ts-expect-error can be undefined
6183
+ entry.componentInstance.$destroy();
6184
+ }
6185
+ cache[key] = null;
6186
+ remove$2(keys, key);
6187
+ }
6188
+ var patternTypes = [String, RegExp, Array];
6189
+ // TODO defineComponent
6190
+ var KeepAlive = {
6191
+ name: 'keep-alive',
6192
+ abstract: true,
6193
+ props: {
6194
+ include: patternTypes,
6195
+ exclude: patternTypes,
6196
+ max: [String, Number]
6197
+ },
6198
+ methods: {
6199
+ cacheVNode: function () {
6200
+ var _a = this, cache = _a.cache, keys = _a.keys, vnodeToCache = _a.vnodeToCache, keyToCache = _a.keyToCache;
6201
+ if (vnodeToCache) {
6202
+ var tag = vnodeToCache.tag, componentInstance = vnodeToCache.componentInstance, componentOptions = vnodeToCache.componentOptions;
6203
+ cache[keyToCache] = {
6204
+ name: _getComponentName(componentOptions),
6205
+ tag: tag,
6206
+ componentInstance: componentInstance
6207
+ };
6208
+ keys.push(keyToCache);
6209
+ // prune oldest entry
6210
+ if (this.max && keys.length > parseInt(this.max)) {
6211
+ pruneCacheEntry(cache, keys[0], keys, this._vnode);
6212
+ }
6213
+ this.vnodeToCache = null;
6214
+ }
6215
+ }
6216
+ },
6217
+ created: function () {
6218
+ this.cache = Object.create(null);
6219
+ this.keys = [];
6220
+ },
6221
+ destroyed: function () {
6222
+ for (var key in this.cache) {
6223
+ pruneCacheEntry(this.cache, key, this.keys);
6224
+ }
6225
+ },
6226
+ mounted: function () {
6227
+ var _this = this;
6228
+ this.cacheVNode();
6229
+ this.$watch('include', function (val) {
6230
+ pruneCache(_this, function (name) { return matches(val, name); });
6231
+ });
6232
+ this.$watch('exclude', function (val) {
6233
+ pruneCache(_this, function (name) { return !matches(val, name); });
6234
+ });
6235
+ },
6236
+ updated: function () {
6237
+ this.cacheVNode();
6238
+ },
6239
+ render: function () {
6240
+ var slot = this.$slots.default;
6241
+ var vnode = getFirstComponentChild(slot);
6242
+ var componentOptions = vnode && vnode.componentOptions;
6243
+ if (componentOptions) {
6244
+ // check pattern
6245
+ var name_2 = _getComponentName(componentOptions);
6246
+ var _a = this, include = _a.include, exclude = _a.exclude;
6247
+ if (
6248
+ // not included
6249
+ (include && (!name_2 || !matches(include, name_2))) ||
6250
+ // excluded
6251
+ (exclude && name_2 && matches(exclude, name_2))) {
6252
+ return vnode;
6253
+ }
6254
+ var _b = this, cache = _b.cache, keys = _b.keys;
6255
+ var key = vnode.key == null
6256
+ ? // same constructor may get registered as different local components
6257
+ // so cid alone is not enough (#3269)
6258
+ componentOptions.Ctor.cid +
6259
+ (componentOptions.tag ? "::".concat(componentOptions.tag) : '')
6260
+ : vnode.key;
6261
+ if (cache[key]) {
6262
+ vnode.componentInstance = cache[key].componentInstance;
6263
+ // make current key freshest
6264
+ remove$2(keys, key);
6265
+ keys.push(key);
6266
+ }
6267
+ else {
6268
+ // delay setting the cache until update
6269
+ this.vnodeToCache = vnode;
6270
+ this.keyToCache = key;
6271
+ }
6272
+ // @ts-expect-error can vnode.data can be undefined
6273
+ vnode.data.keepAlive = true;
6274
+ }
6275
+ return vnode || (slot && slot[0]);
6276
+ }
6277
+ };
6278
 
6279
+ var builtInComponents = {
6280
+ KeepAlive: KeepAlive
6281
+ };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6282
 
6283
+ function initGlobalAPI(Vue) {
6284
+ // config
6285
+ var configDef = {};
6286
+ configDef.get = function () { return config; };
6287
+ if (process.env.NODE_ENV !== 'production') {
6288
+ configDef.set = function () {
6289
+ warn$2('Do not replace the Vue.config object, set individual fields instead.');
6290
+ };
6291
+ }
6292
+ Object.defineProperty(Vue, 'config', configDef);
6293
+ // exposed util methods.
6294
+ // NOTE: these are not considered part of the public API - avoid relying on
6295
+ // them unless you are aware of the risk.
6296
+ Vue.util = {
6297
+ warn: warn$2,
6298
+ extend: extend,
6299
+ mergeOptions: mergeOptions,
6300
+ defineReactive: defineReactive
6301
+ };
6302
+ Vue.set = set;
6303
+ Vue.delete = del;
6304
+ Vue.nextTick = nextTick;
6305
+ // 2.6 explicit observable API
6306
+ Vue.observable = function (obj) {
6307
+ observe(obj);
6308
+ return obj;
6309
+ };
6310
+ Vue.options = Object.create(null);
6311
+ ASSET_TYPES.forEach(function (type) {
6312
+ Vue.options[type + 's'] = Object.create(null);
6313
+ });
6314
+ // this is used to identify the "base" constructor to extend all plain-object
6315
+ // components with in Weex's multi-instance scenarios.
6316
+ Vue.options._base = Vue;
6317
+ extend(Vue.options.components, builtInComponents);
6318
+ initUse(Vue);
6319
+ initMixin(Vue);
6320
+ initExtend(Vue);
6321
+ initAssetRegisters(Vue);
6322
+ }
6323
+
6324
+ initGlobalAPI(Vue);
6325
+ Object.defineProperty(Vue.prototype, '$isServer', {
6326
+ get: isServerRendering
6327
+ });
6328
+ Object.defineProperty(Vue.prototype, '$ssrContext', {
6329
+ get: function () {
6330
+ /* istanbul ignore next */
6331
+ return this.$vnode && this.$vnode.ssrContext;
6332
+ }
6333
+ });
6334
+ // expose FunctionalRenderContext for ssr runtime helper installation
6335
+ Object.defineProperty(Vue, 'FunctionalRenderContext', {
6336
+ value: FunctionalRenderContext
6337
+ });
6338
+ Vue.version = version;
6339
+
6340
+ // these are reserved for web because they are directly compiled away
6341
+ // during template compilation
6342
+ var isReservedAttr = makeMap('style,class');
6343
+ // attributes that should be using props for binding
6344
+ var acceptValue = makeMap('input,textarea,option,select,progress');
6345
+ var mustUseProp = function (tag, type, attr) {
6346
+ return ((attr === 'value' && acceptValue(tag) && type !== 'button') ||
6347
+ (attr === 'selected' && tag === 'option') ||
6348
+ (attr === 'checked' && tag === 'input') ||
6349
+ (attr === 'muted' && tag === 'video'));
6350
+ };
6351
+ var isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');
6352
+ var isValidContentEditableValue = makeMap('events,caret,typing,plaintext-only');
6353
+ var convertEnumeratedValue = function (key, value) {
6354
+ return isFalsyAttrValue(value) || value === 'false'
6355
+ ? 'false'
6356
+ : // allow arbitrary string value for contenteditable
6357
+ key === 'contenteditable' && isValidContentEditableValue(value)
6358
+ ? value
6359
+ : 'true';
6360
+ };
6361
+ var isBooleanAttr = makeMap('allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +
6362
+ 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +
6363
+ 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +
6364
+ 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +
6365
+ 'required,reversed,scoped,seamless,selected,sortable,' +
6366
+ 'truespeed,typemustmatch,visible');
6367
+ var xlinkNS = 'http://www.w3.org/1999/xlink';
6368
+ var isXlink = function (name) {
6369
+ return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink';
6370
+ };
6371
+ var getXlinkProp = function (name) {
6372
+ return isXlink(name) ? name.slice(6, name.length) : '';
6373
+ };
6374
+ var isFalsyAttrValue = function (val) {
6375
+ return val == null || val === false;
6376
+ };
6377
 
6378
+ function genClassForVnode(vnode) {
6379
+ var data = vnode.data;
6380
+ var parentNode = vnode;
6381
+ var childNode = vnode;
6382
+ while (isDef(childNode.componentInstance)) {
6383
+ childNode = childNode.componentInstance._vnode;
6384
+ if (childNode && childNode.data) {
6385
+ data = mergeClassData(childNode.data, data);
6386
+ }
6387
+ }
6388
+ // @ts-expect-error parentNode.parent not VNodeWithData
6389
+ while (isDef((parentNode = parentNode.parent))) {
6390
+ if (parentNode && parentNode.data) {
6391
+ data = mergeClassData(data, parentNode.data);
6392
+ }
6393
+ }
6394
+ return renderClass(data.staticClass, data.class);
6395
+ }
6396
+ function mergeClassData(child, parent) {
6397
+ return {
6398
+ staticClass: concat(child.staticClass, parent.staticClass),
6399
+ class: isDef(child.class) ? [child.class, parent.class] : parent.class
6400
+ };
6401
+ }
6402
+ function renderClass(staticClass, dynamicClass) {
6403
+ if (isDef(staticClass) || isDef(dynamicClass)) {
6404
+ return concat(staticClass, stringifyClass(dynamicClass));
6405
+ }
6406
+ /* istanbul ignore next */
6407
+ return '';
6408
+ }
6409
+ function concat(a, b) {
6410
+ return a ? (b ? a + ' ' + b : a) : b || '';
6411
+ }
6412
+ function stringifyClass(value) {
6413
+ if (Array.isArray(value)) {
6414
+ return stringifyArray(value);
6415
+ }
6416
+ if (isObject(value)) {
6417
+ return stringifyObject(value);
6418
+ }
6419
+ if (typeof value === 'string') {
6420
+ return value;
6421
+ }
6422
+ /* istanbul ignore next */
6423
+ return '';
6424
+ }
6425
+ function stringifyArray(value) {
6426
+ var res = '';
6427
+ var stringified;
6428
+ for (var i = 0, l = value.length; i < l; i++) {
6429
+ if (isDef((stringified = stringifyClass(value[i]))) && stringified !== '') {
6430
+ if (res)
6431
+ res += ' ';
6432
+ res += stringified;
6433
+ }
6434
+ }
6435
+ return res;
6436
+ }
6437
+ function stringifyObject(value) {
6438
+ var res = '';
6439
+ for (var key in value) {
6440
+ if (value[key]) {
6441
+ if (res)
6442
+ res += ' ';
6443
+ res += key;
6444
+ }
6445
+ }
6446
+ return res;
6447
+ }
6448
+
6449
+ var namespaceMap = {
6450
+ svg: 'http://www.w3.org/2000/svg',
6451
+ math: 'http://www.w3.org/1998/Math/MathML'
6452
+ };
6453
+ var isHTMLTag = makeMap('html,body,base,head,link,meta,style,title,' +
6454
+ 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +
6455
+ 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +
6456
+ 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +
6457
+ 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +
6458
+ 'embed,object,param,source,canvas,script,noscript,del,ins,' +
6459
+ 'caption,col,colgroup,table,thead,tbody,td,th,tr,' +
6460
+ 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +
6461
+ 'output,progress,select,textarea,' +
6462
+ 'details,dialog,menu,menuitem,summary,' +
6463
+ 'content,element,shadow,template,blockquote,iframe,tfoot');
6464
+ // this map is intentionally selective, only covering SVG elements that may
6465
+ // contain child elements.
6466
+ var isSVG = makeMap('svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +
6467
+ 'foreignobject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +
6468
+ 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view', true);
6469
+ var isPreTag = function (tag) { return tag === 'pre'; };
6470
+ var isReservedTag = function (tag) {
6471
+ return isHTMLTag(tag) || isSVG(tag);
6472
+ };
6473
+ function getTagNamespace(tag) {
6474
+ if (isSVG(tag)) {
6475
+ return 'svg';
6476
+ }
6477
+ // basic support for MathML
6478
+ // note it doesn't support other MathML elements being component roots
6479
+ if (tag === 'math') {
6480
+ return 'math';
6481
+ }
6482
+ }
6483
+ var unknownElementCache = Object.create(null);
6484
+ function isUnknownElement(tag) {
6485
+ /* istanbul ignore if */
6486
+ if (!inBrowser) {
6487
+ return true;
6488
+ }
6489
+ if (isReservedTag(tag)) {
6490
+ return false;
6491
+ }
6492
+ tag = tag.toLowerCase();
6493
+ /* istanbul ignore if */
6494
+ if (unknownElementCache[tag] != null) {
6495
+ return unknownElementCache[tag];
6496
+ }
6497
+ var el = document.createElement(tag);
6498
+ if (tag.indexOf('-') > -1) {
6499
+ // http://stackoverflow.com/a/28210364/1070244
6500
+ return (unknownElementCache[tag] =
6501
+ el.constructor === window.HTMLUnknownElement ||
6502
+ el.constructor === window.HTMLElement);
6503
+ }
6504
+ else {
6505
+ return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()));
6506
+ }
6507
+ }
6508
+ var isTextInputType = makeMap('text,number,password,search,email,tel,url');
6509
 
6510
+ /**
6511
+ * Query an element selector if it's not an element already.
6512
+ */
6513
+ function query(el) {
6514
+ if (typeof el === 'string') {
6515
+ var selected = document.querySelector(el);
6516
+ if (!selected) {
6517
+ process.env.NODE_ENV !== 'production' && warn$2('Cannot find element: ' + el);
6518
+ return document.createElement('div');
6519
+ }
6520
+ return selected;
6521
+ }
6522
+ else {
6523
+ return el;
6524
+ }
6525
+ }
6526
+
6527
+ function createElement(tagName, vnode) {
6528
+ var elm = document.createElement(tagName);
6529
+ if (tagName !== 'select') {
6530
+ return elm;
6531
+ }
6532
+ // false or null will remove the attribute but undefined will not
6533
+ if (vnode.data &&
6534
+ vnode.data.attrs &&
6535
+ vnode.data.attrs.multiple !== undefined) {
6536
+ elm.setAttribute('multiple', 'multiple');
6537
+ }
6538
+ return elm;
6539
+ }
6540
+ function createElementNS(namespace, tagName) {
6541
+ return document.createElementNS(namespaceMap[namespace], tagName);
6542
+ }
6543
+ function createTextNode(text) {
6544
+ return document.createTextNode(text);
6545
+ }
6546
+ function createComment(text) {
6547
+ return document.createComment(text);
6548
+ }
6549
+ function insertBefore(parentNode, newNode, referenceNode) {
6550
+ parentNode.insertBefore(newNode, referenceNode);
6551
+ }
6552
+ function removeChild(node, child) {
6553
+ node.removeChild(child);
6554
+ }
6555
+ function appendChild(node, child) {
6556
+ node.appendChild(child);
6557
+ }
6558
+ function parentNode(node) {
6559
+ return node.parentNode;
6560
+ }
6561
+ function nextSibling(node) {
6562
+ return node.nextSibling;
6563
+ }
6564
+ function tagName(node) {
6565
+ return node.tagName;
6566
+ }
6567
+ function setTextContent(node, text) {
6568
+ node.textContent = text;
6569
+ }
6570
+ function setStyleScope(node, scopeId) {
6571
+ node.setAttribute(scopeId, '');
6572
+ }
6573
 
6574
+ var nodeOps = /*#__PURE__*/Object.freeze({
6575
+ __proto__: null,
6576
+ createElement: createElement,
6577
+ createElementNS: createElementNS,
6578
+ createTextNode: createTextNode,
6579
+ createComment: createComment,
6580
+ insertBefore: insertBefore,
6581
+ removeChild: removeChild,
6582
+ appendChild: appendChild,
6583
+ parentNode: parentNode,
6584
+ nextSibling: nextSibling,
6585
+ tagName: tagName,
6586
+ setTextContent: setTextContent,
6587
+ setStyleScope: setStyleScope
6588
+ });
6589
 
6590
+ var ref = {
6591
+ create: function (_, vnode) {
6592
+ registerRef(vnode);
6593
+ },
6594
+ update: function (oldVnode, vnode) {
6595
+ if (oldVnode.data.ref !== vnode.data.ref) {
6596
+ registerRef(oldVnode, true);
6597
+ registerRef(vnode);
6598
+ }
6599
+ },
6600
+ destroy: function (vnode) {
6601
+ registerRef(vnode, true);
6602
+ }
6603
+ };
6604
+ function registerRef(vnode, isRemoval) {
6605
+ var ref = vnode.data.ref;
6606
+ if (!isDef(ref))
6607
+ return;
6608
+ var vm = vnode.context;
6609
+ var refValue = vnode.componentInstance || vnode.elm;
6610
+ var value = isRemoval ? null : refValue;
6611
+ var $refsValue = isRemoval ? undefined : refValue;
6612
+ if (isFunction(ref)) {
6613
+ invokeWithErrorHandling(ref, vm, [value], vm, "template ref function");
6614
+ return;
6615
+ }
6616
+ var isFor = vnode.data.refInFor;
6617
+ var _isString = typeof ref === 'string' || typeof ref === 'number';
6618
+ var _isRef = isRef(ref);
6619
+ var refs = vm.$refs;
6620
+ if (_isString || _isRef) {
6621
+ if (isFor) {
6622
+ var existing = _isString ? refs[ref] : ref.value;
6623
+ if (isRemoval) {
6624
+ isArray(existing) && remove$2(existing, refValue);
6625
+ }
6626
+ else {
6627
+ if (!isArray(existing)) {
6628
+ if (_isString) {
6629
+ refs[ref] = [refValue];
6630
+ setSetupRef(vm, ref, refs[ref]);
6631
+ }
6632
+ else {
6633
+ ref.value = [refValue];
6634
+ }
6635
+ }
6636
+ else if (!existing.includes(refValue)) {
6637
+ existing.push(refValue);
6638
+ }
6639
+ }
6640
+ }
6641
+ else if (_isString) {
6642
+ if (isRemoval && refs[ref] !== refValue) {
6643
+ return;
6644
+ }
6645
+ refs[ref] = $refsValue;
6646
+ setSetupRef(vm, ref, value);
6647
+ }
6648
+ else if (_isRef) {
6649
+ if (isRemoval && ref.value !== refValue) {
6650
+ return;
6651
+ }
6652
+ ref.value = value;
6653
+ }
6654
+ else if (process.env.NODE_ENV !== 'production') {
6655
+ warn$2("Invalid template ref type: ".concat(typeof ref));
6656
+ }
6657
+ }
6658
+ }
6659
+ function setSetupRef(_a, key, val) {
6660
+ var _setupState = _a._setupState;
6661
+ if (_setupState && hasOwn(_setupState, key)) {
6662
+ if (isRef(_setupState[key])) {
6663
+ _setupState[key].value = val;
6664
+ }
6665
+ else {
6666
+ _setupState[key] = val;
6667
+ }
6668
+ }
6669
+ }
6670
+
6671
+ /**
6672
+ * Virtual DOM patching algorithm based on Snabbdom by
6673
+ * Simon Friis Vindum (@paldepind)
6674
+ * Licensed under the MIT License
6675
+ * https://github.com/paldepind/snabbdom/blob/master/LICENSE
6676
+ *
6677
+ * modified by Evan You (@yyx990803)
6678
+ *
6679
+ * Not type-checking this because this file is perf-critical and the cost
6680
+ * of making flow understand it is not worth it.
6681
+ */
6682
+ var emptyNode = new VNode('', {}, []);
6683
+ var hooks = ['create', 'activate', 'update', 'remove', 'destroy'];
6684
+ function sameVnode(a, b) {
6685
+ return (a.key === b.key &&
6686
+ a.asyncFactory === b.asyncFactory &&
6687
+ ((a.tag === b.tag &&
6688
+ a.isComment === b.isComment &&
6689
+ isDef(a.data) === isDef(b.data) &&
6690
+ sameInputType(a, b)) ||
6691
+ (isTrue(a.isAsyncPlaceholder) && isUndef(b.asyncFactory.error))));
6692
+ }
6693
+ function sameInputType(a, b) {
6694
+ if (a.tag !== 'input')
6695
+ return true;
6696
+ var i;
6697
+ var typeA = isDef((i = a.data)) && isDef((i = i.attrs)) && i.type;
6698
+ var typeB = isDef((i = b.data)) && isDef((i = i.attrs)) && i.type;
6699
+ return typeA === typeB || (isTextInputType(typeA) && isTextInputType(typeB));
6700
+ }
6701
+ function createKeyToOldIdx(children, beginIdx, endIdx) {
6702
+ var i, key;
6703
+ var map = {};
6704
+ for (i = beginIdx; i <= endIdx; ++i) {
6705
+ key = children[i].key;
6706
+ if (isDef(key))
6707
+ map[key] = i;
6708
+ }
6709
+ return map;
6710
+ }
6711
+ function createPatchFunction(backend) {
6712
+ var i, j;
6713
+ var cbs = {};
6714
+ var modules = backend.modules, nodeOps = backend.nodeOps;
6715
+ for (i = 0; i < hooks.length; ++i) {
6716
+ cbs[hooks[i]] = [];
6717
+ for (j = 0; j < modules.length; ++j) {
6718
+ if (isDef(modules[j][hooks[i]])) {
6719
+ cbs[hooks[i]].push(modules[j][hooks[i]]);
6720
+ }
6721
+ }
6722
+ }
6723
+ function emptyNodeAt(elm) {
6724
+ return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm);
6725
+ }
6726
+ function createRmCb(childElm, listeners) {
6727
+ function remove() {
6728
+ if (--remove.listeners === 0) {
6729
+ removeNode(childElm);
6730
+ }
6731
+ }
6732
+ remove.listeners = listeners;
6733
+ return remove;
6734
+ }
6735
+ function removeNode(el) {
6736
+ var parent = nodeOps.parentNode(el);
6737
+ // element may have already been removed due to v-html / v-text
6738
+ if (isDef(parent)) {
6739
+ nodeOps.removeChild(parent, el);
6740
+ }
6741
+ }
6742
+ function isUnknownElement(vnode, inVPre) {
6743
+ return (!inVPre &&
6744
+ !vnode.ns &&
6745
+ !(config.ignoredElements.length &&
6746
+ config.ignoredElements.some(function (ignore) {
6747
+ return isRegExp(ignore)
6748
+ ? ignore.test(vnode.tag)
6749
+ : ignore === vnode.tag;
6750
+ })) &&
6751
+ config.isUnknownElement(vnode.tag));
6752
+ }
6753
+ var creatingElmInVPre = 0;
6754
+ function createElm(vnode, insertedVnodeQueue, parentElm, refElm, nested, ownerArray, index) {
6755
+ if (isDef(vnode.elm) && isDef(ownerArray)) {
6756
+ // This vnode was used in a previous render!
6757
+ // now it's used as a new node, overwriting its elm would cause
6758
+ // potential patch errors down the road when it's used as an insertion
6759
+ // reference node. Instead, we clone the node on-demand before creating
6760
+ // associated DOM element for it.
6761
+ vnode = ownerArray[index] = cloneVNode(vnode);
6762
+ }
6763
+ vnode.isRootInsert = !nested; // for transition enter check
6764
+ if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {
6765
+ return;
6766
+ }
6767
+ var data = vnode.data;
6768
+ var children = vnode.children;
6769
+ var tag = vnode.tag;
6770
+ if (isDef(tag)) {
6771
+ if (process.env.NODE_ENV !== 'production') {
6772
+ if (data && data.pre) {
6773
+ creatingElmInVPre++;
6774
+ }
6775
+ if (isUnknownElement(vnode, creatingElmInVPre)) {
6776
+ warn$2('Unknown custom element: <' +
6777
+ tag +
6778
+ '> - did you ' +
6779
+ 'register the component correctly? For recursive components, ' +
6780
+ 'make sure to provide the "name" option.', vnode.context);
6781
+ }
6782
+ }
6783
+ vnode.elm = vnode.ns
6784
+ ? nodeOps.createElementNS(vnode.ns, tag)
6785
+ : nodeOps.createElement(tag, vnode);
6786
+ setScope(vnode);
6787
+ createChildren(vnode, children, insertedVnodeQueue);
6788
+ if (isDef(data)) {
6789
+ invokeCreateHooks(vnode, insertedVnodeQueue);
6790
+ }
6791
+ insert(parentElm, vnode.elm, refElm);
6792
+ if (process.env.NODE_ENV !== 'production' && data && data.pre) {
6793
+ creatingElmInVPre--;
6794
+ }
6795
+ }
6796
+ else if (isTrue(vnode.isComment)) {
6797
+ vnode.elm = nodeOps.createComment(vnode.text);
6798
+ insert(parentElm, vnode.elm, refElm);
6799
+ }
6800
+ else {
6801
+ vnode.elm = nodeOps.createTextNode(vnode.text);
6802
+ insert(parentElm, vnode.elm, refElm);
6803
+ }
6804
+ }
6805
+ function createComponent(vnode, insertedVnodeQueue, parentElm, refElm) {
6806
+ var i = vnode.data;
6807
+ if (isDef(i)) {
6808
+ var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;
6809
+ if (isDef((i = i.hook)) && isDef((i = i.init))) {
6810
+ i(vnode, false /* hydrating */);
6811
+ }
6812
+ // after calling the init hook, if the vnode is a child component
6813
+ // it should've created a child instance and mounted it. the child
6814
+ // component also has set the placeholder vnode's elm.
6815
+ // in that case we can just return the element and be done.
6816
+ if (isDef(vnode.componentInstance)) {
6817
+ initComponent(vnode, insertedVnodeQueue);
6818
+ insert(parentElm, vnode.elm, refElm);
6819
+ if (isTrue(isReactivated)) {
6820
+ reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);
6821
+ }
6822
+ return true;
6823
+ }
6824
+ }
6825
+ }
6826
+ function initComponent(vnode, insertedVnodeQueue) {
6827
+ if (isDef(vnode.data.pendingInsert)) {
6828
+ insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);
6829
+ vnode.data.pendingInsert = null;
6830
+ }
6831
+ vnode.elm = vnode.componentInstance.$el;
6832
+ if (isPatchable(vnode)) {
6833
+ invokeCreateHooks(vnode, insertedVnodeQueue);
6834
+ setScope(vnode);
6835
+ }
6836
+ else {
6837
+ // empty component root.
6838
+ // skip all element-related modules except for ref (#3455)
6839
+ registerRef(vnode);
6840
+ // make sure to invoke the insert hook
6841
+ insertedVnodeQueue.push(vnode);
6842
+ }
6843
+ }
6844
+ function reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm) {
6845
+ var i;
6846
+ // hack for #4339: a reactivated component with inner transition
6847
+ // does not trigger because the inner node's created hooks are not called
6848
+ // again. It's not ideal to involve module-specific logic in here but
6849
+ // there doesn't seem to be a better way to do it.
6850
+ var innerNode = vnode;
6851
+ while (innerNode.componentInstance) {
6852
+ innerNode = innerNode.componentInstance._vnode;
6853
+ if (isDef((i = innerNode.data)) && isDef((i = i.transition))) {
6854
+ for (i = 0; i < cbs.activate.length; ++i) {
6855
+ cbs.activate[i](emptyNode, innerNode);
6856
+ }
6857
+ insertedVnodeQueue.push(innerNode);
6858
+ break;
6859
+ }
6860
+ }
6861
+ // unlike a newly created component,
6862
+ // a reactivated keep-alive component doesn't insert itself
6863
+ insert(parentElm, vnode.elm, refElm);
6864
+ }
6865
+ function insert(parent, elm, ref) {
6866
+ if (isDef(parent)) {
6867
+ if (isDef(ref)) {
6868
+ if (nodeOps.parentNode(ref) === parent) {
6869
+ nodeOps.insertBefore(parent, elm, ref);
6870
+ }
6871
+ }
6872
+ else {
6873
+ nodeOps.appendChild(parent, elm);
6874
+ }
6875
+ }
6876
+ }
6877
+ function createChildren(vnode, children, insertedVnodeQueue) {
6878
+ if (isArray(children)) {
6879
+ if (process.env.NODE_ENV !== 'production') {
6880
+ checkDuplicateKeys(children);
6881
+ }
6882
+ for (var i_1 = 0; i_1 < children.length; ++i_1) {
6883
+ createElm(children[i_1], insertedVnodeQueue, vnode.elm, null, true, children, i_1);
6884
+ }
6885
+ }
6886
+ else if (isPrimitive(vnode.text)) {
6887
+ nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));
6888
+ }
6889
+ }
6890
+ function isPatchable(vnode) {
6891
+ while (vnode.componentInstance) {
6892
+ vnode = vnode.componentInstance._vnode;
6893
+ }
6894
+ return isDef(vnode.tag);
6895
+ }
6896
+ function invokeCreateHooks(vnode, insertedVnodeQueue) {
6897
+ for (var i_2 = 0; i_2 < cbs.create.length; ++i_2) {
6898
+ cbs.create[i_2](emptyNode, vnode);
6899
+ }
6900
+ i = vnode.data.hook; // Reuse variable
6901
+ if (isDef(i)) {
6902
+ if (isDef(i.create))
6903
+ i.create(emptyNode, vnode);
6904
+ if (isDef(i.insert))
6905
+ insertedVnodeQueue.push(vnode);
6906
+ }
6907
+ }
6908
+ // set scope id attribute for scoped CSS.
6909
+ // this is implemented as a special case to avoid the overhead
6910
+ // of going through the normal attribute patching process.
6911
+ function setScope(vnode) {
6912
+ var i;
6913
+ if (isDef((i = vnode.fnScopeId))) {
6914
+ nodeOps.setStyleScope(vnode.elm, i);
6915
+ }
6916
+ else {
6917
+ var ancestor = vnode;
6918
+ while (ancestor) {
6919
+ if (isDef((i = ancestor.context)) && isDef((i = i.$options._scopeId))) {
6920
+ nodeOps.setStyleScope(vnode.elm, i);
6921
+ }
6922
+ ancestor = ancestor.parent;
6923
+ }
6924
+ }
6925
+ // for slot content they should also get the scopeId from the host instance.
6926
+ if (isDef((i = activeInstance)) &&
6927
+ i !== vnode.context &&
6928
+ i !== vnode.fnContext &&
6929
+ isDef((i = i.$options._scopeId))) {
6930
+ nodeOps.setStyleScope(vnode.elm, i);
6931
+ }
6932
+ }
6933
+ function addVnodes(parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {
6934
+ for (; startIdx <= endIdx; ++startIdx) {
6935
+ createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);
6936
+ }
6937
+ }
6938
+ function invokeDestroyHook(vnode) {
6939
+ var i, j;
6940
+ var data = vnode.data;
6941
+ if (isDef(data)) {
6942
+ if (isDef((i = data.hook)) && isDef((i = i.destroy)))
6943
+ i(vnode);
6944
+ for (i = 0; i < cbs.destroy.length; ++i)
6945
+ cbs.destroy[i](vnode);
6946
+ }
6947
+ if (isDef((i = vnode.children))) {
6948
+ for (j = 0; j < vnode.children.length; ++j) {
6949
+ invokeDestroyHook(vnode.children[j]);
6950
+ }
6951
+ }
6952
+ }
6953
+ function removeVnodes(vnodes, startIdx, endIdx) {
6954
+ for (; startIdx <= endIdx; ++startIdx) {
6955
+ var ch = vnodes[startIdx];
6956
+ if (isDef(ch)) {
6957
+ if (isDef(ch.tag)) {
6958
+ removeAndInvokeRemoveHook(ch);
6959
+ invokeDestroyHook(ch);
6960
+ }
6961
+ else {
6962
+ // Text node
6963
+ removeNode(ch.elm);
6964
+ }
6965
+ }
6966
+ }
6967
+ }
6968
+ function removeAndInvokeRemoveHook(vnode, rm) {
6969
+ if (isDef(rm) || isDef(vnode.data)) {
6970
+ var i_3;
6971
+ var listeners = cbs.remove.length + 1;
6972
+ if (isDef(rm)) {
6973
+ // we have a recursively passed down rm callback
6974
+ // increase the listeners count
6975
+ rm.listeners += listeners;
6976
+ }
6977
+ else {
6978
+ // directly removing
6979
+ rm = createRmCb(vnode.elm, listeners);
6980
+ }
6981
+ // recursively invoke hooks on child component root node
6982
+ if (isDef((i_3 = vnode.componentInstance)) &&
6983
+ isDef((i_3 = i_3._vnode)) &&
6984
+ isDef(i_3.data)) {
6985
+ removeAndInvokeRemoveHook(i_3, rm);
6986
+ }
6987
+ for (i_3 = 0; i_3 < cbs.remove.length; ++i_3) {
6988
+ cbs.remove[i_3](vnode, rm);
6989
+ }
6990
+ if (isDef((i_3 = vnode.data.hook)) && isDef((i_3 = i_3.remove))) {
6991
+ i_3(vnode, rm);
6992
+ }
6993
+ else {
6994
+ rm();
6995
+ }
6996
+ }
6997
+ else {
6998
+ removeNode(vnode.elm);
6999
+ }
7000
+ }
7001
+ function updateChildren(parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {
7002
+ var oldStartIdx = 0;
7003
+ var newStartIdx = 0;
7004
+ var oldEndIdx = oldCh.length - 1;
7005
+ var oldStartVnode = oldCh[0];
7006
+ var oldEndVnode = oldCh[oldEndIdx];
7007
+ var newEndIdx = newCh.length - 1;
7008
+ var newStartVnode = newCh[0];
7009
+ var newEndVnode = newCh[newEndIdx];
7010
+ var oldKeyToIdx, idxInOld, vnodeToMove, refElm;
7011
+ // removeOnly is a special flag used only by <transition-group>
7012
+ // to ensure removed elements stay in correct relative positions
7013
+ // during leaving transitions
7014
+ var canMove = !removeOnly;
7015
+ if (process.env.NODE_ENV !== 'production') {
7016
+ checkDuplicateKeys(newCh);
7017
+ }
7018
+ while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {
7019
+ if (isUndef(oldStartVnode)) {
7020
+ oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left
7021
+ }
7022
+ else if (isUndef(oldEndVnode)) {
7023
+ oldEndVnode = oldCh[--oldEndIdx];
7024
+ }
7025
+ else if (sameVnode(oldStartVnode, newStartVnode)) {
7026
+ patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);
7027
+ oldStartVnode = oldCh[++oldStartIdx];
7028
+ newStartVnode = newCh[++newStartIdx];
7029
+ }
7030
+ else if (sameVnode(oldEndVnode, newEndVnode)) {
7031
+ patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);
7032
+ oldEndVnode = oldCh[--oldEndIdx];
7033
+ newEndVnode = newCh[--newEndIdx];
7034
+ }
7035
+ else if (sameVnode(oldStartVnode, newEndVnode)) {
7036
+ // Vnode moved right
7037
+ patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);
7038
+ canMove &&
7039
+ nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));
7040
+ oldStartVnode = oldCh[++oldStartIdx];
7041
+ newEndVnode = newCh[--newEndIdx];
7042
+ }
7043
+ else if (sameVnode(oldEndVnode, newStartVnode)) {
7044
+ // Vnode moved left
7045
+ patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);
7046
+ canMove &&
7047
+ nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);
7048
+ oldEndVnode = oldCh[--oldEndIdx];
7049
+ newStartVnode = newCh[++newStartIdx];
7050
+ }
7051
+ else {
7052
+ if (isUndef(oldKeyToIdx))
7053
+ oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx);
7054
+ idxInOld = isDef(newStartVnode.key)
7055
+ ? oldKeyToIdx[newStartVnode.key]
7056
+ : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);
7057
+ if (isUndef(idxInOld)) {
7058
+ // New element
7059
+ createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);
7060
+ }
7061
+ else {
7062
+ vnodeToMove = oldCh[idxInOld];
7063
+ if (sameVnode(vnodeToMove, newStartVnode)) {
7064
+ patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);
7065
+ oldCh[idxInOld] = undefined;
7066
+ canMove &&
7067
+ nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);
7068
+ }
7069
+ else {
7070
+ // same key but different element. treat as new element
7071
+ createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);
7072
+ }
7073
+ }
7074
+ newStartVnode = newCh[++newStartIdx];
7075
+ }
7076
+ }
7077
+ if (oldStartIdx > oldEndIdx) {
7078
+ refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;
7079
+ addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);
7080
+ }
7081
+ else if (newStartIdx > newEndIdx) {
7082
+ removeVnodes(oldCh, oldStartIdx, oldEndIdx);
7083
+ }
7084
+ }
7085
+ function checkDuplicateKeys(children) {
7086
+ var seenKeys = {};
7087
+ for (var i_4 = 0; i_4 < children.length; i_4++) {
7088
+ var vnode = children[i_4];
7089
+ var key = vnode.key;
7090
+ if (isDef(key)) {
7091
+ if (seenKeys[key]) {
7092
+ warn$2("Duplicate keys detected: '".concat(key, "'. This may cause an update error."), vnode.context);
7093
+ }
7094
+ else {
7095
+ seenKeys[key] = true;
7096
+ }
7097
+ }
7098
+ }
7099
+ }
7100
+ function findIdxInOld(node, oldCh, start, end) {
7101
+ for (var i_5 = start; i_5 < end; i_5++) {
7102
+ var c = oldCh[i_5];
7103
+ if (isDef(c) && sameVnode(node, c))
7104
+ return i_5;
7105
+ }
7106
+ }
7107
+ function patchVnode(oldVnode, vnode, insertedVnodeQueue, ownerArray, index, removeOnly) {
7108
+ if (oldVnode === vnode) {
7109
+ return;
7110
+ }
7111
+ if (isDef(vnode.elm) && isDef(ownerArray)) {
7112
+ // clone reused vnode
7113
+ vnode = ownerArray[index] = cloneVNode(vnode);
7114
+ }
7115
+ var elm = (vnode.elm = oldVnode.elm);
7116
+ if (isTrue(oldVnode.isAsyncPlaceholder)) {
7117
+ if (isDef(vnode.asyncFactory.resolved)) {
7118
+ hydrate(oldVnode.elm, vnode, insertedVnodeQueue);
7119
+ }
7120
+ else {
7121
+ vnode.isAsyncPlaceholder = true;
7122
+ }
7123
+ return;
7124
+ }
7125
+ // reuse element for static trees.
7126
+ // note we only do this if the vnode is cloned -
7127
+ // if the new node is not cloned it means the render functions have been
7128
+ // reset by the hot-reload-api and we need to do a proper re-render.
7129
+ if (isTrue(vnode.isStatic) &&
7130
+ isTrue(oldVnode.isStatic) &&
7131
+ vnode.key === oldVnode.key &&
7132
+ (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))) {
7133
+ vnode.componentInstance = oldVnode.componentInstance;
7134
+ return;
7135
+ }
7136
+ var i;
7137
+ var data = vnode.data;
7138
+ if (isDef(data) && isDef((i = data.hook)) && isDef((i = i.prepatch))) {
7139
+ i(oldVnode, vnode);
7140
+ }
7141
+ var oldCh = oldVnode.children;
7142
+ var ch = vnode.children;
7143
+ if (isDef(data) && isPatchable(vnode)) {
7144
+ for (i = 0; i < cbs.update.length; ++i)
7145
+ cbs.update[i](oldVnode, vnode);
7146
+ if (isDef((i = data.hook)) && isDef((i = i.update)))
7147
+ i(oldVnode, vnode);
7148
+ }
7149
+ if (isUndef(vnode.text)) {
7150
+ if (isDef(oldCh) && isDef(ch)) {
7151
+ if (oldCh !== ch)
7152
+ updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly);
7153
+ }
7154
+ else if (isDef(ch)) {
7155
+ if (process.env.NODE_ENV !== 'production') {
7156
+ checkDuplicateKeys(ch);
7157
+ }
7158
+ if (isDef(oldVnode.text))
7159
+ nodeOps.setTextContent(elm, '');
7160
+ addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);
7161
+ }
7162
+ else if (isDef(oldCh)) {
7163
+ removeVnodes(oldCh, 0, oldCh.length - 1);
7164
+ }
7165
+ else if (isDef(oldVnode.text)) {
7166
+ nodeOps.setTextContent(elm, '');
7167
+ }
7168
+ }
7169
+ else if (oldVnode.text !== vnode.text) {
7170
+ nodeOps.setTextContent(elm, vnode.text);
7171
+ }
7172
+ if (isDef(data)) {
7173
+ if (isDef((i = data.hook)) && isDef((i = i.postpatch)))
7174
+ i(oldVnode, vnode);
7175
+ }
7176
+ }
7177
+ function invokeInsertHook(vnode, queue, initial) {
7178
+ // delay insert hooks for component root nodes, invoke them after the
7179
+ // element is really inserted
7180
+ if (isTrue(initial) && isDef(vnode.parent)) {
7181
+ vnode.parent.data.pendingInsert = queue;
7182
+ }
7183
+ else {
7184
+ for (var i_6 = 0; i_6 < queue.length; ++i_6) {
7185
+ queue[i_6].data.hook.insert(queue[i_6]);
7186
+ }
7187
+ }
7188
+ }
7189
+ var hydrationBailed = false;
7190
+ // list of modules that can skip create hook during hydration because they
7191
+ // are already rendered on the client or has no need for initialization
7192
+ // Note: style is excluded because it relies on initial clone for future
7193
+ // deep updates (#7063).
7194
+ var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');
7195
+ // Note: this is a browser-only function so we can assume elms are DOM nodes.
7196
+ function hydrate(elm, vnode, insertedVnodeQueue, inVPre) {
7197
+ var i;
7198
+ var tag = vnode.tag, data = vnode.data, children = vnode.children;
7199
+ inVPre = inVPre || (data && data.pre);
7200
+ vnode.elm = elm;
7201
+ if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {
7202
+ vnode.isAsyncPlaceholder = true;
7203
+ return true;
7204
+ }
7205
+ // assert node match
7206
+ if (process.env.NODE_ENV !== 'production') {
7207
+ if (!assertNodeMatch(elm, vnode, inVPre)) {
7208
+ return false;
7209
+ }
7210
+ }
7211
+ if (isDef(data)) {
7212
+ if (isDef((i = data.hook)) && isDef((i = i.init)))
7213
+ i(vnode, true /* hydrating */);
7214
+ if (isDef((i = vnode.componentInstance))) {
7215
+ // child component. it should have hydrated its own tree.
7216
+ initComponent(vnode, insertedVnodeQueue);
7217
+ return true;
7218
+ }
7219
+ }
7220
+ if (isDef(tag)) {
7221
+ if (isDef(children)) {
7222
+ // empty element, allow client to pick up and populate children
7223
+ if (!elm.hasChildNodes()) {
7224
+ createChildren(vnode, children, insertedVnodeQueue);
7225
+ }
7226
+ else {
7227
+ // v-html and domProps: innerHTML
7228
+ if (isDef((i = data)) &&
7229
+ isDef((i = i.domProps)) &&
7230
+ isDef((i = i.innerHTML))) {
7231
+ if (i !== elm.innerHTML) {
7232
+ /* istanbul ignore if */
7233
+ if (process.env.NODE_ENV !== 'production' &&
7234
+ typeof console !== 'undefined' &&
7235
+ !hydrationBailed) {
7236
+ hydrationBailed = true;
7237
+ console.warn('Parent: ', elm);
7238
+ console.warn('server innerHTML: ', i);
7239
+ console.warn('client innerHTML: ', elm.innerHTML);
7240
+ }
7241
+ return false;
7242
+ }
7243
+ }
7244
+ else {
7245
+ // iterate and compare children lists
7246
+ var childrenMatch = true;
7247
+ var childNode = elm.firstChild;
7248
+ for (var i_7 = 0; i_7 < children.length; i_7++) {
7249
+ if (!childNode ||
7250
+ !hydrate(childNode, children[i_7], insertedVnodeQueue, inVPre)) {
7251
+ childrenMatch = false;
7252
+ break;
7253
+ }
7254
+ childNode = childNode.nextSibling;
7255
+ }
7256
+ // if childNode is not null, it means the actual childNodes list is
7257
+ // longer than the virtual children list.
7258
+ if (!childrenMatch || childNode) {
7259
+ /* istanbul ignore if */
7260
+ if (process.env.NODE_ENV !== 'production' &&
7261
+ typeof console !== 'undefined' &&
7262
+ !hydrationBailed) {
7263
+ hydrationBailed = true;
7264
+ console.warn('Parent: ', elm);
7265
+ console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);
7266
+ }
7267
+ return false;
7268
+ }
7269
+ }
7270
+ }
7271
+ }
7272
+ if (isDef(data)) {
7273
+ var fullInvoke = false;
7274
+ for (var key in data) {
7275
+ if (!isRenderedModule(key)) {
7276
+ fullInvoke = true;
7277
+ invokeCreateHooks(vnode, insertedVnodeQueue);
7278
+ break;
7279
+ }
7280
+ }
7281
+ if (!fullInvoke && data['class']) {
7282
+ // ensure collecting deps for deep class bindings for future updates
7283
+ traverse(data['class']);
7284
+ }
7285
+ }
7286
+ }
7287
+ else if (elm.data !== vnode.text) {
7288
+ elm.data = vnode.text;
7289
+ }
7290
+ return true;
7291
+ }
7292
+ function assertNodeMatch(node, vnode, inVPre) {
7293
+ if (isDef(vnode.tag)) {
7294
+ return (vnode.tag.indexOf('vue-component') === 0 ||
7295
+ (!isUnknownElement(vnode, inVPre) &&
7296
+ vnode.tag.toLowerCase() ===
7297
+ (node.tagName && node.tagName.toLowerCase())));
7298
+ }
7299
+ else {
7300
+ return node.nodeType === (vnode.isComment ? 8 : 3);
7301
+ }
7302
+ }
7303
+ return function patch(oldVnode, vnode, hydrating, removeOnly) {
7304
+ if (isUndef(vnode)) {
7305
+ if (isDef(oldVnode))
7306
+ invokeDestroyHook(oldVnode);
7307
+ return;
7308
+ }
7309
+ var isInitialPatch = false;
7310
+ var insertedVnodeQueue = [];
7311
+ if (isUndef(oldVnode)) {
7312
+ // empty mount (likely as component), create new root element
7313
+ isInitialPatch = true;
7314
+ createElm(vnode, insertedVnodeQueue);
7315
+ }
7316
+ else {
7317
+ var isRealElement = isDef(oldVnode.nodeType);
7318
+ if (!isRealElement && sameVnode(oldVnode, vnode)) {
7319
+ // patch existing root node
7320
+ patchVnode(oldVnode, vnode, insertedVnodeQueue, null, null, removeOnly);
7321
+ }
7322
+ else {
7323
+ if (isRealElement) {
7324
+ // mounting to a real element
7325
+ // check if this is server-rendered content and if we can perform
7326
+ // a successful hydration.
7327
+ if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {
7328
+ oldVnode.removeAttribute(SSR_ATTR);
7329
+ hydrating = true;
7330
+ }
7331
+ if (isTrue(hydrating)) {
7332
+ if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {
7333
+ invokeInsertHook(vnode, insertedVnodeQueue, true);
7334
+ return oldVnode;
7335
+ }
7336
+ else if (process.env.NODE_ENV !== 'production') {
7337
+ warn$2('The client-side rendered virtual DOM tree is not matching ' +
7338
+ 'server-rendered content. This is likely caused by incorrect ' +
7339
+ 'HTML markup, for example nesting block-level elements inside ' +
7340
+ '<p>, or missing <tbody>. Bailing hydration and performing ' +
7341
+ 'full client-side render.');
7342
+ }
7343
+ }
7344
+ // either not server-rendered, or hydration failed.
7345
+ // create an empty node and replace it
7346
+ oldVnode = emptyNodeAt(oldVnode);
7347
+ }
7348
+ // replacing existing element
7349
+ var oldElm = oldVnode.elm;
7350
+ var parentElm = nodeOps.parentNode(oldElm);
7351
+ // create new node
7352
+ createElm(vnode, insertedVnodeQueue,
7353
+ // extremely rare edge case: do not insert if old element is in a
7354
+ // leaving transition. Only happens when combining transition +
7355
+ // keep-alive + HOCs. (#4590)
7356
+ oldElm._leaveCb ? null : parentElm, nodeOps.nextSibling(oldElm));
7357
+ // update parent placeholder node element, recursively
7358
+ if (isDef(vnode.parent)) {
7359
+ var ancestor = vnode.parent;
7360
+ var patchable = isPatchable(vnode);
7361
+ while (ancestor) {
7362
+ for (var i_8 = 0; i_8 < cbs.destroy.length; ++i_8) {
7363
+ cbs.destroy[i_8](ancestor);
7364
+ }
7365
+ ancestor.elm = vnode.elm;
7366
+ if (patchable) {
7367
+ for (var i_9 = 0; i_9 < cbs.create.length; ++i_9) {
7368
+ cbs.create[i_9](emptyNode, ancestor);
7369
+ }
7370
+ // #6513
7371
+ // invoke insert hooks that may have been merged by create hooks.
7372
+ // e.g. for directives that uses the "inserted" hook.
7373
+ var insert_1 = ancestor.data.hook.insert;
7374
+ if (insert_1.merged) {
7375
+ // start at index 1 to avoid re-invoking component mounted hook
7376
+ for (var i_10 = 1; i_10 < insert_1.fns.length; i_10++) {
7377
+ insert_1.fns[i_10]();
7378
+ }
7379
+ }
7380
+ }
7381
+ else {
7382
+ registerRef(ancestor);
7383
+ }
7384
+ ancestor = ancestor.parent;
7385
+ }
7386
+ }
7387
+ // destroy old node
7388
+ if (isDef(parentElm)) {
7389
+ removeVnodes([oldVnode], 0, 0);
7390
+ }
7391
+ else if (isDef(oldVnode.tag)) {
7392
+ invokeDestroyHook(oldVnode);
7393
+ }
7394
+ }
7395
+ }
7396
+ invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);
7397
+ return vnode.elm;
7398
+ };
7399
+ }
7400
+
7401
+ var directives$1 = {
7402
+ create: updateDirectives,
7403
+ update: updateDirectives,
7404
+ destroy: function unbindDirectives(vnode) {
7405
+ // @ts-expect-error emptyNode is not VNodeWithData
7406
+ updateDirectives(vnode, emptyNode);
7407
+ }
7408
+ };
7409
+ function updateDirectives(oldVnode, vnode) {
7410
+ if (oldVnode.data.directives || vnode.data.directives) {
7411
+ _update(oldVnode, vnode);
7412
+ }
7413
+ }
7414
+ function _update(oldVnode, vnode) {
7415
+ var isCreate = oldVnode === emptyNode;
7416
+ var isDestroy = vnode === emptyNode;
7417
+ var oldDirs = normalizeDirectives(oldVnode.data.directives, oldVnode.context);
7418
+ var newDirs = normalizeDirectives(vnode.data.directives, vnode.context);
7419
+ var dirsWithInsert = [];
7420
+ var dirsWithPostpatch = [];
7421
+ var key, oldDir, dir;
7422
+ for (key in newDirs) {
7423
+ oldDir = oldDirs[key];
7424
+ dir = newDirs[key];
7425
+ if (!oldDir) {
7426
+ // new directive, bind
7427
+ callHook(dir, 'bind', vnode, oldVnode);
7428
+ if (dir.def && dir.def.inserted) {
7429
+ dirsWithInsert.push(dir);
7430
+ }
7431
+ }
7432
+ else {
7433
+ // existing directive, update
7434
+ dir.oldValue = oldDir.value;
7435
+ dir.oldArg = oldDir.arg;
7436
+ callHook(dir, 'update', vnode, oldVnode);
7437
+ if (dir.def && dir.def.componentUpdated) {
7438
+ dirsWithPostpatch.push(dir);
7439
+ }
7440
+ }
7441
+ }
7442
+ if (dirsWithInsert.length) {
7443
+ var callInsert = function () {
7444
+ for (var i = 0; i < dirsWithInsert.length; i++) {
7445
+ callHook(dirsWithInsert[i], 'inserted', vnode, oldVnode);
7446
+ }
7447
+ };
7448
+ if (isCreate) {
7449
+ mergeVNodeHook(vnode, 'insert', callInsert);
7450
+ }
7451
+ else {
7452
+ callInsert();
7453
+ }
7454
+ }
7455
+ if (dirsWithPostpatch.length) {
7456
+ mergeVNodeHook(vnode, 'postpatch', function () {
7457
+ for (var i = 0; i < dirsWithPostpatch.length; i++) {
7458
+ callHook(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);
7459
+ }
7460
+ });
7461
+ }
7462
+ if (!isCreate) {
7463
+ for (key in oldDirs) {
7464
+ if (!newDirs[key]) {
7465
+ // no longer present, unbind
7466
+ callHook(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);
7467
+ }
7468
+ }
7469
+ }
7470
+ }
7471
+ var emptyModifiers = Object.create(null);
7472
+ function normalizeDirectives(dirs, vm) {
7473
+ var res = Object.create(null);
7474
+ if (!dirs) {
7475
+ // $flow-disable-line
7476
+ return res;
7477
+ }
7478
+ var i, dir;
7479
+ for (i = 0; i < dirs.length; i++) {
7480
+ dir = dirs[i];
7481
+ if (!dir.modifiers) {
7482
+ // $flow-disable-line
7483
+ dir.modifiers = emptyModifiers;
7484
+ }
7485
+ res[getRawDirName(dir)] = dir;
7486
+ if (vm._setupState && vm._setupState.__sfc) {
7487
+ var setupDef = dir.def || resolveAsset(vm, '_setupState', 'v-' + dir.name);
7488
+ if (typeof setupDef === 'function') {
7489
+ dir.def = {
7490
+ bind: setupDef,
7491
+ update: setupDef,
7492
+ };
7493
+ }
7494
+ else {
7495
+ dir.def = setupDef;
7496
+ }
7497
+ }
7498
+ dir.def = dir.def || resolveAsset(vm.$options, 'directives', dir.name, true);
7499
+ }
7500
+ // $flow-disable-line
7501
+ return res;
7502
+ }
7503
+ function getRawDirName(dir) {
7504
+ return (dir.rawName || "".concat(dir.name, ".").concat(Object.keys(dir.modifiers || {}).join('.')));
7505
+ }
7506
+ function callHook(dir, hook, vnode, oldVnode, isDestroy) {
7507
+ var fn = dir.def && dir.def[hook];
7508
+ if (fn) {
7509
+ try {
7510
+ fn(vnode.elm, dir, vnode, oldVnode, isDestroy);
7511
+ }
7512
+ catch (e) {
7513
+ handleError(e, vnode.context, "directive ".concat(dir.name, " ").concat(hook, " hook"));
7514
+ }
7515
+ }
7516
+ }
7517
+
7518
+ var baseModules = [ref, directives$1];
7519
+
7520
+ function updateAttrs(oldVnode, vnode) {
7521
+ var opts = vnode.componentOptions;
7522
+ if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {
7523
+ return;
7524
+ }
7525
+ if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {
7526
+ return;
7527
+ }
7528
+ var key, cur, old;
7529
+ var elm = vnode.elm;
7530
+ var oldAttrs = oldVnode.data.attrs || {};
7531
+ var attrs = vnode.data.attrs || {};
7532
+ // clone observed objects, as the user probably wants to mutate it
7533
+ if (isDef(attrs.__ob__) || isTrue(attrs._v_attr_proxy)) {
7534
+ attrs = vnode.data.attrs = extend({}, attrs);
7535
+ }
7536
+ for (key in attrs) {
7537
+ cur = attrs[key];
7538
+ old = oldAttrs[key];
7539
+ if (old !== cur) {
7540
+ setAttr(elm, key, cur, vnode.data.pre);
7541
+ }
7542
+ }
7543
+ // #4391: in IE9, setting type can reset value for input[type=radio]
7544
+ // #6666: IE/Edge forces progress value down to 1 before setting a max
7545
+ /* istanbul ignore if */
7546
+ if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {
7547
+ setAttr(elm, 'value', attrs.value);
7548
+ }
7549
+ for (key in oldAttrs) {
7550
+ if (isUndef(attrs[key])) {
7551
+ if (isXlink(key)) {
7552
+ elm.removeAttributeNS(xlinkNS, getXlinkProp(key));
7553
+ }
7554
+ else if (!isEnumeratedAttr(key)) {
7555
+ elm.removeAttribute(key);
7556
+ }
7557
+ }
7558
+ }
7559
+ }
7560
+ function setAttr(el, key, value, isInPre) {
7561
+ if (isInPre || el.tagName.indexOf('-') > -1) {
7562
+ baseSetAttr(el, key, value);
7563
+ }
7564
+ else if (isBooleanAttr(key)) {
7565
+ // set attribute for blank value
7566
+ // e.g. <option disabled>Select one</option>
7567
+ if (isFalsyAttrValue(value)) {
7568
+ el.removeAttribute(key);
7569
+ }
7570
+ else {
7571
+ // technically allowfullscreen is a boolean attribute for <iframe>,
7572
+ // but Flash expects a value of "true" when used on <embed> tag
7573
+ value = key === 'allowfullscreen' && el.tagName === 'EMBED' ? 'true' : key;
7574
+ el.setAttribute(key, value);
7575
+ }
7576
+ }
7577
+ else if (isEnumeratedAttr(key)) {
7578
+ el.setAttribute(key, convertEnumeratedValue(key, value));
7579
+ }
7580
+ else if (isXlink(key)) {
7581
+ if (isFalsyAttrValue(value)) {
7582
+ el.removeAttributeNS(xlinkNS, getXlinkProp(key));
7583
+ }
7584
+ else {
7585
+ el.setAttributeNS(xlinkNS, key, value);
7586
+ }
7587
+ }
7588
+ else {
7589
+ baseSetAttr(el, key, value);
7590
+ }
7591
+ }
7592
+ function baseSetAttr(el, key, value) {
7593
+ if (isFalsyAttrValue(value)) {
7594
+ el.removeAttribute(key);
7595
+ }
7596
+ else {
7597
+ // #7138: IE10 & 11 fires input event when setting placeholder on
7598
+ // <textarea>... block the first input event and remove the blocker
7599
+ // immediately.
7600
+ /* istanbul ignore if */
7601
+ if (isIE &&
7602
+ !isIE9 &&
7603
+ el.tagName === 'TEXTAREA' &&
7604
+ key === 'placeholder' &&
7605
+ value !== '' &&
7606
+ !el.__ieph) {
7607
+ var blocker_1 = function (e) {
7608
+ e.stopImmediatePropagation();
7609
+ el.removeEventListener('input', blocker_1);
7610
+ };
7611
+ el.addEventListener('input', blocker_1);
7612
+ // $flow-disable-line
7613
+ el.__ieph = true; /* IE placeholder patched */
7614
+ }
7615
+ el.setAttribute(key, value);
7616
+ }
7617
+ }
7618
+ var attrs = {
7619
+ create: updateAttrs,
7620
+ update: updateAttrs
7621
+ };
7622
 
7623
+ function updateClass(oldVnode, vnode) {
7624
+ var el = vnode.elm;
7625
+ var data = vnode.data;
7626
+ var oldData = oldVnode.data;
7627
+ if (isUndef(data.staticClass) &&
7628
+ isUndef(data.class) &&
7629
+ (isUndef(oldData) ||
7630
+ (isUndef(oldData.staticClass) && isUndef(oldData.class)))) {
7631
+ return;
7632
+ }
7633
+ var cls = genClassForVnode(vnode);
7634
+ // handle transition classes
7635
+ var transitionClass = el._transitionClasses;
7636
+ if (isDef(transitionClass)) {
7637
+ cls = concat(cls, stringifyClass(transitionClass));
7638
+ }
7639
+ // set the class
7640
+ if (cls !== el._prevClass) {
7641
+ el.setAttribute('class', cls);
7642
+ el._prevClass = cls;
7643
+ }
7644
+ }
7645
+ var klass$1 = {
7646
+ create: updateClass,
7647
+ update: updateClass
7648
+ };
7649
 
7650
+ var validDivisionCharRE = /[\w).+\-_$\]]/;
7651
+ function parseFilters(exp) {
7652
+ var inSingle = false;
7653
+ var inDouble = false;
7654
+ var inTemplateString = false;
7655
+ var inRegex = false;
7656
+ var curly = 0;
7657
+ var square = 0;
7658
+ var paren = 0;
7659
+ var lastFilterIndex = 0;
7660
+ var c, prev, i, expression, filters;
7661
+ for (i = 0; i < exp.length; i++) {
7662
+ prev = c;
7663
+ c = exp.charCodeAt(i);
7664
+ if (inSingle) {
7665
+ if (c === 0x27 && prev !== 0x5c)
7666
+ inSingle = false;
7667
+ }
7668
+ else if (inDouble) {
7669
+ if (c === 0x22 && prev !== 0x5c)
7670
+ inDouble = false;
7671
+ }
7672
+ else if (inTemplateString) {
7673
+ if (c === 0x60 && prev !== 0x5c)
7674
+ inTemplateString = false;
7675
+ }
7676
+ else if (inRegex) {
7677
+ if (c === 0x2f && prev !== 0x5c)
7678
+ inRegex = false;
7679
+ }
7680
+ else if (c === 0x7c && // pipe
7681
+ exp.charCodeAt(i + 1) !== 0x7c &&
7682
+ exp.charCodeAt(i - 1) !== 0x7c &&
7683
+ !curly &&
7684
+ !square &&
7685
+ !paren) {
7686
+ if (expression === undefined) {
7687
+ // first filter, end of expression
7688
+ lastFilterIndex = i + 1;
7689
+ expression = exp.slice(0, i).trim();
7690
+ }
7691
+ else {
7692
+ pushFilter();
7693
+ }
7694
+ }
7695
+ else {
7696
+ switch (c) {
7697
+ case 0x22:
7698
+ inDouble = true;
7699
+ break; // "
7700
+ case 0x27:
7701
+ inSingle = true;
7702
+ break; // '
7703
+ case 0x60:
7704
+ inTemplateString = true;
7705
+ break; // `
7706
+ case 0x28:
7707
+ paren++;
7708
+ break; // (
7709
+ case 0x29:
7710
+ paren--;
7711
+ break; // )
7712
+ case 0x5b:
7713
+ square++;
7714
+ break; // [
7715
+ case 0x5d:
7716
+ square--;
7717
+ break; // ]
7718
+ case 0x7b:
7719
+ curly++;
7720
+ break; // {
7721
+ case 0x7d:
7722
+ curly--;
7723
+ break; // }
7724
+ }
7725
+ if (c === 0x2f) {
7726
+ // /
7727
+ var j = i - 1;
7728
+ var p
7729
+ // find first non-whitespace prev char
7730
+ = void 0;
7731
+ // find first non-whitespace prev char
7732
+ for (; j >= 0; j--) {
7733
+ p = exp.charAt(j);
7734
+ if (p !== ' ')
7735
+ break;
7736
+ }
7737
+ if (!p || !validDivisionCharRE.test(p)) {
7738
+ inRegex = true;
7739
+ }
7740
+ }
7741
+ }
7742
+ }
7743
+ if (expression === undefined) {
7744
+ expression = exp.slice(0, i).trim();
7745
+ }
7746
+ else if (lastFilterIndex !== 0) {
7747
+ pushFilter();
7748
+ }
7749
+ function pushFilter() {
7750
+ (filters || (filters = [])).push(exp.slice(lastFilterIndex, i).trim());
7751
+ lastFilterIndex = i + 1;
7752
+ }
7753
+ if (filters) {
7754
+ for (i = 0; i < filters.length; i++) {
7755
+ expression = wrapFilter(expression, filters[i]);
7756
+ }
7757
+ }
7758
+ return expression;
7759
+ }
7760
+ function wrapFilter(exp, filter) {
7761
+ var i = filter.indexOf('(');
7762
+ if (i < 0) {
7763
+ // _f: resolveFilter
7764
+ return "_f(\"".concat(filter, "\")(").concat(exp, ")");
7765
+ }
7766
+ else {
7767
+ var name_1 = filter.slice(0, i);
7768
+ var args = filter.slice(i + 1);
7769
+ return "_f(\"".concat(name_1, "\")(").concat(exp).concat(args !== ')' ? ',' + args : args);
7770
+ }
7771
+ }
7772
+
7773
+ /* eslint-disable no-unused-vars */
7774
+ function baseWarn(msg, range) {
7775
+ console.error("[Vue compiler]: ".concat(msg));
7776
+ }
7777
+ /* eslint-enable no-unused-vars */
7778
+ function pluckModuleFunction(modules, key) {
7779
+ return modules ? modules.map(function (m) { return m[key]; }).filter(function (_) { return _; }) : [];
7780
+ }
7781
+ function addProp(el, name, value, range, dynamic) {
7782
+ (el.props || (el.props = [])).push(rangeSetItem({ name: name, value: value, dynamic: dynamic }, range));
7783
+ el.plain = false;
7784
+ }
7785
+ function addAttr(el, name, value, range, dynamic) {
7786
+ var attrs = dynamic
7787
+ ? el.dynamicAttrs || (el.dynamicAttrs = [])
7788
+ : el.attrs || (el.attrs = []);
7789
+ attrs.push(rangeSetItem({ name: name, value: value, dynamic: dynamic }, range));
7790
+ el.plain = false;
7791
+ }
7792
+ // add a raw attr (use this in preTransforms)
7793
+ function addRawAttr(el, name, value, range) {
7794
+ el.attrsMap[name] = value;
7795
+ el.attrsList.push(rangeSetItem({ name: name, value: value }, range));
7796
+ }
7797
+ function addDirective(el, name, rawName, value, arg, isDynamicArg, modifiers, range) {
7798
+ (el.directives || (el.directives = [])).push(rangeSetItem({
7799
+ name: name,
7800
+ rawName: rawName,
7801
+ value: value,
7802
+ arg: arg,
7803
+ isDynamicArg: isDynamicArg,
7804
+ modifiers: modifiers
7805
+ }, range));
7806
+ el.plain = false;
7807
+ }
7808
+ function prependModifierMarker(symbol, name, dynamic) {
7809
+ return dynamic ? "_p(".concat(name, ",\"").concat(symbol, "\")") : symbol + name; // mark the event as captured
7810
+ }
7811
+ function addHandler(el, name, value, modifiers, important, warn, range, dynamic) {
7812
+ modifiers = modifiers || emptyObject;
7813
+ // warn prevent and passive modifier
7814
+ /* istanbul ignore if */
7815
+ if (process.env.NODE_ENV !== 'production' && warn && modifiers.prevent && modifiers.passive) {
7816
+ warn("passive and prevent can't be used together. " +
7817
+ "Passive handler can't prevent default event.", range);
7818
+ }
7819
+ // normalize click.right and click.middle since they don't actually fire
7820
+ // this is technically browser-specific, but at least for now browsers are
7821
+ // the only target envs that have right/middle clicks.
7822
+ if (modifiers.right) {
7823
+ if (dynamic) {
7824
+ name = "(".concat(name, ")==='click'?'contextmenu':(").concat(name, ")");
7825
+ }
7826
+ else if (name === 'click') {
7827
+ name = 'contextmenu';
7828
+ delete modifiers.right;
7829
+ }
7830
+ }
7831
+ else if (modifiers.middle) {
7832
+ if (dynamic) {
7833
+ name = "(".concat(name, ")==='click'?'mouseup':(").concat(name, ")");
7834
+ }
7835
+ else if (name === 'click') {
7836
+ name = 'mouseup';
7837
+ }
7838
+ }
7839
+ // check capture modifier
7840
+ if (modifiers.capture) {
7841
+ delete modifiers.capture;
7842
+ name = prependModifierMarker('!', name, dynamic);
7843
+ }
7844
+ if (modifiers.once) {
7845
+ delete modifiers.once;
7846
+ name = prependModifierMarker('~', name, dynamic);
7847
+ }
7848
+ /* istanbul ignore if */
7849
+ if (modifiers.passive) {
7850
+ delete modifiers.passive;
7851
+ name = prependModifierMarker('&', name, dynamic);
7852
+ }
7853
+ var events;
7854
+ if (modifiers.native) {
7855
+ delete modifiers.native;
7856
+ events = el.nativeEvents || (el.nativeEvents = {});
7857
+ }
7858
+ else {
7859
+ events = el.events || (el.events = {});
7860
+ }
7861
+ var newHandler = rangeSetItem({ value: value.trim(), dynamic: dynamic }, range);
7862
+ if (modifiers !== emptyObject) {
7863
+ newHandler.modifiers = modifiers;
7864
+ }
7865
+ var handlers = events[name];
7866
+ /* istanbul ignore if */
7867
+ if (Array.isArray(handlers)) {
7868
+ important ? handlers.unshift(newHandler) : handlers.push(newHandler);
7869
+ }
7870
+ else if (handlers) {
7871
+ events[name] = important ? [newHandler, handlers] : [handlers, newHandler];
7872
+ }
7873
+ else {
7874
+ events[name] = newHandler;
7875
+ }
7876
+ el.plain = false;
7877
+ }
7878
+ function getRawBindingAttr(el, name) {
7879
+ return (el.rawAttrsMap[':' + name] ||
7880
+ el.rawAttrsMap['v-bind:' + name] ||
7881
+ el.rawAttrsMap[name]);
7882
+ }
7883
+ function getBindingAttr(el, name, getStatic) {
7884
+ var dynamicValue = getAndRemoveAttr(el, ':' + name) || getAndRemoveAttr(el, 'v-bind:' + name);
7885
+ if (dynamicValue != null) {
7886
+ return parseFilters(dynamicValue);
7887
+ }
7888
+ else if (getStatic !== false) {
7889
+ var staticValue = getAndRemoveAttr(el, name);
7890
+ if (staticValue != null) {
7891
+ return JSON.stringify(staticValue);
7892
+ }
7893
+ }
7894
+ }
7895
+ // note: this only removes the attr from the Array (attrsList) so that it
7896
+ // doesn't get processed by processAttrs.
7897
+ // By default it does NOT remove it from the map (attrsMap) because the map is
7898
+ // needed during codegen.
7899
+ function getAndRemoveAttr(el, name, removeFromMap) {
7900
+ var val;
7901
+ if ((val = el.attrsMap[name]) != null) {
7902
+ var list = el.attrsList;
7903
+ for (var i = 0, l = list.length; i < l; i++) {
7904
+ if (list[i].name === name) {
7905
+ list.splice(i, 1);
7906
+ break;
7907
+ }
7908
+ }
7909
+ }
7910
+ if (removeFromMap) {
7911
+ delete el.attrsMap[name];
7912
+ }
7913
+ return val;
7914
+ }
7915
+ function getAndRemoveAttrByRegex(el, name) {
7916
+ var list = el.attrsList;
7917
+ for (var i = 0, l = list.length; i < l; i++) {
7918
+ var attr = list[i];
7919
+ if (name.test(attr.name)) {
7920
+ list.splice(i, 1);
7921
+ return attr;
7922
+ }
7923
+ }
7924
+ }
7925
+ function rangeSetItem(item, range) {
7926
+ if (range) {
7927
+ if (range.start != null) {
7928
+ item.start = range.start;
7929
+ }
7930
+ if (range.end != null) {
7931
+ item.end = range.end;
7932
+ }
7933
+ }
7934
+ return item;
7935
+ }
7936
+
7937
+ /**
7938
+ * Cross-platform code generation for component v-model
7939
+ */
7940
+ function genComponentModel(el, value, modifiers) {
7941
+ var _a = modifiers || {}, number = _a.number, trim = _a.trim;
7942
+ var baseValueExpression = '$$v';
7943
+ var valueExpression = baseValueExpression;
7944
+ if (trim) {
7945
+ valueExpression =
7946
+ "(typeof ".concat(baseValueExpression, " === 'string'") +
7947
+ "? ".concat(baseValueExpression, ".trim()") +
7948
+ ": ".concat(baseValueExpression, ")");
7949
+ }
7950
+ if (number) {
7951
+ valueExpression = "_n(".concat(valueExpression, ")");
7952
+ }
7953
+ var assignment = genAssignmentCode(value, valueExpression);
7954
+ el.model = {
7955
+ value: "(".concat(value, ")"),
7956
+ expression: JSON.stringify(value),
7957
+ callback: "function (".concat(baseValueExpression, ") {").concat(assignment, "}")
7958
+ };
7959
+ }
7960
+ /**
7961
+ * Cross-platform codegen helper for generating v-model value assignment code.
7962
+ */
7963
+ function genAssignmentCode(value, assignment) {
7964
+ var res = parseModel(value);
7965
+ if (res.key === null) {
7966
+ return "".concat(value, "=").concat(assignment);
7967
+ }
7968
+ else {
7969
+ return "$set(".concat(res.exp, ", ").concat(res.key, ", ").concat(assignment, ")");
7970
+ }
7971
+ }
7972
+ /**
7973
+ * Parse a v-model expression into a base path and a final key segment.
7974
+ * Handles both dot-path and possible square brackets.
7975
+ *
7976
+ * Possible cases:
7977
+ *
7978
+ * - test
7979
+ * - test[key]
7980
+ * - test[test1[key]]
7981
+ * - test["a"][key]
7982
+ * - xxx.test[a[a].test1[key]]
7983
+ * - test.xxx.a["asa"][test1[key]]
7984
+ *
7985
+ */
7986
+ var len, str, chr, index, expressionPos, expressionEndPos;
7987
+ function parseModel(val) {
7988
+ // Fix https://github.com/vuejs/vue/pull/7730
7989
+ // allow v-model="obj.val " (trailing whitespace)
7990
+ val = val.trim();
7991
+ len = val.length;
7992
+ if (val.indexOf('[') < 0 || val.lastIndexOf(']') < len - 1) {
7993
+ index = val.lastIndexOf('.');
7994
+ if (index > -1) {
7995
+ return {
7996
+ exp: val.slice(0, index),
7997
+ key: '"' + val.slice(index + 1) + '"'
7998
+ };
7999
+ }
8000
+ else {
8001
+ return {
8002
+ exp: val,
8003
+ key: null
8004
+ };
8005
+ }
8006
+ }
8007
+ str = val;
8008
+ index = expressionPos = expressionEndPos = 0;
8009
+ while (!eof()) {
8010
+ chr = next();
8011
+ /* istanbul ignore if */
8012
+ if (isStringStart(chr)) {
8013
+ parseString(chr);
8014
+ }
8015
+ else if (chr === 0x5b) {
8016
+ parseBracket(chr);
8017
+ }
8018
+ }
8019
+ return {
8020
+ exp: val.slice(0, expressionPos),
8021
+ key: val.slice(expressionPos + 1, expressionEndPos)
8022
+ };
8023
+ }
8024
+ function next() {
8025
+ return str.charCodeAt(++index);
8026
+ }
8027
+ function eof() {
8028
+ return index >= len;
8029
+ }
8030
+ function isStringStart(chr) {
8031
+ return chr === 0x22 || chr === 0x27;
8032
+ }
8033
+ function parseBracket(chr) {
8034
+ var inBracket = 1;
8035
+ expressionPos = index;
8036
+ while (!eof()) {
8037
+ chr = next();
8038
+ if (isStringStart(chr)) {
8039
+ parseString(chr);
8040
+ continue;
8041
+ }
8042
+ if (chr === 0x5b)
8043
+ inBracket++;
8044
+ if (chr === 0x5d)
8045
+ inBracket--;
8046
+ if (inBracket === 0) {
8047
+ expressionEndPos = index;
8048
+ break;
8049
+ }
8050
+ }
8051
+ }
8052
+ function parseString(chr) {
8053
+ var stringQuote = chr;
8054
+ while (!eof()) {
8055
+ chr = next();
8056
+ if (chr === stringQuote) {
8057
+ break;
8058
+ }
8059
+ }
8060
+ }
8061
+
8062
+ var warn$1;
8063
+ // in some cases, the event used has to be determined at runtime
8064
+ // so we used some reserved tokens during compile.
8065
+ var RANGE_TOKEN = '__r';
8066
+ var CHECKBOX_RADIO_TOKEN = '__c';
8067
+ function model$1(el, dir, _warn) {
8068
+ warn$1 = _warn;
8069
+ var value = dir.value;
8070
+ var modifiers = dir.modifiers;
8071
+ var tag = el.tag;
8072
+ var type = el.attrsMap.type;
8073
+ if (process.env.NODE_ENV !== 'production') {
8074
+ // inputs with type="file" are read only and setting the input's
8075
+ // value will throw an error.
8076
+ if (tag === 'input' && type === 'file') {
8077
+ warn$1("<".concat(el.tag, " v-model=\"").concat(value, "\" type=\"file\">:\n") +
8078
+ "File inputs are read only. Use a v-on:change listener instead.", el.rawAttrsMap['v-model']);
8079
+ }
8080
+ }
8081
+ if (el.component) {
8082
+ genComponentModel(el, value, modifiers);
8083
+ // component v-model doesn't need extra runtime
8084
+ return false;
8085
+ }
8086
+ else if (tag === 'select') {
8087
+ genSelect(el, value, modifiers);
8088
+ }
8089
+ else if (tag === 'input' && type === 'checkbox') {
8090
+ genCheckboxModel(el, value, modifiers);
8091
+ }
8092
+ else if (tag === 'input' && type === 'radio') {
8093
+ genRadioModel(el, value, modifiers);
8094
+ }
8095
+ else if (tag === 'input' || tag === 'textarea') {
8096
+ genDefaultModel(el, value, modifiers);
8097
+ }
8098
+ else if (!config.isReservedTag(tag)) {
8099
+ genComponentModel(el, value, modifiers);
8100
+ // component v-model doesn't need extra runtime
8101
+ return false;
8102
+ }
8103
+ else if (process.env.NODE_ENV !== 'production') {
8104
+ warn$1("<".concat(el.tag, " v-model=\"").concat(value, "\">: ") +
8105
+ "v-model is not supported on this element type. " +
8106
+ "If you are working with contenteditable, it's recommended to " +
8107
+ 'wrap a library dedicated for that purpose inside a custom component.', el.rawAttrsMap['v-model']);
8108
+ }
8109
+ // ensure runtime directive metadata
8110
+ return true;
8111
+ }
8112
+ function genCheckboxModel(el, value, modifiers) {
8113
+ var number = modifiers && modifiers.number;
8114
+ var valueBinding = getBindingAttr(el, 'value') || 'null';
8115
+ var trueValueBinding = getBindingAttr(el, 'true-value') || 'true';
8116
+ var falseValueBinding = getBindingAttr(el, 'false-value') || 'false';
8117
+ addProp(el, 'checked', "Array.isArray(".concat(value, ")") +
8118
+ "?_i(".concat(value, ",").concat(valueBinding, ")>-1") +
8119
+ (trueValueBinding === 'true'
8120
+ ? ":(".concat(value, ")")
8121
+ : ":_q(".concat(value, ",").concat(trueValueBinding, ")")));
8122
+ addHandler(el, 'change', "var $$a=".concat(value, ",") +
8123
+ '$$el=$event.target,' +
8124
+ "$$c=$$el.checked?(".concat(trueValueBinding, "):(").concat(falseValueBinding, ");") +
8125
+ 'if(Array.isArray($$a)){' +
8126
+ "var $$v=".concat(number ? '_n(' + valueBinding + ')' : valueBinding, ",") +
8127
+ '$$i=_i($$a,$$v);' +
8128
+ "if($$el.checked){$$i<0&&(".concat(genAssignmentCode(value, '$$a.concat([$$v])'), ")}") +
8129
+ "else{$$i>-1&&(".concat(genAssignmentCode(value, '$$a.slice(0,$$i).concat($$a.slice($$i+1))'), ")}") +
8130
+ "}else{".concat(genAssignmentCode(value, '$$c'), "}"), null, true);
8131
+ }
8132
+ function genRadioModel(el, value, modifiers) {
8133
+ var number = modifiers && modifiers.number;
8134
+ var valueBinding = getBindingAttr(el, 'value') || 'null';
8135
+ valueBinding = number ? "_n(".concat(valueBinding, ")") : valueBinding;
8136
+ addProp(el, 'checked', "_q(".concat(value, ",").concat(valueBinding, ")"));
8137
+ addHandler(el, 'change', genAssignmentCode(value, valueBinding), null, true);
8138
+ }
8139
+ function genSelect(el, value, modifiers) {
8140
+ var number = modifiers && modifiers.number;
8141
+ var selectedVal = "Array.prototype.filter" +
8142
+ ".call($event.target.options,function(o){return o.selected})" +
8143
+ ".map(function(o){var val = \"_value\" in o ? o._value : o.value;" +
8144
+ "return ".concat(number ? '_n(val)' : 'val', "})");
8145
+ var assignment = '$event.target.multiple ? $$selectedVal : $$selectedVal[0]';
8146
+ var code = "var $$selectedVal = ".concat(selectedVal, ";");
8147
+ code = "".concat(code, " ").concat(genAssignmentCode(value, assignment));
8148
+ addHandler(el, 'change', code, null, true);
8149
+ }
8150
+ function genDefaultModel(el, value, modifiers) {
8151
+ var type = el.attrsMap.type;
8152
+ // warn if v-bind:value conflicts with v-model
8153
+ // except for inputs with v-bind:type
8154
+ if (process.env.NODE_ENV !== 'production') {
8155
+ var value_1 = el.attrsMap['v-bind:value'] || el.attrsMap[':value'];
8156
+ var typeBinding = el.attrsMap['v-bind:type'] || el.attrsMap[':type'];
8157
+ if (value_1 && !typeBinding) {
8158
+ var binding = el.attrsMap['v-bind:value'] ? 'v-bind:value' : ':value';
8159
+ warn$1("".concat(binding, "=\"").concat(value_1, "\" conflicts with v-model on the same element ") +
8160
+ 'because the latter already expands to a value binding internally', el.rawAttrsMap[binding]);
8161
+ }
8162
+ }
8163
+ var _a = modifiers || {}, lazy = _a.lazy, number = _a.number, trim = _a.trim;
8164
+ var needCompositionGuard = !lazy && type !== 'range';
8165
+ var event = lazy ? 'change' : type === 'range' ? RANGE_TOKEN : 'input';
8166
+ var valueExpression = '$event.target.value';
8167
+ if (trim) {
8168
+ valueExpression = "$event.target.value.trim()";
8169
+ }
8170
+ if (number) {
8171
+ valueExpression = "_n(".concat(valueExpression, ")");
8172
+ }
8173
+ var code = genAssignmentCode(value, valueExpression);
8174
+ if (needCompositionGuard) {
8175
+ code = "if($event.target.composing)return;".concat(code);
8176
+ }
8177
+ addProp(el, 'value', "(".concat(value, ")"));
8178
+ addHandler(el, event, code, null, true);
8179
+ if (trim || number) {
8180
+ addHandler(el, 'blur', '$forceUpdate()');
8181
+ }
8182
+ }
8183
+
8184
+ // normalize v-model event tokens that can only be determined at runtime.
8185
+ // it's important to place the event as the first in the array because
8186
+ // the whole point is ensuring the v-model callback gets called before
8187
+ // user-attached handlers.
8188
+ function normalizeEvents(on) {
8189
+ /* istanbul ignore if */
8190
+ if (isDef(on[RANGE_TOKEN])) {
8191
+ // IE input[type=range] only supports `change` event
8192
+ var event_1 = isIE ? 'change' : 'input';
8193
+ on[event_1] = [].concat(on[RANGE_TOKEN], on[event_1] || []);
8194
+ delete on[RANGE_TOKEN];
8195
+ }
8196
+ // This was originally intended to fix #4521 but no longer necessary
8197
+ // after 2.5. Keeping it for backwards compat with generated code from < 2.4
8198
+ /* istanbul ignore if */
8199
+ if (isDef(on[CHECKBOX_RADIO_TOKEN])) {
8200
+ on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);
8201
+ delete on[CHECKBOX_RADIO_TOKEN];
8202
+ }
8203
+ }
8204
+ var target;
8205
+ function createOnceHandler(event, handler, capture) {
8206
+ var _target = target; // save current target element in closure
8207
+ return function onceHandler() {
8208
+ var res = handler.apply(null, arguments);
8209
+ if (res !== null) {
8210
+ remove(event, onceHandler, capture, _target);
8211
+ }
8212
+ };
8213
+ }
8214
+ // #9446: Firefox <= 53 (in particular, ESR 52) has incorrect Event.timeStamp
8215
+ // implementation and does not fire microtasks in between event propagation, so
8216
+ // safe to exclude.
8217
+ var useMicrotaskFix = isUsingMicroTask && !(isFF && Number(isFF[1]) <= 53);
8218
+ function add(name, handler, capture, passive) {
8219
+ // async edge case #6566: inner click event triggers patch, event handler
8220
+ // attached to outer element during patch, and triggered again. This
8221
+ // happens because browsers fire microtask ticks between event propagation.
8222
+ // the solution is simple: we save the timestamp when a handler is attached,
8223
+ // and the handler would only fire if the event passed to it was fired
8224
+ // AFTER it was attached.
8225
+ if (useMicrotaskFix) {
8226
+ var attachedTimestamp_1 = currentFlushTimestamp;
8227
+ var original_1 = handler;
8228
+ //@ts-expect-error
8229
+ handler = original_1._wrapper = function (e) {
8230
+ if (
8231
+ // no bubbling, should always fire.
8232
+ // this is just a safety net in case event.timeStamp is unreliable in
8233
+ // certain weird environments...
8234
+ e.target === e.currentTarget ||
8235
+ // event is fired after handler attachment
8236
+ e.timeStamp >= attachedTimestamp_1 ||
8237
+ // bail for environments that have buggy event.timeStamp implementations
8238
+ // #9462 iOS 9 bug: event.timeStamp is 0 after history.pushState
8239
+ // #9681 QtWebEngine event.timeStamp is negative value
8240
+ e.timeStamp <= 0 ||
8241
+ // #9448 bail if event is fired in another document in a multi-page
8242
+ // electron/nw.js app, since event.timeStamp will be using a different
8243
+ // starting reference
8244
+ e.target.ownerDocument !== document) {
8245
+ return original_1.apply(this, arguments);
8246
+ }
8247
+ };
8248
+ }
8249
+ target.addEventListener(name, handler, supportsPassive ? { capture: capture, passive: passive } : capture);
8250
+ }
8251
+ function remove(name, handler, capture, _target) {
8252
+ (_target || target).removeEventListener(name,
8253
+ //@ts-expect-error
8254
+ handler._wrapper || handler, capture);
8255
+ }
8256
+ function updateDOMListeners(oldVnode, vnode) {
8257
+ if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {
8258
+ return;
8259
+ }
8260
+ var on = vnode.data.on || {};
8261
+ var oldOn = oldVnode.data.on || {};
8262
+ // vnode is empty when removing all listeners,
8263
+ // and use old vnode dom element
8264
+ target = vnode.elm || oldVnode.elm;
8265
+ normalizeEvents(on);
8266
+ updateListeners(on, oldOn, add, remove, createOnceHandler, vnode.context);
8267
+ target = undefined;
8268
+ }
8269
+ var events = {
8270
+ create: updateDOMListeners,
8271
+ update: updateDOMListeners,
8272
+ // @ts-expect-error emptyNode has actually data
8273
+ destroy: function (vnode) { return updateDOMListeners(vnode, emptyNode); }
8274
+ };
8275
 
8276
+ var svgContainer;
8277
+ function updateDOMProps(oldVnode, vnode) {
8278
+ if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {
8279
+ return;
8280
+ }
8281
+ var key, cur;
8282
+ var elm = vnode.elm;
8283
+ var oldProps = oldVnode.data.domProps || {};
8284
+ var props = vnode.data.domProps || {};
8285
+ // clone observed objects, as the user probably wants to mutate it
8286
+ if (isDef(props.__ob__) || isTrue(props._v_attr_proxy)) {
8287
+ props = vnode.data.domProps = extend({}, props);
8288
+ }
8289
+ for (key in oldProps) {
8290
+ if (!(key in props)) {
8291
+ elm[key] = '';
8292
+ }
8293
+ }
8294
+ for (key in props) {
8295
+ cur = props[key];
8296
+ // ignore children if the node has textContent or innerHTML,
8297
+ // as these will throw away existing DOM nodes and cause removal errors
8298
+ // on subsequent patches (#3360)
8299
+ if (key === 'textContent' || key === 'innerHTML') {
8300
+ if (vnode.children)
8301
+ vnode.children.length = 0;
8302
+ if (cur === oldProps[key])
8303
+ continue;
8304
+ // #6601 work around Chrome version <= 55 bug where single textNode
8305
+ // replaced by innerHTML/textContent retains its parentNode property
8306
+ if (elm.childNodes.length === 1) {
8307
+ elm.removeChild(elm.childNodes[0]);
8308
+ }
8309
+ }
8310
+ if (key === 'value' && elm.tagName !== 'PROGRESS') {
8311
+ // store value as _value as well since
8312
+ // non-string values will be stringified
8313
+ elm._value = cur;
8314
+ // avoid resetting cursor position when value is the same
8315
+ var strCur = isUndef(cur) ? '' : String(cur);
8316
+ if (shouldUpdateValue(elm, strCur)) {
8317
+ elm.value = strCur;
8318
+ }
8319
+ }
8320
+ else if (key === 'innerHTML' &&
8321
+ isSVG(elm.tagName) &&
8322
+ isUndef(elm.innerHTML)) {
8323
+ // IE doesn't support innerHTML for SVG elements
8324
+ svgContainer = svgContainer || document.createElement('div');
8325
+ svgContainer.innerHTML = "<svg>".concat(cur, "</svg>");
8326
+ var svg = svgContainer.firstChild;
8327
+ while (elm.firstChild) {
8328
+ elm.removeChild(elm.firstChild);
8329
+ }
8330
+ while (svg.firstChild) {
8331
+ elm.appendChild(svg.firstChild);
8332
+ }
8333
+ }
8334
+ else if (
8335
+ // skip the update if old and new VDOM state is the same.
8336
+ // `value` is handled separately because the DOM value may be temporarily
8337
+ // out of sync with VDOM state due to focus, composition and modifiers.
8338
+ // This #4521 by skipping the unnecessary `checked` update.
8339
+ cur !== oldProps[key]) {
8340
+ // some property updates can throw
8341
+ // e.g. `value` on <progress> w/ non-finite value
8342
+ try {
8343
+ elm[key] = cur;
8344
+ }
8345
+ catch (e) { }
8346
+ }
8347
+ }
8348
+ }
8349
+ function shouldUpdateValue(elm, checkVal) {
8350
+ return (
8351
+ //@ts-expect-error
8352
+ !elm.composing &&
8353
+ (elm.tagName === 'OPTION' ||
8354
+ isNotInFocusAndDirty(elm, checkVal) ||
8355
+ isDirtyWithModifiers(elm, checkVal)));
8356
+ }
8357
+ function isNotInFocusAndDirty(elm, checkVal) {
8358
+ // return true when textbox (.number and .trim) loses focus and its value is
8359
+ // not equal to the updated value
8360
+ var notInFocus = true;
8361
+ // #6157
8362
+ // work around IE bug when accessing document.activeElement in an iframe
8363
+ try {
8364
+ notInFocus = document.activeElement !== elm;
8365
+ }
8366
+ catch (e) { }
8367
+ return notInFocus && elm.value !== checkVal;
8368
+ }
8369
+ function isDirtyWithModifiers(elm, newVal) {
8370
+ var value = elm.value;
8371
+ var modifiers = elm._vModifiers; // injected by v-model runtime
8372
+ if (isDef(modifiers)) {
8373
+ if (modifiers.number) {
8374
+ return toNumber(value) !== toNumber(newVal);
8375
+ }
8376
+ if (modifiers.trim) {
8377
+ return value.trim() !== newVal.trim();
8378
+ }
8379
+ }
8380
+ return value !== newVal;
8381
+ }
8382
+ var domProps = {
8383
+ create: updateDOMProps,
8384
+ update: updateDOMProps
8385
+ };
8386
 
8387
+ var parseStyleText = cached(function (cssText) {
8388
+ var res = {};
8389
+ var listDelimiter = /;(?![^(]*\))/g;
8390
+ var propertyDelimiter = /:(.+)/;
8391
+ cssText.split(listDelimiter).forEach(function (item) {
8392
+ if (item) {
8393
+ var tmp = item.split(propertyDelimiter);
8394
+ tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());
8395
+ }
8396
+ });
8397
+ return res;
8398
+ });
8399
+ // merge static and dynamic style data on the same vnode
8400
+ function normalizeStyleData(data) {
8401
+ var style = normalizeStyleBinding(data.style);
8402
+ // static style is pre-processed into an object during compilation
8403
+ // and is always a fresh object, so it's safe to merge into it
8404
+ return data.staticStyle ? extend(data.staticStyle, style) : style;
8405
+ }
8406
+ // normalize possible array / string values into Object
8407
+ function normalizeStyleBinding(bindingStyle) {
8408
+ if (Array.isArray(bindingStyle)) {
8409
+ return toObject(bindingStyle);
8410
+ }
8411
+ if (typeof bindingStyle === 'string') {
8412
+ return parseStyleText(bindingStyle);
8413
+ }
8414
+ return bindingStyle;
8415
+ }
8416
+ /**
8417
+ * parent component style should be after child's
8418
+ * so that parent component's style could override it
8419
+ */
8420
+ function getStyle(vnode, checkChild) {
8421
+ var res = {};
8422
+ var styleData;
8423
+ if (checkChild) {
8424
+ var childNode = vnode;
8425
+ while (childNode.componentInstance) {
8426
+ childNode = childNode.componentInstance._vnode;
8427
+ if (childNode &&
8428
+ childNode.data &&
8429
+ (styleData = normalizeStyleData(childNode.data))) {
8430
+ extend(res, styleData);
8431
+ }
8432
+ }
8433
+ }
8434
+ if ((styleData = normalizeStyleData(vnode.data))) {
8435
+ extend(res, styleData);
8436
+ }
8437
+ var parentNode = vnode;
8438
+ // @ts-expect-error parentNode.parent not VNodeWithData
8439
+ while ((parentNode = parentNode.parent)) {
8440
+ if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {
8441
+ extend(res, styleData);
8442
+ }
8443
+ }
8444
+ return res;
8445
+ }
8446
+
8447
+ var cssVarRE = /^--/;
8448
+ var importantRE = /\s*!important$/;
8449
+ var setProp = function (el, name, val) {
8450
+ /* istanbul ignore if */
8451
+ if (cssVarRE.test(name)) {
8452
+ el.style.setProperty(name, val);
8453
+ }
8454
+ else if (importantRE.test(val)) {
8455
+ el.style.setProperty(hyphenate(name), val.replace(importantRE, ''), 'important');
8456
+ }
8457
+ else {
8458
+ var normalizedName = normalize(name);
8459
+ if (Array.isArray(val)) {
8460
+ // Support values array created by autoprefixer, e.g.
8461
+ // {display: ["-webkit-box", "-ms-flexbox", "flex"]}
8462
+ // Set them one by one, and the browser will only set those it can recognize
8463
+ for (var i = 0, len = val.length; i < len; i++) {
8464
+ el.style[normalizedName] = val[i];
8465
+ }
8466
+ }
8467
+ else {
8468
+ el.style[normalizedName] = val;
8469
+ }
8470
+ }
8471
+ };
8472
+ var vendorNames = ['Webkit', 'Moz', 'ms'];
8473
+ var emptyStyle;
8474
+ var normalize = cached(function (prop) {
8475
+ emptyStyle = emptyStyle || document.createElement('div').style;
8476
+ prop = camelize(prop);
8477
+ if (prop !== 'filter' && prop in emptyStyle) {
8478
+ return prop;
8479
+ }
8480
+ var capName = prop.charAt(0).toUpperCase() + prop.slice(1);
8481
+ for (var i = 0; i < vendorNames.length; i++) {
8482
+ var name_1 = vendorNames[i] + capName;
8483
+ if (name_1 in emptyStyle) {
8484
+ return name_1;
8485
+ }
8486
+ }
8487
+ });
8488
+ function updateStyle(oldVnode, vnode) {
8489
+ var data = vnode.data;
8490
+ var oldData = oldVnode.data;
8491
+ if (isUndef(data.staticStyle) &&
8492
+ isUndef(data.style) &&
8493
+ isUndef(oldData.staticStyle) &&
8494
+ isUndef(oldData.style)) {
8495
+ return;
8496
+ }
8497
+ var cur, name;
8498
+ var el = vnode.elm;
8499
+ var oldStaticStyle = oldData.staticStyle;
8500
+ var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};
8501
+ // if static style exists, stylebinding already merged into it when doing normalizeStyleData
8502
+ var oldStyle = oldStaticStyle || oldStyleBinding;
8503
+ var style = normalizeStyleBinding(vnode.data.style) || {};
8504
+ // store normalized style under a different key for next diff
8505
+ // make sure to clone it if it's reactive, since the user likely wants
8506
+ // to mutate it.
8507
+ vnode.data.normalizedStyle = isDef(style.__ob__) ? extend({}, style) : style;
8508
+ var newStyle = getStyle(vnode, true);
8509
+ for (name in oldStyle) {
8510
+ if (isUndef(newStyle[name])) {
8511
+ setProp(el, name, '');
8512
+ }
8513
+ }
8514
+ for (name in newStyle) {
8515
+ cur = newStyle[name];
8516
+ if (cur !== oldStyle[name]) {
8517
+ // ie9 setting to null has no effect, must use empty string
8518
+ setProp(el, name, cur == null ? '' : cur);
8519
+ }
8520
+ }
8521
+ }
8522
+ var style$1 = {
8523
+ create: updateStyle,
8524
+ update: updateStyle
8525
+ };
8526
 
8527
+ var whitespaceRE$1 = /\s+/;
8528
+ /**
8529
+ * Add class with compatibility for SVG since classList is not supported on
8530
+ * SVG elements in IE
8531
+ */
8532
+ function addClass(el, cls) {
8533
+ /* istanbul ignore if */
8534
+ if (!cls || !(cls = cls.trim())) {
8535
+ return;
8536
+ }
8537
+ /* istanbul ignore else */
8538
+ if (el.classList) {
8539
+ if (cls.indexOf(' ') > -1) {
8540
+ cls.split(whitespaceRE$1).forEach(function (c) { return el.classList.add(c); });
8541
+ }
8542
+ else {
8543
+ el.classList.add(cls);
8544
+ }
8545
+ }
8546
+ else {
8547
+ var cur = " ".concat(el.getAttribute('class') || '', " ");
8548
+ if (cur.indexOf(' ' + cls + ' ') < 0) {
8549
+ el.setAttribute('class', (cur + cls).trim());
8550
+ }
8551
+ }
8552
+ }
8553
+ /**
8554
+ * Remove class with compatibility for SVG since classList is not supported on
8555
+ * SVG elements in IE
8556
+ */
8557
+ function removeClass(el, cls) {
8558
+ /* istanbul ignore if */
8559
+ if (!cls || !(cls = cls.trim())) {
8560
+ return;
8561
+ }
8562
+ /* istanbul ignore else */
8563
+ if (el.classList) {
8564
+ if (cls.indexOf(' ') > -1) {
8565
+ cls.split(whitespaceRE$1).forEach(function (c) { return el.classList.remove(c); });
8566
+ }
8567
+ else {
8568
+ el.classList.remove(cls);
8569
+ }
8570
+ if (!el.classList.length) {
8571
+ el.removeAttribute('class');
8572
+ }
8573
+ }
8574
+ else {
8575
+ var cur = " ".concat(el.getAttribute('class') || '', " ");
8576
+ var tar = ' ' + cls + ' ';
8577
+ while (cur.indexOf(tar) >= 0) {
8578
+ cur = cur.replace(tar, ' ');
8579
+ }
8580
+ cur = cur.trim();
8581
+ if (cur) {
8582
+ el.setAttribute('class', cur);
8583
+ }
8584
+ else {
8585
+ el.removeAttribute('class');
8586
+ }
8587
+ }
8588
+ }
8589
+
8590
+ function resolveTransition(def) {
8591
+ if (!def) {
8592
+ return;
8593
+ }
8594
+ /* istanbul ignore else */
8595
+ if (typeof def === 'object') {
8596
+ var res = {};
8597
+ if (def.css !== false) {
8598
+ extend(res, autoCssTransition(def.name || 'v'));
8599
+ }
8600
+ extend(res, def);
8601
+ return res;
8602
+ }
8603
+ else if (typeof def === 'string') {
8604
+ return autoCssTransition(def);
8605
+ }
8606
+ }
8607
+ var autoCssTransition = cached(function (name) {
8608
+ return {
8609
+ enterClass: "".concat(name, "-enter"),
8610
+ enterToClass: "".concat(name, "-enter-to"),
8611
+ enterActiveClass: "".concat(name, "-enter-active"),
8612
+ leaveClass: "".concat(name, "-leave"),
8613
+ leaveToClass: "".concat(name, "-leave-to"),
8614
+ leaveActiveClass: "".concat(name, "-leave-active")
8615
+ };
8616
+ });
8617
+ var hasTransition = inBrowser && !isIE9;
8618
+ var TRANSITION = 'transition';
8619
+ var ANIMATION = 'animation';
8620
+ // Transition property/event sniffing
8621
+ var transitionProp = 'transition';
8622
+ var transitionEndEvent = 'transitionend';
8623
+ var animationProp = 'animation';
8624
+ var animationEndEvent = 'animationend';
8625
+ if (hasTransition) {
8626
+ /* istanbul ignore if */
8627
+ if (window.ontransitionend === undefined &&
8628
+ window.onwebkittransitionend !== undefined) {
8629
+ transitionProp = 'WebkitTransition';
8630
+ transitionEndEvent = 'webkitTransitionEnd';
8631
+ }
8632
+ if (window.onanimationend === undefined &&
8633
+ window.onwebkitanimationend !== undefined) {
8634
+ animationProp = 'WebkitAnimation';
8635
+ animationEndEvent = 'webkitAnimationEnd';
8636
+ }
8637
+ }
8638
+ // binding to window is necessary to make hot reload work in IE in strict mode
8639
+ var raf = inBrowser
8640
+ ? window.requestAnimationFrame
8641
+ ? window.requestAnimationFrame.bind(window)
8642
+ : setTimeout
8643
+ : /* istanbul ignore next */ function (/* istanbul ignore next */ fn) { return fn(); };
8644
+ function nextFrame(fn) {
8645
+ raf(function () {
8646
+ // @ts-expect-error
8647
+ raf(fn);
8648
+ });
8649
+ }
8650
+ function addTransitionClass(el, cls) {
8651
+ var transitionClasses = el._transitionClasses || (el._transitionClasses = []);
8652
+ if (transitionClasses.indexOf(cls) < 0) {
8653
+ transitionClasses.push(cls);
8654
+ addClass(el, cls);
8655
+ }
8656
+ }
8657
+ function removeTransitionClass(el, cls) {
8658
+ if (el._transitionClasses) {
8659
+ remove$2(el._transitionClasses, cls);
8660
+ }
8661
+ removeClass(el, cls);
8662
+ }
8663
+ function whenTransitionEnds(el, expectedType, cb) {
8664
+ var _a = getTransitionInfo(el, expectedType), type = _a.type, timeout = _a.timeout, propCount = _a.propCount;
8665
+ if (!type)
8666
+ return cb();
8667
+ var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;
8668
+ var ended = 0;
8669
+ var end = function () {
8670
+ el.removeEventListener(event, onEnd);
8671
+ cb();
8672
+ };
8673
+ var onEnd = function (e) {
8674
+ if (e.target === el) {
8675
+ if (++ended >= propCount) {
8676
+ end();
8677
+ }
8678
+ }
8679
+ };
8680
+ setTimeout(function () {
8681
+ if (ended < propCount) {
8682
+ end();
8683
+ }
8684
+ }, timeout + 1);
8685
+ el.addEventListener(event, onEnd);
8686
+ }
8687
+ var transformRE = /\b(transform|all)(,|$)/;
8688
+ function getTransitionInfo(el, expectedType) {
8689
+ var styles = window.getComputedStyle(el);
8690
+ // JSDOM may return undefined for transition properties
8691
+ var transitionDelays = (styles[transitionProp + 'Delay'] || '').split(', ');
8692
+ var transitionDurations = (styles[transitionProp + 'Duration'] || '').split(', ');
8693
+ var transitionTimeout = getTimeout(transitionDelays, transitionDurations);
8694
+ var animationDelays = (styles[animationProp + 'Delay'] || '').split(', ');
8695
+ var animationDurations = (styles[animationProp + 'Duration'] || '').split(', ');
8696
+ var animationTimeout = getTimeout(animationDelays, animationDurations);
8697
+ var type;
8698
+ var timeout = 0;
8699
+ var propCount = 0;
8700
+ /* istanbul ignore if */
8701
+ if (expectedType === TRANSITION) {
8702
+ if (transitionTimeout > 0) {
8703
+ type = TRANSITION;
8704
+ timeout = transitionTimeout;
8705
+ propCount = transitionDurations.length;
8706
+ }
8707
+ }
8708
+ else if (expectedType === ANIMATION) {
8709
+ if (animationTimeout > 0) {
8710
+ type = ANIMATION;
8711
+ timeout = animationTimeout;
8712
+ propCount = animationDurations.length;
8713
+ }
8714
+ }
8715
+ else {
8716
+ timeout = Math.max(transitionTimeout, animationTimeout);
8717
+ type =
8718
+ timeout > 0
8719
+ ? transitionTimeout > animationTimeout
8720
+ ? TRANSITION
8721
+ : ANIMATION
8722
+ : null;
8723
+ propCount = type
8724
+ ? type === TRANSITION
8725
+ ? transitionDurations.length
8726
+ : animationDurations.length
8727
+ : 0;
8728
+ }
8729
+ var hasTransform = type === TRANSITION && transformRE.test(styles[transitionProp + 'Property']);
8730
+ return {
8731
+ type: type,
8732
+ timeout: timeout,
8733
+ propCount: propCount,
8734
+ hasTransform: hasTransform
8735
+ };
8736
+ }
8737
+ function getTimeout(delays, durations) {
8738
+ /* istanbul ignore next */
8739
+ while (delays.length < durations.length) {
8740
+ delays = delays.concat(delays);
8741
+ }
8742
+ return Math.max.apply(null, durations.map(function (d, i) {
8743
+ return toMs(d) + toMs(delays[i]);
8744
+ }));
8745
+ }
8746
+ // Old versions of Chromium (below 61.0.3163.100) formats floating pointer numbers
8747
+ // in a locale-dependent way, using a comma instead of a dot.
8748
+ // If comma is not replaced with a dot, the input will be rounded down (i.e. acting
8749
+ // as a floor function) causing unexpected behaviors
8750
+ function toMs(s) {
8751
+ return Number(s.slice(0, -1).replace(',', '.')) * 1000;
8752
+ }
8753
+
8754
+ function enter(vnode, toggleDisplay) {
8755
+ var el = vnode.elm;
8756
+ // call leave callback now
8757
+ if (isDef(el._leaveCb)) {
8758
+ el._leaveCb.cancelled = true;
8759
+ el._leaveCb();
8760
+ }
8761
+ var data = resolveTransition(vnode.data.transition);
8762
+ if (isUndef(data)) {
8763
+ return;
8764
+ }
8765
+ /* istanbul ignore if */
8766
+ if (isDef(el._enterCb) || el.nodeType !== 1) {
8767
+ return;
8768
+ }
8769
+ var css = data.css, type = data.type, enterClass = data.enterClass, enterToClass = data.enterToClass, enterActiveClass = data.enterActiveClass, appearClass = data.appearClass, appearToClass = data.appearToClass, appearActiveClass = data.appearActiveClass, beforeEnter = data.beforeEnter, enter = data.enter, afterEnter = data.afterEnter, enterCancelled = data.enterCancelled, beforeAppear = data.beforeAppear, appear = data.appear, afterAppear = data.afterAppear, appearCancelled = data.appearCancelled, duration = data.duration;
8770
+ // activeInstance will always be the <transition> component managing this
8771
+ // transition. One edge case to check is when the <transition> is placed
8772
+ // as the root node of a child component. In that case we need to check
8773
+ // <transition>'s parent for appear check.
8774
+ var context = activeInstance;
8775
+ var transitionNode = activeInstance.$vnode;
8776
+ while (transitionNode && transitionNode.parent) {
8777
+ context = transitionNode.context;
8778
+ transitionNode = transitionNode.parent;
8779
+ }
8780
+ var isAppear = !context._isMounted || !vnode.isRootInsert;
8781
+ if (isAppear && !appear && appear !== '') {
8782
+ return;
8783
+ }
8784
+ var startClass = isAppear && appearClass ? appearClass : enterClass;
8785
+ var activeClass = isAppear && appearActiveClass ? appearActiveClass : enterActiveClass;
8786
+ var toClass = isAppear && appearToClass ? appearToClass : enterToClass;
8787
+ var beforeEnterHook = isAppear ? beforeAppear || beforeEnter : beforeEnter;
8788
+ var enterHook = isAppear ? (isFunction(appear) ? appear : enter) : enter;
8789
+ var afterEnterHook = isAppear ? afterAppear || afterEnter : afterEnter;
8790
+ var enterCancelledHook = isAppear
8791
+ ? appearCancelled || enterCancelled
8792
+ : enterCancelled;
8793
+ var explicitEnterDuration = toNumber(isObject(duration) ? duration.enter : duration);
8794
+ if (process.env.NODE_ENV !== 'production' && explicitEnterDuration != null) {
8795
+ checkDuration(explicitEnterDuration, 'enter', vnode);
8796
+ }
8797
+ var expectsCSS = css !== false && !isIE9;
8798
+ var userWantsControl = getHookArgumentsLength(enterHook);
8799
+ var cb = (el._enterCb = once(function () {
8800
+ if (expectsCSS) {
8801
+ removeTransitionClass(el, toClass);
8802
+ removeTransitionClass(el, activeClass);
8803
+ }
8804
+ // @ts-expect-error
8805
+ if (cb.cancelled) {
8806
+ if (expectsCSS) {
8807
+ removeTransitionClass(el, startClass);
8808
+ }
8809
+ enterCancelledHook && enterCancelledHook(el);
8810
+ }
8811
+ else {
8812
+ afterEnterHook && afterEnterHook(el);
8813
+ }
8814
+ el._enterCb = null;
8815
+ }));
8816
+ if (!vnode.data.show) {
8817
+ // remove pending leave element on enter by injecting an insert hook
8818
+ mergeVNodeHook(vnode, 'insert', function () {
8819
+ var parent = el.parentNode;
8820
+ var pendingNode = parent && parent._pending && parent._pending[vnode.key];
8821
+ if (pendingNode &&
8822
+ pendingNode.tag === vnode.tag &&
8823
+ pendingNode.elm._leaveCb) {
8824
+ pendingNode.elm._leaveCb();
8825
+ }
8826
+ enterHook && enterHook(el, cb);
8827
+ });
8828
+ }
8829
+ // start enter transition
8830
+ beforeEnterHook && beforeEnterHook(el);
8831
+ if (expectsCSS) {
8832
+ addTransitionClass(el, startClass);
8833
+ addTransitionClass(el, activeClass);
8834
+ nextFrame(function () {
8835
+ removeTransitionClass(el, startClass);
8836
+ // @ts-expect-error
8837
+ if (!cb.cancelled) {
8838
+ addTransitionClass(el, toClass);
8839
+ if (!userWantsControl) {
8840
+ if (isValidDuration(explicitEnterDuration)) {
8841
+ setTimeout(cb, explicitEnterDuration);
8842
+ }
8843
+ else {
8844
+ whenTransitionEnds(el, type, cb);
8845
+ }
8846
+ }
8847
+ }
8848
+ });
8849
+ }
8850
+ if (vnode.data.show) {
8851
+ toggleDisplay && toggleDisplay();
8852
+ enterHook && enterHook(el, cb);
8853
+ }
8854
+ if (!expectsCSS && !userWantsControl) {
8855
+ cb();
8856
+ }
8857
+ }
8858
+ function leave(vnode, rm) {
8859
+ var el = vnode.elm;
8860
+ // call enter callback now
8861
+ if (isDef(el._enterCb)) {
8862
+ el._enterCb.cancelled = true;
8863
+ el._enterCb();
8864
+ }
8865
+ var data = resolveTransition(vnode.data.transition);
8866
+ if (isUndef(data) || el.nodeType !== 1) {
8867
+ return rm();
8868
+ }
8869
+ /* istanbul ignore if */
8870
+ if (isDef(el._leaveCb)) {
8871
+ return;
8872
+ }
8873
+ var css = data.css, type = data.type, leaveClass = data.leaveClass, leaveToClass = data.leaveToClass, leaveActiveClass = data.leaveActiveClass, beforeLeave = data.beforeLeave, leave = data.leave, afterLeave = data.afterLeave, leaveCancelled = data.leaveCancelled, delayLeave = data.delayLeave, duration = data.duration;
8874
+ var expectsCSS = css !== false && !isIE9;
8875
+ var userWantsControl = getHookArgumentsLength(leave);
8876
+ var explicitLeaveDuration = toNumber(isObject(duration) ? duration.leave : duration);
8877
+ if (process.env.NODE_ENV !== 'production' && isDef(explicitLeaveDuration)) {
8878
+ checkDuration(explicitLeaveDuration, 'leave', vnode);
8879
+ }
8880
+ var cb = (el._leaveCb = once(function () {
8881
+ if (el.parentNode && el.parentNode._pending) {
8882
+ el.parentNode._pending[vnode.key] = null;
8883
+ }
8884
+ if (expectsCSS) {
8885
+ removeTransitionClass(el, leaveToClass);
8886
+ removeTransitionClass(el, leaveActiveClass);
8887
+ }
8888
+ // @ts-expect-error
8889
+ if (cb.cancelled) {
8890
+ if (expectsCSS) {
8891
+ removeTransitionClass(el, leaveClass);
8892
+ }
8893
+ leaveCancelled && leaveCancelled(el);
8894
+ }
8895
+ else {
8896
+ rm();
8897
+ afterLeave && afterLeave(el);
8898
+ }
8899
+ el._leaveCb = null;
8900
+ }));
8901
+ if (delayLeave) {
8902
+ delayLeave(performLeave);
8903
+ }
8904
+ else {
8905
+ performLeave();
8906
+ }
8907
+ function performLeave() {
8908
+ // the delayed leave may have already been cancelled
8909
+ // @ts-expect-error
8910
+ if (cb.cancelled) {
8911
+ return;
8912
+ }
8913
+ // record leaving element
8914
+ if (!vnode.data.show && el.parentNode) {
8915
+ (el.parentNode._pending || (el.parentNode._pending = {}))[vnode.key] =
8916
+ vnode;
8917
+ }
8918
+ beforeLeave && beforeLeave(el);
8919
+ if (expectsCSS) {
8920
+ addTransitionClass(el, leaveClass);
8921
+ addTransitionClass(el, leaveActiveClass);
8922
+ nextFrame(function () {
8923
+ removeTransitionClass(el, leaveClass);
8924
+ // @ts-expect-error
8925
+ if (!cb.cancelled) {
8926
+ addTransitionClass(el, leaveToClass);
8927
+ if (!userWantsControl) {
8928
+ if (isValidDuration(explicitLeaveDuration)) {
8929
+ setTimeout(cb, explicitLeaveDuration);
8930
+ }
8931
+ else {
8932
+ whenTransitionEnds(el, type, cb);
8933
+ }
8934
+ }
8935
+ }
8936
+ });
8937
+ }
8938
+ leave && leave(el, cb);
8939
+ if (!expectsCSS && !userWantsControl) {
8940
+ cb();
8941
+ }
8942
+ }
8943
+ }
8944
+ // only used in dev mode
8945
+ function checkDuration(val, name, vnode) {
8946
+ if (typeof val !== 'number') {
8947
+ warn$2("<transition> explicit ".concat(name, " duration is not a valid number - ") +
8948
+ "got ".concat(JSON.stringify(val), "."), vnode.context);
8949
+ }
8950
+ else if (isNaN(val)) {
8951
+ warn$2("<transition> explicit ".concat(name, " duration is NaN - ") +
8952
+ 'the duration expression might be incorrect.', vnode.context);
8953
+ }
8954
+ }
8955
+ function isValidDuration(val) {
8956
+ return typeof val === 'number' && !isNaN(val);
8957
+ }
8958
+ /**
8959
+ * Normalize a transition hook's argument length. The hook may be:
8960
+ * - a merged hook (invoker) with the original in .fns
8961
+ * - a wrapped component method (check ._length)
8962
+ * - a plain function (.length)
8963
+ */
8964
+ function getHookArgumentsLength(fn) {
8965
+ if (isUndef(fn)) {
8966
+ return false;
8967
+ }
8968
+ // @ts-expect-error
8969
+ var invokerFns = fn.fns;
8970
+ if (isDef(invokerFns)) {
8971
+ // invoker
8972
+ return getHookArgumentsLength(Array.isArray(invokerFns) ? invokerFns[0] : invokerFns);
8973
+ }
8974
+ else {
8975
+ // @ts-expect-error
8976
+ return (fn._length || fn.length) > 1;
8977
+ }
8978
+ }
8979
+ function _enter(_, vnode) {
8980
+ if (vnode.data.show !== true) {
8981
+ enter(vnode);
8982
+ }
8983
+ }
8984
+ var transition = inBrowser
8985
+ ? {
8986
+ create: _enter,
8987
+ activate: _enter,
8988
+ remove: function (vnode, rm) {
8989
+ /* istanbul ignore else */
8990
+ if (vnode.data.show !== true) {
8991
+ // @ts-expect-error
8992
+ leave(vnode, rm);
8993
+ }
8994
+ else {
8995
+ rm();
8996
+ }
8997
+ }
8998
+ }
8999
+ : {};
9000
+
9001
+ var platformModules = [attrs, klass$1, events, domProps, style$1, transition];
9002
+
9003
+ // the directive module should be applied last, after all
9004
+ // built-in modules have been applied.
9005
+ var modules$1 = platformModules.concat(baseModules);
9006
+ var patch = createPatchFunction({ nodeOps: nodeOps, modules: modules$1 });
9007
+
9008
+ /**
9009
+ * Not type checking this file because flow doesn't like attaching
9010
+ * properties to Elements.
9011
+ */
9012
+ /* istanbul ignore if */
9013
+ if (isIE9) {
9014
+ // http://www.matts411.com/post/internet-explorer-9-oninput/
9015
+ document.addEventListener('selectionchange', function () {
9016
+ var el = document.activeElement;
9017
+ // @ts-expect-error
9018
+ if (el && el.vmodel) {
9019
+ trigger(el, 'input');
9020
+ }
9021
+ });
9022
+ }
9023
+ var directive = {
9024
+ inserted: function (el, binding, vnode, oldVnode) {
9025
+ if (vnode.tag === 'select') {
9026
+ // #6903
9027
+ if (oldVnode.elm && !oldVnode.elm._vOptions) {
9028
+ mergeVNodeHook(vnode, 'postpatch', function () {
9029
+ directive.componentUpdated(el, binding, vnode);
9030
+ });
9031
+ }
9032
+ else {
9033
+ setSelected(el, binding, vnode.context);
9034
+ }
9035
+ el._vOptions = [].map.call(el.options, getValue);
9036
+ }
9037
+ else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {
9038
+ el._vModifiers = binding.modifiers;
9039
+ if (!binding.modifiers.lazy) {
9040
+ el.addEventListener('compositionstart', onCompositionStart);
9041
+ el.addEventListener('compositionend', onCompositionEnd);
9042
+ // Safari < 10.2 & UIWebView doesn't fire compositionend when
9043
+ // switching focus before confirming composition choice
9044
+ // this also fixes the issue where some browsers e.g. iOS Chrome
9045
+ // fires "change" instead of "input" on autocomplete.
9046
+ el.addEventListener('change', onCompositionEnd);
9047
+ /* istanbul ignore if */
9048
+ if (isIE9) {
9049
+ el.vmodel = true;
9050
+ }
9051
+ }
9052
+ }
9053
+ },
9054
+ componentUpdated: function (el, binding, vnode) {
9055
+ if (vnode.tag === 'select') {
9056
+ setSelected(el, binding, vnode.context);
9057
+ // in case the options rendered by v-for have changed,
9058
+ // it's possible that the value is out-of-sync with the rendered options.
9059
+ // detect such cases and filter out values that no longer has a matching
9060
+ // option in the DOM.
9061
+ var prevOptions_1 = el._vOptions;
9062
+ var curOptions_1 = (el._vOptions = [].map.call(el.options, getValue));
9063
+ if (curOptions_1.some(function (o, i) { return !looseEqual(o, prevOptions_1[i]); })) {
9064
+ // trigger change event if
9065
+ // no matching option found for at least one value
9066
+ var needReset = el.multiple
9067
+ ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions_1); })
9068
+ : binding.value !== binding.oldValue &&
9069
+ hasNoMatchingOption(binding.value, curOptions_1);
9070
+ if (needReset) {
9071
+ trigger(el, 'change');
9072
+ }
9073
+ }
9074
+ }
9075
+ }
9076
+ };
9077
+ function setSelected(el, binding, vm) {
9078
+ actuallySetSelected(el, binding, vm);
9079
+ /* istanbul ignore if */
9080
+ if (isIE || isEdge) {
9081
+ setTimeout(function () {
9082
+ actuallySetSelected(el, binding, vm);
9083
+ }, 0);
9084
+ }
9085
+ }
9086
+ function actuallySetSelected(el, binding, vm) {
9087
+ var value = binding.value;
9088
+ var isMultiple = el.multiple;
9089
+ if (isMultiple && !Array.isArray(value)) {
9090
+ process.env.NODE_ENV !== 'production' &&
9091
+ warn$2("<select multiple v-model=\"".concat(binding.expression, "\"> ") +
9092
+ "expects an Array value for its binding, but got ".concat(Object.prototype.toString
9093
+ .call(value)
9094
+ .slice(8, -1)), vm);
9095
+ return;
9096
+ }
9097
+ var selected, option;
9098
+ for (var i = 0, l = el.options.length; i < l; i++) {
9099
+ option = el.options[i];
9100
+ if (isMultiple) {
9101
+ selected = looseIndexOf(value, getValue(option)) > -1;
9102
+ if (option.selected !== selected) {
9103
+ option.selected = selected;
9104
+ }
9105
+ }
9106
+ else {
9107
+ if (looseEqual(getValue(option), value)) {
9108
+ if (el.selectedIndex !== i) {
9109
+ el.selectedIndex = i;
9110
+ }
9111
+ return;
9112
+ }
9113
+ }
9114
+ }
9115
+ if (!isMultiple) {
9116
+ el.selectedIndex = -1;
9117
+ }
9118
+ }
9119
+ function hasNoMatchingOption(value, options) {
9120
+ return options.every(function (o) { return !looseEqual(o, value); });
9121
+ }
9122
+ function getValue(option) {
9123
+ return '_value' in option ? option._value : option.value;
9124
+ }
9125
+ function onCompositionStart(e) {
9126
+ e.target.composing = true;
9127
+ }
9128
+ function onCompositionEnd(e) {
9129
+ // prevent triggering an input event for no reason
9130
+ if (!e.target.composing)
9131
+ return;
9132
+ e.target.composing = false;
9133
+ trigger(e.target, 'input');
9134
+ }
9135
+ function trigger(el, type) {
9136
+ var e = document.createEvent('HTMLEvents');
9137
+ e.initEvent(type, true, true);
9138
+ el.dispatchEvent(e);
9139
+ }
9140
+
9141
+ // recursively search for possible transition defined inside the component root
9142
+ function locateNode(vnode) {
9143
+ // @ts-expect-error
9144
+ return vnode.componentInstance && (!vnode.data || !vnode.data.transition)
9145
+ ? locateNode(vnode.componentInstance._vnode)
9146
+ : vnode;
9147
+ }
9148
+ var show = {
9149
+ bind: function (el, _a, vnode) {
9150
+ var value = _a.value;
9151
+ vnode = locateNode(vnode);
9152
+ var transition = vnode.data && vnode.data.transition;
9153
+ var originalDisplay = (el.__vOriginalDisplay =
9154
+ el.style.display === 'none' ? '' : el.style.display);
9155
+ if (value && transition) {
9156
+ vnode.data.show = true;
9157
+ enter(vnode, function () {
9158
+ el.style.display = originalDisplay;
9159
+ });
9160
+ }
9161
+ else {
9162
+ el.style.display = value ? originalDisplay : 'none';
9163
+ }
9164
+ },
9165
+ update: function (el, _a, vnode) {
9166
+ var value = _a.value, oldValue = _a.oldValue;
9167
+ /* istanbul ignore if */
9168
+ if (!value === !oldValue)
9169
+ return;
9170
+ vnode = locateNode(vnode);
9171
+ var transition = vnode.data && vnode.data.transition;
9172
+ if (transition) {
9173
+ vnode.data.show = true;
9174
+ if (value) {
9175
+ enter(vnode, function () {
9176
+ el.style.display = el.__vOriginalDisplay;
9177
+ });
9178
+ }
9179
+ else {
9180
+ leave(vnode, function () {
9181
+ el.style.display = 'none';
9182
+ });
9183
+ }
9184
+ }
9185
+ else {
9186
+ el.style.display = value ? el.__vOriginalDisplay : 'none';
9187
+ }
9188
+ },
9189
+ unbind: function (el, binding, vnode, oldVnode, isDestroy) {
9190
+ if (!isDestroy) {
9191
+ el.style.display = el.__vOriginalDisplay;
9192
+ }
9193
+ }
9194
+ };
9195
 
9196
+ var platformDirectives = {
9197
+ model: directive,
9198
+ show: show
9199
+ };
9200
 
9201
+ // Provides transition support for a single element/component.
9202
+ var transitionProps = {
9203
+ name: String,
9204
+ appear: Boolean,
9205
+ css: Boolean,
9206
+ mode: String,
9207
+ type: String,
9208
+ enterClass: String,
9209
+ leaveClass: String,
9210
+ enterToClass: String,
9211
+ leaveToClass: String,
9212
+ enterActiveClass: String,
9213
+ leaveActiveClass: String,
9214
+ appearClass: String,
9215
+ appearActiveClass: String,
9216
+ appearToClass: String,
9217
+ duration: [Number, String, Object]
9218
+ };
9219
+ // in case the child is also an abstract component, e.g. <keep-alive>
9220
+ // we want to recursively retrieve the real component to be rendered
9221
+ function getRealChild(vnode) {
9222
+ var compOptions = vnode && vnode.componentOptions;
9223
+ if (compOptions && compOptions.Ctor.options.abstract) {
9224
+ return getRealChild(getFirstComponentChild(compOptions.children));
9225
+ }
9226
+ else {
9227
+ return vnode;
9228
+ }
9229
+ }
9230
+ function extractTransitionData(comp) {
9231
+ var data = {};
9232
+ var options = comp.$options;
9233
+ // props
9234
+ for (var key in options.propsData) {
9235
+ data[key] = comp[key];
9236
+ }
9237
+ // events.
9238
+ // extract listeners and pass them directly to the transition methods
9239
+ var listeners = options._parentListeners;
9240
+ for (var key in listeners) {
9241
+ data[camelize(key)] = listeners[key];
9242
+ }
9243
+ return data;
9244
+ }
9245
+ function placeholder(h, rawChild) {
9246
+ // @ts-expect-error
9247
+ if (/\d-keep-alive$/.test(rawChild.tag)) {
9248
+ return h('keep-alive', {
9249
+ props: rawChild.componentOptions.propsData
9250
+ });
9251
+ }
9252
+ }
9253
+ function hasParentTransition(vnode) {
9254
+ while ((vnode = vnode.parent)) {
9255
+ if (vnode.data.transition) {
9256
+ return true;
9257
+ }
9258
+ }
9259
+ }
9260
+ function isSameChild(child, oldChild) {
9261
+ return oldChild.key === child.key && oldChild.tag === child.tag;
9262
+ }
9263
+ var isNotTextNode = function (c) { return c.tag || isAsyncPlaceholder(c); };
9264
+ var isVShowDirective = function (d) { return d.name === 'show'; };
9265
+ var Transition = {
9266
+ name: 'transition',
9267
+ props: transitionProps,
9268
+ abstract: true,
9269
+ render: function (h) {
9270
+ var _this = this;
9271
+ var children = this.$slots.default;
9272
+ if (!children) {
9273
+ return;
9274
+ }
9275
+ // filter out text nodes (possible whitespaces)
9276
+ children = children.filter(isNotTextNode);
9277
+ /* istanbul ignore if */
9278
+ if (!children.length) {
9279
+ return;
9280
+ }
9281
+ // warn multiple elements
9282
+ if (process.env.NODE_ENV !== 'production' && children.length > 1) {
9283
+ warn$2('<transition> can only be used on a single element. Use ' +
9284
+ '<transition-group> for lists.', this.$parent);
9285
+ }
9286
+ var mode = this.mode;
9287
+ // warn invalid mode
9288
+ if (process.env.NODE_ENV !== 'production' && mode && mode !== 'in-out' && mode !== 'out-in') {
9289
+ warn$2('invalid <transition> mode: ' + mode, this.$parent);
9290
+ }
9291
+ var rawChild = children[0];
9292
+ // if this is a component root node and the component's
9293
+ // parent container node also has transition, skip.
9294
+ if (hasParentTransition(this.$vnode)) {
9295
+ return rawChild;
9296
+ }
9297
+ // apply transition data to child
9298
+ // use getRealChild() to ignore abstract components e.g. keep-alive
9299
+ var child = getRealChild(rawChild);
9300
+ /* istanbul ignore if */
9301
+ if (!child) {
9302
+ return rawChild;
9303
+ }
9304
+ if (this._leaving) {
9305
+ return placeholder(h, rawChild);
9306
+ }
9307
+ // ensure a key that is unique to the vnode type and to this transition
9308
+ // component instance. This key will be used to remove pending leaving nodes
9309
+ // during entering.
9310
+ var id = "__transition-".concat(this._uid, "-");
9311
+ child.key =
9312
+ child.key == null
9313
+ ? child.isComment
9314
+ ? id + 'comment'
9315
+ : id + child.tag
9316
+ : isPrimitive(child.key)
9317
+ ? String(child.key).indexOf(id) === 0
9318
+ ? child.key
9319
+ : id + child.key
9320
+ : child.key;
9321
+ var data = ((child.data || (child.data = {})).transition =
9322
+ extractTransitionData(this));
9323
+ var oldRawChild = this._vnode;
9324
+ var oldChild = getRealChild(oldRawChild);
9325
+ // mark v-show
9326
+ // so that the transition module can hand over the control to the directive
9327
+ if (child.data.directives && child.data.directives.some(isVShowDirective)) {
9328
+ child.data.show = true;
9329
+ }
9330
+ if (oldChild &&
9331
+ oldChild.data &&
9332
+ !isSameChild(child, oldChild) &&
9333
+ !isAsyncPlaceholder(oldChild) &&
9334
+ // #6687 component root is a comment node
9335
+ !(oldChild.componentInstance &&
9336
+ oldChild.componentInstance._vnode.isComment)) {
9337
+ // replace old child transition data with fresh one
9338
+ // important for dynamic transitions!
9339
+ var oldData = (oldChild.data.transition = extend({}, data));
9340
+ // handle transition mode
9341
+ if (mode === 'out-in') {
9342
+ // return placeholder node and queue update when leave finishes
9343
+ this._leaving = true;
9344
+ mergeVNodeHook(oldData, 'afterLeave', function () {
9345
+ _this._leaving = false;
9346
+ _this.$forceUpdate();
9347
+ });
9348
+ return placeholder(h, rawChild);
9349
+ }
9350
+ else if (mode === 'in-out') {
9351
+ if (isAsyncPlaceholder(child)) {
9352
+ return oldRawChild;
9353
+ }
9354
+ var delayedLeave_1;
9355
+ var performLeave = function () {
9356
+ delayedLeave_1();
9357
+ };
9358
+ mergeVNodeHook(data, 'afterEnter', performLeave);
9359
+ mergeVNodeHook(data, 'enterCancelled', performLeave);
9360
+ mergeVNodeHook(oldData, 'delayLeave', function (leave) {
9361
+ delayedLeave_1 = leave;
9362
+ });
9363
+ }
9364
+ }
9365
+ return rawChild;
9366
+ }
9367
+ };
9368
 
9369
+ // Provides transition support for list items.
9370
+ var props = extend({
9371
+ tag: String,
9372
+ moveClass: String
9373
+ }, transitionProps);
9374
+ delete props.mode;
9375
+ var TransitionGroup = {
9376
+ props: props,
9377
+ beforeMount: function () {
9378
+ var _this = this;
9379
+ var update = this._update;
9380
+ this._update = function (vnode, hydrating) {
9381
+ var restoreActiveInstance = setActiveInstance(_this);
9382
+ // force removing pass
9383
+ _this.__patch__(_this._vnode, _this.kept, false, // hydrating
9384
+ true // removeOnly (!important, avoids unnecessary moves)
9385
+ );
9386
+ _this._vnode = _this.kept;
9387
+ restoreActiveInstance();
9388
+ update.call(_this, vnode, hydrating);
9389
+ };
9390
+ },
9391
+ render: function (h) {
9392
+ var tag = this.tag || this.$vnode.data.tag || 'span';
9393
+ var map = Object.create(null);
9394
+ var prevChildren = (this.prevChildren = this.children);
9395
+ var rawChildren = this.$slots.default || [];
9396
+ var children = (this.children = []);
9397
+ var transitionData = extractTransitionData(this);
9398
+ for (var i = 0; i < rawChildren.length; i++) {
9399
+ var c = rawChildren[i];
9400
+ if (c.tag) {
9401
+ if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {
9402
+ children.push(c);
9403
+ map[c.key] = c;
9404
+ (c.data || (c.data = {})).transition = transitionData;
9405
+ }
9406
+ else if (process.env.NODE_ENV !== 'production') {
9407
+ var opts = c.componentOptions;
9408
+ var name_1 = opts
9409
+ ? getComponentName(opts.Ctor.options) || opts.tag || ''
9410
+ : c.tag;
9411
+ warn$2("<transition-group> children must be keyed: <".concat(name_1, ">"));
9412
+ }
9413
+ }
9414
+ }
9415
+ if (prevChildren) {
9416
+ var kept = [];
9417
+ var removed = [];
9418
+ for (var i = 0; i < prevChildren.length; i++) {
9419
+ var c = prevChildren[i];
9420
+ c.data.transition = transitionData;
9421
+ // @ts-expect-error .getBoundingClientRect is not typed in Node
9422
+ c.data.pos = c.elm.getBoundingClientRect();
9423
+ if (map[c.key]) {
9424
+ kept.push(c);
9425
+ }
9426
+ else {
9427
+ removed.push(c);
9428
+ }
9429
+ }
9430
+ this.kept = h(tag, null, kept);
9431
+ this.removed = removed;
9432
+ }
9433
+ return h(tag, null, children);
9434
+ },
9435
+ updated: function () {
9436
+ var children = this.prevChildren;
9437
+ var moveClass = this.moveClass || (this.name || 'v') + '-move';
9438
+ if (!children.length || !this.hasMove(children[0].elm, moveClass)) {
9439
+ return;
9440
+ }
9441
+ // we divide the work into three loops to avoid mixing DOM reads and writes
9442
+ // in each iteration - which helps prevent layout thrashing.
9443
+ children.forEach(callPendingCbs);
9444
+ children.forEach(recordPosition);
9445
+ children.forEach(applyTranslation);
9446
+ // force reflow to put everything in position
9447
+ // assign to this to avoid being removed in tree-shaking
9448
+ // $flow-disable-line
9449
+ this._reflow = document.body.offsetHeight;
9450
+ children.forEach(function (c) {
9451
+ if (c.data.moved) {
9452
+ var el_1 = c.elm;
9453
+ var s = el_1.style;
9454
+ addTransitionClass(el_1, moveClass);
9455
+ s.transform = s.WebkitTransform = s.transitionDuration = '';
9456
+ el_1.addEventListener(transitionEndEvent, (el_1._moveCb = function cb(e) {
9457
+ if (e && e.target !== el_1) {
9458
+ return;
9459
+ }
9460
+ if (!e || /transform$/.test(e.propertyName)) {
9461
+ el_1.removeEventListener(transitionEndEvent, cb);
9462
+ el_1._moveCb = null;
9463
+ removeTransitionClass(el_1, moveClass);
9464
+ }
9465
+ }));
9466
+ }
9467
+ });
9468
+ },
9469
+ methods: {
9470
+ hasMove: function (el, moveClass) {
9471
+ /* istanbul ignore if */
9472
+ if (!hasTransition) {
9473
+ return false;
9474
+ }
9475
+ /* istanbul ignore if */
9476
+ if (this._hasMove) {
9477
+ return this._hasMove;
9478
+ }
9479
+ // Detect whether an element with the move class applied has
9480
+ // CSS transitions. Since the element may be inside an entering
9481
+ // transition at this very moment, we make a clone of it and remove
9482
+ // all other transition classes applied to ensure only the move class
9483
+ // is applied.
9484
+ var clone = el.cloneNode();
9485
+ if (el._transitionClasses) {
9486
+ el._transitionClasses.forEach(function (cls) {
9487
+ removeClass(clone, cls);
9488
+ });
9489
+ }
9490
+ addClass(clone, moveClass);
9491
+ clone.style.display = 'none';
9492
+ this.$el.appendChild(clone);
9493
+ var info = getTransitionInfo(clone);
9494
+ this.$el.removeChild(clone);
9495
+ return (this._hasMove = info.hasTransform);
9496
+ }
9497
+ }
9498
+ };
9499
+ function callPendingCbs(c) {
9500
+ /* istanbul ignore if */
9501
+ if (c.elm._moveCb) {
9502
+ c.elm._moveCb();
9503
+ }
9504
+ /* istanbul ignore if */
9505
+ if (c.elm._enterCb) {
9506
+ c.elm._enterCb();
9507
+ }
9508
+ }
9509
+ function recordPosition(c) {
9510
+ c.data.newPos = c.elm.getBoundingClientRect();
9511
+ }
9512
+ function applyTranslation(c) {
9513
+ var oldPos = c.data.pos;
9514
+ var newPos = c.data.newPos;
9515
+ var dx = oldPos.left - newPos.left;
9516
+ var dy = oldPos.top - newPos.top;
9517
+ if (dx || dy) {
9518
+ c.data.moved = true;
9519
+ var s = c.elm.style;
9520
+ s.transform = s.WebkitTransform = "translate(".concat(dx, "px,").concat(dy, "px)");
9521
+ s.transitionDuration = '0s';
9522
+ }
9523
+ }
9524
+
9525
+ var platformComponents = {
9526
+ Transition: Transition,
9527
+ TransitionGroup: TransitionGroup
9528
+ };
9529
 
9530
+ // install platform specific utils
9531
+ Vue.config.mustUseProp = mustUseProp;
9532
+ Vue.config.isReservedTag = isReservedTag;
9533
+ Vue.config.isReservedAttr = isReservedAttr;
9534
+ Vue.config.getTagNamespace = getTagNamespace;
9535
+ Vue.config.isUnknownElement = isUnknownElement;
9536
+ // install platform runtime directives & components
9537
+ extend(Vue.options.directives, platformDirectives);
9538
+ extend(Vue.options.components, platformComponents);
9539
+ // install platform patch function
9540
+ Vue.prototype.__patch__ = inBrowser ? patch : noop;
9541
+ // public mount method
9542
+ Vue.prototype.$mount = function (el, hydrating) {
9543
+ el = el && inBrowser ? query(el) : undefined;
9544
+ return mountComponent(this, el, hydrating);
9545
+ };
9546
+ // devtools global hook
9547
+ /* istanbul ignore next */
9548
+ if (inBrowser) {
9549
+ setTimeout(function () {
9550
+ if (config.devtools) {
9551
+ if (devtools) {
9552
+ devtools.emit('init', Vue);
9553
+ }
9554
+ else if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') {
9555
+ // @ts-expect-error
9556
+ console[console.info ? 'info' : 'log']('Download the Vue Devtools extension for a better development experience:\n' +
9557
+ 'https://github.com/vuejs/vue-devtools');
9558
+ }
9559
+ }
9560
+ if (process.env.NODE_ENV !== 'production' &&
9561
+ process.env.NODE_ENV !== 'test' &&
9562
+ config.productionTip !== false &&
9563
+ typeof console !== 'undefined') {
9564
+ // @ts-expect-error
9565
+ console[console.info ? 'info' : 'log']("You are running Vue in development mode.\n" +
9566
+ "Make sure to turn on production mode when deploying for production.\n" +
9567
+ "See more tips at https://vuejs.org/guide/deployment.html");
9568
+ }
9569
+ }, 0);
9570
+ }
9571
+
9572
+ var defaultTagRE = /\{\{((?:.|\r?\n)+?)\}\}/g;
9573
+ var regexEscapeRE = /[-.*+?^${}()|[\]\/\\]/g;
9574
+ var buildRegex = cached(function (delimiters) {
9575
+ var open = delimiters[0].replace(regexEscapeRE, '\\$&');
9576
+ var close = delimiters[1].replace(regexEscapeRE, '\\$&');
9577
+ return new RegExp(open + '((?:.|\\n)+?)' + close, 'g');
9578
+ });
9579
+ function parseText(text, delimiters) {
9580
+ //@ts-expect-error
9581
+ var tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE;
9582
+ if (!tagRE.test(text)) {
9583
+ return;
9584
+ }
9585
+ var tokens = [];
9586
+ var rawTokens = [];
9587
+ var lastIndex = (tagRE.lastIndex = 0);
9588
+ var match, index, tokenValue;
9589
+ while ((match = tagRE.exec(text))) {
9590
+ index = match.index;
9591
+ // push text token
9592
+ if (index > lastIndex) {
9593
+ rawTokens.push((tokenValue = text.slice(lastIndex, index)));
9594
+ tokens.push(JSON.stringify(tokenValue));
9595
+ }
9596
+ // tag token
9597
+ var exp = parseFilters(match[1].trim());
9598
+ tokens.push("_s(".concat(exp, ")"));
9599
+ rawTokens.push({ '@binding': exp });
9600
+ lastIndex = index + match[0].length;
9601
+ }
9602
+ if (lastIndex < text.length) {
9603
+ rawTokens.push((tokenValue = text.slice(lastIndex)));
9604
+ tokens.push(JSON.stringify(tokenValue));
9605
+ }
9606
+ return {
9607
+ expression: tokens.join('+'),
9608
+ tokens: rawTokens
9609
+ };
9610
+ }
9611
+
9612
+ function transformNode$1(el, options) {
9613
+ var warn = options.warn || baseWarn;
9614
+ var staticClass = getAndRemoveAttr(el, 'class');
9615
+ if (process.env.NODE_ENV !== 'production' && staticClass) {
9616
+ var res = parseText(staticClass, options.delimiters);
9617
+ if (res) {
9618
+ warn("class=\"".concat(staticClass, "\": ") +
9619
+ 'Interpolation inside attributes has been removed. ' +
9620
+ 'Use v-bind or the colon shorthand instead. For example, ' +
9621
+ 'instead of <div class="{{ val }}">, use <div :class="val">.', el.rawAttrsMap['class']);
9622
+ }
9623
+ }
9624
+ if (staticClass) {
9625
+ el.staticClass = JSON.stringify(staticClass.replace(/\s+/g, ' ').trim());
9626
+ }
9627
+ var classBinding = getBindingAttr(el, 'class', false /* getStatic */);
9628
+ if (classBinding) {
9629
+ el.classBinding = classBinding;
9630
+ }
9631
+ }
9632
+ function genData$2(el) {
9633
+ var data = '';
9634
+ if (el.staticClass) {
9635
+ data += "staticClass:".concat(el.staticClass, ",");
9636
+ }
9637
+ if (el.classBinding) {
9638
+ data += "class:".concat(el.classBinding, ",");
9639
+ }
9640
+ return data;
9641
+ }
9642
+ var klass = {
9643
+ staticKeys: ['staticClass'],
9644
+ transformNode: transformNode$1,
9645
+ genData: genData$2
9646
+ };
9647
 
9648
+ function transformNode(el, options) {
9649
+ var warn = options.warn || baseWarn;
9650
+ var staticStyle = getAndRemoveAttr(el, 'style');
9651
+ if (staticStyle) {
9652
+ /* istanbul ignore if */
9653
+ if (process.env.NODE_ENV !== 'production') {
9654
+ var res = parseText(staticStyle, options.delimiters);
9655
+ if (res) {
9656
+ warn("style=\"".concat(staticStyle, "\": ") +
9657
+ 'Interpolation inside attributes has been removed. ' +
9658
+ 'Use v-bind or the colon shorthand instead. For example, ' +
9659
+ 'instead of <div style="{{ val }}">, use <div :style="val">.', el.rawAttrsMap['style']);
9660
+ }
9661
+ }
9662
+ el.staticStyle = JSON.stringify(parseStyleText(staticStyle));
9663
+ }
9664
+ var styleBinding = getBindingAttr(el, 'style', false /* getStatic */);
9665
+ if (styleBinding) {
9666
+ el.styleBinding = styleBinding;
9667
+ }
9668
+ }
9669
+ function genData$1(el) {
9670
+ var data = '';
9671
+ if (el.staticStyle) {
9672
+ data += "staticStyle:".concat(el.staticStyle, ",");
9673
+ }
9674
+ if (el.styleBinding) {
9675
+ data += "style:(".concat(el.styleBinding, "),");
9676
+ }
9677
+ return data;
9678
+ }
9679
+ var style = {
9680
+ staticKeys: ['staticStyle'],
9681
+ transformNode: transformNode,
9682
+ genData: genData$1
9683
+ };
9684
 
9685
+ var decoder;
9686
+ var he = {
9687
+ decode: function (html) {
9688
+ decoder = decoder || document.createElement('div');
9689
+ decoder.innerHTML = html;
9690
+ return decoder.textContent;
9691
+ }
9692
+ };
9693
 
9694
+ var isUnaryTag = makeMap('area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' +
9695
+ 'link,meta,param,source,track,wbr');
9696
+ // Elements that you can, intentionally, leave open
9697
+ // (and which close themselves)
9698
+ var canBeLeftOpenTag = makeMap('colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source');
9699
+ // HTML5 tags https://html.spec.whatwg.org/multipage/indices.html#elements-3
9700
+ // Phrasing Content https://html.spec.whatwg.org/multipage/dom.html#phrasing-content
9701
+ var isNonPhrasingTag = makeMap('address,article,aside,base,blockquote,body,caption,col,colgroup,dd,' +
9702
+ 'details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,' +
9703
+ 'h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,' +
9704
+ 'optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,' +
9705
+ 'title,tr,track');
9706
+
9707
+ /**
9708
+ * Not type-checking this file because it's mostly vendor code.
9709
+ */
9710
+ // Regular Expressions for parsing tags and attributes
9711
+ var attribute = /^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/;
9712
+ var dynamicArgAttribute = /^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+?\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/;
9713
+ var ncname = "[a-zA-Z_][\\-\\.0-9_a-zA-Z".concat(unicodeRegExp.source, "]*");
9714
+ var qnameCapture = "((?:".concat(ncname, "\\:)?").concat(ncname, ")");
9715
+ var startTagOpen = new RegExp("^<".concat(qnameCapture));
9716
+ var startTagClose = /^\s*(\/?)>/;
9717
+ var endTag = new RegExp("^<\\/".concat(qnameCapture, "[^>]*>"));
9718
+ var doctype = /^<!DOCTYPE [^>]+>/i;
9719
+ // #7298: escape - to avoid being passed as HTML comment when inlined in page
9720
+ var comment = /^<!\--/;
9721
+ var conditionalComment = /^<!\[/;
9722
+ // Special Elements (can contain anything)
9723
+ var isPlainTextElement = makeMap('script,style,textarea', true);
9724
+ var reCache = {};
9725
+ var decodingMap = {
9726
+ '&lt;': '<',
9727
+ '&gt;': '>',
9728
+ '&quot;': '"',
9729
+ '&amp;': '&',
9730
+ '&#10;': '\n',
9731
+ '&#9;': '\t',
9732
+ '&#39;': "'"
9733
+ };
9734
+ var encodedAttr = /&(?:lt|gt|quot|amp|#39);/g;
9735
+ var encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#39|#10|#9);/g;
9736
+ // #5992
9737
+ var isIgnoreNewlineTag = makeMap('pre,textarea', true);
9738
+ var shouldIgnoreFirstNewline = function (tag, html) {
9739
+ return tag && isIgnoreNewlineTag(tag) && html[0] === '\n';
9740
+ };
9741
+ function decodeAttr(value, shouldDecodeNewlines) {
9742
+ var re = shouldDecodeNewlines ? encodedAttrWithNewLines : encodedAttr;
9743
+ return value.replace(re, function (match) { return decodingMap[match]; });
9744
+ }
9745
+ function parseHTML(html, options) {
9746
+ var stack = [];
9747
+ var expectHTML = options.expectHTML;
9748
+ var isUnaryTag = options.isUnaryTag || no;
9749
+ var canBeLeftOpenTag = options.canBeLeftOpenTag || no;
9750
+ var index = 0;
9751
+ var last, lastTag;
9752
+ var _loop_1 = function () {
9753
+ last = html;
9754
+ // Make sure we're not in a plaintext content element like script/style
9755
+ if (!lastTag || !isPlainTextElement(lastTag)) {
9756
+ var textEnd = html.indexOf('<');
9757
+ if (textEnd === 0) {
9758
+ // Comment:
9759
+ if (comment.test(html)) {
9760
+ var commentEnd = html.indexOf('-->');
9761
+ if (commentEnd >= 0) {
9762
+ if (options.shouldKeepComment && options.comment) {
9763
+ options.comment(html.substring(4, commentEnd), index, index + commentEnd + 3);
9764
+ }
9765
+ advance(commentEnd + 3);
9766
+ return "continue";
9767
+ }
9768
+ }
9769
+ // http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment
9770
+ if (conditionalComment.test(html)) {
9771
+ var conditionalEnd = html.indexOf(']>');
9772
+ if (conditionalEnd >= 0) {
9773
+ advance(conditionalEnd + 2);
9774
+ return "continue";
9775
+ }
9776
+ }
9777
+ // Doctype:
9778
+ var doctypeMatch = html.match(doctype);
9779
+ if (doctypeMatch) {
9780
+ advance(doctypeMatch[0].length);
9781
+ return "continue";
9782
+ }
9783
+ // End tag:
9784
+ var endTagMatch = html.match(endTag);
9785
+ if (endTagMatch) {
9786
+ var curIndex = index;
9787
+ advance(endTagMatch[0].length);
9788
+ parseEndTag(endTagMatch[1], curIndex, index);
9789
+ return "continue";
9790
+ }
9791
+ // Start tag:
9792
+ var startTagMatch = parseStartTag();
9793
+ if (startTagMatch) {
9794
+ handleStartTag(startTagMatch);
9795
+ if (shouldIgnoreFirstNewline(startTagMatch.tagName, html)) {
9796
+ advance(1);
9797
+ }
9798
+ return "continue";
9799
+ }
9800
+ }
9801
+ var text = void 0, rest = void 0, next = void 0;
9802
+ if (textEnd >= 0) {
9803
+ rest = html.slice(textEnd);
9804
+ while (!endTag.test(rest) &&
9805
+ !startTagOpen.test(rest) &&
9806
+ !comment.test(rest) &&
9807
+ !conditionalComment.test(rest)) {
9808
+ // < in plain text, be forgiving and treat it as text
9809
+ next = rest.indexOf('<', 1);
9810
+ if (next < 0)
9811
+ break;
9812
+ textEnd += next;
9813
+ rest = html.slice(textEnd);
9814
+ }
9815
+ text = html.substring(0, textEnd);
9816
+ }
9817
+ if (textEnd < 0) {
9818
+ text = html;
9819
+ }
9820
+ if (text) {
9821
+ advance(text.length);
9822
+ }
9823
+ if (options.chars && text) {
9824
+ options.chars(text, index - text.length, index);
9825
+ }
9826
+ }
9827
+ else {
9828
+ var endTagLength_1 = 0;
9829
+ var stackedTag_1 = lastTag.toLowerCase();
9830
+ var reStackedTag = reCache[stackedTag_1] ||
9831
+ (reCache[stackedTag_1] = new RegExp('([\\s\\S]*?)(</' + stackedTag_1 + '[^>]*>)', 'i'));
9832
+ var rest = html.replace(reStackedTag, function (all, text, endTag) {
9833
+ endTagLength_1 = endTag.length;
9834
+ if (!isPlainTextElement(stackedTag_1) && stackedTag_1 !== 'noscript') {
9835
+ text = text
9836
+ .replace(/<!\--([\s\S]*?)-->/g, '$1') // #7298
9837
+ .replace(/<!\[CDATA\[([\s\S]*?)]]>/g, '$1');
9838
+ }
9839
+ if (shouldIgnoreFirstNewline(stackedTag_1, text)) {
9840
+ text = text.slice(1);
9841
+ }
9842
+ if (options.chars) {
9843
+ options.chars(text);
9844
+ }
9845
+ return '';
9846
+ });
9847
+ index += html.length - rest.length;
9848
+ html = rest;
9849
+ parseEndTag(stackedTag_1, index - endTagLength_1, index);
9850
+ }
9851
+ if (html === last) {
9852
+ options.chars && options.chars(html);
9853
+ if (process.env.NODE_ENV !== 'production' && !stack.length && options.warn) {
9854
+ options.warn("Mal-formatted tag at end of template: \"".concat(html, "\""), {
9855
+ start: index + html.length
9856
+ });
9857
+ }
9858
+ return "break";
9859
+ }
9860
+ };
9861
+ while (html) {
9862
+ var state_1 = _loop_1();
9863
+ if (state_1 === "break")
9864
+ break;
9865
+ }
9866
+ // Clean up any remaining tags
9867
+ parseEndTag();
9868
+ function advance(n) {
9869
+ index += n;
9870
+ html = html.substring(n);
9871
+ }
9872
+ function parseStartTag() {
9873
+ var start = html.match(startTagOpen);
9874
+ if (start) {
9875
+ var match = {
9876
+ tagName: start[1],
9877
+ attrs: [],
9878
+ start: index
9879
+ };
9880
+ advance(start[0].length);
9881
+ var end = void 0, attr = void 0;
9882
+ while (!(end = html.match(startTagClose)) &&
9883
+ (attr = html.match(dynamicArgAttribute) || html.match(attribute))) {
9884
+ attr.start = index;
9885
+ advance(attr[0].length);
9886
+ attr.end = index;
9887
+ match.attrs.push(attr);
9888
+ }
9889
+ if (end) {
9890
+ match.unarySlash = end[1];
9891
+ advance(end[0].length);
9892
+ match.end = index;
9893
+ return match;
9894
+ }
9895
+ }
9896
+ }
9897
+ function handleStartTag(match) {
9898
+ var tagName = match.tagName;
9899
+ var unarySlash = match.unarySlash;
9900
+ if (expectHTML) {
9901
+ if (lastTag === 'p' && isNonPhrasingTag(tagName)) {
9902
+ parseEndTag(lastTag);
9903
+ }
9904
+ if (canBeLeftOpenTag(tagName) && lastTag === tagName) {
9905
+ parseEndTag(tagName);
9906
+ }
9907
+ }
9908
+ var unary = isUnaryTag(tagName) || !!unarySlash;
9909
+ var l = match.attrs.length;
9910
+ var attrs = new Array(l);
9911
+ for (var i = 0; i < l; i++) {
9912
+ var args = match.attrs[i];
9913
+ var value = args[3] || args[4] || args[5] || '';
9914
+ var shouldDecodeNewlines = tagName === 'a' && args[1] === 'href'
9915
+ ? options.shouldDecodeNewlinesForHref
9916
+ : options.shouldDecodeNewlines;
9917
+ attrs[i] = {
9918
+ name: args[1],
9919
+ value: decodeAttr(value, shouldDecodeNewlines)
9920
+ };
9921
+ if (process.env.NODE_ENV !== 'production' && options.outputSourceRange) {
9922
+ attrs[i].start = args.start + args[0].match(/^\s*/).length;
9923
+ attrs[i].end = args.end;
9924
+ }
9925
+ }
9926
+ if (!unary) {
9927
+ stack.push({
9928
+ tag: tagName,
9929
+ lowerCasedTag: tagName.toLowerCase(),
9930
+ attrs: attrs,
9931
+ start: match.start,
9932
+ end: match.end
9933
+ });
9934
+ lastTag = tagName;
9935
+ }
9936
+ if (options.start) {
9937
+ options.start(tagName, attrs, unary, match.start, match.end);
9938
+ }
9939
+ }
9940
+ function parseEndTag(tagName, start, end) {
9941
+ var pos, lowerCasedTagName;
9942
+ if (start == null)
9943
+ start = index;
9944
+ if (end == null)
9945
+ end = index;
9946
+ // Find the closest opened tag of the same type
9947
+ if (tagName) {
9948
+ lowerCasedTagName = tagName.toLowerCase();
9949
+ for (pos = stack.length - 1; pos >= 0; pos--) {
9950
+ if (stack[pos].lowerCasedTag === lowerCasedTagName) {
9951
+ break;
9952
+ }
9953
+ }
9954
+ }
9955
+ else {
9956
+ // If no tag name is provided, clean shop
9957
+ pos = 0;
9958
+ }
9959
+ if (pos >= 0) {
9960
+ // Close all the open elements, up the stack
9961
+ for (var i = stack.length - 1; i >= pos; i--) {
9962
+ if (process.env.NODE_ENV !== 'production' && (i > pos || !tagName) && options.warn) {
9963
+ options.warn("tag <".concat(stack[i].tag, "> has no matching end tag."), {
9964
+ start: stack[i].start,
9965
+ end: stack[i].end
9966
+ });
9967
+ }
9968
+ if (options.end) {
9969
+ options.end(stack[i].tag, start, end);
9970
+ }
9971
+ }
9972
+ // Remove the open elements from the stack
9973
+ stack.length = pos;
9974
+ lastTag = pos && stack[pos - 1].tag;
9975
+ }
9976
+ else if (lowerCasedTagName === 'br') {
9977
+ if (options.start) {
9978
+ options.start(tagName, [], true, start, end);
9979
+ }
9980
+ }
9981
+ else if (lowerCasedTagName === 'p') {
9982
+ if (options.start) {
9983
+ options.start(tagName, [], false, start, end);
9984
+ }
9985
+ if (options.end) {
9986
+ options.end(tagName, start, end);
9987
+ }
9988
+ }
9989
+ }
9990
+ }
9991
+
9992
+ var onRE = /^@|^v-on:/;
9993
+ var dirRE = /^v-|^@|^:|^#/;
9994
+ var forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/;
9995
+ var forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/;
9996
+ var stripParensRE = /^\(|\)$/g;
9997
+ var dynamicArgRE = /^\[.*\]$/;
9998
+ var argRE = /:(.*)$/;
9999
+ var bindRE = /^:|^\.|^v-bind:/;
10000
+ var modifierRE = /\.[^.\]]+(?=[^\]]*$)/g;
10001
+ var slotRE = /^v-slot(:|$)|^#/;
10002
+ var lineBreakRE = /[\r\n]/;
10003
+ var whitespaceRE = /[ \f\t\r\n]+/g;
10004
+ var invalidAttributeRE = /[\s"'<>\/=]/;
10005
+ var decodeHTMLCached = cached(he.decode);
10006
+ var emptySlotScopeToken = "_empty_";
10007
+ // configurable state
10008
+ var warn;
10009
+ var delimiters;
10010
+ var transforms;
10011
+ var preTransforms;
10012
+ var postTransforms;
10013
+ var platformIsPreTag;
10014
+ var platformMustUseProp;
10015
+ var platformGetTagNamespace;
10016
+ var maybeComponent;
10017
+ function createASTElement(tag, attrs, parent) {
10018
+ return {
10019
+ type: 1,
10020
+ tag: tag,
10021
+ attrsList: attrs,
10022
+ attrsMap: makeAttrsMap(attrs),
10023
+ rawAttrsMap: {},
10024
+ parent: parent,
10025
+ children: []
10026
+ };
10027
+ }
10028
+ /**
10029
+ * Convert HTML string to AST.
10030
+ */
10031
+ function parse(template, options) {
10032
+ warn = options.warn || baseWarn;
10033
+ platformIsPreTag = options.isPreTag || no;
10034
+ platformMustUseProp = options.mustUseProp || no;
10035
+ platformGetTagNamespace = options.getTagNamespace || no;
10036
+ var isReservedTag = options.isReservedTag || no;
10037
+ maybeComponent = function (el) {
10038
+ return !!(el.component ||
10039
+ el.attrsMap[':is'] ||
10040
+ el.attrsMap['v-bind:is'] ||
10041
+ !(el.attrsMap.is ? isReservedTag(el.attrsMap.is) : isReservedTag(el.tag)));
10042
+ };
10043
+ transforms = pluckModuleFunction(options.modules, 'transformNode');
10044
+ preTransforms = pluckModuleFunction(options.modules, 'preTransformNode');
10045
+ postTransforms = pluckModuleFunction(options.modules, 'postTransformNode');
10046
+ delimiters = options.delimiters;
10047
+ var stack = [];
10048
+ var preserveWhitespace = options.preserveWhitespace !== false;
10049
+ var whitespaceOption = options.whitespace;
10050
+ var root;
10051
+ var currentParent;
10052
+ var inVPre = false;
10053
+ var inPre = false;
10054
+ var warned = false;
10055
+ function warnOnce(msg, range) {
10056
+ if (!warned) {
10057
+ warned = true;
10058
+ warn(msg, range);
10059
+ }
10060
+ }
10061
+ function closeElement(element) {
10062
+ trimEndingWhitespace(element);
10063
+ if (!inVPre && !element.processed) {
10064
+ element = processElement(element, options);
10065
+ }
10066
+ // tree management
10067
+ if (!stack.length && element !== root) {
10068
+ // allow root elements with v-if, v-else-if and v-else
10069
+ if (root.if && (element.elseif || element.else)) {
10070
+ if (process.env.NODE_ENV !== 'production') {
10071
+ checkRootConstraints(element);
10072
+ }
10073
+ addIfCondition(root, {
10074
+ exp: element.elseif,
10075
+ block: element
10076
+ });
10077
+ }
10078
+ else if (process.env.NODE_ENV !== 'production') {
10079
+ warnOnce("Component template should contain exactly one root element. " +
10080
+ "If you are using v-if on multiple elements, " +
10081
+ "use v-else-if to chain them instead.", { start: element.start });
10082
+ }
10083
+ }
10084
+ if (currentParent && !element.forbidden) {
10085
+ if (element.elseif || element.else) {
10086
+ processIfConditions(element, currentParent);
10087
+ }
10088
+ else {
10089
+ if (element.slotScope) {
10090
+ // scoped slot
10091
+ // keep it in the children list so that v-else(-if) conditions can
10092
+ // find it as the prev node.
10093
+ var name_1 = element.slotTarget || '"default"';
10094
+ (currentParent.scopedSlots || (currentParent.scopedSlots = {}))[name_1] = element;
10095
+ }
10096
+ currentParent.children.push(element);
10097
+ element.parent = currentParent;
10098
+ }
10099
+ }
10100
+ // final children cleanup
10101
+ // filter out scoped slots
10102
+ element.children = element.children.filter(function (c) { return !c.slotScope; });
10103
+ // remove trailing whitespace node again
10104
+ trimEndingWhitespace(element);
10105
+ // check pre state
10106
+ if (element.pre) {
10107
+ inVPre = false;
10108
+ }
10109
+ if (platformIsPreTag(element.tag)) {
10110
+ inPre = false;
10111
+ }
10112
+ // apply post-transforms
10113
+ for (var i = 0; i < postTransforms.length; i++) {
10114
+ postTransforms[i](element, options);
10115
+ }
10116
+ }
10117
+ function trimEndingWhitespace(el) {
10118
+ // remove trailing whitespace node
10119
+ if (!inPre) {
10120
+ var lastNode = void 0;
10121
+ while ((lastNode = el.children[el.children.length - 1]) &&
10122
+ lastNode.type === 3 &&
10123
+ lastNode.text === ' ') {
10124
+ el.children.pop();
10125
+ }
10126
+ }
10127
+ }
10128
+ function checkRootConstraints(el) {
10129
+ if (el.tag === 'slot' || el.tag === 'template') {
10130
+ warnOnce("Cannot use <".concat(el.tag, "> as component root element because it may ") +
10131
+ 'contain multiple nodes.', { start: el.start });
10132
+ }
10133
+ if (el.attrsMap.hasOwnProperty('v-for')) {
10134
+ warnOnce('Cannot use v-for on stateful component root element because ' +
10135
+ 'it renders multiple elements.', el.rawAttrsMap['v-for']);
10136
+ }
10137
+ }
10138
+ parseHTML(template, {
10139
+ warn: warn,
10140
+ expectHTML: options.expectHTML,
10141
+ isUnaryTag: options.isUnaryTag,
10142
+ canBeLeftOpenTag: options.canBeLeftOpenTag,
10143
+ shouldDecodeNewlines: options.shouldDecodeNewlines,
10144
+ shouldDecodeNewlinesForHref: options.shouldDecodeNewlinesForHref,
10145
+ shouldKeepComment: options.comments,
10146
+ outputSourceRange: options.outputSourceRange,
10147
+ start: function (tag, attrs, unary, start, end) {
10148
+ // check namespace.
10149
+ // inherit parent ns if there is one
10150
+ var ns = (currentParent && currentParent.ns) || platformGetTagNamespace(tag);
10151
+ // handle IE svg bug
10152
+ /* istanbul ignore if */
10153
+ if (isIE && ns === 'svg') {
10154
+ attrs = guardIESVGBug(attrs);
10155
+ }
10156
+ var element = createASTElement(tag, attrs, currentParent);
10157
+ if (ns) {
10158
+ element.ns = ns;
10159
+ }
10160
+ if (process.env.NODE_ENV !== 'production') {
10161
+ if (options.outputSourceRange) {
10162
+ element.start = start;
10163
+ element.end = end;
10164
+ element.rawAttrsMap = element.attrsList.reduce(function (cumulated, attr) {
10165
+ cumulated[attr.name] = attr;
10166
+ return cumulated;
10167
+ }, {});
10168
+ }
10169
+ attrs.forEach(function (attr) {
10170
+ if (invalidAttributeRE.test(attr.name)) {
10171
+ warn("Invalid dynamic argument expression: attribute names cannot contain " +
10172
+ "spaces, quotes, <, >, / or =.", options.outputSourceRange
10173
+ ? {
10174
+ start: attr.start + attr.name.indexOf("["),
10175
+ end: attr.start + attr.name.length
10176
+ }
10177
+ : undefined);
10178
+ }
10179
+ });
10180
+ }
10181
+ if (isForbiddenTag(element) && !isServerRendering()) {
10182
+ element.forbidden = true;
10183
+ process.env.NODE_ENV !== 'production' &&
10184
+ warn('Templates should only be responsible for mapping the state to the ' +
10185
+ 'UI. Avoid placing tags with side-effects in your templates, such as ' +
10186
+ "<".concat(tag, ">") +
10187
+ ', as they will not be parsed.', { start: element.start });
10188
+ }
10189
+ // apply pre-transforms
10190
+ for (var i = 0; i < preTransforms.length; i++) {
10191
+ element = preTransforms[i](element, options) || element;
10192
+ }
10193
+ if (!inVPre) {
10194
+ processPre(element);
10195
+ if (element.pre) {
10196
+ inVPre = true;
10197
+ }
10198
+ }
10199
+ if (platformIsPreTag(element.tag)) {
10200
+ inPre = true;
10201
+ }
10202
+ if (inVPre) {
10203
+ processRawAttrs(element);
10204
+ }
10205
+ else if (!element.processed) {
10206
+ // structural directives
10207
+ processFor(element);
10208
+ processIf(element);
10209
+ processOnce(element);
10210
+ }
10211
+ if (!root) {
10212
+ root = element;
10213
+ if (process.env.NODE_ENV !== 'production') {
10214
+ checkRootConstraints(root);
10215
+ }
10216
+ }
10217
+ if (!unary) {
10218
+ currentParent = element;
10219
+ stack.push(element);
10220
+ }
10221
+ else {
10222
+ closeElement(element);
10223
+ }
10224
+ },
10225
+ end: function (tag, start, end) {
10226
+ var element = stack[stack.length - 1];
10227
+ // pop stack
10228
+ stack.length -= 1;
10229
+ currentParent = stack[stack.length - 1];
10230
+ if (process.env.NODE_ENV !== 'production' && options.outputSourceRange) {
10231
+ element.end = end;
10232
+ }
10233
+ closeElement(element);
10234
+ },
10235
+ chars: function (text, start, end) {
10236
+ if (!currentParent) {
10237
+ if (process.env.NODE_ENV !== 'production') {
10238
+ if (text === template) {
10239
+ warnOnce('Component template requires a root element, rather than just text.', { start: start });
10240
+ }
10241
+ else if ((text = text.trim())) {
10242
+ warnOnce("text \"".concat(text, "\" outside root element will be ignored."), {
10243
+ start: start
10244
+ });
10245
+ }
10246
+ }
10247
+ return;
10248
+ }
10249
+ // IE textarea placeholder bug
10250
+ /* istanbul ignore if */
10251
+ if (isIE &&
10252
+ currentParent.tag === 'textarea' &&
10253
+ currentParent.attrsMap.placeholder === text) {
10254
+ return;
10255
+ }
10256
+ var children = currentParent.children;
10257
+ if (inPre || text.trim()) {
10258
+ text = isTextTag(currentParent)
10259
+ ? text
10260
+ : decodeHTMLCached(text);
10261
+ }
10262
+ else if (!children.length) {
10263
+ // remove the whitespace-only node right after an opening tag
10264
+ text = '';
10265
+ }
10266
+ else if (whitespaceOption) {
10267
+ if (whitespaceOption === 'condense') {
10268
+ // in condense mode, remove the whitespace node if it contains
10269
+ // line break, otherwise condense to a single space
10270
+ text = lineBreakRE.test(text) ? '' : ' ';
10271
+ }
10272
+ else {
10273
+ text = ' ';
10274
+ }
10275
+ }
10276
+ else {
10277
+ text = preserveWhitespace ? ' ' : '';
10278
+ }
10279
+ if (text) {
10280
+ if (!inPre && whitespaceOption === 'condense') {
10281
+ // condense consecutive whitespaces into single space
10282
+ text = text.replace(whitespaceRE, ' ');
10283
+ }
10284
+ var res = void 0;
10285
+ var child = void 0;
10286
+ if (!inVPre && text !== ' ' && (res = parseText(text, delimiters))) {
10287
+ child = {
10288
+ type: 2,
10289
+ expression: res.expression,
10290
+ tokens: res.tokens,
10291
+ text: text
10292
+ };
10293
+ }
10294
+ else if (text !== ' ' ||
10295
+ !children.length ||
10296
+ children[children.length - 1].text !== ' ') {
10297
+ child = {
10298
+ type: 3,
10299
+ text: text
10300
+ };
10301
+ }
10302
+ if (child) {
10303
+ if (process.env.NODE_ENV !== 'production' && options.outputSourceRange) {
10304
+ child.start = start;
10305
+ child.end = end;
10306
+ }
10307
+ children.push(child);
10308
+ }
10309
+ }
10310
+ },
10311
+ comment: function (text, start, end) {
10312
+ // adding anything as a sibling to the root node is forbidden
10313
+ // comments should still be allowed, but ignored
10314
+ if (currentParent) {
10315
+ var child = {
10316
+ type: 3,
10317
+ text: text,
10318
+ isComment: true
10319
+ };
10320
+ if (process.env.NODE_ENV !== 'production' && options.outputSourceRange) {
10321
+ child.start = start;
10322
+ child.end = end;
10323
+ }
10324
+ currentParent.children.push(child);
10325
+ }
10326
+ }
10327
+ });
10328
+ return root;
10329
+ }
10330
+ function processPre(el) {
10331
+ if (getAndRemoveAttr(el, 'v-pre') != null) {
10332
+ el.pre = true;
10333
+ }
10334
+ }
10335
+ function processRawAttrs(el) {
10336
+ var list = el.attrsList;
10337
+ var len = list.length;
10338
+ if (len) {
10339
+ var attrs = (el.attrs = new Array(len));
10340
+ for (var i = 0; i < len; i++) {
10341
+ attrs[i] = {
10342
+ name: list[i].name,
10343
+ value: JSON.stringify(list[i].value)
10344
+ };
10345
+ if (list[i].start != null) {
10346
+ attrs[i].start = list[i].start;
10347
+ attrs[i].end = list[i].end;
10348
+ }
10349
+ }
10350
+ }
10351
+ else if (!el.pre) {
10352
+ // non root node in pre blocks with no attributes
10353
+ el.plain = true;
10354
+ }
10355
+ }
10356
+ function processElement(element, options) {
10357
+ processKey(element);
10358
+ // determine whether this is a plain element after
10359
+ // removing structural attributes
10360
+ element.plain =
10361
+ !element.key && !element.scopedSlots && !element.attrsList.length;
10362
+ processRef(element);
10363
+ processSlotContent(element);
10364
+ processSlotOutlet(element);
10365
+ processComponent(element);
10366
+ for (var i = 0; i < transforms.length; i++) {
10367
+ element = transforms[i](element, options) || element;
10368
+ }
10369
+ processAttrs(element);
10370
+ return element;
10371
+ }
10372
+ function processKey(el) {
10373
+ var exp = getBindingAttr(el, 'key');
10374
+ if (exp) {
10375
+ if (process.env.NODE_ENV !== 'production') {
10376
+ if (el.tag === 'template') {
10377
+ warn("<template> cannot be keyed. Place the key on real elements instead.", getRawBindingAttr(el, 'key'));
10378
+ }
10379
+ if (el.for) {
10380
+ var iterator = el.iterator2 || el.iterator1;
10381
+ var parent_1 = el.parent;
10382
+ if (iterator &&
10383
+ iterator === exp &&
10384
+ parent_1 &&
10385
+ parent_1.tag === 'transition-group') {
10386
+ warn("Do not use v-for index as key on <transition-group> children, " +
10387
+ "this is the same as not using keys.", getRawBindingAttr(el, 'key'), true /* tip */);
10388
+ }
10389
+ }
10390
+ }
10391
+ el.key = exp;
10392
+ }
10393
+ }
10394
+ function processRef(el) {
10395
+ var ref = getBindingAttr(el, 'ref');
10396
+ if (ref) {
10397
+ el.ref = ref;
10398
+ el.refInFor = checkInFor(el);
10399
+ }
10400
+ }
10401
+ function processFor(el) {
10402
+ var exp;
10403
+ if ((exp = getAndRemoveAttr(el, 'v-for'))) {
10404
+ var res = parseFor(exp);
10405
+ if (res) {
10406
+ extend(el, res);
10407
+ }
10408
+ else if (process.env.NODE_ENV !== 'production') {
10409
+ warn("Invalid v-for expression: ".concat(exp), el.rawAttrsMap['v-for']);
10410
+ }
10411
+ }
10412
+ }
10413
+ function parseFor(exp) {
10414
+ var inMatch = exp.match(forAliasRE);
10415
+ if (!inMatch)
10416
+ return;
10417
+ var res = {};
10418
+ res.for = inMatch[2].trim();
10419
+ var alias = inMatch[1].trim().replace(stripParensRE, '');
10420
+ var iteratorMatch = alias.match(forIteratorRE);
10421
+ if (iteratorMatch) {
10422
+ res.alias = alias.replace(forIteratorRE, '').trim();
10423
+ res.iterator1 = iteratorMatch[1].trim();
10424
+ if (iteratorMatch[2]) {
10425
+ res.iterator2 = iteratorMatch[2].trim();
10426
+ }
10427
+ }
10428
+ else {
10429
+ res.alias = alias;
10430
+ }
10431
+ return res;
10432
+ }
10433
+ function processIf(el) {
10434
+ var exp = getAndRemoveAttr(el, 'v-if');
10435
+ if (exp) {
10436
+ el.if = exp;
10437
+ addIfCondition(el, {
10438
+ exp: exp,
10439
+ block: el
10440
+ });
10441
+ }
10442
+ else {
10443
+ if (getAndRemoveAttr(el, 'v-else') != null) {
10444
+ el.else = true;
10445
+ }
10446
+ var elseif = getAndRemoveAttr(el, 'v-else-if');
10447
+ if (elseif) {
10448
+ el.elseif = elseif;
10449
+ }
10450
+ }
10451
+ }
10452
+ function processIfConditions(el, parent) {
10453
+ var prev = findPrevElement(parent.children);
10454
+ if (prev && prev.if) {
10455
+ addIfCondition(prev, {
10456
+ exp: el.elseif,
10457
+ block: el
10458
+ });
10459
+ }
10460
+ else if (process.env.NODE_ENV !== 'production') {
10461
+ warn("v-".concat(el.elseif ? 'else-if="' + el.elseif + '"' : 'else', " ") +
10462
+ "used on element <".concat(el.tag, "> without corresponding v-if."), el.rawAttrsMap[el.elseif ? 'v-else-if' : 'v-else']);
10463
+ }
10464
+ }
10465
+ function findPrevElement(children) {
10466
+ var i = children.length;
10467
+ while (i--) {
10468
+ if (children[i].type === 1) {
10469
+ return children[i];
10470
+ }
10471
+ else {
10472
+ if (process.env.NODE_ENV !== 'production' && children[i].text !== ' ') {
10473
+ warn("text \"".concat(children[i].text.trim(), "\" between v-if and v-else(-if) ") +
10474
+ "will be ignored.", children[i]);
10475
+ }
10476
+ children.pop();
10477
+ }
10478
+ }
10479
+ }
10480
+ function addIfCondition(el, condition) {
10481
+ if (!el.ifConditions) {
10482
+ el.ifConditions = [];
10483
+ }
10484
+ el.ifConditions.push(condition);
10485
+ }
10486
+ function processOnce(el) {
10487
+ var once = getAndRemoveAttr(el, 'v-once');
10488
+ if (once != null) {
10489
+ el.once = true;
10490
+ }
10491
+ }
10492
+ // handle content being passed to a component as slot,
10493
+ // e.g. <template slot="xxx">, <div slot-scope="xxx">
10494
+ function processSlotContent(el) {
10495
+ var slotScope;
10496
+ if (el.tag === 'template') {
10497
+ slotScope = getAndRemoveAttr(el, 'scope');
10498
+ /* istanbul ignore if */
10499
+ if (process.env.NODE_ENV !== 'production' && slotScope) {
10500
+ warn("the \"scope\" attribute for scoped slots have been deprecated and " +
10501
+ "replaced by \"slot-scope\" since 2.5. The new \"slot-scope\" attribute " +
10502
+ "can also be used on plain elements in addition to <template> to " +
10503
+ "denote scoped slots.", el.rawAttrsMap['scope'], true);
10504
+ }
10505
+ el.slotScope = slotScope || getAndRemoveAttr(el, 'slot-scope');
10506
+ }
10507
+ else if ((slotScope = getAndRemoveAttr(el, 'slot-scope'))) {
10508
+ /* istanbul ignore if */
10509
+ if (process.env.NODE_ENV !== 'production' && el.attrsMap['v-for']) {
10510
+ warn("Ambiguous combined usage of slot-scope and v-for on <".concat(el.tag, "> ") +
10511
+ "(v-for takes higher priority). Use a wrapper <template> for the " +
10512
+ "scoped slot to make it clearer.", el.rawAttrsMap['slot-scope'], true);
10513
+ }
10514
+ el.slotScope = slotScope;
10515
+ }
10516
+ // slot="xxx"
10517
+ var slotTarget = getBindingAttr(el, 'slot');
10518
+ if (slotTarget) {
10519
+ el.slotTarget = slotTarget === '""' ? '"default"' : slotTarget;
10520
+ el.slotTargetDynamic = !!(el.attrsMap[':slot'] || el.attrsMap['v-bind:slot']);
10521
+ // preserve slot as an attribute for native shadow DOM compat
10522
+ // only for non-scoped slots.
10523
+ if (el.tag !== 'template' && !el.slotScope) {
10524
+ addAttr(el, 'slot', slotTarget, getRawBindingAttr(el, 'slot'));
10525
+ }
10526
+ }
10527
+ // 2.6 v-slot syntax
10528
+ {
10529
+ if (el.tag === 'template') {
10530
+ // v-slot on <template>
10531
+ var slotBinding = getAndRemoveAttrByRegex(el, slotRE);
10532
+ if (slotBinding) {
10533
+ if (process.env.NODE_ENV !== 'production') {
10534
+ if (el.slotTarget || el.slotScope) {
10535
+ warn("Unexpected mixed usage of different slot syntaxes.", el);
10536
+ }
10537
+ if (el.parent && !maybeComponent(el.parent)) {
10538
+ warn("<template v-slot> can only appear at the root level inside " +
10539
+ "the receiving component", el);
10540
+ }
10541
+ }
10542
+ var _a = getSlotName(slotBinding), name_2 = _a.name, dynamic = _a.dynamic;
10543
+ el.slotTarget = name_2;
10544
+ el.slotTargetDynamic = dynamic;
10545
+ el.slotScope = slotBinding.value || emptySlotScopeToken; // force it into a scoped slot for perf
10546
+ }
10547
+ }
10548
+ else {
10549
+ // v-slot on component, denotes default slot
10550
+ var slotBinding = getAndRemoveAttrByRegex(el, slotRE);
10551
+ if (slotBinding) {
10552
+ if (process.env.NODE_ENV !== 'production') {
10553
+ if (!maybeComponent(el)) {
10554
+ warn("v-slot can only be used on components or <template>.", slotBinding);
10555
+ }
10556
+ if (el.slotScope || el.slotTarget) {
10557
+ warn("Unexpected mixed usage of different slot syntaxes.", el);
10558
+ }
10559
+ if (el.scopedSlots) {
10560
+ warn("To avoid scope ambiguity, the default slot should also use " +
10561
+ "<template> syntax when there are other named slots.", slotBinding);
10562
+ }
10563
+ }
10564
+ // add the component's children to its default slot
10565
+ var slots = el.scopedSlots || (el.scopedSlots = {});
10566
+ var _b = getSlotName(slotBinding), name_3 = _b.name, dynamic = _b.dynamic;
10567
+ var slotContainer_1 = (slots[name_3] = createASTElement('template', [], el));
10568
+ slotContainer_1.slotTarget = name_3;
10569
+ slotContainer_1.slotTargetDynamic = dynamic;
10570
+ slotContainer_1.children = el.children.filter(function (c) {
10571
+ if (!c.slotScope) {
10572
+ c.parent = slotContainer_1;
10573
+ return true;
10574
+ }
10575
+ });
10576
+ slotContainer_1.slotScope = slotBinding.value || emptySlotScopeToken;
10577
+ // remove children as they are returned from scopedSlots now
10578
+ el.children = [];
10579
+ // mark el non-plain so data gets generated
10580
+ el.plain = false;
10581
+ }
10582
+ }
10583
+ }
10584
+ }
10585
+ function getSlotName(binding) {
10586
+ var name = binding.name.replace(slotRE, '');
10587
+ if (!name) {
10588
+ if (binding.name[0] !== '#') {
10589
+ name = 'default';
10590
+ }
10591
+ else if (process.env.NODE_ENV !== 'production') {
10592
+ warn("v-slot shorthand syntax requires a slot name.", binding);
10593
+ }
10594
+ }
10595
+ return dynamicArgRE.test(name)
10596
+ ? // dynamic [name]
10597
+ { name: name.slice(1, -1), dynamic: true }
10598
+ : // static name
10599
+ { name: "\"".concat(name, "\""), dynamic: false };
10600
+ }
10601
+ // handle <slot/> outlets
10602
+ function processSlotOutlet(el) {
10603
+ if (el.tag === 'slot') {
10604
+ el.slotName = getBindingAttr(el, 'name');
10605
+ if (process.env.NODE_ENV !== 'production' && el.key) {
10606
+ warn("`key` does not work on <slot> because slots are abstract outlets " +
10607
+ "and can possibly expand into multiple elements. " +
10608
+ "Use the key on a wrapping element instead.", getRawBindingAttr(el, 'key'));
10609
+ }
10610
+ }
10611
+ }
10612
+ function processComponent(el) {
10613
+ var binding;
10614
+ if ((binding = getBindingAttr(el, 'is'))) {
10615
+ el.component = binding;
10616
+ }
10617
+ if (getAndRemoveAttr(el, 'inline-template') != null) {
10618
+ el.inlineTemplate = true;
10619
+ }
10620
+ }
10621
+ function processAttrs(el) {
10622
+ var list = el.attrsList;
10623
+ var i, l, name, rawName, value, modifiers, syncGen, isDynamic;
10624
+ for (i = 0, l = list.length; i < l; i++) {
10625
+ name = rawName = list[i].name;
10626
+ value = list[i].value;
10627
+ if (dirRE.test(name)) {
10628
+ // mark element as dynamic
10629
+ el.hasBindings = true;
10630
+ // modifiers
10631
+ modifiers = parseModifiers(name.replace(dirRE, ''));
10632
+ // support .foo shorthand syntax for the .prop modifier
10633
+ if (modifiers) {
10634
+ name = name.replace(modifierRE, '');
10635
+ }
10636
+ if (bindRE.test(name)) {
10637
+ // v-bind
10638
+ name = name.replace(bindRE, '');
10639
+ value = parseFilters(value);
10640
+ isDynamic = dynamicArgRE.test(name);
10641
+ if (isDynamic) {
10642
+ name = name.slice(1, -1);
10643
+ }
10644
+ if (process.env.NODE_ENV !== 'production' && value.trim().length === 0) {
10645
+ warn("The value for a v-bind expression cannot be empty. Found in \"v-bind:".concat(name, "\""));
10646
+ }
10647
+ if (modifiers) {
10648
+ if (modifiers.prop && !isDynamic) {
10649
+ name = camelize(name);
10650
+ if (name === 'innerHtml')
10651
+ name = 'innerHTML';
10652
+ }
10653
+ if (modifiers.camel && !isDynamic) {
10654
+ name = camelize(name);
10655
+ }
10656
+ if (modifiers.sync) {
10657
+ syncGen = genAssignmentCode(value, "$event");
10658
+ if (!isDynamic) {
10659
+ addHandler(el, "update:".concat(camelize(name)), syncGen, null, false, warn, list[i]);
10660
+ if (hyphenate(name) !== camelize(name)) {
10661
+ addHandler(el, "update:".concat(hyphenate(name)), syncGen, null, false, warn, list[i]);
10662
+ }
10663
+ }
10664
+ else {
10665
+ // handler w/ dynamic event name
10666
+ addHandler(el, "\"update:\"+(".concat(name, ")"), syncGen, null, false, warn, list[i], true // dynamic
10667
+ );
10668
+ }
10669
+ }
10670
+ }
10671
+ if ((modifiers && modifiers.prop) ||
10672
+ (!el.component && platformMustUseProp(el.tag, el.attrsMap.type, name))) {
10673
+ addProp(el, name, value, list[i], isDynamic);
10674
+ }
10675
+ else {
10676
+ addAttr(el, name, value, list[i], isDynamic);
10677
+ }
10678
+ }
10679
+ else if (onRE.test(name)) {
10680
+ // v-on
10681
+ name = name.replace(onRE, '');
10682
+ isDynamic = dynamicArgRE.test(name);
10683
+ if (isDynamic) {
10684
+ name = name.slice(1, -1);
10685
+ }
10686
+ addHandler(el, name, value, modifiers, false, warn, list[i], isDynamic);
10687
+ }
10688
+ else {
10689
+ // normal directives
10690
+ name = name.replace(dirRE, '');
10691
+ // parse arg
10692
+ var argMatch = name.match(argRE);
10693
+ var arg = argMatch && argMatch[1];
10694
+ isDynamic = false;
10695
+ if (arg) {
10696
+ name = name.slice(0, -(arg.length + 1));
10697
+ if (dynamicArgRE.test(arg)) {
10698
+ arg = arg.slice(1, -1);
10699
+ isDynamic = true;
10700
+ }
10701
+ }
10702
+ addDirective(el, name, rawName, value, arg, isDynamic, modifiers, list[i]);
10703
+ if (process.env.NODE_ENV !== 'production' && name === 'model') {
10704
+ checkForAliasModel(el, value);
10705
+ }
10706
+ }
10707
+ }
10708
+ else {
10709
+ // literal attribute
10710
+ if (process.env.NODE_ENV !== 'production') {
10711
+ var res = parseText(value, delimiters);
10712
+ if (res) {
10713
+ warn("".concat(name, "=\"").concat(value, "\": ") +
10714
+ 'Interpolation inside attributes has been removed. ' +
10715
+ 'Use v-bind or the colon shorthand instead. For example, ' +
10716
+ 'instead of <div id="{{ val }}">, use <div :id="val">.', list[i]);
10717
+ }
10718
+ }
10719
+ addAttr(el, name, JSON.stringify(value), list[i]);
10720
+ // #6887 firefox doesn't update muted state if set via attribute
10721
+ // even immediately after element creation
10722
+ if (!el.component &&
10723
+ name === 'muted' &&
10724
+ platformMustUseProp(el.tag, el.attrsMap.type, name)) {
10725
+ addProp(el, name, 'true', list[i]);
10726
+ }
10727
+ }
10728
+ }
10729
+ }
10730
+ function checkInFor(el) {
10731
+ var parent = el;
10732
+ while (parent) {
10733
+ if (parent.for !== undefined) {
10734
+ return true;
10735
+ }
10736
+ parent = parent.parent;
10737
+ }
10738
+ return false;
10739
+ }
10740
+ function parseModifiers(name) {
10741
+ var match = name.match(modifierRE);
10742
+ if (match) {
10743
+ var ret_1 = {};
10744
+ match.forEach(function (m) {
10745
+ ret_1[m.slice(1)] = true;
10746
+ });
10747
+ return ret_1;
10748
+ }
10749
+ }
10750
+ function makeAttrsMap(attrs) {
10751
+ var map = {};
10752
+ for (var i = 0, l = attrs.length; i < l; i++) {
10753
+ if (process.env.NODE_ENV !== 'production' && map[attrs[i].name] && !isIE && !isEdge) {
10754
+ warn('duplicate attribute: ' + attrs[i].name, attrs[i]);
10755
+ }
10756
+ map[attrs[i].name] = attrs[i].value;
10757
+ }
10758
+ return map;
10759
+ }
10760
+ // for script (e.g. type="x/template") or style, do not decode content
10761
+ function isTextTag(el) {
10762
+ return el.tag === 'script' || el.tag === 'style';
10763
+ }
10764
+ function isForbiddenTag(el) {
10765
+ return (el.tag === 'style' ||
10766
+ (el.tag === 'script' &&
10767
+ (!el.attrsMap.type || el.attrsMap.type === 'text/javascript')));
10768
+ }
10769
+ var ieNSBug = /^xmlns:NS\d+/;
10770
+ var ieNSPrefix = /^NS\d+:/;
10771
+ /* istanbul ignore next */
10772
+ function guardIESVGBug(attrs) {
10773
+ var res = [];
10774
+ for (var i = 0; i < attrs.length; i++) {
10775
+ var attr = attrs[i];
10776
+ if (!ieNSBug.test(attr.name)) {
10777
+ attr.name = attr.name.replace(ieNSPrefix, '');
10778
+ res.push(attr);
10779
+ }
10780
+ }
10781
+ return res;
10782
+ }
10783
+ function checkForAliasModel(el, value) {
10784
+ var _el = el;
10785
+ while (_el) {
10786
+ if (_el.for && _el.alias === value) {
10787
+ warn("<".concat(el.tag, " v-model=\"").concat(value, "\">: ") +
10788
+ "You are binding v-model directly to a v-for iteration alias. " +
10789
+ "This will not be able to modify the v-for source array because " +
10790
+ "writing to the alias is like modifying a function local variable. " +
10791
+ "Consider using an array of objects and use v-model on an object property instead.", el.rawAttrsMap['v-model']);
10792
+ }
10793
+ _el = _el.parent;
10794
+ }
10795
+ }
10796
+
10797
+ /**
10798
+ * Expand input[v-model] with dynamic type bindings into v-if-else chains
10799
+ * Turn this:
10800
+ * <input v-model="data[type]" :type="type">
10801
+ * into this:
10802
+ * <input v-if="type === 'checkbox'" type="checkbox" v-model="data[type]">
10803
+ * <input v-else-if="type === 'radio'" type="radio" v-model="data[type]">
10804
+ * <input v-else :type="type" v-model="data[type]">
10805
+ */
10806
+ function preTransformNode(el, options) {
10807
+ if (el.tag === 'input') {
10808
+ var map = el.attrsMap;
10809
+ if (!map['v-model']) {
10810
+ return;
10811
+ }
10812
+ var typeBinding = void 0;
10813
+ if (map[':type'] || map['v-bind:type']) {
10814
+ typeBinding = getBindingAttr(el, 'type');
10815
+ }
10816
+ if (!map.type && !typeBinding && map['v-bind']) {
10817
+ typeBinding = "(".concat(map['v-bind'], ").type");
10818
+ }
10819
+ if (typeBinding) {
10820
+ var ifCondition = getAndRemoveAttr(el, 'v-if', true);
10821
+ var ifConditionExtra = ifCondition ? "&&(".concat(ifCondition, ")") : "";
10822
+ var hasElse = getAndRemoveAttr(el, 'v-else', true) != null;
10823
+ var elseIfCondition = getAndRemoveAttr(el, 'v-else-if', true);
10824
+ // 1. checkbox
10825
+ var branch0 = cloneASTElement(el);
10826
+ // process for on the main node
10827
+ processFor(branch0);
10828
+ addRawAttr(branch0, 'type', 'checkbox');
10829
+ processElement(branch0, options);
10830
+ branch0.processed = true; // prevent it from double-processed
10831
+ branch0.if = "(".concat(typeBinding, ")==='checkbox'") + ifConditionExtra;
10832
+ addIfCondition(branch0, {
10833
+ exp: branch0.if,
10834
+ block: branch0
10835
+ });
10836
+ // 2. add radio else-if condition
10837
+ var branch1 = cloneASTElement(el);
10838
+ getAndRemoveAttr(branch1, 'v-for', true);
10839
+ addRawAttr(branch1, 'type', 'radio');
10840
+ processElement(branch1, options);
10841
+ addIfCondition(branch0, {
10842
+ exp: "(".concat(typeBinding, ")==='radio'") + ifConditionExtra,
10843
+ block: branch1
10844
+ });
10845
+ // 3. other
10846
+ var branch2 = cloneASTElement(el);
10847
+ getAndRemoveAttr(branch2, 'v-for', true);
10848
+ addRawAttr(branch2, ':type', typeBinding);
10849
+ processElement(branch2, options);
10850
+ addIfCondition(branch0, {
10851
+ exp: ifCondition,
10852
+ block: branch2
10853
+ });
10854
+ if (hasElse) {
10855
+ branch0.else = true;
10856
+ }
10857
+ else if (elseIfCondition) {
10858
+ branch0.elseif = elseIfCondition;
10859
+ }
10860
+ return branch0;
10861
+ }
10862
+ }
10863
+ }
10864
+ function cloneASTElement(el) {
10865
+ return createASTElement(el.tag, el.attrsList.slice(), el.parent);
10866
+ }
10867
+ var model = {
10868
+ preTransformNode: preTransformNode
10869
+ };
10870
 
10871
+ var modules = [klass, style, model];
10872
 
10873
+ function text(el, dir) {
10874
+ if (dir.value) {
10875
+ addProp(el, 'textContent', "_s(".concat(dir.value, ")"), dir);
10876
+ }
 
 
10877
  }
10878
 
10879
+ function html(el, dir) {
10880
+ if (dir.value) {
10881
+ addProp(el, 'innerHTML', "_s(".concat(dir.value, ")"), dir);
10882
+ }
10883
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
10884
 
10885
+ var directives = {
10886
+ model: model$1,
10887
+ text: text,
10888
+ html: html
10889
+ };
 
 
10890
 
10891
+ var baseOptions = {
10892
+ expectHTML: true,
10893
+ modules: modules,
10894
+ directives: directives,
10895
+ isPreTag: isPreTag,
10896
+ isUnaryTag: isUnaryTag,
10897
+ mustUseProp: mustUseProp,
10898
+ canBeLeftOpenTag: canBeLeftOpenTag,
10899
+ isReservedTag: isReservedTag,
10900
+ getTagNamespace: getTagNamespace,
10901
+ staticKeys: genStaticKeys$1(modules)
10902
+ };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10903
 
10904
+ var isStaticKey;
10905
+ var isPlatformReservedTag;
10906
+ var genStaticKeysCached = cached(genStaticKeys);
10907
+ /**
10908
+ * Goal of the optimizer: walk the generated template AST tree
10909
+ * and detect sub-trees that are purely static, i.e. parts of
10910
+ * the DOM that never needs to change.
10911
+ *
10912
+ * Once we detect these sub-trees, we can:
10913
+ *
10914
+ * 1. Hoist them into constants, so that we no longer need to
10915
+ * create fresh nodes for them on each re-render;
10916
+ * 2. Completely skip them in the patching process.
10917
+ */
10918
+ function optimize(root, options) {
10919
+ if (!root)
10920
+ return;
10921
+ isStaticKey = genStaticKeysCached(options.staticKeys || '');
10922
+ isPlatformReservedTag = options.isReservedTag || no;
10923
+ // first pass: mark all non-static nodes.
10924
+ markStatic(root);
10925
+ // second pass: mark static roots.
10926
+ markStaticRoots(root, false);
10927
+ }
10928
+ function genStaticKeys(keys) {
10929
+ return makeMap('type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap' +
10930
+ (keys ? ',' + keys : ''));
10931
+ }
10932
+ function markStatic(node) {
10933
+ node.static = isStatic(node);
10934
+ if (node.type === 1) {
10935
+ // do not make component slot content static. this avoids
10936
+ // 1. components not able to mutate slot nodes
10937
+ // 2. static slot content fails for hot-reloading
10938
+ if (!isPlatformReservedTag(node.tag) &&
10939
+ node.tag !== 'slot' &&
10940
+ node.attrsMap['inline-template'] == null) {
10941
+ return;
10942
+ }
10943
+ for (var i = 0, l = node.children.length; i < l; i++) {
10944
+ var child = node.children[i];
10945
+ markStatic(child);
10946
+ if (!child.static) {
10947
+ node.static = false;
10948
+ }
10949
+ }
10950
+ if (node.ifConditions) {
10951
+ for (var i = 1, l = node.ifConditions.length; i < l; i++) {
10952
+ var block = node.ifConditions[i].block;
10953
+ markStatic(block);
10954
+ if (!block.static) {
10955
+ node.static = false;
10956
+ }
10957
+ }
10958
+ }
10959
+ }
10960
+ }
10961
+ function markStaticRoots(node, isInFor) {
10962
+ if (node.type === 1) {
10963
+ if (node.static || node.once) {
10964
+ node.staticInFor = isInFor;
10965
+ }
10966
+ // For a node to qualify as a static root, it should have children that
10967
+ // are not just static text. Otherwise the cost of hoisting out will
10968
+ // outweigh the benefits and it's better off to just always render it fresh.
10969
+ if (node.static &&
10970
+ node.children.length &&
10971
+ !(node.children.length === 1 && node.children[0].type === 3)) {
10972
+ node.staticRoot = true;
10973
+ return;
10974
+ }
10975
+ else {
10976
+ node.staticRoot = false;
10977
+ }
10978
+ if (node.children) {
10979
+ for (var i = 0, l = node.children.length; i < l; i++) {
10980
+ markStaticRoots(node.children[i], isInFor || !!node.for);
10981
+ }
10982
+ }
10983
+ if (node.ifConditions) {
10984
+ for (var i = 1, l = node.ifConditions.length; i < l; i++) {
10985
+ markStaticRoots(node.ifConditions[i].block, isInFor);
10986
+ }
10987
+ }
10988
+ }
10989
+ }
10990
+ function isStatic(node) {
10991
+ if (node.type === 2) {
10992
+ // expression
10993
+ return false;
10994
+ }
10995
+ if (node.type === 3) {
10996
+ // text
10997
+ return true;
10998
+ }
10999
+ return !!(node.pre ||
11000
+ (!node.hasBindings && // no dynamic bindings
11001
+ !node.if &&
11002
+ !node.for && // not v-if or v-for or v-else
11003
+ !isBuiltInTag(node.tag) && // not a built-in
11004
+ isPlatformReservedTag(node.tag) && // not a component
11005
+ !isDirectChildOfTemplateFor(node) &&
11006
+ Object.keys(node).every(isStaticKey)));
11007
+ }
11008
+ function isDirectChildOfTemplateFor(node) {
11009
+ while (node.parent) {
11010
+ node = node.parent;
11011
+ if (node.tag !== 'template') {
11012
+ return false;
11013
+ }
11014
+ if (node.for) {
11015
+ return true;
11016
+ }
11017
+ }
11018
+ return false;
11019
+ }
11020
+
11021
+ var fnExpRE = /^([\w$_]+|\([^)]*?\))\s*=>|^function(?:\s+[\w$]+)?\s*\(/;
11022
+ var fnInvokeRE = /\([^)]*?\);*$/;
11023
+ var simplePathRE = /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/;
11024
+ // KeyboardEvent.keyCode aliases
11025
+ var keyCodes = {
11026
+ esc: 27,
11027
+ tab: 9,
11028
+ enter: 13,
11029
+ space: 32,
11030
+ up: 38,
11031
+ left: 37,
11032
+ right: 39,
11033
+ down: 40,
11034
+ delete: [8, 46]
11035
+ };
11036
+ // KeyboardEvent.key aliases
11037
+ var keyNames = {
11038
+ // #7880: IE11 and Edge use `Esc` for Escape key name.
11039
+ esc: ['Esc', 'Escape'],
11040
+ tab: 'Tab',
11041
+ enter: 'Enter',
11042
+ // #9112: IE11 uses `Spacebar` for Space key name.
11043
+ space: [' ', 'Spacebar'],
11044
+ // #7806: IE11 uses key names without `Arrow` prefix for arrow keys.
11045
+ up: ['Up', 'ArrowUp'],
11046
+ left: ['Left', 'ArrowLeft'],
11047
+ right: ['Right', 'ArrowRight'],
11048
+ down: ['Down', 'ArrowDown'],
11049
+ // #9112: IE11 uses `Del` for Delete key name.
11050
+ delete: ['Backspace', 'Delete', 'Del']
11051
+ };
11052
+ // #4868: modifiers that prevent the execution of the listener
11053
+ // need to explicitly return null so that we can determine whether to remove
11054
+ // the listener for .once
11055
+ var genGuard = function (condition) { return "if(".concat(condition, ")return null;"); };
11056
+ var modifierCode = {
11057
+ stop: '$event.stopPropagation();',
11058
+ prevent: '$event.preventDefault();',
11059
+ self: genGuard("$event.target !== $event.currentTarget"),
11060
+ ctrl: genGuard("!$event.ctrlKey"),
11061
+ shift: genGuard("!$event.shiftKey"),
11062
+ alt: genGuard("!$event.altKey"),
11063
+ meta: genGuard("!$event.metaKey"),
11064
+ left: genGuard("'button' in $event && $event.button !== 0"),
11065
+ middle: genGuard("'button' in $event && $event.button !== 1"),
11066
+ right: genGuard("'button' in $event && $event.button !== 2")
11067
+ };
11068
+ function genHandlers(events, isNative) {
11069
+ var prefix = isNative ? 'nativeOn:' : 'on:';
11070
+ var staticHandlers = "";
11071
+ var dynamicHandlers = "";
11072
+ for (var name_1 in events) {
11073
+ var handlerCode = genHandler(events[name_1]);
11074
+ //@ts-expect-error
11075
+ if (events[name_1] && events[name_1].dynamic) {
11076
+ dynamicHandlers += "".concat(name_1, ",").concat(handlerCode, ",");
11077
+ }
11078
+ else {
11079
+ staticHandlers += "\"".concat(name_1, "\":").concat(handlerCode, ",");
11080
+ }
11081
+ }
11082
+ staticHandlers = "{".concat(staticHandlers.slice(0, -1), "}");
11083
+ if (dynamicHandlers) {
11084
+ return prefix + "_d(".concat(staticHandlers, ",[").concat(dynamicHandlers.slice(0, -1), "])");
11085
+ }
11086
+ else {
11087
+ return prefix + staticHandlers;
11088
+ }
11089
+ }
11090
+ function genHandler(handler) {
11091
+ if (!handler) {
11092
+ return 'function(){}';
11093
+ }
11094
+ if (Array.isArray(handler)) {
11095
+ return "[".concat(handler.map(function (handler) { return genHandler(handler); }).join(','), "]");
11096
+ }
11097
+ var isMethodPath = simplePathRE.test(handler.value);
11098
+ var isFunctionExpression = fnExpRE.test(handler.value);
11099
+ var isFunctionInvocation = simplePathRE.test(handler.value.replace(fnInvokeRE, ''));
11100
+ if (!handler.modifiers) {
11101
+ if (isMethodPath || isFunctionExpression) {
11102
+ return handler.value;
11103
+ }
11104
+ return "function($event){".concat(isFunctionInvocation ? "return ".concat(handler.value) : handler.value, "}"); // inline statement
11105
+ }
11106
+ else {
11107
+ var code = '';
11108
+ var genModifierCode = '';
11109
+ var keys = [];
11110
+ var _loop_1 = function (key) {
11111
+ if (modifierCode[key]) {
11112
+ genModifierCode += modifierCode[key];
11113
+ // left/right
11114
+ if (keyCodes[key]) {
11115
+ keys.push(key);
11116
+ }
11117
+ }
11118
+ else if (key === 'exact') {
11119
+ var modifiers_1 = handler.modifiers;
11120
+ genModifierCode += genGuard(['ctrl', 'shift', 'alt', 'meta']
11121
+ .filter(function (keyModifier) { return !modifiers_1[keyModifier]; })
11122
+ .map(function (keyModifier) { return "$event.".concat(keyModifier, "Key"); })
11123
+ .join('||'));
11124
+ }
11125
+ else {
11126
+ keys.push(key);
11127
+ }
11128
+ };
11129
+ for (var key in handler.modifiers) {
11130
+ _loop_1(key);
11131
+ }
11132
+ if (keys.length) {
11133
+ code += genKeyFilter(keys);
11134
+ }
11135
+ // Make sure modifiers like prevent and stop get executed after key filtering
11136
+ if (genModifierCode) {
11137
+ code += genModifierCode;
11138
+ }
11139
+ var handlerCode = isMethodPath
11140
+ ? "return ".concat(handler.value, ".apply(null, arguments)")
11141
+ : isFunctionExpression
11142
+ ? "return (".concat(handler.value, ").apply(null, arguments)")
11143
+ : isFunctionInvocation
11144
+ ? "return ".concat(handler.value)
11145
+ : handler.value;
11146
+ return "function($event){".concat(code).concat(handlerCode, "}");
11147
+ }
11148
+ }
11149
+ function genKeyFilter(keys) {
11150
+ return (
11151
+ // make sure the key filters only apply to KeyboardEvents
11152
+ // #9441: can't use 'keyCode' in $event because Chrome autofill fires fake
11153
+ // key events that do not have keyCode property...
11154
+ "if(!$event.type.indexOf('key')&&" +
11155
+ "".concat(keys.map(genFilterCode).join('&&'), ")return null;"));
11156
+ }
11157
+ function genFilterCode(key) {
11158
+ var keyVal = parseInt(key, 10);
11159
+ if (keyVal) {
11160
+ return "$event.keyCode!==".concat(keyVal);
11161
+ }
11162
+ var keyCode = keyCodes[key];
11163
+ var keyName = keyNames[key];
11164
+ return ("_k($event.keyCode," +
11165
+ "".concat(JSON.stringify(key), ",") +
11166
+ "".concat(JSON.stringify(keyCode), ",") +
11167
+ "$event.key," +
11168
+ "".concat(JSON.stringify(keyName)) +
11169
+ ")");
11170
+ }
11171
+
11172
+ function on(el, dir) {
11173
+ if (process.env.NODE_ENV !== 'production' && dir.modifiers) {
11174
+ warn$2("v-on without argument does not support modifiers.");
11175
+ }
11176
+ el.wrapListeners = function (code) { return "_g(".concat(code, ",").concat(dir.value, ")"); };
11177
+ }
11178
+
11179
+ function bind(el, dir) {
11180
+ el.wrapData = function (code) {
11181
+ return "_b(".concat(code, ",'").concat(el.tag, "',").concat(dir.value, ",").concat(dir.modifiers && dir.modifiers.prop ? 'true' : 'false').concat(dir.modifiers && dir.modifiers.sync ? ',true' : '', ")");
11182
+ };
11183
+ }
11184
+
11185
+ var baseDirectives = {
11186
+ on: on,
11187
+ bind: bind,
11188
+ cloak: noop
11189
  };
11190
 
11191
+ var CodegenState = /** @class */ (function () {
11192
+ function CodegenState(options) {
11193
+ this.options = options;
11194
+ this.warn = options.warn || baseWarn;
11195
+ this.transforms = pluckModuleFunction(options.modules, 'transformCode');
11196
+ this.dataGenFns = pluckModuleFunction(options.modules, 'genData');
11197
+ this.directives = extend(extend({}, baseDirectives), options.directives);
11198
+ var isReservedTag = options.isReservedTag || no;
11199
+ this.maybeComponent = function (el) {
11200
+ return !!el.component || !isReservedTag(el.tag);
11201
+ };
11202
+ this.onceId = 0;
11203
+ this.staticRenderFns = [];
11204
+ this.pre = false;
11205
+ }
11206
+ return CodegenState;
11207
+ }());
11208
+ function generate(ast, options) {
11209
+ var state = new CodegenState(options);
11210
+ // fix #11483, Root level <script> tags should not be rendered.
11211
+ var code = ast
11212
+ ? ast.tag === 'script'
11213
+ ? 'null'
11214
+ : genElement(ast, state)
11215
+ : '_c("div")';
11216
+ return {
11217
+ render: "with(this){return ".concat(code, "}"),
11218
+ staticRenderFns: state.staticRenderFns
11219
+ };
11220
+ }
11221
+ function genElement(el, state) {
11222
+ if (el.parent) {
11223
+ el.pre = el.pre || el.parent.pre;
11224
+ }
11225
+ if (el.staticRoot && !el.staticProcessed) {
11226
+ return genStatic(el, state);
11227
+ }
11228
+ else if (el.once && !el.onceProcessed) {
11229
+ return genOnce(el, state);
11230
+ }
11231
+ else if (el.for && !el.forProcessed) {
11232
+ return genFor(el, state);
11233
+ }
11234
+ else if (el.if && !el.ifProcessed) {
11235
+ return genIf(el, state);
11236
+ }
11237
+ else if (el.tag === 'template' && !el.slotTarget && !state.pre) {
11238
+ return genChildren(el, state) || 'void 0';
11239
+ }
11240
+ else if (el.tag === 'slot') {
11241
+ return genSlot(el, state);
11242
+ }
11243
+ else {
11244
+ // component or element
11245
+ var code = void 0;
11246
+ if (el.component) {
11247
+ code = genComponent(el.component, el, state);
11248
+ }
11249
+ else {
11250
+ var data = void 0;
11251
+ var maybeComponent = state.maybeComponent(el);
11252
+ if (!el.plain || (el.pre && maybeComponent)) {
11253
+ data = genData(el, state);
11254
+ }
11255
+ var tag
11256
+ // check if this is a component in <script setup>
11257
+ = void 0;
11258
+ // check if this is a component in <script setup>
11259
+ var bindings = state.options.bindings;
11260
+ if (maybeComponent && bindings && bindings.__isScriptSetup !== false) {
11261
+ tag = checkBindingType(bindings, el.tag);
11262
+ }
11263
+ if (!tag)
11264
+ tag = "'".concat(el.tag, "'");
11265
+ var children = el.inlineTemplate ? null : genChildren(el, state, true);
11266
+ code = "_c(".concat(tag).concat(data ? ",".concat(data) : '' // data
11267
+ ).concat(children ? ",".concat(children) : '' // children
11268
+ , ")");
11269
+ }
11270
+ // module transforms
11271
+ for (var i = 0; i < state.transforms.length; i++) {
11272
+ code = state.transforms[i](el, code);
11273
+ }
11274
+ return code;
11275
+ }
11276
+ }
11277
+ function checkBindingType(bindings, key) {
11278
+ var camelName = camelize(key);
11279
+ var PascalName = capitalize(camelName);
11280
+ var checkType = function (type) {
11281
+ if (bindings[key] === type) {
11282
+ return key;
11283
+ }
11284
+ if (bindings[camelName] === type) {
11285
+ return camelName;
11286
+ }
11287
+ if (bindings[PascalName] === type) {
11288
+ return PascalName;
11289
+ }
11290
+ };
11291
+ var fromConst = checkType("setup-const" /* BindingTypes.SETUP_CONST */) ||
11292
+ checkType("setup-reactive-const" /* BindingTypes.SETUP_REACTIVE_CONST */);
11293
+ if (fromConst) {
11294
+ return fromConst;
11295
+ }
11296
+ var fromMaybeRef = checkType("setup-let" /* BindingTypes.SETUP_LET */) ||
11297
+ checkType("setup-ref" /* BindingTypes.SETUP_REF */) ||
11298
+ checkType("setup-maybe-ref" /* BindingTypes.SETUP_MAYBE_REF */);
11299
+ if (fromMaybeRef) {
11300
+ return fromMaybeRef;
11301
+ }
11302
+ }
11303
+ // hoist static sub-trees out
11304
+ function genStatic(el, state) {
11305
+ el.staticProcessed = true;
11306
+ // Some elements (templates) need to behave differently inside of a v-pre
11307
+ // node. All pre nodes are static roots, so we can use this as a location to
11308
+ // wrap a state change and reset it upon exiting the pre node.
11309
+ var originalPreState = state.pre;
11310
+ if (el.pre) {
11311
+ state.pre = el.pre;
11312
+ }
11313
+ state.staticRenderFns.push("with(this){return ".concat(genElement(el, state), "}"));
11314
+ state.pre = originalPreState;
11315
+ return "_m(".concat(state.staticRenderFns.length - 1).concat(el.staticInFor ? ',true' : '', ")");
11316
+ }
11317
+ // v-once
11318
+ function genOnce(el, state) {
11319
+ el.onceProcessed = true;
11320
+ if (el.if && !el.ifProcessed) {
11321
+ return genIf(el, state);
11322
+ }
11323
+ else if (el.staticInFor) {
11324
+ var key = '';
11325
+ var parent_1 = el.parent;
11326
+ while (parent_1) {
11327
+ if (parent_1.for) {
11328
+ key = parent_1.key;
11329
+ break;
11330
+ }
11331
+ parent_1 = parent_1.parent;
11332
+ }
11333
+ if (!key) {
11334
+ process.env.NODE_ENV !== 'production' &&
11335
+ state.warn("v-once can only be used inside v-for that is keyed. ", el.rawAttrsMap['v-once']);
11336
+ return genElement(el, state);
11337
+ }
11338
+ return "_o(".concat(genElement(el, state), ",").concat(state.onceId++, ",").concat(key, ")");
11339
+ }
11340
+ else {
11341
+ return genStatic(el, state);
11342
+ }
11343
+ }
11344
+ function genIf(el, state, altGen, altEmpty) {
11345
+ el.ifProcessed = true; // avoid recursion
11346
+ return genIfConditions(el.ifConditions.slice(), state, altGen, altEmpty);
11347
+ }
11348
+ function genIfConditions(conditions, state, altGen, altEmpty) {
11349
+ if (!conditions.length) {
11350
+ return altEmpty || '_e()';
11351
+ }
11352
+ var condition = conditions.shift();
11353
+ if (condition.exp) {
11354
+ return "(".concat(condition.exp, ")?").concat(genTernaryExp(condition.block), ":").concat(genIfConditions(conditions, state, altGen, altEmpty));
11355
+ }
11356
+ else {
11357
+ return "".concat(genTernaryExp(condition.block));
11358
+ }
11359
+ // v-if with v-once should generate code like (a)?_m(0):_m(1)
11360
+ function genTernaryExp(el) {
11361
+ return altGen
11362
+ ? altGen(el, state)
11363
+ : el.once
11364
+ ? genOnce(el, state)
11365
+ : genElement(el, state);
11366
+ }
11367
+ }
11368
+ function genFor(el, state, altGen, altHelper) {
11369
+ var exp = el.for;
11370
+ var alias = el.alias;
11371
+ var iterator1 = el.iterator1 ? ",".concat(el.iterator1) : '';
11372
+ var iterator2 = el.iterator2 ? ",".concat(el.iterator2) : '';
11373
+ if (process.env.NODE_ENV !== 'production' &&
11374
+ state.maybeComponent(el) &&
11375
+ el.tag !== 'slot' &&
11376
+ el.tag !== 'template' &&
11377
+ !el.key) {
11378
+ state.warn("<".concat(el.tag, " v-for=\"").concat(alias, " in ").concat(exp, "\">: component lists rendered with ") +
11379
+ "v-for should have explicit keys. " +
11380
+ "See https://vuejs.org/guide/list.html#key for more info.", el.rawAttrsMap['v-for'], true /* tip */);
11381
+ }
11382
+ el.forProcessed = true; // avoid recursion
11383
+ return ("".concat(altHelper || '_l', "((").concat(exp, "),") +
11384
+ "function(".concat(alias).concat(iterator1).concat(iterator2, "){") +
11385
+ "return ".concat((altGen || genElement)(el, state)) +
11386
+ '})');
11387
+ }
11388
+ function genData(el, state) {
11389
+ var data = '{';
11390
+ // directives first.
11391
+ // directives may mutate the el's other properties before they are generated.
11392
+ var dirs = genDirectives(el, state);
11393
+ if (dirs)
11394
+ data += dirs + ',';
11395
+ // key
11396
+ if (el.key) {
11397
+ data += "key:".concat(el.key, ",");
11398
+ }
11399
+ // ref
11400
+ if (el.ref) {
11401
+ data += "ref:".concat(el.ref, ",");
11402
+ }
11403
+ if (el.refInFor) {
11404
+ data += "refInFor:true,";
11405
+ }
11406
+ // pre
11407
+ if (el.pre) {
11408
+ data += "pre:true,";
11409
+ }
11410
+ // record original tag name for components using "is" attribute
11411
+ if (el.component) {
11412
+ data += "tag:\"".concat(el.tag, "\",");
11413
+ }
11414
+ // module data generation functions
11415
+ for (var i = 0; i < state.dataGenFns.length; i++) {
11416
+ data += state.dataGenFns[i](el);
11417
+ }
11418
+ // attributes
11419
+ if (el.attrs) {
11420
+ data += "attrs:".concat(genProps(el.attrs), ",");
11421
+ }
11422
+ // DOM props
11423
+ if (el.props) {
11424
+ data += "domProps:".concat(genProps(el.props), ",");
11425
+ }
11426
+ // event handlers
11427
+ if (el.events) {
11428
+ data += "".concat(genHandlers(el.events, false), ",");
11429
+ }
11430
+ if (el.nativeEvents) {
11431
+ data += "".concat(genHandlers(el.nativeEvents, true), ",");
11432
+ }
11433
+ // slot target
11434
+ // only for non-scoped slots
11435
+ if (el.slotTarget && !el.slotScope) {
11436
+ data += "slot:".concat(el.slotTarget, ",");
11437
+ }
11438
+ // scoped slots
11439
+ if (el.scopedSlots) {
11440
+ data += "".concat(genScopedSlots(el, el.scopedSlots, state), ",");
11441
+ }
11442
+ // component v-model
11443
+ if (el.model) {
11444
+ data += "model:{value:".concat(el.model.value, ",callback:").concat(el.model.callback, ",expression:").concat(el.model.expression, "},");
11445
+ }
11446
+ // inline-template
11447
+ if (el.inlineTemplate) {
11448
+ var inlineTemplate = genInlineTemplate(el, state);
11449
+ if (inlineTemplate) {
11450
+ data += "".concat(inlineTemplate, ",");
11451
+ }
11452
+ }
11453
+ data = data.replace(/,$/, '') + '}';
11454
+ // v-bind dynamic argument wrap
11455
+ // v-bind with dynamic arguments must be applied using the same v-bind object
11456
+ // merge helper so that class/style/mustUseProp attrs are handled correctly.
11457
+ if (el.dynamicAttrs) {
11458
+ data = "_b(".concat(data, ",\"").concat(el.tag, "\",").concat(genProps(el.dynamicAttrs), ")");
11459
+ }
11460
+ // v-bind data wrap
11461
+ if (el.wrapData) {
11462
+ data = el.wrapData(data);
11463
+ }
11464
+ // v-on data wrap
11465
+ if (el.wrapListeners) {
11466
+ data = el.wrapListeners(data);
11467
+ }
11468
+ return data;
11469
+ }
11470
+ function genDirectives(el, state) {
11471
+ var dirs = el.directives;
11472
+ if (!dirs)
11473
+ return;
11474
+ var res = 'directives:[';
11475
+ var hasRuntime = false;
11476
+ var i, l, dir, needRuntime;
11477
+ for (i = 0, l = dirs.length; i < l; i++) {
11478
+ dir = dirs[i];
11479
+ needRuntime = true;
11480
+ var gen = state.directives[dir.name];
11481
+ if (gen) {
11482
+ // compile-time directive that manipulates AST.
11483
+ // returns true if it also needs a runtime counterpart.
11484
+ needRuntime = !!gen(el, dir, state.warn);
11485
+ }
11486
+ if (needRuntime) {
11487
+ hasRuntime = true;
11488
+ res += "{name:\"".concat(dir.name, "\",rawName:\"").concat(dir.rawName, "\"").concat(dir.value
11489
+ ? ",value:(".concat(dir.value, "),expression:").concat(JSON.stringify(dir.value))
11490
+ : '').concat(dir.arg ? ",arg:".concat(dir.isDynamicArg ? dir.arg : "\"".concat(dir.arg, "\"")) : '').concat(dir.modifiers ? ",modifiers:".concat(JSON.stringify(dir.modifiers)) : '', "},");
11491
+ }
11492
+ }
11493
+ if (hasRuntime) {
11494
+ return res.slice(0, -1) + ']';
11495
+ }
11496
+ }
11497
+ function genInlineTemplate(el, state) {
11498
+ var ast = el.children[0];
11499
+ if (process.env.NODE_ENV !== 'production' && (el.children.length !== 1 || ast.type !== 1)) {
11500
+ state.warn('Inline-template components must have exactly one child element.', { start: el.start });
11501
+ }
11502
+ if (ast && ast.type === 1) {
11503
+ var inlineRenderFns = generate(ast, state.options);
11504
+ return "inlineTemplate:{render:function(){".concat(inlineRenderFns.render, "},staticRenderFns:[").concat(inlineRenderFns.staticRenderFns
11505
+ .map(function (code) { return "function(){".concat(code, "}"); })
11506
+ .join(','), "]}");
11507
+ }
11508
+ }
11509
+ function genScopedSlots(el, slots, state) {
11510
+ // by default scoped slots are considered "stable", this allows child
11511
+ // components with only scoped slots to skip forced updates from parent.
11512
+ // but in some cases we have to bail-out of this optimization
11513
+ // for example if the slot contains dynamic names, has v-if or v-for on them...
11514
+ var needsForceUpdate = el.for ||
11515
+ Object.keys(slots).some(function (key) {
11516
+ var slot = slots[key];
11517
+ return (slot.slotTargetDynamic || slot.if || slot.for || containsSlotChild(slot) // is passing down slot from parent which may be dynamic
11518
+ );
11519
+ });
11520
+ // #9534: if a component with scoped slots is inside a conditional branch,
11521
+ // it's possible for the same component to be reused but with different
11522
+ // compiled slot content. To avoid that, we generate a unique key based on
11523
+ // the generated code of all the slot contents.
11524
+ var needsKey = !!el.if;
11525
+ // OR when it is inside another scoped slot or v-for (the reactivity may be
11526
+ // disconnected due to the intermediate scope variable)
11527
+ // #9438, #9506
11528
+ // TODO: this can be further optimized by properly analyzing in-scope bindings
11529
+ // and skip force updating ones that do not actually use scope variables.
11530
+ if (!needsForceUpdate) {
11531
+ var parent_2 = el.parent;
11532
+ while (parent_2) {
11533
+ if ((parent_2.slotScope && parent_2.slotScope !== emptySlotScopeToken) ||
11534
+ parent_2.for) {
11535
+ needsForceUpdate = true;
11536
+ break;
11537
+ }
11538
+ if (parent_2.if) {
11539
+ needsKey = true;
11540
+ }
11541
+ parent_2 = parent_2.parent;
11542
+ }
11543
+ }
11544
+ var generatedSlots = Object.keys(slots)
11545
+ .map(function (key) { return genScopedSlot(slots[key], state); })
11546
+ .join(',');
11547
+ return "scopedSlots:_u([".concat(generatedSlots, "]").concat(needsForceUpdate ? ",null,true" : "").concat(!needsForceUpdate && needsKey ? ",null,false,".concat(hash(generatedSlots)) : "", ")");
11548
+ }
11549
+ function hash(str) {
11550
+ var hash = 5381;
11551
+ var i = str.length;
11552
+ while (i) {
11553
+ hash = (hash * 33) ^ str.charCodeAt(--i);
11554
+ }
11555
+ return hash >>> 0;
11556
+ }
11557
+ function containsSlotChild(el) {
11558
+ if (el.type === 1) {
11559
+ if (el.tag === 'slot') {
11560
+ return true;
11561
+ }
11562
+ return el.children.some(containsSlotChild);
11563
+ }
11564
+ return false;
11565
+ }
11566
+ function genScopedSlot(el, state) {
11567
+ var isLegacySyntax = el.attrsMap['slot-scope'];
11568
+ if (el.if && !el.ifProcessed && !isLegacySyntax) {
11569
+ return genIf(el, state, genScopedSlot, "null");
11570
+ }
11571
+ if (el.for && !el.forProcessed) {
11572
+ return genFor(el, state, genScopedSlot);
11573
+ }
11574
+ var slotScope = el.slotScope === emptySlotScopeToken ? "" : String(el.slotScope);
11575
+ var fn = "function(".concat(slotScope, "){") +
11576
+ "return ".concat(el.tag === 'template'
11577
+ ? el.if && isLegacySyntax
11578
+ ? "(".concat(el.if, ")?").concat(genChildren(el, state) || 'undefined', ":undefined")
11579
+ : genChildren(el, state) || 'undefined'
11580
+ : genElement(el, state), "}");
11581
+ // reverse proxy v-slot without scope on this.$slots
11582
+ var reverseProxy = slotScope ? "" : ",proxy:true";
11583
+ return "{key:".concat(el.slotTarget || "\"default\"", ",fn:").concat(fn).concat(reverseProxy, "}");
11584
+ }
11585
+ function genChildren(el, state, checkSkip, altGenElement, altGenNode) {
11586
+ var children = el.children;
11587
+ if (children.length) {
11588
+ var el_1 = children[0];
11589
+ // optimize single v-for
11590
+ if (children.length === 1 &&
11591
+ el_1.for &&
11592
+ el_1.tag !== 'template' &&
11593
+ el_1.tag !== 'slot') {
11594
+ var normalizationType_1 = checkSkip
11595
+ ? state.maybeComponent(el_1)
11596
+ ? ",1"
11597
+ : ",0"
11598
+ : "";
11599
+ return "".concat((altGenElement || genElement)(el_1, state)).concat(normalizationType_1);
11600
+ }
11601
+ var normalizationType = checkSkip
11602
+ ? getNormalizationType(children, state.maybeComponent)
11603
+ : 0;
11604
+ var gen_1 = altGenNode || genNode;
11605
+ return "[".concat(children.map(function (c) { return gen_1(c, state); }).join(','), "]").concat(normalizationType ? ",".concat(normalizationType) : '');
11606
+ }
11607
+ }
11608
+ // determine the normalization needed for the children array.
11609
+ // 0: no normalization needed
11610
+ // 1: simple normalization needed (possible 1-level deep nested array)
11611
+ // 2: full normalization needed
11612
+ function getNormalizationType(children, maybeComponent) {
11613
+ var res = 0;
11614
+ for (var i = 0; i < children.length; i++) {
11615
+ var el = children[i];
11616
+ if (el.type !== 1) {
11617
+ continue;
11618
+ }
11619
+ if (needsNormalization(el) ||
11620
+ (el.ifConditions &&
11621
+ el.ifConditions.some(function (c) { return needsNormalization(c.block); }))) {
11622
+ res = 2;
11623
+ break;
11624
+ }
11625
+ if (maybeComponent(el) ||
11626
+ (el.ifConditions && el.ifConditions.some(function (c) { return maybeComponent(c.block); }))) {
11627
+ res = 1;
11628
+ }
11629
+ }
11630
+ return res;
11631
+ }
11632
+ function needsNormalization(el) {
11633
+ return el.for !== undefined || el.tag === 'template' || el.tag === 'slot';
11634
+ }
11635
+ function genNode(node, state) {
11636
+ if (node.type === 1) {
11637
+ return genElement(node, state);
11638
+ }
11639
+ else if (node.type === 3 && node.isComment) {
11640
+ return genComment(node);
11641
+ }
11642
+ else {
11643
+ return genText(node);
11644
+ }
11645
+ }
11646
+ function genText(text) {
11647
+ return "_v(".concat(text.type === 2
11648
+ ? text.expression // no need for () because already wrapped in _s()
11649
+ : transformSpecialNewlines(JSON.stringify(text.text)), ")");
11650
+ }
11651
+ function genComment(comment) {
11652
+ return "_e(".concat(JSON.stringify(comment.text), ")");
11653
+ }
11654
+ function genSlot(el, state) {
11655
+ var slotName = el.slotName || '"default"';
11656
+ var children = genChildren(el, state);
11657
+ var res = "_t(".concat(slotName).concat(children ? ",function(){return ".concat(children, "}") : '');
11658
+ var attrs = el.attrs || el.dynamicAttrs
11659
+ ? genProps((el.attrs || []).concat(el.dynamicAttrs || []).map(function (attr) { return ({
11660
+ // slot props are camelized
11661
+ name: camelize(attr.name),
11662
+ value: attr.value,
11663
+ dynamic: attr.dynamic
11664
+ }); }))
11665
+ : null;
11666
+ var bind = el.attrsMap['v-bind'];
11667
+ if ((attrs || bind) && !children) {
11668
+ res += ",null";
11669
+ }
11670
+ if (attrs) {
11671
+ res += ",".concat(attrs);
11672
+ }
11673
+ if (bind) {
11674
+ res += "".concat(attrs ? '' : ',null', ",").concat(bind);
11675
+ }
11676
+ return res + ')';
11677
+ }
11678
+ // componentName is el.component, take it as argument to shun flow's pessimistic refinement
11679
+ function genComponent(componentName, el, state) {
11680
+ var children = el.inlineTemplate ? null : genChildren(el, state, true);
11681
+ return "_c(".concat(componentName, ",").concat(genData(el, state)).concat(children ? ",".concat(children) : '', ")");
11682
+ }
11683
+ function genProps(props) {
11684
+ var staticProps = "";
11685
+ var dynamicProps = "";
11686
+ for (var i = 0; i < props.length; i++) {
11687
+ var prop = props[i];
11688
+ var value = transformSpecialNewlines(prop.value);
11689
+ if (prop.dynamic) {
11690
+ dynamicProps += "".concat(prop.name, ",").concat(value, ",");
11691
+ }
11692
+ else {
11693
+ staticProps += "\"".concat(prop.name, "\":").concat(value, ",");
11694
+ }
11695
+ }
11696
+ staticProps = "{".concat(staticProps.slice(0, -1), "}");
11697
+ if (dynamicProps) {
11698
+ return "_d(".concat(staticProps, ",[").concat(dynamicProps.slice(0, -1), "])");
11699
+ }
11700
+ else {
11701
+ return staticProps;
11702
+ }
11703
+ }
11704
+ // #3895, #4268
11705
+ function transformSpecialNewlines(text) {
11706
+ return text.replace(/\u2028/g, '\\u2028').replace(/\u2029/g, '\\u2029');
11707
+ }
11708
+
11709
+ // these keywords should not appear inside expressions, but operators like
11710
+ // typeof, instanceof and in are allowed
11711
+ var prohibitedKeywordRE = new RegExp('\\b' +
11712
+ ('do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,' +
11713
+ 'super,throw,while,yield,delete,export,import,return,switch,default,' +
11714
+ 'extends,finally,continue,debugger,function,arguments')
11715
+ .split(',')
11716
+ .join('\\b|\\b') +
11717
+ '\\b');
11718
+ // these unary operators should not be used as property/method names
11719
+ var unaryOperatorsRE = new RegExp('\\b' +
11720
+ 'delete,typeof,void'.split(',').join('\\s*\\([^\\)]*\\)|\\b') +
11721
+ '\\s*\\([^\\)]*\\)');
11722
+ // strip strings in expressions
11723
+ var stripStringRE = /'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`/g;
11724
+ // detect problematic expressions in a template
11725
+ function detectErrors(ast, warn) {
11726
+ if (ast) {
11727
+ checkNode(ast, warn);
11728
+ }
11729
+ }
11730
+ function checkNode(node, warn) {
11731
+ if (node.type === 1) {
11732
+ for (var name_1 in node.attrsMap) {
11733
+ if (dirRE.test(name_1)) {
11734
+ var value = node.attrsMap[name_1];
11735
+ if (value) {
11736
+ var range = node.rawAttrsMap[name_1];
11737
+ if (name_1 === 'v-for') {
11738
+ checkFor(node, "v-for=\"".concat(value, "\""), warn, range);
11739
+ }
11740
+ else if (name_1 === 'v-slot' || name_1[0] === '#') {
11741
+ checkFunctionParameterExpression(value, "".concat(name_1, "=\"").concat(value, "\""), warn, range);
11742
+ }
11743
+ else if (onRE.test(name_1)) {
11744
+ checkEvent(value, "".concat(name_1, "=\"").concat(value, "\""), warn, range);
11745
+ }
11746
+ else {
11747
+ checkExpression(value, "".concat(name_1, "=\"").concat(value, "\""), warn, range);
11748
+ }
11749
+ }
11750
+ }
11751
+ }
11752
+ if (node.children) {
11753
+ for (var i = 0; i < node.children.length; i++) {
11754
+ checkNode(node.children[i], warn);
11755
+ }
11756
+ }
11757
+ }
11758
+ else if (node.type === 2) {
11759
+ checkExpression(node.expression, node.text, warn, node);
11760
+ }
11761
+ }
11762
+ function checkEvent(exp, text, warn, range) {
11763
+ var stripped = exp.replace(stripStringRE, '');
11764
+ var keywordMatch = stripped.match(unaryOperatorsRE);
11765
+ if (keywordMatch && stripped.charAt(keywordMatch.index - 1) !== '$') {
11766
+ warn("avoid using JavaScript unary operator as property name: " +
11767
+ "\"".concat(keywordMatch[0], "\" in expression ").concat(text.trim()), range);
11768
+ }
11769
+ checkExpression(exp, text, warn, range);
11770
+ }
11771
+ function checkFor(node, text, warn, range) {
11772
+ checkExpression(node.for || '', text, warn, range);
11773
+ checkIdentifier(node.alias, 'v-for alias', text, warn, range);
11774
+ checkIdentifier(node.iterator1, 'v-for iterator', text, warn, range);
11775
+ checkIdentifier(node.iterator2, 'v-for iterator', text, warn, range);
11776
+ }
11777
+ function checkIdentifier(ident, type, text, warn, range) {
11778
+ if (typeof ident === 'string') {
11779
+ try {
11780
+ new Function("var ".concat(ident, "=_"));
11781
+ }
11782
+ catch (e) {
11783
+ warn("invalid ".concat(type, " \"").concat(ident, "\" in expression: ").concat(text.trim()), range);
11784
+ }
11785
+ }
11786
+ }
11787
+ function checkExpression(exp, text, warn, range) {
11788
+ try {
11789
+ new Function("return ".concat(exp));
11790
+ }
11791
+ catch (e) {
11792
+ var keywordMatch = exp
11793
+ .replace(stripStringRE, '')
11794
+ .match(prohibitedKeywordRE);
11795
+ if (keywordMatch) {
11796
+ warn("avoid using JavaScript keyword as property name: " +
11797
+ "\"".concat(keywordMatch[0], "\"\n Raw expression: ").concat(text.trim()), range);
11798
+ }
11799
+ else {
11800
+ warn("invalid expression: ".concat(e.message, " in\n\n") +
11801
+ " ".concat(exp, "\n\n") +
11802
+ " Raw expression: ".concat(text.trim(), "\n"), range);
11803
+ }
11804
+ }
11805
+ }
11806
+ function checkFunctionParameterExpression(exp, text, warn, range) {
11807
+ try {
11808
+ new Function(exp, '');
11809
+ }
11810
+ catch (e) {
11811
+ warn("invalid function parameter expression: ".concat(e.message, " in\n\n") +
11812
+ " ".concat(exp, "\n\n") +
11813
+ " Raw expression: ".concat(text.trim(), "\n"), range);
11814
+ }
11815
+ }
11816
+
11817
+ var range = 2;
11818
+ function generateCodeFrame(source, start, end) {
11819
+ if (start === void 0) { start = 0; }
11820
+ if (end === void 0) { end = source.length; }
11821
+ var lines = source.split(/\r?\n/);
11822
+ var count = 0;
11823
+ var res = [];
11824
+ for (var i = 0; i < lines.length; i++) {
11825
+ count += lines[i].length + 1;
11826
+ if (count >= start) {
11827
+ for (var j = i - range; j <= i + range || end > count; j++) {
11828
+ if (j < 0 || j >= lines.length)
11829
+ continue;
11830
+ res.push("".concat(j + 1).concat(repeat(" ", 3 - String(j + 1).length), "| ").concat(lines[j]));
11831
+ var lineLength = lines[j].length;
11832
+ if (j === i) {
11833
+ // push underline
11834
+ var pad = start - (count - lineLength) + 1;
11835
+ var length_1 = end > count ? lineLength - pad : end - start;
11836
+ res.push(" | " + repeat(" ", pad) + repeat("^", length_1));
11837
+ }
11838
+ else if (j > i) {
11839
+ if (end > count) {
11840
+ var length_2 = Math.min(end - count, lineLength);
11841
+ res.push(" | " + repeat("^", length_2));
11842
+ }
11843
+ count += lineLength + 1;
11844
+ }
11845
+ }
11846
+ break;
11847
+ }
11848
+ }
11849
+ return res.join('\n');
11850
+ }
11851
+ function repeat(str, n) {
11852
+ var result = '';
11853
+ if (n > 0) {
11854
+ // eslint-disable-next-line no-constant-condition
11855
+ while (true) {
11856
+ // eslint-disable-line
11857
+ if (n & 1)
11858
+ result += str;
11859
+ n >>>= 1;
11860
+ if (n <= 0)
11861
+ break;
11862
+ str += str;
11863
+ }
11864
+ }
11865
+ return result;
11866
+ }
11867
+
11868
+ function createFunction(code, errors) {
11869
+ try {
11870
+ return new Function(code);
11871
+ }
11872
+ catch (err) {
11873
+ errors.push({ err: err, code: code });
11874
+ return noop;
11875
+ }
11876
+ }
11877
+ function createCompileToFunctionFn(compile) {
11878
+ var cache = Object.create(null);
11879
+ return function compileToFunctions(template, options, vm) {
11880
+ options = extend({}, options);
11881
+ var warn = options.warn || warn$2;
11882
+ delete options.warn;
11883
+ /* istanbul ignore if */
11884
+ if (process.env.NODE_ENV !== 'production') {
11885
+ // detect possible CSP restriction
11886
+ try {
11887
+ new Function('return 1');
11888
+ }
11889
+ catch (e) {
11890
+ if (e.toString().match(/unsafe-eval|CSP/)) {
11891
+ warn('It seems you are using the standalone build of Vue.js in an ' +
11892
+ 'environment with Content Security Policy that prohibits unsafe-eval. ' +
11893
+ 'The template compiler cannot work in this environment. Consider ' +
11894
+ 'relaxing the policy to allow unsafe-eval or pre-compiling your ' +
11895
+ 'templates into render functions.');
11896
+ }
11897
+ }
11898
+ }
11899
+ // check cache
11900
+ var key = options.delimiters
11901
+ ? String(options.delimiters) + template
11902
+ : template;
11903
+ if (cache[key]) {
11904
+ return cache[key];
11905
+ }
11906
+ // compile
11907
+ var compiled = compile(template, options);
11908
+ // check compilation errors/tips
11909
+ if (process.env.NODE_ENV !== 'production') {
11910
+ if (compiled.errors && compiled.errors.length) {
11911
+ if (options.outputSourceRange) {
11912
+ compiled.errors.forEach(function (e) {
11913
+ warn("Error compiling template:\n\n".concat(e.msg, "\n\n") +
11914
+ generateCodeFrame(template, e.start, e.end), vm);
11915
+ });
11916
+ }
11917
+ else {
11918
+ warn("Error compiling template:\n\n".concat(template, "\n\n") +
11919
+ compiled.errors.map(function (e) { return "- ".concat(e); }).join('\n') +
11920
+ '\n', vm);
11921
+ }
11922
+ }
11923
+ if (compiled.tips && compiled.tips.length) {
11924
+ if (options.outputSourceRange) {
11925
+ compiled.tips.forEach(function (e) { return tip(e.msg, vm); });
11926
+ }
11927
+ else {
11928
+ compiled.tips.forEach(function (msg) { return tip(msg, vm); });
11929
+ }
11930
+ }
11931
+ }
11932
+ // turn code into functions
11933
+ var res = {};
11934
+ var fnGenErrors = [];
11935
+ res.render = createFunction(compiled.render, fnGenErrors);
11936
+ res.staticRenderFns = compiled.staticRenderFns.map(function (code) {
11937
+ return createFunction(code, fnGenErrors);
11938
+ });
11939
+ // check function generation errors.
11940
+ // this should only happen if there is a bug in the compiler itself.
11941
+ // mostly for codegen development use
11942
+ /* istanbul ignore if */
11943
+ if (process.env.NODE_ENV !== 'production') {
11944
+ if ((!compiled.errors || !compiled.errors.length) && fnGenErrors.length) {
11945
+ warn("Failed to generate render function:\n\n" +
11946
+ fnGenErrors
11947
+ .map(function (_a) {
11948
+ var err = _a.err, code = _a.code;
11949
+ return "".concat(err.toString(), " in\n\n").concat(code, "\n");
11950
+ })
11951
+ .join('\n'), vm);
11952
+ }
11953
+ }
11954
+ return (cache[key] = res);
11955
+ };
11956
+ }
11957
+
11958
+ function createCompilerCreator(baseCompile) {
11959
+ return function createCompiler(baseOptions) {
11960
+ function compile(template, options) {
11961
+ var finalOptions = Object.create(baseOptions);
11962
+ var errors = [];
11963
+ var tips = [];
11964
+ var warn = function (msg, range, tip) {
11965
+ (tip ? tips : errors).push(msg);
11966
+ };
11967
+ if (options) {
11968
+ if (process.env.NODE_ENV !== 'production' && options.outputSourceRange) {
11969
+ // $flow-disable-line
11970
+ var leadingSpaceLength_1 = template.match(/^\s*/)[0].length;
11971
+ warn = function (msg, range, tip) {
11972
+ var data = typeof msg === 'string' ? { msg: msg } : msg;
11973
+ if (range) {
11974
+ if (range.start != null) {
11975
+ data.start = range.start + leadingSpaceLength_1;
11976
+ }
11977
+ if (range.end != null) {
11978
+ data.end = range.end + leadingSpaceLength_1;
11979
+ }
11980
+ }
11981
+ (tip ? tips : errors).push(data);
11982
+ };
11983
+ }
11984
+ // merge custom modules
11985
+ if (options.modules) {
11986
+ finalOptions.modules = (baseOptions.modules || []).concat(options.modules);
11987
+ }
11988
+ // merge custom directives
11989
+ if (options.directives) {
11990
+ finalOptions.directives = extend(Object.create(baseOptions.directives || null), options.directives);
11991
+ }
11992
+ // copy other options
11993
+ for (var key in options) {
11994
+ if (key !== 'modules' && key !== 'directives') {
11995
+ finalOptions[key] = options[key];
11996
+ }
11997
+ }
11998
+ }
11999
+ finalOptions.warn = warn;
12000
+ var compiled = baseCompile(template.trim(), finalOptions);
12001
+ if (process.env.NODE_ENV !== 'production') {
12002
+ detectErrors(compiled.ast, warn);
12003
+ }
12004
+ compiled.errors = errors;
12005
+ compiled.tips = tips;
12006
+ return compiled;
12007
+ }
12008
+ return {
12009
+ compile: compile,
12010
+ compileToFunctions: createCompileToFunctionFn(compile)
12011
+ };
12012
+ };
12013
+ }
12014
+
12015
+ // `createCompilerCreator` allows creating compilers that use alternative
12016
+ // parser/optimizer/codegen, e.g the SSR optimizing compiler.
12017
+ // Here we just export a default compiler using the default parts.
12018
+ var createCompiler = createCompilerCreator(function baseCompile(template, options) {
12019
+ var ast = parse(template.trim(), options);
12020
+ if (options.optimize !== false) {
12021
+ optimize(ast, options);
12022
+ }
12023
+ var code = generate(ast, options);
12024
+ return {
12025
+ ast: ast,
12026
+ render: code.render,
12027
+ staticRenderFns: code.staticRenderFns
12028
+ };
12029
+ });
12030
+
12031
+ var _a = createCompiler(baseOptions), compileToFunctions = _a.compileToFunctions;
12032
 
12033
+ // check whether current browser encodes a char inside attribute values
12034
+ var div;
12035
+ function getShouldDecode(href) {
12036
+ div = div || document.createElement('div');
12037
+ div.innerHTML = href ? "<a href=\"\n\"/>" : "<div a=\"\n\"/>";
12038
+ return div.innerHTML.indexOf('&#10;') > 0;
12039
+ }
12040
+ // #3663: IE encodes newlines inside attribute values while other browsers don't
12041
+ var shouldDecodeNewlines = inBrowser ? getShouldDecode(false) : false;
12042
+ // #6828: chrome encodes content in a[href]
12043
+ var shouldDecodeNewlinesForHref = inBrowser
12044
+ ? getShouldDecode(true)
12045
+ : false;
12046
+
12047
+ var idToTemplate = cached(function (id) {
12048
+ var el = query(id);
12049
+ return el && el.innerHTML;
12050
+ });
12051
+ var mount = Vue.prototype.$mount;
12052
+ Vue.prototype.$mount = function (el, hydrating) {
12053
+ el = el && query(el);
12054
+ /* istanbul ignore if */
12055
+ if (el === document.body || el === document.documentElement) {
12056
+ process.env.NODE_ENV !== 'production' &&
12057
+ warn$2("Do not mount Vue to <html> or <body> - mount to normal elements instead.");
12058
+ return this;
12059
+ }
12060
+ var options = this.$options;
12061
+ // resolve template/el and convert to render function
12062
+ if (!options.render) {
12063
+ var template = options.template;
12064
+ if (template) {
12065
+ if (typeof template === 'string') {
12066
+ if (template.charAt(0) === '#') {
12067
+ template = idToTemplate(template);
12068
+ /* istanbul ignore if */
12069
+ if (process.env.NODE_ENV !== 'production' && !template) {
12070
+ warn$2("Template element not found or is empty: ".concat(options.template), this);
12071
+ }
12072
+ }
12073
+ }
12074
+ else if (template.nodeType) {
12075
+ template = template.innerHTML;
12076
+ }
12077
+ else {
12078
+ if (process.env.NODE_ENV !== 'production') {
12079
+ warn$2('invalid template option:' + template, this);
12080
+ }
12081
+ return this;
12082
+ }
12083
+ }
12084
+ else if (el) {
12085
+ // @ts-expect-error
12086
+ template = getOuterHTML(el);
12087
+ }
12088
+ if (template) {
12089
+ /* istanbul ignore if */
12090
+ if (process.env.NODE_ENV !== 'production' && config.performance && mark) {
12091
+ mark('compile');
12092
+ }
12093
+ var _a = compileToFunctions(template, {
12094
+ outputSourceRange: process.env.NODE_ENV !== 'production',
12095
+ shouldDecodeNewlines: shouldDecodeNewlines,
12096
+ shouldDecodeNewlinesForHref: shouldDecodeNewlinesForHref,
12097
+ delimiters: options.delimiters,
12098
+ comments: options.comments
12099
+ }, this), render = _a.render, staticRenderFns = _a.staticRenderFns;
12100
+ options.render = render;
12101
+ options.staticRenderFns = staticRenderFns;
12102
+ /* istanbul ignore if */
12103
+ if (process.env.NODE_ENV !== 'production' && config.performance && mark) {
12104
+ mark('compile end');
12105
+ measure("vue ".concat(this._name, " compile"), 'compile', 'compile end');
12106
+ }
12107
+ }
12108
+ }
12109
+ return mount.call(this, el, hydrating);
12110
+ };
12111
+ /**
12112
+ * Get outerHTML of elements, taking care
12113
+ * of SVG elements in IE as well.
12114
+ */
12115
+ function getOuterHTML(el) {
12116
+ if (el.outerHTML) {
12117
+ return el.outerHTML;
12118
+ }
12119
+ else {
12120
+ var container = document.createElement('div');
12121
+ container.appendChild(el.cloneNode(true));
12122
+ return container.innerHTML;
12123
+ }
12124
+ }
12125
  Vue.compile = compileToFunctions;
12126
 
12127
+
12128
 
12129
  /* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(18), __webpack_require__(7), __webpack_require__(111).setImmediate))
12130
 
13081
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
13082
 
13083
  "use strict";
13084
+ /* WEBPACK VAR INJECTION */(function(process) {/* unused harmony export NavigationFailureType */
13085
+ /* unused harmony export RouterLink */
13086
+ /* unused harmony export RouterView */
13087
+ /* unused harmony export START_LOCATION */
13088
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return VueRouter$1; });
13089
+ /* unused harmony export isNavigationFailure */
13090
+ /* unused harmony export version */
13091
+ /*!
13092
+ * vue-router v3.6.0
13093
+ * (c) 2022 Evan You
13094
  * @license MIT
13095
  */
13096
  /* */
13608
  }
13609
 
13610
  function cleanPath (path) {
13611
+ return path.replace(/\/(?:\s*\/)+/g, '/')
13612
  }
13613
 
13614
  var isarray = Array.isArray || function (arr) {
14180
  }
14181
  },
14182
  render: function render (h) {
14183
+ var this$1$1 = this;
14184
 
14185
  var router = this.$router;
14186
  var current = this.$route;
14223
 
14224
  var handler = function (e) {
14225
  if (guardEvent(e)) {
14226
+ if (this$1$1.replace) {
14227
  router.replace(location, noop);
14228
  } else {
14229
  router.push(location, noop);
14539
  warn(
14540
  false,
14541
  "Named Route '" + (route.name) + "' has a default child route. " +
14542
+ "When navigating to this named route (:to=\"{name: '" + (route.name) + "'}\"), " +
14543
  "the default child route will not be rendered. Remove the name from " +
14544
  "this route and use the name of the default child route for named " +
14545
  "links instead."
15083
  pushState(url, true);
15084
  }
15085
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15086
  // When changing thing, also edit router.d.ts
15087
  var NavigationFailureType = {
15088
  redirected: 2,
15168
 
15169
  /* */
15170
 
15171
+ function runQueue (queue, fn, cb) {
15172
+ var step = function (index) {
15173
+ if (index >= queue.length) {
15174
+ cb();
15175
+ } else {
15176
+ if (queue[index]) {
15177
+ fn(queue[index], function () {
15178
+ step(index + 1);
15179
+ });
15180
+ } else {
15181
+ step(index + 1);
15182
+ }
15183
+ }
15184
+ };
15185
+ step(0);
15186
+ }
15187
+
15188
+ /* */
15189
+
15190
  function resolveAsyncComponents (matched) {
15191
  return function (to, from, next) {
15192
  var hasAsync = false;
15333
  onComplete,
15334
  onAbort
15335
  ) {
15336
+ var this$1$1 = this;
15337
 
15338
  var route;
15339
  // catch redirect option https://github.com/vuejs/vue-router/issues/3201
15350
  this.confirmTransition(
15351
  route,
15352
  function () {
15353
+ this$1$1.updateRoute(route);
15354
  onComplete && onComplete(route);
15355
+ this$1$1.ensureURL();
15356
+ this$1$1.router.afterHooks.forEach(function (hook) {
15357
  hook && hook(route, prev);
15358
  });
15359
 
15360
  // fire ready cbs once
15361
+ if (!this$1$1.ready) {
15362
+ this$1$1.ready = true;
15363
+ this$1$1.readyCbs.forEach(function (cb) {
15364
  cb(route);
15365
  });
15366
  }
15369
  if (onAbort) {
15370
  onAbort(err);
15371
  }
15372
+ if (err && !this$1$1.ready) {
15373
  // Initial redirection should not mark the history as ready yet
15374
  // because it's triggered by the redirection instead
15375
  // https://github.com/vuejs/vue-router/issues/3225
15376
  // https://github.com/vuejs/vue-router/issues/3331
15377
  if (!isNavigationFailure(err, NavigationFailureType.redirected) || prev !== START) {
15378
+ this$1$1.ready = true;
15379
+ this$1$1.readyErrorCbs.forEach(function (cb) {
15380
  cb(err);
15381
  });
15382
  }
15386
  };
15387
 
15388
  History.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {
15389
+ var this$1$1 = this;
15390
 
15391
  var current = this.current;
15392
  this.pending = route;
15395
  // https://github.com/vuejs/vue-router/pull/3047 before that change,
15396
  // redirect and aborted navigation would produce an err == null
15397
  if (!isNavigationFailure(err) && isError(err)) {
15398
+ if (this$1$1.errorCbs.length) {
15399
+ this$1$1.errorCbs.forEach(function (cb) {
15400
  cb(err);
15401
  });
15402
  } else {
15445
  );
15446
 
15447
  var iterator = function (hook, next) {
15448
+ if (this$1$1.pending !== route) {
15449
  return abort(createNavigationCancelledError(current, route))
15450
  }
15451
  try {
15452
  hook(route, current, function (to) {
15453
  if (to === false) {
15454
  // next(false) -> abort navigation, ensure current URL
15455
+ this$1$1.ensureURL(true);
15456
  abort(createNavigationAbortedError(current, route));
15457
  } else if (isError(to)) {
15458
+ this$1$1.ensureURL(true);
15459
  abort(to);
15460
  } else if (
15461
  typeof to === 'string' ||
15465
  // next('/') or next({ path: '/' }) -> redirect
15466
  abort(createNavigationRedirectedError(current, route));
15467
  if (typeof to === 'object' && to.replace) {
15468
+ this$1$1.replace(to);
15469
  } else {
15470
+ this$1$1.push(to);
15471
  }
15472
  } else {
15473
  // confirm transition and pass on the value
15483
  // wait until async components are resolved before
15484
  // extracting in-component enter guards
15485
  var enterGuards = extractEnterGuards(activated);
15486
+ var queue = enterGuards.concat(this$1$1.router.resolveHooks);
15487
  runQueue(queue, iterator, function () {
15488
+ if (this$1$1.pending !== route) {
15489
  return abort(createNavigationCancelledError(current, route))
15490
  }
15491
+ this$1$1.pending = null;
15492
  onComplete(route);
15493
+ if (this$1$1.router.app) {
15494
+ this$1$1.router.app.$nextTick(function () {
15495
  handleRouteEntered(route);
15496
  });
15497
  }
15648
  HTML5History.prototype.constructor = HTML5History;
15649
 
15650
  HTML5History.prototype.setupListeners = function setupListeners () {
15651
+ var this$1$1 = this;
15652
 
15653
  if (this.listeners.length > 0) {
15654
  return
15663
  }
15664
 
15665
  var handleRoutingEvent = function () {
15666
+ var current = this$1$1.current;
15667
 
15668
  // Avoiding first `popstate` event dispatched in some browsers but first
15669
  // history route not updated since async guard at the same time.
15670
+ var location = getLocation(this$1$1.base);
15671
+ if (this$1$1.current === START && location === this$1$1._startLocation) {
15672
  return
15673
  }
15674
 
15675
+ this$1$1.transitionTo(location, function (route) {
15676
  if (supportsScroll) {
15677
  handleScroll(router, route, current, true);
15678
  }
15689
  };
15690
 
15691
  HTML5History.prototype.push = function push (location, onComplete, onAbort) {
15692
+ var this$1$1 = this;
15693
 
15694
  var ref = this;
15695
  var fromRoute = ref.current;
15696
  this.transitionTo(location, function (route) {
15697
+ pushState(cleanPath(this$1$1.base + route.fullPath));
15698
+ handleScroll(this$1$1.router, route, fromRoute, false);
15699
  onComplete && onComplete(route);
15700
  }, onAbort);
15701
  };
15702
 
15703
  HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {
15704
+ var this$1$1 = this;
15705
 
15706
  var ref = this;
15707
  var fromRoute = ref.current;
15708
  this.transitionTo(location, function (route) {
15709
+ replaceState(cleanPath(this$1$1.base + route.fullPath));
15710
+ handleScroll(this$1$1.router, route, fromRoute, false);
15711
  onComplete && onComplete(route);
15712
  }, onAbort);
15713
  };
15759
  // this is delayed until the app mounts
15760
  // to avoid the hashchange listener being fired too early
15761
  HashHistory.prototype.setupListeners = function setupListeners () {
15762
+ var this$1$1 = this;
15763
 
15764
  if (this.listeners.length > 0) {
15765
  return
15774
  }
15775
 
15776
  var handleRoutingEvent = function () {
15777
+ var current = this$1$1.current;
15778
  if (!ensureSlash()) {
15779
  return
15780
  }
15781
+ this$1$1.transitionTo(getHash(), function (route) {
15782
  if (supportsScroll) {
15783
+ handleScroll(this$1$1.router, route, current, true);
15784
  }
15785
  if (!supportsPushState) {
15786
  replaceHash(route.fullPath);
15798
  };
15799
 
15800
  HashHistory.prototype.push = function push (location, onComplete, onAbort) {
15801
+ var this$1$1 = this;
15802
 
15803
  var ref = this;
15804
  var fromRoute = ref.current;
15806
  location,
15807
  function (route) {
15808
  pushHash(route.fullPath);
15809
+ handleScroll(this$1$1.router, route, fromRoute, false);
15810
  onComplete && onComplete(route);
15811
  },
15812
  onAbort
15814
  };
15815
 
15816
  HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {
15817
+ var this$1$1 = this;
15818
 
15819
  var ref = this;
15820
  var fromRoute = ref.current;
15822
  location,
15823
  function (route) {
15824
  replaceHash(route.fullPath);
15825
+ handleScroll(this$1$1.router, route, fromRoute, false);
15826
  onComplete && onComplete(route);
15827
  },
15828
  onAbort
15914
  AbstractHistory.prototype.constructor = AbstractHistory;
15915
 
15916
  AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {
15917
+ var this$1$1 = this;
15918
 
15919
  this.transitionTo(
15920
  location,
15921
  function (route) {
15922
+ this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index + 1).concat(route);
15923
+ this$1$1.index++;
15924
  onComplete && onComplete(route);
15925
  },
15926
  onAbort
15928
  };
15929
 
15930
  AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {
15931
+ var this$1$1 = this;
15932
 
15933
  this.transitionTo(
15934
  location,
15935
  function (route) {
15936
+ this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index).concat(route);
15937
  onComplete && onComplete(route);
15938
  },
15939
  onAbort
15941
  };
15942
 
15943
  AbstractHistory.prototype.go = function go (n) {
15944
+ var this$1$1 = this;
15945
 
15946
  var targetIndex = this.index + n;
15947
  if (targetIndex < 0 || targetIndex >= this.stack.length) {
15951
  this.confirmTransition(
15952
  route,
15953
  function () {
15954
+ var prev = this$1$1.current;
15955
+ this$1$1.index = targetIndex;
15956
+ this$1$1.updateRoute(route);
15957
+ this$1$1.router.afterHooks.forEach(function (hook) {
15958
  hook && hook(route, prev);
15959
  });
15960
  },
15961
  function (err) {
15962
  if (isNavigationFailure(err, NavigationFailureType.duplicated)) {
15963
+ this$1$1.index = targetIndex;
15964
  }
15965
  }
15966
  );
15980
 
15981
  /* */
15982
 
15983
+
15984
+
15985
  var VueRouter = function VueRouter (options) {
15986
  if ( options === void 0 ) options = {};
15987
 
16035
  };
16036
 
16037
  VueRouter.prototype.init = function init (app /* Vue component instance */) {
16038
+ var this$1$1 = this;
16039
 
16040
  process.env.NODE_ENV !== 'production' &&
16041
  assert(
16050
  // https://github.com/vuejs/vue-router/issues/2639
16051
  app.$once('hook:destroyed', function () {
16052
  // clean out app from this.apps array once destroyed
16053
+ var index = this$1$1.apps.indexOf(app);
16054
+ if (index > -1) { this$1$1.apps.splice(index, 1); }
16055
  // ensure we still have a main app or null if no apps
16056
  // we do not release the router so it can be reused
16057
+ if (this$1$1.app === app) { this$1$1.app = this$1$1.apps[0] || null; }
16058
 
16059
+ if (!this$1$1.app) { this$1$1.history.teardown(); }
16060
  });
16061
 
16062
  // main app previously initialized
16072
  if (history instanceof HTML5History || history instanceof HashHistory) {
16073
  var handleInitialScroll = function (routeOrError) {
16074
  var from = history.current;
16075
+ var expectScroll = this$1$1.options.scrollBehavior;
16076
  var supportsScroll = supportsPushState && expectScroll;
16077
 
16078
  if (supportsScroll && 'fullPath' in routeOrError) {
16079
+ handleScroll(this$1$1, routeOrError, from, false);
16080
  }
16081
  };
16082
  var setupListeners = function (routeOrError) {
16091
  }
16092
 
16093
  history.listen(function (route) {
16094
+ this$1$1.apps.forEach(function (app) {
16095
  app._route = route;
16096
  });
16097
  });
16118
  };
16119
 
16120
  VueRouter.prototype.push = function push (location, onComplete, onAbort) {
16121
+ var this$1$1 = this;
16122
 
16123
  // $flow-disable-line
16124
  if (!onComplete && !onAbort && typeof Promise !== 'undefined') {
16125
  return new Promise(function (resolve, reject) {
16126
+ this$1$1.history.push(location, resolve, reject);
16127
  })
16128
  } else {
16129
  this.history.push(location, onComplete, onAbort);
16131
  };
16132
 
16133
  VueRouter.prototype.replace = function replace (location, onComplete, onAbort) {
16134
+ var this$1$1 = this;
16135
 
16136
  // $flow-disable-line
16137
  if (!onComplete && !onAbort && typeof Promise !== 'undefined') {
16138
  return new Promise(function (resolve, reject) {
16139
+ this$1$1.history.replace(location, resolve, reject);
16140
  })
16141
  } else {
16142
  this.history.replace(location, onComplete, onAbort);
16218
 
16219
  Object.defineProperties( VueRouter.prototype, prototypeAccessors );
16220
 
16221
+ var VueRouter$1 = VueRouter;
16222
+
16223
  function registerHook (list, fn) {
16224
  list.push(fn);
16225
  return function () {
16233
  return base ? cleanPath(base + '/' + path) : path
16234
  }
16235
 
16236
+ if (inBrowser && window.Vue) {
16237
+ window.Vue.use(VueRouter);
16238
+ }
16239
+
16240
+ // We cannot remove this as it would be a breaking change
16241
  VueRouter.install = install;
16242
+ VueRouter.version = '3.6.0';
16243
  VueRouter.isNavigationFailure = isNavigationFailure;
16244
  VueRouter.NavigationFailureType = NavigationFailureType;
16245
  VueRouter.START_LOCATION = START;
16246
 
16247
+ var version = '3.6.0';
16248
+
 
16249
 
 
16250
 
16251
  /* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(18)))
16252
 
19620
 
19621
 
19622
  //
19623
+
19624
+ // Check if the request came from the browser and is not server rendered
19625
+ if (typeof window !== 'undefined') {
19626
+ Promise.resolve().then(function () { return slick$1; });
19627
+ }
19628
+
19629
+ var script = {
19630
+ props: {
19631
+ options: {
19632
+ type: Object,
19633
+ default: function() {
19634
+ return {};
19635
+ },
19636
+ },
19637
+ },
19638
+
19639
+ mounted: function() {
19640
+ this.create();
19641
+ },
19642
+
19643
+ destroyed: function() {
19644
+ __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el).slick('unslick');
19645
+ },
19646
+
19647
+ methods: {
19648
+ create: function() {
19649
+ var $slick = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el);
19650
+
19651
+ $slick.on('afterChange', this.onAfterChange);
19652
+ $slick.on('beforeChange', this.onBeforeChange);
19653
+ $slick.on('breakpoint', this.onBreakpoint);
19654
+ $slick.on('destroy', this.onDestroy);
19655
+ $slick.on('edge', this.onEdge);
19656
+ $slick.on('init', this.onInit);
19657
+ $slick.on('reInit', this.onReInit);
19658
+ $slick.on('setPosition', this.onSetPosition);
19659
+ $slick.on('swipe', this.onSwipe);
19660
+ $slick.on('lazyLoaded', this.onLazyLoaded);
19661
+ $slick.on('lazyLoadError', this.onLazyLoadError);
19662
+
19663
+ $slick.slick(this.options);
19664
+ },
19665
+
19666
+ destroy: function() {
19667
+ var $slick = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el);
19668
+
19669
+ $slick.off('afterChange', this.onAfterChange);
19670
+ $slick.off('beforeChange', this.onBeforeChange);
19671
+ $slick.off('breakpoint', this.onBreakpoint);
19672
+ $slick.off('destroy', this.onDestroy);
19673
+ $slick.off('edge', this.onEdge);
19674
+ $slick.off('init', this.onInit);
19675
+ $slick.off('reInit', this.onReInit);
19676
+ $slick.off('setPosition', this.onSetPosition);
19677
+ $slick.off('swipe', this.onSwipe);
19678
+ $slick.off('lazyLoaded', this.onLazyLoaded);
19679
+ $slick.off('lazyLoadError', this.onLazyLoadError);
19680
+ __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el).slick('unslick');
19681
+ },
19682
+
19683
+ reSlick: function() {
19684
+ this.destroy();
19685
+ this.create();
19686
+ },
19687
+
19688
+ next: function() {
19689
+ __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el).slick('slickNext');
19690
+ },
19691
+
19692
+ prev: function() {
19693
+ __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el).slick('slickPrev');
19694
+ },
19695
+
19696
+ pause: function() {
19697
+ __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el).slick('slickPause');
19698
+ },
19699
+
19700
+ play: function() {
19701
+ __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el).slick('slickPlay');
19702
+ },
19703
+
19704
+ goTo: function(index, dontAnimate) {
19705
+ __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el).slick('slickGoTo', index, dontAnimate);
19706
+ },
19707
+
19708
+ currentSlide: function() {
19709
+ return __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el).slick('slickCurrentSlide');
19710
+ },
19711
+
19712
+ add: function(element, index, addBefore) {
19713
+ __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el).slick('slickAdd', element, index, addBefore);
19714
+ },
19715
+
19716
+ remove: function(index, removeBefore) {
19717
+ __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el).slick('slickRemove', index, removeBefore);
19718
+ },
19719
+
19720
+ filter: function(filterData) {
19721
+ __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el).slick('slickFilter', filterData);
19722
+ },
19723
+
19724
+ unfilter: function() {
19725
+ __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el).slick('slickUnfilter');
19726
+ },
19727
+
19728
+ getOption: function(option) {
19729
+ __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el).slick('slickGetOption', option);
19730
+ },
19731
+
19732
+ setOption: function(option, value, refresh) {
19733
+ __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el).slick('slickSetOption', option, value, refresh);
19734
+ },
19735
+
19736
+ setPosition: function() {
19737
+ __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$el).slick('setPosition');
19738
+ },
19739
+
19740
+ // Events
19741
+ onAfterChange: function(event, slick, currentSlide) {
19742
+ this.$emit('afterChange', event, slick, currentSlide);
19743
+ },
19744
+
19745
+ onBeforeChange: function(event, slick, currentSlide, nextSlide) {
19746
+ this.$emit('beforeChange', event, slick, currentSlide, nextSlide);
19747
+ },
19748
+
19749
+ onBreakpoint: function(event, slick, breakpoint) {
19750
+ this.$emit('breakpoint', event, slick, breakpoint);
19751
+ },
19752
+
19753
+ onDestroy: function(event, slick) {
19754
+ this.$emit('destroy', event, slick);
19755
+ },
19756
+
19757
+ onEdge: function(event, slick, direction) {
19758
+ this.$emit('edge', event, slick, direction);
19759
+ },
19760
+
19761
+ onInit: function(event, slick) {
19762
+ this.$emit('init', event, slick);
19763
+ },
19764
+
19765
+ onReInit: function(event, slick) {
19766
+ this.$emit('reInit', event, slick);
19767
+ },
19768
+
19769
+ onSetPosition: function(event, slick) {
19770
+ this.$emit('setPosition', event, slick);
19771
+ },
19772
+
19773
+ onSwipe: function(event, slick, direction) {
19774
+ this.$emit('swipe', event, slick, direction);
19775
+ },
19776
+
19777
+ onLazyLoaded: function(event, slick, image, imageSource) {
19778
+ this.$emit('lazyLoaded', event, slick, image, imageSource);
19779
+ },
19780
+
19781
+ onLazyLoadError: function(event, slick, image, imageSource) {
19782
+ this.$emit('lazyLoadError', event, slick, image, imageSource);
19783
+ },
19784
+ },
19785
+
19786
  };
19787
 
19788
  function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier
19908
  undefined
19909
  );
19910
 
19911
+ var install = function installMyComponent(Vue, opt) {
19912
+ // Don't install if already installed, or SSR
19913
+ if (install.installed || Vue.prototype.$isServer) { return }
19914
+ install.installed = true;
19915
+
19916
+ Vue.component('slick', Slick);
19917
+ };
19918
+
19919
+ // Inject install function into component - allows component
19920
+ // to be registered via Vue.use() as well as Vue.component()
19921
  Slick.install = install;
19922
 
19923
  function createCommonjsModule(fn, module) {
assets/js/vue-vendor.min.js CHANGED
@@ -1,18 +1,19 @@
1
- !function(t){var e=window.dokanWebpack;window.dokanWebpack=function(n,o,a){for(var s,l,c,u=0,d=[];u<n.length;u++)l=n[u],r[l]&&d.push(r[l][0]),r[l]=0;for(s in o)Object.prototype.hasOwnProperty.call(o,s)&&(t[s]=o[s]);for(e&&e(n,o,a);d.length;)d.shift()();if(a)for(u=0;u<a.length;u++)c=i(i.s=a[u]);return c};var n={},r={7:0};function i(e){if(n[e])return n[e].exports;var r=n[e]={i:e,l:!1,exports:{}};return t[e].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.m=t,i.c=n,i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:n})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i.oe=function(t){throw console.error(t),t},i(i.s=268)}([function(t,e){t.exports=function(t,e,n,r,i,o){var a,s=t=t||{},l=typeof t.default;"object"!==l&&"function"!==l||(a=t,s=t.default);var c,u="function"==typeof s?s.options:s;if(e&&(u.render=e.render,u.staticRenderFns=e.staticRenderFns,u._compiled=!0),n&&(u.functional=!0),i&&(u._scopeId=i),o?(c=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},u._ssrRegister=c):r&&(c=r),c){var d=u.functional,p=d?u.render:u.beforeCreate;d?(u._injectStyles=c,u.render=function(t,e){return c.call(e),p(t,e)}):u.beforeCreate=p?[].concat(p,c):[c]}return{esModule:a,exports:s,options:u}}},,,function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t,n){
2
  /*!
3
- * Vue.js v2.6.14
4
- * (c) 2014-2021 Evan You
5
  * Released under the MIT License.
6
  */
7
- var r=Object.freeze({});function i(t){return void 0===t||null===t}function o(t){return void 0!==t&&null!==t}function a(t){return!0===t}function s(t){return"string"==typeof t||"number"==typeof t||"symbol"==typeof t||"boolean"==typeof t}function l(t){return null!==t&&"object"==typeof t}var c=Object.prototype.toString;function u(t){return c.call(t).slice(8,-1)}function d(t){return"[object Object]"===c.call(t)}function p(t){return"[object RegExp]"===c.call(t)}function f(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function h(t){return o(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function m(t){return null==t?"":Array.isArray(t)||d(t)&&t.toString===c?JSON.stringify(t,null,2):String(t)}function v(t){var e=parseFloat(t);return isNaN(e)?t:e}function g(t,e){for(var n=Object.create(null),r=t.split(","),i=0;i<r.length;i++)n[r[i]]=!0;return e?function(t){return n[t.toLowerCase()]}:function(t){return n[t]}}var y=g("slot,component",!0),b=g("key,ref,slot,slot-scope,is");function w(t,e){if(t.length){var n=t.indexOf(e);if(n>-1)return t.splice(n,1)}}var _=Object.prototype.hasOwnProperty;function x(t,e){return _.call(t,e)}function k(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var S=/-(\w)/g,C=k(function(t){return t.replace(S,function(t,e){return e?e.toUpperCase():""})}),O=k(function(t){return t.charAt(0).toUpperCase()+t.slice(1)}),E=/\B([A-Z])/g,T=k(function(t){return t.replace(E,"-$1").toLowerCase()});var A=Function.prototype.bind?function(t,e){return t.bind(e)}:function(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n};function $(t,e){e=e||0;for(var n=t.length-e,r=new Array(n);n--;)r[n]=t[n+e];return r}function D(t,e){for(var n in e)t[n]=e[n];return t}function N(t){for(var e={},n=0;n<t.length;n++)t[n]&&D(e,t[n]);return e}function P(t,e,n){}var j=function(t,e,n){return!1},M=function(t){return t};function L(t,e){if(t===e)return!0;var n=l(t),r=l(e);if(!n||!r)return!n&&!r&&String(t)===String(e);try{var i=Array.isArray(t),o=Array.isArray(e);if(i&&o)return t.length===e.length&&t.every(function(t,n){return L(t,e[n])});if(t instanceof Date&&e instanceof Date)return t.getTime()===e.getTime();if(i||o)return!1;var a=Object.keys(t),s=Object.keys(e);return a.length===s.length&&a.every(function(n){return L(t[n],e[n])})}catch(t){return!1}}function R(t,e){for(var n=0;n<t.length;n++)if(L(t[n],e))return n;return-1}function I(t){var e=!1;return function(){e||(e=!0,t.apply(this,arguments))}}var V="data-server-rendered",F=["component","directive","filter"],B=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated","errorCaptured","serverPrefetch"],H={optionMergeStrategies:Object.create(null),silent:!1,productionTip:"production"!==production.NODE_ENV,devtools:"production"!==production.NODE_ENV,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:j,isReservedAttr:j,isUnknownElement:j,getTagNamespace:P,parsePlatformTagName:M,mustUseProp:j,async:!0,_lifecycleHooks:B},z=/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/;function U(t){var e=(t+"").charCodeAt(0);return 36===e||95===e}function q(t,e,n,r){Object.defineProperty(t,e,{value:n,enumerable:!!r,writable:!0,configurable:!0})}var W=new RegExp("[^"+z.source+".$_\\d]");var Y,G="__proto__"in{},X="undefined"!=typeof window,K="undefined"!=typeof WXEnvironment&&!!WXEnvironment.platform,J=K&&WXEnvironment.platform.toLowerCase(),Z=X&&window.navigator.userAgent.toLowerCase(),Q=Z&&/msie|trident/.test(Z),tt=Z&&Z.indexOf("msie 9.0")>0,et=Z&&Z.indexOf("edge/")>0,nt=(Z&&Z.indexOf("android"),Z&&/iphone|ipad|ipod|ios/.test(Z)||"ios"===J),rt=(Z&&/chrome\/\d+/.test(Z),Z&&/phantomjs/.test(Z),Z&&Z.match(/firefox\/(\d+)/)),it={}.watch,ot=!1;if(X)try{var at={};Object.defineProperty(at,"passive",{get:function(){ot=!0}}),window.addEventListener("test-passive",null,at)}catch(t){}var st=function(){return void 0===Y&&(Y=!X&&!K&&void 0!==t&&(t.process&&"server"===t.process.env.VUE_ENV)),Y},lt=X&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function ct(t){return"function"==typeof t&&/native code/.test(t.toString())}var ut,dt="undefined"!=typeof Symbol&&ct(Symbol)&&"undefined"!=typeof Reflect&&ct(Reflect.ownKeys);ut="undefined"!=typeof Set&&ct(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var pt=P,ft=P,ht=P,mt=P;if("production"!==production.NODE_ENV){var vt="undefined"!=typeof console,gt=/(?:^|[-_])(\w)/g;pt=function(t,e){var n=e?ht(e):"";H.warnHandler?H.warnHandler.call(null,t,e,n):vt&&!H.silent&&console.error("[Vue warn]: "+t+n)},ft=function(t,e){vt&&!H.silent&&console.warn("[Vue tip]: "+t+(e?ht(e):""))},mt=function(t,e){if(t.$root===t)return"<Root>";var n="function"==typeof t&&null!=t.cid?t.options:t._isVue?t.$options||t.constructor.options:t,r=n.name||n._componentTag,i=n.__file;if(!r&&i){var o=i.match(/([^/\\]+)\.vue$/);r=o&&o[1]}return(r?"<"+function(t){return t.replace(gt,function(t){return t.toUpperCase()}).replace(/[-_]/g,"")}(r)+">":"<Anonymous>")+(i&&!1!==e?" at "+i:"")};ht=function(t){if(t._isVue&&t.$parent){for(var e=[],n=0;t;){if(e.length>0){var r=e[e.length-1];if(r.constructor===t.constructor){n++,t=t.$parent;continue}n>0&&(e[e.length-1]=[r,n],n=0)}e.push(t),t=t.$parent}return"\n\nfound in\n\n"+e.map(function(t,e){return""+(0===e?"---\x3e ":function(t,e){for(var n="";e;)e%2==1&&(n+=t),e>1&&(t+=t),e>>=1;return n}(" ",5+2*e))+(Array.isArray(t)?mt(t[0])+"... ("+t[1]+" recursive calls)":mt(t))}).join("\n")}return"\n\n(found in "+mt(t)+")"}}var yt=0,bt=function(){this.id=yt++,this.subs=[]};bt.prototype.addSub=function(t){this.subs.push(t)},bt.prototype.removeSub=function(t){w(this.subs,t)},bt.prototype.depend=function(){bt.target&&bt.target.addDep(this)},bt.prototype.notify=function(){var t=this.subs.slice();"production"===production.NODE_ENV||H.async||t.sort(function(t,e){return t.id-e.id});for(var e=0,n=t.length;e<n;e++)t[e].update()},bt.target=null;var wt=[];function _t(t){wt.push(t),bt.target=t}function xt(){wt.pop(),bt.target=wt[wt.length-1]}var kt=function(t,e,n,r,i,o,a,s){this.tag=t,this.data=e,this.children=n,this.text=r,this.elm=i,this.ns=void 0,this.context=o,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=e&&e.key,this.componentOptions=a,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1},St={child:{configurable:!0}};St.child.get=function(){return this.componentInstance},Object.defineProperties(kt.prototype,St);var Ct=function(t){void 0===t&&(t="");var e=new kt;return e.text=t,e.isComment=!0,e};function Ot(t){return new kt(void 0,void 0,void 0,String(t))}function Et(t){var e=new kt(t.tag,t.data,t.children&&t.children.slice(),t.text,t.elm,t.context,t.componentOptions,t.asyncFactory);return e.ns=t.ns,e.isStatic=t.isStatic,e.key=t.key,e.isComment=t.isComment,e.fnContext=t.fnContext,e.fnOptions=t.fnOptions,e.fnScopeId=t.fnScopeId,e.asyncMeta=t.asyncMeta,e.isCloned=!0,e}var Tt=Array.prototype,At=Object.create(Tt);["push","pop","shift","unshift","splice","sort","reverse"].forEach(function(t){var e=Tt[t];q(At,t,function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];var i,o=e.apply(this,n),a=this.__ob__;switch(t){case"push":case"unshift":i=n;break;case"splice":i=n.slice(2)}return i&&a.observeArray(i),a.dep.notify(),o})});var $t=Object.getOwnPropertyNames(At),Dt=!0;function Nt(t){Dt=t}var Pt=function(t){this.value=t,this.dep=new bt,this.vmCount=0,q(t,"__ob__",this),Array.isArray(t)?(G?function(t,e){t.__proto__=e}(t,At):function(t,e,n){for(var r=0,i=n.length;r<i;r++){var o=n[r];q(t,o,e[o])}}(t,At,$t),this.observeArray(t)):this.walk(t)};function jt(t,e){var n;if(l(t)&&!(t instanceof kt))return x(t,"__ob__")&&t.__ob__ instanceof Pt?n=t.__ob__:Dt&&!st()&&(Array.isArray(t)||d(t))&&Object.isExtensible(t)&&!t._isVue&&(n=new Pt(t)),e&&n&&n.vmCount++,n}function Mt(t,e,n,r,i){var o=new bt,a=Object.getOwnPropertyDescriptor(t,e);if(!a||!1!==a.configurable){var s=a&&a.get,l=a&&a.set;s&&!l||2!==arguments.length||(n=t[e]);var c=!i&&jt(n);Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:function(){var e=s?s.call(t):n;return bt.target&&(o.depend(),c&&(c.dep.depend(),Array.isArray(e)&&function t(e){for(var n=void 0,r=0,i=e.length;r<i;r++)(n=e[r])&&n.__ob__&&n.__ob__.dep.depend(),Array.isArray(n)&&t(n)}(e))),e},set:function(e){var a=s?s.call(t):n;e===a||e!=e&&a!=a||("production"!==production.NODE_ENV&&r&&r(),s&&!l||(l?l.call(t,e):n=e,c=!i&&jt(e),o.notify()))}})}}function Lt(t,e,n){if("production"!==production.NODE_ENV&&(i(t)||s(t))&&pt("Cannot set reactive property on undefined, null, or primitive value: "+t),Array.isArray(t)&&f(e))return t.length=Math.max(t.length,e),t.splice(e,1,n),n;if(e in t&&!(e in Object.prototype))return t[e]=n,n;var r=t.__ob__;return t._isVue||r&&r.vmCount?("production"!==production.NODE_ENV&&pt("Avoid adding reactive properties to a Vue instance or its root $data at runtime - declare it upfront in the data option."),n):r?(Mt(r.value,e,n),r.dep.notify(),n):(t[e]=n,n)}function Rt(t,e){if("production"!==production.NODE_ENV&&(i(t)||s(t))&&pt("Cannot delete reactive property on undefined, null, or primitive value: "+t),Array.isArray(t)&&f(e))t.splice(e,1);else{var n=t.__ob__;t._isVue||n&&n.vmCount?"production"!==production.NODE_ENV&&pt("Avoid deleting properties on a Vue instance or its root $data - just set it to null."):x(t,e)&&(delete t[e],n&&n.dep.notify())}}Pt.prototype.walk=function(t){for(var e=Object.keys(t),n=0;n<e.length;n++)Mt(t,e[n])},Pt.prototype.observeArray=function(t){for(var e=0,n=t.length;e<n;e++)jt(t[e])};var It=H.optionMergeStrategies;function Vt(t,e){if(!e)return t;for(var n,r,i,o=dt?Reflect.ownKeys(e):Object.keys(e),a=0;a<o.length;a++)"__ob__"!==(n=o[a])&&(r=t[n],i=e[n],x(t,n)?r!==i&&d(r)&&d(i)&&Vt(r,i):Lt(t,n,i));return t}function Ft(t,e,n){return n?function(){var r="function"==typeof e?e.call(n,n):e,i="function"==typeof t?t.call(n,n):t;return r?Vt(r,i):i}:e?t?function(){return Vt("function"==typeof e?e.call(this,this):e,"function"==typeof t?t.call(this,this):t)}:e:t}function Bt(t,e){var n=e?t?t.concat(e):Array.isArray(e)?e:[e]:t;return n?function(t){for(var e=[],n=0;n<t.length;n++)-1===e.indexOf(t[n])&&e.push(t[n]);return e}(n):n}function Ht(t,e,n,r){var i=Object.create(t||null);return e?("production"!==production.NODE_ENV&&qt(r,e,n),D(i,e)):i}"production"!==production.NODE_ENV&&(It.el=It.propsData=function(t,e,n,r){return n||pt('option "'+r+'" can only be used during instance creation with the `new` keyword.'),zt(t,e)}),It.data=function(t,e,n){return n?Ft(t,e,n):e&&"function"!=typeof e?("production"!==production.NODE_ENV&&pt('The "data" option should be a function that returns a per-instance value in component definitions.',n),t):Ft(t,e)},B.forEach(function(t){It[t]=Bt}),F.forEach(function(t){It[t+"s"]=Ht}),It.watch=function(t,e,n,r){if(t===it&&(t=void 0),e===it&&(e=void 0),!e)return Object.create(t||null);if("production"!==production.NODE_ENV&&qt(r,e,n),!t)return e;var i={};for(var o in D(i,t),e){var a=i[o],s=e[o];a&&!Array.isArray(a)&&(a=[a]),i[o]=a?a.concat(s):Array.isArray(s)?s:[s]}return i},It.props=It.methods=It.inject=It.computed=function(t,e,n,r){if(e&&"production"!==production.NODE_ENV&&qt(r,e,n),!t)return e;var i=Object.create(null);return D(i,t),e&&D(i,e),i},It.provide=Ft;var zt=function(t,e){return void 0===e?t:e};function Ut(t){new RegExp("^[a-zA-Z][\\-\\.0-9_"+z.source+"]*$").test(t)||pt('Invalid component name: "'+t+'". Component names should conform to valid custom element name in html5 specification.'),(y(t)||H.isReservedTag(t))&&pt("Do not use built-in or reserved HTML elements as component id: "+t)}function qt(t,e,n){d(e)||pt('Invalid value for option "'+t+'": expected an Object, but got '+u(e)+".",n)}function Wt(t,e,n){if("production"!==production.NODE_ENV&&function(t){for(var e in t.components)Ut(e)}(e),"function"==typeof e&&(e=e.options),function(t,e){var n=t.props;if(n){var r,i,o={};if(Array.isArray(n))for(r=n.length;r--;)"string"==typeof(i=n[r])?o[C(i)]={type:null}:"production"!==production.NODE_ENV&&pt("props must be strings when using array syntax.");else if(d(n))for(var a in n)i=n[a],o[C(a)]=d(i)?i:{type:i};else"production"!==production.NODE_ENV&&pt('Invalid value for option "props": expected an Array or an Object, but got '+u(n)+".",e);t.props=o}}(e,n),function(t,e){var n=t.inject;if(n){var r=t.inject={};if(Array.isArray(n))for(var i=0;i<n.length;i++)r[n[i]]={from:n[i]};else if(d(n))for(var o in n){var a=n[o];r[o]=d(a)?D({from:o},a):{from:a}}else"production"!==production.NODE_ENV&&pt('Invalid value for option "inject": expected an Array or an Object, but got '+u(n)+".",e)}}(e,n),function(t){var e=t.directives;if(e)for(var n in e){var r=e[n];"function"==typeof r&&(e[n]={bind:r,update:r})}}(e),!e._base&&(e.extends&&(t=Wt(t,e.extends,n)),e.mixins))for(var r=0,i=e.mixins.length;r<i;r++)t=Wt(t,e.mixins[r],n);var o,a={};for(o in t)s(o);for(o in e)x(t,o)||s(o);function s(r){var i=It[r]||zt;a[r]=i(t[r],e[r],n,r)}return a}function Yt(t,e,n,r){if("string"==typeof n){var i=t[e];if(x(i,n))return i[n];var o=C(n);if(x(i,o))return i[o];var a=O(o);if(x(i,a))return i[a];var s=i[n]||i[o]||i[a];return"production"!==production.NODE_ENV&&r&&!s&&pt("Failed to resolve "+e.slice(0,-1)+": "+n,t),s}}function Gt(t,e,n,r){var i=e[t],o=!x(n,t),a=n[t],s=te(Boolean,i.type);if(s>-1)if(o&&!x(i,"default"))a=!1;else if(""===a||a===T(t)){var c=te(String,i.type);(c<0||s<c)&&(a=!0)}if(void 0===a){a=function(t,e,n){if(!x(e,"default"))return;var r=e.default;"production"!==production.NODE_ENV&&l(r)&&pt('Invalid default value for prop "'+n+'": Props with type Object/Array must use a factory function to return the default value.',t);if(t&&t.$options.propsData&&void 0===t.$options.propsData[n]&&void 0!==t._props[n])return t._props[n];return"function"==typeof r&&"Function"!==Zt(e.type)?r.call(t):r}(r,i,t);var d=Dt;Nt(!0),jt(a),Nt(d)}return"production"!==production.NODE_ENV&&function(t,e,n,r,i){if(t.required&&i)return void pt('Missing required prop: "'+e+'"',r);if(null==n&&!t.required)return;var o=t.type,a=!o||!0===o,s=[];if(o){Array.isArray(o)||(o=[o]);for(var l=0;l<o.length&&!a;l++){var c=Kt(n,o[l],r);s.push(c.expectedType||""),a=c.valid}}var d=s.some(function(t){return t});if(!a&&d)return void pt(function(t,e,n){var r='Invalid prop: type check failed for prop "'+t+'". Expected '+n.map(O).join(", "),i=n[0],o=u(e);1===n.length&&re(i)&&re(typeof e)&&!function(){var t=[],e=arguments.length;for(;e--;)t[e]=arguments[e];return t.some(function(t){return"boolean"===t.toLowerCase()})}(i,o)&&(r+=" with value "+ee(e,i));r+=", got "+o+" ",re(o)&&(r+="with value "+ee(e,o)+".");return r}(e,n,s),r);var p=t.validator;p&&(p(n)||pt('Invalid prop: custom validator check failed for prop "'+e+'".',r))}(i,t,a,r,o),a}var Xt=/^(String|Number|Boolean|Function|Symbol|BigInt)$/;function Kt(t,e,n){var r,i=Zt(e);if(Xt.test(i)){var o=typeof t;(r=o===i.toLowerCase())||"object"!==o||(r=t instanceof e)}else if("Object"===i)r=d(t);else if("Array"===i)r=Array.isArray(t);else try{r=t instanceof e}catch(t){pt('Invalid prop type: "'+String(e)+'" is not a constructor',n),r=!1}return{valid:r,expectedType:i}}var Jt=/^\s*function (\w+)/;function Zt(t){var e=t&&t.toString().match(Jt);return e?e[1]:""}function Qt(t,e){return Zt(t)===Zt(e)}function te(t,e){if(!Array.isArray(e))return Qt(e,t)?0:-1;for(var n=0,r=e.length;n<r;n++)if(Qt(e[n],t))return n;return-1}function ee(t,e){return"String"===e?'"'+t+'"':"Number"===e?""+Number(t):""+t}var ne=["string","number","boolean"];function re(t){return ne.some(function(e){return t.toLowerCase()===e})}function ie(t,e,n){_t();try{if(e)for(var r=e;r=r.$parent;){var i=r.$options.errorCaptured;if(i)for(var o=0;o<i.length;o++)try{if(!1===i[o].call(r,t,e,n))return}catch(t){ae(t,r,"errorCaptured hook")}}ae(t,e,n)}finally{xt()}}function oe(t,e,n,r,i){var o;try{(o=n?t.apply(e,n):t.call(e))&&!o._isVue&&h(o)&&!o._handled&&(o.catch(function(t){return ie(t,r,i+" (Promise/async)")}),o._handled=!0)}catch(t){ie(t,r,i)}return o}function ae(t,e,n){if(H.errorHandler)try{return H.errorHandler.call(null,t,e,n)}catch(e){e!==t&&se(e,null,"config.errorHandler")}se(t,e,n)}function se(t,e,n){if("production"!==production.NODE_ENV&&pt("Error in "+n+': "'+t.toString()+'"',e),!X&&!K||"undefined"==typeof console)throw t;console.error(t)}var le,ce,ue,de,pe=!1,fe=[],he=!1;function me(){he=!1;var t=fe.slice(0);fe.length=0;for(var e=0;e<t.length;e++)t[e]()}if("undefined"!=typeof Promise&&ct(Promise)){var ve=Promise.resolve();le=function(){ve.then(me),nt&&setTimeout(P)},pe=!0}else if(Q||"undefined"==typeof MutationObserver||!ct(MutationObserver)&&"[object MutationObserverConstructor]"!==MutationObserver.toString())le=void 0!==n&&ct(n)?function(){n(me)}:function(){setTimeout(me,0)};else{var ge=1,ye=new MutationObserver(me),be=document.createTextNode(String(ge));ye.observe(be,{characterData:!0}),le=function(){ge=(ge+1)%2,be.data=String(ge)},pe=!0}function we(t,e){var n;if(fe.push(function(){if(t)try{t.call(e)}catch(t){ie(t,e,"nextTick")}else n&&n(e)}),he||(he=!0,le()),!t&&"undefined"!=typeof Promise)return new Promise(function(t){n=t})}if("production"!==production.NODE_ENV){var _e=X&&window.performance;_e&&_e.mark&&_e.measure&&_e.clearMarks&&_e.clearMeasures&&(ce=function(t){return _e.mark(t)},ue=function(t,e,n){_e.measure(t,e,n),_e.clearMarks(e),_e.clearMarks(n)})}if("production"!==production.NODE_ENV){var xe=g("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,require"),ke=function(t,e){pt('Property or method "'+e+'" 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.',t)},Se=function(t,e){pt('Property "'+e+'" must be accessed with "$data.'+e+'" 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',t)},Ce="undefined"!=typeof Proxy&&ct(Proxy);if(Ce){var Oe=g("stop,prevent,self,ctrl,shift,alt,meta,exact");H.keyCodes=new Proxy(H.keyCodes,{set:function(t,e,n){return Oe(e)?(pt("Avoid overwriting built-in modifier in config.keyCodes: ."+e),!1):(t[e]=n,!0)}})}var Ee={has:function(t,e){var n=e in t,r=xe(e)||"string"==typeof e&&"_"===e.charAt(0)&&!(e in t.$data);return n||r||(e in t.$data?Se(t,e):ke(t,e)),n||!r}},Te={get:function(t,e){return"string"!=typeof e||e in t||(e in t.$data?Se(t,e):ke(t,e)),t[e]}};de=function(t){if(Ce){var e=t.$options,n=e.render&&e.render._withStripped?Te:Ee;t._renderProxy=new Proxy(t,n)}else t._renderProxy=t}}var Ae=new ut;function $e(t){!function t(e,n){var r,i;var o=Array.isArray(e);if(!o&&!l(e)||Object.isFrozen(e)||e instanceof kt)return;if(e.__ob__){var a=e.__ob__.dep.id;if(n.has(a))return;n.add(a)}if(o)for(r=e.length;r--;)t(e[r],n);else for(i=Object.keys(e),r=i.length;r--;)t(e[i[r]],n)}(t,Ae),Ae.clear()}var De=k(function(t){var e="&"===t.charAt(0),n="~"===(t=e?t.slice(1):t).charAt(0),r="!"===(t=n?t.slice(1):t).charAt(0);return{name:t=r?t.slice(1):t,once:n,capture:r,passive:e}});function Ne(t,e){function n(){var t=arguments,r=n.fns;if(!Array.isArray(r))return oe(r,null,arguments,e,"v-on handler");for(var i=r.slice(),o=0;o<i.length;o++)oe(i[o],null,t,e,"v-on handler")}return n.fns=t,n}function Pe(t,e,n,r,o,s){var l,c,u,d;for(l in t)c=t[l],u=e[l],d=De(l),i(c)?"production"!==production.NODE_ENV&&pt('Invalid handler for event "'+d.name+'": got '+String(c),s):i(u)?(i(c.fns)&&(c=t[l]=Ne(c,s)),a(d.once)&&(c=t[l]=o(d.name,c,d.capture)),n(d.name,c,d.capture,d.passive,d.params)):c!==u&&(u.fns=c,t[l]=u);for(l in e)i(t[l])&&r((d=De(l)).name,e[l],d.capture)}function je(t,e,n){var r;t instanceof kt&&(t=t.data.hook||(t.data.hook={}));var s=t[e];function l(){n.apply(this,arguments),w(r.fns,l)}i(s)?r=Ne([l]):o(s.fns)&&a(s.merged)?(r=s).fns.push(l):r=Ne([s,l]),r.merged=!0,t[e]=r}function Me(t,e,n,r,i){if(o(e)){if(x(e,n))return t[n]=e[n],i||delete e[n],!0;if(x(e,r))return t[n]=e[r],i||delete e[r],!0}return!1}function Le(t){return s(t)?[Ot(t)]:Array.isArray(t)?function t(e,n){var r=[];var l,c,u,d;for(l=0;l<e.length;l++)i(c=e[l])||"boolean"==typeof c||(u=r.length-1,d=r[u],Array.isArray(c)?c.length>0&&(Re((c=t(c,(n||"")+"_"+l))[0])&&Re(d)&&(r[u]=Ot(d.text+c[0].text),c.shift()),r.push.apply(r,c)):s(c)?Re(d)?r[u]=Ot(d.text+c):""!==c&&r.push(Ot(c)):Re(c)&&Re(d)?r[u]=Ot(d.text+c.text):(a(e._isVList)&&o(c.tag)&&i(c.key)&&o(n)&&(c.key="__vlist"+n+"_"+l+"__"),r.push(c)));return r}(t):void 0}function Re(t){return o(t)&&o(t.text)&&function(t){return!1===t}(t.isComment)}function Ie(t,e){if(t){for(var n=Object.create(null),r=dt?Reflect.ownKeys(t):Object.keys(t),i=0;i<r.length;i++){var o=r[i];if("__ob__"!==o){for(var a=t[o].from,s=e;s;){if(s._provided&&x(s._provided,a)){n[o]=s._provided[a];break}s=s.$parent}if(!s)if("default"in t[o]){var l=t[o].default;n[o]="function"==typeof l?l.call(e):l}else"production"!==production.NODE_ENV&&pt('Injection "'+o+'" not found',e)}}return n}}function Ve(t,e){if(!t||!t.length)return{};for(var n={},r=0,i=t.length;r<i;r++){var o=t[r],a=o.data;if(a&&a.attrs&&a.attrs.slot&&delete a.attrs.slot,o.context!==e&&o.fnContext!==e||!a||null==a.slot)(n.default||(n.default=[])).push(o);else{var s=a.slot,l=n[s]||(n[s]=[]);"template"===o.tag?l.push.apply(l,o.children||[]):l.push(o)}}for(var c in n)n[c].every(Fe)&&delete n[c];return n}function Fe(t){return t.isComment&&!t.asyncFactory||" "===t.text}function Be(t){return t.isComment&&t.asyncFactory}function He(t,e,n){var i,o=Object.keys(e).length>0,a=t?!!t.$stable:!o,s=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(a&&n&&n!==r&&s===n.$key&&!o&&!n.$hasNormal)return n;for(var l in i={},t)t[l]&&"$"!==l[0]&&(i[l]=ze(e,l,t[l]))}else i={};for(var c in e)c in i||(i[c]=Ue(e,c));return t&&Object.isExtensible(t)&&(t._normalized=i),q(i,"$stable",a),q(i,"$key",s),q(i,"$hasNormal",o),i}function ze(t,e,n){var r=function(){var t=arguments.length?n.apply(null,arguments):n({}),e=(t=t&&"object"==typeof t&&!Array.isArray(t)?[t]:Le(t))&&t[0];return t&&(!e||1===t.length&&e.isComment&&!Be(e))?void 0:t};return n.proxy&&Object.defineProperty(t,e,{get:r,enumerable:!0,configurable:!0}),r}function Ue(t,e){return function(){return t[e]}}function qe(t,e){var n,r,i,a,s;if(Array.isArray(t)||"string"==typeof t)for(n=new Array(t.length),r=0,i=t.length;r<i;r++)n[r]=e(t[r],r);else if("number"==typeof t)for(n=new Array(t),r=0;r<t;r++)n[r]=e(r+1,r);else if(l(t))if(dt&&t[Symbol.iterator]){n=[];for(var c=t[Symbol.iterator](),u=c.next();!u.done;)n.push(e(u.value,n.length)),u=c.next()}else for(a=Object.keys(t),n=new Array(a.length),r=0,i=a.length;r<i;r++)s=a[r],n[r]=e(t[s],s,r);return o(n)||(n=[]),n._isVList=!0,n}function We(t,e,n,r){var i,o=this.$scopedSlots[t];o?(n=n||{},r&&("production"===production.NODE_ENV||l(r)||pt("slot v-bind without argument expects an Object",this),n=D(D({},r),n)),i=o(n)||("function"==typeof e?e():e)):i=this.$slots[t]||("function"==typeof e?e():e);var a=n&&n.slot;return a?this.$createElement("template",{slot:a},i):i}function Ye(t){return Yt(this.$options,"filters",t,!0)||M}function Ge(t,e){return Array.isArray(t)?-1===t.indexOf(e):t!==e}function Xe(t,e,n,r,i){var o=H.keyCodes[e]||n;return i&&r&&!H.keyCodes[e]?Ge(i,r):o?Ge(o,t):r?T(r)!==e:void 0===t}function Ke(t,e,n,r,i){if(n)if(l(n)){var o;Array.isArray(n)&&(n=N(n));var a=function(a){if("class"===a||"style"===a||b(a))o=t;else{var s=t.attrs&&t.attrs.type;o=r||H.mustUseProp(e,s,a)?t.domProps||(t.domProps={}):t.attrs||(t.attrs={})}var l=C(a),c=T(a);l in o||c in o||(o[a]=n[a],i&&((t.on||(t.on={}))["update:"+a]=function(t){n[a]=t}))};for(var s in n)a(s)}else"production"!==production.NODE_ENV&&pt("v-bind without argument expects an Object or Array value",this);return t}function Je(t,e){var n=this._staticTrees||(this._staticTrees=[]),r=n[t];return r&&!e?r:(Qe(r=n[t]=this.$options.staticRenderFns[t].call(this._renderProxy,null,this),"__static__"+t,!1),r)}function Ze(t,e,n){return Qe(t,"__once__"+e+(n?"_"+n:""),!0),t}function Qe(t,e,n){if(Array.isArray(t))for(var r=0;r<t.length;r++)t[r]&&"string"!=typeof t[r]&&tn(t[r],e+"_"+r,n);else tn(t,e,n)}function tn(t,e,n){t.isStatic=!0,t.key=e,t.isOnce=n}function en(t,e){if(e)if(d(e)){var n=t.on=t.on?D({},t.on):{};for(var r in e){var i=n[r],o=e[r];n[r]=i?[].concat(i,o):o}}else"production"!==production.NODE_ENV&&pt("v-on without argument expects an Object value",this);return t}function nn(t,e,n,r){e=e||{$stable:!n};for(var i=0;i<t.length;i++){var o=t[i];Array.isArray(o)?nn(o,e,n):o&&(o.proxy&&(o.fn.proxy=!0),e[o.key]=o.fn)}return r&&(e.$key=r),e}function rn(t,e){for(var n=0;n<e.length;n+=2){var r=e[n];"string"==typeof r&&r?t[e[n]]=e[n+1]:"production"!==production.NODE_ENV&&""!==r&&null!==r&&pt("Invalid value for dynamic directive argument (expected string or null): "+r,this)}return t}function on(t,e){return"string"==typeof t?e+t:t}function an(t){t._o=Ze,t._n=v,t._s=m,t._l=qe,t._t=We,t._q=L,t._i=R,t._m=Je,t._f=Ye,t._k=Xe,t._b=Ke,t._v=Ot,t._e=Ct,t._u=nn,t._g=en,t._d=rn,t._p=on}function sn(t,e,n,i,o){var s,l=this,c=o.options;x(i,"_uid")?(s=Object.create(i))._original=i:(s=i,i=i._original);var u=a(c._compiled),d=!u;this.data=t,this.props=e,this.children=n,this.parent=i,this.listeners=t.on||r,this.injections=Ie(c.inject,i),this.slots=function(){return l.$slots||He(t.scopedSlots,l.$slots=Ve(n,i)),l.$slots},Object.defineProperty(this,"scopedSlots",{enumerable:!0,get:function(){return He(t.scopedSlots,this.slots())}}),u&&(this.$options=c,this.$slots=this.slots(),this.$scopedSlots=He(t.scopedSlots,this.$slots)),c._scopeId?this._c=function(t,e,n,r){var o=vn(s,t,e,n,r,d);return o&&!Array.isArray(o)&&(o.fnScopeId=c._scopeId,o.fnContext=i),o}:this._c=function(t,e,n,r){return vn(s,t,e,n,r,d)}}function ln(t,e,n,r,i){var o=Et(t);return o.fnContext=n,o.fnOptions=r,"production"!==production.NODE_ENV&&((o.devtoolsMeta=o.devtoolsMeta||{}).renderContext=i),e.slot&&((o.data||(o.data={})).slot=e.slot),o}function cn(t,e){for(var n in e)t[C(n)]=e[n]}an(sn.prototype);var un={init:function(t,e){if(t.componentInstance&&!t.componentInstance._isDestroyed&&t.data.keepAlive){var n=t;un.prepatch(n,n)}else{(t.componentInstance=function(t,e){var n={_isComponent:!0,_parentVnode:t,parent:e},r=t.data.inlineTemplate;o(r)&&(n.render=r.render,n.staticRenderFns=r.staticRenderFns);return new t.componentOptions.Ctor(n)}(t,Cn)).$mount(e?t.elm:void 0,e)}},prepatch:function(t,e){var n=e.componentOptions;!function(t,e,n,i,o){"production"!==production.NODE_ENV&&(On=!0);var a=i.data.scopedSlots,s=t.$scopedSlots,l=!!(a&&!a.$stable||s!==r&&!s.$stable||a&&t.$scopedSlots.$key!==a.$key||!a&&t.$scopedSlots.$key),c=!!(o||t.$options._renderChildren||l);t.$options._parentVnode=i,t.$vnode=i,t._vnode&&(t._vnode.parent=i);if(t.$options._renderChildren=o,t.$attrs=i.data.attrs||r,t.$listeners=n||r,e&&t.$options.props){Nt(!1);for(var u=t._props,d=t.$options._propKeys||[],p=0;p<d.length;p++){var f=d[p],h=t.$options.props;u[f]=Gt(f,h,e,t)}Nt(!0),t.$options.propsData=e}n=n||r;var m=t.$options._parentListeners;t.$options._parentListeners=n,Sn(t,n,m),c&&(t.$slots=Ve(o,i.context),t.$forceUpdate());"production"!==production.NODE_ENV&&(On=!1)}(e.componentInstance=t.componentInstance,n.propsData,n.listeners,e,n.children)},insert:function(t){var e=t.context,n=t.componentInstance;n._isMounted||(n._isMounted=!0,$n(n,"mounted")),t.data.keepAlive&&(e._isMounted?function(t){t._inactive=!1,Pn.push(t)}(n):An(n,!0))},destroy:function(t){var e=t.componentInstance;e._isDestroyed||(t.data.keepAlive?function t(e,n){if(n&&(e._directInactive=!0,Tn(e)))return;if(!e._inactive){e._inactive=!0;for(var r=0;r<e.$children.length;r++)t(e.$children[r]);$n(e,"deactivated")}}(e,!0):e.$destroy())}},dn=Object.keys(un);function pn(t,e,n,s,c){if(!i(t)){var u=n.$options._base;if(l(t)&&(t=u.extend(t)),"function"==typeof t){var d;if(i(t.cid)&&void 0===(t=function(t,e){if(a(t.error)&&o(t.errorComp))return t.errorComp;if(o(t.resolved))return t.resolved;var n=yn;n&&o(t.owners)&&-1===t.owners.indexOf(n)&&t.owners.push(n);if(a(t.loading)&&o(t.loadingComp))return t.loadingComp;if(n&&!o(t.owners)){var r=t.owners=[n],s=!0,c=null,u=null;n.$on("hook:destroyed",function(){return w(r,n)});var d=function(t){for(var e=0,n=r.length;e<n;e++)r[e].$forceUpdate();t&&(r.length=0,null!==c&&(clearTimeout(c),c=null),null!==u&&(clearTimeout(u),u=null))},p=I(function(n){t.resolved=bn(n,e),s?r.length=0:d(!0)}),f=I(function(e){"production"!==production.NODE_ENV&&pt("Failed to resolve async component: "+String(t)+(e?"\nReason: "+e:"")),o(t.errorComp)&&(t.error=!0,d(!0))}),m=t(p,f);return l(m)&&(h(m)?i(t.resolved)&&m.then(p,f):h(m.component)&&(m.component.then(p,f),o(m.error)&&(t.errorComp=bn(m.error,e)),o(m.loading)&&(t.loadingComp=bn(m.loading,e),0===m.delay?t.loading=!0:c=setTimeout(function(){c=null,i(t.resolved)&&i(t.error)&&(t.loading=!0,d(!1))},m.delay||200)),o(m.timeout)&&(u=setTimeout(function(){u=null,i(t.resolved)&&f("production"!==production.NODE_ENV?"timeout ("+m.timeout+"ms)":null)},m.timeout)))),s=!1,t.loading?t.loadingComp:t.resolved}}(d=t,u)))return function(t,e,n,r,i){var o=Ct();return o.asyncFactory=t,o.asyncMeta={data:e,context:n,children:r,tag:i},o}(d,e,n,s,c);e=e||{},tr(t),o(e.model)&&function(t,e){var n=t.model&&t.model.prop||"value",r=t.model&&t.model.event||"input";(e.attrs||(e.attrs={}))[n]=e.model.value;var i=e.on||(e.on={}),a=i[r],s=e.model.callback;o(a)?(Array.isArray(a)?-1===a.indexOf(s):a!==s)&&(i[r]=[s].concat(a)):i[r]=s}(t.options,e);var p=function(t,e,n){var r=e.options.props;if(!i(r)){var a={},s=t.attrs,l=t.props;if(o(s)||o(l))for(var c in r){var u=T(c);if("production"!==production.NODE_ENV){var d=c.toLowerCase();c!==d&&s&&x(s,d)&&ft('Prop "'+d+'" is passed to component '+mt(n||e)+', but the declared prop name is "'+c+'". 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 "'+u+'" instead of "'+c+'".')}Me(a,l,c,u,!0)||Me(a,s,c,u,!1)}return a}}(e,t,c);if(a(t.options.functional))return function(t,e,n,i,a){var s=t.options,l={},c=s.props;if(o(c))for(var u in c)l[u]=Gt(u,c,e||r);else o(n.attrs)&&cn(l,n.attrs),o(n.props)&&cn(l,n.props);var d=new sn(n,l,a,i,t),p=s.render.call(null,d._c,d);if(p instanceof kt)return ln(p,n,d.parent,s,d);if(Array.isArray(p)){for(var f=Le(p)||[],h=new Array(f.length),m=0;m<f.length;m++)h[m]=ln(f[m],n,d.parent,s,d);return h}}(t,p,e,n,s);var f=e.on;if(e.on=e.nativeOn,a(t.options.abstract)){var m=e.slot;e={},m&&(e.slot=m)}!function(t){for(var e=t.hook||(t.hook={}),n=0;n<dn.length;n++){var r=dn[n],i=e[r],o=un[r];i===o||i&&i._merged||(e[r]=i?fn(o,i):o)}}(e);var v=t.options.name||c;return new kt("vue-component-"+t.cid+(v?"-"+v:""),e,void 0,void 0,void 0,n,{Ctor:t,propsData:p,listeners:f,tag:c,children:s},d)}"production"!==production.NODE_ENV&&pt("Invalid Component definition: "+String(t),n)}}function fn(t,e){var n=function(n,r){t(n,r),e(n,r)};return n._merged=!0,n}var hn=1,mn=2;function vn(t,e,n,r,c,u){return(Array.isArray(n)||s(n))&&(c=r,r=n,n=void 0),a(u)&&(c=mn),function(t,e,n,r,c){if(o(n)&&o(n.__ob__))return"production"!==production.NODE_ENV&&pt("Avoid using observed data object as vnode data: "+JSON.stringify(n)+"\nAlways create fresh vnode data objects in each render!",t),Ct();o(n)&&o(n.is)&&(e=n.is);if(!e)return Ct();"production"!==production.NODE_ENV&&o(n)&&o(n.key)&&!s(n.key)&&pt("Avoid using non-primitive value as key, use string/number value instead.",t);Array.isArray(r)&&"function"==typeof r[0]&&((n=n||{}).scopedSlots={default:r[0]},r.length=0);c===mn?r=Le(r):c===hn&&(r=function(t){for(var e=0;e<t.length;e++)if(Array.isArray(t[e]))return Array.prototype.concat.apply([],t);return t}(r));var u,d;if("string"==typeof e){var p;d=t.$vnode&&t.$vnode.ns||H.getTagNamespace(e),H.isReservedTag(e)?("production"!==production.NODE_ENV&&o(n)&&o(n.nativeOn)&&"component"!==n.tag&&pt("The .native modifier for v-on is only valid on components but it was used on <"+e+">.",t),u=new kt(H.parsePlatformTagName(e),n,r,void 0,void 0,t)):u=n&&n.pre||!o(p=Yt(t.$options,"components",e))?new kt(e,n,r,void 0,void 0,t):pn(p,n,t,r,e)}else u=pn(e,n,t,r);return Array.isArray(u)?u:o(u)?(o(d)&&function t(e,n,r){e.ns=n;"foreignObject"===e.tag&&(n=void 0,r=!0);if(o(e.children))for(var s=0,l=e.children.length;s<l;s++){var c=e.children[s];o(c.tag)&&(i(c.ns)||a(r)&&"svg"!==c.tag)&&t(c,n,r)}}(u,d),o(n)&&function(t){l(t.style)&&$e(t.style);l(t.class)&&$e(t.class)}(n),u):Ct()}(t,e,n,r,c)}var gn,yn=null;function bn(t,e){return(t.__esModule||dt&&"Module"===t[Symbol.toStringTag])&&(t=t.default),l(t)?e.extend(t):t}function wn(t){if(Array.isArray(t))for(var e=0;e<t.length;e++){var n=t[e];if(o(n)&&(o(n.componentOptions)||Be(n)))return n}}function _n(t,e){gn.$on(t,e)}function xn(t,e){gn.$off(t,e)}function kn(t,e){var n=gn;return function r(){null!==e.apply(null,arguments)&&n.$off(t,r)}}function Sn(t,e,n){gn=t,Pe(e,n||{},_n,xn,kn,t),gn=void 0}var Cn=null,On=!1;function En(t){var e=Cn;return Cn=t,function(){Cn=e}}function Tn(t){for(;t&&(t=t.$parent);)if(t._inactive)return!0;return!1}function An(t,e){if(e){if(t._directInactive=!1,Tn(t))return}else if(t._directInactive)return;if(t._inactive||null===t._inactive){t._inactive=!1;for(var n=0;n<t.$children.length;n++)An(t.$children[n]);$n(t,"activated")}}function $n(t,e){_t();var n=t.$options[e],r=e+" hook";if(n)for(var i=0,o=n.length;i<o;i++)oe(n[i],t,null,t,r);t._hasHookEvent&&t.$emit("hook:"+e),xt()}var Dn=100,Nn=[],Pn=[],jn={},Mn={},Ln=!1,Rn=!1,In=0;var Vn=0,Fn=Date.now;if(X&&!Q){var Bn=window.performance;Bn&&"function"==typeof Bn.now&&Fn()>document.createEvent("Event").timeStamp&&(Fn=function(){return Bn.now()})}function Hn(){var t,e;for(Vn=Fn(),Rn=!0,Nn.sort(function(t,e){return t.id-e.id}),In=0;In<Nn.length;In++)if((t=Nn[In]).before&&t.before(),e=t.id,jn[e]=null,t.run(),"production"!==production.NODE_ENV&&null!=jn[e]&&(Mn[e]=(Mn[e]||0)+1,Mn[e]>Dn)){pt("You may have an infinite update loop "+(t.user?'in watcher with expression "'+t.expression+'"':"in a component render function."),t.vm);break}var n=Pn.slice(),r=Nn.slice();In=Nn.length=Pn.length=0,jn={},"production"!==production.NODE_ENV&&(Mn={}),Ln=Rn=!1,function(t){for(var e=0;e<t.length;e++)t[e]._inactive=!0,An(t[e],!0)}(n),function(t){var e=t.length;for(;e--;){var n=t[e],r=n.vm;r._watcher===n&&r._isMounted&&!r._isDestroyed&&$n(r,"updated")}}(r),lt&&H.devtools&&lt.emit("flush")}var zn=0,Un=function(t,e,n,r,i){this.vm=t,i&&(t._watcher=this),t._watchers.push(this),r?(this.deep=!!r.deep,this.user=!!r.user,this.lazy=!!r.lazy,this.sync=!!r.sync,this.before=r.before):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++zn,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new ut,this.newDepIds=new ut,this.expression="production"!==production.NODE_ENV?e.toString():"","function"==typeof e?this.getter=e:(this.getter=function(t){if(!W.test(t)){var e=t.split(".");return function(t){for(var n=0;n<e.length;n++){if(!t)return;t=t[e[n]]}return t}}}(e),this.getter||(this.getter=P,"production"!==production.NODE_ENV&&pt('Failed watching path: "'+e+'" Watcher only accepts simple dot-delimited paths. For full control, use a function instead.',t))),this.value=this.lazy?void 0:this.get()};Un.prototype.get=function(){var t;_t(this);var e=this.vm;try{t=this.getter.call(e,e)}catch(t){if(!this.user)throw t;ie(t,e,'getter for watcher "'+this.expression+'"')}finally{this.deep&&$e(t),xt(),this.cleanupDeps()}return t},Un.prototype.addDep=function(t){var e=t.id;this.newDepIds.has(e)||(this.newDepIds.add(e),this.newDeps.push(t),this.depIds.has(e)||t.addSub(this))},Un.prototype.cleanupDeps=function(){for(var t=this.deps.length;t--;){var e=this.deps[t];this.newDepIds.has(e.id)||e.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},Un.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():function(t){var e=t.id;if(null==jn[e]){if(jn[e]=!0,Rn){for(var n=Nn.length-1;n>In&&Nn[n].id>t.id;)n--;Nn.splice(n+1,0,t)}else Nn.push(t);if(!Ln){if(Ln=!0,"production"!==production.NODE_ENV&&!H.async)return void Hn();we(Hn)}}}(this)},Un.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||l(t)||this.deep){var e=this.value;if(this.value=t,this.user){var n='callback for watcher "'+this.expression+'"';oe(this.cb,this.vm,[t,e],this.vm,n)}else this.cb.call(this.vm,t,e)}}},Un.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},Un.prototype.depend=function(){for(var t=this.deps.length;t--;)this.deps[t].depend()},Un.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||w(this.vm._watchers,this);for(var t=this.deps.length;t--;)this.deps[t].removeSub(this);this.active=!1}};var qn={enumerable:!0,configurable:!0,get:P,set:P};function Wn(t,e,n){qn.get=function(){return this[e][n]},qn.set=function(t){this[e][n]=t},Object.defineProperty(t,n,qn)}function Yn(t){t._watchers=[];var e=t.$options;e.props&&function(t,e){var n=t.$options.propsData||{},r=t._props={},i=t.$options._propKeys=[],o=!t.$parent;o||Nt(!1);var a=function(a){i.push(a);var s=Gt(a,e,n,t);if("production"!==production.NODE_ENV){var l=T(a);(b(l)||H.isReservedAttr(l))&&pt('"'+l+'" is a reserved attribute and cannot be used as component prop.',t),Mt(r,a,s,function(){o||On||pt("Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: \""+a+'"',t)})}else Mt(r,a,s);a in t||Wn(t,"_props",a)};for(var s in e)a(s);Nt(!0)}(t,e.props),e.methods&&function(t,e){var n=t.$options.props;for(var r in e)"production"!==production.NODE_ENV&&("function"!=typeof e[r]&&pt('Method "'+r+'" has type "'+typeof e[r]+'" in the component definition. Did you reference the function correctly?',t),n&&x(n,r)&&pt('Method "'+r+'" has already been defined as a prop.',t),r in t&&U(r)&&pt('Method "'+r+'" conflicts with an existing Vue instance method. Avoid defining component methods that start with _ or $.')),t[r]="function"!=typeof e[r]?P:A(e[r],t)}(t,e.methods),e.data?function(t){var e=t.$options.data;d(e=t._data="function"==typeof e?function(t,e){_t();try{return t.call(e,e)}catch(t){return ie(t,e,"data()"),{}}finally{xt()}}(e,t):e||{})||(e={},"production"!==production.NODE_ENV&&pt("data functions should return an object:\nhttps://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function",t));var n=Object.keys(e),r=t.$options.props,i=t.$options.methods,o=n.length;for(;o--;){var a=n[o];"production"!==production.NODE_ENV&&i&&x(i,a)&&pt('Method "'+a+'" has already been defined as a data property.',t),r&&x(r,a)?"production"!==production.NODE_ENV&&pt('The data property "'+a+'" is already declared as a prop. Use prop default value instead.',t):U(a)||Wn(t,"_data",a)}jt(e,!0)}(t):jt(t._data={},!0),e.computed&&function(t,e){var n=t._computedWatchers=Object.create(null),r=st();for(var i in e){var o=e[i],a="function"==typeof o?o:o.get;"production"!==production.NODE_ENV&&null==a&&pt('Getter is missing for computed property "'+i+'".',t),r||(n[i]=new Un(t,a||P,P,Gn)),i in t?"production"!==production.NODE_ENV&&(i in t.$data?pt('The computed property "'+i+'" is already defined in data.',t):t.$options.props&&i in t.$options.props?pt('The computed property "'+i+'" is already defined as a prop.',t):t.$options.methods&&i in t.$options.methods&&pt('The computed property "'+i+'" is already defined as a method.',t)):Xn(t,i,o)}}(t,e.computed),e.watch&&e.watch!==it&&function(t,e){for(var n in e){var r=e[n];if(Array.isArray(r))for(var i=0;i<r.length;i++)Zn(t,n,r[i]);else Zn(t,n,r)}}(t,e.watch)}var Gn={lazy:!0};function Xn(t,e,n){var r=!st();"function"==typeof n?(qn.get=r?Kn(e):Jn(n),qn.set=P):(qn.get=n.get?r&&!1!==n.cache?Kn(e):Jn(n.get):P,qn.set=n.set||P),"production"!==production.NODE_ENV&&qn.set===P&&(qn.set=function(){pt('Computed property "'+e+'" was assigned to but it has no setter.',this)}),Object.defineProperty(t,e,qn)}function Kn(t){return function(){var e=this._computedWatchers&&this._computedWatchers[t];if(e)return e.dirty&&e.evaluate(),bt.target&&e.depend(),e.value}}function Jn(t){return function(){return t.call(this,this)}}function Zn(t,e,n,r){return d(n)&&(r=n,n=n.handler),"string"==typeof n&&(n=t[n]),t.$watch(e,n,r)}var Qn=0;function tr(t){var e=t.options;if(t.super){var n=tr(t.super);if(n!==t.superOptions){t.superOptions=n;var r=function(t){var e,n=t.options,r=t.sealedOptions;for(var i in n)n[i]!==r[i]&&(e||(e={}),e[i]=n[i]);return e}(t);r&&D(t.extendOptions,r),(e=t.options=Wt(n,t.extendOptions)).name&&(e.components[e.name]=t)}}return e}function er(t){"production"===production.NODE_ENV||this instanceof er||pt("Vue is a constructor and should be called with the `new` keyword"),this._init(t)}function nr(t){t.cid=0;var e=1;t.extend=function(t){t=t||{};var n=this,r=n.cid,i=t._Ctor||(t._Ctor={});if(i[r])return i[r];var o=t.name||n.options.name;"production"!==production.NODE_ENV&&o&&Ut(o);var a=function(t){this._init(t)};return(a.prototype=Object.create(n.prototype)).constructor=a,a.cid=e++,a.options=Wt(n.options,t),a.super=n,a.options.props&&function(t){var e=t.options.props;for(var n in e)Wn(t.prototype,"_props",n)}(a),a.options.computed&&function(t){var e=t.options.computed;for(var n in e)Xn(t.prototype,n,e[n])}(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,F.forEach(function(t){a[t]=n[t]}),o&&(a.options.components[o]=a),a.superOptions=n.options,a.extendOptions=t,a.sealedOptions=D({},a.options),i[r]=a,a}}function rr(t){return t&&(t.Ctor.options.name||t.tag)}function ir(t,e){return Array.isArray(t)?t.indexOf(e)>-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!p(t)&&t.test(e)}function or(t,e){var n=t.cache,r=t.keys,i=t._vnode;for(var o in n){var a=n[o];if(a){var s=a.name;s&&!e(s)&&ar(n,o,r,i)}}}function ar(t,e,n,r){var i=t[e];!i||r&&i.tag===r.tag||i.componentInstance.$destroy(),t[e]=null,w(n,e)}!function(t){t.prototype._init=function(t){var e,n,i=this;i._uid=Qn++,"production"!==production.NODE_ENV&&H.performance&&ce&&(e="vue-perf-start:"+i._uid,n="vue-perf-end:"+i._uid,ce(e)),i._isVue=!0,t&&t._isComponent?function(t,e){var n=t.$options=Object.create(t.constructor.options),r=e._parentVnode;n.parent=e.parent,n._parentVnode=r;var i=r.componentOptions;n.propsData=i.propsData,n._parentListeners=i.listeners,n._renderChildren=i.children,n._componentTag=i.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}(i,t):i.$options=Wt(tr(i.constructor),t||{},i),"production"!==production.NODE_ENV?de(i):i._renderProxy=i,i._self=i,function(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(i),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&Sn(t,e)}(i),function(t){t._vnode=null,t._staticTrees=null;var e=t.$options,n=t.$vnode=e._parentVnode,i=n&&n.context;t.$slots=Ve(e._renderChildren,i),t.$scopedSlots=r,t._c=function(e,n,r,i){return vn(t,e,n,r,i,!1)},t.$createElement=function(e,n,r,i){return vn(t,e,n,r,i,!0)};var o=n&&n.data;"production"!==production.NODE_ENV?(Mt(t,"$attrs",o&&o.attrs||r,function(){!On&&pt("$attrs is readonly.",t)},!0),Mt(t,"$listeners",e._parentListeners||r,function(){!On&&pt("$listeners is readonly.",t)},!0)):(Mt(t,"$attrs",o&&o.attrs||r,null,!0),Mt(t,"$listeners",e._parentListeners||r,null,!0))}(i),$n(i,"beforeCreate"),function(t){var e=Ie(t.$options.inject,t);e&&(Nt(!1),Object.keys(e).forEach(function(n){"production"!==production.NODE_ENV?Mt(t,n,e[n],function(){pt('Avoid mutating an injected value directly since the changes will be overwritten whenever the provided component re-renders. injection being mutated: "'+n+'"',t)}):Mt(t,n,e[n])}),Nt(!0))}(i),Yn(i),function(t){var e=t.$options.provide;e&&(t._provided="function"==typeof e?e.call(t):e)}(i),$n(i,"created"),"production"!==production.NODE_ENV&&H.performance&&ce&&(i._name=mt(i,!1),ce(n),ue("vue "+i._name+" init",e,n)),i.$options.el&&i.$mount(i.$options.el)}}(er),function(t){var e={get:function(){return this._data}},n={get:function(){return this._props}};"production"!==production.NODE_ENV&&(e.set=function(){pt("Avoid replacing instance root $data. Use nested data properties instead.",this)},n.set=function(){pt("$props is readonly.",this)}),Object.defineProperty(t.prototype,"$data",e),Object.defineProperty(t.prototype,"$props",n),t.prototype.$set=Lt,t.prototype.$delete=Rt,t.prototype.$watch=function(t,e,n){if(d(e))return Zn(this,t,e,n);(n=n||{}).user=!0;var r=new Un(this,t,e,n);if(n.immediate){var i='callback for immediate watcher "'+r.expression+'"';_t(),oe(e,this,[r.value],this,i),xt()}return function(){r.teardown()}}}(er),function(t){var e=/^hook:/;t.prototype.$on=function(t,n){var r=this;if(Array.isArray(t))for(var i=0,o=t.length;i<o;i++)r.$on(t[i],n);else(r._events[t]||(r._events[t]=[])).push(n),e.test(t)&&(r._hasHookEvent=!0);return r},t.prototype.$once=function(t,e){var n=this;function r(){n.$off(t,r),e.apply(n,arguments)}return r.fn=e,n.$on(t,r),n},t.prototype.$off=function(t,e){var n=this;if(!arguments.length)return n._events=Object.create(null),n;if(Array.isArray(t)){for(var r=0,i=t.length;r<i;r++)n.$off(t[r],e);return n}var o,a=n._events[t];if(!a)return n;if(!e)return n._events[t]=null,n;for(var s=a.length;s--;)if((o=a[s])===e||o.fn===e){a.splice(s,1);break}return n},t.prototype.$emit=function(t){var e=this;if("production"!==production.NODE_ENV){var n=t.toLowerCase();n!==t&&e._events[n]&&ft('Event "'+n+'" is emitted in component '+mt(e)+' but the handler is registered for "'+t+'". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "'+T(t)+'" instead of "'+t+'".')}var r=e._events[t];if(r){r=r.length>1?$(r):r;for(var i=$(arguments,1),o='event handler for "'+t+'"',a=0,s=r.length;a<s;a++)oe(r[a],e,i,e,o)}return e}}(er),function(t){t.prototype._update=function(t,e){var n=this,r=n.$el,i=n._vnode,o=En(n);n._vnode=t,n.$el=i?n.__patch__(i,t):n.__patch__(n.$el,t,e,!1),o(),r&&(r.__vue__=null),n.$el&&(n.$el.__vue__=n),n.$vnode&&n.$parent&&n.$vnode===n.$parent._vnode&&(n.$parent.$el=n.$el)},t.prototype.$forceUpdate=function(){this._watcher&&this._watcher.update()},t.prototype.$destroy=function(){var t=this;if(!t._isBeingDestroyed){$n(t,"beforeDestroy"),t._isBeingDestroyed=!0;var e=t.$parent;!e||e._isBeingDestroyed||t.$options.abstract||w(e.$children,t),t._watcher&&t._watcher.teardown();for(var n=t._watchers.length;n--;)t._watchers[n].teardown();t._data.__ob__&&t._data.__ob__.vmCount--,t._isDestroyed=!0,t.__patch__(t._vnode,null),$n(t,"destroyed"),t.$off(),t.$el&&(t.$el.__vue__=null),t.$vnode&&(t.$vnode.parent=null)}}}(er),function(t){an(t.prototype),t.prototype.$nextTick=function(t){return we(t,this)},t.prototype._render=function(){var t,e=this,n=e.$options,r=n.render,i=n._parentVnode;i&&(e.$scopedSlots=He(i.data.scopedSlots,e.$slots,e.$scopedSlots)),e.$vnode=i;try{yn=e,t=r.call(e._renderProxy,e.$createElement)}catch(n){if(ie(n,e,"render"),"production"!==production.NODE_ENV&&e.$options.renderError)try{t=e.$options.renderError.call(e._renderProxy,e.$createElement,n)}catch(n){ie(n,e,"renderError"),t=e._vnode}else t=e._vnode}finally{yn=null}return Array.isArray(t)&&1===t.length&&(t=t[0]),t instanceof kt||("production"!==production.NODE_ENV&&Array.isArray(t)&&pt("Multiple root nodes returned from render function. Render function should return a single root node.",e),t=Ct()),t.parent=i,t}}(er);var sr=[String,RegExp,Array],lr={KeepAlive:{name:"keep-alive",abstract:!0,props:{include:sr,exclude:sr,max:[String,Number]},methods:{cacheVNode:function(){var t=this.cache,e=this.keys,n=this.vnodeToCache,r=this.keyToCache;if(n){var i=n.tag,o=n.componentInstance,a=n.componentOptions;t[r]={name:rr(a),tag:i,componentInstance:o},e.push(r),this.max&&e.length>parseInt(this.max)&&ar(t,e[0],e,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)ar(this.cache,t,this.keys)},mounted:function(){var t=this;this.cacheVNode(),this.$watch("include",function(e){or(t,function(t){return ir(e,t)})}),this.$watch("exclude",function(e){or(t,function(t){return!ir(e,t)})})},updated:function(){this.cacheVNode()},render:function(){var t=this.$slots.default,e=wn(t),n=e&&e.componentOptions;if(n){var r=rr(n),i=this.include,o=this.exclude;if(i&&(!r||!ir(i,r))||o&&r&&ir(o,r))return e;var a=this.cache,s=this.keys,l=null==e.key?n.Ctor.cid+(n.tag?"::"+n.tag:""):e.key;a[l]?(e.componentInstance=a[l].componentInstance,w(s,l),s.push(l)):(this.vnodeToCache=e,this.keyToCache=l),e.data.keepAlive=!0}return e||t&&t[0]}}};!function(t){var e={get:function(){return H}};"production"!==production.NODE_ENV&&(e.set=function(){pt("Do not replace the Vue.config object, set individual fields instead.")}),Object.defineProperty(t,"config",e),t.util={warn:pt,extend:D,mergeOptions:Wt,defineReactive:Mt},t.set=Lt,t.delete=Rt,t.nextTick=we,t.observable=function(t){return jt(t),t},t.options=Object.create(null),F.forEach(function(e){t.options[e+"s"]=Object.create(null)}),t.options._base=t,D(t.options.components,lr),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=$(arguments,1);return n.unshift(this),"function"==typeof t.install?t.install.apply(t,n):"function"==typeof t&&t.apply(null,n),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=Wt(this.options,t),this}}(t),nr(t),function(t){F.forEach(function(e){t[e]=function(t,n){return n?("production"!==production.NODE_ENV&&"component"===e&&Ut(t),"component"===e&&d(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&"function"==typeof n&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}})}(t)}(er),Object.defineProperty(er.prototype,"$isServer",{get:st}),Object.defineProperty(er.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(er,"FunctionalRenderContext",{value:sn}),er.version="2.6.14";var cr=g("style,class"),ur=g("input,textarea,option,select,progress"),dr=function(t,e,n){return"value"===n&&ur(t)&&"button"!==e||"selected"===n&&"option"===t||"checked"===n&&"input"===t||"muted"===n&&"video"===t},pr=g("contenteditable,draggable,spellcheck"),fr=g("events,caret,typing,plaintext-only"),hr=function(t,e){return br(e)||"false"===e?"false":"contenteditable"===t&&fr(e)?e:"true"},mr=g("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible"),vr="http://www.w3.org/1999/xlink",gr=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},yr=function(t){return gr(t)?t.slice(6,t.length):""},br=function(t){return null==t||!1===t};function wr(t){for(var e=t.data,n=t,r=t;o(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(e=_r(r.data,e));for(;o(n=n.parent);)n&&n.data&&(e=_r(e,n.data));return function(t,e){if(o(t)||o(e))return xr(t,kr(e));return""}(e.staticClass,e.class)}function _r(t,e){return{staticClass:xr(t.staticClass,e.staticClass),class:o(t.class)?[t.class,e.class]:e.class}}function xr(t,e){return t?e?t+" "+e:t:e||""}function kr(t){return Array.isArray(t)?function(t){for(var e,n="",r=0,i=t.length;r<i;r++)o(e=kr(t[r]))&&""!==e&&(n&&(n+=" "),n+=e);return n}(t):l(t)?function(t){var e="";for(var n in t)t[n]&&(e&&(e+=" "),e+=n);return e}(t):"string"==typeof t?t:""}var Sr={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"},Cr=g("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot"),Or=g("svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignobject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view",!0),Er=function(t){return Cr(t)||Or(t)};function Tr(t){return Or(t)?"svg":"math"===t?"math":void 0}var Ar=Object.create(null);var $r=g("text,number,password,search,email,tel,url");function Dr(t){if("string"==typeof t){var e=document.querySelector(t);return e||("production"!==production.NODE_ENV&&pt("Cannot find element: "+t),document.createElement("div"))}return t}var Nr=Object.freeze({createElement:function(t,e){var n=document.createElement(t);return"select"!==t?n:(e.data&&e.data.attrs&&void 0!==e.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n)},createElementNS:function(t,e){return document.createElementNS(Sr[t],e)},createTextNode:function(t){return document.createTextNode(t)},createComment:function(t){return document.createComment(t)},insertBefore:function(t,e,n){t.insertBefore(e,n)},removeChild:function(t,e){t.removeChild(e)},appendChild:function(t,e){t.appendChild(e)},parentNode:function(t){return t.parentNode},nextSibling:function(t){return t.nextSibling},tagName:function(t){return t.tagName},setTextContent:function(t,e){t.textContent=e},setStyleScope:function(t,e){t.setAttribute(e,"")}}),Pr={create:function(t,e){jr(e)},update:function(t,e){t.data.ref!==e.data.ref&&(jr(t,!0),jr(e))},destroy:function(t){jr(t,!0)}};function jr(t,e){var n=t.data.ref;if(o(n)){var r=t.context,i=t.componentInstance||t.elm,a=r.$refs;e?Array.isArray(a[n])?w(a[n],i):a[n]===i&&(a[n]=void 0):t.data.refInFor?Array.isArray(a[n])?a[n].indexOf(i)<0&&a[n].push(i):a[n]=[i]:a[n]=i}}var Mr=new kt("",{},[]),Lr=["create","activate","update","remove","destroy"];function Rr(t,e){return t.key===e.key&&t.asyncFactory===e.asyncFactory&&(t.tag===e.tag&&t.isComment===e.isComment&&o(t.data)===o(e.data)&&function(t,e){if("input"!==t.tag)return!0;var n,r=o(n=t.data)&&o(n=n.attrs)&&n.type,i=o(n=e.data)&&o(n=n.attrs)&&n.type;return r===i||$r(r)&&$r(i)}(t,e)||a(t.isAsyncPlaceholder)&&i(e.asyncFactory.error))}function Ir(t,e,n){var r,i,a={};for(r=e;r<=n;++r)o(i=t[r].key)&&(a[i]=r);return a}var Vr={create:Fr,update:Fr,destroy:function(t){Fr(t,Mr)}};function Fr(t,e){(t.data.directives||e.data.directives)&&function(t,e){var n,r,i,o=t===Mr,a=e===Mr,s=Hr(t.data.directives,t.context),l=Hr(e.data.directives,e.context),c=[],u=[];for(n in l)r=s[n],i=l[n],r?(i.oldValue=r.value,i.oldArg=r.arg,Ur(i,"update",e,t),i.def&&i.def.componentUpdated&&u.push(i)):(Ur(i,"bind",e,t),i.def&&i.def.inserted&&c.push(i));if(c.length){var d=function(){for(var n=0;n<c.length;n++)Ur(c[n],"inserted",e,t)};o?je(e,"insert",d):d()}u.length&&je(e,"postpatch",function(){for(var n=0;n<u.length;n++)Ur(u[n],"componentUpdated",e,t)});if(!o)for(n in s)l[n]||Ur(s[n],"unbind",t,t,a)}(t,e)}var Br=Object.create(null);function Hr(t,e){var n,r,i=Object.create(null);if(!t)return i;for(n=0;n<t.length;n++)(r=t[n]).modifiers||(r.modifiers=Br),i[zr(r)]=r,r.def=Yt(e.$options,"directives",r.name,!0);return i}function zr(t){return t.rawName||t.name+"."+Object.keys(t.modifiers||{}).join(".")}function Ur(t,e,n,r,i){var o=t.def&&t.def[e];if(o)try{o(n.elm,t,n,r,i)}catch(r){ie(r,n.context,"directive "+t.name+" "+e+" hook")}}var qr=[Pr,Vr];function Wr(t,e){var n=e.componentOptions;if(!(o(n)&&!1===n.Ctor.options.inheritAttrs||i(t.data.attrs)&&i(e.data.attrs))){var r,a,s=e.elm,l=t.data.attrs||{},c=e.data.attrs||{};for(r in o(c.__ob__)&&(c=e.data.attrs=D({},c)),c)a=c[r],l[r]!==a&&Yr(s,r,a,e.data.pre);for(r in(Q||et)&&c.value!==l.value&&Yr(s,"value",c.value),l)i(c[r])&&(gr(r)?s.removeAttributeNS(vr,yr(r)):pr(r)||s.removeAttribute(r))}}function Yr(t,e,n,r){r||t.tagName.indexOf("-")>-1?Gr(t,e,n):mr(e)?br(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):pr(e)?t.setAttribute(e,hr(e,n)):gr(e)?br(n)?t.removeAttributeNS(vr,yr(e)):t.setAttributeNS(vr,e,n):Gr(t,e,n)}function Gr(t,e,n){if(br(n))t.removeAttribute(e);else{if(Q&&!tt&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var Xr={create:Wr,update:Wr};function Kr(t,e){var n=e.elm,r=e.data,a=t.data;if(!(i(r.staticClass)&&i(r.class)&&(i(a)||i(a.staticClass)&&i(a.class)))){var s=wr(e),l=n._transitionClasses;o(l)&&(s=xr(s,kr(l))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var Jr,Zr,Qr,ti,ei,ni,ri,ii={create:Kr,update:Kr},oi=/[\w).+\-_$\]]/;function ai(t){var e,n,r,i,o,a=!1,s=!1,l=!1,c=!1,u=0,d=0,p=0,f=0;for(r=0;r<t.length;r++)if(n=e,e=t.charCodeAt(r),a)39===e&&92!==n&&(a=!1);else if(s)34===e&&92!==n&&(s=!1);else if(l)96===e&&92!==n&&(l=!1);else if(c)47===e&&92!==n&&(c=!1);else if(124!==e||124===t.charCodeAt(r+1)||124===t.charCodeAt(r-1)||u||d||p){switch(e){case 34:s=!0;break;case 39:a=!0;break;case 96:l=!0;break;case 40:p++;break;case 41:p--;break;case 91:d++;break;case 93:d--;break;case 123:u++;break;case 125:u--}if(47===e){for(var h=r-1,m=void 0;h>=0&&" "===(m=t.charAt(h));h--);m&&oi.test(m)||(c=!0)}}else void 0===i?(f=r+1,i=t.slice(0,r).trim()):v();function v(){(o||(o=[])).push(t.slice(f,r).trim()),f=r+1}if(void 0===i?i=t.slice(0,r).trim():0!==f&&v(),o)for(r=0;r<o.length;r++)i=si(i,o[r]);return i}function si(t,e){var n=e.indexOf("(");if(n<0)return'_f("'+e+'")('+t+")";var r=e.slice(0,n),i=e.slice(n+1);return'_f("'+r+'")('+t+(")"!==i?","+i:i)}function li(t,e){console.error("[Vue compiler]: "+t)}function ci(t,e){return t?t.map(function(t){return t[e]}).filter(function(t){return t}):[]}function ui(t,e,n,r,i){(t.props||(t.props=[])).push(wi({name:e,value:n,dynamic:i},r)),t.plain=!1}function di(t,e,n,r,i){(i?t.dynamicAttrs||(t.dynamicAttrs=[]):t.attrs||(t.attrs=[])).push(wi({name:e,value:n,dynamic:i},r)),t.plain=!1}function pi(t,e,n,r){t.attrsMap[e]=n,t.attrsList.push(wi({name:e,value:n},r))}function fi(t,e,n,r,i,o,a,s){(t.directives||(t.directives=[])).push(wi({name:e,rawName:n,value:r,arg:i,isDynamicArg:o,modifiers:a},s)),t.plain=!1}function hi(t,e,n){return n?"_p("+e+',"'+t+'")':t+e}function mi(t,e,n,i,o,a,s,l){var c;i=i||r,"production"!==production.NODE_ENV&&a&&i.prevent&&i.passive&&a("passive and prevent can't be used together. Passive handler can't prevent default event.",s),i.right?l?e="("+e+")==='click'?'contextmenu':("+e+")":"click"===e&&(e="contextmenu",delete i.right):i.middle&&(l?e="("+e+")==='click'?'mouseup':("+e+")":"click"===e&&(e="mouseup")),i.capture&&(delete i.capture,e=hi("!",e,l)),i.once&&(delete i.once,e=hi("~",e,l)),i.passive&&(delete i.passive,e=hi("&",e,l)),i.native?(delete i.native,c=t.nativeEvents||(t.nativeEvents={})):c=t.events||(t.events={});var u=wi({value:n.trim(),dynamic:l},s);i!==r&&(u.modifiers=i);var d=c[e];Array.isArray(d)?o?d.unshift(u):d.push(u):c[e]=d?o?[u,d]:[d,u]:u,t.plain=!1}function vi(t,e){return t.rawAttrsMap[":"+e]||t.rawAttrsMap["v-bind:"+e]||t.rawAttrsMap[e]}function gi(t,e,n){var r=yi(t,":"+e)||yi(t,"v-bind:"+e);if(null!=r)return ai(r);if(!1!==n){var i=yi(t,e);if(null!=i)return JSON.stringify(i)}}function yi(t,e,n){var r;if(null!=(r=t.attrsMap[e]))for(var i=t.attrsList,o=0,a=i.length;o<a;o++)if(i[o].name===e){i.splice(o,1);break}return n&&delete t.attrsMap[e],r}function bi(t,e){for(var n=t.attrsList,r=0,i=n.length;r<i;r++){var o=n[r];if(e.test(o.name))return n.splice(r,1),o}}function wi(t,e){return e&&(null!=e.start&&(t.start=e.start),null!=e.end&&(t.end=e.end)),t}function _i(t,e,n){var r=n||{},i=r.number,o="$$v";r.trim&&(o="(typeof $$v === 'string'? $$v.trim(): $$v)"),i&&(o="_n("+o+")");var a=xi(e,o);t.model={value:"("+e+")",expression:JSON.stringify(e),callback:"function ($$v) {"+a+"}"}}function xi(t,e){var n=function(t){if(t=t.trim(),Jr=t.length,t.indexOf("[")<0||t.lastIndexOf("]")<Jr-1)return(ti=t.lastIndexOf("."))>-1?{exp:t.slice(0,ti),key:'"'+t.slice(ti+1)+'"'}:{exp:t,key:null};Zr=t,ti=ei=ni=0;for(;!Si();)Ci(Qr=ki())?Ei(Qr):91===Qr&&Oi(Qr);return{exp:t.slice(0,ei),key:t.slice(ei+1,ni)}}(t);return null===n.key?t+"="+e:"$set("+n.exp+", "+n.key+", "+e+")"}function ki(){return Zr.charCodeAt(++ti)}function Si(){return ti>=Jr}function Ci(t){return 34===t||39===t}function Oi(t){var e=1;for(ei=ti;!Si();)if(Ci(t=ki()))Ei(t);else if(91===t&&e++,93===t&&e--,0===e){ni=ti;break}}function Ei(t){for(var e=t;!Si()&&(t=ki())!==e;);}var Ti,Ai="__r",$i="__c";function Di(t,e,n){var r=Ti;return function i(){null!==e.apply(null,arguments)&&ji(t,i,n,r)}}var Ni=pe&&!(rt&&Number(rt[1])<=53);function Pi(t,e,n,r){if(Ni){var i=Vn,o=e;e=o._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=i||t.timeStamp<=0||t.target.ownerDocument!==document)return o.apply(this,arguments)}}Ti.addEventListener(t,e,ot?{capture:n,passive:r}:n)}function ji(t,e,n,r){(r||Ti).removeEventListener(t,e._wrapper||e,n)}function Mi(t,e){if(!i(t.data.on)||!i(e.data.on)){var n=e.data.on||{},r=t.data.on||{};Ti=e.elm,function(t){if(o(t[Ai])){var e=Q?"change":"input";t[e]=[].concat(t[Ai],t[e]||[]),delete t[Ai]}o(t[$i])&&(t.change=[].concat(t[$i],t.change||[]),delete t[$i])}(n),Pe(n,r,Pi,ji,Di,e.context),Ti=void 0}}var Li,Ri={create:Mi,update:Mi};function Ii(t,e){if(!i(t.data.domProps)||!i(e.data.domProps)){var n,r,a=e.elm,s=t.data.domProps||{},l=e.data.domProps||{};for(n in o(l.__ob__)&&(l=e.data.domProps=D({},l)),s)n in l||(a[n]="");for(n in l){if(r=l[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),r===s[n])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===n&&"PROGRESS"!==a.tagName){a._value=r;var c=i(r)?"":String(r);Vi(a,c)&&(a.value=c)}else if("innerHTML"===n&&Or(a.tagName)&&i(a.innerHTML)){(Li=Li||document.createElement("div")).innerHTML="<svg>"+r+"</svg>";for(var u=Li.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;u.firstChild;)a.appendChild(u.firstChild)}else if(r!==s[n])try{a[n]=r}catch(t){}}}}function Vi(t,e){return!t.composing&&("OPTION"===t.tagName||function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(t,e)||function(t,e){var n=t.value,r=t._vModifiers;if(o(r)){if(r.number)return v(n)!==v(e);if(r.trim)return n.trim()!==e.trim()}return n!==e}(t,e))}var Fi={create:Ii,update:Ii},Bi=k(function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach(function(t){if(t){var r=t.split(n);r.length>1&&(e[r[0].trim()]=r[1].trim())}}),e});function Hi(t){var e=zi(t.style);return t.staticStyle?D(t.staticStyle,e):e}function zi(t){return Array.isArray(t)?N(t):"string"==typeof t?Bi(t):t}var Ui,qi=/^--/,Wi=/\s*!important$/,Yi=function(t,e,n){if(qi.test(e))t.style.setProperty(e,n);else if(Wi.test(n))t.style.setProperty(T(e),n.replace(Wi,""),"important");else{var r=Xi(e);if(Array.isArray(n))for(var i=0,o=n.length;i<o;i++)t.style[r]=n[i];else t.style[r]=n}},Gi=["Webkit","Moz","ms"],Xi=k(function(t){if(Ui=Ui||document.createElement("div").style,"filter"!==(t=C(t))&&t in Ui)return t;for(var e=t.charAt(0).toUpperCase()+t.slice(1),n=0;n<Gi.length;n++){var r=Gi[n]+e;if(r in Ui)return r}});function Ki(t,e){var n=e.data,r=t.data;if(!(i(n.staticStyle)&&i(n.style)&&i(r.staticStyle)&&i(r.style))){var a,s,l=e.elm,c=r.staticStyle,u=r.normalizedStyle||r.style||{},d=c||u,p=zi(e.data.style)||{};e.data.normalizedStyle=o(p.__ob__)?D({},p):p;var f=function(t,e){var n,r={};if(e)for(var i=t;i.componentInstance;)(i=i.componentInstance._vnode)&&i.data&&(n=Hi(i.data))&&D(r,n);(n=Hi(t.data))&&D(r,n);for(var o=t;o=o.parent;)o.data&&(n=Hi(o.data))&&D(r,n);return r}(e,!0);for(s in d)i(f[s])&&Yi(l,s,"");for(s in f)(a=f[s])!==d[s]&&Yi(l,s,null==a?"":a)}}var Ji={create:Ki,update:Ki},Zi=/\s+/;function Qi(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(Zi).forEach(function(e){return t.classList.add(e)}):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function to(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(Zi).forEach(function(e){return t.classList.remove(e)}):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" "+(t.getAttribute("class")||"")+" ",r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function eo(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&D(e,no(t.name||"v")),D(e,t),e}return"string"==typeof t?no(t):void 0}}var no=k(function(t){return{enterClass:t+"-enter",enterToClass:t+"-enter-to",enterActiveClass:t+"-enter-active",leaveClass:t+"-leave",leaveToClass:t+"-leave-to",leaveActiveClass:t+"-leave-active"}}),ro=X&&!tt,io="transition",oo="animation",ao="transition",so="transitionend",lo="animation",co="animationend";ro&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(ao="WebkitTransition",so="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(lo="WebkitAnimation",co="webkitAnimationEnd"));var uo=X?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function po(t){uo(function(){uo(t)})}function fo(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),Qi(t,e))}function ho(t,e){t._transitionClasses&&w(t._transitionClasses,e),to(t,e)}function mo(t,e,n){var r=go(t,e),i=r.type,o=r.timeout,a=r.propCount;if(!i)return n();var s=i===io?so:co,l=0,c=function(){t.removeEventListener(s,u),n()},u=function(e){e.target===t&&++l>=a&&c()};setTimeout(function(){l<a&&c()},o+1),t.addEventListener(s,u)}var vo=/\b(transform|all)(,|$)/;function go(t,e){var n,r=window.getComputedStyle(t),i=(r[ao+"Delay"]||"").split(", "),o=(r[ao+"Duration"]||"").split(", "),a=yo(i,o),s=(r[lo+"Delay"]||"").split(", "),l=(r[lo+"Duration"]||"").split(", "),c=yo(s,l),u=0,d=0;return e===io?a>0&&(n=io,u=a,d=o.length):e===oo?c>0&&(n=oo,u=c,d=l.length):d=(n=(u=Math.max(a,c))>0?a>c?io:oo:null)?n===io?o.length:l.length:0,{type:n,timeout:u,propCount:d,hasTransform:n===io&&vo.test(r[ao+"Property"])}}function yo(t,e){for(;t.length<e.length;)t=t.concat(t);return Math.max.apply(null,e.map(function(e,n){return bo(e)+bo(t[n])}))}function bo(t){return 1e3*Number(t.slice(0,-1).replace(",","."))}function wo(t,e){var n=t.elm;o(n._leaveCb)&&(n._leaveCb.cancelled=!0,n._leaveCb());var r=eo(t.data.transition);if(!i(r)&&!o(n._enterCb)&&1===n.nodeType){for(var a=r.css,s=r.type,c=r.enterClass,u=r.enterToClass,d=r.enterActiveClass,p=r.appearClass,f=r.appearToClass,h=r.appearActiveClass,m=r.beforeEnter,g=r.enter,y=r.afterEnter,b=r.enterCancelled,w=r.beforeAppear,_=r.appear,x=r.afterAppear,k=r.appearCancelled,S=r.duration,C=Cn,O=Cn.$vnode;O&&O.parent;)C=O.context,O=O.parent;var E=!C._isMounted||!t.isRootInsert;if(!E||_||""===_){var T=E&&p?p:c,A=E&&h?h:d,$=E&&f?f:u,D=E&&w||m,N=E&&"function"==typeof _?_:g,P=E&&x||y,j=E&&k||b,M=v(l(S)?S.enter:S);"production"!==production.NODE_ENV&&null!=M&&xo(M,"enter",t);var L=!1!==a&&!tt,R=So(N),V=n._enterCb=I(function(){L&&(ho(n,$),ho(n,A)),V.cancelled?(L&&ho(n,T),j&&j(n)):P&&P(n),n._enterCb=null});t.data.show||je(t,"insert",function(){var e=n.parentNode,r=e&&e._pending&&e._pending[t.key];r&&r.tag===t.tag&&r.elm._leaveCb&&r.elm._leaveCb(),N&&N(n,V)}),D&&D(n),L&&(fo(n,T),fo(n,A),po(function(){ho(n,T),V.cancelled||(fo(n,$),R||(ko(M)?setTimeout(V,M):mo(n,s,V)))})),t.data.show&&(e&&e(),N&&N(n,V)),L||R||V()}}}function _o(t,e){var n=t.elm;o(n._enterCb)&&(n._enterCb.cancelled=!0,n._enterCb());var r=eo(t.data.transition);if(i(r)||1!==n.nodeType)return e();if(!o(n._leaveCb)){var a=r.css,s=r.type,c=r.leaveClass,u=r.leaveToClass,d=r.leaveActiveClass,p=r.beforeLeave,f=r.leave,h=r.afterLeave,m=r.leaveCancelled,g=r.delayLeave,y=r.duration,b=!1!==a&&!tt,w=So(f),_=v(l(y)?y.leave:y);"production"!==production.NODE_ENV&&o(_)&&xo(_,"leave",t);var x=n._leaveCb=I(function(){n.parentNode&&n.parentNode._pending&&(n.parentNode._pending[t.key]=null),b&&(ho(n,u),ho(n,d)),x.cancelled?(b&&ho(n,c),m&&m(n)):(e(),h&&h(n)),n._leaveCb=null});g?g(k):k()}function k(){x.cancelled||(!t.data.show&&n.parentNode&&((n.parentNode._pending||(n.parentNode._pending={}))[t.key]=t),p&&p(n),b&&(fo(n,c),fo(n,d),po(function(){ho(n,c),x.cancelled||(fo(n,u),w||(ko(_)?setTimeout(x,_):mo(n,s,x)))})),f&&f(n,x),b||w||x())}}function xo(t,e,n){"number"!=typeof t?pt("<transition> explicit "+e+" duration is not a valid number - got "+JSON.stringify(t)+".",n.context):isNaN(t)&&pt("<transition> explicit "+e+" duration is NaN - the duration expression might be incorrect.",n.context)}function ko(t){return"number"==typeof t&&!isNaN(t)}function So(t){if(i(t))return!1;var e=t.fns;return o(e)?So(Array.isArray(e)?e[0]:e):(t._length||t.length)>1}function Co(t,e){!0!==e.data.show&&wo(e)}var Oo=function(t){var e,n,r={},l=t.modules,c=t.nodeOps;for(e=0;e<Lr.length;++e)for(r[Lr[e]]=[],n=0;n<l.length;++n)o(l[n][Lr[e]])&&r[Lr[e]].push(l[n][Lr[e]]);function u(t){var e=c.parentNode(t);o(e)&&c.removeChild(e,t)}function d(t,e){return!e&&!t.ns&&!(H.ignoredElements.length&&H.ignoredElements.some(function(e){return p(e)?e.test(t.tag):e===t.tag}))&&H.isUnknownElement(t.tag)}var f=0;function h(t,e,n,i,s,l,u){if(o(t.elm)&&o(l)&&(t=l[u]=Et(t)),t.isRootInsert=!s,!function(t,e,n,i){var s=t.data;if(o(s)){var l=o(t.componentInstance)&&s.keepAlive;if(o(s=s.hook)&&o(s=s.init)&&s(t,!1),o(t.componentInstance))return m(t,e),v(n,t.elm,i),a(l)&&function(t,e,n,i){for(var a,s=t;s.componentInstance;)if(s=s.componentInstance._vnode,o(a=s.data)&&o(a=a.transition)){for(a=0;a<r.activate.length;++a)r.activate[a](Mr,s);e.push(s);break}v(n,t.elm,i)}(t,e,n,i),!0}}(t,e,n,i)){var p=t.data,h=t.children,g=t.tag;o(g)?("production"!==production.NODE_ENV&&(p&&p.pre&&f++,d(t,f)&&pt("Unknown custom element: <"+g+'> - did you register the component correctly? For recursive components, make sure to provide the "name" option.',t.context)),t.elm=t.ns?c.createElementNS(t.ns,g):c.createElement(g,t),_(t),y(t,h,e),o(p)&&w(t,e),v(n,t.elm,i),"production"!==production.NODE_ENV&&p&&p.pre&&f--):a(t.isComment)?(t.elm=c.createComment(t.text),v(n,t.elm,i)):(t.elm=c.createTextNode(t.text),v(n,t.elm,i))}}function m(t,e){o(t.data.pendingInsert)&&(e.push.apply(e,t.data.pendingInsert),t.data.pendingInsert=null),t.elm=t.componentInstance.$el,b(t)?(w(t,e),_(t)):(jr(t),e.push(t))}function v(t,e,n){o(t)&&(o(n)?c.parentNode(n)===t&&c.insertBefore(t,e,n):c.appendChild(t,e))}function y(t,e,n){if(Array.isArray(e)){"production"!==production.NODE_ENV&&O(e);for(var r=0;r<e.length;++r)h(e[r],n,t.elm,null,!0,e,r)}else s(t.text)&&c.appendChild(t.elm,c.createTextNode(String(t.text)))}function b(t){for(;t.componentInstance;)t=t.componentInstance._vnode;return o(t.tag)}function w(t,n){for(var i=0;i<r.create.length;++i)r.create[i](Mr,t);o(e=t.data.hook)&&(o(e.create)&&e.create(Mr,t),o(e.insert)&&n.push(t))}function _(t){var e;if(o(e=t.fnScopeId))c.setStyleScope(t.elm,e);else for(var n=t;n;)o(e=n.context)&&o(e=e.$options._scopeId)&&c.setStyleScope(t.elm,e),n=n.parent;o(e=Cn)&&e!==t.context&&e!==t.fnContext&&o(e=e.$options._scopeId)&&c.setStyleScope(t.elm,e)}function x(t,e,n,r,i,o){for(;r<=i;++r)h(n[r],o,t,e,!1,n,r)}function k(t){var e,n,i=t.data;if(o(i))for(o(e=i.hook)&&o(e=e.destroy)&&e(t),e=0;e<r.destroy.length;++e)r.destroy[e](t);if(o(e=t.children))for(n=0;n<t.children.length;++n)k(t.children[n])}function S(t,e,n){for(;e<=n;++e){var r=t[e];o(r)&&(o(r.tag)?(C(r),k(r)):u(r.elm))}}function C(t,e){if(o(e)||o(t.data)){var n,i=r.remove.length+1;for(o(e)?e.listeners+=i:e=function(t,e){function n(){0==--n.listeners&&u(t)}return n.listeners=e,n}(t.elm,i),o(n=t.componentInstance)&&o(n=n._vnode)&&o(n.data)&&C(n,e),n=0;n<r.remove.length;++n)r.remove[n](t,e);o(n=t.data.hook)&&o(n=n.remove)?n(t,e):e()}else u(t.elm)}function O(t){for(var e={},n=0;n<t.length;n++){var r=t[n],i=r.key;o(i)&&(e[i]?pt("Duplicate keys detected: '"+i+"'. This may cause an update error.",r.context):e[i]=!0)}}function E(t,e,n,r){for(var i=n;i<r;i++){var a=e[i];if(o(a)&&Rr(t,a))return i}}function T(t,e,n,s,l,u){if(t!==e){o(e.elm)&&o(s)&&(e=s[l]=Et(e));var d=e.elm=t.elm;if(a(t.isAsyncPlaceholder))o(e.asyncFactory.resolved)?N(t.elm,e,n):e.isAsyncPlaceholder=!0;else if(a(e.isStatic)&&a(t.isStatic)&&e.key===t.key&&(a(e.isCloned)||a(e.isOnce)))e.componentInstance=t.componentInstance;else{var p,f=e.data;o(f)&&o(p=f.hook)&&o(p=p.prepatch)&&p(t,e);var m=t.children,v=e.children;if(o(f)&&b(e)){for(p=0;p<r.update.length;++p)r.update[p](t,e);o(p=f.hook)&&o(p=p.update)&&p(t,e)}i(e.text)?o(m)&&o(v)?m!==v&&function(t,e,n,r,a){var s,l,u,d=0,p=0,f=e.length-1,m=e[0],v=e[f],g=n.length-1,y=n[0],b=n[g],w=!a;for("production"!==production.NODE_ENV&&O(n);d<=f&&p<=g;)i(m)?m=e[++d]:i(v)?v=e[--f]:Rr(m,y)?(T(m,y,r,n,p),m=e[++d],y=n[++p]):Rr(v,b)?(T(v,b,r,n,g),v=e[--f],b=n[--g]):Rr(m,b)?(T(m,b,r,n,g),w&&c.insertBefore(t,m.elm,c.nextSibling(v.elm)),m=e[++d],b=n[--g]):Rr(v,y)?(T(v,y,r,n,p),w&&c.insertBefore(t,v.elm,m.elm),v=e[--f],y=n[++p]):(i(s)&&(s=Ir(e,d,f)),i(l=o(y.key)?s[y.key]:E(y,e,d,f))?h(y,r,t,m.elm,!1,n,p):Rr(u=e[l],y)?(T(u,y,r,n,p),e[l]=void 0,w&&c.insertBefore(t,u.elm,m.elm)):h(y,r,t,m.elm,!1,n,p),y=n[++p]);d>f?x(t,i(n[g+1])?null:n[g+1].elm,n,p,g,r):p>g&&S(e,d,f)}(d,m,v,n,u):o(v)?("production"!==production.NODE_ENV&&O(v),o(t.text)&&c.setTextContent(d,""),x(d,null,v,0,v.length-1,n)):o(m)?S(m,0,m.length-1):o(t.text)&&c.setTextContent(d,""):t.text!==e.text&&c.setTextContent(d,e.text),o(f)&&o(p=f.hook)&&o(p=p.postpatch)&&p(t,e)}}}function A(t,e,n){if(a(n)&&o(t.parent))t.parent.data.pendingInsert=e;else for(var r=0;r<e.length;++r)e[r].data.hook.insert(e[r])}var $=!1,D=g("attrs,class,staticClass,staticStyle,key");function N(t,e,n,r){var i,s=e.tag,l=e.data,c=e.children;if(r=r||l&&l.pre,e.elm=t,a(e.isComment)&&o(e.asyncFactory))return e.isAsyncPlaceholder=!0,!0;if("production"!==production.NODE_ENV&&!function(t,e,n){return o(e.tag)?0===e.tag.indexOf("vue-component")||!d(e,n)&&e.tag.toLowerCase()===(t.tagName&&t.tagName.toLowerCase()):t.nodeType===(e.isComment?8:3)}(t,e,r))return!1;if(o(l)&&(o(i=l.hook)&&o(i=i.init)&&i(e,!0),o(i=e.componentInstance)))return m(e,n),!0;if(o(s)){if(o(c))if(t.hasChildNodes())if(o(i=l)&&o(i=i.domProps)&&o(i=i.innerHTML)){if(i!==t.innerHTML)return"production"===production.NODE_ENV||"undefined"==typeof console||$||($=!0,console.warn("Parent: ",t),console.warn("server innerHTML: ",i),console.warn("client innerHTML: ",t.innerHTML)),!1}else{for(var u=!0,p=t.firstChild,f=0;f<c.length;f++){if(!p||!N(p,c[f],n,r)){u=!1;break}p=p.nextSibling}if(!u||p)return"production"===production.NODE_ENV||"undefined"==typeof console||$||($=!0,console.warn("Parent: ",t),console.warn("Mismatching childNodes vs. VNodes: ",t.childNodes,c)),!1}else y(e,c,n);if(o(l)){var h=!1;for(var v in l)if(!D(v)){h=!0,w(e,n);break}!h&&l.class&&$e(l.class)}}else t.data!==e.text&&(t.data=e.text);return!0}return function(t,e,n,s){if(!i(e)){var l=!1,u=[];if(i(t))l=!0,h(e,u);else{var d=o(t.nodeType);if(!d&&Rr(t,e))T(t,e,u,null,null,s);else{if(d){if(1===t.nodeType&&t.hasAttribute(V)&&(t.removeAttribute(V),n=!0),a(n)){if(N(t,e,u))return A(e,u,!0),t;"production"!==production.NODE_ENV&&pt("The client-side rendered virtual DOM tree is not matching server-rendered content. This is likely caused by incorrect HTML markup, for example nesting block-level elements inside <p>, or missing <tbody>. Bailing hydration and performing full client-side render.")}t=function(t){return new kt(c.tagName(t).toLowerCase(),{},[],void 0,t)}(t)}var p=t.elm,f=c.parentNode(p);if(h(e,u,p._leaveCb?null:f,c.nextSibling(p)),o(e.parent))for(var m=e.parent,v=b(e);m;){for(var g=0;g<r.destroy.length;++g)r.destroy[g](m);if(m.elm=e.elm,v){for(var y=0;y<r.create.length;++y)r.create[y](Mr,m);var w=m.data.hook.insert;if(w.merged)for(var _=1;_<w.fns.length;_++)w.fns[_]()}else jr(m);m=m.parent}o(f)?S([t],0,0):o(t.tag)&&k(t)}}return A(e,u,l),e.elm}o(t)&&k(t)}}({nodeOps:Nr,modules:[Xr,ii,Ri,Fi,Ji,X?{create:Co,activate:Co,remove:function(t,e){!0!==t.data.show?_o(t,e):e()}}:{}].concat(qr)});tt&&document.addEventListener("selectionchange",function(){var t=document.activeElement;t&&t.vmodel&&jo(t,"input")});var Eo={inserted:function(t,e,n,r){"select"===n.tag?(r.elm&&!r.elm._vOptions?je(n,"postpatch",function(){Eo.componentUpdated(t,e,n)}):To(t,e,n.context),t._vOptions=[].map.call(t.options,Do)):("textarea"===n.tag||$r(t.type))&&(t._vModifiers=e.modifiers,e.modifiers.lazy||(t.addEventListener("compositionstart",No),t.addEventListener("compositionend",Po),t.addEventListener("change",Po),tt&&(t.vmodel=!0)))},componentUpdated:function(t,e,n){if("select"===n.tag){To(t,e,n.context);var r=t._vOptions,i=t._vOptions=[].map.call(t.options,Do);if(i.some(function(t,e){return!L(t,r[e])}))(t.multiple?e.value.some(function(t){return $o(t,i)}):e.value!==e.oldValue&&$o(e.value,i))&&jo(t,"change")}}};function To(t,e,n){Ao(t,e,n),(Q||et)&&setTimeout(function(){Ao(t,e,n)},0)}function Ao(t,e,n){var r=e.value,i=t.multiple;if(!i||Array.isArray(r)){for(var o,a,s=0,l=t.options.length;s<l;s++)if(a=t.options[s],i)o=R(r,Do(a))>-1,a.selected!==o&&(a.selected=o);else if(L(Do(a),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));i||(t.selectedIndex=-1)}else"production"!==production.NODE_ENV&&pt('<select multiple v-model="'+e.expression+'"> expects an Array value for its binding, but got '+Object.prototype.toString.call(r).slice(8,-1),n)}function $o(t,e){return e.every(function(e){return!L(e,t)})}function Do(t){return"_value"in t?t._value:t.value}function No(t){t.target.composing=!0}function Po(t){t.target.composing&&(t.target.composing=!1,jo(t.target,"input"))}function jo(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function Mo(t){return!t.componentInstance||t.data&&t.data.transition?t:Mo(t.componentInstance._vnode)}var Lo={model:Eo,show:{bind:function(t,e,n){var r=e.value,i=(n=Mo(n)).data&&n.data.transition,o=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&i?(n.data.show=!0,wo(n,function(){t.style.display=o})):t.style.display=r?o:"none"},update:function(t,e,n){var r=e.value;!r!=!e.oldValue&&((n=Mo(n)).data&&n.data.transition?(n.data.show=!0,r?wo(n,function(){t.style.display=t.__vOriginalDisplay}):_o(n,function(){t.style.display="none"})):t.style.display=r?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,r,i){i||(t.style.display=t.__vOriginalDisplay)}}},Ro={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Io(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?Io(wn(e.children)):t}function Vo(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var i=n._parentListeners;for(var o in i)e[C(o)]=i[o];return e}function Fo(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var Bo=function(t){return t.tag||Be(t)},Ho=function(t){return"show"===t.name},zo={name:"transition",props:Ro,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(Bo)).length){"production"!==production.NODE_ENV&&n.length>1&&pt("<transition> can only be used on a single element. Use <transition-group> for lists.",this.$parent);var r=this.mode;"production"!==production.NODE_ENV&&r&&"in-out"!==r&&"out-in"!==r&&pt("invalid <transition> mode: "+r,this.$parent);var i=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return i;var o=Io(i);if(!o)return i;if(this._leaving)return Fo(t,i);var a="__transition-"+this._uid+"-";o.key=null==o.key?o.isComment?a+"comment":a+o.tag:s(o.key)?0===String(o.key).indexOf(a)?o.key:a+o.key:o.key;var l=(o.data||(o.data={})).transition=Vo(this),c=this._vnode,u=Io(c);if(o.data.directives&&o.data.directives.some(Ho)&&(o.data.show=!0),u&&u.data&&!function(t,e){return e.key===t.key&&e.tag===t.tag}(o,u)&&!Be(u)&&(!u.componentInstance||!u.componentInstance._vnode.isComment)){var d=u.data.transition=D({},l);if("out-in"===r)return this._leaving=!0,je(d,"afterLeave",function(){e._leaving=!1,e.$forceUpdate()}),Fo(t,i);if("in-out"===r){if(Be(o))return c;var p,f=function(){p()};je(l,"afterEnter",f),je(l,"enterCancelled",f),je(d,"delayLeave",function(t){p=t})}}return i}}},Uo=D({tag:String,moveClass:String},Ro);function qo(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function Wo(t){t.data.newPos=t.elm.getBoundingClientRect()}function Yo(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,i=e.top-n.top;if(r||i){t.data.moved=!0;var o=t.elm.style;o.transform=o.WebkitTransform="translate("+r+"px,"+i+"px)",o.transitionDuration="0s"}}delete Uo.mode;var Go={Transition:zo,TransitionGroup:{props:Uo,beforeMount:function(){var t=this,e=this._update;this._update=function(n,r){var i=En(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,i(),e.call(t,n,r)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,i=this.$slots.default||[],o=this.children=[],a=Vo(this),s=0;s<i.length;s++){var l=i[s];if(l.tag)if(null!=l.key&&0!==String(l.key).indexOf("__vlist"))o.push(l),n[l.key]=l,(l.data||(l.data={})).transition=a;else if("production"!==production.NODE_ENV){var c=l.componentOptions,u=c?c.Ctor.options.name||c.tag||"":l.tag;pt("<transition-group> children must be keyed: <"+u+">")}}if(r){for(var d=[],p=[],f=0;f<r.length;f++){var h=r[f];h.data.transition=a,h.data.pos=h.elm.getBoundingClientRect(),n[h.key]?d.push(h):p.push(h)}this.kept=t(e,null,d),this.removed=p}return t(e,null,o)},updated:function(){var t=this.prevChildren,e=this.moveClass||(this.name||"v")+"-move";t.length&&this.hasMove(t[0].elm,e)&&(t.forEach(qo),t.forEach(Wo),t.forEach(Yo),this._reflow=document.body.offsetHeight,t.forEach(function(t){if(t.data.moved){var n=t.elm,r=n.style;fo(n,e),r.transform=r.WebkitTransform=r.transitionDuration="",n.addEventListener(so,n._moveCb=function t(r){r&&r.target!==n||r&&!/transform$/.test(r.propertyName)||(n.removeEventListener(so,t),n._moveCb=null,ho(n,e))})}}))},methods:{hasMove:function(t,e){if(!ro)return!1;if(this._hasMove)return this._hasMove;var n=t.cloneNode();t._transitionClasses&&t._transitionClasses.forEach(function(t){to(n,t)}),Qi(n,e),n.style.display="none",this.$el.appendChild(n);var r=go(n);return this.$el.removeChild(n),this._hasMove=r.hasTransform}}}};er.config.mustUseProp=dr,er.config.isReservedTag=Er,er.config.isReservedAttr=cr,er.config.getTagNamespace=Tr,er.config.isUnknownElement=function(t){if(!X)return!0;if(Er(t))return!1;if(t=t.toLowerCase(),null!=Ar[t])return Ar[t];var e=document.createElement(t);return t.indexOf("-")>-1?Ar[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:Ar[t]=/HTMLUnknownElement/.test(e.toString())},D(er.options.directives,Lo),D(er.options.components,Go),er.prototype.__patch__=X?Oo:P,er.prototype.$mount=function(t,e){return function(t,e,n){var r;return t.$el=e,t.$options.render||(t.$options.render=Ct,"production"!==production.NODE_ENV&&(t.$options.template&&"#"!==t.$options.template.charAt(0)||t.$options.el||e?pt("You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build.",t):pt("Failed to mount component: template or render function not defined.",t))),$n(t,"beforeMount"),r="production"!==production.NODE_ENV&&H.performance&&ce?function(){var e=t._name,r=t._uid,i="vue-perf-start:"+r,o="vue-perf-end:"+r;ce(i);var a=t._render();ce(o),ue("vue "+e+" render",i,o),ce(i),t._update(a,n),ce(o),ue("vue "+e+" patch",i,o)}:function(){t._update(t._render(),n)},new Un(t,r,P,{before:function(){t._isMounted&&!t._isDestroyed&&$n(t,"beforeUpdate")}},!0),n=!1,null==t.$vnode&&(t._isMounted=!0,$n(t,"mounted")),t}(this,t=t&&X?Dr(t):void 0,e)},X&&setTimeout(function(){H.devtools&&(lt?lt.emit("init",er):"production"!==production.NODE_ENV&&"test"!==production.NODE_ENV&&console[console.info?"info":"log"]("Download the Vue Devtools extension for a better development experience:\nhttps://github.com/vuejs/vue-devtools")),"production"!==production.NODE_ENV&&"test"!==production.NODE_ENV&&!1!==H.productionTip&&"undefined"!=typeof console&&console[console.info?"info":"log"]("You are running Vue in development mode.\nMake sure to turn on production mode when deploying for production.\nSee more tips at https://vuejs.org/guide/deployment.html")},0);var Xo=/\{\{((?:.|\r?\n)+?)\}\}/g,Ko=/[-.*+?^${}()|[\]\/\\]/g,Jo=k(function(t){var e=t[0].replace(Ko,"\\$&"),n=t[1].replace(Ko,"\\$&");return new RegExp(e+"((?:.|\\n)+?)"+n,"g")});function Zo(t,e){var n=e?Jo(e):Xo;if(n.test(t)){for(var r,i,o,a=[],s=[],l=n.lastIndex=0;r=n.exec(t);){(i=r.index)>l&&(s.push(o=t.slice(l,i)),a.push(JSON.stringify(o)));var c=ai(r[1].trim());a.push("_s("+c+")"),s.push({"@binding":c}),l=i+r[0].length}return l<t.length&&(s.push(o=t.slice(l)),a.push(JSON.stringify(o))),{expression:a.join("+"),tokens:s}}}var Qo={staticKeys:["staticClass"],transformNode:function(t,e){var n=e.warn||li,r=yi(t,"class");"production"!==production.NODE_ENV&&r&&Zo(r,e.delimiters)&&n('class="'+r+'": Interpolation inside attributes has been removed. Use v-bind or the colon shorthand instead. For example, instead of <div class="{{ val }}">, use <div :class="val">.',t.rawAttrsMap.class),r&&(t.staticClass=JSON.stringify(r));var i=gi(t,"class",!1);i&&(t.classBinding=i)},genData:function(t){var e="";return t.staticClass&&(e+="staticClass:"+t.staticClass+","),t.classBinding&&(e+="class:"+t.classBinding+","),e}};var ta,ea={staticKeys:["staticStyle"],transformNode:function(t,e){var n=e.warn||li,r=yi(t,"style");r&&("production"!==production.NODE_ENV&&Zo(r,e.delimiters)&&n('style="'+r+'": Interpolation inside attributes has been removed. Use v-bind or the colon shorthand instead. For example, instead of <div style="{{ val }}">, use <div :style="val">.',t.rawAttrsMap.style),t.staticStyle=JSON.stringify(Bi(r)));var i=gi(t,"style",!1);i&&(t.styleBinding=i)},genData:function(t){var e="";return t.staticStyle&&(e+="staticStyle:"+t.staticStyle+","),t.styleBinding&&(e+="style:("+t.styleBinding+"),"),e}},na=function(t){return(ta=ta||document.createElement("div")).innerHTML=t,ta.textContent},ra=g("area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr"),ia=g("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source"),oa=g("address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track"),aa=/^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,sa=/^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+?\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,la="[a-zA-Z_][\\-\\.0-9_a-zA-Z"+z.source+"]*",ca="((?:"+la+"\\:)?"+la+")",ua=new RegExp("^<"+ca),da=/^\s*(\/?)>/,pa=new RegExp("^<\\/"+ca+"[^>]*>"),fa=/^<!DOCTYPE [^>]+>/i,ha=/^<!\--/,ma=/^<!\[/,va=g("script,style,textarea",!0),ga={},ya={"&lt;":"<","&gt;":">","&quot;":'"',"&amp;":"&","&#10;":"\n","&#9;":"\t","&#39;":"'"},ba=/&(?:lt|gt|quot|amp|#39);/g,wa=/&(?:lt|gt|quot|amp|#39|#10|#9);/g,_a=g("pre,textarea",!0),xa=function(t,e){return t&&_a(t)&&"\n"===e[0]};function ka(t,e){var n=e?wa:ba;return t.replace(n,function(t){return ya[t]})}var Sa,Ca,Oa,Ea,Ta,Aa,$a,Da,Na,Pa=/^@|^v-on:/,ja=/^v-|^@|^:|^#/,Ma=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,La=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,Ra=/^\(|\)$/g,Ia=/^\[.*\]$/,Va=/:(.*)$/,Fa=/^:|^\.|^v-bind:/,Ba=/\.[^.\]]+(?=[^\]]*$)/g,Ha=/^v-slot(:|$)|^#/,za=/[\r\n]/,Ua=/[ \f\t\r\n]+/g,qa=/[\s"'<>\/=]/,Wa=k(na),Ya="_empty_";function Ga(t,e,n){return{type:1,tag:t,attrsList:e,attrsMap:function(t){for(var e={},n=0,r=t.length;n<r;n++)"production"===production.NODE_ENV||!e[t[n].name]||Q||et||Sa("duplicate attribute: "+t[n].name,t[n]),e[t[n].name]=t[n].value;return e}(e),rawAttrsMap:{},parent:n,children:[]}}function Xa(t,e){Sa=e.warn||li,Aa=e.isPreTag||j,$a=e.mustUseProp||j,Da=e.getTagNamespace||j;var n=e.isReservedTag||j;Na=function(t){return!(!(t.component||t.attrsMap[":is"]||t.attrsMap["v-bind:is"])&&(t.attrsMap.is?n(t.attrsMap.is):n(t.tag)))},Oa=ci(e.modules,"transformNode"),Ea=ci(e.modules,"preTransformNode"),Ta=ci(e.modules,"postTransformNode"),Ca=e.delimiters;var r,i,o=[],a=!1!==e.preserveWhitespace,s=e.whitespace,l=!1,c=!1,u=!1;function d(t,e){u||(u=!0,Sa(t,e))}function p(t){if(f(t),l||t.processed||(t=Ka(t,e)),o.length||t===r||(r.if&&(t.elseif||t.else)?("production"!==production.NODE_ENV&&h(t),Za(r,{exp:t.elseif,block:t})):"production"!==production.NODE_ENV&&d("Component template should contain exactly one root element. If you are using v-if on multiple elements, use v-else-if to chain them instead.",{start:t.start})),i&&!t.forbidden)if(t.elseif||t.else)!function(t,e){var n=function(t){var e=t.length;for(;e--;){if(1===t[e].type)return t[e];"production"!==production.NODE_ENV&&" "!==t[e].text&&Sa('text "'+t[e].text.trim()+'" between v-if and v-else(-if) will be ignored.',t[e]),t.pop()}}(e.children);n&&n.if?Za(n,{exp:t.elseif,block:t}):"production"!==production.NODE_ENV&&Sa("v-"+(t.elseif?'else-if="'+t.elseif+'"':"else")+" used on element <"+t.tag+"> without corresponding v-if.",t.rawAttrsMap[t.elseif?"v-else-if":"v-else"])}(t,i);else{if(t.slotScope){var n=t.slotTarget||'"default"';(i.scopedSlots||(i.scopedSlots={}))[n]=t}i.children.push(t),t.parent=i}t.children=t.children.filter(function(t){return!t.slotScope}),f(t),t.pre&&(l=!1),Aa(t.tag)&&(c=!1);for(var a=0;a<Ta.length;a++)Ta[a](t,e)}function f(t){if(!c)for(var e;(e=t.children[t.children.length-1])&&3===e.type&&" "===e.text;)t.children.pop()}function h(t){"slot"!==t.tag&&"template"!==t.tag||d("Cannot use <"+t.tag+"> as component root element because it may contain multiple nodes.",{start:t.start}),t.attrsMap.hasOwnProperty("v-for")&&d("Cannot use v-for on stateful component root element because it renders multiple elements.",t.rawAttrsMap["v-for"])}return function(t,e){for(var n,r,i=[],o=e.expectHTML,a=e.isUnaryTag||j,s=e.canBeLeftOpenTag||j,l=0;t;){if(n=t,r&&va(r)){var c=0,u=r.toLowerCase(),d=ga[u]||(ga[u]=new RegExp("([\\s\\S]*?)(</"+u+"[^>]*>)","i")),p=t.replace(d,function(t,n,r){return c=r.length,va(u)||"noscript"===u||(n=n.replace(/<!\--([\s\S]*?)-->/g,"$1").replace(/<!\[CDATA\[([\s\S]*?)]]>/g,"$1")),xa(u,n)&&(n=n.slice(1)),e.chars&&e.chars(n),""});l+=t.length-p.length,t=p,O(u,l-c,l)}else{var f=t.indexOf("<");if(0===f){if(ha.test(t)){var h=t.indexOf("--\x3e");if(h>=0){e.shouldKeepComment&&e.comment(t.substring(4,h),l,l+h+3),k(h+3);continue}}if(ma.test(t)){var m=t.indexOf("]>");if(m>=0){k(m+2);continue}}var v=t.match(fa);if(v){k(v[0].length);continue}var g=t.match(pa);if(g){var y=l;k(g[0].length),O(g[1],y,l);continue}var b=S();if(b){C(b),xa(b.tagName,t)&&k(1);continue}}var w=void 0,_=void 0,x=void 0;if(f>=0){for(_=t.slice(f);!(pa.test(_)||ua.test(_)||ha.test(_)||ma.test(_)||(x=_.indexOf("<",1))<0);)f+=x,_=t.slice(f);w=t.substring(0,f)}f<0&&(w=t),w&&k(w.length),e.chars&&w&&e.chars(w,l-w.length,l)}if(t===n){e.chars&&e.chars(t),"production"!==production.NODE_ENV&&!i.length&&e.warn&&e.warn('Mal-formatted tag at end of template: "'+t+'"',{start:l+t.length});break}}function k(e){l+=e,t=t.substring(e)}function S(){var e=t.match(ua);if(e){var n,r,i={tagName:e[1],attrs:[],start:l};for(k(e[0].length);!(n=t.match(da))&&(r=t.match(sa)||t.match(aa));)r.start=l,k(r[0].length),r.end=l,i.attrs.push(r);if(n)return i.unarySlash=n[1],k(n[0].length),i.end=l,i}}function C(t){var n=t.tagName,l=t.unarySlash;o&&("p"===r&&oa(n)&&O(r),s(n)&&r===n&&O(n));for(var c=a(n)||!!l,u=t.attrs.length,d=new Array(u),p=0;p<u;p++){var f=t.attrs[p],h=f[3]||f[4]||f[5]||"",m="a"===n&&"href"===f[1]?e.shouldDecodeNewlinesForHref:e.shouldDecodeNewlines;d[p]={name:f[1],value:ka(h,m)},"production"!==production.NODE_ENV&&e.outputSourceRange&&(d[p].start=f.start+f[0].match(/^\s*/).length,d[p].end=f.end)}c||(i.push({tag:n,lowerCasedTag:n.toLowerCase(),attrs:d,start:t.start,end:t.end}),r=n),e.start&&e.start(n,d,c,t.start,t.end)}function O(t,n,o){var a,s;if(null==n&&(n=l),null==o&&(o=l),t)for(s=t.toLowerCase(),a=i.length-1;a>=0&&i[a].lowerCasedTag!==s;a--);else a=0;if(a>=0){for(var c=i.length-1;c>=a;c--)"production"!==production.NODE_ENV&&(c>a||!t)&&e.warn&&e.warn("tag <"+i[c].tag+"> has no matching end tag.",{start:i[c].start,end:i[c].end}),e.end&&e.end(i[c].tag,n,o);i.length=a,r=a&&i[a-1].tag}else"br"===s?e.start&&e.start(t,[],!0,n,o):"p"===s&&(e.start&&e.start(t,[],!1,n,o),e.end&&e.end(t,n,o))}O()}(t,{warn:Sa,expectHTML:e.expectHTML,isUnaryTag:e.isUnaryTag,canBeLeftOpenTag:e.canBeLeftOpenTag,shouldDecodeNewlines:e.shouldDecodeNewlines,shouldDecodeNewlinesForHref:e.shouldDecodeNewlinesForHref,shouldKeepComment:e.comments,outputSourceRange:e.outputSourceRange,start:function(t,n,a,s,u){var d=i&&i.ns||Da(t);Q&&"svg"===d&&(n=function(t){for(var e=[],n=0;n<t.length;n++){var r=t[n];es.test(r.name)||(r.name=r.name.replace(ns,""),e.push(r))}return e}(n));var f=Ga(t,n,i);d&&(f.ns=d),"production"!==production.NODE_ENV&&(e.outputSourceRange&&(f.start=s,f.end=u,f.rawAttrsMap=f.attrsList.reduce(function(t,e){return t[e.name]=e,t},{})),n.forEach(function(t){qa.test(t.name)&&Sa("Invalid dynamic argument expression: attribute names cannot contain spaces, quotes, <, >, / or =.",{start:t.start+t.name.indexOf("["),end:t.start+t.name.length})})),function(t){return"style"===t.tag||"script"===t.tag&&(!t.attrsMap.type||"text/javascript"===t.attrsMap.type)}(f)&&!st()&&(f.forbidden=!0,"production"!==production.NODE_ENV&&Sa("Templates should only be responsible for mapping the state to the UI. Avoid placing tags with side-effects in your templates, such as <"+t+">, as they will not be parsed.",{start:f.start}));for(var m=0;m<Ea.length;m++)f=Ea[m](f,e)||f;l||(!function(t){null!=yi(t,"v-pre")&&(t.pre=!0)}(f),f.pre&&(l=!0)),Aa(f.tag)&&(c=!0),l?function(t){var e=t.attrsList,n=e.length;if(n)for(var r=t.attrs=new Array(n),i=0;i<n;i++)r[i]={name:e[i].name,value:JSON.stringify(e[i].value)},null!=e[i].start&&(r[i].start=e[i].start,r[i].end=e[i].end);else t.pre||(t.plain=!0)}(f):f.processed||(Ja(f),function(t){var e=yi(t,"v-if");if(e)t.if=e,Za(t,{exp:e,block:t});else{null!=yi(t,"v-else")&&(t.else=!0);var n=yi(t,"v-else-if");n&&(t.elseif=n)}}(f),function(t){null!=yi(t,"v-once")&&(t.once=!0)}(f)),r||(r=f,"production"!==production.NODE_ENV&&h(r)),a?p(f):(i=f,o.push(f))},end:function(t,n,r){var a=o[o.length-1];o.length-=1,i=o[o.length-1],"production"!==production.NODE_ENV&&e.outputSourceRange&&(a.end=r),p(a)},chars:function(n,r,o){if(i){if(!Q||"textarea"!==i.tag||i.attrsMap.placeholder!==n){var u,p,f=i.children;if(n=c||n.trim()?function(t){return"script"===t.tag||"style"===t.tag}(i)?n:Wa(n):f.length?s?"condense"===s&&za.test(n)?"":" ":a?" ":"":"")c||"condense"!==s||(n=n.replace(Ua," ")),!l&&" "!==n&&(u=Zo(n,Ca))?p={type:2,expression:u.expression,tokens:u.tokens,text:n}:" "===n&&f.length&&" "===f[f.length-1].text||(p={type:3,text:n}),p&&("production"!==production.NODE_ENV&&e.outputSourceRange&&(p.start=r,p.end=o),f.push(p))}}else"production"!==production.NODE_ENV&&(n===t?d("Component template requires a root element, rather than just text.",{start:r}):(n=n.trim())&&d('text "'+n+'" outside root element will be ignored.',{start:r}))},comment:function(t,n,r){if(i){var o={type:3,text:t,isComment:!0};"production"!==production.NODE_ENV&&e.outputSourceRange&&(o.start=n,o.end=r),i.children.push(o)}}}),r}function Ka(t,e){!function(t){var e=gi(t,"key");if(e){if("production"!==production.NODE_ENV&&("template"===t.tag&&Sa("<template> cannot be keyed. Place the key on real elements instead.",vi(t,"key")),t.for)){var n=t.iterator2||t.iterator1,r=t.parent;n&&n===e&&r&&"transition-group"===r.tag&&Sa("Do not use v-for index as key on <transition-group> children, this is the same as not using keys.",vi(t,"key"),!0)}t.key=e}}(t),t.plain=!t.key&&!t.scopedSlots&&!t.attrsList.length,function(t){var e=gi(t,"ref");e&&(t.ref=e,t.refInFor=function(t){var e=t;for(;e;){if(void 0!==e.for)return!0;e=e.parent}return!1}(t))}(t),function(t){var e;"template"===t.tag?(e=yi(t,"scope"),"production"!==production.NODE_ENV&&e&&Sa('the "scope" attribute for scoped slots have been deprecated and replaced by "slot-scope" since 2.5. The new "slot-scope" attribute can also be used on plain elements in addition to <template> to denote scoped slots.',t.rawAttrsMap.scope,!0),t.slotScope=e||yi(t,"slot-scope")):(e=yi(t,"slot-scope"))&&("production"!==production.NODE_ENV&&t.attrsMap["v-for"]&&Sa("Ambiguous combined usage of slot-scope and v-for on <"+t.tag+"> (v-for takes higher priority). Use a wrapper <template> for the scoped slot to make it clearer.",t.rawAttrsMap["slot-scope"],!0),t.slotScope=e);var n=gi(t,"slot");n&&(t.slotTarget='""'===n?'"default"':n,t.slotTargetDynamic=!(!t.attrsMap[":slot"]&&!t.attrsMap["v-bind:slot"]),"template"===t.tag||t.slotScope||di(t,"slot",n,vi(t,"slot")));if("template"===t.tag){var r=bi(t,Ha);if(r){"production"!==production.NODE_ENV&&((t.slotTarget||t.slotScope)&&Sa("Unexpected mixed usage of different slot syntaxes.",t),t.parent&&!Na(t.parent)&&Sa("<template v-slot> can only appear at the root level inside the receiving component",t));var i=Qa(r),o=i.name,a=i.dynamic;t.slotTarget=o,t.slotTargetDynamic=a,t.slotScope=r.value||Ya}}else{var s=bi(t,Ha);if(s){"production"!==production.NODE_ENV&&(Na(t)||Sa("v-slot can only be used on components or <template>.",s),(t.slotScope||t.slotTarget)&&Sa("Unexpected mixed usage of different slot syntaxes.",t),t.scopedSlots&&Sa("To avoid scope ambiguity, the default slot should also use <template> syntax when there are other named slots.",s));var l=t.scopedSlots||(t.scopedSlots={}),c=Qa(s),u=c.name,d=c.dynamic,p=l[u]=Ga("template",[],t);p.slotTarget=u,p.slotTargetDynamic=d,p.children=t.children.filter(function(t){if(!t.slotScope)return t.parent=p,!0}),p.slotScope=s.value||Ya,t.children=[],t.plain=!1}}}(t),function(t){"slot"===t.tag&&(t.slotName=gi(t,"name"),"production"!==production.NODE_ENV&&t.key&&Sa("`key` does not work on <slot> because slots are abstract outlets and can possibly expand into multiple elements. Use the key on a wrapping element instead.",vi(t,"key")))}(t),function(t){var e;(e=gi(t,"is"))&&(t.component=e);null!=yi(t,"inline-template")&&(t.inlineTemplate=!0)}(t);for(var n=0;n<Oa.length;n++)t=Oa[n](t,e)||t;return function(t){var e,n,r,i,o,a,s,l,c=t.attrsList;for(e=0,n=c.length;e<n;e++)if(r=i=c[e].name,o=c[e].value,ja.test(r))if(t.hasBindings=!0,(a=ts(r.replace(ja,"")))&&(r=r.replace(Ba,"")),Fa.test(r))r=r.replace(Fa,""),o=ai(o),(l=Ia.test(r))&&(r=r.slice(1,-1)),"production"!==production.NODE_ENV&&0===o.trim().length&&Sa('The value for a v-bind expression cannot be empty. Found in "v-bind:'+r+'"'),a&&(a.prop&&!l&&"innerHtml"===(r=C(r))&&(r="innerHTML"),a.camel&&!l&&(r=C(r)),a.sync&&(s=xi(o,"$event"),l?mi(t,'"update:"+('+r+")",s,null,!1,Sa,c[e],!0):(mi(t,"update:"+C(r),s,null,!1,Sa,c[e]),T(r)!==C(r)&&mi(t,"update:"+T(r),s,null,!1,Sa,c[e])))),a&&a.prop||!t.component&&$a(t.tag,t.attrsMap.type,r)?ui(t,r,o,c[e],l):di(t,r,o,c[e],l);else if(Pa.test(r))r=r.replace(Pa,""),(l=Ia.test(r))&&(r=r.slice(1,-1)),mi(t,r,o,a,!1,Sa,c[e],l);else{var u=(r=r.replace(ja,"")).match(Va),d=u&&u[1];l=!1,d&&(r=r.slice(0,-(d.length+1)),Ia.test(d)&&(d=d.slice(1,-1),l=!0)),fi(t,r,i,o,d,l,a,c[e]),"production"!==production.NODE_ENV&&"model"===r&&rs(t,o)}else{if("production"!==production.NODE_ENV){var p=Zo(o,Ca);p&&Sa(r+'="'+o+'": Interpolation inside attributes has been removed. Use v-bind or the colon shorthand instead. For example, instead of <div id="{{ val }}">, use <div :id="val">.',c[e])}di(t,r,JSON.stringify(o),c[e]),!t.component&&"muted"===r&&$a(t.tag,t.attrsMap.type,r)&&ui(t,r,"true",c[e])}}(t),t}function Ja(t){var e;if(e=yi(t,"v-for")){var n=function(t){var e=t.match(Ma);if(!e)return;var n={};n.for=e[2].trim();var r=e[1].trim().replace(Ra,""),i=r.match(La);i?(n.alias=r.replace(La,"").trim(),n.iterator1=i[1].trim(),i[2]&&(n.iterator2=i[2].trim())):n.alias=r;return n}(e);n?D(t,n):"production"!==production.NODE_ENV&&Sa("Invalid v-for expression: "+e,t.rawAttrsMap["v-for"])}}function Za(t,e){t.ifConditions||(t.ifConditions=[]),t.ifConditions.push(e)}function Qa(t){var e=t.name.replace(Ha,"");return e||("#"!==t.name[0]?e="default":"production"!==production.NODE_ENV&&Sa("v-slot shorthand syntax requires a slot name.",t)),Ia.test(e)?{name:e.slice(1,-1),dynamic:!0}:{name:'"'+e+'"',dynamic:!1}}function ts(t){var e=t.match(Ba);if(e){var n={};return e.forEach(function(t){n[t.slice(1)]=!0}),n}}var es=/^xmlns:NS\d+/,ns=/^NS\d+:/;function rs(t,e){for(var n=t;n;)n.for&&n.alias===e&&Sa("<"+t.tag+' v-model="'+e+'">: You are binding v-model directly to a v-for iteration alias. This will not be able to modify the v-for source array because writing to the alias is like modifying a function local variable. Consider using an array of objects and use v-model on an object property instead.',t.rawAttrsMap["v-model"]),n=n.parent}function is(t){return Ga(t.tag,t.attrsList.slice(),t.parent)}var os=[Qo,ea,{preTransformNode:function(t,e){if("input"===t.tag){var n,r=t.attrsMap;if(!r["v-model"])return;if((r[":type"]||r["v-bind:type"])&&(n=gi(t,"type")),r.type||n||!r["v-bind"]||(n="("+r["v-bind"]+").type"),n){var i=yi(t,"v-if",!0),o=i?"&&("+i+")":"",a=null!=yi(t,"v-else",!0),s=yi(t,"v-else-if",!0),l=is(t);Ja(l),pi(l,"type","checkbox"),Ka(l,e),l.processed=!0,l.if="("+n+")==='checkbox'"+o,Za(l,{exp:l.if,block:l});var c=is(t);yi(c,"v-for",!0),pi(c,"type","radio"),Ka(c,e),Za(l,{exp:"("+n+")==='radio'"+o,block:c});var u=is(t);return yi(u,"v-for",!0),pi(u,":type",n),Ka(u,e),Za(l,{exp:i,block:u}),a?l.else=!0:s&&(l.elseif=s),l}}}}];var as,ss,ls={expectHTML:!0,modules:os,directives:{model:function(t,e,n){ri=n;var r=e.value,i=e.modifiers,o=t.tag,a=t.attrsMap.type;if("production"!==production.NODE_ENV&&"input"===o&&"file"===a&&ri("<"+t.tag+' v-model="'+r+'" type="file">:\nFile inputs are read only. Use a v-on:change listener instead.',t.rawAttrsMap["v-model"]),t.component)return _i(t,r,i),!1;if("select"===o)!function(t,e,n){var r='var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = "_value" in o ? o._value : o.value;return '+(n&&n.number?"_n(val)":"val")+"});";r=r+" "+xi(e,"$event.target.multiple ? $$selectedVal : $$selectedVal[0]"),mi(t,"change",r,null,!0)}(t,r,i);else if("input"===o&&"checkbox"===a)!function(t,e,n){var r=n&&n.number,i=gi(t,"value")||"null",o=gi(t,"true-value")||"true",a=gi(t,"false-value")||"false";ui(t,"checked","Array.isArray("+e+")?_i("+e+","+i+")>-1"+("true"===o?":("+e+")":":_q("+e+","+o+")")),mi(t,"change","var $$a="+e+",$$el=$event.target,$$c=$$el.checked?("+o+"):("+a+");if(Array.isArray($$a)){var $$v="+(r?"_n("+i+")":i)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+xi(e,"$$a.concat([$$v])")+")}else{$$i>-1&&("+xi(e,"$$a.slice(0,$$i).concat($$a.slice($$i+1))")+")}}else{"+xi(e,"$$c")+"}",null,!0)}(t,r,i);else if("input"===o&&"radio"===a)!function(t,e,n){var r=n&&n.number,i=gi(t,"value")||"null";ui(t,"checked","_q("+e+","+(i=r?"_n("+i+")":i)+")"),mi(t,"change",xi(e,i),null,!0)}(t,r,i);else if("input"===o||"textarea"===o)!function(t,e,n){var r=t.attrsMap.type;if("production"!==production.NODE_ENV){var i=t.attrsMap["v-bind:value"]||t.attrsMap[":value"],o=t.attrsMap["v-bind:type"]||t.attrsMap[":type"];if(i&&!o){var a=t.attrsMap["v-bind:value"]?"v-bind:value":":value";ri(a+'="'+i+'" conflicts with v-model on the same element because the latter already expands to a value binding internally',t.rawAttrsMap[a])}}var s=n||{},l=s.lazy,c=s.number,u=s.trim,d=!l&&"range"!==r,p=l?"change":"range"===r?Ai:"input",f="$event.target.value";u&&(f="$event.target.value.trim()"),c&&(f="_n("+f+")");var h=xi(e,f);d&&(h="if($event.target.composing)return;"+h),ui(t,"value","("+e+")"),mi(t,p,h,null,!0),(u||c)&&mi(t,"blur","$forceUpdate()")}(t,r,i);else{if(!H.isReservedTag(o))return _i(t,r,i),!1;"production"!==production.NODE_ENV&&ri("<"+t.tag+' v-model="'+r+"\">: v-model is not supported on this element type. If you are working with contenteditable, it's recommended to wrap a library dedicated for that purpose inside a custom component.",t.rawAttrsMap["v-model"])}return!0},text:function(t,e){e.value&&ui(t,"textContent","_s("+e.value+")",e)},html:function(t,e){e.value&&ui(t,"innerHTML","_s("+e.value+")",e)}},isPreTag:function(t){return"pre"===t},isUnaryTag:ra,mustUseProp:dr,canBeLeftOpenTag:ia,isReservedTag:Er,getTagNamespace:Tr,staticKeys:function(t){return t.reduce(function(t,e){return t.concat(e.staticKeys||[])},[]).join(",")}(os)},cs=k(function(t){return g("type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap"+(t?","+t:""))});function us(t,e){t&&(as=cs(e.staticKeys||""),ss=e.isReservedTag||j,function t(e){e.static=function(t){if(2===t.type)return!1;if(3===t.type)return!0;return!(!t.pre&&(t.hasBindings||t.if||t.for||y(t.tag)||!ss(t.tag)||function(t){for(;t.parent;){if("template"!==(t=t.parent).tag)return!1;if(t.for)return!0}return!1}(t)||!Object.keys(t).every(as)))}(e);if(1===e.type){if(!ss(e.tag)&&"slot"!==e.tag&&null==e.attrsMap["inline-template"])return;for(var n=0,r=e.children.length;n<r;n++){var i=e.children[n];t(i),i.static||(e.static=!1)}if(e.ifConditions)for(var o=1,a=e.ifConditions.length;o<a;o++){var s=e.ifConditions[o].block;t(s),s.static||(e.static=!1)}}}(t),function t(e,n){if(1===e.type){if((e.static||e.once)&&(e.staticInFor=n),e.static&&e.children.length&&(1!==e.children.length||3!==e.children[0].type))return void(e.staticRoot=!0);if(e.staticRoot=!1,e.children)for(var r=0,i=e.children.length;r<i;r++)t(e.children[r],n||!!e.for);if(e.ifConditions)for(var o=1,a=e.ifConditions.length;o<a;o++)t(e.ifConditions[o].block,n)}}(t,!1))}var ds=/^([\w$_]+|\([^)]*?\))\s*=>|^function(?:\s+[\w$]+)?\s*\(/,ps=/\([^)]*?\);*$/,fs=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,hs={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},ms={esc:["Esc","Escape"],tab:"Tab",enter:"Enter",space:[" ","Spacebar"],up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete","Del"]},vs=function(t){return"if("+t+")return null;"},gs={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:vs("$event.target !== $event.currentTarget"),ctrl:vs("!$event.ctrlKey"),shift:vs("!$event.shiftKey"),alt:vs("!$event.altKey"),meta:vs("!$event.metaKey"),left:vs("'button' in $event && $event.button !== 0"),middle:vs("'button' in $event && $event.button !== 1"),right:vs("'button' in $event && $event.button !== 2")};function ys(t,e){var n=e?"nativeOn:":"on:",r="",i="";for(var o in t){var a=bs(t[o]);t[o]&&t[o].dynamic?i+=o+","+a+",":r+='"'+o+'":'+a+","}return r="{"+r.slice(0,-1)+"}",i?n+"_d("+r+",["+i.slice(0,-1)+"])":n+r}function bs(t){if(!t)return"function(){}";if(Array.isArray(t))return"["+t.map(function(t){return bs(t)}).join(",")+"]";var e=fs.test(t.value),n=ds.test(t.value),r=fs.test(t.value.replace(ps,""));if(t.modifiers){var i="",o="",a=[];for(var s in t.modifiers)if(gs[s])o+=gs[s],hs[s]&&a.push(s);else if("exact"===s){var l=t.modifiers;o+=vs(["ctrl","shift","alt","meta"].filter(function(t){return!l[t]}).map(function(t){return"$event."+t+"Key"}).join("||"))}else a.push(s);return a.length&&(i+=function(t){return"if(!$event.type.indexOf('key')&&"+t.map(ws).join("&&")+")return null;"}(a)),o&&(i+=o),"function($event){"+i+(e?"return "+t.value+".apply(null, arguments)":n?"return ("+t.value+").apply(null, arguments)":r?"return "+t.value:t.value)+"}"}return e||n?t.value:"function($event){"+(r?"return "+t.value:t.value)+"}"}function ws(t){var e=parseInt(t,10);if(e)return"$event.keyCode!=="+e;var n=hs[t],r=ms[t];return"_k($event.keyCode,"+JSON.stringify(t)+","+JSON.stringify(n)+",$event.key,"+JSON.stringify(r)+")"}var _s={on:function(t,e){"production"!==production.NODE_ENV&&e.modifiers&&pt("v-on without argument does not support modifiers."),t.wrapListeners=function(t){return"_g("+t+","+e.value+")"}},bind:function(t,e){t.wrapData=function(n){return"_b("+n+",'"+t.tag+"',"+e.value+","+(e.modifiers&&e.modifiers.prop?"true":"false")+(e.modifiers&&e.modifiers.sync?",true":"")+")"}},cloak:P},xs=function(t){this.options=t,this.warn=t.warn||li,this.transforms=ci(t.modules,"transformCode"),this.dataGenFns=ci(t.modules,"genData"),this.directives=D(D({},_s),t.directives);var e=t.isReservedTag||j;this.maybeComponent=function(t){return!!t.component||!e(t.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1};function ks(t,e){var n=new xs(e);return{render:"with(this){return "+(t?"script"===t.tag?"null":Ss(t,n):'_c("div")')+"}",staticRenderFns:n.staticRenderFns}}function Ss(t,e){if(t.parent&&(t.pre=t.pre||t.parent.pre),t.staticRoot&&!t.staticProcessed)return Cs(t,e);if(t.once&&!t.onceProcessed)return Os(t,e);if(t.for&&!t.forProcessed)return Ts(t,e);if(t.if&&!t.ifProcessed)return Es(t,e);if("template"!==t.tag||t.slotTarget||e.pre){if("slot"===t.tag)return function(t,e){var n=t.slotName||'"default"',r=Ns(t,e),i="_t("+n+(r?",function(){return "+r+"}":""),o=t.attrs||t.dynamicAttrs?Ms((t.attrs||[]).concat(t.dynamicAttrs||[]).map(function(t){return{name:C(t.name),value:t.value,dynamic:t.dynamic}})):null,a=t.attrsMap["v-bind"];!o&&!a||r||(i+=",null");o&&(i+=","+o);a&&(i+=(o?"":",null")+","+a);return i+")"}(t,e);var n;if(t.component)n=function(t,e,n){var r=e.inlineTemplate?null:Ns(e,n,!0);return"_c("+t+","+As(e,n)+(r?","+r:"")+")"}(t.component,t,e);else{var r;(!t.plain||t.pre&&e.maybeComponent(t))&&(r=As(t,e));var i=t.inlineTemplate?null:Ns(t,e,!0);n="_c('"+t.tag+"'"+(r?","+r:"")+(i?","+i:"")+")"}for(var o=0;o<e.transforms.length;o++)n=e.transforms[o](t,n);return n}return Ns(t,e)||"void 0"}function Cs(t,e){t.staticProcessed=!0;var n=e.pre;return t.pre&&(e.pre=t.pre),e.staticRenderFns.push("with(this){return "+Ss(t,e)+"}"),e.pre=n,"_m("+(e.staticRenderFns.length-1)+(t.staticInFor?",true":"")+")"}function Os(t,e){if(t.onceProcessed=!0,t.if&&!t.ifProcessed)return Es(t,e);if(t.staticInFor){for(var n="",r=t.parent;r;){if(r.for){n=r.key;break}r=r.parent}return n?"_o("+Ss(t,e)+","+e.onceId+++","+n+")":("production"!==production.NODE_ENV&&e.warn("v-once can only be used inside v-for that is keyed. ",t.rawAttrsMap["v-once"]),Ss(t,e))}return Cs(t,e)}function Es(t,e,n,r){return t.ifProcessed=!0,function t(e,n,r,i){if(!e.length)return i||"_e()";var o=e.shift();return o.exp?"("+o.exp+")?"+a(o.block)+":"+t(e,n,r,i):""+a(o.block);function a(t){return r?r(t,n):t.once?Os(t,n):Ss(t,n)}}(t.ifConditions.slice(),e,n,r)}function Ts(t,e,n,r){var i=t.for,o=t.alias,a=t.iterator1?","+t.iterator1:"",s=t.iterator2?","+t.iterator2:"";return"production"!==production.NODE_ENV&&e.maybeComponent(t)&&"slot"!==t.tag&&"template"!==t.tag&&!t.key&&e.warn("<"+t.tag+' v-for="'+o+" in "+i+'">: component lists rendered with v-for should have explicit keys. See https://vuejs.org/guide/list.html#key for more info.',t.rawAttrsMap["v-for"],!0),t.forProcessed=!0,(r||"_l")+"(("+i+"),function("+o+a+s+"){return "+(n||Ss)(t,e)+"})"}function As(t,e){var n="{",r=function(t,e){var n=t.directives;if(!n)return;var r,i,o,a,s="directives:[",l=!1;for(r=0,i=n.length;r<i;r++){o=n[r],a=!0;var c=e.directives[o.name];c&&(a=!!c(t,o,e.warn)),a&&(l=!0,s+='{name:"'+o.name+'",rawName:"'+o.rawName+'"'+(o.value?",value:("+o.value+"),expression:"+JSON.stringify(o.value):"")+(o.arg?",arg:"+(o.isDynamicArg?o.arg:'"'+o.arg+'"'):"")+(o.modifiers?",modifiers:"+JSON.stringify(o.modifiers):"")+"},")}if(l)return s.slice(0,-1)+"]"}(t,e);r&&(n+=r+","),t.key&&(n+="key:"+t.key+","),t.ref&&(n+="ref:"+t.ref+","),t.refInFor&&(n+="refInFor:true,"),t.pre&&(n+="pre:true,"),t.component&&(n+='tag:"'+t.tag+'",');for(var i=0;i<e.dataGenFns.length;i++)n+=e.dataGenFns[i](t);if(t.attrs&&(n+="attrs:"+Ms(t.attrs)+","),t.props&&(n+="domProps:"+Ms(t.props)+","),t.events&&(n+=ys(t.events,!1)+","),t.nativeEvents&&(n+=ys(t.nativeEvents,!0)+","),t.slotTarget&&!t.slotScope&&(n+="slot:"+t.slotTarget+","),t.scopedSlots&&(n+=function(t,e,n){var r=t.for||Object.keys(e).some(function(t){var n=e[t];return n.slotTargetDynamic||n.if||n.for||$s(n)}),i=!!t.if;if(!r)for(var o=t.parent;o;){if(o.slotScope&&o.slotScope!==Ya||o.for){r=!0;break}o.if&&(i=!0),o=o.parent}var a=Object.keys(e).map(function(t){return Ds(e[t],n)}).join(",");return"scopedSlots:_u(["+a+"]"+(r?",null,true":"")+(!r&&i?",null,false,"+function(t){var e=5381,n=t.length;for(;n;)e=33*e^t.charCodeAt(--n);return e>>>0}(a):"")+")"}(t,t.scopedSlots,e)+","),t.model&&(n+="model:{value:"+t.model.value+",callback:"+t.model.callback+",expression:"+t.model.expression+"},"),t.inlineTemplate){var o=function(t,e){var n=t.children[0];"production"===production.NODE_ENV||1===t.children.length&&1===n.type||e.warn("Inline-template components must have exactly one child element.",{start:t.start});if(n&&1===n.type){var r=ks(n,e.options);return"inlineTemplate:{render:function(){"+r.render+"},staticRenderFns:["+r.staticRenderFns.map(function(t){return"function(){"+t+"}"}).join(",")+"]}"}}(t,e);o&&(n+=o+",")}return n=n.replace(/,$/,"")+"}",t.dynamicAttrs&&(n="_b("+n+',"'+t.tag+'",'+Ms(t.dynamicAttrs)+")"),t.wrapData&&(n=t.wrapData(n)),t.wrapListeners&&(n=t.wrapListeners(n)),n}function $s(t){return 1===t.type&&("slot"===t.tag||t.children.some($s))}function Ds(t,e){var n=t.attrsMap["slot-scope"];if(t.if&&!t.ifProcessed&&!n)return Es(t,e,Ds,"null");if(t.for&&!t.forProcessed)return Ts(t,e,Ds);var r=t.slotScope===Ya?"":String(t.slotScope),i="function("+r+"){return "+("template"===t.tag?t.if&&n?"("+t.if+")?"+(Ns(t,e)||"undefined")+":undefined":Ns(t,e)||"undefined":Ss(t,e))+"}",o=r?"":",proxy:true";return"{key:"+(t.slotTarget||'"default"')+",fn:"+i+o+"}"}function Ns(t,e,n,r,i){var o=t.children;if(o.length){var a=o[0];if(1===o.length&&a.for&&"template"!==a.tag&&"slot"!==a.tag){var s=n?e.maybeComponent(a)?",1":",0":"";return""+(r||Ss)(a,e)+s}var l=n?function(t,e){for(var n=0,r=0;r<t.length;r++){var i=t[r];if(1===i.type){if(Ps(i)||i.ifConditions&&i.ifConditions.some(function(t){return Ps(t.block)})){n=2;break}(e(i)||i.ifConditions&&i.ifConditions.some(function(t){return e(t.block)}))&&(n=1)}}return n}(o,e.maybeComponent):0,c=i||js;return"["+o.map(function(t){return c(t,e)}).join(",")+"]"+(l?","+l:"")}}function Ps(t){return void 0!==t.for||"template"===t.tag||"slot"===t.tag}function js(t,e){return 1===t.type?Ss(t,e):3===t.type&&t.isComment?function(t){return"_e("+JSON.stringify(t.text)+")"}(t):function(t){return"_v("+(2===t.type?t.expression:Ls(JSON.stringify(t.text)))+")"}(t)}function Ms(t){for(var e="",n="",r=0;r<t.length;r++){var i=t[r],o=Ls(i.value);i.dynamic?n+=i.name+","+o+",":e+='"'+i.name+'":'+o+","}return e="{"+e.slice(0,-1)+"}",n?"_d("+e+",["+n.slice(0,-1)+"])":e}function Ls(t){return t.replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}var Rs=new RegExp("\\b"+"do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,super,throw,while,yield,delete,export,import,return,switch,default,extends,finally,continue,debugger,function,arguments".split(",").join("\\b|\\b")+"\\b"),Is=new RegExp("\\b"+"delete,typeof,void".split(",").join("\\s*\\([^\\)]*\\)|\\b")+"\\s*\\([^\\)]*\\)"),Vs=/'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`/g;function Fs(t,e){t&&function t(e,n){if(1===e.type){for(var r in e.attrsMap)if(ja.test(r)){var i=e.attrsMap[r];if(i){var o=e.rawAttrsMap[r];"v-for"===r?Hs(e,'v-for="'+i+'"',n,o):"v-slot"===r||"#"===r[0]?qs(i,r+'="'+i+'"',n,o):Pa.test(r)?Bs(i,r+'="'+i+'"',n,o):Us(i,r+'="'+i+'"',n,o)}}if(e.children)for(var a=0;a<e.children.length;a++)t(e.children[a],n)}else 2===e.type&&Us(e.expression,e.text,n,e)}(t,e)}function Bs(t,e,n,r){var i=t.replace(Vs,""),o=i.match(Is);o&&"$"!==i.charAt(o.index-1)&&n('avoid using JavaScript unary operator as property name: "'+o[0]+'" in expression '+e.trim(),r),Us(t,e,n,r)}function Hs(t,e,n,r){Us(t.for||"",e,n,r),zs(t.alias,"v-for alias",e,n,r),zs(t.iterator1,"v-for iterator",e,n,r),zs(t.iterator2,"v-for iterator",e,n,r)}function zs(t,e,n,r,i){if("string"==typeof t)try{new Function("var "+t+"=_")}catch(o){r("invalid "+e+' "'+t+'" in expression: '+n.trim(),i)}}function Us(t,e,n,r){try{new Function("return "+t)}catch(o){var i=t.replace(Vs,"").match(Rs);n(i?'avoid using JavaScript keyword as property name: "'+i[0]+'"\n Raw expression: '+e.trim():"invalid expression: "+o.message+" in\n\n "+t+"\n\n Raw expression: "+e.trim()+"\n",r)}}function qs(t,e,n,r){try{new Function(t,"")}catch(i){n("invalid function parameter expression: "+i.message+" in\n\n "+t+"\n\n Raw expression: "+e.trim()+"\n",r)}}var Ws=2;function Ys(t,e){var n="";if(e>0)for(;1&e&&(n+=t),!((e>>>=1)<=0);)t+=t;return n}function Gs(t,e){try{return new Function(t)}catch(n){return e.push({err:n,code:t}),P}}function Xs(t){var e=Object.create(null);return function(n,r,i){var o=(r=D({},r)).warn||pt;if(delete r.warn,"production"!==production.NODE_ENV)try{new Function("return 1")}catch(t){t.toString().match(/unsafe-eval|CSP/)&&o("It seems you are using the standalone build of Vue.js in an environment with Content Security Policy that prohibits unsafe-eval. The template compiler cannot work in this environment. Consider relaxing the policy to allow unsafe-eval or pre-compiling your templates into render functions.")}var a=r.delimiters?String(r.delimiters)+n:n;if(e[a])return e[a];var s=t(n,r);"production"!==production.NODE_ENV&&(s.errors&&s.errors.length&&(r.outputSourceRange?s.errors.forEach(function(t){o("Error compiling template:\n\n"+t.msg+"\n\n"+function(t,e,n){void 0===e&&(e=0),void 0===n&&(n=t.length);for(var r=t.split(/\r?\n/),i=0,o=[],a=0;a<r.length;a++)if((i+=r[a].length+1)>=e){for(var s=a-Ws;s<=a+Ws||n>i;s++)if(!(s<0||s>=r.length)){o.push(""+(s+1)+Ys(" ",3-String(s+1).length)+"| "+r[s]);var l=r[s].length;if(s===a){var c=e-(i-l)+1,u=n>i?l-c:n-e;o.push(" | "+Ys(" ",c)+Ys("^",u))}else if(s>a){if(n>i){var d=Math.min(n-i,l);o.push(" | "+Ys("^",d))}i+=l+1}}break}return o.join("\n")}(n,t.start,t.end),i)}):o("Error compiling template:\n\n"+n+"\n\n"+s.errors.map(function(t){return"- "+t}).join("\n")+"\n",i)),s.tips&&s.tips.length&&(r.outputSourceRange?s.tips.forEach(function(t){return ft(t.msg,i)}):s.tips.forEach(function(t){return ft(t,i)})));var l={},c=[];return l.render=Gs(s.render,c),l.staticRenderFns=s.staticRenderFns.map(function(t){return Gs(t,c)}),"production"!==production.NODE_ENV&&(s.errors&&s.errors.length||!c.length||o("Failed to generate render function:\n\n"+c.map(function(t){var e=t.err,n=t.code;return e.toString()+" in\n\n"+n+"\n"}).join("\n"),i)),e[a]=l}}var Ks,Js=function(t){return function(e){function n(n,r){var i=Object.create(e),o=[],a=[],s=function(t,e,n){(n?a:o).push(t)};if(r){if("production"!==production.NODE_ENV&&r.outputSourceRange){var l=n.match(/^\s*/)[0].length;s=function(t,e,n){var r={msg:t};e&&(null!=e.start&&(r.start=e.start+l),null!=e.end&&(r.end=e.end+l)),(n?a:o).push(r)}}for(var c in r.modules&&(i.modules=(e.modules||[]).concat(r.modules)),r.directives&&(i.directives=D(Object.create(e.directives||null),r.directives)),r)"modules"!==c&&"directives"!==c&&(i[c]=r[c])}i.warn=s;var u=t(n.trim(),i);return"production"!==production.NODE_ENV&&Fs(u.ast,s),u.errors=o,u.tips=a,u}return{compile:n,compileToFunctions:Xs(n)}}}(function(t,e){var n=Xa(t.trim(),e);!1!==e.optimize&&us(n,e);var r=ks(n,e);return{ast:n,render:r.render,staticRenderFns:r.staticRenderFns}})(ls),Zs=(Js.compile,Js.compileToFunctions);function Qs(t){return(Ks=Ks||document.createElement("div")).innerHTML=t?'<a href="\n"/>':'<div a="\n"/>',Ks.innerHTML.indexOf("&#10;")>0}var tl=!!X&&Qs(!1),el=!!X&&Qs(!0),nl=k(function(t){var e=Dr(t);return e&&e.innerHTML}),rl=er.prototype.$mount;er.prototype.$mount=function(t,e){if((t=t&&Dr(t))===document.body||t===document.documentElement)return"production"!==production.NODE_ENV&&pt("Do not mount Vue to <html> or <body> - mount to normal elements instead."),this;var n=this.$options;if(!n.render){var r=n.template;if(r)if("string"==typeof r)"#"===r.charAt(0)&&(r=nl(r),"production"===production.NODE_ENV||r||pt("Template element not found or is empty: "+n.template,this));else{if(!r.nodeType)return"production"!==production.NODE_ENV&&pt("invalid template option:"+r,this),this;r=r.innerHTML}else t&&(r=function(t){if(t.outerHTML)return t.outerHTML;var e=document.createElement("div");return e.appendChild(t.cloneNode(!0)),e.innerHTML}(t));if(r){"production"!==production.NODE_ENV&&H.performance&&ce&&ce("compile");var i=Zs(r,{outputSourceRange:"production"!==production.NODE_ENV,shouldDecodeNewlines:tl,shouldDecodeNewlinesForHref:el,delimiters:n.delimiters,comments:n.comments},this),o=i.render,a=i.staticRenderFns;n.render=o,n.staticRenderFns=a,"production"!==production.NODE_ENV&&H.performance&&ce&&(ce("compile end"),ue("vue "+this._name+" compile","compile","compile end"))}}return rl.call(this,t,e)},er.compile=Zs,e.default=er}.call(e,n(7),n(110).setImmediate)},,function(t,e){function n(t,e,n){var r,i,o,a,s;function l(){var c=Date.now()-a;c<e&&c>=0?r=setTimeout(l,e-c):(r=null,n||(s=t.apply(o,i),o=i=null))}null==e&&(e=100);var c=function(){o=this,i=arguments,a=Date.now();var c=n&&!r;return r||(r=setTimeout(l,e)),c&&(s=t.apply(o,i),o=i=null),s};return c.clear=function(){r&&(clearTimeout(r),r=null)},c.flush=function(){r&&(s=t.apply(o,i),o=i=null,clearTimeout(r),r=null)},c}n.debounce=n,t.exports=n},function(t,e,n){!function(e,n){t.exports=n()}(0,function(){return function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="/",e(e.s=60)}([function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e,n){var r=n(49)("wks"),i=n(30),o=n(0).Symbol,a="function"==typeof o;(t.exports=function(t){return r[t]||(r[t]=a&&o[t]||(a?o:i)("Symbol."+t))}).store=r},function(t,e,n){var r=n(5);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},function(t,e,n){var r=n(0),i=n(10),o=n(8),a=n(6),s=n(11),l=function(t,e,n){var c,u,d,p,f=t&l.F,h=t&l.G,m=t&l.S,v=t&l.P,g=t&l.B,y=h?r:m?r[e]||(r[e]={}):(r[e]||{}).prototype,b=h?i:i[e]||(i[e]={}),w=b.prototype||(b.prototype={});for(c in h&&(n=e),n)d=((u=!f&&y&&void 0!==y[c])?y:n)[c],p=g&&u?s(d,r):v&&"function"==typeof d?s(Function.call,d):d,y&&a(y,c,d,t&l.U),b[c]!=d&&o(b,c,p),v&&w[c]!=d&&(w[c]=d)};r.core=i,l.F=1,l.G=2,l.S=4,l.P=8,l.B=16,l.W=32,l.U=64,l.R=128,t.exports=l},function(t,e,n){t.exports=!n(7)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,n){var r=n(0),i=n(8),o=n(12),a=n(30)("src"),s=Function.toString,l=(""+s).split("toString");n(10).inspectSource=function(t){return s.call(t)},(t.exports=function(t,e,n,s){var c="function"==typeof n;c&&(o(n,"name")||i(n,"name",e)),t[e]!==n&&(c&&(o(n,a)||i(n,a,t[e]?""+t[e]:l.join(String(e)))),t===r?t[e]=n:s?t[e]?t[e]=n:i(t,e,n):(delete t[e],i(t,e,n)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[a]||s.call(this)})},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,n){var r=n(13),i=n(25);t.exports=n(4)?function(t,e,n){return r.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e){var n=t.exports={version:"2.5.7"};"number"==typeof __e&&(__e=n)},function(t,e,n){var r=n(14);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,i){return t.call(e,n,r,i)}}return function(){return t.apply(e,arguments)}}},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var r=n(2),i=n(41),o=n(29),a=Object.defineProperty;e.f=n(4)?Object.defineProperty:function(t,e,n){if(r(t),e=o(e,!0),r(n),i)try{return a(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e){t.exports={}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,n){"use strict";var r=n(7);t.exports=function(t,e){return!!t&&r(function(){e?t.call(null,function(){},1):t.call(null)})}},function(t,e,n){var r=n(23),i=n(16);t.exports=function(t){return r(i(t))}},function(t,e,n){var r=n(53),i=Math.min;t.exports=function(t){return t>0?i(r(t),9007199254740991):0}},function(t,e,n){var r=n(11),i=n(23),o=n(28),a=n(19),s=n(64);t.exports=function(t,e){var n=1==t,l=2==t,c=3==t,u=4==t,d=6==t,p=5==t||d,f=e||s;return function(e,s,h){for(var m,v,g=o(e),y=i(g),b=r(s,h,3),w=a(y.length),_=0,x=n?f(e,w):l?f(e,0):void 0;w>_;_++)if((p||_ in y)&&(v=b(m=y[_],_,g),t))if(n)x[_]=v;else if(v)switch(t){case 3:return!0;case 5:return m;case 6:return _;case 2:x.push(m)}else if(u)return!1;return d?-1:c||u?u:x}}},function(t,e,n){var r=n(5),i=n(0).document,o=r(i)&&r(i.createElement);t.exports=function(t){return o?i.createElement(t):{}}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,n){var r=n(9);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},function(t,e){t.exports=!1},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){var r=n(13).f,i=n(12),o=n(1)("toStringTag");t.exports=function(t,e,n){t&&!i(t=n?t:t.prototype,o)&&r(t,o,{configurable:!0,value:e})}},function(t,e,n){var r=n(49)("keys"),i=n(30);t.exports=function(t){return r[t]||(r[t]=i(t))}},function(t,e,n){var r=n(16);t.exports=function(t){return Object(r(t))}},function(t,e,n){var r=n(5);t.exports=function(t,e){if(!r(t))return t;var n,i;if(e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;if("function"==typeof(n=t.valueOf)&&!r(i=n.call(t)))return i;if(!e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},function(t,e,n){"use strict";var r=n(0),i=n(12),o=n(9),a=n(67),s=n(29),l=n(7),c=n(77).f,u=n(45).f,d=n(13).f,p=n(51).trim,f=r.Number,h=f,m=f.prototype,v="Number"==o(n(44)(m)),g="trim"in String.prototype,y=function(t){var e=s(t,!1);if("string"==typeof e&&e.length>2){var n,r,i,o=(e=g?e.trim():p(e,3)).charCodeAt(0);if(43===o||45===o){if(88===(n=e.charCodeAt(2))||120===n)return NaN}else if(48===o){switch(e.charCodeAt(1)){case 66:case 98:r=2,i=49;break;case 79:case 111:r=8,i=55;break;default:return+e}for(var a,l=e.slice(2),c=0,u=l.length;c<u;c++)if((a=l.charCodeAt(c))<48||a>i)return NaN;return parseInt(l,r)}}return+e};if(!f(" 0o1")||!f("0b1")||f("+0x1")){f=function(t){var e=arguments.length<1?0:t,n=this;return n instanceof f&&(v?l(function(){m.valueOf.call(n)}):"Number"!=o(n))?a(new h(y(e)),n,f):y(e)};for(var b,w=n(4)?c(h):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),_=0;w.length>_;_++)i(h,b=w[_])&&!i(f,b)&&d(f,b,u(h,b));f.prototype=m,m.constructor=f,n(6)(r,"Number",f)}},function(t,e,n){"use strict";function r(t){return!(0===t||(!Array.isArray(t)||0!==t.length)&&t)}function i(t,e,n,r){return t.filter(function(t){return function(t,e){return void 0===t&&(t="undefined"),null===t&&(t="null"),!1===t&&(t="false"),-1!==t.toString().toLowerCase().indexOf(e.trim())}(r(t,n),e)})}function o(t){return t.filter(function(t){return!t.$isLabel})}function a(t,e){return function(n){return n.reduce(function(n,r){return r[t]&&r[t].length?(n.push({$groupLabel:r[e],$isLabel:!0}),n.concat(r[t])):n},[])}}function s(t,e,r,o,a){return function(s){return s.map(function(s){var l;if(!s[r])return console.warn("Options passed to vue-multiselect do not contain groups, despite the config."),[];var c=i(s[r],t,e,a);return c.length?(l={},n.i(p.a)(l,o,s[o]),n.i(p.a)(l,r,c),l):[]})}}var l=n(59),c=n(54),u=(n.n(c),n(95)),d=(n.n(u),n(31)),p=(n.n(d),n(58)),f=n(91),h=(n.n(f),n(98)),m=(n.n(h),n(92)),v=(n.n(m),n(88)),g=(n.n(v),n(97)),y=(n.n(g),n(89)),b=(n.n(y),n(96)),w=(n.n(b),n(93)),_=(n.n(w),n(90)),x=(n.n(_),function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return function(t){return e.reduce(function(t,e){return e(t)},t)}});e.a={data:function(){return{search:"",isOpen:!1,preferredOpenDirection:"below",optimizedHeight:this.maxHeight}},props:{internalSearch:{type:Boolean,default:!0},options:{type:Array,required:!0},multiple:{type:Boolean,default:!1},value:{type:null,default:function(){return[]}},trackBy:{type:String},label:{type:String},searchable:{type:Boolean,default:!0},clearOnSelect:{type:Boolean,default:!0},hideSelected:{type:Boolean,default:!1},placeholder:{type:String,default:"Select option"},allowEmpty:{type:Boolean,default:!0},resetAfter:{type:Boolean,default:!1},closeOnSelect:{type:Boolean,default:!0},customLabel:{type:Function,default:function(t,e){return r(t)?"":e?t[e]:t}},taggable:{type:Boolean,default:!1},tagPlaceholder:{type:String,default:"Press enter to create a tag"},tagPosition:{type:String,default:"top"},max:{type:[Number,Boolean],default:!1},id:{default:null},optionsLimit:{type:Number,default:1e3},groupValues:{type:String},groupLabel:{type:String},groupSelect:{type:Boolean,default:!1},blockKeys:{type:Array,default:function(){return[]}},preserveSearch:{type:Boolean,default:!1},preselectFirst:{type:Boolean,default:!1}},mounted:function(){!this.multiple&&this.max&&console.warn("[Vue-Multiselect warn]: Max prop should not be used when prop Multiple equals false."),this.preselectFirst&&!this.internalValue.length&&this.options.length&&this.select(this.filteredOptions[0])},computed:{internalValue:function(){return this.value||0===this.value?Array.isArray(this.value)?this.value:[this.value]:[]},filteredOptions:function(){var t=this.search||"",e=t.toLowerCase().trim(),n=this.options.concat();return n=this.internalSearch?this.groupValues?this.filterAndFlat(n,e,this.label):i(n,e,this.label,this.customLabel):this.groupValues?a(this.groupValues,this.groupLabel)(n):n,n=this.hideSelected?n.filter(function(t){return function(){return!t.apply(void 0,arguments)}}(this.isSelected)):n,this.taggable&&e.length&&!this.isExistingOption(e)&&("bottom"===this.tagPosition?n.push({isTag:!0,label:t}):n.unshift({isTag:!0,label:t})),n.slice(0,this.optionsLimit)},valueKeys:function(){var t=this;return this.trackBy?this.internalValue.map(function(e){return e[t.trackBy]}):this.internalValue},optionKeys:function(){var t=this;return(this.groupValues?this.flatAndStrip(this.options):this.options).map(function(e){return t.customLabel(e,t.label).toString().toLowerCase()})},currentOptionLabel:function(){return this.multiple?this.searchable?"":this.placeholder:this.internalValue.length?this.getOptionLabel(this.internalValue[0]):this.searchable?"":this.placeholder}},watch:{internalValue:function(){this.resetAfter&&this.internalValue.length&&(this.search="",this.$emit("input",this.multiple?[]:null))},search:function(){this.$emit("search-change",this.search,this.id)}},methods:{getValue:function(){return this.multiple?this.internalValue:0===this.internalValue.length?null:this.internalValue[0]},filterAndFlat:function(t,e,n){return x(s(e,n,this.groupValues,this.groupLabel,this.customLabel),a(this.groupValues,this.groupLabel))(t)},flatAndStrip:function(t){return x(a(this.groupValues,this.groupLabel),o)(t)},updateSearch:function(t){this.search=t},isExistingOption:function(t){return!!this.options&&this.optionKeys.indexOf(t)>-1},isSelected:function(t){var e=this.trackBy?t[this.trackBy]:t;return this.valueKeys.indexOf(e)>-1},isOptionDisabled:function(t){return!!t.$isDisabled},getOptionLabel:function(t){if(r(t))return"";if(t.isTag)return t.label;if(t.$isLabel)return t.$groupLabel;var e=this.customLabel(t,this.label);return r(e)?"":e},select:function(t,e){if(t.$isLabel&&this.groupSelect)this.selectGroup(t);else if(!(-1!==this.blockKeys.indexOf(e)||this.disabled||t.$isDisabled||t.$isLabel)&&(!this.max||!this.multiple||this.internalValue.length!==this.max)&&("Tab"!==e||this.pointerDirty)){if(t.isTag)this.$emit("tag",t.label,this.id),this.search="",this.closeOnSelect&&!this.multiple&&this.deactivate();else{if(this.isSelected(t))return void("Tab"!==e&&this.removeElement(t));this.$emit("select",t,this.id),this.multiple?this.$emit("input",this.internalValue.concat([t]),this.id):this.$emit("input",t,this.id),this.clearOnSelect&&(this.search="")}this.closeOnSelect&&this.deactivate()}},selectGroup:function(t){var e=this,n=this.options.find(function(n){return n[e.groupLabel]===t.$groupLabel});if(n)if(this.wholeGroupSelected(n)){this.$emit("remove",n[this.groupValues],this.id);var r=this.internalValue.filter(function(t){return-1===n[e.groupValues].indexOf(t)});this.$emit("input",r,this.id)}else{var i=n[this.groupValues].filter(function(t){return!(e.isOptionDisabled(t)||e.isSelected(t))});this.$emit("select",i,this.id),this.$emit("input",this.internalValue.concat(i),this.id)}},wholeGroupSelected:function(t){var e=this;return t[this.groupValues].every(function(t){return e.isSelected(t)||e.isOptionDisabled(t)})},wholeGroupDisabled:function(t){return t[this.groupValues].every(this.isOptionDisabled)},removeElement:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!this.disabled&&!t.$isDisabled){if(!this.allowEmpty&&this.internalValue.length<=1)return void this.deactivate();var r="object"===n.i(l.a)(t)?this.valueKeys.indexOf(t[this.trackBy]):this.valueKeys.indexOf(t);if(this.$emit("remove",t,this.id),this.multiple){var i=this.internalValue.slice(0,r).concat(this.internalValue.slice(r+1));this.$emit("input",i,this.id)}else this.$emit("input",null,this.id);this.closeOnSelect&&e&&this.deactivate()}},removeLastElement:function(){-1===this.blockKeys.indexOf("Delete")&&0===this.search.length&&Array.isArray(this.internalValue)&&this.internalValue.length&&this.removeElement(this.internalValue[this.internalValue.length-1],!1)},activate:function(){var t=this;this.isOpen||this.disabled||(this.adjustPosition(),this.groupValues&&0===this.pointer&&this.filteredOptions.length&&(this.pointer=1),this.isOpen=!0,this.searchable?(this.preserveSearch||(this.search=""),this.$nextTick(function(){return t.$refs.search.focus()})):this.$el.focus(),this.$emit("open",this.id))},deactivate:function(){this.isOpen&&(this.isOpen=!1,this.searchable?this.$refs.search.blur():this.$el.blur(),this.preserveSearch||(this.search=""),this.$emit("close",this.getValue(),this.id))},toggle:function(){this.isOpen?this.deactivate():this.activate()},adjustPosition:function(){if("undefined"!=typeof window){var t=this.$el.getBoundingClientRect().top,e=window.innerHeight-this.$el.getBoundingClientRect().bottom;e>this.maxHeight||e>t||"below"===this.openDirection||"bottom"===this.openDirection?(this.preferredOpenDirection="below",this.optimizedHeight=Math.min(e-40,this.maxHeight)):(this.preferredOpenDirection="above",this.optimizedHeight=Math.min(t-40,this.maxHeight))}}}}},function(t,e,n){"use strict";var r=n(54),i=(n.n(r),n(31));n.n(i),e.a={data:function(){return{pointer:0,pointerDirty:!1}},props:{showPointer:{type:Boolean,default:!0},optionHeight:{type:Number,default:40}},computed:{pointerPosition:function(){return this.pointer*this.optionHeight},visibleElements:function(){return this.optimizedHeight/this.optionHeight}},watch:{filteredOptions:function(){this.pointerAdjust()},isOpen:function(){this.pointerDirty=!1}},methods:{optionHighlight:function(t,e){return{"multiselect__option--highlight":t===this.pointer&&this.showPointer,"multiselect__option--selected":this.isSelected(e)}},groupHighlight:function(t,e){var n=this;if(!this.groupSelect)return["multiselect__option--group","multiselect__option--disabled"];var r=this.options.find(function(t){return t[n.groupLabel]===e.$groupLabel});return r&&!this.wholeGroupDisabled(r)?["multiselect__option--group",{"multiselect__option--highlight":t===this.pointer&&this.showPointer},{"multiselect__option--group-selected":this.wholeGroupSelected(r)}]:"multiselect__option--disabled"},addPointerElement:function(){var t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Enter").key;this.filteredOptions.length>0&&this.select(this.filteredOptions[this.pointer],t),this.pointerReset()},pointerForward:function(){this.pointer<this.filteredOptions.length-1&&(this.pointer++,this.$refs.list.scrollTop<=this.pointerPosition-(this.visibleElements-1)*this.optionHeight&&(this.$refs.list.scrollTop=this.pointerPosition-(this.visibleElements-1)*this.optionHeight),this.filteredOptions[this.pointer]&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerForward()),this.pointerDirty=!0},pointerBackward:function(){this.pointer>0?(this.pointer--,this.$refs.list.scrollTop>=this.pointerPosition&&(this.$refs.list.scrollTop=this.pointerPosition),this.filteredOptions[this.pointer]&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerBackward()):this.filteredOptions[this.pointer]&&this.filteredOptions[0].$isLabel&&!this.groupSelect&&this.pointerForward(),this.pointerDirty=!0},pointerReset:function(){this.closeOnSelect&&(this.pointer=0,this.$refs.list&&(this.$refs.list.scrollTop=0))},pointerAdjust:function(){this.pointer>=this.filteredOptions.length-1&&(this.pointer=this.filteredOptions.length?this.filteredOptions.length-1:0),this.filteredOptions.length>0&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerForward()},pointerSet:function(t){this.pointer=t,this.pointerDirty=!0}}}},function(t,e,n){"use strict";var r=n(36),i=n(74),o=n(15),a=n(18);t.exports=n(72)(Array,"Array",function(t,e){this._t=a(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,i(1)):i(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])},"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},function(t,e,n){"use strict";var r=n(31),i=(n.n(r),n(32)),o=n(33);e.a={name:"vue-multiselect",mixins:[i.a,o.a],props:{name:{type:String,default:""},selectLabel:{type:String,default:"Press enter to select"},selectGroupLabel:{type:String,default:"Press enter to select group"},selectedLabel:{type:String,default:"Selected"},deselectLabel:{type:String,default:"Press enter to remove"},deselectGroupLabel:{type:String,default:"Press enter to deselect group"},showLabels:{type:Boolean,default:!0},limit:{type:Number,default:99999},maxHeight:{type:Number,default:300},limitText:{type:Function,default:function(t){return"and ".concat(t," more")}},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},openDirection:{type:String,default:""},showNoOptions:{type:Boolean,default:!0},showNoResults:{type:Boolean,default:!0},tabindex:{type:Number,default:0}},computed:{isSingleLabelVisible:function(){return(this.singleValue||0===this.singleValue)&&(!this.isOpen||!this.searchable)&&!this.visibleValues.length},isPlaceholderVisible:function(){return!(this.internalValue.length||this.searchable&&this.isOpen)},visibleValues:function(){return this.multiple?this.internalValue.slice(0,this.limit):[]},singleValue:function(){return this.internalValue[0]},deselectLabelText:function(){return this.showLabels?this.deselectLabel:""},deselectGroupLabelText:function(){return this.showLabels?this.deselectGroupLabel:""},selectLabelText:function(){return this.showLabels?this.selectLabel:""},selectGroupLabelText:function(){return this.showLabels?this.selectGroupLabel:""},selectedLabelText:function(){return this.showLabels?this.selectedLabel:""},inputStyle:function(){if(this.searchable||this.multiple&&this.value&&this.value.length)return this.isOpen?{width:"100%"}:{width:"0",position:"absolute",padding:"0"}},contentStyle:function(){return this.options.length?{display:"inline-block"}:{display:"block"}},isAbove:function(){return"above"===this.openDirection||"top"===this.openDirection||"below"!==this.openDirection&&"bottom"!==this.openDirection&&"above"===this.preferredOpenDirection},showSearchInput:function(){return this.searchable&&(!this.hasSingleSelectedSlot||!this.visibleSingleValue&&0!==this.visibleSingleValue||this.isOpen)}}}},function(t,e,n){var r=n(1)("unscopables"),i=Array.prototype;void 0==i[r]&&n(8)(i,r,{}),t.exports=function(t){i[r][t]=!0}},function(t,e,n){var r=n(18),i=n(19),o=n(85);t.exports=function(t){return function(e,n,a){var s,l=r(e),c=i(l.length),u=o(a,c);if(t&&n!=n){for(;c>u;)if((s=l[u++])!=s)return!0}else for(;c>u;u++)if((t||u in l)&&l[u]===n)return t||u||0;return!t&&-1}}},function(t,e,n){var r=n(9),i=n(1)("toStringTag"),o="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),i))?n:o?r(e):"Object"==(a=r(e))&&"function"==typeof e.callee?"Arguments":a}},function(t,e,n){"use strict";var r=n(2);t.exports=function(){var t=r(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},function(t,e,n){var r=n(0).document;t.exports=r&&r.documentElement},function(t,e,n){t.exports=!n(4)&&!n(7)(function(){return 7!=Object.defineProperty(n(21)("div"),"a",{get:function(){return 7}}).a})},function(t,e,n){var r=n(9);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,e,n){"use strict";var r=n(14);t.exports.f=function(t){return new function(t){var e,n;this.promise=new t(function(t,r){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=r}),this.resolve=r(e),this.reject=r(n)}(t)}},function(t,e,n){var r=n(2),i=n(76),o=n(22),a=n(27)("IE_PROTO"),s=function(){},l=function(){var t,e=n(21)("iframe"),r=o.length;for(e.style.display="none",n(40).appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write("<script>document.F=Object<\/script>"),t.close(),l=t.F;r--;)delete l.prototype[o[r]];return l()};t.exports=Object.create||function(t,e){var n;return null!==t?(s.prototype=r(t),n=new s,s.prototype=null,n[a]=t):n=l(),void 0===e?n:i(n,e)}},function(t,e,n){var r=n(79),i=n(25),o=n(18),a=n(29),s=n(12),l=n(41),c=Object.getOwnPropertyDescriptor;e.f=n(4)?c:function(t,e){if(t=o(t),e=a(e,!0),l)try{return c(t,e)}catch(t){}if(s(t,e))return i(!r.f.call(t,e),t[e])}},function(t,e,n){var r=n(12),i=n(18),o=n(37)(!1),a=n(27)("IE_PROTO");t.exports=function(t,e){var n,s=i(t),l=0,c=[];for(n in s)n!=a&&r(s,n)&&c.push(n);for(;e.length>l;)r(s,n=e[l++])&&(~o(c,n)||c.push(n));return c}},function(t,e,n){var r=n(46),i=n(22);t.exports=Object.keys||function(t){return r(t,i)}},function(t,e,n){var r=n(2),i=n(5),o=n(43);t.exports=function(t,e){if(r(t),i(e)&&e.constructor===t)return e;var n=o.f(t);return(0,n.resolve)(e),n.promise}},function(t,e,n){var r=n(10),i=n(0),o=i["__core-js_shared__"]||(i["__core-js_shared__"]={});(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})("versions",[]).push({version:r.version,mode:n(24)?"pure":"global",copyright:"© 2018 Denis Pushkarev (zloirock.ru)"})},function(t,e,n){var r=n(2),i=n(14),o=n(1)("species");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||void 0==(n=r(a)[o])?e:i(n)}},function(t,e,n){var r=n(3),i=n(16),o=n(7),a=n(84),s="["+a+"]",l=RegExp("^"+s+s+"*"),c=RegExp(s+s+"*$"),u=function(t,e,n){var i={},s=o(function(){return!!a[t]()||"​…"!="​…"[t]()}),l=i[t]=s?e(d):a[t];n&&(i[n]=l),r(r.P+r.F*s,"String",i)},d=u.trim=function(t,e){return t=String(i(t)),1&e&&(t=t.replace(l,"")),2&e&&(t=t.replace(c,"")),t};t.exports=u},function(t,e,n){var r,i,o,a=n(11),s=n(68),l=n(40),c=n(21),u=n(0),d=u.process,p=u.setImmediate,f=u.clearImmediate,h=u.MessageChannel,m=u.Dispatch,v=0,g={},y=function(){var t=+this;if(g.hasOwnProperty(t)){var e=g[t];delete g[t],e()}},b=function(t){y.call(t.data)};p&&f||(p=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return g[++v]=function(){s("function"==typeof t?t:Function(t),e)},r(v),v},f=function(t){delete g[t]},"process"==n(9)(d)?r=function(t){d.nextTick(a(y,t,1))}:m&&m.now?r=function(t){m.now(a(y,t,1))}:h?(o=(i=new h).port2,i.port1.onmessage=b,r=a(o.postMessage,o,1)):u.addEventListener&&"function"==typeof postMessage&&!u.importScripts?(r=function(t){u.postMessage(t+"","*")},u.addEventListener("message",b,!1)):r="onreadystatechange"in c("script")?function(t){l.appendChild(c("script")).onreadystatechange=function(){l.removeChild(this),y.call(t)}}:function(t){setTimeout(a(y,t,1),0)}),t.exports={set:p,clear:f}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e,n){"use strict";var r=n(3),i=n(20)(5),o=!0;"find"in[]&&Array(1).find(function(){o=!1}),r(r.P+r.F*o,"Array",{find:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),n(36)("find")},function(t,e,n){"use strict";var r,i,o,a,s=n(24),l=n(0),c=n(11),u=n(38),d=n(3),p=n(5),f=n(14),h=n(61),m=n(66),v=n(50),g=n(52).set,y=n(75)(),b=n(43),w=n(80),_=n(86),x=n(48),k=l.TypeError,S=l.process,C=S&&S.versions,O=C&&C.v8||"",E=l.Promise,T="process"==u(S),A=function(){},$=i=b.f,D=!!function(){try{var t=E.resolve(1),e=(t.constructor={})[n(1)("species")]=function(t){t(A,A)};return(T||"function"==typeof PromiseRejectionEvent)&&t.then(A)instanceof e&&0!==O.indexOf("6.6")&&-1===_.indexOf("Chrome/66")}catch(t){}}(),N=function(t){var e;return!(!p(t)||"function"!=typeof(e=t.then))&&e},P=function(t,e){if(!t._n){t._n=!0;var n=t._c;y(function(){for(var r=t._v,i=1==t._s,o=0;n.length>o;)!function(e){var n,o,a,s=i?e.ok:e.fail,l=e.resolve,c=e.reject,u=e.domain;try{s?(i||(2==t._h&&L(t),t._h=1),!0===s?n=r:(u&&u.enter(),n=s(r),u&&(u.exit(),a=!0)),n===e.promise?c(k("Promise-chain cycle")):(o=N(n))?o.call(n,l,c):l(n)):c(r)}catch(t){u&&!a&&u.exit(),c(t)}}(n[o++]);t._c=[],t._n=!1,e&&!t._h&&j(t)})}},j=function(t){g.call(l,function(){var e,n,r,i=t._v,o=M(t);if(o&&(e=w(function(){T?S.emit("unhandledRejection",i,t):(n=l.onunhandledrejection)?n({promise:t,reason:i}):(r=l.console)&&r.error&&r.error("Unhandled promise rejection",i)}),t._h=T||M(t)?2:1),t._a=void 0,o&&e.e)throw e.v})},M=function(t){return 1!==t._h&&0===(t._a||t._c).length},L=function(t){g.call(l,function(){var e;T?S.emit("rejectionHandled",t):(e=l.onrejectionhandled)&&e({promise:t,reason:t._v})})},R=function(t){var e=this;e._d||(e._d=!0,(e=e._w||e)._v=t,e._s=2,e._a||(e._a=e._c.slice()),P(e,!0))},I=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw k("Promise can't be resolved itself");(e=N(t))?y(function(){var r={_w:n,_d:!1};try{e.call(t,c(I,r,1),c(R,r,1))}catch(t){R.call(r,t)}}):(n._v=t,n._s=1,P(n,!1))}catch(t){R.call({_w:n,_d:!1},t)}}};D||(E=function(t){h(this,E,"Promise","_h"),f(t),r.call(this);try{t(c(I,this,1),c(R,this,1))}catch(t){R.call(this,t)}},(r=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n(81)(E.prototype,{then:function(t,e){var n=$(v(this,E));return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=T?S.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&P(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r;this.promise=t,this.resolve=c(I,t,1),this.reject=c(R,t,1)},b.f=$=function(t){return t===E||t===a?new o(t):i(t)}),d(d.G+d.W+d.F*!D,{Promise:E}),n(26)(E,"Promise"),n(83)("Promise"),a=n(10).Promise,d(d.S+d.F*!D,"Promise",{reject:function(t){var e=$(this);return(0,e.reject)(t),e.promise}}),d(d.S+d.F*(s||!D),"Promise",{resolve:function(t){return x(s&&this===a?E:this,t)}}),d(d.S+d.F*!(D&&n(73)(function(t){E.all(t).catch(A)})),"Promise",{all:function(t){var e=this,n=$(e),r=n.resolve,i=n.reject,o=w(function(){var n=[],o=0,a=1;m(t,!1,function(t){var s=o++,l=!1;n.push(void 0),a++,e.resolve(t).then(function(t){l||(l=!0,n[s]=t,--a||r(n))},i)}),--a||r(n)});return o.e&&i(o.v),n.promise},race:function(t){var e=this,n=$(e),r=n.reject,i=w(function(){m(t,!1,function(t){e.resolve(t).then(n.resolve,r)})});return i.e&&r(i.v),n.promise}})},function(t,e,n){"use strict";var r=n(3),i=n(10),o=n(0),a=n(50),s=n(48);r(r.P+r.R,"Promise",{finally:function(t){var e=a(this,i.Promise||o.Promise),n="function"==typeof t;return this.then(n?function(n){return s(e,t()).then(function(){return n})}:t,n?function(n){return s(e,t()).then(function(){throw n})}:t)}})},function(t,e,n){"use strict";var r=n(35),i=n(101),o=function(t){n(99)},a=n(100)(r.a,i.a,!1,o,null,null);e.a=a.exports},function(t,e,n){"use strict";e.a=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}},function(t,e,n){"use strict";function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function i(t){return(i="function"==typeof Symbol&&"symbol"===r(Symbol.iterator)?function(t){return r(t)}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":r(t)})(t)}e.a=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(34),i=(n.n(r),n(55)),o=(n.n(i),n(56)),a=(n.n(o),n(57)),s=n(32),l=n(33);n.d(e,"Multiselect",function(){return a.a}),n.d(e,"multiselectMixin",function(){return s.a}),n.d(e,"pointerMixin",function(){return l.a}),e.default=a.a},function(t,e){t.exports=function(t,e,n,r){if(!(t instanceof e)||void 0!==r&&r in t)throw TypeError(n+": incorrect invocation!");return t}},function(t,e,n){var r=n(14),i=n(28),o=n(23),a=n(19);t.exports=function(t,e,n,s,l){r(e);var c=i(t),u=o(c),d=a(c.length),p=l?d-1:0,f=l?-1:1;if(n<2)for(;;){if(p in u){s=u[p],p+=f;break}if(p+=f,l?p<0:d<=p)throw TypeError("Reduce of empty array with no initial value")}for(;l?p>=0:d>p;p+=f)p in u&&(s=e(s,u[p],p,c));return s}},function(t,e,n){var r=n(5),i=n(42),o=n(1)("species");t.exports=function(t){var e;return i(t)&&("function"!=typeof(e=t.constructor)||e!==Array&&!i(e.prototype)||(e=void 0),r(e)&&null===(e=e[o])&&(e=void 0)),void 0===e?Array:e}},function(t,e,n){var r=n(63);t.exports=function(t,e){return new(r(t))(e)}},function(t,e,n){"use strict";var r=n(8),i=n(6),o=n(7),a=n(16),s=n(1);t.exports=function(t,e,n){var l=s(t),c=n(a,l,""[t]),u=c[0],d=c[1];o(function(){var e={};return e[l]=function(){return 7},7!=""[t](e)})&&(i(String.prototype,t,u),r(RegExp.prototype,l,2==e?function(t,e){return d.call(t,this,e)}:function(t){return d.call(t,this)}))}},function(t,e,n){var r=n(11),i=n(70),o=n(69),a=n(2),s=n(19),l=n(87),c={},u={};(e=t.exports=function(t,e,n,d,p){var f,h,m,v,g=p?function(){return t}:l(t),y=r(n,d,e?2:1),b=0;if("function"!=typeof g)throw TypeError(t+" is not iterable!");if(o(g)){for(f=s(t.length);f>b;b++)if((v=e?y(a(h=t[b])[0],h[1]):y(t[b]))===c||v===u)return v}else for(m=g.call(t);!(h=m.next()).done;)if((v=i(m,y,h.value,e))===c||v===u)return v}).BREAK=c,e.RETURN=u},function(t,e,n){var r=n(5),i=n(82).set;t.exports=function(t,e,n){var o,a=e.constructor;return a!==n&&"function"==typeof a&&(o=a.prototype)!==n.prototype&&r(o)&&i&&i(t,o),t}},function(t,e){t.exports=function(t,e,n){var r=void 0===n;switch(e.length){case 0:return r?t():t.call(n);case 1:return r?t(e[0]):t.call(n,e[0]);case 2:return r?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return r?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return r?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},function(t,e,n){var r=n(15),i=n(1)("iterator"),o=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||o[i]===t)}},function(t,e,n){var r=n(2);t.exports=function(t,e,n,i){try{return i?e(r(n)[0],n[1]):e(n)}catch(e){var o=t.return;throw void 0!==o&&r(o.call(t)),e}}},function(t,e,n){"use strict";var r=n(44),i=n(25),o=n(26),a={};n(8)(a,n(1)("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=r(a,{next:i(1,n)}),o(t,e+" Iterator")}},function(t,e,n){"use strict";var r=n(24),i=n(3),o=n(6),a=n(8),s=n(15),l=n(71),c=n(26),u=n(78),d=n(1)("iterator"),p=!([].keys&&"next"in[].keys()),f=function(){return this};t.exports=function(t,e,n,h,m,v,g){l(n,e,h);var y,b,w,_=function(t){if(!p&&t in C)return C[t];switch(t){case"keys":case"values":return function(){return new n(this,t)}}return function(){return new n(this,t)}},x=e+" Iterator",k="values"==m,S=!1,C=t.prototype,O=C[d]||C["@@iterator"]||m&&C[m],E=O||_(m),T=m?k?_("entries"):E:void 0,A="Array"==e&&C.entries||O;if(A&&(w=u(A.call(new t)))!==Object.prototype&&w.next&&(c(w,x,!0),r||"function"==typeof w[d]||a(w,d,f)),k&&O&&"values"!==O.name&&(S=!0,E=function(){return O.call(this)}),r&&!g||!p&&!S&&C[d]||a(C,d,E),s[e]=E,s[x]=f,m)if(y={values:k?E:_("values"),keys:v?E:_("keys"),entries:T},g)for(b in y)b in C||o(C,b,y[b]);else i(i.P+i.F*(p||S),e,y);return y}},function(t,e,n){var r=n(1)("iterator"),i=!1;try{var o=[7][r]();o.return=function(){i=!0},Array.from(o,function(){throw 2})}catch(t){}t.exports=function(t,e){if(!e&&!i)return!1;var n=!1;try{var o=[7],a=o[r]();a.next=function(){return{done:n=!0}},o[r]=function(){return a},t(o)}catch(t){}return n}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var r=n(0),i=n(52).set,o=r.MutationObserver||r.WebKitMutationObserver,a=r.process,s=r.Promise,l="process"==n(9)(a);t.exports=function(){var t,e,n,c=function(){var r,i;for(l&&(r=a.domain)&&r.exit();t;){i=t.fn,t=t.next;try{i()}catch(r){throw t?n():e=void 0,r}}e=void 0,r&&r.enter()};if(l)n=function(){a.nextTick(c)};else if(!o||r.navigator&&r.navigator.standalone)if(s&&s.resolve){var u=s.resolve(void 0);n=function(){u.then(c)}}else n=function(){i.call(r,c)};else{var d=!0,p=document.createTextNode("");new o(c).observe(p,{characterData:!0}),n=function(){p.data=d=!d}}return function(r){var i={fn:r,next:void 0};e&&(e.next=i),t||(t=i,n()),e=i}}},function(t,e,n){var r=n(13),i=n(2),o=n(47);t.exports=n(4)?Object.defineProperties:function(t,e){i(t);for(var n,a=o(e),s=a.length,l=0;s>l;)r.f(t,n=a[l++],e[n]);return t}},function(t,e,n){var r=n(46),i=n(22).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,i)}},function(t,e,n){var r=n(12),i=n(28),o=n(27)("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=i(t),r(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},function(t,e){e.f={}.propertyIsEnumerable},function(t,e){t.exports=function(t){try{return{e:!1,v:t()}}catch(t){return{e:!0,v:t}}}},function(t,e,n){var r=n(6);t.exports=function(t,e,n){for(var i in e)r(t,i,e[i],n);return t}},function(t,e,n){var r=n(5),i=n(2),o=function(t,e){if(i(t),!r(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,r){try{(r=n(11)(Function.call,n(45).f(Object.prototype,"__proto__").set,2))(t,[]),e=!(t instanceof Array)}catch(t){e=!0}return function(t,n){return o(t,n),e?t.__proto__=n:r(t,n),t}}({},!1):void 0),check:o}},function(t,e,n){"use strict";var r=n(0),i=n(13),o=n(4),a=n(1)("species");t.exports=function(t){var e=r[t];o&&e&&!e[a]&&i.f(e,a,{configurable:!0,get:function(){return this}})}},function(t,e){t.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"},function(t,e,n){var r=n(53),i=Math.max,o=Math.min;t.exports=function(t,e){return(t=r(t))<0?i(t+e,0):o(t,e)}},function(t,e,n){var r=n(0).navigator;t.exports=r&&r.userAgent||""},function(t,e,n){var r=n(38),i=n(1)("iterator"),o=n(15);t.exports=n(10).getIteratorMethod=function(t){if(void 0!=t)return t[i]||t["@@iterator"]||o[r(t)]}},function(t,e,n){"use strict";var r=n(3),i=n(20)(2);r(r.P+r.F*!n(17)([].filter,!0),"Array",{filter:function(t){return i(this,t,arguments[1])}})},function(t,e,n){"use strict";var r=n(3),i=n(37)(!1),o=[].indexOf,a=!!o&&1/[1].indexOf(1,-0)<0;r(r.P+r.F*(a||!n(17)(o)),"Array",{indexOf:function(t){return a?o.apply(this,arguments)||0:i(this,t,arguments[1])}})},function(t,e,n){var r=n(3);r(r.S,"Array",{isArray:n(42)})},function(t,e,n){"use strict";var r=n(3),i=n(20)(1);r(r.P+r.F*!n(17)([].map,!0),"Array",{map:function(t){return i(this,t,arguments[1])}})},function(t,e,n){"use strict";var r=n(3),i=n(62);r(r.P+r.F*!n(17)([].reduce,!0),"Array",{reduce:function(t){return i(this,t,arguments.length,arguments[1],!1)}})},function(t,e,n){var r=Date.prototype,i=r.toString,o=r.getTime;new Date(NaN)+""!="Invalid Date"&&n(6)(r,"toString",function(){var t=o.call(this);return t==t?i.call(this):"Invalid Date"})},function(t,e,n){n(4)&&"g"!=/./g.flags&&n(13).f(RegExp.prototype,"flags",{configurable:!0,get:n(39)})},function(t,e,n){n(65)("search",1,function(t,e,n){return[function(n){"use strict";var r=t(this),i=void 0==n?void 0:n[e];return void 0!==i?i.call(n,r):new RegExp(n)[e](String(r))},n]})},function(t,e,n){"use strict";n(94);var r=n(2),i=n(39),o=n(4),a=/./.toString,s=function(t){n(6)(RegExp.prototype,"toString",t,!0)};n(7)(function(){return"/a/b"!=a.call({source:"a",flags:"b"})})?s(function(){var t=r(this);return"/".concat(t.source,"/","flags"in t?t.flags:!o&&t instanceof RegExp?i.call(t):void 0)}):"toString"!=a.name&&s(function(){return a.call(this)})},function(t,e,n){"use strict";n(51)("trim",function(t){return function(){return t(this,3)}})},function(t,e,n){for(var r=n(34),i=n(47),o=n(6),a=n(0),s=n(8),l=n(15),c=n(1),u=c("iterator"),d=c("toStringTag"),p=l.Array,f={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},h=i(f),m=0;m<h.length;m++){var v,g=h[m],y=f[g],b=a[g],w=b&&b.prototype;if(w&&(w[u]||s(w,u,p),w[d]||s(w,d,g),l[g]=p,y))for(v in r)w[v]||o(w,v,r[v],!0)}},function(t,e){},function(t,e){t.exports=function(t,e,n,r,i,o){var a,s=t=t||{},l=typeof t.default;"object"!==l&&"function"!==l||(a=t,s=t.default);var c,u="function"==typeof s?s.options:s;if(e&&(u.render=e.render,u.staticRenderFns=e.staticRenderFns,u._compiled=!0),n&&(u.functional=!0),i&&(u._scopeId=i),o?(c=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},u._ssrRegister=c):r&&(c=r),c){var d=u.functional,p=d?u.render:u.beforeCreate;d?(u._injectStyles=c,u.render=function(t,e){return c.call(e),p(t,e)}):u.beforeCreate=p?[].concat(p,c):[c]}return{esModule:a,exports:s,options:u}}},function(t,e,n){"use strict";var r={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"multiselect",class:{"multiselect--active":t.isOpen,"multiselect--disabled":t.disabled,"multiselect--above":t.isAbove},attrs:{tabindex:t.searchable?-1:t.tabindex},on:{focus:function(e){t.activate()},blur:function(e){!t.searchable&&t.deactivate()},keydown:[function(e){return"button"in e||!t._k(e.keyCode,"down",40,e.key,["Down","ArrowDown"])?e.target!==e.currentTarget?null:(e.preventDefault(),void t.pointerForward()):null},function(e){return"button"in e||!t._k(e.keyCode,"up",38,e.key,["Up","ArrowUp"])?e.target!==e.currentTarget?null:(e.preventDefault(),void t.pointerBackward()):null}],keypress:function(e){return"button"in e||!t._k(e.keyCode,"enter",13,e.key,"Enter")||!t._k(e.keyCode,"tab",9,e.key,"Tab")?(e.stopPropagation(),e.target!==e.currentTarget?null:void t.addPointerElement(e)):null},keyup:function(e){if(!("button"in e)&&t._k(e.keyCode,"esc",27,e.key,"Escape"))return null;t.deactivate()}}},[t._t("caret",[n("div",{staticClass:"multiselect__select",on:{mousedown:function(e){e.preventDefault(),e.stopPropagation(),t.toggle()}}})],{toggle:t.toggle}),t._v(" "),t._t("clear",null,{search:t.search}),t._v(" "),n("div",{ref:"tags",staticClass:"multiselect__tags"},[t._t("selection",[n("div",{directives:[{name:"show",rawName:"v-show",value:t.visibleValues.length>0,expression:"visibleValues.length > 0"}],staticClass:"multiselect__tags-wrap"},[t._l(t.visibleValues,function(e,r){return[t._t("tag",[n("span",{key:r,staticClass:"multiselect__tag"},[n("span",{domProps:{textContent:t._s(t.getOptionLabel(e))}}),t._v(" "),n("i",{staticClass:"multiselect__tag-icon",attrs:{"aria-hidden":"true",tabindex:"1"},on:{keypress:function(n){if(!("button"in n)&&t._k(n.keyCode,"enter",13,n.key,"Enter"))return null;n.preventDefault(),t.removeElement(e)},mousedown:function(n){n.preventDefault(),t.removeElement(e)}}})])],{option:e,search:t.search,remove:t.removeElement})]})],2),t._v(" "),t.internalValue&&t.internalValue.length>t.limit?[t._t("limit",[n("strong",{staticClass:"multiselect__strong",domProps:{textContent:t._s(t.limitText(t.internalValue.length-t.limit))}})])]:t._e()],{search:t.search,remove:t.removeElement,values:t.visibleValues,isOpen:t.isOpen}),t._v(" "),n("transition",{attrs:{name:"multiselect__loading"}},[t._t("loading",[n("div",{directives:[{name:"show",rawName:"v-show",value:t.loading,expression:"loading"}],staticClass:"multiselect__spinner"})])],2),t._v(" "),t.searchable?n("input",{ref:"search",staticClass:"multiselect__input",style:t.inputStyle,attrs:{name:t.name,id:t.id,type:"text",autocomplete:"nope",placeholder:t.placeholder,disabled:t.disabled,tabindex:t.tabindex},domProps:{value:t.search},on:{input:function(e){t.updateSearch(e.target.value)},focus:function(e){e.preventDefault(),t.activate()},blur:function(e){e.preventDefault(),t.deactivate()},keyup:function(e){if(!("button"in e)&&t._k(e.keyCode,"esc",27,e.key,"Escape"))return null;t.deactivate()},keydown:[function(e){if(!("button"in e)&&t._k(e.keyCode,"down",40,e.key,["Down","ArrowDown"]))return null;e.preventDefault(),t.pointerForward()},function(e){if(!("button"in e)&&t._k(e.keyCode,"up",38,e.key,["Up","ArrowUp"]))return null;e.preventDefault(),t.pointerBackward()},function(e){if(!("button"in e)&&t._k(e.keyCode,"delete",[8,46],e.key,["Backspace","Delete"]))return null;e.stopPropagation(),t.removeLastElement()}],keypress:function(e){return"button"in e||!t._k(e.keyCode,"enter",13,e.key,"Enter")?(e.preventDefault(),e.stopPropagation(),e.target!==e.currentTarget?null:void t.addPointerElement(e)):null}}}):t._e(),t._v(" "),t.isSingleLabelVisible?n("span",{staticClass:"multiselect__single",on:{mousedown:function(e){return e.preventDefault(),t.toggle(e)}}},[t._t("singleLabel",[[t._v(t._s(t.currentOptionLabel))]],{option:t.singleValue})],2):t._e(),t._v(" "),t.isPlaceholderVisible?n("span",{staticClass:"multiselect__placeholder",on:{mousedown:function(e){return e.preventDefault(),t.toggle(e)}}},[t._t("placeholder",[t._v("\n "+t._s(t.placeholder)+"\n ")])],2):t._e()],2),t._v(" "),n("transition",{attrs:{name:"multiselect"}},[n("div",{directives:[{name:"show",rawName:"v-show",value:t.isOpen,expression:"isOpen"}],ref:"list",staticClass:"multiselect__content-wrapper",style:{maxHeight:t.optimizedHeight+"px"},attrs:{tabindex:"-1"},on:{focus:t.activate,mousedown:function(t){t.preventDefault()}}},[n("ul",{staticClass:"multiselect__content",style:t.contentStyle},[t._t("beforeList"),t._v(" "),t.multiple&&t.max===t.internalValue.length?n("li",[n("span",{staticClass:"multiselect__option"},[t._t("maxElements",[t._v("Maximum of "+t._s(t.max)+" options selected. First remove a selected option to select another.")])],2)]):t._e(),t._v(" "),!t.max||t.internalValue.length<t.max?t._l(t.filteredOptions,function(e,r){return n("li",{key:r,staticClass:"multiselect__element"},[e&&(e.$isLabel||e.$isDisabled)?t._e():n("span",{staticClass:"multiselect__option",class:t.optionHighlight(r,e),attrs:{"data-select":e&&e.isTag?t.tagPlaceholder:t.selectLabelText,"data-selected":t.selectedLabelText,"data-deselect":t.deselectLabelText},on:{click:function(n){n.stopPropagation(),t.select(e)},mouseenter:function(e){if(e.target!==e.currentTarget)return null;t.pointerSet(r)}}},[t._t("option",[n("span",[t._v(t._s(t.getOptionLabel(e)))])],{option:e,search:t.search})],2),t._v(" "),e&&(e.$isLabel||e.$isDisabled)?n("span",{staticClass:"multiselect__option",class:t.groupHighlight(r,e),attrs:{"data-select":t.groupSelect&&t.selectGroupLabelText,"data-deselect":t.groupSelect&&t.deselectGroupLabelText},on:{mouseenter:function(e){if(e.target!==e.currentTarget)return null;t.groupSelect&&t.pointerSet(r)},mousedown:function(n){n.preventDefault(),t.selectGroup(e)}}},[t._t("option",[n("span",[t._v(t._s(t.getOptionLabel(e)))])],{option:e,search:t.search})],2):t._e()])}):t._e(),t._v(" "),n("li",{directives:[{name:"show",rawName:"v-show",value:t.showNoResults&&0===t.filteredOptions.length&&t.search&&!t.loading,expression:"showNoResults && (filteredOptions.length === 0 && search && !loading)"}]},[n("span",{staticClass:"multiselect__option"},[t._t("noResult",[t._v("No elements found. Consider changing the search query.")],{search:t.search})],2)]),t._v(" "),n("li",{directives:[{name:"show",rawName:"v-show",value:t.showNoOptions&&0===t.options.length&&!t.search&&!t.loading,expression:"showNoOptions && (options.length === 0 && !search && !loading)"}]},[n("span",{staticClass:"multiselect__option"},[t._t("noOptions",[t._v("List is empty.")])],2)]),t._v(" "),t._t("afterList")],2)])])],2)},staticRenderFns:[]};e.a=r}])})},function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(n=window)}t.exports=n},,function(t,e){t.exports=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t},t.exports.default=t.exports,t.exports.__esModule=!0},,,,,,,,,function(t,e){t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var n=function(t,e){var n=t[1]||"",r=t[3];if(!r)return n;if(e&&"function"==typeof btoa){var i=function(t){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t))))+" */"}(r),o=r.sources.map(function(t){return"/*# sourceURL="+r.sourceRoot+t+" */"});return[n].concat(o).concat([i]).join("\n")}return[n].join("\n")}(e,t);return e[2]?"@media "+e[2]+"{"+n+"}":n}).join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var r={},i=0;i<this.length;i++){var o=this[i][0];"number"==typeof o&&(r[o]=!0)}for(i=0;i<t.length;i++){var a=t[i];"number"==typeof a[0]&&r[a[0]]||(n&&!a[2]?a[2]=n:n&&(a[2]="("+a[2]+") and ("+n+")"),e.push(a))}},e}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),n.d(e,"VueCharts",function(){return o});var r=n(131),i=n(132);n.d(e,"Bar",function(){return i.a}),n.d(e,"HorizontalBar",function(){return i.d}),n.d(e,"Doughnut",function(){return i.c}),n.d(e,"Line",function(){return i.e}),n.d(e,"Pie",function(){return i.f}),n.d(e,"PolarArea",function(){return i.g}),n.d(e,"Radar",function(){return i.h}),n.d(e,"Bubble",function(){return i.b}),n.d(e,"Scatter",function(){return i.i}),n.d(e,"mixins",function(){return r.a}),n.d(e,"generateChart",function(){return i.j});var o={Bar:i.a,HorizontalBar:i.d,Doughnut:i.c,Line:i.e,Pie:i.f,PolarArea:i.g,Radar:i.h,Bubble:i.b,Scatter:i.i,mixins:r.a,generateChart:i.j,render:function(){return console.error("[vue-chartjs]: This is not a vue component. It is the whole object containing all vue components. Please import the named export or access the components over the dot notation. For more info visit https://vue-chartjs.org/#/home?id=quick-start")}};e.default=o},function(t,e,n){var r={},i=function(t){var e;return function(){return void 0===e&&(e=t.apply(this,arguments)),e}}(function(){return window&&document&&document.all&&!window.atob}),o=function(t){var e={};return function(t){if("function"==typeof t)return t();if(void 0===e[t]){var n=function(t){return document.querySelector(t)}.call(this,t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(t){n=null}e[t]=n}return e[t]}}(),a=null,s=0,l=[],c=n(146);function u(t,e){for(var n=0;n<t.length;n++){var i=t[n],o=r[i.id];if(o){o.refs++;for(var a=0;a<o.parts.length;a++)o.parts[a](i.parts[a]);for(;a<i.parts.length;a++)o.parts.push(v(i.parts[a],e))}else{var s=[];for(a=0;a<i.parts.length;a++)s.push(v(i.parts[a],e));r[i.id]={id:i.id,refs:1,parts:s}}}}function d(t,e){for(var n=[],r={},i=0;i<t.length;i++){var o=t[i],a=e.base?o[0]+e.base:o[0],s={css:o[1],media:o[2],sourceMap:o[3]};r[a]?r[a].parts.push(s):n.push(r[a]={id:a,parts:[s]})}return n}function p(t,e){var n=o(t.insertInto);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");var r=l[l.length-1];if("top"===t.insertAt)r?r.nextSibling?n.insertBefore(e,r.nextSibling):n.appendChild(e):n.insertBefore(e,n.firstChild),l.push(e);else if("bottom"===t.insertAt)n.appendChild(e);else{if("object"!=typeof t.insertAt||!t.insertAt.before)throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");var i=o(t.insertInto+" "+t.insertAt.before);n.insertBefore(e,i)}}function f(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t);var e=l.indexOf(t);e>=0&&l.splice(e,1)}function h(t){var e=document.createElement("style");return t.attrs.type="text/css",m(e,t.attrs),p(t,e),e}function m(t,e){Object.keys(e).forEach(function(n){t.setAttribute(n,e[n])})}function v(t,e){var n,r,i,o;if(e.transform&&t.css){if(!(o=e.transform(t.css)))return function(){};t.css=o}if(e.singleton){var l=s++;n=a||(a=h(e)),r=y.bind(null,n,l,!1),i=y.bind(null,n,l,!0)}else t.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=function(t){var e=document.createElement("link");return t.attrs.type="text/css",t.attrs.rel="stylesheet",m(e,t.attrs),p(t,e),e}(e),r=function(t,e,n){var r=n.css,i=n.sourceMap,o=void 0===e.convertToAbsoluteUrls&&i;(e.convertToAbsoluteUrls||o)&&(r=c(r));i&&(r+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(i))))+" */");var a=new Blob([r],{type:"text/css"}),s=t.href;t.href=URL.createObjectURL(a),s&&URL.revokeObjectURL(s)}.bind(null,n,e),i=function(){f(n),n.href&&URL.revokeObjectURL(n.href)}):(n=h(e),r=function(t,e){var n=e.css,r=e.media;r&&t.setAttribute("media",r);if(t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}.bind(null,n),i=function(){f(n)});return r(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;r(t=e)}else i()}}t.exports=function(t,e){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(e=e||{}).attrs="object"==typeof e.attrs?e.attrs:{},e.singleton||"boolean"==typeof e.singleton||(e.singleton=i()),e.insertInto||(e.insertInto="head"),e.insertAt||(e.insertAt="bottom");var n=d(t,e);return u(n,e),function(t){for(var i=[],o=0;o<n.length;o++){var a=n[o];(s=r[a.id]).refs--,i.push(s)}t&&u(d(t,e),e);for(o=0;o<i.length;o++){var s;if(0===(s=i[o]).refs){for(var l=0;l<s.parts.length;l++)s.parts[l]();delete r[s.id]}}}};var g=function(){var t=[];return function(e,n){return t[e]=n,t.filter(Boolean).join("\n")}}();function y(t,e,n,r){var i=n?"":r.css;if(t.styleSheet)t.styleSheet.cssText=g(e,i);else{var o=document.createTextNode(i),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(o,a[e]):t.appendChild(o)}}},function(t,e){function n(t,e,n,r,i,o,a){try{var s=t[o](a),l=s.value}catch(t){return void n(t)}s.done?e(l):Promise.resolve(l).then(r,i)}t.exports=function(t){return function(){var e=this,r=arguments;return new Promise(function(i,o){var a=t.apply(e,r);function s(t){n(a,i,o,s,l,"next",t)}function l(t){n(a,i,o,s,l,"throw",t)}s(void 0)})}},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,n){t.exports=n(157)},,,,,,,,,,,,,,,,,,,,,,,function(t,e,n){"use strict";e.a=function(t){return"string"!=typeof t||""===t?(console.error("The hook name must be a non-empty string."),!1):/^__/.test(t)?(console.error("The hook name cannot begin with `__`."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(t)||(console.error("The hook name can only contain numbers, letters, dashes, periods and underscores."),!1)}},,function(t,e,n){"use strict";
1
+ !function(t){var e=window.dokanWebpack;window.dokanWebpack=function(n,i,a){for(var s,c,l,u=0,d=[];u<n.length;u++)c=n[u],r[c]&&d.push(r[c][0]),r[c]=0;for(s in i)Object.prototype.hasOwnProperty.call(i,s)&&(t[s]=i[s]);for(e&&e(n,i,a);d.length;)d.shift()();if(a)for(u=0;u<a.length;u++)l=o(o.s=a[u]);return l};var n={},r={7:0};function o(e){if(n[e])return n[e].exports;var r=n[e]={i:e,l:!1,exports:{}};return t[e].call(r.exports,r,r.exports,o),r.l=!0,r.exports}o.m=t,o.c=n,o.d=function(t,e,n){o.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:n})},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,"a",e),e},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o.p="",o.oe=function(t){throw console.error(t),t},o(o.s=268)}([function(t,e){t.exports=function(t,e,n,r,o,i){var a,s=t=t||{},c=typeof t.default;"object"!==c&&"function"!==c||(a=t,s=t.default);var l,u="function"==typeof s?s.options:s;if(e&&(u.render=e.render,u.staticRenderFns=e.staticRenderFns,u._compiled=!0),n&&(u.functional=!0),o&&(u._scopeId=o),i?(l=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(i)},u._ssrRegister=l):r&&(l=r),l){var d=u.functional,p=d?u.render:u.beforeCreate;d?(u._injectStyles=l,u.render=function(t,e){return l.call(e),p(t,e)}):u.beforeCreate=p?[].concat(p,l):[l]}return{esModule:a,exports:s,options:u}}},,,function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t,r){n.d(e,"EffectScope",function(){return Jn}),n.d(e,"computed",function(){return ke}),n.d(e,"customRef",function(){return pe}),n.d(e,"default",function(){return jo}),n.d(e,"defineAsyncComponent",function(){return _r}),n.d(e,"defineComponent",function(){return Rr}),n.d(e,"del",function(){return Wt}),n.d(e,"effectScope",function(){return Zn}),n.d(e,"getCurrentInstance",function(){return vt}),n.d(e,"getCurrentScope",function(){return Qn}),n.d(e,"h",function(){return or}),n.d(e,"inject",function(){return rr}),n.d(e,"isProxy",function(){return Qt}),n.d(e,"isReactive",function(){return Kt}),n.d(e,"isReadonly",function(){return Zt}),n.d(e,"isRef",function(){return oe}),n.d(e,"isShallow",function(){return Jt}),n.d(e,"markRaw",function(){return ee}),n.d(e,"mergeDefaults",function(){return dn}),n.d(e,"nextTick",function(){return yr}),n.d(e,"onActivated",function(){return $r}),n.d(e,"onBeforeMount",function(){return kr}),n.d(e,"onBeforeUnmount",function(){return Er}),n.d(e,"onBeforeUpdate",function(){return Cr}),n.d(e,"onDeactivated",function(){return Dr}),n.d(e,"onErrorCaptured",function(){return Mr}),n.d(e,"onMounted",function(){return Sr}),n.d(e,"onRenderTracked",function(){return Nr}),n.d(e,"onRenderTriggered",function(){return Pr}),n.d(e,"onScopeDispose",function(){return tr}),n.d(e,"onServerPrefetch",function(){return Ar}),n.d(e,"onUnmounted",function(){return Tr}),n.d(e,"onUpdated",function(){return Or}),n.d(e,"provide",function(){return er}),n.d(e,"proxyRefs",function(){return ue}),n.d(e,"reactive",function(){return Yt}),n.d(e,"readonly",function(){return be}),n.d(e,"ref",function(){return ie}),n.d(e,"set",function(){return qt}),n.d(e,"shallowReactive",function(){return Gt}),n.d(e,"shallowReadonly",function(){return xe}),n.d(e,"shallowRef",function(){return ae}),n.d(e,"toRaw",function(){return te}),n.d(e,"toRef",function(){return he}),n.d(e,"toRefs",function(){return fe}),n.d(e,"triggerRef",function(){return ce}),n.d(e,"unref",function(){return le}),n.d(e,"useAttrs",function(){return cn}),n.d(e,"useCssModule",function(){return br}),n.d(e,"useCssVars",function(){return wr}),n.d(e,"useListeners",function(){return ln}),n.d(e,"useSlots",function(){return sn}),n.d(e,"version",function(){return Lr}),n.d(e,"watch",function(){return Xn}),n.d(e,"watchEffect",function(){return Un}),n.d(e,"watchPostEffect",function(){return qn}),n.d(e,"watchSyncEffect",function(){return Wn});
2
  /*!
3
+ * Vue.js v2.7.10
4
+ * (c) 2014-2022 Evan You
5
  * Released under the MIT License.
6
  */
7
+ var o=Object.freeze({}),i=Array.isArray;function a(t){return void 0===t||null===t}function s(t){return void 0!==t&&null!==t}function c(t){return!0===t}function l(t){return"string"==typeof t||"number"==typeof t||"symbol"==typeof t||"boolean"==typeof t}function u(t){return"function"==typeof t}function d(t){return null!==t&&"object"==typeof t}var p=Object.prototype.toString;function f(t){return p.call(t).slice(8,-1)}function h(t){return"[object Object]"===p.call(t)}function v(t){return"[object RegExp]"===p.call(t)}function m(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function g(t){return s(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function y(t){return null==t?"":Array.isArray(t)||h(t)&&t.toString===p?JSON.stringify(t,null,2):String(t)}function b(t){var e=parseFloat(t);return isNaN(e)?t:e}function w(t,e){for(var n=Object.create(null),r=t.split(","),o=0;o<r.length;o++)n[r[o]]=!0;return e?function(t){return n[t.toLowerCase()]}:function(t){return n[t]}}var _=w("slot,component",!0),x=w("key,ref,slot,slot-scope,is");function k(t,e){if(t.length){var n=t.indexOf(e);if(n>-1)return t.splice(n,1)}}var S=Object.prototype.hasOwnProperty;function C(t,e){return S.call(t,e)}function O(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var E=/-(\w)/g,T=O(function(t){return t.replace(E,function(t,e){return e?e.toUpperCase():""})}),$=O(function(t){return t.charAt(0).toUpperCase()+t.slice(1)}),D=/\B([A-Z])/g,A=O(function(t){return t.replace(D,"-$1").toLowerCase()});var N=Function.prototype.bind?function(t,e){return t.bind(e)}:function(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n};function P(t,e){e=e||0;for(var n=t.length-e,r=new Array(n);n--;)r[n]=t[n+e];return r}function j(t,e){for(var n in e)t[n]=e[n];return t}function M(t){for(var e={},n=0;n<t.length;n++)t[n]&&j(e,t[n]);return e}function L(t,e,n){}var R=function(t,e,n){return!1},I=function(t){return t};function V(t,e){if(t===e)return!0;var n=d(t),r=d(e);if(!n||!r)return!n&&!r&&String(t)===String(e);try{var o=Array.isArray(t),i=Array.isArray(e);if(o&&i)return t.length===e.length&&t.every(function(t,n){return V(t,e[n])});if(t instanceof Date&&e instanceof Date)return t.getTime()===e.getTime();if(o||i)return!1;var a=Object.keys(t),s=Object.keys(e);return a.length===s.length&&a.every(function(n){return V(t[n],e[n])})}catch(t){return!1}}function F(t,e){for(var n=0;n<t.length;n++)if(V(t[n],e))return n;return-1}function B(t){var e=!1;return function(){e||(e=!0,t.apply(this,arguments))}}function H(t,e){return t===e?0===t&&1/t!=1/e:t==t||e==e}var z="data-server-rendered",U=["component","directive","filter"],q=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated","errorCaptured","serverPrefetch","renderTracked","renderTriggered"],W={optionMergeStrategies:Object.create(null),silent:!1,productionTip:"production"!==production.NODE_ENV,devtools:"production"!==production.NODE_ENV,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:R,isReservedAttr:R,isUnknownElement:R,getTagNamespace:L,parsePlatformTagName:I,mustUseProp:R,async:!0,_lifecycleHooks:q},Y=/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/;function G(t){var e=(t+"").charCodeAt(0);return 36===e||95===e}function X(t,e,n,r){Object.defineProperty(t,e,{value:n,enumerable:!!r,writable:!0,configurable:!0})}var K=new RegExp("[^".concat(Y.source,".$_\\d]"));var J="__proto__"in{},Z="undefined"!=typeof window,Q=Z&&window.navigator.userAgent.toLowerCase(),tt=Q&&/msie|trident/.test(Q),et=Q&&Q.indexOf("msie 9.0")>0,nt=Q&&Q.indexOf("edge/")>0;Q&&Q.indexOf("android");var rt=Q&&/iphone|ipad|ipod|ios/.test(Q);Q&&/chrome\/\d+/.test(Q),Q&&/phantomjs/.test(Q);var ot,it=Q&&Q.match(/firefox\/(\d+)/),at={}.watch,st=!1;if(Z)try{var ct={};Object.defineProperty(ct,"passive",{get:function(){st=!0}}),window.addEventListener("test-passive",null,ct)}catch(t){}var lt=function(){return void 0===ot&&(ot=!Z&&void 0!==t&&(t.process&&"server"===t.process.env.VUE_ENV)),ot},ut=Z&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function dt(t){return"function"==typeof t&&/native code/.test(t.toString())}var pt,ft="undefined"!=typeof Symbol&&dt(Symbol)&&"undefined"!=typeof Reflect&&dt(Reflect.ownKeys);pt="undefined"!=typeof Set&&dt(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var ht=null;function vt(){return ht&&{proxy:ht}}function mt(t){void 0===t&&(t=null),t||ht&&ht._scope.off(),ht=t,t&&t._scope.on()}var gt,yt=function(){function t(t,e,n,r,o,i,a,s){this.tag=t,this.data=e,this.children=n,this.text=r,this.elm=o,this.ns=void 0,this.context=i,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=e&&e.key,this.componentOptions=a,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1}return Object.defineProperty(t.prototype,"child",{get:function(){return this.componentInstance},enumerable:!1,configurable:!0}),t}(),bt=function(t){void 0===t&&(t="");var e=new yt;return e.text=t,e.isComment=!0,e};function wt(t){return new yt(void 0,void 0,void 0,String(t))}function _t(t){var e=new yt(t.tag,t.data,t.children&&t.children.slice(),t.text,t.elm,t.context,t.componentOptions,t.asyncFactory);return e.ns=t.ns,e.isStatic=t.isStatic,e.key=t.key,e.isComment=t.isComment,e.fnContext=t.fnContext,e.fnOptions=t.fnOptions,e.fnScopeId=t.fnScopeId,e.asyncMeta=t.asyncMeta,e.isCloned=!0,e}if("production"!==production.NODE_ENV){var xt=w("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,require"),kt=function(t,e){lo('Property or method "'.concat(e,'" 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://v2.vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.",t)},St=function(t,e){lo('Property "'.concat(e,'" must be accessed with "$data.').concat(e,'" because ')+'properties starting with "$" or "_" are not proxied in the Vue instance to prevent conflicts with Vue internals. See: https://v2.vuejs.org/v2/api/#data',t)},Ct="undefined"!=typeof Proxy&&dt(Proxy);if(Ct){var Ot=w("stop,prevent,self,ctrl,shift,alt,meta,exact");W.keyCodes=new Proxy(W.keyCodes,{set:function(t,e,n){return Ot(e)?(lo("Avoid overwriting built-in modifier in config.keyCodes: .".concat(e)),!1):(t[e]=n,!0)}})}var Et={has:function(t,e){var n=e in t,r=xt(e)||"string"==typeof e&&"_"===e.charAt(0)&&!(e in t.$data);return n||r||(e in t.$data?St(t,e):kt(t,e)),n||!r}},Tt={get:function(t,e){return"string"!=typeof e||e in t||(e in t.$data?St(t,e):kt(t,e)),t[e]}};gt=function(t){if(Ct){var e=t.$options,n=e.render&&e.render._withStripped?Tt:Et;t._renderProxy=new Proxy(t,n)}else t._renderProxy=t}}var $t=function(){return($t=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var o in e=arguments[n])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)},Dt=0,At=function(){function t(){this.id=Dt++,this.subs=[]}return t.prototype.addSub=function(t){this.subs.push(t)},t.prototype.removeSub=function(t){k(this.subs,t)},t.prototype.depend=function(e){t.target&&(t.target.addDep(this),"production"!==production.NODE_ENV&&e&&t.target.onTrack&&t.target.onTrack($t({effect:t.target},e)))},t.prototype.notify=function(t){var e=this.subs.slice();"production"===production.NODE_ENV||W.async||e.sort(function(t,e){return t.id-e.id});for(var n=0,r=e.length;n<r;n++){if("production"!==production.NODE_ENV&&t){var o=e[n];o.onTrigger&&o.onTrigger($t({effect:e[n]},t))}e[n].update()}},t}();At.target=null;var Nt=[];function Pt(t){Nt.push(t),At.target=t}function jt(){Nt.pop(),At.target=Nt[Nt.length-1]}var Mt=Array.prototype,Lt=Object.create(Mt);["push","pop","shift","unshift","splice","sort","reverse"].forEach(function(t){var e=Mt[t];X(Lt,t,function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];var o,i=e.apply(this,n),a=this.__ob__;switch(t){case"push":case"unshift":o=n;break;case"splice":o=n.slice(2)}return o&&a.observeArray(o),"production"!==production.NODE_ENV?a.dep.notify({type:"array mutation",target:this,key:t}):a.dep.notify(),i})});var Rt=Object.getOwnPropertyNames(Lt),It={},Vt=!0;function Ft(t){Vt=t}var Bt={notify:L,depend:L,addSub:L,removeSub:L},Ht=function(){function t(t,e,n){if(void 0===e&&(e=!1),void 0===n&&(n=!1),this.value=t,this.shallow=e,this.mock=n,this.dep=n?Bt:new At,this.vmCount=0,X(t,"__ob__",this),i(t)){if(!n)if(J)t.__proto__=Lt;else for(var r=0,o=Rt.length;r<o;r++){X(t,s=Rt[r],Lt[s])}e||this.observeArray(t)}else{var a=Object.keys(t);for(r=0;r<a.length;r++){var s;Ut(t,s=a[r],It,void 0,e,n)}}}return t.prototype.observeArray=function(t){for(var e=0,n=t.length;e<n;e++)zt(t[e],!1,this.mock)},t}();function zt(t,e,n){var r;if(!(!d(t)||oe(t)||t instanceof yt))return C(t,"__ob__")&&t.__ob__ instanceof Ht?r=t.__ob__:!Vt||!n&&lt()||!i(t)&&!h(t)||!Object.isExtensible(t)||t.__v_skip||(r=new Ht(t,e,n)),r}function Ut(t,e,n,r,o,a){var s=new At,c=Object.getOwnPropertyDescriptor(t,e);if(!c||!1!==c.configurable){var l=c&&c.get,u=c&&c.set;l&&!u||n!==It&&2!==arguments.length||(n=t[e]);var d=!o&&zt(n,!1,a);return Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:function(){var r=l?l.call(t):n;return At.target&&("production"!==production.NODE_ENV?s.depend({target:t,type:"get",key:e}):s.depend(),d&&(d.dep.depend(),i(r)&&function t(e){for(var n=void 0,r=0,o=e.length;r<o;r++)(n=e[r])&&n.__ob__&&n.__ob__.dep.depend(),i(n)&&t(n)}(r))),oe(r)&&!o?r.value:r},set:function(i){var c=l?l.call(t):n;if(H(c,i)){if("production"!==production.NODE_ENV&&r&&r(),u)u.call(t,i);else{if(l)return;if(!o&&oe(c)&&!oe(i))return void(c.value=i);n=i}d=!o&&zt(i,!1,a),"production"!==production.NODE_ENV?s.notify({type:"set",target:t,key:e,newValue:i,oldValue:c}):s.notify()}}}),s}}function qt(t,e,n){if("production"!==production.NODE_ENV&&(a(t)||l(t))&&lo("Cannot set reactive property on undefined, null, or primitive value: ".concat(t)),!Zt(t)){var r=t.__ob__;return i(t)&&m(e)?(t.length=Math.max(t.length,e),t.splice(e,1,n),r&&!r.shallow&&r.mock&&zt(n,!1,!0),n):e in t&&!(e in Object.prototype)?(t[e]=n,n):t._isVue||r&&r.vmCount?("production"!==production.NODE_ENV&&lo("Avoid adding reactive properties to a Vue instance or its root $data at runtime - declare it upfront in the data option."),n):r?(Ut(r.value,e,n,void 0,r.shallow,r.mock),"production"!==production.NODE_ENV?r.dep.notify({type:"add",target:t,key:e,newValue:n,oldValue:void 0}):r.dep.notify(),n):(t[e]=n,n)}"production"!==production.NODE_ENV&&lo('Set operation on key "'.concat(e,'" failed: target is readonly.'))}function Wt(t,e){if("production"!==production.NODE_ENV&&(a(t)||l(t))&&lo("Cannot delete reactive property on undefined, null, or primitive value: ".concat(t)),i(t)&&m(e))t.splice(e,1);else{var n=t.__ob__;t._isVue||n&&n.vmCount?"production"!==production.NODE_ENV&&lo("Avoid deleting properties on a Vue instance or its root $data - just set it to null."):Zt(t)?"production"!==production.NODE_ENV&&lo('Delete operation on key "'.concat(e,'" failed: target is readonly.')):C(t,e)&&(delete t[e],n&&("production"!==production.NODE_ENV?n.dep.notify({type:"delete",target:t,key:e}):n.dep.notify()))}}function Yt(t){return Xt(t,!1),t}function Gt(t){return Xt(t,!0),X(t,"__v_isShallow",!0),t}function Xt(t,e){if(!Zt(t)){if("production"!==production.NODE_ENV){i(t)&&lo("Avoid using Array as root value for ".concat(e?"shallowReactive()":"reactive()"," as it cannot be tracked in watch() or watchEffect(). Use ").concat(e?"shallowRef()":"ref()"," instead. This is a Vue-2-only limitation."));var n=t&&t.__ob__;n&&n.shallow!==e&&lo("Target is already a ".concat(n.shallow?"":"non-","shallow reactive object, and cannot be converted to ").concat(e?"":"non-","shallow."))}var r=zt(t,e,lt());"production"===production.NODE_ENV||r||((null==t||l(t))&&lo("value cannot be made reactive: ".concat(String(t))),ne(t)&&lo("Vue 2 does not support reactive collection types such as Map or Set."))}}function Kt(t){return Zt(t)?Kt(t.__v_raw):!(!t||!t.__ob__)}function Jt(t){return!(!t||!t.__v_isShallow)}function Zt(t){return!(!t||!t.__v_isReadonly)}function Qt(t){return Kt(t)||Zt(t)}function te(t){var e=t&&t.__v_raw;return e?te(e):t}function ee(t){return X(t,"__v_skip",!0),t}function ne(t){var e=f(t);return"Map"===e||"WeakMap"===e||"Set"===e||"WeakSet"===e}var re="__v_isRef";function oe(t){return!(!t||!0!==t.__v_isRef)}function ie(t){return se(t,!1)}function ae(t){return se(t,!0)}function se(t,e){if(oe(t))return t;var n={};return X(n,re,!0),X(n,"__v_isShallow",e),X(n,"dep",Ut(n,"value",t,null,e,lt())),n}function ce(t){"production"===production.NODE_ENV||t.dep||lo("received object is not a triggerable ref."),"production"!==production.NODE_ENV?t.dep&&t.dep.notify({type:"set",target:t,key:"value"}):t.dep&&t.dep.notify()}function le(t){return oe(t)?t.value:t}function ue(t){if(Kt(t))return t;for(var e={},n=Object.keys(t),r=0;r<n.length;r++)de(e,t,n[r]);return e}function de(t,e,n){Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:function(){var t=e[n];if(oe(t))return t.value;var r=t&&t.__ob__;return r&&r.dep.depend(),t},set:function(t){var r=e[n];oe(r)&&!oe(t)?r.value=t:e[n]=t}})}function pe(t){var e=new At,n=t(function(){"production"!==production.NODE_ENV?e.depend({target:i,type:"get",key:"value"}):e.depend()},function(){"production"!==production.NODE_ENV?e.notify({target:i,type:"set",key:"value"}):e.notify()}),r=n.get,o=n.set,i={get value(){return r()},set value(t){o(t)}};return X(i,re,!0),i}function fe(t){"production"===production.NODE_ENV||Kt(t)||lo("toRefs() expects a reactive object but received a plain one.");var e=i(t)?new Array(t.length):{};for(var n in t)e[n]=he(t,n);return e}function he(t,e,n){var r=t[e];if(oe(r))return r;var o={get value(){var r=t[e];return void 0===r?n:r},set value(n){t[e]=n}};return X(o,re,!0),o}var ve,me,ge="__v_rawToReadonly",ye="__v_rawToShallowReadonly";function be(t){return we(t,!1)}function we(t,e){if(!h(t))return"production"!==production.NODE_ENV&&(i(t)?lo("Vue 2 does not support readonly arrays."):ne(t)?lo("Vue 2 does not support readonly collection types such as Map or Set."):lo("value cannot be made readonly: ".concat(typeof t))),t;if(Zt(t))return t;var n=e?ye:ge,r=t[n];if(r)return r;var o=Object.create(Object.getPrototypeOf(t));X(t,n,o),X(o,"__v_isReadonly",!0),X(o,"__v_raw",t),oe(t)&&X(o,re,!0),(e||Jt(t))&&X(o,"__v_isShallow",!0);for(var a=Object.keys(t),s=0;s<a.length;s++)_e(o,t,a[s],e);return o}function _e(t,e,n,r){Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:function(){var t=e[n];return r||!h(t)?t:be(t)},set:function(){"production"!==production.NODE_ENV&&lo('Set operation on key "'.concat(n,'" failed: target is readonly.'))}})}function xe(t){return we(t,!0)}function ke(t,e){var n,r,o=u(t);o?(n=t,r="production"!==production.NODE_ENV?function(){lo("Write operation failed: computed value is readonly")}:L):(n=t.get,r=t.set);var i=lt()?null:new Br(ht,n,L,{lazy:!0});"production"!==production.NODE_ENV&&i&&e&&(i.onTrack=e.onTrack,i.onTrigger=e.onTrigger);var a={effect:i,get value(){return i?(i.dirty&&i.evaluate(),At.target&&("production"!==production.NODE_ENV&&At.target.onTrack&&At.target.onTrack({effect:At.target,target:a,type:"get",key:"value"}),i.depend()),i.value):n()},set value(t){r(t)}};return X(a,re,!0),X(a,"__v_isReadonly",o),a}if("production"!==production.NODE_ENV){var Se=Z&&window.performance;Se&&Se.mark&&Se.measure&&Se.clearMarks&&Se.clearMeasures&&(ve=function(t){return Se.mark(t)},me=function(t,e,n){Se.measure(t,e,n),Se.clearMarks(e),Se.clearMarks(n)})}var Ce=O(function(t){var e="&"===t.charAt(0),n="~"===(t=e?t.slice(1):t).charAt(0),r="!"===(t=n?t.slice(1):t).charAt(0);return{name:t=r?t.slice(1):t,once:n,capture:r,passive:e}});function Oe(t,e){function n(){var t=n.fns;if(!i(t))return ar(t,null,arguments,e,"v-on handler");for(var r=t.slice(),o=0;o<r.length;o++)ar(r[o],null,arguments,e,"v-on handler")}return n.fns=t,n}function Ee(t,e,n,r,o,i){var s,l,u,d;for(s in t)l=t[s],u=e[s],d=Ce(s),a(l)?"production"!==production.NODE_ENV&&lo('Invalid handler for event "'.concat(d.name,'": got ')+String(l),i):a(u)?(a(l.fns)&&(l=t[s]=Oe(l,i)),c(d.once)&&(l=t[s]=o(d.name,l,d.capture)),n(d.name,l,d.capture,d.passive,d.params)):l!==u&&(u.fns=l,t[s]=u);for(s in e)a(t[s])&&r((d=Ce(s)).name,e[s],d.capture)}function Te(t,e,n){var r;t instanceof yt&&(t=t.data.hook||(t.data.hook={}));var o=t[e];function i(){n.apply(this,arguments),k(r.fns,i)}a(o)?r=Oe([i]):s(o.fns)&&c(o.merged)?(r=o).fns.push(i):r=Oe([o,i]),r.merged=!0,t[e]=r}function $e(t,e,n,r,o){if(s(e)){if(C(e,n))return t[n]=e[n],o||delete e[n],!0;if(C(e,r))return t[n]=e[r],o||delete e[r],!0}return!1}function De(t){return l(t)?[wt(t)]:i(t)?function t(e,n){var r=[];var o,u,d,p;for(o=0;o<e.length;o++)a(u=e[o])||"boolean"==typeof u||(d=r.length-1,p=r[d],i(u)?u.length>0&&(Ae((u=t(u,"".concat(n||"","_").concat(o)))[0])&&Ae(p)&&(r[d]=wt(p.text+u[0].text),u.shift()),r.push.apply(r,u)):l(u)?Ae(p)?r[d]=wt(p.text+u):""!==u&&r.push(wt(u)):Ae(u)&&Ae(p)?r[d]=wt(p.text+u.text):(c(e._isVList)&&s(u.tag)&&a(u.key)&&s(n)&&(u.key="__vlist".concat(n,"_").concat(o,"__")),r.push(u)));return r}(t):void 0}function Ae(t){return s(t)&&s(t.text)&&function(t){return!1===t}(t.isComment)}var Ne=1,Pe=2;function je(t,e,n,r,o,p){return(i(n)||l(n))&&(o=r,r=n,n=void 0),c(p)&&(o=Pe),function(t,e,n,r,o){if(s(n)&&s(n.__ob__))return"production"!==production.NODE_ENV&&lo("Avoid using observed data object as vnode data: ".concat(JSON.stringify(n),"\n")+"Always create fresh vnode data objects in each render!",t),bt();s(n)&&s(n.is)&&(e=n.is);if(!e)return bt();"production"!==production.NODE_ENV&&s(n)&&s(n.key)&&!l(n.key)&&lo("Avoid using non-primitive value as key, use string/number value instead.",t);i(r)&&u(r[0])&&((n=n||{}).scopedSlots={default:r[0]},r.length=0);o===Pe?r=De(r):o===Ne&&(r=function(t){for(var e=0;e<t.length;e++)if(i(t[e]))return Array.prototype.concat.apply([],t);return t}(r));var p,f;if("string"==typeof e){var h=void 0;f=t.$vnode&&t.$vnode.ns||W.getTagNamespace(e),W.isReservedTag(e)?("production"!==production.NODE_ENV&&s(n)&&s(n.nativeOn)&&"component"!==n.tag&&lo("The .native modifier for v-on is only valid on components but it was used on <".concat(e,">."),t),p=new yt(W.parsePlatformTagName(e),n,r,void 0,void 0,t)):p=n&&n.pre||!s(h=ko(t.$options,"components",e))?new yt(e,n,r,void 0,void 0,t):io(h,n,t,r,e)}else p=io(e,n,t,r);return i(p)?p:s(p)?(s(f)&&function t(e,n,r){e.ns=n;"foreignObject"===e.tag&&(n=void 0,r=!0);if(s(e.children))for(var o=0,i=e.children.length;o<i;o++){var l=e.children[o];s(l.tag)&&(a(l.ns)||c(r)&&"svg"!==l.tag)&&t(l,n,r)}}(p,f),s(n)&&function(t){d(t.style)&&Vr(t.style);d(t.class)&&Vr(t.class)}(n),p):bt()}(t,e,n,r,o)}function Me(t,e){var n,r,o,a,c=null;if(i(t)||"string"==typeof t)for(c=new Array(t.length),n=0,r=t.length;n<r;n++)c[n]=e(t[n],n);else if("number"==typeof t)for(c=new Array(t),n=0;n<t;n++)c[n]=e(n+1,n);else if(d(t))if(ft&&t[Symbol.iterator]){c=[];for(var l=t[Symbol.iterator](),u=l.next();!u.done;)c.push(e(u.value,c.length)),u=l.next()}else for(o=Object.keys(t),c=new Array(o.length),n=0,r=o.length;n<r;n++)a=o[n],c[n]=e(t[a],a,n);return s(c)||(c=[]),c._isVList=!0,c}function Le(t,e,n,r){var o,i=this.$scopedSlots[t];i?(n=n||{},r&&("production"===production.NODE_ENV||d(r)||lo("slot v-bind without argument expects an Object",this),n=j(j({},r),n)),o=i(n)||(u(e)?e():e)):o=this.$slots[t]||(u(e)?e():e);var a=n&&n.slot;return a?this.$createElement("template",{slot:a},o):o}function Re(t){return ko(this.$options,"filters",t,!0)||I}function Ie(t,e){return i(t)?-1===t.indexOf(e):t!==e}function Ve(t,e,n,r,o){var i=W.keyCodes[e]||n;return o&&r&&!W.keyCodes[e]?Ie(o,r):i?Ie(i,t):r?A(r)!==e:void 0===t}function Fe(t,e,n,r,o){if(n)if(d(n)){i(n)&&(n=M(n));var a=void 0,s=function(i){if("class"===i||"style"===i||x(i))a=t;else{var s=t.attrs&&t.attrs.type;a=r||W.mustUseProp(e,s,i)?t.domProps||(t.domProps={}):t.attrs||(t.attrs={})}var c=T(i),l=A(i);c in a||l in a||(a[i]=n[i],o&&((t.on||(t.on={}))["update:".concat(i)]=function(t){n[i]=t}))};for(var c in n)s(c)}else"production"!==production.NODE_ENV&&lo("v-bind without argument expects an Object or Array value",this);return t}function Be(t,e){var n=this._staticTrees||(this._staticTrees=[]),r=n[t];return r&&!e?r:(ze(r=n[t]=this.$options.staticRenderFns[t].call(this._renderProxy,this._c,this),"__static__".concat(t),!1),r)}function He(t,e,n){return ze(t,"__once__".concat(e).concat(n?"_".concat(n):""),!0),t}function ze(t,e,n){if(i(t))for(var r=0;r<t.length;r++)t[r]&&"string"!=typeof t[r]&&Ue(t[r],"".concat(e,"_").concat(r),n);else Ue(t,e,n)}function Ue(t,e,n){t.isStatic=!0,t.key=e,t.isOnce=n}function qe(t,e){if(e)if(h(e)){var n=t.on=t.on?j({},t.on):{};for(var r in e){var o=n[r],i=e[r];n[r]=o?[].concat(o,i):i}}else"production"!==production.NODE_ENV&&lo("v-on without argument expects an Object value",this);return t}function We(t,e,n,r){e=e||{$stable:!n};for(var o=0;o<t.length;o++){var a=t[o];i(a)?We(a,e,n):a&&(a.proxy&&(a.fn.proxy=!0),e[a.key]=a.fn)}return r&&(e.$key=r),e}function Ye(t,e){for(var n=0;n<e.length;n+=2){var r=e[n];"string"==typeof r&&r?t[e[n]]=e[n+1]:"production"!==production.NODE_ENV&&""!==r&&null!==r&&lo("Invalid value for dynamic directive argument (expected string or null): ".concat(r),this)}return t}function Ge(t,e){return"string"==typeof t?e+t:t}function Xe(t){t._o=He,t._n=b,t._s=y,t._l=Me,t._t=Le,t._q=V,t._i=F,t._m=Be,t._f=Re,t._k=Ve,t._b=Fe,t._v=wt,t._e=bt,t._u=We,t._g=qe,t._d=Ye,t._p=Ge}function Ke(t,e){if(!t||!t.length)return{};for(var n={},r=0,o=t.length;r<o;r++){var i=t[r],a=i.data;if(a&&a.attrs&&a.attrs.slot&&delete a.attrs.slot,i.context!==e&&i.fnContext!==e||!a||null==a.slot)(n.default||(n.default=[])).push(i);else{var s=a.slot,c=n[s]||(n[s]=[]);"template"===i.tag?c.push.apply(c,i.children||[]):c.push(i)}}for(var l in n)n[l].every(Je)&&delete n[l];return n}function Je(t){return t.isComment&&!t.asyncFactory||" "===t.text}function Ze(t){return t.isComment&&t.asyncFactory}function Qe(t,e,n,r){var i,a=Object.keys(n).length>0,s=e?!!e.$stable:!a,c=e&&e.$key;if(e){if(e._normalized)return e._normalized;if(s&&r&&r!==o&&c===r.$key&&!a&&!r.$hasNormal)return r;for(var l in i={},e)e[l]&&"$"!==l[0]&&(i[l]=tn(t,n,l,e[l]))}else i={};for(var u in n)u in i||(i[u]=en(n,u));return e&&Object.isExtensible(e)&&(e._normalized=i),X(i,"$stable",s),X(i,"$key",c),X(i,"$hasNormal",a),i}function tn(t,e,n,r){var o=function(){var e=ht;mt(t);var n=arguments.length?r.apply(null,arguments):r({}),o=(n=n&&"object"==typeof n&&!i(n)?[n]:De(n))&&n[0];return mt(e),n&&(!o||1===n.length&&o.isComment&&!Ze(o))?void 0:n};return r.proxy&&Object.defineProperty(e,n,{get:o,enumerable:!0,configurable:!0}),o}function en(t,e){return function(){return t[e]}}function nn(t){var e=!1;return{get attrs(){if(!t._attrsProxy){var e=t._attrsProxy={};X(e,"_v_attr_proxy",!0),rn(e,t.$attrs,o,t,"$attrs")}return t._attrsProxy},get listeners(){t._listenersProxy||rn(t._listenersProxy={},t.$listeners,o,t,"$listeners");return t._listenersProxy},get slots(){return function(t){t._slotsProxy||an(t._slotsProxy={},t.$scopedSlots);return t._slotsProxy}(t)},emit:N(t.$emit,t),expose:function(n){"production"!==production.NODE_ENV&&(e&&lo("expose() should be called only once per setup().",t),e=!0),n&&Object.keys(n).forEach(function(e){return de(t,n,e)})}}}function rn(t,e,n,r,o){var i=!1;for(var a in e)a in t?e[a]!==n[a]&&(i=!0):(i=!0,on(t,a,r,o));for(var a in t)a in e||(i=!0,delete t[a]);return i}function on(t,e,n,r){Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:function(){return n[r][e]}})}function an(t,e){for(var n in e)t[n]=e[n];for(var n in t)n in e||delete t[n]}function sn(){return un().slots}function cn(){return un().attrs}function ln(){return un().listeners}function un(){"production"===production.NODE_ENV||ht||lo("useContext() called without active instance.");var t=ht;return t._setupContext||(t._setupContext=nn(t))}function dn(t,e){var n=i(t)?t.reduce(function(t,e){return t[e]={},t},{}):t;for(var r in e){var o=n[r];o?i(o)||u(o)?n[r]={type:o,default:e[r]}:o.default=e[r]:null===o?n[r]={default:e[r]}:"production"!==production.NODE_ENV&&lo('props default key "'.concat(r,'" has no corresponding declaration.'))}return n}var pn,fn=null;function hn(t,e){return(t.__esModule||ft&&"Module"===t[Symbol.toStringTag])&&(t=t.default),d(t)?e.extend(t):t}function vn(t){if(i(t))for(var e=0;e<t.length;e++){var n=t[e];if(s(n)&&(s(n.componentOptions)||Ze(n)))return n}}function mn(t,e){pn.$on(t,e)}function gn(t,e){pn.$off(t,e)}function yn(t,e){var n=pn;return function r(){null!==e.apply(null,arguments)&&n.$off(t,r)}}function bn(t,e,n){pn=t,Ee(e,n||{},mn,gn,yn,t),pn=void 0}var wn=null,_n=!1;function xn(t){var e=wn;return wn=t,function(){wn=e}}function kn(t){for(;t&&(t=t.$parent);)if(t._inactive)return!0;return!1}function Sn(t,e){if(e){if(t._directInactive=!1,kn(t))return}else if(t._directInactive)return;if(t._inactive||null===t._inactive){t._inactive=!1;for(var n=0;n<t.$children.length;n++)Sn(t.$children[n]);Cn(t,"activated")}}function Cn(t,e,n,r){void 0===r&&(r=!0),Pt();var o=ht;r&&mt(t);var i=t.$options[e],a="".concat(e," hook");if(i)for(var s=0,c=i.length;s<c;s++)ar(i[s],t,n||null,t,a);t._hasHookEvent&&t.$emit("hook:"+e),r&&mt(o),jt()}var On=100,En=[],Tn=[],$n={},Dn={},An=!1,Nn=!1,Pn=0;var jn=0,Mn=Date.now;if(Z&&!tt){var Ln=window.performance;Ln&&"function"==typeof Ln.now&&Mn()>document.createEvent("Event").timeStamp&&(Mn=function(){return Ln.now()})}var Rn=function(t,e){if(t.post){if(!e.post)return 1}else if(e.post)return-1;return t.id-e.id};function In(){var t,e;for(jn=Mn(),Nn=!0,En.sort(Rn),Pn=0;Pn<En.length;Pn++)if((t=En[Pn]).before&&t.before(),e=t.id,$n[e]=null,t.run(),"production"!==production.NODE_ENV&&null!=$n[e]&&(Dn[e]=(Dn[e]||0)+1,Dn[e]>On)){lo("You may have an infinite update loop "+(t.user?'in watcher with expression "'.concat(t.expression,'"'):"in a component render function."),t.vm);break}var n=Tn.slice(),r=En.slice();Pn=En.length=Tn.length=0,$n={},"production"!==production.NODE_ENV&&(Dn={}),An=Nn=!1,function(t){for(var e=0;e<t.length;e++)t[e]._inactive=!0,Sn(t[e],!0)}(n),function(t){var e=t.length;for(;e--;){var n=t[e],r=n.vm;r&&r._watcher===n&&r._isMounted&&!r._isDestroyed&&Cn(r,"updated")}}(r),ut&&W.devtools&&ut.emit("flush")}function Vn(t){var e=t.id;if(null==$n[e]&&(t!==At.target||!t.noRecurse)){if($n[e]=!0,Nn){for(var n=En.length-1;n>Pn&&En[n].id>t.id;)n--;En.splice(n+1,0,t)}else En.push(t);if(!An){if(An=!0,"production"!==production.NODE_ENV&&!W.async)return void In();yr(In)}}}var Fn="watcher",Bn="".concat(Fn," callback"),Hn="".concat(Fn," getter"),zn="".concat(Fn," cleanup");function Un(t,e){return Kn(t,null,e)}function qn(t,e){return Kn(t,null,"production"!==production.NODE_ENV?$t($t({},e),{flush:"post"}):{flush:"post"})}function Wn(t,e){return Kn(t,null,"production"!==production.NODE_ENV?$t($t({},e),{flush:"sync"}):{flush:"sync"})}var Yn,Gn={};function Xn(t,e,n){return"production"!==production.NODE_ENV&&"function"!=typeof e&&lo("`watch(fn, options?)` signature has been moved to a separate API. Use `watchEffect(fn, options?)` instead. `watch` now only supports `watch(source, cb, options?) signature."),Kn(t,e,n)}function Kn(t,e,n){var r=void 0===n?o:n,a=r.immediate,s=r.deep,c=r.flush,l=void 0===c?"pre":c,d=r.onTrack,p=r.onTrigger;"production"===production.NODE_ENV||e||(void 0!==a&&lo('watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.'),void 0!==s&&lo('watch() "deep" option is only respected when using the watch(source, callback, options?) signature.'));var f,h,v=function(t){lo("Invalid watch source: ".concat(t,". A watch source can only be a getter/effect ")+"function, a ref, a reactive object, or an array of these types.")},m=ht,g=function(t,e,n){return void 0===n&&(n=null),ar(t,null,n,m,e)},y=!1,b=!1;if(oe(t)?(f=function(){return t.value},y=Jt(t)):Kt(t)?(f=function(){return t.__ob__.dep.depend(),t},s=!0):i(t)?(b=!0,y=t.some(function(t){return Kt(t)||Jt(t)}),f=function(){return t.map(function(t){return oe(t)?t.value:Kt(t)?Vr(t):u(t)?g(t,Hn):void("production"!==production.NODE_ENV&&v(t))})}):u(t)?f=e?function(){return g(t,Hn)}:function(){if(!m||!m._isDestroyed)return h&&h(),g(t,Fn,[_])}:(f=L,"production"!==production.NODE_ENV&&v(t)),e&&s){var w=f;f=function(){return Vr(w())}}var _=function(t){h=x.onStop=function(){g(t,zn)}};if(lt())return _=L,e?a&&g(e,Bn,[f(),b?[]:void 0,_]):f(),L;var x=new Br(ht,f,L,{lazy:!0});x.noRecurse=!e;var k=b?[]:Gn;return x.run=function(){if(x.active)if(e){var t=x.get();(s||y||(b?t.some(function(t,e){return H(t,k[e])}):H(t,k)))&&(h&&h(),g(e,Bn,[t,k===Gn?void 0:k,_]),k=t)}else x.get()},"sync"===l?x.update=x.run:"post"===l?(x.post=!0,x.update=function(){return Vn(x)}):x.update=function(){if(m&&m===ht&&!m._isMounted){var t=m._preWatchers||(m._preWatchers=[]);t.indexOf(x)<0&&t.push(x)}else Vn(x)},"production"!==production.NODE_ENV&&(x.onTrack=d,x.onTrigger=p),e?a?x.run():k=x.get():"post"===l&&m?m.$once("hook:mounted",function(){return x.get()}):x.get(),function(){x.teardown()}}var Jn=function(){function t(t){void 0===t&&(t=!1),this.active=!0,this.effects=[],this.cleanups=[],!t&&Yn&&(this.parent=Yn,this.index=(Yn.scopes||(Yn.scopes=[])).push(this)-1)}return t.prototype.run=function(t){if(this.active){var e=Yn;try{return Yn=this,t()}finally{Yn=e}}else"production"!==production.NODE_ENV&&lo("cannot run an inactive effect scope.")},t.prototype.on=function(){Yn=this},t.prototype.off=function(){Yn=this.parent},t.prototype.stop=function(t){if(this.active){var e=void 0,n=void 0;for(e=0,n=this.effects.length;e<n;e++)this.effects[e].teardown();for(e=0,n=this.cleanups.length;e<n;e++)this.cleanups[e]();if(this.scopes)for(e=0,n=this.scopes.length;e<n;e++)this.scopes[e].stop(!0);if(this.parent&&!t){var r=this.parent.scopes.pop();r&&r!==this&&(this.parent.scopes[this.index]=r,r.index=this.index)}this.active=!1}},t}();function Zn(t){return new Jn(t)}function Qn(){return Yn}function tr(t){Yn?Yn.cleanups.push(t):"production"!==production.NODE_ENV&&lo("onScopeDispose() is called when there is no active effect scope to be associated with.")}function er(t,e){ht?nr(ht)[t]=e:"production"!==production.NODE_ENV&&lo("provide() can only be used inside setup().")}function nr(t){var e=t._provided,n=t.$parent&&t.$parent._provided;return n===e?t._provided=Object.create(n):e}function rr(t,e,n){void 0===n&&(n=!1);var r=ht;if(r){var o=r.$parent&&r.$parent._provided;if(o&&t in o)return o[t];if(arguments.length>1)return n&&u(e)?e.call(r):e;"production"!==production.NODE_ENV&&lo('injection "'.concat(String(t),'" not found.'))}else"production"!==production.NODE_ENV&&lo("inject() can only be used inside setup() or functional components.")}function or(t,e,n){return ht||"production"!==production.NODE_ENV&&lo("globally imported h() can only be invoked when there is an active component instance, e.g. synchronously in a component's render or setup function."),je(ht,t,e,n,2,!0)}function ir(t,e,n){Pt();try{if(e)for(var r=e;r=r.$parent;){var o=r.$options.errorCaptured;if(o)for(var i=0;i<o.length;i++)try{if(!1===o[i].call(r,t,e,n))return}catch(t){sr(t,r,"errorCaptured hook")}}sr(t,e,n)}finally{jt()}}function ar(t,e,n,r,o){var i;try{(i=n?t.apply(e,n):t.call(e))&&!i._isVue&&g(i)&&!i._handled&&(i.catch(function(t){return ir(t,r,o+" (Promise/async)")}),i._handled=!0)}catch(t){ir(t,r,o)}return i}function sr(t,e,n){if(W.errorHandler)try{return W.errorHandler.call(null,t,e,n)}catch(e){e!==t&&cr(e,null,"config.errorHandler")}cr(t,e,n)}function cr(t,e,n){if("production"!==production.NODE_ENV&&lo("Error in ".concat(n,': "').concat(t.toString(),'"'),e),!Z||"undefined"==typeof console)throw t;console.error(t)}var lr,ur=!1,dr=[],pr=!1;function fr(){pr=!1;var t=dr.slice(0);dr.length=0;for(var e=0;e<t.length;e++)t[e]()}if("undefined"!=typeof Promise&&dt(Promise)){var hr=Promise.resolve();lr=function(){hr.then(fr),rt&&setTimeout(L)},ur=!0}else if(tt||"undefined"==typeof MutationObserver||!dt(MutationObserver)&&"[object MutationObserverConstructor]"!==MutationObserver.toString())lr=void 0!==r&&dt(r)?function(){r(fr)}:function(){setTimeout(fr,0)};else{var vr=1,mr=new MutationObserver(fr),gr=document.createTextNode(String(vr));mr.observe(gr,{characterData:!0}),lr=function(){vr=(vr+1)%2,gr.data=String(vr)},ur=!0}function yr(t,e){var n;if(dr.push(function(){if(t)try{t.call(e)}catch(t){ir(t,e,"nextTick")}else n&&n(e)}),pr||(pr=!0,lr()),!t&&"undefined"!=typeof Promise)return new Promise(function(t){n=t})}function br(t){if(void 0===t&&(t="$style"),!ht)return"production"!==production.NODE_ENV&&lo("useCssModule must be called inside setup()"),o;var e=ht[t];return e||("production"!==production.NODE_ENV&&lo('Current instance does not have CSS module named "'.concat(t,'".')),o)}function wr(t){if(Z){var e=ht;e?qn(function(){var n=e.$el,r=t(e,e._setupProxy);if(n&&1===n.nodeType){var o=n.style;for(var i in r)o.setProperty("--".concat(i),r[i])}}):"production"!==production.NODE_ENV&&lo("useCssVars is called without current active component instance.")}}function _r(t){u(t)&&(t={loader:t});var e=t.loader,n=t.loadingComponent,r=t.errorComponent,o=t.delay,i=void 0===o?200:o,a=t.timeout,s=t.suspensible,c=void 0!==s&&s,l=t.onError;"production"!==production.NODE_ENV&&c&&lo("The suspensiblbe option for async components is not supported in Vue2. It is ignored.");var p=null,f=0,h=function(){var t;return p||(t=p=e().catch(function(t){if(t=t instanceof Error?t:new Error(String(t)),l)return new Promise(function(e,n){l(t,function(){return e((f++,p=null,h()))},function(){return n(t)},f+1)});throw t}).then(function(e){if(t!==p&&p)return p;if("production"===production.NODE_ENV||e||lo("Async component loader resolved to undefined. If you are using retry(), make sure to return its return value."),e&&(e.__esModule||"Module"===e[Symbol.toStringTag])&&(e=e.default),"production"!==production.NODE_ENV&&e&&!d(e)&&!u(e))throw new Error("Invalid async component load result: ".concat(e));return e}))};return function(){return{component:h(),delay:i,timeout:a,error:r,loading:n}}}function xr(t){return function(e,n){if(void 0===n&&(n=ht),n)return function(t,e,n){var r=t.$options;r[e]=go(r[e],n)}(n,t,e);"production"!==production.NODE_ENV&&lo("".concat(function(t){"beforeDestroy"===t?t="beforeUnmount":"destroyed"===t&&(t="unmounted");return"on".concat(t[0].toUpperCase()+t.slice(1))}(t)," is called when there is no active component instance to be ")+"associated with. Lifecycle injection APIs can only be used during execution of setup().")}}var kr=xr("beforeMount"),Sr=xr("mounted"),Cr=xr("beforeUpdate"),Or=xr("updated"),Er=xr("beforeDestroy"),Tr=xr("destroyed"),$r=xr("activated"),Dr=xr("deactivated"),Ar=xr("serverPrefetch"),Nr=xr("renderTracked"),Pr=xr("renderTriggered"),jr=xr("errorCaptured");function Mr(t,e){void 0===e&&(e=ht),jr(t,e)}var Lr="2.7.10";function Rr(t){return t}var Ir=new pt;function Vr(t){return function t(e,n){var r,o;var a=i(e);if(!a&&!d(e)||Object.isFrozen(e)||e instanceof yt)return;if(e.__ob__){var s=e.__ob__.dep.id;if(n.has(s))return;n.add(s)}if(a)for(r=e.length;r--;)t(e[r],n);else if(oe(e))t(e.value,n);else for(o=Object.keys(e),r=o.length;r--;)t(e[o[r]],n)}(t,Ir),Ir.clear(),t}var Fr=0,Br=function(){function t(t,e,n,r,o){!function(t,e){void 0===e&&(e=Yn),e&&e.active&&e.effects.push(t)}(this,Yn&&!Yn._vm?Yn:t?t._scope:void 0),(this.vm=t)&&o&&(t._watcher=this),r?(this.deep=!!r.deep,this.user=!!r.user,this.lazy=!!r.lazy,this.sync=!!r.sync,this.before=r.before,"production"!==production.NODE_ENV&&(this.onTrack=r.onTrack,this.onTrigger=r.onTrigger)):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++Fr,this.active=!0,this.post=!1,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new pt,this.newDepIds=new pt,this.expression="production"!==production.NODE_ENV?e.toString():"",u(e)?this.getter=e:(this.getter=function(t){if(!K.test(t)){var e=t.split(".");return function(t){for(var n=0;n<e.length;n++){if(!t)return;t=t[e[n]]}return t}}}(e),this.getter||(this.getter=L,"production"!==production.NODE_ENV&&lo('Failed watching path: "'.concat(e,'" ')+"Watcher only accepts simple dot-delimited paths. For full control, use a function instead.",t))),this.value=this.lazy?void 0:this.get()}return t.prototype.get=function(){var t;Pt(this);var e=this.vm;try{t=this.getter.call(e,e)}catch(t){if(!this.user)throw t;ir(t,e,'getter for watcher "'.concat(this.expression,'"'))}finally{this.deep&&Vr(t),jt(),this.cleanupDeps()}return t},t.prototype.addDep=function(t){var e=t.id;this.newDepIds.has(e)||(this.newDepIds.add(e),this.newDeps.push(t),this.depIds.has(e)||t.addSub(this))},t.prototype.cleanupDeps=function(){for(var t=this.deps.length;t--;){var e=this.deps[t];this.newDepIds.has(e.id)||e.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},t.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():Vn(this)},t.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||d(t)||this.deep){var e=this.value;if(this.value=t,this.user){var n='callback for watcher "'.concat(this.expression,'"');ar(this.cb,this.vm,[t,e],this.vm,n)}else this.cb.call(this.vm,t,e)}}},t.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},t.prototype.depend=function(){for(var t=this.deps.length;t--;)this.deps[t].depend()},t.prototype.teardown=function(){if(this.vm&&!this.vm._isBeingDestroyed&&k(this.vm._scope.effects,this),this.active){for(var t=this.deps.length;t--;)this.deps[t].removeSub(this);this.active=!1,this.onStop&&this.onStop()}},t}(),Hr={enumerable:!0,configurable:!0,get:L,set:L};function zr(t,e,n){Hr.get=function(){return this[e][n]},Hr.set=function(t){this[e][n]=t},Object.defineProperty(t,n,Hr)}function Ur(t){var e=t.$options;if(e.props&&function(t,e){var n=t.$options.propsData||{},r=t._props=Gt({}),o=t.$options._propKeys=[],i=!t.$parent;i||Ft(!1);var a=function(a){o.push(a);var s=So(a,e,n,t);if("production"!==production.NODE_ENV){var c=A(a);(x(c)||W.isReservedAttr(c))&&lo('"'.concat(c,'" is a reserved attribute and cannot be used as component prop.'),t),Ut(r,a,s,function(){i||_n||lo("Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's "+'value. Prop being mutated: "'.concat(a,'"'),t)})}else Ut(r,a,s);a in t||zr(t,"_props",a)};for(var s in e)a(s);Ft(!0)}(t,e.props),function(t){var e=t.$options,n=e.setup;if(n){var r=t._setupContext=nn(t);mt(t),Pt();var o=ar(n,null,[t._props||Gt({}),r],t,"setup");if(jt(),mt(),u(o))e.render=o;else if(d(o))if("production"!==production.NODE_ENV&&o instanceof yt&&lo("setup() should not return VNodes directly - return a render function instead."),t._setupState=o,o.__sfc){var i=t._setupProxy={};for(var a in o)"__sfc"!==a&&de(i,o,a)}else for(var a in o)G(a)?"production"!==production.NODE_ENV&&lo("Avoid using variables that start with _ or $ in setup()."):de(t,o,a);else"production"!==production.NODE_ENV&&void 0!==o&&lo("setup() should return an object. Received: ".concat(null===o?"null":typeof o))}}(t),e.methods&&function(t,e){var n=t.$options.props;for(var r in e)"production"!==production.NODE_ENV&&("function"!=typeof e[r]&&lo('Method "'.concat(r,'" has type "').concat(typeof e[r],'" in the component definition. ')+"Did you reference the function correctly?",t),n&&C(n,r)&&lo('Method "'.concat(r,'" has already been defined as a prop.'),t),r in t&&G(r)&&lo('Method "'.concat(r,'" conflicts with an existing Vue instance method. ')+"Avoid defining component methods that start with _ or $.")),t[r]="function"!=typeof e[r]?L:N(e[r],t)}(t,e.methods),e.data)!function(t){var e=t.$options.data;h(e=t._data=u(e)?function(t,e){Pt();try{return t.call(e,e)}catch(t){return ir(t,e,"data()"),{}}finally{jt()}}(e,t):e||{})||(e={},"production"!==production.NODE_ENV&&lo("data functions should return an object:\nhttps://v2.vuejs.org/v2/guide/components.html#data-Must-Be-a-Function",t));var n=Object.keys(e),r=t.$options.props,o=t.$options.methods,i=n.length;for(;i--;){var a=n[i];"production"!==production.NODE_ENV&&o&&C(o,a)&&lo('Method "'.concat(a,'" has already been defined as a data property.'),t),r&&C(r,a)?"production"!==production.NODE_ENV&&lo('The data property "'.concat(a,'" is already declared as a prop. ')+"Use prop default value instead.",t):G(a)||zr(t,"_data",a)}var s=zt(e);s&&s.vmCount++}(t);else{var n=zt(t._data={});n&&n.vmCount++}e.computed&&function(t,e){var n=t._computedWatchers=Object.create(null),r=lt();for(var o in e){var i=e[o],a=u(i)?i:i.get;"production"!==production.NODE_ENV&&null==a&&lo('Getter is missing for computed property "'.concat(o,'".'),t),r||(n[o]=new Br(t,a||L,L,qr)),o in t?"production"!==production.NODE_ENV&&(o in t.$data?lo('The computed property "'.concat(o,'" is already defined in data.'),t):t.$options.props&&o in t.$options.props?lo('The computed property "'.concat(o,'" is already defined as a prop.'),t):t.$options.methods&&o in t.$options.methods&&lo('The computed property "'.concat(o,'" is already defined as a method.'),t)):Wr(t,o,i)}}(t,e.computed),e.watch&&e.watch!==at&&function(t,e){for(var n in e){var r=e[n];if(i(r))for(var o=0;o<r.length;o++)Xr(t,n,r[o]);else Xr(t,n,r)}}(t,e.watch)}var qr={lazy:!0};function Wr(t,e,n){var r=!lt();u(n)?(Hr.get=r?Yr(e):Gr(n),Hr.set=L):(Hr.get=n.get?r&&!1!==n.cache?Yr(e):Gr(n.get):L,Hr.set=n.set||L),"production"!==production.NODE_ENV&&Hr.set===L&&(Hr.set=function(){lo('Computed property "'.concat(e,'" was assigned to but it has no setter.'),this)}),Object.defineProperty(t,e,Hr)}function Yr(t){return function(){var e=this._computedWatchers&&this._computedWatchers[t];if(e)return e.dirty&&e.evaluate(),At.target&&("production"!==production.NODE_ENV&&At.target.onTrack&&At.target.onTrack({effect:At.target,target:this,type:"get",key:t}),e.depend()),e.value}}function Gr(t){return function(){return t.call(this,this)}}function Xr(t,e,n,r){return h(n)&&(r=n,n=n.handler),"string"==typeof n&&(n=t[n]),t.$watch(e,n,r)}function Kr(t,e){if(t){for(var n=Object.create(null),r=ft?Reflect.ownKeys(t):Object.keys(t),o=0;o<r.length;o++){var i=r[o];if("__ob__"!==i){var a=t[i].from;if(a in e._provided)n[i]=e._provided[a];else if("default"in t[i]){var s=t[i].default;n[i]=u(s)?s.call(e):s}else"production"!==production.NODE_ENV&&lo('Injection "'.concat(i,'" not found'),e)}}return n}}var Jr=0;function Zr(t){var e=t.options;if(t.super){var n=Zr(t.super);if(n!==t.superOptions){t.superOptions=n;var r=function(t){var e,n=t.options,r=t.sealedOptions;for(var o in n)n[o]!==r[o]&&(e||(e={}),e[o]=n[o]);return e}(t);r&&j(t.extendOptions,r),(e=t.options=xo(n,t.extendOptions)).name&&(e.components[e.name]=t)}}return e}function Qr(t,e,n,r,a){var s,l=this,u=a.options;C(r,"_uid")?(s=Object.create(r))._original=r:(s=r,r=r._original);var d=c(u._compiled),p=!d;this.data=t,this.props=e,this.children=n,this.parent=r,this.listeners=t.on||o,this.injections=Kr(u.inject,r),this.slots=function(){return l.$slots||Qe(r,t.scopedSlots,l.$slots=Ke(n,r)),l.$slots},Object.defineProperty(this,"scopedSlots",{enumerable:!0,get:function(){return Qe(r,t.scopedSlots,this.slots())}}),d&&(this.$options=u,this.$slots=this.slots(),this.$scopedSlots=Qe(r,t.scopedSlots,this.$slots)),u._scopeId?this._c=function(t,e,n,o){var a=je(s,t,e,n,o,p);return a&&!i(a)&&(a.fnScopeId=u._scopeId,a.fnContext=r),a}:this._c=function(t,e,n,r){return je(s,t,e,n,r,p)}}function to(t,e,n,r,o){var i=_t(t);return i.fnContext=n,i.fnOptions=r,"production"!==production.NODE_ENV&&((i.devtoolsMeta=i.devtoolsMeta||{}).renderContext=o),e.slot&&((i.data||(i.data={})).slot=e.slot),i}function eo(t,e){for(var n in e)t[T(n)]=e[n]}function no(t){return t.name||t.__name||t._componentTag}Xe(Qr.prototype);var ro={init:function(t,e){if(t.componentInstance&&!t.componentInstance._isDestroyed&&t.data.keepAlive){var n=t;ro.prepatch(n,n)}else{(t.componentInstance=function(t,e){var n={_isComponent:!0,_parentVnode:t,parent:e},r=t.data.inlineTemplate;s(r)&&(n.render=r.render,n.staticRenderFns=r.staticRenderFns);return new t.componentOptions.Ctor(n)}(t,wn)).$mount(e?t.elm:void 0,e)}},prepatch:function(t,e){var n=e.componentOptions;!function(t,e,n,r,i){"production"!==production.NODE_ENV&&(_n=!0);var a=r.data.scopedSlots,s=t.$scopedSlots,c=!!(a&&!a.$stable||s!==o&&!s.$stable||a&&t.$scopedSlots.$key!==a.$key||!a&&t.$scopedSlots.$key),l=!!(i||t.$options._renderChildren||c),u=t.$vnode;t.$options._parentVnode=r,t.$vnode=r,t._vnode&&(t._vnode.parent=r),t.$options._renderChildren=i;var d=r.data.attrs||o;t._attrsProxy&&rn(t._attrsProxy,d,u.data&&u.data.attrs||o,t,"$attrs")&&(l=!0),t.$attrs=d,n=n||o;var p=t.$options._parentListeners;if(t._listenersProxy&&rn(t._listenersProxy,n,p||o,t,"$listeners"),t.$listeners=t.$options._parentListeners=n,bn(t,n,p),e&&t.$options.props){Ft(!1);for(var f=t._props,h=t.$options._propKeys||[],v=0;v<h.length;v++){var m=h[v],g=t.$options.props;f[m]=So(m,g,e,t)}Ft(!0),t.$options.propsData=e}l&&(t.$slots=Ke(i,r.context),t.$forceUpdate()),"production"!==production.NODE_ENV&&(_n=!1)}(e.componentInstance=t.componentInstance,n.propsData,n.listeners,e,n.children)},insert:function(t){var e=t.context,n=t.componentInstance;n._isMounted||(n._isMounted=!0,Cn(n,"mounted")),t.data.keepAlive&&(e._isMounted?function(t){t._inactive=!1,Tn.push(t)}(n):Sn(n,!0))},destroy:function(t){var e=t.componentInstance;e._isDestroyed||(t.data.keepAlive?function t(e,n){if(!(n&&(e._directInactive=!0,kn(e))||e._inactive)){e._inactive=!0;for(var r=0;r<e.$children.length;r++)t(e.$children[r]);Cn(e,"deactivated")}}(e,!0):e.$destroy())}},oo=Object.keys(ro);function io(t,e,n,r,l){if(!a(t)){var u=n.$options._base;if(d(t)&&(t=u.extend(t)),"function"==typeof t){var p;if(a(t.cid)&&void 0===(t=function(t,e){if(c(t.error)&&s(t.errorComp))return t.errorComp;if(s(t.resolved))return t.resolved;var n=fn;if(n&&s(t.owners)&&-1===t.owners.indexOf(n)&&t.owners.push(n),c(t.loading)&&s(t.loadingComp))return t.loadingComp;if(n&&!s(t.owners)){var r=t.owners=[n],o=!0,i=null,l=null;n.$on("hook:destroyed",function(){return k(r,n)});var u=function(t){for(var e=0,n=r.length;e<n;e++)r[e].$forceUpdate();t&&(r.length=0,null!==i&&(clearTimeout(i),i=null),null!==l&&(clearTimeout(l),l=null))},p=B(function(n){t.resolved=hn(n,e),o?r.length=0:u(!0)}),f=B(function(e){"production"!==production.NODE_ENV&&lo("Failed to resolve async component: ".concat(String(t))+(e?"\nReason: ".concat(e):"")),s(t.errorComp)&&(t.error=!0,u(!0))}),h=t(p,f);return d(h)&&(g(h)?a(t.resolved)&&h.then(p,f):g(h.component)&&(h.component.then(p,f),s(h.error)&&(t.errorComp=hn(h.error,e)),s(h.loading)&&(t.loadingComp=hn(h.loading,e),0===h.delay?t.loading=!0:i=setTimeout(function(){i=null,a(t.resolved)&&a(t.error)&&(t.loading=!0,u(!1))},h.delay||200)),s(h.timeout)&&(l=setTimeout(function(){l=null,a(t.resolved)&&f("production"!==production.NODE_ENV?"timeout (".concat(h.timeout,"ms)"):null)},h.timeout)))),o=!1,t.loading?t.loadingComp:t.resolved}}(p=t,u)))return function(t,e,n,r,o){var i=bt();return i.asyncFactory=t,i.asyncMeta={data:e,context:n,children:r,tag:o},i}(p,e,n,r,l);e=e||{},Zr(t),s(e.model)&&function(t,e){var n=t.model&&t.model.prop||"value",r=t.model&&t.model.event||"input";(e.attrs||(e.attrs={}))[n]=e.model.value;var o=e.on||(e.on={}),a=o[r],c=e.model.callback;s(a)?(i(a)?-1===a.indexOf(c):a!==c)&&(o[r]=[c].concat(a)):o[r]=c}(t.options,e);var f=function(t,e,n){var r=e.options.props;if(!a(r)){var o={},i=t.attrs,c=t.props;if(s(i)||s(c))for(var l in r){var u=A(l);if("production"!==production.NODE_ENV){var d=l.toLowerCase();l!==d&&i&&C(i,d)&&uo('Prop "'.concat(d,'" is passed to component ')+"".concat(co(n||e),", but the declared prop name is")+' "'.concat(l,'". ')+"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 "'.concat(u,'" instead of "').concat(l,'".'))}$e(o,c,l,u,!0)||$e(o,i,l,u,!1)}return o}}(e,t,l);if(c(t.options.functional))return function(t,e,n,r,a){var c=t.options,l={},u=c.props;if(s(u))for(var d in u)l[d]=So(d,u,e||o);else s(n.attrs)&&eo(l,n.attrs),s(n.props)&&eo(l,n.props);var p=new Qr(n,l,a,r,t),f=c.render.call(null,p._c,p);if(f instanceof yt)return to(f,n,p.parent,c,p);if(i(f)){for(var h=De(f)||[],v=new Array(h.length),m=0;m<h.length;m++)v[m]=to(h[m],n,p.parent,c,p);return v}}(t,f,e,n,r);var h=e.on;if(e.on=e.nativeOn,c(t.options.abstract)){var v=e.slot;e={},v&&(e.slot=v)}!function(t){for(var e=t.hook||(t.hook={}),n=0;n<oo.length;n++){var r=oo[n],o=e[r],i=ro[r];o===i||o&&o._merged||(e[r]=o?ao(i,o):i)}}(e);var m=no(t.options)||l;return new yt("vue-component-".concat(t.cid).concat(m?"-".concat(m):""),e,void 0,void 0,void 0,n,{Ctor:t,propsData:f,listeners:h,tag:l,children:r},p)}"production"!==production.NODE_ENV&&lo("Invalid Component definition: ".concat(String(t)),n)}}function ao(t,e){var n=function(n,r){t(n,r),e(n,r)};return n._merged=!0,n}var so,co,lo=L,uo=L;if("production"!==production.NODE_ENV){var po="undefined"!=typeof console,fo=/(?:^|[-_])(\w)/g;lo=function(t,e){void 0===e&&(e=ht);var n=e?so(e):"";W.warnHandler?W.warnHandler.call(null,t,e,n):po&&!W.silent&&console.error("[Vue warn]: ".concat(t).concat(n))},uo=function(t,e){po&&!W.silent&&console.warn("[Vue tip]: ".concat(t)+(e?so(e):""))},co=function(t,e){if(t.$root===t)return"<Root>";var n=u(t)&&null!=t.cid?t.options:t._isVue?t.$options||t.constructor.options:t,r=no(n),o=n.__file;if(!r&&o){var i=o.match(/([^/\\]+)\.vue$/);r=i&&i[1]}return(r?"<".concat(function(t){return t.replace(fo,function(t){return t.toUpperCase()}).replace(/[-_]/g,"")}(r),">"):"<Anonymous>")+(o&&!1!==e?" at ".concat(o):"")};so=function(t){if(t._isVue&&t.$parent){for(var e=[],n=0;t;){if(e.length>0){var r=e[e.length-1];if(r.constructor===t.constructor){n++,t=t.$parent;continue}n>0&&(e[e.length-1]=[r,n],n=0)}e.push(t),t=t.$parent}return"\n\nfound in\n\n"+e.map(function(t,e){return"".concat(0===e?"---\x3e ":function(t,e){for(var n="";e;)e%2==1&&(n+=t),e>1&&(t+=t),e>>=1;return n}(" ",5+2*e)).concat(i(t)?"".concat(co(t[0]),"... (").concat(t[1]," recursive calls)"):co(t))}).join("\n")}return"\n\n(found in ".concat(co(t),")")}}var ho=W.optionMergeStrategies;function vo(t,e){if(!e)return t;for(var n,r,o,i=ft?Reflect.ownKeys(e):Object.keys(e),a=0;a<i.length;a++)"__ob__"!==(n=i[a])&&(r=t[n],o=e[n],C(t,n)?r!==o&&h(r)&&h(o)&&vo(r,o):qt(t,n,o));return t}function mo(t,e,n){return n?function(){var r=u(e)?e.call(n,n):e,o=u(t)?t.call(n,n):t;return r?vo(r,o):o}:e?t?function(){return vo(u(e)?e.call(this,this):e,u(t)?t.call(this,this):t)}:e:t}function go(t,e){var n=e?t?t.concat(e):i(e)?e:[e]:t;return n?function(t){for(var e=[],n=0;n<t.length;n++)-1===e.indexOf(t[n])&&e.push(t[n]);return e}(n):n}function yo(t,e,n,r){var o=Object.create(t||null);return e?("production"!==production.NODE_ENV&&_o(r,e,n),j(o,e)):o}"production"!==production.NODE_ENV&&(ho.el=ho.propsData=function(t,e,n,r){return n||lo('option "'.concat(r,'" can only be used during instance ')+"creation with the `new` keyword."),bo(t,e)}),ho.data=function(t,e,n){return n?mo(t,e,n):e&&"function"!=typeof e?("production"!==production.NODE_ENV&&lo('The "data" option should be a function that returns a per-instance value in component definitions.',n),t):mo(t,e)},q.forEach(function(t){ho[t]=go}),U.forEach(function(t){ho[t+"s"]=yo}),ho.watch=function(t,e,n,r){if(t===at&&(t=void 0),e===at&&(e=void 0),!e)return Object.create(t||null);if("production"!==production.NODE_ENV&&_o(r,e,n),!t)return e;var o={};for(var a in j(o,t),e){var s=o[a],c=e[a];s&&!i(s)&&(s=[s]),o[a]=s?s.concat(c):i(c)?c:[c]}return o},ho.props=ho.methods=ho.inject=ho.computed=function(t,e,n,r){if(e&&"production"!==production.NODE_ENV&&_o(r,e,n),!t)return e;var o=Object.create(null);return j(o,t),e&&j(o,e),o},ho.provide=mo;var bo=function(t,e){return void 0===e?t:e};function wo(t){new RegExp("^[a-zA-Z][\\-\\.0-9_".concat(Y.source,"]*$")).test(t)||lo('Invalid component name: "'+t+'". Component names should conform to valid custom element name in html5 specification.'),(_(t)||W.isReservedTag(t))&&lo("Do not use built-in or reserved HTML elements as component id: "+t)}function _o(t,e,n){h(e)||lo('Invalid value for option "'.concat(t,'": expected an Object, ')+"but got ".concat(f(e),"."),n)}function xo(t,e,n){if("production"!==production.NODE_ENV&&function(t){for(var e in t.components)wo(e)}(e),u(e)&&(e=e.options),function(t,e){var n=t.props;if(n){var r,o,a={};if(i(n))for(r=n.length;r--;)"string"==typeof(o=n[r])?a[T(o)]={type:null}:"production"!==production.NODE_ENV&&lo("props must be strings when using array syntax.");else if(h(n))for(var s in n)o=n[s],a[T(s)]=h(o)?o:{type:o};else"production"!==production.NODE_ENV&&lo('Invalid value for option "props": expected an Array or an Object, '+"but got ".concat(f(n),"."),e);t.props=a}}(e,n),function(t,e){var n=t.inject;if(n){var r=t.inject={};if(i(n))for(var o=0;o<n.length;o++)r[n[o]]={from:n[o]};else if(h(n))for(var a in n){var s=n[a];r[a]=h(s)?j({from:a},s):{from:s}}else"production"!==production.NODE_ENV&&lo('Invalid value for option "inject": expected an Array or an Object, '+"but got ".concat(f(n),"."),e)}}(e,n),function(t){var e=t.directives;if(e)for(var n in e){var r=e[n];u(r)&&(e[n]={bind:r,update:r})}}(e),!e._base&&(e.extends&&(t=xo(t,e.extends,n)),e.mixins))for(var r=0,o=e.mixins.length;r<o;r++)t=xo(t,e.mixins[r],n);var a,s={};for(a in t)c(a);for(a in e)C(t,a)||c(a);function c(r){var o=ho[r]||bo;s[r]=o(t[r],e[r],n,r)}return s}function ko(t,e,n,r){if("string"==typeof n){var o=t[e];if(C(o,n))return o[n];var i=T(n);if(C(o,i))return o[i];var a=$(i);if(C(o,a))return o[a];var s=o[n]||o[i]||o[a];return"production"!==production.NODE_ENV&&r&&!s&&lo("Failed to resolve "+e.slice(0,-1)+": "+n),s}}function So(t,e,n,r){var o=e[t],a=!C(n,t),s=n[t],c=Do(Boolean,o.type);if(c>-1)if(a&&!C(o,"default"))s=!1;else if(""===s||s===A(t)){var l=Do(String,o.type);(l<0||c<l)&&(s=!0)}if(void 0===s){s=function(t,e,n){if(!C(e,"default"))return;var r=e.default;"production"!==production.NODE_ENV&&d(r)&&lo('Invalid default value for prop "'+n+'": Props with type Object/Array must use a factory function to return the default value.',t);if(t&&t.$options.propsData&&void 0===t.$options.propsData[n]&&void 0!==t._props[n])return t._props[n];return u(r)&&"Function"!==To(e.type)?r.call(t):r}(r,o,t);var p=Vt;Ft(!0),zt(s),Ft(p)}return"production"!==production.NODE_ENV&&function(t,e,n,r,o){if(t.required&&o)return void lo('Missing required prop: "'+e+'"',r);if(null==n&&!t.required)return;var a=t.type,s=!a||!0===a,c=[];if(a){i(a)||(a=[a]);for(var l=0;l<a.length&&!s;l++){var u=Oo(n,a[l],r);c.push(u.expectedType||""),s=u.valid}}var d=c.some(function(t){return t});if(!s&&d)return void lo(function(t,e,n){var r='Invalid prop: type check failed for prop "'.concat(t,'".')+" Expected ".concat(n.map($).join(", ")),o=n[0],i=f(e);1===n.length&&Po(o)&&Po(typeof e)&&!function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return t.some(function(t){return"boolean"===t.toLowerCase()})}(o,i)&&(r+=" with value ".concat(Ao(e,o)));r+=", got ".concat(i," "),Po(i)&&(r+="with value ".concat(Ao(e,i),"."));return r}(e,n,c),r);var p=t.validator;p&&(p(n)||lo('Invalid prop: custom validator check failed for prop "'+e+'".',r))}(o,t,s,r,a),s}var Co=/^(String|Number|Boolean|Function|Symbol|BigInt)$/;function Oo(t,e,n){var r,o=To(e);if(Co.test(o)){var a=typeof t;(r=a===o.toLowerCase())||"object"!==a||(r=t instanceof e)}else if("Object"===o)r=h(t);else if("Array"===o)r=i(t);else try{r=t instanceof e}catch(t){lo('Invalid prop type: "'+String(e)+'" is not a constructor',n),r=!1}return{valid:r,expectedType:o}}var Eo=/^\s*function (\w+)/;function To(t){var e=t&&t.toString().match(Eo);return e?e[1]:""}function $o(t,e){return To(t)===To(e)}function Do(t,e){if(!i(e))return $o(e,t)?0:-1;for(var n=0,r=e.length;n<r;n++)if($o(e[n],t))return n;return-1}function Ao(t,e){return"String"===e?'"'.concat(t,'"'):"".concat("Number"===e?Number(t):t)}var No=["string","number","boolean"];function Po(t){return No.some(function(e){return t.toLowerCase()===e})}function jo(t){"production"===production.NODE_ENV||this instanceof jo||lo("Vue is a constructor and should be called with the `new` keyword"),this._init(t)}function Mo(t){t.cid=0;var e=1;t.extend=function(t){t=t||{};var n=this,r=n.cid,o=t._Ctor||(t._Ctor={});if(o[r])return o[r];var i=no(t)||no(n.options);"production"!==production.NODE_ENV&&i&&wo(i);var a=function(t){this._init(t)};return(a.prototype=Object.create(n.prototype)).constructor=a,a.cid=e++,a.options=xo(n.options,t),a.super=n,a.options.props&&function(t){var e=t.options.props;for(var n in e)zr(t.prototype,"_props",n)}(a),a.options.computed&&function(t){var e=t.options.computed;for(var n in e)Wr(t.prototype,n,e[n])}(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,U.forEach(function(t){a[t]=n[t]}),i&&(a.options.components[i]=a),a.superOptions=n.options,a.extendOptions=t,a.sealedOptions=j({},a.options),o[r]=a,a}}function Lo(t){return t&&(no(t.Ctor.options)||t.tag)}function Ro(t,e){return i(t)?t.indexOf(e)>-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!v(t)&&t.test(e)}function Io(t,e){var n=t.cache,r=t.keys,o=t._vnode;for(var i in n){var a=n[i];if(a){var s=a.name;s&&!e(s)&&Vo(n,i,r,o)}}}function Vo(t,e,n,r){var o=t[e];!o||r&&o.tag===r.tag||o.componentInstance.$destroy(),t[e]=null,k(n,e)}!function(t){t.prototype._init=function(t){var e,n,r=this;r._uid=Jr++,"production"!==production.NODE_ENV&&W.performance&&ve&&(e="vue-perf-start:".concat(r._uid),n="vue-perf-end:".concat(r._uid),ve(e)),r._isVue=!0,r.__v_skip=!0,r._scope=new Jn(!0),r._scope._vm=!0,t&&t._isComponent?function(t,e){var n=t.$options=Object.create(t.constructor.options),r=e._parentVnode;n.parent=e.parent,n._parentVnode=r;var o=r.componentOptions;n.propsData=o.propsData,n._parentListeners=o.listeners,n._renderChildren=o.children,n._componentTag=o.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}(r,t):r.$options=xo(Zr(r.constructor),t||{},r),"production"!==production.NODE_ENV?gt(r):r._renderProxy=r,r._self=r,function(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._provided=n?n._provided:Object.create(null),t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(r),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&bn(t,e)}(r),function(t){t._vnode=null,t._staticTrees=null;var e=t.$options,n=t.$vnode=e._parentVnode,r=n&&n.context;t.$slots=Ke(e._renderChildren,r),t.$scopedSlots=n?Qe(t.$parent,n.data.scopedSlots,t.$slots):o,t._c=function(e,n,r,o){return je(t,e,n,r,o,!1)},t.$createElement=function(e,n,r,o){return je(t,e,n,r,o,!0)};var i=n&&n.data;"production"!==production.NODE_ENV?(Ut(t,"$attrs",i&&i.attrs||o,function(){!_n&&lo("$attrs is readonly.",t)},!0),Ut(t,"$listeners",e._parentListeners||o,function(){!_n&&lo("$listeners is readonly.",t)},!0)):(Ut(t,"$attrs",i&&i.attrs||o,null,!0),Ut(t,"$listeners",e._parentListeners||o,null,!0))}(r),Cn(r,"beforeCreate",void 0,!1),function(t){var e=Kr(t.$options.inject,t);e&&(Ft(!1),Object.keys(e).forEach(function(n){"production"!==production.NODE_ENV?Ut(t,n,e[n],function(){lo("Avoid mutating an injected value directly since the changes will be overwritten whenever the provided component re-renders. "+'injection being mutated: "'.concat(n,'"'),t)}):Ut(t,n,e[n])}),Ft(!0))}(r),Ur(r),function(t){var e=t.$options.provide;if(e){var n=u(e)?e.call(t):e;if(!d(n))return;for(var r=nr(t),o=ft?Reflect.ownKeys(n):Object.keys(n),i=0;i<o.length;i++){var a=o[i];Object.defineProperty(r,a,Object.getOwnPropertyDescriptor(n,a))}}}(r),Cn(r,"created"),"production"!==production.NODE_ENV&&W.performance&&ve&&(r._name=co(r,!1),ve(n),me("vue ".concat(r._name," init"),e,n)),r.$options.el&&r.$mount(r.$options.el)}}(jo),function(t){var e={get:function(){return this._data}},n={get:function(){return this._props}};"production"!==production.NODE_ENV&&(e.set=function(){lo("Avoid replacing instance root $data. Use nested data properties instead.",this)},n.set=function(){lo("$props is readonly.",this)}),Object.defineProperty(t.prototype,"$data",e),Object.defineProperty(t.prototype,"$props",n),t.prototype.$set=qt,t.prototype.$delete=Wt,t.prototype.$watch=function(t,e,n){if(h(e))return Xr(this,t,e,n);(n=n||{}).user=!0;var r=new Br(this,t,e,n);if(n.immediate){var o='callback for immediate watcher "'.concat(r.expression,'"');Pt(),ar(e,this,[r.value],this,o),jt()}return function(){r.teardown()}}}(jo),function(t){var e=/^hook:/;t.prototype.$on=function(t,n){var r=this;if(i(t))for(var o=0,a=t.length;o<a;o++)r.$on(t[o],n);else(r._events[t]||(r._events[t]=[])).push(n),e.test(t)&&(r._hasHookEvent=!0);return r},t.prototype.$once=function(t,e){var n=this;function r(){n.$off(t,r),e.apply(n,arguments)}return r.fn=e,n.$on(t,r),n},t.prototype.$off=function(t,e){var n=this;if(!arguments.length)return n._events=Object.create(null),n;if(i(t)){for(var r=0,o=t.length;r<o;r++)n.$off(t[r],e);return n}var a,s=n._events[t];if(!s)return n;if(!e)return n._events[t]=null,n;for(var c=s.length;c--;)if((a=s[c])===e||a.fn===e){s.splice(c,1);break}return n},t.prototype.$emit=function(t){var e=this;if("production"!==production.NODE_ENV){var n=t.toLowerCase();n!==t&&e._events[n]&&uo('Event "'.concat(n,'" is emitted in component ')+"".concat(co(e),' but the handler is registered for "').concat(t,'". ')+"Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. "+'You should probably use "'.concat(A(t),'" instead of "').concat(t,'".'))}var r=e._events[t];if(r){r=r.length>1?P(r):r;for(var o=P(arguments,1),i='event handler for "'.concat(t,'"'),a=0,s=r.length;a<s;a++)ar(r[a],e,o,e,i)}return e}}(jo),function(t){t.prototype._update=function(t,e){var n=this,r=n.$el,o=n._vnode,i=xn(n);n._vnode=t,n.$el=o?n.__patch__(o,t):n.__patch__(n.$el,t,e,!1),i(),r&&(r.__vue__=null),n.$el&&(n.$el.__vue__=n);for(var a=n;a&&a.$vnode&&a.$parent&&a.$vnode===a.$parent._vnode;)a.$parent.$el=a.$el,a=a.$parent},t.prototype.$forceUpdate=function(){this._watcher&&this._watcher.update()},t.prototype.$destroy=function(){var t=this;if(!t._isBeingDestroyed){Cn(t,"beforeDestroy"),t._isBeingDestroyed=!0;var e=t.$parent;!e||e._isBeingDestroyed||t.$options.abstract||k(e.$children,t),t._scope.stop(),t._data.__ob__&&t._data.__ob__.vmCount--,t._isDestroyed=!0,t.__patch__(t._vnode,null),Cn(t,"destroyed"),t.$off(),t.$el&&(t.$el.__vue__=null),t.$vnode&&(t.$vnode.parent=null)}}}(jo),function(t){Xe(t.prototype),t.prototype.$nextTick=function(t){return yr(t,this)},t.prototype._render=function(){var t,e=this,n=e.$options,r=n.render,o=n._parentVnode;o&&e._isMounted&&(e.$scopedSlots=Qe(e.$parent,o.data.scopedSlots,e.$slots,e.$scopedSlots),e._slotsProxy&&an(e._slotsProxy,e.$scopedSlots)),e.$vnode=o;try{mt(e),fn=e,t=r.call(e._renderProxy,e.$createElement)}catch(n){if(ir(n,e,"render"),"production"!==production.NODE_ENV&&e.$options.renderError)try{t=e.$options.renderError.call(e._renderProxy,e.$createElement,n)}catch(n){ir(n,e,"renderError"),t=e._vnode}else t=e._vnode}finally{fn=null,mt()}return i(t)&&1===t.length&&(t=t[0]),t instanceof yt||("production"!==production.NODE_ENV&&i(t)&&lo("Multiple root nodes returned from render function. Render function should return a single root node.",e),t=bt()),t.parent=o,t}}(jo);var Fo=[String,RegExp,Array],Bo={KeepAlive:{name:"keep-alive",abstract:!0,props:{include:Fo,exclude:Fo,max:[String,Number]},methods:{cacheVNode:function(){var t=this.cache,e=this.keys,n=this.vnodeToCache,r=this.keyToCache;if(n){var o=n.tag,i=n.componentInstance,a=n.componentOptions;t[r]={name:Lo(a),tag:o,componentInstance:i},e.push(r),this.max&&e.length>parseInt(this.max)&&Vo(t,e[0],e,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)Vo(this.cache,t,this.keys)},mounted:function(){var t=this;this.cacheVNode(),this.$watch("include",function(e){Io(t,function(t){return Ro(e,t)})}),this.$watch("exclude",function(e){Io(t,function(t){return!Ro(e,t)})})},updated:function(){this.cacheVNode()},render:function(){var t=this.$slots.default,e=vn(t),n=e&&e.componentOptions;if(n){var r=Lo(n),o=this.include,i=this.exclude;if(o&&(!r||!Ro(o,r))||i&&r&&Ro(i,r))return e;var a=this.cache,s=this.keys,c=null==e.key?n.Ctor.cid+(n.tag?"::".concat(n.tag):""):e.key;a[c]?(e.componentInstance=a[c].componentInstance,k(s,c),s.push(c)):(this.vnodeToCache=e,this.keyToCache=c),e.data.keepAlive=!0}return e||t&&t[0]}}};!function(t){var e={get:function(){return W}};"production"!==production.NODE_ENV&&(e.set=function(){lo("Do not replace the Vue.config object, set individual fields instead.")}),Object.defineProperty(t,"config",e),t.util={warn:lo,extend:j,mergeOptions:xo,defineReactive:Ut},t.set=qt,t.delete=Wt,t.nextTick=yr,t.observable=function(t){return zt(t),t},t.options=Object.create(null),U.forEach(function(e){t.options[e+"s"]=Object.create(null)}),t.options._base=t,j(t.options.components,Bo),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=P(arguments,1);return n.unshift(this),u(t.install)?t.install.apply(t,n):u(t)&&t.apply(null,n),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=xo(this.options,t),this}}(t),Mo(t),function(t){U.forEach(function(e){t[e]=function(t,n){return n?("production"!==production.NODE_ENV&&"component"===e&&wo(t),"component"===e&&h(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&u(n)&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}})}(t)}(jo),Object.defineProperty(jo.prototype,"$isServer",{get:lt}),Object.defineProperty(jo.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(jo,"FunctionalRenderContext",{value:Qr}),jo.version=Lr;var Ho=w("style,class"),zo=w("input,textarea,option,select,progress"),Uo=function(t,e,n){return"value"===n&&zo(t)&&"button"!==e||"selected"===n&&"option"===t||"checked"===n&&"input"===t||"muted"===n&&"video"===t},qo=w("contenteditable,draggable,spellcheck"),Wo=w("events,caret,typing,plaintext-only"),Yo=function(t,e){return Zo(e)||"false"===e?"false":"contenteditable"===t&&Wo(e)?e:"true"},Go=w("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible"),Xo="http://www.w3.org/1999/xlink",Ko=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},Jo=function(t){return Ko(t)?t.slice(6,t.length):""},Zo=function(t){return null==t||!1===t};function Qo(t){for(var e=t.data,n=t,r=t;s(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(e=ti(r.data,e));for(;s(n=n.parent);)n&&n.data&&(e=ti(e,n.data));return function(t,e){if(s(t)||s(e))return ei(t,ni(e));return""}(e.staticClass,e.class)}function ti(t,e){return{staticClass:ei(t.staticClass,e.staticClass),class:s(t.class)?[t.class,e.class]:e.class}}function ei(t,e){return t?e?t+" "+e:t:e||""}function ni(t){return Array.isArray(t)?function(t){for(var e,n="",r=0,o=t.length;r<o;r++)s(e=ni(t[r]))&&""!==e&&(n&&(n+=" "),n+=e);return n}(t):d(t)?function(t){var e="";for(var n in t)t[n]&&(e&&(e+=" "),e+=n);return e}(t):"string"==typeof t?t:""}var ri={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"},oi=w("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot"),ii=w("svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignobject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view",!0),ai=function(t){return oi(t)||ii(t)};function si(t){return ii(t)?"svg":"math"===t?"math":void 0}var ci=Object.create(null);var li=w("text,number,password,search,email,tel,url");function ui(t){if("string"==typeof t){var e=document.querySelector(t);return e||("production"!==production.NODE_ENV&&lo("Cannot find element: "+t),document.createElement("div"))}return t}var di=Object.freeze({__proto__:null,createElement:function(t,e){var n=document.createElement(t);return"select"!==t?n:(e.data&&e.data.attrs&&void 0!==e.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n)},createElementNS:function(t,e){return document.createElementNS(ri[t],e)},createTextNode:function(t){return document.createTextNode(t)},createComment:function(t){return document.createComment(t)},insertBefore:function(t,e,n){t.insertBefore(e,n)},removeChild:function(t,e){t.removeChild(e)},appendChild:function(t,e){t.appendChild(e)},parentNode:function(t){return t.parentNode},nextSibling:function(t){return t.nextSibling},tagName:function(t){return t.tagName},setTextContent:function(t,e){t.textContent=e},setStyleScope:function(t,e){t.setAttribute(e,"")}}),pi={create:function(t,e){fi(e)},update:function(t,e){t.data.ref!==e.data.ref&&(fi(t,!0),fi(e))},destroy:function(t){fi(t,!0)}};function fi(t,e){var n=t.data.ref;if(s(n)){var r=t.context,o=t.componentInstance||t.elm,a=e?null:o,c=e?void 0:o;if(u(n))ar(n,r,[a],r,"template ref function");else{var l=t.data.refInFor,d="string"==typeof n||"number"==typeof n,p=oe(n),f=r.$refs;if(d||p)if(l){var h=d?f[n]:n.value;e?i(h)&&k(h,o):i(h)?h.includes(o)||h.push(o):d?(f[n]=[o],hi(r,n,f[n])):n.value=[o]}else if(d){if(e&&f[n]!==o)return;f[n]=c,hi(r,n,a)}else if(p){if(e&&n.value!==o)return;n.value=a}else"production"!==production.NODE_ENV&&lo("Invalid template ref type: ".concat(typeof n))}}}function hi(t,e,n){var r=t._setupState;r&&C(r,e)&&(oe(r[e])?r[e].value=n:r[e]=n)}var vi=new yt("",{},[]),mi=["create","activate","update","remove","destroy"];function gi(t,e){return t.key===e.key&&t.asyncFactory===e.asyncFactory&&(t.tag===e.tag&&t.isComment===e.isComment&&s(t.data)===s(e.data)&&function(t,e){if("input"!==t.tag)return!0;var n,r=s(n=t.data)&&s(n=n.attrs)&&n.type,o=s(n=e.data)&&s(n=n.attrs)&&n.type;return r===o||li(r)&&li(o)}(t,e)||c(t.isAsyncPlaceholder)&&a(e.asyncFactory.error))}function yi(t,e,n){var r,o,i={};for(r=e;r<=n;++r)s(o=t[r].key)&&(i[o]=r);return i}var bi={create:wi,update:wi,destroy:function(t){wi(t,vi)}};function wi(t,e){(t.data.directives||e.data.directives)&&function(t,e){var n,r,o,i=t===vi,a=e===vi,s=xi(t.data.directives,t.context),c=xi(e.data.directives,e.context),l=[],u=[];for(n in c)r=s[n],o=c[n],r?(o.oldValue=r.value,o.oldArg=r.arg,Si(o,"update",e,t),o.def&&o.def.componentUpdated&&u.push(o)):(Si(o,"bind",e,t),o.def&&o.def.inserted&&l.push(o));if(l.length){var d=function(){for(var n=0;n<l.length;n++)Si(l[n],"inserted",e,t)};i?Te(e,"insert",d):d()}u.length&&Te(e,"postpatch",function(){for(var n=0;n<u.length;n++)Si(u[n],"componentUpdated",e,t)});if(!i)for(n in s)c[n]||Si(s[n],"unbind",t,t,a)}(t,e)}var _i=Object.create(null);function xi(t,e){var n,r,o=Object.create(null);if(!t)return o;for(n=0;n<t.length;n++){if((r=t[n]).modifiers||(r.modifiers=_i),o[ki(r)]=r,e._setupState&&e._setupState.__sfc){var i=r.def||ko(e,"_setupState","v-"+r.name);r.def="function"==typeof i?{bind:i,update:i}:i}r.def=r.def||ko(e.$options,"directives",r.name,!0)}return o}function ki(t){return t.rawName||"".concat(t.name,".").concat(Object.keys(t.modifiers||{}).join("."))}function Si(t,e,n,r,o){var i=t.def&&t.def[e];if(i)try{i(n.elm,t,n,r,o)}catch(r){ir(r,n.context,"directive ".concat(t.name," ").concat(e," hook"))}}var Ci=[pi,bi];function Oi(t,e){var n=e.componentOptions;if(!(s(n)&&!1===n.Ctor.options.inheritAttrs||a(t.data.attrs)&&a(e.data.attrs))){var r,o,i=e.elm,l=t.data.attrs||{},u=e.data.attrs||{};for(r in(s(u.__ob__)||c(u._v_attr_proxy))&&(u=e.data.attrs=j({},u)),u)o=u[r],l[r]!==o&&Ei(i,r,o,e.data.pre);for(r in(tt||nt)&&u.value!==l.value&&Ei(i,"value",u.value),l)a(u[r])&&(Ko(r)?i.removeAttributeNS(Xo,Jo(r)):qo(r)||i.removeAttribute(r))}}function Ei(t,e,n,r){r||t.tagName.indexOf("-")>-1?Ti(t,e,n):Go(e)?Zo(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):qo(e)?t.setAttribute(e,Yo(e,n)):Ko(e)?Zo(n)?t.removeAttributeNS(Xo,Jo(e)):t.setAttributeNS(Xo,e,n):Ti(t,e,n)}function Ti(t,e,n){if(Zo(n))t.removeAttribute(e);else{if(tt&&!et&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var $i={create:Oi,update:Oi};function Di(t,e){var n=e.elm,r=e.data,o=t.data;if(!(a(r.staticClass)&&a(r.class)&&(a(o)||a(o.staticClass)&&a(o.class)))){var i=Qo(e),c=n._transitionClasses;s(c)&&(i=ei(i,ni(c))),i!==n._prevClass&&(n.setAttribute("class",i),n._prevClass=i)}}var Ai,Ni,Pi,ji,Mi,Li,Ri,Ii={create:Di,update:Di},Vi=/[\w).+\-_$\]]/;function Fi(t){var e,n,r,o,i,a=!1,s=!1,c=!1,l=!1,u=0,d=0,p=0,f=0;for(r=0;r<t.length;r++)if(n=e,e=t.charCodeAt(r),a)39===e&&92!==n&&(a=!1);else if(s)34===e&&92!==n&&(s=!1);else if(c)96===e&&92!==n&&(c=!1);else if(l)47===e&&92!==n&&(l=!1);else if(124!==e||124===t.charCodeAt(r+1)||124===t.charCodeAt(r-1)||u||d||p){switch(e){case 34:s=!0;break;case 39:a=!0;break;case 96:c=!0;break;case 40:p++;break;case 41:p--;break;case 91:d++;break;case 93:d--;break;case 123:u++;break;case 125:u--}if(47===e){for(var h=r-1,v=void 0;h>=0&&" "===(v=t.charAt(h));h--);v&&Vi.test(v)||(l=!0)}}else void 0===o?(f=r+1,o=t.slice(0,r).trim()):m();function m(){(i||(i=[])).push(t.slice(f,r).trim()),f=r+1}if(void 0===o?o=t.slice(0,r).trim():0!==f&&m(),i)for(r=0;r<i.length;r++)o=Bi(o,i[r]);return o}function Bi(t,e){var n=e.indexOf("(");if(n<0)return'_f("'.concat(e,'")(').concat(t,")");var r=e.slice(0,n),o=e.slice(n+1);return'_f("'.concat(r,'")(').concat(t).concat(")"!==o?","+o:o)}function Hi(t,e){console.error("[Vue compiler]: ".concat(t))}function zi(t,e){return t?t.map(function(t){return t[e]}).filter(function(t){return t}):[]}function Ui(t,e,n,r,o){(t.props||(t.props=[])).push(ta({name:e,value:n,dynamic:o},r)),t.plain=!1}function qi(t,e,n,r,o){(o?t.dynamicAttrs||(t.dynamicAttrs=[]):t.attrs||(t.attrs=[])).push(ta({name:e,value:n,dynamic:o},r)),t.plain=!1}function Wi(t,e,n,r){t.attrsMap[e]=n,t.attrsList.push(ta({name:e,value:n},r))}function Yi(t,e,n,r,o,i,a,s){(t.directives||(t.directives=[])).push(ta({name:e,rawName:n,value:r,arg:o,isDynamicArg:i,modifiers:a},s)),t.plain=!1}function Gi(t,e,n){return n?"_p(".concat(e,',"').concat(t,'")'):t+e}function Xi(t,e,n,r,i,a,s,c){var l;r=r||o,"production"!==production.NODE_ENV&&a&&r.prevent&&r.passive&&a("passive and prevent can't be used together. Passive handler can't prevent default event.",s),r.right?c?e="(".concat(e,")==='click'?'contextmenu':(").concat(e,")"):"click"===e&&(e="contextmenu",delete r.right):r.middle&&(c?e="(".concat(e,")==='click'?'mouseup':(").concat(e,")"):"click"===e&&(e="mouseup")),r.capture&&(delete r.capture,e=Gi("!",e,c)),r.once&&(delete r.once,e=Gi("~",e,c)),r.passive&&(delete r.passive,e=Gi("&",e,c)),r.native?(delete r.native,l=t.nativeEvents||(t.nativeEvents={})):l=t.events||(t.events={});var u=ta({value:n.trim(),dynamic:c},s);r!==o&&(u.modifiers=r);var d=l[e];Array.isArray(d)?i?d.unshift(u):d.push(u):l[e]=d?i?[u,d]:[d,u]:u,t.plain=!1}function Ki(t,e){return t.rawAttrsMap[":"+e]||t.rawAttrsMap["v-bind:"+e]||t.rawAttrsMap[e]}function Ji(t,e,n){var r=Zi(t,":"+e)||Zi(t,"v-bind:"+e);if(null!=r)return Fi(r);if(!1!==n){var o=Zi(t,e);if(null!=o)return JSON.stringify(o)}}function Zi(t,e,n){var r;if(null!=(r=t.attrsMap[e]))for(var o=t.attrsList,i=0,a=o.length;i<a;i++)if(o[i].name===e){o.splice(i,1);break}return n&&delete t.attrsMap[e],r}function Qi(t,e){for(var n=t.attrsList,r=0,o=n.length;r<o;r++){var i=n[r];if(e.test(i.name))return n.splice(r,1),i}}function ta(t,e){return e&&(null!=e.start&&(t.start=e.start),null!=e.end&&(t.end=e.end)),t}function ea(t,e,n){var r=n||{},o=r.number,i="$$v";r.trim&&(i="(typeof ".concat("$$v"," === 'string'")+"? ".concat("$$v",".trim()")+": ".concat("$$v",")")),o&&(i="_n(".concat(i,")"));var a=na(e,i);t.model={value:"(".concat(e,")"),expression:JSON.stringify(e),callback:"function (".concat("$$v",") {").concat(a,"}")}}function na(t,e){var n=function(t){if(t=t.trim(),Ai=t.length,t.indexOf("[")<0||t.lastIndexOf("]")<Ai-1)return(ji=t.lastIndexOf("."))>-1?{exp:t.slice(0,ji),key:'"'+t.slice(ji+1)+'"'}:{exp:t,key:null};Ni=t,ji=Mi=Li=0;for(;!oa();)ia(Pi=ra())?sa(Pi):91===Pi&&aa(Pi);return{exp:t.slice(0,Mi),key:t.slice(Mi+1,Li)}}(t);return null===n.key?"".concat(t,"=").concat(e):"$set(".concat(n.exp,", ").concat(n.key,", ").concat(e,")")}function ra(){return Ni.charCodeAt(++ji)}function oa(){return ji>=Ai}function ia(t){return 34===t||39===t}function aa(t){var e=1;for(Mi=ji;!oa();)if(ia(t=ra()))sa(t);else if(91===t&&e++,93===t&&e--,0===e){Li=ji;break}}function sa(t){for(var e=t;!oa()&&(t=ra())!==e;);}var ca,la="__r",ua="__c";function da(t,e,n){var r=ca;return function o(){null!==e.apply(null,arguments)&&ha(t,o,n,r)}}var pa=ur&&!(it&&Number(it[1])<=53);function fa(t,e,n,r){if(pa){var o=jn,i=e;e=i._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=o||t.timeStamp<=0||t.target.ownerDocument!==document)return i.apply(this,arguments)}}ca.addEventListener(t,e,st?{capture:n,passive:r}:n)}function ha(t,e,n,r){(r||ca).removeEventListener(t,e._wrapper||e,n)}function va(t,e){if(!a(t.data.on)||!a(e.data.on)){var n=e.data.on||{},r=t.data.on||{};ca=e.elm||t.elm,function(t){if(s(t[la])){var e=tt?"change":"input";t[e]=[].concat(t[la],t[e]||[]),delete t[la]}s(t[ua])&&(t.change=[].concat(t[ua],t.change||[]),delete t[ua])}(n),Ee(n,r,fa,ha,da,e.context),ca=void 0}}var ma,ga={create:va,update:va,destroy:function(t){return va(t,vi)}};function ya(t,e){if(!a(t.data.domProps)||!a(e.data.domProps)){var n,r,o=e.elm,i=t.data.domProps||{},l=e.data.domProps||{};for(n in(s(l.__ob__)||c(l._v_attr_proxy))&&(l=e.data.domProps=j({},l)),i)n in l||(o[n]="");for(n in l){if(r=l[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),r===i[n])continue;1===o.childNodes.length&&o.removeChild(o.childNodes[0])}if("value"===n&&"PROGRESS"!==o.tagName){o._value=r;var u=a(r)?"":String(r);ba(o,u)&&(o.value=u)}else if("innerHTML"===n&&ii(o.tagName)&&a(o.innerHTML)){(ma=ma||document.createElement("div")).innerHTML="<svg>".concat(r,"</svg>");for(var d=ma.firstChild;o.firstChild;)o.removeChild(o.firstChild);for(;d.firstChild;)o.appendChild(d.firstChild)}else if(r!==i[n])try{o[n]=r}catch(t){}}}}function ba(t,e){return!t.composing&&("OPTION"===t.tagName||function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(t,e)||function(t,e){var n=t.value,r=t._vModifiers;if(s(r)){if(r.number)return b(n)!==b(e);if(r.trim)return n.trim()!==e.trim()}return n!==e}(t,e))}var wa={create:ya,update:ya},_a=O(function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach(function(t){if(t){var r=t.split(n);r.length>1&&(e[r[0].trim()]=r[1].trim())}}),e});function xa(t){var e=ka(t.style);return t.staticStyle?j(t.staticStyle,e):e}function ka(t){return Array.isArray(t)?M(t):"string"==typeof t?_a(t):t}var Sa,Ca=/^--/,Oa=/\s*!important$/,Ea=function(t,e,n){if(Ca.test(e))t.style.setProperty(e,n);else if(Oa.test(n))t.style.setProperty(A(e),n.replace(Oa,""),"important");else{var r=$a(e);if(Array.isArray(n))for(var o=0,i=n.length;o<i;o++)t.style[r]=n[o];else t.style[r]=n}},Ta=["Webkit","Moz","ms"],$a=O(function(t){if(Sa=Sa||document.createElement("div").style,"filter"!==(t=T(t))&&t in Sa)return t;for(var e=t.charAt(0).toUpperCase()+t.slice(1),n=0;n<Ta.length;n++){var r=Ta[n]+e;if(r in Sa)return r}});function Da(t,e){var n=e.data,r=t.data;if(!(a(n.staticStyle)&&a(n.style)&&a(r.staticStyle)&&a(r.style))){var o,i,c=e.elm,l=r.staticStyle,u=r.normalizedStyle||r.style||{},d=l||u,p=ka(e.data.style)||{};e.data.normalizedStyle=s(p.__ob__)?j({},p):p;var f=function(t,e){var n,r={};if(e)for(var o=t;o.componentInstance;)(o=o.componentInstance._vnode)&&o.data&&(n=xa(o.data))&&j(r,n);(n=xa(t.data))&&j(r,n);for(var i=t;i=i.parent;)i.data&&(n=xa(i.data))&&j(r,n);return r}(e,!0);for(i in d)a(f[i])&&Ea(c,i,"");for(i in f)(o=f[i])!==d[i]&&Ea(c,i,null==o?"":o)}}var Aa={create:Da,update:Da},Na=/\s+/;function Pa(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(Na).forEach(function(e){return t.classList.add(e)}):t.classList.add(e);else{var n=" ".concat(t.getAttribute("class")||""," ");n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function ja(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(Na).forEach(function(e){return t.classList.remove(e)}):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" ".concat(t.getAttribute("class")||""," "),r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function Ma(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&j(e,La(t.name||"v")),j(e,t),e}return"string"==typeof t?La(t):void 0}}var La=O(function(t){return{enterClass:"".concat(t,"-enter"),enterToClass:"".concat(t,"-enter-to"),enterActiveClass:"".concat(t,"-enter-active"),leaveClass:"".concat(t,"-leave"),leaveToClass:"".concat(t,"-leave-to"),leaveActiveClass:"".concat(t,"-leave-act