@devopmaat/badaboom 1.1.1

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 (231) hide show
  1. package/README.md +3 -0
  2. package/_index.scss +1 -0
  3. package/esm2022/devopmaat-badaboom.mjs +5 -0
  4. package/esm2022/lib/application/common/bdb-data-source.mjs +42 -0
  5. package/esm2022/lib/application/common/paginator/bdb-paginator.component.mjs +37 -0
  6. package/esm2022/lib/application/common/query-input/bdb-query-input.component.mjs +45 -0
  7. package/esm2022/lib/application/common/search/bdb-search-wrapper.component.mjs +33 -0
  8. package/esm2022/lib/application/common/search/bdb-search.component.mjs +163 -0
  9. package/esm2022/lib/application/common/table/bdb-cell.directive.mjs +20 -0
  10. package/esm2022/lib/application/common/table/bdb-column-builder.mjs +94 -0
  11. package/esm2022/lib/application/common/table/bdb-column-options.mjs +2 -0
  12. package/esm2022/lib/application/common/table/bdb-column-type.mjs +12 -0
  13. package/esm2022/lib/application/common/table/bdb-column.mjs +2 -0
  14. package/esm2022/lib/application/common/table/bdb-context-action.mjs +2 -0
  15. package/esm2022/lib/application/common/table/bdb-table.component.mjs +193 -0
  16. package/esm2022/lib/application/common/table/dynamic.pipe.mjs +26 -0
  17. package/esm2022/lib/application/exception-log/exception-log-table/exception-log-table.component.mjs +49 -0
  18. package/esm2022/lib/application/task-log/task-log-outcome.pipe.mjs +31 -0
  19. package/esm2022/lib/application/task-log/task-log-status.pipe.mjs +29 -0
  20. package/esm2022/lib/application/task-log-parameter/task-log-parameter-value.pipe.mjs +49 -0
  21. package/esm2022/lib/application/user/user-table/user-table.component.mjs +68 -0
  22. package/esm2022/lib/bdb-auth-options.mjs +39 -0
  23. package/esm2022/lib/bdb-options.mjs +25 -0
  24. package/esm2022/lib/common/alert/bdb-alert.component.mjs +40 -0
  25. package/esm2022/lib/common/alert-error-response/bdb-alert-error-response.component.mjs +107 -0
  26. package/esm2022/lib/common/bdb-flex-child.directive.mjs +24 -0
  27. package/esm2022/lib/common/bdb-flex.directive.mjs +112 -0
  28. package/esm2022/lib/common/bdb-form-error.directive.mjs +74 -0
  29. package/esm2022/lib/common/bdb-grid-child.directive.mjs +81 -0
  30. package/esm2022/lib/common/bdb-grid.directive.mjs +107 -0
  31. package/esm2022/lib/common/bdb-palette.mjs +2 -0
  32. package/esm2022/lib/common/boolean-display/bdb-boolean-display.component.mjs +23 -0
  33. package/esm2022/lib/common/color.mjs +26 -0
  34. package/esm2022/lib/common/constructor.mjs +2 -0
  35. package/esm2022/lib/common/field/bdb-field.component.mjs +17 -0
  36. package/esm2022/lib/common/function.pipe.mjs +20 -0
  37. package/esm2022/lib/common/layout-error.mjs +6 -0
  38. package/esm2022/lib/common/linked-list.mjs +53 -0
  39. package/esm2022/lib/domain/auth/account-info.mjs +2 -0
  40. package/esm2022/lib/domain/auth/account.service.mjs +32 -0
  41. package/esm2022/lib/domain/auth/auth.service.mjs +119 -0
  42. package/esm2022/lib/domain/auth/reset-password-token.mjs +2 -0
  43. package/esm2022/lib/domain/auth/token-expired.interceptor.mjs +21 -0
  44. package/esm2022/lib/domain/auth/token-reponse.mjs +2 -0
  45. package/esm2022/lib/domain/auth/token.interceptor.mjs +17 -0
  46. package/esm2022/lib/domain/common/bdb-filter.mjs +2 -0
  47. package/esm2022/lib/domain/common/bdb-request.mjs +2 -0
  48. package/esm2022/lib/domain/common/bdb-response.mjs +2 -0
  49. package/esm2022/lib/domain/common/entities/bdb-entity-read.mjs +2 -0
  50. package/esm2022/lib/domain/common/entities/bdb-entity-update.mjs +2 -0
  51. package/esm2022/lib/domain/common/entities/bdb-entity.mjs +2 -0
  52. package/esm2022/lib/domain/common/services/bdb-service-cr.mjs +7 -0
  53. package/esm2022/lib/domain/common/services/bdb-service-crd.mjs +7 -0
  54. package/esm2022/lib/domain/common/services/bdb-service-cru.mjs +7 -0
  55. package/esm2022/lib/domain/common/services/bdb-service-crud.mjs +7 -0
  56. package/esm2022/lib/domain/common/services/bdb-service-r.mjs +10 -0
  57. package/esm2022/lib/domain/common/services/bdb-service-rd.mjs +7 -0
  58. package/esm2022/lib/domain/common/services/bdb-service-ru.mjs +7 -0
  59. package/esm2022/lib/domain/common/services/bdb-service-rud.mjs +7 -0
  60. package/esm2022/lib/domain/common/services/bdb-service.mjs +11 -0
  61. package/esm2022/lib/domain/entities/exception-log/exception-log-read.mjs +2 -0
  62. package/esm2022/lib/domain/entities/exception-log/exception-log.mjs +2 -0
  63. package/esm2022/lib/domain/entities/exception-log/exception-log.service.mjs +17 -0
  64. package/esm2022/lib/domain/entities/media/media-read.mjs +2 -0
  65. package/esm2022/lib/domain/entities/media/media.mjs +2 -0
  66. package/esm2022/lib/domain/entities/media/media.service.mjs +27 -0
  67. package/esm2022/lib/domain/entities/role/role-read.mjs +2 -0
  68. package/esm2022/lib/domain/entities/role/role.mjs +2 -0
  69. package/esm2022/lib/domain/entities/role/role.service.mjs +17 -0
  70. package/esm2022/lib/domain/entities/task-log/task-log-create.mjs +2 -0
  71. package/esm2022/lib/domain/entities/task-log/task-log-read.mjs +2 -0
  72. package/esm2022/lib/domain/entities/task-log/task-log.mjs +2 -0
  73. package/esm2022/lib/domain/entities/task-log/task-log.service.mjs +20 -0
  74. package/esm2022/lib/domain/entities/task-log-parameter/task-log-parameter-create.mjs +2 -0
  75. package/esm2022/lib/domain/entities/task-log-parameter/task-log-parameter-read.mjs +2 -0
  76. package/esm2022/lib/domain/entities/task-log-parameter/task-log-parameter.mjs +2 -0
  77. package/esm2022/lib/domain/entities/task-log-parameter/task-log-parameter.service.mjs +17 -0
  78. package/esm2022/lib/domain/entities/task-log-schedule/task-log-schedule-create.mjs +2 -0
  79. package/esm2022/lib/domain/entities/task-log-schedule/task-log-schedule-read.mjs +2 -0
  80. package/esm2022/lib/domain/entities/task-log-schedule/task-log-schedule-update.mjs +2 -0
  81. package/esm2022/lib/domain/entities/task-log-schedule/task-log-schedule.mjs +2 -0
  82. package/esm2022/lib/domain/entities/task-log-schedule/task-log-schedule.service.mjs +17 -0
  83. package/esm2022/lib/domain/entities/user/user-create.mjs +2 -0
  84. package/esm2022/lib/domain/entities/user/user-read.mjs +2 -0
  85. package/esm2022/lib/domain/entities/user/user-update.mjs +2 -0
  86. package/esm2022/lib/domain/entities/user/user.mjs +2 -0
  87. package/esm2022/lib/domain/entities/user/user.service.mjs +17 -0
  88. package/esm2022/lib/domain/entities/user-role/user-role-create.mjs +2 -0
  89. package/esm2022/lib/domain/entities/user-role/user-role-read.mjs +2 -0
  90. package/esm2022/lib/domain/entities/user-role/user-role.mjs +2 -0
  91. package/esm2022/lib/domain/entities/user-role/user-role.service.mjs +17 -0
  92. package/esm2022/lib/domain/enums/media-type.mjs +7 -0
  93. package/esm2022/lib/domain/enums/task-log-outcome.mjs +9 -0
  94. package/esm2022/lib/domain/enums/task-log-parameter-type.mjs +8 -0
  95. package/esm2022/lib/domain/enums/task-log-status.mjs +8 -0
  96. package/esm2022/lib/domain/tasks/task-log-scheduler.service.mjs +26 -0
  97. package/esm2022/lib/domain/tasks/task-log-type-parameter.mjs +2 -0
  98. package/esm2022/lib/domain/tasks/task-log-type.mjs +2 -0
  99. package/esm2022/lib/domain/tasks/task-log-type.service.mjs +44 -0
  100. package/esm2022/lib/lib.config.mjs +67 -0
  101. package/esm2022/lib/presentation/access-denied-page/access-denied-page.component.mjs +51 -0
  102. package/esm2022/lib/presentation/auth-container/auth-container.component.mjs +12 -0
  103. package/esm2022/lib/presentation/forgot-password-page/forgot-password-page.component.mjs +75 -0
  104. package/esm2022/lib/presentation/invalid-token-page/invalid-token-page.component.mjs +26 -0
  105. package/esm2022/lib/presentation/logged-out.guard.mjs +16 -0
  106. package/esm2022/lib/presentation/login-page/login-page.component.mjs +90 -0
  107. package/esm2022/lib/presentation/logout-page/logout-page.component.mjs +33 -0
  108. package/esm2022/lib/presentation/reset-password-page/reset-password-page.component.mjs +102 -0
  109. package/esm2022/lib/presentation/reset-password.resolver.mjs +25 -0
  110. package/esm2022/lib/presentation/role.guard.mjs +28 -0
  111. package/esm2022/public-api.mjs +109 -0
  112. package/fesm2022/devopmaat-badaboom.mjs +2443 -0
  113. package/fesm2022/devopmaat-badaboom.mjs.map +1 -0
  114. package/index.d.ts +5 -0
  115. package/lib/_theme.scss +32 -0
  116. package/lib/application/common/bdb-data-source.d.ts +25 -0
  117. package/lib/application/common/paginator/bdb-paginator.component.d.ts +17 -0
  118. package/lib/application/common/query-input/_bdb-query-input-theme.scss +17 -0
  119. package/lib/application/common/query-input/bdb-query-input.component.d.ts +15 -0
  120. package/lib/application/common/search/_bdb-search-theme.scss +12 -0
  121. package/lib/application/common/search/bdb-search-wrapper.component.d.ts +13 -0
  122. package/lib/application/common/search/bdb-search.component.d.ts +43 -0
  123. package/lib/application/common/table/_bdb-table-theme.scss +48 -0
  124. package/lib/application/common/table/bdb-cell.directive.d.ts +9 -0
  125. package/lib/application/common/table/bdb-column-builder.d.ts +18 -0
  126. package/lib/application/common/table/bdb-column-options.d.ts +32 -0
  127. package/lib/application/common/table/bdb-column-type.d.ts +10 -0
  128. package/lib/application/common/table/bdb-column.d.ts +19 -0
  129. package/lib/application/common/table/bdb-context-action.d.ts +7 -0
  130. package/lib/application/common/table/bdb-table.component.d.ts +57 -0
  131. package/lib/application/common/table/dynamic.pipe.d.ts +9 -0
  132. package/lib/application/exception-log/exception-log-table/exception-log-table.component.d.ts +26 -0
  133. package/lib/application/task-log/task-log-outcome.pipe.d.ts +8 -0
  134. package/lib/application/task-log/task-log-status.pipe.d.ts +8 -0
  135. package/lib/application/task-log-parameter/task-log-parameter-value.pipe.d.ts +10 -0
  136. package/lib/application/user/user-table/user-table.component.d.ts +25 -0
  137. package/lib/bdb-auth-options.d.ts +28 -0
  138. package/lib/bdb-options.d.ts +16 -0
  139. package/lib/common/_button-theme.scss +87 -0
  140. package/lib/common/_icon-theme.scss +32 -0
  141. package/lib/common/alert/_bdb-alert-theme.scss +34 -0
  142. package/lib/common/alert/bdb-alert.component.d.ts +20 -0
  143. package/lib/common/alert-error-response/bdb-alert-error-response.component.d.ts +17 -0
  144. package/lib/common/bdb-flex-child.directive.d.ts +11 -0
  145. package/lib/common/bdb-flex.directive.d.ts +28 -0
  146. package/lib/common/bdb-form-error.directive.d.ts +15 -0
  147. package/lib/common/bdb-grid-child.directive.d.ts +14 -0
  148. package/lib/common/bdb-grid.directive.d.ts +26 -0
  149. package/lib/common/bdb-palette.d.ts +1 -0
  150. package/lib/common/boolean-display/_bdb-boolean-display-theme.scss +18 -0
  151. package/lib/common/boolean-display/bdb-boolean-display.component.d.ts +7 -0
  152. package/lib/common/color.d.ts +14 -0
  153. package/lib/common/constructor.d.ts +2 -0
  154. package/lib/common/field/bdb-field.component.d.ts +6 -0
  155. package/lib/common/function.pipe.d.ts +7 -0
  156. package/lib/common/layout-error.d.ts +3 -0
  157. package/lib/common/linked-list.d.ts +15 -0
  158. package/lib/domain/auth/account-info.d.ts +6 -0
  159. package/lib/domain/auth/account.service.d.ts +29 -0
  160. package/lib/domain/auth/auth.service.d.ts +35 -0
  161. package/lib/domain/auth/reset-password-token.d.ts +4 -0
  162. package/lib/domain/auth/token-expired.interceptor.d.ts +2 -0
  163. package/lib/domain/auth/token-reponse.d.ts +5 -0
  164. package/lib/domain/auth/token.interceptor.d.ts +2 -0
  165. package/lib/domain/common/bdb-filter.d.ts +9 -0
  166. package/lib/domain/common/bdb-request.d.ts +10 -0
  167. package/lib/domain/common/bdb-response.d.ts +6 -0
  168. package/lib/domain/common/entities/bdb-entity-read.d.ts +3 -0
  169. package/lib/domain/common/entities/bdb-entity-update.d.ts +3 -0
  170. package/lib/domain/common/entities/bdb-entity.d.ts +3 -0
  171. package/lib/domain/common/services/bdb-service-cr.d.ts +7 -0
  172. package/lib/domain/common/services/bdb-service-crd.d.ts +7 -0
  173. package/lib/domain/common/services/bdb-service-cru.d.ts +8 -0
  174. package/lib/domain/common/services/bdb-service-crud.d.ts +8 -0
  175. package/lib/domain/common/services/bdb-service-r.d.ts +10 -0
  176. package/lib/domain/common/services/bdb-service-rd.d.ts +7 -0
  177. package/lib/domain/common/services/bdb-service-ru.d.ts +8 -0
  178. package/lib/domain/common/services/bdb-service-rud.d.ts +8 -0
  179. package/lib/domain/common/services/bdb-service.d.ts +6 -0
  180. package/lib/domain/entities/exception-log/exception-log-read.d.ts +9 -0
  181. package/lib/domain/entities/exception-log/exception-log.d.ts +9 -0
  182. package/lib/domain/entities/exception-log/exception-log.service.d.ts +9 -0
  183. package/lib/domain/entities/media/media-read.d.ts +14 -0
  184. package/lib/domain/entities/media/media.d.ts +15 -0
  185. package/lib/domain/entities/media/media.service.d.ts +12 -0
  186. package/lib/domain/entities/role/role-read.d.ts +7 -0
  187. package/lib/domain/entities/role/role.d.ts +4 -0
  188. package/lib/domain/entities/role/role.service.d.ts +9 -0
  189. package/lib/domain/entities/task-log/task-log-create.d.ts +5 -0
  190. package/lib/domain/entities/task-log/task-log-read.d.ts +11 -0
  191. package/lib/domain/entities/task-log/task-log.d.ts +15 -0
  192. package/lib/domain/entities/task-log/task-log.service.d.ts +12 -0
  193. package/lib/domain/entities/task-log-parameter/task-log-parameter-create.d.ts +7 -0
  194. package/lib/domain/entities/task-log-parameter/task-log-parameter-read.d.ts +11 -0
  195. package/lib/domain/entities/task-log-parameter/task-log-parameter.d.ts +10 -0
  196. package/lib/domain/entities/task-log-parameter/task-log-parameter.service.d.ts +9 -0
  197. package/lib/domain/entities/task-log-schedule/task-log-schedule-create.d.ts +5 -0
  198. package/lib/domain/entities/task-log-schedule/task-log-schedule-read.d.ts +7 -0
  199. package/lib/domain/entities/task-log-schedule/task-log-schedule-update.d.ts +5 -0
  200. package/lib/domain/entities/task-log-schedule/task-log-schedule.d.ts +7 -0
  201. package/lib/domain/entities/task-log-schedule/task-log-schedule.service.d.ts +11 -0
  202. package/lib/domain/entities/user/user-create.d.ts +3 -0
  203. package/lib/domain/entities/user/user-read.d.ts +6 -0
  204. package/lib/domain/entities/user/user-update.d.ts +4 -0
  205. package/lib/domain/entities/user/user.d.ts +5 -0
  206. package/lib/domain/entities/user/user.service.d.ts +11 -0
  207. package/lib/domain/entities/user-role/user-role-create.d.ts +4 -0
  208. package/lib/domain/entities/user-role/user-role-read.d.ts +7 -0
  209. package/lib/domain/entities/user-role/user-role.d.ts +7 -0
  210. package/lib/domain/entities/user-role/user-role.service.d.ts +10 -0
  211. package/lib/domain/enums/media-type.d.ts +5 -0
  212. package/lib/domain/enums/task-log-outcome.d.ts +7 -0
  213. package/lib/domain/enums/task-log-parameter-type.d.ts +6 -0
  214. package/lib/domain/enums/task-log-status.d.ts +6 -0
  215. package/lib/domain/tasks/task-log-scheduler.service.d.ts +11 -0
  216. package/lib/domain/tasks/task-log-type-parameter.d.ts +11 -0
  217. package/lib/domain/tasks/task-log-type.d.ts +7 -0
  218. package/lib/domain/tasks/task-log-type.service.d.ts +14 -0
  219. package/lib/lib.config.d.ts +11 -0
  220. package/lib/presentation/access-denied-page/access-denied-page.component.d.ts +16 -0
  221. package/lib/presentation/auth-container/auth-container.component.d.ts +5 -0
  222. package/lib/presentation/forgot-password-page/forgot-password-page.component.d.ts +20 -0
  223. package/lib/presentation/invalid-token-page/invalid-token-page.component.d.ts +8 -0
  224. package/lib/presentation/logged-out.guard.d.ts +2 -0
  225. package/lib/presentation/login-page/login-page.component.d.ts +27 -0
  226. package/lib/presentation/logout-page/logout-page.component.d.ts +13 -0
  227. package/lib/presentation/reset-password-page/reset-password-page.component.d.ts +31 -0
  228. package/lib/presentation/reset-password.resolver.d.ts +3 -0
  229. package/lib/presentation/role.guard.d.ts +2 -0
  230. package/package.json +27 -0
  231. package/public-api.d.ts +99 -0
@@ -0,0 +1,32 @@
1
+ @use 'sass:map';
2
+ @use './common/alert/bdb-alert-theme';
3
+ @use './common/boolean-display/bdb-boolean-display-theme';
4
+ @use './application/common/query-input/bdb-query-input-theme';
5
+ @use './application/common/search/bdb-search-theme';
6
+ @use './application/common/table/bdb-table-theme';
7
+ @use './common/button-theme';
8
+ @use './common/icon-theme';
9
+
10
+ @function define-light-theme($mat-theme, $warn-palette, $danger-palette, $success-palette, $info-palette) {
11
+ @return map.deep-merge(
12
+ $mat-theme,
13
+ (
14
+ color: (
15
+ warn: $warn-palette,
16
+ danger: $danger-palette,
17
+ success: $success-palette,
18
+ info: $info-palette,
19
+ ),
20
+ )
21
+ );
22
+ }
23
+
24
+ @mixin all-component-themes($bdb-theme) {
25
+ @include bdb-alert-theme.theme($bdb-theme);
26
+ @include bdb-boolean-display-theme.theme($bdb-theme);
27
+ @include bdb-query-input-theme.theme($bdb-theme);
28
+ @include bdb-search-theme.theme($bdb-theme);
29
+ @include bdb-table-theme.theme($bdb-theme);
30
+ @include button-theme.theme($bdb-theme);
31
+ @include icon-theme.theme($bdb-theme);
32
+ }
@@ -0,0 +1,25 @@
1
+ import { DataSource } from '@angular/cdk/collections';
2
+ import { BdbEntityRead } from '../../domain/common/entities/bdb-entity-read';
3
+ import { BehaviorSubject, Observable } from 'rxjs';
4
+ import { BdbResponse } from '../../domain/common/bdb-response';
5
+ import { HttpErrorResponse } from '@angular/common/http';
6
+ import { BdbRequest } from '../../domain/common/bdb-request';
7
+ import { BdbServiceR } from '../../domain/common/services/bdb-service-r';
8
+ import { BdbEntity } from '../../domain/common/entities/bdb-entity';
9
+ export declare class BdbDataSource<TEntityRead extends BdbEntityRead> implements DataSource<TEntityRead> {
10
+ private service;
11
+ dataSubject: BehaviorSubject<TEntityRead[]>;
12
+ private responseSubject;
13
+ private loadingSubject;
14
+ private errorSubject;
15
+ loading$: Observable<boolean>;
16
+ error$: Observable<HttpErrorResponse | null>;
17
+ response$: Observable<BdbResponse<TEntityRead>>;
18
+ readonly request: BdbRequest;
19
+ get data(): TEntityRead[];
20
+ constructor(service: BdbServiceR<BdbEntity, TEntityRead>, initialRequest?: BdbRequest);
21
+ disconnect(): void;
22
+ connect(): Observable<TEntityRead[] | readonly TEntityRead[]>;
23
+ loadMethod(service: BdbServiceR<BdbEntity, TEntityRead>, request: BdbRequest): Observable<BdbResponse<TEntityRead>>;
24
+ load(): void;
25
+ }
@@ -0,0 +1,17 @@
1
+ import { OnDestroy, OnInit } from '@angular/core';
2
+ import { PageEvent } from '@angular/material/paginator';
3
+ import { BdbEntityRead } from '../../../domain/common/entities/bdb-entity-read';
4
+ import { BdbDataSource } from '../bdb-data-source';
5
+ import * as i0 from "@angular/core";
6
+ export declare class BdbPaginatorComponent<TEntityRead extends BdbEntityRead> implements OnInit, OnDestroy {
7
+ dataSource: BdbDataSource<TEntityRead>;
8
+ private _onDestroy;
9
+ pageSize?: number;
10
+ page?: number;
11
+ length?: number;
12
+ ngOnInit(): void;
13
+ ngOnDestroy(): void;
14
+ changePage(event: PageEvent): void;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<BdbPaginatorComponent<any>, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<BdbPaginatorComponent<any>, "bdb-paginator", never, { "dataSource": { "alias": "dataSource"; "required": false; }; }, {}, never, never, true, never>;
17
+ }
@@ -0,0 +1,17 @@
1
+ @use 'sass:map';
2
+ @use '@angular/material' as mat;
3
+
4
+ @mixin theme($theme) {
5
+ $color-config: mat.m2-get-color-config($theme);
6
+
7
+ $background-palette: map.get($color-config, background);
8
+ $primary-palette: map.get($color-config, primary);
9
+
10
+ .khi-query-input {
11
+ background: mat.m2-get-color-from-palette($background-palette, card);
12
+ border: 1px solid rgba(0, 0, 0, 0.12);
13
+ &:focus-within {
14
+ border-color: mat.m2-get-color-from-palette($primary-palette, default);
15
+ }
16
+ }
17
+ }
@@ -0,0 +1,15 @@
1
+ import { OnDestroy, OnInit } from '@angular/core';
2
+ import { FormControl } from '@angular/forms';
3
+ import { BdbEntityRead } from '../../../domain/common/entities/bdb-entity-read';
4
+ import { BdbDataSource } from '../bdb-data-source';
5
+ import * as i0 from "@angular/core";
6
+ export declare class BdbQueryInputComponent<TEntityRead extends BdbEntityRead> implements OnInit, OnDestroy {
7
+ class: string;
8
+ dataSource: BdbDataSource<TEntityRead>;
9
+ private _onDestroy;
10
+ queryFormControl: FormControl<string | undefined>;
11
+ ngOnInit(): void;
12
+ ngOnDestroy(): void;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<BdbQueryInputComponent<any>, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<BdbQueryInputComponent<any>, "bdb-query-input[dataSource]", never, { "dataSource": { "alias": "dataSource"; "required": false; }; }, {}, never, never, true, never>;
15
+ }
@@ -0,0 +1,12 @@
1
+ @use 'sass:map';
2
+ @use '@angular/material' as mat;
3
+
4
+ @mixin theme($theme) {
5
+ $color-config: mat.m2-get-color-config($theme);
6
+
7
+ $foreground-palette: map.get($color-config, foreground);
8
+
9
+ .search-icon-disabled {
10
+ color: mat.m2-get-color-from-palette($foreground-palette, disabled-button);
11
+ }
12
+ }
@@ -0,0 +1,13 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { ControlContainer, FormControl } from '@angular/forms';
3
+ import { BdbEntityRead } from '../../../domain/common/entities/bdb-entity-read';
4
+ import * as i0 from "@angular/core";
5
+ export declare abstract class BdbSearchWrapperBaseComponent<TEntityRead extends BdbEntityRead> implements OnInit {
6
+ controlName?: string;
7
+ control?: FormControl<TEntityRead | null>;
8
+ formControl: FormControl<TEntityRead | null>;
9
+ controlContainer: ControlContainer;
10
+ ngOnInit(): void;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<BdbSearchWrapperBaseComponent<any>, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<BdbSearchWrapperBaseComponent<any>, "ng-component", never, { "controlName": { "alias": "controlName"; "required": false; }; "control": { "alias": "control"; "required": false; }; }, {}, never, never, true, never>;
13
+ }
@@ -0,0 +1,43 @@
1
+ import { CollectionViewer, ListRange } from '@angular/cdk/collections';
2
+ import { AfterViewInit, ElementRef, OnDestroy, OnInit } from '@angular/core';
3
+ import { ControlValueAccessor, FormControl, NgControl } from '@angular/forms';
4
+ import { MatAutocompleteSelectedEvent, MatAutocompleteTrigger } from '@angular/material/autocomplete';
5
+ import { MatIconButton } from '@angular/material/button';
6
+ import { BehaviorSubject, Observable } from 'rxjs';
7
+ import { BdbEntityRead } from '../../../domain/common/entities/bdb-entity-read';
8
+ import { BdbDataSource } from '../bdb-data-source';
9
+ import * as i0 from "@angular/core";
10
+ export declare class BdbSearchComponent<TEntityRead extends BdbEntityRead> implements CollectionViewer, OnInit, AfterViewInit, OnDestroy, ControlValueAccessor {
11
+ ngControl: NgControl;
12
+ dataSource: BdbDataSource<TEntityRead>;
13
+ displayFn: (_: TEntityRead | string) => string;
14
+ label: string;
15
+ hint: string;
16
+ placeholder: string;
17
+ searchInput?: ElementRef<HTMLInputElement>;
18
+ clearButton?: MatIconButton;
19
+ autoCompleteTrigger?: MatAutocompleteTrigger;
20
+ private readonly _onDestroy;
21
+ viewChange: BehaviorSubject<ListRange>;
22
+ searchOptions?: Observable<TEntityRead[] | readonly TEntityRead[]>;
23
+ searchCtrl: FormControl<string | TEntityRead>;
24
+ inputTabIndex: number;
25
+ hasValue: boolean;
26
+ isDisabled: boolean;
27
+ onChange?: (_: TEntityRead | null) => void;
28
+ onTouch?: () => void;
29
+ constructor(ngControl: NgControl);
30
+ ngOnInit(): void;
31
+ ngAfterViewInit(): void;
32
+ ngOnDestroy(): void;
33
+ writeValue(obj: TEntityRead | null): void;
34
+ registerOnChange(fn: (_: TEntityRead | null) => void): void;
35
+ registerOnTouched(fn: () => void): void;
36
+ setDisabledState(isDisabled: boolean): void;
37
+ onFocus(): void;
38
+ onBlur(): void;
39
+ selectOption(event: MatAutocompleteSelectedEvent): void;
40
+ clear(): void;
41
+ static ɵfac: i0.ɵɵFactoryDeclaration<BdbSearchComponent<any>, [{ optional: true; self: true; }]>;
42
+ static ɵcmp: i0.ɵɵComponentDeclaration<BdbSearchComponent<any>, "bdb-search", never, { "dataSource": { "alias": "dataSource"; "required": false; }; "displayFn": { "alias": "displayFn"; "required": false; }; "label": { "alias": "label"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; }, {}, never, never, true, never>;
43
+ }
@@ -0,0 +1,48 @@
1
+ @use 'sass:map';
2
+ @use '@angular/material' as mat;
3
+
4
+ @mixin theme($theme) {
5
+ $color-config: mat.m2-get-color-config($theme);
6
+ $paletteNames: (primary, accent, warn, danger, success, info);
7
+ $info-default: mat.m2-get-color-from-palette(map.get($color-config, info), default);
8
+
9
+ .bdb-table {
10
+ tbody tr {
11
+ &.selected {
12
+ background-color: rgba($info-default, 0.12);
13
+ }
14
+
15
+ @each $paletteName in $paletteNames {
16
+ $bg: mat.m2-get-color-from-palette(map.get($color-config, $paletteName), default);
17
+ &.bdb-#{$paletteName} {
18
+ background-color: rgba($bg, 0.04);
19
+ &.selected {
20
+ background-color: rgba($bg, 0.12);
21
+ }
22
+ }
23
+ }
24
+ }
25
+
26
+ &.is-clickable tbody tr {
27
+ &:hover {
28
+ background-color: rgba($info-default, 0.08);
29
+ }
30
+ &.selected:hover {
31
+ background-color: rgba($info-default, 0.16);
32
+ }
33
+
34
+ @each $paletteName in $paletteNames {
35
+ $bg: mat.m2-get-color-from-palette(map.get($color-config, $paletteName), default);
36
+
37
+ &.bdb-#{$paletteName} {
38
+ &:hover {
39
+ background-color: rgba($bg, 0.08);
40
+ }
41
+ &.selected:hover {
42
+ background-color: rgba($bg, 0.16);
43
+ }
44
+ }
45
+ }
46
+ }
47
+ }
48
+ }
@@ -0,0 +1,9 @@
1
+ import { TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class BdbCellDirective {
4
+ templateRef: TemplateRef<never>;
5
+ bdbCellDef: string;
6
+ constructor(templateRef: TemplateRef<never>);
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<BdbCellDirective, never>;
8
+ static ɵdir: i0.ɵɵDirectiveDeclaration<BdbCellDirective, "ng-template[bdbCellDef]", never, { "bdbCellDef": { "alias": "bdbCellDef"; "required": false; }; }, {}, never, never, true, never>;
9
+ }
@@ -0,0 +1,18 @@
1
+ import { BdbBooleanColumnOptions, BdbColumnOptions, BdbCurrencyColumnOptions, BdbDateColumnOptions, BdbEnumColumnOptions, BdbNumberColumnOptions, BdbPercentageColumnOptions, BdbStringColumnOptions } from './bdb-column-options';
2
+ import { BdbColumn } from './bdb-column';
3
+ import { BdbEntityRead } from '../../../domain/common/entities/bdb-entity-read';
4
+ import * as i0 from "@angular/core";
5
+ export declare class BdbColumnBuilder<TRead extends BdbEntityRead> {
6
+ build(...columns: BdbColumn<TRead, unknown>[]): BdbColumn<TRead, unknown>[];
7
+ string(field: (x: TRead) => string | undefined, title: string, options?: BdbStringColumnOptions): BdbColumn<TRead, string | undefined>;
8
+ number(field: (x: TRead) => number | undefined, title: string, options?: BdbNumberColumnOptions): BdbColumn<TRead, number | undefined>;
9
+ percentage(field: (x: TRead) => number | undefined, title: string, options?: BdbPercentageColumnOptions): BdbColumn<TRead, number | undefined>;
10
+ currency(field: (x: TRead) => number | undefined, title: string, options?: BdbCurrencyColumnOptions): BdbColumn<TRead, number | undefined>;
11
+ date(field: (x: TRead) => Date | undefined, title: string, options?: BdbDateColumnOptions): BdbColumn<TRead, Date | undefined>;
12
+ boolean(field: (x: TRead) => boolean | undefined, title: string, options?: BdbBooleanColumnOptions): BdbColumn<TRead, boolean | undefined>;
13
+ enum<TEnum>(field: (x: TRead) => TEnum | undefined, title: string, options?: BdbEnumColumnOptions): BdbColumn<TRead, TEnum | undefined>;
14
+ custom(id: string, title: string, options?: BdbColumnOptions): BdbColumn<TRead, unknown>;
15
+ private _buildCommonOptions;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<BdbColumnBuilder<any>, never>;
17
+ static ɵprov: i0.ɵɵInjectableDeclaration<BdbColumnBuilder<any>>;
18
+ }
@@ -0,0 +1,32 @@
1
+ import { PipeTransform, Type } from '@angular/core';
2
+ export interface BdbColumnOptions {
3
+ id?: string;
4
+ sortDisabled?: boolean;
5
+ width?: number;
6
+ textAlign?: 'start' | 'end';
7
+ }
8
+ export interface BdbBooleanColumnOptions extends BdbColumnOptions {
9
+ icon?: boolean;
10
+ }
11
+ export interface BdbDateColumnOptions extends BdbColumnOptions {
12
+ format?: string;
13
+ }
14
+ export interface BdbEnumColumnOptions extends BdbColumnOptions {
15
+ pipe?: Type<PipeTransform>;
16
+ }
17
+ export interface BdbNumberColumnOptions extends BdbColumnOptions {
18
+ format?: string;
19
+ }
20
+ export interface BdbPercentageColumnOptions extends BdbColumnOptions {
21
+ digitsInfo?: string;
22
+ locale?: string;
23
+ }
24
+ export interface BdbCurrencyColumnOptions extends BdbColumnOptions {
25
+ currencyCode?: string;
26
+ display?: string;
27
+ digitsInfo?: string;
28
+ locale?: string;
29
+ }
30
+ export interface BdbStringColumnOptions extends BdbColumnOptions {
31
+ pipe?: Type<PipeTransform>;
32
+ }
@@ -0,0 +1,10 @@
1
+ export declare enum BdbColumnType {
2
+ String = "String",
3
+ Number = "Number",
4
+ Percentage = "Percentage",
5
+ Currency = "Currency",
6
+ Date = "Date",
7
+ Boolean = "Boolean",
8
+ Enum = "Enum",
9
+ Custom = "Custom"
10
+ }
@@ -0,0 +1,19 @@
1
+ import { PipeTransform, TemplateRef, Type } from '@angular/core';
2
+ import { BdbColumnType } from './bdb-column-type';
3
+ export interface BdbColumn<TRead, TField> {
4
+ template?: TemplateRef<never> | undefined;
5
+ field: (x: TRead) => TField;
6
+ type: BdbColumnType;
7
+ id: string;
8
+ title: string;
9
+ sortDisabled?: boolean;
10
+ width?: number;
11
+ textAlign?: 'start' | 'end';
12
+ format?: string;
13
+ icon?: boolean;
14
+ pipe?: Type<PipeTransform>;
15
+ currencyCode?: string;
16
+ display?: string;
17
+ digitsInfo?: string;
18
+ locale?: string;
19
+ }
@@ -0,0 +1,7 @@
1
+ export interface BdbContextAction<TRead> {
2
+ icon: string;
3
+ color: string;
4
+ label: string;
5
+ identifier: string;
6
+ condition?: (x: TRead) => boolean;
7
+ }
@@ -0,0 +1,57 @@
1
+ import { AfterContentInit, EventEmitter, OnChanges, OnDestroy, OnInit, QueryList, TrackByFunction } from '@angular/core';
2
+ import { HttpErrorResponse } from '@angular/common/http';
3
+ import { MatMenuTrigger } from '@angular/material/menu';
4
+ import { Sort } from '@angular/material/sort';
5
+ import { SelectionModel } from '@angular/cdk/collections';
6
+ import { BdbEntity } from '../../../domain/common/entities/bdb-entity';
7
+ import { BdbColumn } from './bdb-column';
8
+ import { BdbDataSource } from '../bdb-data-source';
9
+ import { BdbContextAction } from './bdb-context-action';
10
+ import { BdbCellDirective } from './bdb-cell.directive';
11
+ import { BdbColumnType } from './bdb-column-type';
12
+ import { BdbPalette } from '../../../common/bdb-palette';
13
+ import * as i0 from "@angular/core";
14
+ export declare class BdbTableComponent<TRead extends BdbEntity> implements OnInit, OnChanges, AfterContentInit, OnDestroy {
15
+ private readonly _onDestroy;
16
+ columns: BdbColumn<TRead, unknown>[];
17
+ dataSource: BdbDataSource<TRead>;
18
+ displayedColumns: string[];
19
+ contextActions: BdbContextAction<TRead>[];
20
+ selection?: SelectionModel<TRead>;
21
+ selectOnRowClick: boolean;
22
+ selectedRowClass: string;
23
+ isClickable: boolean;
24
+ rowClick: EventEmitter<TRead>;
25
+ contextAction: EventEmitter<{
26
+ action: BdbContextAction<TRead>;
27
+ row: TRead;
28
+ }>;
29
+ contextMenu: MatMenuTrigger;
30
+ cellTemplates: QueryList<BdbCellDirective> | undefined;
31
+ error: HttpErrorResponse | undefined;
32
+ columnType: typeof BdbColumnType;
33
+ contextMenuPosition: {
34
+ x: string;
35
+ y: string;
36
+ };
37
+ rowColor?: (x: TRead) => BdbPalette;
38
+ trackById: TrackByFunction<BdbEntity>;
39
+ ngOnInit(): void;
40
+ ngOnChanges(): void;
41
+ ngAfterContentInit(): void;
42
+ ngOnDestroy(): void;
43
+ load(): void;
44
+ setColumnTemplates(): void;
45
+ onRowClick(row: TRead): void;
46
+ sortData(event: Sort): void;
47
+ onContextMenu(event: MouseEvent, row: TRead): void;
48
+ onContextMenuAction(action: BdbContextAction<TRead>, row: TRead): void;
49
+ isAllSelected(): boolean;
50
+ anySelected(): boolean;
51
+ toggleAllRows(): void;
52
+ rowClass(row: TRead): {
53
+ [klass: string]: unknown;
54
+ } | undefined;
55
+ static ɵfac: i0.ɵɵFactoryDeclaration<BdbTableComponent<any>, never>;
56
+ static ɵcmp: i0.ɵɵComponentDeclaration<BdbTableComponent<any>, "bdb-table[dataSource]", never, { "columns": { "alias": "columns"; "required": false; }; "dataSource": { "alias": "dataSource"; "required": false; }; "displayedColumns": { "alias": "displayedColumns"; "required": false; }; "contextActions": { "alias": "contextActions"; "required": false; }; "selection": { "alias": "selection"; "required": false; }; "selectOnRowClick": { "alias": "selectOnRowClick"; "required": false; }; "selectedRowClass": { "alias": "selectedRowClass"; "required": false; }; "isClickable": { "alias": "isClickable"; "required": false; }; "rowColor": { "alias": "rowColor"; "required": false; }; }, { "rowClick": "rowClick"; "contextAction": "contextAction"; }, ["cellTemplates"], ["*"], true, never>;
57
+ }
@@ -0,0 +1,9 @@
1
+ import { Injector, PipeTransform, Type } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class DynamicPipe implements PipeTransform {
4
+ private injector;
5
+ constructor(injector: Injector);
6
+ transform(value: unknown, requiredPipe: Type<PipeTransform>, pipeArgs: unknown): unknown;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<DynamicPipe, never>;
8
+ static ɵpipe: i0.ɵɵPipeDeclaration<DynamicPipe, "dynamicPipe", true>;
9
+ }
@@ -0,0 +1,26 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { ExceptionLogRead } from '../../../domain/entities/exception-log/exception-log-read';
3
+ import { BdbDataSource } from '../../common/bdb-data-source';
4
+ import { BdbColumnBuilder } from '../../common/table/bdb-column-builder';
5
+ import { BdbContextAction } from '../../common/table/bdb-context-action';
6
+ import { ActivatedRoute, Router } from '@angular/router';
7
+ import { BdbColumn } from '../../common/table/bdb-column';
8
+ import * as i0 from "@angular/core";
9
+ export declare class ExceptionLogTableComponent {
10
+ private cb;
11
+ private router;
12
+ private activatedRoute;
13
+ dataSource: BdbDataSource<ExceptionLogRead>;
14
+ displayedColumns: string[];
15
+ rowClick: EventEmitter<ExceptionLogRead>;
16
+ columns: BdbColumn<ExceptionLogRead, unknown>[];
17
+ constructor(cb: BdbColumnBuilder<ExceptionLogRead>, router: Router, activatedRoute: ActivatedRoute);
18
+ contextActions: BdbContextAction<ExceptionLogRead>[];
19
+ onRowClick(row: ExceptionLogRead): void;
20
+ onContextAction(event: {
21
+ action: BdbContextAction<ExceptionLogRead>;
22
+ row: ExceptionLogRead;
23
+ }): void;
24
+ static ɵfac: i0.ɵɵFactoryDeclaration<ExceptionLogTableComponent, never>;
25
+ static ɵcmp: i0.ɵɵComponentDeclaration<ExceptionLogTableComponent, "bdb-exception-log-table[dataSource]", never, { "dataSource": { "alias": "dataSource"; "required": false; }; "displayedColumns": { "alias": "displayedColumns"; "required": false; }; "contextActions": { "alias": "contextActions"; "required": false; }; }, { "rowClick": "rowClick"; }, never, never, true, never>;
26
+ }
@@ -0,0 +1,8 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import { TaskLogOutcome } from '../../domain/enums/task-log-outcome';
3
+ import * as i0 from "@angular/core";
4
+ export declare class TaskLogOutcomePipe implements PipeTransform {
5
+ transform(value: TaskLogOutcome): string;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<TaskLogOutcomePipe, never>;
7
+ static ɵpipe: i0.ɵɵPipeDeclaration<TaskLogOutcomePipe, "taskLogOutcome", true>;
8
+ }
@@ -0,0 +1,8 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import { TaskLogStatus } from '../../domain/enums/task-log-status';
3
+ import * as i0 from "@angular/core";
4
+ export declare class TaskLogStatusPipe implements PipeTransform {
5
+ transform(value: TaskLogStatus): string;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<TaskLogStatusPipe, never>;
7
+ static ɵpipe: i0.ɵɵPipeDeclaration<TaskLogStatusPipe, "taskLogStatus", true>;
8
+ }
@@ -0,0 +1,10 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import { TaskLogParameter } from '../../domain/entities/task-log-parameter/task-log-parameter';
3
+ import * as i0 from "@angular/core";
4
+ export declare class TaskLogParameterValuePipe implements PipeTransform {
5
+ private locale;
6
+ constructor(locale: string);
7
+ transform(value: TaskLogParameter): string;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<TaskLogParameterValuePipe, never>;
9
+ static ɵpipe: i0.ɵɵPipeDeclaration<TaskLogParameterValuePipe, "taskLogParameterValue", true>;
10
+ }
@@ -0,0 +1,25 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { BdbDataSource } from '../../common/bdb-data-source';
3
+ import { UserRead } from '../../../domain/entities/user/user-read';
4
+ import { MatDialog } from '@angular/material/dialog';
5
+ import { BdbColumnBuilder } from '../../common/table/bdb-column-builder';
6
+ import { BdbContextAction } from '../../common/table/bdb-context-action';
7
+ import { BdbColumn } from '../../common/table/bdb-column';
8
+ import * as i0 from "@angular/core";
9
+ export declare class UserTableComponent {
10
+ private matDialog;
11
+ private cb;
12
+ dataSource: BdbDataSource<UserRead>;
13
+ displayedColumns: string[];
14
+ rowClick: EventEmitter<UserRead>;
15
+ columns: BdbColumn<UserRead, unknown>[];
16
+ constructor(matDialog: MatDialog, cb: BdbColumnBuilder<UserRead>);
17
+ contextActions: BdbContextAction<UserRead>[];
18
+ onRowClick(user: UserRead): void;
19
+ onContextAction(event: {
20
+ action: BdbContextAction<UserRead>;
21
+ row: UserRead;
22
+ }): void;
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<UserTableComponent, never>;
24
+ static ɵcmp: i0.ɵɵComponentDeclaration<UserTableComponent, "bdb-user-table[dataSource]", never, { "dataSource": { "alias": "dataSource"; "required": false; }; "displayedColumns": { "alias": "displayedColumns"; "required": false; }; "contextActions": { "alias": "contextActions"; "required": false; }; }, { "rowClick": "rowClick"; }, never, never, true, never>;
25
+ }
@@ -0,0 +1,28 @@
1
+ export interface BdbAuthOptions {
2
+ loginPath: string;
3
+ logoutPath: string;
4
+ accessDeniedPath: string;
5
+ forgotPasswordPath: string;
6
+ resetPasswordPath: string;
7
+ invalidTokenPath: string;
8
+ addPresentation: boolean;
9
+ }
10
+ export declare class BdbAuthOptionsBuilder {
11
+ private _loginPath?;
12
+ private _logoutPath?;
13
+ private _accessDeniedPath?;
14
+ private _forgotPasswordPath?;
15
+ private _resetPasswordPath?;
16
+ private _invalidTokenPath?;
17
+ private _addPresentation;
18
+ constructor(configure: BdbAuthOptionsConfigure);
19
+ set loginPath(path: string);
20
+ set logoutPath(path: string);
21
+ set accessDeniedPath(path: string);
22
+ set forgotPasswordPath(path: string);
23
+ set resetPasswordPath(path: string);
24
+ set invalidTokenPath(path: string);
25
+ addPresentation(): void;
26
+ build(): BdbAuthOptions;
27
+ }
28
+ export type BdbAuthOptionsConfigure = (_: BdbAuthOptionsBuilder) => void;
@@ -0,0 +1,16 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { BdbAuthOptions, BdbAuthOptionsConfigure } from './bdb-auth-options';
3
+ export interface BdbOptions {
4
+ backendUrl: string;
5
+ authOptions?: BdbAuthOptions;
6
+ }
7
+ export declare class BdbOptionsBuilder {
8
+ private _backendUrl;
9
+ private _auth?;
10
+ constructor(configure: BdbOptionsConfigure);
11
+ set backendUrl(url: string);
12
+ addAuth(configure: BdbAuthOptionsConfigure): void;
13
+ build(): BdbOptions;
14
+ }
15
+ export type BdbOptionsConfigure = (_: BdbOptionsBuilder) => void;
16
+ export declare const BDB_OPTIONS: InjectionToken<BdbOptions>;
@@ -0,0 +1,87 @@
1
+ @use 'sass:map';
2
+ @use 'sass:meta';
3
+ @use '@angular/material' as mat;
4
+
5
+ $_ripple-opacity: 0.1;
6
+
7
+ // Applies the background color for a ripple. If the value provided is not a Sass color,
8
+ // we assume that we've been given a CSS variable. Since we can't perform alpha-blending
9
+ // on a CSS variable, we instead add the opacity directly to the ripple element.
10
+ @mixin _ripple-background($palette, $hue, $opacity) {
11
+ $background-color: mat.m2-get-color-from-palette($palette, $hue, $opacity);
12
+ background-color: $background-color;
13
+ @if (meta.type-of($background-color) != color) {
14
+ opacity: $opacity;
15
+ }
16
+ }
17
+
18
+ @mixin _ripple-color($theme, $hue, $opacity: $_ripple-opacity) {
19
+ $warn: map.get($theme, warn);
20
+ $danger: map.get($theme, danger);
21
+ $success: map.get($theme, success);
22
+ $info: map.get($theme, info);
23
+
24
+ &.mat-warn .mat-ripple-element {
25
+ @include _ripple-background($warn, $hue, $opacity);
26
+ }
27
+
28
+ &.mat-danger .mat-ripple-element {
29
+ @include _ripple-background($danger, $hue, $opacity);
30
+ }
31
+
32
+ &.mat-success .mat-ripple-element {
33
+ @include _ripple-background($success, $hue, $opacity);
34
+ }
35
+
36
+ &.mat-info .mat-ripple-element {
37
+ @include _ripple-background($info, $hue, $opacity);
38
+ }
39
+ }
40
+
41
+ // Applies a property to an mat-button element for each of the supported palettes.
42
+ @mixin _theme-property($theme, $property, $hue) {
43
+ $danger: map.get($theme, danger);
44
+ $success: map.get($theme, success);
45
+ $info: map.get($theme, info);
46
+ $warn: map.get($theme, warn);
47
+ $background: map.get($theme, background);
48
+ $foreground: map.get($theme, foreground);
49
+
50
+ &.mat-warn {
51
+ #{$property}: mat.m2-get-color-from-palette($warn, $hue);
52
+ }
53
+ &.mat-danger {
54
+ #{$property}: mat.m2-get-color-from-palette($danger, $hue);
55
+ }
56
+ &.mat-success {
57
+ #{$property}: mat.m2-get-color-from-palette($success, $hue);
58
+ }
59
+ &.mat-info {
60
+ #{$property}: mat.m2-get-color-from-palette($info, $hue);
61
+ }
62
+ &[disabled] {
63
+ $palette: if($property == 'color', $foreground, $background);
64
+ #{$property}: mat.m2-get-color-from-palette($palette, disabled-button);
65
+ }
66
+ }
67
+
68
+ @mixin theme($config-or-theme) {
69
+ $config: mat.m2-get-color-config($config-or-theme);
70
+
71
+ .mat-mdc-button-base {
72
+ &.mat-mdc-button,
73
+ &.mat-mdc-icon-button,
74
+ &.mat-mdc-outlined-button {
75
+ @include _theme-property($config, 'color', text);
76
+ }
77
+
78
+ &.mat-mdc-unelevated-button,
79
+ &.mat-mdc-raised-button,
80
+ &.mat-mdc-fab,
81
+ &.mat-mdc-mini-fab {
82
+ @include _theme-property($config, 'color', default-contrast);
83
+ @include _theme-property($config, 'background-color', default);
84
+ @include _ripple-color($config, default-contrast);
85
+ }
86
+ }
87
+ }