@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.
Files changed (227) hide show
  1. package/esm2022/lib/common/lib-common-button.mjs +62 -0
  2. package/esm2022/lib/common/lib-common-input-text.mjs +172 -0
  3. package/esm2022/lib/core/dialog/dialog-config.mjs +15 -0
  4. package/esm2022/lib/core/dialog/dialog-container.component.mjs +40 -0
  5. package/esm2022/lib/core/dialog/dialog-ref.mjs +19 -0
  6. package/esm2022/lib/core/dialog/dialog.service.mjs +106 -0
  7. package/esm2022/lib/core/directives/auto-height.directive.mjs +36 -0
  8. package/esm2022/lib/core/directives/click-outside.directive.mjs +42 -0
  9. package/esm2022/lib/core/directives/counter.directive.mjs +64 -0
  10. package/esm2022/lib/core/directives/declension.directive.mjs +40 -0
  11. package/esm2022/lib/core/directives/resize-textarea.directive.mjs +26 -0
  12. package/esm2022/lib/core/directives/triangle.directive.mjs +75 -0
  13. package/esm2022/lib/core/index.mjs +26 -0
  14. package/esm2022/lib/core/pipes/filter-tabs.pipe.mjs +31 -0
  15. package/esm2022/lib/core/pipes/filter.pipe.mjs +49 -0
  16. package/esm2022/lib/core/pipes/highlight.pipe.mjs +23 -0
  17. package/esm2022/lib/core/pipes/reverse.pipe.mjs +17 -0
  18. package/esm2022/lib/core/pipes/safe.pipe.mjs +34 -0
  19. package/esm2022/lib/core/services/date.service.mjs +113 -0
  20. package/esm2022/lib/core/services/destroy.service.mjs +15 -0
  21. package/esm2022/lib/core/services/fetcher.service.mjs +92 -0
  22. package/esm2022/lib/core/services/interceptors.service.mjs +27 -0
  23. package/esm2022/lib/core/services/svg-icons.service.mjs +26 -0
  24. package/esm2022/lib/core/services/theme-constructor.service.mjs +64 -0
  25. package/esm2022/lib/core/services/validators.service.mjs +73 -0
  26. package/esm2022/lib/core/tools.mjs +128 -0
  27. package/esm2022/lib/core/tooltip/tooltip.component.mjs +27 -0
  28. package/esm2022/lib/core/tooltip/tooltip.directive.mjs +137 -0
  29. package/esm2022/lib/lib-accordion/lib-accordion.component.mjs +15 -0
  30. package/esm2022/lib/lib-back-button/lib-back-button.component.mjs +37 -0
  31. package/esm2022/lib/lib-button/lib-button.component.mjs +30 -0
  32. package/esm2022/lib/lib-calendar/lib-calendar.component.mjs +222 -0
  33. package/esm2022/lib/lib-card/lib-card.component.mjs +34 -0
  34. package/esm2022/lib/lib-checkbox/lib-checkbox.component.mjs +66 -0
  35. package/esm2022/lib/lib-comment-input/lib-comment-input.component.mjs +20 -0
  36. package/esm2022/lib/lib-file-upload/lib-file-upload.component.mjs +34 -0
  37. package/esm2022/lib/lib-filter-button/lib-filter-button.component.mjs +42 -0
  38. package/esm2022/lib/lib-image-loader/lib-image-loader.component.mjs +14 -0
  39. package/esm2022/lib/lib-input/lib-input.component.mjs +55 -0
  40. package/esm2022/lib/lib-loader/lib-loader.component.mjs +16 -0
  41. package/esm2022/lib/lib-period/lib-period.component.mjs +114 -0
  42. package/esm2022/lib/lib-radio/lib-radio.component.mjs +76 -0
  43. package/esm2022/lib/lib-search-input/lib-search-input.component.mjs +91 -0
  44. package/esm2022/lib/lib-select/lib-select.component.mjs +137 -0
  45. package/esm2022/lib/lib-skeleton/lib-skeleton.component.mjs +45 -0
  46. package/esm2022/lib/lib-sort/lib-sort.component.mjs +44 -0
  47. package/esm2022/lib/lib-step/lib-step.component.mjs +19 -0
  48. package/esm2022/lib/lib-svg/lib-svg.component.mjs +75 -0
  49. package/esm2022/lib/lib-svg-icon/lib-svg-icon.component.mjs +55 -0
  50. package/esm2022/lib/lib-tabs-fragment/lib-tabs-fragment.component.mjs +79 -0
  51. package/esm2022/lib/lib-textarea/lib-textarea.component.mjs +50 -0
  52. package/esm2022/lib/toast/toast-base/toast-base.component.mjs +29 -0
  53. package/esm2022/lib/toast/toast-placeholder/toast-placeholder.component.mjs +29 -0
  54. package/esm2022/lib/toast/toast.service.mjs +124 -0
  55. package/esm2022/lib/utils/decorators.mjs +102 -0
  56. package/esm2022/morozeckiy-dd-lib.mjs +5 -0
  57. package/esm2022/public-api.mjs +35 -0
  58. package/fesm2022/morozeckiy-dd-lib.mjs +3004 -0
  59. package/fesm2022/morozeckiy-dd-lib.mjs.map +1 -0
  60. package/index.d.ts +5 -0
  61. package/lib/common/lib-common-button.d.ts +20 -0
  62. package/lib/common/lib-common-input-text.d.ts +53 -0
  63. package/lib/core/dialog/dialog-config.d.ts +14 -0
  64. package/lib/core/dialog/dialog-container.component.d.ts +18 -0
  65. package/lib/core/dialog/dialog-ref.d.ts +18 -0
  66. package/lib/core/dialog/dialog.service.d.ts +28 -0
  67. package/lib/core/directives/auto-height.directive.d.ts +11 -0
  68. package/lib/core/directives/click-outside.directive.d.ts +11 -0
  69. package/lib/core/directives/counter.directive.d.ts +11 -0
  70. package/lib/core/directives/declension.directive.d.ts +13 -0
  71. package/lib/core/directives/resize-textarea.directive.d.ts +10 -0
  72. package/lib/core/directives/triangle.directive.d.ts +16 -0
  73. package/lib/core/index.d.ts +20 -0
  74. package/lib/core/pipes/filter-tabs.pipe.d.ts +7 -0
  75. package/lib/core/pipes/filter.pipe.d.ts +12 -0
  76. package/lib/core/pipes/highlight.pipe.d.ts +7 -0
  77. package/lib/core/pipes/reverse.pipe.d.ts +7 -0
  78. package/lib/core/pipes/safe.pipe.d.ts +10 -0
  79. package/lib/core/services/date.service.d.ts +41 -0
  80. package/lib/core/services/destroy.service.d.ts +8 -0
  81. package/lib/core/services/fetcher.service.d.ts +29 -0
  82. package/lib/core/services/interceptors.service.d.ts +12 -0
  83. package/lib/core/services/svg-icons.service.d.ts +9 -0
  84. package/lib/core/services/theme-constructor.service.d.ts +27 -0
  85. package/lib/core/services/validators.service.d.ts +18 -0
  86. package/lib/core/tools.d.ts +16 -0
  87. package/lib/core/tooltip/tooltip.component.d.ts +12 -0
  88. package/lib/core/tooltip/tooltip.directive.d.ts +22 -0
  89. package/lib/lib-accordion/lib-accordion.component.d.ts +8 -0
  90. package/lib/lib-back-button/lib-back-button.component.d.ts +13 -0
  91. package/lib/lib-button/lib-button.component.d.ts +10 -0
  92. package/lib/lib-calendar/lib-calendar.component.d.ts +76 -0
  93. package/lib/lib-card/lib-card.component.d.ts +16 -0
  94. package/lib/lib-checkbox/lib-checkbox.component.d.ts +23 -0
  95. package/lib/lib-comment-input/lib-comment-input.component.d.ts +8 -0
  96. package/lib/lib-file-upload/lib-file-upload.component.d.ts +12 -0
  97. package/lib/lib-filter-button/lib-filter-button.component.d.ts +13 -0
  98. package/lib/lib-image-loader/lib-image-loader.component.d.ts +6 -0
  99. package/lib/lib-input/lib-input.component.d.ts +13 -0
  100. package/lib/lib-loader/lib-loader.component.d.ts +6 -0
  101. package/lib/lib-period/lib-period.component.d.ts +41 -0
  102. package/lib/lib-radio/lib-radio.component.d.ts +25 -0
  103. package/lib/lib-search-input/lib-search-input.component.d.ts +29 -0
  104. package/lib/lib-select/lib-select.component.d.ts +30 -0
  105. package/lib/lib-skeleton/lib-skeleton.component.d.ts +16 -0
  106. package/lib/lib-sort/lib-sort.component.d.ts +18 -0
  107. package/lib/lib-step/lib-step.component.d.ts +7 -0
  108. package/{src/lib/lib-svg/lib-svg.component.ts → lib/lib-svg/lib-svg.component.d.ts} +38 -66
  109. package/lib/lib-svg-icon/lib-svg-icon.component.d.ts +18 -0
  110. package/lib/lib-tabs-fragment/lib-tabs-fragment.component.d.ts +29 -0
  111. package/lib/lib-textarea/lib-textarea.component.d.ts +13 -0
  112. package/lib/toast/toast-base/toast-base.component.d.ts +21 -0
  113. package/lib/toast/toast-placeholder/toast-placeholder.component.d.ts +12 -0
  114. package/lib/toast/toast.service.d.ts +35 -0
  115. package/lib/utils/decorators.d.ts +4 -0
  116. package/package.json +16 -3
  117. package/public-api.d.ts +30 -0
  118. package/ekgip-dd-lib-0.0.1.tgz +0 -0
  119. package/ng-package.json +0 -8
  120. package/src/lib/common/lib-common-button.ts +0 -34
  121. package/src/lib/common/lib-common-input-text.ts +0 -154
  122. package/src/lib/core/dialog/dialog-config.ts +0 -19
  123. package/src/lib/core/dialog/dialog-container.component.ts +0 -38
  124. package/src/lib/core/dialog/dialog-ref.ts +0 -28
  125. package/src/lib/core/dialog/dialog.service.ts +0 -144
  126. package/src/lib/core/directives/auto-height.directive.ts +0 -29
  127. package/src/lib/core/directives/click-outside.directive.ts +0 -33
  128. package/src/lib/core/directives/counter.directive.ts +0 -54
  129. package/src/lib/core/directives/declension.directive.ts +0 -29
  130. package/src/lib/core/directives/resize-textarea.directive.ts +0 -16
  131. package/src/lib/core/directives/triangle.directive.ts +0 -56
  132. package/src/lib/core/index.ts +0 -27
  133. package/src/lib/core/pipes/filter-tabs.pipe.ts +0 -25
  134. package/src/lib/core/pipes/filter.pipe.ts +0 -36
  135. package/src/lib/core/pipes/highlight.pipe.ts +0 -17
  136. package/src/lib/core/pipes/reverse.pipe.ts +0 -11
  137. package/src/lib/core/pipes/safe.pipe.ts +0 -37
  138. package/src/lib/core/services/date.service.ts +0 -153
  139. package/src/lib/core/services/destroy.service.ts +0 -10
  140. package/src/lib/core/services/fetcher.service.ts +0 -109
  141. package/src/lib/core/services/interceptors.service.ts +0 -26
  142. package/src/lib/core/services/svg-icons.service.ts +0 -25
  143. package/src/lib/core/services/theme-constructor.service.ts +0 -68
  144. package/src/lib/core/services/validators.service.ts +0 -73
  145. package/src/lib/core/tools.ts +0 -159
  146. package/src/lib/core/tooltip/tooltip.component.html +0 -10
  147. package/src/lib/core/tooltip/tooltip.component.scss +0 -59
  148. package/src/lib/core/tooltip/tooltip.component.ts +0 -27
  149. package/src/lib/core/tooltip/tooltip.directive.ts +0 -137
  150. package/src/lib/core/utils.ts +0 -28
  151. package/src/lib/lib-accordion/lib-accordion.component.html +0 -15
  152. package/src/lib/lib-accordion/lib-accordion.component.scss +0 -23
  153. package/src/lib/lib-accordion/lib-accordion.component.ts +0 -17
  154. package/src/lib/lib-back-button/lib-back-button.component.html +0 -4
  155. package/src/lib/lib-back-button/lib-back-button.component.scss +0 -3
  156. package/src/lib/lib-back-button/lib-back-button.component.ts +0 -31
  157. package/src/lib/lib-button/lib-button.component.html +0 -30
  158. package/src/lib/lib-button/lib-button.component.scss +0 -89
  159. package/src/lib/lib-button/lib-button.component.ts +0 -33
  160. package/src/lib/lib-calendar/lib-calendar.component.html +0 -64
  161. package/src/lib/lib-calendar/lib-calendar.component.scss +0 -88
  162. package/src/lib/lib-calendar/lib-calendar.component.ts +0 -227
  163. package/src/lib/lib-card/lib-card.component.html +0 -23
  164. package/src/lib/lib-card/lib-card.component.scss +0 -64
  165. package/src/lib/lib-card/lib-card.component.ts +0 -32
  166. package/src/lib/lib-checkbox/lib-checkbox.component.html +0 -15
  167. package/src/lib/lib-checkbox/lib-checkbox.component.scss +0 -80
  168. package/src/lib/lib-checkbox/lib-checkbox.component.ts +0 -67
  169. package/src/lib/lib-comment-input/lib-comment-input.component.html +0 -32
  170. package/src/lib/lib-comment-input/lib-comment-input.component.scss +0 -28
  171. package/src/lib/lib-comment-input/lib-comment-input.component.ts +0 -20
  172. package/src/lib/lib-file-upload/lib-file-upload.component.html +0 -14
  173. package/src/lib/lib-file-upload/lib-file-upload.component.scss +0 -3
  174. package/src/lib/lib-file-upload/lib-file-upload.component.ts +0 -26
  175. package/src/lib/lib-filter-button/lib-filter-button.component.html +0 -46
  176. package/src/lib/lib-filter-button/lib-filter-button.component.scss +0 -62
  177. package/src/lib/lib-filter-button/lib-filter-button.component.ts +0 -45
  178. package/src/lib/lib-image-loader/lib-image-loader.component.html +0 -17
  179. package/src/lib/lib-image-loader/lib-image-loader.component.scss +0 -6
  180. package/src/lib/lib-image-loader/lib-image-loader.component.ts +0 -16
  181. package/src/lib/lib-input/lib-input.component.html +0 -32
  182. package/src/lib/lib-input/lib-input.component.scss +0 -72
  183. package/src/lib/lib-input/lib-input.component.ts +0 -62
  184. package/src/lib/lib-loader/lib-loader.component.html +0 -29
  185. package/src/lib/lib-loader/lib-loader.component.scss +0 -26
  186. package/src/lib/lib-loader/lib-loader.component.ts +0 -13
  187. package/src/lib/lib-period/lib-period.component.html +0 -41
  188. package/src/lib/lib-period/lib-period.component.scss +0 -77
  189. package/src/lib/lib-period/lib-period.component.ts +0 -131
  190. package/src/lib/lib-radio/lib-radio.component.html +0 -22
  191. package/src/lib/lib-radio/lib-radio.component.scss +0 -113
  192. package/src/lib/lib-radio/lib-radio.component.ts +0 -78
  193. package/src/lib/lib-search-input/lib-search-input.component.html +0 -48
  194. package/src/lib/lib-search-input/lib-search-input.component.scss +0 -86
  195. package/src/lib/lib-search-input/lib-search-input.component.ts +0 -94
  196. package/src/lib/lib-select/lib-select.component.html +0 -83
  197. package/src/lib/lib-select/lib-select.component.scss +0 -130
  198. package/src/lib/lib-select/lib-select.component.ts +0 -152
  199. package/src/lib/lib-skeleton/lib-skeleton.component.html +0 -11
  200. package/src/lib/lib-skeleton/lib-skeleton.component.scss +0 -36
  201. package/src/lib/lib-skeleton/lib-skeleton.component.ts +0 -41
  202. package/src/lib/lib-sort/lib-sort.component.html +0 -21
  203. package/src/lib/lib-sort/lib-sort.component.scss +0 -21
  204. package/src/lib/lib-sort/lib-sort.component.ts +0 -52
  205. package/src/lib/lib-step/lib-step.component.html +0 -4
  206. package/src/lib/lib-step/lib-step.component.scss +0 -23
  207. package/src/lib/lib-step/lib-step.component.ts +0 -14
  208. package/src/lib/lib-svg/lib-svg.component.html +0 -15
  209. package/src/lib/lib-svg/lib-svg.component.scss +0 -81
  210. package/src/lib/lib-svg-icon/lib-svg-icon.component.css +0 -0
  211. package/src/lib/lib-svg-icon/lib-svg-icon.component.ts +0 -58
  212. package/src/lib/lib-tabs-fragment/lib-tabs-fragment.component.html +0 -12
  213. package/src/lib/lib-tabs-fragment/lib-tabs-fragment.component.scss +0 -19
  214. package/src/lib/lib-tabs-fragment/lib-tabs-fragment.component.ts +0 -88
  215. package/src/lib/lib-textarea/lib-textarea.component.html +0 -37
  216. package/src/lib/lib-textarea/lib-textarea.component.scss +0 -77
  217. package/src/lib/lib-textarea/lib-textarea.component.ts +0 -49
  218. package/src/lib/toast/toast-base/toast-base.component.html +0 -7
  219. package/src/lib/toast/toast-base/toast-base.component.scss +0 -44
  220. package/src/lib/toast/toast-base/toast-base.component.ts +0 -38
  221. package/src/lib/toast/toast-placeholder/toast-placeholder.component.ts +0 -20
  222. package/src/lib/toast/toast.service.ts +0 -130
  223. package/src/lib/utils/decorators.ts +0 -124
  224. package/src/public-api.ts +0 -35
  225. package/tsconfig.lib.json +0 -14
  226. package/tsconfig.lib.prod.json +0 -10
  227. package/tsconfig.spec.json +0 -14
@@ -1,19 +0,0 @@
1
- .tabs-filter-types {
2
- display: flex;
3
- align-items: center;
4
-
5
- &__type {
6
- padding: 16px 8px;
7
- border-bottom: 1px solid var(--gray-color-200);
8
- color: var(--second-gray-color);
9
- cursor: pointer;
10
- transition: 0.5s;
11
-
12
- &:hover,
13
- &.active {
14
- border-color: var(--primary-green-color);
15
- box-shadow: 0px -1px 0px 0px var(--primary-green-color) inset;
16
- color: var(--primary-green-color);
17
- }
18
- }
19
- }
@@ -1,88 +0,0 @@
1
- import {
2
- ChangeDetectionStrategy,
3
- ChangeDetectorRef,
4
- Component,
5
- EventEmitter,
6
- Input,
7
- OnInit,
8
- Output,
9
- } from '@angular/core';
10
- import { ActivatedRoute, Router } from '@angular/router';
11
-
12
- export class ITab {
13
- public title: string;
14
- public id: null | number;
15
- public fragment: string;
16
- public name?: string;
17
- public welcomeText?: string;
18
- public type?: 1 | 2;
19
-
20
- constructor(body: any) {
21
- this.id = body.id;
22
- this.title = body.namePage;
23
- this.name = body.name;
24
- this.fragment = body.address;
25
- this.welcomeText = body.welcomeText;
26
- this.type = body.type;
27
- for (const key in body) {
28
- if (key) {
29
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
30
- // @ts-ignore
31
- this[key] = body[key];
32
- }
33
- }
34
- }
35
- }
36
-
37
- @Component({
38
- selector: 'dd-lib-tabs-fragment',
39
- standalone: true,
40
- imports: [],
41
- templateUrl: './lib-tabs-fragment.component.html',
42
- styleUrl: './lib-tabs-fragment.component.scss',
43
- changeDetection: ChangeDetectionStrategy.OnPush,
44
- })
45
- export class LibTabsFragmentComponent implements OnInit {
46
- @Input() public rout = location.pathname;
47
- @Input() public tabs: ITab[] | undefined;
48
- @Input() public tabsFragment: string[] | undefined;
49
- @Input() public needInitEvent: boolean | undefined;
50
- @Output() public setActiveTab = new EventEmitter<null | number>();
51
- public activeFragment: number | null | undefined;
52
-
53
- constructor(private route: ActivatedRoute, private router: Router, private cdr: ChangeDetectorRef) {}
54
-
55
- public ngOnInit(): void {
56
- if (this.tabs) {
57
- this.tabsFragment = this.tabs.map(t => t.fragment);
58
- this.getFragment();
59
- }
60
- }
61
-
62
- public checkActiveTab(tab?: ITab) {
63
- if (tab) {
64
- this.activeFragment = tab.id;
65
- if (this.rout) {
66
- this.router.navigate([this.rout], { fragment: tab.fragment });
67
- }
68
- this.setActiveTab.emit(this.activeFragment);
69
- } else {
70
- this.activeFragment = undefined;
71
- this.router.navigate([this.rout], { fragment: undefined });
72
- }
73
- this.cdr.detectChanges();
74
- }
75
-
76
- private getFragment(): void {
77
- const activeFragment = this.route.snapshot.fragment as string;
78
- this.activeFragment = this.tabs?.[0]?.id || 0;
79
- if (this.tabsFragment?.includes(activeFragment)) {
80
- this.activeFragment = this.tabs?.find(f => f.fragment === activeFragment)?.id;
81
- if (this.needInitEvent) {
82
- this.setActiveTab.emit(this.activeFragment);
83
- }
84
- } else if (this.needInitEvent) {
85
- this.setActiveTab.emit(this.activeFragment);
86
- }
87
- }
88
- }
@@ -1,37 +0,0 @@
1
- <div class="lib-textarea">
2
- <label [for]="id" class="lib-textarea__title">
3
- {{ label }} @if (needCounter) {
4
- <span>(осталось {{ maxlength - (value?.length || 0) }} символов)</span>
5
- } @if (required) {
6
- <dd-lib-svg-icon icon="error_hint"></dd-lib-svg-icon>
7
- }
8
- </label>
9
- <div class="pos-relative d-flex">
10
- <textarea
11
- #textarea
12
- (blur)="notifyFocusEvent($event)"
13
- (change)="handleChange()"
14
- (focus)="notifyFocusEvent($event)"
15
- (input)="handleInput($event)"
16
- (keyup.enter)="forceChange()"
17
- [(ngModel)]="value"
18
- [attr.id]="id ? id : null"
19
- [attr.maxlength]="maxlength"
20
- [attr.minlength]="minlength"
21
- [attr.name]="name"
22
- [attr.placeholder]="placeholder"
23
- [attr.tabIndex]="tabIndex"
24
- [class.focused]="focused"
25
- [class.invalid]="invalid"
26
- [disabled]="disabled"
27
- [readOnly]="readOnly"
28
- [required]="required"
29
- [rows]="rows"
30
- class="textarea"></textarea>
31
- <span class="lib-textarea__counter">{{ value?.length || 0 }}/{{ maxlength }}</span>
32
- </div>
33
-
34
- @if (errorText && invalid) {
35
- <div class="lib-input__error">{{ errorText }}</div>
36
- }
37
- </div>
@@ -1,77 +0,0 @@
1
- .lib-textarea {
2
- position: relative;
3
- display: inline;
4
- flex-direction: column;
5
-
6
- textarea {
7
- width: 100%;
8
- min-height: 48px;
9
- padding: 12px 16px;
10
- border-radius: 8px;
11
- border: 1px solid var(--input-border-color);
12
- background-color: transparent;
13
- resize: none;
14
-
15
- &:hover {
16
- border-color: var(--input-active-border-colort);
17
- }
18
-
19
- &:focus {
20
- border-color: var(--input-active-border-colort);
21
- box-shadow: var(--input-active-border-shadow);
22
- }
23
-
24
- &:disabled {
25
- border: none;
26
- background-color: var(--input-disable-input);
27
- color: var(--input-disable-text);
28
- pointer-events: none;
29
-
30
- &::placeholder {
31
- color: var(--input-placeholder);
32
- }
33
- }
34
-
35
- &.invalid {
36
- border-color: var(--input-error-border-color);
37
-
38
- &:hover {
39
- border-color: var(--input-error-border-color);
40
- }
41
-
42
- &:focus {
43
- border-color: var(--input-error-border-color);
44
- box-shadow: var(--input-error-border-shadow);
45
- }
46
- }
47
- }
48
-
49
- &__counter {
50
- position: absolute;
51
- font-size: 12px;
52
- font-weight: 400;
53
- right: 16px;
54
- bottom: 12px;
55
- color: var(--input-placeholder);
56
-
57
- textarea:disabled + .lib-text-counter {
58
- color: var(--input-disable-text);
59
- }
60
- }
61
-
62
- &__title {
63
- margin-bottom: 4px;
64
- font-size: 14px;
65
- line-height: 24px;
66
- display: flex;
67
- align-items: flex-start;
68
- }
69
-
70
- &__error {
71
- color: var(--primary-red-color);
72
- font-size: 12px;
73
- font-weight: 400;
74
- line-height: 10px;
75
- margin-top: 2px;
76
- }
77
- }
@@ -1,49 +0,0 @@
1
- import {
2
- ChangeDetectionStrategy,
3
- ChangeDetectorRef,
4
- Component,
5
- forwardRef,
6
- Host,
7
- Input,
8
- OnInit,
9
- Optional,
10
- SkipSelf,
11
- } from '@angular/core';
12
- import {ControlContainer, FormsModule, NG_VALUE_ACCESSOR} from '@angular/forms';
13
- import {NgOptimizedImage} from '@angular/common';
14
- import {LibCommonInputTextComponent} from '../common/lib-common-input-text';
15
- import {LibSvgIconComponent} from "../lib-svg-icon/lib-svg-icon.component";
16
-
17
- @Component({
18
- selector: 'dd-lib-textarea',
19
- standalone: true,
20
- imports: [FormsModule, NgOptimizedImage, LibSvgIconComponent],
21
- templateUrl: './lib-textarea.component.html',
22
- styleUrl: './lib-textarea.component.scss',
23
- changeDetection: ChangeDetectionStrategy.OnPush,
24
- providers: [
25
- {
26
- provide: NG_VALUE_ACCESSOR,
27
- useExisting: forwardRef(() => LibTextareaComponent),
28
- multi: true,
29
- },
30
- ],
31
- })
32
- export class LibTextareaComponent extends LibCommonInputTextComponent implements OnInit {
33
- @Input() public rows = '6';
34
- @Input() public needCounter = true;
35
-
36
- constructor(
37
- changeDetection: ChangeDetectorRef,
38
- @Optional() @Host() @SkipSelf() private controlContainer: ControlContainer,
39
- ) {
40
- super(changeDetection);
41
- }
42
-
43
- public ngOnInit(): void {
44
- this.control =
45
- this.controlContainer && this.formControlName
46
- ? this.controlContainer?.control?.get(this.formControlName)
47
- : null;
48
- }
49
- }
@@ -1,7 +0,0 @@
1
- <div (click)="destroy()" class="toast-wrapper {{ data.type }}">
2
- <dd-lib-svg-icon [icon]="data.type"></dd-lib-svg-icon>
3
- <div>
4
- <div>{{ data.title }}</div>
5
- <div>{{ data.description }}</div>
6
- </div>
7
- </div>
@@ -1,44 +0,0 @@
1
- :host {
2
- display: block;
3
- }
4
-
5
- .toast-wrapper {
6
- display: flex;
7
- margin: 40px 40px 0 0;
8
- align-items: center;
9
- padding: 20px;
10
- background: #eefaf3;
11
- border-radius: 12px;
12
- opacity: 1;
13
- max-width: 350px;
14
- animation: fade 1s linear;
15
- width: 100%;
16
-
17
- &.success {
18
- background-color: var(--light-green-color);
19
- }
20
-
21
- &.info {
22
- background-color: var(--light-blue-color);
23
- }
24
-
25
- &.warning {
26
- background-color: var(--yellow-card);
27
- }
28
-
29
- &.danger {
30
- background-color: var(--red-light-color);
31
- }
32
- }
33
-
34
- @keyframes fade {
35
- 0% {
36
- opacity: 0;
37
- }
38
- 50% {
39
- opacity: 0.5;
40
- }
41
- 100% {
42
- opacity: 1;
43
- }
44
- }
@@ -1,38 +0,0 @@
1
- import {ChangeDetectionStrategy, Component, Inject, InjectionToken} from '@angular/core';
2
- import {NgIf, NgOptimizedImage} from '@angular/common';
3
- import {ToastService, ToastType} from '../toast.service';
4
- import {LibSvgIconComponent} from "../../lib-svg-icon/lib-svg-icon.component";
5
-
6
- export interface ToastData {
7
- title?: string;
8
- description?: string;
9
- type: ToastType;
10
- id: number;
11
- }
12
-
13
- export const TOAST_DATA = new InjectionToken<ToastData>('ToastData');
14
-
15
- @Component({
16
- selector: 'dd-toast-base',
17
- standalone: true,
18
- imports: [NgOptimizedImage, NgIf, LibSvgIconComponent],
19
- templateUrl: './toast-base.component.html',
20
- styleUrl: './toast-base.component.scss',
21
- changeDetection: ChangeDetectionStrategy.OnPush,
22
- })
23
- export class ToastBaseComponent {
24
- public get id() {
25
- return this.data.id;
26
- }
27
-
28
- public title: string | undefined;
29
- protected data: ToastData;
30
-
31
- constructor(private toastService: ToastService, @Inject(TOAST_DATA) public ddToastData: ToastData) {
32
- this.data = { ...this.ddToastData };
33
- }
34
-
35
- public destroy(): void {
36
- this.toastService.destroyToast(this.id);
37
- }
38
- }
@@ -1,20 +0,0 @@
1
- import {Component, Injector, ViewChild, ViewContainerRef} from '@angular/core';
2
- import {ToastService} from '../toast.service';
3
-
4
- @Component({
5
- selector: 'dd-toast-placeholder',
6
- standalone: true,
7
- template: ` <div #toastPlaceholder></div>
8
- <div id="toast-overlay"></div>`,
9
- })
10
- export class ToastPlaceholderComponent {
11
- @ViewChild('toastPlaceholder', { read: ViewContainerRef, static: true })
12
- private viewContainerRef: ViewContainerRef | undefined;
13
-
14
- constructor(private toastService: ToastService, private injector: Injector) {}
15
-
16
- public ngOnInit() {
17
- this.toastService.registerViewContainerRef(this.viewContainerRef!);
18
- this.toastService.registerInjector(this.injector);
19
- }
20
- }
@@ -1,130 +0,0 @@
1
- import {Injectable, Injector, ViewContainerRef} from '@angular/core';
2
- import {ConnectedPosition, Overlay, PositionStrategy} from '@angular/cdk/overlay';
3
- import {ComponentPortal} from '@angular/cdk/portal';
4
- import {TOAST_DATA, ToastBaseComponent, ToastData} from './toast-base/toast-base.component';
5
-
6
- export enum ToastType {
7
- Warning = 'warning_t',
8
- Success = 'success_t',
9
- Info = 'info_t',
10
- Danger = 'danger_t',
11
- }
12
-
13
- export class ToastConfig {
14
- public timeOut = 5000;
15
-
16
- constructor(config?: ToastConfig) {
17
- if (config) {
18
- Object.keys(config).forEach(key => (this[key as keyof ToastConfig] = config[key as keyof ToastConfig]));
19
- }
20
- }
21
- }
22
-
23
- @Injectable({
24
- providedIn: 'root',
25
- })
26
- export class ToastService {
27
- public config = new ToastConfig();
28
- private viewContainer: ViewContainerRef | undefined;
29
- private counter = 0;
30
- public ddToastData: ToastData = { type: ToastType.Success, id: this.counter };
31
- private injector: Injector | undefined;
32
- private overlayRefs: any = {};
33
-
34
- constructor(private overlay: Overlay) {}
35
-
36
- public warning(title: string, description?: string): void {
37
- this.createToast(title, description, ToastType.Warning);
38
- }
39
-
40
- public success(title: string, description?: string): void {
41
- this.createToast(title, description, ToastType.Success);
42
- }
43
-
44
- public danger(title: string, description?: string): void {
45
- this.createToast(title, description, ToastType.Danger);
46
- }
47
-
48
- public info(title: string, description?: string): void {
49
- this.createToast(title, description, ToastType.Info);
50
- }
51
-
52
- public registerViewContainerRef(vcRef: ViewContainerRef): void {
53
- this.viewContainer = vcRef;
54
- }
55
-
56
- public registerInjector(injector: Injector): void {
57
- this.injector = injector;
58
- }
59
-
60
- public destroyToast(id: number): void {
61
- if (this.overlayRefs?.[id].hasAttached() === true) {
62
- this.overlayRefs?.[id].detach();
63
- }
64
- }
65
-
66
- private createToast(title: string, description: string | undefined, type: ToastType) {
67
- const positionStrategy = this.getPositionStrategy();
68
- // this.overlayRef = this.overlay.create({ positionStrategy });
69
- this.overlayRefs[this.counter] = this.overlay.create({ positionStrategy });
70
- this.ddToastData.title = title;
71
- this.ddToastData.description = description;
72
- this.ddToastData.type = type;
73
- this.ddToastData.id = this.counter;
74
- const injector = Injector.create({
75
- providers: [
76
- {
77
- provide: TOAST_DATA,
78
- useValue: this.ddToastData,
79
- },
80
- ],
81
- parent: this.injector,
82
- });
83
- const component = new ComponentPortal(ToastBaseComponent, this.viewContainer, injector);
84
- console.log(component)
85
- // this.overlayRef.attach(component);
86
- this.overlayRefs[this.counter].attach(component);
87
- setTimeout(() => {
88
- for (const id in this.overlayRefs) {
89
- if (this.overlayRefs[id]?.hasAttached()) {
90
- this.overlayRefs[id]?.detach();
91
- }
92
- }
93
-
94
- // if (this.overlayRef?.hasAttached() === true) {
95
- // this.overlayRef?.detach();
96
- // }
97
- }, this.config.timeOut);
98
- this.counter++;
99
- }
100
-
101
- private getPositionStrategy(): PositionStrategy {
102
- let element;
103
- let positions;
104
- const haveToast = document.getElementsByClassName('cdk-overlay-pane');
105
- if (haveToast.length) {
106
- element = haveToast[haveToast.length - 1];
107
- positions = [
108
- {
109
- originX: 'start',
110
- originY: 'bottom',
111
- overlayX: 'start',
112
- overlayY: 'top',
113
- panelClass: 'toast-top',
114
- },
115
- ] as ConnectedPosition[];
116
- } else {
117
- element = document.getElementsByTagName('body')[0];
118
- positions = [
119
- {
120
- originX: 'end',
121
- originY: 'top',
122
- overlayX: 'end',
123
- overlayY: 'top',
124
- panelClass: '',
125
- },
126
- ] as ConnectedPosition[];
127
- }
128
- return this.overlay.position().flexibleConnectedTo(element).withPositions(positions);
129
- }
130
- }
@@ -1,124 +0,0 @@
1
- import { debounceTime, switchMap, throttleTime } from 'rxjs/operators';
2
- import { combineLatest, Observable, of, Subject } from 'rxjs';
3
- import { AbstractControl } from '@angular/forms';
4
-
5
- // export function Debounce(delay: number = 1000): MethodDecorator {
6
- // return function (_target: any, _propertyKey: string | symbol, descriptor: PropertyDescriptor) {
7
- // let timeout: any = null;
8
- // const original = descriptor.value;
9
- //
10
- // descriptor.value = function (...args: any) {
11
- // clearTimeout(timeout);
12
- // timeout = setTimeout(() => original.apply(this, args), delay);
13
- // };
14
- //
15
- // return descriptor;
16
- // };
17
- //
18
- // }
19
-
20
- export function Debounce(delay: number = 1000): MethodDecorator {
21
- return function (_target: any, _propertyKey: string | symbol, descriptor: PropertyDescriptor) {
22
- const originalMethod = descriptor.value;
23
- const subject = new Subject();
24
- let lastArgs: any[] | null = null;
25
- let isFirstCall = true;
26
-
27
- descriptor.value = function (this: any, ...args: any[]) {
28
- if (isFirstCall) {
29
- isFirstCall = false;
30
- originalMethod.apply(this, args);
31
- } else {
32
- lastArgs = args;
33
- if (!subject.isStopped) {
34
- subject.next(null);
35
- }
36
- }
37
-
38
- subject.pipe(debounceTime(delay)).subscribe(() => {
39
- if (lastArgs) {
40
- originalMethod.apply(this, lastArgs);
41
- lastArgs = null;
42
- }
43
- });
44
- };
45
-
46
- return descriptor;
47
- };
48
- }
49
-
50
- export function Throttle(delay: number = 1000): MethodDecorator {
51
- let isThrottled = false;
52
-
53
- return function (_target: any, _propertyKey: string | symbol, descriptor: PropertyDescriptor) {
54
- const originalMethod = descriptor.value;
55
-
56
- descriptor.value = function (this: any, ...args: any[]) {
57
- if (!isThrottled) {
58
- isThrottled = true;
59
- originalMethod.apply(this, args);
60
-
61
- setTimeout(() => {
62
- isThrottled = false;
63
- }, delay);
64
- }
65
- };
66
-
67
- return descriptor;
68
- };
69
- }
70
-
71
- export function Disabled<C, K extends keyof C = keyof C>(
72
- controlKey: K,
73
- streams: K[] = ['loadings', 'subloadings'] as K[],
74
- ): PropertyDecorator {
75
- return function (target: any, key: string | symbol): void {
76
- Object.defineProperty(target, key, {
77
- enumerable: false,
78
- configurable: true,
79
- get () {
80
- const control: AbstractControl | undefined | null = this[controlKey];
81
-
82
- if (!control) {
83
- return of(true);
84
- }
85
-
86
- if (streams.length === 0) {
87
- const checkControl = control.invalid || !control.dirty;
88
- return of(checkControl);
89
- }
90
-
91
- const streams$: Observable<boolean>[] = streams
92
- .filter(streamKey => !!this[streamKey])
93
- .map(streamKey => this[streamKey]);
94
-
95
- return combineLatest(streams$).pipe(
96
- switchMap(streamsSwitch => {
97
- const checkControl = control.invalid || !control.dirty;
98
- const checkLoaders = streamsSwitch.some(loader => loader);
99
-
100
- return of(checkControl || checkLoaders);
101
- }),
102
- );
103
- },
104
- });
105
- };
106
- }
107
-
108
- export function DisableAfterNCall(limit: number = 5) {
109
- return function (target: any, key: string, descriptor: PropertyDescriptor) {
110
- const originalMethod = descriptor.value;
111
- let count = 0;
112
-
113
- descriptor.value = function (...args: any[]) {
114
- count++;
115
- if (count <= limit) {
116
- return originalMethod.apply(this, args);
117
- } else {
118
- console.log(`Метод ${key} будет отключен после ${limit} вызовов`);
119
- }
120
- };
121
-
122
- return descriptor;
123
- };
124
- }
package/src/public-api.ts DELETED
@@ -1,35 +0,0 @@
1
- /*
2
- * Public API Surface of dd-lib
3
- */
4
- export const t = true
5
- // components
6
- export * from './lib/common/lib-common-button'
7
- export * from './lib/common/lib-common-input-text'
8
- export * from './lib/lib-loader/lib-loader.component'
9
- export * from './lib/lib-button/lib-button.component'
10
- export * from './lib/lib-accordion/lib-accordion.component'
11
- export * from './lib/lib-back-button/lib-back-button.component'
12
- export * from './lib/lib-calendar/lib-calendar.component'
13
- export * from './lib/lib-card/lib-card.component'
14
- export * from './lib/lib-checkbox/lib-checkbox.component'
15
- export * from './lib/lib-comment-input/lib-comment-input.component'
16
- export * from './lib/lib-file-upload/lib-file-upload.component'
17
- export * from './lib/lib-filter-button/lib-filter-button.component'
18
- export * from './lib/lib-image-loader/lib-image-loader.component'
19
- export * from './lib/lib-input/lib-input.component'
20
- export * from './lib/lib-period/lib-period.component'
21
- export * from './lib/lib-radio/lib-radio.component'
22
- export * from './lib/lib-search-input/lib-search-input.component'
23
- export * from './lib/lib-select/lib-select.component'
24
- export * from './lib/lib-skeleton/lib-skeleton.component'
25
- export * from './lib/lib-sort/lib-sort.component'
26
- export * from './lib/lib-step/lib-step.component'
27
- export * from './lib/lib-svg/lib-svg.component'
28
- export * from './lib/lib-svg-icon/lib-svg-icon.component'
29
- export * from './lib/lib-tabs-fragment/lib-tabs-fragment.component'
30
- export * from './lib/lib-textarea/lib-textarea.component'
31
- export * from './lib/utils/decorators'
32
-
33
- export * from './lib/toast/toast.service'
34
- export * from './lib/toast/toast-placeholder/toast-placeholder.component'
35
- export * from './lib/core/index'
package/tsconfig.lib.json DELETED
@@ -1,14 +0,0 @@
1
- /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
- {
3
- "extends": "../../tsconfig.json",
4
- "compilerOptions": {
5
- "outDir": "../../out-tsc/lib",
6
- "declaration": true,
7
- "declarationMap": true,
8
- "inlineSources": true,
9
- "types": []
10
- },
11
- "exclude": [
12
- "**/*.spec.ts"
13
- ]
14
- }