@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.
- package/assets/images/svg/award.svg +12 -0
- package/fesm2022/morozeckiy-dd-lib.mjs +149 -13
- package/fesm2022/morozeckiy-dd-lib.mjs.map +1 -1
- package/lib/core/services/fetcher.service.d.ts +3 -1
- package/lib/lib-svg/lib-svg.component.d.ts +3 -0
- package/lib/lib-svg-viewer/lib-svg-viewer.component.d.ts +28 -0
- package/morozeckiy-dd-lib-0.7.62.tgz +0 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/morozeckiy-dd-lib-0.7.54.tgz +0 -0
|
@@ -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,
|
|
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
|
-
|
|
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
|
|
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:
|
|
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: [
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|