@snabcentr/client-ui 3.7.0 → 3.8.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. package/contacts/sc-contacts.module.d.ts +4 -4
  2. package/directives/index.d.ts +1 -2
  3. package/directives/links/index.d.ts +4 -0
  4. package/directives/links/sc-email-link.directive.d.ts +25 -0
  5. package/directives/links/sc-link-location.d.ts +5 -0
  6. package/directives/links/sc-links.d.ts +7 -0
  7. package/directives/{tel-link → links}/sc-tel-link.directive.d.ts +15 -2
  8. package/error-handler/consts/error-change-handler.providers.d.ts +5 -0
  9. package/error-handler/error-block-status/error-block-status.component.d.ts +37 -0
  10. package/error-handler/index.d.ts +4 -0
  11. package/error-handler/interfaces/i-block-error.d.ts +17 -0
  12. package/error-handler/sc-error-handler.component.d.ts +40 -0
  13. package/esm2022/contacts/contacts-accordion/sc-contacts-accordion.component.mjs +5 -5
  14. package/esm2022/contacts/sc-contacts.module.mjs +7 -11
  15. package/esm2022/directives/index.mjs +2 -3
  16. package/esm2022/directives/links/index.mjs +5 -0
  17. package/esm2022/directives/links/sc-email-link.directive.mjs +49 -0
  18. package/esm2022/directives/links/sc-link-location.mjs +2 -0
  19. package/esm2022/directives/links/sc-links.mjs +8 -0
  20. package/esm2022/directives/links/sc-tel-link.directive.mjs +79 -0
  21. package/esm2022/error-handler/consts/error-change-handler.providers.mjs +8 -0
  22. package/esm2022/error-handler/error-block-status/error-block-status.component.mjs +76 -0
  23. package/esm2022/error-handler/index.mjs +5 -0
  24. package/esm2022/error-handler/interfaces/i-block-error.mjs +2 -0
  25. package/esm2022/error-handler/sc-error-handler.component.mjs +58 -0
  26. package/esm2022/pipes/sc-formatted-phone.mjs +2 -2
  27. package/esm2022/profile/sc-profile-accordions-content/sc-profile-accordions-content.component.mjs +9 -8
  28. package/esm2022/profile/sc-profile.module.mjs +7 -8
  29. package/esm2022/public-api.mjs +2 -1
  30. package/esm2022/user/sc-user.module.mjs +7 -7
  31. package/esm2022/user/user-managers/sc-user-managers.component.mjs +6 -5
  32. package/fesm2022/snabcentr-client-ui.mjs +648 -475
  33. package/fesm2022/snabcentr-client-ui.mjs.map +1 -1
  34. package/package.json +1 -1
  35. package/profile/sc-profile.module.d.ts +5 -3
  36. package/public-api.d.ts +1 -0
  37. package/release_notes.tmp +2 -6
  38. package/styles/taiga/snabcentr-tailwind-preset.js +10 -0
  39. package/styles/tailwind/tailwind.scss +62 -0
  40. package/user/sc-user.module.d.ts +4 -2
  41. package/directives/tel-link/sc-tel-link.module.d.ts +0 -11
  42. package/esm2022/directives/tel-link/sc-tel-link.directive.mjs +0 -58
  43. package/esm2022/directives/tel-link/sc-tel-link.module.mjs +0 -20
@@ -12,14 +12,14 @@ import * as i10 from "@maskito/angular";
12
12
  import * as i11 from "@taiga-ui/kit";
13
13
  import * as i12 from "@taiga-ui/legacy";
14
14
  import * as i13 from "@taiga-ui/core/components/data-list";
15
- import * as i14 from "../directives/terminal-link/sc-terminal-link.directive";
16
- import * as i15 from "../pipes/sc-formatted-phone";
17
- import * as i16 from "../directives/tel-link/sc-tel-link.directive";
15
+ import * as i14 from "../directives/links/sc-tel-link.directive";
16
+ import * as i15 from "../directives/links/sc-email-link.directive";
17
+ import * as i16 from "../pipes/sc-formatted-phone";
18
18
  /**
19
19
  * Модуль контактных лиц.
20
20
  */
21
21
  export declare class ScContactsModule {
22
22
  static ɵfac: i0.ɵɵFactoryDeclaration<ScContactsModule, never>;
23
- static ɵmod: i0.ɵɵNgModuleDeclaration<ScContactsModule, [typeof i1.ScContactsAccordionComponent, typeof i2.ScNewContactFormComponent, typeof i3.ScAddContactDialogComponent], [typeof i4.CommonModule, typeof i5.FormsModule, typeof i5.ReactiveFormsModule, typeof i6.ScAccordionModule, typeof i7.TuiButton, typeof i7.TuiLoader, typeof i8.TuiLet, typeof i7.TuiNotification, typeof i7.TuiLink, typeof i9.ScFormFieldsModule, typeof i10.MaskitoDirective, typeof i11.TuiFieldErrorPipe, typeof i12.TuiSelectModule, typeof i7.TuiDataListComponent, typeof i7.TuiDataListDirective, typeof i7.TuiOption, typeof i7.TuiOptGroup, typeof i11.TuiDataListWrapperComponent, typeof i11.TuiDataListGroupWrapperComponent, typeof i13.TuiDataListDirective, typeof i7.TuiLabel, typeof i12.TuiInputModule, typeof i12.TuiInputPhoneModule, typeof i7.TuiError, typeof i14.ScTerminalLinkDirective, typeof i15.ScFormatePhonePipe, typeof i16.ScTelLinkDirective, typeof i11.TuiButtonLoading], [typeof i1.ScContactsAccordionComponent, typeof i2.ScNewContactFormComponent, typeof i3.ScAddContactDialogComponent]>;
23
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ScContactsModule, [typeof i1.ScContactsAccordionComponent, typeof i2.ScNewContactFormComponent, typeof i3.ScAddContactDialogComponent], [typeof i4.CommonModule, typeof i5.FormsModule, typeof i5.ReactiveFormsModule, typeof i6.ScAccordionModule, typeof i7.TuiButton, typeof i7.TuiLoader, typeof i8.TuiLet, typeof i7.TuiNotification, typeof i7.TuiLink, typeof i9.ScFormFieldsModule, typeof i10.MaskitoDirective, typeof i11.TuiFieldErrorPipe, typeof i12.TuiSelectModule, typeof i7.TuiDataListComponent, typeof i7.TuiDataListDirective, typeof i7.TuiOption, typeof i7.TuiOptGroup, typeof i11.TuiDataListWrapperComponent, typeof i11.TuiDataListGroupWrapperComponent, typeof i13.TuiDataListDirective, typeof i7.TuiLabel, typeof i12.TuiInputModule, typeof i12.TuiInputPhoneModule, typeof i7.TuiError, typeof i14.ScTelLinkDirective, typeof i15.ScEmailLinkDirective, typeof i16.ScFormatePhonePipe, typeof i11.TuiButtonLoading], [typeof i1.ScContactsAccordionComponent, typeof i2.ScNewContactFormComponent, typeof i3.ScAddContactDialogComponent]>;
24
24
  static ɵinj: i0.ɵɵInjectorDeclaration<ScContactsModule>;
25
25
  }
@@ -1,6 +1,5 @@
1
1
  export * from './next-input-focus/sc-next-input-focus.directive';
2
2
  export * from './next-input-focus/sc-next-input-focus.module';
3
3
  export * from './abstract-price-card/abstract-sc-price-card.directive';
4
- export * from './tel-link/sc-tel-link.directive';
5
- export * from './tel-link/sc-tel-link.module';
6
4
  export * from './terminal-link/sc-terminal-link.directive';
5
+ export * from './links';
@@ -0,0 +1,4 @@
1
+ export * from './sc-links';
2
+ export * from './sc-link-location';
3
+ export * from './sc-email-link.directive';
4
+ export * from './sc-tel-link.directive';
@@ -0,0 +1,25 @@
1
+ import { ScLinkLocation } from './sc-link-location';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Директива, которая управляет свойствами ссылки адреса электронной почты.
5
+ */
6
+ export declare class ScEmailLinkDirective {
7
+ /**
8
+ * Ссылка на HTML элемент тега `<a>`.
9
+ */
10
+ private elementReference;
11
+ /**
12
+ * Условное название блока где расположена ссылка.
13
+ */
14
+ linkLocation: ScLinkLocation;
15
+ /**
16
+ * Сервис для сбора метрик о действиях пользователей.
17
+ */
18
+ private readonly userMetrikaService;
19
+ /**
20
+ * Обработчик клика по ссылке.
21
+ */
22
+ private click;
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScEmailLinkDirective, never>;
24
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ScEmailLinkDirective, "a[scEmailLink]", never, { "linkLocation": { "alias": "linkLocation"; "required": true; }; }, {}, never, never, true, never>;
25
+ }
@@ -0,0 +1,5 @@
1
+ import { TuiLooseUnion } from '@taiga-ui/cdk';
2
+ /**
3
+ * Тип данных условного названия блока где расположена ссылка.
4
+ */
5
+ export type ScLinkLocation = TuiLooseUnion<'contact' | 'questions-and-answers' | 'profile' | 'user-managers' | 'manager-card' | 'retails-map' | 'landing' | 'footer' | 'order' | 'vacancies' | 'header'>;
@@ -0,0 +1,7 @@
1
+ import { ScFormatePhonePipe } from '../../pipes/sc-formatted-phone';
2
+ import { ScEmailLinkDirective } from './sc-email-link.directive';
3
+ import { ScTelLinkDirective } from './sc-tel-link.directive';
4
+ /**
5
+ * Список директив ссылок.
6
+ */
7
+ export declare const ScLinks: readonly [typeof ScTelLinkDirective, typeof ScEmailLinkDirective, typeof ScFormatePhonePipe];
@@ -1,4 +1,5 @@
1
1
  import { OnChanges, SimpleChanges } from '@angular/core';
2
+ import { ScLinkLocation } from './sc-link-location';
2
3
  import * as i0 from "@angular/core";
3
4
  /**
4
5
  * Директива, которая управляет свойствами ссылки номера телефона для валидации значения номера телефона.
@@ -15,13 +16,25 @@ export declare class ScTelLinkDirective implements OnChanges {
15
16
  /**
16
17
  * Номер телефона, который будет проверен на валидность.
17
18
  */
18
- scTelLink: string;
19
+ tel: string;
20
+ /**
21
+ * Условное название блока где расположена ссылка.
22
+ */
23
+ linkLocation: ScLinkLocation;
24
+ /**
25
+ * Сервис для сбора метрик о действиях пользователей.
26
+ */
27
+ private readonly userMetrikaService;
19
28
  /** @inheritDoc */
20
29
  ngOnChanges(changes: SimpleChanges): void;
30
+ /**
31
+ * Обработчик клика по ссылке.
32
+ */
33
+ private click;
21
34
  /**
22
35
  * Обновляет состояние ссылки на основе валидности номера телефона.
23
36
  */
24
37
  private updateLinkState;
25
38
  static ɵfac: i0.ɵɵFactoryDeclaration<ScTelLinkDirective, never>;
26
- static ɵdir: i0.ɵɵDirectiveDeclaration<ScTelLinkDirective, "[scTelLink]", never, { "scTelLink": { "alias": "scTelLink"; "required": false; }; }, {}, never, never, true, never>;
39
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ScTelLinkDirective, "a[scTelLink]", never, { "tel": { "alias": "scTelLink"; "required": true; }; "linkLocation": { "alias": "linkLocation"; "required": true; }; }, {}, never, never, true, never>;
27
40
  }
@@ -0,0 +1,5 @@
1
+ import { IBlockError } from '../interfaces/i-block-error';
2
+ /**
3
+ * Токен обработчика смены ошибки.
4
+ */
5
+ export declare const SC_ERROR_CHANGE_HANDLER: import("@angular/core").InjectionToken<(error: IBlockError) => void>;
@@ -0,0 +1,37 @@
1
+ import { Signal } from '@angular/core';
2
+ import { IBlockError } from '../interfaces/i-block-error';
3
+ import { ScErrorHandlerComponent } from '../sc-error-handler.component';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Компонент представления данных об ошибке.
7
+ */
8
+ export declare class ScErrorBlockStatusComponent {
9
+ /**
10
+ * Компонент управляющий кодом ошибки отображаемой на странице.
11
+ */
12
+ protected readonly errorHandlerComponent: ScErrorHandlerComponent;
13
+ /**
14
+ * Сигнал кода ошибки.
15
+ */
16
+ protected readonly code: Signal<number | null>;
17
+ /**
18
+ * Данные об ошибке.
19
+ */
20
+ protected readonly error: Signal<IBlockError>;
21
+ /**
22
+ * Создает сигнал изменения строкового представления об ошибке.
23
+ */
24
+ protected readonly pageErrorChange: import("@angular/core").OutputEmitterRef<IBlockError>;
25
+ /**
26
+ * Инициализирует экземпляр класса {@link ErrorPageComponent}.
27
+ */
28
+ constructor();
29
+ /**
30
+ * Возвращает описание ошибки.
31
+ *
32
+ * @param code Код ошибки.
33
+ */
34
+ protected getErrorMessage(code: number | null): IBlockError;
35
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScErrorBlockStatusComponent, never>;
36
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScErrorBlockStatusComponent, "sc-error-block-status", never, {}, { "pageErrorChange": "pageErrorChange"; }, never, never, true, never>;
37
+ }
@@ -0,0 +1,4 @@
1
+ export * from './interfaces/i-block-error';
2
+ export * from './consts/error-change-handler.providers';
3
+ export * from './sc-error-handler.component';
4
+ export * from './error-block-status/error-block-status.component';
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Модель данных ошибки для блока состояния ошибки.
3
+ */
4
+ export interface IBlockError {
5
+ /**
6
+ * Код ошибки.
7
+ */
8
+ code: number;
9
+ /**
10
+ * Краткое сообщение об ошибке, соответствующее коду ошибки.
11
+ */
12
+ message: string;
13
+ /**
14
+ * Развёрнутое описание ошибки.
15
+ */
16
+ description: string;
17
+ }
@@ -0,0 +1,40 @@
1
+ import { Signal } from '@angular/core';
2
+ import { IBlockError } from './interfaces/i-block-error';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Компонент для управления кодом ошибки отображаемой на странице.
6
+ */
7
+ export declare class ScErrorHandlerComponent {
8
+ /**
9
+ * Сигнал для хранения кода ошибки.
10
+ */
11
+ protected readonly code: import("@angular/core").WritableSignal<number | null>;
12
+ /**
13
+ * Сигнал дефолтного передаваемого из вне значения ошибки.
14
+ */
15
+ defaultCode: import("@angular/core").InputSignal<number | null>;
16
+ /**
17
+ * Сервис маршрутизации.
18
+ */
19
+ private readonly router;
20
+ /**
21
+ * Обработчик изменения ошибки.
22
+ */
23
+ protected readonly errorChangeHandler: (error: IBlockError) => void;
24
+ /**
25
+ * Инициирует экземпляр класса {@link ErrorHandlerComponent}.
26
+ */
27
+ constructor();
28
+ /**
29
+ * Возвращает текущий сигнал с кодом ошибки.
30
+ */
31
+ getErrorCode(): Signal<number | null>;
32
+ /**
33
+ * Устанавливает новый код ошибки.
34
+ *
35
+ * @param code Новый код ошибки.
36
+ */
37
+ setErrorCode(code: number): void;
38
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScErrorHandlerComponent, never>;
39
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScErrorHandlerComponent, "sc-error-handler", never, { "defaultCode": { "alias": "code"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
40
+ }
@@ -5,8 +5,8 @@ import * as i2 from "../../accordion/sc-accordion.component";
5
5
  import * as i3 from "../../accordion/sc-accordion-content.directive";
6
6
  import * as i4 from "@taiga-ui/core";
7
7
  import * as i5 from "@taiga-ui/cdk";
8
- import * as i6 from "../../directives/terminal-link/sc-terminal-link.directive";
9
- import * as i7 from "../../directives/tel-link/sc-tel-link.directive";
8
+ import * as i6 from "../../directives/links/sc-tel-link.directive";
9
+ import * as i7 from "../../directives/links/sc-email-link.directive";
10
10
  import * as i8 from "../../pipes/sc-formatted-phone";
11
11
  /**
12
12
  * Компонент контактного лица в списке.
@@ -23,11 +23,11 @@ export class ScContactsAccordionComponent {
23
23
  this.deleteButtonClick = new EventEmitter();
24
24
  }
25
25
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScContactsAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: ScContactsAccordionComponent, selector: "sc-contacts-accordion", inputs: { contacts$: "contacts$" }, outputs: { addContactClick: "addContactClick", deleteButtonClick: "deleteButtonClick" }, ngImport: i0, template: "<sc-accordion (addButtonClick)=\"addContactClick.emit()\">\n \u041A\u043E\u043D\u0442\u0430\u043A\u0442\u044B\n <ng-template scAccordionContent>\n <tui-loader\n *tuiLet=\"contacts$ | async as contacts\"\n [overlay]=\"true\"\n [showLoader]=\"contacts === null\"\n >\n <div class=\"flex flex-col gap-2\">\n <ng-container *ngIf=\"!contacts || contacts.length; else contactsNotExist\">\n <div\n *ngFor=\"let contact of contacts\"\n class=\"flex gap-2 border-b border-tui-base-03\"\n >\n <div class=\"flex grow flex-col gap-2\">\n {{ contact.name }}\n <a\n *ngIf=\"contact.phone\"\n tuiLink\n [scTelLink]=\"contact.phone\"\n iconStart=\"@tui.phone\"\n [pseudo]=\"true\"\n href=\"tel:{{ contact.phone | scFormatePhone }}\"\n >\n {{ contact.phone | scFormatePhone }}\n </a>\n <a\n *ngIf=\"contact.email\"\n tuiLink\n iconStart=\"@tui.mail\"\n [pseudo]=\"true\"\n href=\"mailto:{{ contact.email }}\"\n >\n {{ contact.email }}\n </a>\n </div>\n <!-- \u0424\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E \u043D\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E. -->\n <!-- <div class=\"flex flex-col md:flex-row gap-1\">\n <button\n tuiIconButton\n size=\"m\"\n type=\"button\"\n icon=\"@tui.trash-2\"\n appearance=\"flat\"\n (click)=\"$event.stopPropagation(); deleteButtonClick.emit(contact)\"\n ></button>\n </div> -->\n </div>\n </ng-container>\n\n <ng-template #contactsNotExist>\n <tui-notification size=\"l\">\n <div>\n <div class=\"flex flex-wrap gap-2 font-medium\">\u041A\u043E\u043D\u0442\u0430\u043A\u0442\u044B \u043D\u0435 \u0443\u043A\u0430\u0437\u0430\u043D\u044B.</div>\n </div>\n </tui-notification>\n </ng-template>\n </div>\n </tui-loader>\n </ng-template>\n</sc-accordion>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ScAccordionComponent, selector: "sc-accordion", inputs: ["showAddButton", "showDeleteButton", "showArrow", "open", "size"], outputs: ["addButtonClick", "deleteButtonClick"] }, { kind: "directive", type: i3.ScAccordionContentDirective, selector: "ng-template[scAccordionContent]" }, { kind: "component", type: i4.TuiLoader, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }, { kind: "directive", type: i5.TuiLet, selector: "[tuiLet]", inputs: ["tuiLet"] }, { kind: "directive", type: i4.TuiNotification, selector: "tui-notification,a[tuiNotification],button[tuiNotification]", inputs: ["appearance", "icon", "size"] }, { kind: "directive", type: i4.TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }, { kind: "directive", type: i6.ScTerminalLinkDirective, selector: "a[href]" }, { kind: "directive", type: i7.ScTelLinkDirective, selector: "[scTelLink]", inputs: ["scTelLink"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.ScFormatePhonePipe, name: "scFormatePhone" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
26
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: ScContactsAccordionComponent, selector: "sc-contacts-accordion", inputs: { contacts$: "contacts$" }, outputs: { addContactClick: "addContactClick", deleteButtonClick: "deleteButtonClick" }, ngImport: i0, template: "<sc-accordion (addButtonClick)=\"addContactClick.emit()\">\n \u041A\u043E\u043D\u0442\u0430\u043A\u0442\u044B\n <ng-template scAccordionContent>\n <tui-loader\n *tuiLet=\"contacts$ | async as contacts\"\n [overlay]=\"true\"\n [showLoader]=\"contacts === null\"\n >\n <div class=\"flex flex-col gap-2\">\n <ng-container *ngIf=\"!contacts || contacts.length; else contactsNotExist\">\n <div\n *ngFor=\"let contact of contacts\"\n class=\"flex gap-2 border-b border-tui-base-03\"\n >\n <div class=\"flex grow flex-col gap-2\">\n {{ contact.name }}\n <a\n *ngIf=\"contact.phone\"\n tuiLink\n [scTelLink]=\"contact.phone\"\n linkLocation=\"contact\"\n iconStart=\"@tui.phone\"\n [pseudo]=\"true\"\n href=\"tel:{{ contact.phone | scFormatePhone }}\"\n >\n {{ contact.phone | scFormatePhone }}\n </a>\n <a\n *ngIf=\"contact.email\"\n tuiLink\n scEmailLink\n linkLocation=\"contact\"\n iconStart=\"@tui.mail\"\n [pseudo]=\"true\"\n href=\"mailto:{{ contact.email }}\"\n >\n {{ contact.email }}\n </a>\n </div>\n <!-- \u0424\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E \u043D\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E. -->\n <!-- <div class=\"flex flex-col md:flex-row gap-1\">\n <button\n tuiIconButton\n size=\"m\"\n type=\"button\"\n icon=\"@tui.trash-2\"\n appearance=\"flat\"\n (click)=\"$event.stopPropagation(); deleteButtonClick.emit(contact)\"\n ></button>\n </div> -->\n </div>\n </ng-container>\n\n <ng-template #contactsNotExist>\n <tui-notification size=\"l\">\n <div>\n <div class=\"flex flex-wrap gap-2 font-medium\">\u041A\u043E\u043D\u0442\u0430\u043A\u0442\u044B \u043D\u0435 \u0443\u043A\u0430\u0437\u0430\u043D\u044B.</div>\n </div>\n </tui-notification>\n </ng-template>\n </div>\n </tui-loader>\n </ng-template>\n</sc-accordion>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ScAccordionComponent, selector: "sc-accordion", inputs: ["showAddButton", "showDeleteButton", "showArrow", "open", "size"], outputs: ["addButtonClick", "deleteButtonClick"] }, { kind: "directive", type: i3.ScAccordionContentDirective, selector: "ng-template[scAccordionContent]" }, { kind: "component", type: i4.TuiLoader, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }, { kind: "directive", type: i5.TuiLet, selector: "[tuiLet]", inputs: ["tuiLet"] }, { kind: "directive", type: i4.TuiNotification, selector: "tui-notification,a[tuiNotification],button[tuiNotification]", inputs: ["appearance", "icon", "size"] }, { kind: "directive", type: i4.TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }, { kind: "directive", type: i6.ScTelLinkDirective, selector: "a[scTelLink]", inputs: ["scTelLink", "linkLocation"] }, { kind: "directive", type: i7.ScEmailLinkDirective, selector: "a[scEmailLink]", inputs: ["linkLocation"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.ScFormatePhonePipe, name: "scFormatePhone" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27
27
  }
28
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScContactsAccordionComponent, decorators: [{
29
29
  type: Component,
30
- args: [{ selector: 'sc-contacts-accordion', changeDetection: ChangeDetectionStrategy.OnPush, template: "<sc-accordion (addButtonClick)=\"addContactClick.emit()\">\n \u041A\u043E\u043D\u0442\u0430\u043A\u0442\u044B\n <ng-template scAccordionContent>\n <tui-loader\n *tuiLet=\"contacts$ | async as contacts\"\n [overlay]=\"true\"\n [showLoader]=\"contacts === null\"\n >\n <div class=\"flex flex-col gap-2\">\n <ng-container *ngIf=\"!contacts || contacts.length; else contactsNotExist\">\n <div\n *ngFor=\"let contact of contacts\"\n class=\"flex gap-2 border-b border-tui-base-03\"\n >\n <div class=\"flex grow flex-col gap-2\">\n {{ contact.name }}\n <a\n *ngIf=\"contact.phone\"\n tuiLink\n [scTelLink]=\"contact.phone\"\n iconStart=\"@tui.phone\"\n [pseudo]=\"true\"\n href=\"tel:{{ contact.phone | scFormatePhone }}\"\n >\n {{ contact.phone | scFormatePhone }}\n </a>\n <a\n *ngIf=\"contact.email\"\n tuiLink\n iconStart=\"@tui.mail\"\n [pseudo]=\"true\"\n href=\"mailto:{{ contact.email }}\"\n >\n {{ contact.email }}\n </a>\n </div>\n <!-- \u0424\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E \u043D\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E. -->\n <!-- <div class=\"flex flex-col md:flex-row gap-1\">\n <button\n tuiIconButton\n size=\"m\"\n type=\"button\"\n icon=\"@tui.trash-2\"\n appearance=\"flat\"\n (click)=\"$event.stopPropagation(); deleteButtonClick.emit(contact)\"\n ></button>\n </div> -->\n </div>\n </ng-container>\n\n <ng-template #contactsNotExist>\n <tui-notification size=\"l\">\n <div>\n <div class=\"flex flex-wrap gap-2 font-medium\">\u041A\u043E\u043D\u0442\u0430\u043A\u0442\u044B \u043D\u0435 \u0443\u043A\u0430\u0437\u0430\u043D\u044B.</div>\n </div>\n </tui-notification>\n </ng-template>\n </div>\n </tui-loader>\n </ng-template>\n</sc-accordion>\n" }]
30
+ args: [{ selector: 'sc-contacts-accordion', changeDetection: ChangeDetectionStrategy.OnPush, template: "<sc-accordion (addButtonClick)=\"addContactClick.emit()\">\n \u041A\u043E\u043D\u0442\u0430\u043A\u0442\u044B\n <ng-template scAccordionContent>\n <tui-loader\n *tuiLet=\"contacts$ | async as contacts\"\n [overlay]=\"true\"\n [showLoader]=\"contacts === null\"\n >\n <div class=\"flex flex-col gap-2\">\n <ng-container *ngIf=\"!contacts || contacts.length; else contactsNotExist\">\n <div\n *ngFor=\"let contact of contacts\"\n class=\"flex gap-2 border-b border-tui-base-03\"\n >\n <div class=\"flex grow flex-col gap-2\">\n {{ contact.name }}\n <a\n *ngIf=\"contact.phone\"\n tuiLink\n [scTelLink]=\"contact.phone\"\n linkLocation=\"contact\"\n iconStart=\"@tui.phone\"\n [pseudo]=\"true\"\n href=\"tel:{{ contact.phone | scFormatePhone }}\"\n >\n {{ contact.phone | scFormatePhone }}\n </a>\n <a\n *ngIf=\"contact.email\"\n tuiLink\n scEmailLink\n linkLocation=\"contact\"\n iconStart=\"@tui.mail\"\n [pseudo]=\"true\"\n href=\"mailto:{{ contact.email }}\"\n >\n {{ contact.email }}\n </a>\n </div>\n <!-- \u0424\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E \u043D\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E. -->\n <!-- <div class=\"flex flex-col md:flex-row gap-1\">\n <button\n tuiIconButton\n size=\"m\"\n type=\"button\"\n icon=\"@tui.trash-2\"\n appearance=\"flat\"\n (click)=\"$event.stopPropagation(); deleteButtonClick.emit(contact)\"\n ></button>\n </div> -->\n </div>\n </ng-container>\n\n <ng-template #contactsNotExist>\n <tui-notification size=\"l\">\n <div>\n <div class=\"flex flex-wrap gap-2 font-medium\">\u041A\u043E\u043D\u0442\u0430\u043A\u0442\u044B \u043D\u0435 \u0443\u043A\u0430\u0437\u0430\u043D\u044B.</div>\n </div>\n </tui-notification>\n </ng-template>\n </div>\n </tui-loader>\n </ng-template>\n</sc-accordion>\n" }]
31
31
  }], propDecorators: { contacts$: [{
32
32
  type: Input
33
33
  }], addContactClick: [{
@@ -35,4 +35,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
35
35
  }], deleteButtonClick: [{
36
36
  type: Output
37
37
  }] } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY29udGFjdHMtYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9jb250YWN0cy9jb250YWN0cy1hY2NvcmRpb24vc2MtY29udGFjdHMtYWNjb3JkaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9jb250YWN0cy9jb250YWN0cy1hY2NvcmRpb24vc2MtY29udGFjdHMtYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7QUFJaEc7O0dBRUc7QUFNSCxNQUFNLE9BQU8sNEJBQTRCO0lBTHpDO1FBWUk7O1dBRUc7UUFFSSxvQkFBZSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXRFOztXQUVHO1FBRUksc0JBQWlCLEdBQTZCLElBQUksWUFBWSxFQUFjLENBQUM7S0FDdkY7K0dBbEJZLDRCQUE0QjttR0FBNUIsNEJBQTRCLDBMQ1p6Qyx5bUdBNkRBOzs0RkRqRGEsNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNJLHVCQUF1QixtQkFFaEIsdUJBQXVCLENBQUMsTUFBTTs4QkFPeEMsU0FBUztzQkFEZixLQUFLO2dCQU9DLGVBQWU7c0JBRHJCLE1BQU07Z0JBT0EsaUJBQWlCO3NCQUR2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTY0lDb250YWN0IH0gZnJvbSAnQHNuYWJjZW50ci9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICog0JrQvtC80L/QvtC90LXQvdGCINC60L7QvdGC0LDQutGC0L3QvtCz0L4g0LvQuNGG0LAg0LIg0YHQv9C40YHQutC1LlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NjLWNvbnRhY3RzLWFjY29yZGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjLWNvbnRhY3RzLWFjY29yZGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNjQ29udGFjdHNBY2NvcmRpb25Db21wb25lbnQge1xuICAgIC8qKlxuICAgICAqINCa0L7QvdGC0LDQutGC0L3Ri9C1INC70LjRhtCwLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbnRhY3RzJDogT2JzZXJ2YWJsZTxTY0lDb250YWN0W10gfCBudWxsPjtcblxuICAgIC8qKlxuICAgICAqINCh0L7QsdGL0YLQuNC1INC90LDQttCw0YLQuNGPINC90LAg0LrQvdC+0L/QutGDINC00L7QsdCw0LLQu9C10L3QuNGPINC60L7QvdGC0LDQutGC0L3QvtCz0L4g0LvQuNGG0LAuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGFkZENvbnRhY3RDbGljazogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICog0KHQvtCx0YvRgtC40LUg0L3QsNC20LDRgtC40Y8g0L3QsCDQutC90L7Qv9C60YMg0YPQtNCw0LvQtdC90LjRjyDQutC+0L3RgtCw0LrRgtC90L7Qs9C+INC70LjRhtCwLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBkZWxldGVCdXR0b25DbGljazogRXZlbnRFbWl0dGVyPFNjSUNvbnRhY3Q+ID0gbmV3IEV2ZW50RW1pdHRlcjxTY0lDb250YWN0PigpO1xufVxuIiwiPHNjLWFjY29yZGlvbiAoYWRkQnV0dG9uQ2xpY2spPVwiYWRkQ29udGFjdENsaWNrLmVtaXQoKVwiPlxuICAgINCa0L7QvdGC0LDQutGC0YtcbiAgICA8bmctdGVtcGxhdGUgc2NBY2NvcmRpb25Db250ZW50PlxuICAgICAgICA8dHVpLWxvYWRlclxuICAgICAgICAgICAgKnR1aUxldD1cImNvbnRhY3RzJCB8IGFzeW5jIGFzIGNvbnRhY3RzXCJcbiAgICAgICAgICAgIFtvdmVybGF5XT1cInRydWVcIlxuICAgICAgICAgICAgW3Nob3dMb2FkZXJdPVwiY29udGFjdHMgPT09IG51bGxcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMlwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY29udGFjdHMgfHwgY29udGFjdHMubGVuZ3RoOyBlbHNlIGNvbnRhY3RzTm90RXhpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbnRhY3Qgb2YgY29udGFjdHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGdhcC0yIGJvcmRlci1iIGJvcmRlci10dWktYmFzZS0wM1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdyb3cgZmxleC1jb2wgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBjb250YWN0Lm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbnRhY3QucGhvbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dWlMaW5rXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY1RlbExpbmtdPVwiY29udGFjdC5waG9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25TdGFydD1cIkB0dWkucGhvbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHNldWRvXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwidGVsOnt7IGNvbnRhY3QucGhvbmUgfCBzY0Zvcm1hdGVQaG9uZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBjb250YWN0LnBob25lIHwgc2NGb3JtYXRlUGhvbmUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb250YWN0LmVtYWlsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpTGlua1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uU3RhcnQ9XCJAdHVpLm1haWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHNldWRvXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwibWFpbHRvOnt7IGNvbnRhY3QuZW1haWwgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgY29udGFjdC5lbWFpbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSDQpNGD0L3QutGG0LjQvtC90LDQuyDRg9C00LDQu9C10L3QuNGPINCy0YDQtdC80LXQvdC90L4g0L3QtSDQtNC+0YHRgtGD0L/QtdC9INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRji4gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGdhcC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249XCJAdHVpLnRyYXNoLTJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwiZmxhdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IGRlbGV0ZUJ1dHRvbkNsaWNrLmVtaXQoY29udGFjdClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NvbnRhY3RzTm90RXhpc3Q+XG4gICAgICAgICAgICAgICAgICAgIDx0dWktbm90aWZpY2F0aW9uIHNpemU9XCJsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBnYXAtMiBmb250LW1lZGl1bVwiPtCa0L7QvdGC0LDQutGC0Ysg0L3QtSDRg9C60LDQt9Cw0L3Riy48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L3R1aS1ub3RpZmljYXRpb24+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3R1aS1sb2FkZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvc2MtYWNjb3JkaW9uPlxuIl19
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY29udGFjdHMtYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9jb250YWN0cy9jb250YWN0cy1hY2NvcmRpb24vc2MtY29udGFjdHMtYWNjb3JkaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9jb250YWN0cy9jb250YWN0cy1hY2NvcmRpb24vc2MtY29udGFjdHMtYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7QUFJaEc7O0dBRUc7QUFNSCxNQUFNLE9BQU8sNEJBQTRCO0lBTHpDO1FBWUk7O1dBRUc7UUFFSSxvQkFBZSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXRFOztXQUVHO1FBRUksc0JBQWlCLEdBQTZCLElBQUksWUFBWSxFQUFjLENBQUM7S0FDdkY7K0dBbEJZLDRCQUE0QjttR0FBNUIsNEJBQTRCLDBMQ1p6Qywwd0dBZ0VBOzs0RkRwRGEsNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNJLHVCQUF1QixtQkFFaEIsdUJBQXVCLENBQUMsTUFBTTs4QkFPeEMsU0FBUztzQkFEZixLQUFLO2dCQU9DLGVBQWU7c0JBRHJCLE1BQU07Z0JBT0EsaUJBQWlCO3NCQUR2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTY0lDb250YWN0IH0gZnJvbSAnQHNuYWJjZW50ci9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICog0JrQvtC80L/QvtC90LXQvdGCINC60L7QvdGC0LDQutGC0L3QvtCz0L4g0LvQuNGG0LAg0LIg0YHQv9C40YHQutC1LlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NjLWNvbnRhY3RzLWFjY29yZGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjLWNvbnRhY3RzLWFjY29yZGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNjQ29udGFjdHNBY2NvcmRpb25Db21wb25lbnQge1xuICAgIC8qKlxuICAgICAqINCa0L7QvdGC0LDQutGC0L3Ri9C1INC70LjRhtCwLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbnRhY3RzJDogT2JzZXJ2YWJsZTxTY0lDb250YWN0W10gfCBudWxsPjtcblxuICAgIC8qKlxuICAgICAqINCh0L7QsdGL0YLQuNC1INC90LDQttCw0YLQuNGPINC90LAg0LrQvdC+0L/QutGDINC00L7QsdCw0LLQu9C10L3QuNGPINC60L7QvdGC0LDQutGC0L3QvtCz0L4g0LvQuNGG0LAuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGFkZENvbnRhY3RDbGljazogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICog0KHQvtCx0YvRgtC40LUg0L3QsNC20LDRgtC40Y8g0L3QsCDQutC90L7Qv9C60YMg0YPQtNCw0LvQtdC90LjRjyDQutC+0L3RgtCw0LrRgtC90L7Qs9C+INC70LjRhtCwLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBkZWxldGVCdXR0b25DbGljazogRXZlbnRFbWl0dGVyPFNjSUNvbnRhY3Q+ID0gbmV3IEV2ZW50RW1pdHRlcjxTY0lDb250YWN0PigpO1xufVxuIiwiPHNjLWFjY29yZGlvbiAoYWRkQnV0dG9uQ2xpY2spPVwiYWRkQ29udGFjdENsaWNrLmVtaXQoKVwiPlxuICAgINCa0L7QvdGC0LDQutGC0YtcbiAgICA8bmctdGVtcGxhdGUgc2NBY2NvcmRpb25Db250ZW50PlxuICAgICAgICA8dHVpLWxvYWRlclxuICAgICAgICAgICAgKnR1aUxldD1cImNvbnRhY3RzJCB8IGFzeW5jIGFzIGNvbnRhY3RzXCJcbiAgICAgICAgICAgIFtvdmVybGF5XT1cInRydWVcIlxuICAgICAgICAgICAgW3Nob3dMb2FkZXJdPVwiY29udGFjdHMgPT09IG51bGxcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMlwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY29udGFjdHMgfHwgY29udGFjdHMubGVuZ3RoOyBlbHNlIGNvbnRhY3RzTm90RXhpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbnRhY3Qgb2YgY29udGFjdHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGdhcC0yIGJvcmRlci1iIGJvcmRlci10dWktYmFzZS0wM1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdyb3cgZmxleC1jb2wgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBjb250YWN0Lm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbnRhY3QucGhvbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dWlMaW5rXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY1RlbExpbmtdPVwiY29udGFjdC5waG9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtMb2NhdGlvbj1cImNvbnRhY3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uU3RhcnQ9XCJAdHVpLnBob25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BzZXVkb109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cInRlbDp7eyBjb250YWN0LnBob25lIHwgc2NGb3JtYXRlUGhvbmUgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgY29udGFjdC5waG9uZSB8IHNjRm9ybWF0ZVBob25lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29udGFjdC5lbWFpbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR1aUxpbmtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NFbWFpbExpbmtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlua0xvY2F0aW9uPVwiY29udGFjdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25TdGFydD1cIkB0dWkubWFpbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwc2V1ZG9dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCJtYWlsdG86e3sgY29udGFjdC5lbWFpbCB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBjb250YWN0LmVtYWlsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tINCk0YPQvdC60YbQuNC+0L3QsNC7INGD0LTQsNC70LXQvdC40Y8g0LLRgNC10LzQtdC90L3QviDQvdC1INC00L7RgdGC0YPQv9C10L0g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GOLiAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbWQ6ZmxleC1yb3cgZ2FwLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cIkB0dWkudHJhc2gtMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJmbGF0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgZGVsZXRlQnV0dG9uQ2xpY2suZW1pdChjb250YWN0KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY29udGFjdHNOb3RFeGlzdD5cbiAgICAgICAgICAgICAgICAgICAgPHR1aS1ub3RpZmljYXRpb24gc2l6ZT1cImxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIGdhcC0yIGZvbnQtbWVkaXVtXCI+0JrQvtC90YLQsNC60YLRiyDQvdC1INGD0LrQsNC30LDQvdGLLjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvdHVpLW5vdGlmaWNhdGlvbj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdHVpLWxvYWRlcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9zYy1hY2NvcmRpb24+XG4iXX0=
@@ -7,9 +7,8 @@ import { TuiButton, TuiDataList, TuiError, TuiLabel, TuiLink, TuiLoader, TuiNoti
7
7
  import { TuiButtonLoading, TuiDataListWrapper, TuiFieldErrorPipe } from '@taiga-ui/kit';
8
8
  import { TuiInputModule, TuiInputPhoneModule, TuiSelectModule } from '@taiga-ui/legacy';
9
9
  import { ScAccordionModule } from '../accordion';
10
- import { ScTelLinkDirective, ScTerminalLinkDirective } from '../directives';
10
+ import { ScLinks } from '../directives/links/sc-links';
11
11
  import { ScFormFieldsModule } from '../form-fields/form-fields.module';
12
- import { ScFormatePhonePipe } from '../pipes';
13
12
  import { ScAddContactDialogComponent } from './add-contact-dialog/sc-add-contact-dialog.component';
14
13
  import { ScContactsAccordionComponent } from './contacts-accordion/sc-contacts-accordion.component';
15
14
  import { ScNewContactFormComponent } from './new-contact-form/sc-new-contact-form.component';
@@ -17,6 +16,9 @@ import * as i0 from "@angular/core";
17
16
  import * as i1 from "@taiga-ui/core";
18
17
  import * as i2 from "@taiga-ui/kit";
19
18
  import * as i3 from "@taiga-ui/core/components/data-list";
19
+ import * as i4 from "../directives/links/sc-tel-link.directive";
20
+ import * as i5 from "../directives/links/sc-email-link.directive";
21
+ import * as i6 from "../pipes/sc-formatted-phone";
20
22
  /**
21
23
  * Модуль контактных лиц.
22
24
  */
@@ -37,11 +39,7 @@ export class ScContactsModule {
37
39
  TuiSelectModule, i1.TuiDataListComponent, i1.TuiDataListDirective, i1.TuiOption, i1.TuiOptGroup, i2.TuiDataListWrapperComponent, i2.TuiDataListGroupWrapperComponent, i3.TuiDataListDirective, TuiLabel,
38
40
  TuiInputModule,
39
41
  TuiInputPhoneModule,
40
- TuiError,
41
- ScTerminalLinkDirective,
42
- ScFormatePhonePipe,
43
- ScTelLinkDirective,
44
- TuiButtonLoading], exports: [ScContactsAccordionComponent, ScNewContactFormComponent, ScAddContactDialogComponent] }); }
42
+ TuiError, i4.ScTelLinkDirective, i5.ScEmailLinkDirective, i6.ScFormatePhonePipe, TuiButtonLoading], exports: [ScContactsAccordionComponent, ScNewContactFormComponent, ScAddContactDialogComponent] }); }
45
43
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScContactsModule, imports: [CommonModule,
46
44
  FormsModule,
47
45
  ReactiveFormsModule,
@@ -77,12 +75,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
77
75
  TuiInputModule,
78
76
  TuiInputPhoneModule,
79
77
  TuiError,
80
- ScTerminalLinkDirective,
81
- ScFormatePhonePipe,
82
- ScTelLinkDirective,
78
+ ...ScLinks,
83
79
  TuiButtonLoading,
84
80
  ],
85
81
  exports: [ScContactsAccordionComponent, ScNewContactFormComponent, ScAddContactDialogComponent],
86
82
  }]
87
83
  }] });
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY29udGFjdHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NvbnRhY3RzL3NjLWNvbnRhY3RzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFeEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDOUMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDbkcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDcEcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0RBQWtELENBQUM7Ozs7O0FBRTdGOztHQUVHO0FBOEJILE1BQU0sT0FBTyxnQkFBZ0I7K0dBQWhCLGdCQUFnQjtnSEFBaEIsZ0JBQWdCLGlCQTVCViw0QkFBNEIsRUFBRSx5QkFBeUIsRUFBRSwyQkFBMkIsYUFFL0YsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsaUJBQWlCO1lBQ2pCLFNBQVM7WUFDVCxTQUFTO1lBQ1QsTUFBTTtZQUNOLGVBQWU7WUFDZixPQUFPO1lBQ1Asa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQixpQkFBaUI7WUFDakIsZUFBZSxnTEFHZixRQUFRO1lBQ1IsY0FBYztZQUNkLG1CQUFtQjtZQUNuQixRQUFRO1lBQ1IsdUJBQXVCO1lBQ3ZCLGtCQUFrQjtZQUNsQixrQkFBa0I7WUFDbEIsZ0JBQWdCLGFBRVYsNEJBQTRCLEVBQUUseUJBQXlCLEVBQUUsMkJBQTJCO2dIQUVyRixnQkFBZ0IsWUExQnJCLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGlCQUFpQjtZQUVqQixTQUFTO1lBSVQsa0JBQWtCO1lBR2xCLGVBQWUsOEdBSWYsY0FBYztZQUNkLG1CQUFtQjtZQUNuQixRQUFRO1lBSVIsZ0JBQWdCOzs0RkFJWCxnQkFBZ0I7a0JBN0I1QixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLDRCQUE0QixFQUFFLHlCQUF5QixFQUFFLDJCQUEyQixDQUFDO29CQUNwRyxPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixTQUFTO3dCQUNULFNBQVM7d0JBQ1QsTUFBTTt3QkFDTixlQUFlO3dCQUNmLE9BQU87d0JBQ1Asa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsZUFBZTt3QkFDZixHQUFHLFdBQVc7d0JBQ2QsR0FBRyxrQkFBa0I7d0JBQ3JCLFFBQVE7d0JBQ1IsY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLFFBQVE7d0JBQ1IsdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3FCQUNuQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyw0QkFBNEIsRUFBRSx5QkFBeUIsRUFBRSwyQkFBMkIsQ0FBQztpQkFDbEciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWFza2l0b0RpcmVjdGl2ZSB9IGZyb20gJ0BtYXNraXRvL2FuZ3VsYXInO1xuaW1wb3J0IHsgVHVpTGV0IH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQgeyBUdWlCdXR0b24sIFR1aURhdGFMaXN0LCBUdWlFcnJvciwgVHVpTGFiZWwsIFR1aUxpbmssIFR1aUxvYWRlciwgVHVpTm90aWZpY2F0aW9uIH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHsgVHVpQnV0dG9uTG9hZGluZywgVHVpRGF0YUxpc3RXcmFwcGVyLCBUdWlGaWVsZEVycm9yUGlwZSB9IGZyb20gJ0B0YWlnYS11aS9raXQnO1xuaW1wb3J0IHsgVHVpSW5wdXRNb2R1bGUsIFR1aUlucHV0UGhvbmVNb2R1bGUsIFR1aVNlbGVjdE1vZHVsZSB9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3knO1xuXG5pbXBvcnQgeyBTY0FjY29yZGlvbk1vZHVsZSB9IGZyb20gJy4uL2FjY29yZGlvbic7XG5pbXBvcnQgeyBTY1RlbExpbmtEaXJlY3RpdmUsIFNjVGVybWluYWxMaW5rRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBTY0Zvcm1GaWVsZHNNb2R1bGUgfSBmcm9tICcuLi9mb3JtLWZpZWxkcy9mb3JtLWZpZWxkcy5tb2R1bGUnO1xuaW1wb3J0IHsgU2NGb3JtYXRlUGhvbmVQaXBlIH0gZnJvbSAnLi4vcGlwZXMnO1xuaW1wb3J0IHsgU2NBZGRDb250YWN0RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9hZGQtY29udGFjdC1kaWFsb2cvc2MtYWRkLWNvbnRhY3QtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTY0NvbnRhY3RzQWNjb3JkaW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb250YWN0cy1hY2NvcmRpb24vc2MtY29udGFjdHMtYWNjb3JkaW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTY05ld0NvbnRhY3RGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9uZXctY29udGFjdC1mb3JtL3NjLW5ldy1jb250YWN0LWZvcm0uY29tcG9uZW50JztcblxuLyoqXG4gKiDQnNC+0LTRg9C70Ywg0LrQvtC90YLQsNC60YLQvdGL0YUg0LvQuNGGLlxuICovXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1NjQ29udGFjdHNBY2NvcmRpb25Db21wb25lbnQsIFNjTmV3Q29udGFjdEZvcm1Db21wb25lbnQsIFNjQWRkQ29udGFjdERpYWxvZ0NvbXBvbmVudF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBTY0FjY29yZGlvbk1vZHVsZSxcbiAgICAgICAgVHVpQnV0dG9uLFxuICAgICAgICBUdWlMb2FkZXIsXG4gICAgICAgIFR1aUxldCxcbiAgICAgICAgVHVpTm90aWZpY2F0aW9uLFxuICAgICAgICBUdWlMaW5rLFxuICAgICAgICBTY0Zvcm1GaWVsZHNNb2R1bGUsXG4gICAgICAgIE1hc2tpdG9EaXJlY3RpdmUsXG4gICAgICAgIFR1aUZpZWxkRXJyb3JQaXBlLFxuICAgICAgICBUdWlTZWxlY3RNb2R1bGUsXG4gICAgICAgIC4uLlR1aURhdGFMaXN0LFxuICAgICAgICAuLi5UdWlEYXRhTGlzdFdyYXBwZXIsXG4gICAgICAgIFR1aUxhYmVsLFxuICAgICAgICBUdWlJbnB1dE1vZHVsZSxcbiAgICAgICAgVHVpSW5wdXRQaG9uZU1vZHVsZSxcbiAgICAgICAgVHVpRXJyb3IsXG4gICAgICAgIFNjVGVybWluYWxMaW5rRGlyZWN0aXZlLFxuICAgICAgICBTY0Zvcm1hdGVQaG9uZVBpcGUsXG4gICAgICAgIFNjVGVsTGlua0RpcmVjdGl2ZSxcbiAgICAgICAgVHVpQnV0dG9uTG9hZGluZyxcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtTY0NvbnRhY3RzQWNjb3JkaW9uQ29tcG9uZW50LCBTY05ld0NvbnRhY3RGb3JtQ29tcG9uZW50LCBTY0FkZENvbnRhY3REaWFsb2dDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBTY0NvbnRhY3RzTW9kdWxlIHt9XG4iXX0=
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY29udGFjdHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NvbnRhY3RzL3NjLWNvbnRhY3RzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFeEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNuRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNwRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQzs7Ozs7Ozs7QUFFN0Y7O0dBRUc7QUE0QkgsTUFBTSxPQUFPLGdCQUFnQjsrR0FBaEIsZ0JBQWdCO2dIQUFoQixnQkFBZ0IsaUJBMUJWLDRCQUE0QixFQUFFLHlCQUF5QixFQUFFLDJCQUEyQixhQUUvRixZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFDakIsU0FBUztZQUNULFNBQVM7WUFDVCxNQUFNO1lBQ04sZUFBZTtZQUNmLE9BQU87WUFDUCxrQkFBa0I7WUFDbEIsZ0JBQWdCO1lBQ2hCLGlCQUFpQjtZQUNqQixlQUFlLGdMQUdmLFFBQVE7WUFDUixjQUFjO1lBQ2QsbUJBQW1CO1lBQ25CLFFBQVEseUVBRVIsZ0JBQWdCLGFBRVYsNEJBQTRCLEVBQUUseUJBQXlCLEVBQUUsMkJBQTJCO2dIQUVyRixnQkFBZ0IsWUF4QnJCLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGlCQUFpQjtZQUVqQixTQUFTO1lBSVQsa0JBQWtCO1lBR2xCLGVBQWUsOEdBSWYsY0FBYztZQUNkLG1CQUFtQjtZQUNuQixRQUFRO1lBRVIsZ0JBQWdCOzs0RkFJWCxnQkFBZ0I7a0JBM0I1QixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLDRCQUE0QixFQUFFLHlCQUF5QixFQUFFLDJCQUEyQixDQUFDO29CQUNwRyxPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixTQUFTO3dCQUNULFNBQVM7d0JBQ1QsTUFBTTt3QkFDTixlQUFlO3dCQUNmLE9BQU87d0JBQ1Asa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsZUFBZTt3QkFDZixHQUFHLFdBQVc7d0JBQ2QsR0FBRyxrQkFBa0I7d0JBQ3JCLFFBQVE7d0JBQ1IsY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLFFBQVE7d0JBQ1IsR0FBRyxPQUFPO3dCQUNWLGdCQUFnQjtxQkFDbkI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsNEJBQTRCLEVBQUUseUJBQXlCLEVBQUUsMkJBQTJCLENBQUM7aUJBQ2xHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hc2tpdG9EaXJlY3RpdmUgfSBmcm9tICdAbWFza2l0by9hbmd1bGFyJztcbmltcG9ydCB7IFR1aUxldCB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHsgVHVpQnV0dG9uLCBUdWlEYXRhTGlzdCwgVHVpRXJyb3IsIFR1aUxhYmVsLCBUdWlMaW5rLCBUdWlMb2FkZXIsIFR1aU5vdGlmaWNhdGlvbiB9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7IFR1aUJ1dHRvbkxvYWRpbmcsIFR1aURhdGFMaXN0V3JhcHBlciwgVHVpRmllbGRFcnJvclBpcGUgfSBmcm9tICdAdGFpZ2EtdWkva2l0JztcbmltcG9ydCB7IFR1aUlucHV0TW9kdWxlLCBUdWlJbnB1dFBob25lTW9kdWxlLCBUdWlTZWxlY3RNb2R1bGUgfSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5JztcblxuaW1wb3J0IHsgU2NBY2NvcmRpb25Nb2R1bGUgfSBmcm9tICcuLi9hY2NvcmRpb24nO1xuaW1wb3J0IHsgU2NMaW5rcyB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvbGlua3Mvc2MtbGlua3MnO1xuaW1wb3J0IHsgU2NGb3JtRmllbGRzTW9kdWxlIH0gZnJvbSAnLi4vZm9ybS1maWVsZHMvZm9ybS1maWVsZHMubW9kdWxlJztcbmltcG9ydCB7IFNjQWRkQ29udGFjdERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vYWRkLWNvbnRhY3QtZGlhbG9nL3NjLWFkZC1jb250YWN0LWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2NDb250YWN0c0FjY29yZGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29udGFjdHMtYWNjb3JkaW9uL3NjLWNvbnRhY3RzLWFjY29yZGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2NOZXdDb250YWN0Rm9ybUNvbXBvbmVudCB9IGZyb20gJy4vbmV3LWNvbnRhY3QtZm9ybS9zYy1uZXctY29udGFjdC1mb3JtLmNvbXBvbmVudCc7XG5cbi8qKlxuICog0JzQvtC00YPQu9GMINC60L7QvdGC0LDQutGC0L3Ri9GFINC70LjRhi5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtTY0NvbnRhY3RzQWNjb3JkaW9uQ29tcG9uZW50LCBTY05ld0NvbnRhY3RGb3JtQ29tcG9uZW50LCBTY0FkZENvbnRhY3REaWFsb2dDb21wb25lbnRdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgU2NBY2NvcmRpb25Nb2R1bGUsXG4gICAgICAgIFR1aUJ1dHRvbixcbiAgICAgICAgVHVpTG9hZGVyLFxuICAgICAgICBUdWlMZXQsXG4gICAgICAgIFR1aU5vdGlmaWNhdGlvbixcbiAgICAgICAgVHVpTGluayxcbiAgICAgICAgU2NGb3JtRmllbGRzTW9kdWxlLFxuICAgICAgICBNYXNraXRvRGlyZWN0aXZlLFxuICAgICAgICBUdWlGaWVsZEVycm9yUGlwZSxcbiAgICAgICAgVHVpU2VsZWN0TW9kdWxlLFxuICAgICAgICAuLi5UdWlEYXRhTGlzdCxcbiAgICAgICAgLi4uVHVpRGF0YUxpc3RXcmFwcGVyLFxuICAgICAgICBUdWlMYWJlbCxcbiAgICAgICAgVHVpSW5wdXRNb2R1bGUsXG4gICAgICAgIFR1aUlucHV0UGhvbmVNb2R1bGUsXG4gICAgICAgIFR1aUVycm9yLFxuICAgICAgICAuLi5TY0xpbmtzLFxuICAgICAgICBUdWlCdXR0b25Mb2FkaW5nLFxuICAgIF0sXG4gICAgZXhwb3J0czogW1NjQ29udGFjdHNBY2NvcmRpb25Db21wb25lbnQsIFNjTmV3Q29udGFjdEZvcm1Db21wb25lbnQsIFNjQWRkQ29udGFjdERpYWxvZ0NvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFNjQ29udGFjdHNNb2R1bGUge31cbiJdfQ==
@@ -1,7 +1,6 @@
1
1
  export * from './next-input-focus/sc-next-input-focus.directive';
2
2
  export * from './next-input-focus/sc-next-input-focus.module';
3
3
  export * from './abstract-price-card/abstract-sc-price-card.directive';
4
- export * from './tel-link/sc-tel-link.directive';
5
- export * from './tel-link/sc-tel-link.module';
6
4
  export * from './terminal-link/sc-terminal-link.directive';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvZGlyZWN0aXZlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw0Q0FBNEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbmV4dC1pbnB1dC1mb2N1cy9zYy1uZXh0LWlucHV0LWZvY3VzLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL25leHQtaW5wdXQtZm9jdXMvc2MtbmV4dC1pbnB1dC1mb2N1cy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9hYnN0cmFjdC1wcmljZS1jYXJkL2Fic3RyYWN0LXNjLXByaWNlLWNhcmQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vdGVsLWxpbmsvc2MtdGVsLWxpbmsuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vdGVsLWxpbmsvc2MtdGVsLWxpbmsubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vdGVybWluYWwtbGluay9zYy10ZXJtaW5hbC1saW5rLmRpcmVjdGl2ZSc7XG4iXX0=
5
+ export * from './links';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvZGlyZWN0aXZlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9uZXh0LWlucHV0LWZvY3VzL3NjLW5leHQtaW5wdXQtZm9jdXMuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbmV4dC1pbnB1dC1mb2N1cy9zYy1uZXh0LWlucHV0LWZvY3VzLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2Fic3RyYWN0LXByaWNlLWNhcmQvYWJzdHJhY3Qtc2MtcHJpY2UtY2FyZC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi90ZXJtaW5hbC1saW5rL3NjLXRlcm1pbmFsLWxpbmsuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGlua3MnO1xuIl19
@@ -0,0 +1,5 @@
1
+ export * from './sc-links';
2
+ export * from './sc-link-location';
3
+ export * from './sc-email-link.directive';
4
+ export * from './sc-tel-link.directive';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvZGlyZWN0aXZlcy9saW5rcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2MtbGlua3MnO1xuZXhwb3J0ICogZnJvbSAnLi9zYy1saW5rLWxvY2F0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vc2MtZW1haWwtbGluay5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zYy10ZWwtbGluay5kaXJlY3RpdmUnO1xuIl19
@@ -0,0 +1,49 @@
1
+ import { Directive, ElementRef, HostListener, inject, Input } from '@angular/core';
2
+ import { ScUserMetrikaGoalsEnum, ScUserMetrikaService } from '@snabcentr/client-core';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Директива, которая управляет свойствами ссылки адреса электронной почты.
6
+ */
7
+ export class ScEmailLinkDirective {
8
+ constructor() {
9
+ /**
10
+ * Ссылка на HTML элемент тега `<a>`.
11
+ */
12
+ this.elementReference = inject(ElementRef);
13
+ /**
14
+ * Сервис для сбора метрик о действиях пользователей.
15
+ */
16
+ this.userMetrikaService = inject(ScUserMetrikaService);
17
+ }
18
+ /**
19
+ * Обработчик клика по ссылке.
20
+ */
21
+ click() {
22
+ const email = /mailto:([^?]+)/.exec(this.elementReference.nativeElement.href)?.at(1);
23
+ if (email) {
24
+ this.userMetrikaService.emitUserMetrikaEvent({
25
+ target: ScUserMetrikaGoalsEnum.emailClick,
26
+ params: {
27
+ emailLocation: this.linkLocation,
28
+ email: email,
29
+ },
30
+ });
31
+ }
32
+ }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScEmailLinkDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
34
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.12", type: ScEmailLinkDirective, isStandalone: true, selector: "a[scEmailLink]", inputs: { linkLocation: "linkLocation" }, host: { listeners: { "click": "click()" } }, ngImport: i0 }); }
35
+ }
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScEmailLinkDirective, decorators: [{
37
+ type: Directive,
38
+ args: [{
39
+ standalone: true,
40
+ selector: 'a[scEmailLink]',
41
+ }]
42
+ }], propDecorators: { linkLocation: [{
43
+ type: Input,
44
+ args: [{ required: true }]
45
+ }], click: [{
46
+ type: HostListener,
47
+ args: ['click']
48
+ }] } });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtZW1haWwtbGluay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvZGlyZWN0aXZlcy9saW5rcy9zYy1lbWFpbC1saW5rLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFJdEY7O0dBRUc7QUFLSCxNQUFNLE9BQU8sb0JBQW9CO0lBSmpDO1FBS0k7O1dBRUc7UUFDSyxxQkFBZ0IsR0FBa0MsTUFBTSxDQUFnQyxVQUFVLENBQUMsQ0FBQztRQVE1Rzs7V0FFRztRQUNjLHVCQUFrQixHQUF5QixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztLQW1CNUY7SUFqQkc7O09BRUc7SUFFSyxLQUFLO1FBQ1QsTUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXJGLElBQUksS0FBSyxFQUFFLENBQUM7WUFDUixJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUM7Z0JBQ3pDLE1BQU0sRUFBRSxzQkFBc0IsQ0FBQyxVQUFVO2dCQUN6QyxNQUFNLEVBQUU7b0JBQ0osYUFBYSxFQUFFLElBQUksQ0FBQyxZQUFZO29CQUNoQyxLQUFLLEVBQUUsS0FBSztpQkFDZjthQUNKLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDTCxDQUFDOytHQWpDUSxvQkFBb0I7bUdBQXBCLG9CQUFvQjs7NEZBQXBCLG9CQUFvQjtrQkFKaEMsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGdCQUFnQjtpQkFDN0I7OEJBV1UsWUFBWTtzQkFEbEIsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBWWpCLEtBQUs7c0JBRFosWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIGluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNjVXNlck1ldHJpa2FHb2Fsc0VudW0sIFNjVXNlck1ldHJpa2FTZXJ2aWNlIH0gZnJvbSAnQHNuYWJjZW50ci9jbGllbnQtY29yZSc7XG5cbmltcG9ydCB7IFNjTGlua0xvY2F0aW9uIH0gZnJvbSAnLi9zYy1saW5rLWxvY2F0aW9uJztcblxuLyoqXG4gKiDQlNC40YDQtdC60YLQuNCy0LAsINC60L7RgtC+0YDQsNGPINGD0L/RgNCw0LLQu9GP0LXRgiDRgdCy0L7QudGB0YLQstCw0LzQuCDRgdGB0YvQu9C60Lgg0LDQtNGA0LXRgdCwINGN0LvQtdC60YLRgNC+0L3QvdC+0Lkg0L/QvtGH0YLRiy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2Fbc2NFbWFpbExpbmtdJyxcbn0pXG5leHBvcnQgY2xhc3MgU2NFbWFpbExpbmtEaXJlY3RpdmUge1xuICAgIC8qKlxuICAgICAqINCh0YHRi9C70LrQsCDQvdCwIEhUTUwg0Y3Qu9C10LzQtdC90YIg0YLQtdCz0LAgYDxhPmAuXG4gICAgICovXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmZXJlbmNlOiBFbGVtZW50UmVmPEhUTUxBbmNob3JFbGVtZW50PiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxBbmNob3JFbGVtZW50Pj4oRWxlbWVudFJlZik7XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0LvQvtCy0L3QvtC1INC90LDQt9Cy0LDQvdC40LUg0LHQu9C+0LrQsCDQs9C00LUg0YDQsNGB0L/QvtC70L7QttC10L3QsCDRgdGB0YvQu9C60LAuXG4gICAgICovXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICBwdWJsaWMgbGlua0xvY2F0aW9uITogU2NMaW5rTG9jYXRpb247XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LTQu9GPINGB0LHQvtGA0LAg0LzQtdGC0YDQuNC6INC+INC00LXQudGB0YLQstC40Y/RhSDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJNZXRyaWthU2VydmljZTogU2NVc2VyTWV0cmlrYVNlcnZpY2UgPSBpbmplY3QoU2NVc2VyTWV0cmlrYVNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0J7QsdGA0LDQsdC+0YLRh9C40Log0LrQu9C40LrQsCDQv9C+INGB0YHRi9C70LrQtS5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gICAgcHJpdmF0ZSBjbGljaygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZW1haWwgPSAvbWFpbHRvOihbXj9dKykvLmV4ZWModGhpcy5lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQuaHJlZik/LmF0KDEpO1xuXG4gICAgICAgIGlmIChlbWFpbCkge1xuICAgICAgICAgICAgdGhpcy51c2VyTWV0cmlrYVNlcnZpY2UuZW1pdFVzZXJNZXRyaWthRXZlbnQoe1xuICAgICAgICAgICAgICAgIHRhcmdldDogU2NVc2VyTWV0cmlrYUdvYWxzRW51bS5lbWFpbENsaWNrLFxuICAgICAgICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgICBlbWFpbExvY2F0aW9uOiB0aGlzLmxpbmtMb2NhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgZW1haWw6IGVtYWlsLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtbGluay1sb2NhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9kaXJlY3RpdmVzL2xpbmtzL3NjLWxpbmstbG9jYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR1aUxvb3NlVW5pb24gfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcblxuLyoqXG4gKiDQotC40L8g0LTQsNC90L3Ri9GFINGD0YHQu9C+0LLQvdC+0LPQviDQvdCw0LfQstCw0L3QuNGPINCx0LvQvtC60LAg0LPQtNC1INGA0LDRgdC/0L7Qu9C+0LbQtdC90LAg0YHRgdGL0LvQutCwLlxuICovXG5leHBvcnQgdHlwZSBTY0xpbmtMb2NhdGlvbiA9IFR1aUxvb3NlVW5pb248XG4gICAgJ2NvbnRhY3QnIHwgJ3F1ZXN0aW9ucy1hbmQtYW5zd2VycycgfCAncHJvZmlsZScgfCAndXNlci1tYW5hZ2VycycgfCAnbWFuYWdlci1jYXJkJyB8ICdyZXRhaWxzLW1hcCcgfCAnbGFuZGluZycgfCAnZm9vdGVyJyB8ICdvcmRlcicgfCAndmFjYW5jaWVzJyB8ICdoZWFkZXInXG4+O1xuIl19
@@ -0,0 +1,8 @@
1
+ import { ScFormatePhonePipe } from '../../pipes/sc-formatted-phone';
2
+ import { ScEmailLinkDirective } from './sc-email-link.directive';
3
+ import { ScTelLinkDirective } from './sc-tel-link.directive';
4
+ /**
5
+ * Список директив ссылок.
6
+ */
7
+ export const ScLinks = [ScTelLinkDirective, ScEmailLinkDirective, ScFormatePhonePipe];
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtbGlua3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvZGlyZWN0aXZlcy9saW5rcy9zYy1saW5rcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU3RDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxDQUFDLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLGtCQUFrQixDQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY0Zvcm1hdGVQaG9uZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9zYy1mb3JtYXR0ZWQtcGhvbmUnO1xuaW1wb3J0IHsgU2NFbWFpbExpbmtEaXJlY3RpdmUgfSBmcm9tICcuL3NjLWVtYWlsLWxpbmsuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNjVGVsTGlua0RpcmVjdGl2ZSB9IGZyb20gJy4vc2MtdGVsLWxpbmsuZGlyZWN0aXZlJztcblxuLyoqXG4gKiDQodC/0LjRgdC+0Log0LTQuNGA0LXQutGC0LjQsiDRgdGB0YvQu9C+0LouXG4gKi9cbmV4cG9ydCBjb25zdCBTY0xpbmtzID0gW1NjVGVsTGlua0RpcmVjdGl2ZSwgU2NFbWFpbExpbmtEaXJlY3RpdmUsIFNjRm9ybWF0ZVBob25lUGlwZV0gYXMgY29uc3Q7XG4iXX0=
@@ -0,0 +1,79 @@
1
+ import { Directive, ElementRef, HostListener, inject, Input, Renderer2 } from '@angular/core';
2
+ import { ScPhoneService, ScUserMetrikaGoalsEnum, ScUserMetrikaService } from '@snabcentr/client-core';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Директива, которая управляет свойствами ссылки номера телефона для валидации значения номера телефона.
6
+ */
7
+ export class ScTelLinkDirective {
8
+ constructor() {
9
+ /**
10
+ * Экземпляр базового класса для реализации пользовательского рендеринга.
11
+ */
12
+ this.renderer = inject(Renderer2);
13
+ /**
14
+ * Ссылка на HTML элемент тега `<a>`.
15
+ */
16
+ this.elementReference = inject(ElementRef);
17
+ /**
18
+ * Сервис для сбора метрик о действиях пользователей.
19
+ */
20
+ this.userMetrikaService = inject(ScUserMetrikaService);
21
+ }
22
+ /** @inheritDoc */
23
+ ngOnChanges(changes) {
24
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
25
+ if (changes['tel']) {
26
+ this.updateLinkState();
27
+ }
28
+ }
29
+ /**
30
+ * Обработчик клика по ссылке.
31
+ */
32
+ click() {
33
+ if (ScPhoneService.isValidPhoneNumber(this.tel)) {
34
+ this.userMetrikaService.emitUserMetrikaEvent({
35
+ target: ScUserMetrikaGoalsEnum.phoneClick,
36
+ params: {
37
+ phoneLocation: this.linkLocation,
38
+ phone: this.tel,
39
+ },
40
+ });
41
+ }
42
+ }
43
+ /**
44
+ * Обновляет состояние ссылки на основе валидности номера телефона.
45
+ */
46
+ updateLinkState() {
47
+ if (ScPhoneService.isValidPhoneNumber(this.tel)) {
48
+ // Если номер валиден, активируем ссылку.
49
+ this.renderer.removeAttribute(this.elementReference.nativeElement, 'aria-disabled');
50
+ this.renderer.removeClass(this.elementReference.nativeElement, 'disabled');
51
+ this.renderer.setAttribute(this.elementReference.nativeElement, 'href', `tel:${ScPhoneService.formatPhoneNumber(this.tel)}`);
52
+ }
53
+ else {
54
+ // Если номер невалиден, отключаем ссылку.
55
+ this.renderer.setAttribute(this.elementReference.nativeElement, 'aria-disabled', 'true');
56
+ this.renderer.addClass(this.elementReference.nativeElement, 'disabled');
57
+ this.renderer.removeAttribute(this.elementReference.nativeElement, 'href');
58
+ }
59
+ }
60
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScTelLinkDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
61
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.12", type: ScTelLinkDirective, isStandalone: true, selector: "a[scTelLink]", inputs: { tel: ["scTelLink", "tel"], linkLocation: "linkLocation" }, host: { listeners: { "click": "click()" } }, usesOnChanges: true, ngImport: i0 }); }
62
+ }
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScTelLinkDirective, decorators: [{
64
+ type: Directive,
65
+ args: [{
66
+ standalone: true,
67
+ selector: 'a[scTelLink]',
68
+ }]
69
+ }], propDecorators: { tel: [{
70
+ type: Input,
71
+ args: [{ alias: 'scTelLink', required: true }]
72
+ }], linkLocation: [{
73
+ type: Input,
74
+ args: [{ required: true }]
75
+ }], click: [{
76
+ type: HostListener,
77
+ args: ['click']
78
+ }] } });
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtdGVsLWxpbmsuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2RpcmVjdGl2ZXMvbGlua3Mvc2MtdGVsLWxpbmsuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxzQkFBc0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUl0Rzs7R0FFRztBQUtILE1BQU0sT0FBTyxrQkFBa0I7SUFKL0I7UUFLSTs7V0FFRztRQUNjLGFBQVEsR0FBYyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFekQ7O1dBRUc7UUFDSyxxQkFBZ0IsR0FBa0MsTUFBTSxDQUFnQyxVQUFVLENBQUMsQ0FBQztRQWM1Rzs7V0FFRztRQUNjLHVCQUFrQixHQUF5QixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztLQTBDNUY7SUF4Q0csa0JBQWtCO0lBQ1gsV0FBVyxDQUFDLE9BQXNCO1FBQ3JDLHVFQUF1RTtRQUN2RSxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMzQixDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBRUssS0FBSztRQUNULElBQUksY0FBYyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDekMsTUFBTSxFQUFFLHNCQUFzQixDQUFDLFVBQVU7Z0JBQ3pDLE1BQU0sRUFBRTtvQkFDSixhQUFhLEVBQUUsSUFBSSxDQUFDLFlBQVk7b0JBQ2hDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRztpQkFDbEI7YUFDSixDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssZUFBZTtRQUNuQixJQUFJLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM5Qyx5Q0FBeUM7WUFDekMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxlQUFlLENBQUMsQ0FBQztZQUNwRixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQzNFLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLE9BQU8sY0FBYyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDakksQ0FBQzthQUFNLENBQUM7WUFDSiwwQ0FBMEM7WUFDMUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDekYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUN4RSxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQy9FLENBQUM7SUFDTCxDQUFDOytHQW5FUSxrQkFBa0I7bUdBQWxCLGtCQUFrQjs7NEZBQWxCLGtCQUFrQjtrQkFKOUIsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGNBQWM7aUJBQzNCOzhCQWdCVSxHQUFHO3NCQURULEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBT3RDLFlBQVk7c0JBRGxCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQW9CakIsS0FBSztzQkFEWixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgaW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBSZW5kZXJlcjIsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNjUGhvbmVTZXJ2aWNlLCBTY1VzZXJNZXRyaWthR29hbHNFbnVtLCBTY1VzZXJNZXRyaWthU2VydmljZSB9IGZyb20gJ0BzbmFiY2VudHIvY2xpZW50LWNvcmUnO1xuXG5pbXBvcnQgeyBTY0xpbmtMb2NhdGlvbiB9IGZyb20gJy4vc2MtbGluay1sb2NhdGlvbic7XG5cbi8qKlxuICog0JTQuNGA0LXQutGC0LjQstCwLCDQutC+0YLQvtGA0LDRjyDRg9C/0YDQsNCy0LvRj9C10YIg0YHQstC+0LnRgdGC0LLQsNC80Lgg0YHRgdGL0LvQutC4INC90L7QvNC10YDQsCDRgtC10LvQtdGE0L7QvdCwINC00LvRjyDQstCw0LvQuNC00LDRhtC40Lgg0LfQvdCw0YfQtdC90LjRjyDQvdC+0LzQtdGA0LAg0YLQtdC70LXRhNC+0L3QsC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2Fbc2NUZWxMaW5rXScsXG59KVxuZXhwb3J0IGNsYXNzIFNjVGVsTGlua0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgLyoqXG4gICAgICog0K3QutC30LXQvNC/0LvRj9GAINCx0LDQt9C+0LLQvtCz0L4g0LrQu9Cw0YHRgdCwINC00LvRjyDRgNC10LDQu9C40LfQsNGG0LjQuCDQv9C+0LvRjNC30L7QstCw0YLQtdC70YzRgdC60L7Qs9C+INGA0LXQvdC00LXRgNC40L3Qs9CwLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMiA9IGluamVjdChSZW5kZXJlcjIpO1xuXG4gICAgLyoqXG4gICAgICog0KHRgdGL0LvQutCwINC90LAgSFRNTCDRjdC70LXQvNC10L3RgiDRgtC10LPQsCBgPGE+YC5cbiAgICAgKi9cbiAgICBwcml2YXRlIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8SFRNTEFuY2hvckVsZW1lbnQ+ID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEFuY2hvckVsZW1lbnQ+PihFbGVtZW50UmVmKTtcblxuICAgIC8qKlxuICAgICAqINCd0L7QvNC10YAg0YLQtdC70LXRhNC+0L3QsCwg0LrQvtGC0L7RgNGL0Lkg0LHRg9C00LXRgiDQv9GA0L7QstC10YDQtdC9INC90LAg0LLQsNC70LjQtNC90L7RgdGC0YwuXG4gICAgICovXG4gICAgQElucHV0KHsgYWxpYXM6ICdzY1RlbExpbmsnLCByZXF1aXJlZDogdHJ1ZSB9KVxuICAgIHB1YmxpYyB0ZWwhOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0LvQvtCy0L3QvtC1INC90LDQt9Cy0LDQvdC40LUg0LHQu9C+0LrQsCDQs9C00LUg0YDQsNGB0L/QvtC70L7QttC10L3QsCDRgdGB0YvQu9C60LAuXG4gICAgICovXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICBwdWJsaWMgbGlua0xvY2F0aW9uITogU2NMaW5rTG9jYXRpb247XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LTQu9GPINGB0LHQvtGA0LAg0LzQtdGC0YDQuNC6INC+INC00LXQudGB0YLQstC40Y/RhSDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJNZXRyaWthU2VydmljZTogU2NVc2VyTWV0cmlrYVNlcnZpY2UgPSBpbmplY3QoU2NVc2VyTWV0cmlrYVNlcnZpY2UpO1xuXG4gICAgLyoqIEBpbmhlcml0RG9jICovXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS1jb25kaXRpb25cbiAgICAgICAgaWYgKGNoYW5nZXNbJ3RlbCddKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUxpbmtTdGF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7QsdGA0LDQsdC+0YLRh9C40Log0LrQu9C40LrQsCDQv9C+INGB0YHRi9C70LrQtS5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gICAgcHJpdmF0ZSBjbGljaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKFNjUGhvbmVTZXJ2aWNlLmlzVmFsaWRQaG9uZU51bWJlcih0aGlzLnRlbCkpIHtcbiAgICAgICAgICAgIHRoaXMudXNlck1ldHJpa2FTZXJ2aWNlLmVtaXRVc2VyTWV0cmlrYUV2ZW50KHtcbiAgICAgICAgICAgICAgICB0YXJnZXQ6IFNjVXNlck1ldHJpa2FHb2Fsc0VudW0ucGhvbmVDbGljayxcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgICAgICAgICAgcGhvbmVMb2NhdGlvbjogdGhpcy5saW5rTG9jYXRpb24sXG4gICAgICAgICAgICAgICAgICAgIHBob25lOiB0aGlzLnRlbCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0L3QvtCy0LvRj9C10YIg0YHQvtGB0YLQvtGP0L3QuNC1INGB0YHRi9C70LrQuCDQvdCwINC+0YHQvdC+0LLQtSDQstCw0LvQuNC00L3QvtGB0YLQuCDQvdC+0LzQtdGA0LAg0YLQtdC70LXRhNC+0L3QsC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHVwZGF0ZUxpbmtTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKFNjUGhvbmVTZXJ2aWNlLmlzVmFsaWRQaG9uZU51bWJlcih0aGlzLnRlbCkpIHtcbiAgICAgICAgICAgIC8vINCV0YHQu9C4INC90L7QvNC10YAg0LLQsNC70LjQtNC10L0sINCw0LrRgtC40LLQuNGA0YPQtdC8INGB0YHRi9C70LrRgy5cbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50LCAnYXJpYS1kaXNhYmxlZCcpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudCwgJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudCwgJ2hyZWYnLCBgdGVsOiR7U2NQaG9uZVNlcnZpY2UuZm9ybWF0UGhvbmVOdW1iZXIodGhpcy50ZWwpfWApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8g0JXRgdC70Lgg0L3QvtC80LXRgCDQvdC10LLQsNC70LjQtNC10L0sINC+0YLQutC70Y7Rh9Cw0LXQvCDRgdGB0YvQu9C60YMuXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudCwgJ2FyaWEtZGlzYWJsZWQnLCAndHJ1ZScpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudCwgJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLmVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudCwgJ2hyZWYnKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,8 @@
1
+ import { tuiCreateTokenFromFactory } from '@taiga-ui/cdk';
2
+ import { noop } from 'rxjs';
3
+ /**
4
+ * Токен обработчика смены ошибки.
5
+ */
6
+ // eslint-disable-next-line unicorn/consistent-function-scoping
7
+ export const SC_ERROR_CHANGE_HANDLER = tuiCreateTokenFromFactory(() => () => noop);
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItY2hhbmdlLWhhbmRsZXIucHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2Vycm9yLWhhbmRsZXIvY29uc3RzL2Vycm9yLWNoYW5nZS1oYW5kbGVyLnByb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUk1Qjs7R0FFRztBQUNILCtEQUErRDtBQUMvRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyx5QkFBeUIsQ0FBK0IsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0dWlDcmVhdGVUb2tlbkZyb21GYWN0b3J5IH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IElCbG9ja0Vycm9yIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pLWJsb2NrLWVycm9yJztcblxuLyoqXG4gKiDQotC+0LrQtdC9INC+0LHRgNCw0LHQvtGC0YfQuNC60LAg0YHQvNC10L3RiyDQvtGI0LjQsdC60LguXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL2NvbnNpc3RlbnQtZnVuY3Rpb24tc2NvcGluZ1xuZXhwb3J0IGNvbnN0IFNDX0VSUk9SX0NIQU5HRV9IQU5ETEVSID0gdHVpQ3JlYXRlVG9rZW5Gcm9tRmFjdG9yeTwoZXJyb3I6IElCbG9ja0Vycm9yKSA9PiB2b2lkPigoKSA9PiAoKSA9PiBub29wKTtcbiJdfQ==