@evotor-dev/ui-kit 8.0.0-beta.19 → 8.0.0-beta.20

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,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, Injectable, PLATFORM_ID, ɵstringify as _stringify, Directive, Input, EventEmitter, Output, HostListener, Optional, ViewContainerRef, TemplateRef, Inject, NgModule, CUSTOM_ELEMENTS_SCHEMA, inject, SecurityContext, Component, ChangeDetectionStrategy, HostBinding, Pipe, forwardRef, ViewChild, ViewEncapsulation, ContentChild, ElementRef, ComponentRef, Injector, ApplicationRef, ComponentFactoryResolver, Host, ContentChildren, ViewChildren } from '@angular/core';
2
+ import { InjectionToken, Injectable, PLATFORM_ID, ɵstringify as _stringify, Directive, Input, EventEmitter, Output, HostListener, Optional, ViewContainerRef, TemplateRef, Inject, NgModule, CUSTOM_ELEMENTS_SCHEMA, inject, SecurityContext, Component, ChangeDetectionStrategy, HostBinding, Pipe, forwardRef, ViewChild, ViewEncapsulation, ContentChild, ElementRef, ComponentRef, input, output, computed, viewChild, signal, ChangeDetectorRef, DestroyRef, EnvironmentInjector, NgZone, createComponent, Injector, ApplicationRef, ComponentFactoryResolver, Host, ContentChildren, ViewChildren } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
- import { isPlatformBrowser, CommonModule, AsyncPipe, NgClass, NgTemplateOutlet, NgIf, NgStyle, NgFor } from '@angular/common';
4
+ import { isPlatformBrowser, CommonModule, AsyncPipe, NgClass, NgTemplateOutlet, NgIf, NgStyle, Location, NgFor } from '@angular/common';
5
5
  import * as i1$2 from '@angular/forms';
6
6
  import { FormsModule, ReactiveFormsModule, UntypedFormControl, UntypedFormGroup, UntypedFormArray, NgControl, COMPOSITION_BUFFER_MODE, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
7
7
  import { NgxPageScrollModule } from 'ngx-page-scroll';
@@ -24,6 +24,7 @@ import flatpickr from 'flatpickr';
24
24
  import { IMaskDirective } from 'angular-imask';
25
25
  import { Key } from 'ts-keycode-enum';
26
26
  import { createPopper } from '@popperjs/core';
27
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
27
28
  import { __decorate } from 'tslib';
28
29
  import autobind from 'autobind-decorator';
29
30
  import bytes from 'bytes';
@@ -4140,116 +4141,15 @@ const EVO_SIDEBAR_CONFIG = new InjectionToken('EVO_SIDEBAR_CONFIG');
4140
4141
  // Sidebar Data
4141
4142
  const EVO_SIDEBAR_DATA = new InjectionToken('EVO_SIDEBAR_DATA');
4142
4143
 
4143
- var EvoSidebarCloseTargets;
4144
- (function (EvoSidebarCloseTargets) {
4145
- EvoSidebarCloseTargets["BACKGROUND"] = "background";
4146
- EvoSidebarCloseTargets["BUTTON"] = "button";
4147
- EvoSidebarCloseTargets["DEFAULT"] = "default";
4148
- EvoSidebarCloseTargets["ESC"] = "escape";
4149
- })(EvoSidebarCloseTargets || (EvoSidebarCloseTargets = {}));
4150
-
4151
- var EvoSidebarStates;
4152
- (function (EvoSidebarStates) {
4153
- EvoSidebarStates["HIDDEN"] = "hidden";
4154
- EvoSidebarStates["VISIBLE"] = "visible";
4155
- })(EvoSidebarStates || (EvoSidebarStates = {}));
4156
-
4157
- var EvoSidebarSizes;
4158
- (function (EvoSidebarSizes) {
4159
- EvoSidebarSizes["NORMAL"] = "normal";
4160
- EvoSidebarSizes["MIDDLE"] = "middle";
4161
- EvoSidebarSizes["LARGE"] = "large";
4162
- })(EvoSidebarSizes || (EvoSidebarSizes = {}));
4163
-
4164
- const SidebarInjectionToken = new InjectionToken('SidebarInjectionToken');
4165
-
4166
- class EvoSidebarFooterComponent {
4167
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: EvoSidebarFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4168
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: EvoSidebarFooterComponent, isStandalone: true, selector: "evo-sidebar-footer, [evo-sidebar-footer]", host: { classAttribute: "evo-sidebar__footer-wrapper" }, ngImport: i0, template: "<div class=\"evo-sidebar__footer\"><ng-content /></div>\n<!--\u0447\u0442\u043E\u0431\u044B :empty \u0440\u0430\u0431\u043E\u0442\u0430\u043B, \u043D\u0435 \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u0432\u043D\u0443\u0442\u0440\u0438 evo-sidebar__footer \u0432\u043E\u043E\u0431\u0449\u0435 \u043D\u0438\u0447\u0435\u0433\u043E, \u0434\u0430\u0436\u0435 \u043F\u0440\u043E\u0431\u0435\u043B\u0430-->\n", styles: [":host{--evo-sidebar-footer-padding-desktop: 24px;--evo-sidebar-footer-padding-tablet: 16px;--evo-sidebar-footer-padding-mobile: 30px;flex-shrink:0;margin-top:-8px;padding-top:8px;overflow:hidden}.evo-sidebar__footer{display:flex;flex-shrink:0;flex-direction:column;margin:0 15px;padding:var(--evo-sidebar-footer-padding-mobile) 0;background-color:#fff;border-top:solid 1px #C6C6C6}.evo-sidebar__footer:empty{display:none}@media (min-width: 768px){.evo-sidebar__footer{flex-direction:row;justify-content:space-between;margin:0 15px;padding:var(--evo-sidebar-footer-padding-tablet) 0}}@media (min-width: 992px){.evo-sidebar__footer{margin:0 32px;padding:var(--evo-sidebar-footer-padding-desktop) 0}}\n"] }); }
4169
- }
4170
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: EvoSidebarFooterComponent, decorators: [{
4171
- type: Component,
4172
- args: [{ selector: 'evo-sidebar-footer, [evo-sidebar-footer]', host: {
4173
- class: 'evo-sidebar__footer-wrapper',
4174
- }, standalone: true, template: "<div class=\"evo-sidebar__footer\"><ng-content /></div>\n<!--\u0447\u0442\u043E\u0431\u044B :empty \u0440\u0430\u0431\u043E\u0442\u0430\u043B, \u043D\u0435 \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u0432\u043D\u0443\u0442\u0440\u0438 evo-sidebar__footer \u0432\u043E\u043E\u0431\u0449\u0435 \u043D\u0438\u0447\u0435\u0433\u043E, \u0434\u0430\u0436\u0435 \u043F\u0440\u043E\u0431\u0435\u043B\u0430-->\n", styles: [":host{--evo-sidebar-footer-padding-desktop: 24px;--evo-sidebar-footer-padding-tablet: 16px;--evo-sidebar-footer-padding-mobile: 30px;flex-shrink:0;margin-top:-8px;padding-top:8px;overflow:hidden}.evo-sidebar__footer{display:flex;flex-shrink:0;flex-direction:column;margin:0 15px;padding:var(--evo-sidebar-footer-padding-mobile) 0;background-color:#fff;border-top:solid 1px #C6C6C6}.evo-sidebar__footer:empty{display:none}@media (min-width: 768px){.evo-sidebar__footer{flex-direction:row;justify-content:space-between;margin:0 15px;padding:var(--evo-sidebar-footer-padding-tablet) 0}}@media (min-width: 992px){.evo-sidebar__footer{margin:0 32px;padding:var(--evo-sidebar-footer-padding-desktop) 0}}\n"] }]
4175
- }] });
4176
-
4177
- class EvoSidebarContentComponent {
4178
- // eslint-disable-next-line
4179
- constructor(sidebar) {
4180
- this.sidebar = sidebar;
4181
- this.hostClass = 'evo-sidebar__content';
4182
- }
4183
- ngOnInit() {
4184
- if (!this.sidebar) {
4185
- throw new Error(`EvoSidebarContentComponent must be used inside EvoSidebarComponent only!`);
4186
- }
4187
- this.relativeFooter = this.relativeFooter ?? this.sidebar.relativeFooter;
4188
- }
4189
- get hostClasses() {
4190
- return this.relativeFooter ? `${this.hostClass} evo-sidebar__content_relative-footer` : this.hostClass;
4191
- }
4192
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: EvoSidebarContentComponent, deps: [{ token: SidebarInjectionToken }], target: i0.ɵɵFactoryTarget.Component }); }
4193
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: EvoSidebarContentComponent, isStandalone: true, selector: "evo-sidebar-content, [evo-sidebar-content]", inputs: { relativeFooter: "relativeFooter" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<ng-content />\n", styles: [":host{display:flex;flex-grow:1;flex-direction:column;padding:24px 15px;overflow-y:auto;-webkit-overflow-scrolling:touch}@media (min-width: 768px){:host{padding:40px 15px}}@media (min-width: 992px){:host{padding:40px 32px}}:host(.evo-sidebar__content_relative-footer){flex-grow:0}\n"] }); }
4194
- }
4195
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: EvoSidebarContentComponent, decorators: [{
4196
- type: Component,
4197
- args: [{ selector: 'evo-sidebar-content, [evo-sidebar-content]', standalone: true, template: "<ng-content />\n", styles: [":host{display:flex;flex-grow:1;flex-direction:column;padding:24px 15px;overflow-y:auto;-webkit-overflow-scrolling:touch}@media (min-width: 768px){:host{padding:40px 15px}}@media (min-width: 992px){:host{padding:40px 32px}}:host(.evo-sidebar__content_relative-footer){flex-grow:0}\n"] }]
4198
- }], ctorParameters: () => [{ type: undefined, decorators: [{
4199
- type: Inject,
4200
- args: [SidebarInjectionToken]
4201
- }] }], propDecorators: { relativeFooter: [{
4202
- type: Input
4203
- }], hostClasses: [{
4204
- type: HostBinding,
4205
- args: ['class']
4206
- }] } });
4207
-
4208
- class EvoSidebarHeaderComponent {
4209
- // eslint-disable-next-line
4210
- constructor(sidebar) {
4211
- this.sidebar = sidebar;
4212
- this.back = new EventEmitter();
4213
- }
4214
- ngOnInit() {
4215
- if (!this.sidebar) {
4216
- throw new Error(`EvoSidebarHeaderComponent must be used inside EvoSidebarComponent only!`);
4217
- }
4218
- this.backButton = this.backButton ?? this.sidebar.backButton;
4219
- }
4220
- handleBackClick() {
4221
- this.back.emit();
4222
- }
4223
- closeSidebar() {
4224
- this.sidebar.closeSidebar(EvoSidebarCloseTargets.BUTTON);
4225
- }
4226
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: EvoSidebarHeaderComponent, deps: [{ token: SidebarInjectionToken }], target: i0.ɵɵFactoryTarget.Component }); }
4227
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.10", type: EvoSidebarHeaderComponent, isStandalone: true, selector: "evo-sidebar-header, [evo-sidebar-header]", inputs: { backButton: "backButton" }, outputs: { back: "back" }, host: { classAttribute: "evo-sidebar__header" }, ngImport: i0, template: "@if (backButton) {\n <div class=\"evo-sidebar__back\" (click)=\"handleBackClick()\">\n <evo-icon shape=\"chevron-left\" class=\"evo-sidebar__icon\" />\n </div>\n}\n\n<div class=\"evo-sidebar__title\">\n <ng-content />\n</div>\n\n<div class=\"evo-sidebar__close\" (click)=\"closeSidebar()\">\n <evo-icon shape=\"close\" class=\"evo-sidebar__icon\" />\n</div>\n", styles: [":host{display:flex;flex-shrink:0;align-items:flex-start;margin:0 15px;padding:16px 0;border-bottom:solid 1px #C6C6C6}@media (min-width: 768px){:host{padding-top:32px;padding-bottom:16px}}@media (min-width: 992px){:host{margin:0 32px}}.evo-sidebar__title{flex:1;color:#212121;font-weight:700;font-size:24px;font-family:var(--evo-font-secondary);line-height:32px}@media (min-width: 768px){.evo-sidebar__title{font-size:30px;line-height:38px}}.evo-sidebar__close{flex-shrink:0;margin-left:8px;padding:0;color:#231f20;cursor:pointer;transition:opacity .3s}.evo-sidebar__close:hover{opacity:.8}.evo-sidebar__icon{display:block;width:32px;height:32px;vertical-align:bottom;fill:#91b1b8}@media (min-width: 768px){.evo-sidebar__icon{width:36px;height:36px}}.evo-sidebar__back{flex-shrink:0;margin-right:8px;color:#231f20;cursor:pointer;-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "component", type: EvoIconComponent, selector: "evo-icon", inputs: ["shape", "svgWidth", "svgHeight", "svgViewBox"] }] }); }
4228
- }
4229
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: EvoSidebarHeaderComponent, decorators: [{
4230
- type: Component,
4231
- args: [{ selector: 'evo-sidebar-header, [evo-sidebar-header]', host: {
4232
- class: 'evo-sidebar__header',
4233
- }, standalone: true, imports: [EvoIconComponent], template: "@if (backButton) {\n <div class=\"evo-sidebar__back\" (click)=\"handleBackClick()\">\n <evo-icon shape=\"chevron-left\" class=\"evo-sidebar__icon\" />\n </div>\n}\n\n<div class=\"evo-sidebar__title\">\n <ng-content />\n</div>\n\n<div class=\"evo-sidebar__close\" (click)=\"closeSidebar()\">\n <evo-icon shape=\"close\" class=\"evo-sidebar__icon\" />\n</div>\n", styles: [":host{display:flex;flex-shrink:0;align-items:flex-start;margin:0 15px;padding:16px 0;border-bottom:solid 1px #C6C6C6}@media (min-width: 768px){:host{padding-top:32px;padding-bottom:16px}}@media (min-width: 992px){:host{margin:0 32px}}.evo-sidebar__title{flex:1;color:#212121;font-weight:700;font-size:24px;font-family:var(--evo-font-secondary);line-height:32px}@media (min-width: 768px){.evo-sidebar__title{font-size:30px;line-height:38px}}.evo-sidebar__close{flex-shrink:0;margin-left:8px;padding:0;color:#231f20;cursor:pointer;transition:opacity .3s}.evo-sidebar__close:hover{opacity:.8}.evo-sidebar__icon{display:block;width:32px;height:32px;vertical-align:bottom;fill:#91b1b8}@media (min-width: 768px){.evo-sidebar__icon{width:36px;height:36px}}.evo-sidebar__back{flex-shrink:0;margin-right:8px;color:#231f20;cursor:pointer;-webkit-user-select:none;user-select:none}\n"] }]
4234
- }], ctorParameters: () => [{ type: undefined, decorators: [{
4235
- type: Inject,
4236
- args: [SidebarInjectionToken]
4237
- }] }], propDecorators: { backButton: [{
4238
- type: Input
4239
- }], back: [{
4240
- type: Output
4241
- }] } });
4242
-
4243
4144
  class EvoSidebarService {
4244
- constructor(portal, // EvoSidebarPortal provided
4245
- _config) {
4246
- this.portal = portal;
4247
- this._config = _config;
4145
+ constructor() {
4146
+ this.portal = inject(EvoAbstractPortal); // EvoSidebarPortal provided
4147
+ this._config = inject(EVO_SIDEBAR_CONFIG, { optional: true });
4248
4148
  this.sidebarEvents$ = new Subject();
4249
4149
  this.registeredSidebars = {};
4250
4150
  this.config = {
4251
4151
  ...evoSidebarDefaultConfig,
4252
- ..._config,
4152
+ ...this._config,
4253
4153
  };
4254
4154
  }
4255
4155
  deregister(id) {
@@ -4326,96 +4226,186 @@ class EvoSidebarService {
4326
4226
  },
4327
4227
  };
4328
4228
  }
4329
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: EvoSidebarService, deps: [{ token: EvoAbstractPortal }, { token: EVO_SIDEBAR_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
4229
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: EvoSidebarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4330
4230
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: EvoSidebarService }); }
4331
4231
  }
4332
4232
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: EvoSidebarService, decorators: [{
4333
4233
  type: Injectable
4334
- }], ctorParameters: () => [{ type: EvoAbstractPortal }, { type: undefined, decorators: [{
4335
- type: Optional
4336
- }, {
4234
+ }] });
4235
+
4236
+ var EvoSidebarCloseTargets;
4237
+ (function (EvoSidebarCloseTargets) {
4238
+ EvoSidebarCloseTargets["BACKGROUND"] = "background";
4239
+ EvoSidebarCloseTargets["BUTTON"] = "button";
4240
+ EvoSidebarCloseTargets["DEFAULT"] = "default";
4241
+ EvoSidebarCloseTargets["ESC"] = "escape";
4242
+ })(EvoSidebarCloseTargets || (EvoSidebarCloseTargets = {}));
4243
+
4244
+ var EvoSidebarStates;
4245
+ (function (EvoSidebarStates) {
4246
+ EvoSidebarStates["HIDDEN"] = "hidden";
4247
+ EvoSidebarStates["VISIBLE"] = "visible";
4248
+ })(EvoSidebarStates || (EvoSidebarStates = {}));
4249
+
4250
+ var EvoSidebarSizes;
4251
+ (function (EvoSidebarSizes) {
4252
+ EvoSidebarSizes["NORMAL"] = "normal";
4253
+ EvoSidebarSizes["MIDDLE"] = "middle";
4254
+ EvoSidebarSizes["LARGE"] = "large";
4255
+ })(EvoSidebarSizes || (EvoSidebarSizes = {}));
4256
+
4257
+ const SidebarInjectionToken = new InjectionToken('SidebarInjectionToken');
4258
+
4259
+ class EvoSidebarFooterComponent {
4260
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: EvoSidebarFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4261
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: EvoSidebarFooterComponent, isStandalone: true, selector: "evo-sidebar-footer, [evo-sidebar-footer]", host: { classAttribute: "evo-sidebar__footer-wrapper" }, ngImport: i0, template: "<div class=\"evo-sidebar__footer\"><ng-content /></div>\n<!--\u0447\u0442\u043E\u0431\u044B :empty \u0440\u0430\u0431\u043E\u0442\u0430\u043B, \u043D\u0435 \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u0432\u043D\u0443\u0442\u0440\u0438 evo-sidebar__footer \u0432\u043E\u043E\u0431\u0449\u0435 \u043D\u0438\u0447\u0435\u0433\u043E, \u0434\u0430\u0436\u0435 \u043F\u0440\u043E\u0431\u0435\u043B\u0430-->\n", styles: [":host{--evo-sidebar-footer-padding-desktop: 24px;--evo-sidebar-footer-padding-tablet: 16px;--evo-sidebar-footer-padding-mobile: 30px;flex-shrink:0;margin-top:-8px;padding-top:8px;overflow:hidden}.evo-sidebar__footer{display:flex;flex-shrink:0;flex-direction:column;margin:0 15px;padding:var(--evo-sidebar-footer-padding-mobile) 0;background-color:#fff;border-top:solid 1px #C6C6C6}.evo-sidebar__footer:empty{display:none}@media (min-width: 768px){.evo-sidebar__footer{flex-direction:row;justify-content:space-between;margin:0 15px;padding:var(--evo-sidebar-footer-padding-tablet) 0}}@media (min-width: 992px){.evo-sidebar__footer{margin:0 32px;padding:var(--evo-sidebar-footer-padding-desktop) 0}}\n"] }); }
4262
+ }
4263
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: EvoSidebarFooterComponent, decorators: [{
4264
+ type: Component,
4265
+ args: [{ selector: 'evo-sidebar-footer, [evo-sidebar-footer]', host: {
4266
+ class: 'evo-sidebar__footer-wrapper',
4267
+ }, standalone: true, template: "<div class=\"evo-sidebar__footer\"><ng-content /></div>\n<!--\u0447\u0442\u043E\u0431\u044B :empty \u0440\u0430\u0431\u043E\u0442\u0430\u043B, \u043D\u0435 \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u0432\u043D\u0443\u0442\u0440\u0438 evo-sidebar__footer \u0432\u043E\u043E\u0431\u0449\u0435 \u043D\u0438\u0447\u0435\u0433\u043E, \u0434\u0430\u0436\u0435 \u043F\u0440\u043E\u0431\u0435\u043B\u0430-->\n", styles: [":host{--evo-sidebar-footer-padding-desktop: 24px;--evo-sidebar-footer-padding-tablet: 16px;--evo-sidebar-footer-padding-mobile: 30px;flex-shrink:0;margin-top:-8px;padding-top:8px;overflow:hidden}.evo-sidebar__footer{display:flex;flex-shrink:0;flex-direction:column;margin:0 15px;padding:var(--evo-sidebar-footer-padding-mobile) 0;background-color:#fff;border-top:solid 1px #C6C6C6}.evo-sidebar__footer:empty{display:none}@media (min-width: 768px){.evo-sidebar__footer{flex-direction:row;justify-content:space-between;margin:0 15px;padding:var(--evo-sidebar-footer-padding-tablet) 0}}@media (min-width: 992px){.evo-sidebar__footer{margin:0 32px;padding:var(--evo-sidebar-footer-padding-desktop) 0}}\n"] }]
4268
+ }] });
4269
+
4270
+ class EvoSidebarContentComponent {
4271
+ // eslint-disable-next-line
4272
+ constructor(sidebar) {
4273
+ this.sidebar = sidebar;
4274
+ this.hostClass = 'evo-sidebar__content';
4275
+ }
4276
+ ngOnInit() {
4277
+ if (!this.sidebar) {
4278
+ throw new Error(`EvoSidebarContentComponent must be used inside EvoSidebarComponent only!`);
4279
+ }
4280
+ this.relativeFooter = this.relativeFooter ?? this.sidebar.relativeFooter;
4281
+ }
4282
+ get hostClasses() {
4283
+ return this.relativeFooter ? `${this.hostClass} evo-sidebar__content_relative-footer` : this.hostClass;
4284
+ }
4285
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: EvoSidebarContentComponent, deps: [{ token: SidebarInjectionToken }], target: i0.ɵɵFactoryTarget.Component }); }
4286
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: EvoSidebarContentComponent, isStandalone: true, selector: "evo-sidebar-content, [evo-sidebar-content]", inputs: { relativeFooter: "relativeFooter" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<ng-content />\n", styles: [":host{display:flex;flex-grow:1;flex-direction:column;padding:24px 15px;overflow-y:auto;-webkit-overflow-scrolling:touch}@media (min-width: 768px){:host{padding:40px 15px}}@media (min-width: 992px){:host{padding:40px 32px}}:host(.evo-sidebar__content_relative-footer){flex-grow:0}\n"] }); }
4287
+ }
4288
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: EvoSidebarContentComponent, decorators: [{
4289
+ type: Component,
4290
+ args: [{ selector: 'evo-sidebar-content, [evo-sidebar-content]', standalone: true, template: "<ng-content />\n", styles: [":host{display:flex;flex-grow:1;flex-direction:column;padding:24px 15px;overflow-y:auto;-webkit-overflow-scrolling:touch}@media (min-width: 768px){:host{padding:40px 15px}}@media (min-width: 992px){:host{padding:40px 32px}}:host(.evo-sidebar__content_relative-footer){flex-grow:0}\n"] }]
4291
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
4337
4292
  type: Inject,
4338
- args: [EVO_SIDEBAR_CONFIG]
4339
- }] }] });
4293
+ args: [SidebarInjectionToken]
4294
+ }] }], propDecorators: { relativeFooter: [{
4295
+ type: Input
4296
+ }], hostClasses: [{
4297
+ type: HostBinding,
4298
+ args: ['class']
4299
+ }] } });
4300
+
4301
+ class EvoSidebarHeaderComponent {
4302
+ constructor() {
4303
+ this.backButton = input(false);
4304
+ this.back = output();
4305
+ this.computedBackButton = computed(() => this.backButton() || this.sidebar.backButton());
4306
+ this.sidebar = inject(SidebarInjectionToken);
4307
+ }
4308
+ ngOnInit() {
4309
+ if (!this.sidebar) {
4310
+ throw new Error(`EvoSidebarHeaderComponent must be used inside EvoSidebarComponent only!`);
4311
+ }
4312
+ }
4313
+ handleBackClick() {
4314
+ this.back.emit();
4315
+ }
4316
+ closeSidebar() {
4317
+ this.sidebar.closeSidebar(EvoSidebarCloseTargets.BUTTON);
4318
+ }
4319
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: EvoSidebarHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4320
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.10", type: EvoSidebarHeaderComponent, isStandalone: true, selector: "evo-sidebar-header, [evo-sidebar-header]", inputs: { backButton: { classPropertyName: "backButton", publicName: "backButton", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { back: "back" }, host: { classAttribute: "evo-sidebar__header" }, ngImport: i0, template: "@if (computedBackButton()) {\n <div class=\"evo-sidebar__back\" (click)=\"handleBackClick()\">\n <evo-icon shape=\"chevron-left\" class=\"evo-sidebar__icon\" />\n </div>\n}\n\n<div class=\"evo-sidebar__title\">\n <ng-content />\n</div>\n\n<div class=\"evo-sidebar__close\" (click)=\"closeSidebar()\">\n <evo-icon shape=\"close\" class=\"evo-sidebar__icon\" />\n</div>\n", styles: [":host{display:flex;flex-shrink:0;align-items:flex-start;margin:0 15px;padding:16px 0;border-bottom:solid 1px #C6C6C6}@media (min-width: 768px){:host{padding-top:32px;padding-bottom:16px}}@media (min-width: 992px){:host{margin:0 32px}}.evo-sidebar__title{flex:1;color:#212121;font-weight:700;font-size:24px;font-family:var(--evo-font-secondary);line-height:32px}@media (min-width: 768px){.evo-sidebar__title{font-size:30px;line-height:38px}}.evo-sidebar__close{flex-shrink:0;margin-left:8px;padding:0;color:#231f20;cursor:pointer;transition:opacity .3s}.evo-sidebar__close:hover{opacity:.8}.evo-sidebar__icon{display:block;width:32px;height:32px;vertical-align:bottom;fill:#91b1b8}@media (min-width: 768px){.evo-sidebar__icon{width:36px;height:36px}}.evo-sidebar__back{flex-shrink:0;margin-right:8px;color:#231f20;cursor:pointer;-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "component", type: EvoIconComponent, selector: "evo-icon", inputs: ["shape", "svgWidth", "svgHeight", "svgViewBox"] }] }); }
4321
+ }
4322
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: EvoSidebarHeaderComponent, decorators: [{
4323
+ type: Component,
4324
+ args: [{ selector: 'evo-sidebar-header, [evo-sidebar-header]', host: {
4325
+ class: 'evo-sidebar__header',
4326
+ }, standalone: true, imports: [EvoIconComponent], template: "@if (computedBackButton()) {\n <div class=\"evo-sidebar__back\" (click)=\"handleBackClick()\">\n <evo-icon shape=\"chevron-left\" class=\"evo-sidebar__icon\" />\n </div>\n}\n\n<div class=\"evo-sidebar__title\">\n <ng-content />\n</div>\n\n<div class=\"evo-sidebar__close\" (click)=\"closeSidebar()\">\n <evo-icon shape=\"close\" class=\"evo-sidebar__icon\" />\n</div>\n", styles: [":host{display:flex;flex-shrink:0;align-items:flex-start;margin:0 15px;padding:16px 0;border-bottom:solid 1px #C6C6C6}@media (min-width: 768px){:host{padding-top:32px;padding-bottom:16px}}@media (min-width: 992px){:host{margin:0 32px}}.evo-sidebar__title{flex:1;color:#212121;font-weight:700;font-size:24px;font-family:var(--evo-font-secondary);line-height:32px}@media (min-width: 768px){.evo-sidebar__title{font-size:30px;line-height:38px}}.evo-sidebar__close{flex-shrink:0;margin-left:8px;padding:0;color:#231f20;cursor:pointer;transition:opacity .3s}.evo-sidebar__close:hover{opacity:.8}.evo-sidebar__icon{display:block;width:32px;height:32px;vertical-align:bottom;fill:#91b1b8}@media (min-width: 768px){.evo-sidebar__icon{width:36px;height:36px}}.evo-sidebar__back{flex-shrink:0;margin-right:8px;color:#231f20;cursor:pointer;-webkit-user-select:none;user-select:none}\n"] }]
4327
+ }] });
4340
4328
 
4341
- // eslint-disable-next-line:max-line-length
4342
4329
  class EvoSidebarComponent {
4343
- constructor(zone, location, componentFactoryResolver, sidebarService, cdr) {
4344
- this.zone = zone;
4345
- this.location = location;
4346
- this.componentFactoryResolver = componentFactoryResolver;
4347
- this.sidebarService = sidebarService;
4348
- this.cdr = cdr;
4349
- this.size = EvoSidebarSizes.NORMAL;
4350
- this.back = new EventEmitter();
4351
- this.isVisible = false;
4352
- this.isDynamicContent = false;
4330
+ constructor() {
4331
+ this.contentContainer = viewChild.required('sidebarContentContainer', { read: ViewContainerRef });
4332
+ this.backButton = input(false);
4333
+ this.id = input(evoSidebarRootId);
4334
+ this.header = input();
4335
+ this.size = input(EvoSidebarSizes.NORMAL);
4336
+ this.relativeFooter = input(false);
4337
+ this.back = output();
4353
4338
  this.closeTargets = EvoSidebarCloseTargets;
4354
- this.closeTarget = EvoSidebarCloseTargets.DEFAULT;
4355
- this.destroy$ = new Subject();
4339
+ this.computedSize = computed(() => this.localSize() || this.size());
4340
+ this.isDynamicContent = signal(false);
4341
+ this.isVisible = signal(false);
4342
+ this.localSize = signal(null);
4343
+ this.totalClasses = computed(() => {
4344
+ const classes = [];
4345
+ if (this.isVisible()) {
4346
+ classes.push(EvoSidebarStates.VISIBLE);
4347
+ }
4348
+ classes.push(this.computedSize() ?? EvoSidebarSizes.NORMAL);
4349
+ return classes;
4350
+ });
4351
+ this.closeTarget = signal(EvoSidebarCloseTargets.DEFAULT);
4352
+ this.cdr = inject(ChangeDetectorRef);
4353
+ this.destroyRef = inject(DestroyRef);
4354
+ this.environmentInjector = inject(EnvironmentInjector);
4355
+ this.location = inject(Location);
4356
+ this.sidebarService = inject(EvoSidebarService);
4357
+ this.zone = inject(NgZone);
4356
4358
  }
4357
4359
  ngOnDestroy() {
4358
4360
  this.clearView();
4359
- this.sidebarService.deregister(this.id);
4361
+ this.sidebarService.deregister(this.id());
4360
4362
  this.locationSubscription?.unsubscribe();
4361
- this.destroy$.next();
4362
- this.destroy$.complete();
4363
4363
  }
4364
4364
  ngOnInit() {
4365
- if (!this.id) {
4366
- this.id = evoSidebarRootId;
4367
- }
4368
- this.sidebarService.register(this.id);
4365
+ this.sidebarService.register(this.id());
4369
4366
  this.sidebarService
4370
- .getEventsSubscription(this.id, true)
4367
+ .getEventsSubscription(this.id(), true)
4371
4368
  .pipe(
4372
4369
  // async hack to avoid "Expression has changed after it was checked" error
4373
- delay(0), takeUntil(this.destroy$))
4370
+ delay(0), takeUntilDestroyed(this.destroyRef))
4374
4371
  .subscribe((sidebarState) => {
4375
4372
  const { isOpen, params } = sidebarState;
4376
4373
  if (isOpen) {
4377
4374
  this.subscribeToKeyEvent();
4378
4375
  }
4379
4376
  else {
4380
- this.closeTarget = EvoSidebarCloseTargets.DEFAULT;
4377
+ this.closeTarget.set(EvoSidebarCloseTargets.DEFAULT);
4381
4378
  }
4382
4379
  // Dynamic content strategy
4383
4380
  if (isOpen && params?.component) {
4384
- const { component, closeOnNavigation, size, data } = params;
4385
- this.isDynamicContent = true;
4386
- this.insertComponent(component, data);
4381
+ const { component, closeOnNavigation, size } = params;
4382
+ this.isDynamicContent.set(true);
4383
+ this.clearView();
4384
+ this.insertComponent(component, params);
4387
4385
  if (size) {
4388
- this.size = size;
4386
+ this.localSize.set(size);
4389
4387
  }
4390
4388
  if (!this.locationSubscription && closeOnNavigation !== false) {
4391
4389
  this.closeOnLocationUpdates();
4392
4390
  }
4393
4391
  }
4394
- this.isVisible = isOpen;
4392
+ this.isVisible.set(isOpen);
4395
4393
  this.cdr.markForCheck();
4396
4394
  });
4397
4395
  }
4398
4396
  get currentState() {
4399
- return this.isVisible ? EvoSidebarStates.VISIBLE : EvoSidebarStates.HIDDEN;
4400
- }
4401
- get totalClasses() {
4402
- const classes = [];
4403
- if (this.isVisible) {
4404
- classes.push(EvoSidebarStates.VISIBLE);
4405
- }
4406
- classes.push(this.size ?? EvoSidebarSizes.NORMAL);
4407
- return classes;
4397
+ return this.isVisible() ? EvoSidebarStates.VISIBLE : EvoSidebarStates.HIDDEN;
4408
4398
  }
4409
4399
  closeSidebar(source) {
4410
- this.isVisible = false;
4411
- this.closeTarget = source;
4400
+ this.isVisible.set(false);
4401
+ this.closeTarget.set(source);
4412
4402
  }
4413
4403
  handleAnimationDone(event) {
4414
4404
  const isClosed = event.fromState === EvoSidebarStates.VISIBLE;
4415
- if (isClosed && !this.isVisible) {
4416
- this.sidebarService.close(this.id, { closeTarget: this.closeTarget });
4405
+ if (isClosed && !this.isVisible()) {
4406
+ this.sidebarService.close(this.id(), { closeTarget: this.closeTarget() });
4417
4407
  this.clearView();
4418
- if (this.id === evoSidebarRootId) {
4408
+ if (this.id() === evoSidebarRootId) {
4419
4409
  this.sidebarService.deregister(evoSidebarRootId);
4420
4410
  this.sidebarService.cleanupDefaultHost();
4421
4411
  }
@@ -4427,42 +4417,38 @@ class EvoSidebarComponent {
4427
4417
  subscribeToKeyEvent() {
4428
4418
  this.zone.runOutsideAngular(() => {
4429
4419
  fromEvent(document.body, 'keyup')
4430
- .pipe(takeWhile(() => this.isVisible), filter((event) => event.code === 'Escape'), enterZone(this.zone), tap(() => this.closeSidebar(EvoSidebarCloseTargets.ESC)))
4420
+ .pipe(takeWhile(() => this.isVisible()), filter((event) => event.code === 'Escape'), enterZone(this.zone), tap(() => this.closeSidebar(EvoSidebarCloseTargets.ESC)))
4431
4421
  .subscribe();
4432
4422
  });
4433
4423
  }
4434
4424
  // eslint-disable-next-line
4435
- insertComponent(component, data) {
4436
- this.clearView();
4437
- const componentFactory = this.componentFactoryResolver.resolveComponentFactory(component);
4438
- const injector = Injector.create({
4439
- providers: [
4440
- {
4441
- provide: EVO_SIDEBAR_DATA,
4442
- useValue: data,
4443
- },
4444
- {
4445
- provide: SidebarInjectionToken,
4446
- useValue: this,
4447
- },
4448
- ],
4425
+ insertComponent(component, { data, injector }) {
4426
+ const dynamicComponentRef = createComponent(component, {
4427
+ environmentInjector: this.environmentInjector,
4428
+ elementInjector: Injector.create({
4429
+ providers: [
4430
+ {
4431
+ provide: EVO_SIDEBAR_DATA,
4432
+ useValue: data,
4433
+ },
4434
+ {
4435
+ provide: SidebarInjectionToken,
4436
+ useValue: this,
4437
+ },
4438
+ ],
4439
+ parent: injector,
4440
+ }),
4449
4441
  });
4450
- this.dynamicComponentRef = this.contentContainer.createComponent(componentFactory, 0, injector);
4442
+ this.contentContainer().insert(dynamicComponentRef.hostView);
4451
4443
  }
4452
4444
  clearView() {
4453
- if (!this.dynamicComponentRef) {
4454
- return;
4455
- }
4456
- this.contentContainer.clear();
4457
- this.dynamicComponentRef = null;
4445
+ this.contentContainer().clear();
4458
4446
  }
4459
4447
  closeOnLocationUpdates() {
4460
- this.locationSubscription = this.location.subscribe(() => {
4461
- this.closeSidebar(EvoSidebarCloseTargets.DEFAULT);
4462
- });
4448
+ this.locationSubscription = this.location.subscribe(() => this.closeSidebar(EvoSidebarCloseTargets.DEFAULT));
4463
4449
  }
4464
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: EvoSidebarComponent, deps: [{ token: i0.NgZone }, { token: i1.Location }, { token: i0.ComponentFactoryResolver }, { token: EvoSidebarService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
4465
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.10", type: EvoSidebarComponent, isStandalone: true, selector: "evo-sidebar", inputs: { backButton: "backButton", id: "id", header: "header", size: "size", relativeFooter: "relativeFooter" }, outputs: { back: "back" }, viewQueries: [{ propertyName: "contentContainer", first: true, predicate: ["sidebarContentContainer"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "@if (isVisible) {\n <div class=\"evo-sidebar__background\" (click)=\"closeSidebar(closeTargets.BACKGROUND)\"></div>\n}\n\n<div class=\"evo-sidebar\" [@open]=\"currentState\" [evoUiClass]=\"totalClasses\" (@open.done)=\"handleAnimationDone($event)\">\n <ng-template #sidebarContentContainer />\n\n @if (!isDynamicContent) {\n <div evo-sidebar-header [backButton]=\"backButton\" (back)=\"handleBackClick()\">\n {{ header }}\n </div>\n <div evo-sidebar-content [relativeFooter]=\"relativeFooter\">\n <ng-content select=\"[content]\" />\n </div>\n <div evo-sidebar-footer>\n <ng-content select=\"[footer]\" />\n </div>\n }\n</div>\n", styles: [".evo-sidebar{position:fixed;top:0;right:0;z-index:3000;display:flex;flex-direction:column;width:100%;height:100%;background-color:#fff;transform:translate(100vw);transition:box-shadow .1s .5s}.evo-sidebar_visible{box-shadow:0 8px 10px #00000024,0 3px 14px #0000001f;transition-delay:unset}@media (min-width: 992px){.evo-sidebar_normal{width:674px;transform:translate(674px)}}@media (min-width: 992px){.evo-sidebar_middle{width:995px;transform:translate(100%)}}@media (min-width: 992px){.evo-sidebar_large{width:80%;transform:translate(100%)}}.evo-sidebar__background{position:fixed;inset:0;z-index:1000;background-color:#000;opacity:.3}\n"], dependencies: [{ kind: "directive", type: EvoUiClassDirective, selector: "[evoUiClass]", inputs: ["class", "evoUiClass"] }, { kind: "component", type: EvoSidebarHeaderComponent, selector: "evo-sidebar-header, [evo-sidebar-header]", inputs: ["backButton"], outputs: ["back"] }, { kind: "component", type: EvoSidebarContentComponent, selector: "evo-sidebar-content, [evo-sidebar-content]", inputs: ["relativeFooter"] }, { kind: "component", type: EvoSidebarFooterComponent, selector: "evo-sidebar-footer, [evo-sidebar-footer]" }], viewProviders: [
4450
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: EvoSidebarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4451
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.10", type: EvoSidebarComponent, isStandalone: true, selector: "evo-sidebar", inputs: { backButton: { classPropertyName: "backButton", publicName: "backButton", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, header: { classPropertyName: "header", publicName: "header", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, relativeFooter: { classPropertyName: "relativeFooter", publicName: "relativeFooter", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { back: "back" }, viewQueries: [{ propertyName: "contentContainer", first: true, predicate: ["sidebarContentContainer"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: "@if (isVisible()) {\n <div class=\"evo-sidebar__background\" (click)=\"closeSidebar(closeTargets.BACKGROUND)\"></div>\n}\n\n<div class=\"evo-sidebar\" [@open]=\"currentState\" [evoUiClass]=\"totalClasses()\" (@open.done)=\"handleAnimationDone($event)\">\n <ng-template #sidebarContentContainer />\n @if (!isDynamicContent()) {\n <div evo-sidebar-header [backButton]=\"backButton()\" (back)=\"handleBackClick()\">\n {{ header() }}\n </div>\n <div evo-sidebar-content [relativeFooter]=\"relativeFooter()\">\n <ng-content select=\"[content]\" />\n </div>\n <div evo-sidebar-footer>\n <ng-content select=\"[footer]\" />\n </div>\n }\n</div>\n", styles: [".evo-sidebar{position:fixed;top:0;right:0;z-index:3000;display:flex;flex-direction:column;width:100%;height:100%;background-color:#fff;transform:translate(100vw);transition:box-shadow .1s .5s}.evo-sidebar_visible{box-shadow:0 8px 10px #00000024,0 3px 14px #0000001f;transition-delay:unset}@media (min-width: 992px){.evo-sidebar_normal{width:674px;transform:translate(674px)}}@media (min-width: 992px){.evo-sidebar_middle{width:995px;transform:translate(100%)}}@media (min-width: 992px){.evo-sidebar_large{width:80%;transform:translate(100%)}}.evo-sidebar__background{position:fixed;inset:0;z-index:1000;background-color:#000;opacity:.3}\n"], dependencies: [{ kind: "directive", type: EvoUiClassDirective, selector: "[evoUiClass]", inputs: ["class", "evoUiClass"] }, { kind: "component", type: EvoSidebarHeaderComponent, selector: "evo-sidebar-header, [evo-sidebar-header]", inputs: ["backButton"], outputs: ["back"] }, { kind: "component", type: EvoSidebarContentComponent, selector: "evo-sidebar-content, [evo-sidebar-content]", inputs: ["relativeFooter"] }, { kind: "component", type: EvoSidebarFooterComponent, selector: "evo-sidebar-footer, [evo-sidebar-footer]" }], viewProviders: [
4466
4452
  {
4467
4453
  provide: SidebarInjectionToken,
4468
4454
  useExisting: forwardRef(() => EvoSidebarComponent),
@@ -4476,23 +4462,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
4476
4462
  provide: SidebarInjectionToken,
4477
4463
  useExisting: forwardRef(() => EvoSidebarComponent),
4478
4464
  },
4479
- ], standalone: true, imports: [EvoUiClassDirective, EvoSidebarHeaderComponent, EvoSidebarContentComponent, EvoSidebarFooterComponent], template: "@if (isVisible) {\n <div class=\"evo-sidebar__background\" (click)=\"closeSidebar(closeTargets.BACKGROUND)\"></div>\n}\n\n<div class=\"evo-sidebar\" [@open]=\"currentState\" [evoUiClass]=\"totalClasses\" (@open.done)=\"handleAnimationDone($event)\">\n <ng-template #sidebarContentContainer />\n\n @if (!isDynamicContent) {\n <div evo-sidebar-header [backButton]=\"backButton\" (back)=\"handleBackClick()\">\n {{ header }}\n </div>\n <div evo-sidebar-content [relativeFooter]=\"relativeFooter\">\n <ng-content select=\"[content]\" />\n </div>\n <div evo-sidebar-footer>\n <ng-content select=\"[footer]\" />\n </div>\n }\n</div>\n", styles: [".evo-sidebar{position:fixed;top:0;right:0;z-index:3000;display:flex;flex-direction:column;width:100%;height:100%;background-color:#fff;transform:translate(100vw);transition:box-shadow .1s .5s}.evo-sidebar_visible{box-shadow:0 8px 10px #00000024,0 3px 14px #0000001f;transition-delay:unset}@media (min-width: 992px){.evo-sidebar_normal{width:674px;transform:translate(674px)}}@media (min-width: 992px){.evo-sidebar_middle{width:995px;transform:translate(100%)}}@media (min-width: 992px){.evo-sidebar_large{width:80%;transform:translate(100%)}}.evo-sidebar__background{position:fixed;inset:0;z-index:1000;background-color:#000;opacity:.3}\n"] }]
4480
- }], ctorParameters: () => [{ type: i0.NgZone }, { type: i1.Location }, { type: i0.ComponentFactoryResolver }, { type: EvoSidebarService }, { type: i0.ChangeDetectorRef }], propDecorators: { contentContainer: [{
4481
- type: ViewChild,
4482
- args: ['sidebarContentContainer', { read: ViewContainerRef }]
4483
- }], backButton: [{
4484
- type: Input
4485
- }], id: [{
4486
- type: Input
4487
- }], header: [{
4488
- type: Input
4489
- }], size: [{
4490
- type: Input
4491
- }], relativeFooter: [{
4492
- type: Input
4493
- }], back: [{
4494
- type: Output
4495
- }] } });
4465
+ ], standalone: true, imports: [
4466
+ EvoUiClassDirective,
4467
+ EvoSidebarHeaderComponent,
4468
+ EvoSidebarContentComponent,
4469
+ EvoSidebarFooterComponent,
4470
+ ], template: "@if (isVisible()) {\n <div class=\"evo-sidebar__background\" (click)=\"closeSidebar(closeTargets.BACKGROUND)\"></div>\n}\n\n<div class=\"evo-sidebar\" [@open]=\"currentState\" [evoUiClass]=\"totalClasses()\" (@open.done)=\"handleAnimationDone($event)\">\n <ng-template #sidebarContentContainer />\n @if (!isDynamicContent()) {\n <div evo-sidebar-header [backButton]=\"backButton()\" (back)=\"handleBackClick()\">\n {{ header() }}\n </div>\n <div evo-sidebar-content [relativeFooter]=\"relativeFooter()\">\n <ng-content select=\"[content]\" />\n </div>\n <div evo-sidebar-footer>\n <ng-content select=\"[footer]\" />\n </div>\n }\n</div>\n", styles: [".evo-sidebar{position:fixed;top:0;right:0;z-index:3000;display:flex;flex-direction:column;width:100%;height:100%;background-color:#fff;transform:translate(100vw);transition:box-shadow .1s .5s}.evo-sidebar_visible{box-shadow:0 8px 10px #00000024,0 3px 14px #0000001f;transition-delay:unset}@media (min-width: 992px){.evo-sidebar_normal{width:674px;transform:translate(674px)}}@media (min-width: 992px){.evo-sidebar_middle{width:995px;transform:translate(100%)}}@media (min-width: 992px){.evo-sidebar_large{width:80%;transform:translate(100%)}}.evo-sidebar__background{position:fixed;inset:0;z-index:1000;background-color:#000;opacity:.3}\n"] }]
4471
+ }] });
4496
4472
 
4497
4473
  class EvoSidebarPortal extends EvoPortalService {
4498
4474
  constructor(appRef, injector, cfr) {