@cuby-ui/core 0.0.57 → 0.0.58

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import type { OnInit, Type } from '@angular/core';
1
+ import type { OnDestroy, OnInit, Type } from '@angular/core';
2
2
  import { TemplateRef } from '@angular/core';
3
3
  import type { CuiValueOf } from '@cuby-ui/cdk';
4
4
  import * as i0 from "@angular/core";
@@ -8,7 +8,8 @@ export declare const ContentType: {
8
8
  readonly Component: "component";
9
9
  };
10
10
  export type IContentType = CuiValueOf<typeof ContentType>;
11
- export declare class CuiDialogComponent implements OnInit {
11
+ export declare class CuiDialogComponent implements OnInit, OnDestroy {
12
+ protected readonly document: Document;
12
13
  protected readonly context: import("@cuby-ui/cdk").CuiPopover<import("./dialog.interfaces").CuiDialogOptions>;
13
14
  protected readonly ContentType: {
14
15
  readonly String: "string";
@@ -17,10 +18,13 @@ export declare class CuiDialogComponent implements OnInit {
17
18
  };
18
19
  protected contentType: IContentType;
19
20
  ngOnInit(): void;
21
+ ngOnDestroy(): void;
20
22
  protected get contentTemplateRef(): TemplateRef<unknown>;
21
23
  protected get componentType(): Type<unknown>;
22
24
  protected onClose(): void;
23
25
  private initContentType;
26
+ private initBodyScrollHiding;
27
+ private destroyBodyScrollHiding;
24
28
  static ɵfac: i0.ɵɵFactoryDeclaration<CuiDialogComponent, never>;
25
29
  static ɵcmp: i0.ɵɵComponentDeclaration<CuiDialogComponent, "cui-dialog", never, {}, {}, never, never, false, never>;
26
30
  }
@@ -1,3 +1,4 @@
1
+ import { DOCUMENT } from '@angular/common';
1
2
  import { ChangeDetectionStrategy, Component, inject, TemplateRef } from '@angular/core';
2
3
  import { CUI_DIALOG_CONTEXT } from './dialog.tokens';
3
4
  import * as i0 from "@angular/core";
@@ -10,13 +11,18 @@ export const ContentType = {
10
11
  };
11
12
  export class CuiDialogComponent {
12
13
  constructor() {
14
+ this.document = inject(DOCUMENT);
13
15
  this.context = inject(CUI_DIALOG_CONTEXT);
14
16
  this.ContentType = ContentType;
15
17
  this.contentType = ContentType.Component;
16
18
  }
17
19
  ngOnInit() {
20
+ this.initBodyScrollHiding();
18
21
  this.initContentType();
19
22
  }
23
+ ngOnDestroy() {
24
+ this.destroyBodyScrollHiding();
25
+ }
20
26
  get contentTemplateRef() {
21
27
  return this.context.content;
22
28
  }
@@ -37,11 +43,17 @@ export class CuiDialogComponent {
37
43
  return;
38
44
  }
39
45
  }
46
+ initBodyScrollHiding() {
47
+ this.document.body.style.overflow = 'hidden';
48
+ }
49
+ destroyBodyScrollHiding() {
50
+ this.document.body.style.overflow = '';
51
+ }
40
52
  }
41
53
  CuiDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
42
- CuiDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiDialogComponent, selector: "cui-dialog", ngImport: i0, template: "<header *ngIf=\"context.label\" class=\"c-header\">\n <h2 class=\"c-heading\">{{ context.label }}</h2>\n <button\n cuiButton\n appearance=\"ghost\"\n icon=\"cuiIconX\"\n (click)=\"onClose()\"\n ></button>\n</header>\n<div\n [ngSwitch]=\"contentType\"\n class=\"\u0441-content\"\n>\n <ng-container *ngSwitchCase=\"ContentType.String\">\n {{ context.content }}\n </ng-container>\n <ng-container *ngSwitchCase=\"ContentType.Template\">\n <ng-container *ngTemplateOutlet=\"contentTemplateRef; context: context\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"ContentType.Component\">\n <ng-container *ngComponentOutlet=\"componentType\"></ng-container>\n </ng-container>\n</div>\n", styles: ["@charset \"UTF-8\";:host{box-shadow:0 2px 4px -1px #0000000f,0 4px 6px -1px #0000001a;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:12px;background:var(--cui-base-0);font-family:var(--cui-main-font)}.c-header{padding:24px 24px 16px;display:flex;justify-content:space-between;gap:8px}.c-heading{font-weight:500;font-size:20px;line-height:30px;min-height:36px;margin:0;overflow-wrap:anywhere}.\\441-content{padding:16px 24px}.c-footer{padding:16px 24px 24px}\n"], dependencies: [{ kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i2.CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
54
+ CuiDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiDialogComponent, selector: "cui-dialog", ngImport: i0, template: "<header *ngIf=\"context.label\" class=\"c-header\">\n <h2 class=\"c-heading\">{{ context.label }}</h2>\n <button\n cuiButton\n appearance=\"ghost\"\n icon=\"cuiIconX\"\n (click)=\"onClose()\"\n ></button>\n</header>\n<div\n [ngSwitch]=\"contentType\"\n class=\"\u0441-content\"\n>\n <ng-container *ngSwitchCase=\"ContentType.String\">\n {{ context.content }}\n </ng-container>\n <ng-container *ngSwitchCase=\"ContentType.Template\">\n <ng-container *ngTemplateOutlet=\"contentTemplateRef; context: context\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"ContentType.Component\">\n <ng-container *ngComponentOutlet=\"componentType\"></ng-container>\n </ng-container>\n</div>\n", styles: ["@charset \"UTF-8\";:host{box-shadow:0 2px 4px -1px #0000000f,0 4px 6px -1px #0000001a;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:12px;background:var(--cui-base-0);font-family:var(--cui-main-font)}.c-header{padding:24px 24px 16px;display:flex;justify-content:space-between;gap:8px}.c-heading{font-weight:500;font-size:20px;line-height:30px;min-height:36px;margin:0;overflow-wrap:anywhere}.\\441-content{padding:16px 24px}\n"], dependencies: [{ kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i2.CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
43
55
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiDialogComponent, decorators: [{
44
56
  type: Component,
45
- args: [{ selector: 'cui-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<header *ngIf=\"context.label\" class=\"c-header\">\n <h2 class=\"c-heading\">{{ context.label }}</h2>\n <button\n cuiButton\n appearance=\"ghost\"\n icon=\"cuiIconX\"\n (click)=\"onClose()\"\n ></button>\n</header>\n<div\n [ngSwitch]=\"contentType\"\n class=\"\u0441-content\"\n>\n <ng-container *ngSwitchCase=\"ContentType.String\">\n {{ context.content }}\n </ng-container>\n <ng-container *ngSwitchCase=\"ContentType.Template\">\n <ng-container *ngTemplateOutlet=\"contentTemplateRef; context: context\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"ContentType.Component\">\n <ng-container *ngComponentOutlet=\"componentType\"></ng-container>\n </ng-container>\n</div>\n", styles: ["@charset \"UTF-8\";:host{box-shadow:0 2px 4px -1px #0000000f,0 4px 6px -1px #0000001a;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:12px;background:var(--cui-base-0);font-family:var(--cui-main-font)}.c-header{padding:24px 24px 16px;display:flex;justify-content:space-between;gap:8px}.c-heading{font-weight:500;font-size:20px;line-height:30px;min-height:36px;margin:0;overflow-wrap:anywhere}.\\441-content{padding:16px 24px}.c-footer{padding:16px 24px 24px}\n"] }]
57
+ args: [{ selector: 'cui-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<header *ngIf=\"context.label\" class=\"c-header\">\n <h2 class=\"c-heading\">{{ context.label }}</h2>\n <button\n cuiButton\n appearance=\"ghost\"\n icon=\"cuiIconX\"\n (click)=\"onClose()\"\n ></button>\n</header>\n<div\n [ngSwitch]=\"contentType\"\n class=\"\u0441-content\"\n>\n <ng-container *ngSwitchCase=\"ContentType.String\">\n {{ context.content }}\n </ng-container>\n <ng-container *ngSwitchCase=\"ContentType.Template\">\n <ng-container *ngTemplateOutlet=\"contentTemplateRef; context: context\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"ContentType.Component\">\n <ng-container *ngComponentOutlet=\"componentType\"></ng-container>\n </ng-container>\n</div>\n", styles: ["@charset \"UTF-8\";:host{box-shadow:0 2px 4px -1px #0000000f,0 4px 6px -1px #0000001a;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:12px;background:var(--cui-base-0);font-family:var(--cui-main-font)}.c-header{padding:24px 24px 16px;display:flex;justify-content:space-between;gap:8px}.c-heading{font-weight:500;font-size:20px;line-height:30px;min-height:36px;margin:0;overflow-wrap:anywhere}.\\441-content{padding:16px 24px}\n"] }]
46
58
  }] });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBRXJELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN6QixNQUFNLEVBQUUsUUFBUTtJQUNoQixRQUFRLEVBQUUsVUFBVTtJQUNwQixTQUFTLEVBQUUsV0FBVztDQUNkLENBQUM7QUFVWCxNQUFNLE9BQU8sa0JBQWtCO0lBTi9CO1FBT3FCLFlBQU8sR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUVyQyxnQkFBVyxHQUFHLFdBQVcsQ0FBQztRQUVuQyxnQkFBVyxHQUFpQixXQUFXLENBQUMsU0FBUyxDQUFDO0tBaUM3RDtJQS9CUSxRQUFRO1FBQ2IsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFjLGtCQUFrQjtRQUM5QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBK0IsQ0FBQztJQUN0RCxDQUFDO0lBRUQsSUFBYyxhQUFhO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUF3QixDQUFDO0lBQy9DLENBQUM7SUFFUyxPQUFPO1FBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVPLGVBQWU7UUFDckIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFFckMsUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLENBQUMsT0FBTyxPQUFPLEtBQUssUUFBUSxDQUFDO2dCQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7Z0JBRXRDLE9BQU87WUFFVCxLQUFLLENBQUMsT0FBTyxZQUFZLFdBQVcsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDO2dCQUV4QyxPQUFPO1NBQ1Y7SUFDSCxDQUFDOztnSEFyQ1Usa0JBQWtCO29HQUFsQixrQkFBa0Isa0RDcEIvQix5dEJBdUJBOzRGREhhLGtCQUFrQjtrQkFOOUIsU0FBUzsrQkFDRSxZQUFZLG1CQUdMLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE9uSW5pdCwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBDdWlWYWx1ZU9mIH0gZnJvbSAnQGN1YnktdWkvY2RrJztcblxuaW1wb3J0IHsgQ1VJX0RJQUxPR19DT05URVhUIH0gZnJvbSAnLi9kaWFsb2cudG9rZW5zJztcblxuZXhwb3J0IGNvbnN0IENvbnRlbnRUeXBlID0ge1xuICBTdHJpbmc6ICdzdHJpbmcnLFxuICBUZW1wbGF0ZTogJ3RlbXBsYXRlJyxcbiAgQ29tcG9uZW50OiAnY29tcG9uZW50J1xufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgSUNvbnRlbnRUeXBlID0gQ3VpVmFsdWVPZjx0eXBlb2YgQ29udGVudFR5cGU+O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjdWktZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy50ZW1wbGF0ZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGlhbG9nLnN0eWxlLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ3VpRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbnRleHQgPSBpbmplY3QoQ1VJX0RJQUxPR19DT05URVhUKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgQ29udGVudFR5cGUgPSBDb250ZW50VHlwZTtcblxuICBwcm90ZWN0ZWQgY29udGVudFR5cGU6IElDb250ZW50VHlwZSA9IENvbnRlbnRUeXBlLkNvbXBvbmVudDtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0Q29udGVudFR5cGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgY29udGVudFRlbXBsYXRlUmVmKCk6IFRlbXBsYXRlUmVmPHVua25vd24+IHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0LmNvbnRlbnQgYXMgVGVtcGxhdGVSZWY8dW5rbm93bj47XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGNvbXBvbmVudFR5cGUoKTogVHlwZTx1bmtub3duPiB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dC5jb250ZW50IGFzIFR5cGU8dW5rbm93bj47XG4gIH1cblxuICBwcm90ZWN0ZWQgb25DbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRleHQuJGltcGxpY2l0LmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRDb250ZW50VHlwZSgpOiB2b2lkIHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5jb250ZXh0LmNvbnRlbnQ7XG5cbiAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgIGNhc2UgKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJyk6XG4gICAgICAgIHRoaXMuY29udGVudFR5cGUgPSBDb250ZW50VHlwZS5TdHJpbmc7XG5cbiAgICAgICAgcmV0dXJuO1xuXG4gICAgICBjYXNlIChjb250ZW50IGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpOlxuICAgICAgICB0aGlzLmNvbnRlbnRUeXBlID0gQ29udGVudFR5cGUuVGVtcGxhdGU7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxufVxuIiwiPGhlYWRlciAqbmdJZj1cImNvbnRleHQubGFiZWxcIiBjbGFzcz1cImMtaGVhZGVyXCI+XG4gIDxoMiBjbGFzcz1cImMtaGVhZGluZ1wiPnt7IGNvbnRleHQubGFiZWwgfX08L2gyPlxuICA8YnV0dG9uXG4gICAgY3VpQnV0dG9uXG4gICAgYXBwZWFyYW5jZT1cImdob3N0XCJcbiAgICBpY29uPVwiY3VpSWNvblhcIlxuICAgIChjbGljayk9XCJvbkNsb3NlKClcIlxuICA+PC9idXR0b24+XG48L2hlYWRlcj5cbjxkaXZcbiAgW25nU3dpdGNoXT1cImNvbnRlbnRUeXBlXCJcbiAgY2xhc3M9XCLRgS1jb250ZW50XCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiQ29udGVudFR5cGUuU3RyaW5nXCI+XG4gICAge3sgY29udGV4dC5jb250ZW50IH19XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJDb250ZW50VHlwZS5UZW1wbGF0ZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50VGVtcGxhdGVSZWY7IGNvbnRleHQ6IGNvbnRleHRcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIkNvbnRlbnRUeXBlLkNvbXBvbmVudFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nQ29tcG9uZW50T3V0bGV0PVwiY29tcG9uZW50VHlwZVwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd4RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUVyRCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDekIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsUUFBUSxFQUFFLFVBQVU7SUFDcEIsU0FBUyxFQUFFLFdBQVc7Q0FDZCxDQUFDO0FBVVgsTUFBTSxPQUFPLGtCQUFrQjtJQU4vQjtRQU9xQixhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVCLFlBQU8sR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUVyQyxnQkFBVyxHQUFHLFdBQVcsQ0FBQztRQUVuQyxnQkFBVyxHQUFpQixXQUFXLENBQUMsU0FBUyxDQUFDO0tBOEM3RDtJQTVDUSxRQUFRO1FBQ2IsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFjLGtCQUFrQjtRQUM5QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBK0IsQ0FBQztJQUN0RCxDQUFDO0lBRUQsSUFBYyxhQUFhO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUF3QixDQUFDO0lBQy9DLENBQUM7SUFFUyxPQUFPO1FBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVPLGVBQWU7UUFDckIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFFckMsUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLENBQUMsT0FBTyxPQUFPLEtBQUssUUFBUSxDQUFDO2dCQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7Z0JBRXRDLE9BQU87WUFFVCxLQUFLLENBQUMsT0FBTyxZQUFZLFdBQVcsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDO2dCQUV4QyxPQUFPO1NBQ1Y7SUFDSCxDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQy9DLENBQUM7SUFFTyx1QkFBdUI7UUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDekMsQ0FBQzs7Z0hBbkRVLGtCQUFrQjtvR0FBbEIsa0JBQWtCLGtEQ3JCL0IseXRCQXVCQTs0RkRGYSxrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0UsWUFBWSxtQkFHTCx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBPbkRlc3Ryb3ksIE9uSW5pdCwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBDdWlWYWx1ZU9mIH0gZnJvbSAnQGN1YnktdWkvY2RrJztcblxuaW1wb3J0IHsgQ1VJX0RJQUxPR19DT05URVhUIH0gZnJvbSAnLi9kaWFsb2cudG9rZW5zJztcblxuZXhwb3J0IGNvbnN0IENvbnRlbnRUeXBlID0ge1xuICBTdHJpbmc6ICdzdHJpbmcnLFxuICBUZW1wbGF0ZTogJ3RlbXBsYXRlJyxcbiAgQ29tcG9uZW50OiAnY29tcG9uZW50J1xufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgSUNvbnRlbnRUeXBlID0gQ3VpVmFsdWVPZjx0eXBlb2YgQ29udGVudFR5cGU+O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjdWktZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy50ZW1wbGF0ZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGlhbG9nLnN0eWxlLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ3VpRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29udGV4dCA9IGluamVjdChDVUlfRElBTE9HX0NPTlRFWFQpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBDb250ZW50VHlwZSA9IENvbnRlbnRUeXBlO1xuXG4gIHByb3RlY3RlZCBjb250ZW50VHlwZTogSUNvbnRlbnRUeXBlID0gQ29udGVudFR5cGUuQ29tcG9uZW50O1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRCb2R5U2Nyb2xsSGlkaW5nKCk7XG4gICAgdGhpcy5pbml0Q29udGVudFR5cGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3lCb2R5U2Nyb2xsSGlkaW5nKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGNvbnRlbnRUZW1wbGF0ZVJlZigpOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dC5jb250ZW50IGFzIFRlbXBsYXRlUmVmPHVua25vd24+O1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBjb21wb25lbnRUeXBlKCk6IFR5cGU8dW5rbm93bj4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQuY29udGVudCBhcyBUeXBlPHVua25vd24+O1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uQ2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5jb250ZXh0LiRpbXBsaWNpdC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0Q29udGVudFR5cGUoKTogdm9pZCB7XG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuY29udGV4dC5jb250ZW50O1xuXG4gICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICBjYXNlICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpOlxuICAgICAgICB0aGlzLmNvbnRlbnRUeXBlID0gQ29udGVudFR5cGUuU3RyaW5nO1xuXG4gICAgICAgIHJldHVybjtcblxuICAgICAgY2FzZSAoY29udGVudCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKTpcbiAgICAgICAgdGhpcy5jb250ZW50VHlwZSA9IENvbnRlbnRUeXBlLlRlbXBsYXRlO1xuXG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRCb2R5U2Nyb2xsSGlkaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXN0cm95Qm9keVNjcm9sbEhpZGluZygpOiB2b2lkIHtcbiAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnJztcbiAgfVxufVxuIiwiPGhlYWRlciAqbmdJZj1cImNvbnRleHQubGFiZWxcIiBjbGFzcz1cImMtaGVhZGVyXCI+XG4gIDxoMiBjbGFzcz1cImMtaGVhZGluZ1wiPnt7IGNvbnRleHQubGFiZWwgfX08L2gyPlxuICA8YnV0dG9uXG4gICAgY3VpQnV0dG9uXG4gICAgYXBwZWFyYW5jZT1cImdob3N0XCJcbiAgICBpY29uPVwiY3VpSWNvblhcIlxuICAgIChjbGljayk9XCJvbkNsb3NlKClcIlxuICA+PC9idXR0b24+XG48L2hlYWRlcj5cbjxkaXZcbiAgW25nU3dpdGNoXT1cImNvbnRlbnRUeXBlXCJcbiAgY2xhc3M9XCLRgS1jb250ZW50XCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiQ29udGVudFR5cGUuU3RyaW5nXCI+XG4gICAge3sgY29udGV4dC5jb250ZW50IH19XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJDb250ZW50VHlwZS5UZW1wbGF0ZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50VGVtcGxhdGVSZWY7IGNvbnRleHQ6IGNvbnRleHRcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIkNvbnRlbnRUeXBlLkNvbXBvbmVudFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nQ29tcG9uZW50T3V0bGV0PVwiY29tcG9uZW50VHlwZVwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
@@ -863,13 +863,18 @@ const ContentType = {
863
863
  };
864
864
  class CuiDialogComponent {
865
865
  constructor() {
866
+ this.document = inject(DOCUMENT);
866
867
  this.context = inject(CUI_DIALOG_CONTEXT);
867
868
  this.ContentType = ContentType;
868
869
  this.contentType = ContentType.Component;
869
870
  }
870
871
  ngOnInit() {
872
+ this.initBodyScrollHiding();
871
873
  this.initContentType();
872
874
  }
875
+ ngOnDestroy() {
876
+ this.destroyBodyScrollHiding();
877
+ }
873
878
  get contentTemplateRef() {
874
879
  return this.context.content;
875
880
  }
@@ -890,12 +895,18 @@ class CuiDialogComponent {
890
895
  return;
891
896
  }
892
897
  }
898
+ initBodyScrollHiding() {
899
+ this.document.body.style.overflow = 'hidden';
900
+ }
901
+ destroyBodyScrollHiding() {
902
+ this.document.body.style.overflow = '';
903
+ }
893
904
  }
894
905
  CuiDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
895
- CuiDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiDialogComponent, selector: "cui-dialog", ngImport: i0, template: "<header *ngIf=\"context.label\" class=\"c-header\">\n <h2 class=\"c-heading\">{{ context.label }}</h2>\n <button\n cuiButton\n appearance=\"ghost\"\n icon=\"cuiIconX\"\n (click)=\"onClose()\"\n ></button>\n</header>\n<div\n [ngSwitch]=\"contentType\"\n class=\"\u0441-content\"\n>\n <ng-container *ngSwitchCase=\"ContentType.String\">\n {{ context.content }}\n </ng-container>\n <ng-container *ngSwitchCase=\"ContentType.Template\">\n <ng-container *ngTemplateOutlet=\"contentTemplateRef; context: context\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"ContentType.Component\">\n <ng-container *ngComponentOutlet=\"componentType\"></ng-container>\n </ng-container>\n</div>\n", styles: ["@charset \"UTF-8\";:host{box-shadow:0 2px 4px -1px #0000000f,0 4px 6px -1px #0000001a;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:12px;background:var(--cui-base-0);font-family:var(--cui-main-font)}.c-header{padding:24px 24px 16px;display:flex;justify-content:space-between;gap:8px}.c-heading{font-weight:500;font-size:20px;line-height:30px;min-height:36px;margin:0;overflow-wrap:anywhere}.\\441-content{padding:16px 24px}.c-footer{padding:16px 24px 24px}\n"], dependencies: [{ kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
906
+ CuiDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiDialogComponent, selector: "cui-dialog", ngImport: i0, template: "<header *ngIf=\"context.label\" class=\"c-header\">\n <h2 class=\"c-heading\">{{ context.label }}</h2>\n <button\n cuiButton\n appearance=\"ghost\"\n icon=\"cuiIconX\"\n (click)=\"onClose()\"\n ></button>\n</header>\n<div\n [ngSwitch]=\"contentType\"\n class=\"\u0441-content\"\n>\n <ng-container *ngSwitchCase=\"ContentType.String\">\n {{ context.content }}\n </ng-container>\n <ng-container *ngSwitchCase=\"ContentType.Template\">\n <ng-container *ngTemplateOutlet=\"contentTemplateRef; context: context\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"ContentType.Component\">\n <ng-container *ngComponentOutlet=\"componentType\"></ng-container>\n </ng-container>\n</div>\n", styles: ["@charset \"UTF-8\";:host{box-shadow:0 2px 4px -1px #0000000f,0 4px 6px -1px #0000001a;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:12px;background:var(--cui-base-0);font-family:var(--cui-main-font)}.c-header{padding:24px 24px 16px;display:flex;justify-content:space-between;gap:8px}.c-heading{font-weight:500;font-size:20px;line-height:30px;min-height:36px;margin:0;overflow-wrap:anywhere}.\\441-content{padding:16px 24px}\n"], dependencies: [{ kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
896
907
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiDialogComponent, decorators: [{
897
908
  type: Component,
898
- args: [{ selector: 'cui-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<header *ngIf=\"context.label\" class=\"c-header\">\n <h2 class=\"c-heading\">{{ context.label }}</h2>\n <button\n cuiButton\n appearance=\"ghost\"\n icon=\"cuiIconX\"\n (click)=\"onClose()\"\n ></button>\n</header>\n<div\n [ngSwitch]=\"contentType\"\n class=\"\u0441-content\"\n>\n <ng-container *ngSwitchCase=\"ContentType.String\">\n {{ context.content }}\n </ng-container>\n <ng-container *ngSwitchCase=\"ContentType.Template\">\n <ng-container *ngTemplateOutlet=\"contentTemplateRef; context: context\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"ContentType.Component\">\n <ng-container *ngComponentOutlet=\"componentType\"></ng-container>\n </ng-container>\n</div>\n", styles: ["@charset \"UTF-8\";:host{box-shadow:0 2px 4px -1px #0000000f,0 4px 6px -1px #0000001a;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:12px;background:var(--cui-base-0);font-family:var(--cui-main-font)}.c-header{padding:24px 24px 16px;display:flex;justify-content:space-between;gap:8px}.c-heading{font-weight:500;font-size:20px;line-height:30px;min-height:36px;margin:0;overflow-wrap:anywhere}.\\441-content{padding:16px 24px}.c-footer{padding:16px 24px 24px}\n"] }]
909
+ args: [{ selector: 'cui-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<header *ngIf=\"context.label\" class=\"c-header\">\n <h2 class=\"c-heading\">{{ context.label }}</h2>\n <button\n cuiButton\n appearance=\"ghost\"\n icon=\"cuiIconX\"\n (click)=\"onClose()\"\n ></button>\n</header>\n<div\n [ngSwitch]=\"contentType\"\n class=\"\u0441-content\"\n>\n <ng-container *ngSwitchCase=\"ContentType.String\">\n {{ context.content }}\n </ng-container>\n <ng-container *ngSwitchCase=\"ContentType.Template\">\n <ng-container *ngTemplateOutlet=\"contentTemplateRef; context: context\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"ContentType.Component\">\n <ng-container *ngComponentOutlet=\"componentType\"></ng-container>\n </ng-container>\n</div>\n", styles: ["@charset \"UTF-8\";:host{box-shadow:0 2px 4px -1px #0000000f,0 4px 6px -1px #0000001a;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:12px;background:var(--cui-base-0);font-family:var(--cui-main-font)}.c-header{padding:24px 24px 16px;display:flex;justify-content:space-between;gap:8px}.c-heading{font-weight:500;font-size:20px;line-height:30px;min-height:36px;margin:0;overflow-wrap:anywhere}.\\441-content{padding:16px 24px}\n"] }]
899
910
  }] });
900
911
 
901
912
  class CuiDialogsComponent {