@snabcentr/client-core 2.64.2 → 2.65.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/cart/internal/sc-i-cart-item-dto.d.ts +2 -2
- package/catalog/classes/index.d.ts +1 -0
- package/catalog/classes/sc-catalog-item.d.ts +31 -0
- package/catalog/dto/index.d.ts +0 -2
- package/catalog/dto/sc-category.d.ts +18 -51
- package/catalog/dto/sc-product.d.ts +26 -51
- package/catalog/dto/sc-virtual-category.d.ts +13 -30
- package/catalog/interfaces/index.d.ts +4 -0
- package/catalog/interfaces/sc-i-catalog-item.d.ts +16 -0
- package/catalog/interfaces/sc-i-category.d.ts +29 -0
- package/catalog/{internal/sc-i-product-dto.d.ts → interfaces/sc-i-product.d.ts} +8 -27
- package/catalog/interfaces/sc-i-virtual-category.d.ts +20 -0
- package/catalog/internal/index.d.ts +0 -4
- package/catalog/services/sc-catalog.service.d.ts +3 -2
- package/catalog/services/sc-favorite.service.d.ts +1 -1
- package/common/classes/index.d.ts +9 -0
- package/common/classes/sc-catalogable-item.d.ts +17 -0
- package/common/classes/sc-coded-identity.d.ts +17 -0
- package/common/classes/sc-deletable-named-identity.d.ts +17 -0
- package/common/classes/sc-hidden-catalogable-item.d.ts +17 -0
- package/common/classes/sc-identity.d.ts +25 -0
- package/common/classes/sc-image.d.ts +6 -8
- package/common/classes/sc-named-identity.d.ts +17 -0
- package/common/classes/sc-primary-catalogable-item.d.ts +17 -0
- package/common/classes/sc-reference.d.ts +21 -0
- package/common/classes/sc-updatable-named-identity.d.ts +17 -0
- package/common/index.d.ts +1 -1
- package/common/interfaces/index.d.ts +16 -0
- package/common/interfaces/sc-i-catalogable-item.d.ts +10 -0
- package/common/interfaces/sc-i-coded-identity.d.ts +10 -0
- package/common/interfaces/sc-i-created-at.d.ts +9 -0
- package/common/interfaces/sc-i-date-period.d.ts +6 -0
- package/common/interfaces/sc-i-deletable-named-identity.d.ts +7 -0
- package/common/interfaces/sc-i-deleted-at.d.ts +9 -0
- package/common/interfaces/sc-i-file.d.ts +13 -0
- package/common/interfaces/sc-i-hidden-catalogable-item.d.ts +10 -0
- package/common/interfaces/sc-i-identity.d.ts +13 -0
- package/common/interfaces/sc-i-image.d.ts +1 -1
- package/common/interfaces/sc-i-named-identity.d.ts +7 -0
- package/common/interfaces/sc-i-named.d.ts +9 -0
- package/common/interfaces/sc-i-primary-catalogable-item.d.ts +10 -0
- package/common/interfaces/sc-i-reference.d.ts +14 -0
- package/common/interfaces/sc-i-typed-nullable-range.d.ts +13 -0
- package/common/interfaces/sc-i-updatable-named-identity.d.ts +7 -0
- package/common/interfaces/sc-i-updated-at.d.ts +9 -0
- package/config/index.d.ts +0 -1
- package/esm2022/cart/internal/sc-i-cart-item-dto.mjs +1 -1
- package/esm2022/catalog/classes/index.mjs +2 -1
- package/esm2022/catalog/classes/sc-catalog-item.mjs +19 -0
- package/esm2022/catalog/dto/index.mjs +1 -3
- package/esm2022/catalog/dto/sc-category.mjs +20 -38
- package/esm2022/catalog/dto/sc-product.mjs +27 -32
- package/esm2022/catalog/dto/sc-virtual-category.mjs +11 -14
- package/esm2022/catalog/interfaces/index.mjs +5 -1
- package/esm2022/catalog/interfaces/sc-i-catalog-item.mjs +2 -0
- package/esm2022/catalog/interfaces/sc-i-category.mjs +3 -0
- package/esm2022/catalog/interfaces/sc-i-product.mjs +3 -0
- package/esm2022/catalog/interfaces/sc-i-virtual-category.mjs +2 -0
- package/esm2022/catalog/internal/index.mjs +1 -5
- package/esm2022/catalog/services/sc-catalog.service.mjs +1 -1
- package/esm2022/catalog/services/sc-favorite.service.mjs +2 -2
- package/esm2022/catalog/services/sc-recommendation.service.mjs +1 -1
- package/esm2022/common/classes/index.mjs +10 -1
- package/esm2022/common/classes/sc-catalogable-item.mjs +16 -0
- package/esm2022/common/classes/sc-coded-identity.mjs +21 -0
- package/esm2022/common/classes/sc-deletable-named-identity.mjs +18 -0
- package/esm2022/common/classes/sc-hidden-catalogable-item.mjs +16 -0
- package/esm2022/common/classes/sc-identity.mjs +23 -0
- package/esm2022/common/classes/sc-image.mjs +7 -9
- package/esm2022/common/classes/sc-named-identity.mjs +21 -0
- package/esm2022/common/classes/sc-primary-catalogable-item.mjs +16 -0
- package/esm2022/common/classes/sc-reference.mjs +17 -0
- package/esm2022/common/classes/sc-updatable-named-identity.mjs +18 -0
- package/esm2022/common/index.mjs +2 -2
- package/esm2022/common/interfaces/index.mjs +17 -1
- package/esm2022/common/interfaces/sc-i-catalogable-item.mjs +2 -0
- package/esm2022/common/interfaces/sc-i-coded-identity.mjs +2 -0
- package/esm2022/common/interfaces/sc-i-created-at.mjs +2 -0
- package/esm2022/common/interfaces/sc-i-date-period.mjs +2 -0
- package/esm2022/common/interfaces/sc-i-deletable-named-identity.mjs +2 -0
- package/esm2022/common/interfaces/sc-i-deleted-at.mjs +2 -0
- package/esm2022/common/interfaces/sc-i-file.mjs +2 -0
- package/esm2022/common/interfaces/sc-i-hidden-catalogable-item.mjs +2 -0
- package/esm2022/common/interfaces/sc-i-identity.mjs +2 -0
- package/esm2022/common/interfaces/sc-i-image.mjs +1 -1
- package/esm2022/common/interfaces/sc-i-named-identity.mjs +2 -0
- package/esm2022/common/interfaces/sc-i-named.mjs +2 -0
- package/esm2022/common/interfaces/sc-i-primary-catalogable-item.mjs +2 -0
- package/esm2022/common/interfaces/sc-i-reference.mjs +2 -0
- package/esm2022/common/interfaces/sc-i-typed-nullable-range.mjs +2 -0
- package/esm2022/common/interfaces/sc-i-updatable-named-identity.mjs +2 -0
- package/esm2022/common/interfaces/sc-i-updated-at.mjs +2 -0
- package/esm2022/config/index.mjs +1 -2
- package/esm2022/configurator/services/sc-configurator.service.mjs +1 -1
- package/esm2022/guards/index.mjs +1 -2
- package/esm2022/helpers/sc-image-helper.mjs +13 -3
- package/esm2022/helpers/sc-units-helper.mjs +1 -1
- package/esm2022/news/classes/index.mjs +1 -5
- package/esm2022/news/classes/sc-news.mjs +13 -12
- package/esm2022/news/index.mjs +4 -7
- package/esm2022/news/interfaces/index.mjs +3 -0
- package/esm2022/news/interfaces/sc-i-news-tile.mjs +2 -0
- package/esm2022/news/interfaces/sc-i-news.mjs +2 -0
- package/esm2022/news/services/index.mjs +2 -0
- package/esm2022/news/services/sc-news.service.mjs +2 -2
- package/esm2022/news/tokens/index.mjs +2 -0
- package/esm2022/public-api.mjs +2 -6
- package/esm2022/search/services/sc-search.service.mjs +5 -5
- package/esm2022/seo/classes/index.mjs +2 -0
- package/esm2022/seo/classes/schema-org-factory.mjs +269 -0
- package/esm2022/seo/index.mjs +5 -0
- package/esm2022/seo/interfaces/index.mjs +5 -0
- package/esm2022/seo/interfaces/sc-i-default-page-meta.mjs +2 -0
- package/esm2022/seo/interfaces/sc-i-schema-org-breadcrumb-list.mjs +2 -0
- package/esm2022/seo/interfaces/sc-i-seo-resource.mjs +2 -0
- package/esm2022/seo/interfaces/sc-i-seo.mjs +2 -0
- package/esm2022/seo/services/index.mjs +2 -0
- package/esm2022/seo/services/sc-seo.service.mjs +206 -0
- package/esm2022/seo/types/index.mjs +2 -0
- package/esm2022/seo/types/robots-tag-type.mjs +2 -0
- package/esm2022/tokens/sc-default-page-meta.mjs +1 -1
- package/fesm2022/snabcentr-client-core.mjs +782 -588
- package/fesm2022/snabcentr-client-core.mjs.map +1 -1
- package/guards/index.d.ts +0 -1
- package/helpers/sc-image-helper.d.ts +1 -1
- package/helpers/sc-units-helper.d.ts +1 -1
- package/news/classes/index.d.ts +0 -1
- package/news/classes/sc-news.d.ts +18 -13
- package/news/index.d.ts +3 -3
- package/news/interfaces/index.d.ts +2 -0
- package/news/interfaces/sc-i-news-tile.d.ts +22 -0
- package/news/interfaces/sc-i-news.d.ts +11 -0
- package/news/services/index.d.ts +1 -0
- package/news/services/sc-news.service.d.ts +4 -3
- package/news/tokens/index.d.ts +1 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -2
- package/search/services/sc-search.service.d.ts +5 -4
- package/seo/classes/index.d.ts +1 -0
- package/seo/classes/schema-org-factory.d.ts +88 -0
- package/seo/index.d.ts +4 -0
- package/seo/interfaces/index.d.ts +4 -0
- package/seo/interfaces/sc-i-default-page-meta.d.ts +17 -0
- package/seo/interfaces/sc-i-schema-org-breadcrumb-list.d.ts +34 -0
- package/seo/interfaces/sc-i-seo-resource.d.ts +14 -0
- package/{catalog/dto → seo/interfaces}/sc-i-seo.d.ts +3 -14
- package/seo/services/index.d.ts +1 -0
- package/seo/services/sc-seo.service.d.ts +125 -0
- package/seo/types/index.d.ts +1 -0
- package/tokens/sc-default-page-meta.d.ts +1 -1
- package/catalog/dto/sc-i-seo-resource.d.ts +0 -10
- package/catalog/dto/sc-seo-resource.d.ts +0 -22
- package/catalog/internal/sc-i-category-dto.d.ts +0 -48
- package/catalog/internal/sc-i-seo-resource-dto.d.ts +0 -10
- package/catalog/internal/sc-i-virtual-category-dto.d.ts +0 -37
- package/config/sc-i-default-page-meta.d.ts +0 -17
- package/esm2022/catalog/dto/sc-i-seo-resource.mjs +0 -2
- package/esm2022/catalog/dto/sc-i-seo.mjs +0 -2
- package/esm2022/catalog/dto/sc-seo-resource.mjs +0 -23
- package/esm2022/catalog/internal/sc-i-category-dto.mjs +0 -3
- package/esm2022/catalog/internal/sc-i-product-dto.mjs +0 -2
- package/esm2022/catalog/internal/sc-i-seo-resource-dto.mjs +0 -2
- package/esm2022/catalog/internal/sc-i-virtual-category-dto.mjs +0 -2
- package/esm2022/config/sc-i-default-page-meta.mjs +0 -2
- package/esm2022/guards/catalog-seo.guard.mjs +0 -71
- package/esm2022/news/classes/sc-news-tile.mjs +0 -2
- package/esm2022/news/internal/sc-i-news-dto.mjs +0 -2
- package/esm2022/sc-json-ld/index.mjs +0 -3
- package/esm2022/sc-json-ld/sc-json-ld.component.mjs +0 -49
- package/esm2022/sc-json-ld/sc-json-ld.module.mjs +0 -19
- package/esm2022/services/index.mjs +0 -3
- package/esm2022/services/sc-seo.service.mjs +0 -271
- package/esm2022/services/types/robots-tag-type.mjs +0 -2
- package/guards/catalog-seo.guard.d.ts +0 -14
- package/news/classes/sc-news-tile.d.ts +0 -25
- package/news/internal/sc-i-news-dto.d.ts +0 -30
- package/sc-json-ld/index.d.ts +0 -2
- package/sc-json-ld/sc-json-ld.component.d.ts +0 -31
- package/sc-json-ld/sc-json-ld.module.d.ts +0 -10
- package/services/index.d.ts +0 -2
- package/services/sc-seo.service.d.ts +0 -184
- /package/{services → seo}/types/robots-tag-type.d.ts +0 -0
|
@@ -1,271 +0,0 @@
|
|
|
1
|
-
import { DOCUMENT } from '@angular/common';
|
|
2
|
-
import { EventEmitter, inject, Injectable, RendererFactory2 } from '@angular/core';
|
|
3
|
-
import { Meta, Title } from '@angular/platform-browser';
|
|
4
|
-
import { Router } from '@angular/router';
|
|
5
|
-
import { SC_COMPANY_NAME } from '../tokens/sc-company-name';
|
|
6
|
-
import { SC_DEFAULT_PAGE_META } from '../tokens/sc-default-page-meta';
|
|
7
|
-
import { SC_URLS } from '../tokens/sc-urls';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
/**
|
|
10
|
-
* Сервис управления SEO-параметрами.
|
|
11
|
-
*/
|
|
12
|
-
export class ScSeoService {
|
|
13
|
-
/**
|
|
14
|
-
* Инициализирует экземпляр класса {@link ScSeoService}.
|
|
15
|
-
*/
|
|
16
|
-
constructor() {
|
|
17
|
-
/**
|
|
18
|
-
* Событие установки meta-тегов страницы.
|
|
19
|
-
*/
|
|
20
|
-
this.isSetMetaTagsEventEmitter = new EventEmitter();
|
|
21
|
-
/**
|
|
22
|
-
* Данные о мета-данных страницы по умолчанию.
|
|
23
|
-
*/
|
|
24
|
-
this.defaultSeo = inject(SC_DEFAULT_PAGE_META);
|
|
25
|
-
/**
|
|
26
|
-
* Сервис маршрутизации.
|
|
27
|
-
*/
|
|
28
|
-
this.router = inject(Router);
|
|
29
|
-
/**
|
|
30
|
-
* Список ссылок приложения.
|
|
31
|
-
*/
|
|
32
|
-
this.urls = inject(SC_URLS);
|
|
33
|
-
/**
|
|
34
|
-
* Сервис установки метаданных страницы.
|
|
35
|
-
*/
|
|
36
|
-
this.metaService = inject(Meta);
|
|
37
|
-
/**
|
|
38
|
-
* Сервис управления заголовком страницы.
|
|
39
|
-
*/
|
|
40
|
-
this.titleService = inject(Title);
|
|
41
|
-
/**
|
|
42
|
-
* Селектор группы для устанавливаемых метатегов.
|
|
43
|
-
*/
|
|
44
|
-
this.dataGroupSelector = 'seo-tags';
|
|
45
|
-
/**
|
|
46
|
-
* Объект {@link Document}, предоставляющий доступ к DOM страницы.
|
|
47
|
-
*/
|
|
48
|
-
this.document = inject(DOCUMENT);
|
|
49
|
-
/**
|
|
50
|
-
* Фабрика для создания экземпляров {@link Renderer2}.
|
|
51
|
-
*/
|
|
52
|
-
this.rendererFactory = inject(RendererFactory2);
|
|
53
|
-
/**
|
|
54
|
-
* Экземпляр {@link Renderer2} для безопасной работы с DOM.
|
|
55
|
-
*/
|
|
56
|
-
this.renderer = this.rendererFactory.createRenderer(null, null);
|
|
57
|
-
/**
|
|
58
|
-
* Название компании.
|
|
59
|
-
*/
|
|
60
|
-
this.companyName = inject(SC_COMPANY_NAME);
|
|
61
|
-
this.setShareType('website');
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Устанавливает meta-теги.
|
|
65
|
-
*
|
|
66
|
-
* @param title Заголовок страницы.
|
|
67
|
-
* @param description Описание страницы.
|
|
68
|
-
* @param keywords Ключевые слова страницы.
|
|
69
|
-
* @param emitEventAfterSet Признак того, необходимо ли генерировать событие, после установки тегов. По умолчанию {@link true}.
|
|
70
|
-
* @param robots Список robots тегов для страницы.
|
|
71
|
-
*/
|
|
72
|
-
setPageMetaTags(title = this.defaultSeo.title, description = this.defaultSeo.description, keywords = this.defaultSeo.keywords, emitEventAfterSet = true, robots = ['index', 'follow']) {
|
|
73
|
-
this.setPageTitle(title);
|
|
74
|
-
this.setPageMetaDescription(description);
|
|
75
|
-
this.setPageMetaKeywords(keywords);
|
|
76
|
-
this.setPageMetaRobots(robots);
|
|
77
|
-
if (emitEventAfterSet) {
|
|
78
|
-
this.isSetMetaTagsEventEmitter.emit();
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Устанавливает Open Graph meta-теги.
|
|
83
|
-
*
|
|
84
|
-
* @param ogTitle Open Graph заголовок.
|
|
85
|
-
* @param ogDescription Open Graph описание.
|
|
86
|
-
* @param ogImg Open Graph изображение.
|
|
87
|
-
* @param emitEventAfterSet Признак того, необходимо ли генерировать событие, после установки тегов. По умолчанию {@link true}.
|
|
88
|
-
*/
|
|
89
|
-
setPageOpenGraphMetaTags(ogTitle = this.defaultSeo.title, ogDescription = this.defaultSeo.description, ogImg = this.urls.logoUrl, emitEventAfterSet = true) {
|
|
90
|
-
this.setOpenGraphMetaTags(ogTitle, ogDescription, `${this.urls.siteUrl}${this.router.url}`, ogImg);
|
|
91
|
-
if (emitEventAfterSet) {
|
|
92
|
-
this.isSetMetaTagsEventEmitter.emit();
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Устанавливает все meta-теги из пришедшего источника. Если какого-то тега нет, будет установлено значение по умолчанию.
|
|
97
|
-
*
|
|
98
|
-
* @param resource Источник meta - тегов.
|
|
99
|
-
* @param img Изображение. Если не пришло, то будет установлено значение по умолчанию.
|
|
100
|
-
* @param robots Список robots тегов для страницы.
|
|
101
|
-
*/
|
|
102
|
-
setMetaTagsFromResource(resource, img = this.urls.logoUrl, robots = ['index', 'follow']) {
|
|
103
|
-
this.setAllPageMetaTags(resource?.title, resource?.description, resource?.keywords, img, resource?.meta, robots);
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Устанавливает все meta-теги страницы со значением по умолчанию, внедряя туда заголовок, если он передан.
|
|
107
|
-
*
|
|
108
|
-
* @param title Заголовок страницы.
|
|
109
|
-
* @param robots Список robots тегов для страницы.
|
|
110
|
-
*/
|
|
111
|
-
setDefaultAllPageMetaTags(title = this.defaultSeo.title, robots = ['index', 'follow']) {
|
|
112
|
-
this.setAllPageMetaTags(`${title} - ${this.companyName}`, `${title}, ${this.defaultSeo.description}`, undefined, undefined, [], robots);
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Устанавливает все meta-теги страницы со значением по умолчанию, внедряя туда заголовок, если он передан. Устанавливает значение "не индексировать" для поисковых роботов.
|
|
116
|
-
*
|
|
117
|
-
* @param title Заголовок страницы.
|
|
118
|
-
*/
|
|
119
|
-
setNoIndexDefaultAllPageMetaTags(title = this.defaultSeo.title) {
|
|
120
|
-
this.setAllPageMetaTags(`${title} - ${this.companyName}`, `${title}, ${this.defaultSeo.description}`, undefined, undefined, [], ['noindex', 'nofollow', 'noarchive']);
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Устанавливает все meta-теги страницы. Если какой-либо из параметров не указан, для него устанавливается значение по умолчанию.
|
|
124
|
-
*
|
|
125
|
-
* @param title Заголовок страницы.
|
|
126
|
-
* @param description Описание страницы.
|
|
127
|
-
* @param keywords Ключевые слова страницы.
|
|
128
|
-
* @param img Изображение.
|
|
129
|
-
* @param meta Массив дополнительных значений метатегов.
|
|
130
|
-
* @param robots Список robots тегов для страницы.
|
|
131
|
-
*/
|
|
132
|
-
setAllPageMetaTags(title = this.defaultSeo.title, description = this.defaultSeo.description, keywords = this.defaultSeo.keywords, img = this.urls.logoUrl, meta = [], robots = ['index', 'follow']) {
|
|
133
|
-
this.removeMetaTags();
|
|
134
|
-
this.setPageTitle(title);
|
|
135
|
-
this.setPageMetaDescription(description);
|
|
136
|
-
this.setPageMetaKeywords(keywords);
|
|
137
|
-
this.setOpenGraphMetaTags(title, description, `${this.urls.siteUrl}${this.router.url}`, img);
|
|
138
|
-
meta.forEach((tag) => {
|
|
139
|
-
this.setPageMetaByName(tag.name, tag.content);
|
|
140
|
-
});
|
|
141
|
-
this.setPageMetaRobots(robots);
|
|
142
|
-
this.isSetMetaTagsEventEmitter.emit();
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Устанавливает meta-тег robots для страницы.
|
|
146
|
-
*
|
|
147
|
-
* @param robots Список robots тегов для страницы.
|
|
148
|
-
*/
|
|
149
|
-
setPageMetaRobots(robots) {
|
|
150
|
-
this.setPageMetaByName('robots', robots.join(', '));
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Удаляет все установленные meta-теги.
|
|
154
|
-
*/
|
|
155
|
-
removeMetaTags() {
|
|
156
|
-
const tags = this.document.querySelectorAll(`meta[data-group="${this.dataGroupSelector}"]`);
|
|
157
|
-
tags.forEach((tag) => {
|
|
158
|
-
this.metaService.removeTagElement(tag);
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Возвращает сгенерированный SEO-resource с указанными параметрами.
|
|
163
|
-
*
|
|
164
|
-
* @param seo Данные SEO ресурса.
|
|
165
|
-
* @param defaultTitle Заголовок страницы используемый в случае отсутствия заголовка в SEO-ресурсе.
|
|
166
|
-
* @param defaultDescription Описание страницы используемое в случае отсутствия описания в SEO-ресурсе.
|
|
167
|
-
* @param defaultKeyWords Ключевые слова страницы используемые в случае отсутствия ключевых слов в SEO-ресурсе.
|
|
168
|
-
*/
|
|
169
|
-
getGenerateSeoResource(seo, defaultTitle, defaultDescription = this.defaultSeo.description, defaultKeyWords = this.defaultSeo.keywords) {
|
|
170
|
-
return {
|
|
171
|
-
title: seo?.title ?? defaultTitle,
|
|
172
|
-
description: seo?.description ?? defaultDescription,
|
|
173
|
-
keywords: seo?.keywords ?? defaultKeyWords,
|
|
174
|
-
meta: seo?.meta,
|
|
175
|
-
};
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* Устанавливает тег канонической страницы <link rel="canonical" href="..." />.
|
|
179
|
-
*
|
|
180
|
-
* @param url URL который необходимо использовать в качестве ссылки.
|
|
181
|
-
*/
|
|
182
|
-
setCanonicalLink(url) {
|
|
183
|
-
// Удаляем существующий link canonical.
|
|
184
|
-
const existingLink = this.document.querySelector('link[rel="canonical"]');
|
|
185
|
-
if (existingLink?.parentNode) {
|
|
186
|
-
this.renderer.removeChild(existingLink.parentNode, existingLink);
|
|
187
|
-
}
|
|
188
|
-
// Создаём и устанавливаем новый тег.
|
|
189
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
190
|
-
const link = this.renderer.createElement('link');
|
|
191
|
-
this.renderer.setAttribute(link, 'rel', 'canonical');
|
|
192
|
-
this.renderer.setAttribute(link, 'href', url);
|
|
193
|
-
this.renderer.appendChild(this.document.head, link);
|
|
194
|
-
}
|
|
195
|
-
/**
|
|
196
|
-
* Устанавливает title-заголовок страницы.
|
|
197
|
-
*
|
|
198
|
-
* @param title Заголовок страницы.
|
|
199
|
-
* @param appendDefaultTitle Флаг необходимости добавить заголовок по умолчанию в конец заголовка страницы.
|
|
200
|
-
*/
|
|
201
|
-
setPageTitle(title, appendDefaultTitle = false) {
|
|
202
|
-
this.titleService.setTitle(title + (appendDefaultTitle ? ` - ${this.defaultSeo.title}` : ''));
|
|
203
|
-
}
|
|
204
|
-
/**
|
|
205
|
-
* Устанавливает meta-описание страницы.
|
|
206
|
-
*
|
|
207
|
-
* @param description Meta-описание страницы.
|
|
208
|
-
*/
|
|
209
|
-
setPageMetaDescription(description) {
|
|
210
|
-
this.setPageMetaByName('description', description);
|
|
211
|
-
}
|
|
212
|
-
/**
|
|
213
|
-
* Устанавливает meta-ключевые слова страницы.
|
|
214
|
-
*
|
|
215
|
-
* @param keywords Meta-ключевые слова страницы.
|
|
216
|
-
*/
|
|
217
|
-
setPageMetaKeywords(keywords) {
|
|
218
|
-
this.setPageMetaByName('keywords', keywords);
|
|
219
|
-
}
|
|
220
|
-
/**
|
|
221
|
-
* Устанавливает Open Graph meta-теги страницы для социальных сетей.
|
|
222
|
-
*
|
|
223
|
-
* @param title Заголовок страницы.
|
|
224
|
-
* @param description Описание страницы.
|
|
225
|
-
* @param url Ссылка на страницу.
|
|
226
|
-
* @param img Изображение.
|
|
227
|
-
*/
|
|
228
|
-
setOpenGraphMetaTags(title, description, url, img) {
|
|
229
|
-
this.setOpenGraphMetaByProperty('og:title', title);
|
|
230
|
-
this.setOpenGraphMetaByProperty('og:url', url);
|
|
231
|
-
this.setOpenGraphMetaByProperty('og:image', img);
|
|
232
|
-
this.setOpenGraphMetaByProperty('og:description', description);
|
|
233
|
-
this.setOpenGraphMetaByProperty('og:type', 'website');
|
|
234
|
-
}
|
|
235
|
-
/**
|
|
236
|
-
* Устанавливает meta-тег страницы с указанным именем.
|
|
237
|
-
* Будет создан или обновлён заголовок вида `<meta name="{name}" content="{content}" />`
|
|
238
|
-
*
|
|
239
|
-
* @param name Название заголовка.
|
|
240
|
-
* @param content Содержимое заголовка.
|
|
241
|
-
*/
|
|
242
|
-
setPageMetaByName(name, content) {
|
|
243
|
-
this.metaService.updateTag({ name: name, content: content, 'data-group': this.dataGroupSelector });
|
|
244
|
-
}
|
|
245
|
-
/**
|
|
246
|
-
* Устанавливает Open Graph meta-тег по свойству атрибута property.
|
|
247
|
-
*
|
|
248
|
-
* @param property Свойство атрибута.
|
|
249
|
-
* @param content Содержимое тега.
|
|
250
|
-
*/
|
|
251
|
-
setOpenGraphMetaByProperty(property, content) {
|
|
252
|
-
this.metaService.updateTag({ property: property, content: content, 'data-group': this.dataGroupSelector });
|
|
253
|
-
}
|
|
254
|
-
/**
|
|
255
|
-
* Устанавливает Open Graph мета-тег типа объекта.
|
|
256
|
-
*
|
|
257
|
-
* @param type Тип объекта.
|
|
258
|
-
*/
|
|
259
|
-
setShareType(type) {
|
|
260
|
-
this.setOpenGraphMetaByProperty('og:type', type);
|
|
261
|
-
}
|
|
262
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScSeoService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
263
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScSeoService, providedIn: 'root' }); }
|
|
264
|
-
}
|
|
265
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScSeoService, decorators: [{
|
|
266
|
-
type: Injectable,
|
|
267
|
-
args: [{
|
|
268
|
-
providedIn: 'root',
|
|
269
|
-
}]
|
|
270
|
-
}], ctorParameters: () => [] });
|
|
271
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc2VvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NlcnZpY2VzL3NjLXNlby5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQWEsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFLekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFHNUM7O0dBRUc7QUFJSCxNQUFNLE9BQU8sWUFBWTtJQXdEckI7O09BRUc7SUFDSDtRQTFEQTs7V0FFRztRQUNhLDhCQUF5QixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXpGOztXQUVHO1FBQ2MsZUFBVSxHQUF1QixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUUvRTs7V0FFRztRQUNjLFdBQU0sR0FBVyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFakQ7O1dBRUc7UUFDYyxTQUFJLEdBQVksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWpEOztXQUVHO1FBQ2MsZ0JBQVcsR0FBUyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbEQ7O1dBRUc7UUFDYyxpQkFBWSxHQUFVLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVyRDs7V0FFRztRQUNjLHNCQUFpQixHQUFXLFVBQVUsQ0FBQztRQUV4RDs7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L0MsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsMEJBQTBCLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssaUJBQWlCLENBQUMsSUFBWSxFQUFFLE9BQWU7UUFDbkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7SUFDdkcsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssMEJBQTBCLENBQUMsUUFBZ0IsRUFBRSxPQUFlO1FBQ2hFLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO0lBQy9HLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssWUFBWSxDQUFDLElBQVk7UUFDN0IsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNyRCxDQUFDOytHQW5UUSxZQUFZO21IQUFaLFlBQVksY0FGVCxNQUFNOzs0RkFFVCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbmplY3RhYmxlLCBSZW5kZXJlcjIsIFJlbmRlcmVyRmFjdG9yeTIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1ldGEsIFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBTY0lTZW8gfSBmcm9tICcuLi9jYXRhbG9nL2R0by9zYy1pLXNlbyc7XG5pbXBvcnQgeyBTY0lEZWZhdWx0UGFnZU1ldGEgfSBmcm9tICcuLi9jb25maWcvc2MtaS1kZWZhdWx0LXBhZ2UtbWV0YSc7XG5pbXBvcnQgeyBTY0lVcmxzIH0gZnJvbSAnLi4vY29uZmlnL3NjLWktdXJscyc7XG5pbXBvcnQgeyBTQ19DT01QQU5ZX05BTUUgfSBmcm9tICcuLi90b2tlbnMvc2MtY29tcGFueS1uYW1lJztcbmltcG9ydCB7IFNDX0RFRkFVTFRfUEFHRV9NRVRBIH0gZnJvbSAnLi4vdG9rZW5zL3NjLWRlZmF1bHQtcGFnZS1tZXRhJztcbmltcG9ydCB7IFNDX1VSTFMgfSBmcm9tICcuLi90b2tlbnMvc2MtdXJscyc7XG5pbXBvcnQgeyBSb2JvdHNUYWdUeXBlIH0gZnJvbSAnLi90eXBlcy9yb2JvdHMtdGFnLXR5cGUnO1xuXG4vKipcbiAqINCh0LXRgNCy0LjRgSDRg9C/0YDQsNCy0LvQtdC90LjRjyBTRU8t0L/QsNGA0LDQvNC10YLRgNCw0LzQuC5cbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2NTZW9TZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiDQodC+0LHRi9GC0LjQtSDRg9GB0YLQsNC90L7QstC60LggbWV0YS3RgtC10LPQvtCyINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGlzU2V0TWV0YVRhZ3NFdmVudEVtaXR0ZXI6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqINCU0LDQvdC90YvQtSDQviDQvNC10YLQsC3QtNCw0L3QvdGL0YUg0YHRgtGA0LDQvdC40YbRiyDQv9C+INGD0LzQvtC70YfQsNC90LjRji5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRTZW86IFNjSURlZmF1bHRQYWdlTWV0YSA9IGluamVjdChTQ19ERUZBVUxUX1BBR0VfTUVUQSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LzQsNGA0YjRgNGD0YLQuNC30LDRhtC40LguXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INGB0YHRi9C70L7QuiDQv9GA0LjQu9C+0LbQtdC90LjRjy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVybHM6IFNjSVVybHMgPSBpbmplY3QoU0NfVVJMUyk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0YPRgdGC0LDQvdC+0LLQutC4INC80LXRgtCw0LTQsNC90L3Ri9GFINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXRhU2VydmljZTogTWV0YSA9IGluamVjdChNZXRhKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDRg9C/0YDQsNCy0LvQtdC90LjRjyDQt9Cw0LPQvtC70L7QstC60L7QvCDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdGl0bGVTZXJ2aWNlOiBUaXRsZSA9IGluamVjdChUaXRsZSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10LvQtdC60YLQvtGAINCz0YDRg9C/0L/RiyDQtNC70Y8g0YPRgdGC0LDQvdCw0LLQu9C40LLQsNC10LzRi9GFINC80LXRgtCw0YLQtdCz0L7Qsi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGFHcm91cFNlbGVjdG9yOiBzdHJpbmcgPSAnc2VvLXRhZ3MnO1xuXG4gICAgLyoqXG4gICAgICog0J7QsdGK0LXQutGCIHtAbGluayBEb2N1bWVudH0sINC/0YDQtdC00L7RgdGC0LDQstC70Y/RjtGJ0LjQuSDQtNC+0YHRgtGD0L8g0LogRE9NINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gICAgLyoqXG4gICAgICog0KTQsNCx0YDQuNC60LAg0LTQu9GPINGB0L7Qt9C00LDQvdC40Y8g0Y3QutC30LXQvNC/0LvRj9GA0L7QsiB7QGxpbmsgUmVuZGVyZXIyfS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MiA9IGluamVjdChSZW5kZXJlckZhY3RvcnkyKTtcblxuICAgIC8qKlxuICAgICAqINCt0LrQt9C10LzQv9C70Y/RgCB7QGxpbmsgUmVuZGVyZXIyfSDQtNC70Y8g0LHQtdC30L7Qv9Cw0YHQvdC+0Lkg0YDQsNCx0L7RgtGLINGBIERPTS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIgPSB0aGlzLnJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKTtcblxuICAgIC8qKlxuICAgICAqINCd0LDQt9Cy0LDQvdC40LUg0LrQvtC80L/QsNC90LjQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbXBhbnlOYW1lOiBzdHJpbmcgPSBpbmplY3QoU0NfQ09NUEFOWV9OQU1FKTtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NTZW9TZXJ2aWNlfS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuc2V0U2hhcmVUeXBlKCd3ZWJzaXRlJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgbWV0YS3RgtC10LPQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0aXRsZSDQl9Cw0LPQvtC70L7QstC+0Log0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24g0J7Qv9C40YHQsNC90LjQtSDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSBrZXl3b3JkcyDQmtC70Y7Rh9C10LLRi9C1INGB0LvQvtCy0LAg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKiBAcGFyYW0gZW1pdEV2ZW50QWZ0ZXJTZXQg0J/RgNC40LfQvdCw0Log0YLQvtCz0L4sINC90LXQvtCx0YXQvtC00LjQvNC+INC70Lgg0LPQtdC90LXRgNC40YDQvtCy0LDRgtGMINGB0L7QsdGL0YLQuNC1LCDQv9C+0YHQu9C1INGD0YHRgtCw0L3QvtCy0LrQuCDRgtC10LPQvtCyLiDQn9C+INGD0LzQvtC70YfQsNC90LjRjiB7QGxpbmsgdHJ1ZX0uXG4gICAgICogQHBhcmFtIHJvYm90cyDQodC/0LjRgdC+0Logcm9ib3RzINGC0LXQs9C+0LIg0LTQu9GPINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHVibGljIHNldFBhZ2VNZXRhVGFncyhcbiAgICAgICAgdGl0bGU6IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby50aXRsZSxcbiAgICAgICAgZGVzY3JpcHRpb246IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby5kZXNjcmlwdGlvbixcbiAgICAgICAga2V5d29yZHM6IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby5rZXl3b3JkcyxcbiAgICAgICAgZW1pdEV2ZW50QWZ0ZXJTZXQ6IGJvb2xlYW4gPSB0cnVlLFxuICAgICAgICByb2JvdHM6IFJvYm90c1RhZ1R5cGVbXSA9IFsnaW5kZXgnLCAnZm9sbG93J11cbiAgICApOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRQYWdlVGl0bGUodGl0bGUpO1xuICAgICAgICB0aGlzLnNldFBhZ2VNZXRhRGVzY3JpcHRpb24oZGVzY3JpcHRpb24pO1xuICAgICAgICB0aGlzLnNldFBhZ2VNZXRhS2V5d29yZHMoa2V5d29yZHMpO1xuXG4gICAgICAgIHRoaXMuc2V0UGFnZU1ldGFSb2JvdHMocm9ib3RzKTtcblxuICAgICAgICBpZiAoZW1pdEV2ZW50QWZ0ZXJTZXQpIHtcbiAgICAgICAgICAgIHRoaXMuaXNTZXRNZXRhVGFnc0V2ZW50RW1pdHRlci5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBPcGVuIEdyYXBoIG1ldGEt0YLQtdCz0LguXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb2dUaXRsZSBPcGVuIEdyYXBoINC30LDQs9C+0LvQvtCy0L7Qui5cbiAgICAgKiBAcGFyYW0gb2dEZXNjcmlwdGlvbiBPcGVuIEdyYXBoINC+0L/QuNGB0LDQvdC40LUuXG4gICAgICogQHBhcmFtIG9nSW1nIE9wZW4gR3JhcGgg0LjQt9C+0LHRgNCw0LbQtdC90LjQtS5cbiAgICAgKiBAcGFyYW0gZW1pdEV2ZW50QWZ0ZXJTZXQg0J/RgNC40LfQvdCw0Log0YLQvtCz0L4sINC90LXQvtCx0YXQvtC00LjQvNC+INC70Lgg0LPQtdC90LXRgNC40YDQvtCy0LDRgtGMINGB0L7QsdGL0YLQuNC1LCDQv9C+0YHQu9C1INGD0YHRgtCw0L3QvtCy0LrQuCDRgtC10LPQvtCyLiDQn9C+INGD0LzQvtC70YfQsNC90LjRjiB7QGxpbmsgdHJ1ZX0uXG4gICAgICovXG4gICAgcHVibGljIHNldFBhZ2VPcGVuR3JhcGhNZXRhVGFncyhcbiAgICAgICAgb2dUaXRsZTogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLnRpdGxlLFxuICAgICAgICBvZ0Rlc2NyaXB0aW9uOiBzdHJpbmcgPSB0aGlzLmRlZmF1bHRTZW8uZGVzY3JpcHRpb24sXG4gICAgICAgIG9nSW1nOiBzdHJpbmcgPSB0aGlzLnVybHMubG9nb1VybCxcbiAgICAgICAgZW1pdEV2ZW50QWZ0ZXJTZXQ6IGJvb2xlYW4gPSB0cnVlXG4gICAgKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0T3BlbkdyYXBoTWV0YVRhZ3Mob2dUaXRsZSwgb2dEZXNjcmlwdGlvbiwgYCR7dGhpcy51cmxzLnNpdGVVcmx9JHt0aGlzLnJvdXRlci51cmx9YCwgb2dJbWcpO1xuXG4gICAgICAgIGlmIChlbWl0RXZlbnRBZnRlclNldCkge1xuICAgICAgICAgICAgdGhpcy5pc1NldE1ldGFUYWdzRXZlbnRFbWl0dGVyLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINCy0YHQtSBtZXRhLdGC0LXQs9C4INC40Lcg0L/RgNC40YjQtdC00YjQtdCz0L4g0LjRgdGC0L7Rh9C90LjQutCwLiDQldGB0LvQuCDQutCw0LrQvtCz0L4t0YLQviDRgtC10LPQsCDQvdC10YIsINCx0YPQtNC10YIg0YPRgdGC0LDQvdC+0LLQu9C10L3QviDQt9C90LDRh9C10L3QuNC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJlc291cmNlINCY0YHRgtC+0YfQvdC40LogbWV0YSAtINGC0LXQs9C+0LIuXG4gICAgICogQHBhcmFtIGltZyDQmNC30L7QsdGA0LDQttC10L3QuNC1LiDQldGB0LvQuCDQvdC1INC/0YDQuNGI0LvQviwg0YLQviDQsdGD0LTQtdGCINGD0YHRgtCw0L3QvtCy0LvQtdC90L4g0LfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRji5cbiAgICAgKiBAcGFyYW0gcm9ib3RzINCh0L/QuNGB0L7QuiByb2JvdHMg0YLQtdCz0L7QsiDQtNC70Y8g0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0TWV0YVRhZ3NGcm9tUmVzb3VyY2UocmVzb3VyY2U/OiBTY0lTZW8sIGltZzogc3RyaW5nID0gdGhpcy51cmxzLmxvZ29VcmwsIHJvYm90czogUm9ib3RzVGFnVHlwZVtdID0gWydpbmRleCcsICdmb2xsb3cnXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldEFsbFBhZ2VNZXRhVGFncyhyZXNvdXJjZT8udGl0bGUsIHJlc291cmNlPy5kZXNjcmlwdGlvbiwgcmVzb3VyY2U/LmtleXdvcmRzLCBpbWcsIHJlc291cmNlPy5tZXRhLCByb2JvdHMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINCy0YHQtSBtZXRhLdGC0LXQs9C4INGB0YLRgNCw0L3QuNGG0Ysg0YHQviDQt9C90LDRh9C10L3QuNC10Lwg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4sINCy0L3QtdC00YDRj9GPINGC0YPQtNCwINC30LDQs9C+0LvQvtCy0L7Quiwg0LXRgdC70Lgg0L7QvSDQv9C10YDQtdC00LDQvS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0aXRsZSDQl9Cw0LPQvtC70L7QstC+0Log0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKiBAcGFyYW0gcm9ib3RzINCh0L/QuNGB0L7QuiByb2JvdHMg0YLQtdCz0L7QsiDQtNC70Y8g0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0RGVmYXVsdEFsbFBhZ2VNZXRhVGFncyh0aXRsZTogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLnRpdGxlLCByb2JvdHM6IFJvYm90c1RhZ1R5cGVbXSA9IFsnaW5kZXgnLCAnZm9sbG93J10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRBbGxQYWdlTWV0YVRhZ3MoYCR7dGl0bGV9IC0gJHt0aGlzLmNvbXBhbnlOYW1lfWAsIGAke3RpdGxlfSwgJHt0aGlzLmRlZmF1bHRTZW8uZGVzY3JpcHRpb259YCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIFtdLCByb2JvdHMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINCy0YHQtSBtZXRhLdGC0LXQs9C4INGB0YLRgNCw0L3QuNGG0Ysg0YHQviDQt9C90LDRh9C10L3QuNC10Lwg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4sINCy0L3QtdC00YDRj9GPINGC0YPQtNCwINC30LDQs9C+0LvQvtCy0L7Quiwg0LXRgdC70Lgg0L7QvSDQv9C10YDQtdC00LDQvS4g0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0LfQvdCw0YfQtdC90LjQtSBcItC90LUg0LjQvdC00LXQutGB0LjRgNC+0LLQsNGC0YxcIiDQtNC70Y8g0L/QvtC40YHQutC+0LLRi9GFINGA0L7QsdC+0YLQvtCyLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRpdGxlINCX0LDQs9C+0LvQvtCy0L7QuiDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXROb0luZGV4RGVmYXVsdEFsbFBhZ2VNZXRhVGFncyh0aXRsZTogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLnRpdGxlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0QWxsUGFnZU1ldGFUYWdzKGAke3RpdGxlfSAtICR7dGhpcy5jb21wYW55TmFtZX1gLCBgJHt0aXRsZX0sICR7dGhpcy5kZWZhdWx0U2VvLmRlc2NyaXB0aW9ufWAsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBbXSwgWydub2luZGV4JywgJ25vZm9sbG93JywgJ25vYXJjaGl2ZSddKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQstGB0LUgbWV0YS3RgtC10LPQuCDRgdGC0YDQsNC90LjRhtGLLiDQldGB0LvQuCDQutCw0LrQvtC5LdC70LjQsdC+INC40Lcg0L/QsNGA0LDQvNC10YLRgNC+0LIg0L3QtSDRg9C60LDQt9Cw0L0sINC00LvRjyDQvdC10LPQviDRg9GB0YLQsNC90LDQstC70LjQstCw0LXRgtGB0Y8g0LfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRji5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0aXRsZSDQl9Cw0LPQvtC70L7QstC+0Log0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24g0J7Qv9C40YHQsNC90LjQtSDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSBrZXl3b3JkcyDQmtC70Y7Rh9C10LLRi9C1INGB0LvQvtCy0LAg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKiBAcGFyYW0gaW1nINCY0LfQvtCx0YDQsNC20LXQvdC40LUuXG4gICAgICogQHBhcmFtIG1ldGEg0JzQsNGB0YHQuNCyINC00L7Qv9C+0LvQvdC40YLQtdC70YzQvdGL0YUg0LfQvdCw0YfQtdC90LjQuSDQvNC10YLQsNGC0LXQs9C+0LIuXG4gICAgICogQHBhcmFtIHJvYm90cyDQodC/0LjRgdC+0Logcm9ib3RzINGC0LXQs9C+0LIg0LTQu9GPINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHVibGljIHNldEFsbFBhZ2VNZXRhVGFncyhcbiAgICAgICAgdGl0bGU6IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby50aXRsZSxcbiAgICAgICAgZGVzY3JpcHRpb246IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby5kZXNjcmlwdGlvbixcbiAgICAgICAga2V5d29yZHM6IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby5rZXl3b3JkcyxcbiAgICAgICAgaW1nOiBzdHJpbmcgPSB0aGlzLnVybHMubG9nb1VybCxcbiAgICAgICAgbWV0YTogU2NJU2VvWydtZXRhJ10gPSBbXSxcbiAgICAgICAgcm9ib3RzOiBSb2JvdHNUYWdUeXBlW10gPSBbJ2luZGV4JywgJ2ZvbGxvdyddXG4gICAgKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVtb3ZlTWV0YVRhZ3MoKTtcbiAgICAgICAgdGhpcy5zZXRQYWdlVGl0bGUodGl0bGUpO1xuICAgICAgICB0aGlzLnNldFBhZ2VNZXRhRGVzY3JpcHRpb24oZGVzY3JpcHRpb24pO1xuICAgICAgICB0aGlzLnNldFBhZ2VNZXRhS2V5d29yZHMoa2V5d29yZHMpO1xuICAgICAgICB0aGlzLnNldE9wZW5HcmFwaE1ldGFUYWdzKHRpdGxlLCBkZXNjcmlwdGlvbiwgYCR7dGhpcy51cmxzLnNpdGVVcmx9JHt0aGlzLnJvdXRlci51cmx9YCwgaW1nKTtcbiAgICAgICAgbWV0YS5mb3JFYWNoKCh0YWcpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0UGFnZU1ldGFCeU5hbWUodGFnLm5hbWUsIHRhZy5jb250ZW50KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2V0UGFnZU1ldGFSb2JvdHMocm9ib3RzKTtcblxuICAgICAgICB0aGlzLmlzU2V0TWV0YVRhZ3NFdmVudEVtaXR0ZXIuZW1pdCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCIG1ldGEt0YLQtdCzIHJvYm90cyDQtNC70Y8g0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByb2JvdHMg0KHQv9C40YHQvtC6IHJvYm90cyDRgtC10LPQvtCyINC00LvRjyDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRQYWdlTWV0YVJvYm90cyhyb2JvdHM6IFJvYm90c1RhZ1R5cGVbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFBhZ2VNZXRhQnlOYW1lKCdyb2JvdHMnLCByb2JvdHMuam9pbignLCAnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPQtNCw0LvRj9C10YIg0LLRgdC1INGD0YHRgtCw0L3QvtCy0LvQtdC90L3Ri9C1IG1ldGEt0YLQtdCz0LguXG4gICAgICovXG4gICAgcHVibGljIHJlbW92ZU1ldGFUYWdzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB0YWdzID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsPEhUTUxNZXRhRWxlbWVudD4oYG1ldGFbZGF0YS1ncm91cD1cIiR7dGhpcy5kYXRhR3JvdXBTZWxlY3Rvcn1cIl1gKTtcblxuICAgICAgICB0YWdzLmZvckVhY2goKHRhZykgPT4ge1xuICAgICAgICAgICAgdGhpcy5tZXRhU2VydmljZS5yZW1vdmVUYWdFbGVtZW50KHRhZyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGB0LPQtdC90LXRgNC40YDQvtCy0LDQvdC90YvQuSBTRU8tcmVzb3VyY2Ug0YEg0YPQutCw0LfQsNC90L3Ri9C80Lgg0L/QsNGA0LDQvNC10YLRgNCw0LzQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzZW8g0JTQsNC90L3Ri9C1IFNFTyDRgNC10YHRg9GA0YHQsC5cbiAgICAgKiBAcGFyYW0gZGVmYXVsdFRpdGxlINCX0LDQs9C+0LvQvtCy0L7QuiDRgdGC0YDQsNC90LjRhtGLINC40YHQv9C+0LvRjNC30YPQtdC80YvQuSDQsiDRgdC70YPRh9Cw0LUg0L7RgtGB0YPRgtGB0YLQstC40Y8g0LfQsNCz0L7Qu9C+0LLQutCwINCyIFNFTy3RgNC10YHRg9GA0YHQtS5cbiAgICAgKiBAcGFyYW0gZGVmYXVsdERlc2NyaXB0aW9uINCe0L/QuNGB0LDQvdC40LUg0YHRgtGA0LDQvdC40YbRiyDQuNGB0L/QvtC70YzQt9GD0LXQvNC+0LUg0LIg0YHQu9GD0YfQsNC1INC+0YLRgdGD0YLRgdGC0LLQuNGPINC+0L/QuNGB0LDQvdC40Y8g0LIgU0VPLdGA0LXRgdGD0YDRgdC1LlxuICAgICAqIEBwYXJhbSBkZWZhdWx0S2V5V29yZHMg0JrQu9GO0YfQtdCy0YvQtSDRgdC70L7QstCwINGB0YLRgNCw0L3QuNGG0Ysg0LjRgdC/0L7Qu9GM0LfRg9C10LzRi9C1INCyINGB0LvRg9GH0LDQtSDQvtGC0YHRg9GC0YHRgtCy0LjRjyDQutC70Y7Rh9C10LLRi9GFINGB0LvQvtCyINCyIFNFTy3RgNC10YHRg9GA0YHQtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0R2VuZXJhdGVTZW9SZXNvdXJjZShcbiAgICAgICAgc2VvOiBTY0lTZW8gfCB1bmRlZmluZWQsXG4gICAgICAgIGRlZmF1bHRUaXRsZTogc3RyaW5nLFxuICAgICAgICBkZWZhdWx0RGVzY3JpcHRpb246IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby5kZXNjcmlwdGlvbixcbiAgICAgICAgZGVmYXVsdEtleVdvcmRzOiBzdHJpbmcgPSB0aGlzLmRlZmF1bHRTZW8ua2V5d29yZHNcbiAgICApOiBTY0lTZW8ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGl0bGU6IHNlbz8udGl0bGUgPz8gZGVmYXVsdFRpdGxlLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IHNlbz8uZGVzY3JpcHRpb24gPz8gZGVmYXVsdERlc2NyaXB0aW9uLFxuICAgICAgICAgICAga2V5d29yZHM6IHNlbz8ua2V5d29yZHMgPz8gZGVmYXVsdEtleVdvcmRzLFxuICAgICAgICAgICAgbWV0YTogc2VvPy5tZXRhLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINGC0LXQsyDQutCw0L3QvtC90LjRh9C10YHQutC+0Lkg0YHRgtGA0LDQvdC40YbRiyA8bGluayByZWw9XCJjYW5vbmljYWxcIiBocmVmPVwiLi4uXCIgLz4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXJsIFVSTCDQutC+0YLQvtGA0YvQuSDQvdC10L7QsdGF0L7QtNC40LzQviDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0LIg0LrQsNGH0LXRgdGC0LLQtSDRgdGB0YvQu9C60LguXG4gICAgICovXG4gICAgcHVibGljIHNldENhbm9uaWNhbExpbmsodXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgLy8g0KPQtNCw0LvRj9C10Lwg0YHRg9GJ0LXRgdGC0LLRg9GO0YnQuNC5IGxpbmsgY2Fub25pY2FsLlxuICAgICAgICBjb25zdCBleGlzdGluZ0xpbmsgPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2xpbmtbcmVsPVwiY2Fub25pY2FsXCJdJyk7XG5cbiAgICAgICAgaWYgKGV4aXN0aW5nTGluaz8ucGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZChleGlzdGluZ0xpbmsucGFyZW50Tm9kZSwgZXhpc3RpbmdMaW5rKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vINCh0L7Qt9C00LDRkdC8INC4INGD0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdC8INC90L7QstGL0Lkg0YLQtdCzLlxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50XG4gICAgICAgIGNvbnN0IGxpbmsgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUobGluaywgJ3JlbCcsICdjYW5vbmljYWwnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUobGluaywgJ2hyZWYnLCB1cmwpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZG9jdW1lbnQuaGVhZCwgbGluayk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgdGl0bGUt0LfQsNCz0L7Qu9C+0LLQvtC6INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGl0bGUg0JfQsNCz0L7Qu9C+0LLQvtC6INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICogQHBhcmFtIGFwcGVuZERlZmF1bHRUaXRsZSDQpNC70LDQsyDQvdC10L7QsdGF0L7QtNC40LzQvtGB0YLQuCDQtNC+0LHQsNCy0LjRgtGMINC30LDQs9C+0LvQvtCy0L7QuiDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQsiDQutC+0L3QtdGGINC30LDQs9C+0LvQvtCy0LrQsCDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0UGFnZVRpdGxlKHRpdGxlOiBzdHJpbmcsIGFwcGVuZERlZmF1bHRUaXRsZTogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldFRpdGxlKHRpdGxlICsgKGFwcGVuZERlZmF1bHRUaXRsZSA/IGAgLSAke3RoaXMuZGVmYXVsdFNlby50aXRsZX1gIDogJycpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBtZXRhLdC+0L/QuNGB0LDQvdC40LUg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBNZXRhLdC+0L/QuNGB0LDQvdC40LUg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNldFBhZ2VNZXRhRGVzY3JpcHRpb24oZGVzY3JpcHRpb246IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFBhZ2VNZXRhQnlOYW1lKCdkZXNjcmlwdGlvbicsIGRlc2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBtZXRhLdC60LvRjtGH0LXQstGL0LUg0YHQu9C+0LLQsCDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqXG4gICAgICogQHBhcmFtIGtleXdvcmRzIE1ldGEt0LrQu9GO0YfQtdCy0YvQtSDRgdC70L7QstCwINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRQYWdlTWV0YUtleXdvcmRzKGtleXdvcmRzOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRQYWdlTWV0YUJ5TmFtZSgna2V5d29yZHMnLCBrZXl3b3Jkcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgT3BlbiBHcmFwaCBtZXRhLdGC0LXQs9C4INGB0YLRgNCw0L3QuNGG0Ysg0LTQu9GPINGB0L7RhtC40LDQu9GM0L3Ri9GFINGB0LXRgtC10LkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGl0bGUg0JfQsNCz0L7Qu9C+0LLQvtC6INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICogQHBhcmFtIGRlc2NyaXB0aW9uINCe0L/QuNGB0LDQvdC40LUg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKiBAcGFyYW0gdXJsINCh0YHRi9C70LrQsCDQvdCwINGB0YLRgNCw0L3QuNGG0YMuXG4gICAgICogQHBhcmFtIGltZyDQmNC30L7QsdGA0LDQttC10L3QuNC1LlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0T3BlbkdyYXBoTWV0YVRhZ3ModGl0bGU6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZywgdXJsOiBzdHJpbmcsIGltZzogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0T3BlbkdyYXBoTWV0YUJ5UHJvcGVydHkoJ29nOnRpdGxlJywgdGl0bGUpO1xuICAgICAgICB0aGlzLnNldE9wZW5HcmFwaE1ldGFCeVByb3BlcnR5KCdvZzp1cmwnLCB1cmwpO1xuICAgICAgICB0aGlzLnNldE9wZW5HcmFwaE1ldGFCeVByb3BlcnR5KCdvZzppbWFnZScsIGltZyk7XG4gICAgICAgIHRoaXMuc2V0T3BlbkdyYXBoTWV0YUJ5UHJvcGVydHkoJ29nOmRlc2NyaXB0aW9uJywgZGVzY3JpcHRpb24pO1xuICAgICAgICB0aGlzLnNldE9wZW5HcmFwaE1ldGFCeVByb3BlcnR5KCdvZzp0eXBlJywgJ3dlYnNpdGUnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBtZXRhLdGC0LXQsyDRgdGC0YDQsNC90LjRhtGLINGBINGD0LrQsNC30LDQvdC90YvQvCDQuNC80LXQvdC10LwuXG4gICAgICog0JHRg9C00LXRgiDRgdC+0LfQtNCw0L0g0LjQu9C4INC+0LHQvdC+0LLQu9GR0L0g0LfQsNCz0L7Qu9C+0LLQvtC6INCy0LjQtNCwIGA8bWV0YSBuYW1lPVwie25hbWV9XCIgY29udGVudD1cIntjb250ZW50fVwiIC8+YFxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUg0J3QsNC30LLQsNC90LjQtSDQt9Cw0LPQvtC70L7QstC60LAuXG4gICAgICogQHBhcmFtIGNvbnRlbnQg0KHQvtC00LXRgNC20LjQvNC+0LUg0LfQsNCz0L7Qu9C+0LLQutCwLlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0UGFnZU1ldGFCeU5hbWUobmFtZTogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoeyBuYW1lOiBuYW1lLCBjb250ZW50OiBjb250ZW50LCAnZGF0YS1ncm91cCc6IHRoaXMuZGF0YUdyb3VwU2VsZWN0b3IgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgT3BlbiBHcmFwaCBtZXRhLdGC0LXQsyDQv9C+INGB0LLQvtC50YHRgtCy0YMg0LDRgtGA0LjQsdGD0YLQsCBwcm9wZXJ0eS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9wZXJ0eSDQodCy0L7QudGB0YLQstC+INCw0YLRgNC40LHRg9GC0LAuXG4gICAgICogQHBhcmFtIGNvbnRlbnQg0KHQvtC00LXRgNC20LjQvNC+0LUg0YLQtdCz0LAuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRPcGVuR3JhcGhNZXRhQnlQcm9wZXJ0eShwcm9wZXJ0eTogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogcHJvcGVydHksIGNvbnRlbnQ6IGNvbnRlbnQsICdkYXRhLWdyb3VwJzogdGhpcy5kYXRhR3JvdXBTZWxlY3RvciB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBPcGVuIEdyYXBoINC80LXRgtCwLdGC0LXQsyDRgtC40L/QsCDQvtCx0YrQtdC60YLQsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0eXBlINCi0LjQvyDQvtCx0YrQtdC60YLQsC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNldFNoYXJlVHlwZSh0eXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRPcGVuR3JhcGhNZXRhQnlQcm9wZXJ0eSgnb2c6dHlwZScsIHR5cGUpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9ib3RzLXRhZy10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zZXJ2aWNlcy90eXBlcy9yb2JvdHMtdGFnLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICog0KLQuNC/INC00L7Qv9GD0YHRgtC40LzRi9GFINC30L3QsNGH0LXQvdC40Lkg0LTQu9GPIHJvYm90cy5cbiAqL1xuZXhwb3J0IHR5cGUgUm9ib3RzVGFnVHlwZSA9ICdpbmRleCcgfCAnbm9pbmRleCcgfCAnZm9sbG93JyB8ICdub2ZvbGxvdycgfCAnbm9hcmNoaXZlJztcbiJdfQ==
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
|
|
2
|
-
import { Observable } from 'rxjs';
|
|
3
|
-
/**
|
|
4
|
-
* Устанавливает SEO-теги для страницы продукта.
|
|
5
|
-
*/
|
|
6
|
-
export declare const ScProductSeoGuard: ({ paramMap }: ActivatedRouteSnapshot, state: RouterStateSnapshot) => false | Observable<boolean>;
|
|
7
|
-
/**
|
|
8
|
-
* Устанавливает SEO-теги для страницы виртуальной категории.
|
|
9
|
-
*/
|
|
10
|
-
export declare const ScVirtualCategorySeoGuard: ({ paramMap }: ActivatedRouteSnapshot, state: RouterStateSnapshot) => false | Observable<boolean>;
|
|
11
|
-
/**
|
|
12
|
-
* Устанавливает SEO-теги для страницы категории.
|
|
13
|
-
*/
|
|
14
|
-
export declare const ScCategorySeoGuard: ({ paramMap }: ActivatedRouteSnapshot, state: RouterStateSnapshot) => false | Observable<boolean>;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Модель данных краткой информации о новости.
|
|
3
|
-
*/
|
|
4
|
-
export interface ScNewsTile {
|
|
5
|
-
/**
|
|
6
|
-
* Идентификатор новости.
|
|
7
|
-
*/
|
|
8
|
-
id: number;
|
|
9
|
-
/**
|
|
10
|
-
* Заголовок новости.
|
|
11
|
-
*/
|
|
12
|
-
subject: string;
|
|
13
|
-
/**
|
|
14
|
-
* Ссылка на основное изображение новости.
|
|
15
|
-
*/
|
|
16
|
-
image?: string;
|
|
17
|
-
/**
|
|
18
|
-
* Ссылка на основное изображение новости в формате WebP.
|
|
19
|
-
*/
|
|
20
|
-
imageWebp?: string;
|
|
21
|
-
/**
|
|
22
|
-
* Дата и время создания новости.
|
|
23
|
-
*/
|
|
24
|
-
createdAt: string;
|
|
25
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { ScISeoResourceDTO } from '../../catalog/internal/sc-i-seo-resource-dto';
|
|
2
|
-
/**
|
|
3
|
-
* Модель данных новости.
|
|
4
|
-
*/
|
|
5
|
-
export interface ScINewsDTO extends ScISeoResourceDTO {
|
|
6
|
-
/**
|
|
7
|
-
* Идентификатор новости.
|
|
8
|
-
*/
|
|
9
|
-
id: number;
|
|
10
|
-
/**
|
|
11
|
-
* Заголовок новости.
|
|
12
|
-
*/
|
|
13
|
-
subject: string;
|
|
14
|
-
/**
|
|
15
|
-
* Ссылка на основное изображение новости.
|
|
16
|
-
*/
|
|
17
|
-
image?: string;
|
|
18
|
-
/**
|
|
19
|
-
* Ссылка на основное изображение новости в формате WebP.
|
|
20
|
-
*/
|
|
21
|
-
imageWebp?: string;
|
|
22
|
-
/**
|
|
23
|
-
* Дата и время создания новости.
|
|
24
|
-
*/
|
|
25
|
-
createdAt: string;
|
|
26
|
-
/**
|
|
27
|
-
* Строка HTML с содержимым новости.
|
|
28
|
-
*/
|
|
29
|
-
text: string;
|
|
30
|
-
}
|
package/sc-json-ld/index.d.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
|
|
2
|
-
import { Thing, WithContext } from 'schema-dts';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
/**
|
|
5
|
-
* Компонент структурированных данных.
|
|
6
|
-
*/
|
|
7
|
-
export declare class ScJsonLdComponent<T extends Thing> {
|
|
8
|
-
private readonly sanitizer;
|
|
9
|
-
/**
|
|
10
|
-
* HTML разметка, в которую внедряется объект структурированных данных.
|
|
11
|
-
*/
|
|
12
|
-
jsonLD?: SafeHtml;
|
|
13
|
-
/**
|
|
14
|
-
* Инициализирует экземпляр класса {@link ScJsonLdComponent}.
|
|
15
|
-
*
|
|
16
|
-
* @param sanitizer Объект DomSanitizer для безопасной обработки HTML и стилей.
|
|
17
|
-
*/
|
|
18
|
-
constructor(sanitizer: DomSanitizer);
|
|
19
|
-
/**
|
|
20
|
-
* Объект структурированных данных о товаре.
|
|
21
|
-
*/
|
|
22
|
-
set json(currentValue: WithContext<T>);
|
|
23
|
-
/**
|
|
24
|
-
* Возвращает безопасный html код.
|
|
25
|
-
*
|
|
26
|
-
* @param json JSON данные.
|
|
27
|
-
*/
|
|
28
|
-
private getSafeHTML;
|
|
29
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ScJsonLdComponent<any>, never>;
|
|
30
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ScJsonLdComponent<any>, "sc-json-ld", never, { "json": { "alias": "json"; "required": false; }; }, {}, never, never, false, never>;
|
|
31
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
import * as i1 from "./sc-json-ld.component";
|
|
3
|
-
/**
|
|
4
|
-
* Модуль структурированных данных.
|
|
5
|
-
*/
|
|
6
|
-
export declare class ScJsonLdModule {
|
|
7
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ScJsonLdModule, never>;
|
|
8
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<ScJsonLdModule, [typeof i1.ScJsonLdComponent], never, [typeof i1.ScJsonLdComponent]>;
|
|
9
|
-
static ɵinj: i0.ɵɵInjectorDeclaration<ScJsonLdModule>;
|
|
10
|
-
}
|
package/services/index.d.ts
DELETED
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
2
|
-
import { ScISeo } from '../catalog/dto/sc-i-seo';
|
|
3
|
-
import { RobotsTagType } from './types/robots-tag-type';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
/**
|
|
6
|
-
* Сервис управления SEO-параметрами.
|
|
7
|
-
*/
|
|
8
|
-
export declare class ScSeoService {
|
|
9
|
-
/**
|
|
10
|
-
* Событие установки meta-тегов страницы.
|
|
11
|
-
*/
|
|
12
|
-
readonly isSetMetaTagsEventEmitter: EventEmitter<void>;
|
|
13
|
-
/**
|
|
14
|
-
* Данные о мета-данных страницы по умолчанию.
|
|
15
|
-
*/
|
|
16
|
-
private readonly defaultSeo;
|
|
17
|
-
/**
|
|
18
|
-
* Сервис маршрутизации.
|
|
19
|
-
*/
|
|
20
|
-
private readonly router;
|
|
21
|
-
/**
|
|
22
|
-
* Список ссылок приложения.
|
|
23
|
-
*/
|
|
24
|
-
private readonly urls;
|
|
25
|
-
/**
|
|
26
|
-
* Сервис установки метаданных страницы.
|
|
27
|
-
*/
|
|
28
|
-
private readonly metaService;
|
|
29
|
-
/**
|
|
30
|
-
* Сервис управления заголовком страницы.
|
|
31
|
-
*/
|
|
32
|
-
private readonly titleService;
|
|
33
|
-
/**
|
|
34
|
-
* Селектор группы для устанавливаемых метатегов.
|
|
35
|
-
*/
|
|
36
|
-
private readonly dataGroupSelector;
|
|
37
|
-
/**
|
|
38
|
-
* Объект {@link Document}, предоставляющий доступ к DOM страницы.
|
|
39
|
-
*/
|
|
40
|
-
private readonly document;
|
|
41
|
-
/**
|
|
42
|
-
* Фабрика для создания экземпляров {@link Renderer2}.
|
|
43
|
-
*/
|
|
44
|
-
private readonly rendererFactory;
|
|
45
|
-
/**
|
|
46
|
-
* Экземпляр {@link Renderer2} для безопасной работы с DOM.
|
|
47
|
-
*/
|
|
48
|
-
private readonly renderer;
|
|
49
|
-
/**
|
|
50
|
-
* Название компании.
|
|
51
|
-
*/
|
|
52
|
-
private readonly companyName;
|
|
53
|
-
/**
|
|
54
|
-
* Инициализирует экземпляр класса {@link ScSeoService}.
|
|
55
|
-
*/
|
|
56
|
-
constructor();
|
|
57
|
-
/**
|
|
58
|
-
* Устанавливает meta-теги.
|
|
59
|
-
*
|
|
60
|
-
* @param title Заголовок страницы.
|
|
61
|
-
* @param description Описание страницы.
|
|
62
|
-
* @param keywords Ключевые слова страницы.
|
|
63
|
-
* @param emitEventAfterSet Признак того, необходимо ли генерировать событие, после установки тегов. По умолчанию {@link true}.
|
|
64
|
-
* @param robots Список robots тегов для страницы.
|
|
65
|
-
*/
|
|
66
|
-
setPageMetaTags(title?: string, description?: string, keywords?: string, emitEventAfterSet?: boolean, robots?: RobotsTagType[]): void;
|
|
67
|
-
/**
|
|
68
|
-
* Устанавливает Open Graph meta-теги.
|
|
69
|
-
*
|
|
70
|
-
* @param ogTitle Open Graph заголовок.
|
|
71
|
-
* @param ogDescription Open Graph описание.
|
|
72
|
-
* @param ogImg Open Graph изображение.
|
|
73
|
-
* @param emitEventAfterSet Признак того, необходимо ли генерировать событие, после установки тегов. По умолчанию {@link true}.
|
|
74
|
-
*/
|
|
75
|
-
setPageOpenGraphMetaTags(ogTitle?: string, ogDescription?: string, ogImg?: string, emitEventAfterSet?: boolean): void;
|
|
76
|
-
/**
|
|
77
|
-
* Устанавливает все meta-теги из пришедшего источника. Если какого-то тега нет, будет установлено значение по умолчанию.
|
|
78
|
-
*
|
|
79
|
-
* @param resource Источник meta - тегов.
|
|
80
|
-
* @param img Изображение. Если не пришло, то будет установлено значение по умолчанию.
|
|
81
|
-
* @param robots Список robots тегов для страницы.
|
|
82
|
-
*/
|
|
83
|
-
setMetaTagsFromResource(resource?: ScISeo, img?: string, robots?: RobotsTagType[]): void;
|
|
84
|
-
/**
|
|
85
|
-
* Устанавливает все meta-теги страницы со значением по умолчанию, внедряя туда заголовок, если он передан.
|
|
86
|
-
*
|
|
87
|
-
* @param title Заголовок страницы.
|
|
88
|
-
* @param robots Список robots тегов для страницы.
|
|
89
|
-
*/
|
|
90
|
-
setDefaultAllPageMetaTags(title?: string, robots?: RobotsTagType[]): void;
|
|
91
|
-
/**
|
|
92
|
-
* Устанавливает все meta-теги страницы со значением по умолчанию, внедряя туда заголовок, если он передан. Устанавливает значение "не индексировать" для поисковых роботов.
|
|
93
|
-
*
|
|
94
|
-
* @param title Заголовок страницы.
|
|
95
|
-
*/
|
|
96
|
-
setNoIndexDefaultAllPageMetaTags(title?: string): void;
|
|
97
|
-
/**
|
|
98
|
-
* Устанавливает все meta-теги страницы. Если какой-либо из параметров не указан, для него устанавливается значение по умолчанию.
|
|
99
|
-
*
|
|
100
|
-
* @param title Заголовок страницы.
|
|
101
|
-
* @param description Описание страницы.
|
|
102
|
-
* @param keywords Ключевые слова страницы.
|
|
103
|
-
* @param img Изображение.
|
|
104
|
-
* @param meta Массив дополнительных значений метатегов.
|
|
105
|
-
* @param robots Список robots тегов для страницы.
|
|
106
|
-
*/
|
|
107
|
-
setAllPageMetaTags(title?: string, description?: string, keywords?: string, img?: string, meta?: ScISeo['meta'], robots?: RobotsTagType[]): void;
|
|
108
|
-
/**
|
|
109
|
-
* Устанавливает meta-тег robots для страницы.
|
|
110
|
-
*
|
|
111
|
-
* @param robots Список robots тегов для страницы.
|
|
112
|
-
*/
|
|
113
|
-
setPageMetaRobots(robots: RobotsTagType[]): void;
|
|
114
|
-
/**
|
|
115
|
-
* Удаляет все установленные meta-теги.
|
|
116
|
-
*/
|
|
117
|
-
removeMetaTags(): void;
|
|
118
|
-
/**
|
|
119
|
-
* Возвращает сгенерированный SEO-resource с указанными параметрами.
|
|
120
|
-
*
|
|
121
|
-
* @param seo Данные SEO ресурса.
|
|
122
|
-
* @param defaultTitle Заголовок страницы используемый в случае отсутствия заголовка в SEO-ресурсе.
|
|
123
|
-
* @param defaultDescription Описание страницы используемое в случае отсутствия описания в SEO-ресурсе.
|
|
124
|
-
* @param defaultKeyWords Ключевые слова страницы используемые в случае отсутствия ключевых слов в SEO-ресурсе.
|
|
125
|
-
*/
|
|
126
|
-
getGenerateSeoResource(seo: ScISeo | undefined, defaultTitle: string, defaultDescription?: string, defaultKeyWords?: string): ScISeo;
|
|
127
|
-
/**
|
|
128
|
-
* Устанавливает тег канонической страницы <link rel="canonical" href="..." />.
|
|
129
|
-
*
|
|
130
|
-
* @param url URL который необходимо использовать в качестве ссылки.
|
|
131
|
-
*/
|
|
132
|
-
setCanonicalLink(url: string): void;
|
|
133
|
-
/**
|
|
134
|
-
* Устанавливает title-заголовок страницы.
|
|
135
|
-
*
|
|
136
|
-
* @param title Заголовок страницы.
|
|
137
|
-
* @param appendDefaultTitle Флаг необходимости добавить заголовок по умолчанию в конец заголовка страницы.
|
|
138
|
-
*/
|
|
139
|
-
private setPageTitle;
|
|
140
|
-
/**
|
|
141
|
-
* Устанавливает meta-описание страницы.
|
|
142
|
-
*
|
|
143
|
-
* @param description Meta-описание страницы.
|
|
144
|
-
*/
|
|
145
|
-
private setPageMetaDescription;
|
|
146
|
-
/**
|
|
147
|
-
* Устанавливает meta-ключевые слова страницы.
|
|
148
|
-
*
|
|
149
|
-
* @param keywords Meta-ключевые слова страницы.
|
|
150
|
-
*/
|
|
151
|
-
private setPageMetaKeywords;
|
|
152
|
-
/**
|
|
153
|
-
* Устанавливает Open Graph meta-теги страницы для социальных сетей.
|
|
154
|
-
*
|
|
155
|
-
* @param title Заголовок страницы.
|
|
156
|
-
* @param description Описание страницы.
|
|
157
|
-
* @param url Ссылка на страницу.
|
|
158
|
-
* @param img Изображение.
|
|
159
|
-
*/
|
|
160
|
-
private setOpenGraphMetaTags;
|
|
161
|
-
/**
|
|
162
|
-
* Устанавливает meta-тег страницы с указанным именем.
|
|
163
|
-
* Будет создан или обновлён заголовок вида `<meta name="{name}" content="{content}" />`
|
|
164
|
-
*
|
|
165
|
-
* @param name Название заголовка.
|
|
166
|
-
* @param content Содержимое заголовка.
|
|
167
|
-
*/
|
|
168
|
-
private setPageMetaByName;
|
|
169
|
-
/**
|
|
170
|
-
* Устанавливает Open Graph meta-тег по свойству атрибута property.
|
|
171
|
-
*
|
|
172
|
-
* @param property Свойство атрибута.
|
|
173
|
-
* @param content Содержимое тега.
|
|
174
|
-
*/
|
|
175
|
-
private setOpenGraphMetaByProperty;
|
|
176
|
-
/**
|
|
177
|
-
* Устанавливает Open Graph мета-тег типа объекта.
|
|
178
|
-
*
|
|
179
|
-
* @param type Тип объекта.
|
|
180
|
-
*/
|
|
181
|
-
private setShareType;
|
|
182
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ScSeoService, never>;
|
|
183
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<ScSeoService>;
|
|
184
|
-
}
|
|
File without changes
|