itube-specs 0.0.1041 → 0.0.1043
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.
- package/app.config.ts +43 -0
- package/assets/scss/layout/_layout.scss +1 -0
- package/assets/scss/mixins/_page.scss +1 -0
- package/components/card/playlist.vue +3 -0
- package/components/category/by-letter.vue +1 -0
- package/components/category/list.vue +2 -0
- package/components/ui/breadcrumbs.vue +8 -0
- package/package.json +2 -1
package/app.config.ts
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { INavExtraItem, INavItemOverride, IQuickFilterScheme, ISecondNavItem } from './types';
|
|
2
|
+
|
|
3
|
+
export default defineAppConfig({
|
|
4
|
+
// Дефолты, чтобы слой собирался/тестировался standalone.
|
|
5
|
+
// Проект deep-merge'ит свои per-site значения поверх.
|
|
6
|
+
theme: 'dark',
|
|
7
|
+
quickVideoFilters: [] as IQuickFilterScheme[],
|
|
8
|
+
logoSize: null as { width: number, height: number } | null,
|
|
9
|
+
secondNav: [] as ISecondNavItem[],
|
|
10
|
+
/** Правки пунктов главной навигации слоя по их `title` (подпись, ссылка по нишам). */
|
|
11
|
+
navOverrides: {} as Record<string, INavItemOverride>,
|
|
12
|
+
/** Дополнительные пункты главной навигации, каждый — за пунктом слоя `after`. */
|
|
13
|
+
navExtraItems: [] as INavExtraItem[],
|
|
14
|
+
/** Есть ли у сайта сгруппированный вид категорий (`/categories` — группы, `/categories/all` — A–Z).
|
|
15
|
+
* `false` — `/categories` сам список A–Z: `CategoryNav` без табов Grouped / A-Z, «All» ведёт на `/categories`. */
|
|
16
|
+
categoriesGrouped: true,
|
|
17
|
+
/** Блок Live Cams в сетках листингов (при `FeatureWebcamsEnabled`), `null` — нет. `videos` — после какой строки
|
|
18
|
+
* карточек и сколько врезок вебкам-тумб (хвост того же списка) в сетке видео листинга (не похожие, не плейлист,
|
|
19
|
+
* не когда страница передала врезки сама); `models` — в основной сетке моделей (`priority`, не футер). */
|
|
20
|
+
gridWebcams: {
|
|
21
|
+
videos: null as { afterRows: number, inserts: number } | null,
|
|
22
|
+
models: null as { afterRows: number } | null,
|
|
23
|
+
},
|
|
24
|
+
/** Класс кликабельной части карточек в сетках видео и моделей — для сайтовых хуков (триггер попандера). */
|
|
25
|
+
cardTriggerClass: '',
|
|
26
|
+
/** Состав страницы видео. */
|
|
27
|
+
videoPage: {
|
|
28
|
+
/** Фразы, по которым пришли на ролик, — строкой над заголовком. */
|
|
29
|
+
refererPhrases: false,
|
|
30
|
+
/** Пагинация похожих. */
|
|
31
|
+
relatedPagination: true,
|
|
32
|
+
/** Карусель моделей под похожими. */
|
|
33
|
+
relatedModels: true,
|
|
34
|
+
/** Блок Live Cams после похожих (при `FeatureWebcamsEnabled`); врезки в похожие берут хвост того же списка. */
|
|
35
|
+
webcamsBlock: false,
|
|
36
|
+
/** Сколько моделей из хвоста списка уходит во врезки похожих, когда блок Live Cams включён. */
|
|
37
|
+
webcamInserts: 8,
|
|
38
|
+
/** Мета ролика как на старых движках: description — до трёх фраз перехода (недостающие — из тегов), без них —
|
|
39
|
+
* категории, склейка ключами `meta.videos-slug.tags_and` / `tags_tail`; в title доступен `{thirdText}` — название
|
|
40
|
+
* в Title Case. Выключено — description из описания ролика. */
|
|
41
|
+
metaFromPhrases: false,
|
|
42
|
+
},
|
|
43
|
+
});
|
|
@@ -319,6 +319,7 @@ $updated-word-width: 240px;
|
|
|
319
319
|
.card-playlist {
|
|
320
320
|
position: relative;
|
|
321
321
|
display: grid;
|
|
322
|
+
grid-template-columns: minmax(0, 1fr);
|
|
322
323
|
width: 100%;
|
|
323
324
|
container-type: inline-size;
|
|
324
325
|
align-items: start;
|
|
@@ -383,8 +384,10 @@ $updated-word-width: 240px;
|
|
|
383
384
|
.card-playlist__wrapper-header {
|
|
384
385
|
display: flex;
|
|
385
386
|
align-items: center;
|
|
387
|
+
flex-wrap: wrap;
|
|
386
388
|
justify-content: space-between;
|
|
387
389
|
column-gap: 24px;
|
|
390
|
+
row-gap: 4px;
|
|
388
391
|
margin-bottom: 8px;
|
|
389
392
|
}
|
|
390
393
|
|
|
@@ -51,6 +51,7 @@ const { t } = useI18n();
|
|
|
51
51
|
.category-list {
|
|
52
52
|
overflow: hidden;
|
|
53
53
|
width: 100%;
|
|
54
|
+
min-width: 0;
|
|
54
55
|
|
|
55
56
|
@include to-br(sm) {
|
|
56
57
|
display: flex;
|
|
@@ -88,6 +89,7 @@ const { t } = useI18n();
|
|
|
88
89
|
margin-bottom: 6px;
|
|
89
90
|
padding-block: 4px;
|
|
90
91
|
width: max-content;
|
|
92
|
+
max-width: 100%;
|
|
91
93
|
}
|
|
92
94
|
|
|
93
95
|
@include to-br(sm) {
|
|
@@ -84,7 +84,15 @@ const resultItems = computed(() => {
|
|
|
84
84
|
color: $breadcrumbs-text;
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
+
.ui-breadcrumbs ol li:last-child {
|
|
88
|
+
min-width: 0;
|
|
89
|
+
}
|
|
90
|
+
|
|
87
91
|
.ui-breadcrumbs ol li:last-child .ui-breadcrumbs__item {
|
|
92
|
+
min-width: 0;
|
|
93
|
+
overflow: hidden;
|
|
94
|
+
white-space: nowrap;
|
|
95
|
+
text-overflow: ellipsis;
|
|
88
96
|
color: $breadcrumbs-text--current;
|
|
89
97
|
text-transform: capitalize;
|
|
90
98
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "itube-specs",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.1043",
|
|
5
5
|
"main": "./nuxt.config.ts",
|
|
6
6
|
"types": "./types/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
@@ -86,6 +86,7 @@
|
|
|
86
86
|
"scripts/spec.sh",
|
|
87
87
|
"SITE_UPDATES.md",
|
|
88
88
|
"nuxt.config.ts",
|
|
89
|
+
"app.config.ts",
|
|
89
90
|
"DOCS/"
|
|
90
91
|
],
|
|
91
92
|
"devDependencies": {
|