@snabcentr/client-core 2.63.2 → 2.64.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.
Files changed (44) hide show
  1. package/esm2022/guards/catalog-seo.guard.mjs +71 -0
  2. package/esm2022/guards/index.mjs +2 -1
  3. package/esm2022/guards/sc-id-or-slug.guard.mjs +3 -3
  4. package/esm2022/pagination/services/sc-pagination.service.mjs +3 -3
  5. package/esm2022/pipes/sc-id-or-slug.pipe.mjs +2 -2
  6. package/esm2022/providers/index.mjs +2 -4
  7. package/esm2022/providers/sc-category.providers.mjs +40 -0
  8. package/esm2022/tokens/index.mjs +7 -3
  9. package/esm2022/tokens/sc-api-keys.mjs +1 -1
  10. package/esm2022/tokens/sc-cache-lifetime.mjs +1 -1
  11. package/esm2022/tokens/sc-company-info.mjs +6 -0
  12. package/esm2022/tokens/sc-configurator-components.mjs +1 -1
  13. package/esm2022/tokens/sc-configurator-settings.mjs +1 -1
  14. package/esm2022/tokens/sc-default-page-meta.mjs +5 -1
  15. package/esm2022/tokens/sc-error-handler.mjs +6 -0
  16. package/esm2022/tokens/sc-id-or-slug-in-route.mjs +8 -0
  17. package/esm2022/tokens/sc-product-pagination-options.mjs +22 -0
  18. package/esm2022/tokens/sc-release.mjs +1 -1
  19. package/esm2022/tokens/sc-update-interval.mjs +1 -1
  20. package/esm2022/tokens/sc-urls.mjs +1 -1
  21. package/fesm2022/snabcentr-client-core.mjs +729 -628
  22. package/fesm2022/snabcentr-client-core.mjs.map +1 -1
  23. package/guards/catalog-seo.guard.d.ts +14 -0
  24. package/guards/index.d.ts +1 -0
  25. package/package.json +1 -1
  26. package/pagination/services/sc-pagination.service.d.ts +4 -2
  27. package/providers/index.d.ts +1 -3
  28. package/providers/sc-category.providers.d.ts +11 -0
  29. package/tokens/index.d.ts +6 -2
  30. package/tokens/sc-api-keys.d.ts +1 -1
  31. package/tokens/sc-cache-lifetime.d.ts +1 -1
  32. package/tokens/sc-configurator-components.d.ts +2 -1
  33. package/tokens/sc-configurator-settings.d.ts +1 -1
  34. package/tokens/sc-default-page-meta.d.ts +5 -1
  35. package/tokens/sc-error-handler.d.ts +11 -0
  36. package/tokens/sc-release.d.ts +1 -1
  37. package/tokens/sc-update-interval.d.ts +1 -1
  38. package/tokens/sc-urls.d.ts +1 -1
  39. package/esm2022/providers/sc-company-info.mjs +0 -6
  40. package/esm2022/providers/sc-id-or-slug-in-route.mjs +0 -8
  41. package/esm2022/providers/sc-product-pagination-options.mjs +0 -22
  42. /package/{providers → tokens}/sc-company-info.d.ts +0 -0
  43. /package/{providers → tokens}/sc-id-or-slug-in-route.d.ts +0 -0
  44. /package/{providers → tokens}/sc-product-pagination-options.d.ts +0 -0
@@ -0,0 +1,14 @@
1
+ import { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
2
+ import { Observable } from 'rxjs';
3
+ /**
4
+ * Устанавливает SEO-теги для страницы продукта.
5
+ */
6
+ export declare const productSeoGuard: ({ paramMap }: ActivatedRouteSnapshot, state: RouterStateSnapshot) => false | Observable<boolean>;
7
+ /**
8
+ * Устанавливает SEO-теги для страницы виртуальной категории.
9
+ */
10
+ export declare const virtualCategorySeoGuard: ({ paramMap }: ActivatedRouteSnapshot, state: RouterStateSnapshot) => false | Observable<boolean>;
11
+ /**
12
+ * Устанавливает SEO-теги для страницы категории.
13
+ */
14
+ export declare const categorySeoGuard: ({ paramMap }: ActivatedRouteSnapshot, state: RouterStateSnapshot) => false | Observable<boolean>;
package/guards/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
+ export * from './catalog-seo.guard';
1
2
  export * from './sc-auth-as-client.guard';
2
3
  export * from './sc-id-or-slug.guard';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@snabcentr/client-core",
3
- "version": "2.63.2",
3
+ "version": "2.64.0",
4
4
  "author": "Snabcentr Ltd.",
5
5
  "repository": "https://gitlab.snabcentr.met/web/angular/snabcentr-client-core-lib",
6
6
  "license": "Commercial",
@@ -1,7 +1,9 @@
1
1
  import { EventEmitter } from '@angular/core';
2
2
  import { Observable } from 'rxjs';
3
- import { ScCatalogService, ScProduct } from '../../catalog';
4
- import { ScIPaginate, ScIPaginationParams } from '../dto';
3
+ import { ScProduct } from '../../catalog/dto/sc-product';
4
+ import { ScCatalogService } from '../../catalog/services/sc-catalog.service';
5
+ import { ScIPaginate } from '../dto/sc-i-paginate';
6
+ import { ScIPaginationParams } from '../dto/sc-i-pagination-params';
5
7
  import * as i0 from "@angular/core";
6
8
  /**
7
9
  * Сервис пагинации.
@@ -1,9 +1,7 @@
1
1
  export * from './interfaces';
2
- export * from './sc-id-or-slug-in-route';
3
- export * from './sc-product-pagination-options';
2
+ export * from './sc-category.providers';
4
3
  export * from './terminal.providers';
5
4
  export * from './search-term.providers';
6
5
  export * from './ssr.providers';
7
6
  export * from './types/sc-provider';
8
7
  export * from './virtual-category.providers';
9
- export * from './sc-company-info';
@@ -0,0 +1,11 @@
1
+ import { InjectionToken, Provider } from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
+ import { ScCategory } from '../catalog/dto/sc-category';
4
+ /**
5
+ * Токен потока данных о категории.
6
+ */
7
+ export declare const CATEGORY_INFO: InjectionToken<Observable<ScCategory | null>>;
8
+ /**
9
+ * Провайдеры потока данных о категории.
10
+ */
11
+ export declare const CATEGORY_PROVIDERS: Provider[];
package/tokens/index.d.ts CHANGED
@@ -1,15 +1,19 @@
1
1
  export * from './notification-options';
2
2
  export * from './sc-api-keys';
3
3
  export * from './sc-cache-lifetime';
4
+ export * from './sc-company-info';
4
5
  export * from './sc-company-name';
5
6
  export * from './sc-configurator-components';
6
- export * from './sc-configurator-settings';
7
+ export * from './sc-date-format';
7
8
  export * from './sc-default-page-meta';
9
+ export * from './sc-error-handler';
10
+ export * from './sc-configurator-settings';
11
+ export * from './sc-id-or-slug-in-route';
8
12
  export * from './sc-is-hidden-error-alert';
9
13
  export * from './sc-linear-values-token';
10
14
  export * from './sc-path-image-not-found';
15
+ export * from './sc-product-pagination-options';
11
16
  export * from './sc-release';
12
17
  export * from './sc-update-interval';
13
18
  export * from './sc-urls';
14
19
  export * from './sc-feedback-api';
15
- export * from './sc-date-format';
@@ -1,5 +1,5 @@
1
1
  import { InjectionToken } from '@angular/core';
2
- import { ScIApiKeys } from '../config';
2
+ import { ScIApiKeys } from '../config/sc-i-api-keys';
3
3
  /**
4
4
  * Токен внедрения заголовков ключей доступа к API.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  import { InjectionToken } from '@angular/core';
2
- import { ScICacheLifetime } from '../config';
2
+ import { ScICacheLifetime } from '../config/sc-i-cache-lifetime';
3
3
  /**
4
4
  * Токен внедрения времени жизни данных.
5
5
  */
@@ -1,5 +1,6 @@
1
1
  import { InjectionToken } from '@angular/core';
2
- import { ScIConfiguratorBase, ScTypeByKey } from '../configurator';
2
+ import { ScIConfiguratorBase } from '../configurator/dto/sc-i-configurator-base';
3
+ import { ScTypeByKey } from '../configurator/types/sc-type-by-key';
3
4
  /**
4
5
  * Токен внедрения компонентов конфигураторов по их названию.
5
6
  */
@@ -1,5 +1,5 @@
1
1
  import { InjectionToken } from '@angular/core';
2
- import { ScIConfiguratorSettingsBase } from '../configurator';
2
+ import { ScIConfiguratorSettingsBase } from '../configurator/dto/sc-i-configurator-settings-base';
3
3
  import { ScTypeByKey } from '../configurator/types/sc-type-by-key';
4
4
  /**
5
5
  * Токен внедрения моделей настроек конфигураторов по их названию.
@@ -1,6 +1,10 @@
1
1
  import { InjectionToken } from '@angular/core';
2
- import { ScIDefaultPageMeta } from '../config';
2
+ import { ScIDefaultPageMeta } from '../config/sc-i-default-page-meta';
3
3
  /**
4
4
  * Токен внедрения мета-данных страницы по умолчанию.
5
5
  */
6
6
  export declare const SC_DEFAULT_PAGE_META: InjectionToken<ScIDefaultPageMeta>;
7
+ /**
8
+ * Токен внедрения мета-данных страницы каталога.
9
+ */
10
+ export declare const SC_CATALOG_PAGE_META: InjectionToken<ScIDefaultPageMeta>;
@@ -0,0 +1,11 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ /**
3
+ * Тип функции для установки кода ошибки.
4
+ *
5
+ * @param code Код ошибки.
6
+ */
7
+ export type SetCodeNumberType = (code: number) => void;
8
+ /**
9
+ * Токен внедрения обработчика ошибок.
10
+ */
11
+ export declare const ERROR_HANDLER: InjectionToken<SetCodeNumberType>;
@@ -1,5 +1,5 @@
1
1
  import { InjectionToken } from '@angular/core';
2
- import { ScIAppRelease } from '../config';
2
+ import { ScIAppRelease } from '../config/sc-i-app-release';
3
3
  /**
4
4
  * Токен внедрения информации о релизе.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  import { InjectionToken } from '@angular/core';
2
- import { ScIUpdateInterval } from '../config';
2
+ import { ScIUpdateInterval } from '../config/sc-i-update-interval';
3
3
  /**
4
4
  * Токен внедрения интервалов обновления данных.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  import { InjectionToken } from '@angular/core';
2
- import { ScIUrls } from '../config';
2
+ import { ScIUrls } from '../config/sc-i-urls';
3
3
  /**
4
4
  * Токен внедрения списка ссылок приложения.
5
5
  */
@@ -1,6 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- /**
3
- * Токен для получения полной информации о компании.
4
- */
5
- export const SC_COMPANY_INFO = new InjectionToken('SC_COMPANY_INFO');
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY29tcGFueS1pbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9wcm92aWRlcnMvc2MtY29tcGFueS1pbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJL0M7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQXVDLElBQUksY0FBYyxDQUFxQixpQkFBaUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2NJQ29tcGFueUJhc2VJbmZvIH0gZnJvbSAnLi4vY29uZmlnL3NjLWktY29tcGFueS1iYXNlLWluZm8nO1xuXG4vKipcbiAqINCi0L7QutC10L0g0LTQu9GPINC/0L7Qu9GD0YfQtdC90LjRjyDQv9C+0LvQvdC+0Lkg0LjQvdGE0L7RgNC80LDRhtC40Lgg0L4g0LrQvtC80L/QsNC90LjQuC5cbiAqL1xuZXhwb3J0IGNvbnN0IFNDX0NPTVBBTllfSU5GTzogSW5qZWN0aW9uVG9rZW48U2NJQ29tcGFueUJhc2VJbmZvPiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTY0lDb21wYW55QmFzZUluZm8+KCdTQ19DT01QQU5ZX0lORk8nKTtcbiJdfQ==
@@ -1,8 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- /**
3
- * Токен определяющий, идентификатор или символьное обозначение (slug) используется для роутинга и маршрутизации.
4
- */
5
- export const SC_ID_OR_SLUG_IN_ROUTE = new InjectionToken('SC_ID_OR_SLUG_IN_ROUTE', {
6
- factory: () => 'id',
7
- });
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtaWQtb3Itc2x1Zy1pbi1yb3V0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvcHJvdmlkZXJzL3NjLWlkLW9yLXNsdWctaW4tcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUFnQix3QkFBd0IsRUFBRTtJQUM5RixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSTtDQUN0QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqINCi0L7QutC10L0g0L7Qv9GA0LXQtNC10LvRj9GO0YnQuNC5LCDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQuNC70Lgg0YHQuNC80LLQvtC70YzQvdC+0LUg0L7QsdC+0LfQvdCw0YfQtdC90LjQtSAoc2x1Zykg0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC00LvRjyDRgNC+0YPRgtC40L3Qs9CwINC4INC80LDRgNGI0YDRg9GC0LjQt9Cw0YbQuNC4LlxuICovXG5leHBvcnQgY29uc3QgU0NfSURfT1JfU0xVR19JTl9ST1VURSA9IG5ldyBJbmplY3Rpb25Ub2tlbjwnaWQnIHwgJ3NsdWcnPignU0NfSURfT1JfU0xVR19JTl9ST1VURScsIHtcbiAgICBmYWN0b3J5OiAoKSA9PiAnaWQnLFxufSk7XG4iXX0=
@@ -1,22 +0,0 @@
1
- import { EventEmitter, InjectionToken } from '@angular/core';
2
- /**
3
- * Значения пагинации списка товаров категории по умолчанию.
4
- */
5
- export const SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS = {
6
- perPage: 20,
7
- paginate: true,
8
- page: 0,
9
- };
10
- /**
11
- * Токен значений пагинации списка товаров в каталоге по умолчанию.
12
- */
13
- export const SC_PRODUCT_PAGINATION_OPTIONS = new InjectionToken('SC_PRODUCT_PAGINATION_OPTIONS', {
14
- factory: () => SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS,
15
- });
16
- /**
17
- * Токен {@link EventEmitter} событие нажатия на кнопку "Показать следующие позиции категории".
18
- */
19
- export const SC_NEXT_PAGE_PAGINATION_CLICK = new InjectionToken('SC_NEXT_PAGE_PAGINATION_CLICK', {
20
- factory: () => new EventEmitter(),
21
- });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcHJvZHVjdC1wYWdpbmF0aW9uLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3Byb3ZpZGVycy9zYy1wcm9kdWN0LXBhZ2luYXRpb24tb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUk3RDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFDQUFxQyxHQUF3QjtJQUN0RSxPQUFPLEVBQUUsRUFBRTtJQUNYLFFBQVEsRUFBRSxJQUFJO0lBQ2QsSUFBSSxFQUFFLENBQUM7Q0FDVixDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxJQUFJLGNBQWMsQ0FBc0IsK0JBQStCLEVBQUU7SUFDbEgsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLHFDQUFxQztDQUN2RCxDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLElBQUksY0FBYyxDQUFxQiwrQkFBK0IsRUFBRTtJQUNqSCxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxZQUFZLEVBQVE7Q0FDMUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTY0lQYWdpbmF0aW9uUGFyYW1zIH0gZnJvbSAnLi4vcGFnaW5hdGlvbi9kdG8vc2MtaS1wYWdpbmF0aW9uLXBhcmFtcyc7XG5cbi8qKlxuICog0JfQvdCw0YfQtdC90LjRjyDQv9Cw0LPQuNC90LDRhtC40Lgg0YHQv9C40YHQutCwINGC0L7QstCw0YDQvtCyINC60LDRgtC10LPQvtGA0LjQuCDQv9C+INGD0LzQvtC70YfQsNC90LjRji5cbiAqL1xuZXhwb3J0IGNvbnN0IFNDX1BST0RVQ1RfUEFHSU5BVElPTl9ERUZBVUxUX09QVElPTlM6IFNjSVBhZ2luYXRpb25QYXJhbXMgPSB7XG4gICAgcGVyUGFnZTogMjAsXG4gICAgcGFnaW5hdGU6IHRydWUsXG4gICAgcGFnZTogMCxcbn07XG5cbi8qKlxuICog0KLQvtC60LXQvSDQt9C90LDRh9C10L3QuNC5INC/0LDQs9C40L3QsNGG0LjQuCDRgdC/0LjRgdC60LAg0YLQvtCy0LDRgNC+0LIg0LIg0LrQsNGC0LDQu9C+0LPQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRji5cbiAqL1xuZXhwb3J0IGNvbnN0IFNDX1BST0RVQ1RfUEFHSU5BVElPTl9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPFNjSVBhZ2luYXRpb25QYXJhbXM+KCdTQ19QUk9EVUNUX1BBR0lOQVRJT05fT1BUSU9OUycsIHtcbiAgICBmYWN0b3J5OiAoKSA9PiBTQ19QUk9EVUNUX1BBR0lOQVRJT05fREVGQVVMVF9PUFRJT05TLFxufSk7XG5cbi8qKlxuICogINCi0L7QutC10L0ge0BsaW5rIEV2ZW50RW1pdHRlcn0g0YHQvtCx0YvRgtC40LUg0L3QsNC20LDRgtC40Y8g0L3QsCDQutC90L7Qv9C60YMgXCLQn9C+0LrQsNC30LDRgtGMINGB0LvQtdC00YPRjtGJ0LjQtSDQv9C+0LfQuNGG0LjQuCDQutCw0YLQtdCz0L7RgNC40LhcIi5cbiAqL1xuZXhwb3J0IGNvbnN0IFNDX05FWFRfUEFHRV9QQUdJTkFUSU9OX0NMSUNLID0gbmV3IEluamVjdGlvblRva2VuPEV2ZW50RW1pdHRlcjx2b2lkPj4oJ1NDX05FWFRfUEFHRV9QQUdJTkFUSU9OX0NMSUNLJywge1xuICAgIGZhY3Rvcnk6ICgpID0+IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKSxcbn0pO1xuIl19
File without changes