@morozeckiy/dd-lib 0.7.54 → 0.7.62

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.
@@ -0,0 +1,12 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0_1580_31182)">
3
+ <path d="M6 9C6 10.5913 6.63214 12.1174 7.75736 13.2426C8.88258 14.3679 10.4087 15 12 15C13.5913 15 15.1174 14.3679 16.2426 13.2426C17.3679 12.1174 18 10.5913 18 9C18 7.4087 17.3679 5.88258 16.2426 4.75736C15.1174 3.63214 13.5913 3 12 3C10.4087 3 8.88258 3.63214 7.75736 4.75736C6.63214 5.88258 6 7.4087 6 9Z" stroke="#07b700" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/>
4
+ <path d="M12 15L15.4 20.89L16.998 17.657L20.596 17.889L17.196 12" stroke="#07b700" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/>
5
+ <path d="M6.80186 12L3.40186 17.89L6.99986 17.657L8.59786 20.889L11.9979 15" stroke="#07b700" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/>
6
+ </g>
7
+ <defs>
8
+ <clipPath id="clip0_1580_31182">
9
+ <rect width="24" height="24" fill="white"/>
10
+ </clipPath>
11
+ </defs>
12
+ </svg>
@@ -1,8 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Output, ViewChild, Input, Component, Injectable, Inject, Pipe, Directive, HostListener, InjectionToken, TemplateRef, ChangeDetectionStrategy, Injector, forwardRef, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA, Optional, ElementRef, Host, SkipSelf, signal, input } from '@angular/core';
2
+ import { EventEmitter, Output, ViewChild, Input, Component, Injectable, InjectionToken, Inject, Pipe, Directive, HostListener, TemplateRef, ChangeDetectionStrategy, Injector, forwardRef, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA, Optional, ElementRef, Host, SkipSelf, signal, input } from '@angular/core';
3
3
  import * as i1$4 from '@angular/forms';
4
4
  import { Validators, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';
5
- import { BehaviorSubject, Subject, of, fromEvent, combineLatest } from 'rxjs';
5
+ import { BehaviorSubject, Subject, throwError, of, fromEvent, combineLatest } from 'rxjs';
6
6
  import { format, parse, isAfter, isBefore } from 'date-fns';
7
7
  import * as i1 from '@angular/common/http';
8
8
  import { HttpErrorResponse, HttpHeaders, HttpParams } from '@angular/common/http';
@@ -312,13 +312,17 @@ class InterceptorsService {
312
312
  }
313
313
  /** перехватчик состояния запросов к api */
314
314
  intercept(req, next) {
315
+ // Пропускаем запросы к SVG
316
+ if (req.url.includes('.svg')) {
317
+ return next.handle(req);
318
+ }
315
319
  return next.handle(req).pipe(catchError(err => {
316
320
  if (err instanceof HttpErrorResponse) {
317
321
  if (err.status >= 500) {
318
322
  this.router.navigate(['tech-works']);
319
323
  }
320
324
  }
321
- throw err;
325
+ return throwError(() => err);
322
326
  }));
323
327
  }
324
328
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: InterceptorsService, deps: [{ token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
@@ -430,8 +434,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImpor
430
434
  args: [{ providedIn: 'root' }]
431
435
  }], ctorParameters: () => [] });
432
436
 
437
+ const API_URL = new InjectionToken('apiUrl', {
438
+ providedIn: 'root',
439
+ factory: () => 'api'
440
+ });
433
441
  class FetcherService {
434
- constructor(http, apiUrl = 'api') {
442
+ constructor(http, apiUrl) {
435
443
  this.http = http;
436
444
  this.apiUrl = apiUrl;
437
445
  }
@@ -490,7 +498,7 @@ class FetcherService {
490
498
  });
491
499
  return formData;
492
500
  }
493
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: FetcherService, deps: [{ token: i1.HttpClient }, { token: 'apiUrl' }], target: i0.ɵɵFactoryTarget.Injectable }); }
501
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: FetcherService, deps: [{ token: i1.HttpClient }, { token: API_URL }], target: i0.ɵɵFactoryTarget.Injectable }); }
494
502
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: FetcherService, providedIn: 'root' }); }
495
503
  }
496
504
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: FetcherService, decorators: [{
@@ -498,7 +506,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImpor
498
506
  args: [{ providedIn: 'root' }]
499
507
  }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
500
508
  type: Inject,
501
- args: ['apiUrl']
509
+ args: [API_URL]
502
510
  }] }] });
503
511
 
504
512
  class FilterPipe {
@@ -2053,15 +2061,21 @@ class LibSvgIconComponent {
2053
2061
  ngOnInit() {
2054
2062
  if (this.width) {
2055
2063
  this.el.nativeElement.style.width = this.width;
2056
- // this.rdr.setStyle(this.svgIcon, 'width', 'inherit')
2064
+ if (this.svgIcon) {
2065
+ this.svgIcon.style.setProperty('width', this.width, 'inherit');
2066
+ }
2057
2067
  }
2058
2068
  if (this.height) {
2059
2069
  this.el.nativeElement.style.height = this.height;
2060
- // this.rdr.setStyle(this.svgIcon, 'height', 'inherit')
2070
+ if (this.svgIcon) {
2071
+ this.svgIcon.style.setProperty('height', this.height, 'inherit');
2072
+ }
2061
2073
  }
2062
2074
  if (this.color) {
2063
2075
  this.el.nativeElement.style.fill = this.color;
2064
- // this.rdr.setStyle(this.svgIcon, 'stroke', this.color, RendererStyleFlags2.Important)
2076
+ if (this.svgIcon) {
2077
+ this.svgIcon.style.setProperty('stroke', this.color, 'important');
2078
+ }
2065
2079
  }
2066
2080
  }
2067
2081
  svgElementFromString(svgContent) {
@@ -3737,7 +3751,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImpor
3737
3751
 
3738
3752
  Этот компонент значительно упрощает процесс отображения иконок на веб-странице, позволяя легко управлять их параметрами, такими как размеры и цвет.
3739
3753
  **/
3740
- // @Deprecate
3754
+ /**
3755
+ * @deprecated использовать lib-svg-viewer
3756
+ */
3741
3757
  class LibSvgComponent {
3742
3758
  constructor(http, rdr) {
3743
3759
  this.http = http;
@@ -3790,6 +3806,126 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImpor
3790
3806
  type: Input
3791
3807
  }] } });
3792
3808
 
3809
+ class LibSvgViewerComponent {
3810
+ constructor(http, elementRef) {
3811
+ this.http = http;
3812
+ this.elementRef = elementRef;
3813
+ this.path = 'assets/images/';
3814
+ this.pack = 'svg'; // директория внутри path
3815
+ this.icon = '';
3816
+ this.width = '';
3817
+ this.height = '';
3818
+ this.color = '';
3819
+ this.containerClass = '';
3820
+ this.colorRules = [];
3821
+ }
3822
+ ngOnChanges(changes) {
3823
+ this.loadSvg();
3824
+ }
3825
+ loadSvg() {
3826
+ if (!this.path || !this.icon)
3827
+ return;
3828
+ this.http.get(`${this.path}${this.pack}/${this.icon}.svg`, { responseType: 'text' })
3829
+ .pipe(catchError((error) => {
3830
+ const errorMessage = error.message || 'Неизвестная ошибка';
3831
+ const customError = new HttpErrorResponse({
3832
+ error: `SVG не найден: ${errorMessage}`,
3833
+ status: 404,
3834
+ statusText: 'Not Found'
3835
+ });
3836
+ console.error(`Ошибка загрузки SVG: ${errorMessage}`, {
3837
+ path: `${this.path}${this.pack}/${this.icon}.svg`,
3838
+ status: error.status
3839
+ });
3840
+ return throwError(() => customError);
3841
+ }))
3842
+ .subscribe({
3843
+ next: (svg) => {
3844
+ this.renderSvg(svg);
3845
+ }
3846
+ });
3847
+ }
3848
+ renderSvg(svgString) {
3849
+ const container = this.elementRef.nativeElement.querySelector('.svg-container');
3850
+ container.innerHTML = svgString;
3851
+ const svg = container.querySelector('svg');
3852
+ if (!svg)
3853
+ return;
3854
+ // Применяем параметры
3855
+ if (this.width) {
3856
+ svg.style.width = this.width;
3857
+ }
3858
+ if (this.height) {
3859
+ svg.style.height = this.height;
3860
+ }
3861
+ this.applyColorRules(svg);
3862
+ if (this.color) {
3863
+ this.applyColor(svg);
3864
+ }
3865
+ }
3866
+ applyColorRules(svg) {
3867
+ this.colorRules.forEach(rule => {
3868
+ const elements = svg.querySelectorAll(rule.selector);
3869
+ elements.forEach(el => {
3870
+ if (rule.attribute === 'fill' || rule.attribute === 'both') {
3871
+ el.setAttribute('fill', rule.color);
3872
+ }
3873
+ if (rule.attribute === 'stroke' || rule.attribute === 'both') {
3874
+ el.setAttribute('stroke', rule.color);
3875
+ }
3876
+ // Если атрибут не указан, меняем и fill и stroke
3877
+ if (!rule.attribute) {
3878
+ if (el.hasAttribute('fill')) {
3879
+ el.setAttribute('fill', rule.color);
3880
+ }
3881
+ if (el.hasAttribute('stroke')) {
3882
+ el.setAttribute('stroke', rule.color);
3883
+ }
3884
+ }
3885
+ });
3886
+ });
3887
+ }
3888
+ applyColor(svg) {
3889
+ const elements = svg.querySelectorAll('[stroke], [fill]');
3890
+ elements.forEach(el => {
3891
+ // Обрабатываем stroke
3892
+ if (el.hasAttribute('stroke') &&
3893
+ el.getAttribute('stroke') !== 'none' &&
3894
+ el.getAttribute('stroke') !== 'transparent') {
3895
+ el.setAttribute('stroke', this.color);
3896
+ }
3897
+ // Обрабатываем fill
3898
+ if (el.hasAttribute('fill') &&
3899
+ el.getAttribute('fill') !== 'none' &&
3900
+ el.getAttribute('fill') !== 'transparent') {
3901
+ el.setAttribute('fill', this.color);
3902
+ }
3903
+ });
3904
+ }
3905
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: LibSvgViewerComponent, deps: [{ token: i1.HttpClient }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
3906
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.2", type: LibSvgViewerComponent, isStandalone: true, selector: "dd-lib-svg-viewer", inputs: { path: "path", pack: "pack", icon: "icon", width: "width", height: "height", color: "color", containerClass: "containerClass", colorRules: "colorRules" }, usesOnChanges: true, ngImport: i0, template: `<div #svgContainer class="svg-container"></div>`, isInline: true, styles: [":host{display:block}svg{width:100%;height:100%;display:block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3907
+ }
3908
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: LibSvgViewerComponent, decorators: [{
3909
+ type: Component,
3910
+ args: [{ selector: 'dd-lib-svg-viewer', imports: [], standalone: true, template: `<div #svgContainer class="svg-container"></div>`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block}svg{width:100%;height:100%;display:block}\n"] }]
3911
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i0.ElementRef }], propDecorators: { path: [{
3912
+ type: Input
3913
+ }], pack: [{
3914
+ type: Input
3915
+ }], icon: [{
3916
+ type: Input
3917
+ }], width: [{
3918
+ type: Input
3919
+ }], height: [{
3920
+ type: Input
3921
+ }], color: [{
3922
+ type: Input
3923
+ }], containerClass: [{
3924
+ type: Input
3925
+ }], colorRules: [{
3926
+ type: Input
3927
+ }] } });
3928
+
3793
3929
  class ITab {
3794
3930
  constructor(body) {
3795
3931
  this.id = body.id;
@@ -5016,11 +5152,11 @@ class FooterComponent {
5016
5152
  ];
5017
5153
  }
5018
5154
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: FooterComponent, deps: [{ token: SvgIconsService }], target: i0.ɵɵFactoryTarget.Component }); }
5019
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.2", type: FooterComponent, isStandalone: true, selector: "dd-footer", outputs: { linkAction: "linkAction" }, viewQueries: [{ propertyName: "socSharing", first: true, predicate: ["socSharing"], descendants: true, static: true }, { propertyName: "appLink", first: true, predicate: ["appLink"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"footer\">\n <div class=\"g-container d-flex justify-between flex-wrap\">\n <div class=\"footer__column d-flex justify-between\">\n @for (item of linksLeft; track item) {\n <dd-footer-links-block [block]=\"item\"></dd-footer-links-block>\n }\n </div>\n <div class=\"footer__column d-flex justify-between\">\n @for (item of linksRight; track item) {\n <dd-footer-links-block [block]=\"item\"></dd-footer-links-block>\n }\n </div>\n </div>\n</div>\n<ng-template #appLink>\n <div class=\"footer__apps d-flex justify-between flex-wrap\">\n @for (soc of sharingLink; track soc) {\n <a [href]=\"soc.url\" target=\"_blank\">\n <dd-lib-svg-icon [icon]=\"soc.icon\"></dd-lib-svg-icon>\n </a>\n }\n </div>\n</ng-template>\n<ng-template #socSharing>\n <a class=\"footer__item-soc mb-16\">\n <dd-lib-svg-icon icon=\"vk\"></dd-lib-svg-icon>\n <dd-lib-svg-icon icon=\"tg\"></dd-lib-svg-icon>\n </a>\n</ng-template>\n", styles: [".footer{padding:40px 0;background-color:var(--footer-color);border-top:1px solid var(--footer-border-color);color:var(--footer-font-coolor)}@media screen and (max-width: 840px){.footer{padding-bottom:16px}}@media screen and (max-width: 480px){.footer{padding:24px 0}}.footer__column:first-child{width:41%}@media screen and (max-width: 1320px){.footer__column:first-child{width:44%}}@media screen and (max-width: 840px){.footer__column:first-child{width:100%}}@media screen and (max-width: 480px){.footer__column:first-child{width:44%;flex-wrap:wrap}}.footer__column:last-child{width:53%}@media screen and (max-width: 840px){.footer__column:last-child{width:100%}}@media screen and (max-width: 480px){.footer__column:last-child{width:48%;flex-wrap:wrap}}.footer__menu-block{display:flex;flex-direction:column;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@media screen and (max-width: 840px){.footer__menu-block{margin-bottom:24px}}@media screen and (max-width: 480px){.footer__menu-block{width:100%;margin-bottom:0}}.footer__title{font-size:18px;font-weight:500;line-height:22px;letter-spacing:0;text-align:left;margin-bottom:24px;cursor:default}@media screen and (max-width: 480px){.footer__title{line-height:28px}}.footer__item{font-size:14px;font-weight:400;line-height:20px;letter-spacing:0;text-align:left;margin-bottom:16px;cursor:pointer;display:block}@media screen and (max-width: 480px){.footer__item{line-height:24px}}.footer__item:hover{opacity:.8}.footer__item-soc dd-lib-svg-icon ::ng-deep svg{cursor:pointer}.footer__item-soc dd-lib-svg-icon ::ng-deep svg:hover{opacity:.8}.footer__item-soc dd-lib-svg-icon ::ng-deep svg path{fill:var(--footer-soc-icon)}.footer__apps{max-width:278px;cursor:pointer}@media screen and (max-width: 1320px){.footer__apps{max-width:135px}}.footer__apps ::ng-deep svg{margin-bottom:8px}\n"], dependencies: [{ kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }, { kind: "component", type: FooterLinksBlockComponent, selector: "dd-footer-links-block", inputs: ["block"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5155
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.2", type: FooterComponent, isStandalone: true, selector: "dd-footer", outputs: { linkAction: "linkAction" }, viewQueries: [{ propertyName: "socSharing", first: true, predicate: ["socSharing"], descendants: true, static: true }, { propertyName: "appLink", first: true, predicate: ["appLink"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"footer\">\r\n <div class=\"g-container d-flex justify-between flex-wrap\">\r\n <div class=\"footer__column d-flex justify-between\">\r\n @for (item of linksLeft; track item) {\r\n <dd-footer-links-block [block]=\"item\"></dd-footer-links-block>\r\n }\r\n </div>\r\n <div class=\"footer__column d-flex justify-between\">\r\n @for (item of linksRight; track item) {\r\n <dd-footer-links-block [block]=\"item\"></dd-footer-links-block>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n<ng-template #appLink>\r\n <div class=\"footer__apps d-flex justify-between flex-wrap\">\r\n @for (soc of sharingLink; track soc) {\r\n <a [href]=\"soc.url\" target=\"_blank\">\r\n <dd-lib-svg-icon [icon]=\"soc.icon\"></dd-lib-svg-icon>\r\n </a>\r\n }\r\n </div>\r\n</ng-template>\r\n<ng-template #socSharing>\r\n <a class=\"footer__item-soc mb-16\">\r\n <dd-lib-svg-icon icon=\"vk\"></dd-lib-svg-icon>\r\n <dd-lib-svg-icon icon=\"tg\"></dd-lib-svg-icon>\r\n </a>\r\n</ng-template>\r\n", styles: [".footer{padding:40px 0;background-color:var(--footer-color);border-top:1px solid var(--footer-border-color);color:var(--footer-font-coolor)}@media screen and (max-width: 840px){.footer{padding-bottom:16px}}@media screen and (max-width: 480px){.footer{padding:24px 0}}.footer__column:first-child{width:41%}@media screen and (max-width: 1320px){.footer__column:first-child{width:44%}}@media screen and (max-width: 840px){.footer__column:first-child{width:100%}}@media screen and (max-width: 480px){.footer__column:first-child{width:44%;flex-wrap:wrap}}.footer__column:last-child{width:53%}@media screen and (max-width: 840px){.footer__column:last-child{width:100%}}@media screen and (max-width: 480px){.footer__column:last-child{width:48%;flex-wrap:wrap}}.footer__menu-block{display:flex;flex-direction:column;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@media screen and (max-width: 840px){.footer__menu-block{margin-bottom:24px}}@media screen and (max-width: 480px){.footer__menu-block{width:100%;margin-bottom:0}}.footer__title{font-size:18px;font-weight:500;line-height:22px;letter-spacing:0;text-align:left;margin-bottom:24px;cursor:default}@media screen and (max-width: 480px){.footer__title{line-height:28px}}.footer__item{font-size:14px;font-weight:400;line-height:20px;letter-spacing:0;text-align:left;margin-bottom:16px;cursor:pointer;display:block}@media screen and (max-width: 480px){.footer__item{line-height:24px}}.footer__item:hover{opacity:.8}.footer__item-soc dd-lib-svg-icon ::ng-deep svg{cursor:pointer}.footer__item-soc dd-lib-svg-icon ::ng-deep svg:hover{opacity:.8}.footer__item-soc dd-lib-svg-icon ::ng-deep svg path{fill:var(--footer-soc-icon)}.footer__apps{max-width:278px;cursor:pointer}@media screen and (max-width: 1320px){.footer__apps{max-width:135px}}.footer__apps ::ng-deep svg{margin-bottom:8px}\n"], dependencies: [{ kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }, { kind: "component", type: FooterLinksBlockComponent, selector: "dd-footer-links-block", inputs: ["block"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5020
5156
  }
5021
5157
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: FooterComponent, decorators: [{
5022
5158
  type: Component,
5023
- args: [{ selector: 'dd-footer', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [LibSvgIconComponent, FooterLinksBlockComponent], template: "<div class=\"footer\">\n <div class=\"g-container d-flex justify-between flex-wrap\">\n <div class=\"footer__column d-flex justify-between\">\n @for (item of linksLeft; track item) {\n <dd-footer-links-block [block]=\"item\"></dd-footer-links-block>\n }\n </div>\n <div class=\"footer__column d-flex justify-between\">\n @for (item of linksRight; track item) {\n <dd-footer-links-block [block]=\"item\"></dd-footer-links-block>\n }\n </div>\n </div>\n</div>\n<ng-template #appLink>\n <div class=\"footer__apps d-flex justify-between flex-wrap\">\n @for (soc of sharingLink; track soc) {\n <a [href]=\"soc.url\" target=\"_blank\">\n <dd-lib-svg-icon [icon]=\"soc.icon\"></dd-lib-svg-icon>\n </a>\n }\n </div>\n</ng-template>\n<ng-template #socSharing>\n <a class=\"footer__item-soc mb-16\">\n <dd-lib-svg-icon icon=\"vk\"></dd-lib-svg-icon>\n <dd-lib-svg-icon icon=\"tg\"></dd-lib-svg-icon>\n </a>\n</ng-template>\n", styles: [".footer{padding:40px 0;background-color:var(--footer-color);border-top:1px solid var(--footer-border-color);color:var(--footer-font-coolor)}@media screen and (max-width: 840px){.footer{padding-bottom:16px}}@media screen and (max-width: 480px){.footer{padding:24px 0}}.footer__column:first-child{width:41%}@media screen and (max-width: 1320px){.footer__column:first-child{width:44%}}@media screen and (max-width: 840px){.footer__column:first-child{width:100%}}@media screen and (max-width: 480px){.footer__column:first-child{width:44%;flex-wrap:wrap}}.footer__column:last-child{width:53%}@media screen and (max-width: 840px){.footer__column:last-child{width:100%}}@media screen and (max-width: 480px){.footer__column:last-child{width:48%;flex-wrap:wrap}}.footer__menu-block{display:flex;flex-direction:column;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@media screen and (max-width: 840px){.footer__menu-block{margin-bottom:24px}}@media screen and (max-width: 480px){.footer__menu-block{width:100%;margin-bottom:0}}.footer__title{font-size:18px;font-weight:500;line-height:22px;letter-spacing:0;text-align:left;margin-bottom:24px;cursor:default}@media screen and (max-width: 480px){.footer__title{line-height:28px}}.footer__item{font-size:14px;font-weight:400;line-height:20px;letter-spacing:0;text-align:left;margin-bottom:16px;cursor:pointer;display:block}@media screen and (max-width: 480px){.footer__item{line-height:24px}}.footer__item:hover{opacity:.8}.footer__item-soc dd-lib-svg-icon ::ng-deep svg{cursor:pointer}.footer__item-soc dd-lib-svg-icon ::ng-deep svg:hover{opacity:.8}.footer__item-soc dd-lib-svg-icon ::ng-deep svg path{fill:var(--footer-soc-icon)}.footer__apps{max-width:278px;cursor:pointer}@media screen and (max-width: 1320px){.footer__apps{max-width:135px}}.footer__apps ::ng-deep svg{margin-bottom:8px}\n"] }]
5159
+ args: [{ selector: 'dd-footer', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [LibSvgIconComponent, FooterLinksBlockComponent], template: "<div class=\"footer\">\r\n <div class=\"g-container d-flex justify-between flex-wrap\">\r\n <div class=\"footer__column d-flex justify-between\">\r\n @for (item of linksLeft; track item) {\r\n <dd-footer-links-block [block]=\"item\"></dd-footer-links-block>\r\n }\r\n </div>\r\n <div class=\"footer__column d-flex justify-between\">\r\n @for (item of linksRight; track item) {\r\n <dd-footer-links-block [block]=\"item\"></dd-footer-links-block>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n<ng-template #appLink>\r\n <div class=\"footer__apps d-flex justify-between flex-wrap\">\r\n @for (soc of sharingLink; track soc) {\r\n <a [href]=\"soc.url\" target=\"_blank\">\r\n <dd-lib-svg-icon [icon]=\"soc.icon\"></dd-lib-svg-icon>\r\n </a>\r\n }\r\n </div>\r\n</ng-template>\r\n<ng-template #socSharing>\r\n <a class=\"footer__item-soc mb-16\">\r\n <dd-lib-svg-icon icon=\"vk\"></dd-lib-svg-icon>\r\n <dd-lib-svg-icon icon=\"tg\"></dd-lib-svg-icon>\r\n </a>\r\n</ng-template>\r\n", styles: [".footer{padding:40px 0;background-color:var(--footer-color);border-top:1px solid var(--footer-border-color);color:var(--footer-font-coolor)}@media screen and (max-width: 840px){.footer{padding-bottom:16px}}@media screen and (max-width: 480px){.footer{padding:24px 0}}.footer__column:first-child{width:41%}@media screen and (max-width: 1320px){.footer__column:first-child{width:44%}}@media screen and (max-width: 840px){.footer__column:first-child{width:100%}}@media screen and (max-width: 480px){.footer__column:first-child{width:44%;flex-wrap:wrap}}.footer__column:last-child{width:53%}@media screen and (max-width: 840px){.footer__column:last-child{width:100%}}@media screen and (max-width: 480px){.footer__column:last-child{width:48%;flex-wrap:wrap}}.footer__menu-block{display:flex;flex-direction:column;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@media screen and (max-width: 840px){.footer__menu-block{margin-bottom:24px}}@media screen and (max-width: 480px){.footer__menu-block{width:100%;margin-bottom:0}}.footer__title{font-size:18px;font-weight:500;line-height:22px;letter-spacing:0;text-align:left;margin-bottom:24px;cursor:default}@media screen and (max-width: 480px){.footer__title{line-height:28px}}.footer__item{font-size:14px;font-weight:400;line-height:20px;letter-spacing:0;text-align:left;margin-bottom:16px;cursor:pointer;display:block}@media screen and (max-width: 480px){.footer__item{line-height:24px}}.footer__item:hover{opacity:.8}.footer__item-soc dd-lib-svg-icon ::ng-deep svg{cursor:pointer}.footer__item-soc dd-lib-svg-icon ::ng-deep svg:hover{opacity:.8}.footer__item-soc dd-lib-svg-icon ::ng-deep svg path{fill:var(--footer-soc-icon)}.footer__apps{max-width:278px;cursor:pointer}@media screen and (max-width: 1320px){.footer__apps{max-width:135px}}.footer__apps ::ng-deep svg{margin-bottom:8px}\n"] }]
5024
5160
  }], ctorParameters: () => [{ type: SvgIconsService }], propDecorators: { socSharing: [{
5025
5161
  type: ViewChild,
5026
5162
  args: ['socSharing', { static: true }]
@@ -5133,5 +5269,5 @@ const t = true;
5133
5269
  * Generated bundle index. Do not edit.
5134
5270
  */
5135
5271
 
5136
- export { AutoHeightDirective, ClickOutsideDirective, CounterDirective, DDDialogRef, DEFAULT_FORMAT, DIALOG_CONFIG, DataEmptyComponent, DateService, Debounce, DeclensionDirective, DestroyService, DialogConfig, DialogService, DisableAfterNCall, Disabled, DropDownPositionDirective, ErrorPageComponent, FetcherService, FilterByKeyPipe, FilterPipe, FilterTabsPipe, FixedPositionDirective, FooterComponent, FooterLinkComponent, FooterLinksBlockComponent, HighlightPipe, ITab, InterceptorsService, LibAccordionComponent, LibBackButtonComponent, LibButtonComponent, LibCalendarComponent, LibCardComponent, LibCheckboxComponent, LibCommentInputComponent, LibCommonButtonComponent, LibCommonInputTextComponent, LibDateInputComponent, LibDateRangeComponent, LibDisclaimerComponent, LibFileLoaderComponent, LibFileUploadComponent, LibFilterButtonComponent, LibFilterComponent, LibHorizontalScrollComponent, LibImageLoaderComponent, LibInfoCardComponent, LibInputComponent, LibLoaderComponent, LibPeriodComponent, LibRadioComponent, LibSearchInputComponent, LibSelectComponent, LibSkeletonComponent, LibSortComponent, LibStepComponent, LibSvgComponent, LibSvgIconComponent, LibTabsFragmentComponent, LibTextareaComponent, ListKeyboardNavigationDirective, MainSharedComponent, ModalBaseComponent, ModalCommonComponent, NotFoundComponent, PhoneMaskDirective, ResizeTextareaDirective, ReversePipe, SafePipe, SelectableItemDirective, SvgIconsService, TOAST_CONFIG_TOKEN, TOOLTIP_DATA, TechWorksComponent, ThemeConfigurator, ThemeConstructorService, Throttle, ToastComponent, ToastConfig, ToastData, ToastRef, ToastService, ToastTypeData, TooltipComponent, TooltipDirective, TriangleDirective, ValidatorsService, completeIconSet, defaultToastConfig, provideToast, svgIconActogoneAccept, svgIconAll, svgIconAppgalery, svgIconAppstore, svgIconArrowDownRed, svgIconArrowUpGreen, svgIconBackArrow, svgIconBurger, svgIconCalendar, svgIconCheckGreen, svgIconCheckWhite, svgIconCircleNo, svgIconClear, svgIconClose, svgIconDangerT, svgIconDd, svgIconDdM, svgIconDobrodel, svgIconDownChevron, svgIconDownload, svgIconEds, svgIconEds2, svgIconEds2M, svgIconEdsM, svgIconEntry, svgIconErrorHint, svgIconEsia, svgIconEye, svgIconEyeOff, svgIconFile, svgIconFilter, svgIconGoogleapp, svgIconGrid, svgIconHealth, svgIconHealthM, svgIconInfoCircle, svgIconInfoT, svgIconLeftChevron, svgIconListSearch, svgIconLogout, svgIconMailExclamation, svgIconMaxFilter, svgIconMoon, svgIconMy, svgIconMyM, svgIconNews, svgIconNext, svgIconPaperclip, svgIconPenEdit, svgIconPguMo, svgIconPguMoM, svgIconPlug, svgIconPlugD, svgIconPlus, svgIconPreset, svgIconPrev, svgIconPrint, svgIconPrinter, svgIconQuestion, svgIconQuestionWhiteG, svgIconRedClose, svgIconReload, svgIconRightChevron, svgIconRustore, svgIconSearch, svgIconSend, svgIconSetAvatar, svgIconSharedLogo, svgIconSmallRoundLoader, svgIconSort, svgIconStar, svgIconSuccessT, svgIconSun, svgIconTg, svgIconToggleArrowLeft, svgIconToggleArrowRight, svgIconTrash, svgIconTrophy, svgIconUser, svgIconUserEmpty, svgIconUserEmptyD, svgIconVk, svgIconWarningT, t };
5272
+ export { API_URL, AutoHeightDirective, ClickOutsideDirective, CounterDirective, DDDialogRef, DEFAULT_FORMAT, DIALOG_CONFIG, DataEmptyComponent, DateService, Debounce, DeclensionDirective, DestroyService, DialogConfig, DialogService, DisableAfterNCall, Disabled, DropDownPositionDirective, ErrorPageComponent, FetcherService, FilterByKeyPipe, FilterPipe, FilterTabsPipe, FixedPositionDirective, FooterComponent, FooterLinkComponent, FooterLinksBlockComponent, HighlightPipe, ITab, InterceptorsService, LibAccordionComponent, LibBackButtonComponent, LibButtonComponent, LibCalendarComponent, LibCardComponent, LibCheckboxComponent, LibCommentInputComponent, LibCommonButtonComponent, LibCommonInputTextComponent, LibDateInputComponent, LibDateRangeComponent, LibDisclaimerComponent, LibFileLoaderComponent, LibFileUploadComponent, LibFilterButtonComponent, LibFilterComponent, LibHorizontalScrollComponent, LibImageLoaderComponent, LibInfoCardComponent, LibInputComponent, LibLoaderComponent, LibPeriodComponent, LibRadioComponent, LibSearchInputComponent, LibSelectComponent, LibSkeletonComponent, LibSortComponent, LibStepComponent, LibSvgComponent, LibSvgIconComponent, LibSvgViewerComponent, LibTabsFragmentComponent, LibTextareaComponent, ListKeyboardNavigationDirective, MainSharedComponent, ModalBaseComponent, ModalCommonComponent, NotFoundComponent, PhoneMaskDirective, ResizeTextareaDirective, ReversePipe, SafePipe, SelectableItemDirective, SvgIconsService, TOAST_CONFIG_TOKEN, TOOLTIP_DATA, TechWorksComponent, ThemeConfigurator, ThemeConstructorService, Throttle, ToastComponent, ToastConfig, ToastData, ToastRef, ToastService, ToastTypeData, TooltipComponent, TooltipDirective, TriangleDirective, ValidatorsService, completeIconSet, defaultToastConfig, provideToast, svgIconActogoneAccept, svgIconAll, svgIconAppgalery, svgIconAppstore, svgIconArrowDownRed, svgIconArrowUpGreen, svgIconBackArrow, svgIconBurger, svgIconCalendar, svgIconCheckGreen, svgIconCheckWhite, svgIconCircleNo, svgIconClear, svgIconClose, svgIconDangerT, svgIconDd, svgIconDdM, svgIconDobrodel, svgIconDownChevron, svgIconDownload, svgIconEds, svgIconEds2, svgIconEds2M, svgIconEdsM, svgIconEntry, svgIconErrorHint, svgIconEsia, svgIconEye, svgIconEyeOff, svgIconFile, svgIconFilter, svgIconGoogleapp, svgIconGrid, svgIconHealth, svgIconHealthM, svgIconInfoCircle, svgIconInfoT, svgIconLeftChevron, svgIconListSearch, svgIconLogout, svgIconMailExclamation, svgIconMaxFilter, svgIconMoon, svgIconMy, svgIconMyM, svgIconNews, svgIconNext, svgIconPaperclip, svgIconPenEdit, svgIconPguMo, svgIconPguMoM, svgIconPlug, svgIconPlugD, svgIconPlus, svgIconPreset, svgIconPrev, svgIconPrint, svgIconPrinter, svgIconQuestion, svgIconQuestionWhiteG, svgIconRedClose, svgIconReload, svgIconRightChevron, svgIconRustore, svgIconSearch, svgIconSend, svgIconSetAvatar, svgIconSharedLogo, svgIconSmallRoundLoader, svgIconSort, svgIconStar, svgIconSuccessT, svgIconSun, svgIconTg, svgIconToggleArrowLeft, svgIconToggleArrowRight, svgIconTrash, svgIconTrophy, svgIconUser, svgIconUserEmpty, svgIconUserEmptyD, svgIconVk, svgIconWarningT, t };
5137
5273
  //# sourceMappingURL=morozeckiy-dd-lib.mjs.map