@snabcentr/client-core 3.9.1 → 3.11.0
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/esm2022/seo/classes/schema-org-factory.mjs +294 -67
- package/esm2022/seo/services/sc-seo.service.mjs +16 -9
- package/fesm2022/snabcentr-client-core.mjs +307 -74
- package/fesm2022/snabcentr-client-core.mjs.map +1 -1
- package/package.json +1 -1
- package/release_notes.tmp +4 -2
- package/seo/classes/schema-org-factory.d.ts +65 -4
- package/seo/services/sc-seo.service.d.ts +8 -2
package/package.json
CHANGED
package/release_notes.tmp
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
## 3.
|
|
1
|
+
## 3.11.0 (2026-07-22)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
### added (1 change)
|
|
4
|
+
|
|
5
|
+
- [#13612: Добавлены механизмы установки Schema.org для страницы новости и FAQ](web_soft/libs/angular/snabcentr-client-core-lib@d84d698c188c19bf55922fd7ab13f9cbe4d5dab3) ([merge request](web_soft/libs/angular/snabcentr-client-core-lib!331))
|
|
4
6
|
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { CollectionPage, Product, WithContext } from 'schema-dts';
|
|
1
|
+
import { CollectionPage, FAQPage, NewsArticle, Organization, Product, Thing, WithContext } from 'schema-dts';
|
|
2
2
|
import { ScICategory } from '../../catalog/interfaces/sc-i-category';
|
|
3
3
|
import { ScIProduct } from '../../catalog/interfaces/sc-i-product';
|
|
4
4
|
import { ScIVirtualCategory } from '../../catalog/interfaces/sc-i-virtual-category';
|
|
5
|
-
import {
|
|
5
|
+
import { ScFaqItem } from '../../frequently-asked-questions/interfaces/sc-i-faq-item';
|
|
6
|
+
import { ScINews } from '../../news/interfaces/sc-i-news';
|
|
7
|
+
import { ScIBreadcrumbItem } from '../interfaces/sc-i-breadcrumb-item';
|
|
6
8
|
import * as i0 from "@angular/core";
|
|
7
9
|
/**
|
|
8
10
|
* Механизмы генерации схем данных Schema.org.
|
|
@@ -29,8 +31,9 @@ export declare class SchemaOrgFactory {
|
|
|
29
31
|
*
|
|
30
32
|
* @param product Данные о продукте.
|
|
31
33
|
* @param productPath Url путь к товару. В пути должен присутствовать шаблон ':id', обозначающий идентификатор товара для подстановки.
|
|
34
|
+
* @param id Необязательный идентификатор сущности для поля `@id` в JSON-LD.
|
|
32
35
|
*/
|
|
33
|
-
generateForProductItem(product: ScIProduct, productPath: string): WithContext<Product>;
|
|
36
|
+
generateForProductItem(product: ScIProduct, productPath: string, id?: string): WithContext<Product>;
|
|
34
37
|
/**
|
|
35
38
|
* Генерирует и возвращает схему данных для указанного продукта.
|
|
36
39
|
*
|
|
@@ -39,8 +42,58 @@ export declare class SchemaOrgFactory {
|
|
|
39
42
|
* @param categoryPath Url путь к категориям товаров. В пути должен присутствовать шаблон ':id', обозначающий идентификатор категории для подстановки.
|
|
40
43
|
* @param productPath Url путь к товару. В пути должен присутствовать шаблон ':id', обозначающий идентификатор товара для подстановки.
|
|
41
44
|
* @param breadcrumbs Данные о хлебных крошках для категории.
|
|
45
|
+
* @param id Необязательный идентификатор сущности для поля `@id` в JSON-LD.
|
|
42
46
|
*/
|
|
43
|
-
generateForCategoryItem(category: ScICategory | ScIVirtualCategory, products: ScIProduct[], categoryPath: string, productPath: string, breadcrumbs: ScIBreadcrumbItem[]): WithContext<CollectionPage>;
|
|
47
|
+
generateForCategoryItem(category: ScICategory | ScIVirtualCategory, products: ScIProduct[], categoryPath: string, productPath: string, breadcrumbs: ScIBreadcrumbItem[], id?: string): WithContext<CollectionPage>;
|
|
48
|
+
/**
|
|
49
|
+
* Генерирует и возвращает схему данных OnlineStore на основе данных компании из окружения.
|
|
50
|
+
*/
|
|
51
|
+
generateForOrganization(): WithContext<Organization>;
|
|
52
|
+
/**
|
|
53
|
+
* Генерирует и возвращает схему данных для указанной новости.
|
|
54
|
+
*
|
|
55
|
+
* @param news Данные о новости.
|
|
56
|
+
* @param newsPath Url путь к новости. В пути должен присутствовать шаблон ':id', обозначающий идентификатор новости для подстановки.
|
|
57
|
+
* @param id Необязательный идентификатор сущности для поля `@id` в JSON-LD.
|
|
58
|
+
*/
|
|
59
|
+
generateForNewsArticle(news: ScINews, newsPath: string, id?: string): WithContext<NewsArticle>;
|
|
60
|
+
/**
|
|
61
|
+
* Генерирует и возвращает схему данных FAQPage для страницы с вопросами и ответами.
|
|
62
|
+
*
|
|
63
|
+
* @param items Список вопросов и ответов.
|
|
64
|
+
* @param pagePath Url путь к странице FAQ.
|
|
65
|
+
* @param pageName Необязательное название страницы.
|
|
66
|
+
* @param id Необязательный идентификатор сущности для поля `@id` в JSON-LD.
|
|
67
|
+
*/
|
|
68
|
+
generateForFaqPage(items: ScFaqItem[], pagePath: string, pageName?: string, id?: string): WithContext<FAQPage>;
|
|
69
|
+
/**
|
|
70
|
+
* Объединяет несколько JSON-LD сущностей в один документ с `@graph`.
|
|
71
|
+
*
|
|
72
|
+
* @param data Массив JSON-LD сущностей для объединения.
|
|
73
|
+
*/
|
|
74
|
+
merge(data: Array<WithContext<Thing>>): WithContext<Thing>;
|
|
75
|
+
/**
|
|
76
|
+
* Формирует PostalAddress из структурированного адреса компании.
|
|
77
|
+
*
|
|
78
|
+
* @param address Структурированный адрес компании.
|
|
79
|
+
*/
|
|
80
|
+
private createPostalAddress;
|
|
81
|
+
/**
|
|
82
|
+
* Формирует список ContactPoint для Organization.
|
|
83
|
+
*/
|
|
84
|
+
private createOrganizationContactPoints;
|
|
85
|
+
/**
|
|
86
|
+
* Удаляет HTML-разметку из текста.
|
|
87
|
+
*
|
|
88
|
+
* @param html Текст с HTML-разметкой.
|
|
89
|
+
*/
|
|
90
|
+
private stripHtml;
|
|
91
|
+
/**
|
|
92
|
+
* Нормализует дату в формат Schema.org (ISO 8601).
|
|
93
|
+
*
|
|
94
|
+
* @param dateValue Дата для нормализации.
|
|
95
|
+
*/
|
|
96
|
+
private normalizeSchemaDate;
|
|
44
97
|
/**
|
|
45
98
|
* Нормализует дату окончания цены в формат Schema.org (YYYY-MM-DD).
|
|
46
99
|
*
|
|
@@ -90,6 +143,14 @@ export declare class SchemaOrgFactory {
|
|
|
90
143
|
* @param categoryPath Url путь к категориям товаров. В пути должен присутствовать шаблон ':id', обозначающий идентификатор категории для подстановки.
|
|
91
144
|
*/
|
|
92
145
|
private createCatalogBreadcrumbsList;
|
|
146
|
+
/**
|
|
147
|
+
* Создаёт элемент BreadcrumbList в формате, рекомендованном Schema.org.
|
|
148
|
+
*
|
|
149
|
+
* @param position Позиция элемента в цепочке.
|
|
150
|
+
* @param name Название элемента.
|
|
151
|
+
* @param url URL элемента.
|
|
152
|
+
*/
|
|
153
|
+
private createBreadcrumbListItem;
|
|
93
154
|
static ɵfac: i0.ɵɵFactoryDeclaration<SchemaOrgFactory, never>;
|
|
94
155
|
static ɵprov: i0.ɵɵInjectableDeclaration<SchemaOrgFactory>;
|
|
95
156
|
}
|
|
@@ -49,6 +49,10 @@ export declare class ScSeoService {
|
|
|
49
49
|
* Объект {@link Document}, предоставляющий доступ к DOM страницы.
|
|
50
50
|
*/
|
|
51
51
|
private readonly document;
|
|
52
|
+
/**
|
|
53
|
+
* Фабрика для создания данных Schema.org.
|
|
54
|
+
*/
|
|
55
|
+
private readonly schemaOrgFactory;
|
|
52
56
|
/**
|
|
53
57
|
* Фабрика для создания экземпляров {@link Renderer2}.
|
|
54
58
|
*/
|
|
@@ -63,15 +67,17 @@ export declare class ScSeoService {
|
|
|
63
67
|
* @param resource Ресурс на основе которого необходимо установить мета-теги.
|
|
64
68
|
* @param img Изображение. Если не пришло, то будет установлено значение по умолчанию.
|
|
65
69
|
* @param robots Список robots-тегов для страницы.
|
|
70
|
+
* @param schemaOrgData Данные Schema.org для встраивания на странице.
|
|
66
71
|
*/
|
|
67
|
-
setFromResource(resource?: ScISeo, img?: string, robots?: RobotsTagType[]): void;
|
|
72
|
+
setFromResource(resource?: ScISeo, img?: string, robots?: RobotsTagType[], schemaOrgData?: WithContext<Thing>): void;
|
|
68
73
|
/**
|
|
69
74
|
* Устанавливает seo параметры со значением по умолчанию.
|
|
70
75
|
*
|
|
71
76
|
* @param title Заголовок страницы.
|
|
72
77
|
* @param robots Список robots тегов для страницы.
|
|
78
|
+
* @param schemaOrgData Данные Schema.org для встраивания на странице.
|
|
73
79
|
*/
|
|
74
|
-
setByDefault(title?: string, robots?: RobotsTagType[]): void;
|
|
80
|
+
setByDefault(title?: string, robots?: RobotsTagType[], schemaOrgData?: WithContext<Thing>): void;
|
|
75
81
|
/**
|
|
76
82
|
* Устанавливает seo параметры со значением по умолчанию. Устанавливает значение "не индексировать" для поисковых роботов.
|
|
77
83
|
*
|