itube-specs 0.0.793 → 0.0.795

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.
Files changed (123) hide show
  1. package/README.md +18 -25
  2. package/components/adv/native-banner.vue +22 -17
  3. package/components/adv/native-bottom.vue +8 -6
  4. package/components/adv/native-player.vue +8 -6
  5. package/components/adv/ntv.vue +4 -3
  6. package/components/auth/icon.vue +4 -3
  7. package/components/auth/login.vue +39 -33
  8. package/components/auth/popup.vue +30 -24
  9. package/components/auth/recovery.vue +29 -24
  10. package/components/auth/register.vue +59 -50
  11. package/components/card/category-mini.vue +6 -4
  12. package/components/card/category.vue +25 -21
  13. package/components/card/channel-mini.vue +17 -13
  14. package/components/card/channel.vue +36 -29
  15. package/components/card/model-mini.vue +24 -19
  16. package/components/card/model.vue +43 -33
  17. package/components/card/playlist-mini.vue +19 -16
  18. package/components/card/playlist.vue +97 -73
  19. package/components/card/round.vue +16 -13
  20. package/components/card/video/dropdown.vue +55 -41
  21. package/components/card/video/index.vue +99 -81
  22. package/components/card/video/mini.vue +19 -15
  23. package/components/card/video/preview.vue +7 -6
  24. package/components/category/by-letter.vue +4 -3
  25. package/components/category/group.vue +18 -13
  26. package/components/category/letter-groups.vue +4 -3
  27. package/components/category/list.vue +19 -16
  28. package/components/category/nav.vue +15 -12
  29. package/components/filter/btn.vue +13 -10
  30. package/components/filter/chips.vue +8 -7
  31. package/components/filter/main.vue +27 -23
  32. package/components/filter/model-field.vue +43 -38
  33. package/components/filter/model.vue +33 -28
  34. package/components/filter/page.vue +53 -43
  35. package/components/filter/popup.vue +75 -60
  36. package/components/filter/selects.vue +63 -49
  37. package/components/filter/slider.vue +23 -20
  38. package/components/filter/videos-chips.vue +3 -2
  39. package/components/grid/categories.vue +5 -4
  40. package/components/grid/channels.vue +9 -7
  41. package/components/grid/models.vue +10 -8
  42. package/components/grid/playlists.vue +6 -5
  43. package/components/grid/videos.vue +35 -31
  44. package/components/info/grid.vue +43 -34
  45. package/components/info/main.vue +94 -71
  46. package/components/info/socials.vue +13 -11
  47. package/components/layout/burger-item.vue +44 -36
  48. package/components/layout/burger.vue +45 -35
  49. package/components/layout/cookie.vue +14 -11
  50. package/components/layout/extra-links.vue +6 -5
  51. package/components/layout/footer-language.vue +35 -28
  52. package/components/layout/header-user.vue +66 -51
  53. package/components/layout/header.vue +55 -42
  54. package/components/layout/language.vue +67 -54
  55. package/components/layout/logo.vue +11 -9
  56. package/components/layout/nav.vue +36 -29
  57. package/components/layout/skip-link.vue +3 -2
  58. package/components/player/aside-videos.vue +10 -8
  59. package/components/player/autoplay.vue +7 -5
  60. package/components/player/channel.vue +25 -19
  61. package/components/player/core.vue +11 -10
  62. package/components/player/follow.vue +17 -13
  63. package/components/player/info.vue +9 -6
  64. package/components/player/interface.vue +50 -38
  65. package/components/player/like.vue +32 -24
  66. package/components/player/main.vue +12 -10
  67. package/components/player/playlist.vue +79 -61
  68. package/components/player/sponsored.vue +20 -16
  69. package/components/playlist/add.vue +89 -71
  70. package/components/playlist/delete-video.vue +23 -18
  71. package/components/playlist/edit.vue +64 -49
  72. package/components/playlist/input.vue +32 -24
  73. package/components/playlist/main.vue +21 -18
  74. package/components/playlist/private-toggle.vue +4 -3
  75. package/components/profile/delete.vue +7 -6
  76. package/components/profile/guest.vue +10 -7
  77. package/components/profile/password.vue +25 -22
  78. package/components/profile/setup.vue +88 -71
  79. package/components/report/main.vue +89 -71
  80. package/components/search/input.vue +37 -31
  81. package/components/search/item.vue +22 -18
  82. package/components/search/main.vue +34 -26
  83. package/components/search/result.vue +72 -57
  84. package/components/section/categories-island.server.vue +7 -5
  85. package/components/section/categories.vue +4 -3
  86. package/components/section/models.vue +4 -3
  87. package/components/section/nav-links.vue +8 -7
  88. package/components/section/seo-text.vue +9 -6
  89. package/components/section/swiper-cards.vue +19 -14
  90. package/components/section/toolbar.vue +26 -20
  91. package/components/share/main.vue +32 -26
  92. package/components/ui/avatar.vue +10 -8
  93. package/components/ui/breadcrumbs.vue +33 -25
  94. package/components/ui/btn.vue +13 -12
  95. package/components/ui/checkbox.vue +21 -17
  96. package/components/ui/chips.vue +33 -29
  97. package/components/ui/count.vue +4 -3
  98. package/components/ui/dropdown.vue +42 -34
  99. package/components/ui/empty-state.vue +11 -9
  100. package/components/ui/expand-row.vue +34 -28
  101. package/components/ui/full-descr.vue +6 -4
  102. package/components/ui/icon.vue +4 -3
  103. package/components/ui/img.vue +11 -10
  104. package/components/ui/input.vue +75 -66
  105. package/components/ui/label.vue +4 -3
  106. package/components/ui/link.vue +20 -18
  107. package/components/ui/notification.vue +22 -17
  108. package/components/ui/pagination.vue +89 -76
  109. package/components/ui/popup.vue +39 -30
  110. package/components/ui/radio.vue +17 -14
  111. package/components/ui/section-title.vue +20 -15
  112. package/components/ui/segmented.vue +19 -15
  113. package/components/ui/select.vue +44 -35
  114. package/components/ui/slider.vue +16 -13
  115. package/components/ui/snackbar.vue +7 -5
  116. package/components/ui/swiper.vue +32 -24
  117. package/components/ui/toggle.vue +17 -14
  118. package/components/ui/tooltip.vue +15 -12
  119. package/components/view/model-videos.vue +71 -57
  120. package/components/view/models.vue +71 -57
  121. package/components/view/video.vue +64 -51
  122. package/components/view/videos.vue +55 -45
  123. package/package.json +1 -1
@@ -1,75 +1,89 @@
1
1
  <!-- Дропдаун-меню видео: добавить в плейлист, смотреть позже, поделиться, пожаловаться -->
2
2
  <template>
3
- <UiDropdown ref="dropdownRef"
4
- right
5
- use-v-if
6
- v-bind="$attrs"
3
+ <UiDropdown
4
+ ref="dropdownRef"
5
+ right
6
+ use-v-if
7
+ v-bind="$attrs"
7
8
  >
8
9
  <template #trigger>
9
10
  <slot name="trigger">
10
- <button :aria-label="$t('open_menu')"
11
- class="card-video-dropdown__trigger"
12
- type="button"
13
- @click="emit('triggerClick', $event)"
11
+ <button
12
+ :aria-label="$t('open_menu')"
13
+ class="card-video-dropdown__trigger"
14
+ type="button"
15
+ @click="emit('triggerClick', $event)"
14
16
  >
15
- <UiIcon name="dots-vertical"
16
- size="18"
17
+ <UiIcon
18
+ name="dots-vertical"
19
+ size="18"
17
20
  />
18
21
  </button>
19
22
  </slot>
20
23
  </template>
21
24
  <template #header>
22
- <CardVideoMini :card="card"
23
- class="card-video-dropdown__preview _to-md"
25
+ <CardVideoMini
26
+ :card="card"
27
+ class="card-video-dropdown__preview _to-md"
24
28
  />
25
29
  </template>
26
30
  <template #items="className">
27
- <button :class="className"
28
- type="button"
29
- @click="onAddPlaylist"
31
+ <button
32
+ :class="className"
33
+ type="button"
34
+ @click="onAddPlaylist"
30
35
  >
31
- <UiIcon name="star"
32
- size="20"
36
+ <UiIcon
37
+ name="star"
38
+ size="20"
33
39
  />
34
40
  {{ $t('video_submenu.add_to') }}
35
41
  </button>
36
- <button v-if="showWatchLater"
37
- :class="className"
38
- type="button"
39
- @click="emit('watchLater')"
42
+ <button
43
+ v-if="showWatchLater"
44
+ :class="className"
45
+ type="button"
46
+ @click="emit('watchLater')"
40
47
  >
41
- <UiIcon name="time"
42
- size="20"
48
+ <UiIcon
49
+ name="time"
50
+ size="20"
43
51
  />
44
52
  {{ $t('video_submenu.watch_later') }}
45
53
  </button>
46
- <button v-if="showShare"
47
- :class="className"
48
- type="button"
49
- @click="onShare"
54
+ <button
55
+ v-if="showShare"
56
+ :class="className"
57
+ type="button"
58
+ @click="onShare"
50
59
  >
51
- <UiIcon name="share"
52
- size="20"
60
+ <UiIcon
61
+ name="share"
62
+ size="20"
53
63
  />
54
64
  {{ $t('share') }}
55
65
  </button>
56
- <button v-if="showReport"
57
- :class="className"
58
- type="button"
59
- @click="onReport"
66
+ <button
67
+ v-if="showReport"
68
+ :class="className"
69
+ type="button"
70
+ @click="onReport"
60
71
  >
61
- <UiIcon name="flag"
62
- size="20"
72
+ <UiIcon
73
+ name="flag"
74
+ size="20"
63
75
  />
64
76
  {{ $t('video_submenu.report') }}
65
77
  </button>
66
- <button v-if="showRemove"
67
- :class="className"
68
- type="button"
69
- @click="emit('remove')"
78
+ <button
79
+ v-if="showRemove"
80
+ :class="className"
81
+ type="button"
82
+ @click="emit('remove')"
70
83
  >
71
- <UiIcon name="trash-bin"
72
- size="20"
84
+ <UiIcon
85
+ name="trash-bin"
86
+ size="20"
73
87
  />
74
88
  {{ $t('remove_video') }}
75
89
  </button>
@@ -1,116 +1,134 @@
1
1
  <!-- Карточка видео: постер, логотип канала, превью при наведении, теги моделей -->
2
2
  <template>
3
- <div :class="[
4
- {'--mini': mini},
5
- {'--avatar': card.channelAvatar},
6
- {'--no-channel': isChannelPage},
7
- ]"
8
- class="card-video"
3
+ <div
4
+ :class="[
5
+ {'--mini': mini},
6
+ {'--avatar': card.channelAvatar},
7
+ {'--no-channel': isChannelPage},
8
+ ]"
9
+ class="card-video"
9
10
  >
10
- <NuxtLink :to="link"
11
- class="card-video__poster-wrapper"
12
- @mouseenter.passive="playVideo"
13
- @touchmove.passive="playVideo"
14
- @mouseleave.passive="stopVideo"
15
- @touchend.passive="stopVideo"
11
+ <NuxtLink
12
+ :to="link"
13
+ class="card-video__poster-wrapper"
14
+ @mouseenter.passive="playVideo"
15
+ @touchmove.passive="playVideo"
16
+ @mouseleave.passive="stopVideo"
17
+ @touchend.passive="stopVideo"
16
18
  >
17
- <UiImg :src="currentPoster"
18
- :urls="card.thumbUrls"
19
- :loading="loading"
20
- :priority="priority"
21
- :sizes="`(max-width: ${CSS_BREAKPOINTS.lg}px) 180px, 480px`"
22
- :alt="card.title"
23
- class="card-video__poster"
24
- width="480"
25
- height="270"
26
- @error="onPosterError"
19
+ <UiImg
20
+ :src="currentPoster"
21
+ :urls="card.thumbUrls"
22
+ :loading="loading"
23
+ :priority="priority"
24
+ :sizes="`(max-width: ${CSS_BREAKPOINTS.lg}px) 180px, 480px`"
25
+ :alt="card.title"
26
+ class="card-video__poster"
27
+ width="480"
28
+ height="270"
29
+ @error="onPosterError"
27
30
  />
28
- <CardVideoPreview v-if="isPreviewShow && card.previewUrl"
29
- :url="card.previewUrl"
31
+ <CardVideoPreview
32
+ v-if="isPreviewShow && card.previewUrl"
33
+ :url="card.previewUrl"
30
34
  />
31
- <UiLabel v-if="card.isNew"
32
- :text="t('new')"
33
- class="card-video__new"
34
- theme="primary-gradient"
35
+ <UiLabel
36
+ v-if="card.isNew"
37
+ :text="t('new')"
38
+ class="card-video__new"
39
+ theme="primary-gradient"
35
40
  />
36
- <UiLabel v-if="card.quality && parseInt(card.quality) >= 1080"
37
- :text="card.quality"
38
- class="card-video__resolution"
39
- theme="yellow"
41
+ <UiLabel
42
+ v-if="card.quality && parseInt(card.quality) >= 1080"
43
+ :text="card.quality"
44
+ class="card-video__resolution"
45
+ theme="yellow"
40
46
  />
41
- <UiLabel v-if="card.duration"
42
- :text="duration"
43
- class="card-video__duration"
44
- theme="black"
47
+ <UiLabel
48
+ v-if="card.duration"
49
+ :text="duration"
50
+ class="card-video__duration"
51
+ theme="black"
45
52
  />
46
53
  </NuxtLink>
47
54
 
48
55
  <div class="card-video__wrapper">
49
- <component v-if="!mini"
50
- :is="component"
51
- :to="card.channelName ? localePath(`/channels/${convertString().toSlug(card.channelName)}`) : undefined"
52
- class="card-video__logo-wrapper"
56
+ <component
57
+ v-if="!mini"
58
+ :is="component"
59
+ :to="card.channelName ? localePath(`/channels/${convertString().toSlug(card.channelName)}`) : undefined"
60
+ class="card-video__logo-wrapper"
53
61
  >
54
- <UiImg v-if="card.channelAvatar"
55
- :loading="loading"
56
- :src="currentAvatar"
57
- :alt="card.channelName"
58
- class="card-video__channel-logo"
59
- width="32"
60
- height="32"
61
- sizes="32px"
62
- @error="onAvatarError"
62
+ <UiImg
63
+ v-if="card.channelAvatar"
64
+ :loading="loading"
65
+ :src="currentAvatar"
66
+ :alt="card.channelName"
67
+ class="card-video__channel-logo"
68
+ width="32"
69
+ height="32"
70
+ sizes="32px"
71
+ @error="onAvatarError"
63
72
  />
64
- <span v-else
65
- class="card-video__user"
73
+ <span
74
+ v-else
75
+ class="card-video__user"
66
76
  >U</span>
67
77
  </component>
68
- <NuxtLink :to="link"
69
- :title="card.title"
70
- class="card-video__title _truncate"
78
+ <NuxtLink
79
+ :to="link"
80
+ :title="card.title"
81
+ class="card-video__title _truncate"
71
82
  >{{ card.title }}
72
83
  </NuxtLink>
73
- <component v-if="!mini && card.channelName"
74
- :is="component"
75
- :to="card.channelName ? localePath(`/channels/${convertString().toSlug(card.channelName)}`) : undefined"
76
- class="card-video__channel-wrapper"
84
+ <component
85
+ v-if="!mini && card.channelName"
86
+ :is="component"
87
+ :to="card.channelName ? localePath(`/channels/${convertString().toSlug(card.channelName)}`) : undefined"
88
+ class="card-video__channel-wrapper"
77
89
  >
78
- <span :data-nosnippet="!card.channelName || null"
79
- class="card-video__channel-title"
90
+ <span
91
+ :data-nosnippet="!card.channelName || null"
92
+ class="card-video__channel-title"
80
93
  >
81
94
  <template v-if="card.channelName">
82
95
  {{ card.channelName }}
83
96
  </template>
84
97
  </span>
85
98
  </component>
86
- <div v-if="!mini && cardTags && cardTags.length > 0"
87
- class="card-video__tags"
99
+ <div
100
+ v-if="!mini && cardTags && cardTags.length > 0"
101
+ class="card-video__tags"
88
102
  >
89
103
  <div class="card-video__tags-wrapper">
90
- <UiChips v-for="(item, index) in cardTags?.slice(0, 4)"
91
- micro
92
- :key="`${card.guid}-tag-${index}`"
93
- :item="item"
94
- class="card-video__chips"
95
- is-link
104
+ <UiChips
105
+ v-for="(item, index) in cardTags?.slice(0, 4)"
106
+ micro
107
+ :key="`${card.guid}-tag-${index}`"
108
+ :item="item"
109
+ class="card-video__chips"
110
+ is-link
96
111
  />
97
112
  </div>
98
113
  </div>
99
- <LazyCardVideoDropdown v-if="dropdownMounted"
100
- :card="card"
101
- :show-watch-later="FeatureFlags.FeatureWatchLaterEnabled"
102
- class="card-video__dropdown"
103
- show-report
104
- auto-open
114
+ <LazyCardVideoDropdown
115
+ v-if="dropdownMounted"
116
+ :card="card"
117
+ :show-watch-later="FeatureFlags.FeatureWatchLaterEnabled"
118
+ class="card-video__dropdown"
119
+ show-report
120
+ auto-open
105
121
  />
106
- <button v-else
107
- :aria-label="t('open_menu')"
108
- class="card-video__dropdown card-video-dropdown__trigger"
109
- type="button"
110
- @click="dropdownMounted = true"
122
+ <button
123
+ v-else
124
+ :aria-label="t('open_menu')"
125
+ class="card-video__dropdown card-video-dropdown__trigger"
126
+ type="button"
127
+ @click="dropdownMounted = true"
111
128
  >
112
- <UiIcon name="dots-vertical"
113
- size="18"
129
+ <UiIcon
130
+ name="dots-vertical"
131
+ size="18"
114
132
  />
115
133
  </button>
116
134
  </div>
@@ -1,26 +1,30 @@
1
1
  <!-- Мини-карточка видео: постер 16:9 слева, название, канал, длительность -->
2
2
  <template>
3
- <component :is="component"
4
- :title="card.title"
5
- :to="link ? generateLink(`/playlists/${prefix}/${card.id}`) : null"
6
- class="card-video-mini"
3
+ <component
4
+ :is="component"
5
+ :title="card.title"
6
+ :to="link ? generateLink(`/playlists/${prefix}/${card.id}`) : null"
7
+ class="card-video-mini"
7
8
  >
8
- <UiImg :src="currentPoster"
9
- :alt="card.title"
10
- class="card-video-mini__img"
11
- sizes="140px"
12
- width="1600"
13
- height="900"
14
- @error="onPosterError"
9
+ <UiImg
10
+ :src="currentPoster"
11
+ :alt="card.title"
12
+ class="card-video-mini__img"
13
+ sizes="140px"
14
+ width="1600"
15
+ height="900"
16
+ @error="onPosterError"
15
17
  />
16
18
  <div class="card-video-mini__wrapper">
17
19
  <p class="card-video-mini__title _truncate">{{ card.title }}</p>
18
- <span v-if="card.channelName"
19
- class="card-video-mini__channel _truncate"
20
+ <span
21
+ v-if="card.channelName"
22
+ class="card-video-mini__channel _truncate"
20
23
  >{{ card.channelName }}</span>
21
24
  <span class="card-video-mini__duration">
22
- <UiIcon name="time"
23
- size="12"
25
+ <UiIcon
26
+ name="time"
27
+ size="12"
24
28
  />
25
29
  {{ duration }}</span>
26
30
  </div>
@@ -1,11 +1,12 @@
1
1
  <!-- Видео-предпросмотр (автоплей) поверх постера карточки видео -->
2
2
  <template>
3
- <video :src="url"
4
- class="card-video-preview"
5
- loop
6
- muted
7
- autoplay
8
- playsinline
3
+ <video
4
+ :src="url"
5
+ class="card-video-preview"
6
+ loop
7
+ muted
8
+ autoplay
9
+ playsinline
9
10
  />
10
11
  </template>
11
12
 
@@ -1,8 +1,9 @@
1
1
  <template>
2
2
  <section class="category-by-letter">
3
- <div v-for="(items, letter) in categories"
4
- :key="`category-by-letter-${String(letter)}`"
5
- class="category-by-letter__block"
3
+ <div
4
+ v-for="(items, letter) in categories"
5
+ :key="`category-by-letter-${String(letter)}`"
6
+ class="category-by-letter__block"
6
7
  >
7
8
  <UiLetter :text="getLetter(letter)" />
8
9
  <CategoryList :items="items" />
@@ -1,22 +1,27 @@
1
1
  <template>
2
- <section v-if="items && items.length > 0"
3
- class="category-group"
2
+ <section
3
+ v-if="items && items.length > 0"
4
+ class="category-group"
4
5
  >
5
- <UiLetter v-if="text"
6
- :text="text"
6
+ <UiLetter
7
+ v-if="text"
8
+ :text="text"
7
9
  />
8
- <h2 v-else-if="title"
9
- class="category-group__title _title"
10
+ <h2
11
+ v-else-if="title"
12
+ class="category-group__title _title"
10
13
  >
11
- <UiIcon v-if="icon"
12
- :name="icon"
13
- class="category-group__title-icon"
14
- prefix="categories"
15
- size="24"
14
+ <UiIcon
15
+ v-if="icon"
16
+ :name="icon"
17
+ class="category-group__title-icon"
18
+ prefix="categories"
19
+ size="24"
16
20
  />
17
21
  {{ title }}</h2>
18
- <GridCategories :categories="items"
19
- priority
22
+ <GridCategories
23
+ :categories="items"
24
+ priority
20
25
  >
21
26
  <!-- <div-->
22
27
  <!-- v-if="allLink"-->
@@ -1,8 +1,9 @@
1
1
  <template>
2
2
  <section class="category-letter-groups">
3
- <div v-for="(groupItems, letter) in grouped"
4
- :key="`category-letter-groups-${String(letter)}`"
5
- class="category-letter-groups__block"
3
+ <div
4
+ v-for="(groupItems, letter) in grouped"
5
+ :key="`category-letter-groups-${String(letter)}`"
6
+ class="category-letter-groups__block"
6
7
  >
7
8
  <UiLetter :text="String(letter)" />
8
9
  <slot :items="groupItems" />
@@ -1,25 +1,28 @@
1
1
  <template>
2
2
  <div class="category-list">
3
- <NuxtLink v-for="category in items"
4
- :key="`category-all-${category.guid}`"
5
- :data-count="category.videosCount"
6
- :class="{'--top': category.isTop}"
7
- :to="localePath(`/categories/${slug(category.name)}`)"
8
- class="category-list__link"
3
+ <NuxtLink
4
+ v-for="category in items"
5
+ :key="`category-all-${category.guid}`"
6
+ :data-count="category.videosCount"
7
+ :class="{'--top': category.isTop}"
8
+ :to="localePath(`/categories/${slug(category.name)}`)"
9
+ class="category-list__link"
9
10
  >
10
11
  {{ category.title }}
11
- <img v-if="category.icon"
12
- :src="`/icons/flags/${category.icon}.svg`"
13
- :alt="category.icon"
14
- class="category-list__link-image"
15
- width="17"
16
- height="17"
17
- loading="lazy"
12
+ <img
13
+ v-if="category.icon"
14
+ :src="`/icons/flags/${category.icon}.svg`"
15
+ :alt="category.icon"
16
+ class="category-list__link-image"
17
+ width="17"
18
+ height="17"
19
+ loading="lazy"
18
20
  >
19
21
  </NuxtLink>
20
- <NuxtLink v-if="allCategories"
21
- :to="localePath('/categories')"
22
- class="category-list__link --all"
22
+ <NuxtLink
23
+ v-if="allCategories"
24
+ :to="localePath('/categories')"
25
+ class="category-list__link --all"
23
26
  >
24
27
  {{ t('all_categories') }}
25
28
  </NuxtLink>
@@ -1,18 +1,21 @@
1
1
  <template>
2
- <SectionNavLinks :items="categoriesNavigation"
3
- theme="secondary"
2
+ <SectionNavLinks
3
+ :items="categoriesNavigation"
4
+ theme="secondary"
4
5
  />
5
- <UiExpandRow :class="{'_from-sm': hideOnMobile}"
6
- :items="alphabetItems"
7
- class="category-nav__alphabet"
8
- alphabet
6
+ <UiExpandRow
7
+ :class="{'_from-sm': hideOnMobile}"
8
+ :items="alphabetItems"
9
+ class="category-nav__alphabet"
10
+ alphabet
9
11
  >
10
- <UiChips v-for="(item, index) in alphabetItems"
11
- :key="`categories-chips-${index}`"
12
- :item="item"
13
- :class="{ '--all': item.value === '' }"
14
- is-link
15
- alphabet
12
+ <UiChips
13
+ v-for="(item, index) in alphabetItems"
14
+ :key="`categories-chips-${index}`"
15
+ :item="item"
16
+ :class="{ '--all': item.value === '' }"
17
+ is-link
18
+ alphabet
16
19
  />
17
20
  </UiExpandRow>
18
21
  </template>
@@ -1,19 +1,22 @@
1
1
  <!-- Кнопка открытия фильтра со счётчиком активных фильтров -->
2
2
  <template>
3
- <UiBtn :size="size"
4
- :theme="theme"
5
- :title="t('filter')"
6
- class="filter-btn"
7
- aria-label="Filter"
8
- @click="emit('update:modelValue', true)"
3
+ <UiBtn
4
+ :size="size"
5
+ :theme="theme"
6
+ :title="t('filter')"
7
+ class="filter-btn"
8
+ aria-label="Filter"
9
+ @click="emit('update:modelValue', true)"
9
10
  >
10
- <UiIcon name="adjustments-horizontal"
11
- size="16"
11
+ <UiIcon
12
+ name="adjustments-horizontal"
13
+ size="16"
12
14
  />
13
15
  <span class="_from-sm">{{ t('filter') }}
14
16
  </span>
15
- <span v-if="count > 0"
16
- class="filter-btn__count"
17
+ <span
18
+ v-if="count > 0"
19
+ class="filter-btn__count"
17
20
  >{{ mobileCount }}</span>
18
21
  </UiBtn>
19
22
  </template>
@@ -4,13 +4,14 @@
4
4
  <template #prepend>
5
5
  <slot/>
6
6
  </template>
7
- <UiChips v-for="(item, index) in items"
8
- :key="index"
9
- :index="`s-filter-page-chips${index}`"
10
- :item="item"
11
- class="filter-chips"
12
- with-close
13
- @click="onChipsClick(item)"
7
+ <UiChips
8
+ v-for="(item, index) in items"
9
+ :key="index"
10
+ :index="`s-filter-page-chips${index}`"
11
+ :item="item"
12
+ class="filter-chips"
13
+ with-close
14
+ @click="onChipsClick(item)"
14
15
  />
15
16
  </UiExpandRow>
16
17
  </template>