@bravobit/bb-foundation 0.45.4 → 0.50.0

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 (305) hide show
  1. package/auth/lib/auth.config.d.ts +0 -2
  2. package/auth/lib/auth.service.d.ts +1 -1
  3. package/auth/lib/directives/authenticated.directive.d.ts +1 -1
  4. package/collections/lib/directives/collections-data-row.directive.d.ts +1 -1
  5. package/collections/lib/directives/collections-data.directive.d.ts +1 -1
  6. package/collections/lib/directives/collections-empty.directive.d.ts +1 -1
  7. package/collections/lib/directives/collections-error.directive.d.ts +1 -1
  8. package/collections/lib/directives/collections-initial.directive.d.ts +1 -1
  9. package/collections/lib/directives/collections-item.directive.d.ts +1 -1
  10. package/dialog/lib/dialog-container/dialog-container.component.d.ts +1 -0
  11. package/dialog/lib/dialog-overlay/dialog-overlay.component.d.ts +1 -0
  12. package/fesm2022/bravobit-bb-foundation-auth.mjs +44 -50
  13. package/fesm2022/bravobit-bb-foundation-auth.mjs.map +1 -1
  14. package/fesm2022/bravobit-bb-foundation-collections.mjs +69 -75
  15. package/fesm2022/bravobit-bb-foundation-collections.mjs.map +1 -1
  16. package/fesm2022/bravobit-bb-foundation-combobox.mjs +21 -24
  17. package/fesm2022/bravobit-bb-foundation-combobox.mjs.map +1 -1
  18. package/fesm2022/bravobit-bb-foundation-dashboard.mjs +35 -35
  19. package/fesm2022/bravobit-bb-foundation-dashboard.mjs.map +1 -1
  20. package/fesm2022/bravobit-bb-foundation-dialog.mjs +63 -47
  21. package/fesm2022/bravobit-bb-foundation-dialog.mjs.map +1 -1
  22. package/fesm2022/bravobit-bb-foundation-elements.mjs +119 -131
  23. package/fesm2022/bravobit-bb-foundation-elements.mjs.map +1 -1
  24. package/fesm2022/bravobit-bb-foundation-http.mjs +10 -10
  25. package/fesm2022/bravobit-bb-foundation-http.mjs.map +1 -1
  26. package/fesm2022/bravobit-bb-foundation-localize.mjs +25 -32
  27. package/fesm2022/bravobit-bb-foundation-localize.mjs.map +1 -1
  28. package/fesm2022/bravobit-bb-foundation-masking.mjs +19 -22
  29. package/fesm2022/bravobit-bb-foundation-masking.mjs.map +1 -1
  30. package/fesm2022/bravobit-bb-foundation-notifications.mjs +15 -17
  31. package/fesm2022/bravobit-bb-foundation-notifications.mjs.map +1 -1
  32. package/fesm2022/bravobit-bb-foundation-permissions.mjs +11 -12
  33. package/fesm2022/bravobit-bb-foundation-permissions.mjs.map +1 -1
  34. package/fesm2022/bravobit-bb-foundation-recaptcha.mjs +11 -11
  35. package/fesm2022/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
  36. package/fesm2022/bravobit-bb-foundation-rxjs.mjs.map +1 -1
  37. package/fesm2022/bravobit-bb-foundation-select.mjs +26 -30
  38. package/fesm2022/bravobit-bb-foundation-select.mjs.map +1 -1
  39. package/fesm2022/bravobit-bb-foundation-storage.mjs +16 -8
  40. package/fesm2022/bravobit-bb-foundation-storage.mjs.map +1 -1
  41. package/fesm2022/bravobit-bb-foundation-table.mjs +29 -31
  42. package/fesm2022/bravobit-bb-foundation-table.mjs.map +1 -1
  43. package/fesm2022/bravobit-bb-foundation-tooltip.mjs +12 -13
  44. package/fesm2022/bravobit-bb-foundation-tooltip.mjs.map +1 -1
  45. package/fesm2022/bravobit-bb-foundation-utils.mjs +20 -24
  46. package/fesm2022/bravobit-bb-foundation-utils.mjs.map +1 -1
  47. package/fesm2022/bravobit-bb-foundation.mjs +21 -21
  48. package/fesm2022/bravobit-bb-foundation.mjs.map +1 -1
  49. package/localize/lib/localize.config.d.ts +0 -1
  50. package/localize/lib/localize.service.d.ts +1 -1
  51. package/localize/lib/views/localize-template.directive.d.ts +1 -1
  52. package/masking/lib/masking.service.d.ts +2 -2
  53. package/notifications/lib/notifications-list/notifications-list.component.d.ts +1 -2
  54. package/package.json +25 -63
  55. package/permissions/lib/directives/permission.directive.d.ts +1 -1
  56. package/storage/lib/interfaces/strategy.interface.d.ts +1 -1
  57. package/table/lib/components/table/table.component.d.ts +2 -2
  58. package/esm2022/auth/bravobit-bb-foundation-auth.mjs +0 -5
  59. package/esm2022/auth/lib/auth.config.mjs +0 -16
  60. package/esm2022/auth/lib/auth.interceptor.mjs +0 -87
  61. package/esm2022/auth/lib/auth.module.mjs +0 -25
  62. package/esm2022/auth/lib/auth.service.mjs +0 -261
  63. package/esm2022/auth/lib/auth.session.mjs +0 -142
  64. package/esm2022/auth/lib/directives/authenticated.directive.mjs +0 -78
  65. package/esm2022/auth/lib/guards/anonymous.guard.mjs +0 -29
  66. package/esm2022/auth/lib/guards/authenticated.guard.mjs +0 -32
  67. package/esm2022/auth/lib/helpers/jwt.helper.mjs +0 -67
  68. package/esm2022/auth/lib/interfaces/config.interface.mjs +0 -4
  69. package/esm2022/auth/lib/interfaces/provider.interface.mjs +0 -2
  70. package/esm2022/auth/lib/interfaces/token.interface.mjs +0 -2
  71. package/esm2022/auth/lib/providers/email.provider.mjs +0 -27
  72. package/esm2022/auth/lib/providers/verify.provider.mjs +0 -25
  73. package/esm2022/auth/lib/tokens/use-authorization.token.mjs +0 -3
  74. package/esm2022/auth/public_api.mjs +0 -15
  75. package/esm2022/bravobit-bb-foundation.mjs +0 -5
  76. package/esm2022/collections/bravobit-bb-foundation-collections.mjs +0 -5
  77. package/esm2022/collections/lib/classes/array.collection.mjs +0 -85
  78. package/esm2022/collections/lib/collection.mjs +0 -98
  79. package/esm2022/collections/lib/collections.module.mjs +0 -84
  80. package/esm2022/collections/lib/components/collections-actions/collections-actions.component.mjs +0 -37
  81. package/esm2022/collections/lib/components/collections-grid/collections-grid.component.mjs +0 -52
  82. package/esm2022/collections/lib/components/collections-pager/collections-pager.component.mjs +0 -114
  83. package/esm2022/collections/lib/components/collections-table/collections-table.component.mjs +0 -86
  84. package/esm2022/collections/lib/components/collections-table-label/collections-table-label.component.mjs +0 -30
  85. package/esm2022/collections/lib/components/collections-table-sorting/collections-table-sorting.component.mjs +0 -65
  86. package/esm2022/collections/lib/components/collections-viewer/collections-viewer.component.mjs +0 -37
  87. package/esm2022/collections/lib/directives/collections-data-row.directive.mjs +0 -29
  88. package/esm2022/collections/lib/directives/collections-data.directive.mjs +0 -29
  89. package/esm2022/collections/lib/directives/collections-empty.directive.mjs +0 -29
  90. package/esm2022/collections/lib/directives/collections-error.directive.mjs +0 -29
  91. package/esm2022/collections/lib/directives/collections-initial.directive.mjs +0 -23
  92. package/esm2022/collections/lib/directives/collections-item.directive.mjs +0 -29
  93. package/esm2022/collections/lib/interfaces/array-collection.interface.mjs +0 -2
  94. package/esm2022/collections/lib/interfaces/collection.interface.mjs +0 -2
  95. package/esm2022/collections/lib/providers/api-collection.provider.mjs +0 -103
  96. package/esm2022/collections/lib/providers/collection.provider.mjs +0 -39
  97. package/esm2022/collections/lib/providers/local-collection.provider.mjs +0 -25
  98. package/esm2022/collections/public_api.mjs +0 -22
  99. package/esm2022/combobox/bravobit-bb-foundation-combobox.mjs +0 -5
  100. package/esm2022/combobox/combobox/combobox-container.directive.mjs +0 -137
  101. package/esm2022/combobox/combobox/combobox.component.mjs +0 -118
  102. package/esm2022/combobox/combobox-label.directive.mjs +0 -14
  103. package/esm2022/combobox/combobox-option.directive.mjs +0 -17
  104. package/esm2022/combobox/combobox-panel/combobox-panel.animation.mjs +0 -11
  105. package/esm2022/combobox/combobox-panel/combobox-panel.component.mjs +0 -42
  106. package/esm2022/combobox/combobox.interface.mjs +0 -2
  107. package/esm2022/combobox/public_api.mjs +0 -4
  108. package/esm2022/dashboard/bravobit-bb-foundation-dashboard.mjs +0 -5
  109. package/esm2022/dashboard/lib/dashboard/dashboard.component.mjs +0 -50
  110. package/esm2022/dashboard/lib/dashboard-header/dashboard-header.component.mjs +0 -25
  111. package/esm2022/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +0 -28
  112. package/esm2022/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +0 -32
  113. package/esm2022/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +0 -75
  114. package/esm2022/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +0 -93
  115. package/esm2022/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +0 -60
  116. package/esm2022/dashboard/lib/dashboard.module.mjs +0 -50
  117. package/esm2022/dashboard/public_api.mjs +0 -9
  118. package/esm2022/dialog/bravobit-bb-foundation-dialog.mjs +0 -5
  119. package/esm2022/dialog/lib/dialog-actions/dialog-actions.component.mjs +0 -12
  120. package/esm2022/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +0 -44
  121. package/esm2022/dialog/lib/dialog-container/dialog-container.component.mjs +0 -58
  122. package/esm2022/dialog/lib/dialog-header/dialog-header.component.mjs +0 -15
  123. package/esm2022/dialog/lib/dialog-link/dialog-link.component.mjs +0 -11
  124. package/esm2022/dialog/lib/dialog-modal/dialog-modal.component.mjs +0 -57
  125. package/esm2022/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +0 -53
  126. package/esm2022/dialog/lib/dialog.config.mjs +0 -8
  127. package/esm2022/dialog/lib/dialog.insertion.mjs +0 -18
  128. package/esm2022/dialog/lib/dialog.interfaces.mjs +0 -9
  129. package/esm2022/dialog/lib/dialog.module.mjs +0 -64
  130. package/esm2022/dialog/lib/dialog.ref.mjs +0 -16
  131. package/esm2022/dialog/lib/dialog.service.mjs +0 -75
  132. package/esm2022/dialog/lib/directives/confirm.directive.mjs +0 -48
  133. package/esm2022/dialog/public_api.mjs +0 -12
  134. package/esm2022/elements/bravobit-bb-foundation-elements.mjs +0 -5
  135. package/esm2022/elements/lib/avatar/avatar.component.mjs +0 -175
  136. package/esm2022/elements/lib/button/button.component.mjs +0 -68
  137. package/esm2022/elements/lib/checkbox/checkbox.component.mjs +0 -116
  138. package/esm2022/elements/lib/checkbox-group/checkbox-group.component.mjs +0 -34
  139. package/esm2022/elements/lib/date-picker/date-picker.component.mjs +0 -323
  140. package/esm2022/elements/lib/directives/addon.directive.mjs +0 -27
  141. package/esm2022/elements/lib/directives/extra-error-controls.directive.mjs +0 -41
  142. package/esm2022/elements/lib/directives/file-drop.directive.mjs +0 -62
  143. package/esm2022/elements/lib/directives/form-submit.directive.mjs +0 -54
  144. package/esm2022/elements/lib/directives/form-submitter.directive.mjs +0 -24
  145. package/esm2022/elements/lib/directives/image-upload.directive.mjs +0 -143
  146. package/esm2022/elements/lib/directives/input.directive.mjs +0 -49
  147. package/esm2022/elements/lib/elements.config.mjs +0 -54
  148. package/esm2022/elements/lib/elements.interfaces.mjs +0 -5
  149. package/esm2022/elements/lib/elements.module.mjs +0 -146
  150. package/esm2022/elements/lib/file-picker/file-picker.component.mjs +0 -196
  151. package/esm2022/elements/lib/form-control/form-control.component.mjs +0 -46
  152. package/esm2022/elements/lib/form-error/form-error.component.mjs +0 -106
  153. package/esm2022/elements/lib/form-group/form-group.component.mjs +0 -19
  154. package/esm2022/elements/lib/icon/icon.component.mjs +0 -122
  155. package/esm2022/elements/lib/image-picker/image-picker.component.mjs +0 -126
  156. package/esm2022/elements/lib/multi-file-control/multi-file-control.component.mjs +0 -149
  157. package/esm2022/elements/lib/pipes/date.pipe.mjs +0 -28
  158. package/esm2022/elements/lib/pipes/file-image.pipe.mjs +0 -48
  159. package/esm2022/elements/lib/pipes/file-size.pipe.mjs +0 -27
  160. package/esm2022/elements/lib/pipes/relative-time.pipe.mjs +0 -99
  161. package/esm2022/elements/lib/radio-button/radio-button.component.mjs +0 -60
  162. package/esm2022/elements/lib/radio-group/radio-group.component.mjs +0 -103
  163. package/esm2022/elements/lib/spinner/spinner.component.mjs +0 -22
  164. package/esm2022/elements/public_api.mjs +0 -30
  165. package/esm2022/http/bravobit-bb-foundation-http.mjs +0 -5
  166. package/esm2022/http/lib/classes/http.config.mjs +0 -32
  167. package/esm2022/http/lib/classes/http.error.mjs +0 -20
  168. package/esm2022/http/lib/http.config.mjs +0 -18
  169. package/esm2022/http/lib/http.interfaces.mjs +0 -4
  170. package/esm2022/http/lib/http.module.mjs +0 -31
  171. package/esm2022/http/lib/interceptors/base-url.interceptor.mjs +0 -60
  172. package/esm2022/http/lib/interceptors/error.interceptor.mjs +0 -31
  173. package/esm2022/http/public_api.mjs +0 -8
  174. package/esm2022/lib/core/functions/array.utils.mjs +0 -7
  175. package/esm2022/lib/core/functions/date.utils.mjs +0 -31
  176. package/esm2022/lib/core/functions/password.utils.mjs +0 -17
  177. package/esm2022/lib/core/functions/route-cache.utils.mjs +0 -23
  178. package/esm2022/lib/core/miscellaneous/coercion.mjs +0 -5
  179. package/esm2022/lib/core/miscellaneous/regex.mjs +0 -44
  180. package/esm2022/lib/core/miscellaneous/validator.mjs +0 -85
  181. package/esm2022/lib/core/services/exif.service.mjs +0 -165
  182. package/esm2022/lib/core/services/file-loader.service.mjs +0 -85
  183. package/esm2022/lib/core/services/files.service.mjs +0 -78
  184. package/esm2022/lib/core/services/image-converter.service.mjs +0 -126
  185. package/esm2022/lib/core/services/languages.service.mjs +0 -75
  186. package/esm2022/lib/core/services/network.service.mjs +0 -58
  187. package/esm2022/lib/core/services/patch.service.mjs +0 -66
  188. package/esm2022/lib/core/tokens/accept-language.token.mjs +0 -3
  189. package/esm2022/lib/core/tokens/base-url.token.mjs +0 -3
  190. package/esm2022/lib/core/tokens/cookie.token.mjs +0 -3
  191. package/esm2022/lib/core/tokens/global-focus-mode.token.mjs +0 -10
  192. package/esm2022/lib/core/tokens/location.token.mjs +0 -6
  193. package/esm2022/lib/core/tokens/navigator.token.mjs +0 -6
  194. package/esm2022/lib/core/tokens/window.token.mjs +0 -12
  195. package/esm2022/localize/bravobit-bb-foundation-localize.mjs +0 -5
  196. package/esm2022/localize/lib/dictionary/dictionary.class.mjs +0 -96
  197. package/esm2022/localize/lib/dictionary/dictionary.context.mjs +0 -24
  198. package/esm2022/localize/lib/dictionary/dictionary.data.mjs +0 -7
  199. package/esm2022/localize/lib/functions/date.function.mjs +0 -18
  200. package/esm2022/localize/lib/functions/lowercase.function.mjs +0 -13
  201. package/esm2022/localize/lib/functions/uppercase.function.mjs +0 -13
  202. package/esm2022/localize/lib/handlers/missing.handler.mjs +0 -13
  203. package/esm2022/localize/lib/interfaces/config.interfaces.mjs +0 -2
  204. package/esm2022/localize/lib/interfaces/functions.interfaces.mjs +0 -8
  205. package/esm2022/localize/lib/interfaces/handlers.interfaces.mjs +0 -2
  206. package/esm2022/localize/lib/interfaces/options.interfaces.mjs +0 -6
  207. package/esm2022/localize/lib/localizations/dutch.localization.mjs +0 -64
  208. package/esm2022/localize/lib/localizations/english.localization.mjs +0 -64
  209. package/esm2022/localize/lib/localizations/papiamento.localization.mjs +0 -64
  210. package/esm2022/localize/lib/localizations/spanish.localization.mjs +0 -64
  211. package/esm2022/localize/lib/localize.config.mjs +0 -43
  212. package/esm2022/localize/lib/localize.module.mjs +0 -39
  213. package/esm2022/localize/lib/localize.pipe.mjs +0 -48
  214. package/esm2022/localize/lib/localize.service.mjs +0 -172
  215. package/esm2022/localize/lib/localize.tokens.mjs +0 -18
  216. package/esm2022/localize/lib/transforms/abstract.transform.mjs +0 -30
  217. package/esm2022/localize/lib/transforms/interpolate.transform.mjs +0 -45
  218. package/esm2022/localize/lib/transforms/plural.transform.mjs +0 -49
  219. package/esm2022/localize/lib/transforms/reference.transform.mjs +0 -19
  220. package/esm2022/localize/lib/views/localize-string/localize-string.component.mjs +0 -89
  221. package/esm2022/localize/lib/views/localize-template.directive.mjs +0 -23
  222. package/esm2022/localize/public_api.mjs +0 -27
  223. package/esm2022/masking/bravobit-bb-foundation-masking.mjs +0 -5
  224. package/esm2022/masking/lib/directives/currency-mask.directive.mjs +0 -41
  225. package/esm2022/masking/lib/directives/date-mask.directive.mjs +0 -41
  226. package/esm2022/masking/lib/directives/input-mask.directive.mjs +0 -126
  227. package/esm2022/masking/lib/input-mask.interface.mjs +0 -2
  228. package/esm2022/masking/lib/masking.module.mjs +0 -30
  229. package/esm2022/masking/lib/masking.service.mjs +0 -104
  230. package/esm2022/masking/public_api.mjs +0 -7
  231. package/esm2022/notifications/bravobit-bb-foundation-notifications.mjs +0 -5
  232. package/esm2022/notifications/lib/notifications-item/notifications-item.component.mjs +0 -112
  233. package/esm2022/notifications/lib/notifications-list/notifications-list.component.mjs +0 -48
  234. package/esm2022/notifications/lib/notifications.animations.mjs +0 -28
  235. package/esm2022/notifications/lib/notifications.config.mjs +0 -8
  236. package/esm2022/notifications/lib/notifications.interfaces.mjs +0 -31
  237. package/esm2022/notifications/lib/notifications.module.mjs +0 -20
  238. package/esm2022/notifications/lib/notifications.service.mjs +0 -161
  239. package/esm2022/notifications/public_api.mjs +0 -5
  240. package/esm2022/permissions/bravobit-bb-foundation-permissions.mjs +0 -5
  241. package/esm2022/permissions/lib/directives/permission.directive.mjs +0 -95
  242. package/esm2022/permissions/lib/guards/permission.guard.mjs +0 -25
  243. package/esm2022/permissions/lib/handlers/abstract.handler.mjs +0 -3
  244. package/esm2022/permissions/lib/handlers/local.handler.mjs +0 -29
  245. package/esm2022/permissions/lib/permissions.config.mjs +0 -20
  246. package/esm2022/permissions/lib/permissions.interface.mjs +0 -8
  247. package/esm2022/permissions/lib/permissions.module.mjs +0 -25
  248. package/esm2022/permissions/lib/permissions.service.mjs +0 -100
  249. package/esm2022/permissions/public_api.mjs +0 -9
  250. package/esm2022/public_api.mjs +0 -25
  251. package/esm2022/recaptcha/bravobit-bb-foundation-recaptcha.mjs +0 -5
  252. package/esm2022/recaptcha/lib/recaptcha/recaptcha.component.mjs +0 -225
  253. package/esm2022/recaptcha/lib/recaptcha-loader.service.mjs +0 -80
  254. package/esm2022/recaptcha/lib/recaptcha.config.mjs +0 -8
  255. package/esm2022/recaptcha/lib/recaptcha.interface.mjs +0 -3
  256. package/esm2022/recaptcha/lib/recaptcha.module.mjs +0 -27
  257. package/esm2022/recaptcha/public_api.mjs +0 -6
  258. package/esm2022/rxjs/bravobit-bb-foundation-rxjs.mjs +0 -5
  259. package/esm2022/rxjs/lib/observables/get-control-value.observable.mjs +0 -6
  260. package/esm2022/rxjs/lib/observables/get-route-param.observable.mjs +0 -5
  261. package/esm2022/rxjs/lib/operators/combine-latest-map.operator.mjs +0 -10
  262. package/esm2022/rxjs/lib/operators/filter-nil.operator.mjs +0 -5
  263. package/esm2022/rxjs/public_api.mjs +0 -5
  264. package/esm2022/select/bravobit-bb-foundation-select.mjs +0 -5
  265. package/esm2022/select/lib/select/select.component.mjs +0 -289
  266. package/esm2022/select/lib/select-label.directive.mjs +0 -18
  267. package/esm2022/select/lib/select-multi-label.directive.mjs +0 -18
  268. package/esm2022/select/lib/select-option-group.directive.mjs +0 -18
  269. package/esm2022/select/lib/select-option.directive.mjs +0 -18
  270. package/esm2022/select/lib/select.config.mjs +0 -8
  271. package/esm2022/select/lib/select.module.mjs +0 -46
  272. package/esm2022/select/public_api.mjs +0 -8
  273. package/esm2022/storage/bravobit-bb-foundation-storage.mjs +0 -5
  274. package/esm2022/storage/lib/interfaces/attributes.interface.mjs +0 -2
  275. package/esm2022/storage/lib/interfaces/memory.interface.mjs +0 -2
  276. package/esm2022/storage/lib/interfaces/strategy.interface.mjs +0 -2
  277. package/esm2022/storage/lib/storage.service.mjs +0 -113
  278. package/esm2022/storage/lib/strategies/cookie-storage.strategy.mjs +0 -144
  279. package/esm2022/storage/lib/strategies/memory-storage.strategy.mjs +0 -54
  280. package/esm2022/storage/lib/strategies/polyfill-storage.strategy.mjs +0 -100
  281. package/esm2022/storage/public_api.mjs +0 -8
  282. package/esm2022/table/bravobit-bb-foundation-table.mjs +0 -5
  283. package/esm2022/table/lib/components/table/table.component.mjs +0 -200
  284. package/esm2022/table/lib/components/table-cell/table-cell.component.mjs +0 -11
  285. package/esm2022/table/lib/components/table-header-cell/table-header-cell.component.mjs +0 -135
  286. package/esm2022/table/lib/components/table-pager/table-pager.component.mjs +0 -136
  287. package/esm2022/table/lib/data/datasource.data.mjs +0 -30
  288. package/esm2022/table/lib/data/generic.data.mjs +0 -84
  289. package/esm2022/table/lib/interfaces/datasource.interface.mjs +0 -2
  290. package/esm2022/table/lib/interfaces/table.interfaces.mjs +0 -2
  291. package/esm2022/table/lib/table.module.mjs +0 -44
  292. package/esm2022/table/public_api.mjs +0 -10
  293. package/esm2022/tooltip/bravobit-bb-foundation-tooltip.mjs +0 -5
  294. package/esm2022/tooltip/lib/tooltip-container/tooltip-container.component.mjs +0 -23
  295. package/esm2022/tooltip/lib/tooltip.directive.mjs +0 -130
  296. package/esm2022/tooltip/lib/tooltip.interfaces.mjs +0 -4
  297. package/esm2022/tooltip/lib/tooltip.module.mjs +0 -16
  298. package/esm2022/tooltip/public_api.mjs +0 -5
  299. package/esm2022/utils/bravobit-bb-foundation-utils.mjs +0 -5
  300. package/esm2022/utils/lib/directives/autosize.directive.mjs +0 -76
  301. package/esm2022/utils/lib/directives/focus-trap.directive.mjs +0 -80
  302. package/esm2022/utils/lib/directives/focus.directive.mjs +0 -57
  303. package/esm2022/utils/lib/directives/template.directive.mjs +0 -33
  304. package/esm2022/utils/lib/utils.module.mjs +0 -35
  305. package/esm2022/utils/public_api.mjs +0 -6
@@ -1,118 +0,0 @@
1
- import { booleanAttribute, ChangeDetectionStrategy, Component, ContentChild, EventEmitter, forwardRef, Input, Output, TemplateRef, ViewEncapsulation } from '@angular/core';
2
- import { BehaviorSubject, isObservable, Subscription } from 'rxjs';
3
- import { BbComboboxContainer } from './combobox-container.directive';
4
- import { BbComboboxOption } from '../combobox-option.directive';
5
- import { BbComboboxLabel } from '../combobox-label.directive';
6
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
7
- import { map, shareReplay } from 'rxjs/operators';
8
- import * as i0 from "@angular/core";
9
- export class BbCombobox {
10
- // Children.
11
- labelComponent;
12
- optionTemplate;
13
- // Inputs.
14
- value = null;
15
- bindLabel = null;
16
- bindValue = null;
17
- disabled = false;
18
- set data(items) {
19
- this.handleData(items);
20
- }
21
- get data() {
22
- return this._cache$.getValue();
23
- }
24
- // Outputs.
25
- valueChange = new EventEmitter();
26
- // State.
27
- items$;
28
- // Methods.
29
- onChange = () => ({});
30
- onTouched = () => ({});
31
- // Cache.
32
- _cache$ = new BehaviorSubject([]);
33
- // Subscriptions.
34
- _dataSubscription = new Subscription();
35
- ngOnInit() {
36
- this.setItems();
37
- }
38
- ngOnDestroy() {
39
- this._dataSubscription?.unsubscribe();
40
- }
41
- registerOnChange(fn) {
42
- this.onChange = fn;
43
- }
44
- registerOnTouched(fn) {
45
- this.onTouched = fn;
46
- }
47
- setDisabledState(isDisabled) {
48
- this.disabled = isDisabled;
49
- }
50
- writeValue(newValue) {
51
- this.value = newValue;
52
- }
53
- select(value) {
54
- this.value = value;
55
- this.emitChangeEvent();
56
- }
57
- setItems() {
58
- this.items$ = this._cache$.pipe(map(items => items.map(item => this.createComboboxItem(item))), shareReplay({ bufferSize: 1, refCount: true }));
59
- }
60
- createComboboxItem(data) {
61
- return {
62
- data,
63
- label: !!this.bindLabel ? (data?.[this.bindLabel] ?? null) : data,
64
- value: !!this.bindValue ? (data?.[this.bindValue] ?? null) : data
65
- };
66
- }
67
- setCache(items) {
68
- if (items === null || items === undefined) {
69
- return;
70
- }
71
- this._cache$.next(items);
72
- }
73
- handleData(items) {
74
- if (isObservable(items)) {
75
- return this.handleDataObservable(items);
76
- }
77
- return this.setCache(items);
78
- }
79
- handleDataObservable(items$) {
80
- this._dataSubscription?.unsubscribe();
81
- const subscription = items$.subscribe(items => this.setCache(items));
82
- this._dataSubscription.add(subscription);
83
- }
84
- emitChangeEvent() {
85
- this.onChange?.(this.value);
86
- this.valueChange.emit(this.value);
87
- }
88
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbCombobox, deps: [], target: i0.ɵɵFactoryTarget.Component });
89
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.12", type: BbCombobox, isStandalone: true, selector: "bb-combobox", inputs: { value: "value", bindLabel: "bindLabel", bindValue: "bindValue", disabled: ["disabled", "disabled", booleanAttribute], data: "data" }, outputs: { valueChange: "valueChange" }, host: { classAttribute: "bb-combobox" }, providers: [
90
- { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BbCombobox), multi: true }
91
- ], queries: [{ propertyName: "labelComponent", first: true, predicate: BbComboboxLabel, descendants: true, read: TemplateRef }, { propertyName: "optionTemplate", first: true, predicate: BbComboboxOption, descendants: true, read: TemplateRef }], ngImport: i0, template: "<div bbComboboxContainer\n class=\"bb-combobox-container\">\n {{ value }}\n</div>\n", styles: [".bb-combobox{display:block}.bb-combobox-container{width:100%;height:2.5rem;display:block;padding:0 .75rem;line-height:2.5rem;border:1px solid black}\n"], dependencies: [{ kind: "directive", type: BbComboboxContainer, selector: "[bbComboboxContainer]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
92
- }
93
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbCombobox, decorators: [{
94
- type: Component,
95
- args: [{ selector: 'bb-combobox', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'class': 'bb-combobox' }, preserveWhitespaces: false, providers: [
96
- { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BbCombobox), multi: true }
97
- ], imports: [BbComboboxContainer], standalone: true, template: "<div bbComboboxContainer\n class=\"bb-combobox-container\">\n {{ value }}\n</div>\n", styles: [".bb-combobox{display:block}.bb-combobox-container{width:100%;height:2.5rem;display:block;padding:0 .75rem;line-height:2.5rem;border:1px solid black}\n"] }]
98
- }], propDecorators: { labelComponent: [{
99
- type: ContentChild,
100
- args: [BbComboboxLabel, { read: TemplateRef, static: false }]
101
- }], optionTemplate: [{
102
- type: ContentChild,
103
- args: [BbComboboxOption, { read: TemplateRef, static: false }]
104
- }], value: [{
105
- type: Input
106
- }], bindLabel: [{
107
- type: Input
108
- }], bindValue: [{
109
- type: Input
110
- }], disabled: [{
111
- type: Input,
112
- args: [{ transform: booleanAttribute }]
113
- }], data: [{
114
- type: Input
115
- }], valueChange: [{
116
- type: Output
117
- }] } });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb21ib2JveC9zcmMvY29tYm9ib3gvY29tYm9ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb21ib2JveC9zcmMvY29tYm9ib3gvY29tYm9ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGdCQUFnQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDN0wsT0FBTyxFQUFDLGVBQWUsRUFBRSxZQUFZLEVBQWMsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRTdFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUMsR0FBRyxFQUFFLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOztBQWdCaEQsTUFBTSxPQUFPLFVBQVU7SUFFbkIsWUFBWTtJQUN1RCxjQUFjLENBQWdDO0lBQzdDLGNBQWMsQ0FBc0M7SUFFeEgsVUFBVTtJQUNELEtBQUssR0FBYSxJQUFJLENBQUM7SUFDdkIsU0FBUyxHQUFrQixJQUFJLENBQUM7SUFDaEMsU0FBUyxHQUFrQixJQUFJLENBQUM7SUFDSCxRQUFRLEdBQVksS0FBSyxDQUFDO0lBRWhFLElBQ0ksSUFBSSxDQUFDLEtB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S21ELGNBQWM7c0JBQWhGLFlBQVk7dUJBQUMsZUFBZSxFQUFFLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUNHLGNBQWM7c0JBQWpGLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBR3pELEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ2dDLFFBQVE7c0JBQTdDLEtBQUs7dUJBQUMsRUFBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUM7Z0JBR2hDLElBQUk7c0JBRFAsS0FBSztnQkFVSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtib29sZWFuQXR0cmlidXRlLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgaXNPYnNlcnZhYmxlLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDb21ib2JveEl0ZW0sIENvbWJvYm94T3B0aW9uQ29udGV4dH0gZnJvbSAnLi4vY29tYm9ib3guaW50ZXJmYWNlJztcbmltcG9ydCB7QmJDb21ib2JveENvbnRhaW5lcn0gZnJvbSAnLi9jb21ib2JveC1jb250YWluZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7QmJDb21ib2JveE9wdGlvbn0gZnJvbSAnLi4vY29tYm9ib3gtb3B0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0JiQ29tYm9ib3hMYWJlbH0gZnJvbSAnLi4vY29tYm9ib3gtbGFiZWwuZGlyZWN0aXZlJztcbmltcG9ydCB7TkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7bWFwLCBzaGFyZVJlcGxheX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JiLWNvbWJvYm94JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29tYm9ib3guY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NvbWJvYm94LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7J2NsYXNzJzogJ2JiLWNvbWJvYm94J30sXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQmJDb21ib2JveCksIG11bHRpOiB0cnVlfVxuICAgIF0sXG4gICAgaW1wb3J0czogW0JiQ29tYm9ib3hDb250YWluZXJdLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQmJDb21ib2JveDxUID0gdW5rbm93bj4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICAvLyBDaGlsZHJlbi5cbiAgICBAQ29udGVudENoaWxkKEJiQ29tYm9ib3hMYWJlbCwge3JlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IGZhbHNlfSkgbGFiZWxDb21wb25lbnQ/OiBUZW1wbGF0ZVJlZjxCYkNvbWJvYm94TGFiZWw+O1xuICAgIEBDb250ZW50Q2hpbGQoQmJDb21ib2JveE9wdGlvbiwge3JlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IGZhbHNlfSkgb3B0aW9uVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxDb21ib2JveE9wdGlvbkNvbnRleHQ+O1xuXG4gICAgLy8gSW5wdXRzLlxuICAgIEBJbnB1dCgpIHZhbHVlOiBUIHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgYmluZExhYmVsOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSBiaW5kVmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCh7dHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlfSkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGRhdGEoaXRlbXM6IFRbXSB8IE9ic2VydmFibGU8VFtdPikge1xuICAgICAgICB0aGlzLmhhbmRsZURhdGEoaXRlbXMpO1xuICAgIH1cblxuICAgIGdldCBkYXRhKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2FjaGUkLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgLy8gT3V0cHV0cy5cbiAgICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XG5cbiAgICAvLyBTdGF0ZS5cbiAgICBpdGVtcyQ6IE9ic2VydmFibGU8Q29tYm9ib3hJdGVtPFQ+W10+O1xuXG4gICAgLy8gTWV0aG9kcy5cbiAgICBvbkNoYW5nZTogKG5ld1ZhbHVlOiBUKSA9PiB2b2lkID0gKCkgPT4gKHt9KTtcbiAgICBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiAoe30pO1xuXG4gICAgLy8gQ2FjaGUuXG4gICAgcHJpdmF0ZSBfY2FjaGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUW10+KFtdKTtcblxuICAgIC8vIFN1YnNjcmlwdGlvbnMuXG4gICAgcHJpdmF0ZSBfZGF0YVN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnNldEl0ZW1zKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuX2RhdGFTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKG5ld1ZhbHVlOiBUKSA9PiB2b2lkKSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKG5ld1ZhbHVlOiBUKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB9XG5cbiAgICBzZWxlY3QodmFsdWU6IFQpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmVtaXRDaGFuZ2VFdmVudCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0SXRlbXMoKSB7XG4gICAgICAgIHRoaXMuaXRlbXMkID0gdGhpcy5fY2FjaGUkLnBpcGUoXG4gICAgICAgICAgICBtYXAoaXRlbXMgPT4gaXRlbXMubWFwKGl0ZW0gPT4gdGhpcy5jcmVhdGVDb21ib2JveEl0ZW0oaXRlbSkpKSxcbiAgICAgICAgICAgIHNoYXJlUmVwbGF5KHtidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZX0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVDb21ib2JveEl0ZW0oZGF0YTogVCkge1xuICAgICAgICByZXR1cm4gPENvbWJvYm94SXRlbTxUPj57XG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgbGFiZWw6ICEhdGhpcy5iaW5kTGFiZWwgPyAoZGF0YT8uW3RoaXMuYmluZExhYmVsXSA/PyBudWxsKSA6IGRhdGEsXG4gICAgICAgICAgICB2YWx1ZTogISF0aGlzLmJpbmRWYWx1ZSA/IChkYXRhPy5bdGhpcy5iaW5kVmFsdWVdID8/IG51bGwpIDogZGF0YVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Q2FjaGUoaXRlbXM6IFRbXSkge1xuICAgICAgICBpZiAoaXRlbXMgPT09IG51bGwgfHwgaXRlbXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NhY2hlJC5uZXh0KGl0ZW1zKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZURhdGEoaXRlbXM6IFRbXSB8IE9ic2VydmFibGU8VFtdPikge1xuICAgICAgICBpZiAoaXNPYnNlcnZhYmxlKGl0ZW1zKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlRGF0YU9ic2VydmFibGUoaXRlbXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0Q2FjaGUoaXRlbXMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlRGF0YU9ic2VydmFibGUoaXRlbXMkOiBPYnNlcnZhYmxlPFRbXT4pIHtcbiAgICAgICAgdGhpcy5fZGF0YVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gaXRlbXMkLnN1YnNjcmliZShpdGVtcyA9PiB0aGlzLnNldENhY2hlKGl0ZW1zKSk7XG4gICAgICAgIHRoaXMuX2RhdGFTdWJzY3JpcHRpb24uYWRkKHN1YnNjcmlwdGlvbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBlbWl0Q2hhbmdlRXZlbnQoKSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2U/Lih0aGlzLnZhbHVlKTtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgIH1cblxufVxuIiwiPGRpdiBiYkNvbWJvYm94Q29udGFpbmVyXG4gICAgIGNsYXNzPVwiYmItY29tYm9ib3gtY29udGFpbmVyXCI+XG4gICAge3sgdmFsdWUgfX1cbjwvZGl2PlxuIl19
@@ -1,14 +0,0 @@
1
- import { Directive } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class BbComboboxLabel {
4
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbComboboxLabel, deps: [], target: i0.ɵɵFactoryTarget.Directive });
5
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.12", type: BbComboboxLabel, isStandalone: true, selector: "[bbComboboxLabel]", ngImport: i0 });
6
- }
7
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbComboboxLabel, decorators: [{
8
- type: Directive,
9
- args: [{
10
- selector: '[bbComboboxLabel]',
11
- standalone: true
12
- }]
13
- }] });
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3gtbGFiZWwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb21ib2JveC9zcmMvY29tYm9ib3gtbGFiZWwuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBTXhDLE1BQU0sT0FBTyxlQUFlO3dHQUFmLGVBQWU7NEZBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFKM0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2JiQ29tYm9ib3hMYWJlbF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQmJDb21ib2JveExhYmVsIHtcbn1cbiJdfQ==
@@ -1,17 +0,0 @@
1
- import { Directive } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class BbComboboxOption {
4
- static ngTemplateContextGuard(directive, context) {
5
- return true;
6
- }
7
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbComboboxOption, deps: [], target: i0.ɵɵFactoryTarget.Directive });
8
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.12", type: BbComboboxOption, isStandalone: true, selector: "ng-template[bbComboboxOption]", ngImport: i0 });
9
- }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbComboboxOption, decorators: [{
11
- type: Directive,
12
- args: [{
13
- selector: 'ng-template[bbComboboxOption]',
14
- standalone: true
15
- }]
16
- }] });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3gtb3B0aW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vY29tYm9ib3gvc3JjL2NvbWJvYm94LW9wdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFNeEMsTUFBTSxPQUFPLGdCQUFnQjtJQUV6QixNQUFNLENBQUMsc0JBQXNCLENBQUMsU0FBMkIsRUFBRSxPQUFnQjtRQUN2RSxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO3dHQUpRLGdCQUFnQjs0RkFBaEIsZ0JBQWdCOzs0RkFBaEIsZ0JBQWdCO2tCQUo1QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwrQkFBK0I7b0JBQ3pDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tYm9ib3hPcHRpb25Db250ZXh0fSBmcm9tICcuL2NvbWJvYm94LmludGVyZmFjZSc7XG5pbXBvcnQge0RpcmVjdGl2ZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnbmctdGVtcGxhdGVbYmJDb21ib2JveE9wdGlvbl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQmJDb21ib2JveE9wdGlvbiB7XG5cbiAgICBzdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZChkaXJlY3RpdmU6IEJiQ29tYm9ib3hPcHRpb24sIGNvbnRleHQ6IHVua25vd24pOiBjb250ZXh0IGlzIENvbWJvYm94T3B0aW9uQ29udGV4dCB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxufVxuIl19
@@ -1,11 +0,0 @@
1
- import { animate, style, transition, trigger } from '@angular/animations';
2
- export const comboboxPanelAnimation = trigger('comboboxPanelAnimation', [
3
- transition(':enter', [
4
- style({ opacity: 0, transform: 'translateY(5px)' }),
5
- animate('300ms cubic-bezier(0, 0, .2, 1)', style({ opacity: 1, transform: 'none' }))
6
- ]),
7
- transition(':leave', [
8
- animate('300ms cubic-bezier(0, 0, .2, 1)', style({ opacity: 0, transform: 'translateY(5px)' }))
9
- ])
10
- ]);
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3gtcGFuZWwuYW5pbWF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb21ib2JveC9zcmMvY29tYm9ib3gtcGFuZWwvY29tYm9ib3gtcGFuZWwuYW5pbWF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUV4RSxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxPQUFPLENBQUMsd0JBQXdCLEVBQUU7SUFDcEUsVUFBVSxDQUFDLFFBQVEsRUFBRTtRQUNqQixLQUFLLENBQUMsRUFBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBQyxDQUFDO1FBQ2pELE9BQU8sQ0FBQyxpQ0FBaUMsRUFBRSxLQUFLLENBQUMsRUFBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDO0tBQ3JGLENBQUM7SUFDRixVQUFVLENBQUMsUUFBUSxFQUFFO1FBQ2pCLE9BQU8sQ0FBQyxpQ0FBaUMsRUFBRSxLQUFLLENBQUMsRUFBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBQyxDQUFDLENBQUM7S0FDaEcsQ0FBQztDQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7YW5pbWF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXJ9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgY29tYm9ib3hQYW5lbEFuaW1hdGlvbiA9IHRyaWdnZXIoJ2NvbWJvYm94UGFuZWxBbmltYXRpb24nLCBbXG4gICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICBzdHlsZSh7b3BhY2l0eTogMCwgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSg1cHgpJ30pLFxuICAgICAgICBhbmltYXRlKCczMDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgLjIsIDEpJywgc3R5bGUoe29wYWNpdHk6IDEsIHRyYW5zZm9ybTogJ25vbmUnfSkpXG4gICAgXSksXG4gICAgdHJhbnNpdGlvbignOmxlYXZlJywgW1xuICAgICAgICBhbmltYXRlKCczMDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgLjIsIDEpJywgc3R5bGUoe29wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoNXB4KSd9KSlcbiAgICBdKVxuXSk7XG4iXX0=
@@ -1,42 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';
2
- import { comboboxPanelAnimation } from './combobox-panel.animation';
3
- import { AsyncPipe, NgTemplateOutlet } from '@angular/common';
4
- import { CdkTrapFocus } from '@angular/cdk/a11y';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../combobox/combobox.component";
7
- import * as i2 from "../combobox/combobox-container.directive";
8
- import * as i3 from "@angular/cdk/a11y";
9
- export class BbComboboxPanel {
10
- _combobox;
11
- _container;
12
- // Readonly data.
13
- items$;
14
- optionTemplate;
15
- // Host bindings.
16
- animation = true;
17
- constructor(_combobox, _container) {
18
- this._combobox = _combobox;
19
- this._container = _container;
20
- this.items$ = this._combobox.items$;
21
- this.optionTemplate = this._combobox?.optionTemplate ?? null;
22
- }
23
- select(item) {
24
- this._combobox.select(item?.value ?? null);
25
- this._container.close();
26
- }
27
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbComboboxPanel, deps: [{ token: i1.BbCombobox }, { token: i2.BbComboboxContainer }], target: i0.ɵɵFactoryTarget.Component });
28
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: BbComboboxPanel, isStandalone: true, selector: "bb-combobox-panel", host: { attributes: { "role": "listbox" }, properties: { "@comboboxPanelAnimation": "this.animation" }, classAttribute: "bb-combobox-panel" }, hostDirectives: [{ directive: i3.CdkTrapFocus }], ngImport: i0, template: "@if (items$ | async; as items) {\n @for (item of items; track $index) {\n <div (click)=\"select(item)\"\n tabindex=\"0\"\n role=\"option\"\n class=\"bb-combobox-panel-item\">\n @if (optionTemplate) {\n <ng-container *ngTemplateOutlet=\"optionTemplate; context: {item: item}\"></ng-container>\n } @else {\n {{ item?.label }}\n }\n </div>\n }\n\n}\n", styles: [".bb-combobox-panel{width:100%;display:block;padding:.5rem;overflow-y:auto;overflow-x:hidden;border-radius:.5rem;background-color:#fff;box-shadow:#00000014 0 10px 40px 10px}.bb-combobox-panel-item{cursor:pointer;border-radius:.5rem;padding:.75rem 1.5rem}.bb-combobox-panel-item:hover,.bb-combobox-panel-item:focus{background-color:orange}.bb-combobox-panel-item:active{background-color:red}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [comboboxPanelAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
29
- }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbComboboxPanel, decorators: [{
31
- type: Component,
32
- args: [{ selector: 'bb-combobox-panel', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
33
- 'class': 'bb-combobox-panel',
34
- 'role': 'listbox'
35
- }, hostDirectives: [
36
- { directive: CdkTrapFocus }
37
- ], preserveWhitespaces: false, standalone: true, imports: [AsyncPipe, NgTemplateOutlet], animations: [comboboxPanelAnimation], template: "@if (items$ | async; as items) {\n @for (item of items; track $index) {\n <div (click)=\"select(item)\"\n tabindex=\"0\"\n role=\"option\"\n class=\"bb-combobox-panel-item\">\n @if (optionTemplate) {\n <ng-container *ngTemplateOutlet=\"optionTemplate; context: {item: item}\"></ng-container>\n } @else {\n {{ item?.label }}\n }\n </div>\n }\n\n}\n", styles: [".bb-combobox-panel{width:100%;display:block;padding:.5rem;overflow-y:auto;overflow-x:hidden;border-radius:.5rem;background-color:#fff;box-shadow:#00000014 0 10px 40px 10px}.bb-combobox-panel-item{cursor:pointer;border-radius:.5rem;padding:.75rem 1.5rem}.bb-combobox-panel-item:hover,.bb-combobox-panel-item:focus{background-color:orange}.bb-combobox-panel-item:active{background-color:red}\n"] }]
38
- }], ctorParameters: () => [{ type: i1.BbCombobox }, { type: i2.BbComboboxContainer }], propDecorators: { animation: [{
39
- type: HostBinding,
40
- args: ['@comboboxPanelAnimation']
41
- }] } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3gtcGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb21ib2JveC9zcmMvY29tYm9ib3gtcGFuZWwvY29tYm9ib3gtcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb21ib2JveC9zcmMvY29tYm9ib3gtcGFuZWwvY29tYm9ib3gtcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQWUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHOUcsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDbEUsT0FBTyxFQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTVELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7QUFxQi9DLE1BQU0sT0FBTyxlQUFlO0lBU0o7SUFDQTtJQVJwQixpQkFBaUI7SUFDUixNQUFNLENBQXNDO0lBQzVDLGNBQWMsQ0FBcUM7SUFFNUQsaUJBQWlCO0lBQ3VCLFNBQVMsR0FBWSxJQUFJLENBQUM7SUFFbEUsWUFBb0IsU0FBcUIsRUFDckIsVUFBK0I7UUFEL0IsY0FBUyxHQUFULFNBQVMsQ0FBWTtRQUNyQixlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQUMvQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxjQUFjLElBQUksSUFBSSxDQUFDO0lBQ2pFLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBMkI7UUFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzVCLENBQUM7d0dBbEJRLGVBQWU7NEZBQWYsZUFBZSw4UUMzQjVCLG9kQWVBLDRiRFNjLFNBQVMsOENBQUUsZ0JBQWdCLHNJQUN6QixDQUFDLHNCQUFzQixDQUFDOzs0RkFFM0IsZUFBZTtrQkFsQjNCLFNBQVM7K0JBQ0ksbUJBQW1CLG1CQUdaLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0YsT0FBTyxFQUFFLG1CQUFtQjt3QkFDNUIsTUFBTSxFQUFFLFNBQVM7cUJBQ3BCLGtCQUNlO3dCQUNaLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBQztxQkFDNUIsdUJBQ29CLEtBQUssY0FDZCxJQUFJLFdBQ1AsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsY0FDMUIsQ0FBQyxzQkFBc0IsQ0FBQztpSEFTSSxTQUFTO3NCQUFoRCxXQUFXO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIFRlbXBsYXRlUmVmLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JiQ29tYm9ib3hDb250YWluZXJ9IGZyb20gJy4uL2NvbWJvYm94L2NvbWJvYm94LWNvbnRhaW5lci5kaXJlY3RpdmUnO1xuaW1wb3J0IHtDb21ib2JveEl0ZW0sIENvbWJvYm94T3B0aW9uQ29udGV4dH0gZnJvbSAnLi4vY29tYm9ib3guaW50ZXJmYWNlJztcbmltcG9ydCB7Y29tYm9ib3hQYW5lbEFuaW1hdGlvbn0gZnJvbSAnLi9jb21ib2JveC1wYW5lbC5hbmltYXRpb24nO1xuaW1wb3J0IHtBc3luY1BpcGUsIE5nVGVtcGxhdGVPdXRsZXR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0JiQ29tYm9ib3h9IGZyb20gJy4uL2NvbWJvYm94L2NvbWJvYm94LmNvbXBvbmVudCc7XG5pbXBvcnQge0Nka1RyYXBGb2N1c30gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdiYi1jb21ib2JveC1wYW5lbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbWJvYm94LXBhbmVsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jb21ib2JveC1wYW5lbC5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnYmItY29tYm9ib3gtcGFuZWwnLFxuICAgICAgICAncm9sZSc6ICdsaXN0Ym94J1xuICAgIH0sXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICAgICAge2RpcmVjdGl2ZTogQ2RrVHJhcEZvY3VzfVxuICAgIF0sXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQXN5bmNQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0XSxcbiAgICBhbmltYXRpb25zOiBbY29tYm9ib3hQYW5lbEFuaW1hdGlvbl1cbn0pXG5leHBvcnQgY2xhc3MgQmJDb21ib2JveFBhbmVsIHtcblxuICAgIC8vIFJlYWRvbmx5IGRhdGEuXG4gICAgcmVhZG9ubHkgaXRlbXMkOiBPYnNlcnZhYmxlPENvbWJvYm94SXRlbTx1bmtub3duPltdPjtcbiAgICByZWFkb25seSBvcHRpb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8Q29tYm9ib3hPcHRpb25Db250ZXh0PjtcblxuICAgIC8vIEhvc3QgYmluZGluZ3MuXG4gICAgQEhvc3RCaW5kaW5nKCdAY29tYm9ib3hQYW5lbEFuaW1hdGlvbicpIGFuaW1hdGlvbjogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jb21ib2JveDogQmJDb21ib2JveCxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9jb250YWluZXI6IEJiQ29tYm9ib3hDb250YWluZXIpIHtcbiAgICAgICAgdGhpcy5pdGVtcyQgPSB0aGlzLl9jb21ib2JveC5pdGVtcyQ7XG4gICAgICAgIHRoaXMub3B0aW9uVGVtcGxhdGUgPSB0aGlzLl9jb21ib2JveD8ub3B0aW9uVGVtcGxhdGUgPz8gbnVsbDtcbiAgICB9XG5cbiAgICBzZWxlY3QoaXRlbTogQ29tYm9ib3hJdGVtPHVua25vd24+KSB7XG4gICAgICAgIHRoaXMuX2NvbWJvYm94LnNlbGVjdChpdGVtPy52YWx1ZSA/PyBudWxsKTtcbiAgICAgICAgdGhpcy5fY29udGFpbmVyLmNsb3NlKCk7XG4gICAgfVxuXG59XG4iLCJAaWYgKGl0ZW1zJCB8IGFzeW5jOyBhcyBpdGVtcykge1xuICAgIEBmb3IgKGl0ZW0gb2YgaXRlbXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8ZGl2IChjbGljayk9XCJzZWxlY3QoaXRlbSlcIlxuICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgcm9sZT1cIm9wdGlvblwiXG4gICAgICAgICAgICAgY2xhc3M9XCJiYi1jb21ib2JveC1wYW5lbC1pdGVtXCI+XG4gICAgICAgICAgICBAaWYgKG9wdGlvblRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm9wdGlvblRlbXBsYXRlOyBjb250ZXh0OiB7aXRlbTogaXRlbX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIHt7IGl0ZW0/LmxhYmVsIH19XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIH1cblxufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3guaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb21ib2JveC9zcmMvY29tYm9ib3guaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIENvbWJvYm94SXRlbTxUPiB7XG4gICAgbGFiZWw6IGFueTtcbiAgICB2YWx1ZTogYW55O1xuICAgIGRhdGE6IFQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tYm9ib3hPcHRpb25Db250ZXh0IHtcbiAgICBpdGVtOiBDb21ib2JveEl0ZW08dW5rbm93bj47XG59XG4iXX0=
@@ -1,4 +0,0 @@
1
- export * from './combobox/combobox.component';
2
- export * from './combobox-label.directive';
3
- export * from './combobox-option.directive';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vY29tYm9ib3gvc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywrQkFBK0IsQ0FBQztBQUU5QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsNkJBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbWJvYm94L2NvbWJvYm94LmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29tYm9ib3gtbGFiZWwuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tYm9ib3gtb3B0aW9uLmRpcmVjdGl2ZSc7XG4iXX0=
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public_api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhdm9iaXQtYmItZm91bmRhdGlvbi1kYXNoYm9hcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2Rhc2hib2FyZC9zcmMvYnJhdm9iaXQtYmItZm91bmRhdGlvbi1kYXNoYm9hcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
@@ -1,50 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, ContentChild, inject, Input, Renderer2, ViewEncapsulation } from '@angular/core';
2
- import { BbDashboardSidebar } from '../dashboard-sidebar/dashboard-sidebar.component';
3
- import { Platform } from '@angular/cdk/platform';
4
- import { Patch } from '@bravobit/bb-foundation';
5
- import { AsyncPipe } from '@angular/common';
6
- import * as i0 from "@angular/core";
7
- export class BbDashboard {
8
- // Dependencies.
9
- _patch = inject(Patch);
10
- _platform = inject(Platform);
11
- _renderer = inject(Renderer2);
12
- // Views.
13
- sidebar;
14
- // Inputs.
15
- backgroundColor = '#e7eaed';
16
- maxWidth = '75rem';
17
- padding = '1.5rem';
18
- ngOnInit() {
19
- this._patch.mobileVerticalHeight();
20
- return this.setHtmlClass();
21
- }
22
- ngOnDestroy() {
23
- this.setHtmlClass(true);
24
- }
25
- setHtmlClass(shouldRemove = false) {
26
- if (!this._platform.isBrowser) {
27
- return;
28
- }
29
- const className = 'bb-dashboard-html';
30
- return shouldRemove
31
- ? this._renderer.removeClass(document.documentElement, className)
32
- : this._renderer.addClass(document.documentElement, className);
33
- }
34
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbDashboard, deps: [], target: i0.ɵɵFactoryTarget.Component });
35
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: BbDashboard, isStandalone: true, selector: "bb-dashboard", inputs: { backgroundColor: "backgroundColor", maxWidth: "maxWidth", padding: "padding" }, host: { classAttribute: "bb-dashboard" }, queries: [{ propertyName: "sidebar", first: true, predicate: BbDashboardSidebar, descendants: true }], ngImport: i0, template: "<!--\n The outlet for where the sidebar\n will be placed (if provided).\n-->\n<ng-content select=\"bb-dashboard-sidebar\"></ng-content>\n\n<!--\n The section containing the header\n and the main content.\n-->\n<section [style.background-color]=\"backgroundColor\"\n class=\"bb-dashboard-section\">\n <!--\n The outlet for where the header\n will be placed (if provided).\n -->\n <ng-content select=\"bb-dashboard-header\">\n </ng-content>\n\n <!--\n The outlet of the content that\n will be provided by the router.\n -->\n <main [style.padding]=\"padding\"\n class=\"bb-dashboard-scroll\">\n <div [style.max-width]=\"maxWidth\"\n class=\"bb-dashboard-container\">\n <ng-content select=\"bb-dashboard-menu\"></ng-content>\n\n <ng-content></ng-content>\n </div>\n <!--\n The outlet for where the footer\n will be placed (if provided).\n -->\n <ng-content select=\"bb-dashboard-footer\"></ng-content>\n </main>\n</section>\n\n<!--\n The backdrop that will be visible when\n the sidebar is opened (only on mobile).\n-->\n@if (!!sidebar) {\n <div [class.visible]=\"!(sidebar?.visibilityChanges | async)\"\n (click)=\"sidebar?.toggle()\"\n class=\"bb-dashboard-backdrop\">\n </div>\n}\n", styles: [".bb-dashboard{height:100vh;display:flex;overflow:hidden;position:relative;height:calc(var(--vh, 1vh) * 100)}.bb-dashboard-section{flex:1;height:100vh;display:flex;overflow-x:hidden;flex-direction:column;height:calc(var(--vh, 1vh) * 100)}.bb-dashboard-scroll{flex:1;display:flex;overflow-x:hidden;overflow-y:scroll;flex-direction:column;-webkit-overflow-scrolling:touch}.bb-dashboard-container{width:100%;display:flex;margin:0 auto;flex-direction:column}.bb-dashboard-backdrop{inset:0;opacity:0;z-index:5;position:absolute;will-change:opacity;pointer-events:none;background-color:#00000080;transition:opacity .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-backdrop.visible{opacity:1;cursor:pointer;pointer-events:all}@media only screen and (min-width: 768px){.bb-dashboard-backdrop{display:none}}.bb-dashboard-html{height:100%;overflow:hidden}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
36
- }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbDashboard, decorators: [{
38
- type: Component,
39
- args: [{ selector: 'bb-dashboard', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'class': 'bb-dashboard' }, preserveWhitespaces: false, standalone: true, imports: [AsyncPipe], template: "<!--\n The outlet for where the sidebar\n will be placed (if provided).\n-->\n<ng-content select=\"bb-dashboard-sidebar\"></ng-content>\n\n<!--\n The section containing the header\n and the main content.\n-->\n<section [style.background-color]=\"backgroundColor\"\n class=\"bb-dashboard-section\">\n <!--\n The outlet for where the header\n will be placed (if provided).\n -->\n <ng-content select=\"bb-dashboard-header\">\n </ng-content>\n\n <!--\n The outlet of the content that\n will be provided by the router.\n -->\n <main [style.padding]=\"padding\"\n class=\"bb-dashboard-scroll\">\n <div [style.max-width]=\"maxWidth\"\n class=\"bb-dashboard-container\">\n <ng-content select=\"bb-dashboard-menu\"></ng-content>\n\n <ng-content></ng-content>\n </div>\n <!--\n The outlet for where the footer\n will be placed (if provided).\n -->\n <ng-content select=\"bb-dashboard-footer\"></ng-content>\n </main>\n</section>\n\n<!--\n The backdrop that will be visible when\n the sidebar is opened (only on mobile).\n-->\n@if (!!sidebar) {\n <div [class.visible]=\"!(sidebar?.visibilityChanges | async)\"\n (click)=\"sidebar?.toggle()\"\n class=\"bb-dashboard-backdrop\">\n </div>\n}\n", styles: [".bb-dashboard{height:100vh;display:flex;overflow:hidden;position:relative;height:calc(var(--vh, 1vh) * 100)}.bb-dashboard-section{flex:1;height:100vh;display:flex;overflow-x:hidden;flex-direction:column;height:calc(var(--vh, 1vh) * 100)}.bb-dashboard-scroll{flex:1;display:flex;overflow-x:hidden;overflow-y:scroll;flex-direction:column;-webkit-overflow-scrolling:touch}.bb-dashboard-container{width:100%;display:flex;margin:0 auto;flex-direction:column}.bb-dashboard-backdrop{inset:0;opacity:0;z-index:5;position:absolute;will-change:opacity;pointer-events:none;background-color:#00000080;transition:opacity .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-backdrop.visible{opacity:1;cursor:pointer;pointer-events:all}@media only screen and (min-width: 768px){.bb-dashboard-backdrop{display:none}}.bb-dashboard-html{height:100%;overflow:hidden}\n"] }]
40
- }], propDecorators: { sidebar: [{
41
- type: ContentChild,
42
- args: [BbDashboardSidebar]
43
- }], backgroundColor: [{
44
- type: Input
45
- }], maxWidth: [{
46
- type: Input
47
- }], padding: [{
48
- type: Input
49
- }] } });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZGFzaGJvYXJkL3NyYy9saWIvZGFzaGJvYXJkL2Rhc2hib2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2Rhc2hib2FyZC9zcmMvbGliL2Rhc2hib2FyZC9kYXNoYm9hcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQy9JLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQyxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDOUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDOztBQWExQyxNQUFNLE9BQU8sV0FBVztJQUVwQixnQkFBZ0I7SUFDQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLFNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0IsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUUvQyxTQUFTO0lBQ3lCLE9BQU8sQ0FBc0I7SUFFL0QsVUFBVTtJQUNELGVBQWUsR0FBVyxTQUFTLENBQUM7SUFDcEMsUUFBUSxHQUFXLE9BQU8sQ0FBQztJQUMzQixPQUFPLEdBQVcsUUFBUSxDQUFDO0lBRXBDLFFBQVE7UUFDSixJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFTyxZQUFZLENBQUMsZUFBd0IsS0FBSztRQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM1QixPQUFPO1FBQ1gsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLG1CQUFtQixDQUFDO1FBQ3RDLE9BQU8sWUFBWTtZQUNmLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQztZQUNqRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN2RSxDQUFDO3dHQWpDUSxXQUFXOzRGQUFYLFdBQVcsaVBBUU4sa0JBQWtCLGdEQ3pCcEMsczJDQWlEQSwyM0JEbENjLFNBQVM7OzRGQUVWLFdBQVc7a0JBWHZCLFNBQVM7K0JBQ0ksY0FBYyxtQkFHUCx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUMsT0FBTyxFQUFFLGNBQWMsRUFBQyx1QkFDVixLQUFLLGNBQ2QsSUFBSSxXQUNQLENBQUMsU0FBUyxDQUFDOzhCQVVjLE9BQU87c0JBQXhDLFlBQVk7dUJBQUMsa0JBQWtCO2dCQUd2QixlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIGluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBSZW5kZXJlcjIsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmJEYXNoYm9hcmRTaWRlYmFyfSBmcm9tICcuLi9kYXNoYm9hcmQtc2lkZWJhci9kYXNoYm9hcmQtc2lkZWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHtQbGF0Zm9ybX0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BsYXRmb3JtJztcbmltcG9ydCB7UGF0Y2h9IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uJztcbmltcG9ydCB7QXN5bmNQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JiLWRhc2hib2FyZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Rhc2hib2FyZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZGFzaGJvYXJkLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7J2NsYXNzJzogJ2JiLWRhc2hib2FyZCd9LFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0FzeW5jUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgQmJEYXNoYm9hcmQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICAvLyBEZXBlbmRlbmNpZXMuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcGF0Y2ggPSBpbmplY3QoUGF0Y2gpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3BsYXRmb3JtID0gaW5qZWN0KFBsYXRmb3JtKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9yZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuXG4gICAgLy8gVmlld3MuXG4gICAgQENvbnRlbnRDaGlsZChCYkRhc2hib2FyZFNpZGViYXIpIHNpZGViYXI/OiBCYkRhc2hib2FyZFNpZGViYXI7XG5cbiAgICAvLyBJbnB1dHMuXG4gICAgQElucHV0KCkgYmFja2dyb3VuZENvbG9yOiBzdHJpbmcgPSAnI2U3ZWFlZCc7XG4gICAgQElucHV0KCkgbWF4V2lkdGg6IHN0cmluZyA9ICc3NXJlbSc7XG4gICAgQElucHV0KCkgcGFkZGluZzogc3RyaW5nID0gJzEuNXJlbSc7XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5fcGF0Y2gubW9iaWxlVmVydGljYWxIZWlnaHQoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0SHRtbENsYXNzKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuc2V0SHRtbENsYXNzKHRydWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0SHRtbENsYXNzKHNob3VsZFJlbW92ZTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgICAgIGlmICghdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjbGFzc05hbWUgPSAnYmItZGFzaGJvYXJkLWh0bWwnO1xuICAgICAgICByZXR1cm4gc2hvdWxkUmVtb3ZlXG4gICAgICAgICAgICA/IHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNsYXNzKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgY2xhc3NOYW1lKVxuICAgICAgICAgICAgOiB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyhkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIGNsYXNzTmFtZSk7XG4gICAgfVxuXG59XG4iLCI8IS0tXG4gICAgVGhlIG91dGxldCBmb3Igd2hlcmUgdGhlIHNpZGViYXJcbiAgICB3aWxsIGJlIHBsYWNlZCAoaWYgcHJvdmlkZWQpLlxuLS0+XG48bmctY29udGVudCBzZWxlY3Q9XCJiYi1kYXNoYm9hcmQtc2lkZWJhclwiPjwvbmctY29udGVudD5cblxuPCEtLVxuICAgIFRoZSBzZWN0aW9uIGNvbnRhaW5pbmcgdGhlIGhlYWRlclxuICAgIGFuZCB0aGUgbWFpbiBjb250ZW50LlxuLS0+XG48c2VjdGlvbiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJiYWNrZ3JvdW5kQ29sb3JcIlxuICAgICAgICAgY2xhc3M9XCJiYi1kYXNoYm9hcmQtc2VjdGlvblwiPlxuICAgIDwhLS1cbiAgICAgICAgVGhlIG91dGxldCBmb3Igd2hlcmUgdGhlIGhlYWRlclxuICAgICAgICB3aWxsIGJlIHBsYWNlZCAoaWYgcHJvdmlkZWQpLlxuICAgIC0tPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImJiLWRhc2hib2FyZC1oZWFkZXJcIj5cbiAgICA8L25nLWNvbnRlbnQ+XG5cbiAgICA8IS0tXG4gICAgICAgIFRoZSBvdXRsZXQgb2YgdGhlIGNvbnRlbnQgdGhhdFxuICAgICAgICB3aWxsIGJlIHByb3ZpZGVkIGJ5IHRoZSByb3V0ZXIuXG4gICAgLS0+XG4gICAgPG1haW4gW3N0eWxlLnBhZGRpbmddPVwicGFkZGluZ1wiXG4gICAgICAgICAgY2xhc3M9XCJiYi1kYXNoYm9hcmQtc2Nyb2xsXCI+XG4gICAgICAgIDxkaXYgW3N0eWxlLm1heC13aWR0aF09XCJtYXhXaWR0aFwiXG4gICAgICAgICAgICAgY2xhc3M9XCJiYi1kYXNoYm9hcmQtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJiYi1kYXNoYm9hcmQtbWVudVwiPjwvbmctY29udGVudD5cblxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLVxuICAgICAgICAgICAgVGhlIG91dGxldCBmb3Igd2hlcmUgdGhlIGZvb3RlclxuICAgICAgICAgICAgd2lsbCBiZSBwbGFjZWQgKGlmIHByb3ZpZGVkKS5cbiAgICAgICAgLS0+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImJiLWRhc2hib2FyZC1mb290ZXJcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9tYWluPlxuPC9zZWN0aW9uPlxuXG48IS0tXG4gICAgVGhlIGJhY2tkcm9wIHRoYXQgd2lsbCBiZSB2aXNpYmxlIHdoZW5cbiAgICB0aGUgc2lkZWJhciBpcyBvcGVuZWQgKG9ubHkgb24gbW9iaWxlKS5cbi0tPlxuQGlmICghIXNpZGViYXIpIHtcbiAgICA8ZGl2IFtjbGFzcy52aXNpYmxlXT1cIiEoc2lkZWJhcj8udmlzaWJpbGl0eUNoYW5nZXMgfCBhc3luYylcIlxuICAgICAgICAgKGNsaWNrKT1cInNpZGViYXI/LnRvZ2dsZSgpXCJcbiAgICAgICAgIGNsYXNzPVwiYmItZGFzaGJvYXJkLWJhY2tkcm9wXCI+XG4gICAgPC9kaXY+XG59XG4iXX0=
@@ -1,25 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';
2
- import { BbDashboard } from '../dashboard/dashboard.component';
3
- import { AsyncPipe } from '@angular/common';
4
- import { of } from 'rxjs';
5
- import * as i0 from "@angular/core";
6
- export class BbDashboardHeader {
7
- // Dependencies.
8
- _parent = inject(BbDashboard, { optional: true });
9
- get showSidebarButton() {
10
- return !!this._parent?.sidebar;
11
- }
12
- get isSidebarVisible() {
13
- return this._parent?.sidebar?.visibilityChanges ?? of(false);
14
- }
15
- onToggleSidebarClicked() {
16
- this._parent?.sidebar?.toggle();
17
- }
18
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbDashboardHeader, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: BbDashboardHeader, isStandalone: true, selector: "bb-dashboard-header", host: { classAttribute: "bb-dashboard-header" }, ngImport: i0, template: "<!--\n The button that toggles the sidebar.\n-->\n@if (showSidebarButton) {\n <button (click)=\"onToggleSidebarClicked()\"\n [class.reversed]=\"isSidebarVisible | async\"\n class=\"bb-dashboard-header-button\"\n type=\"button\"\n tabindex=\"0\"\n role=\"switch\">\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 157 109\"\n width=\"1.0625rem\"\n height=\"0.75rem\"\n role=\"img\">\n <title>\n Toggle\n </title>\n <path fill=\"#fff\"\n d=\"M82 42V11.2L30 54.5l52 43.3V67h75V42zM9.5 109h-2c-4.1 0-7.5-3.4-7.5-7.5v-94C0 3.4 3.4 0 7.5 0h2C13.6 0 17 3.4 17 7.5v94c0 4.1-3.4 7.5-7.5 7.5z\">\n </path>\n </svg>\n </button>\n}\n\n<!--\n The extra items of the header.\n-->\n<div class=\"bb-dashboard-header-items\">\n <ng-content></ng-content>\n</div>\n", styles: [".bb-dashboard-header{z-index:1;width:100%;color:#fff;height:3rem;display:flex;font-size:1rem;min-height:3rem;padding:0 .5rem;align-items:center;background-color:#5b53ff;border-bottom:1px solid #4d46d6}.bb-dashboard-header-button{width:4.25rem;height:2.125rem;align-items:center;display:inline-flex;border-radius:.25rem;justify-content:center;border:1px solid #4d46d6;background-color:transparent}.bb-dashboard-header-button>svg{height:100%;transform:none;transition:transform .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-header-button.reversed>svg{transform:rotateY(180deg)}.bb-dashboard-header-button:hover{background-color:#0000000a}.bb-dashboard-header-button:active{background-color:#00000014}.bb-dashboard-header-items{display:flex;margin-left:auto;align-items:center}.bb-dashboard-header-items>*:not(:first-child){margin-left:.5rem}@media only screen and (min-width: 768px){.bb-dashboard-header-button>svg{transform:rotateY(180deg)}.bb-dashboard-header-button.reversed>svg{transform:none}}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
20
- }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbDashboardHeader, decorators: [{
22
- type: Component,
23
- args: [{ selector: 'bb-dashboard-header', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'class': 'bb-dashboard-header' }, preserveWhitespaces: false, standalone: true, imports: [AsyncPipe], template: "<!--\n The button that toggles the sidebar.\n-->\n@if (showSidebarButton) {\n <button (click)=\"onToggleSidebarClicked()\"\n [class.reversed]=\"isSidebarVisible | async\"\n class=\"bb-dashboard-header-button\"\n type=\"button\"\n tabindex=\"0\"\n role=\"switch\">\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 157 109\"\n width=\"1.0625rem\"\n height=\"0.75rem\"\n role=\"img\">\n <title>\n Toggle\n </title>\n <path fill=\"#fff\"\n d=\"M82 42V11.2L30 54.5l52 43.3V67h75V42zM9.5 109h-2c-4.1 0-7.5-3.4-7.5-7.5v-94C0 3.4 3.4 0 7.5 0h2C13.6 0 17 3.4 17 7.5v94c0 4.1-3.4 7.5-7.5 7.5z\">\n </path>\n </svg>\n </button>\n}\n\n<!--\n The extra items of the header.\n-->\n<div class=\"bb-dashboard-header-items\">\n <ng-content></ng-content>\n</div>\n", styles: [".bb-dashboard-header{z-index:1;width:100%;color:#fff;height:3rem;display:flex;font-size:1rem;min-height:3rem;padding:0 .5rem;align-items:center;background-color:#5b53ff;border-bottom:1px solid #4d46d6}.bb-dashboard-header-button{width:4.25rem;height:2.125rem;align-items:center;display:inline-flex;border-radius:.25rem;justify-content:center;border:1px solid #4d46d6;background-color:transparent}.bb-dashboard-header-button>svg{height:100%;transform:none;transition:transform .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-header-button.reversed>svg{transform:rotateY(180deg)}.bb-dashboard-header-button:hover{background-color:#0000000a}.bb-dashboard-header-button:active{background-color:#00000014}.bb-dashboard-header-items{display:flex;margin-left:auto;align-items:center}.bb-dashboard-header-items>*:not(:first-child){margin-left:.5rem}@media only screen and (min-width: 768px){.bb-dashboard-header-button>svg{transform:rotateY(180deg)}.bb-dashboard-header-button.reversed>svg{transform:none}}\n"] }]
24
- }] });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2Rhc2hib2FyZC9zcmMvbGliL2Rhc2hib2FyZC1oZWFkZXIvZGFzaGJvYXJkLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2Rhc2hib2FyZC9zcmMvbGliL2Rhc2hib2FyZC1oZWFkZXIvZGFzaGJvYXJkLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDN0QsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7O0FBYXhCLE1BQU0sT0FBTyxpQkFBaUI7SUFFMUIsZ0JBQWdCO0lBQ0MsT0FBTyxHQUFHLE1BQU0sQ0FBQyxXQUFXLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztJQUVqRSxJQUFJLGlCQUFpQjtRQUNqQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsSUFBSSxFQUFFLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELHNCQUFzQjtRQUNsQixJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNwQyxDQUFDO3dHQWZRLGlCQUFpQjs0RkFBakIsaUJBQWlCLGdJQ2hCOUIsdThCQStCQSxzaENEakJjLFNBQVM7OzRGQUVWLGlCQUFpQjtrQkFYN0IsU0FBUzsrQkFDSSxxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQixFQUFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBQyx1QkFDakIsS0FBSyxjQUNkLElBQUksV0FDUCxDQUFDLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JiRGFzaGJvYXJkfSBmcm9tICcuLi9kYXNoYm9hcmQvZGFzaGJvYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQge0FzeW5jUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7b2Z9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JiLWRhc2hib2FyZC1oZWFkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXNoYm9hcmQtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kYXNoYm9hcmQtaGVhZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7J2NsYXNzJzogJ2JiLWRhc2hib2FyZC1oZWFkZXInfSxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtBc3luY1BpcGVdXG59KVxuZXhwb3J0IGNsYXNzIEJiRGFzaGJvYXJkSGVhZGVyIHtcblxuICAgIC8vIERlcGVuZGVuY2llcy5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9wYXJlbnQgPSBpbmplY3QoQmJEYXNoYm9hcmQsIHtvcHRpb25hbDogdHJ1ZX0pO1xuXG4gICAgZ2V0IHNob3dTaWRlYmFyQnV0dG9uKCkge1xuICAgICAgICByZXR1cm4gISF0aGlzLl9wYXJlbnQ/LnNpZGViYXI7XG4gICAgfVxuXG4gICAgZ2V0IGlzU2lkZWJhclZpc2libGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYXJlbnQ/LnNpZGViYXI/LnZpc2liaWxpdHlDaGFuZ2VzID8/IG9mPGJvb2xlYW4+KGZhbHNlKTtcbiAgICB9XG5cbiAgICBvblRvZ2dsZVNpZGViYXJDbGlja2VkKCkge1xuICAgICAgICB0aGlzLl9wYXJlbnQ/LnNpZGViYXI/LnRvZ2dsZSgpO1xuICAgIH1cblxufVxuIiwiPCEtLVxuICAgIFRoZSBidXR0b24gdGhhdCB0b2dnbGVzIHRoZSBzaWRlYmFyLlxuLS0+XG5AaWYgKHNob3dTaWRlYmFyQnV0dG9uKSB7XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwib25Ub2dnbGVTaWRlYmFyQ2xpY2tlZCgpXCJcbiAgICAgICAgICAgIFtjbGFzcy5yZXZlcnNlZF09XCJpc1NpZGViYXJWaXNpYmxlIHwgYXN5bmNcIlxuICAgICAgICAgICAgY2xhc3M9XCJiYi1kYXNoYm9hcmQtaGVhZGVyLWJ1dHRvblwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICByb2xlPVwic3dpdGNoXCI+XG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNTcgMTA5XCJcbiAgICAgICAgICAgICB3aWR0aD1cIjEuMDYyNXJlbVwiXG4gICAgICAgICAgICAgaGVpZ2h0PVwiMC43NXJlbVwiXG4gICAgICAgICAgICAgcm9sZT1cImltZ1wiPlxuICAgICAgICAgICAgPHRpdGxlPlxuICAgICAgICAgICAgICAgIFRvZ2dsZVxuICAgICAgICAgICAgPC90aXRsZT5cbiAgICAgICAgICAgIDxwYXRoIGZpbGw9XCIjZmZmXCJcbiAgICAgICAgICAgICAgICAgIGQ9XCJNODIgNDJWMTEuMkwzMCA1NC41bDUyIDQzLjNWNjdoNzVWNDJ6TTkuNSAxMDloLTJjLTQuMSAwLTcuNS0zLjQtNy41LTcuNXYtOTRDMCAzLjQgMy40IDAgNy41IDBoMkMxMy42IDAgMTcgMy40IDE3IDcuNXY5NGMwIDQuMS0zLjQgNy41LTcuNSA3LjV6XCI+XG4gICAgICAgICAgICA8L3BhdGg+XG4gICAgICAgIDwvc3ZnPlxuICAgIDwvYnV0dG9uPlxufVxuXG48IS0tXG4gICAgVGhlIGV4dHJhIGl0ZW1zIG9mIHRoZSBoZWFkZXIuXG4tLT5cbjxkaXYgY2xhc3M9XCJiYi1kYXNoYm9hcmQtaGVhZGVyLWl0ZW1zXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=
@@ -1,28 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';
2
- import { RouterLink } from '@angular/router';
3
- import * as i0 from "@angular/core";
4
- export class BbDashboardMenu {
5
- // Inputs.
6
- title = null;
7
- imageUrl = null;
8
- backUrlLink = null;
9
- backUrlTitle = null;
10
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbDashboardMenu, deps: [], target: i0.ɵɵFactoryTarget.Component });
11
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: BbDashboardMenu, isStandalone: true, selector: "bb-dashboard-menu", inputs: { title: "title", imageUrl: "imageUrl", backUrlLink: "backUrlLink", backUrlTitle: "backUrlTitle" }, host: { attributes: { "role": "navigation" }, classAttribute: "bb-dashboard-menu" }, ngImport: i0, template: "@if (backUrlLink && backUrlTitle) {\n <a [routerLink]=\"backUrlLink\"\n class=\"bb-dashboard-menu-link\">{{ backUrlTitle }}</a>\n}\n\n<div class=\"bb-dashboard-menu-row\">\n @if (imageUrl) {\n <img [src]=\"imageUrl\"\n class=\"bb-dashboard-menu-image\"\n alt=\"Menu image\">\n }\n @if (title; as titleLabel) {\n <h1 class=\"bb-dashboard-menu-title\">\n {{ titleLabel }}\n </h1>\n }\n</div>\n\n<nav class=\"bb-dashboard-menu-navigation\">\n <ng-content select=\"[bb-dashboard-menu-item]\"></ng-content>\n</nav>\n", styles: [".bb-dashboard-menu{display:block;margin-bottom:1.5rem}.bb-dashboard-menu-link,.bb-dashboard-menu-title{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.bb-dashboard-menu-link{display:block;font-weight:500;margin-bottom:1rem;text-decoration:none}.bb-dashboard-menu-link,.bb-dashboard-menu-link:visited{color:#a7a9c4!important}.bb-dashboard-menu-link:before{content:\"\";width:.875rem;height:.8125rem;margin-right:.25rem;display:inline-block;background-size:cover;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 492 492'%3E%3Cpath fill='%23a7a9c4' d='M464.344 207.418l.768.168H135.888l103.496-103.724c5.068-5.064 7.848-11.924 7.848-19.124 0-7.2-2.78-14.012-7.848-19.088L223.28 49.538c-5.064-5.064-11.812-7.864-19.008-7.864-7.2 0-13.952 2.78-19.016 7.844L7.844 226.914C2.76 231.998-.02 238.77 0 245.974c-.02 7.244 2.76 14.02 7.844 19.096l177.412 177.412c5.064 5.06 11.812 7.844 19.016 7.844 7.196 0 13.944-2.788 19.008-7.844l16.104-16.112c5.068-5.056 7.848-11.808 7.848-19.008 0-7.196-2.78-13.592-7.848-18.652L134.72 284.406h329.992c14.828 0 27.288-12.78 27.288-27.6v-22.788c0-14.82-12.828-26.6-27.656-26.6z'/%3E%3C/svg%3E\")}.bb-dashboard-menu-row{display:flex;align-items:center;margin-bottom:.75rem}.bb-dashboard-menu-image{width:2rem;height:2rem;display:block;border-radius:50%;margin-right:.75rem}.bb-dashboard-menu-title{color:#272838;display:block;line-height:1;font-size:2rem;font-weight:500}.bb-dashboard-menu-navigation{display:flex;overflow-x:auto;border-bottom:1px solid #d8d8d8}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
12
- }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbDashboardMenu, decorators: [{
14
- type: Component,
15
- args: [{ selector: 'bb-dashboard-menu', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
16
- 'class': 'bb-dashboard-menu',
17
- 'role': 'navigation'
18
- }, preserveWhitespaces: false, standalone: true, imports: [RouterLink], template: "@if (backUrlLink && backUrlTitle) {\n <a [routerLink]=\"backUrlLink\"\n class=\"bb-dashboard-menu-link\">{{ backUrlTitle }}</a>\n}\n\n<div class=\"bb-dashboard-menu-row\">\n @if (imageUrl) {\n <img [src]=\"imageUrl\"\n class=\"bb-dashboard-menu-image\"\n alt=\"Menu image\">\n }\n @if (title; as titleLabel) {\n <h1 class=\"bb-dashboard-menu-title\">\n {{ titleLabel }}\n </h1>\n }\n</div>\n\n<nav class=\"bb-dashboard-menu-navigation\">\n <ng-content select=\"[bb-dashboard-menu-item]\"></ng-content>\n</nav>\n", styles: [".bb-dashboard-menu{display:block;margin-bottom:1.5rem}.bb-dashboard-menu-link,.bb-dashboard-menu-title{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.bb-dashboard-menu-link{display:block;font-weight:500;margin-bottom:1rem;text-decoration:none}.bb-dashboard-menu-link,.bb-dashboard-menu-link:visited{color:#a7a9c4!important}.bb-dashboard-menu-link:before{content:\"\";width:.875rem;height:.8125rem;margin-right:.25rem;display:inline-block;background-size:cover;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 492 492'%3E%3Cpath fill='%23a7a9c4' d='M464.344 207.418l.768.168H135.888l103.496-103.724c5.068-5.064 7.848-11.924 7.848-19.124 0-7.2-2.78-14.012-7.848-19.088L223.28 49.538c-5.064-5.064-11.812-7.864-19.008-7.864-7.2 0-13.952 2.78-19.016 7.844L7.844 226.914C2.76 231.998-.02 238.77 0 245.974c-.02 7.244 2.76 14.02 7.844 19.096l177.412 177.412c5.064 5.06 11.812 7.844 19.016 7.844 7.196 0 13.944-2.788 19.008-7.844l16.104-16.112c5.068-5.056 7.848-11.808 7.848-19.008 0-7.196-2.78-13.592-7.848-18.652L134.72 284.406h329.992c14.828 0 27.288-12.78 27.288-27.6v-22.788c0-14.82-12.828-26.6-27.656-26.6z'/%3E%3C/svg%3E\")}.bb-dashboard-menu-row{display:flex;align-items:center;margin-bottom:.75rem}.bb-dashboard-menu-image{width:2rem;height:2rem;display:block;border-radius:50%;margin-right:.75rem}.bb-dashboard-menu-title{color:#272838;display:block;line-height:1;font-size:2rem;font-weight:500}.bb-dashboard-menu-navigation{display:flex;overflow-x:auto;border-bottom:1px solid #d8d8d8}\n"] }]
19
- }], propDecorators: { title: [{
20
- type: Input
21
- }], imageUrl: [{
22
- type: Input
23
- }], backUrlLink: [{
24
- type: Input
25
- }], backUrlTitle: [{
26
- type: Input
27
- }] } });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9kYXNoYm9hcmQvc3JjL2xpYi9kYXNoYm9hcmQtbWVudS9kYXNoYm9hcmQtbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2Rhc2hib2FyZC9zcmMvbGliL2Rhc2hib2FyZC1tZW51L2Rhc2hib2FyZC1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7QUFnQjNDLE1BQU0sT0FBTyxlQUFlO0lBRXhCLFVBQVU7SUFDRCxLQUFLLEdBQWtCLElBQUksQ0FBQztJQUM1QixRQUFRLEdBQWtCLElBQUksQ0FBQztJQUMvQixXQUFXLEdBQWtCLElBQUksQ0FBQztJQUNsQyxZQUFZLEdBQWtCLElBQUksQ0FBQzt3R0FObkMsZUFBZTs0RkFBZixlQUFlLDhRQ2pCNUIsaWxCQXFCQSxzbERETmMsVUFBVTs7NEZBRVgsZUFBZTtrQkFkM0IsU0FBUzsrQkFDSSxtQkFBbUIsbUJBR1osdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDRixPQUFPLEVBQUUsbUJBQW1CO3dCQUM1QixNQUFNLEVBQUUsWUFBWTtxQkFDdkIsdUJBQ29CLEtBQUssY0FDZCxJQUFJLFdBQ1AsQ0FBQyxVQUFVLENBQUM7OEJBS1osS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXJMaW5rfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JiLWRhc2hib2FyZC1tZW51JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGFzaGJvYXJkLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2Rhc2hib2FyZC1tZW51LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdjbGFzcyc6ICdiYi1kYXNoYm9hcmQtbWVudScsXG4gICAgICAgICdyb2xlJzogJ25hdmlnYXRpb24nXG4gICAgfSxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtSb3V0ZXJMaW5rXVxufSlcbmV4cG9ydCBjbGFzcyBCYkRhc2hib2FyZE1lbnUge1xuXG4gICAgLy8gSW5wdXRzLlxuICAgIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSBpbWFnZVVybDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgYmFja1VybExpbms6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpIGJhY2tVcmxUaXRsZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbn1cbiIsIkBpZiAoYmFja1VybExpbmsgJiYgYmFja1VybFRpdGxlKSB7XG4gICAgPGEgW3JvdXRlckxpbmtdPVwiYmFja1VybExpbmtcIlxuICAgICAgIGNsYXNzPVwiYmItZGFzaGJvYXJkLW1lbnUtbGlua1wiPnt7IGJhY2tVcmxUaXRsZSB9fTwvYT5cbn1cblxuPGRpdiBjbGFzcz1cImJiLWRhc2hib2FyZC1tZW51LXJvd1wiPlxuICAgIEBpZiAoaW1hZ2VVcmwpIHtcbiAgICAgICAgPGltZyBbc3JjXT1cImltYWdlVXJsXCJcbiAgICAgICAgICAgICBjbGFzcz1cImJiLWRhc2hib2FyZC1tZW51LWltYWdlXCJcbiAgICAgICAgICAgICBhbHQ9XCJNZW51IGltYWdlXCI+XG4gICAgfVxuICAgIEBpZiAodGl0bGU7IGFzIHRpdGxlTGFiZWwpIHtcbiAgICAgICAgPGgxIGNsYXNzPVwiYmItZGFzaGJvYXJkLW1lbnUtdGl0bGVcIj5cbiAgICAgICAgICAgIHt7IHRpdGxlTGFiZWwgfX1cbiAgICAgICAgPC9oMT5cbiAgICB9XG48L2Rpdj5cblxuPG5hdiBjbGFzcz1cImJiLWRhc2hib2FyZC1tZW51LW5hdmlnYXRpb25cIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbYmItZGFzaGJvYXJkLW1lbnUtaXRlbV1cIj48L25nLWNvbnRlbnQ+XG48L25hdj5cbiJdfQ==
@@ -1,32 +0,0 @@
1
- import { booleanAttribute, ChangeDetectionStrategy, Component, HostListener, Input, ViewEncapsulation } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class BbDashboardMenuItem {
4
- // Inputs.
5
- disabled = false;
6
- stopDisabledEvents(event) {
7
- // If the menu item is not disabled let all events pass.
8
- if (!this.disabled) {
9
- return;
10
- }
11
- // If the menu item is disabled stop the event from
12
- // bubbling up.
13
- event.preventDefault();
14
- event.stopImmediatePropagation();
15
- }
16
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbDashboardMenuItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
17
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.12", type: BbDashboardMenuItem, isStandalone: true, selector: "[bb-dashboard-menu-item]", inputs: { disabled: ["disabled", "disabled", booleanAttribute] }, host: { listeners: { "click": "stopDisabledEvents($event)" }, properties: { "class.disabled": "disabled" }, classAttribute: "bb-dashboard-menu-item" }, ngImport: i0, template: "<ng-content select=\"[bbPrefix]\"></ng-content>\n<span class=\"bb-dashboard-menu-item-content\">\n <ng-content></ng-content>\n</span>\n<ng-content select=\"[bbSuffix]\"></ng-content>\n", styles: [".bb-dashboard-menu-item{margin:0;padding:0;border:none;display:flex;max-width:100%;font-size:1rem;appearance:none;align-items:center;white-space:nowrap;background-color:transparent;text-decoration:none!important;border-bottom:2px solid transparent}.bb-dashboard-menu-item,.bb-dashboard-menu-item:visited{color:#6b5c5c}.bb-dashboard-menu-item:not(:first-child){margin-left:.75rem}.bb-dashboard-menu-item:not(:last-child){margin-right:.75rem}.bb-dashboard-menu-item:hover:not(.disabled):not(.active){border-color:#75779433}.bb-dashboard-menu-item.active,.bb-dashboard-menu-item.active:visited .bb-dashboard-menu-item.active:hover{color:#5b53ff;border-color:#5b53ff}.bb-dashboard-menu-item.disabled,.bb-dashboard-menu-item.disabled:focus,.bb-dashboard-menu-item.disabled:hover,.bb-dashboard-menu-item.disabled:active{opacity:.4;cursor:default;box-shadow:none}.bb-dashboard-menu-item>.bb-prefix{margin-right:.25rem}.bb-dashboard-menu-item>.bb-suffix{margin-left:.25rem}.bb-dashboard-menu-item-content{height:2.5rem;display:block;font-weight:500;line-height:2.5rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
18
- }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbDashboardMenuItem, decorators: [{
20
- type: Component,
21
- args: [{ selector: '[bb-dashboard-menu-item]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
22
- 'class': 'bb-dashboard-menu-item',
23
- '[class.disabled]': 'disabled'
24
- }, standalone: true, template: "<ng-content select=\"[bbPrefix]\"></ng-content>\n<span class=\"bb-dashboard-menu-item-content\">\n <ng-content></ng-content>\n</span>\n<ng-content select=\"[bbSuffix]\"></ng-content>\n", styles: [".bb-dashboard-menu-item{margin:0;padding:0;border:none;display:flex;max-width:100%;font-size:1rem;appearance:none;align-items:center;white-space:nowrap;background-color:transparent;text-decoration:none!important;border-bottom:2px solid transparent}.bb-dashboard-menu-item,.bb-dashboard-menu-item:visited{color:#6b5c5c}.bb-dashboard-menu-item:not(:first-child){margin-left:.75rem}.bb-dashboard-menu-item:not(:last-child){margin-right:.75rem}.bb-dashboard-menu-item:hover:not(.disabled):not(.active){border-color:#75779433}.bb-dashboard-menu-item.active,.bb-dashboard-menu-item.active:visited .bb-dashboard-menu-item.active:hover{color:#5b53ff;border-color:#5b53ff}.bb-dashboard-menu-item.disabled,.bb-dashboard-menu-item.disabled:focus,.bb-dashboard-menu-item.disabled:hover,.bb-dashboard-menu-item.disabled:active{opacity:.4;cursor:default;box-shadow:none}.bb-dashboard-menu-item>.bb-prefix{margin-right:.25rem}.bb-dashboard-menu-item>.bb-suffix{margin-left:.25rem}.bb-dashboard-menu-item-content{height:2.5rem;display:block;font-weight:500;line-height:2.5rem}\n"] }]
25
- }], propDecorators: { disabled: [{
26
- type: Input,
27
- args: [{ transform: booleanAttribute }]
28
- }], stopDisabledEvents: [{
29
- type: HostListener,
30
- args: ['click', ['$event']]
31
- }] } });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLW1lbnUtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2Rhc2hib2FyZC9zcmMvbGliL2Rhc2hib2FyZC1tZW51LWl0ZW0vZGFzaGJvYXJkLW1lbnUtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2Rhc2hib2FyZC9zcmMvbGliL2Rhc2hib2FyZC1tZW51LWl0ZW0vZGFzaGJvYXJkLW1lbnUtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBZTNILE1BQU0sT0FBTyxtQkFBbUI7SUFFNUIsVUFBVTtJQUM0QixRQUFRLEdBQVksS0FBSyxDQUFDO0lBR2hFLGtCQUFrQixDQUFDLEtBQVk7UUFDM0Isd0RBQXdEO1FBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakIsT0FBTztRQUNYLENBQUM7UUFFRCxtREFBbUQ7UUFDbkQsZUFBZTtRQUNmLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNyQyxDQUFDO3dHQWhCUSxtQkFBbUI7NEZBQW5CLG1CQUFtQix5R0FHVCxnQkFBZ0IscUxDbEJ2Qyw2TEFLQTs7NEZEVWEsbUJBQW1CO2tCQWIvQixTQUFTOytCQUNJLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSx1QkFDaEIsS0FBSyxRQUNwQjt3QkFDRixPQUFPLEVBQUUsd0JBQXdCO3dCQUNqQyxrQkFBa0IsRUFBRSxVQUFVO3FCQUNqQyxjQUNXLElBQUk7OEJBS3NCLFFBQVE7c0JBQTdDLEtBQUs7dUJBQUMsRUFBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUM7Z0JBR3BDLGtCQUFrQjtzQkFEakIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2Jvb2xlYW5BdHRyaWJ1dGUsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdbYmItZGFzaGJvYXJkLW1lbnUtaXRlbV0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXNoYm9hcmQtbWVudS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kYXNoYm9hcmQtbWVudS1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdjbGFzcyc6ICdiYi1kYXNoYm9hcmQtbWVudS1pdGVtJyxcbiAgICAgICAgJ1tjbGFzcy5kaXNhYmxlZF0nOiAnZGlzYWJsZWQnXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEJiRGFzaGJvYXJkTWVudUl0ZW0ge1xuXG4gICAgLy8gSW5wdXRzLlxuICAgIEBJbnB1dCh7dHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlfSkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgICBzdG9wRGlzYWJsZWRFdmVudHMoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIC8vIElmIHRoZSBtZW51IGl0ZW0gaXMgbm90IGRpc2FibGVkIGxldCBhbGwgZXZlbnRzIHBhc3MuXG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgdGhlIG1lbnUgaXRlbSBpcyBkaXNhYmxlZCBzdG9wIHRoZSBldmVudCBmcm9tXG4gICAgICAgIC8vIGJ1YmJsaW5nIHVwLlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbn1cbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cIltiYlByZWZpeF1cIj48L25nLWNvbnRlbnQ+XG48c3BhbiBjbGFzcz1cImJiLWRhc2hib2FyZC1tZW51LWl0ZW0tY29udGVudFwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvc3Bhbj5cbjxuZy1jb250ZW50IHNlbGVjdD1cIltiYlN1ZmZpeF1cIj48L25nLWNvbnRlbnQ+XG4iXX0=
@@ -1,75 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';
2
- import { Storage } from '@bravobit/bb-foundation/storage';
3
- import { BehaviorSubject } from 'rxjs';
4
- import { map } from 'rxjs/operators';
5
- import * as i0 from "@angular/core";
6
- export class BbDashboardSidebar {
7
- // Readonly data.
8
- _localStorageToken = 'bb-dashboard-sidebar-state';
9
- // Dependencies.
10
- _storage = inject(Storage);
11
- // Bindings.
12
- visibilityChanges = new BehaviorSubject(true);
13
- // State.
14
- _state$ = new BehaviorSubject({});
15
- _cache;
16
- ngOnInit() {
17
- // Retrieve the cache.
18
- this._cache = this._storage.get(this._localStorageToken) ?? {};
19
- }
20
- registerGroup(id) {
21
- // Get the old state.
22
- const oldState = this._state$.getValue();
23
- // Get the cache value so when it is undefined
24
- // we will default to true.
25
- const cacheValue = this._cache[id] === undefined ? true : this._cache[id];
26
- // Push the new state.
27
- this._state$.next({ ...oldState, [id]: cacheValue });
28
- // Return the slice of the state that the group needs.
29
- return this._state$.pipe(map(state => state[id]));
30
- }
31
- unregisterGroup(id) {
32
- // Get the old groups.
33
- const oldState = this._state$.getValue();
34
- // Generate the new state without the id.
35
- const newState = Object.keys(oldState).reduce((object, key) => {
36
- if (key !== id) {
37
- object[key] = oldState[key];
38
- }
39
- return object;
40
- }, {});
41
- // Push the new state.
42
- this._state$.next(newState);
43
- }
44
- toggleGroup(id, newValue) {
45
- // Get the old state.
46
- const oldState = this._state$.getValue();
47
- // Create the new state.
48
- const newState = { ...oldState, [id]: newValue };
49
- // Push the new state.
50
- this._state$.next(newState);
51
- // Save in the cache.
52
- this._storage.set(this._localStorageToken, newState);
53
- }
54
- toggle() {
55
- const current = this.visibilityChanges.getValue();
56
- this.visibilityChanges.next(!current);
57
- }
58
- open() {
59
- this.visibilityChanges.next(true);
60
- }
61
- close() {
62
- this.visibilityChanges.next(false);
63
- }
64
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbDashboardSidebar, deps: [], target: i0.ɵɵFactoryTarget.Component });
65
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: BbDashboardSidebar, isStandalone: true, selector: "bb-dashboard-sidebar", host: { attributes: { "role": "navigation" }, properties: { "class.visible": "visibilityChanges.getValue()" }, classAttribute: "bb-dashboard-sidebar" }, ngImport: i0, template: "<!--\n The optional header element.\n-->\n<ng-content select=\"header\"></ng-content>\n\n<!--\n The scroll area that contains the\n groups in the navigation.\n-->\n<div class=\"bb-dashboard-sidebar-scroll\">\n <ng-content select=\"bb-dashboard-sidebar-group\"></ng-content>\n</div>\n\n<!--\n The optional footer element.\n-->\n<ng-content select=\"footer\"></ng-content>\n", styles: [".bb-dashboard-sidebar{top:0;bottom:0;z-index:10;left:-16rem;width:16rem;height:100vh;display:flex;position:fixed;min-width:16rem;will-change:transform;flex-direction:column;transform:translate(16rem);height:calc(var(--vh, 1vh) * 100);border-right:1px solid hsla(0,0%,0%,.4);transition:transform .25s cubic-bezier(0,0,.2,1);background:#fff linear-gradient(to bottom,#fff,#f2f2f2)}.bb-dashboard-sidebar.visible{transform:none}.bb-dashboard-sidebar-scroll{flex:1;overflow:auto}.bb-dashboard-sidebar>header{border-bottom:1px solid #d8d8d8;background-color:#ffffff80}.bb-dashboard-sidebar>footer{border-top:1px solid #d8d8d8;background-color:#ffffff80}@media only screen and (min-width: 768px){.bb-dashboard-sidebar{left:0;z-index:auto;transform:none;position:relative;margin-left:-16rem;transition:margin-left .25s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar.visible{margin-left:0}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
66
- }
67
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbDashboardSidebar, decorators: [{
68
- type: Component,
69
- args: [{ selector: 'bb-dashboard-sidebar', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
70
- 'class': 'bb-dashboard-sidebar',
71
- '[class.visible]': 'visibilityChanges.getValue()',
72
- 'role': 'navigation'
73
- }, preserveWhitespaces: false, standalone: true, template: "<!--\n The optional header element.\n-->\n<ng-content select=\"header\"></ng-content>\n\n<!--\n The scroll area that contains the\n groups in the navigation.\n-->\n<div class=\"bb-dashboard-sidebar-scroll\">\n <ng-content select=\"bb-dashboard-sidebar-group\"></ng-content>\n</div>\n\n<!--\n The optional footer element.\n-->\n<ng-content select=\"footer\"></ng-content>\n", styles: [".bb-dashboard-sidebar{top:0;bottom:0;z-index:10;left:-16rem;width:16rem;height:100vh;display:flex;position:fixed;min-width:16rem;will-change:transform;flex-direction:column;transform:translate(16rem);height:calc(var(--vh, 1vh) * 100);border-right:1px solid hsla(0,0%,0%,.4);transition:transform .25s cubic-bezier(0,0,.2,1);background:#fff linear-gradient(to bottom,#fff,#f2f2f2)}.bb-dashboard-sidebar.visible{transform:none}.bb-dashboard-sidebar-scroll{flex:1;overflow:auto}.bb-dashboard-sidebar>header{border-bottom:1px solid #d8d8d8;background-color:#ffffff80}.bb-dashboard-sidebar>footer{border-top:1px solid #d8d8d8;background-color:#ffffff80}@media only screen and (min-width: 768px){.bb-dashboard-sidebar{left:0;z-index:auto;transform:none;position:relative;margin-left:-16rem;transition:margin-left .25s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar.visible{margin-left:0}}\n"] }]
74
- }] });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLXNpZGViYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9kYXNoYm9hcmQvc3JjL2xpYi9kYXNoYm9hcmQtc2lkZWJhci9kYXNoYm9hcmQtc2lkZWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2Rhc2hib2FyZC9zcmMvbGliL2Rhc2hib2FyZC1zaWRlYmFyL2Rhc2hib2FyZC1zaWRlYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFrQm5DLE1BQU0sT0FBTyxrQkFBa0I7SUFFM0IsaUJBQWlCO0lBQ0Esa0JBQWtCLEdBQVcsNEJBQTRCLENBQUM7SUFFM0UsZ0JBQWdCO0lBQ0MsUUFBUSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUU1QyxZQUFZO0lBQ1osaUJBQWlCLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxDQUFDLENBQUM7SUFFdkQsU0FBUztJQUNELE9BQU8sR0FBRyxJQUFJLGVBQWUsQ0FBMEIsRUFBRSxDQUFDLENBQUM7SUFDM0QsTUFBTSxDQUEwQjtJQUV4QyxRQUFRO1FBQ0osc0JBQXNCO1FBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQTBCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1RixDQUFDO0lBRUQsYUFBYSxDQUFDLEVBQVU7UUFDcEIscUJBQXFCO1FBQ3JCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFekMsOENBQThDO1FBQzlDLDJCQUEyQjtRQUMzQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTFFLHNCQUFzQjtRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFDLEdBQUcsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQztRQUVuRCxzREFBc0Q7UUFDdEQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDcEIsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQzFCLENBQUM7SUFDTixDQUFDO0lBRUQsZUFBZSxDQUFDLEVBQVU7UUFDdEIsc0JBQXNCO1FBQ3RCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFekMseUNBQXlDO1FBQ3pDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQzFELElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO2dCQUNiLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEMsQ0FBQztZQUNELE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVQLHNCQUFzQjtRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQVUsRUFBRSxRQUFpQjtRQUNyQyxxQkFBcUI7UUFDckIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUV6Qyx3QkFBd0I7UUFDeEIsTUFBTSxRQUFRLEdBQUcsRUFBQyxHQUFHLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBQyxDQUFDO1FBRS9DLHNCQUFzQjtRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU1QixxQkFBcUI7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxNQUFNO1FBQ0YsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsSUFBSTtRQUNBLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELEtBQUs7UUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7d0dBOUVRLGtCQUFrQjs0RkFBbEIsa0JBQWtCLHlPQ3JCL0IscVlBaUJBOzs0RkRJYSxrQkFBa0I7a0JBZDlCLFNBQVM7K0JBQ0ksc0JBQXNCLG1CQUdmLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0YsT0FBTyxFQUFFLHNCQUFzQjt3QkFDL0IsaUJBQWlCLEVBQUUsOEJBQThCO3dCQUNqRCxNQUFNLEVBQUUsWUFBWTtxQkFDdkIsdUJBQ29CLEtBQUssY0FDZCxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTdG9yYWdlfSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbi9zdG9yYWdlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbnR5cGUgQmJEYXNoYm9hcmRTaWRlYmFyU3RhdGUgPSB7IFtpZDogc3RyaW5nXTogYm9vbGVhbiB9O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JiLWRhc2hib2FyZC1zaWRlYmFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGFzaGJvYXJkLXNpZGViYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2Rhc2hib2FyZC1zaWRlYmFyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdjbGFzcyc6ICdiYi1kYXNoYm9hcmQtc2lkZWJhcicsXG4gICAgICAgICdbY2xhc3MudmlzaWJsZV0nOiAndmlzaWJpbGl0eUNoYW5nZXMuZ2V0VmFsdWUoKScsXG4gICAgICAgICdyb2xlJzogJ25hdmlnYXRpb24nXG4gICAgfSxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEJiRGFzaGJvYXJkU2lkZWJhciBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICAvLyBSZWFkb25seSBkYXRhLlxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2xvY2FsU3RvcmFnZVRva2VuOiBzdHJpbmcgPSAnYmItZGFzaGJvYXJkLXNpZGViYXItc3RhdGUnO1xuXG4gICAgLy8gRGVwZW5kZW5jaWVzLlxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3N0b3JhZ2UgPSBpbmplY3QoU3RvcmFnZSk7XG5cbiAgICAvLyBCaW5kaW5ncy5cbiAgICB2aXNpYmlsaXR5Q2hhbmdlcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgICAvLyBTdGF0ZS5cbiAgICBwcml2YXRlIF9zdGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJiRGFzaGJvYXJkU2lkZWJhclN0YXRlPih7fSk7XG4gICAgcHJpdmF0ZSBfY2FjaGU6IEJiRGFzaGJvYXJkU2lkZWJhclN0YXRlO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIC8vIFJldHJpZXZlIHRoZSBjYWNoZS5cbiAgICAgICAgdGhpcy5fY2FjaGUgPSB0aGlzLl9zdG9yYWdlLmdldDxCYkRhc2hib2FyZFNpZGViYXJTdGF0ZT4odGhpcy5fbG9jYWxTdG9yYWdlVG9rZW4pID8/IHt9O1xuICAgIH1cblxuICAgIHJlZ2lzdGVyR3JvdXAoaWQ6IHN0cmluZykge1xuICAgICAgICAvLyBHZXQgdGhlIG9sZCBzdGF0ZS5cbiAgICAgICAgY29uc3Qgb2xkU3RhdGUgPSB0aGlzLl9zdGF0ZSQuZ2V0VmFsdWUoKTtcblxuICAgICAgICAvLyBHZXQgdGhlIGNhY2hlIHZhbHVlIHNvIHdoZW4gaXQgaXMgdW5kZWZpbmVkXG4gICAgICAgIC8vIHdlIHdpbGwgZGVmYXVsdCB0byB0cnVlLlxuICAgICAgICBjb25zdCBjYWNoZVZhbHVlID0gdGhpcy5fY2FjaGVbaWRdID09PSB1bmRlZmluZWQgPyB0cnVlIDogdGhpcy5fY2FjaGVbaWRdO1xuXG4gICAgICAgIC8vIFB1c2ggdGhlIG5ldyBzdGF0ZS5cbiAgICAgICAgdGhpcy5fc3RhdGUkLm5leHQoey4uLm9sZFN0YXRlLCBbaWRdOiBjYWNoZVZhbHVlfSk7XG5cbiAgICAgICAgLy8gUmV0dXJuIHRoZSBzbGljZSBvZiB0aGUgc3RhdGUgdGhhdCB0aGUgZ3JvdXAgbmVlZHMuXG4gICAgICAgIHJldHVybiB0aGlzLl9zdGF0ZSQucGlwZShcbiAgICAgICAgICAgIG1hcChzdGF0ZSA9PiBzdGF0ZVtpZF0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgdW5yZWdpc3Rlckdyb3VwKGlkOiBzdHJpbmcpIHtcbiAgICAgICAgLy8gR2V0IHRoZSBvbGQgZ3JvdXBzLlxuICAgICAgICBjb25zdCBvbGRTdGF0ZSA9IHRoaXMuX3N0YXRlJC5nZXRWYWx1ZSgpO1xuXG4gICAgICAgIC8vIEdlbmVyYXRlIHRoZSBuZXcgc3RhdGUgd2l0aG91dCB0aGUgaWQuXG4gICAgICAgIGNvbnN0IG5ld1N0YXRlID0gT2JqZWN0LmtleXMob2xkU3RhdGUpLnJlZHVjZSgob2JqZWN0LCBrZXkpID0+IHtcbiAgICAgICAgICAgIGlmIChrZXkgIT09IGlkKSB7XG4gICAgICAgICAgICAgICAgb2JqZWN0W2tleV0gPSBvbGRTdGF0ZVtrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICAgICAgfSwge30pO1xuXG4gICAgICAgIC8vIFB1c2ggdGhlIG5ldyBzdGF0ZS5cbiAgICAgICAgdGhpcy5fc3RhdGUkLm5leHQobmV3U3RhdGUpO1xuICAgIH1cblxuICAgIHRvZ2dsZUdyb3VwKGlkOiBzdHJpbmcsIG5ld1ZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIC8vIEdldCB0aGUgb2xkIHN0YXRlLlxuICAgICAgICBjb25zdCBvbGRTdGF0ZSA9IHRoaXMuX3N0YXRlJC5nZXRWYWx1ZSgpO1xuXG4gICAgICAgIC8vIENyZWF0ZSB0aGUgbmV3IHN0YXRlLlxuICAgICAgICBjb25zdCBuZXdTdGF0ZSA9IHsuLi5vbGRTdGF0ZSwgW2lkXTogbmV3VmFsdWV9O1xuXG4gICAgICAgIC8vIFB1c2ggdGhlIG5ldyBzdGF0ZS5cbiAgICAgICAgdGhpcy5fc3RhdGUkLm5leHQobmV3U3RhdGUpO1xuXG4gICAgICAgIC8vIFNhdmUgaW4gdGhlIGNhY2hlLlxuICAgICAgICB0aGlzLl9zdG9yYWdlLnNldCh0aGlzLl9sb2NhbFN0b3JhZ2VUb2tlbiwgbmV3U3RhdGUpO1xuICAgIH1cblxuICAgIHRvZ2dsZSgpIHtcbiAgICAgICAgY29uc3QgY3VycmVudCA9IHRoaXMudmlzaWJpbGl0eUNoYW5nZXMuZ2V0VmFsdWUoKTtcbiAgICAgICAgdGhpcy52aXNpYmlsaXR5Q2hhbmdlcy5uZXh0KCFjdXJyZW50KTtcbiAgICB9XG5cbiAgICBvcGVuKCkge1xuICAgICAgICB0aGlzLnZpc2liaWxpdHlDaGFuZ2VzLm5leHQodHJ1ZSk7XG4gICAgfVxuXG4gICAgY2xvc2UoKSB7XG4gICAgICAgIHRoaXMudmlzaWJpbGl0eUNoYW5nZXMubmV4dChmYWxzZSk7XG4gICAgfVxuXG59XG4iLCI8IS0tXG4gICAgVGhlIG9wdGlvbmFsIGhlYWRlciBlbGVtZW50LlxuLS0+XG48bmctY29udGVudCBzZWxlY3Q9XCJoZWFkZXJcIj48L25nLWNvbnRlbnQ+XG5cbjwhLS1cbiAgICBUaGUgc2Nyb2xsIGFyZWEgdGhhdCBjb250YWlucyB0aGVcbiAgICBncm91cHMgaW4gdGhlIG5hdmlnYXRpb24uXG4tLT5cbjxkaXYgY2xhc3M9XCJiYi1kYXNoYm9hcmQtc2lkZWJhci1zY3JvbGxcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJiYi1kYXNoYm9hcmQtc2lkZWJhci1ncm91cFwiPjwvbmctY29udGVudD5cbjwvZGl2PlxuXG48IS0tXG4gICAgVGhlIG9wdGlvbmFsIGZvb3RlciBlbGVtZW50LlxuLS0+XG48bmctY29udGVudCBzZWxlY3Q9XCJmb290ZXJcIj48L25nLWNvbnRlbnQ+XG4iXX0=