@designcrowd/fe-shared-lib 1.2.27 → 1.2.28-ast-upsell-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -717,9 +717,6 @@ video {
717
717
  .tw-ml-4 {
718
718
  margin-left: 1rem;
719
719
  }
720
- .tw-ml-6 {
721
- margin-left: 1.5rem;
722
- }
723
720
  .tw-ml-auto {
724
721
  margin-left: auto;
725
722
  }
@@ -1606,6 +1603,9 @@ video {
1606
1603
  .tw-p-4 {
1607
1604
  padding: 1rem;
1608
1605
  }
1606
+ .tw-p-5 {
1607
+ padding: 1.25rem;
1608
+ }
1609
1609
  .tw-p-6 {
1610
1610
  padding: 1.5rem;
1611
1611
  }
@@ -1741,6 +1741,9 @@ video {
1741
1741
  .tw-pt-2 {
1742
1742
  padding-top: 0.5rem;
1743
1743
  }
1744
+ .tw-pt-4 {
1745
+ padding-top: 1rem;
1746
+ }
1744
1747
  .tw-pt-6 {
1745
1748
  padding-top: 1.5rem;
1746
1749
  }
@@ -717,9 +717,6 @@ video {
717
717
  .tw-ml-4 {
718
718
  margin-left: 1rem;
719
719
  }
720
- .tw-ml-6 {
721
- margin-left: 1.5rem;
722
- }
723
720
  .tw-ml-auto {
724
721
  margin-left: auto;
725
722
  }
@@ -1454,6 +1451,9 @@ video {
1454
1451
  .tw-p-4 {
1455
1452
  padding: 1rem;
1456
1453
  }
1454
+ .tw-p-5 {
1455
+ padding: 1.25rem;
1456
+ }
1457
1457
  .tw-p-6 {
1458
1458
  padding: 1.5rem;
1459
1459
  }
@@ -1589,6 +1589,9 @@ video {
1589
1589
  .tw-pt-2 {
1590
1590
  padding-top: 0.5rem;
1591
1591
  }
1592
+ .tw-pt-4 {
1593
+ padding-top: 1rem;
1594
+ }
1592
1595
  .tw-pt-6 {
1593
1596
  padding-top: 1.5rem;
1594
1597
  }
@@ -717,9 +717,6 @@ video {
717
717
  .tw-ml-4 {
718
718
  margin-left: 1rem;
719
719
  }
720
- .tw-ml-6 {
721
- margin-left: 1.5rem;
722
- }
723
720
  .tw-ml-auto {
724
721
  margin-left: auto;
725
722
  }
@@ -1606,6 +1603,9 @@ video {
1606
1603
  .tw-p-4 {
1607
1604
  padding: 1rem;
1608
1605
  }
1606
+ .tw-p-5 {
1607
+ padding: 1.25rem;
1608
+ }
1609
1609
  .tw-p-6 {
1610
1610
  padding: 1.5rem;
1611
1611
  }
@@ -1741,6 +1741,9 @@ video {
1741
1741
  .tw-pt-2 {
1742
1742
  padding-top: 0.5rem;
1743
1743
  }
1744
+ .tw-pt-4 {
1745
+ padding-top: 1rem;
1746
+ }
1744
1747
  .tw-pt-6 {
1745
1748
  padding-top: 1.5rem;
1746
1749
  }
@@ -717,9 +717,6 @@ video {
717
717
  .tw-ml-4 {
718
718
  margin-left: 1rem;
719
719
  }
720
- .tw-ml-6 {
721
- margin-left: 1.5rem;
722
- }
723
720
  .tw-ml-auto {
724
721
  margin-left: auto;
725
722
  }
@@ -1606,6 +1603,9 @@ video {
1606
1603
  .tw-p-4 {
1607
1604
  padding: 1rem;
1608
1605
  }
1606
+ .tw-p-5 {
1607
+ padding: 1.25rem;
1608
+ }
1609
1609
  .tw-p-6 {
1610
1610
  padding: 1.5rem;
1611
1611
  }
@@ -1741,6 +1741,9 @@ video {
1741
1741
  .tw-pt-2 {
1742
1742
  padding-top: 0.5rem;
1743
1743
  }
1744
+ .tw-pt-4 {
1745
+ padding-top: 1rem;
1746
+ }
1744
1747
  .tw-pt-6 {
1745
1748
  padding-top: 1.5rem;
1746
1749
  }
@@ -717,9 +717,6 @@ video {
717
717
  .tw-ml-4 {
718
718
  margin-left: 1rem;
719
719
  }
720
- .tw-ml-6 {
721
- margin-left: 1.5rem;
722
- }
723
720
  .tw-ml-auto {
724
721
  margin-left: auto;
725
722
  }
@@ -1606,6 +1603,9 @@ video {
1606
1603
  .tw-p-4 {
1607
1604
  padding: 1rem;
1608
1605
  }
1606
+ .tw-p-5 {
1607
+ padding: 1.25rem;
1608
+ }
1609
1609
  .tw-p-6 {
1610
1610
  padding: 1.5rem;
1611
1611
  }
@@ -1741,6 +1741,9 @@ video {
1741
1741
  .tw-pt-2 {
1742
1742
  padding-top: 0.5rem;
1743
1743
  }
1744
+ .tw-pt-4 {
1745
+ padding-top: 1rem;
1746
+ }
1744
1747
  .tw-pt-6 {
1745
1748
  padding-top: 1.5rem;
1746
1749
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@designcrowd/fe-shared-lib",
3
- "version": "1.2.27",
3
+ "version": "1.2.28-ast-upsell-1",
4
4
  "scripts": {
5
5
  "start": "run-p storybook watch:translation",
6
6
  "build": "npm run build:css --production",
@@ -19,7 +19,7 @@
19
19
  "docker:publish": "docker build . --build-arg NPM_TOKEN=$NPM_TOKEN"
20
20
  },
21
21
  "dependencies": {
22
- "@nuxtjs/i18n": "10.0.6",
22
+ "@nuxtjs/i18n": "9.5.4",
23
23
  "@storybook/react": "^9.0.4",
24
24
  "autoprefixer": "10.4.17",
25
25
  "axios": "1.6.7",
@@ -717,9 +717,6 @@ video {
717
717
  .theme-brandCrowd .tw-ml-4 {
718
718
  margin-left: 1rem;
719
719
  }
720
- .theme-brandCrowd .tw-ml-6 {
721
- margin-left: 1.5rem;
722
- }
723
720
  .theme-brandCrowd .tw-ml-auto {
724
721
  margin-left: auto;
725
722
  }
@@ -1606,6 +1603,9 @@ video {
1606
1603
  .theme-brandCrowd .tw-p-4 {
1607
1604
  padding: 1rem;
1608
1605
  }
1606
+ .theme-brandCrowd .tw-p-5 {
1607
+ padding: 1.25rem;
1608
+ }
1609
1609
  .theme-brandCrowd .tw-p-6 {
1610
1610
  padding: 1.5rem;
1611
1611
  }
@@ -1741,6 +1741,9 @@ video {
1741
1741
  .theme-brandCrowd .tw-pt-2 {
1742
1742
  padding-top: 0.5rem;
1743
1743
  }
1744
+ .theme-brandCrowd .tw-pt-4 {
1745
+ padding-top: 1rem;
1746
+ }
1744
1747
  .theme-brandCrowd .tw-pt-6 {
1745
1748
  padding-top: 1.5rem;
1746
1749
  }
@@ -717,9 +717,6 @@ video {
717
717
  .theme-brandPage .tw-ml-4 {
718
718
  margin-left: 1rem;
719
719
  }
720
- .theme-brandPage .tw-ml-6 {
721
- margin-left: 1.5rem;
722
- }
723
720
  .theme-brandPage .tw-ml-auto {
724
721
  margin-left: auto;
725
722
  }
@@ -1454,6 +1451,9 @@ video {
1454
1451
  .theme-brandPage .tw-p-4 {
1455
1452
  padding: 1rem;
1456
1453
  }
1454
+ .theme-brandPage .tw-p-5 {
1455
+ padding: 1.25rem;
1456
+ }
1457
1457
  .theme-brandPage .tw-p-6 {
1458
1458
  padding: 1.5rem;
1459
1459
  }
@@ -1589,6 +1589,9 @@ video {
1589
1589
  .theme-brandPage .tw-pt-2 {
1590
1590
  padding-top: 0.5rem;
1591
1591
  }
1592
+ .theme-brandPage .tw-pt-4 {
1593
+ padding-top: 1rem;
1594
+ }
1592
1595
  .theme-brandPage .tw-pt-6 {
1593
1596
  padding-top: 1.5rem;
1594
1597
  }
@@ -717,9 +717,6 @@ video {
717
717
  .theme-crazyDomains .tw-ml-4 {
718
718
  margin-left: 1rem;
719
719
  }
720
- .theme-crazyDomains .tw-ml-6 {
721
- margin-left: 1.5rem;
722
- }
723
720
  .theme-crazyDomains .tw-ml-auto {
724
721
  margin-left: auto;
725
722
  }
@@ -1606,6 +1603,9 @@ video {
1606
1603
  .theme-crazyDomains .tw-p-4 {
1607
1604
  padding: 1rem;
1608
1605
  }
1606
+ .theme-crazyDomains .tw-p-5 {
1607
+ padding: 1.25rem;
1608
+ }
1609
1609
  .theme-crazyDomains .tw-p-6 {
1610
1610
  padding: 1.5rem;
1611
1611
  }
@@ -1741,6 +1741,9 @@ video {
1741
1741
  .theme-crazyDomains .tw-pt-2 {
1742
1742
  padding-top: 0.5rem;
1743
1743
  }
1744
+ .theme-crazyDomains .tw-pt-4 {
1745
+ padding-top: 1rem;
1746
+ }
1744
1747
  .theme-crazyDomains .tw-pt-6 {
1745
1748
  padding-top: 1.5rem;
1746
1749
  }
@@ -717,9 +717,6 @@ video {
717
717
  .theme-designCom .tw-ml-4 {
718
718
  margin-left: 1rem;
719
719
  }
720
- .theme-designCom .tw-ml-6 {
721
- margin-left: 1.5rem;
722
- }
723
720
  .theme-designCom .tw-ml-auto {
724
721
  margin-left: auto;
725
722
  }
@@ -1606,6 +1603,9 @@ video {
1606
1603
  .theme-designCom .tw-p-4 {
1607
1604
  padding: 1rem;
1608
1605
  }
1606
+ .theme-designCom .tw-p-5 {
1607
+ padding: 1.25rem;
1608
+ }
1609
1609
  .theme-designCom .tw-p-6 {
1610
1610
  padding: 1.5rem;
1611
1611
  }
@@ -1741,6 +1741,9 @@ video {
1741
1741
  .theme-designCom .tw-pt-2 {
1742
1742
  padding-top: 0.5rem;
1743
1743
  }
1744
+ .theme-designCom .tw-pt-4 {
1745
+ padding-top: 1rem;
1746
+ }
1744
1747
  .theme-designCom .tw-pt-6 {
1745
1748
  padding-top: 1.5rem;
1746
1749
  }
@@ -717,9 +717,6 @@ video {
717
717
  .theme-designCrowd .tw-ml-4 {
718
718
  margin-left: 1rem;
719
719
  }
720
- .theme-designCrowd .tw-ml-6 {
721
- margin-left: 1.5rem;
722
- }
723
720
  .theme-designCrowd .tw-ml-auto {
724
721
  margin-left: auto;
725
722
  }
@@ -1606,6 +1603,9 @@ video {
1606
1603
  .theme-designCrowd .tw-p-4 {
1607
1604
  padding: 1rem;
1608
1605
  }
1606
+ .theme-designCrowd .tw-p-5 {
1607
+ padding: 1.25rem;
1608
+ }
1609
1609
  .theme-designCrowd .tw-p-6 {
1610
1610
  padding: 1.5rem;
1611
1611
  }
@@ -1741,6 +1741,9 @@ video {
1741
1741
  .theme-designCrowd .tw-pt-2 {
1742
1742
  padding-top: 0.5rem;
1743
1743
  }
1744
+ .theme-designCrowd .tw-pt-4 {
1745
+ padding-top: 1rem;
1746
+ }
1744
1747
  .theme-designCrowd .tw-pt-6 {
1745
1748
  padding-top: 1.5rem;
1746
1749
  }
@@ -15,7 +15,7 @@
15
15
  :class="[
16
16
  {
17
17
  'tw-w-full': !isImageMode,
18
- 'tw-p-4': !simple,
18
+ 'tw-p-4': !removeHorizontalPadding && !simple,
19
19
  'tw-max-w-md': size === 'md',
20
20
  'tw-max-w-xl': size === 'xl',
21
21
  'tw-max-w-2xl': !size && !isImageMode,
@@ -91,6 +91,11 @@ export default {
91
91
  required: false,
92
92
  default: false,
93
93
  },
94
+ removeHorizontalPadding: {
95
+ type: Boolean,
96
+ required: false,
97
+ default: false,
98
+ },
94
99
  visible: {
95
100
  type: Boolean,
96
101
  required: false,
@@ -1 +1,24 @@
1
- {}
1
+ {
2
+ "publishBrandPageModal": {
3
+ "firstTimePublishHeaderLabel": "Set the URL for {{brandPageDisplayName}}",
4
+ "sitePublishedLabel": "Site published!",
5
+ "publishSuccessLabel": "Your {{brandPageDisplayName}} is live! Start using your link:",
6
+ "freePublishCardTitleLabel": "Free Address",
7
+ "freePublishCardDescriptionLabel": "Choose a free address to publish now. You can always edit the URL later",
8
+ "slugInputPlaceholderYourNameLabel": "your-name",
9
+ "slugInputPlaceholderYourBusinessNameLabel": "your-business-name",
10
+ "freeDomainLabel": "Free domain",
11
+ "purchasedDomainLabel": "Purchased domain",
12
+ "setUrlLabel": "Set URL",
13
+ "publishLabel": "Publish",
14
+ "viewMoreDomainLabel": "VIEW MORE DOMAINS",
15
+ "viewMyWebsiteLabel": "View {{brandPageDisplayName}}",
16
+ "copyLabel": "Copy",
17
+ "copySuccessLabel": "Copied!",
18
+ "publishedSuccessDescriptionLabel": "Buy matching domain name for your brand",
19
+ "hasAlreadyPurchasedDomainCloseButtonLabel": "No thanks, maybe later",
20
+ "selectDomainDropdownPlaceholder": "Select domain name",
21
+ "websiteFriendlyName": "Website",
22
+ "digitalBusinessCardFriendlyName": "Digital Business Card"
23
+ }
24
+ }
@@ -375,7 +375,18 @@ export default {
375
375
  },
376
376
  getSignInAction() {
377
377
  const params = new URLSearchParams();
378
+
378
379
  params.set('locale', this.currentLocale);
380
+
381
+ if (this.$route?.query) {
382
+ Object.entries(this.$route.query).forEach(([key, value]) => {
383
+ if (key !== 'locale' && value != null) {
384
+ const paramValue = Array.isArray(value) ? value[0] : value;
385
+ params.set(key, paramValue);
386
+ }
387
+ });
388
+ }
389
+
379
390
  return `/identity/account/signin?${params.toString()}`;
380
391
  },
381
392
  },
@@ -75,8 +75,8 @@ const props = defineProps({
75
75
  default: '',
76
76
  },
77
77
  imgUrl: {
78
- type: Boolean,
79
- default: true,
78
+ type: String,
79
+ default: '',
80
80
  },
81
81
  isDesignCom: {
82
82
  type: Boolean,
@@ -1,26 +1,32 @@
1
1
  <template>
2
2
  <div class="publish-bp--container">
3
3
  <Modal
4
- classes="publish-bp--modal tw-px-2 md:tw-px-8"
4
+ classes="publish-bp--modal tw-pt-4"
5
5
  close-on-esc
6
6
  :visible="visible"
7
7
  :hide-scrollbar="false"
8
8
  :show-modal-background-image="showModalBackgroundImage"
9
9
  :content-classes="isBusy ? ['tw-overflow-y-hidden'] : []"
10
+ :remove-horizontal-padding="showUpsellRotationContainer && !isCustomDomainActive && !hasPurchasedDomains"
11
+ :class="{
12
+ 'tw-px-2 md:tw-px-8': !showUpsellRotationContainer && isCustomDomainActive && hasPurchasedDomains,
13
+ }"
10
14
  @close-modal="onCloseModal"
11
15
  >
12
16
  <template #header>
13
17
  <div v-if="isNotPublished || isSlugEditMode" class="tw-text-center tw-font-bold tw-mb-8 tw-mt-8 tw-text-4xl">
14
18
  <span>{{ firstTimePublishHeaderLabel }}</span>
15
19
  </div>
16
- <div v-if="isPublished && !isSlugEditMode" class="tw-text-center tw-font-bold tw-mb-8 tw-mt-8">
20
+ <div v-if="isPublished && !isSlugEditMode" class="tw-text-center tw-font-bold tw-mt-8 tw-mb-8">
17
21
  <p class="tw-font-bold tw-text-black tw-mb-2 tw-text-4xl">{{ sitePublishedLabel }}</p>
18
- <p v-if="hasPurchasedDomains || isCustomDomainActive" class="tw-text-grayscale-600 tw-mb-8">
19
- {{ publishSuccessLabel }}
20
- </p>
21
- <p v-else class="tw-text-grayscale-600 tw-mb-8 tw-font-normal">
22
- {{ publishedSuccessDescriptionLabel }}
23
- </p>
22
+ <div v-if="!showUpsellRotationContainer">
23
+ <p v-if="hasPurchasedDomains || isCustomDomainActive" class="tw-text-grayscale-600 tw-mb-8">
24
+ {{ publishSuccessLabel }}
25
+ </p>
26
+ <p v-else class="tw-text-grayscale-600 tw-mb-8 tw-font-normal">
27
+ {{ publishedSuccessDescriptionLabel }}
28
+ </p>
29
+ </div>
24
30
  </div>
25
31
  </template>
26
32
  <template #default>
@@ -187,7 +193,7 @@
187
193
  </div>
188
194
  </div>
189
195
  <div v-else class="tw-font-sans">
190
- <div v-if="!isCustomDomainActive && !hasPurchasedDomains" class="tw-mb-6 tw-text-left">
196
+ <div v-if="!showUpsellRotationContainer" class="tw-mb-6 tw-text-left">
191
197
  <div class="tw-mb-6">
192
198
  <SellDomainNameSearchWithResults
193
199
  :is-design-com="isDesignCom"
@@ -195,17 +201,12 @@
195
201
  :currency="userCurrency"
196
202
  :display-result-limit="4"
197
203
  :domain-search-location="sitePublishedModal"
204
+ show-view-more-button
198
205
  @on-change-search="onSearchTextChanged"
199
206
  @on-buy-now-click="onBuyNowClick"
207
+ @on-view-more="onViewMore"
200
208
  />
201
209
  </div>
202
- <Button
203
- :label="viewMoreDomainLabel"
204
- variant="no-border"
205
- size="small-medium"
206
- class="tw-text-center"
207
- @on-click="onViewMore"
208
- />
209
210
  </div>
210
211
  <div class="tw-px-4 tw-text-center" :class="{ 'lg:tw-px-20': hasPurchasedDomains }">
211
212
  <TextCopyField
@@ -230,6 +231,9 @@
230
231
  @on-click="onBrandPageUrlClick"
231
232
  />
232
233
  </div>
234
+ <div v-if="showUpsellRotationContainer" class="tw-border-t tw-border-solid tw-border-grayscale-500 tw-p-5">
235
+ <slot name="upsellContainer" />
236
+ </div>
233
237
  </div>
234
238
  </template>
235
239
  </Modal>
@@ -405,6 +409,16 @@ export default {
405
409
  required: true,
406
410
  default: '',
407
411
  },
412
+ showUpsellRotation: {
413
+ type: Boolean,
414
+ required: true,
415
+ default: false,
416
+ },
417
+ isSubsequentPublish: {
418
+ type: Boolean,
419
+ required: true,
420
+ default: false,
421
+ },
408
422
  },
409
423
  emits: [
410
424
  'close-modal',
@@ -503,6 +517,12 @@ export default {
503
517
  ? this.slugInputPlaceholderYourNameLabel
504
518
  : this.slugInputPlaceholderYourBusinessNameLabel;
505
519
  },
520
+ showUpsellRotationContainer() {
521
+ if (!this.isSubsequentPublish) {
522
+ return false;
523
+ }
524
+ return this.showUpsellRotation && !this.isCustomDomainActive && !this.hasPurchasedDomains;
525
+ },
506
526
  },
507
527
  watch: {
508
528
  brandPageSlug(slug) {
@@ -0,0 +1,24 @@
1
+ {
2
+ "publishBrandPageModal" : {
3
+ "firstTimePublishHeaderLabel" : "Set the URL for {{brandPageDisplayName}}",
4
+ "sitePublishedLabel" : "Site published!",
5
+ "publishSuccessLabel" : "Your {{brandPageDisplayName}} is live! Start using your link:",
6
+ "freePublishCardTitleLabel" : "Free Address",
7
+ "freePublishCardDescriptionLabel" : "Choose a free address to publish now. You can always edit the URL later",
8
+ "slugInputPlaceholderYourNameLabel" : "your-name",
9
+ "slugInputPlaceholderYourBusinessNameLabel" : "your-business-name",
10
+ "freeDomainLabel" : "Free domain",
11
+ "purchasedDomainLabel" : "Purchased domain",
12
+ "setUrlLabel" : "Set URL",
13
+ "publishLabel" : "Publish",
14
+ "viewMoreDomainLabel" : "VIEW MORE DOMAINS",
15
+ "viewMyWebsiteLabel" : "View {{brandPageDisplayName}}",
16
+ "copyLabel" : "Copy",
17
+ "copySuccessLabel" : "Copied!",
18
+ "publishedSuccessDescriptionLabel" : "Buy matching domain name for your brand",
19
+ "hasAlreadyPurchasedDomainCloseButtonLabel" : "No thanks, maybe later",
20
+ "selectDomainDropdownPlaceholder" : "Select domain name",
21
+ "websiteFriendlyName" : "Website",
22
+ "digitalBusinessCardFriendlyName" : "Digital Business Card"
23
+ }
24
+ }
@@ -22,6 +22,14 @@
22
22
  :domain-search-location="domainSearchLocation"
23
23
  @on-buy-now-click="onBuyNowClick"
24
24
  />
25
+ <Button
26
+ v-if="showViewMoreButton"
27
+ :label="viewMoreDomainLabel"
28
+ variant="no-border"
29
+ size="small-medium"
30
+ class="tw-text-center tw-pt-6"
31
+ @on-click="onViewMore"
32
+ />
25
33
  </div>
26
34
  </template>
27
35
  <script>
@@ -30,6 +38,8 @@ import SellDomainNameSearchResult from '../SellDomainNameSearchResult/SellDomain
30
38
 
31
39
  import brandCrowdApiClient from '../../clients/brand-crowd-api.client';
32
40
  import Events from '../../constants/event-constants';
41
+ import { publishBrandPageModalTr } from '../../../useSharedLibTranslate';
42
+ import Button from '../../../atoms/components/Button/Button.vue';
33
43
 
34
44
  const TEXT_CHANGED_PARAM = 'textChanged';
35
45
 
@@ -37,6 +47,7 @@ export default {
37
47
  components: {
38
48
  SellDomainNameSearch,
39
49
  SellDomainNameSearchResult,
50
+ Button,
40
51
  },
41
52
  props: {
42
53
  currency: {
@@ -101,6 +112,16 @@ export default {
101
112
  type: Number,
102
113
  default: undefined,
103
114
  },
115
+ showViewMoreButton: {
116
+ type: Boolean,
117
+ default: false,
118
+ },
119
+ },
120
+ setup() {
121
+ return {
122
+ publishBrandPageModalTr,
123
+ viewMoreDomainLabel: publishBrandPageModalTr('viewMoreDomainLabel'),
124
+ };
104
125
  },
105
126
  data: () => ({
106
127
  domainNameItems: undefined,
@@ -126,6 +147,7 @@ export default {
126
147
  methods: {
127
148
  async onSearchDomainName(args) {
128
149
  this.$emit('on-change-search', args.searchText);
150
+ this.$emit('on-domain-search');
129
151
  await this.searchDomainName(args.searchText, args.isUserTriggered);
130
152
  },
131
153
  async searchDomainName(searchText, isUserTriggered) {
@@ -184,6 +206,9 @@ export default {
184
206
  const urlParams = new URLSearchParams(window.location.search);
185
207
  return urlParams.get(TEXT_CHANGED_PARAM)?.toUpperCase() === 'TRUE' || false;
186
208
  },
209
+ onViewMore() {
210
+ this.$emit('on-view-more');
211
+ },
187
212
  },
188
213
  };
189
214
  </script>