@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,39 @@
1
+ export class BdbAuthOptionsBuilder {
2
+ constructor(configure) {
3
+ this._addPresentation = false;
4
+ configure(this);
5
+ }
6
+ set loginPath(path) {
7
+ this._loginPath = path;
8
+ }
9
+ set logoutPath(path) {
10
+ this._logoutPath = path;
11
+ }
12
+ set accessDeniedPath(path) {
13
+ this._accessDeniedPath = path;
14
+ }
15
+ set forgotPasswordPath(path) {
16
+ this._forgotPasswordPath = path;
17
+ }
18
+ set resetPasswordPath(path) {
19
+ this._resetPasswordPath = path;
20
+ }
21
+ set invalidTokenPath(path) {
22
+ this._invalidTokenPath = path;
23
+ }
24
+ addPresentation() {
25
+ this._addPresentation = true;
26
+ }
27
+ build() {
28
+ return {
29
+ loginPath: this._loginPath ?? 'inloggen',
30
+ logoutPath: this._logoutPath ?? 'uitloggen',
31
+ accessDeniedPath: this._accessDeniedPath ?? 'toegang-geweigerd',
32
+ forgotPasswordPath: this._forgotPasswordPath ?? 'wachtwoord-vergeten',
33
+ resetPasswordPath: this._resetPasswordPath ?? 'herstel-wachtwoord',
34
+ invalidTokenPath: this._invalidTokenPath ?? 'ongeldig-token',
35
+ addPresentation: this._addPresentation,
36
+ };
37
+ }
38
+ }
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmRiLWF1dGgtb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2JhZGFib29tL3NyYy9saWIvYmRiLWF1dGgtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxNQUFNLE9BQU8scUJBQXFCO0lBU2hDLFlBQVksU0FBa0M7UUFGdEMscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBRy9CLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRUQsSUFBSSxTQUFTLENBQUMsSUFBWTtRQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxVQUFVLENBQUMsSUFBWTtRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFZO1FBQy9CLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksa0JBQWtCLENBQUMsSUFBWTtRQUNqQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLGlCQUFpQixDQUFDLElBQVk7UUFDaEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFZO1FBQy9CLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFFRCxLQUFLO1FBQ0gsT0FBTztZQUNMLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxJQUFJLFVBQVU7WUFDeEMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLElBQUksV0FBVztZQUMzQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsaUJBQWlCLElBQUksbUJBQW1CO1lBQy9ELGtCQUFrQixFQUFFLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxxQkFBcUI7WUFDckUsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixJQUFJLG9CQUFvQjtZQUNsRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsaUJBQWlCLElBQUksZ0JBQWdCO1lBQzVELGVBQWUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1NBQ3ZDLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEJkYkF1dGhPcHRpb25zIHtcclxuICBsb2dpblBhdGg6IHN0cmluZztcclxuICBsb2dvdXRQYXRoOiBzdHJpbmc7XHJcbiAgYWNjZXNzRGVuaWVkUGF0aDogc3RyaW5nO1xyXG4gIGZvcmdvdFBhc3N3b3JkUGF0aDogc3RyaW5nO1xyXG4gIHJlc2V0UGFzc3dvcmRQYXRoOiBzdHJpbmc7XHJcbiAgaW52YWxpZFRva2VuUGF0aDogc3RyaW5nO1xyXG4gIGFkZFByZXNlbnRhdGlvbjogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEJkYkF1dGhPcHRpb25zQnVpbGRlciB7XHJcbiAgcHJpdmF0ZSBfbG9naW5QYXRoPzogc3RyaW5nO1xyXG4gIHByaXZhdGUgX2xvZ291dFBhdGg/OiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfYWNjZXNzRGVuaWVkUGF0aD86IHN0cmluZztcclxuICBwcml2YXRlIF9mb3Jnb3RQYXNzd29yZFBhdGg/OiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfcmVzZXRQYXNzd29yZFBhdGg/OiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfaW52YWxpZFRva2VuUGF0aD86IHN0cmluZztcclxuICBwcml2YXRlIF9hZGRQcmVzZW50YXRpb24gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoY29uZmlndXJlOiBCZGJBdXRoT3B0aW9uc0NvbmZpZ3VyZSkge1xyXG4gICAgY29uZmlndXJlKHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgc2V0IGxvZ2luUGF0aChwYXRoOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2xvZ2luUGF0aCA9IHBhdGg7XHJcbiAgfVxyXG5cclxuICBzZXQgbG9nb3V0UGF0aChwYXRoOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2xvZ291dFBhdGggPSBwYXRoO1xyXG4gIH1cclxuXHJcbiAgc2V0IGFjY2Vzc0RlbmllZFBhdGgocGF0aDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9hY2Nlc3NEZW5pZWRQYXRoID0gcGF0aDtcclxuICB9XHJcblxyXG4gIHNldCBmb3Jnb3RQYXNzd29yZFBhdGgocGF0aDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9mb3Jnb3RQYXNzd29yZFBhdGggPSBwYXRoO1xyXG4gIH1cclxuXHJcbiAgc2V0IHJlc2V0UGFzc3dvcmRQYXRoKHBhdGg6IHN0cmluZykge1xyXG4gICAgdGhpcy5fcmVzZXRQYXNzd29yZFBhdGggPSBwYXRoO1xyXG4gIH1cclxuXHJcbiAgc2V0IGludmFsaWRUb2tlblBhdGgocGF0aDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9pbnZhbGlkVG9rZW5QYXRoID0gcGF0aDtcclxuICB9XHJcblxyXG4gIGFkZFByZXNlbnRhdGlvbigpOiB2b2lkIHtcclxuICAgIHRoaXMuX2FkZFByZXNlbnRhdGlvbiA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBidWlsZCgpOiBCZGJBdXRoT3B0aW9ucyB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBsb2dpblBhdGg6IHRoaXMuX2xvZ2luUGF0aCA/PyAnaW5sb2dnZW4nLFxyXG4gICAgICBsb2dvdXRQYXRoOiB0aGlzLl9sb2dvdXRQYXRoID8/ICd1aXRsb2dnZW4nLFxyXG4gICAgICBhY2Nlc3NEZW5pZWRQYXRoOiB0aGlzLl9hY2Nlc3NEZW5pZWRQYXRoID8/ICd0b2VnYW5nLWdld2VpZ2VyZCcsXHJcbiAgICAgIGZvcmdvdFBhc3N3b3JkUGF0aDogdGhpcy5fZm9yZ290UGFzc3dvcmRQYXRoID8/ICd3YWNodHdvb3JkLXZlcmdldGVuJyxcclxuICAgICAgcmVzZXRQYXNzd29yZFBhdGg6IHRoaXMuX3Jlc2V0UGFzc3dvcmRQYXRoID8/ICdoZXJzdGVsLXdhY2h0d29vcmQnLFxyXG4gICAgICBpbnZhbGlkVG9rZW5QYXRoOiB0aGlzLl9pbnZhbGlkVG9rZW5QYXRoID8/ICdvbmdlbGRpZy10b2tlbicsXHJcbiAgICAgIGFkZFByZXNlbnRhdGlvbjogdGhpcy5fYWRkUHJlc2VudGF0aW9uLFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEJkYkF1dGhPcHRpb25zQ29uZmlndXJlID0gKF86IEJkYkF1dGhPcHRpb25zQnVpbGRlcikgPT4gdm9pZDtcclxuIl19
@@ -0,0 +1,25 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { BdbAuthOptionsBuilder } from './bdb-auth-options';
3
+ export class BdbOptionsBuilder {
4
+ constructor(configure) {
5
+ configure(this);
6
+ }
7
+ set backendUrl(url) {
8
+ this._backendUrl = url;
9
+ }
10
+ addAuth(configure) {
11
+ this._auth = configure;
12
+ }
13
+ build() {
14
+ if (!this._backendUrl) {
15
+ throw 'backendUrl mag niet leeg zijn';
16
+ }
17
+ const options = { backendUrl: this._backendUrl };
18
+ if (this._auth) {
19
+ options.authOptions = new BdbAuthOptionsBuilder(this._auth).build();
20
+ }
21
+ return options;
22
+ }
23
+ }
24
+ export const BDB_OPTIONS = new InjectionToken('BdbOptions');
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmRiLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWRhYm9vbS9zcmMvbGliL2JkYi1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFrQixxQkFBcUIsRUFBMkIsTUFBTSxvQkFBb0IsQ0FBQztBQU9wRyxNQUFNLE9BQU8saUJBQWlCO0lBSTVCLFlBQVksU0FBOEI7UUFDeEMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUFJLFVBQVUsQ0FBQyxHQUFXO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxPQUFPLENBQUMsU0FBa0M7UUFDeEMsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7SUFDekIsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RCLE1BQU0sK0JBQStCLENBQUM7UUFDeEMsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFlLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUU3RCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEUsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRjtBQUlELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxJQUFJLGNBQWMsQ0FBYSxZQUFZLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJkYkF1dGhPcHRpb25zLCBCZGJBdXRoT3B0aW9uc0J1aWxkZXIsIEJkYkF1dGhPcHRpb25zQ29uZmlndXJlIH0gZnJvbSAnLi9iZGItYXV0aC1vcHRpb25zJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQmRiT3B0aW9ucyB7XHJcbiAgYmFja2VuZFVybDogc3RyaW5nO1xyXG4gIGF1dGhPcHRpb25zPzogQmRiQXV0aE9wdGlvbnM7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBCZGJPcHRpb25zQnVpbGRlciB7XHJcbiAgcHJpdmF0ZSBfYmFja2VuZFVybCE6IHN0cmluZztcclxuICBwcml2YXRlIF9hdXRoPzogQmRiQXV0aE9wdGlvbnNDb25maWd1cmU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGNvbmZpZ3VyZTogQmRiT3B0aW9uc0NvbmZpZ3VyZSkge1xyXG4gICAgY29uZmlndXJlKHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgc2V0IGJhY2tlbmRVcmwodXJsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2JhY2tlbmRVcmwgPSB1cmw7XHJcbiAgfVxyXG5cclxuICBhZGRBdXRoKGNvbmZpZ3VyZTogQmRiQXV0aE9wdGlvbnNDb25maWd1cmUpOiB2b2lkIHtcclxuICAgIHRoaXMuX2F1dGggPSBjb25maWd1cmU7XHJcbiAgfVxyXG5cclxuICBidWlsZCgpOiBCZGJPcHRpb25zIHtcclxuICAgIGlmICghdGhpcy5fYmFja2VuZFVybCkge1xyXG4gICAgICB0aHJvdyAnYmFja2VuZFVybCBtYWcgbmlldCBsZWVnIHppam4nO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG9wdGlvbnM6IEJkYk9wdGlvbnMgPSB7IGJhY2tlbmRVcmw6IHRoaXMuX2JhY2tlbmRVcmwgfTtcclxuXHJcbiAgICBpZiAodGhpcy5fYXV0aCkge1xyXG4gICAgICBvcHRpb25zLmF1dGhPcHRpb25zID0gbmV3IEJkYkF1dGhPcHRpb25zQnVpbGRlcih0aGlzLl9hdXRoKS5idWlsZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBvcHRpb25zO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQmRiT3B0aW9uc0NvbmZpZ3VyZSA9IChfOiBCZGJPcHRpb25zQnVpbGRlcikgPT4gdm9pZDtcclxuXHJcbmV4cG9ydCBjb25zdCBCREJfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxCZGJPcHRpb25zPignQmRiT3B0aW9ucycpO1xyXG4iXX0=
@@ -0,0 +1,40 @@
1
+ import { Component, HostBinding, Input } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { mixinColor } from '../color';
4
+ import { MatIconModule } from '@angular/material/icon';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "@angular/material/icon";
8
+ // Boilerplate for applying mixins to BdbAlert.
9
+ const _BdbAlertBase = mixinColor(class {
10
+ constructor(_elementRef) {
11
+ this._elementRef = _elementRef;
12
+ }
13
+ });
14
+ export class BdbAlertComponent extends _BdbAlertBase {
15
+ constructor(elementRef) {
16
+ super(elementRef);
17
+ this.class = 'bdb-alert';
18
+ this.label = '';
19
+ this.icon = 'task_alt';
20
+ this.inline = false;
21
+ }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: BdbAlertComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
23
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: BdbAlertComponent, isStandalone: true, selector: "bdb-alert", inputs: { color: "color", label: "label", icon: "icon", inline: "inline" }, host: { properties: { "class": "this.class" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"bdb-alert-wrapper\" [ngStyle]=\"{ display: inline ? 'inline-flex' : 'flex' }\">\r\n <div class=\"bdb-icon-container\">\r\n <mat-icon>{{ icon }}</mat-icon>\r\n </div>\r\n <div class=\"content-container\">\r\n <div>\r\n <div class=\"label\">\r\n {{ label }}\r\n </div>\r\n <div class=\"content\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".bdb-alert-wrapper{border-radius:4px;border:1px solid}.bdb-alert-wrapper .bdb-icon-container{min-height:100%;min-width:48px;display:flex;justify-content:center;align-items:center}.bdb-alert-wrapper .inline{max-width:100%}.content-container{padding:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: BdbAlertComponent, decorators: [{
26
+ type: Component,
27
+ args: [{ selector: 'bdb-alert', standalone: true, imports: [CommonModule, MatIconModule], template: "<div class=\"bdb-alert-wrapper\" [ngStyle]=\"{ display: inline ? 'inline-flex' : 'flex' }\">\r\n <div class=\"bdb-icon-container\">\r\n <mat-icon>{{ icon }}</mat-icon>\r\n </div>\r\n <div class=\"content-container\">\r\n <div>\r\n <div class=\"label\">\r\n {{ label }}\r\n </div>\r\n <div class=\"content\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".bdb-alert-wrapper{border-radius:4px;border:1px solid}.bdb-alert-wrapper .bdb-icon-container{min-height:100%;min-width:48px;display:flex;justify-content:center;align-items:center}.bdb-alert-wrapper .inline{max-width:100%}.content-container{padding:8px}\n"] }]
28
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { class: [{
29
+ type: HostBinding,
30
+ args: ['class']
31
+ }], color: [{
32
+ type: Input
33
+ }], label: [{
34
+ type: Input
35
+ }], icon: [{
36
+ type: Input
37
+ }], inline: [{
38
+ type: Input
39
+ }] } });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmRiLWFsZXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhZGFib29tL3NyYy9saWIvY29tbW9uL2FsZXJ0L2JkYi1hbGVydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWRhYm9vbS9zcmMvbGliL2NvbW1vbi9hbGVydC9iZGItYWxlcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQVksVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWhELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQUV2RCwrQ0FBK0M7QUFDL0MsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUM5QjtJQUNFLFlBQW1CLFdBQXVCO1FBQXZCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO0lBQUcsQ0FBQztDQUMvQyxDQUNGLENBQUM7QUFTRixNQUFNLE9BQU8saUJBQWtCLFNBQVEsYUFBYTtJQU9sRCxZQUFZLFVBQXNCO1FBQ2hDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQVBFLFVBQUssR0FBRyxXQUFXLENBQUM7UUFFakMsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLFNBQUksR0FBRyxVQUFVLENBQUM7UUFDbEIsV0FBTSxHQUFHLEtBQUssQ0FBQztJQUl4QixDQUFDOzhHQVRVLGlCQUFpQjtrR0FBakIsaUJBQWlCLHlOQ3BCOUIsaWJBZUEsdVREQ1ksWUFBWSxtSEFBRSxhQUFhOzsyRkFJMUIsaUJBQWlCO2tCQVA3QixTQUFTOytCQUNFLFdBQVcsY0FDVCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDOytFQUtoQixLQUFLO3NCQUExQixXQUFXO3VCQUFDLE9BQU87Z0JBQ0YsS0FBSztzQkFBdEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENhbkNvbG9yLCBtaXhpbkNvbG9yIH0gZnJvbSAnLi4vY29sb3InO1xyXG5pbXBvcnQgeyBCZGJQYWxldHRlIH0gZnJvbSAnLi4vYmRiLXBhbGV0dGUnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcblxyXG4vLyBCb2lsZXJwbGF0ZSBmb3IgYXBwbHlpbmcgbWl4aW5zIHRvIEJkYkFsZXJ0LlxyXG5jb25zdCBfQmRiQWxlcnRCYXNlID0gbWl4aW5Db2xvcihcclxuICBjbGFzcyB7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XHJcbiAgfVxyXG4pO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiZGItYWxlcnQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0SWNvbk1vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2JkYi1hbGVydC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYmRiLWFsZXJ0LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCZGJBbGVydENvbXBvbmVudCBleHRlbmRzIF9CZGJBbGVydEJhc2UgaW1wbGVtZW50cyBDYW5Db2xvciB7XHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNsYXNzID0gJ2JkYi1hbGVydCc7XHJcbiAgQElucHV0KCkgb3ZlcnJpZGUgY29sb3I6IEJkYlBhbGV0dGU7XHJcbiAgQElucHV0KCkgbGFiZWwgPSAnJztcclxuICBASW5wdXQoKSBpY29uID0gJ3Rhc2tfYWx0JztcclxuICBASW5wdXQoKSBpbmxpbmUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xyXG4gICAgc3VwZXIoZWxlbWVudFJlZik7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJiZGItYWxlcnQtd3JhcHBlclwiIFtuZ1N0eWxlXT1cInsgZGlzcGxheTogaW5saW5lID8gJ2lubGluZS1mbGV4JyA6ICdmbGV4JyB9XCI+XHJcbiAgPGRpdiBjbGFzcz1cImJkYi1pY29uLWNvbnRhaW5lclwiPlxyXG4gICAgPG1hdC1pY29uPnt7IGljb24gfX08L21hdC1pY29uPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJjb250ZW50LWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+XHJcbiAgICAgICAge3sgbGFiZWwgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -0,0 +1,107 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { BdbAlertComponent } from '../alert/bdb-alert.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ const LoginFailed = 'LOGIN_FAILED';
7
+ const LoginNotAllowed = 'LOGIN_NOT_ALLOWED';
8
+ const LoginRequiredTwoFactor = 'LOGIN_REQUIRES_TWO_FACTOR';
9
+ const LockedOut = 'LOCKED_OUT';
10
+ export class BdbAlertErrorResponseComponent {
11
+ constructor() {
12
+ this.loginFailed = false;
13
+ this.color = 'danger';
14
+ this.icon = 'error_outline';
15
+ this.label = 'Onbekende fout';
16
+ this.message = '';
17
+ }
18
+ validationFailures() {
19
+ if (this.value && this.value.error && this.value.error.errors) {
20
+ const ret = [];
21
+ const pd = this.value.error;
22
+ if (pd.errors) {
23
+ const errors = pd.errors;
24
+ Object.keys(errors).forEach((x) => ret.push(`${errors[x]}`));
25
+ }
26
+ return ret;
27
+ }
28
+ return null;
29
+ }
30
+ ngOnChanges() {
31
+ this.errorCode = undefined;
32
+ this.color = 'danger';
33
+ if (this.value) {
34
+ switch (this.value.status) {
35
+ case 0:
36
+ this.label = 'Communicatie mislukt';
37
+ this.message = 'Controleer uw internetverbinding';
38
+ break;
39
+ case 400:
40
+ this.color = 'warn';
41
+ this.icon = 'warning';
42
+ this.label = 'Invoerfout';
43
+ break;
44
+ case 401:
45
+ if (this.value.error === LoginFailed) {
46
+ this.label = 'Inloggen mislukt';
47
+ this.message = 'Controleer gegevens en probeer opnieuw';
48
+ }
49
+ else if (this.value.error === LoginNotAllowed) {
50
+ this.label = 'Inloggen mislukt';
51
+ this.message = 'Login niet toegestaan';
52
+ }
53
+ else if (this.value.error === LockedOut) {
54
+ this.color = 'warn';
55
+ this.icon = 'warning';
56
+ this.label = 'Tijdelijk geblokkeerd';
57
+ this.message = 'Te veel mislukte inlogpogingen';
58
+ }
59
+ else if (this.value.error === LoginRequiredTwoFactor) {
60
+ this.label = 'Inloggen mislukt';
61
+ this.message = 'Tweestapsverificatie vereist';
62
+ }
63
+ else {
64
+ this.label = 'Onbevoegd';
65
+ this.message = 'U bent niet bevoegd voor de gevraagde actie';
66
+ }
67
+ break;
68
+ case 403:
69
+ this.label = 'Toegang geweigerd';
70
+ this.message = 'Onvoldoende rechten voor de gevraagde actie';
71
+ break;
72
+ case 404:
73
+ this.label = 'Niet gevonden';
74
+ this.message = 'De opgevraagde bron kon niet worden gevonden';
75
+ break;
76
+ case 415:
77
+ this.label = 'Mediatype niet ondersteund';
78
+ this.message = this.value.error;
79
+ break;
80
+ case 500: {
81
+ this.label = this.value.error?.title ?? 'Fout bij afhandeling';
82
+ const errorDetail = this.value.error?.exceptionLogCode;
83
+ if (errorDetail && errorDetail.match(/[A-Z0-9]{6}/g)) {
84
+ this.errorCode = `${errorDetail.slice(0, 2)}-${errorDetail.slice(2, 4)}-${errorDetail.slice(4)}`;
85
+ }
86
+ else {
87
+ this.message = this.value.error?.detail;
88
+ }
89
+ break;
90
+ }
91
+ default:
92
+ this.label = 'Onbekende fout';
93
+ this.message = 'Status: ' + this.value.status;
94
+ break;
95
+ }
96
+ }
97
+ }
98
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: BdbAlertErrorResponseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
99
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: BdbAlertErrorResponseComponent, isStandalone: true, selector: "bdb-alert-error-response", inputs: { value: "value" }, usesOnChanges: true, ngImport: i0, template: "<bdb-alert [color]=\"color\" [icon]=\"icon\" [label]=\"label\" *ngIf=\"value\">\r\n <ng-container [ngSwitch]=\"value.status\">\r\n <ng-container *ngSwitchCase=\"400\">\r\n <div *ngFor=\"let message of validationFailures()\">{{ message }}</div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"500\">\r\n <div *ngIf=\"errorCode; else displayMessage\">\r\n Foutcode voor technische ondersteuning: <strong>{{ errorCode }}</strong>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"displayMessage\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</bdb-alert>\r\n\r\n<ng-template #displayMessage>\r\n {{ message }}\r\n</ng-template>\r\n", styles: [".alert{padding:8px;border-radius:4px;border:1px solid}.alert.warn{background-color:#fbe9e7;border-color:#d84315}.alert.danger{background-color:#ffebee;border-color:#c62828}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: BdbAlertComponent, selector: "bdb-alert", inputs: ["color", "label", "icon", "inline"] }] }); }
100
+ }
101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: BdbAlertErrorResponseComponent, decorators: [{
102
+ type: Component,
103
+ args: [{ selector: 'bdb-alert-error-response', standalone: true, imports: [CommonModule, BdbAlertComponent], template: "<bdb-alert [color]=\"color\" [icon]=\"icon\" [label]=\"label\" *ngIf=\"value\">\r\n <ng-container [ngSwitch]=\"value.status\">\r\n <ng-container *ngSwitchCase=\"400\">\r\n <div *ngFor=\"let message of validationFailures()\">{{ message }}</div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"500\">\r\n <div *ngIf=\"errorCode; else displayMessage\">\r\n Foutcode voor technische ondersteuning: <strong>{{ errorCode }}</strong>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"displayMessage\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</bdb-alert>\r\n\r\n<ng-template #displayMessage>\r\n {{ message }}\r\n</ng-template>\r\n", styles: [".alert{padding:8px;border-radius:4px;border:1px solid}.alert.warn{background-color:#fbe9e7;border-color:#d84315}.alert.danger{background-color:#ffebee;border-color:#c62828}\n"] }]
104
+ }], propDecorators: { value: [{
105
+ type: Input
106
+ }] } });
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmRiLWFsZXJ0LWVycm9yLXJlc3BvbnNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhZGFib29tL3NyYy9saWIvY29tbW9uL2FsZXJ0LWVycm9yLXJlc3BvbnNlL2JkYi1hbGVydC1lcnJvci1yZXNwb25zZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWRhYm9vbS9zcmMvbGliL2NvbW1vbi9hbGVydC1lcnJvci1yZXNwb25zZS9iZGItYWxlcnQtZXJyb3ItcmVzcG9uc2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7QUFHakUsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDO0FBQ25DLE1BQU0sZUFBZSxHQUFHLG1CQUFtQixDQUFDO0FBQzVDLE1BQU0sc0JBQXNCLEdBQUcsMkJBQTJCLENBQUM7QUFDM0QsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDO0FBb0IvQixNQUFNLE9BQU8sOEJBQThCO0lBUDNDO1FBU0UsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFcEIsVUFBSyxHQUFlLFFBQVEsQ0FBQztRQUM3QixTQUFJLEdBQUcsZUFBZSxDQUFDO1FBQ3ZCLFVBQUssR0FBRyxnQkFBZ0IsQ0FBQztRQUN6QixZQUFPLEdBQUcsRUFBRSxDQUFDO0tBK0VkO0lBNUVDLGtCQUFrQjtRQUNoQixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDOUQs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RSxpQkFBaUIsQ0FBQzs4QkFLakMsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBCZGJBbGVydENvbXBvbmVudCB9IGZyb20gJy4uL2FsZXJ0L2JkYi1hbGVydC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCZGJQYWxldHRlIH0gZnJvbSAnLi4vYmRiLXBhbGV0dGUnO1xyXG5cclxuY29uc3QgTG9naW5GYWlsZWQgPSAnTE9HSU5fRkFJTEVEJztcclxuY29uc3QgTG9naW5Ob3RBbGxvd2VkID0gJ0xPR0lOX05PVF9BTExPV0VEJztcclxuY29uc3QgTG9naW5SZXF1aXJlZFR3b0ZhY3RvciA9ICdMT0dJTl9SRVFVSVJFU19UV09fRkFDVE9SJztcclxuY29uc3QgTG9ja2VkT3V0ID0gJ0xPQ0tFRF9PVVQnO1xyXG5cclxudHlwZSBQcm9ibGVtRGV0YWlscyA9IHtcclxuICB0eXBlPzogc3RyaW5nO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIHN0YXR1cz86IG51bWJlcjtcclxuICBkZXRhaWw/OiBzdHJpbmc7XHJcbiAgaW5zdGFuY2U/OiBzdHJpbmc7XHJcbiAgZXJyb3JzPzoge1xyXG4gICAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcclxuICB9O1xyXG59O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiZGItYWxlcnQtZXJyb3ItcmVzcG9uc2UnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQmRiQWxlcnRDb21wb25lbnRdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9iZGItYWxlcnQtZXJyb3ItcmVzcG9uc2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2JkYi1hbGVydC1lcnJvci1yZXNwb25zZS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmRiQWxlcnRFcnJvclJlc3BvbnNlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSB2YWx1ZTogSHR0cEVycm9yUmVzcG9uc2UgfCB1bmRlZmluZWQgfCBudWxsO1xyXG4gIGxvZ2luRmFpbGVkID0gZmFsc2U7XHJcblxyXG4gIGNvbG9yOiBCZGJQYWxldHRlID0gJ2Rhbmdlcic7XHJcbiAgaWNvbiA9ICdlcnJvcl9vdXRsaW5lJztcclxuICBsYWJlbCA9ICdPbmJla2VuZGUgZm91dCc7XHJcbiAgbWVzc2FnZSA9ICcnO1xyXG4gIGVycm9yQ29kZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuICB2YWxpZGF0aW9uRmFpbHVyZXMoKTogc3RyaW5nW10gfCBudWxsIHtcclxuICAgIGlmICh0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUuZXJyb3IgJiYgdGhpcy52YWx1ZS5lcnJvci5lcnJvcnMpIHtcclxuICAgICAgY29uc3QgcmV0OiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICBjb25zdCBwZCA9IHRoaXMudmFsdWUuZXJyb3IgYXMgUHJvYmxlbURldGFpbHM7XHJcbiAgICAgIGlmIChwZC5lcnJvcnMpIHtcclxuICAgICAgICBjb25zdCBlcnJvcnMgPSBwZC5lcnJvcnM7XHJcbiAgICAgICAgT2JqZWN0LmtleXMoZXJyb3JzKS5mb3JFYWNoKCh4OiBzdHJpbmcpID0+IHJldC5wdXNoKGAke2Vycm9yc1t4XX1gKSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHJldDtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmVycm9yQ29kZSA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuY29sb3IgPSAnZGFuZ2VyJztcclxuICAgIGlmICh0aGlzLnZhbHVlKSB7XHJcbiAgICAgIHN3aXRjaCAodGhpcy52YWx1ZS5zdGF0dXMpIHtcclxuICAgICAgICBjYXNlIDA6XHJcbiAgICAgICAgICB0aGlzLmxhYmVsID0gJ0NvbW11bmljYXRpZSBtaXNsdWt0JztcclxuICAgICAgICAgIHRoaXMubWVzc2FnZSA9ICdDb250cm9sZWVyIHV3IGludGVybmV0dmVyYmluZGluZyc7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIDQwMDpcclxuICAgICAgICAgIHRoaXMuY29sb3IgPSAnd2Fybic7XHJcbiAgICAgICAgICB0aGlzLmljb24gPSAnd2FybmluZyc7XHJcbiAgICAgICAgICB0aGlzLmxhYmVsID0gJ0ludm9lcmZvdXQnO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSA0MDE6XHJcbiAgICAgICAgICBpZiAodGhpcy52YWx1ZS5lcnJvciA9PT0gTG9naW5GYWlsZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5sYWJlbCA9ICdJbmxvZ2dlbiBtaXNsdWt0JztcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlID0gJ0NvbnRyb2xlZXIgZ2VnZXZlbnMgZW4gcHJvYmVlciBvcG5pZXV3JztcclxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy52YWx1ZS5lcnJvciA9PT0gTG9naW5Ob3RBbGxvd2VkKSB7XHJcbiAgICAgICAgICAgIHRoaXMubGFiZWwgPSAnSW5sb2dnZW4gbWlzbHVrdCc7XHJcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZSA9ICdMb2dpbiBuaWV0IHRvZWdlc3RhYW4nO1xyXG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnZhbHVlLmVycm9yID09PSBMb2NrZWRPdXQpIHtcclxuICAgICAgICAgICAgdGhpcy5jb2xvciA9ICd3YXJuJztcclxuICAgICAgICAgICAgdGhpcy5pY29uID0gJ3dhcm5pbmcnO1xyXG4gICAgICAgICAgICB0aGlzLmxhYmVsID0gJ1RpamRlbGlqayBnZWJsb2trZWVyZCc7XHJcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZSA9ICdUZSB2ZWVsIG1pc2x1a3RlIGlubG9ncG9naW5nZW4nO1xyXG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnZhbHVlLmVycm9yID09PSBMb2dpblJlcXVpcmVkVHdvRmFjdG9yKSB7XHJcbiAgICAgICAgICAgIHRoaXMubGFiZWwgPSAnSW5sb2dnZW4gbWlzbHVrdCc7XHJcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZSA9ICdUd2Vlc3RhcHN2ZXJpZmljYXRpZSB2ZXJlaXN0JztcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubGFiZWwgPSAnT25iZXZvZWdkJztcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlID0gJ1UgYmVudCBuaWV0IGJldm9lZ2Qgdm9vciBkZSBnZXZyYWFnZGUgYWN0aWUnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSA0MDM6XHJcbiAgICAgICAgICB0aGlzLmxhYmVsID0gJ1RvZWdhbmcgZ2V3ZWlnZXJkJztcclxuICAgICAgICAgIHRoaXMubWVzc2FnZSA9ICdPbnZvbGRvZW5kZSByZWNodGVuIHZvb3IgZGUgZ2V2cmFhZ2RlIGFjdGllJztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgNDA0OlxyXG4gICAgICAgICAgdGhpcy5sYWJlbCA9ICdOaWV0IGdldm9uZGVuJztcclxuICAgICAgICAgIHRoaXMubWVzc2FnZSA9ICdEZSBvcGdldnJhYWdkZSBicm9uIGtvbiBuaWV0IHdvcmRlbiBnZXZvbmRlbic7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIDQxNTpcclxuICAgICAgICAgIHRoaXMubGFiZWwgPSAnTWVkaWF0eXBlIG5pZXQgb25kZXJzdGV1bmQnO1xyXG4gICAgICAgICAgdGhpcy5tZXNzYWdlID0gdGhpcy52YWx1ZS5lcnJvcjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgNTAwOiB7XHJcbiAgICAgICAgICB0aGlzLmxhYmVsID0gdGhpcy52YWx1ZS5lcnJvcj8udGl0bGUgPz8gJ0ZvdXQgYmlqIGFmaGFuZGVsaW5nJztcclxuICAgICAgICAgIGNvbnN0IGVycm9yRGV0YWlsID0gdGhpcy52YWx1ZS5lcnJvcj8uZXhjZXB0aW9uTG9nQ29kZTtcclxuICAgICAgICAgIGlmIChlcnJvckRldGFpbCAmJiBlcnJvckRldGFpbC5tYXRjaCgvW0EtWjAtOV17Nn0vZykpIHtcclxuICAgICAgICAgICAgdGhpcy5lcnJvckNvZGUgPSBgJHtlcnJvckRldGFpbC5zbGljZSgwLCAyKX0tJHtlcnJvckRldGFpbC5zbGljZSgyLCA0KX0tJHtlcnJvckRldGFpbC5zbGljZSg0KX1gO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlID0gdGhpcy52YWx1ZS5lcnJvcj8uZGV0YWlsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICB0aGlzLmxhYmVsID0gJ09uYmVrZW5kZSBmb3V0JztcclxuICAgICAgICAgIHRoaXMubWVzc2FnZSA9ICdTdGF0dXM6ICcgKyB0aGlzLnZhbHVlLnN0YXR1cztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxiZGItYWxlcnQgW2NvbG9yXT1cImNvbG9yXCIgW2ljb25dPVwiaWNvblwiIFtsYWJlbF09XCJsYWJlbFwiICpuZ0lmPVwidmFsdWVcIj5cclxuICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJ2YWx1ZS5zdGF0dXNcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIjQwMFwiPlxyXG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBtZXNzYWdlIG9mIHZhbGlkYXRpb25GYWlsdXJlcygpXCI+e3sgbWVzc2FnZSB9fTwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCI1MDBcIj5cclxuICAgICAgPGRpdiAqbmdJZj1cImVycm9yQ29kZTsgZWxzZSBkaXNwbGF5TWVzc2FnZVwiPlxyXG4gICAgICAgIEZvdXRjb2RlIHZvb3IgdGVjaG5pc2NoZSBvbmRlcnN0ZXVuaW5nOiA8c3Ryb25nPnt7IGVycm9yQ29kZSB9fTwvc3Ryb25nPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGlzcGxheU1lc3NhZ2VcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L2JkYi1hbGVydD5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGlzcGxheU1lc3NhZ2U+XHJcbiAge3sgbWVzc2FnZSB9fVxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -0,0 +1,24 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class BdbFlexChildDirective {
4
+ constructor(element, renderer) {
5
+ this.element = element;
6
+ this.renderer = renderer;
7
+ this.bdbFlexChild = '';
8
+ }
9
+ ngOnInit() {
10
+ this.renderer.setStyle(this.element.nativeElement, 'flex', this.bdbFlexChild);
11
+ }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: BdbFlexChildDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
13
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.1", type: BdbFlexChildDirective, isStandalone: true, selector: "[bdbFlexChild]", inputs: { bdbFlexChild: "bdbFlexChild" }, ngImport: i0 }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: BdbFlexChildDirective, decorators: [{
16
+ type: Directive,
17
+ args: [{
18
+ selector: '[bdbFlexChild]',
19
+ standalone: true,
20
+ }]
21
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { bdbFlexChild: [{
22
+ type: Input
23
+ }] } });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmRiLWZsZXgtY2hpbGQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFkYWJvb20vc3JjL2xpYi9jb21tb24vYmRiLWZsZXgtY2hpbGQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQzs7QUFNaEYsTUFBTSxPQUFPLHFCQUFxQjtJQUdoQyxZQUNVLE9BQW1CLEVBQ25CLFFBQW1CO1FBRG5CLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUpwQixpQkFBWSxHQUFHLEVBQUUsQ0FBQztJQUt4QixDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEYsQ0FBQzs4R0FWVSxxQkFBcUI7a0dBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFKakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixVQUFVLEVBQUUsSUFBSTtpQkFDakI7dUdBRVUsWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tiZGJGbGV4Q2hpbGRdJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmRiRmxleENoaWxkRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBiZGJGbGV4Q2hpbGQgPSAnJztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjJcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2ZsZXgnLCB0aGlzLmJkYkZsZXhDaGlsZCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,112 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { LayoutError } from './layout-error';
3
+ import * as i0 from "@angular/core";
4
+ const DEFAULT_FLEX_DIRECTION = 'row';
5
+ const DEFAULT_FLEX_GAP = '';
6
+ const DEFAULT_FLEX_SPACING = {
7
+ justify: 'start',
8
+ align: 'stretch',
9
+ };
10
+ export class BdbFlexDirective {
11
+ constructor(element, renderer) {
12
+ this.element = element;
13
+ this.renderer = renderer;
14
+ this.bdbFlex = '';
15
+ this.bdbFlexDirection = '';
16
+ this.bdbFlexGap = '';
17
+ this.bdbFlexSpacing = '';
18
+ }
19
+ ngOnInit() {
20
+ this.renderer.setStyle(this.element.nativeElement, 'display', 'flex');
21
+ const bdbFlexInputs = this.bdbFlex.split(' ').filter(x => !!x);
22
+ this.setDirection(bdbFlexInputs[0]);
23
+ this.setGap(bdbFlexInputs[1]);
24
+ this.setSpacing({
25
+ justify: bdbFlexInputs[2],
26
+ align: bdbFlexInputs[3],
27
+ });
28
+ }
29
+ setDirection(bdbFlexInput) {
30
+ const direction = this.validateDirection(this.getDirection(bdbFlexInput));
31
+ this.renderer.setStyle(this.element.nativeElement, 'flex-direction', direction);
32
+ }
33
+ getDirection(bdbFlexInput) {
34
+ const trimmedBdbFlexDirection = this.bdbFlexDirection.trim();
35
+ if (trimmedBdbFlexDirection) {
36
+ return trimmedBdbFlexDirection;
37
+ }
38
+ if (bdbFlexInput) {
39
+ return bdbFlexInput;
40
+ }
41
+ return DEFAULT_FLEX_DIRECTION;
42
+ }
43
+ validateDirection(direction) {
44
+ switch (direction) {
45
+ case 'row':
46
+ return 'row';
47
+ case 'col':
48
+ return 'column';
49
+ default:
50
+ throw new LayoutError(`'${direction}' is not a valid value for flex direction`);
51
+ }
52
+ }
53
+ setGap(bdbFlexInput) {
54
+ const gap = this.validateGap(this.getGap(bdbFlexInput));
55
+ this.renderer.setStyle(this.element.nativeElement, 'gap', gap);
56
+ }
57
+ getGap(bdbFlexInput) {
58
+ const trimmedBdbFlexGap = this.bdbFlexGap.trim();
59
+ if (trimmedBdbFlexGap) {
60
+ return trimmedBdbFlexGap;
61
+ }
62
+ if (bdbFlexInput) {
63
+ return bdbFlexInput;
64
+ }
65
+ return DEFAULT_FLEX_GAP;
66
+ }
67
+ validateGap(gap) {
68
+ return gap;
69
+ }
70
+ setSpacing(bdbFlexInput) {
71
+ const spacing = this.validateSpacing(this.getSpacing(bdbFlexInput));
72
+ this.renderer.setStyle(this.element.nativeElement, 'align-items', spacing.align);
73
+ this.renderer.setStyle(this.element.nativeElement, 'justify-content', spacing.justify);
74
+ }
75
+ getSpacing(bdbFlexInput) {
76
+ const splitBdbFlexSpacing = this.bdbFlexSpacing.split(' ').filter(x => !!x);
77
+ if (splitBdbFlexSpacing.length === 2) {
78
+ return {
79
+ align: splitBdbFlexSpacing[0],
80
+ justify: splitBdbFlexSpacing[1],
81
+ };
82
+ }
83
+ if (bdbFlexInput.align && bdbFlexInput.justify) {
84
+ return {
85
+ align: bdbFlexInput.align,
86
+ justify: bdbFlexInput.justify,
87
+ };
88
+ }
89
+ return DEFAULT_FLEX_SPACING;
90
+ }
91
+ validateSpacing(spacing) {
92
+ return spacing;
93
+ }
94
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: BdbFlexDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
95
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.1", type: BdbFlexDirective, isStandalone: true, selector: "[bdbFlex], [bdbFlexDirection], [bdbFlexGap], [bdbFlexSpacing]", inputs: { bdbFlex: "bdbFlex", bdbFlexDirection: "bdbFlexDirection", bdbFlexGap: "bdbFlexGap", bdbFlexSpacing: "bdbFlexSpacing" }, ngImport: i0 }); }
96
+ }
97
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: BdbFlexDirective, decorators: [{
98
+ type: Directive,
99
+ args: [{
100
+ selector: '[bdbFlex], [bdbFlexDirection], [bdbFlexGap], [bdbFlexSpacing]',
101
+ standalone: true,
102
+ }]
103
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { bdbFlex: [{
104
+ type: Input
105
+ }], bdbFlexDirection: [{
106
+ type: Input
107
+ }], bdbFlexGap: [{
108
+ type: Input
109
+ }], bdbFlexSpacing: [{
110
+ type: Input
111
+ }] } });
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmRiLWZsZXguZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFkYWJvb20vc3JjL2xpYi9jb21tb24vYmRiLWZsZXguZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBTzdDLE1BQU0sc0JBQXNCLEdBQUcsS0FBSyxDQUFDO0FBQ3JDLE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO0FBQzVCLE1BQU0sb0JBQW9CLEdBQWdCO0lBQ3hDLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLEtBQUssRUFBRSxTQUFTO0NBQ2pCLENBQUM7QUFNRixNQUFNLE9BQU8sZ0JBQWdCO0lBTTNCLFlBQ1UsT0FBbUIsRUFDbkIsUUFBbUI7UUFEbkIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBUHBCLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFDYixxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDdEIsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixtQkFBYyxHQUFHLEVBQUUsQ0FBQztJQUsxQixDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUV0RSxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFL0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FB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QUFLLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE9BQU87Z0JBQ0wsS0FBSyxFQUFFLG1CQUFtQixDQUFDLENBQUMsQ0FBQztnQkFDN0IsT0FBTyxFQUFFLG1CQUFtQixDQUFDLENBQUMsQ0FBQzthQUNoQyxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksWUFBWSxDQUFDLEtBQUssSUFBSSxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDL0MsT0FBTztnQkFDTCxLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUs7Z0JBQ3pCLE9BQU8sRUFBRSxZQUFZLENBQUMsT0FBTzthQUM5QixDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sb0JBQW9CLENBQUM7SUFDOUIsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFvQjtRQUNsQyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOzhHQXpHVSxnQkFBZ0I7a0dBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFKNUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsK0RBQStEO29CQUN6RSxVQUFVLEVBQUUsSUFBSTtpQkFDakI7dUdBRVUsT0FBTztzQkFBZixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMYXlvdXRFcnJvciB9IGZyb20gJy4vbGF5b3V0LWVycm9yJztcclxuXHJcbnR5cGUgRmxleFNwYWNpbmcgPSB7XHJcbiAgYWxpZ246IHN0cmluZztcclxuICBqdXN0aWZ5OiBzdHJpbmc7XHJcbn07XHJcblxyXG5jb25zdCBERUZBVUxUX0ZMRVhfRElSRUNUSU9OID0gJ3Jvdyc7XHJcbmNvbnN0IERFRkFVTFRfRkxFWF9HQVAgPSAnJztcclxuY29uc3QgREVGQVVMVF9GTEVYX1NQQUNJTkc6IEZsZXhTcGFjaW5nID0ge1xyXG4gIGp1c3RpZnk6ICdzdGFydCcsXHJcbiAgYWxpZ246ICdzdHJldGNoJyxcclxufTtcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2JkYkZsZXhdLCBbYmRiRmxleERpcmVjdGlvbl0sIFtiZGJGbGV4R2FwXSwgW2JkYkZsZXhTcGFjaW5nXScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJkYkZsZXhEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGJkYkZsZXggPSAnJztcclxuICBASW5wdXQoKSBiZGJGbGV4RGlyZWN0aW9uID0gJyc7XHJcbiAgQElucHV0KCkgYmRiRmxleEdhcCA9ICcnO1xyXG4gIEBJbnB1dCgpIGJkYkZsZXhTcGFjaW5nID0gJyc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdkaXNwbGF5JywgJ2ZsZXgnKTtcclxuXHJcbiAgICBjb25zdCBiZGJGbGV4SW5wdXRzID0gdGhpcy5iZGJGbGV4LnNwbGl0KCcgJykuZmlsdGVyKHggPT4gISF4KTtcclxuXHJcbiAgICB0aGlzLnNldERpcmVjdGlvbihiZGJGbGV4SW5wdXRzWzBdKTtcclxuICAgIHRoaXMuc2V0R2FwKGJkYkZsZXhJbnB1dHNbMV0pO1xyXG4gICAgdGhpcy5zZXRTcGFjaW5nKHtcclxuICAgICAganVzdGlmeTogYmRiRmxleElucHV0c1syXSxcclxuICAgICAgYWxpZ246IGJkYkZsZXhJbnB1dHNbM10sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldERpcmVjdGlvbihiZGJGbGV4SW5wdXQ/OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRpcmVjdGlvbiA9IHRoaXMudmFsaWRhdGVEaXJlY3Rpb24odGhpcy5nZXREaXJlY3Rpb24oYmRiRmxleElucHV0KSk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCAnZmxleC1kaXJlY3Rpb24nLCBkaXJlY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGlyZWN0aW9uKGJkYkZsZXhJbnB1dD86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB0cmltbWVkQmRiRmxleERpcmVjdGlvbiA9IHRoaXMuYmRiRmxleERpcmVjdGlvbi50cmltKCk7XHJcblxyXG4gICAgaWYgKHRyaW1tZWRCZGJGbGV4RGlyZWN0aW9uKSB7XHJcbiAgICAgIHJldHVybiB0cmltbWVkQmRiRmxleERpcmVjdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoYmRiRmxleElucHV0KSB7XHJcbiAgICAgIHJldHVybiBiZGJGbGV4SW5wdXQ7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIERFRkFVTFRfRkxFWF9ESVJFQ1RJT047XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZURpcmVjdGlvbihkaXJlY3Rpb246IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBzd2l0Y2ggKGRpcmVjdGlvbikge1xyXG4gICAgICBjYXNlICdyb3cnOlxyXG4gICAgICAgIHJldHVybiAncm93JztcclxuICAgICAgY2FzZSAnY29sJzpcclxuICAgICAgICByZXR1cm4gJ2NvbHVtbic7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgdGhyb3cgbmV3IExheW91dEVycm9yKGAnJHtkaXJlY3Rpb259JyBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgZmxleCBkaXJlY3Rpb25gKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldEdhcChiZGJGbGV4SW5wdXQ/OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGdhcCA9IHRoaXMudmFsaWRhdGVHYXAodGhpcy5nZXRHYXAoYmRiRmxleElucHV0KSk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCAnZ2FwJywgZ2FwKTtcclxuICB9XHJcblxyXG4gIGdldEdhcChiZGJGbGV4SW5wdXQ/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgdHJpbW1lZEJkYkZsZXhHYXAgPSB0aGlzLmJkYkZsZXhHYXAudHJpbSgpO1xyXG5cclxuICAgIGlmICh0cmltbWVkQmRiRmxleEdhcCkge1xyXG4gICAgICByZXR1cm4gdHJpbW1lZEJkYkZsZXhHYXA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGJkYkZsZXhJbnB1dCkge1xyXG4gICAgICByZXR1cm4gYmRiRmxleElucHV0O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBERUZBVUxUX0ZMRVhfR0FQO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVHYXAoZ2FwOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGdhcDtcclxuICB9XHJcblxyXG4gIHNldFNwYWNpbmcoYmRiRmxleElucHV0OiBQYXJ0aWFsPEZsZXhTcGFjaW5nPik6IHZvaWQge1xyXG4gICAgY29uc3Qgc3BhY2luZyA9IHRoaXMudmFsaWRhdGVTcGFjaW5nKHRoaXMuZ2V0U3BhY2luZyhiZGJGbGV4SW5wdXQpKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdhbGlnbi1pdGVtcycsIHNwYWNpbmcuYWxpZ24pO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2p1c3RpZnktY29udGVudCcsIHNwYWNpbmcuanVzdGlmeSk7XHJcbiAgfVxyXG5cclxuICBnZXRTcGFjaW5nKGJkYkZsZXhJbnB1dDogUGFydGlhbDxGbGV4U3BhY2luZz4pOiBGbGV4U3BhY2luZyB7XHJcbiAgICBjb25zdCBzcGxpdEJkYkZsZXhTcGFjaW5nID0gdGhpcy5iZGJGbGV4U3BhY2luZy5zcGxpdCgnICcpLmZpbHRlcih4ID0+ICEheCk7XHJcblxyXG4gICAgaWYgKHNwbGl0QmRiRmxleFNwYWNpbmcubGVuZ3RoID09PSAyKSB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgYWxpZ246IHNwbGl0QmRiRmxleFNwYWNpbmdbMF0sXHJcbiAgICAgICAganVzdGlmeTogc3BsaXRCZGJGbGV4U3BhY2luZ1sxXSxcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoYmRiRmxleElucHV0LmFsaWduICYmIGJkYkZsZXhJbnB1dC5qdXN0aWZ5KSB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgYWxpZ246IGJkYkZsZXhJbnB1dC5hbGlnbixcclxuICAgICAgICBqdXN0aWZ5OiBiZGJGbGV4SW5wdXQuanVzdGlmeSxcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gREVGQVVMVF9GTEVYX1NQQUNJTkc7XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZVNwYWNpbmcoc3BhY2luZzogRmxleFNwYWNpbmcpOiBGbGV4U3BhY2luZyB7XHJcbiAgICByZXR1cm4gc3BhY2luZztcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,74 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/forms";
4
+ const errorMessageMap = new Map([
5
+ ['required', 'Verplicht'],
6
+ ['email', 'Ongeldig e-mail'],
7
+ ['phone', 'Ongeldig tel.nr'],
8
+ ['requiredTrue', 'Verplicht'],
9
+ ['pattern', 'Ongeldig'],
10
+ ]);
11
+ function getErrorMessage(validationErrorKey, validationErrorValue) {
12
+ switch (validationErrorKey) {
13
+ case 'minlength':
14
+ return `Minimum lengte: ${validationErrorValue['requiredLength']}`;
15
+ case 'maxlength':
16
+ return `Maximum lengte: ${validationErrorValue['requiredLength']}`;
17
+ case 'max':
18
+ return `Max: ${validationErrorValue['max']}`;
19
+ case 'min':
20
+ return `Min: ${validationErrorValue['min']}`;
21
+ case 'custom':
22
+ return `${validationErrorValue}`;
23
+ default:
24
+ return errorMessageMap.get(validationErrorKey) ?? validationErrorKey;
25
+ }
26
+ }
27
+ export class BdbFormErrorDirective {
28
+ constructor(element, renderer, controlContainer) {
29
+ this.element = element;
30
+ this.renderer = renderer;
31
+ this.controlContainer = controlContainer;
32
+ }
33
+ ngOnInit() {
34
+ if (!this.bdbFormError) {
35
+ throw new Error('No (name for) formcontrol provided');
36
+ }
37
+ if (typeof this.bdbFormError === 'string') {
38
+ const ctrl = this.controlContainer.control?.get(this.bdbFormError);
39
+ if (!ctrl) {
40
+ throw new Error(`No formcontrol found for name '${this.bdbFormError}'`);
41
+ }
42
+ this.control = ctrl;
43
+ }
44
+ else {
45
+ this.control = this.bdbFormError;
46
+ }
47
+ this.setError();
48
+ this.control.statusChanges.subscribe({
49
+ next: () => this.setError(),
50
+ });
51
+ }
52
+ setError() {
53
+ const validationErrors = this.control.errors;
54
+ if (!validationErrors) {
55
+ return;
56
+ }
57
+ const validationErrorKey = Object.keys(validationErrors)[0];
58
+ const validationErrorValue = validationErrors[validationErrorKey];
59
+ const errorMessage = getErrorMessage(validationErrorKey, validationErrorValue);
60
+ this.renderer.setProperty(this.element.nativeElement, 'innerText', errorMessage);
61
+ }
62
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: BdbFormErrorDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.ControlContainer }], target: i0.ɵɵFactoryTarget.Directive }); }
63
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.1", type: BdbFormErrorDirective, isStandalone: true, selector: "[bdbFormError]", inputs: { bdbFormError: "bdbFormError" }, ngImport: i0 }); }
64
+ }
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: BdbFormErrorDirective, decorators: [{
66
+ type: Directive,
67
+ args: [{
68
+ selector: '[bdbFormError]',
69
+ standalone: true,
70
+ }]
71
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.ControlContainer }], propDecorators: { bdbFormError: [{
72
+ type: Input
73
+ }] } });
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmRiLWZvcm0tZXJyb3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFkYWJvb20vc3JjL2xpYi9jb21tb24vYmRiLWZvcm0tZXJyb3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQzs7O0FBR2hGLE1BQU0sZUFBZSxHQUFHLElBQUksR0FBRyxDQUFDO0lBQzlCLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQztJQUN6QixDQUFDLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQztJQUM1QixDQUFDLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQztJQUM1QixDQUFDLGNBQWMsRUFBRSxXQUFXLENBQUM7SUFDN0IsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDO0NBQ3hCLENBQUMsQ0FBQztBQUVILFNBQVMsZUFBZSxDQUFDLGtCQUEwQixFQUFFLG9CQUFnRDtJQUNuRyxRQUFRLGtCQUFrQixFQUFFLENBQUM7UUFDM0IsS0FBSyxXQUFXO1lBQ2QsT0FBTyxtQkFBbUIsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO1FBQ3JFLEtBQUssV0FBVztZQUNkLE9BQU8sbUJBQW1CLG9CQUFvQixDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztRQUNyRSxLQUFLLEtBQUs7WUFDUixPQUFPLFFBQVEsb0JBQW9CLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMvQyxLQUFLLEtBQUs7WUFDUixPQUFPLFFBQVEsb0JBQW9CLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMvQyxLQUFLLFFBQVE7WUFDWCxPQUFPLEdBQUcsb0JBQW9CLEVBQUUsQ0FBQztRQUNuQztZQUNFLE9BQU8sZUFBZSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLGtCQUFrQixDQUFDO0lBQ3pFLENBQUM7QUFDSCxDQUFDO0FBTUQsTUFBTSxPQUFPLHFCQUFxQjtJQUtoQyxZQUNVLE9BQW1CLEVBQ25CLFFBQW1CLEVBQ25CLGdCQUFrQztRQUZsQyxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ25CLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUN6QyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFFRCxJQUFJLE9BQU8sSUFBSSxDQUFDLFlBQVksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMxQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFFbkUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1lBQzFFLENBQUM7WUFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUN0QixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUNuQyxDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWhCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztZQUNuQyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtTQUM1QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFFN0MsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDdEIsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU1RCxNQUFNLG9CQUFvQixHQUFHLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFbEUsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLGtCQUFrQixFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFFL0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ25GLENBQUM7OEdBakRVLHFCQUFxQjtrR0FBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQUpqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjtzSUFFVSxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBDb250cm9sQ29udGFpbmVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuY29uc3QgZXJyb3JNZXNzYWdlTWFwID0gbmV3IE1hcChbXHJcbiAgWydyZXF1aXJlZCcsICdWZXJwbGljaHQnXSxcclxuICBbJ2VtYWlsJywgJ09uZ2VsZGlnIGUtbWFpbCddLFxyXG4gIFsncGhvbmUnLCAnT25nZWxkaWcgdGVsLm5yJ10sXHJcbiAgWydyZXF1aXJlZFRydWUnLCAnVmVycGxpY2h0J10sXHJcbiAgWydwYXR0ZXJuJywgJ09uZ2VsZGlnJ10sXHJcbl0pO1xyXG5cclxuZnVuY3Rpb24gZ2V0RXJyb3JNZXNzYWdlKHZhbGlkYXRpb25FcnJvcktleTogc3RyaW5nLCB2YWxpZGF0aW9uRXJyb3JWYWx1ZTogeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH0pOiBzdHJpbmcge1xyXG4gIHN3aXRjaCAodmFsaWRhdGlvbkVycm9yS2V5KSB7XHJcbiAgICBjYXNlICdtaW5sZW5ndGgnOlxyXG4gICAgICByZXR1cm4gYE1pbmltdW0gbGVuZ3RlOiAke3ZhbGlkYXRpb25FcnJvclZhbHVlWydyZXF1aXJlZExlbmd0aCddfWA7XHJcbiAgICBjYXNlICdtYXhsZW5ndGgnOlxyXG4gICAgICByZXR1cm4gYE1heGltdW0gbGVuZ3RlOiAke3ZhbGlkYXRpb25FcnJvclZhbHVlWydyZXF1aXJlZExlbmd0aCddfWA7XHJcbiAgICBjYXNlICdtYXgnOlxyXG4gICAgICByZXR1cm4gYE1heDogJHt2YWxpZGF0aW9uRXJyb3JWYWx1ZVsnbWF4J119YDtcclxuICAgIGNhc2UgJ21pbic6XHJcbiAgICAgIHJldHVybiBgTWluOiAke3ZhbGlkYXRpb25FcnJvclZhbHVlWydtaW4nXX1gO1xyXG4gICAgY2FzZSAnY3VzdG9tJzpcclxuICAgICAgcmV0dXJuIGAke3ZhbGlkYXRpb25FcnJvclZhbHVlfWA7XHJcbiAgICBkZWZhdWx0OlxyXG4gICAgICByZXR1cm4gZXJyb3JNZXNzYWdlTWFwLmdldCh2YWxpZGF0aW9uRXJyb3JLZXkpID8/IHZhbGlkYXRpb25FcnJvcktleTtcclxuICB9XHJcbn1cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2JkYkZvcm1FcnJvcl0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCZGJGb3JtRXJyb3JEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGJkYkZvcm1FcnJvciE6IHN0cmluZyB8IEFic3RyYWN0Q29udHJvbDtcclxuXHJcbiAgY29udHJvbCE6IEFic3RyYWN0Q29udHJvbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcml2YXRlIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXJcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmJkYkZvcm1FcnJvcikge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIChuYW1lIGZvcikgZm9ybWNvbnRyb2wgcHJvdmlkZWQnKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodHlwZW9mIHRoaXMuYmRiRm9ybUVycm9yID09PSAnc3RyaW5nJykge1xyXG4gICAgICBjb25zdCBjdHJsID0gdGhpcy5jb250cm9sQ29udGFpbmVyLmNvbnRyb2w/LmdldCh0aGlzLmJkYkZvcm1FcnJvcik7XHJcblxyXG4gICAgICBpZiAoIWN0cmwpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIGZvcm1jb250cm9sIGZvdW5kIGZvciBuYW1lICcke3RoaXMuYmRiRm9ybUVycm9yfSdgKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5jb250cm9sID0gY3RybDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY29udHJvbCA9IHRoaXMuYmRiRm9ybUVycm9yO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2V0RXJyb3IoKTtcclxuXHJcbiAgICB0aGlzLmNvbnRyb2wuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoKSA9PiB0aGlzLnNldEVycm9yKCksXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldEVycm9yKCk6IHZvaWQge1xyXG4gICAgY29uc3QgdmFsaWRhdGlvbkVycm9ycyA9IHRoaXMuY29udHJvbC5lcnJvcnM7XHJcblxyXG4gICAgaWYgKCF2YWxpZGF0aW9uRXJyb3JzKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB2YWxpZGF0aW9uRXJyb3JLZXkgPSBPYmplY3Qua2V5cyh2YWxpZGF0aW9uRXJyb3JzKVswXTtcclxuXHJcbiAgICBjb25zdCB2YWxpZGF0aW9uRXJyb3JWYWx1ZSA9IHZhbGlkYXRpb25FcnJvcnNbdmFsaWRhdGlvbkVycm9yS2V5XTtcclxuXHJcbiAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBnZXRFcnJvck1lc3NhZ2UodmFsaWRhdGlvbkVycm9yS2V5LCB2YWxpZGF0aW9uRXJyb3JWYWx1ZSk7XHJcblxyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2lubmVyVGV4dCcsIGVycm9yTWVzc2FnZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,81 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { LinkedList } from './linked-list';
3
+ import * as i0 from "@angular/core";
4
+ export class BdbGridChildDirective {
5
+ constructor(element, renderer) {
6
+ this.element = element;
7
+ this.renderer = renderer;
8
+ this.bdbGridChild = '';
9
+ this.bdbGridRow = '';
10
+ this.bdbGridColumn = '';
11
+ }
12
+ ngOnInit() {
13
+ const axes = this.splitAxes();
14
+ let column = axes[0];
15
+ let row = axes[1];
16
+ if (this.bdbGridColumn) {
17
+ column = this.bdbGridColumn;
18
+ }
19
+ if (this.bdbGridRow) {
20
+ row = this.bdbGridRow;
21
+ }
22
+ if (column) {
23
+ this.renderer.setStyle(this.element.nativeElement, 'grid-column', column);
24
+ }
25
+ if (row) {
26
+ this.renderer.setStyle(this.element.nativeElement, 'grid-row', row);
27
+ }
28
+ }
29
+ splitAxes() {
30
+ const input = this.bdbGridChild.split(' ').filter(x => !!x);
31
+ if (!input.length) {
32
+ return [];
33
+ }
34
+ let sourceList = new LinkedList(input);
35
+ let targetList = new LinkedList();
36
+ let node = sourceList.head;
37
+ while (node) {
38
+ if (node.value === 'span' && node.next) {
39
+ targetList.push(`span ${node.next.value}`);
40
+ node = node.next;
41
+ }
42
+ else {
43
+ targetList.push(node.value);
44
+ }
45
+ node = node.next;
46
+ }
47
+ sourceList = targetList;
48
+ targetList = new LinkedList();
49
+ node = sourceList.head;
50
+ while (node) {
51
+ if (node.next && node.next.value === '/' && node.next.next) {
52
+ targetList.push(`${node.value} / ${node.next.next.value}`);
53
+ node = node.next.next;
54
+ }
55
+ else {
56
+ targetList.push(node.value);
57
+ }
58
+ node = node.next;
59
+ }
60
+ if (targetList.length !== 2 || !targetList.head || !targetList.tail) {
61
+ return [];
62
+ }
63
+ return [targetList.head.value, targetList.tail.value];
64
+ }
65
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: BdbGridChildDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
66
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.1", type: BdbGridChildDirective, isStandalone: true, selector: "[bdbGridChild], [bdbGridColumn], [bdbGridRow]", inputs: { bdbGridChild: "bdbGridChild", bdbGridRow: "bdbGridRow", bdbGridColumn: "bdbGridColumn" }, ngImport: i0 }); }
67
+ }
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: BdbGridChildDirective, decorators: [{
69
+ type: Directive,
70
+ args: [{
71
+ selector: '[bdbGridChild], [bdbGridColumn], [bdbGridRow]',
72
+ standalone: true,
73
+ }]
74
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { bdbGridChild: [{
75
+ type: Input
76
+ }], bdbGridRow: [{
77
+ type: Input
78
+ }], bdbGridColumn: [{
79
+ type: Input
80
+ }] } });
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmRiLWdyaWQtY2hpbGQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFkYWJvb20vc3JjL2xpYi9jb21tb24vYmRiLWdyaWQtY2hpbGQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU0zQyxNQUFNLE9BQU8scUJBQXFCO0lBS2hDLFlBQ1UsT0FBbUIsRUFDbkIsUUFBbUI7UUFEbkIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBTnBCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsa0JBQWEsR0FBRyxFQUFFLENBQUM7SUFLekIsQ0FBQztJQUVKLFFBQVE7UUFDTixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFOUIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVsQixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUM5QixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEIsR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDeEIsQ0FBQztRQUVELElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDNUUsQ0FBQztRQUVELElBQUksR0FBRyxFQUFFLENBQUM7WUFDUixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDdEUsQ0FBQztJQUNILENBQUM7SUFFRCxTQUFTO1FBQ1AsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTVELElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEIsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsSUFBSSxVQUFVLEdBQUcsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsSUFBSSxVQUFVLEdBQUcsSUFBSSxVQUFVLEVBQVUsQ0FBQztRQUMxQyxJQUFJLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBRTNCLE9BQU8sSUFBSSxFQUFFLENBQUM7WUFDWixJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDdkMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDM0MsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDbkIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlCLENBQUM7WUFDRCxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNuQixDQUFDO1FBRUQsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUN4QixVQUFVLEdBQUcsSUFBSSxVQUFVLEVBQVUsQ0FBQztRQUN0QyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztRQUV2QixPQUFPLElBQUksRUFBRSxDQUFDO1lBQ1osSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUMzRCxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUMzRCxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDeEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlCLENBQUM7WUFDRCxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNuQixDQUFDO1FBRUQsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDcEUsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEQsQ0FBQzs4R0F6RVUscUJBQXFCO2tHQUFyQixxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBSmpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLCtDQUErQztvQkFDekQsVUFBVSxFQUFFLElBQUk7aUJBQ2pCO3VHQUVVLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTGlua2VkTGlzdCB9IGZyb20gJy4vbGlua2VkLWxpc3QnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYmRiR3JpZENoaWxkXSwgW2JkYkdyaWRDb2x1bW5dLCBbYmRiR3JpZFJvd10nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCZGJHcmlkQ2hpbGREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGJkYkdyaWRDaGlsZCA9ICcnO1xyXG4gIEBJbnB1dCgpIGJkYkdyaWRSb3cgPSAnJztcclxuICBASW5wdXQoKSBiZGJHcmlkQ29sdW1uID0gJyc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGF4ZXMgPSB0aGlzLnNwbGl0QXhlcygpO1xyXG5cclxuICAgIGxldCBjb2x1bW4gPSBheGVzWzBdO1xyXG4gICAgbGV0IHJvdyA9IGF4ZXNbMV07XHJcblxyXG4gICAgaWYgKHRoaXMuYmRiR3JpZENvbHVtbikge1xyXG4gICAgICBjb2x1bW4gPSB0aGlzLmJkYkdyaWRDb2x1bW47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuYmRiR3JpZFJvdykge1xyXG4gICAgICByb3cgPSB0aGlzLmJkYkdyaWRSb3c7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbHVtbikge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCAnZ3JpZC1jb2x1bW4nLCBjb2x1bW4pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChyb3cpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2dyaWQtcm93Jywgcm93KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNwbGl0QXhlcygpOiBzdHJpbmdbXSB7XHJcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuYmRiR3JpZENoaWxkLnNwbGl0KCcgJykuZmlsdGVyKHggPT4gISF4KTtcclxuXHJcbiAgICBpZiAoIWlucHV0Lmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHNvdXJjZUxpc3QgPSBuZXcgTGlua2VkTGlzdChpbnB1dCk7XHJcbiAgICBsZXQgdGFyZ2V0TGlzdCA9IG5ldyBMaW5rZWRMaXN0PHN0cmluZz4oKTtcclxuICAgIGxldCBub2RlID0gc291cmNlTGlzdC5oZWFkO1xyXG5cclxuICAgIHdoaWxlIChub2RlKSB7XHJcbiAgICAgIGlmIChub2RlLnZhbHVlID09PSAnc3BhbicgJiYgbm9kZS5uZXh0KSB7XHJcbiAgICAgICAgdGFyZ2V0TGlzdC5wdXNoKGBzcGFuICR7bm9kZS5uZXh0LnZhbHVlfWApO1xyXG4gICAgICAgIG5vZGUgPSBub2RlLm5leHQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGFyZ2V0TGlzdC5wdXNoKG5vZGUudmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICAgIG5vZGUgPSBub2RlLm5leHQ7XHJcbiAgICB9XHJcblxyXG4gICAgc291cmNlTGlzdCA9IHRhcmdldExpc3Q7XHJcbiAgICB0YXJnZXRMaXN0ID0gbmV3IExpbmtlZExpc3Q8c3RyaW5nPigpO1xyXG4gICAgbm9kZSA9IHNvdXJjZUxpc3QuaGVhZDtcclxuXHJcbiAgICB3aGlsZSAobm9kZSkge1xyXG4gICAgICBpZiAobm9kZS5uZXh0ICYmIG5vZGUubmV4dC52YWx1ZSA9PT0gJy8nICYmIG5vZGUubmV4dC5uZXh0KSB7XHJcbiAgICAgICAgdGFyZ2V0TGlzdC5wdXNoKGAke25vZGUudmFsdWV9IC8gJHtub2RlLm5leHQubmV4dC52YWx1ZX1gKTtcclxuICAgICAgICBub2RlID0gbm9kZS5uZXh0Lm5leHQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGFyZ2V0TGlzdC5wdXNoKG5vZGUudmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICAgIG5vZGUgPSBub2RlLm5leHQ7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRhcmdldExpc3QubGVuZ3RoICE9PSAyIHx8ICF0YXJnZXRMaXN0LmhlYWQgfHwgIXRhcmdldExpc3QudGFpbCkge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFt0YXJnZXRMaXN0LmhlYWQudmFsdWUsIHRhcmdldExpc3QudGFpbC52YWx1ZV07XHJcbiAgfVxyXG59XHJcbiJdfQ==