@morozeckiy/dd-lib 0.1.1 → 0.1.2
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.
- package/esm2022/lib/common/lib-common-button.mjs +62 -0
- package/esm2022/lib/common/lib-common-input-text.mjs +172 -0
- package/esm2022/lib/core/dialog/dialog-config.mjs +15 -0
- package/esm2022/lib/core/dialog/dialog-container.component.mjs +40 -0
- package/esm2022/lib/core/dialog/dialog-ref.mjs +19 -0
- package/esm2022/lib/core/dialog/dialog.service.mjs +106 -0
- package/esm2022/lib/core/directives/auto-height.directive.mjs +36 -0
- package/esm2022/lib/core/directives/click-outside.directive.mjs +42 -0
- package/esm2022/lib/core/directives/counter.directive.mjs +64 -0
- package/esm2022/lib/core/directives/declension.directive.mjs +40 -0
- package/esm2022/lib/core/directives/resize-textarea.directive.mjs +26 -0
- package/esm2022/lib/core/directives/triangle.directive.mjs +75 -0
- package/esm2022/lib/core/index.mjs +26 -0
- package/esm2022/lib/core/pipes/filter-tabs.pipe.mjs +31 -0
- package/esm2022/lib/core/pipes/filter.pipe.mjs +49 -0
- package/esm2022/lib/core/pipes/highlight.pipe.mjs +23 -0
- package/esm2022/lib/core/pipes/reverse.pipe.mjs +17 -0
- package/esm2022/lib/core/pipes/safe.pipe.mjs +34 -0
- package/esm2022/lib/core/services/date.service.mjs +113 -0
- package/esm2022/lib/core/services/destroy.service.mjs +15 -0
- package/esm2022/lib/core/services/fetcher.service.mjs +92 -0
- package/esm2022/lib/core/services/interceptors.service.mjs +27 -0
- package/esm2022/lib/core/services/svg-icons.service.mjs +26 -0
- package/esm2022/lib/core/services/theme-constructor.service.mjs +64 -0
- package/esm2022/lib/core/services/validators.service.mjs +73 -0
- package/esm2022/lib/core/tools.mjs +128 -0
- package/esm2022/lib/core/tooltip/tooltip.component.mjs +27 -0
- package/esm2022/lib/core/tooltip/tooltip.directive.mjs +137 -0
- package/esm2022/lib/lib-accordion/lib-accordion.component.mjs +15 -0
- package/esm2022/lib/lib-back-button/lib-back-button.component.mjs +37 -0
- package/esm2022/lib/lib-button/lib-button.component.mjs +30 -0
- package/esm2022/lib/lib-calendar/lib-calendar.component.mjs +222 -0
- package/esm2022/lib/lib-card/lib-card.component.mjs +34 -0
- package/esm2022/lib/lib-checkbox/lib-checkbox.component.mjs +66 -0
- package/esm2022/lib/lib-comment-input/lib-comment-input.component.mjs +20 -0
- package/esm2022/lib/lib-file-upload/lib-file-upload.component.mjs +34 -0
- package/esm2022/lib/lib-filter-button/lib-filter-button.component.mjs +42 -0
- package/esm2022/lib/lib-image-loader/lib-image-loader.component.mjs +14 -0
- package/esm2022/lib/lib-input/lib-input.component.mjs +55 -0
- package/esm2022/lib/lib-loader/lib-loader.component.mjs +16 -0
- package/esm2022/lib/lib-period/lib-period.component.mjs +114 -0
- package/esm2022/lib/lib-radio/lib-radio.component.mjs +76 -0
- package/esm2022/lib/lib-search-input/lib-search-input.component.mjs +91 -0
- package/esm2022/lib/lib-select/lib-select.component.mjs +137 -0
- package/esm2022/lib/lib-skeleton/lib-skeleton.component.mjs +45 -0
- package/esm2022/lib/lib-sort/lib-sort.component.mjs +44 -0
- package/esm2022/lib/lib-step/lib-step.component.mjs +19 -0
- package/esm2022/lib/lib-svg/lib-svg.component.mjs +75 -0
- package/esm2022/lib/lib-svg-icon/lib-svg-icon.component.mjs +55 -0
- package/esm2022/lib/lib-tabs-fragment/lib-tabs-fragment.component.mjs +79 -0
- package/esm2022/lib/lib-textarea/lib-textarea.component.mjs +50 -0
- package/esm2022/lib/toast/toast-base/toast-base.component.mjs +29 -0
- package/esm2022/lib/toast/toast-placeholder/toast-placeholder.component.mjs +29 -0
- package/esm2022/lib/toast/toast.service.mjs +124 -0
- package/esm2022/lib/utils/decorators.mjs +102 -0
- package/esm2022/morozeckiy-dd-lib.mjs +5 -0
- package/esm2022/public-api.mjs +35 -0
- package/fesm2022/morozeckiy-dd-lib.mjs +3004 -0
- package/fesm2022/morozeckiy-dd-lib.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/common/lib-common-button.d.ts +20 -0
- package/lib/common/lib-common-input-text.d.ts +53 -0
- package/lib/core/dialog/dialog-config.d.ts +14 -0
- package/lib/core/dialog/dialog-container.component.d.ts +18 -0
- package/lib/core/dialog/dialog-ref.d.ts +18 -0
- package/lib/core/dialog/dialog.service.d.ts +28 -0
- package/lib/core/directives/auto-height.directive.d.ts +11 -0
- package/lib/core/directives/click-outside.directive.d.ts +11 -0
- package/lib/core/directives/counter.directive.d.ts +11 -0
- package/lib/core/directives/declension.directive.d.ts +13 -0
- package/lib/core/directives/resize-textarea.directive.d.ts +10 -0
- package/lib/core/directives/triangle.directive.d.ts +16 -0
- package/lib/core/index.d.ts +20 -0
- package/lib/core/pipes/filter-tabs.pipe.d.ts +7 -0
- package/lib/core/pipes/filter.pipe.d.ts +12 -0
- package/lib/core/pipes/highlight.pipe.d.ts +7 -0
- package/lib/core/pipes/reverse.pipe.d.ts +7 -0
- package/lib/core/pipes/safe.pipe.d.ts +10 -0
- package/lib/core/services/date.service.d.ts +41 -0
- package/lib/core/services/destroy.service.d.ts +8 -0
- package/lib/core/services/fetcher.service.d.ts +29 -0
- package/lib/core/services/interceptors.service.d.ts +12 -0
- package/lib/core/services/svg-icons.service.d.ts +9 -0
- package/lib/core/services/theme-constructor.service.d.ts +27 -0
- package/lib/core/services/validators.service.d.ts +18 -0
- package/lib/core/tools.d.ts +16 -0
- package/lib/core/tooltip/tooltip.component.d.ts +12 -0
- package/lib/core/tooltip/tooltip.directive.d.ts +22 -0
- package/lib/lib-accordion/lib-accordion.component.d.ts +8 -0
- package/lib/lib-back-button/lib-back-button.component.d.ts +13 -0
- package/lib/lib-button/lib-button.component.d.ts +10 -0
- package/lib/lib-calendar/lib-calendar.component.d.ts +76 -0
- package/lib/lib-card/lib-card.component.d.ts +16 -0
- package/lib/lib-checkbox/lib-checkbox.component.d.ts +23 -0
- package/lib/lib-comment-input/lib-comment-input.component.d.ts +8 -0
- package/lib/lib-file-upload/lib-file-upload.component.d.ts +12 -0
- package/lib/lib-filter-button/lib-filter-button.component.d.ts +13 -0
- package/lib/lib-image-loader/lib-image-loader.component.d.ts +6 -0
- package/lib/lib-input/lib-input.component.d.ts +13 -0
- package/lib/lib-loader/lib-loader.component.d.ts +6 -0
- package/lib/lib-period/lib-period.component.d.ts +41 -0
- package/lib/lib-radio/lib-radio.component.d.ts +25 -0
- package/lib/lib-search-input/lib-search-input.component.d.ts +29 -0
- package/lib/lib-select/lib-select.component.d.ts +30 -0
- package/lib/lib-skeleton/lib-skeleton.component.d.ts +16 -0
- package/lib/lib-sort/lib-sort.component.d.ts +18 -0
- package/lib/lib-step/lib-step.component.d.ts +7 -0
- package/{src/lib/lib-svg/lib-svg.component.ts → lib/lib-svg/lib-svg.component.d.ts} +38 -66
- package/lib/lib-svg-icon/lib-svg-icon.component.d.ts +18 -0
- package/lib/lib-tabs-fragment/lib-tabs-fragment.component.d.ts +29 -0
- package/lib/lib-textarea/lib-textarea.component.d.ts +13 -0
- package/lib/toast/toast-base/toast-base.component.d.ts +21 -0
- package/lib/toast/toast-placeholder/toast-placeholder.component.d.ts +12 -0
- package/lib/toast/toast.service.d.ts +35 -0
- package/lib/utils/decorators.d.ts +4 -0
- package/package.json +16 -3
- package/public-api.d.ts +30 -0
- package/ekgip-dd-lib-0.0.1.tgz +0 -0
- package/ng-package.json +0 -8
- package/src/lib/common/lib-common-button.ts +0 -34
- package/src/lib/common/lib-common-input-text.ts +0 -154
- package/src/lib/core/dialog/dialog-config.ts +0 -19
- package/src/lib/core/dialog/dialog-container.component.ts +0 -38
- package/src/lib/core/dialog/dialog-ref.ts +0 -28
- package/src/lib/core/dialog/dialog.service.ts +0 -144
- package/src/lib/core/directives/auto-height.directive.ts +0 -29
- package/src/lib/core/directives/click-outside.directive.ts +0 -33
- package/src/lib/core/directives/counter.directive.ts +0 -54
- package/src/lib/core/directives/declension.directive.ts +0 -29
- package/src/lib/core/directives/resize-textarea.directive.ts +0 -16
- package/src/lib/core/directives/triangle.directive.ts +0 -56
- package/src/lib/core/index.ts +0 -27
- package/src/lib/core/pipes/filter-tabs.pipe.ts +0 -25
- package/src/lib/core/pipes/filter.pipe.ts +0 -36
- package/src/lib/core/pipes/highlight.pipe.ts +0 -17
- package/src/lib/core/pipes/reverse.pipe.ts +0 -11
- package/src/lib/core/pipes/safe.pipe.ts +0 -37
- package/src/lib/core/services/date.service.ts +0 -153
- package/src/lib/core/services/destroy.service.ts +0 -10
- package/src/lib/core/services/fetcher.service.ts +0 -109
- package/src/lib/core/services/interceptors.service.ts +0 -26
- package/src/lib/core/services/svg-icons.service.ts +0 -25
- package/src/lib/core/services/theme-constructor.service.ts +0 -68
- package/src/lib/core/services/validators.service.ts +0 -73
- package/src/lib/core/tools.ts +0 -159
- package/src/lib/core/tooltip/tooltip.component.html +0 -10
- package/src/lib/core/tooltip/tooltip.component.scss +0 -59
- package/src/lib/core/tooltip/tooltip.component.ts +0 -27
- package/src/lib/core/tooltip/tooltip.directive.ts +0 -137
- package/src/lib/core/utils.ts +0 -28
- package/src/lib/lib-accordion/lib-accordion.component.html +0 -15
- package/src/lib/lib-accordion/lib-accordion.component.scss +0 -23
- package/src/lib/lib-accordion/lib-accordion.component.ts +0 -17
- package/src/lib/lib-back-button/lib-back-button.component.html +0 -4
- package/src/lib/lib-back-button/lib-back-button.component.scss +0 -3
- package/src/lib/lib-back-button/lib-back-button.component.ts +0 -31
- package/src/lib/lib-button/lib-button.component.html +0 -30
- package/src/lib/lib-button/lib-button.component.scss +0 -89
- package/src/lib/lib-button/lib-button.component.ts +0 -33
- package/src/lib/lib-calendar/lib-calendar.component.html +0 -64
- package/src/lib/lib-calendar/lib-calendar.component.scss +0 -88
- package/src/lib/lib-calendar/lib-calendar.component.ts +0 -227
- package/src/lib/lib-card/lib-card.component.html +0 -23
- package/src/lib/lib-card/lib-card.component.scss +0 -64
- package/src/lib/lib-card/lib-card.component.ts +0 -32
- package/src/lib/lib-checkbox/lib-checkbox.component.html +0 -15
- package/src/lib/lib-checkbox/lib-checkbox.component.scss +0 -80
- package/src/lib/lib-checkbox/lib-checkbox.component.ts +0 -67
- package/src/lib/lib-comment-input/lib-comment-input.component.html +0 -32
- package/src/lib/lib-comment-input/lib-comment-input.component.scss +0 -28
- package/src/lib/lib-comment-input/lib-comment-input.component.ts +0 -20
- package/src/lib/lib-file-upload/lib-file-upload.component.html +0 -14
- package/src/lib/lib-file-upload/lib-file-upload.component.scss +0 -3
- package/src/lib/lib-file-upload/lib-file-upload.component.ts +0 -26
- package/src/lib/lib-filter-button/lib-filter-button.component.html +0 -46
- package/src/lib/lib-filter-button/lib-filter-button.component.scss +0 -62
- package/src/lib/lib-filter-button/lib-filter-button.component.ts +0 -45
- package/src/lib/lib-image-loader/lib-image-loader.component.html +0 -17
- package/src/lib/lib-image-loader/lib-image-loader.component.scss +0 -6
- package/src/lib/lib-image-loader/lib-image-loader.component.ts +0 -16
- package/src/lib/lib-input/lib-input.component.html +0 -32
- package/src/lib/lib-input/lib-input.component.scss +0 -72
- package/src/lib/lib-input/lib-input.component.ts +0 -62
- package/src/lib/lib-loader/lib-loader.component.html +0 -29
- package/src/lib/lib-loader/lib-loader.component.scss +0 -26
- package/src/lib/lib-loader/lib-loader.component.ts +0 -13
- package/src/lib/lib-period/lib-period.component.html +0 -41
- package/src/lib/lib-period/lib-period.component.scss +0 -77
- package/src/lib/lib-period/lib-period.component.ts +0 -131
- package/src/lib/lib-radio/lib-radio.component.html +0 -22
- package/src/lib/lib-radio/lib-radio.component.scss +0 -113
- package/src/lib/lib-radio/lib-radio.component.ts +0 -78
- package/src/lib/lib-search-input/lib-search-input.component.html +0 -48
- package/src/lib/lib-search-input/lib-search-input.component.scss +0 -86
- package/src/lib/lib-search-input/lib-search-input.component.ts +0 -94
- package/src/lib/lib-select/lib-select.component.html +0 -83
- package/src/lib/lib-select/lib-select.component.scss +0 -130
- package/src/lib/lib-select/lib-select.component.ts +0 -152
- package/src/lib/lib-skeleton/lib-skeleton.component.html +0 -11
- package/src/lib/lib-skeleton/lib-skeleton.component.scss +0 -36
- package/src/lib/lib-skeleton/lib-skeleton.component.ts +0 -41
- package/src/lib/lib-sort/lib-sort.component.html +0 -21
- package/src/lib/lib-sort/lib-sort.component.scss +0 -21
- package/src/lib/lib-sort/lib-sort.component.ts +0 -52
- package/src/lib/lib-step/lib-step.component.html +0 -4
- package/src/lib/lib-step/lib-step.component.scss +0 -23
- package/src/lib/lib-step/lib-step.component.ts +0 -14
- package/src/lib/lib-svg/lib-svg.component.html +0 -15
- package/src/lib/lib-svg/lib-svg.component.scss +0 -81
- package/src/lib/lib-svg-icon/lib-svg-icon.component.css +0 -0
- package/src/lib/lib-svg-icon/lib-svg-icon.component.ts +0 -58
- package/src/lib/lib-tabs-fragment/lib-tabs-fragment.component.html +0 -12
- package/src/lib/lib-tabs-fragment/lib-tabs-fragment.component.scss +0 -19
- package/src/lib/lib-tabs-fragment/lib-tabs-fragment.component.ts +0 -88
- package/src/lib/lib-textarea/lib-textarea.component.html +0 -37
- package/src/lib/lib-textarea/lib-textarea.component.scss +0 -77
- package/src/lib/lib-textarea/lib-textarea.component.ts +0 -49
- package/src/lib/toast/toast-base/toast-base.component.html +0 -7
- package/src/lib/toast/toast-base/toast-base.component.scss +0 -44
- package/src/lib/toast/toast-base/toast-base.component.ts +0 -38
- package/src/lib/toast/toast-placeholder/toast-placeholder.component.ts +0 -20
- package/src/lib/toast/toast.service.ts +0 -130
- package/src/lib/utils/decorators.ts +0 -124
- package/src/public-api.ts +0 -35
- package/tsconfig.lib.json +0 -14
- package/tsconfig.lib.prod.json +0 -10
- package/tsconfig.spec.json +0 -14
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ChangeDetectionStrategy,
|
|
3
|
-
Component,
|
|
4
|
-
EventEmitter,
|
|
5
|
-
forwardRef,
|
|
6
|
-
Input,
|
|
7
|
-
OnInit,
|
|
8
|
-
Output,
|
|
9
|
-
} from '@angular/core';
|
|
10
|
-
import { LibCardComponent } from '../lib-card/lib-card.component';
|
|
11
|
-
import { LibFilterButtonComponent } from '../lib-filter-button/lib-filter-button.component';
|
|
12
|
-
import { LibRadioComponent } from '../lib-radio/lib-radio.component';
|
|
13
|
-
|
|
14
|
-
import { LibCalendarComponent } from '../lib-calendar/lib-calendar.component';
|
|
15
|
-
import { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
16
|
-
|
|
17
|
-
import { format } from 'date-fns';
|
|
18
|
-
import {ClickOutsideDirective, DateService, DEFAULT_FORMAT, GetDateBy, PeriodMenuDate, PeriodName} from "../core";
|
|
19
|
-
|
|
20
|
-
@Component({
|
|
21
|
-
selector: 'dd-lib-period',
|
|
22
|
-
standalone: true,
|
|
23
|
-
imports: [
|
|
24
|
-
LibCardComponent,
|
|
25
|
-
LibFilterButtonComponent,
|
|
26
|
-
LibRadioComponent,
|
|
27
|
-
LibCalendarComponent,
|
|
28
|
-
FormsModule,
|
|
29
|
-
ClickOutsideDirective,
|
|
30
|
-
],
|
|
31
|
-
|
|
32
|
-
templateUrl: './lib-period.component.html',
|
|
33
|
-
styleUrl: './lib-period.component.scss',
|
|
34
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
35
|
-
providers: [
|
|
36
|
-
{
|
|
37
|
-
provide: NG_VALUE_ACCESSOR,
|
|
38
|
-
useExisting: forwardRef(() => LibPeriodComponent),
|
|
39
|
-
multi: true,
|
|
40
|
-
},
|
|
41
|
-
],
|
|
42
|
-
})
|
|
43
|
-
export class LibPeriodComponent implements OnInit, ControlValueAccessor {
|
|
44
|
-
public static idCounter = 1;
|
|
45
|
-
@Input() public maxDate: Date | undefined;
|
|
46
|
-
@Output() public setPeriodDate = new EventEmitter<{ [key in keyof GetDateBy]: string } | null>();
|
|
47
|
-
|
|
48
|
-
public periodMenu: PeriodMenuDate[] | undefined;
|
|
49
|
-
public periodIsShown = false;
|
|
50
|
-
public calendarIsShown = false;
|
|
51
|
-
public periodIsSelected = false;
|
|
52
|
-
public calendarIsSelected = false;
|
|
53
|
-
public selectedPeriod: PeriodName | undefined;
|
|
54
|
-
public selectedDate: Date | undefined;
|
|
55
|
-
public idPeriod!: string;
|
|
56
|
-
public idCalendar!: string;
|
|
57
|
-
private onTouchedCallback: (() => void) | undefined;
|
|
58
|
-
|
|
59
|
-
constructor(private dateService: DateService) {}
|
|
60
|
-
|
|
61
|
-
public ngOnInit(): void {
|
|
62
|
-
this.idPeriod = 'period-wrapper-' + LibPeriodComponent.idCounter++;
|
|
63
|
-
this.idCalendar = 'calendar-wrapper-' + LibPeriodComponent.idCounter++;
|
|
64
|
-
this.periodMenu = this.dateService.getPeriodMenu();
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
public registerOnChange(fn: any): void {
|
|
68
|
-
this.propagateChange = fn;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
public registerOnTouched(fn: any): void {
|
|
72
|
-
this.onTouchedCallback = fn;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
public showPeriod(): void {
|
|
76
|
-
this.periodIsShown = !this.periodIsShown;
|
|
77
|
-
this.calendarIsShown = !!this.selectedDate;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
public clearPeriod(): void {
|
|
81
|
-
this.periodIsSelected = false;
|
|
82
|
-
this.calendarIsSelected = false;
|
|
83
|
-
this.periodIsShown = false;
|
|
84
|
-
this.calendarIsShown = false;
|
|
85
|
-
this.selectedPeriod = undefined;
|
|
86
|
-
this.selectedDate = undefined;
|
|
87
|
-
this.setPeriodDate.emit(null);
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
public selectPeriod(type: keyof GetDateBy): void {
|
|
91
|
-
this.periodIsShown = false;
|
|
92
|
-
this.calendarIsShown = false;
|
|
93
|
-
this.periodIsSelected = true;
|
|
94
|
-
this.calendarIsSelected = false;
|
|
95
|
-
const date = this.dateService.getFormattedDate(type);
|
|
96
|
-
this.propagateChange(type);
|
|
97
|
-
this.setPeriodDate.emit({ [type]: date });
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
public writeValue(value: any): void {
|
|
101
|
-
this.selectedPeriod = value;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
public selectDate($event: Date | undefined): void {
|
|
105
|
-
this.calendarIsShown = false;
|
|
106
|
-
if ($event) {
|
|
107
|
-
this.selectedPeriod = 'calendar';
|
|
108
|
-
this.propagateChange(this.selectedPeriod);
|
|
109
|
-
this.periodIsShown = false;
|
|
110
|
-
this.periodIsSelected = false;
|
|
111
|
-
this.calendarIsSelected = true;
|
|
112
|
-
this.setPeriodDate.emit({ calendar: format($event, DEFAULT_FORMAT) });
|
|
113
|
-
} else {
|
|
114
|
-
this.selectedDate = undefined;
|
|
115
|
-
this.setPeriodDate.emit(null);
|
|
116
|
-
if (!this.selectedPeriod) {
|
|
117
|
-
this.periodIsSelected = false;
|
|
118
|
-
}
|
|
119
|
-
this.calendarIsSelected = false;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
public clickOutside($event: boolean): void {
|
|
124
|
-
this.periodIsShown = $event;
|
|
125
|
-
if (this.periodIsShown && !$event) {
|
|
126
|
-
this.calendarIsShown = $event;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
private propagateChange(value: PeriodName) {}
|
|
131
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
<label [for]="radioId" class="radio">
|
|
2
|
-
<input
|
|
3
|
-
(change)="onSelected($event.target)"
|
|
4
|
-
[attr.aria-checked]="checked"
|
|
5
|
-
[attr.tabIndex]="disabled ? -1 : 0"
|
|
6
|
-
[attr.value]="value"
|
|
7
|
-
[checked]="checked"
|
|
8
|
-
[disabled]="disabled"
|
|
9
|
-
[id]="radioId"
|
|
10
|
-
[name]="name"
|
|
11
|
-
[ngClass]="{ disabled: disabled }"
|
|
12
|
-
[required]="required"
|
|
13
|
-
class="radio-input"
|
|
14
|
-
role="radio"
|
|
15
|
-
type="radio" />
|
|
16
|
-
<div [class.focused]="focused" class="mark-wrap">
|
|
17
|
-
<div class="radio-button"></div>
|
|
18
|
-
</div>
|
|
19
|
-
<div class="label-wrap">
|
|
20
|
-
<span><ng-content></ng-content></span>
|
|
21
|
-
</div>
|
|
22
|
-
</label>
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
:host {
|
|
3
|
-
outline: none;
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
.radio {
|
|
7
|
-
display: flex;
|
|
8
|
-
align-items: center;
|
|
9
|
-
position: relative;
|
|
10
|
-
font-size: 16px;
|
|
11
|
-
cursor: pointer;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
.radio-input {
|
|
15
|
-
opacity: 0;
|
|
16
|
-
position: absolute;
|
|
17
|
-
z-index: -1;
|
|
18
|
-
|
|
19
|
-
&:focus {
|
|
20
|
-
opacity: 1;
|
|
21
|
-
width: 24px;
|
|
22
|
-
height: 24px;
|
|
23
|
-
left: 0;
|
|
24
|
-
top: 0;
|
|
25
|
-
margin: 0;
|
|
26
|
-
border-color: #000;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
&:focus:not(:focus-visible) {
|
|
30
|
-
opacity: 0;
|
|
31
|
-
border: 0;
|
|
32
|
-
outline: 0;
|
|
33
|
-
margin: 0;
|
|
34
|
-
width: inherit;
|
|
35
|
-
height: inherit;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
&:checked ~ .label-wrap {
|
|
39
|
-
font-weight: bold;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
&:checked + .mark-wrap {
|
|
43
|
-
border: 2px solid var(--radio-active-color);
|
|
44
|
-
|
|
45
|
-
.radio-button {
|
|
46
|
-
background-color: var(--radio-active-color);
|
|
47
|
-
border: 2px solid #fff;
|
|
48
|
-
width: 16px;
|
|
49
|
-
height: 16px;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
&:checked:disabled + .mark-wrap,
|
|
54
|
-
&:checked:disabled:hover + .mark-wrap {
|
|
55
|
-
border-color: var(--radio-disabled);
|
|
56
|
-
cursor: default;
|
|
57
|
-
|
|
58
|
-
.radio-button {
|
|
59
|
-
cursor: default;
|
|
60
|
-
background-color: var(--radio-disabled);
|
|
61
|
-
border: 2px solid #fff;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
&:disabled + .mark-wrap,
|
|
66
|
-
&:disabled:hover + .mark-wrap {
|
|
67
|
-
border-color: var(--radio-disabled);
|
|
68
|
-
cursor: default;
|
|
69
|
-
|
|
70
|
-
.radio-button {
|
|
71
|
-
cursor: default;
|
|
72
|
-
border: 2px solid #fff;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
&:hover + .mark-wrap {
|
|
77
|
-
border-color: #1c1c1c;
|
|
78
|
-
|
|
79
|
-
.radio-button {
|
|
80
|
-
border-color: #1c1c1c;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
&:checked:hover + .mark-wrap {
|
|
85
|
-
cursor: pointer;
|
|
86
|
-
border: 2px solid var(--radio-hover-color);
|
|
87
|
-
|
|
88
|
-
.radio-button {
|
|
89
|
-
cursor: pointer;
|
|
90
|
-
background-color: var(--radio-hover-color);
|
|
91
|
-
border: 2px solid #fff;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
.mark-wrap {
|
|
97
|
-
border-radius: 100%;
|
|
98
|
-
border: 1px solid #d7d7d7;
|
|
99
|
-
background: #fff;
|
|
100
|
-
margin-right: 12px;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
.radio-button {
|
|
104
|
-
box-sizing: border-box;
|
|
105
|
-
border-radius: 100%;
|
|
106
|
-
width: 18px;
|
|
107
|
-
height: 18px;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
.label-wrap {
|
|
111
|
-
display: inline-block;
|
|
112
|
-
line-height: 19px;
|
|
113
|
-
}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ChangeDetectionStrategy,
|
|
3
|
-
Component,
|
|
4
|
-
EventEmitter,
|
|
5
|
-
forwardRef,
|
|
6
|
-
Input,
|
|
7
|
-
OnInit,
|
|
8
|
-
Output,
|
|
9
|
-
} from '@angular/core';
|
|
10
|
-
import { CommonModule } from '@angular/common';
|
|
11
|
-
import { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
|
|
12
|
-
|
|
13
|
-
@Component({
|
|
14
|
-
selector: 'dd-lib-radio',
|
|
15
|
-
standalone: true,
|
|
16
|
-
imports: [CommonModule, FormsModule, ReactiveFormsModule],
|
|
17
|
-
templateUrl: './lib-radio.component.html',
|
|
18
|
-
styleUrl: './lib-radio.component.scss',
|
|
19
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
20
|
-
providers: [
|
|
21
|
-
{
|
|
22
|
-
provide: NG_VALUE_ACCESSOR,
|
|
23
|
-
useExisting: forwardRef(() => LibRadioComponent),
|
|
24
|
-
multi: true,
|
|
25
|
-
},
|
|
26
|
-
],
|
|
27
|
-
})
|
|
28
|
-
export class LibRadioComponent implements OnInit, ControlValueAccessor {
|
|
29
|
-
public static idCounter = 1;
|
|
30
|
-
|
|
31
|
-
@Input() public radioId: string | undefined; // input ID: если не указан, генерируется уникальный ID
|
|
32
|
-
@Input() public disabled = false; // состояние: по умолчанию - активное
|
|
33
|
-
@Input() public required = false;
|
|
34
|
-
@Input() public name: string | undefined;
|
|
35
|
-
@Input() public value: any;
|
|
36
|
-
@Input() public checked = false;
|
|
37
|
-
|
|
38
|
-
@Output() public changed = new EventEmitter();
|
|
39
|
-
|
|
40
|
-
public focused: boolean | undefined;
|
|
41
|
-
public onTouchedCallback: (() => void) | undefined;
|
|
42
|
-
private modelInitialization = true;
|
|
43
|
-
|
|
44
|
-
public ngOnInit() {
|
|
45
|
-
if (!this.radioId) {
|
|
46
|
-
this.radioId = 'dd-radio-' + LibRadioComponent.idCounter++;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
public onSelected(target: EventTarget | null) {
|
|
51
|
-
this.checked = (target as HTMLInputElement)?.checked;
|
|
52
|
-
this.propagateChange(this.value);
|
|
53
|
-
this.changed.emit(this.value);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
public registerOnChange(fn: any): void {
|
|
57
|
-
this.propagateChange = fn;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
public setDisabledState(disabled: boolean): void {
|
|
61
|
-
this.disabled = disabled;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
public registerOnTouched(fn: any): void {
|
|
65
|
-
this.onTouchedCallback = fn;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
public writeValue(value: any): void {
|
|
69
|
-
const isInitialization = this.modelInitialization;
|
|
70
|
-
this.modelInitialization = false;
|
|
71
|
-
if (this.checked !== undefined && value === undefined && isInitialization) {
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
this.checked = value === this.value;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
private propagateChange(_value: any) {}
|
|
78
|
-
}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
<div class="lib-search-input">
|
|
2
|
-
<label [for]="id" class="lib-search-input__title">
|
|
3
|
-
{{ label }}
|
|
4
|
-
@if (required) {
|
|
5
|
-
<dd-lib-svg-icon icon="error_hint"></dd-lib-svg-icon>
|
|
6
|
-
}
|
|
7
|
-
</label>
|
|
8
|
-
<div class="pos-relative">
|
|
9
|
-
<dd-lib-svg-icon (click)="forceChange()" class="search-icon" icon="search"></dd-lib-svg-icon>
|
|
10
|
-
<input
|
|
11
|
-
#searchInput
|
|
12
|
-
(keyup)="keyUp.next($event)"
|
|
13
|
-
(keyup.enter)="forceChange()"
|
|
14
|
-
[(ngModel)]="value"
|
|
15
|
-
[attr.autocomplete]="autocomplete === undefined ? null : autocomplete"
|
|
16
|
-
[attr.id]="id ? id : null"
|
|
17
|
-
[attr.maxlength]="maxlength"
|
|
18
|
-
[attr.minlength]="minlength"
|
|
19
|
-
[attr.name]="name"
|
|
20
|
-
[attr.placeholder]="placeholder"
|
|
21
|
-
[attr.tabIndex]="tabIndex"
|
|
22
|
-
[attr.type]="type || 'text'"
|
|
23
|
-
[class.focused]="focused"
|
|
24
|
-
[class.round]="styleInput === 'round'"
|
|
25
|
-
[class.white]="inputStyle === 'white'"
|
|
26
|
-
[disabled]="disabled"
|
|
27
|
-
[readOnly]="readOnly"
|
|
28
|
-
class="search-input" />
|
|
29
|
-
<dd-lib-svg-icon
|
|
30
|
-
(click)="onClear()"
|
|
31
|
-
[id]="idClose" [style.display]="value?.length ? 'block' : 'none'"
|
|
32
|
-
class="clear-icon" icon="clear"></dd-lib-svg-icon>
|
|
33
|
-
</div>
|
|
34
|
-
|
|
35
|
-
@if (searchData?.length) {
|
|
36
|
-
<dd-lib-card>
|
|
37
|
-
@for (item of searchData; track item) {
|
|
38
|
-
<div (click)="onClickSearchItem(item)" class="search-result">
|
|
39
|
-
@if (getTitle(item); as title) {
|
|
40
|
-
<div [innerHTML]="title | highlight: value | safe: 'html'" class="search-result__title"></div>
|
|
41
|
-
} @if (getDesc(item); as desc) {
|
|
42
|
-
<div [innerHTML]="desc | highlight: value | safe: 'html'" class="search-result__desc"></div>
|
|
43
|
-
}
|
|
44
|
-
</div>
|
|
45
|
-
}
|
|
46
|
-
</dd-lib-card>
|
|
47
|
-
}
|
|
48
|
-
</div>
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
:host {
|
|
2
|
-
display: block;
|
|
3
|
-
}
|
|
4
|
-
.lib-search-input {
|
|
5
|
-
position: relative;
|
|
6
|
-
|
|
7
|
-
&__title {
|
|
8
|
-
margin-bottom: 4px;
|
|
9
|
-
font-size: 14px;
|
|
10
|
-
line-height: 24px;
|
|
11
|
-
display: flex;
|
|
12
|
-
align-items: flex-start;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
input {
|
|
16
|
-
width: 100%;
|
|
17
|
-
height: 48px;
|
|
18
|
-
padding: 16px 16px 15px 44px;
|
|
19
|
-
border-radius: 8px;
|
|
20
|
-
border: none;
|
|
21
|
-
background-color: var(--input-gray-bgc);
|
|
22
|
-
|
|
23
|
-
&.white {
|
|
24
|
-
background-color: var(--white-color);
|
|
25
|
-
border: 1px solid var(--primary-gray-color);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
.round {
|
|
30
|
-
border-radius: 24px;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.search-icon {
|
|
34
|
-
position: absolute;
|
|
35
|
-
left: 16px;
|
|
36
|
-
top: 14px;
|
|
37
|
-
cursor: pointer;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
.clear-icon {
|
|
41
|
-
position: absolute;
|
|
42
|
-
right: 16px;
|
|
43
|
-
top: 14px;
|
|
44
|
-
cursor: pointer;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
.search-result {
|
|
48
|
-
font-size: 16px;
|
|
49
|
-
font-weight: 400;
|
|
50
|
-
line-height: 24px;
|
|
51
|
-
letter-spacing: 0;
|
|
52
|
-
text-align: left;
|
|
53
|
-
cursor: pointer;
|
|
54
|
-
|
|
55
|
-
&:hover {
|
|
56
|
-
opacity: 0.8;
|
|
57
|
-
}
|
|
58
|
-
&:last-child {
|
|
59
|
-
.search-result__desc {
|
|
60
|
-
border: none;
|
|
61
|
-
padding-bottom: 0;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
&__title {
|
|
66
|
-
color: var(--second-gray-color);
|
|
67
|
-
margin: 24px 0 2px 0;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
&__desc {
|
|
71
|
-
padding-bottom: 16px;
|
|
72
|
-
border-bottom: 1px solid var(--gray-color-200);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
dd-lib-card {
|
|
77
|
-
position: absolute;
|
|
78
|
-
display: block;
|
|
79
|
-
top: 76px;
|
|
80
|
-
z-index: 100;
|
|
81
|
-
width: 100%;
|
|
82
|
-
max-height: 400px;
|
|
83
|
-
box-shadow: var(--main-card-shadow);
|
|
84
|
-
overflow: auto;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ChangeDetectionStrategy,
|
|
3
|
-
ChangeDetectorRef,
|
|
4
|
-
Component,
|
|
5
|
-
EventEmitter,
|
|
6
|
-
Input,
|
|
7
|
-
OnInit,
|
|
8
|
-
Output,
|
|
9
|
-
} from '@angular/core';
|
|
10
|
-
import {FormsModule} from '@angular/forms';
|
|
11
|
-
import {NgOptimizedImage} from '@angular/common';
|
|
12
|
-
import {LibCommonInputTextComponent} from '../common/lib-common-input-text';
|
|
13
|
-
import {LibCardComponent} from '../lib-card/lib-card.component';
|
|
14
|
-
import {of, Subject} from 'rxjs';
|
|
15
|
-
import {debounceTime, delay, map, mergeMap, takeUntil} from 'rxjs/operators';
|
|
16
|
-
import {DestroyService, HighlightPipe, SafePipe} from "../core";
|
|
17
|
-
import {LibSvgIconComponent} from "../lib-svg-icon/lib-svg-icon.component";
|
|
18
|
-
|
|
19
|
-
@Component({
|
|
20
|
-
selector: 'dd-lib-search-input',
|
|
21
|
-
standalone: true,
|
|
22
|
-
imports: [FormsModule, NgOptimizedImage, LibCardComponent, HighlightPipe, SafePipe, LibSvgIconComponent],
|
|
23
|
-
templateUrl: './lib-search-input.component.html',
|
|
24
|
-
styleUrl: './lib-search-input.component.scss',
|
|
25
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
26
|
-
providers: [DestroyService],
|
|
27
|
-
})
|
|
28
|
-
export class LibSearchInputComponent<T> extends LibCommonInputTextComponent implements OnInit {
|
|
29
|
-
@Input() public keyTitle = 'title';
|
|
30
|
-
@Input() public keyDesc = 'description';
|
|
31
|
-
@Input() public styleInput: 'round' | 'standard' = 'standard';
|
|
32
|
-
@Input() public inputStyle: 'white' | 'gray' = 'gray';
|
|
33
|
-
@Input() public searchData: T[] | null | undefined;
|
|
34
|
-
@Input() public debounceTime = 100;
|
|
35
|
-
@Input() public delay = 0;
|
|
36
|
-
@Input() public idClose: string | undefined;
|
|
37
|
-
@Output() public keyupEvent = new EventEmitter<string>();
|
|
38
|
-
@Output() public selectedItem = new EventEmitter();
|
|
39
|
-
public keyUp = new Subject<KeyboardEvent>();
|
|
40
|
-
|
|
41
|
-
constructor(
|
|
42
|
-
private destroy$: DestroyService,
|
|
43
|
-
changeDetection: ChangeDetectorRef,
|
|
44
|
-
private cdr: ChangeDetectorRef,
|
|
45
|
-
) {
|
|
46
|
-
super(changeDetection);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
public ngOnInit(): void {
|
|
50
|
-
if (this.commitOnInput) {
|
|
51
|
-
this.keyUp
|
|
52
|
-
.pipe(
|
|
53
|
-
map(event => (event.target as HTMLInputElement)?.value),
|
|
54
|
-
debounceTime(this.debounceTime),
|
|
55
|
-
// distinctUntilChanged(), надо ли?
|
|
56
|
-
mergeMap(search => of(search).pipe(delay(this.delay))),
|
|
57
|
-
takeUntil(this.destroy$),
|
|
58
|
-
)
|
|
59
|
-
.subscribe(str => {
|
|
60
|
-
this.keyupEvent.emit(str);
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
public override forceChange(): void {
|
|
66
|
-
if (!this.commitOnInput) {
|
|
67
|
-
this.keyupEvent.emit(this.value);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
public onClear(noEmit?: boolean): void {
|
|
72
|
-
this.value = '';
|
|
73
|
-
if (!noEmit) {
|
|
74
|
-
this.cleared.emit();
|
|
75
|
-
this.keyupEvent.emit('');
|
|
76
|
-
}
|
|
77
|
-
this.inputSearchElement?.nativeElement.focus();
|
|
78
|
-
this.cdr.detectChanges();
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
public onClickSearchItem(item: T): void {
|
|
82
|
-
this.onClear();
|
|
83
|
-
this.selectedItem.emit(item);
|
|
84
|
-
this.value = this.getTitle(item);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
public getTitle(item: T): string {
|
|
88
|
-
return item[this.keyTitle as keyof typeof item] as string;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
public getDesc(item: T): string {
|
|
92
|
-
return item[this.keyDesc as keyof typeof item] as string;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
<div class="lib-select" id="lib-select-{{ selectId }}">
|
|
2
|
-
<label [for]="id" class="lib-select__title">
|
|
3
|
-
{{ label }}
|
|
4
|
-
@if (required) {
|
|
5
|
-
<dd-lib-svg-icon icon="error_hint"></dd-lib-svg-icon>
|
|
6
|
-
}
|
|
7
|
-
</label>
|
|
8
|
-
|
|
9
|
-
<div class="pos-relative">
|
|
10
|
-
<input
|
|
11
|
-
#select
|
|
12
|
-
(change)="handleChange()"
|
|
13
|
-
(click)="notifyFocusEvent($event)"
|
|
14
|
-
(input)="handleInput($event)"
|
|
15
|
-
[(ngModel)]="inputValue"
|
|
16
|
-
[attr.id]="selectId"
|
|
17
|
-
[attr.name]="name"
|
|
18
|
-
[attr.placeholder]="placeholder"
|
|
19
|
-
[attr.tabIndex]="tabIndex"
|
|
20
|
-
[attr.type]="'text'"
|
|
21
|
-
[class.focused]="focused"
|
|
22
|
-
[class.invalid]="invalid"
|
|
23
|
-
[disabled]="disabled"
|
|
24
|
-
[readOnly]="readOnly"
|
|
25
|
-
[title]="inputValue"
|
|
26
|
-
class="text-select" />
|
|
27
|
-
<!-- (blur)="notifyFocusEvent($event)"-->
|
|
28
|
-
@if (!checkedItem) {
|
|
29
|
-
<dd-lib-svg-icon
|
|
30
|
-
(click)="notifyFocusEvent($event)"
|
|
31
|
-
[class.black-svg]="isShownList"
|
|
32
|
-
[class.disabled]="disabled"
|
|
33
|
-
[class.gray-svg]="!isShownList"
|
|
34
|
-
[class.up]="isShownList"
|
|
35
|
-
id="chevron-{{ selectId }}" class="chevron" icon="down_chevron"></dd-lib-svg-icon>
|
|
36
|
-
|
|
37
|
-
} @else {
|
|
38
|
-
<dd-lib-svg-icon
|
|
39
|
-
(click)="selectItem(checkedItem)"
|
|
40
|
-
class="clear"
|
|
41
|
-
id="chevron-{{ selectId }}" icon="clear"></dd-lib-svg-icon>
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
</div>
|
|
45
|
-
|
|
46
|
-
@if (errorText && invalid) {
|
|
47
|
-
<div class="lib-select__error">{{ errorText }}</div>
|
|
48
|
-
} @if (isShownList) {
|
|
49
|
-
<div
|
|
50
|
-
(ddClickOutside)="notifyFocusEvent($event)"
|
|
51
|
-
[elements]="['lib-select-' + selectId, 'chevron' + selectId]"
|
|
52
|
-
class="select-list-wrapper">
|
|
53
|
-
@if (data?.length) { @for (item of data | filterByKey: filterList.bind(this); track item) {
|
|
54
|
-
<div
|
|
55
|
-
(click)="selectItem(item)"
|
|
56
|
-
[class.active]="checkedItem?.[keyValue!] === item[keyValue!] || checkedItem === item"
|
|
57
|
-
class="select-data">
|
|
58
|
-
@if (!keyDesc && !keyTitle) {
|
|
59
|
-
<div [innerHTML]="item | highlight: inputValue | safe: 'html'" class="select-data__title"></div>
|
|
60
|
-
} @if (keyTitle) {
|
|
61
|
-
<div
|
|
62
|
-
[innerHTML]="item[keyTitle!] | highlight: inputValue | safe: 'html'"
|
|
63
|
-
class="select-data__title"></div>
|
|
64
|
-
} @if (keyDesc) {
|
|
65
|
-
<div
|
|
66
|
-
[innerHTML]="item[keyDesc!] | highlight: inputValue | safe: 'html'"
|
|
67
|
-
[title]="item[keyDesc]"
|
|
68
|
-
class="select-data__desc"></div>
|
|
69
|
-
} @if (checkedItem?.[keyValue!] === item?.[keyValue!] || checkedItem === item) {
|
|
70
|
-
<dd-lib-svg-icon
|
|
71
|
-
(click)="selectItem(checkedItem)"
|
|
72
|
-
class="checked"
|
|
73
|
-
id="chevron-{{ selectId }}" icon="check_green"></dd-lib-svg-icon>
|
|
74
|
-
}
|
|
75
|
-
</div>
|
|
76
|
-
} } @else {
|
|
77
|
-
<div class="select-loader">
|
|
78
|
-
<dd-lib-loader></dd-lib-loader>
|
|
79
|
-
</div>
|
|
80
|
-
}
|
|
81
|
-
</div>
|
|
82
|
-
}
|
|
83
|
-
</div>
|