@morozeckiy/dd-lib 0.7.0 → 0.7.36

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.
Files changed (57) hide show
  1. package/assets/scss/common.scss +5 -0
  2. package/assets/scss/titles.scss +22 -0
  3. package/assets/scss/vars-dark.scss +5 -1
  4. package/assets/scss/vars-light.scss +3 -0
  5. package/esm2022/lib/common/lib-common-button.mjs +6 -3
  6. package/esm2022/lib/common/lib-common-input-text.mjs +28 -2
  7. package/esm2022/lib/core/dialog/modal-base/modal-base.component.mjs +3 -3
  8. package/esm2022/lib/core/directives/drop-down-position.directive.mjs +66 -0
  9. package/esm2022/lib/core/directives/fixed-position.directive.mjs +88 -0
  10. package/esm2022/lib/core/directives/list-keyboard-navigation.directive.mjs +57 -0
  11. package/esm2022/lib/core/directives/phone-mask.directive.mjs +34 -0
  12. package/esm2022/lib/core/directives/selectable-item.directive.mjs +29 -0
  13. package/esm2022/lib/core/index.mjs +6 -1
  14. package/esm2022/lib/lib-calendar/lib-calendar.component.mjs +3 -3
  15. package/esm2022/lib/lib-card/lib-card.component.mjs +3 -3
  16. package/esm2022/lib/lib-checkbox/lib-checkbox.component.mjs +7 -5
  17. package/esm2022/lib/lib-date-input/lib-date-input.component.mjs +7 -5
  18. package/esm2022/lib/lib-date-range/lib-date-range.component.mjs +13 -9
  19. package/esm2022/lib/lib-disclaimer/lib-disclaimer.component.mjs +26 -0
  20. package/esm2022/lib/lib-filter-button/lib-filter-button.component.mjs +1 -1
  21. package/esm2022/lib/lib-input/lib-input.component.mjs +5 -5
  22. package/esm2022/lib/lib-loader/lib-loader.component.mjs +2 -2
  23. package/esm2022/lib/lib-period/lib-period.component.mjs +6 -4
  24. package/esm2022/lib/lib-radio/lib-radio.component.mjs +7 -5
  25. package/esm2022/lib/lib-search-input/lib-search-input.component.mjs +48 -13
  26. package/esm2022/lib/lib-select/lib-select.component.mjs +127 -39
  27. package/esm2022/lib/lib-skeleton/lib-skeleton.component.mjs +3 -3
  28. package/esm2022/lib/lib-tabs-fragment/lib-tabs-fragment.component.mjs +12 -6
  29. package/esm2022/lib/lib-textarea/lib-textarea.component.mjs +6 -3
  30. package/esm2022/public-api.mjs +2 -1
  31. package/fesm2022/morozeckiy-dd-lib.mjs +807 -352
  32. package/fesm2022/morozeckiy-dd-lib.mjs.map +1 -1
  33. package/lib/common/lib-common-button.d.ts +2 -1
  34. package/lib/common/lib-common-input-text.d.ts +8 -3
  35. package/lib/core/directives/drop-down-position.directive.d.ts +17 -0
  36. package/lib/core/directives/fixed-position.directive.d.ts +21 -0
  37. package/lib/core/directives/list-keyboard-navigation.directive.d.ts +11 -0
  38. package/lib/core/directives/phone-mask.directive.d.ts +10 -0
  39. package/lib/core/directives/selectable-item.directive.d.ts +10 -0
  40. package/lib/core/index.d.ts +5 -0
  41. package/lib/core/services/validators.service.d.ts +2 -2
  42. package/lib/lib-card/lib-card.component.d.ts +1 -1
  43. package/lib/lib-checkbox/lib-checkbox.component.d.ts +3 -1
  44. package/lib/lib-date-input/lib-date-input.component.d.ts +3 -1
  45. package/lib/lib-date-range/lib-date-range.component.d.ts +3 -1
  46. package/lib/lib-disclaimer/lib-disclaimer.component.d.ts +10 -0
  47. package/lib/lib-input/lib-input.component.d.ts +2 -1
  48. package/lib/lib-period/lib-period.component.d.ts +3 -2
  49. package/lib/lib-radio/lib-radio.component.d.ts +3 -1
  50. package/lib/lib-search-input/lib-search-input.component.d.ts +11 -6
  51. package/lib/lib-select/lib-select.component.d.ts +17 -7
  52. package/lib/lib-tabs-fragment/lib-tabs-fragment.component.d.ts +4 -2
  53. package/lib/lib-textarea/lib-textarea.component.d.ts +2 -1
  54. package/morozeckiy-dd-lib-0.7.36.tgz +0 -0
  55. package/package.json +1 -1
  56. package/public-api.d.ts +1 -0
  57. package/morozeckiy-dd-lib-0.7.0.tgz +0 -0
@@ -1,17 +1,17 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Component, Input, ViewChild, Output, forwardRef, ChangeDetectionStrategy, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA, Injectable, Inject, Pipe, Directive, HostListener, InjectionToken, TemplateRef, Injector, RendererStyleFlags2, Optional, ElementRef, Host, SkipSelf, signal } from '@angular/core';
2
+ import { EventEmitter, Component, Input, ViewChild, Output, Injectable, Inject, Pipe, Directive, HostListener, InjectionToken, TemplateRef, ChangeDetectionStrategy, Injector, forwardRef, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA, RendererStyleFlags2, Optional, ElementRef, Host, SkipSelf, signal } from '@angular/core';
3
3
  import * as i1$5 from '@angular/forms';
4
- import { NG_VALUE_ACCESSOR, FormsModule, Validators, ReactiveFormsModule } from '@angular/forms';
5
- import * as i1 from '@angular/common';
6
- import { CommonModule, DecimalPipe, AsyncPipe, DOCUMENT, NgTemplateOutlet, NgComponentOutlet, NgOptimizedImage, NgClass, NgStyle, JsonPipe } from '@angular/common';
4
+ import { Validators, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';
7
5
  import { BehaviorSubject, Subject, of, fromEvent, combineLatest } from 'rxjs';
8
6
  import { format, parse, isAfter, isBefore } from 'date-fns';
9
- import * as i1$2 from '@angular/common/http';
7
+ import * as i1$1 from '@angular/common/http';
10
8
  import { HttpErrorResponse, HttpHeaders, HttpParams } from '@angular/common/http';
11
9
  import { catchError, map, filter, takeUntil, tap, debounceTime, mergeMap, delay, switchMap } from 'rxjs/operators';
12
- import * as i1$1 from '@angular/router';
10
+ import * as i1 from '@angular/router';
13
11
  import { RouterLink } from '@angular/router';
14
- import * as i1$3 from '@angular/platform-browser';
12
+ import * as i1$2 from '@angular/platform-browser';
13
+ import * as i1$3 from '@angular/common';
14
+ import { DecimalPipe, CommonModule, AsyncPipe, DOCUMENT, NgTemplateOutlet, NgComponentOutlet, NgOptimizedImage, NgClass, NgStyle, JsonPipe } from '@angular/common';
15
15
  import { ComponentPortal, PortalInjector, CdkPortalOutlet, TemplatePortal } from '@angular/cdk/portal';
16
16
  import * as i1$4 from '@angular/cdk/overlay';
17
17
  import { OverlayModule, GlobalPositionStrategy } from '@angular/cdk/overlay';
@@ -27,13 +27,14 @@ class LibCommonButtonComponent {
27
27
  this.autofocus = false;
28
28
  this.btnColor = 'green';
29
29
  this.active = false;
30
+ this.activeNoBlock = true;
30
31
  this.disabled = false;
31
32
  this.showLoader = false;
32
33
  this.buttonType = 'button';
33
34
  this.clickEvent = new EventEmitter();
34
35
  }
35
36
  onClick(event) {
36
- if (this.disabled || this.showLoader || this.active) {
37
+ if (this.disabled || this.showLoader || (this.active && !this.activeNoBlock)) {
37
38
  event.stopPropagation();
38
39
  event.preventDefault();
39
40
  }
@@ -44,7 +45,7 @@ class LibCommonButtonComponent {
44
45
  }
45
46
  }
46
47
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibCommonButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
47
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: LibCommonButtonComponent, selector: "ng-component", inputs: { width: "width", height: "height", size: "size", fontSize: "fontSize", autofocus: "autofocus", btnColor: "btnColor", active: "active", disabled: "disabled", showLoader: "showLoader", buttonType: "buttonType" }, outputs: { clickEvent: "clickEvent" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["contentData"], descendants: true }, { propertyName: "button", first: true, predicate: ["btn"], descendants: true }], ngImport: i0, template: '', isInline: true }); }
48
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: LibCommonButtonComponent, selector: "ng-component", inputs: { width: "width", height: "height", size: "size", fontSize: "fontSize", autofocus: "autofocus", btnColor: "btnColor", active: "active", activeNoBlock: "activeNoBlock", disabled: "disabled", showLoader: "showLoader", buttonType: "buttonType" }, outputs: { clickEvent: "clickEvent" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["contentData"], descendants: true }, { propertyName: "button", first: true, predicate: ["btn"], descendants: true }], ngImport: i0, template: '', isInline: true }); }
48
49
  }
49
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibCommonButtonComponent, decorators: [{
50
51
  type: Component,
@@ -65,6 +66,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
65
66
  type: Input
66
67
  }], active: [{
67
68
  type: Input
69
+ }], activeNoBlock: [{
70
+ type: Input
68
71
  }], disabled: [{
69
72
  type: Input
70
73
  }], showLoader: [{
@@ -81,227 +84,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
81
84
  type: Output
82
85
  }] } });
83
86
 
84
- class LibCommonInputTextComponent {
85
- get id() {
86
- return this._ID;
87
- }
88
- constructor(changeDetection) {
89
- this.required = false;
90
- this.disabled = false;
91
- this.commitOnInput = true; // коммитить по input или по change
92
- this.clearable = true;
93
- this.showSelfError = true;
94
- this.uppercase = false;
95
- this.invalid = false;
96
- this.errorTexts = [];
97
- this.side = 'bottom';
98
- this.cleared = new EventEmitter();
99
- this.fetchEvent = new EventEmitter();
100
- this.focus = new EventEmitter();
101
- this.blur = new EventEmitter();
102
- this.fullBlur = new EventEmitter();
103
- this.focused = false;
104
- this.touched = false;
105
- this.value = '';
106
- this.destroyed = false;
107
- this._ID = '';
108
- this.changeDetection = changeDetection;
109
- }
110
- get invalidState() {
111
- return this.invalid || this.control ? this.control.invalid : false;
112
- }
113
- get showError() {
114
- if (!this.control) {
115
- return this.invalid;
116
- }
117
- const { dirty, touched } = this.control;
118
- return this.invalidState ? ((dirty || touched) && !this.focused) : false;
119
- }
120
- handleInput(_e) {
121
- if (this.commitOnInput) {
122
- this.commit(this.value);
123
- }
124
- }
125
- notifyFocusEvent(e) {
126
- // this.focusManager.notifyFocusMayChanged(this, e.type === 'focus');
127
- }
128
- handleBlur() {
129
- this.focused = false;
130
- if (this.onTouchedCallback) {
131
- this.onTouchedCallback();
132
- }
133
- this.blur.emit();
134
- this.changeDetection.detectChanges();
135
- }
136
- handleFocus() {
137
- this.focused = this.touched = true;
138
- if (this.onTouchedCallback) {
139
- this.onTouchedCallback();
140
- }
141
- this.focus.emit();
142
- }
143
- returnFocus(e) {
144
- if (this.inputElement &&
145
- this.inputElement.nativeElement &&
146
- (!e || e.target !== this.inputElement.nativeElement)) {
147
- this.inputElement.nativeElement.focus();
148
- // HelperService.resetSelection(this.inputElement.nativeElement);
149
- }
150
- }
151
- loseFocus() {
152
- this.inputElement?.nativeElement.blur();
153
- }
154
- forceChange() {
155
- if (this.inputElement) {
156
- // this.inputElement.nativeElement.dispatchEvent(HelperService.createEvent('change', true, false));
157
- }
158
- }
159
- registerOnChange(fn) {
160
- this.commit = fn;
161
- }
162
- registerOnTouched(fn) {
163
- this.onTouchedCallback = fn;
164
- }
165
- // public setDisabledState(isDisabled: boolean): void {
166
- // console.log(isDisabled)
167
- // this.disabled = isDisabled;
168
- // }
169
- handleChange() {
170
- if (!this.commitOnInput) {
171
- this.commit(this.value);
172
- }
173
- }
174
- commit(_value) { }
175
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibCommonInputTextComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
176
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: LibCommonInputTextComponent, selector: "dd-lib-common-input", inputs: { name: "name", label: "label", formControlName: "formControlName", type: "type", contextClass: "contextClass", minlength: "minlength", min: "min", maxlength: "maxlength", max: "max", placeholder: "placeholder", autocomplete: "autocomplete", tabIndex: "tabIndex", readOnly: "readOnly", autofocus: "autofocus", fetchMode: "fetchMode", required: "required", disabled: "disabled", commitOnInput: "commitOnInput", clearable: "clearable", showSelfError: "showSelfError", uppercase: "uppercase", invalid: "invalid", errorTexts: "errorTexts", side: "side" }, outputs: { cleared: "cleared", fetchEvent: "fetchEvent", focus: "focus", blur: "blur", fullBlur: "fullBlur" }, providers: [
177
- {
178
- provide: NG_VALUE_ACCESSOR,
179
- useExisting: forwardRef(() => LibCommonInputTextComponent),
180
- multi: true,
181
- },
182
- ], viewQueries: [{ propertyName: "inputSearchElement", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "inputElement", first: true, predicate: ["input"], descendants: true }, { propertyName: "textAreaElement", first: true, predicate: ["textarea"], descendants: true }], ngImport: i0, template: '', isInline: true }); }
183
- }
184
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibCommonInputTextComponent, decorators: [{
185
- type: Component,
186
- args: [{
187
- selector: 'dd-lib-common-input',
188
- template: '',
189
- providers: [
190
- {
191
- provide: NG_VALUE_ACCESSOR,
192
- useExisting: forwardRef(() => LibCommonInputTextComponent),
193
- multi: true,
194
- },
195
- ],
196
- }]
197
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { inputSearchElement: [{
198
- type: ViewChild,
199
- args: ['searchInput']
200
- }], inputElement: [{
201
- type: ViewChild,
202
- args: ['input']
203
- }], textAreaElement: [{
204
- type: ViewChild,
205
- args: ['textarea']
206
- }], name: [{
207
- type: Input
208
- }], label: [{
209
- type: Input
210
- }], formControlName: [{
211
- type: Input
212
- }], type: [{
213
- type: Input
214
- }], contextClass: [{
215
- type: Input
216
- }], minlength: [{
217
- type: Input
218
- }], min: [{
219
- type: Input
220
- }], maxlength: [{
221
- type: Input
222
- }], max: [{
223
- type: Input
224
- }], placeholder: [{
225
- type: Input
226
- }], autocomplete: [{
227
- type: Input
228
- }], tabIndex: [{
229
- type: Input
230
- }], readOnly: [{
231
- type: Input
232
- }], autofocus: [{
233
- type: Input
234
- }], fetchMode: [{
235
- type: Input
236
- }], required: [{
237
- type: Input
238
- }], disabled: [{
239
- type: Input
240
- }], commitOnInput: [{
241
- type: Input
242
- }], clearable: [{
243
- type: Input
244
- }], showSelfError: [{
245
- type: Input
246
- }], uppercase: [{
247
- type: Input
248
- }], invalid: [{
249
- type: Input
250
- }], errorTexts: [{
251
- type: Input
252
- }], side: [{
253
- type: Input
254
- }], cleared: [{
255
- type: Output
256
- }], fetchEvent: [{
257
- type: Output
258
- }], focus: [{
259
- type: Output
260
- }], blur: [{
261
- type: Output
262
- }], fullBlur: [{
263
- type: Output
264
- }] } });
265
-
266
- class LibLoaderComponent {
267
- constructor() {
268
- this.color = '#07b700';
269
- this.size = 'standard';
270
- }
271
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibLoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
272
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.2", type: LibLoaderComponent, isStandalone: true, selector: "dd-lib-loader", inputs: { color: ["color", "color", (value) => value ? value : '#07b700'], size: "size" }, ngImport: i0, template: "<div [class.big]=\"size === 'big'\" [class.giant]=\"size === 'giant'\" class=\"loader\">\n <svg fill=\"none\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\">\n <g clip-path=\"url(#clip0_728_22764)\">\n <path\n [attr.stroke]=\"color\"\n d=\"M12 6V3\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"1.7\" />\n <path\n [attr.stroke]=\"color\"\n d=\"M6 12H3\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\" />\n <path\n [attr.stroke]=\"color\"\n d=\"M7.74961 7.74961L5.59961 5.59961\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\" />\n </g>\n <defs>\n <clipPath id=\"clip0_728_22764\">\n <rect fill=\"white\" height=\"24\" width=\"24\" />\n </clipPath>\n </defs>\n </svg>\n</div>\n", styles: [":host{display:flex;align-items:center;width:100%;justify-content:center;overflow:hidden}.loader{width:24px;height:24px}.loader svg{animation:rotate 1.5s linear infinite}.loader.big{zoom:2}.loader.giant{zoom:4}@keyframes rotate{to{transform:rotate(360deg)}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
273
- }
274
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibLoaderComponent, decorators: [{
275
- type: Component,
276
- args: [{ selector: 'dd-lib-loader', standalone: true, imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [class.big]=\"size === 'big'\" [class.giant]=\"size === 'giant'\" class=\"loader\">\n <svg fill=\"none\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\">\n <g clip-path=\"url(#clip0_728_22764)\">\n <path\n [attr.stroke]=\"color\"\n d=\"M12 6V3\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"1.7\" />\n <path\n [attr.stroke]=\"color\"\n d=\"M6 12H3\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\" />\n <path\n [attr.stroke]=\"color\"\n d=\"M7.74961 7.74961L5.59961 5.59961\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\" />\n </g>\n <defs>\n <clipPath id=\"clip0_728_22764\">\n <rect fill=\"white\" height=\"24\" width=\"24\" />\n </clipPath>\n </defs>\n </svg>\n</div>\n", styles: [":host{display:flex;align-items:center;width:100%;justify-content:center;overflow:hidden}.loader{width:24px;height:24px}.loader svg{animation:rotate 1.5s linear infinite}.loader.big{zoom:2}.loader.giant{zoom:4}@keyframes rotate{to{transform:rotate(360deg)}}\n"] }]
277
- }], propDecorators: { color: [{
278
- type: Input,
279
- args: [{
280
- transform: (value) => value ? value : '#07b700'
281
- }]
282
- }], size: [{
283
- type: Input
284
- }] } });
285
-
286
- class LibButtonComponent extends LibCommonButtonComponent {
287
- ngAfterViewInit() {
288
- const btn = this.button?.nativeElement;
289
- if (btn && btn.attributes?.autofocus) {
290
- btn.focus();
291
- }
292
- }
293
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
294
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: LibButtonComponent, isStandalone: true, selector: "dd-lib-button", inputs: { noPadding: "noPadding", loaderColor: "loaderColor" }, usesInheritance: true, ngImport: i0, template: "<div (click)=\"onClick($event)\" [ngStyle]=\"{width, height}\" class=\"button-container\">\r\n <button\r\n #btn\r\n [attr.tabIndex]=\"disabled ? -1 : 0\"\r\n [autofocus]=\"autofocus\"\r\n [class.active]=\"active\"\r\n [class.disabled]=\"disabled || showLoader\"\r\n [class.green]=\"btnColor === 'green'\"\r\n [class.loader]=\"showLoader\"\r\n [class.no-padding]=\"noPadding\"\r\n [class.red]=\"btnColor === 'red'\"\r\n [class.transparent]=\"btnColor === 'transparent'\"\r\n [class.white]=\"btnColor === 'white'\"\r\n [class.dark]=\"btnColor === 'dark'\"\r\n [disabled]=\"disabled || showLoader\"\r\n [ngStyle]=\"{width, height}\"\r\n [type]=\"buttonType\"\r\n class=\"lib-button\"\r\n role=\"button\">\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n @if (showLoader) {\r\n <dd-lib-loader class=\"pos-absolute\" [color]=\"loaderColor\"></dd-lib-loader>\r\n }\r\n\r\n </button>\r\n</div>\r\n\r\n<ng-template #content>\r\n <span #contentData><ng-content></ng-content></span>\r\n</ng-template>\r\n", styles: [".button-container{display:inline-block}.button-container button{position:relative;display:flex;align-items:center;justify-content:center;height:40px;padding:0 32px;font-size:14px;line-height:24px;font-weight:var(--font-wheit-big);border-radius:12px;outline:none;cursor:pointer;white-space:nowrap;border:1px solid transparent;background-color:var(--btn-green-bgc);color:#fff}@media screen and (max-width: 840px){.button-container button{height:48px}}.button-container button:hover,.button-container button:focus{background-color:var(--btn-green-hover)}.button-container button:active,.button-container button.active{background-color:var(--btn-green-hover)}.button-container button.loader{min-width:100px}.button-container button.white{background-color:var(--btn-light-green-bgc);color:var(--btn-white-color)}.button-container button.white:hover{color:var(--btn-white-hover-color)}.button-container button.transparent{background-color:transparent;color:var(--btn-white-color);border-color:var(--gray-color-200)}.button-container button.transparent:hover{color:var(--btn-white-hover-color)}.button-container button.red{background-color:var(--btn-red-bgc);color:var(--btn-red-color)}.button-container button.red:hover{color:var(--btn-red-hover-color)}.button-container button.dark{background-color:var(--btn-dark-bgc);color:var(--btn-dark-color)}.button-container button.dark:hover{background-color:var(--btn-dark-hover-color)}.button-container button.no-padding{padding:0}.button-container button.disabled{color:var(--disabled-color);background-color:var(--btn-disabled-bgc);pointer-events:none;cursor:default}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: LibLoaderComponent, selector: "dd-lib-loader", inputs: ["color", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
295
- }
296
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibButtonComponent, decorators: [{
297
- type: Component,
298
- args: [{ selector: 'dd-lib-button', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, FormsModule, LibLoaderComponent], schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA], template: "<div (click)=\"onClick($event)\" [ngStyle]=\"{width, height}\" class=\"button-container\">\r\n <button\r\n #btn\r\n [attr.tabIndex]=\"disabled ? -1 : 0\"\r\n [autofocus]=\"autofocus\"\r\n [class.active]=\"active\"\r\n [class.disabled]=\"disabled || showLoader\"\r\n [class.green]=\"btnColor === 'green'\"\r\n [class.loader]=\"showLoader\"\r\n [class.no-padding]=\"noPadding\"\r\n [class.red]=\"btnColor === 'red'\"\r\n [class.transparent]=\"btnColor === 'transparent'\"\r\n [class.white]=\"btnColor === 'white'\"\r\n [class.dark]=\"btnColor === 'dark'\"\r\n [disabled]=\"disabled || showLoader\"\r\n [ngStyle]=\"{width, height}\"\r\n [type]=\"buttonType\"\r\n class=\"lib-button\"\r\n role=\"button\">\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n @if (showLoader) {\r\n <dd-lib-loader class=\"pos-absolute\" [color]=\"loaderColor\"></dd-lib-loader>\r\n }\r\n\r\n </button>\r\n</div>\r\n\r\n<ng-template #content>\r\n <span #contentData><ng-content></ng-content></span>\r\n</ng-template>\r\n", styles: [".button-container{display:inline-block}.button-container button{position:relative;display:flex;align-items:center;justify-content:center;height:40px;padding:0 32px;font-size:14px;line-height:24px;font-weight:var(--font-wheit-big);border-radius:12px;outline:none;cursor:pointer;white-space:nowrap;border:1px solid transparent;background-color:var(--btn-green-bgc);color:#fff}@media screen and (max-width: 840px){.button-container button{height:48px}}.button-container button:hover,.button-container button:focus{background-color:var(--btn-green-hover)}.button-container button:active,.button-container button.active{background-color:var(--btn-green-hover)}.button-container button.loader{min-width:100px}.button-container button.white{background-color:var(--btn-light-green-bgc);color:var(--btn-white-color)}.button-container button.white:hover{color:var(--btn-white-hover-color)}.button-container button.transparent{background-color:transparent;color:var(--btn-white-color);border-color:var(--gray-color-200)}.button-container button.transparent:hover{color:var(--btn-white-hover-color)}.button-container button.red{background-color:var(--btn-red-bgc);color:var(--btn-red-color)}.button-container button.red:hover{color:var(--btn-red-hover-color)}.button-container button.dark{background-color:var(--btn-dark-bgc);color:var(--btn-dark-color)}.button-container button.dark:hover{background-color:var(--btn-dark-hover-color)}.button-container button.no-padding{padding:0}.button-container button.disabled{color:var(--disabled-color);background-color:var(--btn-disabled-bgc);pointer-events:none;cursor:default}\n"] }]
299
- }], propDecorators: { noPadding: [{
300
- type: Input
301
- }], loaderColor: [{
302
- type: Input
303
- }] } });
304
-
305
87
  class ThemeConstructorService {
306
88
  get getTheme() {
307
89
  return this.themeConfigurator.theme;
@@ -536,12 +318,12 @@ class InterceptorsService {
536
318
  throw err;
537
319
  }));
538
320
  }
539
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: InterceptorsService, deps: [{ token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
321
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: InterceptorsService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
540
322
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: InterceptorsService }); }
541
323
  }
542
324
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: InterceptorsService, decorators: [{
543
325
  type: Injectable
544
- }], ctorParameters: () => [{ type: i1$1.Router }] });
326
+ }], ctorParameters: () => [{ type: i1.Router }] });
545
327
 
546
328
  class ValidatorsService {
547
329
  constructor() { }
@@ -705,13 +487,13 @@ class FetcherService {
705
487
  });
706
488
  return formData;
707
489
  }
708
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: FetcherService, deps: [{ token: i1$2.HttpClient }, { token: 'apiUrl' }], target: i0.ɵɵFactoryTarget.Injectable }); }
490
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: FetcherService, deps: [{ token: i1$1.HttpClient }, { token: 'apiUrl' }], target: i0.ɵɵFactoryTarget.Injectable }); }
709
491
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: FetcherService, providedIn: 'root' }); }
710
492
  }
711
493
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: FetcherService, decorators: [{
712
494
  type: Injectable,
713
495
  args: [{ providedIn: 'root' }]
714
- }], ctorParameters: () => [{ type: i1$2.HttpClient }, { type: undefined, decorators: [{
496
+ }], ctorParameters: () => [{ type: i1$1.HttpClient }, { type: undefined, decorators: [{
715
497
  type: Inject,
716
498
  args: ['apiUrl']
717
499
  }] }] });
@@ -799,7 +581,7 @@ class SafePipe {
799
581
  throw new Error(`Invalid safe type specified: ${type}`);
800
582
  }
801
583
  }
802
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: SafePipe, deps: [{ token: i1$3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
584
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: SafePipe, deps: [{ token: i1$2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
803
585
  static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.2", ngImport: i0, type: SafePipe, isStandalone: true, name: "safe" }); }
804
586
  }
805
587
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: SafePipe, decorators: [{
@@ -808,7 +590,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
808
590
  name: 'safe',
809
591
  standalone: true,
810
592
  }]
811
- }], ctorParameters: () => [{ type: i1$3.DomSanitizer }] });
593
+ }], ctorParameters: () => [{ type: i1$2.DomSanitizer }] });
812
594
 
813
595
  class ReversePipe {
814
596
  transform(value, sort) {
@@ -1148,7 +930,7 @@ class TooltipComponent {
1148
930
  this.tooltipData = tooltipData;
1149
931
  }
1150
932
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: TooltipComponent, deps: [{ token: TOOLTIP_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
1151
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: TooltipComponent, isStandalone: true, selector: "dd-tooltip", ngImport: i0, template: "<div class=\"tooltip-container\">\r\n @if (asString; as string) {\r\n {{ string }}\r\n } @if (asTemplate; as template) {\r\n <ng-template [ngTemplateOutlet]=\"template\"></ng-template>\r\n }\r\n <svg class=\"tooltip-container__triangle\" width=\"16\" height=\"16\">\r\n <polyline points=\"8,0 0,8 8,16\"></polyline>\r\n </svg>\r\n</div>\r\n", styles: [":host{position:relative}.tooltip-container{position:relative;display:block;max-width:312px;padding:6px 12px;background:var(--tooltip-bgc);border-radius:8px;box-sizing:border-box;box-shadow:0 14px 64px -4px #18274b0f,0 8px 22px -6px #18274b0f}.tooltip-container__triangle{width:16px;height:16px;position:absolute;fill:var(--white-color);stroke:var(--white-color);box-shadow:#18274b0f 0 14px 64px -4px,#18274b0f 0 8px 22px -6px}:host-context(.left) svg{top:calc(50% - 8px);right:-8px;rotate:180deg}:host-context(.right) svg{top:calc(50% - 8px);left:-8px}:host-context(.top) svg{right:calc(50% - 8px);bottom:-8px;rotate:-90deg}:host-context(.bottom) svg{right:calc(50% - 8px);top:-8px;rotate:90deg}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
933
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: TooltipComponent, isStandalone: true, selector: "dd-tooltip", ngImport: i0, template: "<div class=\"tooltip-container\">\r\n @if (asString; as string) {\r\n {{ string }}\r\n } @if (asTemplate; as template) {\r\n <ng-template [ngTemplateOutlet]=\"template\"></ng-template>\r\n }\r\n <svg class=\"tooltip-container__triangle\" width=\"16\" height=\"16\">\r\n <polyline points=\"8,0 0,8 8,16\"></polyline>\r\n </svg>\r\n</div>\r\n", styles: [":host{position:relative}.tooltip-container{position:relative;display:block;max-width:312px;padding:6px 12px;background:var(--tooltip-bgc);border-radius:8px;box-sizing:border-box;box-shadow:0 14px 64px -4px #18274b0f,0 8px 22px -6px #18274b0f}.tooltip-container__triangle{width:16px;height:16px;position:absolute;fill:var(--white-color);stroke:var(--white-color);box-shadow:#18274b0f 0 14px 64px -4px,#18274b0f 0 8px 22px -6px}:host-context(.left) svg{top:calc(50% - 8px);right:-8px;rotate:180deg}:host-context(.right) svg{top:calc(50% - 8px);left:-8px}:host-context(.top) svg{right:calc(50% - 8px);bottom:-8px;rotate:-90deg}:host-context(.bottom) svg{right:calc(50% - 8px);top:-8px;rotate:90deg}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1152
934
  }
1153
935
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: TooltipComponent, decorators: [{
1154
936
  type: Component,
@@ -1332,6 +1114,269 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
1332
1114
  args: ['blur']
1333
1115
  }] } });
1334
1116
 
1117
+ class DropDownPositionDirective {
1118
+ constructor(el, rdr) {
1119
+ this.el = el;
1120
+ this.rdr = rdr;
1121
+ this.dropdownId = 'dropdown';
1122
+ }
1123
+ onWindowScroll() {
1124
+ if (this.isShownList && !this.side) {
1125
+ this.updateDropdownPosition();
1126
+ }
1127
+ }
1128
+ ngOnChanges() {
1129
+ if (this.isShownList && !this.side) {
1130
+ setTimeout(() => {
1131
+ this.updateDropdownPosition();
1132
+ });
1133
+ }
1134
+ }
1135
+ updateDropdownPosition() {
1136
+ const rect = this.el.nativeElement.getBoundingClientRect();
1137
+ const dropdownHeight = this.itemsHeight && this.itemsHeight > this.dropdownHeight || !this.itemsHeight ? this.dropdownHeight : this.itemsHeight; // Примерная высота дропдауна
1138
+ const spaceBelow = window.innerHeight - rect.bottom;
1139
+ const spaceAbove = rect.top;
1140
+ const dropdown = this.el.nativeElement.querySelector(`#${this.dropdownId}`);
1141
+ // Если достаточно места ниже, оставляем его там
1142
+ if (spaceBelow >= dropdownHeight) {
1143
+ this.rdr.setStyle(dropdown, 'top', '100%');
1144
+ }
1145
+ // Если не хватает места ниже, но есть место выше
1146
+ else if (spaceAbove >= dropdownHeight) {
1147
+ this.rdr.setStyle(dropdown, 'top', `-${dropdownHeight}px`);
1148
+ }
1149
+ // Если недостаточно места ни вверху, ни внизу
1150
+ else {
1151
+ this.rdr.setStyle(dropdown, 'top', '100%');
1152
+ }
1153
+ }
1154
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: DropDownPositionDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
1155
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: DropDownPositionDirective, isStandalone: true, selector: "[ddDropDownPosition]", inputs: { side: "side", itemsHeight: "itemsHeight", dropdownHeight: "dropdownHeight", isShownList: "isShownList", dropdownId: "dropdownId" }, host: { listeners: { "window:resize": "onWindowScroll()", "window:scroll": "onWindowScroll()" } }, usesOnChanges: true, ngImport: i0 }); }
1156
+ }
1157
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: DropDownPositionDirective, decorators: [{
1158
+ type: Directive,
1159
+ args: [{
1160
+ selector: '[ddDropDownPosition]',
1161
+ standalone: true
1162
+ }]
1163
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { side: [{
1164
+ type: Input
1165
+ }], itemsHeight: [{
1166
+ type: Input
1167
+ }], dropdownHeight: [{
1168
+ type: Input
1169
+ }], isShownList: [{
1170
+ type: Input
1171
+ }], dropdownId: [{
1172
+ type: Input
1173
+ }], onWindowScroll: [{
1174
+ type: HostListener,
1175
+ args: ['window:resize']
1176
+ }, {
1177
+ type: HostListener,
1178
+ args: ['window:scroll']
1179
+ }] } });
1180
+
1181
+ class PhoneMaskDirective {
1182
+ constructor(control) {
1183
+ this.control = control;
1184
+ }
1185
+ onFocus() {
1186
+ if (!this.control.control?.value) {
1187
+ this.control.control?.setValue('+7');
1188
+ }
1189
+ }
1190
+ onBlur() {
1191
+ if (this.control.control?.value === '+7') {
1192
+ this.control.control?.setValue('');
1193
+ }
1194
+ }
1195
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: PhoneMaskDirective, deps: [{ token: i1$5.NgControl }], target: i0.ɵɵFactoryTarget.Directive }); }
1196
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: PhoneMaskDirective, isStandalone: true, selector: "[ddPhoneMask]", host: { listeners: { "focus": "onFocus()", "blur": "onBlur()" } }, ngImport: i0 }); }
1197
+ }
1198
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: PhoneMaskDirective, decorators: [{
1199
+ type: Directive,
1200
+ args: [{
1201
+ selector: '[ddPhoneMask]',
1202
+ standalone: true,
1203
+ }]
1204
+ }], ctorParameters: () => [{ type: i1$5.NgControl }], propDecorators: { onFocus: [{
1205
+ type: HostListener,
1206
+ args: ['focus']
1207
+ }], onBlur: [{
1208
+ type: HostListener,
1209
+ args: ['blur']
1210
+ }] } });
1211
+
1212
+ class ListKeyboardNavigationDirective {
1213
+ constructor(el) {
1214
+ this.el = el;
1215
+ this.currentIndex = -1;
1216
+ }
1217
+ handleKeyboardEvent(event) {
1218
+ const items = this.el.nativeElement.querySelectorAll('[ddSelectableItem]'); // Получаем все элементы списка
1219
+ if (!items.length)
1220
+ return;
1221
+ switch (event.key) {
1222
+ case 'ArrowDown':
1223
+ this.moveFocus(items, 1);
1224
+ event.preventDefault();
1225
+ break;
1226
+ case 'ArrowUp':
1227
+ this.moveFocus(items, -1);
1228
+ event.preventDefault();
1229
+ break;
1230
+ }
1231
+ }
1232
+ moveFocus(items, direction) {
1233
+ if (this.currentIndex >= 0) {
1234
+ const prevItem = items[this.currentIndex];
1235
+ prevItem.classList.remove('key-down-active');
1236
+ }
1237
+ this.currentIndex += direction;
1238
+ if (this.currentIndex < 0) {
1239
+ this.currentIndex = items.length - 1;
1240
+ }
1241
+ else if (this.currentIndex >= items.length) {
1242
+ this.currentIndex = 0;
1243
+ }
1244
+ const currentItem = items[this.currentIndex];
1245
+ currentItem.classList.add('key-down-active');
1246
+ currentItem.focus();
1247
+ currentItem.scrollIntoView({
1248
+ behavior: 'smooth',
1249
+ block: 'nearest',
1250
+ inline: 'start'
1251
+ });
1252
+ }
1253
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: ListKeyboardNavigationDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
1254
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: ListKeyboardNavigationDirective, isStandalone: true, selector: "[ddListKeyboardNavigation]", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" } }, ngImport: i0 }); }
1255
+ }
1256
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: ListKeyboardNavigationDirective, decorators: [{
1257
+ type: Directive,
1258
+ args: [{
1259
+ selector: '[ddListKeyboardNavigation]',
1260
+ standalone: true
1261
+ }]
1262
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { handleKeyboardEvent: [{
1263
+ type: HostListener,
1264
+ args: ['document:keydown', ['$event']]
1265
+ }] } });
1266
+
1267
+ class SelectableItemDirective {
1268
+ constructor(el) {
1269
+ this.el = el;
1270
+ this.itemSelected = new EventEmitter();
1271
+ }
1272
+ onEnter(event) {
1273
+ if (this.el.nativeElement.classList.contains('key-down-active')) {
1274
+ event.preventDefault();
1275
+ this.itemSelected.emit();
1276
+ }
1277
+ }
1278
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: SelectableItemDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
1279
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: SelectableItemDirective, isStandalone: true, selector: "[ddSelectableItem]", outputs: { itemSelected: "itemSelected" }, host: { listeners: { "document:keyup.enter": "onEnter($event)" } }, ngImport: i0 }); }
1280
+ }
1281
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: SelectableItemDirective, decorators: [{
1282
+ type: Directive,
1283
+ args: [{
1284
+ selector: '[ddSelectableItem]',
1285
+ standalone: true
1286
+ }]
1287
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { itemSelected: [{
1288
+ type: Output
1289
+ }], onEnter: [{
1290
+ type: HostListener,
1291
+ args: ['document:keyup.enter', ['$event']]
1292
+ }] } });
1293
+
1294
+ class FixedPositionDirective {
1295
+ constructor(el, renderer) {
1296
+ this.el = el;
1297
+ this.renderer = renderer;
1298
+ this.childName1 = 'input';
1299
+ this.childName2 = 'list';
1300
+ this.child1 = null;
1301
+ this.child2 = null;
1302
+ }
1303
+ ngAfterViewInit() {
1304
+ // id scroll-container надо задать обертке, которая имеет скролл и где будет скролящийся блок
1305
+ const scrollContainer = document.getElementById('scroll-container');
1306
+ console.log(scrollContainer);
1307
+ if (scrollContainer) {
1308
+ // Подписываемся на событие scroll чужеродного контейнера типа модалки и прочего узкого контента
1309
+ this.scrollListener = this.renderer.listen(scrollContainer, 'scroll', () => this.onScroll());
1310
+ }
1311
+ this.parentElement = this.el.nativeElement;
1312
+ this.child1 = this.parentElement.querySelector(`[data-child="${this.childName1}"]`);
1313
+ this.child2 = this.parentElement.querySelector(`[data-child="${this.childName2}"]`);
1314
+ if (this.child2) {
1315
+ this.updateChild2Position();
1316
+ }
1317
+ }
1318
+ ngAfterViewChecked() {
1319
+ if (!this.child2) {
1320
+ this.child2 = this.parentElement.querySelector(`[data-child="${this.childName2}"]`);
1321
+ if (this.child2) {
1322
+ this.updateChild2Position();
1323
+ }
1324
+ }
1325
+ }
1326
+ onScroll() {
1327
+ if (this.child2) {
1328
+ this.updateChild2Position();
1329
+ }
1330
+ }
1331
+ updateChild2Position() {
1332
+ if (this.child1 && this.child2) {
1333
+ const child1Rect = this.child1.getBoundingClientRect();
1334
+ this.renderer.setStyle(this.child2, 'width', `${child1Rect.width}px`);
1335
+ // Вычисляем, где расположить ребенка-2
1336
+ const shouldPositionAbove = this.shouldPositionAbove(child1Rect);
1337
+ if (shouldPositionAbove) {
1338
+ this.renderer.setStyle(this.child2, 'top', `${child1Rect.top - this.child2.offsetHeight}px`);
1339
+ }
1340
+ else {
1341
+ // Располагаем ребенка-2 снизу ребенка-1
1342
+ this.renderer.setStyle(this.child2, 'top', `${child1Rect.bottom}px`);
1343
+ }
1344
+ this.renderer.setStyle(this.child2, 'position', 'fixed');
1345
+ this.renderer.setStyle(this.child2, 'left', `${child1Rect.left}px`);
1346
+ }
1347
+ }
1348
+ shouldPositionAbove(child1Rect) {
1349
+ if (!this.child2)
1350
+ return false;
1351
+ // Вычисляем, будет ли ребенок-2 виден, если его расположить снизу
1352
+ const spaceBelow = window.innerHeight - child1Rect.bottom;
1353
+ const child2Height = this.child2.offsetHeight;
1354
+ return spaceBelow < child2Height;
1355
+ }
1356
+ ngOnDestroy() {
1357
+ // Отписываемся от события при уничтожении директивы
1358
+ if (this.scrollListener) {
1359
+ this.scrollListener();
1360
+ }
1361
+ }
1362
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: FixedPositionDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
1363
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: FixedPositionDirective, isStandalone: true, selector: "[ddFixedPosition]", inputs: { childName1: "childName1", childName2: "childName2" }, host: { listeners: { "window:scroll": "onScroll()" } }, ngImport: i0 }); }
1364
+ }
1365
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: FixedPositionDirective, decorators: [{
1366
+ type: Directive,
1367
+ args: [{
1368
+ selector: '[ddFixedPosition]',
1369
+ standalone: true
1370
+ }]
1371
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { childName1: [{
1372
+ type: Input
1373
+ }], childName2: [{
1374
+ type: Input
1375
+ }], onScroll: [{
1376
+ type: HostListener,
1377
+ args: ['window:scroll']
1378
+ }] } });
1379
+
1335
1380
  class ToastTypeData {
1336
1381
  }
1337
1382
  class ToastData extends ToastTypeData {
@@ -1680,6 +1725,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
1680
1725
  }]
1681
1726
  }] });
1682
1727
 
1728
+ class LibLoaderComponent {
1729
+ constructor() {
1730
+ this.color = '#07b700';
1731
+ this.size = 'standard';
1732
+ }
1733
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibLoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1734
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.2", type: LibLoaderComponent, isStandalone: true, selector: "dd-lib-loader", inputs: { color: ["color", "color", (value) => value ? value : '#07b700'], size: "size" }, ngImport: i0, template: "<div [class.big]=\"size === 'big'\" [class.giant]=\"size === 'giant'\" class=\"loader\">\n <svg fill=\"none\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\">\n <g clip-path=\"url(#clip0_728_22764)\">\n <path\n [attr.stroke]=\"color\"\n d=\"M12 6V3\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"1.7\" />\n <path\n [attr.stroke]=\"color\"\n d=\"M6 12H3\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\" />\n <path\n [attr.stroke]=\"color\"\n d=\"M7.74961 7.74961L5.59961 5.59961\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\" />\n </g>\n <defs>\n <clipPath id=\"clip0_728_22764\">\n <rect fill=\"white\" height=\"24\" width=\"24\" />\n </clipPath>\n </defs>\n </svg>\n</div>\n", styles: [":host{display:flex;align-items:center;width:100%;justify-content:center;overflow:hidden;z-index:999}.loader{width:24px;height:24px}.loader svg{animation:rotate 1.5s linear infinite}.loader.big{zoom:2}.loader.giant{zoom:4}@keyframes rotate{to{transform:rotate(360deg)}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1735
+ }
1736
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibLoaderComponent, decorators: [{
1737
+ type: Component,
1738
+ args: [{ selector: 'dd-lib-loader', standalone: true, imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [class.big]=\"size === 'big'\" [class.giant]=\"size === 'giant'\" class=\"loader\">\n <svg fill=\"none\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\">\n <g clip-path=\"url(#clip0_728_22764)\">\n <path\n [attr.stroke]=\"color\"\n d=\"M12 6V3\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"1.7\" />\n <path\n [attr.stroke]=\"color\"\n d=\"M6 12H3\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\" />\n <path\n [attr.stroke]=\"color\"\n d=\"M7.74961 7.74961L5.59961 5.59961\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\" />\n </g>\n <defs>\n <clipPath id=\"clip0_728_22764\">\n <rect fill=\"white\" height=\"24\" width=\"24\" />\n </clipPath>\n </defs>\n </svg>\n</div>\n", styles: [":host{display:flex;align-items:center;width:100%;justify-content:center;overflow:hidden;z-index:999}.loader{width:24px;height:24px}.loader svg{animation:rotate 1.5s linear infinite}.loader.big{zoom:2}.loader.giant{zoom:4}@keyframes rotate{to{transform:rotate(360deg)}}\n"] }]
1739
+ }], propDecorators: { color: [{
1740
+ type: Input,
1741
+ args: [{
1742
+ transform: (value) => value ? value : '#07b700'
1743
+ }]
1744
+ }], size: [{
1745
+ type: Input
1746
+ }] } });
1747
+
1683
1748
  class ModalBaseComponent {
1684
1749
  constructor(route, router, dialog) {
1685
1750
  this.route = route;
@@ -1695,39 +1760,265 @@ class ModalBaseComponent {
1695
1760
  }
1696
1761
  };
1697
1762
  }
1698
- onKeydownComponent(event) {
1699
- if (event.key === 'Escape' || event.key === 'Esc') {
1700
- this.destroy();
1763
+ onKeydownComponent(event) {
1764
+ if (event.key === 'Escape' || event.key === 'Esc') {
1765
+ this.destroy();
1766
+ }
1767
+ }
1768
+ close() {
1769
+ this.dialog.close();
1770
+ }
1771
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: ModalBaseComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: DDDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
1772
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: ModalBaseComponent, isStandalone: true, selector: "dd-modal-base", inputs: { content: "content", component: "component", clearFragment: "clearFragment", borderMobile: "borderMobile", showLoader: "showLoader", showContentLoader: "showContentLoader" }, host: { listeners: { "document:keydown": "onKeydownComponent($event)" } }, ngImport: i0, template: "<div class=\"popup\" [class.border-mobile]=\"borderMobile\">\r\n @if (showContentLoader) {\r\n <div class=\"loader-modal\">\r\n <dd-lib-loader size=\"giant\"></dd-lib-loader>\r\n </div>\r\n } @else {\r\n <div (click)=\"close()\" class=\"popup__close\"></div>\r\n @if (content) {\r\n <div class=\"popup__content\">\r\n <ng-template [ngTemplateOutletContext]=\"{ data }\" [ngTemplateOutlet]=\"content\"></ng-template>\r\n </div>\r\n }\r\n @if (component) {\r\n <div class=\"popup__content\">\r\n <ng-template [ngComponentOutlet]=\"component\"></ng-template>\r\n </div>\r\n } @else {\r\n <ng-content></ng-content>\r\n }\r\n }\r\n\r\n @if (showLoader) {\r\n <div class=\"loader-modal\">\r\n <dd-lib-loader size=\"giant\"></dd-lib-loader>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".popup{position:relative;max-width:var(--main-body-width);border-radius:24px;background:var(--white-color)}.popup .loader-modal{position:absolute;width:100%;height:100%;top:0;display:flex;align-items:center;justify-content:center;border-radius:24px;background:#251c2c33}@media screen and (max-width: 1320px){.popup{max-width:100%}}@media screen and (max-width: 480px){.popup{border-radius:0}}@media screen and (max-width: 480px){.popup.border-mobile{border-radius:24px}}.popup__close{z-index:1;position:absolute;top:24px;right:24px;width:20px;height:20px;background:url('data:image/svg+xml,<svg fill=\"none\" height=\"20\" viewBox=\"0 0 20 20\" width=\"20\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A <g clip-path=\"url(%23clip0_355_22081)\">%0D%0A <path d=\"M15 5L5 15\" stroke=\"%23A79BAD\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"/>%0D%0A <path d=\"M5 5L15 15\" stroke=\"%23A79BAD\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"/>%0D%0A </g>%0D%0A <defs>%0D%0A <clipPath id=\"clip0_355_22081\">%0D%0A <rect fill=\"white\" height=\"20\" width=\"20\"/>%0D%0A </clipPath>%0D%0A </defs>%0D%0A</svg>%0D%0A') no-repeat center;cursor:pointer}@media screen and (max-width: 480px){.popup__close{top:16px;right:16px}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "component", type: LibLoaderComponent, selector: "dd-lib-loader", inputs: ["color", "size"] }] }); }
1773
+ }
1774
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: ModalBaseComponent, decorators: [{
1775
+ type: Component,
1776
+ args: [{ selector: 'dd-modal-base', standalone: true, imports: [NgTemplateOutlet, NgComponentOutlet, LibLoaderComponent], template: "<div class=\"popup\" [class.border-mobile]=\"borderMobile\">\r\n @if (showContentLoader) {\r\n <div class=\"loader-modal\">\r\n <dd-lib-loader size=\"giant\"></dd-lib-loader>\r\n </div>\r\n } @else {\r\n <div (click)=\"close()\" class=\"popup__close\"></div>\r\n @if (content) {\r\n <div class=\"popup__content\">\r\n <ng-template [ngTemplateOutletContext]=\"{ data }\" [ngTemplateOutlet]=\"content\"></ng-template>\r\n </div>\r\n }\r\n @if (component) {\r\n <div class=\"popup__content\">\r\n <ng-template [ngComponentOutlet]=\"component\"></ng-template>\r\n </div>\r\n } @else {\r\n <ng-content></ng-content>\r\n }\r\n }\r\n\r\n @if (showLoader) {\r\n <div class=\"loader-modal\">\r\n <dd-lib-loader size=\"giant\"></dd-lib-loader>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".popup{position:relative;max-width:var(--main-body-width);border-radius:24px;background:var(--white-color)}.popup .loader-modal{position:absolute;width:100%;height:100%;top:0;display:flex;align-items:center;justify-content:center;border-radius:24px;background:#251c2c33}@media screen and (max-width: 1320px){.popup{max-width:100%}}@media screen and (max-width: 480px){.popup{border-radius:0}}@media screen and (max-width: 480px){.popup.border-mobile{border-radius:24px}}.popup__close{z-index:1;position:absolute;top:24px;right:24px;width:20px;height:20px;background:url('data:image/svg+xml,<svg fill=\"none\" height=\"20\" viewBox=\"0 0 20 20\" width=\"20\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A <g clip-path=\"url(%23clip0_355_22081)\">%0D%0A <path d=\"M15 5L5 15\" stroke=\"%23A79BAD\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"/>%0D%0A <path d=\"M5 5L15 15\" stroke=\"%23A79BAD\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"/>%0D%0A </g>%0D%0A <defs>%0D%0A <clipPath id=\"clip0_355_22081\">%0D%0A <rect fill=\"white\" height=\"20\" width=\"20\"/>%0D%0A </clipPath>%0D%0A </defs>%0D%0A</svg>%0D%0A') no-repeat center;cursor:pointer}@media screen and (max-width: 480px){.popup__close{top:16px;right:16px}}\n"] }]
1777
+ }], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: DDDialogRef }], propDecorators: { content: [{
1778
+ type: Input
1779
+ }], component: [{
1780
+ type: Input
1781
+ }], clearFragment: [{
1782
+ type: Input
1783
+ }], borderMobile: [{
1784
+ type: Input
1785
+ }], showLoader: [{
1786
+ type: Input
1787
+ }], showContentLoader: [{
1788
+ type: Input
1789
+ }], onKeydownComponent: [{
1790
+ type: HostListener,
1791
+ args: ['document:keydown', ['$event']]
1792
+ }] } });
1793
+
1794
+ // services
1795
+ // map
1796
+
1797
+ class LibCommonInputTextComponent {
1798
+ get id() {
1799
+ return this._ID;
1800
+ }
1801
+ constructor(changeDetection) {
1802
+ this.required = false;
1803
+ this.disabled = false;
1804
+ this.commitOnInput = true; // коммитить по input или по change
1805
+ this.clearable = true;
1806
+ this.showSelfError = true;
1807
+ this.uppercase = false;
1808
+ this.invalid = false;
1809
+ this.errorTexts = [];
1810
+ this.cleared = new EventEmitter();
1811
+ this.fetchEvent = new EventEmitter();
1812
+ this.focus = new EventEmitter();
1813
+ this.blur = new EventEmitter();
1814
+ this.fullBlur = new EventEmitter();
1815
+ this.focused = false;
1816
+ this.touched = false;
1817
+ this.value = '';
1818
+ this.dropdownStyle = { top: '100%', left: '0' };
1819
+ this.destroyed = false;
1820
+ this._ID = '';
1821
+ this.changeDetection = changeDetection;
1822
+ }
1823
+ ngAfterViewChecked() {
1824
+ this.changeDetection.markForCheck();
1825
+ this.errorText = ValidatorsService.getErrorText(this.control?.errors);
1826
+ }
1827
+ get invalidState() {
1828
+ return this.invalid || this.control ? this.control.invalid : false;
1829
+ }
1830
+ get showError() {
1831
+ if (!this.control) {
1832
+ return this.invalid;
1833
+ }
1834
+ const { dirty, touched } = this.control;
1835
+ return this.invalidState ? ((dirty || touched) && !this.focused) : false;
1836
+ }
1837
+ handleInput(_e) {
1838
+ if (this.commitOnInput) {
1839
+ this.commit(this.value);
1840
+ }
1841
+ }
1842
+ notifyFocusEvent(e) {
1843
+ // this.focusManager.notifyFocusMayChanged(this, e.type === 'focus');
1844
+ this.blur.emit(this.value);
1845
+ }
1846
+ handleBlur() {
1847
+ this.focused = false;
1848
+ if (this.onTouchedCallback) {
1849
+ this.onTouchedCallback();
1850
+ }
1851
+ this.blur.emit();
1852
+ this.changeDetection.detectChanges();
1853
+ }
1854
+ handleFocus() {
1855
+ this.focused = this.touched = true;
1856
+ if (this.onTouchedCallback) {
1857
+ this.onTouchedCallback();
1858
+ }
1859
+ this.focus.emit();
1860
+ }
1861
+ returnFocus(e) {
1862
+ if (this.inputElement &&
1863
+ this.inputElement.nativeElement &&
1864
+ (!e || e.target !== this.inputElement.nativeElement)) {
1865
+ this.inputElement.nativeElement.focus();
1866
+ // HelperService.resetSelection(this.inputElement.nativeElement);
1867
+ }
1868
+ }
1869
+ loseFocus() {
1870
+ this.inputElement?.nativeElement.blur();
1871
+ }
1872
+ forceChange() {
1873
+ if (this.inputElement) {
1874
+ // this.inputElement.nativeElement.dispatchEvent(HelperService.createEvent('change', true, false));
1701
1875
  }
1702
1876
  }
1703
- close() {
1704
- this.dialog.close();
1877
+ registerOnChange(fn) {
1878
+ this.commit = fn;
1879
+ }
1880
+ registerOnTouched(fn) {
1881
+ this.onTouchedCallback = fn;
1882
+ }
1883
+ // public setDisabledState(isDisabled: boolean): void {
1884
+ // console.log(isDisabled)
1885
+ // this.disabled = isDisabled;
1886
+ // }
1887
+ handleChange() {
1888
+ if (!this.commitOnInput) {
1889
+ this.commit(this.value);
1890
+ }
1891
+ }
1892
+ commit(_value) { }
1893
+ updateDropdownPosition(el, data, itemSize, dHeight) {
1894
+ const rect = el.nativeElement.getBoundingClientRect();
1895
+ const itemHeight = data?.length ? data?.length * itemSize : 0;
1896
+ const dropdownHeight = ((itemHeight > 0) && (itemHeight > dHeight)) ? dHeight : itemHeight; // Примерная высота дропдауна
1897
+ const spaceBelow = window.innerHeight - rect.bottom;
1898
+ const spaceAbove = rect.top;
1899
+ // Если достаточно места ниже, оставляем его там
1900
+ if (spaceBelow >= dropdownHeight) {
1901
+ this.dropdownStyle = { top: '100%', left: '0' };
1902
+ }
1903
+ // Если не хватает места ниже, но есть место выше
1904
+ else if (spaceAbove >= dropdownHeight) {
1905
+ const label = this.label ? 26 : 0;
1906
+ this.dropdownStyle = { top: `-${dropdownHeight - label}px`, left: '0' };
1907
+ }
1908
+ // Если недостаточно места ни вверху, ни внизу
1909
+ else {
1910
+ this.dropdownStyle = { top: '100%', left: '0' };
1911
+ }
1705
1912
  }
1706
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: ModalBaseComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: i1$1.Router }, { token: DDDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
1707
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: ModalBaseComponent, isStandalone: true, selector: "dd-modal-base", inputs: { content: "content", component: "component", clearFragment: "clearFragment", borderMobile: "borderMobile", showLoader: "showLoader", showContentLoader: "showContentLoader" }, host: { listeners: { "document:keydown": "onKeydownComponent($event)" } }, ngImport: i0, template: "<div class=\"popup\" [class.border-mobile]=\"borderMobile\">\r\n @if (showContentLoader) {\r\n <div class=\"loader-modal\">\r\n <dd-lib-loader size=\"giant\"></dd-lib-loader>\r\n </div>\r\n } @else {\r\n <div (click)=\"close()\" class=\"popup__close\"></div>\r\n @if (content) {\r\n <div class=\"popup__content\">\r\n <ng-template [ngTemplateOutletContext]=\"{ data }\" [ngTemplateOutlet]=\"content\"></ng-template>\r\n </div>\r\n }\r\n @if (component) {\r\n <div class=\"popup__content\">\r\n <ng-template [ngComponentOutlet]=\"component\"></ng-template>\r\n </div>\r\n } @else {\r\n <ng-content></ng-content>\r\n }\r\n }\r\n\r\n @if (showLoader) {\r\n <div class=\"loader-modal\">\r\n <dd-lib-loader size=\"giant\"></dd-lib-loader>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".popup{position:relative;max-width:var(--main-body-width);border-radius:24px;background:var(--white-color)}.popup .loader-modal{position:absolute;width:100%;height:100%;top:0;display:flex;align-items:center;justify-content:center;border-radius:24px;background:#251c2c33}@media screen and (max-width: 1320px){.popup{max-width:100%}}@media screen and (max-width: 480px){.popup{border-radius:0}}@media screen and (max-width: 480px){.popup.border-mobile{border-radius:24px}}.popup__close{position:absolute;top:24px;right:24px;width:20px;height:20px;background:url('data:image/svg+xml,<svg fill=\"none\" height=\"20\" viewBox=\"0 0 20 20\" width=\"20\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A <g clip-path=\"url(%23clip0_355_22081)\">%0D%0A <path d=\"M15 5L5 15\" stroke=\"%23A79BAD\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"/>%0D%0A <path d=\"M5 5L15 15\" stroke=\"%23A79BAD\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"/>%0D%0A </g>%0D%0A <defs>%0D%0A <clipPath id=\"clip0_355_22081\">%0D%0A <rect fill=\"white\" height=\"20\" width=\"20\"/>%0D%0A </clipPath>%0D%0A </defs>%0D%0A</svg>%0D%0A') no-repeat center;cursor:pointer}@media screen and (max-width: 480px){.popup__close{top:16px;right:16px}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "component", type: LibLoaderComponent, selector: "dd-lib-loader", inputs: ["color", "size"] }] }); }
1913
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibCommonInputTextComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
1914
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: LibCommonInputTextComponent, selector: "dd-lib-common-input", inputs: { name: "name", label: "label", formControlName: "formControlName", type: "type", contextClass: "contextClass", minlength: "minlength", min: "min", maxlength: "maxlength", max: "max", placeholder: "placeholder", autocomplete: "autocomplete", tabIndex: "tabIndex", readOnly: "readOnly", autofocus: "autofocus", fetchMode: "fetchMode", required: "required", disabled: "disabled", commitOnInput: "commitOnInput", clearable: "clearable", showSelfError: "showSelfError", uppercase: "uppercase", invalid: "invalid", errorTexts: "errorTexts", side: "side" }, outputs: { cleared: "cleared", fetchEvent: "fetchEvent", focus: "focus", blur: "blur", fullBlur: "fullBlur" }, providers: [
1915
+ {
1916
+ provide: NG_VALUE_ACCESSOR,
1917
+ useExisting: forwardRef(() => LibCommonInputTextComponent),
1918
+ multi: true,
1919
+ },
1920
+ ], viewQueries: [{ propertyName: "inputSearchElement", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "inputElement", first: true, predicate: ["input"], descendants: true }, { propertyName: "textAreaElement", first: true, predicate: ["textarea"], descendants: true }], ngImport: i0, template: '', isInline: true }); }
1708
1921
  }
1709
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: ModalBaseComponent, decorators: [{
1922
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibCommonInputTextComponent, decorators: [{
1710
1923
  type: Component,
1711
- args: [{ selector: 'dd-modal-base', standalone: true, imports: [NgTemplateOutlet, NgComponentOutlet, LibLoaderComponent], template: "<div class=\"popup\" [class.border-mobile]=\"borderMobile\">\r\n @if (showContentLoader) {\r\n <div class=\"loader-modal\">\r\n <dd-lib-loader size=\"giant\"></dd-lib-loader>\r\n </div>\r\n } @else {\r\n <div (click)=\"close()\" class=\"popup__close\"></div>\r\n @if (content) {\r\n <div class=\"popup__content\">\r\n <ng-template [ngTemplateOutletContext]=\"{ data }\" [ngTemplateOutlet]=\"content\"></ng-template>\r\n </div>\r\n }\r\n @if (component) {\r\n <div class=\"popup__content\">\r\n <ng-template [ngComponentOutlet]=\"component\"></ng-template>\r\n </div>\r\n } @else {\r\n <ng-content></ng-content>\r\n }\r\n }\r\n\r\n @if (showLoader) {\r\n <div class=\"loader-modal\">\r\n <dd-lib-loader size=\"giant\"></dd-lib-loader>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".popup{position:relative;max-width:var(--main-body-width);border-radius:24px;background:var(--white-color)}.popup .loader-modal{position:absolute;width:100%;height:100%;top:0;display:flex;align-items:center;justify-content:center;border-radius:24px;background:#251c2c33}@media screen and (max-width: 1320px){.popup{max-width:100%}}@media screen and (max-width: 480px){.popup{border-radius:0}}@media screen and (max-width: 480px){.popup.border-mobile{border-radius:24px}}.popup__close{position:absolute;top:24px;right:24px;width:20px;height:20px;background:url('data:image/svg+xml,<svg fill=\"none\" height=\"20\" viewBox=\"0 0 20 20\" width=\"20\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A <g clip-path=\"url(%23clip0_355_22081)\">%0D%0A <path d=\"M15 5L5 15\" stroke=\"%23A79BAD\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"/>%0D%0A <path d=\"M5 5L15 15\" stroke=\"%23A79BAD\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"/>%0D%0A </g>%0D%0A <defs>%0D%0A <clipPath id=\"clip0_355_22081\">%0D%0A <rect fill=\"white\" height=\"20\" width=\"20\"/>%0D%0A </clipPath>%0D%0A </defs>%0D%0A</svg>%0D%0A') no-repeat center;cursor:pointer}@media screen and (max-width: 480px){.popup__close{top:16px;right:16px}}\n"] }]
1712
- }], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: DDDialogRef }], propDecorators: { content: [{
1924
+ args: [{
1925
+ selector: 'dd-lib-common-input',
1926
+ template: '',
1927
+ providers: [
1928
+ {
1929
+ provide: NG_VALUE_ACCESSOR,
1930
+ useExisting: forwardRef(() => LibCommonInputTextComponent),
1931
+ multi: true,
1932
+ },
1933
+ ],
1934
+ }]
1935
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { inputSearchElement: [{
1936
+ type: ViewChild,
1937
+ args: ['searchInput']
1938
+ }], inputElement: [{
1939
+ type: ViewChild,
1940
+ args: ['input']
1941
+ }], textAreaElement: [{
1942
+ type: ViewChild,
1943
+ args: ['textarea']
1944
+ }], name: [{
1713
1945
  type: Input
1714
- }], component: [{
1946
+ }], label: [{
1715
1947
  type: Input
1716
- }], clearFragment: [{
1948
+ }], formControlName: [{
1717
1949
  type: Input
1718
- }], borderMobile: [{
1950
+ }], type: [{
1719
1951
  type: Input
1720
- }], showLoader: [{
1952
+ }], contextClass: [{
1721
1953
  type: Input
1722
- }], showContentLoader: [{
1954
+ }], minlength: [{
1723
1955
  type: Input
1724
- }], onKeydownComponent: [{
1725
- type: HostListener,
1726
- args: ['document:keydown', ['$event']]
1956
+ }], min: [{
1957
+ type: Input
1958
+ }], maxlength: [{
1959
+ type: Input
1960
+ }], max: [{
1961
+ type: Input
1962
+ }], placeholder: [{
1963
+ type: Input
1964
+ }], autocomplete: [{
1965
+ type: Input
1966
+ }], tabIndex: [{
1967
+ type: Input
1968
+ }], readOnly: [{
1969
+ type: Input
1970
+ }], autofocus: [{
1971
+ type: Input
1972
+ }], fetchMode: [{
1973
+ type: Input
1974
+ }], required: [{
1975
+ type: Input
1976
+ }], disabled: [{
1977
+ type: Input
1978
+ }], commitOnInput: [{
1979
+ type: Input
1980
+ }], clearable: [{
1981
+ type: Input
1982
+ }], showSelfError: [{
1983
+ type: Input
1984
+ }], uppercase: [{
1985
+ type: Input
1986
+ }], invalid: [{
1987
+ type: Input
1988
+ }], errorTexts: [{
1989
+ type: Input
1990
+ }], side: [{
1991
+ type: Input
1992
+ }], cleared: [{
1993
+ type: Output
1994
+ }], fetchEvent: [{
1995
+ type: Output
1996
+ }], focus: [{
1997
+ type: Output
1998
+ }], blur: [{
1999
+ type: Output
2000
+ }], fullBlur: [{
2001
+ type: Output
1727
2002
  }] } });
1728
2003
 
1729
- // services
1730
- // map
2004
+ class LibButtonComponent extends LibCommonButtonComponent {
2005
+ ngAfterViewInit() {
2006
+ const btn = this.button?.nativeElement;
2007
+ if (btn && btn.attributes?.autofocus) {
2008
+ btn.focus();
2009
+ }
2010
+ }
2011
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2012
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: LibButtonComponent, isStandalone: true, selector: "dd-lib-button", inputs: { noPadding: "noPadding", loaderColor: "loaderColor" }, usesInheritance: true, ngImport: i0, template: "<div (click)=\"onClick($event)\" [ngStyle]=\"{width, height}\" class=\"button-container\">\r\n <button\r\n #btn\r\n [attr.tabIndex]=\"disabled ? -1 : 0\"\r\n [autofocus]=\"autofocus\"\r\n [class.active]=\"active\"\r\n [class.disabled]=\"disabled || showLoader\"\r\n [class.green]=\"btnColor === 'green'\"\r\n [class.loader]=\"showLoader\"\r\n [class.no-padding]=\"noPadding\"\r\n [class.red]=\"btnColor === 'red'\"\r\n [class.transparent]=\"btnColor === 'transparent'\"\r\n [class.white]=\"btnColor === 'white'\"\r\n [class.dark]=\"btnColor === 'dark'\"\r\n [disabled]=\"disabled || showLoader\"\r\n [ngStyle]=\"{width, height}\"\r\n [type]=\"buttonType\"\r\n class=\"lib-button\"\r\n role=\"button\">\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n @if (showLoader) {\r\n <dd-lib-loader class=\"pos-absolute\" [color]=\"loaderColor\"></dd-lib-loader>\r\n }\r\n\r\n </button>\r\n</div>\r\n\r\n<ng-template #content>\r\n <span #contentData><ng-content></ng-content></span>\r\n</ng-template>\r\n", styles: [".button-container{display:inline-block}.button-container button{position:relative;display:flex;align-items:center;justify-content:center;height:40px;padding:0 32px;font-size:14px;line-height:24px;font-weight:var(--font-wheit-big);border-radius:12px;outline:none;cursor:pointer;white-space:nowrap;border:1px solid transparent;background-color:var(--btn-green-bgc);color:#fff}@media screen and (max-width: 840px){.button-container button{height:48px}}.button-container button:hover,.button-container button:focus{background-color:var(--btn-green-hover)}.button-container button:active,.button-container button.active{background-color:var(--btn-green-hover)}.button-container button.loader{min-width:100px}.button-container button.white{background-color:var(--btn-light-green-bgc);color:var(--btn-white-color)}.button-container button.white:hover{color:var(--btn-white-hover-color)}.button-container button.transparent{background-color:transparent;color:var(--btn-white-color);border-color:var(--gray-color-200)}.button-container button.transparent:hover{color:var(--btn-white-hover-color)}.button-container button.red{background-color:var(--btn-red-bgc);color:var(--btn-red-color)}.button-container button.red:hover{color:var(--btn-red-hover-color)}.button-container button.dark{background-color:var(--btn-dark-bgc);color:var(--btn-dark-color)}.button-container button.dark:hover{background-color:var(--btn-dark-hover-color)}.button-container button.no-padding{padding:0}.button-container button.disabled{color:var(--disabled-color);background-color:var(--btn-disabled-bgc);pointer-events:none;cursor:default}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: LibLoaderComponent, selector: "dd-lib-loader", inputs: ["color", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2013
+ }
2014
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibButtonComponent, decorators: [{
2015
+ type: Component,
2016
+ args: [{ selector: 'dd-lib-button', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, FormsModule, LibLoaderComponent], schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA], template: "<div (click)=\"onClick($event)\" [ngStyle]=\"{width, height}\" class=\"button-container\">\r\n <button\r\n #btn\r\n [attr.tabIndex]=\"disabled ? -1 : 0\"\r\n [autofocus]=\"autofocus\"\r\n [class.active]=\"active\"\r\n [class.disabled]=\"disabled || showLoader\"\r\n [class.green]=\"btnColor === 'green'\"\r\n [class.loader]=\"showLoader\"\r\n [class.no-padding]=\"noPadding\"\r\n [class.red]=\"btnColor === 'red'\"\r\n [class.transparent]=\"btnColor === 'transparent'\"\r\n [class.white]=\"btnColor === 'white'\"\r\n [class.dark]=\"btnColor === 'dark'\"\r\n [disabled]=\"disabled || showLoader\"\r\n [ngStyle]=\"{width, height}\"\r\n [type]=\"buttonType\"\r\n class=\"lib-button\"\r\n role=\"button\">\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n @if (showLoader) {\r\n <dd-lib-loader class=\"pos-absolute\" [color]=\"loaderColor\"></dd-lib-loader>\r\n }\r\n\r\n </button>\r\n</div>\r\n\r\n<ng-template #content>\r\n <span #contentData><ng-content></ng-content></span>\r\n</ng-template>\r\n", styles: [".button-container{display:inline-block}.button-container button{position:relative;display:flex;align-items:center;justify-content:center;height:40px;padding:0 32px;font-size:14px;line-height:24px;font-weight:var(--font-wheit-big);border-radius:12px;outline:none;cursor:pointer;white-space:nowrap;border:1px solid transparent;background-color:var(--btn-green-bgc);color:#fff}@media screen and (max-width: 840px){.button-container button{height:48px}}.button-container button:hover,.button-container button:focus{background-color:var(--btn-green-hover)}.button-container button:active,.button-container button.active{background-color:var(--btn-green-hover)}.button-container button.loader{min-width:100px}.button-container button.white{background-color:var(--btn-light-green-bgc);color:var(--btn-white-color)}.button-container button.white:hover{color:var(--btn-white-hover-color)}.button-container button.transparent{background-color:transparent;color:var(--btn-white-color);border-color:var(--gray-color-200)}.button-container button.transparent:hover{color:var(--btn-white-hover-color)}.button-container button.red{background-color:var(--btn-red-bgc);color:var(--btn-red-color)}.button-container button.red:hover{color:var(--btn-red-hover-color)}.button-container button.dark{background-color:var(--btn-dark-bgc);color:var(--btn-dark-color)}.button-container button.dark:hover{background-color:var(--btn-dark-hover-color)}.button-container button.no-padding{padding:0}.button-container button.disabled{color:var(--disabled-color);background-color:var(--btn-disabled-bgc);pointer-events:none;cursor:default}\n"] }]
2017
+ }], propDecorators: { noPadding: [{
2018
+ type: Input
2019
+ }], loaderColor: [{
2020
+ type: Input
2021
+ }] } });
1731
2022
 
1732
2023
  class LibSvgIconComponent {
1733
2024
  constructor(el, rdr, svgIconRegistry, document) {
@@ -1816,13 +2107,13 @@ class LibBackButtonComponent {
1816
2107
  }
1817
2108
  }
1818
2109
  }
1819
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibBackButtonComponent, deps: [{ token: i1.Location }, { token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
2110
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibBackButtonComponent, deps: [{ token: i1$3.Location }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
1820
2111
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: LibBackButtonComponent, isStandalone: true, selector: "dd-lib-back-button", inputs: { backTitle: "backTitle", rout: "rout" }, ngImport: i0, template: "<div (click)=\"onBack()\" class=\"d-inline-flex align-center mr-8 cup\">\r\n <dd-lib-svg-icon icon=\"back_arrow\"></dd-lib-svg-icon>\r\n <div class=\"g-text gray cup ml-8\">{{ backTitle }}</div>\r\n</div>\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1821
2112
  }
1822
2113
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibBackButtonComponent, decorators: [{
1823
2114
  type: Component,
1824
2115
  args: [{ selector: 'dd-lib-back-button', standalone: true, imports: [NgOptimizedImage, LibSvgIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div (click)=\"onBack()\" class=\"d-inline-flex align-center mr-8 cup\">\r\n <dd-lib-svg-icon icon=\"back_arrow\"></dd-lib-svg-icon>\r\n <div class=\"g-text gray cup ml-8\">{{ backTitle }}</div>\r\n</div>\r\n", styles: [":host{display:block}\n"] }]
1825
- }], ctorParameters: () => [{ type: i1.Location }, { type: i1$1.Router }], propDecorators: { backTitle: [{
2116
+ }], ctorParameters: () => [{ type: i1$3.Location }, { type: i1.Router }], propDecorators: { backTitle: [{
1826
2117
  type: Input
1827
2118
  }], rout: [{
1828
2119
  type: Input
@@ -1846,7 +2137,7 @@ class LibFilterButtonComponent extends LibCommonButtonComponent {
1846
2137
  this.hintEvent.emit();
1847
2138
  }
1848
2139
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibFilterButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1849
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: LibFilterButtonComponent, isStandalone: true, selector: "dd-lib-filter-button", inputs: { btnTitle: "btnTitle", hintContent: "hintContent" }, outputs: { clearEvent: "clearEvent", hintEvent: "hintEvent" }, usesInheritance: true, ngImport: i0, template: "<div (click)=\"onClick($event)\" [class.disabled]=\"disabled\" [ngStyle]=\"{width}\" class=\"button-container\">\r\n <button\r\n #btn\r\n [attr.tabIndex]=\"disabled ? -1 : 0\"\r\n [autofocus]=\"autofocus\"\r\n [disabled]=\"disabled\"\r\n [ngClass]=\"{\r\n disabled: disabled,\r\n loader: showLoader,\r\n active: active,\r\n white: btnColor === 'white',\r\n transparent: btnColor === 'transparent',\r\n }\"\r\n [type]=\"buttonType\"\r\n class=\"\"\r\n role=\"button\">\r\n @if (!showLoader) {\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n } @if (showLoader) {\r\n <div class=\"loader\"></div>\r\n }\r\n </button>\r\n</div>\r\n\r\n<ng-template #content>\r\n @if (btnTitle) {\r\n <span class=\"btn-title\">{{ btnTitle }}</span>\r\n }\r\n <span #contentData><ng-content></ng-content></span>\r\n <span class=\"d-flex\">\r\n @if (hintContent) {\r\n <dd-lib-svg-icon (click)=\"hintClick($event)\"\r\n [ddTooltip]=\"hintContent\"\r\n [withClick]=\"true\"\r\n class=\"ml-8\"\r\n icon=\"question{{ active ? '-white-g' : '' }}\"></dd-lib-svg-icon>\r\n }\r\n @if (active) {\r\n <dd-lib-svg-icon (click)=\"onClear($event)\" color=\"white\" icon=\"close\" class=\"ml-8 cup close\"></dd-lib-svg-icon>\r\n }\r\n <dd-lib-svg-icon icon=\"toggle_arrow_right\" class=\"arrow show-tablet ml-12\"></dd-lib-svg-icon>\r\n </span>\r\n</ng-template>\r\n", styles: [":host{display:block}.button-container{display:inline-block}@media screen and (max-width: 840px){.button-container{display:block}}.button-container button{display:flex;align-items:center;justify-content:center;height:40px;font-size:14px;line-height:24px;outline:none;cursor:pointer;white-space:nowrap;color:var(--black-color);background-color:var(--btn-white-bgc);border:1px solid var(--gray-color-200);border-radius:24px;padding:8px 16px;font-weight:var(--font-wheit-small)}@media screen and (max-width: 840px){.button-container button{width:100%;justify-content:space-between;border-top-color:transparent;border-left:none;border-right:none;border-radius:0;padding:35px 0;font-size:16px;font-weight:500}}.button-container button:hover{color:var(--btn-white-hover-color)}.button-container button.loader{min-width:100px}.button-container button.transparent{background-color:transparent}.button-container button.active{color:#fff;background-color:var(--primary-green-color)}@media screen and (max-width: 840px){.button-container button.active{background-color:transparent;color:var(--black-color)}}.button-container button.active:hover{background-color:var(--btn-green-hover)}.button-container button.disabled{color:var(--disabled-color);background-color:var(--btn-disabled-bgc);pointer-events:none;cursor:default}@media screen and (max-width: 840px){.button-container button.disabled{background-color:transparent}}.button-container button .loader{width:24px;height:24px;background:url('data:image/svg+xml,<svg fill=\"none\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A <path%0D%0A d=\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\"%0D%0A stroke=\"%23306030E8\" stroke-width=\"4\"/>%0D%0A <mask height=\"24\" id=\"mask0\" mask-type=\"alpha\" maskUnits=\"userSpaceOnUse\" width=\"24\" x=\"0\" y=\"0\">%0D%0A <path%0D%0A d=\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\"%0D%0A stroke=\"%23FAFCFF\" stroke-width=\"4\"/>%0D%0A </mask>%0D%0A <g mask=\"url(%23mask0)\">%0D%0A <path d=\"M24.5621 -0.445973L12.0781 -0.00292969L12.9376 24.2163L25.4216 23.7733L24.5621 -0.445973Z\" fill=\"white\"/>%0D%0A <path%0D%0A d=\"M12.2578 4C13.3624 4 14.2578 3.10457 14.2578 2C14.2578 0.89543 13.3624 0 12.2578 0C11.1532 0 10.2578 0.89543 10.2578 2C10.2578 3.10457 11.1532 4 12.2578 4Z\"%0D%0A fill=\"white\"/>%0D%0A <path%0D%0A d=\"M12.916 23.9609C14.0206 23.9609 14.916 23.0655 14.916 21.9609C14.916 20.8564 14.0206 19.9609 12.916 19.9609C11.8114 19.9609 10.916 20.8564 10.916 21.9609C10.916 23.0655 11.8114 23.9609 12.916 23.9609Z\"%0D%0A fill=\"white\"/>%0D%0A </g>%0D%0A</svg>%0D%0A') center no-repeat;animation:rotate 1.5s linear infinite}.button-container button .arrow::ng-deep svg path{stroke:var(--menu-arr-color)}@media screen and (max-width: 840px){.button-container button .close{width:24px;height:24px;border-radius:8px;background-color:var(--gray-color-200)}.button-container button .close::ng-deep svg path{stroke:var(--second-gray-color)}}@keyframes rotate{to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: TooltipDirective, selector: "[ddTooltip]", inputs: ["ddTooltip", "withClick", "position"] }, { kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2140
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: LibFilterButtonComponent, isStandalone: true, selector: "dd-lib-filter-button", inputs: { btnTitle: "btnTitle", hintContent: "hintContent" }, outputs: { clearEvent: "clearEvent", hintEvent: "hintEvent" }, usesInheritance: true, ngImport: i0, template: "<div (click)=\"onClick($event)\" [class.disabled]=\"disabled\" [ngStyle]=\"{width}\" class=\"button-container\">\r\n <button\r\n #btn\r\n [attr.tabIndex]=\"disabled ? -1 : 0\"\r\n [autofocus]=\"autofocus\"\r\n [disabled]=\"disabled\"\r\n [ngClass]=\"{\r\n disabled: disabled,\r\n loader: showLoader,\r\n active: active,\r\n white: btnColor === 'white',\r\n transparent: btnColor === 'transparent',\r\n }\"\r\n [type]=\"buttonType\"\r\n class=\"\"\r\n role=\"button\">\r\n @if (!showLoader) {\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n } @if (showLoader) {\r\n <div class=\"loader\"></div>\r\n }\r\n </button>\r\n</div>\r\n\r\n<ng-template #content>\r\n @if (btnTitle) {\r\n <span class=\"btn-title\">{{ btnTitle }}</span>\r\n }\r\n <span #contentData><ng-content></ng-content></span>\r\n <span class=\"d-flex\">\r\n @if (hintContent) {\r\n <dd-lib-svg-icon (click)=\"hintClick($event)\"\r\n [ddTooltip]=\"hintContent\"\r\n [withClick]=\"true\"\r\n class=\"ml-8\"\r\n icon=\"question{{ active ? '-white-g' : '' }}\"></dd-lib-svg-icon>\r\n }\r\n @if (active) {\r\n <dd-lib-svg-icon (click)=\"onClear($event)\" color=\"white\" icon=\"close\" class=\"ml-8 cup close\"></dd-lib-svg-icon>\r\n }\r\n <dd-lib-svg-icon icon=\"toggle_arrow_right\" class=\"arrow show-tablet ml-12\"></dd-lib-svg-icon>\r\n </span>\r\n</ng-template>\r\n", styles: [":host{display:block}.button-container{display:inline-block}@media screen and (max-width: 840px){.button-container{display:block}}.button-container button{display:flex;align-items:center;justify-content:center;height:40px;font-size:14px;line-height:24px;outline:none;cursor:pointer;white-space:nowrap;color:var(--black-color);background-color:var(--btn-white-bgc);border:1px solid var(--gray-color-200);border-radius:24px;padding:8px 16px;font-weight:var(--font-wheit-small)}@media screen and (max-width: 840px){.button-container button{width:100%;justify-content:space-between;border-top-color:transparent;border-left:none;border-right:none;border-radius:0;padding:35px 0;font-size:16px;font-weight:500}}.button-container button:hover{color:var(--btn-white-hover-color)}.button-container button.loader{min-width:100px}.button-container button.transparent{background-color:transparent}.button-container button.active{color:#fff;background-color:var(--primary-green-color)}@media screen and (max-width: 840px){.button-container button.active{background-color:transparent;color:var(--black-color)}}.button-container button.active:hover{background-color:var(--btn-green-hover)}.button-container button.disabled{color:var(--disabled-color);background-color:var(--btn-disabled-bgc);pointer-events:none;cursor:default}@media screen and (max-width: 840px){.button-container button.disabled{background-color:transparent}}.button-container button .loader{width:24px;height:24px;background:url('data:image/svg+xml,<svg fill=\"none\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A <path%0D%0A d=\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\"%0D%0A stroke=\"%23306030E8\" stroke-width=\"4\"/>%0D%0A <mask height=\"24\" id=\"mask0\" mask-type=\"alpha\" maskUnits=\"userSpaceOnUse\" width=\"24\" x=\"0\" y=\"0\">%0D%0A <path%0D%0A d=\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\"%0D%0A stroke=\"%23FAFCFF\" stroke-width=\"4\"/>%0D%0A </mask>%0D%0A <g mask=\"url(%23mask0)\">%0D%0A <path d=\"M24.5621 -0.445973L12.0781 -0.00292969L12.9376 24.2163L25.4216 23.7733L24.5621 -0.445973Z\" fill=\"white\"/>%0D%0A <path%0D%0A d=\"M12.2578 4C13.3624 4 14.2578 3.10457 14.2578 2C14.2578 0.89543 13.3624 0 12.2578 0C11.1532 0 10.2578 0.89543 10.2578 2C10.2578 3.10457 11.1532 4 12.2578 4Z\"%0D%0A fill=\"white\"/>%0D%0A <path%0D%0A d=\"M12.916 23.9609C14.0206 23.9609 14.916 23.0655 14.916 21.9609C14.916 20.8564 14.0206 19.9609 12.916 19.9609C11.8114 19.9609 10.916 20.8564 10.916 21.9609C10.916 23.0655 11.8114 23.9609 12.916 23.9609Z\"%0D%0A fill=\"white\"/>%0D%0A </g>%0D%0A</svg>%0D%0A') center no-repeat;animation:rotate 1.5s linear infinite}.button-container button .arrow::ng-deep svg path{stroke:var(--menu-arr-color)}@media screen and (max-width: 840px){.button-container button .close{width:24px;height:24px;border-radius:8px;background-color:var(--gray-color-200)}.button-container button .close::ng-deep svg path{stroke:var(--second-gray-color)}}@keyframes rotate{to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: TooltipDirective, selector: "[ddTooltip]", inputs: ["ddTooltip", "withClick", "position"] }, { kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1850
2141
  }
1851
2142
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibFilterButtonComponent, decorators: [{
1852
2143
  type: Component,
@@ -1886,11 +2177,11 @@ class LibSkeletonComponent {
1886
2177
  this.length = length;
1887
2178
  }
1888
2179
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibSkeletonComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
1889
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: LibSkeletonComponent, isStandalone: true, selector: "dd-lib-skeleton", inputs: { deepParent: "deepParent", sHeight: "sHeight", sMb: "sMb", skeleton: "skeleton", plugs: "plugs" }, ngImport: i0, template: "@if (_skeleton && _plugs.length) { @for (plug of _plugs; track plug) {\r\n<div\r\n [class.skeleton]=\"_skeleton\"\r\n [style.height]=\"_skeleton ? sHeight : ''\"\r\n [style.margin-bottom]=\"sMb\"\r\n class=\"skelet full-width full-height\"></div>\r\n} } @else {\r\n<div [style.height]=\"_skeleton ? sHeight : ''\" [class.skeleton]=\"_skeleton\" [ddAutoHeight]=\"deepParent\">\r\n <ng-content></ng-content>\r\n</div>\r\n}\r\n", styles: [":host{min-width:100%}.skeleton{position:relative;overflow:hidden;min-height:100%}.skeleton:after{position:absolute;inset:0;transform:translate(-100%);background-image:linear-gradient(90deg,#d0cdcd00 0,#d0cdcd33 20%,#d0cdcd80 60%,#d0cdcd00);animation:shimmer 2s infinite;content:\"\"}@keyframes shimmer{to{transform:translate(100%)}}.skelet{min-height:100%;border-radius:24px}\n"], dependencies: [{ kind: "directive", type: AutoHeightDirective, selector: "[ddAutoHeight]", inputs: ["ddAutoHeight"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2180
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: LibSkeletonComponent, isStandalone: true, selector: "dd-lib-skeleton", inputs: { deepParent: "deepParent", sHeight: "sHeight", sMb: "sMb", skeleton: "skeleton", plugs: "plugs" }, ngImport: i0, template: "@if (_skeleton && _plugs.length) { @for (plug of _plugs; track plug) {\r\n<div\r\n [class.skeleton]=\"_skeleton\"\r\n [style.height]=\"_skeleton ? sHeight : ''\"\r\n [style.margin-bottom]=\"sMb\"\r\n class=\"skelet full-width full-height\"></div>\r\n} } @else {\r\n<div class=\"full-width\" [style.height]=\"_skeleton ? sHeight : ''\" [class.skeleton]=\"_skeleton\" [ddAutoHeight]=\"deepParent\">\r\n <ng-content></ng-content>\r\n</div>\r\n}\r\n", styles: [":host{min-width:100%;display:flex}.skeleton{position:relative;overflow:hidden;min-height:100%;flex-grow:1;border-radius:12px}.skeleton:after{position:absolute;inset:0;transform:translate(-100%);background-image:linear-gradient(90deg,#d0cdcd00 0,#d0cdcd33 20%,#d0cdcd80 60%,#d0cdcd00);animation:shimmer 2s infinite;content:\"\"}@keyframes shimmer{to{transform:translate(100%)}}.skelet{min-height:100%;border-radius:24px}\n"], dependencies: [{ kind: "directive", type: AutoHeightDirective, selector: "[ddAutoHeight]", inputs: ["ddAutoHeight"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1890
2181
  }
1891
2182
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibSkeletonComponent, decorators: [{
1892
2183
  type: Component,
1893
- args: [{ selector: 'dd-lib-skeleton', standalone: true, imports: [AutoHeightDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (_skeleton && _plugs.length) { @for (plug of _plugs; track plug) {\r\n<div\r\n [class.skeleton]=\"_skeleton\"\r\n [style.height]=\"_skeleton ? sHeight : ''\"\r\n [style.margin-bottom]=\"sMb\"\r\n class=\"skelet full-width full-height\"></div>\r\n} } @else {\r\n<div [style.height]=\"_skeleton ? sHeight : ''\" [class.skeleton]=\"_skeleton\" [ddAutoHeight]=\"deepParent\">\r\n <ng-content></ng-content>\r\n</div>\r\n}\r\n", styles: [":host{min-width:100%}.skeleton{position:relative;overflow:hidden;min-height:100%}.skeleton:after{position:absolute;inset:0;transform:translate(-100%);background-image:linear-gradient(90deg,#d0cdcd00 0,#d0cdcd33 20%,#d0cdcd80 60%,#d0cdcd00);animation:shimmer 2s infinite;content:\"\"}@keyframes shimmer{to{transform:translate(100%)}}.skelet{min-height:100%;border-radius:24px}\n"] }]
2184
+ args: [{ selector: 'dd-lib-skeleton', standalone: true, imports: [AutoHeightDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (_skeleton && _plugs.length) { @for (plug of _plugs; track plug) {\r\n<div\r\n [class.skeleton]=\"_skeleton\"\r\n [style.height]=\"_skeleton ? sHeight : ''\"\r\n [style.margin-bottom]=\"sMb\"\r\n class=\"skelet full-width full-height\"></div>\r\n} } @else {\r\n<div class=\"full-width\" [style.height]=\"_skeleton ? sHeight : ''\" [class.skeleton]=\"_skeleton\" [ddAutoHeight]=\"deepParent\">\r\n <ng-content></ng-content>\r\n</div>\r\n}\r\n", styles: [":host{min-width:100%;display:flex}.skeleton{position:relative;overflow:hidden;min-height:100%;flex-grow:1;border-radius:12px}.skeleton:after{position:absolute;inset:0;transform:translate(-100%);background-image:linear-gradient(90deg,#d0cdcd00 0,#d0cdcd33 20%,#d0cdcd80 60%,#d0cdcd00);animation:shimmer 2s infinite;content:\"\"}@keyframes shimmer{to{transform:translate(100%)}}.skelet{min-height:100%;border-radius:24px}\n"] }]
1894
2185
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { deepParent: [{
1895
2186
  type: Input
1896
2187
  }], sHeight: [{
@@ -1911,11 +2202,11 @@ class LibCardComponent {
1911
2202
  this.cardBtnEvent = new EventEmitter();
1912
2203
  }
1913
2204
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibCardComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
1914
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: LibCardComponent, isStandalone: true, selector: "dd-lib-card", inputs: { type: "type", footerBtn: "footerBtn", sHeight: "sHeight", skeleton: "skeleton", parentLvlForSkeleton: "parentLvlForSkeleton", plugs: "plugs", borderRadius: "borderRadius" }, outputs: { cardBtnEvent: "cardBtnEvent" }, ngImport: i0, template: "<div\r\n class=\"lib-card-wrapper\"\r\n [class.border-r-bottom]=\"borderRadius === 'bottom'\"\r\n [class.border-r-none]=\"borderRadius === 'none'\"\r\n [class.border-r-top]=\"borderRadius === 'top'\"\r\n [class.giant-card]=\"type === 'giant'\"\r\n [class.small-card]=\"type === 'small'\"\r\n [class.with-footer]=\"!!footerBtn\">\r\n <dd-lib-skeleton\r\n [deepParent]=\"parentLvlForSkeleton\"\r\n [skeleton]=\"skeleton\"\r\n [plugs]=\"plugs\"\r\n [sHeight]=\"sHeight\">\r\n <div class=\"lib-card\">\r\n <ng-content></ng-content>\r\n </div>\r\n </dd-lib-skeleton>\r\n</div>\r\n@if (footerBtn) {\r\n<div (click)=\"cardBtnEvent.emit(); cdr.detectChanges()\" class=\"lib-card-footer-btn\">\r\n {{ footerBtn }}\r\n</div>\r\n}\r\n", styles: [":host{display:block}.lib-card-wrapper{border-radius:24px;box-shadow:var(--main-card-shadow);background-color:var(--main-card-color);min-height:100%}@media screen and (max-width: 480px){.lib-card-wrapper{border-radius:16px}}.lib-card-wrapper.border-r-bottom{border-radius:0 0 24px 24px}@media screen and (max-width: 480px){.lib-card-wrapper.border-r-bottom{border-radius:0 0 16px 16px}}.lib-card-wrapper.border-r-top{border-radius:24px 24px 0 0}@media screen and (max-width: 480px){.lib-card-wrapper.border-r-top{border-radius:16px 16px 0 0}}.lib-card-wrapper.border-r-none{border-radius:0}.lib-card-wrapper.small-card{border-radius:12px}.lib-card-wrapper.giant-card .lib-card{padding:32px}@media screen and (max-width: 840px){.lib-card-wrapper.giant-card .lib-card{padding:24px}}@media screen and (max-width: 480px){.lib-card-wrapper.giant-card .lib-card{padding:16px}}.lib-card-wrapper.with-footer{border-radius:24px 24px 0 0}@media screen and (max-width: 480px){.lib-card-wrapper.with-footer{border-radius:16px 16px 0 0}}.lib-card{min-height:100%;padding:24px}@media screen and (max-width: 480px){.lib-card{padding:16px}}.lib-card-footer-btn{border-radius:0 0 12px 12px;font-weight:500;background-color:var(--primary-green-color);color:var(--white-color);cursor:pointer;height:48px;display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "component", type: LibSkeletonComponent, selector: "dd-lib-skeleton", inputs: ["deepParent", "sHeight", "sMb", "skeleton", "plugs"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2205
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: LibCardComponent, isStandalone: true, selector: "dd-lib-card", inputs: { type: "type", footerBtn: "footerBtn", sHeight: "sHeight", skeleton: "skeleton", parentLvlForSkeleton: "parentLvlForSkeleton", plugs: "plugs", borderRadius: "borderRadius" }, outputs: { cardBtnEvent: "cardBtnEvent" }, ngImport: i0, template: "<div\r\n class=\"lib-card-wrapper\"\r\n [class.border-r-bottom]=\"borderRadius === 'bottom'\"\r\n [class.border-r-none]=\"borderRadius === 'none'\"\r\n [class.border-r-top]=\"borderRadius === 'top'\"\r\n [class.giant-card]=\"type === 'giant'\"\r\n [class.small-card]=\"type === 'small'\"\r\n [class.with-footer]=\"!!footerBtn\">\r\n @if (skeleton) {\r\n <dd-lib-skeleton\r\n [deepParent]=\"parentLvlForSkeleton\"\r\n [skeleton]=\"skeleton\"\r\n [plugs]=\"plugs\"\r\n [sHeight]=\"sHeight\">\r\n <div class=\"lib-card\">\r\n <ng-content></ng-content>\r\n </div>\r\n </dd-lib-skeleton>\r\n } @else {\r\n <div class=\"lib-card\">\r\n <ng-content></ng-content>\r\n </div>\r\n }\r\n</div>\r\n@if (footerBtn) {\r\n<div (click)=\"cardBtnEvent.emit(); cdr.detectChanges()\" class=\"lib-card-footer-btn\">\r\n {{ footerBtn }}\r\n</div>\r\n}\r\n", styles: [":host{display:block}.lib-card-wrapper{display:flex;border-radius:24px;box-shadow:var(--main-card-shadow);background-color:var(--main-card-color);min-height:100%}@media screen and (max-width: 480px){.lib-card-wrapper{border-radius:16px}}.lib-card-wrapper.border-r-bottom{border-radius:0 0 24px 24px}@media screen and (max-width: 480px){.lib-card-wrapper.border-r-bottom{border-radius:0 0 16px 16px}}.lib-card-wrapper.border-r-top{border-radius:24px 24px 0 0}@media screen and (max-width: 480px){.lib-card-wrapper.border-r-top{border-radius:16px 16px 0 0}}.lib-card-wrapper.border-r-none{border-radius:0}.lib-card-wrapper.small-card{border-radius:12px}.lib-card-wrapper.giant-card .lib-card{padding:32px}@media screen and (max-width: 840px){.lib-card-wrapper.giant-card .lib-card{padding:24px}}@media screen and (max-width: 480px){.lib-card-wrapper.giant-card .lib-card{padding:16px}}.lib-card-wrapper.with-footer{border-radius:24px 24px 0 0}@media screen and (max-width: 480px){.lib-card-wrapper.with-footer{border-radius:16px 16px 0 0}}.lib-card{min-height:100%;min-width:100%;padding:24px;display:flex}@media screen and (max-width: 480px){.lib-card{padding:16px}}.lib-card-footer-btn{border-radius:0 0 12px 12px;font-weight:500;background-color:var(--primary-green-color);color:var(--white-color);cursor:pointer;height:48px;display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "component", type: LibSkeletonComponent, selector: "dd-lib-skeleton", inputs: ["deepParent", "sHeight", "sMb", "skeleton", "plugs"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1915
2206
  }
1916
2207
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibCardComponent, decorators: [{
1917
2208
  type: Component,
1918
- args: [{ selector: 'dd-lib-card', standalone: true, imports: [LibSkeletonComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"lib-card-wrapper\"\r\n [class.border-r-bottom]=\"borderRadius === 'bottom'\"\r\n [class.border-r-none]=\"borderRadius === 'none'\"\r\n [class.border-r-top]=\"borderRadius === 'top'\"\r\n [class.giant-card]=\"type === 'giant'\"\r\n [class.small-card]=\"type === 'small'\"\r\n [class.with-footer]=\"!!footerBtn\">\r\n <dd-lib-skeleton\r\n [deepParent]=\"parentLvlForSkeleton\"\r\n [skeleton]=\"skeleton\"\r\n [plugs]=\"plugs\"\r\n [sHeight]=\"sHeight\">\r\n <div class=\"lib-card\">\r\n <ng-content></ng-content>\r\n </div>\r\n </dd-lib-skeleton>\r\n</div>\r\n@if (footerBtn) {\r\n<div (click)=\"cardBtnEvent.emit(); cdr.detectChanges()\" class=\"lib-card-footer-btn\">\r\n {{ footerBtn }}\r\n</div>\r\n}\r\n", styles: [":host{display:block}.lib-card-wrapper{border-radius:24px;box-shadow:var(--main-card-shadow);background-color:var(--main-card-color);min-height:100%}@media screen and (max-width: 480px){.lib-card-wrapper{border-radius:16px}}.lib-card-wrapper.border-r-bottom{border-radius:0 0 24px 24px}@media screen and (max-width: 480px){.lib-card-wrapper.border-r-bottom{border-radius:0 0 16px 16px}}.lib-card-wrapper.border-r-top{border-radius:24px 24px 0 0}@media screen and (max-width: 480px){.lib-card-wrapper.border-r-top{border-radius:16px 16px 0 0}}.lib-card-wrapper.border-r-none{border-radius:0}.lib-card-wrapper.small-card{border-radius:12px}.lib-card-wrapper.giant-card .lib-card{padding:32px}@media screen and (max-width: 840px){.lib-card-wrapper.giant-card .lib-card{padding:24px}}@media screen and (max-width: 480px){.lib-card-wrapper.giant-card .lib-card{padding:16px}}.lib-card-wrapper.with-footer{border-radius:24px 24px 0 0}@media screen and (max-width: 480px){.lib-card-wrapper.with-footer{border-radius:16px 16px 0 0}}.lib-card{min-height:100%;padding:24px}@media screen and (max-width: 480px){.lib-card{padding:16px}}.lib-card-footer-btn{border-radius:0 0 12px 12px;font-weight:500;background-color:var(--primary-green-color);color:var(--white-color);cursor:pointer;height:48px;display:flex;align-items:center;justify-content:center}\n"] }]
2209
+ args: [{ selector: 'dd-lib-card', standalone: true, imports: [LibSkeletonComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"lib-card-wrapper\"\r\n [class.border-r-bottom]=\"borderRadius === 'bottom'\"\r\n [class.border-r-none]=\"borderRadius === 'none'\"\r\n [class.border-r-top]=\"borderRadius === 'top'\"\r\n [class.giant-card]=\"type === 'giant'\"\r\n [class.small-card]=\"type === 'small'\"\r\n [class.with-footer]=\"!!footerBtn\">\r\n @if (skeleton) {\r\n <dd-lib-skeleton\r\n [deepParent]=\"parentLvlForSkeleton\"\r\n [skeleton]=\"skeleton\"\r\n [plugs]=\"plugs\"\r\n [sHeight]=\"sHeight\">\r\n <div class=\"lib-card\">\r\n <ng-content></ng-content>\r\n </div>\r\n </dd-lib-skeleton>\r\n } @else {\r\n <div class=\"lib-card\">\r\n <ng-content></ng-content>\r\n </div>\r\n }\r\n</div>\r\n@if (footerBtn) {\r\n<div (click)=\"cardBtnEvent.emit(); cdr.detectChanges()\" class=\"lib-card-footer-btn\">\r\n {{ footerBtn }}\r\n</div>\r\n}\r\n", styles: [":host{display:block}.lib-card-wrapper{display:flex;border-radius:24px;box-shadow:var(--main-card-shadow);background-color:var(--main-card-color);min-height:100%}@media screen and (max-width: 480px){.lib-card-wrapper{border-radius:16px}}.lib-card-wrapper.border-r-bottom{border-radius:0 0 24px 24px}@media screen and (max-width: 480px){.lib-card-wrapper.border-r-bottom{border-radius:0 0 16px 16px}}.lib-card-wrapper.border-r-top{border-radius:24px 24px 0 0}@media screen and (max-width: 480px){.lib-card-wrapper.border-r-top{border-radius:16px 16px 0 0}}.lib-card-wrapper.border-r-none{border-radius:0}.lib-card-wrapper.small-card{border-radius:12px}.lib-card-wrapper.giant-card .lib-card{padding:32px}@media screen and (max-width: 840px){.lib-card-wrapper.giant-card .lib-card{padding:24px}}@media screen and (max-width: 480px){.lib-card-wrapper.giant-card .lib-card{padding:16px}}.lib-card-wrapper.with-footer{border-radius:24px 24px 0 0}@media screen and (max-width: 480px){.lib-card-wrapper.with-footer{border-radius:16px 16px 0 0}}.lib-card{min-height:100%;min-width:100%;padding:24px;display:flex}@media screen and (max-width: 480px){.lib-card{padding:16px}}.lib-card-footer-btn{border-radius:0 0 12px 12px;font-weight:500;background-color:var(--primary-green-color);color:var(--white-color);cursor:pointer;height:48px;display:flex;align-items:center;justify-content:center}\n"] }]
1919
2210
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { type: [{
1920
2211
  type: Input
1921
2212
  }], footerBtn: [{
@@ -1935,14 +2226,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
1935
2226
  }] } });
1936
2227
 
1937
2228
  class LibRadioComponent {
1938
- constructor() {
2229
+ static { this.idCounter = 1; }
2230
+ constructor(cdr) {
2231
+ this.cdr = cdr;
1939
2232
  this.disabled = false; // состояние: по умолчанию - активное
1940
2233
  this.required = false;
1941
2234
  this.checked = false;
1942
2235
  this.changed = new EventEmitter();
1943
2236
  this.modelInitialization = true;
1944
2237
  }
1945
- static { this.idCounter = 1; }
1946
2238
  ngOnInit() {
1947
2239
  if (!this.radioId) {
1948
2240
  this.radioId = 'dd-radio-' + LibRadioComponent.idCounter++;
@@ -1969,16 +2261,17 @@ class LibRadioComponent {
1969
2261
  return;
1970
2262
  }
1971
2263
  this.checked = value === this.value;
2264
+ this.cdr.detectChanges();
1972
2265
  }
1973
2266
  propagateChange(_value) { }
1974
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibRadioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2267
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibRadioComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
1975
2268
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: LibRadioComponent, isStandalone: true, selector: "dd-lib-radio", inputs: { radioId: "radioId", disabled: "disabled", required: "required", name: "name", value: "value", checked: "checked" }, outputs: { changed: "changed" }, providers: [
1976
2269
  {
1977
2270
  provide: NG_VALUE_ACCESSOR,
1978
2271
  useExisting: forwardRef(() => LibRadioComponent),
1979
2272
  multi: true,
1980
2273
  },
1981
- ], ngImport: i0, template: "<label [for]=\"radioId\" [ngClass]=\"{ disabled: disabled }\" class=\"radio\">\r\n <input\r\n (change)=\"onSelected($event.target)\"\r\n [attr.aria-checked]=\"checked\"\r\n [attr.tabIndex]=\"disabled ? -1 : 0\"\r\n [attr.value]=\"value\"\r\n [checked]=\"checked\"\r\n [disabled]=\"disabled\"\r\n [id]=\"radioId\"\r\n [name]=\"name\"\r\n [ngClass]=\"{ disabled: disabled }\"\r\n [required]=\"required\"\r\n class=\"radio__input\"\r\n role=\"radio\"\r\n type=\"radio\" />\r\n <div [class.focused]=\"focused\" class=\"radio__mark\"></div>\r\n <div class=\"radio__text g-text\" [ngClass]=\"disabled ? 'gray' : 'black'\">\r\n <span><ng-content></ng-content></span>\r\n </div>\r\n</label>\r\n", styles: [":host{outline:none}.radio{position:relative;display:flex;align-items:center;cursor:pointer}.radio:hover .radio__mark{border-color:var(--light-black-color)}.radio.disabled{cursor:default}.radio.disabled .radio__mark{border-color:var(--gray-color-200)}.radio__input{opacity:0;position:absolute;z-index:-1;min-width:20px;min-height:20px;margin:0}.radio__input:focus+.radio__mark{border-color:var(--light-black-color)}.radio__input:checked+.radio__mark{border:2px solid var(--primary-green-color)}.radio__input:checked+.radio__mark:before{background:var(--primary-green-color)}.radio__input:checked~.radio__text{font-weight:500}.radio__input:checked.disabled+.radio__mark{border-color:var(--gray-color-200)}.radio__input:checked.disabled+.radio__mark:before{background:var(--gray-color-200)}.radio__mark{position:relative;width:20px;height:20px;min-width:20px;min-height:20px;border:1px solid var(--primary-gray-color);border-radius:50%;margin-right:12px;transition:border-color .25s linear}.radio__mark:before{position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:transparent;transition:background-color .25s linear;content:\"\"}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2274
+ ], ngImport: i0, template: "<label [for]=\"radioId\" [ngClass]=\"{ disabled: disabled }\" class=\"radio\">\r\n <input\r\n (change)=\"onSelected($event.target)\"\r\n [attr.aria-checked]=\"checked\"\r\n [attr.tabIndex]=\"disabled ? -1 : 0\"\r\n [attr.value]=\"value\"\r\n [checked]=\"checked\"\r\n [disabled]=\"disabled\"\r\n [id]=\"radioId\"\r\n [name]=\"name\"\r\n [ngClass]=\"{ disabled: disabled }\"\r\n [required]=\"required\"\r\n class=\"radio__input\"\r\n role=\"radio\"\r\n type=\"radio\" />\r\n <div [class.focused]=\"focused\" class=\"radio__mark\"></div>\r\n <div class=\"radio__text g-text\" [ngClass]=\"disabled ? 'gray' : 'black'\">\r\n <span><ng-content></ng-content></span>\r\n </div>\r\n</label>\r\n", styles: [":host{outline:none}.radio{position:relative;display:flex;align-items:center;cursor:pointer}.radio:hover .radio__mark{border-color:var(--light-black-color)}.radio.disabled{cursor:default}.radio.disabled .radio__mark{border-color:var(--gray-color-200)}.radio__input{opacity:0;position:absolute;z-index:-1;min-width:20px;min-height:20px;margin:0}.radio__input:focus+.radio__mark{border-color:var(--light-black-color)}.radio__input:checked+.radio__mark{border:2px solid var(--primary-green-color)}.radio__input:checked+.radio__mark:before{background:var(--primary-green-color)}.radio__input:checked~.radio__text{font-weight:500}.radio__input:checked.disabled+.radio__mark{border-color:var(--gray-color-200)}.radio__input:checked.disabled+.radio__mark:before{background:var(--gray-color-200)}.radio__mark{position:relative;width:20px;height:20px;min-width:20px;min-height:20px;border:1px solid var(--primary-gray-color);border-radius:50%;margin-right:12px;transition:border-color .25s linear}.radio__mark:before{position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:transparent;transition:background-color .25s linear;content:\"\"}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1982
2275
  }
1983
2276
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibRadioComponent, decorators: [{
1984
2277
  type: Component,
@@ -1989,7 +2282,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
1989
2282
  multi: true,
1990
2283
  },
1991
2284
  ], template: "<label [for]=\"radioId\" [ngClass]=\"{ disabled: disabled }\" class=\"radio\">\r\n <input\r\n (change)=\"onSelected($event.target)\"\r\n [attr.aria-checked]=\"checked\"\r\n [attr.tabIndex]=\"disabled ? -1 : 0\"\r\n [attr.value]=\"value\"\r\n [checked]=\"checked\"\r\n [disabled]=\"disabled\"\r\n [id]=\"radioId\"\r\n [name]=\"name\"\r\n [ngClass]=\"{ disabled: disabled }\"\r\n [required]=\"required\"\r\n class=\"radio__input\"\r\n role=\"radio\"\r\n type=\"radio\" />\r\n <div [class.focused]=\"focused\" class=\"radio__mark\"></div>\r\n <div class=\"radio__text g-text\" [ngClass]=\"disabled ? 'gray' : 'black'\">\r\n <span><ng-content></ng-content></span>\r\n </div>\r\n</label>\r\n", styles: [":host{outline:none}.radio{position:relative;display:flex;align-items:center;cursor:pointer}.radio:hover .radio__mark{border-color:var(--light-black-color)}.radio.disabled{cursor:default}.radio.disabled .radio__mark{border-color:var(--gray-color-200)}.radio__input{opacity:0;position:absolute;z-index:-1;min-width:20px;min-height:20px;margin:0}.radio__input:focus+.radio__mark{border-color:var(--light-black-color)}.radio__input:checked+.radio__mark{border:2px solid var(--primary-green-color)}.radio__input:checked+.radio__mark:before{background:var(--primary-green-color)}.radio__input:checked~.radio__text{font-weight:500}.radio__input:checked.disabled+.radio__mark{border-color:var(--gray-color-200)}.radio__input:checked.disabled+.radio__mark:before{background:var(--gray-color-200)}.radio__mark{position:relative;width:20px;height:20px;min-width:20px;min-height:20px;border:1px solid var(--primary-gray-color);border-radius:50%;margin-right:12px;transition:border-color .25s linear}.radio__mark:before{position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:transparent;transition:background-color .25s linear;content:\"\"}\n"] }]
1992
- }], propDecorators: { radioId: [{
2285
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { radioId: [{
1993
2286
  type: Input
1994
2287
  }], disabled: [{
1995
2288
  type: Input
@@ -2345,7 +2638,7 @@ class LibCalendarComponent {
2345
2638
  useExisting: forwardRef(() => LibCalendarComponent),
2346
2639
  multi: true,
2347
2640
  },
2348
- ], ngImport: i0, template: "@if (mode === 'icon') {\r\n<div class=\"pos-relative d-flex align-center\">\r\n @if (dateValue) {\r\n <span class=\"mr-12 green\">{{ dateValue | date: 'dd.MM.yyyy' }}</span>\r\n }\r\n <dd-lib-svg-icon class=\"cup\" (click)=\"showCalendar = !showCalendar\" icon=\"calendar\"></dd-lib-svg-icon>\r\n @if (dateValue) {\r\n <dd-lib-svg-icon class=\"cup\" (click)=\"canselDate()\" icon=\"clear\"></dd-lib-svg-icon>\r\n } @if (showCalendar) {\r\n <div class=\"calendar-abs-wrapper\">\r\n <ng-template [ngTemplateOutlet]=\"calendar\"></ng-template>\r\n </div>\r\n }\r\n</div>\r\n} @if (mode === 'full') {\r\n<ng-template [ngTemplateOutlet]=\"calendar\"></ng-template>\r\n}\r\n\r\n<ng-template #calendar>\r\n <dd-lib-card class=\"calendar-block\" type=\"small\">\r\n <div class=\"calendar-block__header\">\r\n <div class=\"calendar-block__header_arrow\">\r\n <dd-lib-svg-icon (click)=\"changeMonth(-1)\" icon=\"left_chevron\"></dd-lib-svg-icon>\r\n </div>\r\n <div class=\"calendar-block__header_year\">{{ getMonth() + ' ' + year }}</div>\r\n <div class=\"calendar-block__header_arrow\">\r\n <dd-lib-svg-icon (click)=\"changeMonth(1)\" icon=\"right_chevron\"></dd-lib-svg-icon>\r\n </div>\r\n </div>\r\n <div class=\"calendar-block__week\">\r\n @for (day of week; track day) {\r\n <div class=\"calendar-block__week_day\">{{ day }}</div>\r\n }\r\n </div>\r\n <div class=\"calendar-block__days\">\r\n @for (day of daysInMonth?.prevDays; track day) {\r\n <div class=\"calendar-block__days_day hide\">{{ day }}</div>\r\n } @for (day of daysInMonth?.days; track day) {\r\n <div\r\n (click)=\"selectDay(day)\"\r\n [class.active]=\"checkActiveDay(day)\"\r\n\r\n [class.current]=\"\r\n dateNow.getDate() === day && dateNow.getMonth() === month && dateNow.getFullYear() === year\r\n \"\r\n [class.hide]=\"checkHideDay(day)\"\r\n class=\"calendar-block__days_day normal\">\r\n {{ day }}\r\n </div>\r\n } @for (day of daysInMonth?.lastDays; track day) {\r\n <div class=\"calendar-block__days_day hide\">{{ day }}</div>\r\n }\r\n </div>\r\n @if(needTime) {\r\n <div class=\"calendar-block__time\">\r\n <div class=\"d-flex justify-between\">\r\n <div class=\"text-plain\">\u0412\u0440\u0435\u043C\u044F</div>\r\n <div class=\"d-flex\">\r\n <input [(ngModel)]=\"hours\" class=\"calendar-block__time-input\"\r\n type=\"text\"\r\n [ddMaxNum]=\"maxHours\"\r\n [curVal]=\"hours\"\r\n [disabled]=\"!dateValue\"\r\n [regExp]=\"true\"\r\n ddBanSymbol=\"^\\d+$\"\r\n max=\"23\"\r\n maxlength=\"2\"\r\n pattern=\"^\\d+$\">\r\n <span class=\"second-dot\">:</span>\r\n <input [(ngModel)]=\"minutes\" class=\"calendar-block__time-input\"\r\n [ddMaxNum]=\"maxMinutes\"\r\n [curVal]=\"minutes\"\r\n [disabled]=\"!dateValue\"\r\n [regExp]=\"true\"\r\n ddBanSymbol=\"^\\d+$\"\r\n max=\"59\"\r\n maxlength=\"2\"\r\n pattern=\"^\\d+$\"\r\n type=\"text\">\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n <div class=\"calendar-block__footer\">\r\n <dd-lib-button (click)=\"canselDate()\" [btnColor]=\"'transparent'\" class=\"calendar-block__footer_btn\"\r\n >\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C\r\n </dd-lib-button>\r\n <dd-lib-button (click)=\"selectDate()\"\r\n [disabled]=\"(!dateValue && !rangeMode) || (rangeMode && (!dateStart || !dateEnd))\"\r\n class=\"calendar-block__footer_btn\"\r\n >\u0412\u044B\u0431\u0440\u0430\u0442\u044C\r\n </dd-lib-button>\r\n </div>\r\n </dd-lib-card>\r\n</ng-template>\r\n", styles: [":host{display:block;-webkit-user-select:none;user-select:none}.calendar-block{z-index:1100;display:block}@media screen and (max-width: 840px){.calendar-block{height:100%}}.calendar-block__time{padding:22px 0;margin:22px 0;border-top:1px solid var(--gray-color-200);border-bottom:1px solid var(--gray-color-200)}.calendar-block__time-input{width:56px;height:36px;border-radius:12px;border:1px solid var(--primary-gray-color);text-align:center}.calendar-block__time .second-dot{margin:auto 8px;animation:blink 1s step-end infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.calendar-block__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;color:var(--calendar-gray-color);font-size:14px;font-weight:400;line-height:24px}.calendar-block__header_arrow{cursor:pointer}.calendar-block__week{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;justify-items:center;color:var(--primary-green-color);font-size:10px;font-weight:400;line-height:12px;letter-spacing:1.5px;margin-bottom:22px}.calendar-block__week_day{display:flex;align-items:center;justify-content:space-around}.calendar-block__days{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;justify-items:center;margin-bottom:22px}.calendar-block__days_day{cursor:pointer;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:29px;color:var(--light-black-color)}.calendar-block__days_day.current{border:1px solid var(--primary-green-color)}.calendar-block__days_day.active,.calendar-block__days_day.normal:hover{background-color:var(--primary-green-color);color:var(--white-color)}.calendar-block__days_day.hide{pointer-events:none;cursor:default;color:var(--calendar-gray-hide-color)}.calendar-block__footer{display:flex;align-items:center;justify-content:space-between}.calendar-abs-wrapper{position:absolute;box-shadow:var(--main-card-shadow);top:0;right:0;z-index:1111}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"], dependencies: [{ kind: "component", type: LibCardComponent, selector: "dd-lib-card", inputs: ["type", "footerBtn", "sHeight", "skeleton", "parentLvlForSkeleton", "plugs", "borderRadius"], outputs: ["cardBtnEvent"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "component", type: LibButtonComponent, selector: "dd-lib-button", inputs: ["noPadding", "loaderColor"] }, { kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$5.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1$5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: BanSymbolDirective, selector: "[ddBanSymbol]", inputs: ["ddBanSymbol", "regExp"] }, { kind: "directive", type: MaxNumDirective, selector: "[ddMaxNum]", inputs: ["ddMaxNum", "curVal"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2641
+ ], ngImport: i0, template: "@if (mode === 'icon') {\r\n<div class=\"pos-relative d-flex align-center\">\r\n @if (dateValue) {\r\n <span class=\"mr-12 green\">{{ dateValue | date: 'dd.MM.yyyy' }}</span>\r\n }\r\n <dd-lib-svg-icon class=\"cup\" (click)=\"showCalendar = !showCalendar\" icon=\"calendar\"></dd-lib-svg-icon>\r\n @if (dateValue) {\r\n <dd-lib-svg-icon class=\"cup\" (click)=\"canselDate()\" icon=\"clear\"></dd-lib-svg-icon>\r\n } @if (showCalendar) {\r\n <div class=\"calendar-abs-wrapper\">\r\n <ng-template [ngTemplateOutlet]=\"calendar\"></ng-template>\r\n </div>\r\n }\r\n</div>\r\n} @if (mode === 'full') {\r\n<ng-template [ngTemplateOutlet]=\"calendar\"></ng-template>\r\n}\r\n\r\n<ng-template #calendar>\r\n <dd-lib-card class=\"calendar-block\" type=\"small\">\r\n <div class=\"full-width\">\r\n <div class=\"calendar-block__header\">\r\n <div class=\"calendar-block__header_arrow\">\r\n <dd-lib-svg-icon (click)=\"changeMonth(-1)\" icon=\"left_chevron\"></dd-lib-svg-icon>\r\n </div>\r\n <div class=\"calendar-block__header_year\">{{ getMonth() + ' ' + year }}</div>\r\n <div class=\"calendar-block__header_arrow\">\r\n <dd-lib-svg-icon (click)=\"changeMonth(1)\" icon=\"right_chevron\"></dd-lib-svg-icon>\r\n </div>\r\n </div>\r\n <div class=\"calendar-block__week\">\r\n @for (day of week; track day) {\r\n <div class=\"calendar-block__week_day\">{{ day }}</div>\r\n }\r\n </div>\r\n <div class=\"calendar-block__days\">\r\n @for (day of daysInMonth?.prevDays; track day) {\r\n <div class=\"calendar-block__days_day hide\">{{ day }}</div>\r\n } @for (day of daysInMonth?.days; track day) {\r\n <div\r\n (click)=\"selectDay(day)\"\r\n [class.active]=\"checkActiveDay(day)\"\r\n\r\n [class.current]=\"\r\n dateNow.getDate() === day && dateNow.getMonth() === month && dateNow.getFullYear() === year\r\n \"\r\n [class.hide]=\"checkHideDay(day)\"\r\n class=\"calendar-block__days_day normal\">\r\n {{ day }}\r\n </div>\r\n } @for (day of daysInMonth?.lastDays; track day) {\r\n <div class=\"calendar-block__days_day hide\">{{ day }}</div>\r\n }\r\n </div>\r\n @if(needTime) {\r\n <div class=\"calendar-block__time\">\r\n <div class=\"d-flex justify-between\">\r\n <div class=\"text-plain\">\u0412\u0440\u0435\u043C\u044F</div>\r\n <div class=\"d-flex\">\r\n <input [(ngModel)]=\"hours\" class=\"calendar-block__time-input\"\r\n type=\"text\"\r\n [ddMaxNum]=\"maxHours\"\r\n [curVal]=\"hours\"\r\n [disabled]=\"!dateValue\"\r\n [regExp]=\"true\"\r\n ddBanSymbol=\"^\\d+$\"\r\n max=\"23\"\r\n maxlength=\"2\"\r\n pattern=\"^\\d+$\">\r\n <span class=\"second-dot\">:</span>\r\n <input [(ngModel)]=\"minutes\" class=\"calendar-block__time-input\"\r\n [ddMaxNum]=\"maxMinutes\"\r\n [curVal]=\"minutes\"\r\n [disabled]=\"!dateValue\"\r\n [regExp]=\"true\"\r\n ddBanSymbol=\"^\\d+$\"\r\n max=\"59\"\r\n maxlength=\"2\"\r\n pattern=\"^\\d+$\"\r\n type=\"text\">\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n <div class=\"calendar-block__footer\">\r\n <dd-lib-button (click)=\"canselDate()\" [btnColor]=\"'transparent'\" class=\"calendar-block__footer_btn\"\r\n >\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C\r\n </dd-lib-button>\r\n <dd-lib-button (click)=\"selectDate()\"\r\n [disabled]=\"(!dateValue && !rangeMode) || (rangeMode && (!dateStart || !dateEnd))\"\r\n class=\"calendar-block__footer_btn\"\r\n >\u0412\u044B\u0431\u0440\u0430\u0442\u044C\r\n </dd-lib-button>\r\n </div>\r\n </div>\r\n </dd-lib-card>\r\n</ng-template>\r\n", styles: [":host{display:block;-webkit-user-select:none;user-select:none}.calendar-block{z-index:1100;display:block}@media screen and (max-width: 840px){.calendar-block{height:100%}}.calendar-block__time{padding:22px 0;margin:22px 0;border-top:1px solid var(--gray-color-200);border-bottom:1px solid var(--gray-color-200)}.calendar-block__time-input{width:56px;height:36px;border-radius:12px;border:1px solid var(--primary-gray-color);text-align:center}.calendar-block__time .second-dot{margin:auto 8px;animation:blink 1s step-end infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.calendar-block__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;color:var(--calendar-gray-color);font-size:14px;font-weight:400;line-height:24px}.calendar-block__header_arrow{cursor:pointer}.calendar-block__week{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;justify-items:center;color:var(--primary-green-color);font-size:10px;font-weight:400;line-height:12px;letter-spacing:1.5px;margin-bottom:22px}.calendar-block__week_day{display:flex;align-items:center;justify-content:space-around}.calendar-block__days{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;justify-items:center;margin-bottom:22px}.calendar-block__days_day{cursor:pointer;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:29px;color:var(--light-black-color)}.calendar-block__days_day.current{border:1px solid var(--primary-green-color)}.calendar-block__days_day.active,.calendar-block__days_day.normal:hover{background-color:var(--primary-green-color);color:var(--white-color)}.calendar-block__days_day.hide{pointer-events:none;cursor:default;color:var(--calendar-gray-hide-color)}.calendar-block__footer{display:flex;align-items:center;justify-content:space-between}.calendar-abs-wrapper{position:absolute;box-shadow:var(--main-card-shadow);top:0;right:0;z-index:1111}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"], dependencies: [{ kind: "component", type: LibCardComponent, selector: "dd-lib-card", inputs: ["type", "footerBtn", "sHeight", "skeleton", "parentLvlForSkeleton", "plugs", "borderRadius"], outputs: ["cardBtnEvent"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1$3.DatePipe, name: "date" }, { kind: "component", type: LibButtonComponent, selector: "dd-lib-button", inputs: ["noPadding", "loaderColor"] }, { kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$5.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1$5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: BanSymbolDirective, selector: "[ddBanSymbol]", inputs: ["ddBanSymbol", "regExp"] }, { kind: "directive", type: MaxNumDirective, selector: "[ddMaxNum]", inputs: ["ddMaxNum", "curVal"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2349
2642
  }
2350
2643
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibCalendarComponent, decorators: [{
2351
2644
  type: Component,
@@ -2366,7 +2659,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
2366
2659
  useExisting: forwardRef(() => LibCalendarComponent),
2367
2660
  multi: true,
2368
2661
  },
2369
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (mode === 'icon') {\r\n<div class=\"pos-relative d-flex align-center\">\r\n @if (dateValue) {\r\n <span class=\"mr-12 green\">{{ dateValue | date: 'dd.MM.yyyy' }}</span>\r\n }\r\n <dd-lib-svg-icon class=\"cup\" (click)=\"showCalendar = !showCalendar\" icon=\"calendar\"></dd-lib-svg-icon>\r\n @if (dateValue) {\r\n <dd-lib-svg-icon class=\"cup\" (click)=\"canselDate()\" icon=\"clear\"></dd-lib-svg-icon>\r\n } @if (showCalendar) {\r\n <div class=\"calendar-abs-wrapper\">\r\n <ng-template [ngTemplateOutlet]=\"calendar\"></ng-template>\r\n </div>\r\n }\r\n</div>\r\n} @if (mode === 'full') {\r\n<ng-template [ngTemplateOutlet]=\"calendar\"></ng-template>\r\n}\r\n\r\n<ng-template #calendar>\r\n <dd-lib-card class=\"calendar-block\" type=\"small\">\r\n <div class=\"calendar-block__header\">\r\n <div class=\"calendar-block__header_arrow\">\r\n <dd-lib-svg-icon (click)=\"changeMonth(-1)\" icon=\"left_chevron\"></dd-lib-svg-icon>\r\n </div>\r\n <div class=\"calendar-block__header_year\">{{ getMonth() + ' ' + year }}</div>\r\n <div class=\"calendar-block__header_arrow\">\r\n <dd-lib-svg-icon (click)=\"changeMonth(1)\" icon=\"right_chevron\"></dd-lib-svg-icon>\r\n </div>\r\n </div>\r\n <div class=\"calendar-block__week\">\r\n @for (day of week; track day) {\r\n <div class=\"calendar-block__week_day\">{{ day }}</div>\r\n }\r\n </div>\r\n <div class=\"calendar-block__days\">\r\n @for (day of daysInMonth?.prevDays; track day) {\r\n <div class=\"calendar-block__days_day hide\">{{ day }}</div>\r\n } @for (day of daysInMonth?.days; track day) {\r\n <div\r\n (click)=\"selectDay(day)\"\r\n [class.active]=\"checkActiveDay(day)\"\r\n\r\n [class.current]=\"\r\n dateNow.getDate() === day && dateNow.getMonth() === month && dateNow.getFullYear() === year\r\n \"\r\n [class.hide]=\"checkHideDay(day)\"\r\n class=\"calendar-block__days_day normal\">\r\n {{ day }}\r\n </div>\r\n } @for (day of daysInMonth?.lastDays; track day) {\r\n <div class=\"calendar-block__days_day hide\">{{ day }}</div>\r\n }\r\n </div>\r\n @if(needTime) {\r\n <div class=\"calendar-block__time\">\r\n <div class=\"d-flex justify-between\">\r\n <div class=\"text-plain\">\u0412\u0440\u0435\u043C\u044F</div>\r\n <div class=\"d-flex\">\r\n <input [(ngModel)]=\"hours\" class=\"calendar-block__time-input\"\r\n type=\"text\"\r\n [ddMaxNum]=\"maxHours\"\r\n [curVal]=\"hours\"\r\n [disabled]=\"!dateValue\"\r\n [regExp]=\"true\"\r\n ddBanSymbol=\"^\\d+$\"\r\n max=\"23\"\r\n maxlength=\"2\"\r\n pattern=\"^\\d+$\">\r\n <span class=\"second-dot\">:</span>\r\n <input [(ngModel)]=\"minutes\" class=\"calendar-block__time-input\"\r\n [ddMaxNum]=\"maxMinutes\"\r\n [curVal]=\"minutes\"\r\n [disabled]=\"!dateValue\"\r\n [regExp]=\"true\"\r\n ddBanSymbol=\"^\\d+$\"\r\n max=\"59\"\r\n maxlength=\"2\"\r\n pattern=\"^\\d+$\"\r\n type=\"text\">\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n <div class=\"calendar-block__footer\">\r\n <dd-lib-button (click)=\"canselDate()\" [btnColor]=\"'transparent'\" class=\"calendar-block__footer_btn\"\r\n >\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C\r\n </dd-lib-button>\r\n <dd-lib-button (click)=\"selectDate()\"\r\n [disabled]=\"(!dateValue && !rangeMode) || (rangeMode && (!dateStart || !dateEnd))\"\r\n class=\"calendar-block__footer_btn\"\r\n >\u0412\u044B\u0431\u0440\u0430\u0442\u044C\r\n </dd-lib-button>\r\n </div>\r\n </dd-lib-card>\r\n</ng-template>\r\n", styles: [":host{display:block;-webkit-user-select:none;user-select:none}.calendar-block{z-index:1100;display:block}@media screen and (max-width: 840px){.calendar-block{height:100%}}.calendar-block__time{padding:22px 0;margin:22px 0;border-top:1px solid var(--gray-color-200);border-bottom:1px solid var(--gray-color-200)}.calendar-block__time-input{width:56px;height:36px;border-radius:12px;border:1px solid var(--primary-gray-color);text-align:center}.calendar-block__time .second-dot{margin:auto 8px;animation:blink 1s step-end infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.calendar-block__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;color:var(--calendar-gray-color);font-size:14px;font-weight:400;line-height:24px}.calendar-block__header_arrow{cursor:pointer}.calendar-block__week{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;justify-items:center;color:var(--primary-green-color);font-size:10px;font-weight:400;line-height:12px;letter-spacing:1.5px;margin-bottom:22px}.calendar-block__week_day{display:flex;align-items:center;justify-content:space-around}.calendar-block__days{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;justify-items:center;margin-bottom:22px}.calendar-block__days_day{cursor:pointer;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:29px;color:var(--light-black-color)}.calendar-block__days_day.current{border:1px solid var(--primary-green-color)}.calendar-block__days_day.active,.calendar-block__days_day.normal:hover{background-color:var(--primary-green-color);color:var(--white-color)}.calendar-block__days_day.hide{pointer-events:none;cursor:default;color:var(--calendar-gray-hide-color)}.calendar-block__footer{display:flex;align-items:center;justify-content:space-between}.calendar-abs-wrapper{position:absolute;box-shadow:var(--main-card-shadow);top:0;right:0;z-index:1111}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"] }]
2662
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (mode === 'icon') {\r\n<div class=\"pos-relative d-flex align-center\">\r\n @if (dateValue) {\r\n <span class=\"mr-12 green\">{{ dateValue | date: 'dd.MM.yyyy' }}</span>\r\n }\r\n <dd-lib-svg-icon class=\"cup\" (click)=\"showCalendar = !showCalendar\" icon=\"calendar\"></dd-lib-svg-icon>\r\n @if (dateValue) {\r\n <dd-lib-svg-icon class=\"cup\" (click)=\"canselDate()\" icon=\"clear\"></dd-lib-svg-icon>\r\n } @if (showCalendar) {\r\n <div class=\"calendar-abs-wrapper\">\r\n <ng-template [ngTemplateOutlet]=\"calendar\"></ng-template>\r\n </div>\r\n }\r\n</div>\r\n} @if (mode === 'full') {\r\n<ng-template [ngTemplateOutlet]=\"calendar\"></ng-template>\r\n}\r\n\r\n<ng-template #calendar>\r\n <dd-lib-card class=\"calendar-block\" type=\"small\">\r\n <div class=\"full-width\">\r\n <div class=\"calendar-block__header\">\r\n <div class=\"calendar-block__header_arrow\">\r\n <dd-lib-svg-icon (click)=\"changeMonth(-1)\" icon=\"left_chevron\"></dd-lib-svg-icon>\r\n </div>\r\n <div class=\"calendar-block__header_year\">{{ getMonth() + ' ' + year }}</div>\r\n <div class=\"calendar-block__header_arrow\">\r\n <dd-lib-svg-icon (click)=\"changeMonth(1)\" icon=\"right_chevron\"></dd-lib-svg-icon>\r\n </div>\r\n </div>\r\n <div class=\"calendar-block__week\">\r\n @for (day of week; track day) {\r\n <div class=\"calendar-block__week_day\">{{ day }}</div>\r\n }\r\n </div>\r\n <div class=\"calendar-block__days\">\r\n @for (day of daysInMonth?.prevDays; track day) {\r\n <div class=\"calendar-block__days_day hide\">{{ day }}</div>\r\n } @for (day of daysInMonth?.days; track day) {\r\n <div\r\n (click)=\"selectDay(day)\"\r\n [class.active]=\"checkActiveDay(day)\"\r\n\r\n [class.current]=\"\r\n dateNow.getDate() === day && dateNow.getMonth() === month && dateNow.getFullYear() === year\r\n \"\r\n [class.hide]=\"checkHideDay(day)\"\r\n class=\"calendar-block__days_day normal\">\r\n {{ day }}\r\n </div>\r\n } @for (day of daysInMonth?.lastDays; track day) {\r\n <div class=\"calendar-block__days_day hide\">{{ day }}</div>\r\n }\r\n </div>\r\n @if(needTime) {\r\n <div class=\"calendar-block__time\">\r\n <div class=\"d-flex justify-between\">\r\n <div class=\"text-plain\">\u0412\u0440\u0435\u043C\u044F</div>\r\n <div class=\"d-flex\">\r\n <input [(ngModel)]=\"hours\" class=\"calendar-block__time-input\"\r\n type=\"text\"\r\n [ddMaxNum]=\"maxHours\"\r\n [curVal]=\"hours\"\r\n [disabled]=\"!dateValue\"\r\n [regExp]=\"true\"\r\n ddBanSymbol=\"^\\d+$\"\r\n max=\"23\"\r\n maxlength=\"2\"\r\n pattern=\"^\\d+$\">\r\n <span class=\"second-dot\">:</span>\r\n <input [(ngModel)]=\"minutes\" class=\"calendar-block__time-input\"\r\n [ddMaxNum]=\"maxMinutes\"\r\n [curVal]=\"minutes\"\r\n [disabled]=\"!dateValue\"\r\n [regExp]=\"true\"\r\n ddBanSymbol=\"^\\d+$\"\r\n max=\"59\"\r\n maxlength=\"2\"\r\n pattern=\"^\\d+$\"\r\n type=\"text\">\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n <div class=\"calendar-block__footer\">\r\n <dd-lib-button (click)=\"canselDate()\" [btnColor]=\"'transparent'\" class=\"calendar-block__footer_btn\"\r\n >\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C\r\n </dd-lib-button>\r\n <dd-lib-button (click)=\"selectDate()\"\r\n [disabled]=\"(!dateValue && !rangeMode) || (rangeMode && (!dateStart || !dateEnd))\"\r\n class=\"calendar-block__footer_btn\"\r\n >\u0412\u044B\u0431\u0440\u0430\u0442\u044C\r\n </dd-lib-button>\r\n </div>\r\n </div>\r\n </dd-lib-card>\r\n</ng-template>\r\n", styles: [":host{display:block;-webkit-user-select:none;user-select:none}.calendar-block{z-index:1100;display:block}@media screen and (max-width: 840px){.calendar-block{height:100%}}.calendar-block__time{padding:22px 0;margin:22px 0;border-top:1px solid var(--gray-color-200);border-bottom:1px solid var(--gray-color-200)}.calendar-block__time-input{width:56px;height:36px;border-radius:12px;border:1px solid var(--primary-gray-color);text-align:center}.calendar-block__time .second-dot{margin:auto 8px;animation:blink 1s step-end infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.calendar-block__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;color:var(--calendar-gray-color);font-size:14px;font-weight:400;line-height:24px}.calendar-block__header_arrow{cursor:pointer}.calendar-block__week{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;justify-items:center;color:var(--primary-green-color);font-size:10px;font-weight:400;line-height:12px;letter-spacing:1.5px;margin-bottom:22px}.calendar-block__week_day{display:flex;align-items:center;justify-content:space-around}.calendar-block__days{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;justify-items:center;margin-bottom:22px}.calendar-block__days_day{cursor:pointer;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:29px;color:var(--light-black-color)}.calendar-block__days_day.current{border:1px solid var(--primary-green-color)}.calendar-block__days_day.active,.calendar-block__days_day.normal:hover{background-color:var(--primary-green-color);color:var(--white-color)}.calendar-block__days_day.hide{pointer-events:none;cursor:default;color:var(--calendar-gray-hide-color)}.calendar-block__footer{display:flex;align-items:center;justify-content:space-between}.calendar-abs-wrapper{position:absolute;box-shadow:var(--main-card-shadow);top:0;right:0;z-index:1111}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"] }]
2370
2663
  }], ctorParameters: () => [{ type: DateService }], propDecorators: { type: [{
2371
2664
  type: Input
2372
2665
  }], formatDate: [{
@@ -2394,7 +2687,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
2394
2687
  }] } });
2395
2688
 
2396
2689
  class LibCheckboxComponent {
2397
- constructor() {
2690
+ static { this.idCounter = 1; }
2691
+ constructor(cdr) {
2692
+ this.cdr = cdr;
2398
2693
  this.required = false;
2399
2694
  this.disabled = false;
2400
2695
  this.checked = false;
@@ -2402,7 +2697,6 @@ class LibCheckboxComponent {
2402
2697
  this.hasContent = true;
2403
2698
  this.checkEvent = new EventEmitter();
2404
2699
  }
2405
- static { this.idCounter = 1; }
2406
2700
  ngOnInit() {
2407
2701
  if (!this.checkboxId) {
2408
2702
  this.checkboxId = 'dd-checkbox-' + LibCheckboxComponent.idCounter++;
@@ -2421,9 +2715,10 @@ class LibCheckboxComponent {
2421
2715
  }
2422
2716
  writeValue(value) {
2423
2717
  this.checked = value;
2718
+ this.cdr.detectChanges();
2424
2719
  }
2425
2720
  propagateChange(value) { }
2426
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2721
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibCheckboxComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
2427
2722
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: LibCheckboxComponent, isStandalone: true, selector: "dd-lib-checkbox", inputs: { checkboxId: "checkboxId", required: "required", disabled: "disabled", checked: "checked", customClass: "customClass", invalid: "invalid", hasContent: "hasContent" }, outputs: { checkEvent: "checkEvent" }, providers: [
2428
2723
  {
2429
2724
  provide: NG_VALUE_ACCESSOR,
@@ -2441,7 +2736,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
2441
2736
  multi: true,
2442
2737
  },
2443
2738
  ], template: "<input\n (change)=\"onChecked($event.target)\"\n [checked]=\"checked\"\n [class.disabled]=\"disabled\"\n [class.invalid]=\"invalid\"\n [disabled]=\"disabled\"\n [id]=\"checkboxId\"\n [required]=\"required\"\n [tabindex]=\"disabled ? -1 : null\"\n class=\"check-input\"\n type=\"checkbox\" />\n<label [for]=\"checkboxId\" class=\"{{ customClass }} check\">\n <span [class.focused]=\"focused\" class=\"checkbox\"></span>\n @if (hasContent) {\n <span class=\"ml-12\">\n <ng-content></ng-content>\n </span>\n }\n</label>\n", styles: [":host{outline:none;position:relative}.check{display:flex;position:relative;font-size:16px;width:fit-content;cursor:pointer;align-items:center}.check-input{appearance:none;position:absolute;opacity:0;margin:0;width:20px;height:20px}.check-input:hover+label .checkbox{border-color:var(--primary-green-color)}.check-input:hover:checked+label .checkbox{background:var(--cb-hover-bgc);border:none}.check-input:disabled+label,.check-input:disabled+label .checkbox,.check-input:hover:disabled+label,.check-input:hover:disabled+label .checkbox{cursor:default;pointer-events:none;border-color:var(--cb-init-border)}.check-input:disabled:checked+label .checkbox{cursor:default;pointer-events:none;border-color:var(--cb-init-border);background-color:var(--cb-init-border);font-weight:700}.check-input:checked+label{font-weight:700}.check-input:checked+label .checkbox{background:var(--cb-checked-bgc);border:none;position:relative}.check-input:checked+label .checkbox:before{content:\"\";background:url('data:image/svg+xml,<svg fill=\"none\" height=\"10\" viewBox=\"0 0 13 10\" width=\"13\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A <path d=\"M1.33301 5.00008L4.66634 8.33341L11.333 1.66675\" stroke=\"white\" stroke-linecap=\"round\"%0D%0A stroke-linejoin=\"round\"%0D%0A stroke-width=\"1.7\"/>%0D%0A</svg>%0D%0A') no-repeat;height:10px;position:absolute;width:13px;top:5px;left:4px}.checkbox{min-width:20px;min-height:20px;padding:3px;background-color:var(--white-color);border-radius:5px;border:1px solid var(--cb-init-border);cursor:pointer}\n"] }]
2444
- }], propDecorators: { checkboxId: [{
2739
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { checkboxId: [{
2445
2740
  type: Input
2446
2741
  }], required: [{
2447
2742
  type: Input
@@ -2537,7 +2832,7 @@ class LibInputComponent extends LibCommonInputTextComponent {
2537
2832
  changeValueSub(control) {
2538
2833
  control.valueChanges
2539
2834
  .pipe(takeUntil(this.destroyed$))
2540
- .subscribe(val => {
2835
+ .subscribe(() => {
2541
2836
  this.errorText = ValidatorsService.getErrorText(this.control?.errors);
2542
2837
  });
2543
2838
  }
@@ -2563,7 +2858,7 @@ class LibInputComponent extends LibCommonInputTextComponent {
2563
2858
  useExisting: forwardRef(() => LibInputComponent),
2564
2859
  multi: true,
2565
2860
  },
2566
- ], viewQueries: [{ propertyName: "contentInput", first: true, predicate: ["contentInput"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"lib-input\">\n <label [for]=\"id\" class=\"lib-input__title\">\n {{ label }}\n @if (required) {\n <dd-lib-svg-icon icon=\"error_hint\"></dd-lib-svg-icon>\n }\n </label>\n <input\n #input\n (blur)=\"handleBlur()\"\n (change)=\"handleChange()\"\n (focus)=\"handleFocus()\"\n (input)=\"handleInput($event)\"\n (keyup.enter)=\"forceChange()\"\n [showMaskTyped]=\"showMaskTyped\"\n [dropSpecialCharacters]=\"dropSpecialCharacters\"\n [shownMaskExpression]=\"shownMaskExpression\"\n [mask]=\"mask\"\n [validation]=\"validation\"\n [prefix]=\"prefix\"\n [suffix]=\"suffix\"\n [(ngModel)]=\"value\"\n [attr.autofocus]=\"autofocus\"\n [attr.autocomplete]=\"autocomplete === undefined ? null : autocomplete\"\n [attr.id]=\"id ? id : null\"\n [attr.max]=\"max\"\n [attr.min]=\"min\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [attr.name]=\"name\"\n [attr.placeholder]=\"placeholder\"\n [attr.tabIndex]=\"tabIndex\"\n [attr.type]=\"type || 'text'\"\n [class.focused]=\"focused\"\n [class.invalid]=\"showError\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n class=\"text-input\" />\n @if (errorTexts.length && showError) {\n @for (error of errorTexts; track error) {\n <div class=\"lib-input__error\">{{ error }}</div>\n }\n }\n @if (errorText && showSelfError && showError) {\n <div class=\"lib-input__error\">{{ errorText }}</div>\n }\n</div>\n", styles: [":host{display:block}.lib-input{position:relative}.lib-input input{width:100%;height:48px;padding:15px 16px;border-radius:8px;border:1px solid var(--input-border-color);background-color:transparent;position:relative;color:var(--light-black-color)}.lib-input input:hover{border-color:var(--input-active-border-colort)}.lib-input input:focus{border-color:var(--input-active-border-colort);box-shadow:var(--input-active-border-shadow)}.lib-input input:disabled{border:none;background-color:var(--input-disable-input);color:var(--input-disable-text);pointer-events:none}.lib-input input:disabled::placeholder{color:var(--input-placeholder)}.lib-input input.invalid,.lib-input input.invalid:hover{border-color:var(--input-error-border-color)}.lib-input input.invalid:focus{border-color:var(--input-error-border-color);box-shadow:var(--input-error-border-shadow)}.lib-input__title{margin-bottom:4px;font-size:14px;line-height:24px;display:flex;align-items:flex-start;color:var(--light-black-color)}.lib-input__error{color:var(--primary-red-color);font-size:12px;font-weight:400;line-height:10px;margin-top:2px;position:absolute}.lib-input .password-eye{position:absolute;right:16px;top:40px;cursor:pointer}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2861
+ ], viewQueries: [{ propertyName: "contentInput", first: true, predicate: ["input"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"lib-input\">\r\n <label [for]=\"id\" class=\"lib-input__title g-text-sm\">\r\n {{ label }}\r\n @if (required) {\r\n <dd-lib-svg-icon icon=\"error_hint\"></dd-lib-svg-icon>\r\n }\r\n </label>\r\n <input\r\n #input\r\n (blur)=\"handleBlur()\"\r\n (change)=\"handleChange()\"\r\n (focus)=\"handleFocus()\"\r\n (input)=\"handleInput($event)\"\r\n (keyup.enter)=\"forceChange()\"\r\n [showMaskTyped]=\"showMaskTyped\"\r\n [dropSpecialCharacters]=\"dropSpecialCharacters\"\r\n [shownMaskExpression]=\"shownMaskExpression\"\r\n [mask]=\"mask\"\r\n [validation]=\"validation\"\r\n [prefix]=\"prefix\"\r\n [suffix]=\"suffix\"\r\n [(ngModel)]=\"value\"\r\n [attr.autofocus]=\"autofocus\"\r\n [attr.autocomplete]=\"autocomplete === undefined ? null : autocomplete\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.max]=\"max\"\r\n [attr.min]=\"min\"\r\n [attr.maxlength]=\"maxlength\"\r\n [attr.minlength]=\"minlength\"\r\n [attr.name]=\"name\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.tabIndex]=\"tabIndex\"\r\n [attr.type]=\"type || 'text'\"\r\n [class.focused]=\"focused\"\r\n [class.invalid]=\"showError\"\r\n\r\n [disabled]=\"disabled\"\r\n [readOnly]=\"readOnly\"\r\n class=\"text-input\" />\r\n {{ngControl?.touched}}\r\n @if (errorTexts.length && showError) {\r\n @for (error of errorTexts; track error) {\r\n <div class=\"lib-input__error\">{{ error }}</div>\r\n }\r\n }\r\n @if (errorText && showSelfError && showError) {\r\n <div class=\"lib-input__error\">{{ errorText }}</div>\r\n }\r\n</div>\r\n", styles: [":host{display:block}.lib-input{position:relative}.lib-input input{width:100%;height:48px;padding:15px 16px;border-radius:8px;border:1px solid var(--input-border-color);background-color:transparent;position:relative;color:var(--light-black-color)}.lib-input input:hover{border-color:var(--input-active-border-colort)}.lib-input input:focus{border-color:var(--input-active-border-colort);box-shadow:var(--input-active-border-shadow)}.lib-input input:disabled{border:none;background-color:var(--input-disable-input);color:var(--input-disable-text);pointer-events:none}.lib-input input:disabled::placeholder{color:var(--input-placeholder)}.lib-input input.invalid,.lib-input input.invalid:hover{border-color:var(--input-error-border-color)}.lib-input input.invalid:focus{border-color:var(--input-error-border-color);box-shadow:var(--input-error-border-shadow)}.lib-input__title{margin-bottom:4px;font-size:14px;line-height:24px;display:flex;align-items:flex-start;color:var(--light-black-color)}.lib-input__error{color:var(--primary-red-color);font-size:12px;font-weight:400;line-height:10px;margin-top:2px;position:absolute}.lib-input .password-eye{position:absolute;right:16px;top:40px;cursor:pointer}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2567
2862
  }
2568
2863
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibInputComponent, decorators: [{
2569
2864
  type: Component,
@@ -2574,7 +2869,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
2574
2869
  useExisting: forwardRef(() => LibInputComponent),
2575
2870
  multi: true,
2576
2871
  },
2577
- ], changeDetection: ChangeDetectionStrategy.OnPush, imports: [FormsModule, NgxMaskDirective, NgOptimizedImage, LibCardComponent, LibSvgIconComponent], template: "<div class=\"lib-input\">\n <label [for]=\"id\" class=\"lib-input__title\">\n {{ label }}\n @if (required) {\n <dd-lib-svg-icon icon=\"error_hint\"></dd-lib-svg-icon>\n }\n </label>\n <input\n #input\n (blur)=\"handleBlur()\"\n (change)=\"handleChange()\"\n (focus)=\"handleFocus()\"\n (input)=\"handleInput($event)\"\n (keyup.enter)=\"forceChange()\"\n [showMaskTyped]=\"showMaskTyped\"\n [dropSpecialCharacters]=\"dropSpecialCharacters\"\n [shownMaskExpression]=\"shownMaskExpression\"\n [mask]=\"mask\"\n [validation]=\"validation\"\n [prefix]=\"prefix\"\n [suffix]=\"suffix\"\n [(ngModel)]=\"value\"\n [attr.autofocus]=\"autofocus\"\n [attr.autocomplete]=\"autocomplete === undefined ? null : autocomplete\"\n [attr.id]=\"id ? id : null\"\n [attr.max]=\"max\"\n [attr.min]=\"min\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [attr.name]=\"name\"\n [attr.placeholder]=\"placeholder\"\n [attr.tabIndex]=\"tabIndex\"\n [attr.type]=\"type || 'text'\"\n [class.focused]=\"focused\"\n [class.invalid]=\"showError\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n class=\"text-input\" />\n @if (errorTexts.length && showError) {\n @for (error of errorTexts; track error) {\n <div class=\"lib-input__error\">{{ error }}</div>\n }\n }\n @if (errorText && showSelfError && showError) {\n <div class=\"lib-input__error\">{{ errorText }}</div>\n }\n</div>\n", styles: [":host{display:block}.lib-input{position:relative}.lib-input input{width:100%;height:48px;padding:15px 16px;border-radius:8px;border:1px solid var(--input-border-color);background-color:transparent;position:relative;color:var(--light-black-color)}.lib-input input:hover{border-color:var(--input-active-border-colort)}.lib-input input:focus{border-color:var(--input-active-border-colort);box-shadow:var(--input-active-border-shadow)}.lib-input input:disabled{border:none;background-color:var(--input-disable-input);color:var(--input-disable-text);pointer-events:none}.lib-input input:disabled::placeholder{color:var(--input-placeholder)}.lib-input input.invalid,.lib-input input.invalid:hover{border-color:var(--input-error-border-color)}.lib-input input.invalid:focus{border-color:var(--input-error-border-color);box-shadow:var(--input-error-border-shadow)}.lib-input__title{margin-bottom:4px;font-size:14px;line-height:24px;display:flex;align-items:flex-start;color:var(--light-black-color)}.lib-input__error{color:var(--primary-red-color);font-size:12px;font-weight:400;line-height:10px;margin-top:2px;position:absolute}.lib-input .password-eye{position:absolute;right:16px;top:40px;cursor:pointer}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none}\n"] }]
2872
+ ], changeDetection: ChangeDetectionStrategy.OnPush, imports: [FormsModule, NgxMaskDirective, NgOptimizedImage, LibCardComponent, LibSvgIconComponent], template: "<div class=\"lib-input\">\r\n <label [for]=\"id\" class=\"lib-input__title g-text-sm\">\r\n {{ label }}\r\n @if (required) {\r\n <dd-lib-svg-icon icon=\"error_hint\"></dd-lib-svg-icon>\r\n }\r\n </label>\r\n <input\r\n #input\r\n (blur)=\"handleBlur()\"\r\n (change)=\"handleChange()\"\r\n (focus)=\"handleFocus()\"\r\n (input)=\"handleInput($event)\"\r\n (keyup.enter)=\"forceChange()\"\r\n [showMaskTyped]=\"showMaskTyped\"\r\n [dropSpecialCharacters]=\"dropSpecialCharacters\"\r\n [shownMaskExpression]=\"shownMaskExpression\"\r\n [mask]=\"mask\"\r\n [validation]=\"validation\"\r\n [prefix]=\"prefix\"\r\n [suffix]=\"suffix\"\r\n [(ngModel)]=\"value\"\r\n [attr.autofocus]=\"autofocus\"\r\n [attr.autocomplete]=\"autocomplete === undefined ? null : autocomplete\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.max]=\"max\"\r\n [attr.min]=\"min\"\r\n [attr.maxlength]=\"maxlength\"\r\n [attr.minlength]=\"minlength\"\r\n [attr.name]=\"name\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.tabIndex]=\"tabIndex\"\r\n [attr.type]=\"type || 'text'\"\r\n [class.focused]=\"focused\"\r\n [class.invalid]=\"showError\"\r\n\r\n [disabled]=\"disabled\"\r\n [readOnly]=\"readOnly\"\r\n class=\"text-input\" />\r\n {{ngControl?.touched}}\r\n @if (errorTexts.length && showError) {\r\n @for (error of errorTexts; track error) {\r\n <div class=\"lib-input__error\">{{ error }}</div>\r\n }\r\n }\r\n @if (errorText && showSelfError && showError) {\r\n <div class=\"lib-input__error\">{{ errorText }}</div>\r\n }\r\n</div>\r\n", styles: [":host{display:block}.lib-input{position:relative}.lib-input input{width:100%;height:48px;padding:15px 16px;border-radius:8px;border:1px solid var(--input-border-color);background-color:transparent;position:relative;color:var(--light-black-color)}.lib-input input:hover{border-color:var(--input-active-border-colort)}.lib-input input:focus{border-color:var(--input-active-border-colort);box-shadow:var(--input-active-border-shadow)}.lib-input input:disabled{border:none;background-color:var(--input-disable-input);color:var(--input-disable-text);pointer-events:none}.lib-input input:disabled::placeholder{color:var(--input-placeholder)}.lib-input input.invalid,.lib-input input.invalid:hover{border-color:var(--input-error-border-color)}.lib-input input.invalid:focus{border-color:var(--input-error-border-color);box-shadow:var(--input-error-border-shadow)}.lib-input__title{margin-bottom:4px;font-size:14px;line-height:24px;display:flex;align-items:flex-start;color:var(--light-black-color)}.lib-input__error{color:var(--primary-red-color);font-size:12px;font-weight:400;line-height:10px;margin-top:2px;position:absolute}.lib-input .password-eye{position:absolute;right:16px;top:40px;cursor:pointer}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none}\n"] }]
2578
2873
  }], ctorParameters: () => [{ type: DestroyService }, { type: i0.ChangeDetectorRef }, { type: i1$5.ControlContainer, decorators: [{
2579
2874
  type: Optional
2580
2875
  }, {
@@ -2583,7 +2878,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
2583
2878
  type: SkipSelf
2584
2879
  }] }], propDecorators: { contentInput: [{
2585
2880
  type: ViewChild,
2586
- args: ['contentInput', { read: ElementRef, static: true }]
2881
+ args: ['input', { read: ElementRef, static: true }]
2587
2882
  }], showMaskTyped: [{
2588
2883
  type: Input
2589
2884
  }], dropSpecialCharacters: [{
@@ -2602,8 +2897,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
2602
2897
 
2603
2898
  class LibPeriodComponent {
2604
2899
  static { this.idCounter = 1; }
2605
- constructor(dateService) {
2900
+ constructor(dateService, cdr) {
2606
2901
  this.dateService = dateService;
2902
+ this.cdr = cdr;
2607
2903
  this.setPeriodDate = new EventEmitter();
2608
2904
  this.periodIsShown = false;
2609
2905
  this.calendarIsShown = false;
@@ -2645,6 +2941,7 @@ class LibPeriodComponent {
2645
2941
  }
2646
2942
  writeValue(value) {
2647
2943
  this.selectedPeriod = value;
2944
+ this.cdr.detectChanges();
2648
2945
  }
2649
2946
  selectDate($event) {
2650
2947
  this.calendarIsShown = false;
@@ -2672,7 +2969,7 @@ class LibPeriodComponent {
2672
2969
  }
2673
2970
  }
2674
2971
  propagateChange(value) { }
2675
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibPeriodComponent, deps: [{ token: DateService }], target: i0.ɵɵFactoryTarget.Component }); }
2972
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibPeriodComponent, deps: [{ token: DateService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
2676
2973
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: LibPeriodComponent, isStandalone: true, selector: "dd-lib-period", inputs: { maxDate: "maxDate" }, outputs: { setPeriodDate: "setPeriodDate" }, providers: [
2677
2974
  {
2678
2975
  provide: NG_VALUE_ACCESSOR,
@@ -2698,7 +2995,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
2698
2995
  multi: true,
2699
2996
  },
2700
2997
  ], template: "<div class=\"pos-relative\">\r\n <dd-lib-filter-button\r\n (clearEvent)=\"clearPeriod()\"\r\n (clickEvent)=\"showPeriod()\"\r\n [active]=\"periodIsSelected || calendarIsSelected\"\r\n [id]=\"idPeriod\"\r\n btnColor=\"transparent\">\r\n <div>\u041F\u0435\u0440\u0438\u043E\u0434</div>\r\n </dd-lib-filter-button>\r\n @if (periodIsShown) {\r\n <div (ddClickOutside)=\"clickOutside($event)\" [elements]=\"[idPeriod, idCalendar]\" class=\"period__wrapper\">\r\n <dd-lib-card class=\"period__block\" type=\"small\">\r\n <div>\r\n <div class=\"period__header\">\r\n <div class=\"period__back\" (click)=\"periodIsShown = false\">\r\n <dd-lib-svg-icon icon=\"toggle_arrow_left\"></dd-lib-svg-icon>\r\n <div class=\"g-h5-title\">\u041F\u0435\u0440\u0438\u043E\u0434</div>\r\n </div>\r\n <div class=\"g-h5-title hide-tablet\">\u041F\u0435\u0440\u0438\u043E\u0434</div>\r\n <div (click)=\"clearPeriod()\" class=\"g-text font-medium green cup\">\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C</div>\r\n </div>\r\n <div class=\"period__list\">\r\n @for (period of periodMenu; track period) {\r\n <dd-lib-radio (changed)=\"selectPeriod($event)\" [(ngModel)]=\"selectedPeriod\" [value]=\"period.name\">{{\r\n period.title\r\n }}</dd-lib-radio>\r\n }\r\n </div>\r\n <div (click)=\"calendarIsShown = !calendarIsShown\" class=\"g-text font-medium green cup mt-8\">\r\n {{ calendarIsShown ? '\u0417\u0430\u043A\u0440\u044B\u0442\u044C' : '\u041E\u0442\u043A\u0440\u044B\u0442\u044C' }} \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C\r\n </div>\r\n </div>\r\n </dd-lib-card>\r\n @if (calendarIsShown) {\r\n <dd-lib-calendar\r\n (emitDate)=\"selectDate($event)\"\r\n [(ngModel)]=\"selectedDate\"\r\n [id]=\"idCalendar\"\r\n [maxDate]=\"maxDate\"\r\n class=\"period__calendar\">\r\n </dd-lib-calendar>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: ["dd-lib-filter-button{position:relative}.period__wrapper{position:absolute;left:0;z-index:400;display:block;width:352px;height:348px;margin-top:8px;animation:filter-show .5s forwards}@media screen and (max-width: 840px){.period__wrapper{position:fixed;top:0;width:100%;height:100%;overflow:auto;margin-top:0;animation:shift .3s}}@media screen and (max-width: 840px){.period__block{height:100%}}.period__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}@media screen and (max-width: 840px){.period__header{padding-bottom:24px;border-bottom:1px solid var(--gray-color-200)}}@media screen and (max-width: 480px){.period__header{padding-top:8px}}.period__back{display:none}@media screen and (max-width: 840px){.period__back{display:flex;align-items:center}}.period__back ::ng-deep svg{margin-right:16px}.period__back ::ng-deep svg path{stroke:var(--menu-arr-color)}.period__list{max-height:400px;overflow:auto}@media screen and (max-width: 840px){.period__list{max-height:none}}.period__list ::ng-deep dd-lib-radio{display:block;margin-bottom:16px}@media screen and (max-width: 840px){.period__list ::ng-deep dd-lib-radio:not(:last-child){padding-bottom:16px;border-bottom:1px solid var(--gray-color-200)}}.period__calendar{margin-top:8px;display:block;animation:filter-show .5s forwards}@media screen and (max-width: 840px){.period__calendar{position:fixed;top:0;left:0;width:100%;height:100%;overflow:auto;margin-top:0;animation:shift .3s}}\n"] }]
2701
- }], ctorParameters: () => [{ type: DateService }], propDecorators: { maxDate: [{
2998
+ }], ctorParameters: () => [{ type: DateService }, { type: i0.ChangeDetectorRef }], propDecorators: { maxDate: [{
2702
2999
  type: Input
2703
3000
  }], setPeriodDate: [{
2704
3001
  type: Output
@@ -2776,14 +3073,17 @@ class LibSearchInputComponent extends LibCommonInputTextComponent {
2776
3073
  set searchData(data) {
2777
3074
  this.loaded$.next(false);
2778
3075
  this.data = data;
3076
+ if (data?.length) {
3077
+ this.itemSize = this.keyDesc && this.keyTitle ? 90 : this.keyDesc && !this.keyTitle ? 50 : 40;
3078
+ this.updateDropdownPosition(this.el, data, this.itemSize, 400);
3079
+ }
2779
3080
  }
2780
3081
  ;
2781
- constructor(destroy$, changeDetection, cdr) {
3082
+ constructor(destroy$, el, changeDetection, cdr) {
2782
3083
  super(changeDetection);
2783
3084
  this.destroy$ = destroy$;
3085
+ this.el = el;
2784
3086
  this.cdr = cdr;
2785
- this.keyTitle = 'title';
2786
- this.keyDesc = 'description';
2787
3087
  this.styleInput = 'standard';
2788
3088
  this.inputStyle = 'gray';
2789
3089
  this.debounceTime = 100;
@@ -2792,6 +3092,12 @@ class LibSearchInputComponent extends LibCommonInputTextComponent {
2792
3092
  this.keyupEvent = new EventEmitter();
2793
3093
  this.selectedItem = new EventEmitter();
2794
3094
  this.keyUp = new Subject();
3095
+ this.itemSize = this.keyDesc && this.keyTitle ? 90 : this.keyDesc && !this.keyTitle ? 50 : 40;
3096
+ }
3097
+ onWindowScroll() {
3098
+ if (this.data?.length) {
3099
+ this.updateDropdownPosition(this.el, this.data, this.itemSize, 400);
3100
+ }
2795
3101
  }
2796
3102
  ngOnInit() {
2797
3103
  if (this.commitOnInput) {
@@ -2809,6 +3115,12 @@ class LibSearchInputComponent extends LibCommonInputTextComponent {
2809
3115
  }, () => this.loaded$.next(false));
2810
3116
  }
2811
3117
  }
3118
+ writeValue(value) {
3119
+ this.value = value === null || value === undefined ? '' : '' + value;
3120
+ if (!this.destroyed) {
3121
+ this.changeDetection.detectChanges();
3122
+ }
3123
+ }
2812
3124
  forceChange() {
2813
3125
  if (!this.commitOnInput) {
2814
3126
  this.keyupEvent.emit(this.value);
@@ -2827,7 +3139,7 @@ class LibSearchInputComponent extends LibCommonInputTextComponent {
2827
3139
  onClickSearchItem(item) {
2828
3140
  this.loaded$.next(false);
2829
3141
  this.selectedItem.emit(item);
2830
- this.value = this.getTitle(item);
3142
+ this.value = this.keyTitle ? this.getTitle(item) : this.getDesc(item);
2831
3143
  }
2832
3144
  getTitle(item) {
2833
3145
  return item[this.keyTitle];
@@ -2835,13 +3147,27 @@ class LibSearchInputComponent extends LibCommonInputTextComponent {
2835
3147
  getDesc(item) {
2836
3148
  return item[this.keyDesc];
2837
3149
  }
2838
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibSearchInputComponent, deps: [{ token: DestroyService }, { token: i0.ChangeDetectorRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
2839
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: LibSearchInputComponent, isStandalone: true, selector: "dd-lib-search-input", inputs: { keyTitle: "keyTitle", keyDesc: "keyDesc", styleInput: "styleInput", inputStyle: "inputStyle", searchData: "searchData", debounceTime: "debounceTime", delay: "delay", idClose: "idClose", loaded$: "loaded$" }, outputs: { keyupEvent: "keyupEvent", selectedItem: "selectedItem" }, providers: [DestroyService], usesInheritance: true, ngImport: i0, template: "<div class=\"lib-search-input\">\r\n <label [for]=\"id\" class=\"lib-search-input__title\">\r\n {{ label }}\r\n @if (required) {\r\n <dd-lib-svg-icon icon=\"error_hint\"></dd-lib-svg-icon>\r\n }\r\n </label>\r\n <div class=\"pos-relative\">\r\n <dd-lib-svg-icon (click)=\"forceChange()\" class=\"search-icon\" icon=\"search\"></dd-lib-svg-icon>\r\n <input\r\n #searchInput\r\n (keyup)=\"keyUp.next($event)\"\r\n (keyup.enter)=\"forceChange()\"\r\n [(ngModel)]=\"value\"\r\n [attr.autocomplete]=\"autocomplete === undefined ? null : autocomplete\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.maxlength]=\"maxlength\"\r\n [attr.minlength]=\"minlength\"\r\n [attr.name]=\"name\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.tabIndex]=\"tabIndex\"\r\n [attr.type]=\"type || 'text'\"\r\n [class.focused]=\"focused\"\r\n [class.round]=\"styleInput === 'round'\"\r\n [class.white]=\"inputStyle === 'white'\"\r\n [disabled]=\"disabled\"\r\n [readOnly]=\"readOnly\"\r\n class=\"search-input\" />\r\n <dd-lib-svg-icon\r\n (click)=\"onClear()\"\r\n [id]=\"idClose\" [style.display]=\"value?.length ? 'block' : 'none'\"\r\n class=\"clear-icon\" icon=\"clear\"></dd-lib-svg-icon>\r\n @if (loaded$ | async) {\r\n <div class=\"loading-icon\">\r\n <dd-lib-loader></dd-lib-loader>\r\n </div>\r\n }\r\n </div>\r\n\r\n @if (data?.length) {\r\n <dd-lib-card [class.top]=\"side === 'top'\">\r\n @for (item of data; track item) {\r\n <div (click)=\"onClickSearchItem(item)\" class=\"search-result\">\r\n @if (getTitle(item); as title) {\r\n <div [innerHTML]=\"title | highlight: value | safe: 'html'\" class=\"search-result__title\"></div>\r\n } @if (getDesc(item); as desc) {\r\n <div [innerHTML]=\"desc | highlight: value | safe: 'html'\" class=\"search-result__desc\"></div>\r\n }\r\n </div>\r\n }\r\n </dd-lib-card>\r\n }\r\n</div>\r\n", styles: [":host{display:block}.lib-search-input{position:relative}.lib-search-input__title{margin-bottom:4px;font-size:14px;line-height:24px;display:flex;align-items:flex-start}.lib-search-input input{width:100%;height:48px;padding:16px 16px 15px 44px;border-radius:8px;border:none;color:var(--light-black-color);background-color:var(--input-gray-bgc)}.lib-search-input input.white{background-color:var(--white-color);border:1px solid var(--primary-gray-color)}.lib-search-input .round{border-radius:24px}.lib-search-input .search-icon{position:absolute;left:16px;top:14px;cursor:pointer}.lib-search-input .clear-icon{position:absolute;right:16px;top:14px;cursor:pointer}.lib-search-input .loading-icon{position:absolute;right:40px;top:12px}.lib-search-input .search-result{font-size:16px;font-weight:400;line-height:24px;letter-spacing:0;text-align:left;cursor:pointer}.lib-search-input .search-result:hover{opacity:.8}.lib-search-input .search-result:last-child .search-result__desc{border:none;padding-bottom:0}.lib-search-input .search-result__title{color:var(--second-gray-color);margin:24px 0 2px}.lib-search-input .search-result__desc{padding-bottom:16px;border-bottom:1px solid var(--gray-color-200)}.lib-search-input dd-lib-card{position:absolute;display:block;top:76px;z-index:100;width:100%;max-height:400px;box-shadow:var(--main-card-shadow);overflow:auto}.lib-search-input dd-lib-card.top{bottom:50px;top:unset}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: LibCardComponent, selector: "dd-lib-card", inputs: ["type", "footerBtn", "sHeight", "skeleton", "parentLvlForSkeleton", "plugs", "borderRadius"], outputs: ["cardBtnEvent"] }, { kind: "pipe", type: HighlightPipe, name: "highlight" }, { kind: "pipe", type: SafePipe, name: "safe" }, { kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }, { kind: "component", type: LibLoaderComponent, selector: "dd-lib-loader", inputs: ["color", "size"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3150
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibSearchInputComponent, deps: [{ token: DestroyService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
3151
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: LibSearchInputComponent, isStandalone: true, selector: "dd-lib-search-input", inputs: { keyTitle: "keyTitle", keyDesc: "keyDesc", styleInput: "styleInput", inputStyle: "inputStyle", searchData: "searchData", debounceTime: "debounceTime", delay: "delay", idClose: "idClose", loaded$: "loaded$" }, outputs: { keyupEvent: "keyupEvent", selectedItem: "selectedItem" }, host: { listeners: { "window:resize": "onWindowScroll()", "window:scroll": "onWindowScroll()" } }, providers: [
3152
+ DestroyService,
3153
+ {
3154
+ provide: NG_VALUE_ACCESSOR,
3155
+ useExisting: forwardRef(() => LibSearchInputComponent),
3156
+ multi: true,
3157
+ },
3158
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"lib-search-input\">\r\n <label [for]=\"id\" class=\"lib-search-input__title\">\r\n {{ label }}\r\n @if (required) {\r\n <dd-lib-svg-icon icon=\"error_hint\"></dd-lib-svg-icon>\r\n }\r\n </label>\r\n <div class=\"pos-relative\">\r\n <dd-lib-svg-icon (click)=\"forceChange()\" class=\"search-icon\" icon=\"search\"></dd-lib-svg-icon>\r\n <input\r\n #searchInput\r\n (keyup)=\"keyUp.next($event)\"\r\n (keyup.enter)=\"forceChange()\"\r\n [(ngModel)]=\"value\"\r\n [attr.autocomplete]=\"autocomplete === undefined ? null : autocomplete\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.maxlength]=\"maxlength\"\r\n [attr.minlength]=\"minlength\"\r\n [attr.name]=\"name\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.tabIndex]=\"tabIndex\"\r\n [attr.type]=\"type || 'text'\"\r\n [class.focused]=\"focused\"\r\n [class.round]=\"styleInput === 'round'\"\r\n [class.white]=\"inputStyle === 'white'\"\r\n [disabled]=\"disabled\"\r\n [readOnly]=\"readOnly\"\r\n class=\"search-input\" />\r\n <dd-lib-svg-icon\r\n (click)=\"onClear()\"\r\n [id]=\"idClose\" [style.display]=\"value?.length ? 'block' : 'none'\"\r\n class=\"clear-icon\" icon=\"clear\"></dd-lib-svg-icon>\r\n @if (loaded$ | async) {\r\n <div class=\"loading-icon\">\r\n <dd-lib-loader></dd-lib-loader>\r\n </div>\r\n }\r\n </div>\r\n\r\n @if (data?.length) {\r\n <div class=\"search-dropdown\" [class.top]=\"side === 'top'\" [ngStyle]=\"dropdownStyle\">\r\n @for (item of data; track item) {\r\n <div (click)=\"onClickSearchItem(item)\" class=\"search-result\">\r\n @if (getTitle(item); as title) {\r\n <div [innerHTML]=\"title | highlight: value | safe: 'html'\" class=\"search-result__title\"></div>\r\n }\r\n @if (getDesc(item); as desc) {\r\n <div [innerHTML]=\"desc | highlight: value | safe: 'html'\" class=\"search-result__desc\"></div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [":host{display:block}.lib-search-input{position:relative}.lib-search-input__title{margin-bottom:4px;font-size:14px;line-height:24px;display:flex;align-items:flex-start}.lib-search-input input{width:100%;height:48px;padding:16px 16px 15px 44px;border-radius:8px;border:none;color:var(--light-black-color);background-color:var(--input-gray-bgc)}.lib-search-input input.white{background-color:var(--white-color);border:1px solid var(--primary-gray-color)}.lib-search-input .round{border-radius:24px}.lib-search-input .search-icon{position:absolute;left:16px;top:14px;cursor:pointer}.lib-search-input .clear-icon{position:absolute;right:16px;top:14px;cursor:pointer}.lib-search-input .loading-icon{position:absolute;right:40px;top:12px}.lib-search-input .search-result{font-size:16px;font-weight:400;line-height:24px;letter-spacing:0;text-align:left;cursor:pointer}.lib-search-input .search-result:hover{opacity:.8}.lib-search-input .search-result:last-child .search-result__desc{border:none;padding-bottom:0}.lib-search-input .search-result__title{color:var(--second-gray-color);min-height:40px;align-items:center;align-content:center}.lib-search-input .search-result__desc{min-height:50px;align-items:center;align-content:center;border-bottom:1px solid var(--gray-color-200)}.lib-search-input dd-lib-card{position:absolute;display:block;top:76px;z-index:100;width:100%;max-height:400px;box-shadow:var(--main-card-shadow);overflow:auto}.lib-search-input dd-lib-card.top{bottom:50px;top:unset}.lib-search-input .search-dropdown{position:absolute;display:block;top:76px;z-index:100;width:100%;max-height:400px;overflow:auto;border-radius:24px;box-shadow:var(--main-card-shadow);background-color:var(--main-card-color);min-height:100%;padding:0 24px}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: HighlightPipe, name: "highlight" }, { kind: "pipe", type: SafePipe, name: "safe" }, { kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }, { kind: "component", type: LibLoaderComponent, selector: "dd-lib-loader", inputs: ["color", "size"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2840
3159
  }
2841
3160
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibSearchInputComponent, decorators: [{
2842
3161
  type: Component,
2843
- args: [{ selector: 'dd-lib-search-input', standalone: true, imports: [FormsModule, NgOptimizedImage, LibCardComponent, HighlightPipe, SafePipe, LibSvgIconComponent, LibLoaderComponent, AsyncPipe], changeDetection: ChangeDetectionStrategy.OnPush, providers: [DestroyService], template: "<div class=\"lib-search-input\">\r\n <label [for]=\"id\" class=\"lib-search-input__title\">\r\n {{ label }}\r\n @if (required) {\r\n <dd-lib-svg-icon icon=\"error_hint\"></dd-lib-svg-icon>\r\n }\r\n </label>\r\n <div class=\"pos-relative\">\r\n <dd-lib-svg-icon (click)=\"forceChange()\" class=\"search-icon\" icon=\"search\"></dd-lib-svg-icon>\r\n <input\r\n #searchInput\r\n (keyup)=\"keyUp.next($event)\"\r\n (keyup.enter)=\"forceChange()\"\r\n [(ngModel)]=\"value\"\r\n [attr.autocomplete]=\"autocomplete === undefined ? null : autocomplete\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.maxlength]=\"maxlength\"\r\n [attr.minlength]=\"minlength\"\r\n [attr.name]=\"name\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.tabIndex]=\"tabIndex\"\r\n [attr.type]=\"type || 'text'\"\r\n [class.focused]=\"focused\"\r\n [class.round]=\"styleInput === 'round'\"\r\n [class.white]=\"inputStyle === 'white'\"\r\n [disabled]=\"disabled\"\r\n [readOnly]=\"readOnly\"\r\n class=\"search-input\" />\r\n <dd-lib-svg-icon\r\n (click)=\"onClear()\"\r\n [id]=\"idClose\" [style.display]=\"value?.length ? 'block' : 'none'\"\r\n class=\"clear-icon\" icon=\"clear\"></dd-lib-svg-icon>\r\n @if (loaded$ | async) {\r\n <div class=\"loading-icon\">\r\n <dd-lib-loader></dd-lib-loader>\r\n </div>\r\n }\r\n </div>\r\n\r\n @if (data?.length) {\r\n <dd-lib-card [class.top]=\"side === 'top'\">\r\n @for (item of data; track item) {\r\n <div (click)=\"onClickSearchItem(item)\" class=\"search-result\">\r\n @if (getTitle(item); as title) {\r\n <div [innerHTML]=\"title | highlight: value | safe: 'html'\" class=\"search-result__title\"></div>\r\n } @if (getDesc(item); as desc) {\r\n <div [innerHTML]=\"desc | highlight: value | safe: 'html'\" class=\"search-result__desc\"></div>\r\n }\r\n </div>\r\n }\r\n </dd-lib-card>\r\n }\r\n</div>\r\n", styles: [":host{display:block}.lib-search-input{position:relative}.lib-search-input__title{margin-bottom:4px;font-size:14px;line-height:24px;display:flex;align-items:flex-start}.lib-search-input input{width:100%;height:48px;padding:16px 16px 15px 44px;border-radius:8px;border:none;color:var(--light-black-color);background-color:var(--input-gray-bgc)}.lib-search-input input.white{background-color:var(--white-color);border:1px solid var(--primary-gray-color)}.lib-search-input .round{border-radius:24px}.lib-search-input .search-icon{position:absolute;left:16px;top:14px;cursor:pointer}.lib-search-input .clear-icon{position:absolute;right:16px;top:14px;cursor:pointer}.lib-search-input .loading-icon{position:absolute;right:40px;top:12px}.lib-search-input .search-result{font-size:16px;font-weight:400;line-height:24px;letter-spacing:0;text-align:left;cursor:pointer}.lib-search-input .search-result:hover{opacity:.8}.lib-search-input .search-result:last-child .search-result__desc{border:none;padding-bottom:0}.lib-search-input .search-result__title{color:var(--second-gray-color);margin:24px 0 2px}.lib-search-input .search-result__desc{padding-bottom:16px;border-bottom:1px solid var(--gray-color-200)}.lib-search-input dd-lib-card{position:absolute;display:block;top:76px;z-index:100;width:100%;max-height:400px;box-shadow:var(--main-card-shadow);overflow:auto}.lib-search-input dd-lib-card.top{bottom:50px;top:unset}\n"] }]
2844
- }], ctorParameters: () => [{ type: DestroyService }, { type: i0.ChangeDetectorRef }, { type: i0.ChangeDetectorRef }], propDecorators: { keyTitle: [{
3162
+ args: [{ selector: 'dd-lib-search-input', standalone: true, imports: [FormsModule, NgStyle, NgOptimizedImage, LibCardComponent, HighlightPipe, SafePipe, LibSvgIconComponent, LibLoaderComponent, AsyncPipe, DropDownPositionDirective, JsonPipe], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
3163
+ DestroyService,
3164
+ {
3165
+ provide: NG_VALUE_ACCESSOR,
3166
+ useExisting: forwardRef(() => LibSearchInputComponent),
3167
+ multi: true,
3168
+ },
3169
+ ], template: "<div class=\"lib-search-input\">\r\n <label [for]=\"id\" class=\"lib-search-input__title\">\r\n {{ label }}\r\n @if (required) {\r\n <dd-lib-svg-icon icon=\"error_hint\"></dd-lib-svg-icon>\r\n }\r\n </label>\r\n <div class=\"pos-relative\">\r\n <dd-lib-svg-icon (click)=\"forceChange()\" class=\"search-icon\" icon=\"search\"></dd-lib-svg-icon>\r\n <input\r\n #searchInput\r\n (keyup)=\"keyUp.next($event)\"\r\n (keyup.enter)=\"forceChange()\"\r\n [(ngModel)]=\"value\"\r\n [attr.autocomplete]=\"autocomplete === undefined ? null : autocomplete\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.maxlength]=\"maxlength\"\r\n [attr.minlength]=\"minlength\"\r\n [attr.name]=\"name\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.tabIndex]=\"tabIndex\"\r\n [attr.type]=\"type || 'text'\"\r\n [class.focused]=\"focused\"\r\n [class.round]=\"styleInput === 'round'\"\r\n [class.white]=\"inputStyle === 'white'\"\r\n [disabled]=\"disabled\"\r\n [readOnly]=\"readOnly\"\r\n class=\"search-input\" />\r\n <dd-lib-svg-icon\r\n (click)=\"onClear()\"\r\n [id]=\"idClose\" [style.display]=\"value?.length ? 'block' : 'none'\"\r\n class=\"clear-icon\" icon=\"clear\"></dd-lib-svg-icon>\r\n @if (loaded$ | async) {\r\n <div class=\"loading-icon\">\r\n <dd-lib-loader></dd-lib-loader>\r\n </div>\r\n }\r\n </div>\r\n\r\n @if (data?.length) {\r\n <div class=\"search-dropdown\" [class.top]=\"side === 'top'\" [ngStyle]=\"dropdownStyle\">\r\n @for (item of data; track item) {\r\n <div (click)=\"onClickSearchItem(item)\" class=\"search-result\">\r\n @if (getTitle(item); as title) {\r\n <div [innerHTML]=\"title | highlight: value | safe: 'html'\" class=\"search-result__title\"></div>\r\n }\r\n @if (getDesc(item); as desc) {\r\n <div [innerHTML]=\"desc | highlight: value | safe: 'html'\" class=\"search-result__desc\"></div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [":host{display:block}.lib-search-input{position:relative}.lib-search-input__title{margin-bottom:4px;font-size:14px;line-height:24px;display:flex;align-items:flex-start}.lib-search-input input{width:100%;height:48px;padding:16px 16px 15px 44px;border-radius:8px;border:none;color:var(--light-black-color);background-color:var(--input-gray-bgc)}.lib-search-input input.white{background-color:var(--white-color);border:1px solid var(--primary-gray-color)}.lib-search-input .round{border-radius:24px}.lib-search-input .search-icon{position:absolute;left:16px;top:14px;cursor:pointer}.lib-search-input .clear-icon{position:absolute;right:16px;top:14px;cursor:pointer}.lib-search-input .loading-icon{position:absolute;right:40px;top:12px}.lib-search-input .search-result{font-size:16px;font-weight:400;line-height:24px;letter-spacing:0;text-align:left;cursor:pointer}.lib-search-input .search-result:hover{opacity:.8}.lib-search-input .search-result:last-child .search-result__desc{border:none;padding-bottom:0}.lib-search-input .search-result__title{color:var(--second-gray-color);min-height:40px;align-items:center;align-content:center}.lib-search-input .search-result__desc{min-height:50px;align-items:center;align-content:center;border-bottom:1px solid var(--gray-color-200)}.lib-search-input dd-lib-card{position:absolute;display:block;top:76px;z-index:100;width:100%;max-height:400px;box-shadow:var(--main-card-shadow);overflow:auto}.lib-search-input dd-lib-card.top{bottom:50px;top:unset}.lib-search-input .search-dropdown{position:absolute;display:block;top:76px;z-index:100;width:100%;max-height:400px;overflow:auto;border-radius:24px;box-shadow:var(--main-card-shadow);background-color:var(--main-card-color);min-height:100%;padding:0 24px}\n"] }]
3170
+ }], ctorParameters: () => [{ type: DestroyService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.ChangeDetectorRef }], propDecorators: { keyTitle: [{
2845
3171
  type: Input
2846
3172
  }], keyDesc: [{
2847
3173
  type: Input
@@ -2863,6 +3189,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
2863
3189
  type: Output
2864
3190
  }], selectedItem: [{
2865
3191
  type: Output
3192
+ }], onWindowScroll: [{
3193
+ type: HostListener,
3194
+ args: ['window:resize']
3195
+ }, {
3196
+ type: HostListener,
3197
+ args: ['window:scroll']
2866
3198
  }] } });
2867
3199
 
2868
3200
  class LibSelectComponent extends LibCommonInputTextComponent {
@@ -2870,11 +3202,17 @@ class LibSelectComponent extends LibCommonInputTextComponent {
2870
3202
  set data(d) {
2871
3203
  this._data.set(d);
2872
3204
  this.stringArray.set(typeof d?.[0] === 'string');
3205
+ if (!d?.length) {
3206
+ this.isShownList = false;
3207
+ this.changeDetection.detectChanges();
3208
+ this.control?.updateValueAndValidity();
3209
+ }
2873
3210
  }
2874
3211
  ;
2875
- constructor(destroyed$, changeDetection, controlContainer) {
3212
+ constructor(destroyed$, changeDetection, el, controlContainer) {
2876
3213
  super(changeDetection);
2877
3214
  this.destroyed$ = destroyed$;
3215
+ this.el = el;
2878
3216
  this.controlContainer = controlContainer;
2879
3217
  this.tooltipPosition = 'top';
2880
3218
  this.highlight = true;
@@ -2884,11 +3222,18 @@ class LibSelectComponent extends LibCommonInputTextComponent {
2884
3222
  this.keyValue = '';
2885
3223
  this.placeholder = 'Выберите из списка';
2886
3224
  this.selectedItem = new EventEmitter();
3225
+ this.selectedItems = new EventEmitter();
2887
3226
  // TODO: надо сделать типизацию и конструктор принмайющий объект форматирующий во внутренний и отдающий обратно что нужно
2888
3227
  this._data = signal([]);
2889
3228
  this.checkedItems = [];
3229
+ this.initWriteValue = true;
2890
3230
  this.stringArray = signal(false);
2891
3231
  }
3232
+ onWindowScroll() {
3233
+ if (this.isShownList) {
3234
+ this.updateDropdownPosition(this.el, this._data(), this.itemSize, 300);
3235
+ }
3236
+ }
2892
3237
  ngOnInit() {
2893
3238
  this.showMultiCountValue = this.multi;
2894
3239
  if (!this.selectId) {
@@ -2902,6 +3247,14 @@ class LibSelectComponent extends LibCommonInputTextComponent {
2902
3247
  this.changeValueSub(this.control);
2903
3248
  }
2904
3249
  }
3250
+ ngOnChanges(changes) {
3251
+ if (!changes['data'].previousValue && changes['data'].currentValue && this.writtenValue) {
3252
+ console.log(changes['data'].previousValue);
3253
+ console.log(changes['data'].currentValue);
3254
+ console.log(this.writtenValue);
3255
+ this.writeValue(this.writtenValue);
3256
+ }
3257
+ }
2905
3258
  onClear(checkedItem) {
2906
3259
  this.cleared.emit();
2907
3260
  this.selectItem(checkedItem, true);
@@ -2910,6 +3263,7 @@ class LibSelectComponent extends LibCommonInputTextComponent {
2910
3263
  control.valueChanges
2911
3264
  .pipe(takeUntil(this.destroyed$))
2912
3265
  .subscribe(val => {
3266
+ this.initWriteValue = true;
2913
3267
  this.writeValue(val);
2914
3268
  this.errorText = ValidatorsService.getErrorText(this.control?.errors);
2915
3269
  this.changeDetection.detectChanges();
@@ -2923,14 +3277,32 @@ class LibSelectComponent extends LibCommonInputTextComponent {
2923
3277
  this.onTouchedCallback = fn;
2924
3278
  super.registerOnTouched(fn);
2925
3279
  }
3280
+ searchInput($event) {
3281
+ this.isShownList = true;
3282
+ // this.searchValue = this.inputValue;
3283
+ // меняем позицию дропдауна тк список будет меняться
3284
+ if (this.isShownList && this.searchValue) {
3285
+ const filteredData = new FilterByKeyPipe().transform(this._data.bind(this)(), this.filterList.bind(this));
3286
+ this.updateDropdownPosition(this.el, filteredData, this.itemSize, 300);
3287
+ }
3288
+ else if (this.isShownList && !this.searchValue) {
3289
+ this.updateDropdownPosition(this.el, this._data(), this.itemSize, 300);
3290
+ }
3291
+ }
2926
3292
  handleInput(e) {
2927
3293
  this.isShownList = true;
2928
- this.searchValue = this.inputValue;
3294
+ // this.searchValue = this.inputValue;
2929
3295
  super.handleInput(e);
2930
3296
  }
2931
3297
  notifyFocusEvent(e) {
2932
3298
  if (!this.disabled) {
2933
3299
  this.isShownList = !this.isShownList;
3300
+ if (this.isShownList) {
3301
+ setTimeout(() => {
3302
+ this.searchInputEl?.nativeElement.focus();
3303
+ });
3304
+ this.updateDropdownPosition(this.el, this._data(), this.itemSize, 300);
3305
+ }
2934
3306
  if (this.fetchMode) {
2935
3307
  this.fetchEvent.emit();
2936
3308
  }
@@ -2938,41 +3310,63 @@ class LibSelectComponent extends LibCommonInputTextComponent {
2938
3310
  super.notifyFocusEvent(e);
2939
3311
  }
2940
3312
  writeValue(value) {
2941
- if (this.multi && value?.length) {
2942
- this.multiCountValue = `Выбрано (${value.length})`;
2943
- if (this.keyValue) {
2944
- this.checkedItems = this._data().filter((f) => value.includes(f[this.keyValue]));
2945
- }
2946
- else {
2947
- if (this.stringArray()) {
2948
- this.checkedItems = this._data().filter((f) => value.includes(f));
3313
+ this.writtenValue = value;
3314
+ if (this.multi) {
3315
+ if (value?.length && this._data()?.length) {
3316
+ this.multiCountValue = `Выбрано (${value.length})`;
3317
+ if (this.keyValue) {
3318
+ this.checkedItems = this._data()?.filter((f) => value.includes(f[this.keyValue])) || [];
2949
3319
  }
2950
3320
  else {
2951
- const strArr = value.map(JSON.stringify);
2952
- this.checkedItems = this._data().filter((f) => strArr.includes(JSON.stringify(f)));
3321
+ if (this.stringArray()) {
3322
+ this.checkedItems = this._data()?.filter((f) => value.includes(f)) || [];
3323
+ }
3324
+ else {
3325
+ const strArr = value.map(JSON.stringify);
3326
+ this.checkedItems = this._data()?.filter((f) => strArr.includes(JSON.stringify(f))) || [];
3327
+ }
2953
3328
  }
2954
3329
  }
3330
+ else {
3331
+ this.checkedItems = [];
3332
+ this.multiCountValue = '';
3333
+ }
3334
+ if (!this.initWriteValue) {
3335
+ this.selectedItems.emit(this.checkedItems);
3336
+ }
2955
3337
  }
2956
3338
  else {
2957
- if (this.stringArray()) {
2958
- this.value = value;
2959
- this.inputValue = value;
2960
- }
2961
- else {
2962
- if (!!this.keyValue) {
2963
- const fVal = this._data()?.find((f) => f?.[this.keyValue] === value);
2964
- this.value = fVal?.[this.keyValue];
2965
- this.inputValue = this.keyTitle ? fVal?.[this.keyTitle] : fVal;
2966
- this.checkedItem = fVal;
3339
+ if (value) {
3340
+ if (this.stringArray()) {
3341
+ this.value = value;
3342
+ this.inputValue = value;
2967
3343
  }
2968
3344
  else {
2969
- const fVal = this._data()?.find((f) => JSON.stringify(f) === JSON.stringify(value));
2970
- this.value = fVal;
2971
- this.inputValue = this.keyTitle ? fVal?.[this.keyTitle] : fVal;
2972
- this.checkedItem = fVal;
3345
+ if (!!this.keyValue) {
3346
+ const fVal = this._data()?.find((f) => f?.[this.keyValue] === value);
3347
+ this.value = fVal?.[this.keyValue];
3348
+ this.inputValue = this.keyTitle ? fVal?.[this.keyTitle] : fVal;
3349
+ this.checkedItem = fVal;
3350
+ }
3351
+ else {
3352
+ const fVal = this._data()?.find((f) => JSON.stringify(f) === JSON.stringify(value));
3353
+ this.value = fVal;
3354
+ this.inputValue = this.keyTitle ? fVal?.[this.keyTitle] : fVal;
3355
+ this.checkedItem = fVal;
3356
+ }
2973
3357
  }
2974
3358
  }
3359
+ else {
3360
+ this.value = undefined;
3361
+ this.inputValue = '';
3362
+ this.checkedItem = undefined;
3363
+ }
3364
+ if (!this.initWriteValue) {
3365
+ this.selectedItem.emit(this.checkedItem);
3366
+ }
2975
3367
  }
3368
+ this.initWriteValue = false;
3369
+ this.changeDetection.detectChanges();
2976
3370
  }
2977
3371
  selectItem(item, cleared) {
2978
3372
  if (this.disabled || item.disabled) {
@@ -2980,11 +3374,13 @@ class LibSelectComponent extends LibCommonInputTextComponent {
2980
3374
  }
2981
3375
  if (this.multi) {
2982
3376
  this.selectMultiItem(item);
3377
+ this.selectedItems.emit(cleared ? undefined : item);
2983
3378
  }
2984
3379
  else {
2985
3380
  this.selectSingleItem(item);
3381
+ this.selectedItem.emit(cleared ? undefined : item);
2986
3382
  }
2987
- this.selectedItem.emit(cleared ? undefined : item);
3383
+ this.changeDetection.detectChanges();
2988
3384
  }
2989
3385
  filterList(item) {
2990
3386
  if (this.stringArray()) {
@@ -3084,17 +3480,17 @@ class LibSelectComponent extends LibCommonInputTextComponent {
3084
3480
  }
3085
3481
  handleFocus() {
3086
3482
  super.handleFocus();
3087
- this.showMultiCountValue = false;
3483
+ // this.showMultiCountValue = false;
3088
3484
  }
3089
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibSelectComponent, deps: [{ token: DestroyService }, { token: i0.ChangeDetectorRef }, { token: i1$5.ControlContainer, host: true, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component }); }
3090
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: LibSelectComponent, isStandalone: true, selector: "dd-lib-select", inputs: { data: "data", multi: "multi", tooltipPosition: "tooltipPosition", highlight: "highlight", selectId: "selectId", itemSize: "itemSize", keyTitle: "keyTitle", keyDesc: "keyDesc", keyValue: "keyValue", placeholder: "placeholder" }, outputs: { selectedItem: "selectedItem" }, providers: [
3485
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibSelectComponent, deps: [{ token: DestroyService }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1$5.ControlContainer, host: true, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component }); }
3486
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: LibSelectComponent, isStandalone: true, selector: "dd-lib-select", inputs: { data: "data", virtualScroll: "virtualScroll", multi: "multi", tooltipPosition: "tooltipPosition", highlight: "highlight", selectId: "selectId", itemSize: "itemSize", keyTitle: "keyTitle", keyDesc: "keyDesc", keyValue: "keyValue", placeholder: "placeholder" }, outputs: { selectedItem: "selectedItem", selectedItems: "selectedItems" }, host: { listeners: { "window:resize": "onWindowScroll()", "window:scroll": "onWindowScroll()" } }, providers: [
3091
3487
  DestroyService,
3092
3488
  {
3093
3489
  provide: NG_VALUE_ACCESSOR,
3094
3490
  useExisting: forwardRef(() => LibSelectComponent),
3095
3491
  multi: true,
3096
3492
  },
3097
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"lib-select\" id=\"lib-select-{{ selectId }}\">\r\n <label [for]=\"id\" class=\"lib-select__title\">\r\n {{ label }}\r\n @if (required) {\r\n <dd-lib-svg-icon icon=\"error_hint\"></dd-lib-svg-icon>\r\n }\r\n </label>\r\n\r\n <div class=\"pos-relative\">\r\n <input\r\n #select\r\n (change)=\"handleChange()\"\r\n (click)=\"notifyFocusEvent($event)\"\r\n (input)=\"handleInput($event)\"\r\n (blur)=\"handleBlur()\"\r\n (focus)=\"handleFocus()\"\r\n [(ngModel)]=\"inputValue\"\r\n [attr.id]=\"selectId\"\r\n [attr.name]=\"name\"\r\n [attr.placeholder]=\"multiCountValue ? '' : placeholder\"\r\n [attr.tabIndex]=\"tabIndex\"\r\n [attr.type]=\"'text'\"\r\n [class.focused]=\"focused\"\r\n [class.invalid]=\"showError\"\r\n [disabled]=\"disabled\"\r\n [readOnly]=\"readOnly\"\r\n [title]=\"inputValue || ''\"\r\n class=\"text-select\" />\r\n @if (multiCountValue && showMultiCountValue) {\r\n <span class=\"multi-count text-plain small\">{{multiCountValue}}</span>\r\n }\r\n <!-- (blur)=\"notifyFocusEvent($event)\"-->\r\n @if (!checkedItem) {\r\n <dd-lib-svg-icon\r\n (click)=\"notifyFocusEvent($event)\"\r\n [class.black-svg]=\"isShownList\"\r\n [class.disabled]=\"disabled\"\r\n [class.gray-svg]=\"!isShownList\"\r\n [class.up]=\"isShownList\"\r\n id=\"chevron-{{ selectId }}\" class=\"chevron\" icon=\"down_chevron\"></dd-lib-svg-icon>\r\n\r\n } @else if (clearable) {\r\n <dd-lib-svg-icon\r\n (click)=\"onClear(checkedItem)\"\r\n class=\"clear\"\r\n id=\"chevron-{{ selectId }}\" icon=\"clear\"></dd-lib-svg-icon>\r\n }\r\n </div>\r\n\r\n @if (errorTexts.length && showError) {\r\n @for (error of errorTexts; track error) {\r\n <div class=\"lib-select__error\">{{ error }}</div>\r\n }\r\n }\r\n @if (errorText && showSelfError && showError) {\r\n <div class=\"lib-select__error\">{{ errorText }}</div>\r\n }\r\n @if (isShownList) {\r\n <div\r\n (ddClickOutside)=\"notifyFocusEvent($event);fullBlur.emit($event)\"\r\n [elements]=\"['lib-select-' + selectId, 'chevron' + selectId]\"\r\n [class.top]=\"side === 'top'\"\r\n class=\"select-list-wrapper\">\r\n @if (_data()?.length) {\r\n <cdk-virtual-scroll-viewport [itemSize]=\"itemSize\" [style.height]=\"_data().length * itemSize + 'px'\">\r\n <div *cdkVirtualFor=\"let item of _data() | filterByKey: filterList.bind(this)\">\r\n <div [ddTooltip]=\"item.tooltip ? item.tooltip : ''\" [position]=\"tooltipPosition\"\r\n (click)=\"selectItem(item)\"\r\n [class.s-item-active]=\"checkSelected(item) && !item.disabled\"\r\n [class.s-item-disabled]=\"item.disabled\"\r\n class=\"select-data\">\r\n @if (stringArray()) {\r\n <div [innerHTML]=\"item | highlight: (highlight ? inputValue : '') | safe: 'html'\" class=\"select-data__title\"></div>\r\n }\r\n @if (keyTitle && !stringArray()) {\r\n <div\r\n [innerHTML]=\"item[keyTitle!] | highlight: (highlight ? inputValue : '') | safe: 'html'\"\r\n class=\"select-data__title\"></div>\r\n }\r\n @if (keyDesc && !stringArray()) {\r\n <div\r\n [innerHTML]=\"item[keyDesc!] | highlight: (highlight ? inputValue : '') | safe: 'html'\"\r\n [title]=\"item[keyDesc]\"\r\n class=\"select-data__desc\"></div>\r\n } @if (checkSelected(item)) {\r\n <dd-lib-svg-icon\r\n (click)=\"selectItem(checkedItem)\"\r\n class=\"checked\"\r\n id=\"chevron-{{ selectId }}\" icon=\"check_green\"></dd-lib-svg-icon>\r\n }\r\n </div>\r\n </div>\r\n </cdk-virtual-scroll-viewport>\r\n } @else {\r\n <div class=\"select-loader\">\r\n <dd-lib-loader></dd-lib-loader>\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [".lib-select{position:relative}.lib-select input{width:100%;height:48px;padding:15px 28px 15px 16px;overflow:hidden;text-overflow:ellipsis;border-radius:8px;border:1px solid var(--input-border-color);background-color:transparent;position:relative}.lib-select input:hover{border-color:var(--input-active-border-colort)}.lib-select input:focus{border-color:var(--input-active-border-colort);box-shadow:var(--input-active-border-shadow)}.lib-select input:disabled{border:none;background-color:var(--input-disable-input);color:var(--input-disable-text);pointer-events:none}.lib-select input:disabled::placeholder{color:var(--input-placeholder)}.lib-select input.invalid,.lib-select input.invalid:hover{border-color:var(--input-error-border-color)}.lib-select input.invalid:focus{border-color:var(--input-error-border-color);box-shadow:var(--input-error-border-shadow)}.lib-select .multi-count{position:absolute;top:12px;left:16px}.lib-select .clear{cursor:pointer;position:absolute;right:8px;top:12px}.lib-select .chevron{cursor:pointer;position:absolute;right:16px;top:10px}.lib-select .chevron.up{transform:rotate(180deg)}.lib-select__title{margin-bottom:4px;font-size:14px;line-height:24px;display:flex;align-items:flex-start}.lib-select__error{color:var(--primary-red-color);font-size:12px;font-weight:400;line-height:10px;margin-top:2px;position:absolute}.lib-select .select-list-wrapper{position:absolute;display:block;z-index:100;width:100%;max-height:300px;overflow:auto;border-radius:8px;box-shadow:var(--main-card-shadow);background-color:var(--main-card-color)}.lib-select .select-list-wrapper cdk-virtual-scroll-viewport{max-height:300px}.lib-select .select-list-wrapper.top{bottom:50px;top:unset}.lib-select .select-list-wrapper .select-data{padding:12px 42px 12px 16px;cursor:pointer;position:relative;min-height:40px}.lib-select .select-list-wrapper .select-data__desc{font-size:14px;font-weight:400;line-height:24px;text-overflow:ellipsis;text-wrap:nowrap;padding-top:2px;overflow:hidden;color:var(--second-gray-color)}.lib-select .select-list-wrapper .select-data:hover,.lib-select .select-list-wrapper .select-data.s-item-active{background:var(--select-act-hov-bgc)}.lib-select .select-list-wrapper .select-data.s-item-active .checked{position:absolute;right:16px;top:10px}.lib-select .select-list-wrapper .select-data.s-item-disabled{cursor:auto;background:var(--disabled-bgc);color:var(--disabled-color)}.lib-select .select-list-wrapper .select-loader{padding:24px}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: HighlightPipe, name: "highlight" }, { kind: "pipe", type: SafePipe, name: "safe" }, { kind: "directive", type: ClickOutsideDirective, selector: "[ddClickOutside]", inputs: ["elements"], outputs: ["ddClickOutside"] }, { kind: "component", type: LibLoaderComponent, selector: "dd-lib-loader", inputs: ["color", "size"] }, { kind: "pipe", type: FilterByKeyPipe, name: "filterByKey" }, { kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i3.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i3.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i3.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: TooltipDirective, selector: "[ddTooltip]", inputs: ["ddTooltip", "withClick", "position"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3493
+ ], viewQueries: [{ propertyName: "selectEl", first: true, predicate: ["select"], descendants: true, read: ElementRef, static: true }, { propertyName: "searchInputEl", first: true, predicate: ["searchInputEl"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"lib-select\" id=\"lib-select-{{ selectId }}\" ddFixedPosition>\r\n @if (label) {\r\n <label [for]=\"id\" class=\"lib-select__title\">\r\n {{ label }}\r\n @if (required) {\r\n <dd-lib-svg-icon icon=\"error_hint\"></dd-lib-svg-icon>\r\n }\r\n </label>\r\n }\r\n\r\n <div class=\"pos-relative\" data-child=\"input\">\r\n <div class=\"search-block\"\r\n [style.right]=\"multiCountValue ? '125px' : multi ? '40px' : '30px'\"\r\n [style.display]=\"(isShownList) ? 'flex' : 'none'\">\r\n <input class=\"search-block__input\" #searchInputEl [attr.name]=\"name\"\r\n [readOnly]=\"readOnly\"\r\n (input)=\"searchInput($event)\"\r\n (blur)=\"handleBlur()\"\r\n (focus)=\"handleFocus()\"\r\n [(ngModel)]=\"searchValue\" type=\"text\" >\r\n <dd-lib-svg-icon\r\n [style.display]=\"searchValue ? 'block' : 'none'\"\r\n class=\"cup\"\r\n (click)=\"searchValue=''\"\r\n id=\"chevron-{{ selectId }}\" icon=\"clear\"></dd-lib-svg-icon>\r\n\r\n </div>\r\n @if (!this._data()?.length || !this._data()) {\r\n <div class=\"data-loader\">\r\n <dd-lib-loader></dd-lib-loader>\r\n </div>\r\n }\r\n <input\r\n #select\r\n (change)=\"handleChange()\"\r\n (click)=\"notifyFocusEvent($event)\"\r\n (input)=\"handleInput($event)\"\r\n (blur)=\"handleBlur()\"\r\n (focus)=\"handleFocus()\"\r\n [attr.id]=\"selectId\"\r\n [attr.placeholder]=\"(multiCountValue || searchValue) ? '' : placeholder\"\r\n [attr.tabIndex]=\"tabIndex\"\r\n [style.color]=\"(searchValue && isShownList) ? 'transparent' : 'inherit'\"\r\n [attr.type]=\"'text'\"\r\n [class.focused]=\"focused\"\r\n [class.invalid]=\"showError\"\r\n [disabled]=\"disabled\"\r\n [readOnly]=\"true\"\r\n [(ngModel)]=\"inputValue\"\r\n [title]=\"inputValue || ''\"\r\n class=\"text-select select-block\" />\r\n @if (multiCountValue) {\r\n <span class=\"multi-count text-plain small\">{{multiCountValue}}</span>\r\n }\r\n <!-- (blur)=\"notifyFocusEvent($event)\"-->\r\n @if (!checkedItem) {\r\n <dd-lib-svg-icon\r\n (click)=\"notifyFocusEvent($event)\"\r\n [class.black-svg]=\"isShownList\"\r\n [class.disabled]=\"disabled\"\r\n [class.gray-svg]=\"!isShownList\"\r\n [class.up]=\"isShownList\"\r\n id=\"chevron-{{ selectId }}\" class=\"chevron\" icon=\"down_chevron\"></dd-lib-svg-icon>\r\n\r\n } @else if (clearable && !searchValue) {\r\n <dd-lib-svg-icon\r\n (click)=\"onClear(checkedItem)\"\r\n class=\"clear\"\r\n id=\"chevron-{{ selectId }}\" icon=\"clear\"></dd-lib-svg-icon>\r\n }\r\n </div>\r\n\r\n @if (errorTexts.length && showError) {\r\n @for (error of errorTexts; track error) {\r\n <div class=\"lib-select__error\">{{ error }}</div>\r\n }\r\n }\r\n @if (errorText && showSelfError && showError) {\r\n <div class=\"lib-select__error\">{{ errorText }}</div>\r\n }\r\n @if (isShownList) {\r\n <div\r\n id=\"dropdown\"\r\n data-child=\"list\"\r\n [ngStyle]=\"dropdownStyle\"\r\n (ddClickOutside)=\"notifyFocusEvent($event);fullBlur.emit($event)\"\r\n [elements]=\"['lib-select-' + selectId, 'chevron' + selectId]\"\r\n ddListKeyboardNavigation\r\n class=\"select-list-wrapper\">\r\n @if (_data()?.length) {\r\n @if (virtualScroll) {\r\n <cdk-virtual-scroll-viewport [itemSize]=\"itemSize\" [style.height]=\"(_data()?.length || 0) * itemSize + 'px'\">\r\n <div *cdkVirtualFor=\"let item of _data() | filterByKey: filterList.bind(this)\">\r\n <ng-container [ngTemplateOutlet]=\"rowItem\" [ngTemplateOutletContext]=\"{item}\"></ng-container>\r\n </div>\r\n </cdk-virtual-scroll-viewport>\r\n } @else {\r\n @for (item of _data() | filterByKey: filterList.bind(this); track item) {\r\n <ng-container [ngTemplateOutlet]=\"rowItem\" [ngTemplateOutletContext]=\"{item}\"></ng-container>\r\n }\r\n }\r\n } @else {\r\n <div class=\"select-loader\">\r\n <dd-lib-loader></dd-lib-loader>\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n\r\n<ng-template #rowItem let-item=item>\r\n <div ddSelectableItem [ddTooltip]=\"item.tooltip ? item.tooltip : ''\" [position]=\"tooltipPosition\"\r\n (click)=\"selectItem(item)\"\r\n (itemSelected)=\"selectItem(item)\"\r\n [class.s-item-active]=\"checkSelected(item) && !item.disabled\"\r\n [class.s-item-disabled]=\"item.disabled\"\r\n class=\"select-data\">\r\n @if (stringArray()) {\r\n <div [innerHTML]=\"item | highlight: (highlight ? searchValue : '') | safe: 'html'\"\r\n class=\"select-data__title\"></div>\r\n }\r\n @if (keyTitle && !stringArray()) {\r\n <div\r\n [innerHTML]=\"item[keyTitle!] | highlight: (highlight ? searchValue : '') | safe: 'html'\"\r\n class=\"select-data__title\"></div>\r\n }\r\n @if (keyDesc && !stringArray()) {\r\n <div\r\n [innerHTML]=\"item[keyDesc!] | highlight: (highlight ? searchValue : '') | safe: 'html'\"\r\n [title]=\"item[keyDesc]\"\r\n class=\"select-data__desc\"></div>\r\n }\r\n @if (checkSelected(item)) {\r\n <dd-lib-svg-icon\r\n (click)=\"selectItem(checkedItem)\"\r\n class=\"checked\"\r\n id=\"chevron-{{ selectId }}\" icon=\"check_green\"></dd-lib-svg-icon>\r\n }\r\n </div>\r\n</ng-template>\r\n", styles: [".lib-select{position:relative}.lib-select .select-block{width:100%;height:48px;padding:15px 28px 15px 16px;overflow:hidden;text-overflow:ellipsis;border-radius:8px;border:1px solid var(--input-border-color);background-color:transparent;position:relative}.lib-select .select-block:hover{border-color:var(--input-active-border-colort)}.lib-select .select-block:focus{border-color:var(--input-active-border-colort);box-shadow:var(--input-active-border-shadow)}.lib-select .select-block:disabled{border:none;background-color:var(--input-disable-input);color:var(--input-disable-text);pointer-events:none}.lib-select .select-block:disabled::placeholder{color:var(--input-placeholder)}.lib-select .select-block.invalid,.lib-select .select-block.invalid:hover{border-color:var(--input-error-border-color)}.lib-select .select-block.invalid:focus{border-color:var(--input-error-border-color);box-shadow:var(--input-error-border-shadow)}.lib-select .multi-count{position:absolute;top:10px;right:42px;white-space:nowrap}.lib-select .clear{cursor:pointer;position:absolute;right:8px;top:12px}.lib-select .chevron{cursor:pointer;position:absolute;right:16px;top:10px}.lib-select .chevron.up{transform:rotate(180deg)}.lib-select__title{margin-bottom:4px;font-size:14px;line-height:24px;display:flex;align-items:flex-start;color:var(--light-black-color)}.lib-select__error{color:var(--primary-red-color);font-size:12px;font-weight:400;line-height:10px;margin-top:2px;position:absolute}.lib-select .select-list-wrapper{position:absolute;display:block;z-index:100;width:100%;max-height:300px;overflow:auto;border-radius:8px;box-shadow:var(--main-card-shadow);background-color:var(--main-card-color)}.lib-select .select-list-wrapper cdk-virtual-scroll-viewport{max-height:300px}.lib-select .select-list-wrapper.top{bottom:50px;top:unset}.lib-select .select-list-wrapper .select-data{padding:12px 42px 12px 16px;cursor:pointer;position:relative;min-height:40px}.lib-select .select-list-wrapper .select-data__desc{font-size:14px;font-weight:400;line-height:24px;text-overflow:ellipsis;text-wrap:nowrap;padding-top:2px;overflow:hidden;color:var(--second-gray-color)}.lib-select .select-list-wrapper .select-data.key-down-active,.lib-select .select-list-wrapper .select-data:hover,.lib-select .select-list-wrapper .select-data.s-item-active{background:var(--select-act-hov-bgc)}.lib-select .select-list-wrapper .select-data.s-item-active .checked{position:absolute;right:16px;top:10px}.lib-select .select-list-wrapper .select-data.s-item-disabled{cursor:auto;background:var(--disabled-bgc);color:var(--disabled-color)}.lib-select .select-list-wrapper .select-loader{padding:24px}.search-block{position:absolute;height:12px;top:17px;z-index:1;left:16px;display:flex;gap:4px;align-items:center}.search-block__input{border:none;background:transparent;width:100%}.data-loader{position:absolute;right:0;left:0;bottom:12px}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: HighlightPipe, name: "highlight" }, { kind: "pipe", type: SafePipe, name: "safe" }, { kind: "directive", type: ClickOutsideDirective, selector: "[ddClickOutside]", inputs: ["elements"], outputs: ["ddClickOutside"] }, { kind: "component", type: LibLoaderComponent, selector: "dd-lib-loader", inputs: ["color", "size"] }, { kind: "pipe", type: FilterByKeyPipe, name: "filterByKey" }, { kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i3.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i3.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i3.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: TooltipDirective, selector: "[ddTooltip]", inputs: ["ddTooltip", "withClick", "position"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ListKeyboardNavigationDirective, selector: "[ddListKeyboardNavigation]" }, { kind: "directive", type: SelectableItemDirective, selector: "[ddSelectableItem]", outputs: ["itemSelected"] }, { kind: "directive", type: FixedPositionDirective, selector: "[ddFixedPosition]", inputs: ["childName1", "childName2"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3098
3494
  }
3099
3495
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibSelectComponent, decorators: [{
3100
3496
  type: Component,
@@ -3111,7 +3507,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
3111
3507
  LibSvgIconComponent,
3112
3508
  ScrollingModule,
3113
3509
  JsonPipe,
3114
- TooltipDirective
3510
+ TooltipDirective,
3511
+ NgStyle,
3512
+ DropDownPositionDirective,
3513
+ NgTemplateOutlet,
3514
+ ListKeyboardNavigationDirective,
3515
+ SelectableItemDirective,
3516
+ FixedPositionDirective
3115
3517
  ], providers: [
3116
3518
  DestroyService,
3117
3519
  {
@@ -3119,14 +3521,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
3119
3521
  useExisting: forwardRef(() => LibSelectComponent),
3120
3522
  multi: true,
3121
3523
  },
3122
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"lib-select\" id=\"lib-select-{{ selectId }}\">\r\n <label [for]=\"id\" class=\"lib-select__title\">\r\n {{ label }}\r\n @if (required) {\r\n <dd-lib-svg-icon icon=\"error_hint\"></dd-lib-svg-icon>\r\n }\r\n </label>\r\n\r\n <div class=\"pos-relative\">\r\n <input\r\n #select\r\n (change)=\"handleChange()\"\r\n (click)=\"notifyFocusEvent($event)\"\r\n (input)=\"handleInput($event)\"\r\n (blur)=\"handleBlur()\"\r\n (focus)=\"handleFocus()\"\r\n [(ngModel)]=\"inputValue\"\r\n [attr.id]=\"selectId\"\r\n [attr.name]=\"name\"\r\n [attr.placeholder]=\"multiCountValue ? '' : placeholder\"\r\n [attr.tabIndex]=\"tabIndex\"\r\n [attr.type]=\"'text'\"\r\n [class.focused]=\"focused\"\r\n [class.invalid]=\"showError\"\r\n [disabled]=\"disabled\"\r\n [readOnly]=\"readOnly\"\r\n [title]=\"inputValue || ''\"\r\n class=\"text-select\" />\r\n @if (multiCountValue && showMultiCountValue) {\r\n <span class=\"multi-count text-plain small\">{{multiCountValue}}</span>\r\n }\r\n <!-- (blur)=\"notifyFocusEvent($event)\"-->\r\n @if (!checkedItem) {\r\n <dd-lib-svg-icon\r\n (click)=\"notifyFocusEvent($event)\"\r\n [class.black-svg]=\"isShownList\"\r\n [class.disabled]=\"disabled\"\r\n [class.gray-svg]=\"!isShownList\"\r\n [class.up]=\"isShownList\"\r\n id=\"chevron-{{ selectId }}\" class=\"chevron\" icon=\"down_chevron\"></dd-lib-svg-icon>\r\n\r\n } @else if (clearable) {\r\n <dd-lib-svg-icon\r\n (click)=\"onClear(checkedItem)\"\r\n class=\"clear\"\r\n id=\"chevron-{{ selectId }}\" icon=\"clear\"></dd-lib-svg-icon>\r\n }\r\n </div>\r\n\r\n @if (errorTexts.length && showError) {\r\n @for (error of errorTexts; track error) {\r\n <div class=\"lib-select__error\">{{ error }}</div>\r\n }\r\n }\r\n @if (errorText && showSelfError && showError) {\r\n <div class=\"lib-select__error\">{{ errorText }}</div>\r\n }\r\n @if (isShownList) {\r\n <div\r\n (ddClickOutside)=\"notifyFocusEvent($event);fullBlur.emit($event)\"\r\n [elements]=\"['lib-select-' + selectId, 'chevron' + selectId]\"\r\n [class.top]=\"side === 'top'\"\r\n class=\"select-list-wrapper\">\r\n @if (_data()?.length) {\r\n <cdk-virtual-scroll-viewport [itemSize]=\"itemSize\" [style.height]=\"_data().length * itemSize + 'px'\">\r\n <div *cdkVirtualFor=\"let item of _data() | filterByKey: filterList.bind(this)\">\r\n <div [ddTooltip]=\"item.tooltip ? item.tooltip : ''\" [position]=\"tooltipPosition\"\r\n (click)=\"selectItem(item)\"\r\n [class.s-item-active]=\"checkSelected(item) && !item.disabled\"\r\n [class.s-item-disabled]=\"item.disabled\"\r\n class=\"select-data\">\r\n @if (stringArray()) {\r\n <div [innerHTML]=\"item | highlight: (highlight ? inputValue : '') | safe: 'html'\" class=\"select-data__title\"></div>\r\n }\r\n @if (keyTitle && !stringArray()) {\r\n <div\r\n [innerHTML]=\"item[keyTitle!] | highlight: (highlight ? inputValue : '') | safe: 'html'\"\r\n class=\"select-data__title\"></div>\r\n }\r\n @if (keyDesc && !stringArray()) {\r\n <div\r\n [innerHTML]=\"item[keyDesc!] | highlight: (highlight ? inputValue : '') | safe: 'html'\"\r\n [title]=\"item[keyDesc]\"\r\n class=\"select-data__desc\"></div>\r\n } @if (checkSelected(item)) {\r\n <dd-lib-svg-icon\r\n (click)=\"selectItem(checkedItem)\"\r\n class=\"checked\"\r\n id=\"chevron-{{ selectId }}\" icon=\"check_green\"></dd-lib-svg-icon>\r\n }\r\n </div>\r\n </div>\r\n </cdk-virtual-scroll-viewport>\r\n } @else {\r\n <div class=\"select-loader\">\r\n <dd-lib-loader></dd-lib-loader>\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [".lib-select{position:relative}.lib-select input{width:100%;height:48px;padding:15px 28px 15px 16px;overflow:hidden;text-overflow:ellipsis;border-radius:8px;border:1px solid var(--input-border-color);background-color:transparent;position:relative}.lib-select input:hover{border-color:var(--input-active-border-colort)}.lib-select input:focus{border-color:var(--input-active-border-colort);box-shadow:var(--input-active-border-shadow)}.lib-select input:disabled{border:none;background-color:var(--input-disable-input);color:var(--input-disable-text);pointer-events:none}.lib-select input:disabled::placeholder{color:var(--input-placeholder)}.lib-select input.invalid,.lib-select input.invalid:hover{border-color:var(--input-error-border-color)}.lib-select input.invalid:focus{border-color:var(--input-error-border-color);box-shadow:var(--input-error-border-shadow)}.lib-select .multi-count{position:absolute;top:12px;left:16px}.lib-select .clear{cursor:pointer;position:absolute;right:8px;top:12px}.lib-select .chevron{cursor:pointer;position:absolute;right:16px;top:10px}.lib-select .chevron.up{transform:rotate(180deg)}.lib-select__title{margin-bottom:4px;font-size:14px;line-height:24px;display:flex;align-items:flex-start}.lib-select__error{color:var(--primary-red-color);font-size:12px;font-weight:400;line-height:10px;margin-top:2px;position:absolute}.lib-select .select-list-wrapper{position:absolute;display:block;z-index:100;width:100%;max-height:300px;overflow:auto;border-radius:8px;box-shadow:var(--main-card-shadow);background-color:var(--main-card-color)}.lib-select .select-list-wrapper cdk-virtual-scroll-viewport{max-height:300px}.lib-select .select-list-wrapper.top{bottom:50px;top:unset}.lib-select .select-list-wrapper .select-data{padding:12px 42px 12px 16px;cursor:pointer;position:relative;min-height:40px}.lib-select .select-list-wrapper .select-data__desc{font-size:14px;font-weight:400;line-height:24px;text-overflow:ellipsis;text-wrap:nowrap;padding-top:2px;overflow:hidden;color:var(--second-gray-color)}.lib-select .select-list-wrapper .select-data:hover,.lib-select .select-list-wrapper .select-data.s-item-active{background:var(--select-act-hov-bgc)}.lib-select .select-list-wrapper .select-data.s-item-active .checked{position:absolute;right:16px;top:10px}.lib-select .select-list-wrapper .select-data.s-item-disabled{cursor:auto;background:var(--disabled-bgc);color:var(--disabled-color)}.lib-select .select-list-wrapper .select-loader{padding:24px}\n"] }]
3123
- }], ctorParameters: () => [{ type: DestroyService }, { type: i0.ChangeDetectorRef }, { type: i1$5.ControlContainer, decorators: [{
3524
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"lib-select\" id=\"lib-select-{{ selectId }}\" ddFixedPosition>\r\n @if (label) {\r\n <label [for]=\"id\" class=\"lib-select__title\">\r\n {{ label }}\r\n @if (required) {\r\n <dd-lib-svg-icon icon=\"error_hint\"></dd-lib-svg-icon>\r\n }\r\n </label>\r\n }\r\n\r\n <div class=\"pos-relative\" data-child=\"input\">\r\n <div class=\"search-block\"\r\n [style.right]=\"multiCountValue ? '125px' : multi ? '40px' : '30px'\"\r\n [style.display]=\"(isShownList) ? 'flex' : 'none'\">\r\n <input class=\"search-block__input\" #searchInputEl [attr.name]=\"name\"\r\n [readOnly]=\"readOnly\"\r\n (input)=\"searchInput($event)\"\r\n (blur)=\"handleBlur()\"\r\n (focus)=\"handleFocus()\"\r\n [(ngModel)]=\"searchValue\" type=\"text\" >\r\n <dd-lib-svg-icon\r\n [style.display]=\"searchValue ? 'block' : 'none'\"\r\n class=\"cup\"\r\n (click)=\"searchValue=''\"\r\n id=\"chevron-{{ selectId }}\" icon=\"clear\"></dd-lib-svg-icon>\r\n\r\n </div>\r\n @if (!this._data()?.length || !this._data()) {\r\n <div class=\"data-loader\">\r\n <dd-lib-loader></dd-lib-loader>\r\n </div>\r\n }\r\n <input\r\n #select\r\n (change)=\"handleChange()\"\r\n (click)=\"notifyFocusEvent($event)\"\r\n (input)=\"handleInput($event)\"\r\n (blur)=\"handleBlur()\"\r\n (focus)=\"handleFocus()\"\r\n [attr.id]=\"selectId\"\r\n [attr.placeholder]=\"(multiCountValue || searchValue) ? '' : placeholder\"\r\n [attr.tabIndex]=\"tabIndex\"\r\n [style.color]=\"(searchValue && isShownList) ? 'transparent' : 'inherit'\"\r\n [attr.type]=\"'text'\"\r\n [class.focused]=\"focused\"\r\n [class.invalid]=\"showError\"\r\n [disabled]=\"disabled\"\r\n [readOnly]=\"true\"\r\n [(ngModel)]=\"inputValue\"\r\n [title]=\"inputValue || ''\"\r\n class=\"text-select select-block\" />\r\n @if (multiCountValue) {\r\n <span class=\"multi-count text-plain small\">{{multiCountValue}}</span>\r\n }\r\n <!-- (blur)=\"notifyFocusEvent($event)\"-->\r\n @if (!checkedItem) {\r\n <dd-lib-svg-icon\r\n (click)=\"notifyFocusEvent($event)\"\r\n [class.black-svg]=\"isShownList\"\r\n [class.disabled]=\"disabled\"\r\n [class.gray-svg]=\"!isShownList\"\r\n [class.up]=\"isShownList\"\r\n id=\"chevron-{{ selectId }}\" class=\"chevron\" icon=\"down_chevron\"></dd-lib-svg-icon>\r\n\r\n } @else if (clearable && !searchValue) {\r\n <dd-lib-svg-icon\r\n (click)=\"onClear(checkedItem)\"\r\n class=\"clear\"\r\n id=\"chevron-{{ selectId }}\" icon=\"clear\"></dd-lib-svg-icon>\r\n }\r\n </div>\r\n\r\n @if (errorTexts.length && showError) {\r\n @for (error of errorTexts; track error) {\r\n <div class=\"lib-select__error\">{{ error }}</div>\r\n }\r\n }\r\n @if (errorText && showSelfError && showError) {\r\n <div class=\"lib-select__error\">{{ errorText }}</div>\r\n }\r\n @if (isShownList) {\r\n <div\r\n id=\"dropdown\"\r\n data-child=\"list\"\r\n [ngStyle]=\"dropdownStyle\"\r\n (ddClickOutside)=\"notifyFocusEvent($event);fullBlur.emit($event)\"\r\n [elements]=\"['lib-select-' + selectId, 'chevron' + selectId]\"\r\n ddListKeyboardNavigation\r\n class=\"select-list-wrapper\">\r\n @if (_data()?.length) {\r\n @if (virtualScroll) {\r\n <cdk-virtual-scroll-viewport [itemSize]=\"itemSize\" [style.height]=\"(_data()?.length || 0) * itemSize + 'px'\">\r\n <div *cdkVirtualFor=\"let item of _data() | filterByKey: filterList.bind(this)\">\r\n <ng-container [ngTemplateOutlet]=\"rowItem\" [ngTemplateOutletContext]=\"{item}\"></ng-container>\r\n </div>\r\n </cdk-virtual-scroll-viewport>\r\n } @else {\r\n @for (item of _data() | filterByKey: filterList.bind(this); track item) {\r\n <ng-container [ngTemplateOutlet]=\"rowItem\" [ngTemplateOutletContext]=\"{item}\"></ng-container>\r\n }\r\n }\r\n } @else {\r\n <div class=\"select-loader\">\r\n <dd-lib-loader></dd-lib-loader>\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n\r\n<ng-template #rowItem let-item=item>\r\n <div ddSelectableItem [ddTooltip]=\"item.tooltip ? item.tooltip : ''\" [position]=\"tooltipPosition\"\r\n (click)=\"selectItem(item)\"\r\n (itemSelected)=\"selectItem(item)\"\r\n [class.s-item-active]=\"checkSelected(item) && !item.disabled\"\r\n [class.s-item-disabled]=\"item.disabled\"\r\n class=\"select-data\">\r\n @if (stringArray()) {\r\n <div [innerHTML]=\"item | highlight: (highlight ? searchValue : '') | safe: 'html'\"\r\n class=\"select-data__title\"></div>\r\n }\r\n @if (keyTitle && !stringArray()) {\r\n <div\r\n [innerHTML]=\"item[keyTitle!] | highlight: (highlight ? searchValue : '') | safe: 'html'\"\r\n class=\"select-data__title\"></div>\r\n }\r\n @if (keyDesc && !stringArray()) {\r\n <div\r\n [innerHTML]=\"item[keyDesc!] | highlight: (highlight ? searchValue : '') | safe: 'html'\"\r\n [title]=\"item[keyDesc]\"\r\n class=\"select-data__desc\"></div>\r\n }\r\n @if (checkSelected(item)) {\r\n <dd-lib-svg-icon\r\n (click)=\"selectItem(checkedItem)\"\r\n class=\"checked\"\r\n id=\"chevron-{{ selectId }}\" icon=\"check_green\"></dd-lib-svg-icon>\r\n }\r\n </div>\r\n</ng-template>\r\n", styles: [".lib-select{position:relative}.lib-select .select-block{width:100%;height:48px;padding:15px 28px 15px 16px;overflow:hidden;text-overflow:ellipsis;border-radius:8px;border:1px solid var(--input-border-color);background-color:transparent;position:relative}.lib-select .select-block:hover{border-color:var(--input-active-border-colort)}.lib-select .select-block:focus{border-color:var(--input-active-border-colort);box-shadow:var(--input-active-border-shadow)}.lib-select .select-block:disabled{border:none;background-color:var(--input-disable-input);color:var(--input-disable-text);pointer-events:none}.lib-select .select-block:disabled::placeholder{color:var(--input-placeholder)}.lib-select .select-block.invalid,.lib-select .select-block.invalid:hover{border-color:var(--input-error-border-color)}.lib-select .select-block.invalid:focus{border-color:var(--input-error-border-color);box-shadow:var(--input-error-border-shadow)}.lib-select .multi-count{position:absolute;top:10px;right:42px;white-space:nowrap}.lib-select .clear{cursor:pointer;position:absolute;right:8px;top:12px}.lib-select .chevron{cursor:pointer;position:absolute;right:16px;top:10px}.lib-select .chevron.up{transform:rotate(180deg)}.lib-select__title{margin-bottom:4px;font-size:14px;line-height:24px;display:flex;align-items:flex-start;color:var(--light-black-color)}.lib-select__error{color:var(--primary-red-color);font-size:12px;font-weight:400;line-height:10px;margin-top:2px;position:absolute}.lib-select .select-list-wrapper{position:absolute;display:block;z-index:100;width:100%;max-height:300px;overflow:auto;border-radius:8px;box-shadow:var(--main-card-shadow);background-color:var(--main-card-color)}.lib-select .select-list-wrapper cdk-virtual-scroll-viewport{max-height:300px}.lib-select .select-list-wrapper.top{bottom:50px;top:unset}.lib-select .select-list-wrapper .select-data{padding:12px 42px 12px 16px;cursor:pointer;position:relative;min-height:40px}.lib-select .select-list-wrapper .select-data__desc{font-size:14px;font-weight:400;line-height:24px;text-overflow:ellipsis;text-wrap:nowrap;padding-top:2px;overflow:hidden;color:var(--second-gray-color)}.lib-select .select-list-wrapper .select-data.key-down-active,.lib-select .select-list-wrapper .select-data:hover,.lib-select .select-list-wrapper .select-data.s-item-active{background:var(--select-act-hov-bgc)}.lib-select .select-list-wrapper .select-data.s-item-active .checked{position:absolute;right:16px;top:10px}.lib-select .select-list-wrapper .select-data.s-item-disabled{cursor:auto;background:var(--disabled-bgc);color:var(--disabled-color)}.lib-select .select-list-wrapper .select-loader{padding:24px}.search-block{position:absolute;height:12px;top:17px;z-index:1;left:16px;display:flex;gap:4px;align-items:center}.search-block__input{border:none;background:transparent;width:100%}.data-loader{position:absolute;right:0;left:0;bottom:12px}\n"] }]
3525
+ }], ctorParameters: () => [{ type: DestroyService }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1$5.ControlContainer, decorators: [{
3124
3526
  type: Optional
3125
3527
  }, {
3126
3528
  type: Host
3127
3529
  }, {
3128
3530
  type: SkipSelf
3129
- }] }], propDecorators: { data: [{
3531
+ }] }], propDecorators: { selectEl: [{
3532
+ type: ViewChild,
3533
+ args: ['select', { read: ElementRef, static: true }]
3534
+ }], searchInputEl: [{
3535
+ type: ViewChild,
3536
+ args: ['searchInputEl', { read: ElementRef, static: true }]
3537
+ }], data: [{
3538
+ type: Input
3539
+ }], virtualScroll: [{
3130
3540
  type: Input
3131
3541
  }], multi: [{
3132
3542
  type: Input
@@ -3148,6 +3558,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
3148
3558
  type: Input
3149
3559
  }], selectedItem: [{
3150
3560
  type: Output
3561
+ }], selectedItems: [{
3562
+ type: Output
3563
+ }], onWindowScroll: [{
3564
+ type: HostListener,
3565
+ args: ['window:resize']
3566
+ }, {
3567
+ type: HostListener,
3568
+ args: ['window:scroll']
3151
3569
  }] } });
3152
3570
 
3153
3571
  const DefaultSort = [
@@ -3254,13 +3672,13 @@ class LibSvgComponent {
3254
3672
  }
3255
3673
  });
3256
3674
  }
3257
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibSvgComponent, deps: [{ token: i1$2.HttpClient }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
3675
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibSvgComponent, deps: [{ token: i1$1.HttpClient }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
3258
3676
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: LibSvgComponent, isStandalone: true, selector: "dd-lib-svg", inputs: { width: "width", height: "height", icon: "icon", pack: "pack", color: "color", stroke: "stroke" }, viewQueries: [{ propertyName: "svg", first: true, predicate: ["svgRef"], descendants: true, static: true }], ngImport: i0, template: "<div\r\n #svgRef\r\n [class.black-stroke]=\"stroke === 'black'\"\r\n [class.black]=\"color === 'black'\"\r\n [class.gray-stroke]=\"stroke === 'gray'\"\r\n [class.gray]=\"color === 'gray'\"\r\n [class.green-stroke]=\"stroke === 'green'\"\r\n [class.green]=\"color === 'green'\"\r\n [class.white-stroke]=\"stroke === 'white'\"\r\n [class.white]=\"color === 'white'\"\r\n [class.gold-stroke]=\"stroke === 'gold'\"\r\n [class.gold]=\"color === 'gold'\"\r\n [class.blue-stroke]=\"stroke === 'blue'\"\r\n [class.blue]=\"color === 'blue'\"\r\n class=\"lib-icon\"></div>\r\n", styles: [".lib-icon{display:flex;align-items:center;justify-content:center}.lib-icon.green{fill:var(--primary-green-color)}.lib-icon.white{fill:#fff}.lib-icon.white path{fill:#fff;stroke:#fff}.lib-icon.white-stroke{stroke:var(--white-color)}.lib-icon.white-stroke g>path,.lib-icon.white-stroke path{stroke:var(--white-color)}.lib-icon.black{fill:var(--black-color)}.lib-icon.gray{fill:var(--second-gray-color)}.lib-icon.gray path{fill:var(--second-gray-color);stroke:var(--second-gray-color)}.lib-icon.gray-stroke{stroke:var(--second-gray-color)}.lib-icon.gray-stroke path{stroke:var(--second-gray-color)}.lib-icon.gold-stroke{stroke:var(--gold-svg-color)}.lib-icon.gold-stroke path{stroke:var(--gold-svg-color)}.lib-icon.gold{fill:var(--gold-bgc-color)}.lib-icon.gold path{fill:var(--gold-bgc-color);stroke:var(--gold-svg-color)}.lib-icon.blue-stroke{stroke:var(--blue-color)}.lib-icon.blue-stroke path{stroke:var(--blue-color)}.lib-icon.blue{fill:var(--blue-light-bgc)}.lib-icon.blue path{fill:var(--blue-light-bgc);stroke:var(--blue-light-bgc)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3259
3677
  }
3260
3678
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibSvgComponent, decorators: [{
3261
3679
  type: Component,
3262
3680
  args: [{ selector: 'dd-lib-svg', standalone: true, imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n #svgRef\r\n [class.black-stroke]=\"stroke === 'black'\"\r\n [class.black]=\"color === 'black'\"\r\n [class.gray-stroke]=\"stroke === 'gray'\"\r\n [class.gray]=\"color === 'gray'\"\r\n [class.green-stroke]=\"stroke === 'green'\"\r\n [class.green]=\"color === 'green'\"\r\n [class.white-stroke]=\"stroke === 'white'\"\r\n [class.white]=\"color === 'white'\"\r\n [class.gold-stroke]=\"stroke === 'gold'\"\r\n [class.gold]=\"color === 'gold'\"\r\n [class.blue-stroke]=\"stroke === 'blue'\"\r\n [class.blue]=\"color === 'blue'\"\r\n class=\"lib-icon\"></div>\r\n", styles: [".lib-icon{display:flex;align-items:center;justify-content:center}.lib-icon.green{fill:var(--primary-green-color)}.lib-icon.white{fill:#fff}.lib-icon.white path{fill:#fff;stroke:#fff}.lib-icon.white-stroke{stroke:var(--white-color)}.lib-icon.white-stroke g>path,.lib-icon.white-stroke path{stroke:var(--white-color)}.lib-icon.black{fill:var(--black-color)}.lib-icon.gray{fill:var(--second-gray-color)}.lib-icon.gray path{fill:var(--second-gray-color);stroke:var(--second-gray-color)}.lib-icon.gray-stroke{stroke:var(--second-gray-color)}.lib-icon.gray-stroke path{stroke:var(--second-gray-color)}.lib-icon.gold-stroke{stroke:var(--gold-svg-color)}.lib-icon.gold-stroke path{stroke:var(--gold-svg-color)}.lib-icon.gold{fill:var(--gold-bgc-color)}.lib-icon.gold path{fill:var(--gold-bgc-color);stroke:var(--gold-svg-color)}.lib-icon.blue-stroke{stroke:var(--blue-color)}.lib-icon.blue-stroke path{stroke:var(--blue-color)}.lib-icon.blue{fill:var(--blue-light-bgc)}.lib-icon.blue path{fill:var(--blue-light-bgc);stroke:var(--blue-light-bgc)}\n"] }]
3263
- }], ctorParameters: () => [{ type: i1$2.HttpClient }, { type: i0.Renderer2 }], propDecorators: { svg: [{
3681
+ }], ctorParameters: () => [{ type: i1$1.HttpClient }, { type: i0.Renderer2 }], propDecorators: { svg: [{
3264
3682
  type: ViewChild,
3265
3683
  args: ['svgRef', { static: true }]
3266
3684
  }], width: [{
@@ -3295,11 +3713,11 @@ class ITab {
3295
3713
  }
3296
3714
  }
3297
3715
  class LibTabsFragmentComponent {
3298
- constructor(route, router, cdr) {
3716
+ constructor(route, location, router, cdr) {
3299
3717
  this.route = route;
3718
+ this.location = location;
3300
3719
  this.router = router;
3301
3720
  this.cdr = cdr;
3302
- this.rout = location.pathname;
3303
3721
  this.setActiveTab = new EventEmitter();
3304
3722
  }
3305
3723
  ngOnInit() {
@@ -3317,6 +3735,11 @@ class LibTabsFragmentComponent {
3317
3735
  else if (this.rout && this.noFragment && tab.path) {
3318
3736
  this.router.navigate([this.rout, tab.path]);
3319
3737
  }
3738
+ else if (!this.rout && !this.noFragment) {
3739
+ const currentUrl = this.location.path(); // Получаем текущий URL без фрагмента
3740
+ const newUrl = currentUrl.split('#')[0] + '#' + tab.fragment; // Добавляем фрагмент
3741
+ this.location.replaceState(newUrl); // Обновляем URL без перезагрузки
3742
+ }
3320
3743
  this.setActiveTab.emit(this.activeFragment);
3321
3744
  }
3322
3745
  else {
@@ -3328,7 +3751,7 @@ class LibTabsFragmentComponent {
3328
3751
  this.cdr.detectChanges();
3329
3752
  }
3330
3753
  getFragment() {
3331
- const activeFragment = this.route.snapshot.fragment;
3754
+ const activeFragment = window.location.hash.split('#')[1];
3332
3755
  this.activeFragment = this.tabs?.[0]?.id || 0;
3333
3756
  if (this.tabsFragment?.includes(activeFragment)) {
3334
3757
  this.activeFragment = this.tabs?.find(f => f.fragment === activeFragment)?.id;
@@ -3340,13 +3763,13 @@ class LibTabsFragmentComponent {
3340
3763
  this.setActiveTab.emit(this.activeFragment);
3341
3764
  }
3342
3765
  }
3343
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibTabsFragmentComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: i1$1.Router }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
3766
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibTabsFragmentComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1$3.Location }, { token: i1.Router }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
3344
3767
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: LibTabsFragmentComponent, isStandalone: true, selector: "dd-lib-tabs-fragment", inputs: { rout: "rout", tabs: "tabs", tabsFragment: "tabsFragment", needInitEvent: "needInitEvent", noFragment: "noFragment" }, outputs: { setActiveTab: "setActiveTab" }, ngImport: i0, template: "@if (tabs?.length) {\r\n<div class=\"tabs-fragment\">\r\n <swiper-container speed=\"500\" slides-per-view=\"auto\">\r\n @for (tab of tabs; track tab) {\r\n <swiper-slide>\r\n <div class=\"tabs-fragment__item\"\r\n [class.active]=\"tab.id === activeFragment\"\r\n (click)=\"checkActiveTab(tab)\">\r\n {{ tab.title }}\r\n </div>\r\n </swiper-slide>\r\n }\r\n </swiper-container>\r\n</div>\r\n}\r\n", styles: [".tabs-fragment__item{display:inline-block;padding:0 8px 16px;font-size:16px;line-height:24px;color:var(--menu-item-color);border-bottom:1px solid var(--disabled-bgc);cursor:pointer}.tabs-fragment__item:hover,.tabs-fragment__item.active{color:var(--primary-green-color)}.tabs-fragment__item.active{padding-bottom:15px;border-width:2px;border-color:var(--primary-green-color);cursor:default}.tabs-fragment swiper-slide{width:auto}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3345
3768
  }
3346
3769
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibTabsFragmentComponent, decorators: [{
3347
3770
  type: Component,
3348
3771
  args: [{ selector: 'dd-lib-tabs-fragment', standalone: true, imports: [], changeDetection: ChangeDetectionStrategy.OnPush, schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "@if (tabs?.length) {\r\n<div class=\"tabs-fragment\">\r\n <swiper-container speed=\"500\" slides-per-view=\"auto\">\r\n @for (tab of tabs; track tab) {\r\n <swiper-slide>\r\n <div class=\"tabs-fragment__item\"\r\n [class.active]=\"tab.id === activeFragment\"\r\n (click)=\"checkActiveTab(tab)\">\r\n {{ tab.title }}\r\n </div>\r\n </swiper-slide>\r\n }\r\n </swiper-container>\r\n</div>\r\n}\r\n", styles: [".tabs-fragment__item{display:inline-block;padding:0 8px 16px;font-size:16px;line-height:24px;color:var(--menu-item-color);border-bottom:1px solid var(--disabled-bgc);cursor:pointer}.tabs-fragment__item:hover,.tabs-fragment__item.active{color:var(--primary-green-color)}.tabs-fragment__item.active{padding-bottom:15px;border-width:2px;border-color:var(--primary-green-color);cursor:default}.tabs-fragment swiper-slide{width:auto}\n"] }]
3349
- }], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: i0.ChangeDetectorRef }], propDecorators: { rout: [{
3772
+ }], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i1$3.Location }, { type: i1.Router }, { type: i0.ChangeDetectorRef }], propDecorators: { rout: [{
3350
3773
  type: Input
3351
3774
  }], tabs: [{
3352
3775
  type: Input
@@ -3389,7 +3812,7 @@ class LibTextareaComponent extends LibCommonInputTextComponent {
3389
3812
  useExisting: forwardRef(() => LibTextareaComponent),
3390
3813
  multi: true,
3391
3814
  },
3392
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"lib-textarea\">\r\n <label [for]=\"id\" class=\"d-block g-text-sm mb-4\">\r\n {{ label }}\r\n @if (needCounter && maxlength) {\r\n <span>(\u043E\u0441\u0442\u0430\u043B\u043E\u0441\u044C {{ +maxlength! - (value?.length || 0) }} \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432)</span>\r\n }\r\n @if (required) {\r\n <span class=\"red\">*</span>\r\n }\r\n </label>\r\n <div class=\"pos-relative d-flex\">\r\n <textarea\r\n #textarea\r\n (blur)=\"notifyFocusEvent($event)\"\r\n (change)=\"handleChange()\"\r\n (focus)=\"notifyFocusEvent($event)\"\r\n (input)=\"handleInput($event)\"\r\n (keyup.enter)=\"forceChange()\"\r\n [(ngModel)]=\"value\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.maxlength]=\"maxlength\"\r\n [attr.minlength]=\"minlength\"\r\n [attr.name]=\"name\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.tabIndex]=\"tabIndex\"\r\n [class.focused]=\"focused\"\r\n [class.invalid]=\"invalid\"\r\n [disabled]=\"disabled\"\r\n [readOnly]=\"readOnly\"\r\n [required]=\"required\"\r\n [rows]=\"rows\"\r\n class=\"textarea\"></textarea>\r\n @if (maxlength) {\r\n <span class=\"lib-textarea__counter\">{{ value?.length || 0 }}/{{ maxlength }}</span>\r\n }\r\n </div>\r\n\r\n @if (errorTexts.length && showError) {\r\n @for (error of errorTexts; track error) {\r\n <div class=\"lib-input__error\">{{ error }}</div>\r\n }\r\n }\r\n</div>\r\n", styles: [".lib-textarea{position:relative;display:inline;flex-direction:column}.lib-textarea textarea{width:100%;min-height:48px;padding:12px 16px;border-radius:8px;border:1px solid var(--input-border-color);background-color:transparent;resize:none;font-size:16px;line-height:24px;color:var(--light-black-color)}.lib-textarea textarea:hover{border-color:var(--input-active-border-colort)}.lib-textarea textarea:focus{border-color:var(--input-active-border-colort);box-shadow:var(--input-active-border-shadow)}.lib-textarea textarea:disabled{border:none;background-color:var(--input-disable-input);color:var(--input-disable-text);pointer-events:none}.lib-textarea textarea:disabled::placeholder{color:var(--input-placeholder)}.lib-textarea textarea.invalid,.lib-textarea textarea.invalid:hover{border-color:var(--input-error-border-color)}.lib-textarea textarea.invalid:focus{border-color:var(--input-error-border-color);box-shadow:var(--input-error-border-shadow)}.lib-textarea__counter{position:absolute;font-size:12px;font-weight:400;right:16px;bottom:12px;color:var(--input-placeholder)}.lib-textarea__counter textarea:disabled+.lib-text-counter{color:var(--input-disable-text)}.lib-textarea__error{color:var(--primary-red-color);font-size:12px;font-weight:400;line-height:10px;margin-top:2px;position:absolute}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3815
+ ], viewQueries: [{ propertyName: "textarea", first: true, predicate: ["textarea"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"lib-textarea\">\r\n <label [for]=\"id\" class=\"d-block g-text-sm mb-4\">\r\n {{ label }}\r\n @if (needCounter && maxlength) {\r\n <span>(\u043E\u0441\u0442\u0430\u043B\u043E\u0441\u044C {{ +maxlength! - (value?.length || 0) }} \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432)</span>\r\n }\r\n @if (required) {\r\n <span class=\"red\">*</span>\r\n }\r\n </label>\r\n <div class=\"pos-relative d-flex\">\r\n <textarea\r\n #textarea\r\n (blur)=\"notifyFocusEvent($event)\"\r\n (change)=\"handleChange()\"\r\n (focus)=\"notifyFocusEvent($event)\"\r\n (input)=\"handleInput($event)\"\r\n (keyup.enter)=\"forceChange()\"\r\n [(ngModel)]=\"value\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.maxlength]=\"maxlength\"\r\n [attr.minlength]=\"minlength\"\r\n [attr.name]=\"name\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.tabIndex]=\"tabIndex\"\r\n [class.focused]=\"focused\"\r\n [class.invalid]=\"invalid\"\r\n [disabled]=\"disabled\"\r\n [readOnly]=\"readOnly\"\r\n [required]=\"required\"\r\n [rows]=\"rows\"\r\n class=\"textarea\"></textarea>\r\n @if (maxlength) {\r\n <span class=\"lib-textarea__counter\">{{ value?.length || 0 }}/{{ maxlength }}</span>\r\n }\r\n </div>\r\n\r\n @if (errorTexts.length && showError) {\r\n @for (error of errorTexts; track error) {\r\n <div class=\"lib-input__error\">{{ error }}</div>\r\n }\r\n }\r\n</div>\r\n", styles: [".lib-textarea{position:relative;display:inline;flex-direction:column}.lib-textarea textarea{width:100%;min-height:48px;padding:12px 16px;border-radius:8px;border:1px solid var(--input-border-color);background-color:transparent;resize:none;font-size:16px;line-height:24px;color:var(--light-black-color)}.lib-textarea textarea:hover{border-color:var(--input-active-border-colort)}.lib-textarea textarea:focus{border-color:var(--input-active-border-colort);box-shadow:var(--input-active-border-shadow)}.lib-textarea textarea:disabled{border:none;background-color:var(--input-disable-input);color:var(--input-disable-text);pointer-events:none}.lib-textarea textarea:disabled::placeholder{color:var(--input-placeholder)}.lib-textarea textarea.invalid,.lib-textarea textarea.invalid:hover{border-color:var(--input-error-border-color)}.lib-textarea textarea.invalid:focus{border-color:var(--input-error-border-color);box-shadow:var(--input-error-border-shadow)}.lib-textarea__counter{position:absolute;font-size:12px;font-weight:400;right:16px;bottom:12px;color:var(--input-placeholder)}.lib-textarea__counter textarea:disabled+.lib-text-counter{color:var(--input-disable-text)}.lib-textarea__error{color:var(--primary-red-color);font-size:12px;font-weight:400;line-height:10px;margin-top:2px;position:absolute}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3393
3816
  }
3394
3817
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibTextareaComponent, decorators: [{
3395
3818
  type: Component,
@@ -3410,6 +3833,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
3410
3833
  type: Input
3411
3834
  }], needCounter: [{
3412
3835
  type: Input
3836
+ }], textarea: [{
3837
+ type: ViewChild,
3838
+ args: ['textarea', { read: ElementRef, static: true }]
3413
3839
  }] } });
3414
3840
 
3415
3841
  class LibFileLoaderComponent {
@@ -3522,12 +3948,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
3522
3948
  }] } });
3523
3949
 
3524
3950
  class LibDateRangeComponent {
3525
- constructor() {
3951
+ static { this.idCounter = 1; }
3952
+ constructor(cdr) {
3953
+ this.cdr = cdr;
3526
3954
  this.isShownPeriod = false;
3527
3955
  this.disabled = false;
3528
3956
  this.selectedPeriod = { start: new Date(), end: new Date() };
3529
3957
  }
3530
- static { this.idCounter = 1; }
3531
3958
  ngOnInit() {
3532
3959
  if (!this.rangeId) {
3533
3960
  this.rangeId = 'dd-range-' + LibDateRangeComponent.idCounter++;
@@ -3579,8 +4006,9 @@ class LibDateRangeComponent {
3579
4006
  if ($event?.start && $event?.end) {
3580
4007
  this.selectedPeriodStr = `${format($event?.start, 'dd.MM.yyyy')} - ${format($event?.end, 'dd.MM.yyyy')}`;
3581
4008
  }
4009
+ this.cdr.detectChanges();
3582
4010
  }
3583
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibDateRangeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4011
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibDateRangeComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
3584
4012
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: LibDateRangeComponent, isStandalone: true, selector: "dd-lib-date-range", inputs: { rangeId: "rangeId", placeholder: "placeholder", label: "label", required: "required" }, providers: [
3585
4013
  provideNgxMask(),
3586
4014
  {
@@ -3588,7 +4016,7 @@ class LibDateRangeComponent {
3588
4016
  useExisting: forwardRef(() => LibDateRangeComponent),
3589
4017
  multi: true,
3590
4018
  },
3591
- ], ngImport: i0, template: "<div class=\"lib-range\" id=\"lib-range-{{ rangeId }}\">\r\n @if (label) {\r\n <label [for]=\"rangeId\" class=\"lib-range__title\">\r\n {{ label }}\r\n @if (required) {\r\n <dd-lib-svg-icon icon=\"error_hint\"></dd-lib-svg-icon>\r\n }\r\n </label>\r\n }\r\n <div class=\"pos-relative\">\r\n <input\r\n [attr.id]=\"rangeId\"\r\n [attr.placeholder]=\"placeholder\"\r\n (click)=\"openCalendar()\"\r\n [(ngModel)]=\"selectedPeriodStr\"\r\n [mask]=\"'d0.M0.0000 - d0.M0.0000'\"\r\n (ngModelChange)=\"changeStrDate($event)\"\r\n [leadZeroDateTime]=\"true\"\r\n class=\"text-select\"/>\r\n @if (!selectedPeriodStr) {\r\n <dd-lib-svg-icon [class.gray-svg]=\"!isShownPeriod\"\r\n (click)=\"openCalendar()\"\r\n id=\"calendar-{{ rangeId }}\"\r\n class=\"calendar\" icon=\"calendar\"></dd-lib-svg-icon>\r\n\r\n\r\n } @else {\r\n <dd-lib-svg-icon\r\n (click)=\"setPeriod(undefined)\"\r\n class=\"clear\"\r\n icon=\"clear\"></dd-lib-svg-icon>\r\n\r\n }\r\n </div>\r\n @if (isShownPeriod) {\r\n <div\r\n (ddClickOutside)=\"closeCalendar()\"\r\n [elements]=\"['lib-range-' + rangeId, 'calendar' + rangeId]\"\r\n class=\"calendar-wrapper\">\r\n <dd-lib-calendar [(ngModel)]=\"selectedPeriod\" [rangeMode]=\"true\" (emitPeriod)=\"setPeriod($event)\"></dd-lib-calendar>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".lib-range{min-width:340px;position:relative}.lib-range input{width:100%;height:48px;padding:15px 28px 15px 16px;overflow:hidden;text-overflow:ellipsis;border-radius:8px;border:1px solid var(--input-border-color);background-color:transparent;position:relative}.lib-range input:hover{border-color:var(--input-active-border-colort)}.lib-range input:focus{border-color:var(--input-active-border-colort);box-shadow:var(--input-active-border-shadow)}.lib-range input:disabled{border:none;background-color:var(--input-disable-input);color:var(--input-disable-text);pointer-events:none}.lib-range input:disabled::placeholder{color:var(--input-placeholder)}.lib-range input.invalid,.lib-range input.invalid:hover{border-color:var(--input-error-border-color)}.lib-range input.invalid:focus{border-color:var(--input-error-border-color);box-shadow:var(--input-error-border-shadow)}.lib-range .clear{cursor:pointer;position:absolute;right:8px;top:12px}.lib-range .calendar{cursor:pointer;position:absolute;right:16px;top:10px}.lib-range .calendar.up{transform:rotate(180deg)}.lib-range__title{margin-bottom:4px;font-size:14px;line-height:24px;display:flex;align-items:flex-start}.lib-range__error{color:var(--primary-red-color);font-size:12px;font-weight:400;line-height:10px;margin-top:2px;position:absolute}.lib-range .calendar-wrapper{position:absolute;display:block;z-index:100;width:100%;overflow:auto;border-radius:8px;box-shadow:var(--main-card-shadow);background-color:var(--main-card-color)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }, { kind: "directive", type: ClickOutsideDirective, selector: "[ddClickOutside]", inputs: ["elements"], outputs: ["ddClickOutside"] }, { kind: "component", type: LibCalendarComponent, selector: "dd-lib-calendar", inputs: ["type", "formatDate", "formatTime", "rangeMode", "maxHours", "maxMinutes", "needTime", "mode", "maxDate", "minDate"], outputs: ["emitDate", "emitPeriod"] }, { kind: "directive", type: NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4019
+ ], ngImport: i0, template: "<div class=\"lib-range\" id=\"lib-range-{{ rangeId }}\" ddFixedPosition>\r\n @if (label) {\r\n <label [for]=\"rangeId\" class=\"lib-range__title\">\r\n {{ label }}\r\n @if (required) {\r\n <dd-lib-svg-icon icon=\"error_hint\"></dd-lib-svg-icon>\r\n }\r\n </label>\r\n }\r\n <div class=\"pos-relative\" data-child=\"input\">\r\n <input\r\n [attr.id]=\"rangeId\"\r\n [attr.placeholder]=\"placeholder\"\r\n (click)=\"openCalendar()\"\r\n [(ngModel)]=\"selectedPeriodStr\"\r\n [mask]=\"'d0.M0.0000 - d0.M0.0000'\"\r\n (ngModelChange)=\"changeStrDate($event)\"\r\n [leadZeroDateTime]=\"true\"\r\n class=\"text-select\"/>\r\n @if (!selectedPeriodStr) {\r\n <dd-lib-svg-icon [class.gray-svg]=\"!isShownPeriod\"\r\n (click)=\"openCalendar()\"\r\n id=\"calendar-{{ rangeId }}\"\r\n class=\"calendar\" icon=\"calendar\"></dd-lib-svg-icon>\r\n\r\n\r\n } @else {\r\n <dd-lib-svg-icon\r\n (click)=\"setPeriod(undefined)\"\r\n class=\"clear\"\r\n icon=\"clear\"></dd-lib-svg-icon>\r\n\r\n }\r\n </div>\r\n @if (isShownPeriod) {\r\n <div data-child=\"list\"\r\n (ddClickOutside)=\"closeCalendar()\"\r\n [elements]=\"['lib-range-' + rangeId, 'calendar' + rangeId]\"\r\n class=\"calendar-wrapper\">\r\n <dd-lib-calendar [(ngModel)]=\"selectedPeriod\" [rangeMode]=\"true\" (emitPeriod)=\"setPeriod($event)\"></dd-lib-calendar>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".lib-range{min-width:340px;position:relative}.lib-range input{width:100%;height:48px;padding:15px 28px 15px 16px;overflow:hidden;text-overflow:ellipsis;border-radius:8px;border:1px solid var(--input-border-color);background-color:transparent;position:relative}.lib-range input:hover{border-color:var(--input-active-border-colort)}.lib-range input:focus{border-color:var(--input-active-border-colort);box-shadow:var(--input-active-border-shadow)}.lib-range input:disabled{border:none;background-color:var(--input-disable-input);color:var(--input-disable-text);pointer-events:none}.lib-range input:disabled::placeholder{color:var(--input-placeholder)}.lib-range input.invalid,.lib-range input.invalid:hover{border-color:var(--input-error-border-color)}.lib-range input.invalid:focus{border-color:var(--input-error-border-color);box-shadow:var(--input-error-border-shadow)}.lib-range .clear{cursor:pointer;position:absolute;right:8px;top:12px}.lib-range .calendar{cursor:pointer;position:absolute;right:16px;top:10px}.lib-range .calendar.up{transform:rotate(180deg)}.lib-range__title{margin-bottom:4px;font-size:14px;line-height:24px;display:flex;align-items:flex-start}.lib-range__error{color:var(--primary-red-color);font-size:12px;font-weight:400;line-height:10px;margin-top:2px;position:absolute}.lib-range .calendar-wrapper{position:absolute;display:block;z-index:100;width:100%;overflow:auto;border-radius:8px;box-shadow:var(--main-card-shadow);background-color:var(--main-card-color)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }, { kind: "directive", type: ClickOutsideDirective, selector: "[ddClickOutside]", inputs: ["elements"], outputs: ["ddClickOutside"] }, { kind: "component", type: LibCalendarComponent, selector: "dd-lib-calendar", inputs: ["type", "formatDate", "formatTime", "rangeMode", "maxHours", "maxMinutes", "needTime", "mode", "maxDate", "minDate"], outputs: ["emitDate", "emitPeriod"] }, { kind: "directive", type: NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { kind: "directive", type: FixedPositionDirective, selector: "[ddFixedPosition]", inputs: ["childName1", "childName2"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3592
4020
  }
3593
4021
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibDateRangeComponent, decorators: [{
3594
4022
  type: Component,
@@ -3603,7 +4031,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
3603
4031
  LibPeriodComponent,
3604
4032
  LibCalendarComponent,
3605
4033
  NgxMaskDirective,
3606
- JsonPipe
4034
+ JsonPipe,
4035
+ SelectableItemDirective,
4036
+ FixedPositionDirective
3607
4037
  ], providers: [
3608
4038
  provideNgxMask(),
3609
4039
  {
@@ -3611,8 +4041,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
3611
4041
  useExisting: forwardRef(() => LibDateRangeComponent),
3612
4042
  multi: true,
3613
4043
  },
3614
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"lib-range\" id=\"lib-range-{{ rangeId }}\">\r\n @if (label) {\r\n <label [for]=\"rangeId\" class=\"lib-range__title\">\r\n {{ label }}\r\n @if (required) {\r\n <dd-lib-svg-icon icon=\"error_hint\"></dd-lib-svg-icon>\r\n }\r\n </label>\r\n }\r\n <div class=\"pos-relative\">\r\n <input\r\n [attr.id]=\"rangeId\"\r\n [attr.placeholder]=\"placeholder\"\r\n (click)=\"openCalendar()\"\r\n [(ngModel)]=\"selectedPeriodStr\"\r\n [mask]=\"'d0.M0.0000 - d0.M0.0000'\"\r\n (ngModelChange)=\"changeStrDate($event)\"\r\n [leadZeroDateTime]=\"true\"\r\n class=\"text-select\"/>\r\n @if (!selectedPeriodStr) {\r\n <dd-lib-svg-icon [class.gray-svg]=\"!isShownPeriod\"\r\n (click)=\"openCalendar()\"\r\n id=\"calendar-{{ rangeId }}\"\r\n class=\"calendar\" icon=\"calendar\"></dd-lib-svg-icon>\r\n\r\n\r\n } @else {\r\n <dd-lib-svg-icon\r\n (click)=\"setPeriod(undefined)\"\r\n class=\"clear\"\r\n icon=\"clear\"></dd-lib-svg-icon>\r\n\r\n }\r\n </div>\r\n @if (isShownPeriod) {\r\n <div\r\n (ddClickOutside)=\"closeCalendar()\"\r\n [elements]=\"['lib-range-' + rangeId, 'calendar' + rangeId]\"\r\n class=\"calendar-wrapper\">\r\n <dd-lib-calendar [(ngModel)]=\"selectedPeriod\" [rangeMode]=\"true\" (emitPeriod)=\"setPeriod($event)\"></dd-lib-calendar>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".lib-range{min-width:340px;position:relative}.lib-range input{width:100%;height:48px;padding:15px 28px 15px 16px;overflow:hidden;text-overflow:ellipsis;border-radius:8px;border:1px solid var(--input-border-color);background-color:transparent;position:relative}.lib-range input:hover{border-color:var(--input-active-border-colort)}.lib-range input:focus{border-color:var(--input-active-border-colort);box-shadow:var(--input-active-border-shadow)}.lib-range input:disabled{border:none;background-color:var(--input-disable-input);color:var(--input-disable-text);pointer-events:none}.lib-range input:disabled::placeholder{color:var(--input-placeholder)}.lib-range input.invalid,.lib-range input.invalid:hover{border-color:var(--input-error-border-color)}.lib-range input.invalid:focus{border-color:var(--input-error-border-color);box-shadow:var(--input-error-border-shadow)}.lib-range .clear{cursor:pointer;position:absolute;right:8px;top:12px}.lib-range .calendar{cursor:pointer;position:absolute;right:16px;top:10px}.lib-range .calendar.up{transform:rotate(180deg)}.lib-range__title{margin-bottom:4px;font-size:14px;line-height:24px;display:flex;align-items:flex-start}.lib-range__error{color:var(--primary-red-color);font-size:12px;font-weight:400;line-height:10px;margin-top:2px;position:absolute}.lib-range .calendar-wrapper{position:absolute;display:block;z-index:100;width:100%;overflow:auto;border-radius:8px;box-shadow:var(--main-card-shadow);background-color:var(--main-card-color)}\n"] }]
3615
- }], propDecorators: { rangeId: [{
4044
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"lib-range\" id=\"lib-range-{{ rangeId }}\" ddFixedPosition>\r\n @if (label) {\r\n <label [for]=\"rangeId\" class=\"lib-range__title\">\r\n {{ label }}\r\n @if (required) {\r\n <dd-lib-svg-icon icon=\"error_hint\"></dd-lib-svg-icon>\r\n }\r\n </label>\r\n }\r\n <div class=\"pos-relative\" data-child=\"input\">\r\n <input\r\n [attr.id]=\"rangeId\"\r\n [attr.placeholder]=\"placeholder\"\r\n (click)=\"openCalendar()\"\r\n [(ngModel)]=\"selectedPeriodStr\"\r\n [mask]=\"'d0.M0.0000 - d0.M0.0000'\"\r\n (ngModelChange)=\"changeStrDate($event)\"\r\n [leadZeroDateTime]=\"true\"\r\n class=\"text-select\"/>\r\n @if (!selectedPeriodStr) {\r\n <dd-lib-svg-icon [class.gray-svg]=\"!isShownPeriod\"\r\n (click)=\"openCalendar()\"\r\n id=\"calendar-{{ rangeId }}\"\r\n class=\"calendar\" icon=\"calendar\"></dd-lib-svg-icon>\r\n\r\n\r\n } @else {\r\n <dd-lib-svg-icon\r\n (click)=\"setPeriod(undefined)\"\r\n class=\"clear\"\r\n icon=\"clear\"></dd-lib-svg-icon>\r\n\r\n }\r\n </div>\r\n @if (isShownPeriod) {\r\n <div data-child=\"list\"\r\n (ddClickOutside)=\"closeCalendar()\"\r\n [elements]=\"['lib-range-' + rangeId, 'calendar' + rangeId]\"\r\n class=\"calendar-wrapper\">\r\n <dd-lib-calendar [(ngModel)]=\"selectedPeriod\" [rangeMode]=\"true\" (emitPeriod)=\"setPeriod($event)\"></dd-lib-calendar>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".lib-range{min-width:340px;position:relative}.lib-range input{width:100%;height:48px;padding:15px 28px 15px 16px;overflow:hidden;text-overflow:ellipsis;border-radius:8px;border:1px solid var(--input-border-color);background-color:transparent;position:relative}.lib-range input:hover{border-color:var(--input-active-border-colort)}.lib-range input:focus{border-color:var(--input-active-border-colort);box-shadow:var(--input-active-border-shadow)}.lib-range input:disabled{border:none;background-color:var(--input-disable-input);color:var(--input-disable-text);pointer-events:none}.lib-range input:disabled::placeholder{color:var(--input-placeholder)}.lib-range input.invalid,.lib-range input.invalid:hover{border-color:var(--input-error-border-color)}.lib-range input.invalid:focus{border-color:var(--input-error-border-color);box-shadow:var(--input-error-border-shadow)}.lib-range .clear{cursor:pointer;position:absolute;right:8px;top:12px}.lib-range .calendar{cursor:pointer;position:absolute;right:16px;top:10px}.lib-range .calendar.up{transform:rotate(180deg)}.lib-range__title{margin-bottom:4px;font-size:14px;line-height:24px;display:flex;align-items:flex-start}.lib-range__error{color:var(--primary-red-color);font-size:12px;font-weight:400;line-height:10px;margin-top:2px;position:absolute}.lib-range .calendar-wrapper{position:absolute;display:block;z-index:100;width:100%;overflow:auto;border-radius:8px;box-shadow:var(--main-card-shadow);background-color:var(--main-card-color)}\n"] }]
4045
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { rangeId: [{
3616
4046
  type: Input
3617
4047
  }], placeholder: [{
3618
4048
  type: Input
@@ -3623,12 +4053,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
3623
4053
  }] } });
3624
4054
 
3625
4055
  class LibDateInputComponent {
3626
- constructor() {
4056
+ static { this.idCounter = 1; }
4057
+ constructor(cdr) {
4058
+ this.cdr = cdr;
3627
4059
  this.isShownCalendar = false;
3628
4060
  this.disabled = false;
3629
4061
  this.selectedDate = new Date();
3630
4062
  }
3631
- static { this.idCounter = 1; }
3632
4063
  ngOnInit() {
3633
4064
  if (!this.dateId) {
3634
4065
  this.dateId = 'dd-date-' + LibDateInputComponent.idCounter++;
@@ -3679,8 +4110,9 @@ class LibDateInputComponent {
3679
4110
  if ($event) {
3680
4111
  this.selectedDateStr = `${format($event, 'dd.MM.yyyy')}`;
3681
4112
  }
4113
+ this.cdr.detectChanges();
3682
4114
  }
3683
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibDateInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4115
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibDateInputComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
3684
4116
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: LibDateInputComponent, isStandalone: true, selector: "dd-lib-date-input", inputs: { topSide: "topSide", dateId: "dateId", placeholder: "placeholder", label: "label", required: "required" }, providers: [
3685
4117
  provideNgxMask(),
3686
4118
  {
@@ -3713,7 +4145,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
3713
4145
  multi: true,
3714
4146
  },
3715
4147
  ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"lib-date\" id=\"lib-date-{{ dateId }}\">\r\n @if (label) {\r\n <label [for]=\"dateId\" class=\"lib-date__title\">\r\n {{ label }}\r\n @if (required) {\r\n <dd-lib-svg-icon icon=\"error_hint\"></dd-lib-svg-icon>\r\n }\r\n </label>\r\n }\r\n <div class=\"pos-relative\">\r\n <input\r\n [attr.id]=\"dateId\"\r\n [attr.placeholder]=\"placeholder\"\r\n (click)=\"openCalendar()\"\r\n [(ngModel)]=\"selectedDateStr\"\r\n [mask]=\"'d0.M0.0000'\"\r\n (ngModelChange)=\"changeStrDate($event)\"\r\n [leadZeroDateTime]=\"true\"\r\n class=\"text-select\"/>\r\n @if (!selectedDateStr) {\r\n <dd-lib-svg-icon [class.gray-svg]=\"!isShownCalendar\"\r\n (click)=\"openCalendar()\"\r\n id=\"calendar-{{ dateId }}\"\r\n class=\"calendar\" icon=\"calendar\"></dd-lib-svg-icon>\r\n\r\n\r\n } @else {\r\n <dd-lib-svg-icon\r\n (click)=\"setPeriod(undefined)\"\r\n class=\"clear\"\r\n icon=\"clear\"></dd-lib-svg-icon>\r\n\r\n }\r\n </div>\r\n @if (isShownCalendar) {\r\n <div\r\n (ddClickOutside)=\"closeCalendar()\"\r\n [elements]=\"['lib-date-' + dateId, 'calendar' + dateId]\"\r\n class=\"calendar-wrapper\" [ngClass]=\"{top: topSide}\">\r\n <dd-lib-calendar [(ngModel)]=\"selectedDate\" (emitDate)=\"setPeriod($event)\"></dd-lib-calendar>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".lib-date{min-width:340px;position:relative}.lib-date input{width:100%;height:48px;padding:15px 28px 15px 16px;overflow:hidden;text-overflow:ellipsis;border-radius:8px;border:1px solid var(--input-border-color);background-color:transparent;position:relative}.lib-date input:hover{border-color:var(--input-active-border-colort)}.lib-date input:focus{border-color:var(--input-active-border-colort);box-shadow:var(--input-active-border-shadow)}.lib-date input:disabled{border:none;background-color:var(--input-disable-input);color:var(--input-disable-text);pointer-events:none}.lib-date input:disabled::placeholder{color:var(--input-placeholder)}.lib-date input.invalid,.lib-date input.invalid:hover{border-color:var(--input-error-border-color)}.lib-date input.invalid:focus{border-color:var(--input-error-border-color);box-shadow:var(--input-error-border-shadow)}.lib-date .clear{cursor:pointer;position:absolute;right:8px;top:12px}.lib-date .calendar{cursor:pointer;position:absolute;right:16px;top:10px}.lib-date .calendar.up{transform:rotate(180deg)}.lib-date__title{margin-bottom:4px;font-size:14px;line-height:24px;display:flex;align-items:flex-start}.lib-date__error{color:var(--primary-red-color);font-size:12px;font-weight:400;line-height:10px;margin-top:2px;position:absolute}.lib-date .calendar-wrapper{max-width:350px;position:absolute;display:block;z-index:100;width:100%;overflow:auto;border-radius:8px;box-shadow:var(--main-card-shadow);background-color:var(--main-card-color)}.lib-date .calendar-wrapper.top{bottom:48px}\n"] }]
3716
- }], propDecorators: { topSide: [{
4148
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { topSide: [{
3717
4149
  type: Input
3718
4150
  }], dateId: [{
3719
4151
  type: Input
@@ -3737,7 +4169,7 @@ class LibFilterComponent {
3737
4169
  this.renderer.setStyle(this.document.body, 'overflow', this.hideFilter ? '' : 'hidden');
3738
4170
  }
3739
4171
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibFilterComponent, deps: [{ token: DOCUMENT }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
3740
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: LibFilterComponent, isStandalone: true, selector: "dd-lib-filter", outputs: { resetEvent: "resetEvent" }, ngImport: i0, template: "<div class=\"filter\">\r\n <div class=\"filter__block\" [ngClass]=\"{ 'hide-tablet': hideFilter }\">\r\n <div class=\"filter__head\">\r\n <div class=\"filter__back g-h5-title d-flex align-center cup\" (click)=\"toggleFilter()\">\r\n <dd-lib-svg-icon icon=\"toggle_arrow_left\"></dd-lib-svg-icon>\r\n <span class=\"ml-16\">\u0424\u0438\u043B\u044C\u0442\u0440\u044B</span>\r\n </div>\r\n <div class=\"g-text green cup\" (click)=\"resetEvent.emit()\">\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C</div>\r\n </div>\r\n <div class=\"filter__body\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"show-tablet\" (click)=\"toggleFilter()\">\r\n <div class=\"d-flex align-center cup\">\r\n <dd-lib-svg-icon icon=\"filter\"></dd-lib-svg-icon>\r\n <div class=\"filter__txt g-text green ml-12 m-ml-8\">\u0424\u0438\u043B\u044C\u0442\u0440\u044B</div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@media screen and (max-width: 840px){.filter__block{position:fixed;top:0;left:0;width:100%;height:100%;z-index:300;display:block;background-color:var(--white-color)}}.filter__head{display:none}@media screen and (max-width: 840px){.filter__head{display:flex;align-items:center;justify-content:space-between;padding:24px 16px;border-bottom:1px solid var(--gray-color-200)}}@media screen and (max-width: 480px){.filter__head{padding:16px}}.filter__back ::ng-deep svg path{stroke:var(--menu-arr-color)}.filter__body{display:flex}@media screen and (max-width: 840px){.filter__body{display:block;padding-left:16px;padding-right:16px;overflow:auto}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4172
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: LibFilterComponent, isStandalone: true, selector: "dd-lib-filter", outputs: { resetEvent: "resetEvent" }, ngImport: i0, template: "<div class=\"filter\">\r\n <div class=\"filter__block\" [ngClass]=\"{ 'hide-tablet': hideFilter }\">\r\n <div class=\"filter__head\">\r\n <div class=\"filter__back g-h5-title d-flex align-center cup\" (click)=\"toggleFilter()\">\r\n <dd-lib-svg-icon icon=\"toggle_arrow_left\"></dd-lib-svg-icon>\r\n <span class=\"ml-16\">\u0424\u0438\u043B\u044C\u0442\u0440\u044B</span>\r\n </div>\r\n <div class=\"g-text green cup\" (click)=\"resetEvent.emit()\">\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C</div>\r\n </div>\r\n <div class=\"filter__body\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"show-tablet\" (click)=\"toggleFilter()\">\r\n <div class=\"d-flex align-center cup\">\r\n <dd-lib-svg-icon icon=\"filter\"></dd-lib-svg-icon>\r\n <div class=\"filter__txt g-text green ml-12 m-ml-8\">\u0424\u0438\u043B\u044C\u0442\u0440\u044B</div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@media screen and (max-width: 840px){.filter__block{position:fixed;top:0;left:0;width:100%;height:100%;z-index:300;display:block;background-color:var(--white-color)}}.filter__head{display:none}@media screen and (max-width: 840px){.filter__head{display:flex;align-items:center;justify-content:space-between;padding:24px 16px;border-bottom:1px solid var(--gray-color-200)}}@media screen and (max-width: 480px){.filter__head{padding:16px}}.filter__back ::ng-deep svg path{stroke:var(--menu-arr-color)}.filter__body{display:flex}@media screen and (max-width: 840px){.filter__body{display:block;padding-left:16px;padding-right:16px;overflow:auto}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3741
4173
  }
3742
4174
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibFilterComponent, decorators: [{
3743
4175
  type: Component,
@@ -3775,6 +4207,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
3775
4207
  type: Output
3776
4208
  }] } });
3777
4209
 
4210
+ class LibDisclaimerComponent {
4211
+ constructor() {
4212
+ this.type = 'info';
4213
+ }
4214
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibDisclaimerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4215
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: LibDisclaimerComponent, isStandalone: true, selector: "dd-lib-disclaimer", inputs: { type: "type", title: "title", description: "description", template: "template" }, ngImport: i0, template: "<div class=\"disclaimer {{ type }}\" >\r\n @if (type === 'success') {\r\n <svg fill=\"none\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M8 0C3.592 0 0 3.592 0 8C0 12.408 3.592 16 8 16C12.408 16 16 12.408 16 8C16 3.592 12.408 0 8 0ZM11.824 6.16L7.288 10.696C7.176 10.808 7.024 10.872 6.864 10.872C6.704 10.872 6.552 10.808 6.44 10.696L4.176 8.432C3.944 8.2 3.944 7.816 4.176 7.584C4.408 7.352 4.792 7.352 5.024 7.584L6.864 9.424L10.976 5.312C11.208 5.08 11.592 5.08 11.824 5.312C12.056 5.544 12.056 5.92 11.824 6.16Z\"\r\n fill=\"#07B700\"/>\r\n </svg>\r\n }\r\n @if (type === 'warning') {\r\n <svg fill=\"none\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M8 0C3.592 0 0 3.592 0 8C0 12.408 3.592 16 8 16C12.408 16 16 12.408 16 8C16 3.592 12.408 0 8 0ZM7.4 4.8C7.4 4.472 7.672 4.2 8 4.2C8.328 4.2 8.6 4.472 8.6 4.8V8.8C8.6 9.128 8.328 9.4 8 9.4C7.672 9.4 7.4 9.128 7.4 8.8V4.8ZM8.736 11.504C8.696 11.608 8.64 11.688 8.568 11.768C8.488 11.84 8.4 11.896 8.304 11.936C8.208 11.976 8.104 12 8 12C7.896 12 7.792 11.976 7.696 11.936C7.6 11.896 7.512 11.84 7.432 11.768C7.36 11.688 7.304 11.608 7.264 11.504C7.224 11.408 7.2 11.304 7.2 11.2C7.2 11.096 7.224 10.992 7.264 10.896C7.304 10.8 7.36 10.712 7.432 10.632C7.512 10.56 7.6 10.504 7.696 10.464C7.888 10.384 8.112 10.384 8.304 10.464C8.4 10.504 8.488 10.56 8.568 10.632C8.64 10.712 8.696 10.8 8.736 10.896C8.776 10.992 8.8 11.096 8.8 11.2C8.8 11.304 8.776 11.408 8.736 11.504Z\"\r\n fill=\"#FAAD14\"/>\r\n </svg>\r\n }\r\n @if (type === 'danger') {\r\n <svg fill=\"none\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M8 0C3.592 0 0 3.592 0 8C0 12.408 3.592 16 8 16C12.408 16 16 12.408 16 8C16 3.592 12.408 0 8 0ZM10.688 9.84C10.92 10.072 10.92 10.456 10.688 10.688C10.568 10.808 10.416 10.864 10.264 10.864C10.112 10.864 9.96 10.808 9.84 10.688L8 8.848L6.16 10.688C6.04 10.808 5.888 10.864 5.736 10.864C5.584 10.864 5.432 10.808 5.312 10.688C5.08 10.456 5.08 10.072 5.312 9.84L7.152 8L5.312 6.16C5.08 5.928 5.08 5.544 5.312 5.312C5.544 5.08 5.928 5.08 6.16 5.312L8 7.152L9.84 5.312C10.072 5.08 10.456 5.08 10.688 5.312C10.92 5.544 10.92 5.928 10.688 6.16L8.848 8L10.688 9.84Z\"\r\n fill=\"#FF3645\"/>\r\n </svg>\r\n }\r\n @if (type === 'info') {\r\n <svg fill=\"none\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M8 16C12.408 16 16 12.408 16 8C16 3.592 12.408 0 8 0C3.592 0 0 3.592 0 8C0 12.408 3.592 16 8 16ZM8.6 11.2C8.6 11.528 8.328 11.8 8 11.8C7.672 11.8 7.4 11.528 7.4 11.2V7.2C7.4 6.872 7.672 6.6 8 6.6C8.328 6.6 8.6 6.872 8.6 7.2L8.6 11.2ZM7.264 4.496C7.304 4.392 7.36 4.312 7.432 4.232C7.512 4.16 7.6 4.104 7.696 4.064C7.792 4.024 7.896 4 8 4C8.104 4 8.208 4.024 8.304 4.064C8.4 4.104 8.488 4.16 8.568 4.232C8.64 4.312 8.696 4.392 8.736 4.496C8.776 4.592 8.8 4.696 8.8 4.8C8.8 4.904 8.776 5.008 8.736 5.104C8.696 5.2 8.64 5.288 8.568 5.368C8.488 5.44 8.4 5.496 8.304 5.536C8.112 5.616 7.888 5.616 7.696 5.536C7.6 5.496 7.512 5.44 7.432 5.368C7.36 5.288 7.304 5.2 7.264 5.104C7.224 5.008 7.2 4.904 7.2 4.8C7.2 4.696 7.224 4.592 7.264 4.496Z\"\r\n fill=\"#007BFB\"/>\r\n </svg>\r\n\r\n }\r\n <div class=\"ml-12\">\r\n @if (title) {\r\n <div class=\"b5-title mb-4\" [innerHTML]=\"title\"></div>\r\n }\r\n @if (description) {\r\n <div class=\"b6-title\" [innerHTML]=\"description\"></div>\r\n }\r\n @if (template) {\r\n <ng-container [ngTemplateOutlet]=\"template\"></ng-container>\r\n }\r\n </div>\r\n</div>\r\n", styles: [":host{display:block}.disclaimer{position:relative;display:flex;align-items:flex-start;padding:20px;background:#eefaf3;border-radius:12px;width:100%}.disclaimer svg{display:block;min-width:16px;min-height:16px;margin-top:4px}.disclaimer.success{background-color:var(--light-green-color)}.disclaimer.info{background-color:var(--light-blue-color)}.disclaimer.warning{background-color:var(--yellow-card)}.disclaimer.danger{background-color:var(--red-light-color)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4216
+ }
4217
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibDisclaimerComponent, decorators: [{
4218
+ type: Component,
4219
+ args: [{ selector: 'dd-lib-disclaimer', standalone: true, imports: [
4220
+ AsyncPipe,
4221
+ NgTemplateOutlet
4222
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"disclaimer {{ type }}\" >\r\n @if (type === 'success') {\r\n <svg fill=\"none\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M8 0C3.592 0 0 3.592 0 8C0 12.408 3.592 16 8 16C12.408 16 16 12.408 16 8C16 3.592 12.408 0 8 0ZM11.824 6.16L7.288 10.696C7.176 10.808 7.024 10.872 6.864 10.872C6.704 10.872 6.552 10.808 6.44 10.696L4.176 8.432C3.944 8.2 3.944 7.816 4.176 7.584C4.408 7.352 4.792 7.352 5.024 7.584L6.864 9.424L10.976 5.312C11.208 5.08 11.592 5.08 11.824 5.312C12.056 5.544 12.056 5.92 11.824 6.16Z\"\r\n fill=\"#07B700\"/>\r\n </svg>\r\n }\r\n @if (type === 'warning') {\r\n <svg fill=\"none\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M8 0C3.592 0 0 3.592 0 8C0 12.408 3.592 16 8 16C12.408 16 16 12.408 16 8C16 3.592 12.408 0 8 0ZM7.4 4.8C7.4 4.472 7.672 4.2 8 4.2C8.328 4.2 8.6 4.472 8.6 4.8V8.8C8.6 9.128 8.328 9.4 8 9.4C7.672 9.4 7.4 9.128 7.4 8.8V4.8ZM8.736 11.504C8.696 11.608 8.64 11.688 8.568 11.768C8.488 11.84 8.4 11.896 8.304 11.936C8.208 11.976 8.104 12 8 12C7.896 12 7.792 11.976 7.696 11.936C7.6 11.896 7.512 11.84 7.432 11.768C7.36 11.688 7.304 11.608 7.264 11.504C7.224 11.408 7.2 11.304 7.2 11.2C7.2 11.096 7.224 10.992 7.264 10.896C7.304 10.8 7.36 10.712 7.432 10.632C7.512 10.56 7.6 10.504 7.696 10.464C7.888 10.384 8.112 10.384 8.304 10.464C8.4 10.504 8.488 10.56 8.568 10.632C8.64 10.712 8.696 10.8 8.736 10.896C8.776 10.992 8.8 11.096 8.8 11.2C8.8 11.304 8.776 11.408 8.736 11.504Z\"\r\n fill=\"#FAAD14\"/>\r\n </svg>\r\n }\r\n @if (type === 'danger') {\r\n <svg fill=\"none\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M8 0C3.592 0 0 3.592 0 8C0 12.408 3.592 16 8 16C12.408 16 16 12.408 16 8C16 3.592 12.408 0 8 0ZM10.688 9.84C10.92 10.072 10.92 10.456 10.688 10.688C10.568 10.808 10.416 10.864 10.264 10.864C10.112 10.864 9.96 10.808 9.84 10.688L8 8.848L6.16 10.688C6.04 10.808 5.888 10.864 5.736 10.864C5.584 10.864 5.432 10.808 5.312 10.688C5.08 10.456 5.08 10.072 5.312 9.84L7.152 8L5.312 6.16C5.08 5.928 5.08 5.544 5.312 5.312C5.544 5.08 5.928 5.08 6.16 5.312L8 7.152L9.84 5.312C10.072 5.08 10.456 5.08 10.688 5.312C10.92 5.544 10.92 5.928 10.688 6.16L8.848 8L10.688 9.84Z\"\r\n fill=\"#FF3645\"/>\r\n </svg>\r\n }\r\n @if (type === 'info') {\r\n <svg fill=\"none\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M8 16C12.408 16 16 12.408 16 8C16 3.592 12.408 0 8 0C3.592 0 0 3.592 0 8C0 12.408 3.592 16 8 16ZM8.6 11.2C8.6 11.528 8.328 11.8 8 11.8C7.672 11.8 7.4 11.528 7.4 11.2V7.2C7.4 6.872 7.672 6.6 8 6.6C8.328 6.6 8.6 6.872 8.6 7.2L8.6 11.2ZM7.264 4.496C7.304 4.392 7.36 4.312 7.432 4.232C7.512 4.16 7.6 4.104 7.696 4.064C7.792 4.024 7.896 4 8 4C8.104 4 8.208 4.024 8.304 4.064C8.4 4.104 8.488 4.16 8.568 4.232C8.64 4.312 8.696 4.392 8.736 4.496C8.776 4.592 8.8 4.696 8.8 4.8C8.8 4.904 8.776 5.008 8.736 5.104C8.696 5.2 8.64 5.288 8.568 5.368C8.488 5.44 8.4 5.496 8.304 5.536C8.112 5.616 7.888 5.616 7.696 5.536C7.6 5.496 7.512 5.44 7.432 5.368C7.36 5.288 7.304 5.2 7.264 5.104C7.224 5.008 7.2 4.904 7.2 4.8C7.2 4.696 7.224 4.592 7.264 4.496Z\"\r\n fill=\"#007BFB\"/>\r\n </svg>\r\n\r\n }\r\n <div class=\"ml-12\">\r\n @if (title) {\r\n <div class=\"b5-title mb-4\" [innerHTML]=\"title\"></div>\r\n }\r\n @if (description) {\r\n <div class=\"b6-title\" [innerHTML]=\"description\"></div>\r\n }\r\n @if (template) {\r\n <ng-container [ngTemplateOutlet]=\"template\"></ng-container>\r\n }\r\n </div>\r\n</div>\r\n", styles: [":host{display:block}.disclaimer{position:relative;display:flex;align-items:flex-start;padding:20px;background:#eefaf3;border-radius:12px;width:100%}.disclaimer svg{display:block;min-width:16px;min-height:16px;margin-top:4px}.disclaimer.success{background-color:var(--light-green-color)}.disclaimer.info{background-color:var(--light-blue-color)}.disclaimer.warning{background-color:var(--yellow-card)}.disclaimer.danger{background-color:var(--red-light-color)}\n"] }]
4223
+ }], propDecorators: { type: [{
4224
+ type: Input
4225
+ }], title: [{
4226
+ type: Input
4227
+ }], description: [{
4228
+ type: Input
4229
+ }], template: [{
4230
+ type: Input
4231
+ }] } });
4232
+
3778
4233
  // export function Debounce(delay: number = 1000): MethodDecorator {
3779
4234
  // return function (_target: any, _propertyKey: string | symbol, descriptor: PropertyDescriptor) {
3780
4235
  // let timeout: any = null;
@@ -4436,13 +4891,13 @@ class NotFoundComponent {
4436
4891
  this.router.navigate(['/']);
4437
4892
  }
4438
4893
  }
4439
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NotFoundComponent, deps: [{ token: i1.Location }, { token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
4894
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NotFoundComponent, deps: [{ token: i1$3.Location }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
4440
4895
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: NotFoundComponent, isStandalone: true, selector: "dd-not-found", ngImport: i0, template: "<div class=\"not-found\">\r\n <div class=\"not-found__container\">\r\n <div class=\"not-found__img page-404-bg\"></div>\r\n <div>\r\n <div class=\"g-h1-title mb-8 m-mb-12\">\u0421\u0442\u0440\u0430\u043D\u0438\u0446\u0430 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u0430</div>\r\n <div class=\"g-text mb-40\">\u041F\u043E\u0445\u043E\u0436\u0435 \u0432\u044B \u043F\u043E\u0442\u0435\u0440\u044F\u043B\u0438\u0441\u044C, \u0441\u043A\u043E\u0440\u0435\u0435 \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0439\u0442\u0435\u0441\u044C \u043D\u0430 \u0433\u043B\u0430\u0432\u043D\u0443\u044E</div>\r\n <div class=\"not-found__foot\">\r\n <dd-lib-button routerLink=\"/\">\u041D\u0430 \u0433\u043B\u0430\u0432\u043D\u0443\u044E</dd-lib-button>\r\n <dd-lib-button (click)=\"goBack()\" btnColor=\"white\">\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043D\u0430\u0437\u0430\u0434</dd-lib-button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".not-found{display:flex;align-items:center;justify-content:center;padding:100px 0}@media screen and (max-width: 480px){.not-found{padding:24px 0}}.not-found__container{display:flex;align-items:center;gap:80px}@media screen and (max-width: 1320px){.not-found__container{flex-direction:column;gap:32px}}@media screen and (max-width: 840px){.not-found__container{text-align:center}}.not-found__img{width:500px;height:500px;background-size:cover}@media screen and (max-width: 840px){.not-found__img{width:400px;height:400px}}@media screen and (max-width: 480px){.not-found__img{width:280px;height:280px}}.not-found__foot{display:flex;align-items:center;gap:24px}@media screen and (max-width: 840px){.not-found__foot{flex-direction:column;gap:16px}}\n"], dependencies: [{ kind: "component", type: LibButtonComponent, selector: "dd-lib-button", inputs: ["noPadding", "loaderColor"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4441
4896
  }
4442
4897
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NotFoundComponent, decorators: [{
4443
4898
  type: Component,
4444
4899
  args: [{ selector: 'dd-not-found', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [LibButtonComponent, RouterLink, NgOptimizedImage, LibSvgIconComponent], template: "<div class=\"not-found\">\r\n <div class=\"not-found__container\">\r\n <div class=\"not-found__img page-404-bg\"></div>\r\n <div>\r\n <div class=\"g-h1-title mb-8 m-mb-12\">\u0421\u0442\u0440\u0430\u043D\u0438\u0446\u0430 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u0430</div>\r\n <div class=\"g-text mb-40\">\u041F\u043E\u0445\u043E\u0436\u0435 \u0432\u044B \u043F\u043E\u0442\u0435\u0440\u044F\u043B\u0438\u0441\u044C, \u0441\u043A\u043E\u0440\u0435\u0435 \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0439\u0442\u0435\u0441\u044C \u043D\u0430 \u0433\u043B\u0430\u0432\u043D\u0443\u044E</div>\r\n <div class=\"not-found__foot\">\r\n <dd-lib-button routerLink=\"/\">\u041D\u0430 \u0433\u043B\u0430\u0432\u043D\u0443\u044E</dd-lib-button>\r\n <dd-lib-button (click)=\"goBack()\" btnColor=\"white\">\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043D\u0430\u0437\u0430\u0434</dd-lib-button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".not-found{display:flex;align-items:center;justify-content:center;padding:100px 0}@media screen and (max-width: 480px){.not-found{padding:24px 0}}.not-found__container{display:flex;align-items:center;gap:80px}@media screen and (max-width: 1320px){.not-found__container{flex-direction:column;gap:32px}}@media screen and (max-width: 840px){.not-found__container{text-align:center}}.not-found__img{width:500px;height:500px;background-size:cover}@media screen and (max-width: 840px){.not-found__img{width:400px;height:400px}}@media screen and (max-width: 480px){.not-found__img{width:280px;height:280px}}.not-found__foot{display:flex;align-items:center;gap:24px}@media screen and (max-width: 840px){.not-found__foot{flex-direction:column;gap:16px}}\n"] }]
4445
- }], ctorParameters: () => [{ type: i1.Location }, { type: i1$1.Router }] });
4900
+ }], ctorParameters: () => [{ type: i1$3.Location }, { type: i1.Router }] });
4446
4901
 
4447
4902
  class ErrorPageComponent {
4448
4903
  constructor(location, router) {
@@ -4457,7 +4912,7 @@ class ErrorPageComponent {
4457
4912
  this.router.navigate(['/']);
4458
4913
  }
4459
4914
  }
4460
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: ErrorPageComponent, deps: [{ token: i1.Location }, { token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
4915
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: ErrorPageComponent, deps: [{ token: i1$3.Location }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
4461
4916
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: ErrorPageComponent, isStandalone: true, selector: "dd-error-page", ngImport: i0, template: "<div class=\"error-page\">\r\n <div class=\"error-page__container\">\r\n <div class=\"error-page__img error-page-bg\"></div>\r\n <div>\r\n <div class=\"g-h1-title mb-8 m-mb-12\">\u041F\u0440\u043E\u0438\u0437\u043E\u0448\u043B\u0430 \u043E\u0448\u0438\u0431\u043A\u0430</div>\r\n <div class=\"g-text mb-40\">\u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443 \u0438\u043B\u0438 \u0432\u0435\u0440\u043D\u0438\u0442\u0435\u0441\u044C \u043D\u0430\u0437\u0430\u0434</div>\r\n <div class=\"error-page__foot\">\r\n <dd-lib-button (click)=\"goBack()\">\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043D\u0430\u0437\u0430\u0434</dd-lib-button>\r\n <dd-lib-button (click)=\"goBack()\" btnColor=\"white\">\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443</dd-lib-button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".error-page{display:flex;align-items:center;justify-content:center;padding:100px 0}@media screen and (max-width: 480px){.error-page{padding:24px 0}}.error-page__container{display:flex;align-items:center;gap:80px}@media screen and (max-width: 1320px){.error-page__container{flex-direction:column;gap:32px}}@media screen and (max-width: 840px){.error-page__container{text-align:center}}.error-page__img{width:500px;height:500px;background-size:cover}@media screen and (max-width: 840px){.error-page__img{width:400px;height:400px}}@media screen and (max-width: 480px){.error-page__img{width:280px;height:280px}}.error-page__foot{display:flex;align-items:center;gap:24px}@media screen and (max-width: 840px){.error-page__foot{flex-direction:column;gap:16px}}\n"], dependencies: [{ kind: "component", type: LibButtonComponent, selector: "dd-lib-button", inputs: ["noPadding", "loaderColor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4462
4917
  }
4463
4918
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: ErrorPageComponent, decorators: [{
@@ -4467,7 +4922,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
4467
4922
  LibSvgIconComponent,
4468
4923
  RouterLink
4469
4924
  ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"error-page\">\r\n <div class=\"error-page__container\">\r\n <div class=\"error-page__img error-page-bg\"></div>\r\n <div>\r\n <div class=\"g-h1-title mb-8 m-mb-12\">\u041F\u0440\u043E\u0438\u0437\u043E\u0448\u043B\u0430 \u043E\u0448\u0438\u0431\u043A\u0430</div>\r\n <div class=\"g-text mb-40\">\u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443 \u0438\u043B\u0438 \u0432\u0435\u0440\u043D\u0438\u0442\u0435\u0441\u044C \u043D\u0430\u0437\u0430\u0434</div>\r\n <div class=\"error-page__foot\">\r\n <dd-lib-button (click)=\"goBack()\">\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043D\u0430\u0437\u0430\u0434</dd-lib-button>\r\n <dd-lib-button (click)=\"goBack()\" btnColor=\"white\">\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443</dd-lib-button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".error-page{display:flex;align-items:center;justify-content:center;padding:100px 0}@media screen and (max-width: 480px){.error-page{padding:24px 0}}.error-page__container{display:flex;align-items:center;gap:80px}@media screen and (max-width: 1320px){.error-page__container{flex-direction:column;gap:32px}}@media screen and (max-width: 840px){.error-page__container{text-align:center}}.error-page__img{width:500px;height:500px;background-size:cover}@media screen and (max-width: 840px){.error-page__img{width:400px;height:400px}}@media screen and (max-width: 480px){.error-page__img{width:280px;height:280px}}.error-page__foot{display:flex;align-items:center;gap:24px}@media screen and (max-width: 840px){.error-page__foot{flex-direction:column;gap:16px}}\n"] }]
4470
- }], ctorParameters: () => [{ type: i1.Location }, { type: i1$1.Router }] });
4925
+ }], ctorParameters: () => [{ type: i1$3.Location }, { type: i1.Router }] });
4471
4926
 
4472
4927
  class TechWorksComponent {
4473
4928
  constructor(location, router) {
@@ -4482,13 +4937,13 @@ class TechWorksComponent {
4482
4937
  this.router.navigate(['/']);
4483
4938
  }
4484
4939
  }
4485
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: TechWorksComponent, deps: [{ token: i1.Location }, { token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
4940
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: TechWorksComponent, deps: [{ token: i1$3.Location }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
4486
4941
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: TechWorksComponent, isStandalone: true, selector: "dd-tech-works", ngImport: i0, template: "<div class=\"tech-works\">\r\n <div class=\"tech-works__img tech-works-bg mb-64 m-mb-32\"></div>\r\n <div>\r\n <div class=\"g-h1-title mb-8 m-mb-12\">\u0422\u0435\u0445\u043D\u0438\u0447\u0435\u0441\u043A\u0438\u0435 \u0440\u0430\u0431\u043E\u0442\u044B</div>\r\n <div class=\"g-text mb-40\">\u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u043F\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443 \u0438\u043B\u0438 \u0437\u0430\u0439\u0442\u0438 \u043F\u043E\u0437\u0436\u0435</div>\r\n <div class=\"tech-works__foot\">\r\n <dd-lib-button (click)=\"goBack()\">\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043D\u0430\u0437\u0430\u0434</dd-lib-button>\r\n <dd-lib-button routerLink=\"/\" btnColor=\"white\">\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443</dd-lib-button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".tech-works{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:100px 0}@media screen and (max-width: 840px){.tech-works{text-align:center}}@media screen and (max-width: 480px){.tech-works{padding:24px 0}}.tech-works__img{width:500px;height:500px;background-size:cover}@media screen and (max-width: 840px){.tech-works__img{width:400px;height:400px}}@media screen and (max-width: 480px){.tech-works__img{width:280px;height:280px}}.tech-works__foot{display:flex;align-items:center;gap:24px}@media screen and (max-width: 840px){.tech-works__foot{flex-direction:column;gap:16px}}\n"], dependencies: [{ kind: "component", type: LibButtonComponent, selector: "dd-lib-button", inputs: ["noPadding", "loaderColor"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4487
4942
  }
4488
4943
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: TechWorksComponent, decorators: [{
4489
4944
  type: Component,
4490
4945
  args: [{ selector: 'dd-tech-works', standalone: true, imports: [LibButtonComponent, NgOptimizedImage, RouterLink, LibSvgIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"tech-works\">\r\n <div class=\"tech-works__img tech-works-bg mb-64 m-mb-32\"></div>\r\n <div>\r\n <div class=\"g-h1-title mb-8 m-mb-12\">\u0422\u0435\u0445\u043D\u0438\u0447\u0435\u0441\u043A\u0438\u0435 \u0440\u0430\u0431\u043E\u0442\u044B</div>\r\n <div class=\"g-text mb-40\">\u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u043F\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443 \u0438\u043B\u0438 \u0437\u0430\u0439\u0442\u0438 \u043F\u043E\u0437\u0436\u0435</div>\r\n <div class=\"tech-works__foot\">\r\n <dd-lib-button (click)=\"goBack()\">\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043D\u0430\u0437\u0430\u0434</dd-lib-button>\r\n <dd-lib-button routerLink=\"/\" btnColor=\"white\">\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443</dd-lib-button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".tech-works{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:100px 0}@media screen and (max-width: 840px){.tech-works{text-align:center}}@media screen and (max-width: 480px){.tech-works{padding:24px 0}}.tech-works__img{width:500px;height:500px;background-size:cover}@media screen and (max-width: 840px){.tech-works__img{width:400px;height:400px}}@media screen and (max-width: 480px){.tech-works__img{width:280px;height:280px}}.tech-works__foot{display:flex;align-items:center;gap:24px}@media screen and (max-width: 840px){.tech-works__foot{flex-direction:column;gap:16px}}\n"] }]
4491
- }], ctorParameters: () => [{ type: i1.Location }, { type: i1$1.Router }] });
4946
+ }], ctorParameters: () => [{ type: i1$3.Location }, { type: i1.Router }] });
4492
4947
 
4493
4948
  /*
4494
4949
  * Public API Surface of dd-lib
@@ -4499,5 +4954,5 @@ const t = true;
4499
4954
  * Generated bundle index. Do not edit.
4500
4955
  */
4501
4956
 
4502
- export { AutoHeightDirective, ClickOutsideDirective, CounterDirective, DDDialogRef, DEFAULT_FORMAT, DIALOG_CONFIG, DataEmptyComponent, DateService, Debounce, DeclensionDirective, DestroyService, DialogConfig, DialogService, DisableAfterNCall, Disabled, ErrorPageComponent, FetcherService, FilterByKeyPipe, FilterPipe, FilterTabsPipe, FooterComponent, HighlightPipe, ITab, InterceptorsService, LibAccordionComponent, LibBackButtonComponent, LibButtonComponent, LibCalendarComponent, LibCardComponent, LibCheckboxComponent, LibCommentInputComponent, LibCommonButtonComponent, LibCommonInputTextComponent, LibDateInputComponent, LibDateRangeComponent, LibFileLoaderComponent, LibFileUploadComponent, LibFilterButtonComponent, LibFilterComponent, LibImageLoaderComponent, LibInfoCardComponent, LibInputComponent, LibLoaderComponent, LibPeriodComponent, LibRadioComponent, LibSearchInputComponent, LibSelectComponent, LibSkeletonComponent, LibSortComponent, LibStepComponent, LibSvgComponent, LibSvgIconComponent, LibTabsFragmentComponent, LibTextareaComponent, MainSharedComponent, ModalBaseComponent, ModalCommonComponent, NotFoundComponent, ResizeTextareaDirective, ReversePipe, SafePipe, SvgIconsService, TOAST_CONFIG_TOKEN, TOOLTIP_DATA, TechWorksComponent, ThemeConfigurator, ThemeConstructorService, Throttle, ToastComponent, ToastConfig, ToastData, ToastRef, ToastService, ToastTypeData, TooltipComponent, TooltipDirective, TriangleDirective, ValidatorsService, completeIconSet, defaultToastConfig, provideToast, svgIconActogoneAccept, svgIconAll, svgIconAppgalery, svgIconAppstore, svgIconArrowDownRed, svgIconArrowUpGreen, svgIconBackArrow, svgIconBurger, svgIconCalendar, svgIconCheckGreen, svgIconCheckWhite, svgIconCircleNo, svgIconClear, svgIconClose, svgIconDangerT, svgIconDd, svgIconDdM, svgIconDobrodel, svgIconDownChevron, svgIconDownload, svgIconEds, svgIconEdsM, svgIconEntry, svgIconErrorHint, svgIconEsia, svgIconEye, svgIconEyeOff, svgIconFile, svgIconFilter, svgIconGoogleapp, svgIconGrid, svgIconHealth, svgIconHealthM, svgIconInfoCircle, svgIconInfoT, svgIconLeftChevron, svgIconListSearch, svgIconLogout, svgIconMailExclamation, svgIconMaxFilter, svgIconMoon, svgIconMy, svgIconMyM, svgIconNews, svgIconNext, svgIconPaperclip, svgIconPenEdit, svgIconPguMo, svgIconPguMoM, svgIconPlug, svgIconPlugD, svgIconPlus, svgIconPreset, svgIconPrev, svgIconPrint, svgIconPrinter, svgIconQuestion, svgIconQuestionWhiteG, svgIconRedClose, svgIconReload, svgIconRightChevron, svgIconRustore, svgIconSearch, svgIconSend, svgIconSetAvatar, svgIconSharedLogo, svgIconSmallRoundLoader, svgIconSort, svgIconStar, svgIconSuccessT, svgIconSun, svgIconTg, svgIconToggleArrowLeft, svgIconToggleArrowRight, svgIconTrash, svgIconTrophy, svgIconUser, svgIconUserEmpty, svgIconUserEmptyD, svgIconVk, svgIconWarningT, t };
4957
+ export { AutoHeightDirective, ClickOutsideDirective, CounterDirective, DDDialogRef, DEFAULT_FORMAT, DIALOG_CONFIG, DataEmptyComponent, DateService, Debounce, DeclensionDirective, DestroyService, DialogConfig, DialogService, DisableAfterNCall, Disabled, DropDownPositionDirective, ErrorPageComponent, FetcherService, FilterByKeyPipe, FilterPipe, FilterTabsPipe, FixedPositionDirective, FooterComponent, HighlightPipe, ITab, InterceptorsService, LibAccordionComponent, LibBackButtonComponent, LibButtonComponent, LibCalendarComponent, LibCardComponent, LibCheckboxComponent, LibCommentInputComponent, LibCommonButtonComponent, LibCommonInputTextComponent, LibDateInputComponent, LibDateRangeComponent, LibDisclaimerComponent, LibFileLoaderComponent, LibFileUploadComponent, LibFilterButtonComponent, LibFilterComponent, LibImageLoaderComponent, LibInfoCardComponent, LibInputComponent, LibLoaderComponent, LibPeriodComponent, LibRadioComponent, LibSearchInputComponent, LibSelectComponent, LibSkeletonComponent, LibSortComponent, LibStepComponent, LibSvgComponent, LibSvgIconComponent, LibTabsFragmentComponent, LibTextareaComponent, ListKeyboardNavigationDirective, MainSharedComponent, ModalBaseComponent, ModalCommonComponent, NotFoundComponent, PhoneMaskDirective, ResizeTextareaDirective, ReversePipe, SafePipe, SelectableItemDirective, SvgIconsService, TOAST_CONFIG_TOKEN, TOOLTIP_DATA, TechWorksComponent, ThemeConfigurator, ThemeConstructorService, Throttle, ToastComponent, ToastConfig, ToastData, ToastRef, ToastService, ToastTypeData, TooltipComponent, TooltipDirective, TriangleDirective, ValidatorsService, completeIconSet, defaultToastConfig, provideToast, svgIconActogoneAccept, svgIconAll, svgIconAppgalery, svgIconAppstore, svgIconArrowDownRed, svgIconArrowUpGreen, svgIconBackArrow, svgIconBurger, svgIconCalendar, svgIconCheckGreen, svgIconCheckWhite, svgIconCircleNo, svgIconClear, svgIconClose, svgIconDangerT, svgIconDd, svgIconDdM, svgIconDobrodel, svgIconDownChevron, svgIconDownload, svgIconEds, svgIconEdsM, svgIconEntry, svgIconErrorHint, svgIconEsia, svgIconEye, svgIconEyeOff, svgIconFile, svgIconFilter, svgIconGoogleapp, svgIconGrid, svgIconHealth, svgIconHealthM, svgIconInfoCircle, svgIconInfoT, svgIconLeftChevron, svgIconListSearch, svgIconLogout, svgIconMailExclamation, svgIconMaxFilter, svgIconMoon, svgIconMy, svgIconMyM, svgIconNews, svgIconNext, svgIconPaperclip, svgIconPenEdit, svgIconPguMo, svgIconPguMoM, svgIconPlug, svgIconPlugD, svgIconPlus, svgIconPreset, svgIconPrev, svgIconPrint, svgIconPrinter, svgIconQuestion, svgIconQuestionWhiteG, svgIconRedClose, svgIconReload, svgIconRightChevron, svgIconRustore, svgIconSearch, svgIconSend, svgIconSetAvatar, svgIconSharedLogo, svgIconSmallRoundLoader, svgIconSort, svgIconStar, svgIconSuccessT, svgIconSun, svgIconTg, svgIconToggleArrowLeft, svgIconToggleArrowRight, svgIconTrash, svgIconTrophy, svgIconUser, svgIconUserEmpty, svgIconUserEmptyD, svgIconVk, svgIconWarningT, t };
4503
4958
  //# sourceMappingURL=morozeckiy-dd-lib.mjs.map