@snabcentr/client-ui 3.9.4 → 3.11.0
Sign up to get free protection for your applications and to get access to all the features.
- package/contacts/sc-contacts.module.d.ts +2 -2
- package/directives/links/sc-links.d.ts +2 -2
- package/esm2022/contacts/contacts-accordion/sc-contacts-accordion.component.mjs +4 -4
- package/esm2022/contacts/sc-contacts.module.mjs +3 -3
- package/esm2022/directives/links/sc-links.mjs +3 -3
- package/esm2022/feedback/feedback-form/sc-feedback-form.component.mjs +267 -0
- package/esm2022/feedback/gratitude/sc-gratitude.component.mjs +32 -0
- package/esm2022/feedback/index.mjs +3 -0
- package/esm2022/pipes/index.mjs +2 -2
- package/esm2022/pipes/sc-phone-format.mjs +44 -0
- package/esm2022/profile/sc-profile-accordions-content/sc-profile-accordions-content.component.mjs +4 -4
- package/esm2022/profile/sc-profile.module.mjs +3 -3
- package/esm2022/providers/index.mjs +2 -1
- package/esm2022/providers/sc-max-files-in-form-input.mjs +6 -0
- package/esm2022/public-api.mjs +2 -1
- package/esm2022/samples/index.mjs +1 -2
- package/esm2022/samples/sc-sample.module.mjs +5 -6
- package/esm2022/user/sc-user.module.mjs +3 -3
- package/esm2022/user/user-managers/sc-user-managers.component.mjs +4 -4
- package/feedback/feedback-form/sc-feedback-form.component.d.ts +123 -0
- package/feedback/gratitude/sc-gratitude.component.d.ts +20 -0
- package/feedback/index.d.ts +2 -0
- package/fesm2022/snabcentr-client-ui.mjs +330 -153
- package/fesm2022/snabcentr-client-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/pipes/index.d.ts +1 -1
- package/pipes/{sc-formatted-phone.d.ts → sc-phone-format.d.ts} +3 -3
- package/profile/sc-profile.module.d.ts +2 -2
- package/providers/index.d.ts +1 -0
- package/providers/sc-max-files-in-form-input.d.ts +5 -0
- package/public-api.d.ts +1 -0
- package/release_notes.tmp +3 -3
- package/samples/index.d.ts +0 -1
- package/samples/sc-sample.module.d.ts +10 -11
- package/styles/tailwind/tailwind.scss +26 -0
- package/user/sc-user.module.d.ts +2 -2
- package/esm2022/pipes/sc-formatted-phone.mjs +0 -44
- package/esm2022/samples/ask-to-sample-form/sc-ask-to-sample-form.component.mjs +0 -117
- package/samples/ask-to-sample-form/sc-ask-to-sample-form.component.d.ts +0 -52
@@ -7,7 +7,7 @@ import * as i3 from "@taiga-ui/core";
|
|
7
7
|
import * as i4 from "../../directives/terminal-link/sc-terminal-link.directive";
|
8
8
|
import * as i5 from "../../directives/links/sc-tel-link.directive";
|
9
9
|
import * as i6 from "../../directives/links/sc-email-link.directive";
|
10
|
-
import * as i7 from "../../pipes/sc-
|
10
|
+
import * as i7 from "../../pipes/sc-phone-format";
|
11
11
|
/**
|
12
12
|
* Компонент персональных менеджеров пользователя.
|
13
13
|
*/
|
@@ -31,12 +31,12 @@ export class ScUserManagersComponent {
|
|
31
31
|
this.qrClickEvent = new EventEmitter();
|
32
32
|
}
|
33
33
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScUserManagersComponent, deps: [{ token: i1.ScUserService }], target: i0.ɵɵFactoryTarget.Component }); }
|
34
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: ScUserManagersComponent, selector: "sc-user-managers", outputs: { qrClickEvent: "qrClickEvent" }, ngImport: i0, template: "<p class=\"mb-2 font-extrabold\">\u0412\u0430\u0448\u0438 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0435 \u043C\u0435\u043D\u0435\u0434\u0436\u0435\u0440\u044B:</p>\n<ng-container *ngFor=\"let manager of managers$ | async; let last = last\">\n <div class=\"flex justify-between\">\n <div class=\"flex flex-col gap-1 !font-medium text-tui-text-02\">\n {{ manager.name }}\n <a\n tuiLink\n [pseudo]=\"true\"\n scEmailLink\n linkLocation=\"user-managers\"\n href=\"mailto:{{ manager.contacts.email }}\"\n iconStart=\"@tui.mail\"\n >\n {{ manager.contacts.email }}\n </a>\n <a\n tuiLink\n [scTelLink]=\"manager.contacts.phone\"\n [pseudo]=\"true\"\n linkLocation=\"user-managers\"\n href=\"tel:{{ manager.contacts.phone |
|
34
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: ScUserManagersComponent, selector: "sc-user-managers", outputs: { qrClickEvent: "qrClickEvent" }, ngImport: i0, template: "<p class=\"mb-2 font-extrabold\">\u0412\u0430\u0448\u0438 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0435 \u043C\u0435\u043D\u0435\u0434\u0436\u0435\u0440\u044B:</p>\n<ng-container *ngFor=\"let manager of managers$ | async; let last = last\">\n <div class=\"flex justify-between\">\n <div class=\"flex flex-col gap-1 !font-medium text-tui-text-02\">\n {{ manager.name }}\n <a\n tuiLink\n [pseudo]=\"true\"\n scEmailLink\n linkLocation=\"user-managers\"\n href=\"mailto:{{ manager.contacts.email }}\"\n iconStart=\"@tui.mail\"\n >\n {{ manager.contacts.email }}\n </a>\n <a\n tuiLink\n [scTelLink]=\"manager.contacts.phone\"\n [pseudo]=\"true\"\n linkLocation=\"user-managers\"\n href=\"tel:{{ manager.contacts.phone | scPhoneFormat }}\"\n iconStart=\"@tui.phone\"\n >\n {{ manager.contacts.phone | scPhoneFormat }}\n </a>\n </div>\n <button\n tuiIconButton\n size=\"m\"\n appearance=\"secondary\"\n iconStart=\"@tui.scan-qr-code\"\n (click)=\"qrClickEvent.emit(manager)\"\n ></button>\n </div>\n <hr\n *ngIf=\"!last\"\n class=\"my-2 h-px border-0 bg-tui-base-04\"\n />\n</ng-container>\n", styles: ["a[tuiLink][data-mode=onLight]._pseudo{color:var(--tui-text-secondary)}a[tuiLink][data-mode=onLight]._pseudo:hover{color:var(--tui-text-tertiary)}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "directive", type: i3.TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }, { kind: "directive", type: i4.ScTerminalLinkDirective, selector: "a[href]" }, { kind: "directive", type: i5.ScTelLinkDirective, selector: "a[scTelLink]", inputs: ["scTelLink", "linkLocation"] }, { kind: "directive", type: i6.ScEmailLinkDirective, selector: "a[scEmailLink]", inputs: ["linkLocation"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.ScPhoneFormatPipe, name: "scPhoneFormat" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
35
35
|
}
|
36
36
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScUserManagersComponent, decorators: [{
|
37
37
|
type: Component,
|
38
|
-
args: [{ selector: 'sc-user-managers', changeDetection: ChangeDetectionStrategy.OnPush, template: "<p class=\"mb-2 font-extrabold\">\u0412\u0430\u0448\u0438 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0435 \u043C\u0435\u043D\u0435\u0434\u0436\u0435\u0440\u044B:</p>\n<ng-container *ngFor=\"let manager of managers$ | async; let last = last\">\n <div class=\"flex justify-between\">\n <div class=\"flex flex-col gap-1 !font-medium text-tui-text-02\">\n {{ manager.name }}\n <a\n tuiLink\n [pseudo]=\"true\"\n scEmailLink\n linkLocation=\"user-managers\"\n href=\"mailto:{{ manager.contacts.email }}\"\n iconStart=\"@tui.mail\"\n >\n {{ manager.contacts.email }}\n </a>\n <a\n tuiLink\n [scTelLink]=\"manager.contacts.phone\"\n [pseudo]=\"true\"\n linkLocation=\"user-managers\"\n href=\"tel:{{ manager.contacts.phone |
|
38
|
+
args: [{ selector: 'sc-user-managers', changeDetection: ChangeDetectionStrategy.OnPush, template: "<p class=\"mb-2 font-extrabold\">\u0412\u0430\u0448\u0438 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0435 \u043C\u0435\u043D\u0435\u0434\u0436\u0435\u0440\u044B:</p>\n<ng-container *ngFor=\"let manager of managers$ | async; let last = last\">\n <div class=\"flex justify-between\">\n <div class=\"flex flex-col gap-1 !font-medium text-tui-text-02\">\n {{ manager.name }}\n <a\n tuiLink\n [pseudo]=\"true\"\n scEmailLink\n linkLocation=\"user-managers\"\n href=\"mailto:{{ manager.contacts.email }}\"\n iconStart=\"@tui.mail\"\n >\n {{ manager.contacts.email }}\n </a>\n <a\n tuiLink\n [scTelLink]=\"manager.contacts.phone\"\n [pseudo]=\"true\"\n linkLocation=\"user-managers\"\n href=\"tel:{{ manager.contacts.phone | scPhoneFormat }}\"\n iconStart=\"@tui.phone\"\n >\n {{ manager.contacts.phone | scPhoneFormat }}\n </a>\n </div>\n <button\n tuiIconButton\n size=\"m\"\n appearance=\"secondary\"\n iconStart=\"@tui.scan-qr-code\"\n (click)=\"qrClickEvent.emit(manager)\"\n ></button>\n </div>\n <hr\n *ngIf=\"!last\"\n class=\"my-2 h-px border-0 bg-tui-base-04\"\n />\n</ng-container>\n", styles: ["a[tuiLink][data-mode=onLight]._pseudo{color:var(--tui-text-secondary)}a[tuiLink][data-mode=onLight]._pseudo:hover{color:var(--tui-text-tertiary)}\n"] }]
|
39
39
|
}], ctorParameters: () => [{ type: i1.ScUserService }], propDecorators: { qrClickEvent: [{
|
40
40
|
type: Output
|
41
41
|
}] } });
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtdXNlci1tYW5hZ2Vycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvdXNlci91c2VyLW1hbmFnZXJzL3NjLXVzZXItbWFuYWdlcnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL3VzZXIvdXNlci1tYW5hZ2Vycy9zYy11c2VyLW1hbmFnZXJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RixPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7QUFFdkM7O0dBRUc7QUFPSCxNQUFNLE9BQU8sdUJBQXVCO0lBY2hDOzs7O09BSUc7SUFDSCxZQUFvQyxXQUEwQjtRQUExQixnQkFBVyxHQUFYLFdBQVcsQ0FBZTtRQWxCOUQ7O1dBRUc7UUFDYSxjQUFTLEdBQXlDLElBQUksQ0FBQyxXQUFXO2FBQzdFLGNBQWMsRUFBRTthQUNoQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQWEsRUFBRSxDQUFhLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU3STs7V0FFRztRQUVhLGlCQUFZLEdBQTZCLElBQUksWUFBWSxFQUFjLENBQUM7SUFPdkIsQ0FBQzsrR0FuQnpELHVCQUF1QjttR0FBdkIsdUJBQXVCLG1HQ2JwQyxzK0NBdUNBOzs0RkQxQmEsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNJLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNO2tGQWMvQixZQUFZO3NCQUQzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNjSU1hbmFnZXIsIFNjVXNlclNlcnZpY2UgfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqINCa0L7QvNC/0L7QvdC10L3RgiDQv9C10YDRgdC+0L3QsNC70YzQvdGL0YUg0LzQtdC90LXQtNC20LXRgNC+0LIg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NjLXVzZXItbWFuYWdlcnMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zYy11c2VyLW1hbmFnZXJzLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zYy11c2VyLW1hbmFnZXJzLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNjVXNlck1hbmFnZXJzQ29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiDQn9C10YDRgdC+0L3QsNC70YzQvdGL0LUg0LzQtdC90LXQtNC20LXRgNGLINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgbWFuYWdlcnMkOiBPYnNlcnZhYmxlPFNjSU1hbmFnZXJbXSB8IHVuZGVmaW5lZD4gPSB0aGlzLnVzZXJTZXJ2aWNlXG4gICAgICAgIC5nZXRVc2VyQ2hhbmdlJCgpXG4gICAgICAgIC5waXBlKG1hcCgodXNlcikgPT4gdXNlci5tYW5hZ2Vycz8uc29ydCgoYTogU2NJTWFuYWdlciwgYjogU2NJTWFuYWdlcikgPT4gTnVtYmVyKEJvb2xlYW4oYi5pc1ByaW1hcnkpKSAtIE51bWJlcihCb29sZWFuKGEuaXNQcmltYXJ5KSkpKSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LHRi9GC0LjQtSDQvdCw0LbQsNGC0LjRjyDQvdCwINC60L3QvtC/0LrRgyBRUiDQutC+0LTQsC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcmVhZG9ubHkgcXJDbGlja0V2ZW50OiBFdmVudEVtaXR0ZXI8U2NJTWFuYWdlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPFNjSU1hbmFnZXI+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFNjVXNlck1hbmFnZXJzQ29tcG9uZW50fS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB1c2VyU2VydmljZSDQodC10YDQstC40YEg0LTQsNC90L3Ri9GFINC+INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB1c2VyU2VydmljZTogU2NVc2VyU2VydmljZSkge31cbn1cbiIsIjxwIGNsYXNzPVwibWItMiBmb250LWV4dHJhYm9sZFwiPtCS0LDRiNC4INC/0LXRgNGB0L7QvdCw0LvRjNC90YvQtSDQvNC10L3QtdC00LbQtdGA0Ys6PC9wPlxuPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbWFuYWdlciBvZiBtYW5hZ2VycyQgfCBhc3luYzsgbGV0IGxhc3QgPSBsYXN0XCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0xICFmb250LW1lZGl1bSB0ZXh0LXR1aS10ZXh0LTAyXCI+XG4gICAgICAgICAgICB7eyBtYW5hZ2VyLm5hbWUgfX1cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgdHVpTGlua1xuICAgICAgICAgICAgICAgIFtwc2V1ZG9dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgc2NFbWFpbExpbmtcbiAgICAgICAgICAgICAgICBsaW5rTG9jYXRpb249XCJ1c2VyLW1hbmFnZXJzXCJcbiAgICAgICAgICAgICAgICBocmVmPVwibWFpbHRvOnt7IG1hbmFnZXIuY29udGFjdHMuZW1haWwgfX1cIlxuICAgICAgICAgICAgICAgIGljb25TdGFydD1cIkB0dWkubWFpbFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgbWFuYWdlci5jb250YWN0cy5lbWFpbCB9fVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICB0dWlMaW5rXG4gICAgICAgICAgICAgICAgW3NjVGVsTGlua109XCJtYW5hZ2VyLmNvbnRhY3RzLnBob25lXCJcbiAgICAgICAgICAgICAgICBbcHNldWRvXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIGxpbmtMb2NhdGlvbj1cInVzZXItbWFuYWdlcnNcIlxuICAgICAgICAgICAgICAgIGhyZWY9XCJ0ZWw6e3sgbWFuYWdlci5jb250YWN0cy5waG9uZSB8IHNjUGhvbmVGb3JtYXQgfX1cIlxuICAgICAgICAgICAgICAgIGljb25TdGFydD1cIkB0dWkucGhvbmVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IG1hbmFnZXIuY29udGFjdHMucGhvbmUgfCBzY1Bob25lRm9ybWF0IH19XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0dWlJY29uQnV0dG9uXG4gICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICBhcHBlYXJhbmNlPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICAgIGljb25TdGFydD1cIkB0dWkuc2Nhbi1xci1jb2RlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJxckNsaWNrRXZlbnQuZW1pdChtYW5hZ2VyKVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8aHJcbiAgICAgICAgKm5nSWY9XCIhbGFzdFwiXG4gICAgICAgIGNsYXNzPVwibXktMiBoLXB4IGJvcmRlci0wIGJnLXR1aS1iYXNlLTA0XCJcbiAgICAvPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
@@ -0,0 +1,123 @@
|
|
1
|
+
import { InputSignal, OutputEmitterRef } from '@angular/core';
|
2
|
+
import { FormControl, FormGroup } from '@angular/forms';
|
3
|
+
import { ScFeedbackForm, ScISuggestionType, ScUploadedFile } from '@snabcentr/client-core';
|
4
|
+
import { TuiDialogContext } from '@taiga-ui/core';
|
5
|
+
import { TuiFileLike } from '@taiga-ui/kit';
|
6
|
+
import { Observable, Subject } from 'rxjs';
|
7
|
+
import * as i0 from "@angular/core";
|
8
|
+
/**
|
9
|
+
* Компонент формы обратной связи.
|
10
|
+
*/
|
11
|
+
export declare class ScFeedbackFormComponent {
|
12
|
+
/**
|
13
|
+
* Условное название блока где расположена ссылка.
|
14
|
+
*/
|
15
|
+
readonly formSlag: InputSignal<keyof typeof ScFeedbackForm>;
|
16
|
+
/**
|
17
|
+
* Событие нажатия на кнопку договора оферты.
|
18
|
+
*/
|
19
|
+
readonly onClickOffer: OutputEmitterRef<void>;
|
20
|
+
/**
|
21
|
+
* Событие успешной отправки формы.
|
22
|
+
*/
|
23
|
+
readonly onSendSuccess: OutputEmitterRef<void>;
|
24
|
+
/**
|
25
|
+
* Сервис обратной связи.
|
26
|
+
*/
|
27
|
+
private readonly feedbackService;
|
28
|
+
/**
|
29
|
+
* Сервис конвертации данных.
|
30
|
+
*/
|
31
|
+
private readonly convertersService;
|
32
|
+
/**
|
33
|
+
* Максимальное количество файлов, отправляемых в форме.
|
34
|
+
*/
|
35
|
+
private readonly maxFilesInForm;
|
36
|
+
/**
|
37
|
+
* Сервис данных о пользователе.
|
38
|
+
*/
|
39
|
+
private readonly user$;
|
40
|
+
/**
|
41
|
+
* Контекст диалогового окна, в котором открыт компонент.
|
42
|
+
*/
|
43
|
+
protected readonly context: TuiDialogContext<void, {
|
44
|
+
onClickOfferHandler: () => void;
|
45
|
+
formSlag: keyof typeof ScFeedbackForm;
|
46
|
+
}> | null;
|
47
|
+
/**
|
48
|
+
* Поле ввода для recaptcha.
|
49
|
+
*/
|
50
|
+
protected readonly recaptchaControl: FormControl<string | null>;
|
51
|
+
/**
|
52
|
+
* Группа полей ввода для формы «Пожелания и предложения по улучшению сайта».
|
53
|
+
*/
|
54
|
+
protected readonly form: FormGroup<{
|
55
|
+
name: FormControl<string | null>;
|
56
|
+
phone: FormControl<string | null>;
|
57
|
+
email: FormControl<string | null>;
|
58
|
+
message: FormControl<string | null>;
|
59
|
+
files: FormControl<ScUploadedFile[] | null>;
|
60
|
+
}>;
|
61
|
+
/**
|
62
|
+
* Перечисление типов подсказок.
|
63
|
+
*/
|
64
|
+
protected readonly suggestionType: typeof ScISuggestionType;
|
65
|
+
/**
|
66
|
+
* {@link Subject} события отправки формы.
|
67
|
+
*/
|
68
|
+
protected readonly onSubmit: Subject<void>;
|
69
|
+
/**
|
70
|
+
* {@link Observable} запроса на отправку данных.
|
71
|
+
*/
|
72
|
+
protected readonly request$: Observable<undefined | null>;
|
73
|
+
/**
|
74
|
+
* {@link Observable} изменения состояния загрузки данных.
|
75
|
+
*/
|
76
|
+
protected readonly loading$: Observable<boolean>;
|
77
|
+
/**
|
78
|
+
* Управляет состоянием загруженных файлов.
|
79
|
+
*/
|
80
|
+
protected readonly loadedFile: FormControl<TuiFileLike[] | null>;
|
81
|
+
/**
|
82
|
+
* Observable, который отслеживает, приняты ли файлы в соответствии с требованиями по типу размеру и т.д.
|
83
|
+
*/
|
84
|
+
protected readonly accepted$: Observable<File[]>;
|
85
|
+
/**
|
86
|
+
* Список файлов, которые были отклонены при загрузке.
|
87
|
+
*/
|
88
|
+
protected rejected: readonly File[];
|
89
|
+
/**
|
90
|
+
* Инициализирует экземпляр класса {@link ScFeedbackFormComponent}.
|
91
|
+
*/
|
92
|
+
constructor();
|
93
|
+
/**
|
94
|
+
* Обрабатывает отклоненные файлы.
|
95
|
+
*
|
96
|
+
* @param files Список файлов, которые были отклонены.
|
97
|
+
*/
|
98
|
+
protected onReject(files: readonly File[]): void;
|
99
|
+
/**
|
100
|
+
* Удаляет файл из списка загруженных и отклоненных файлов.
|
101
|
+
*
|
102
|
+
* @param file Файл, который нужно удалить.
|
103
|
+
*/
|
104
|
+
protected onRemove(file: File): void;
|
105
|
+
/**
|
106
|
+
* Загружает файл в форму обратной связи.
|
107
|
+
*
|
108
|
+
* @param files Набор файлов.
|
109
|
+
*/
|
110
|
+
private onUploadFile;
|
111
|
+
/**
|
112
|
+
* Проверяет количество файлов загруженных пользователем.
|
113
|
+
*
|
114
|
+
* @param maxLength максимальное допустимое количество файлов для отправки.
|
115
|
+
*/
|
116
|
+
private maxFilesLength;
|
117
|
+
/**
|
118
|
+
* Выполняет очистку полей формы.
|
119
|
+
*/
|
120
|
+
private resetForm;
|
121
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ScFeedbackFormComponent, never>;
|
122
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ScFeedbackFormComponent, "sc-feedback-form", never, { "formSlag": { "alias": "formSlag"; "required": true; "isSignal": true; }; }, { "onClickOffer": "onClickOffer"; "onSendSuccess": "onSendSuccess"; }, never, never, true, never>;
|
123
|
+
}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import { TuiDialogContext } from '@taiga-ui/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
/**
|
4
|
+
* Компонент «Спасибо!».
|
5
|
+
*/
|
6
|
+
export declare class ScGratitudeComponent {
|
7
|
+
/**
|
8
|
+
* Контекст диалогового окна, в котором открыт компонент.
|
9
|
+
*/
|
10
|
+
protected readonly context: TuiDialogContext<void, {
|
11
|
+
autoClose: number;
|
12
|
+
subTitle: string;
|
13
|
+
}> | null;
|
14
|
+
/**
|
15
|
+
* Инициализирует экземпляр класса {@link ScGratitudeComponent}.
|
16
|
+
*/
|
17
|
+
constructor();
|
18
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ScGratitudeComponent, never>;
|
19
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ScGratitudeComponent, "sc-gratitude", never, {}, {}, never, never, true, never>;
|
20
|
+
}
|