@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,52 +0,0 @@
1
- import { booleanAttribute, ChangeDetectionStrategy, Component, ContentChild, Input, TemplateRef, ViewEncapsulation } from '@angular/core';
2
- import { BbCollectionsItem } from '../../directives/collections-item.directive';
3
- import { BbCollectionsActions } from '../collections-actions/collections-actions.component';
4
- import { BbCollectionsViewer } from '../collections-viewer/collections-viewer.component';
5
- import { BbCollectionsPager } from '../collections-pager/collections-pager.component';
6
- import { BbCollectionsData } from '../../directives/collections-data.directive';
7
- import { NgTemplateOutlet } from '@angular/common';
8
- import { BehaviorSubject } from 'rxjs';
9
- import * as i0 from "@angular/core";
10
- export class BbCollectionsGrid {
11
- // Readonly data.
12
- collection$ = new BehaviorSubject(null);
13
- // Views.
14
- itemTemplate;
15
- // Inputs.
16
- queryPlaceholder = null;
17
- hideActions = false;
18
- hidePager = false;
19
- set collection(collection) {
20
- this.collection$.next(collection);
21
- }
22
- get collection() {
23
- return this.collection$.getValue();
24
- }
25
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbCollectionsGrid, deps: [], target: i0.ɵɵFactoryTarget.Component });
26
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: BbCollectionsGrid, isStandalone: true, selector: "bb-collections-grid", inputs: { queryPlaceholder: "queryPlaceholder", hideActions: ["hideActions", "hideActions", booleanAttribute], hidePager: ["hidePager", "hidePager", booleanAttribute], collection: "collection" }, host: { classAttribute: "bb-collections-grid" }, queries: [{ propertyName: "itemTemplate", first: true, predicate: BbCollectionsItem, descendants: true, read: TemplateRef }], ngImport: i0, template: "@if (!hideActions) {\n <bb-collections-actions [collection]=\"collection\"\n [queryPlaceholder]=\"queryPlaceholder\"\n standalone>\n <ng-content ngProjectAs=\"[data-collections-action]\"\n select=\"[data-collections-action]\"></ng-content>\n <ng-content ngProjectAs=\"[data-collections-row]\"\n select=\"[data-collections-row]\"></ng-content>\n </bb-collections-actions>\n}\n\n<div [collection]=\"collection\"\n class=\"bb-collections-grid-container\"\n bb-collections-viewer>\n <ul *bbCollectionsData=\"let items = items\"\n class=\"bb-collections-grid-list\">\n @for (item of items; track $index) {\n <li class=\"bb-collections-grid-item\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item, item: item}\"></ng-container>\n </li>\n }\n </ul>\n</div>\n\n@if (!hidePager) {\n <footer class=\"bb-collections-grid-footer\">\n <bb-collections-pager [collection]=\"collection\"></bb-collections-pager>\n </footer>\n}\n", styles: [".bb-collections-grid{display:block}.bb-collections-grid-list{gap:1.5rem;display:flex;flex-wrap:wrap}.bb-collections-grid-item{width:100%;display:flex}.bb-collections-grid-footer{margin-top:1.5rem}\n"], dependencies: [{ kind: "directive", type: BbCollectionsData, selector: "[bbCollectionsData]" }, { kind: "component", type: BbCollectionsViewer, selector: "[bb-collections-viewer]", inputs: ["collection"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: BbCollectionsActions, selector: "bb-collections-actions", inputs: ["collection", "queryPlaceholder", "standalone"] }, { kind: "component", type: BbCollectionsPager, selector: "bb-collections-pager", inputs: ["maxAmountOfButtons", "collection"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
27
- }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbCollectionsGrid, decorators: [{
29
- type: Component,
30
- args: [{ selector: 'bb-collections-grid', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'class': 'bb-collections-grid' }, preserveWhitespaces: false, standalone: true, imports: [
31
- BbCollectionsData,
32
- BbCollectionsViewer,
33
- NgTemplateOutlet,
34
- BbCollectionsActions,
35
- BbCollectionsPager
36
- ], template: "@if (!hideActions) {\n <bb-collections-actions [collection]=\"collection\"\n [queryPlaceholder]=\"queryPlaceholder\"\n standalone>\n <ng-content ngProjectAs=\"[data-collections-action]\"\n select=\"[data-collections-action]\"></ng-content>\n <ng-content ngProjectAs=\"[data-collections-row]\"\n select=\"[data-collections-row]\"></ng-content>\n </bb-collections-actions>\n}\n\n<div [collection]=\"collection\"\n class=\"bb-collections-grid-container\"\n bb-collections-viewer>\n <ul *bbCollectionsData=\"let items = items\"\n class=\"bb-collections-grid-list\">\n @for (item of items; track $index) {\n <li class=\"bb-collections-grid-item\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item, item: item}\"></ng-container>\n </li>\n }\n </ul>\n</div>\n\n@if (!hidePager) {\n <footer class=\"bb-collections-grid-footer\">\n <bb-collections-pager [collection]=\"collection\"></bb-collections-pager>\n </footer>\n}\n", styles: [".bb-collections-grid{display:block}.bb-collections-grid-list{gap:1.5rem;display:flex;flex-wrap:wrap}.bb-collections-grid-item{width:100%;display:flex}.bb-collections-grid-footer{margin-top:1.5rem}\n"] }]
37
- }], propDecorators: { itemTemplate: [{
38
- type: ContentChild,
39
- args: [BbCollectionsItem, { read: TemplateRef, static: false }]
40
- }], queryPlaceholder: [{
41
- type: Input
42
- }], hideActions: [{
43
- type: Input,
44
- args: [{ transform: booleanAttribute }]
45
- }], hidePager: [{
46
- type: Input,
47
- args: [{ transform: booleanAttribute }]
48
- }], collection: [{
49
- type: Input,
50
- args: [{ required: true }]
51
- }] } });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbnMtZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2NvbGxlY3Rpb25zL3NyYy9saWIvY29tcG9uZW50cy9jb2xsZWN0aW9ucy1ncmlkL2NvbGxlY3Rpb25zLWdyaWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb2xsZWN0aW9ucy9zcmMvbGliL2NvbXBvbmVudHMvY29sbGVjdGlvbnMtZ3JpZC9jb2xsZWN0aW9ucy1ncmlkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEksT0FBTyxFQUFDLGlCQUFpQixFQUEyQixNQUFNLDZDQUE2QyxDQUFDO0FBQ3hHLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRWpELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxNQUFNLENBQUM7O0FBbUJyQyxNQUFNLE9BQU8saUJBQWlCO0lBRTFCLGlCQUFpQjtJQUNSLFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBdUIsSUFBSSxDQUFDLENBQUM7SUFFdkUsU0FBUztJQUM0RCxZQUFZLENBQTRDO0lBRTdILFVBQVU7SUFDRCxnQkFBZ0IsR0FBa0IsSUFBSSxDQUFDO0lBQ1YsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUM3QixTQUFTLEdBQVksS0FBSyxDQUFDO0lBRWpFLElBQ0ksVUFBVSxDQUFDLFVBQXlCO1FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdkMsQ0FBQzt3R0FwQlEsaUJBQWlCOzRGQUFqQixpQkFBaUIsbUpBVVAsZ0JBQWdCLHlDQUNoQixnQkFBZ0Isa0pBTHJCLGlCQUFpQiwyQkFBUyxXQUFXLDZCQ2pDdkQsbW5DQTZCQSxnUURUUSxpQkFBaUIsZ0VBQ2pCLG1CQUFtQiw0RkFDbkIsZ0JBQWdCLG9KQUNoQixvQkFBb0IsNkhBQ3BCLGtCQUFrQjs7NEZBR2IsaUJBQWlCO2tCQWpCN0IsU0FBUzsrQkFDSSxxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQixFQUFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBQyx1QkFDakIsS0FBSyxjQUNkLElBQUksV0FDUDt3QkFDTCxpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixvQkFBb0I7d0JBQ3BCLGtCQUFrQjtxQkFDckI7OEJBUW9FLFlBQVk7c0JBQWhGLFlBQVk7dUJBQUMsaUJBQWlCLEVBQUUsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBRzFELGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDZ0MsV0FBVztzQkFBaEQsS0FBSzt1QkFBQyxFQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBQztnQkFDRSxTQUFTO3NCQUE5QyxLQUFLO3VCQUFDLEVBQUMsU0FBUyxFQUFFLGdCQUFnQixFQUFDO2dCQUdoQyxVQUFVO3NCQURiLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtib29sZWFuQXR0cmlidXRlLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIElucHV0LCBUZW1wbGF0ZVJlZiwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCYkNvbGxlY3Rpb25zSXRlbSwgQmJDb2xsZWN0aW9uc0l0ZW1Db250ZXh0fSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2NvbGxlY3Rpb25zLWl0ZW0uZGlyZWN0aXZlJztcbmltcG9ydCB7QmJDb2xsZWN0aW9uc0FjdGlvbnN9IGZyb20gJy4uL2NvbGxlY3Rpb25zLWFjdGlvbnMvY29sbGVjdGlvbnMtYWN0aW9ucy5jb21wb25lbnQnO1xuaW1wb3J0IHtCYkNvbGxlY3Rpb25zVmlld2VyfSBmcm9tICcuLi9jb2xsZWN0aW9ucy12aWV3ZXIvY29sbGVjdGlvbnMtdmlld2VyLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiQ29sbGVjdGlvbnNQYWdlcn0gZnJvbSAnLi4vY29sbGVjdGlvbnMtcGFnZXIvY29sbGVjdGlvbnMtcGFnZXIuY29tcG9uZW50JztcbmltcG9ydCB7QmJDb2xsZWN0aW9uc0RhdGF9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvY29sbGVjdGlvbnMtZGF0YS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtOZ1RlbXBsYXRlT3V0bGV0fSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtDb2xsZWN0aW9ufSBmcm9tICcuLi8uLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdiYi1jb2xsZWN0aW9ucy1ncmlkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29sbGVjdGlvbnMtZ3JpZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29sbGVjdGlvbnMtZ3JpZC5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDogeydjbGFzcyc6ICdiYi1jb2xsZWN0aW9ucy1ncmlkJ30sXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEJiQ29sbGVjdGlvbnNEYXRhLFxuICAgICAgICBCYkNvbGxlY3Rpb25zVmlld2VyLFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBCYkNvbGxlY3Rpb25zQWN0aW9ucyxcbiAgICAgICAgQmJDb2xsZWN0aW9uc1BhZ2VyXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBCYkNvbGxlY3Rpb25zR3JpZDxUPiB7XG5cbiAgICAvLyBSZWFkb25seSBkYXRhLlxuICAgIHJlYWRvbmx5IGNvbGxlY3Rpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDb2xsZWN0aW9uPFQ+IHwgbnVsbD4obnVsbCk7XG5cbiAgICAvLyBWaWV3cy5cbiAgICBAQ29udGVudENoaWxkKEJiQ29sbGVjdGlvbnNJdGVtLCB7cmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogZmFsc2V9KSBpdGVtVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxCYkNvbGxlY3Rpb25zSXRlbUNvbnRleHQ8VD4+O1xuXG4gICAgLy8gSW5wdXRzLlxuICAgIEBJbnB1dCgpIHF1ZXJ5UGxhY2Vob2xkZXI6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCh7dHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlfSkgaGlkZUFjdGlvbnM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoe3RyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZX0pIGhpZGVQYWdlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pXG4gICAgc2V0IGNvbGxlY3Rpb24oY29sbGVjdGlvbjogQ29sbGVjdGlvbjxUPikge1xuICAgICAgICB0aGlzLmNvbGxlY3Rpb24kLm5leHQoY29sbGVjdGlvbik7XG4gICAgfVxuXG4gICAgZ2V0IGNvbGxlY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbGxlY3Rpb24kLmdldFZhbHVlKCk7XG4gICAgfVxuXG59XG4iLCJAaWYgKCFoaWRlQWN0aW9ucykge1xuICAgIDxiYi1jb2xsZWN0aW9ucy1hY3Rpb25zIFtjb2xsZWN0aW9uXT1cImNvbGxlY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtxdWVyeVBsYWNlaG9sZGVyXT1cInF1ZXJ5UGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YW5kYWxvbmU+XG4gICAgICAgIDxuZy1jb250ZW50IG5nUHJvamVjdEFzPVwiW2RhdGEtY29sbGVjdGlvbnMtYWN0aW9uXVwiXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdD1cIltkYXRhLWNvbGxlY3Rpb25zLWFjdGlvbl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDxuZy1jb250ZW50IG5nUHJvamVjdEFzPVwiW2RhdGEtY29sbGVjdGlvbnMtcm93XVwiXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdD1cIltkYXRhLWNvbGxlY3Rpb25zLXJvd11cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9iYi1jb2xsZWN0aW9ucy1hY3Rpb25zPlxufVxuXG48ZGl2IFtjb2xsZWN0aW9uXT1cImNvbGxlY3Rpb25cIlxuICAgICBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLWdyaWQtY29udGFpbmVyXCJcbiAgICAgYmItY29sbGVjdGlvbnMtdmlld2VyPlxuICAgIDx1bCAqYmJDb2xsZWN0aW9uc0RhdGE9XCJsZXQgaXRlbXMgPSBpdGVtc1wiXG4gICAgICAgIGNsYXNzPVwiYmItY29sbGVjdGlvbnMtZ3JpZC1saXN0XCI+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgaXRlbXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPGxpIGNsYXNzPVwiYmItY29sbGVjdGlvbnMtZ3JpZC1pdGVtXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1UZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogaXRlbSwgaXRlbTogaXRlbX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgIH1cbiAgICA8L3VsPlxuPC9kaXY+XG5cbkBpZiAoIWhpZGVQYWdlcikge1xuICAgIDxmb290ZXIgY2xhc3M9XCJiYi1jb2xsZWN0aW9ucy1ncmlkLWZvb3RlclwiPlxuICAgICAgICA8YmItY29sbGVjdGlvbnMtcGFnZXIgW2NvbGxlY3Rpb25dPVwiY29sbGVjdGlvblwiPjwvYmItY29sbGVjdGlvbnMtcGFnZXI+XG4gICAgPC9mb290ZXI+XG59XG4iXX0=
@@ -1,114 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input, numberAttribute, ViewEncapsulation } from '@angular/core';
2
- import { BbLocalize, BbLocalizeString, BbLocalizeTemplate } from '@bravobit/bb-foundation/localize';
3
- import { BehaviorSubject } from 'rxjs';
4
- import { combineLatestMap } from '@bravobit/bb-foundation/rxjs';
5
- import { map, shareReplay } from 'rxjs/operators';
6
- import { AsyncPipe } from '@angular/common';
7
- import * as i0 from "@angular/core";
8
- export class BbCollectionsPager {
9
- set maxAmountOfButtons(value) {
10
- this._maxAmountOfButtons$.next(Math.max(1, value));
11
- }
12
- get maxAmountOfButtons() {
13
- return this._maxAmountOfButtons$.getValue();
14
- }
15
- set collection(collection) {
16
- this._collection = collection;
17
- this.observeCollectionChanges();
18
- }
19
- get collection() {
20
- return this._collection;
21
- }
22
- // Data.
23
- data$;
24
- // State and subscriptions.
25
- _collection = null;
26
- _subscription = null;
27
- _cache$ = new BehaviorSubject({});
28
- _maxAmountOfButtons$ = new BehaviorSubject(3);
29
- ngOnInit() {
30
- this.setData();
31
- }
32
- ngOnDestroy() {
33
- this._subscription?.unsubscribe();
34
- }
35
- setPage(pageNumber, totalPages) {
36
- // Calculate the new value.
37
- const newValue = Math.min(totalPages, Math.max(1, pageNumber));
38
- // Validate the value is actually different.
39
- const currentValue = this._collection?.pageNumberControl?.value;
40
- if (currentValue === newValue) {
41
- return;
42
- }
43
- this._collection?.pageNumberControl?.setValue(pageNumber);
44
- }
45
- setData() {
46
- this.data$ = combineLatestMap({
47
- cache: this._cache$,
48
- maxAmountOfButtons: this._maxAmountOfButtons$
49
- }).pipe(map(({ cache, maxAmountOfButtons }) => {
50
- const pageSize = cache?.pageSize ?? 1;
51
- const pageNumber = cache?.pageNumber ?? 1;
52
- const totalEntries = Math.max(0, cache?.totalEntries ?? 0);
53
- const start = Math.max(0, Math.min((pageSize * (pageNumber - 1)) + 1, totalEntries));
54
- const end = Math.max(0, Math.min((start - 1) + pageSize, totalEntries));
55
- const totalPages = Math.max(0, cache?.totalPages ?? 1);
56
- const pages = this.filterActivePages(pageNumber, totalPages, maxAmountOfButtons);
57
- return { start, end, totalEntries, totalPages, pages, pageNumber };
58
- }), shareReplay({ refCount: true, bufferSize: 1 }));
59
- }
60
- observeCollectionChanges() {
61
- if (this._subscription) {
62
- this._subscription?.unsubscribe();
63
- }
64
- if (!this._collection) {
65
- return;
66
- }
67
- this._subscription = this._collection.raw$.subscribe(data => {
68
- if (data) {
69
- this._cache$.next(data);
70
- }
71
- });
72
- }
73
- calculatePages(pageNumber, totalPages, maxAmountOfButtons) {
74
- const min = 1;
75
- const max = totalPages;
76
- const amount = Math.max(1, maxAmountOfButtons);
77
- const start = Math.max(0, pageNumber - Math.floor(amount / 2));
78
- const data = Array(amount)
79
- .fill(0)
80
- .map((_, index) => start + index);
81
- // Validate if the minimum value less than
82
- // the first value.
83
- if (data[0] < min) {
84
- return data.map(item => item + 1);
85
- }
86
- // Calculate the difference with the max
87
- // if this value is higher than 0 we should minus it.
88
- const lastValueInArray = data[data.length - 1];
89
- const differenceWithMax = lastValueInArray - max;
90
- if (differenceWithMax > 0) {
91
- return data.map(item => item - differenceWithMax);
92
- }
93
- // Just return the default data.
94
- return data;
95
- }
96
- filterActivePages(pageNumber, totalPages, maxAmountOfButtons) {
97
- return this.calculatePages(pageNumber, totalPages, maxAmountOfButtons)
98
- .filter(page => page > 0 && page <= totalPages)
99
- .map(page => ({ page, active: pageNumber === page }));
100
- }
101
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbCollectionsPager, deps: [], target: i0.ɵɵFactoryTarget.Component });
102
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: BbCollectionsPager, isStandalone: true, selector: "bb-collections-pager", inputs: { maxAmountOfButtons: ["maxAmountOfButtons", "maxAmountOfButtons", numberAttribute], collection: "collection" }, host: { classAttribute: "bb-collections-pager" }, ngImport: i0, template: "@if (data$ | async; as data) {\n <div [bb-localize-string]=\"'collection.showing_label' | bbLocalize\"\n class=\"bb-collections-pager-text\">\n <strong *bbLocalizeTemplate=\"'start'\">{{ data?.start }}</strong>\n <strong *bbLocalizeTemplate=\"'end'\">{{ data?.end }}</strong>\n <strong *bbLocalizeTemplate=\"'total'\">{{ data?.totalEntries }}</strong>\n </div>\n\n <div class=\"bb-collections-pager-container\">\n <ul class=\"bb-collections-pager-list\">\n <li class=\"bb-collections-pager-item\"\n title=\"Previous page\">\n <button [disabled]=\"data?.pageNumber <= 1\"\n (click)=\"setPage(data?.pageNumber - 1, data?.totalPages)\"\n class=\"bb-collections-pager-button arrow first\"\n type=\"button\">\n &#8592;\n </button>\n </li>\n @for (item of data?.pages; track item?.page) {\n <li [title]=\"'Page ' + item?.page\"\n class=\"bb-collections-pager-item\">\n <button [class.active]=\"item?.active\"\n (click)=\"setPage(item?.page, data?.totalPages)\"\n class=\"bb-collections-pager-button\"\n type=\"button\">\n {{ item?.page }}\n </button>\n </li>\n }\n <li class=\"bb-collections-pager-item\"\n title=\"Next page\">\n <button [disabled]=\"data?.pageNumber >= data?.totalPages\"\n (click)=\"setPage(data?.pageNumber + 1, data?.totalPages)\"\n class=\"bb-collections-pager-button arrow last\"\n type=\"button\">\n &#8594;\n </button>\n </li>\n </ul>\n </div>\n}\n", styles: [".bb-collections-pager{display:flex;align-items:center;font-size:.875rem;flex-direction:column-reverse}.bb-collections-pager-text{display:block;margin-top:.75rem}.bb-collections-pager-text>strong{font-weight:500}.bb-collections-pager-container{width:100%;display:flex;overflow-x:auto;align-items:center;justify-content:center}.bb-collections-pager-list{display:flex;align-items:center;border-radius:.5rem;background-color:#fff;border:1px solid hsl(213,8%,74%);box-shadow:0 .375rem .375rem -.375rem #0000001a}.bb-collections-pager-item:not(:last-child){border-right:1px solid hsl(213,8%,74%)}.bb-collections-pager-button{height:2rem;border:none;display:flex;appearance:none;min-height:2rem;min-width:2.5rem;-webkit-user-select:none;user-select:none;padding:0 .25rem;align-items:center;justify-content:center;background-color:transparent}.bb-collections-pager-button:hover,.bb-collections-pager-button:focus,.bb-collections-pager-button:active,.bb-collections-pager-button.active{font-weight:400;color:var(--bb-collections-pager-color)}.bb-collections-pager-button:hover,.bb-collections-pager-button:focus{background-color:var(--bb-collections-pager-hover-background-color)}.bb-collections-pager-button:active,.bb-collections-pager-button.active{background-color:var(--bb-collections-pager-active-background-color)}.bb-collections-pager-button:not(.arrow):focus,.bb-collections-pager-button:not(.arrow):active{box-shadow:var(--bb-collections-pager-focus-box-shadow)}.bb-collections-pager-button:not(.arrow):focus,.bb-collections-pager-button:not(.arrow):active,.bb-collections-pager-button:not(.arrow).active{outline:1px solid var(--bb-collections-pager-outline-color)}.bb-collections-pager-button.arrow{font-weight:500}.bb-collections-pager-button.arrow.first{border-top-left-radius:calc(.5rem - 1px);border-bottom-left-radius:calc(.5rem - 1px)}.bb-collections-pager-button.arrow.last{border-top-right-radius:calc(.5rem - 1px);border-bottom-right-radius:calc(.5rem - 1px)}.bb-collections-pager-button:disabled{color:#111;outline:none;opacity:.25;cursor:default;pointer-events:none;background-color:transparent}@media only screen and (min-width: 768px){.bb-collections-pager{flex-wrap:wrap;align-items:center;flex-direction:row;justify-content:space-between}.bb-collections-pager-text{margin-top:0}.bb-collections-pager-container{width:auto;overflow-x:unset}}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: BbLocalizeString, selector: "[bb-localize-string]", inputs: ["substitutions", "bb-localize-string"] }, { kind: "pipe", type: BbLocalize, name: "bbLocalize" }, { kind: "directive", type: BbLocalizeTemplate, selector: "[bbLocalizeTemplate]", inputs: ["bbLocalizeTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
103
- }
104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbCollectionsPager, decorators: [{
105
- type: Component,
106
- args: [{ selector: 'bb-collections-pager', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'class': 'bb-collections-pager' }, preserveWhitespaces: false, standalone: true, imports: [AsyncPipe, BbLocalizeString, BbLocalize, BbLocalizeTemplate], template: "@if (data$ | async; as data) {\n <div [bb-localize-string]=\"'collection.showing_label' | bbLocalize\"\n class=\"bb-collections-pager-text\">\n <strong *bbLocalizeTemplate=\"'start'\">{{ data?.start }}</strong>\n <strong *bbLocalizeTemplate=\"'end'\">{{ data?.end }}</strong>\n <strong *bbLocalizeTemplate=\"'total'\">{{ data?.totalEntries }}</strong>\n </div>\n\n <div class=\"bb-collections-pager-container\">\n <ul class=\"bb-collections-pager-list\">\n <li class=\"bb-collections-pager-item\"\n title=\"Previous page\">\n <button [disabled]=\"data?.pageNumber <= 1\"\n (click)=\"setPage(data?.pageNumber - 1, data?.totalPages)\"\n class=\"bb-collections-pager-button arrow first\"\n type=\"button\">\n &#8592;\n </button>\n </li>\n @for (item of data?.pages; track item?.page) {\n <li [title]=\"'Page ' + item?.page\"\n class=\"bb-collections-pager-item\">\n <button [class.active]=\"item?.active\"\n (click)=\"setPage(item?.page, data?.totalPages)\"\n class=\"bb-collections-pager-button\"\n type=\"button\">\n {{ item?.page }}\n </button>\n </li>\n }\n <li class=\"bb-collections-pager-item\"\n title=\"Next page\">\n <button [disabled]=\"data?.pageNumber >= data?.totalPages\"\n (click)=\"setPage(data?.pageNumber + 1, data?.totalPages)\"\n class=\"bb-collections-pager-button arrow last\"\n type=\"button\">\n &#8594;\n </button>\n </li>\n </ul>\n </div>\n}\n", styles: [".bb-collections-pager{display:flex;align-items:center;font-size:.875rem;flex-direction:column-reverse}.bb-collections-pager-text{display:block;margin-top:.75rem}.bb-collections-pager-text>strong{font-weight:500}.bb-collections-pager-container{width:100%;display:flex;overflow-x:auto;align-items:center;justify-content:center}.bb-collections-pager-list{display:flex;align-items:center;border-radius:.5rem;background-color:#fff;border:1px solid hsl(213,8%,74%);box-shadow:0 .375rem .375rem -.375rem #0000001a}.bb-collections-pager-item:not(:last-child){border-right:1px solid hsl(213,8%,74%)}.bb-collections-pager-button{height:2rem;border:none;display:flex;appearance:none;min-height:2rem;min-width:2.5rem;-webkit-user-select:none;user-select:none;padding:0 .25rem;align-items:center;justify-content:center;background-color:transparent}.bb-collections-pager-button:hover,.bb-collections-pager-button:focus,.bb-collections-pager-button:active,.bb-collections-pager-button.active{font-weight:400;color:var(--bb-collections-pager-color)}.bb-collections-pager-button:hover,.bb-collections-pager-button:focus{background-color:var(--bb-collections-pager-hover-background-color)}.bb-collections-pager-button:active,.bb-collections-pager-button.active{background-color:var(--bb-collections-pager-active-background-color)}.bb-collections-pager-button:not(.arrow):focus,.bb-collections-pager-button:not(.arrow):active{box-shadow:var(--bb-collections-pager-focus-box-shadow)}.bb-collections-pager-button:not(.arrow):focus,.bb-collections-pager-button:not(.arrow):active,.bb-collections-pager-button:not(.arrow).active{outline:1px solid var(--bb-collections-pager-outline-color)}.bb-collections-pager-button.arrow{font-weight:500}.bb-collections-pager-button.arrow.first{border-top-left-radius:calc(.5rem - 1px);border-bottom-left-radius:calc(.5rem - 1px)}.bb-collections-pager-button.arrow.last{border-top-right-radius:calc(.5rem - 1px);border-bottom-right-radius:calc(.5rem - 1px)}.bb-collections-pager-button:disabled{color:#111;outline:none;opacity:.25;cursor:default;pointer-events:none;background-color:transparent}@media only screen and (min-width: 768px){.bb-collections-pager{flex-wrap:wrap;align-items:center;flex-direction:row;justify-content:space-between}.bb-collections-pager-text{margin-top:0}.bb-collections-pager-container{width:auto;overflow-x:unset}}\n"] }]
107
- }], propDecorators: { maxAmountOfButtons: [{
108
- type: Input,
109
- args: [{ transform: numberAttribute }]
110
- }], collection: [{
111
- type: Input,
112
- args: [{ required: true }]
113
- }] } });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbnMtcGFnZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb2xsZWN0aW9ucy9zcmMvbGliL2NvbXBvbmVudHMvY29sbGVjdGlvbnMtcGFnZXIvY29sbGVjdGlvbnMtcGFnZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb2xsZWN0aW9ucy9zcmMvbGliL2NvbXBvbmVudHMvY29sbGVjdGlvbnMtcGFnZXIvY29sbGVjdGlvbnMtcGFnZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFxQixpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQUMsVUFBVSxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFFbEcsT0FBTyxFQUFDLGVBQWUsRUFBMkIsTUFBTSxNQUFNLENBQUM7QUFDL0QsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUFDLEdBQUcsRUFBRSxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0saUJBQWlCLENBQUM7O0FBYTFDLE1BQU0sT0FBTyxrQkFBa0I7SUFFM0IsSUFDSSxrQkFBa0IsQ0FBQyxLQUFhO1FBQ2hDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxF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QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUMsdUJBQ2xCLEtBQUssY0FDZCxJQUFJLFdBQ1AsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixDQUFDOzhCQUtsRSxrQkFBa0I7c0JBRHJCLEtBQUs7dUJBQUMsRUFBQyxTQUFTLEVBQUUsZUFBZSxFQUFDO2dCQVUvQixVQUFVO3NCQURiLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgbnVtYmVyQXR0cmlidXRlLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCYkxvY2FsaXplLCBCYkxvY2FsaXplU3RyaW5nLCBCYkxvY2FsaXplVGVtcGxhdGV9IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uL2xvY2FsaXplJztcbmltcG9ydCB7Q29sbGVjdGlvbkRhdGF9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvY29sbGVjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3RNYXB9IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uL3J4anMnO1xuaW1wb3J0IHttYXAsIHNoYXJlUmVwbGF5fSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0NvbGxlY3Rpb259IGZyb20gJy4uLy4uL2NvbGxlY3Rpb24nO1xuaW1wb3J0IHtBc3luY1BpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYmItY29sbGVjdGlvbnMtcGFnZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2xsZWN0aW9ucy1wYWdlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29sbGVjdGlvbnMtcGFnZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHsnY2xhc3MnOiAnYmItY29sbGVjdGlvbnMtcGFnZXInfSxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtBc3luY1BpcGUsIEJiTG9jYWxpemVTdHJpbmcsIEJiTG9jYWxpemUsIEJiTG9jYWxpemVUZW1wbGF0ZV1cbn0pXG5leHBvcnQgY2xhc3MgQmJDb2xsZWN0aW9uc1BhZ2VyIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgQElucHV0KHt0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZX0pXG4gICAgc2V0IG1heEFtb3VudE9mQnV0dG9ucyh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX21heEFtb3VudE9mQnV0dG9ucyQubmV4dChNYXRoLm1heCgxLCB2YWx1ZSkpO1xuICAgIH1cblxuICAgIGdldCBtYXhBbW91bnRPZkJ1dHRvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tYXhBbW91bnRPZkJ1dHRvbnMkLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pXG4gICAgc2V0IGNvbGxlY3Rpb24oY29sbGVjdGlvbjogQ29sbGVjdGlvbjx1bmtub3duPiB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5fY29sbGVjdGlvbiA9IGNvbGxlY3Rpb247XG4gICAgICAgIHRoaXMub2JzZXJ2ZUNvbGxlY3Rpb25DaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbGxlY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb2xsZWN0aW9uO1xuICAgIH1cblxuICAgIC8vIERhdGEuXG4gICAgZGF0YSQ6IE9ic2VydmFibGU8e1xuICAgICAgICBzdGFydD86IG51bWJlcixcbiAgICAgICAgZW5kPzogbnVtYmVyLFxuICAgICAgICB0b3RhbEVudHJpZXM/OiBudW1iZXIsXG4gICAgICAgIHRvdGFsUGFnZXM/OiBudW1iZXIsXG4gICAgICAgIHBhZ2VOdW1iZXI/OiBudW1iZXIsXG4gICAgICAgIHBhZ2VzPzogeyBwYWdlOiBudW1iZXIsIGFjdGl2ZTogYm9vbGVhbiB9W11cbiAgICB9PjtcblxuICAgIC8vIFN0YXRlIGFuZCBzdWJzY3JpcHRpb25zLlxuICAgIHByaXZhdGUgX2NvbGxlY3Rpb246IENvbGxlY3Rpb248dW5rbm93bj4gfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgX2NhY2hlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGFydGlhbDxDb2xsZWN0aW9uRGF0YTx1bmtub3duPj4+KHt9KTtcbiAgICBwcml2YXRlIF9tYXhBbW91bnRPZkJ1dHRvbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDMpO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuc2V0RGF0YSgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgc2V0UGFnZShwYWdlTnVtYmVyOiBudW1iZXIsIHRvdGFsUGFnZXM6IG51bWJlcikge1xuICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIG5ldyB2YWx1ZS5cbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBNYXRoLm1pbihcbiAgICAgICAgICAgIHRvdGFsUGFnZXMsXG4gICAgICAgICAgICBNYXRoLm1heCgxLCBwYWdlTnVtYmVyKVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIFZhbGlkYXRlIHRoZSB2YWx1ZSBpcyBhY3R1YWxseSBkaWZmZXJlbnQuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHRoaXMuX2NvbGxlY3Rpb24/LnBhZ2VOdW1iZXJDb250cm9sPy52YWx1ZTtcbiAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZSA9PT0gbmV3VmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2NvbGxlY3Rpb24/LnBhZ2VOdW1iZXJDb250cm9sPy5zZXRWYWx1ZShwYWdlTnVtYmVyKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldERhdGEoKSB7XG4gICAgICAgIHRoaXMuZGF0YSQgPSBjb21iaW5lTGF0ZXN0TWFwKHtcbiAgICAgICAgICAgIGNhY2hlOiB0aGlzLl9jYWNoZSQsXG4gICAgICAgICAgICBtYXhBbW91bnRPZkJ1dHRvbnM6IHRoaXMuX21heEFtb3VudE9mQnV0dG9ucyRcbiAgICAgICAgfSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoe2NhY2hlLCBtYXhBbW91bnRPZkJ1dHRvbnN9KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFnZVNpemUgPSBjYWNoZT8ucGFnZVNpemUgPz8gMTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYWdlTnVtYmVyID0gY2FjaGU/LnBhZ2VOdW1iZXIgPz8gMTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHRvdGFsRW50cmllcyA9IE1hdGgubWF4KDAsIGNhY2hlPy50b3RhbEVudHJpZXMgPz8gMCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSBNYXRoLm1heCgwLCBNYXRoLm1pbigocGFnZVNpemUgKiAocGFnZU51bWJlciAtIDEpKSArIDEsIHRvdGFsRW50cmllcykpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZCA9IE1hdGgubWF4KDAsIE1hdGgubWluKChzdGFydCAtIDEpICsgcGFnZVNpemUsIHRvdGFsRW50cmllcykpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvdGFsUGFnZXMgPSBNYXRoLm1heCgwLCBjYWNoZT8udG90YWxQYWdlcyA/PyAxKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHBhZ2VzID0gdGhpcy5maWx0ZXJBY3RpdmVQYWdlcyhwYWdlTnVtYmVyLCB0b3RhbFBhZ2VzLCBtYXhBbW91bnRPZkJ1dHRvbnMpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtzdGFydCwgZW5kLCB0b3RhbEVudHJpZXMsIHRvdGFsUGFnZXMsIHBhZ2VzLCBwYWdlTnVtYmVyfTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgc2hhcmVSZXBsYXkoe3JlZkNvdW50OiB0cnVlLCBidWZmZXJTaXplOiAxfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9ic2VydmVDb2xsZWN0aW9uQ2hhbmdlcygpIHtcbiAgICAgICAgaWYgKHRoaXMuX3N1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLl9jb2xsZWN0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24gPSB0aGlzLl9jb2xsZWN0aW9uLnJhdyQuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZSQubmV4dChkYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVQYWdlcyhwYWdlTnVtYmVyOiBudW1iZXIsIHRvdGFsUGFnZXM6IG51bWJlciwgbWF4QW1vdW50T2ZCdXR0b25zOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgbWluID0gMTtcbiAgICAgICAgY29uc3QgbWF4ID0gdG90YWxQYWdlcztcbiAgICAgICAgY29uc3QgYW1vdW50ID0gTWF0aC5tYXgoMSwgbWF4QW1vdW50T2ZCdXR0b25zKTtcblxuICAgICAgICBjb25zdCBzdGFydCA9IE1hdGgubWF4KDAsIHBhZ2VOdW1iZXIgLSBNYXRoLmZsb29yKGFtb3VudCAvIDIpKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IEFycmF5KGFtb3VudClcbiAgICAgICAgICAgIC5maWxsKDApXG4gICAgICAgICAgICAubWFwKChfLCBpbmRleCkgPT4gc3RhcnQgKyBpbmRleCk7XG5cbiAgICAgICAgLy8gVmFsaWRhdGUgaWYgdGhlIG1pbmltdW0gdmFsdWUgbGVzcyB0aGFuXG4gICAgICAgIC8vIHRoZSBmaXJzdCB2YWx1ZS5cbiAgICAgICAgaWYgKGRhdGFbMF0gPCBtaW4pIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRhLm1hcChpdGVtID0+IGl0ZW0gKyAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgZGlmZmVyZW5jZSB3aXRoIHRoZSBtYXhcbiAgICAgICAgLy8gaWYgdGhpcyB2YWx1ZSBpcyBoaWdoZXIgdGhhbiAwIHdlIHNob3VsZCBtaW51cyBpdC5cbiAgICAgICAgY29uc3QgbGFzdFZhbHVlSW5BcnJheSA9IGRhdGFbZGF0YS5sZW5ndGggLSAxXTtcbiAgICAgICAgY29uc3QgZGlmZmVyZW5jZVdpdGhNYXggPSBsYXN0VmFsdWVJbkFycmF5IC0gbWF4O1xuICAgICAgICBpZiAoZGlmZmVyZW5jZVdpdGhNYXggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0YS5tYXAoaXRlbSA9PiBpdGVtIC0gZGlmZmVyZW5jZVdpdGhNYXgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSnVzdCByZXR1cm4gdGhlIGRlZmF1bHQgZGF0YS5cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaWx0ZXJBY3RpdmVQYWdlcyhwYWdlTnVtYmVyOiBudW1iZXIsIHRvdGFsUGFnZXM6IG51bWJlciwgbWF4QW1vdW50T2ZCdXR0b25zOiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsY3VsYXRlUGFnZXMocGFnZU51bWJlciwgdG90YWxQYWdlcywgbWF4QW1vdW50T2ZCdXR0b25zKVxuICAgICAgICAgICAgLmZpbHRlcihwYWdlID0+IHBhZ2UgPiAwICYmIHBhZ2UgPD0gdG90YWxQYWdlcylcbiAgICAgICAgICAgIC5tYXAocGFnZSA9PiAoe3BhZ2UsIGFjdGl2ZTogcGFnZU51bWJlciA9PT0gcGFnZX0pKTtcbiAgICB9XG5cbn1cbiIsIkBpZiAoZGF0YSQgfCBhc3luYzsgYXMgZGF0YSkge1xuICAgIDxkaXYgW2JiLWxvY2FsaXplLXN0cmluZ109XCInY29sbGVjdGlvbi5zaG93aW5nX2xhYmVsJyB8IGJiTG9jYWxpemVcIlxuICAgICAgICAgY2xhc3M9XCJiYi1jb2xsZWN0aW9ucy1wYWdlci10ZXh0XCI+XG4gICAgICAgIDxzdHJvbmcgKmJiTG9jYWxpemVUZW1wbGF0ZT1cIidzdGFydCdcIj57eyBkYXRhPy5zdGFydCB9fTwvc3Ryb25nPlxuICAgICAgICA8c3Ryb25nICpiYkxvY2FsaXplVGVtcGxhdGU9XCInZW5kJ1wiPnt7IGRhdGE/LmVuZCB9fTwvc3Ryb25nPlxuICAgICAgICA8c3Ryb25nICpiYkxvY2FsaXplVGVtcGxhdGU9XCIndG90YWwnXCI+e3sgZGF0YT8udG90YWxFbnRyaWVzIH19PC9zdHJvbmc+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYmItY29sbGVjdGlvbnMtcGFnZXItY29udGFpbmVyXCI+XG4gICAgICAgIDx1bCBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXBhZ2VyLWxpc3RcIj5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXBhZ2VyLWl0ZW1cIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwiUHJldmlvdXMgcGFnZVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cImRhdGE/LnBhZ2VOdW1iZXIgPD0gMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0UGFnZShkYXRhPy5wYWdlTnVtYmVyIC0gMSwgZGF0YT8udG90YWxQYWdlcylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYi1jb2xsZWN0aW9ucy1wYWdlci1idXR0b24gYXJyb3cgZmlyc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICAmIzg1OTI7XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBkYXRhPy5wYWdlczsgdHJhY2sgaXRlbT8ucGFnZSkge1xuICAgICAgICAgICAgICAgIDxsaSBbdGl0bGVdPVwiJ1BhZ2UgJyArIGl0ZW0/LnBhZ2VcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXBhZ2VyLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBbY2xhc3MuYWN0aXZlXT1cIml0ZW0/LmFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldFBhZ2UoaXRlbT8ucGFnZSwgZGF0YT8udG90YWxQYWdlcylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmItY29sbGVjdGlvbnMtcGFnZXItYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtPy5wYWdlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJiYi1jb2xsZWN0aW9ucy1wYWdlci1pdGVtXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cIk5leHQgcGFnZVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cImRhdGE/LnBhZ2VOdW1iZXIgPj0gZGF0YT8udG90YWxQYWdlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0UGFnZShkYXRhPy5wYWdlTnVtYmVyICsgMSwgZGF0YT8udG90YWxQYWdlcylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYi1jb2xsZWN0aW9ucy1wYWdlci1idXR0b24gYXJyb3cgbGFzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICYjODU5NDtcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgPC9kaXY+XG59XG4iXX0=
@@ -1,86 +0,0 @@
1
- import { booleanAttribute, ChangeDetectionStrategy, Component, ContentChild, Input, TemplateRef, ViewEncapsulation } from '@angular/core';
2
- import { BbCollectionsDataRow } from '../../directives/collections-data-row.directive';
3
- import { BbLocalize, BbLocalizeString, BbLocalizeTemplate } from '@bravobit/bb-foundation/localize';
4
- import { BbCollectionsActions } from '../collections-actions/collections-actions.component';
5
- import { BbCollectionsViewer } from '../collections-viewer/collections-viewer.component';
6
- import { BbCollectionsInitial } from '../../directives/collections-initial.directive';
7
- import { BbCollectionsPager } from '../collections-pager/collections-pager.component';
8
- import { BbCollectionsEmpty } from '../../directives/collections-empty.directive';
9
- import { BbCollectionsError } from '../../directives/collections-error.directive';
10
- import { BbCollectionsData } from '../../directives/collections-data.directive';
11
- import { AsyncPipe, NgTemplateOutlet } from '@angular/common';
12
- import { BbSpinner } from '@bravobit/bb-foundation/elements';
13
- import { BbTemplate } from '@bravobit/bb-foundation/utils';
14
- import { BehaviorSubject } from 'rxjs';
15
- import * as i0 from "@angular/core";
16
- export class BbCollectionsTable {
17
- // Readonly data.
18
- collection$ = new BehaviorSubject(null);
19
- // Views.
20
- dataRowTemplate;
21
- // Inputs.
22
- queryPlaceholder = null;
23
- emptyContent = null;
24
- noResultsContent = null;
25
- errorContent = null;
26
- trackByProperty = 'id';
27
- includeVerticalLines = false;
28
- hideActions = false;
29
- hidePager = false;
30
- set collection(collection) {
31
- this.collection$.next(collection);
32
- }
33
- get collection() {
34
- return this.collection$.getValue();
35
- }
36
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbCollectionsTable, deps: [], target: i0.ɵɵFactoryTarget.Component });
37
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: BbCollectionsTable, isStandalone: true, selector: "bb-collections-table", inputs: { queryPlaceholder: "queryPlaceholder", emptyContent: "emptyContent", noResultsContent: "noResultsContent", errorContent: "errorContent", trackByProperty: "trackByProperty", includeVerticalLines: ["includeVerticalLines", "includeVerticalLines", booleanAttribute], hideActions: ["hideActions", "hideActions", booleanAttribute], hidePager: ["hidePager", "hidePager", booleanAttribute], collection: "collection" }, host: { properties: { "class.include-vertical-lines": "includeVerticalLines" }, classAttribute: "bb-collections-table" }, queries: [{ propertyName: "dataRowTemplate", first: true, predicate: BbCollectionsDataRow, descendants: true, read: TemplateRef }], ngImport: i0, template: "@if (!hideActions) {\n <bb-collections-actions [collection]=\"collection\"\n [queryPlaceholder]=\"queryPlaceholder\">\n <ng-content ngProjectAs=\"[data-collections-action]\"\n select=\"[data-collections-action]\"></ng-content>\n <ng-content ngProjectAs=\"[data-collections-row]\"\n select=\"[data-collections-row]\"></ng-content>\n </bb-collections-actions>\n}\n\n<div [class.loading]=\"collection?.loading$ | async\"\n class=\"bb-collections-table-wrapper\">\n <div [collection]=\"collection\"\n class=\"bb-collections-table-container\"\n bb-collections-viewer>\n @if (collection?.loading$ | async) {\n <div class=\"bb-collections-table-loading\"></div>\n }\n <table *bbCollectionsData=\"let items = items; let loading = loading\">\n <ng-content select=\"thead\"></ng-content>\n <tbody>\n @for (item of items; track (trackByProperty === null ? $index : item[trackByProperty])) {\n <ng-container\n *ngTemplateOutlet=\"dataRowTemplate; context: {$implicit: item, item: item}\"></ng-container>\n }\n </tbody>\n <ng-content select=\"tfoot\"></ng-content>\n </table>\n <div *bbCollectionsEmpty=\"let query = query\"\n class=\"bb-collections-table-info\">\n <div class=\"bb-collections-table-image empty\"></div>\n @if (query?.length > 0) {\n <ng-template [bbTemplate]=\"noResultsContent\">\n <p [bb-localize-string]=\"$any(noResultsContent) ?? ('collection.no_results_label' | bbLocalize)\"\n class=\"bb-collections-table-info-text\">\n <strong *bbLocalizeTemplate=\"'query'\">{{ query ?? '...' }}</strong>\n </p>\n </ng-template>\n } @else {\n <ng-template [bbTemplate]=\"emptyContent\">\n <p class=\"bb-collections-table-info-text\">\n {{ $any(emptyContent) ?? ('collection.empty_label' | bbLocalize) }}\n </p>\n </ng-template>\n }\n </div>\n <div *bbCollectionsError=\"let error = error\"\n class=\"bb-collections-table-info\">\n <div class=\"bb-collections-table-image error\"></div>\n <ng-template [bbTemplate]=\"errorContent\">\n <p class=\"bb-collections-table-info-text\">\n {{ $any(errorContent) ?? ('collection.error_label' | bbLocalize) }}\n </p>\n </ng-template>\n </div>\n <div *bbCollectionsInitial\n class=\"bb-collections-table-info\">\n <bb-spinner class=\"block\"></bb-spinner>\n </div>\n </div>\n</div>\n\n@if (!hidePager) {\n <footer class=\"bb-collections-table-footer\">\n <bb-collections-pager [collection]=\"collection\"></bb-collections-pager>\n </footer>\n}\n", styles: ["@charset \"UTF-8\";.bb-collections-table{color:#111;display:block;position:relative;font-size:.875rem;border-radius:.5rem;background-color:#fff;box-shadow:0 .375rem .375rem -.375rem #0000001a}.bb-collections-table>*:first-child{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.bb-collections-table>*:last-child{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.bb-collections-table.include-vertical-lines td:not(:last-child),.bb-collections-table.include-vertical-lines th:not(:last-child){border-right:1px solid hsl(213,8%,90%)}.bb-collections-table-footer{padding:.75rem 1rem;background-color:#fbf9f9;border-top:1px solid hsl(213,8%,90%)}.bb-collections-table-wrapper{overflow:hidden;position:relative}.bb-collections-table-wrapper.loading:after{top:0;left:0;right:0;z-index:1;opacity:0;content:\"\";display:block;height:.25rem;position:absolute;will-change:left,right;background-color:var(--bb-collections-table-loader-color);animation:collectionsFadeIn .12s cubic-bezier(.65,.815,.735,.395) .4s forwards,collectionsIndeterminate 2.1s cubic-bezier(.65,.815,.735,.395) .4s infinite}.bb-collections-table-container{overflow-x:auto;position:relative}.bb-collections-table-container.loading>table>tbody,.bb-collections-table-container.loading>.bb-collections-table-info{animation:collectionsBlink 1s linear infinite}.bb-collections-table-container>table{width:100%}.bb-collections-table-container>table th,.bb-collections-table-container>table td{padding:1rem;text-align:left;font-weight:400;font-size:.875rem}.bb-collections-table-container>table th.fit,.bb-collections-table-container>table td.fit{width:1%;white-space:nowrap}.bb-collections-table-container>table th.left,.bb-collections-table-container>table td.left{text-align:left}.bb-collections-table-container>table th.right,.bb-collections-table-container>table td.right{text-align:right}.bb-collections-table-container>table>thead{background-color:#fbf9f9;border-bottom:1px solid hsl(213,8%,90%)}.bb-collections-table-container>table>thead>tr>th{padding:1rem;color:#525252}.bb-collections-table-container>table>tbody>tr>td{color:#111}.bb-collections-table-container>table>tbody>tr:not(:last-child){border-bottom:1px solid hsl(213,8%,90%)}.bb-collections-table-info{padding:3rem 1.5rem}.bb-collections-table-info-text{color:#525252;margin:0 auto;display:block;line-height:2;max-width:30rem;text-align:center;font-size:.875rem}.bb-collections-table-info-text>strong{font-weight:500}.bb-collections-table-info-text>strong:before{content:\"\\201c\"}.bb-collections-table-info-text>strong:after{content:\"\\201d\"}.bb-collections-table-image{width:100%;height:auto;display:flex;max-width:7.5rem;margin:0 auto 1.5rem;background-size:contain;background-repeat:no-repeat;background-position:center center}.bb-collections-table-image.empty{aspect-ratio:154/132;mask-image:linear-gradient(to bottom,black 25%,transparent 100%);background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 154 132\"%3E%3Cg fill=\"none\" fill-rule=\"evenodd\"%3E%3Crect width=\"154\" height=\"40\" fill=\"%23FFF\" fill-rule=\"nonzero\" rx=\"8\"/%3E%3Crect width=\"24\" height=\"24\" x=\"8\" y=\"8\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"4\"/%3E%3Crect width=\"60\" height=\"6\" x=\"40\" y=\"11\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"106\" height=\"6\" x=\"40\" y=\"23\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"153\" height=\"39\" x=\".5\" y=\".5\" stroke=\"%23E5E7EB\" rx=\"7.5\"/%3E%3Cg transform=\"translate(0 46)\"%3E%3Crect width=\"154\" height=\"40\" fill=\"%23FFF\" fill-rule=\"nonzero\" rx=\"8\"/%3E%3Crect width=\"24\" height=\"24\" x=\"8\" y=\"8\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"4\"/%3E%3Crect width=\"60\" height=\"6\" x=\"40\" y=\"11\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"106\" height=\"6\" x=\"40\" y=\"23\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"153\" height=\"39\" x=\".5\" y=\".5\" stroke=\"%23E5E7EB\" rx=\"7.5\"/%3E%3C/g%3E%3Cg transform=\"translate(0 92)\"%3E%3Crect width=\"154\" height=\"40\" fill=\"%23FFF\" fill-rule=\"nonzero\" rx=\"8\"/%3E%3Crect width=\"24\" height=\"24\" x=\"8\" y=\"8\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"4\"/%3E%3Crect width=\"60\" height=\"6\" x=\"40\" y=\"11\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"106\" height=\"6\" x=\"40\" y=\"23\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"153\" height=\"39\" x=\".5\" y=\".5\" stroke=\"%23E5E7EB\" rx=\"7.5\"/%3E%3C/g%3E%3C/g%3E%3C/svg%3E')}.bb-collections-table-image.error{max-width:4rem;aspect-ratio:1;background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 132 132\"%3E%3Cpath fill=\"%23C23934\" d=\"M65.958253 98.6024096c.8892771 0 1.6486747-.3008433 2.2781928-.9025301.6295181-.6016867.9442771-1.3471687.9442771-2.2364458 0-.8892771-.3008434-1.6486747-.9025301-2.2781927-.6016868-.6295181-1.3471687-.9442771-2.2364458-.9442771-.8892771 0-1.6486747.3008433-2.2781928.9025301-.6295181.6016867-.9442771 1.3471687-.9442771 2.2364458 0 .8892771.3008434 1.6486747.9025301 2.2781927.6016868.6295181 1.3471687.9442771 2.2364458.9442771Zm-1.9462048-21.4698795h3.9759036V29.4216867h-3.9759036v47.7108434ZM66.0894578 132c-9.0716867 0-17.6205421-1.715602-25.6465662-5.146807-8.0260241-3.431205-15.0547591-8.159217-21.0862049-14.184036-6.032771-6.02482-10.76674694-13.0416269-14.20192766-21.0504221C1.71825301 83.6086145 0 75.0504819 0 65.9443373 0 56.8368675 1.71560241 48.303253 5.14680723 40.343494c3.43120482-7.9597591 8.15921687-14.9553615 14.18403617-20.9868073 6.0248193-6.032771 13.0416265-10.76674694 21.0504217-14.20192766C48.3913855 1.71825301 56.9495181 0 66.0556627 0 75.1631325 0 83.696747 1.71560241 91.656506 5.14680723c7.9597591 3.43120482 14.955361 8.15921687 20.986807 14.18403617 6.032771 6.0248193 10.766747 13.0263855 14.201928 21.0046988C130.281747 48.3138554 132 56.8388554 132 65.9105422c0 9.0716867-1.715602 17.6205421-5.146807 25.6465662-3.431205 8.0260241-8.159217 15.0547586-14.184036 21.0862046-6.02482 6.032771-13.0263859 10.766747-21.0046992 14.201928C83.6861446 130.281747 75.1611446 132 66.0894578 132ZM66 128.024096c17.2289157 0 31.873494-6.03012 43.933735-18.090361C121.993976 97.873494 128.024096 83.2289157 128.024096 66c0-17.2289157-6.03012-31.873494-18.090361-43.9337349C97.873494 10.0060241 83.2289157 3.97590361 66 3.97590361c-17.2289157 0-31.873494 6.03012049-43.9337349 18.09036149C10.0060241 34.126506 3.97590361 48.7710843 3.97590361 66c0 17.2289157 6.03012049 31.873494 18.09036149 43.933735C34.126506 121.993976 48.7710843 128.024096 66 128.024096Z\"/%3E%3C/svg%3E')}@keyframes collectionsFadeIn{0%{opacity:0}to{opacity:1}}@keyframes collectionsIndeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@keyframes collectionsBlink{25%{opacity:.6}50%{opacity:.4}75%{opacity:.6}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: BbCollectionsViewer, selector: "[bb-collections-viewer]", inputs: ["collection"] }, { kind: "directive", type: BbCollectionsData, selector: "[bbCollectionsData]" }, { kind: "directive", type: BbCollectionsEmpty, selector: "[bbCollectionsEmpty]" }, { kind: "directive", type: BbCollectionsError, selector: "[bbCollectionsError]" }, { kind: "directive", type: BbCollectionsInitial, selector: "[bbCollectionsInitial]" }, { kind: "component", type: BbCollectionsActions, selector: "bb-collections-actions", inputs: ["collection", "queryPlaceholder", "standalone"] }, { kind: "component", type: BbCollectionsPager, selector: "bb-collections-pager", inputs: ["maxAmountOfButtons", "collection"] }, { kind: "component", type: BbLocalizeString, selector: "[bb-localize-string]", inputs: ["substitutions", "bb-localize-string"] }, { kind: "directive", type: BbTemplate, selector: "[bbTemplate]", inputs: ["bbTemplate"] }, { kind: "pipe", type: BbLocalize, name: "bbLocalize" }, { kind: "directive", type: BbLocalizeTemplate, selector: "[bbLocalizeTemplate]", inputs: ["bbLocalizeTemplate"] }, { kind: "component", type: BbSpinner, selector: "bb-spinner", inputs: ["color", "alt", "disabled"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
38
- }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbCollectionsTable, decorators: [{
40
- type: Component,
41
- args: [{ selector: 'bb-collections-table', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
42
- 'class': 'bb-collections-table',
43
- '[class.include-vertical-lines]': 'includeVerticalLines'
44
- }, preserveWhitespaces: false, standalone: true, imports: [
45
- NgTemplateOutlet,
46
- BbCollectionsViewer,
47
- BbCollectionsData,
48
- BbCollectionsEmpty,
49
- BbCollectionsError,
50
- BbCollectionsInitial,
51
- BbCollectionsActions,
52
- BbCollectionsPager,
53
- BbLocalizeString,
54
- BbTemplate,
55
- BbLocalize,
56
- BbLocalizeTemplate,
57
- BbSpinner,
58
- AsyncPipe
59
- ], template: "@if (!hideActions) {\n <bb-collections-actions [collection]=\"collection\"\n [queryPlaceholder]=\"queryPlaceholder\">\n <ng-content ngProjectAs=\"[data-collections-action]\"\n select=\"[data-collections-action]\"></ng-content>\n <ng-content ngProjectAs=\"[data-collections-row]\"\n select=\"[data-collections-row]\"></ng-content>\n </bb-collections-actions>\n}\n\n<div [class.loading]=\"collection?.loading$ | async\"\n class=\"bb-collections-table-wrapper\">\n <div [collection]=\"collection\"\n class=\"bb-collections-table-container\"\n bb-collections-viewer>\n @if (collection?.loading$ | async) {\n <div class=\"bb-collections-table-loading\"></div>\n }\n <table *bbCollectionsData=\"let items = items; let loading = loading\">\n <ng-content select=\"thead\"></ng-content>\n <tbody>\n @for (item of items; track (trackByProperty === null ? $index : item[trackByProperty])) {\n <ng-container\n *ngTemplateOutlet=\"dataRowTemplate; context: {$implicit: item, item: item}\"></ng-container>\n }\n </tbody>\n <ng-content select=\"tfoot\"></ng-content>\n </table>\n <div *bbCollectionsEmpty=\"let query = query\"\n class=\"bb-collections-table-info\">\n <div class=\"bb-collections-table-image empty\"></div>\n @if (query?.length > 0) {\n <ng-template [bbTemplate]=\"noResultsContent\">\n <p [bb-localize-string]=\"$any(noResultsContent) ?? ('collection.no_results_label' | bbLocalize)\"\n class=\"bb-collections-table-info-text\">\n <strong *bbLocalizeTemplate=\"'query'\">{{ query ?? '...' }}</strong>\n </p>\n </ng-template>\n } @else {\n <ng-template [bbTemplate]=\"emptyContent\">\n <p class=\"bb-collections-table-info-text\">\n {{ $any(emptyContent) ?? ('collection.empty_label' | bbLocalize) }}\n </p>\n </ng-template>\n }\n </div>\n <div *bbCollectionsError=\"let error = error\"\n class=\"bb-collections-table-info\">\n <div class=\"bb-collections-table-image error\"></div>\n <ng-template [bbTemplate]=\"errorContent\">\n <p class=\"bb-collections-table-info-text\">\n {{ $any(errorContent) ?? ('collection.error_label' | bbLocalize) }}\n </p>\n </ng-template>\n </div>\n <div *bbCollectionsInitial\n class=\"bb-collections-table-info\">\n <bb-spinner class=\"block\"></bb-spinner>\n </div>\n </div>\n</div>\n\n@if (!hidePager) {\n <footer class=\"bb-collections-table-footer\">\n <bb-collections-pager [collection]=\"collection\"></bb-collections-pager>\n </footer>\n}\n", styles: ["@charset \"UTF-8\";.bb-collections-table{color:#111;display:block;position:relative;font-size:.875rem;border-radius:.5rem;background-color:#fff;box-shadow:0 .375rem .375rem -.375rem #0000001a}.bb-collections-table>*:first-child{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.bb-collections-table>*:last-child{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.bb-collections-table.include-vertical-lines td:not(:last-child),.bb-collections-table.include-vertical-lines th:not(:last-child){border-right:1px solid hsl(213,8%,90%)}.bb-collections-table-footer{padding:.75rem 1rem;background-color:#fbf9f9;border-top:1px solid hsl(213,8%,90%)}.bb-collections-table-wrapper{overflow:hidden;position:relative}.bb-collections-table-wrapper.loading:after{top:0;left:0;right:0;z-index:1;opacity:0;content:\"\";display:block;height:.25rem;position:absolute;will-change:left,right;background-color:var(--bb-collections-table-loader-color);animation:collectionsFadeIn .12s cubic-bezier(.65,.815,.735,.395) .4s forwards,collectionsIndeterminate 2.1s cubic-bezier(.65,.815,.735,.395) .4s infinite}.bb-collections-table-container{overflow-x:auto;position:relative}.bb-collections-table-container.loading>table>tbody,.bb-collections-table-container.loading>.bb-collections-table-info{animation:collectionsBlink 1s linear infinite}.bb-collections-table-container>table{width:100%}.bb-collections-table-container>table th,.bb-collections-table-container>table td{padding:1rem;text-align:left;font-weight:400;font-size:.875rem}.bb-collections-table-container>table th.fit,.bb-collections-table-container>table td.fit{width:1%;white-space:nowrap}.bb-collections-table-container>table th.left,.bb-collections-table-container>table td.left{text-align:left}.bb-collections-table-container>table th.right,.bb-collections-table-container>table td.right{text-align:right}.bb-collections-table-container>table>thead{background-color:#fbf9f9;border-bottom:1px solid hsl(213,8%,90%)}.bb-collections-table-container>table>thead>tr>th{padding:1rem;color:#525252}.bb-collections-table-container>table>tbody>tr>td{color:#111}.bb-collections-table-container>table>tbody>tr:not(:last-child){border-bottom:1px solid hsl(213,8%,90%)}.bb-collections-table-info{padding:3rem 1.5rem}.bb-collections-table-info-text{color:#525252;margin:0 auto;display:block;line-height:2;max-width:30rem;text-align:center;font-size:.875rem}.bb-collections-table-info-text>strong{font-weight:500}.bb-collections-table-info-text>strong:before{content:\"\\201c\"}.bb-collections-table-info-text>strong:after{content:\"\\201d\"}.bb-collections-table-image{width:100%;height:auto;display:flex;max-width:7.5rem;margin:0 auto 1.5rem;background-size:contain;background-repeat:no-repeat;background-position:center center}.bb-collections-table-image.empty{aspect-ratio:154/132;mask-image:linear-gradient(to bottom,black 25%,transparent 100%);background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 154 132\"%3E%3Cg fill=\"none\" fill-rule=\"evenodd\"%3E%3Crect width=\"154\" height=\"40\" fill=\"%23FFF\" fill-rule=\"nonzero\" rx=\"8\"/%3E%3Crect width=\"24\" height=\"24\" x=\"8\" y=\"8\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"4\"/%3E%3Crect width=\"60\" height=\"6\" x=\"40\" y=\"11\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"106\" height=\"6\" x=\"40\" y=\"23\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"153\" height=\"39\" x=\".5\" y=\".5\" stroke=\"%23E5E7EB\" rx=\"7.5\"/%3E%3Cg transform=\"translate(0 46)\"%3E%3Crect width=\"154\" height=\"40\" fill=\"%23FFF\" fill-rule=\"nonzero\" rx=\"8\"/%3E%3Crect width=\"24\" height=\"24\" x=\"8\" y=\"8\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"4\"/%3E%3Crect width=\"60\" height=\"6\" x=\"40\" y=\"11\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"106\" height=\"6\" x=\"40\" y=\"23\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"153\" height=\"39\" x=\".5\" y=\".5\" stroke=\"%23E5E7EB\" rx=\"7.5\"/%3E%3C/g%3E%3Cg transform=\"translate(0 92)\"%3E%3Crect width=\"154\" height=\"40\" fill=\"%23FFF\" fill-rule=\"nonzero\" rx=\"8\"/%3E%3Crect width=\"24\" height=\"24\" x=\"8\" y=\"8\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"4\"/%3E%3Crect width=\"60\" height=\"6\" x=\"40\" y=\"11\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"106\" height=\"6\" x=\"40\" y=\"23\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"153\" height=\"39\" x=\".5\" y=\".5\" stroke=\"%23E5E7EB\" rx=\"7.5\"/%3E%3C/g%3E%3C/g%3E%3C/svg%3E')}.bb-collections-table-image.error{max-width:4rem;aspect-ratio:1;background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 132 132\"%3E%3Cpath fill=\"%23C23934\" d=\"M65.958253 98.6024096c.8892771 0 1.6486747-.3008433 2.2781928-.9025301.6295181-.6016867.9442771-1.3471687.9442771-2.2364458 0-.8892771-.3008434-1.6486747-.9025301-2.2781927-.6016868-.6295181-1.3471687-.9442771-2.2364458-.9442771-.8892771 0-1.6486747.3008433-2.2781928.9025301-.6295181.6016867-.9442771 1.3471687-.9442771 2.2364458 0 .8892771.3008434 1.6486747.9025301 2.2781927.6016868.6295181 1.3471687.9442771 2.2364458.9442771Zm-1.9462048-21.4698795h3.9759036V29.4216867h-3.9759036v47.7108434ZM66.0894578 132c-9.0716867 0-17.6205421-1.715602-25.6465662-5.146807-8.0260241-3.431205-15.0547591-8.159217-21.0862049-14.184036-6.032771-6.02482-10.76674694-13.0416269-14.20192766-21.0504221C1.71825301 83.6086145 0 75.0504819 0 65.9443373 0 56.8368675 1.71560241 48.303253 5.14680723 40.343494c3.43120482-7.9597591 8.15921687-14.9553615 14.18403617-20.9868073 6.0248193-6.032771 13.0416265-10.76674694 21.0504217-14.20192766C48.3913855 1.71825301 56.9495181 0 66.0556627 0 75.1631325 0 83.696747 1.71560241 91.656506 5.14680723c7.9597591 3.43120482 14.955361 8.15921687 20.986807 14.18403617 6.032771 6.0248193 10.766747 13.0263855 14.201928 21.0046988C130.281747 48.3138554 132 56.8388554 132 65.9105422c0 9.0716867-1.715602 17.6205421-5.146807 25.6465662-3.431205 8.0260241-8.159217 15.0547586-14.184036 21.0862046-6.02482 6.032771-13.0263859 10.766747-21.0046992 14.201928C83.6861446 130.281747 75.1611446 132 66.0894578 132ZM66 128.024096c17.2289157 0 31.873494-6.03012 43.933735-18.090361C121.993976 97.873494 128.024096 83.2289157 128.024096 66c0-17.2289157-6.03012-31.873494-18.090361-43.9337349C97.873494 10.0060241 83.2289157 3.97590361 66 3.97590361c-17.2289157 0-31.873494 6.03012049-43.9337349 18.09036149C10.0060241 34.126506 3.97590361 48.7710843 3.97590361 66c0 17.2289157 6.03012049 31.873494 18.09036149 43.933735C34.126506 121.993976 48.7710843 128.024096 66 128.024096Z\"/%3E%3C/svg%3E')}@keyframes collectionsFadeIn{0%{opacity:0}to{opacity:1}}@keyframes collectionsIndeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@keyframes collectionsBlink{25%{opacity:.6}50%{opacity:.4}75%{opacity:.6}}\n"] }]
60
- }], propDecorators: { dataRowTemplate: [{
61
- type: ContentChild,
62
- args: [BbCollectionsDataRow, { read: TemplateRef, static: false }]
63
- }], queryPlaceholder: [{
64
- type: Input
65
- }], emptyContent: [{
66
- type: Input
67
- }], noResultsContent: [{
68
- type: Input
69
- }], errorContent: [{
70
- type: Input
71
- }], trackByProperty: [{
72
- type: Input
73
- }], includeVerticalLines: [{
74
- type: Input,
75
- args: [{ transform: booleanAttribute }]
76
- }], hideActions: [{
77
- type: Input,
78
- args: [{ transform: booleanAttribute }]
79
- }], hidePager: [{
80
- type: Input,
81
- args: [{ transform: booleanAttribute }]
82
- }], collection: [{
83
- type: Input,
84
- args: [{ required: true }]
85
- }] } });
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbnMtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb2xsZWN0aW9ucy9zcmMvbGliL2NvbXBvbmVudHMvY29sbGVjdGlvbnMtdGFibGUvY29sbGVjdGlvbnMtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb2xsZWN0aW9ucy9zcmMvbGliL2NvbXBvbmVudHMvY29sbGVjdGlvbnMtdGFibGUvY29sbGVjdGlvbnMtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGdCQUFnQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4SSxPQUFPLEVBQUMsb0JBQW9CLEVBQThCLE1BQU0saURBQWlELENBQUM7QUFDbEgsT0FBTyxFQUFDLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xHLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQzlFLE9B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ZWFuQXR0cmlidXRlLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIElucHV0LCBUZW1wbGF0ZVJlZiwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCYkNvbGxlY3Rpb25zRGF0YVJvdywgQmJDb2xsZWN0aW9uc0RhdGFSb3dDb250ZXh0fSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2NvbGxlY3Rpb25zLWRhdGEtcm93LmRpcmVjdGl2ZSc7XG5pbXBvcnQge0JiTG9jYWxpemUsIEJiTG9jYWxpemVTdHJpbmcsIEJiTG9jYWxpemVUZW1wbGF0ZX0gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24vbG9jYWxpemUnO1xuaW1wb3J0IHtCYkNvbGxlY3Rpb25zQWN0aW9uc30gZnJvbSAnLi4vY29sbGVjdGlvbnMtYWN0aW9ucy9jb2xsZWN0aW9ucy1hY3Rpb25zLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiQ29sbGVjdGlvbnNWaWV3ZXJ9IGZyb20gJy4uL2NvbGxlY3Rpb25zLXZpZXdlci9jb2xsZWN0aW9ucy12aWV3ZXIuY29tcG9uZW50JztcbmltcG9ydCB7QmJDb2xsZWN0aW9uc0luaXRpYWx9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvY29sbGVjdGlvbnMtaW5pdGlhbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtCYkNvbGxlY3Rpb25zUGFnZXJ9IGZyb20gJy4uL2NvbGxlY3Rpb25zLXBhZ2VyL2NvbGxlY3Rpb25zLXBhZ2VyLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiQ29sbGVjdGlvbnNFbXB0eX0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9jb2xsZWN0aW9ucy1lbXB0eS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtCYkNvbGxlY3Rpb25zRXJyb3J9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvY29sbGVjdGlvbnMtZXJyb3IuZGlyZWN0aXZlJztcbmltcG9ydCB7QmJDb2xsZWN0aW9uc0RhdGF9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvY29sbGVjdGlvbnMtZGF0YS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtBc3luY1BpcGUsIE5nVGVtcGxhdGVPdXRsZXR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0JiU3Bpbm5lcn0gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24vZWxlbWVudHMnO1xuaW1wb3J0IHtCYlRlbXBsYXRlfSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbi91dGlscyc7XG5pbXBvcnQge0NvbGxlY3Rpb259IGZyb20gJy4uLy4uL2NvbGxlY3Rpb24nO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3R9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JiLWNvbGxlY3Rpb25zLXRhYmxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29sbGVjdGlvbnMtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NvbGxlY3Rpb25zLXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdjbGFzcyc6ICdiYi1jb2xsZWN0aW9ucy10YWJsZScsXG4gICAgICAgICdbY2xhc3MuaW5jbHVkZS12ZXJ0aWNhbC1saW5lc10nOiAnaW5jbHVkZVZlcnRpY2FsTGluZXMnXG4gICAgfSxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgQmJDb2xsZWN0aW9uc1ZpZXdlcixcbiAgICAgICAgQmJDb2xsZWN0aW9uc0RhdGEsXG4gICAgICAgIEJiQ29sbGVjdGlvbnNFbXB0eSxcbiAgICAgICAgQmJDb2xsZWN0aW9uc0Vycm9yLFxuICAgICAgICBCYkNvbGxlY3Rpb25zSW5pdGlhbCxcbiAgICAgICAgQmJDb2xsZWN0aW9uc0FjdGlvbnMsXG4gICAgICAgIEJiQ29sbGVjdGlvbnNQYWdlcixcbiAgICAgICAgQmJMb2NhbGl6ZVN0cmluZyxcbiAgICAgICAgQmJUZW1wbGF0ZSxcbiAgICAgICAgQmJMb2NhbGl6ZSxcbiAgICAgICAgQmJMb2NhbGl6ZVRlbXBsYXRlLFxuICAgICAgICBCYlNwaW5uZXIsXG4gICAgICAgIEFzeW5jUGlwZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgQmJDb2xsZWN0aW9uc1RhYmxlPFQgPSBhbnk+IHtcblxuICAgIC8vIFJlYWRvbmx5IGRhdGEuXG4gICAgcmVhZG9ubHkgY29sbGVjdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENvbGxlY3Rpb248VD4gfCBudWxsPihudWxsKTtcblxuICAgIC8vIFZpZXdzLlxuICAgIEBDb250ZW50Q2hpbGQoQmJDb2xsZWN0aW9uc0RhdGFSb3csIHtyZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiBmYWxzZX0pIGRhdGFSb3dUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPEJiQ29sbGVjdGlvbnNEYXRhUm93Q29udGV4dDxUPj47XG5cbiAgICAvLyBJbnB1dHMuXG4gICAgQElucHV0KCkgcXVlcnlQbGFjZWhvbGRlcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgZW1wdHlDb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgbm9SZXN1bHRzQ29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpIGVycm9yQ29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpIHRyYWNrQnlQcm9wZXJ0eTogc3RyaW5nIHwgbnVsbCA9ICdpZCc7XG4gICAgQElucHV0KHt0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGV9KSBpbmNsdWRlVmVydGljYWxMaW5lczogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCh7dHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlfSkgaGlkZUFjdGlvbnM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoe3RyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZX0pIGhpZGVQYWdlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pXG4gICAgc2V0IGNvbGxlY3Rpb24oY29sbGVjdGlvbjogQ29sbGVjdGlvbjxUPikge1xuICAgICAgICB0aGlzLmNvbGxlY3Rpb24kLm5leHQoY29sbGVjdGlvbik7XG4gICAgfVxuXG4gICAgZ2V0IGNvbGxlY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbGxlY3Rpb24kLmdldFZhbHVlKCk7XG4gICAgfVxuXG59XG4iLCJAaWYgKCFoaWRlQWN0aW9ucykge1xuICAgIDxiYi1jb2xsZWN0aW9ucy1hY3Rpb25zIFtjb2xsZWN0aW9uXT1cImNvbGxlY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtxdWVyeVBsYWNlaG9sZGVyXT1cInF1ZXJ5UGxhY2Vob2xkZXJcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgbmdQcm9qZWN0QXM9XCJbZGF0YS1jb2xsZWN0aW9ucy1hY3Rpb25dXCJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0PVwiW2RhdGEtY29sbGVjdGlvbnMtYWN0aW9uXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPG5nLWNvbnRlbnQgbmdQcm9qZWN0QXM9XCJbZGF0YS1jb2xsZWN0aW9ucy1yb3ddXCJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0PVwiW2RhdGEtY29sbGVjdGlvbnMtcm93XVwiPjwvbmctY29udGVudD5cbiAgICA8L2JiLWNvbGxlY3Rpb25zLWFjdGlvbnM+XG59XG5cbjxkaXYgW2NsYXNzLmxvYWRpbmddPVwiY29sbGVjdGlvbj8ubG9hZGluZyQgfCBhc3luY1wiXG4gICAgIGNsYXNzPVwiYmItY29sbGVjdGlvbnMtdGFibGUtd3JhcHBlclwiPlxuICAgIDxkaXYgW2NvbGxlY3Rpb25dPVwiY29sbGVjdGlvblwiXG4gICAgICAgICBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXRhYmxlLWNvbnRhaW5lclwiXG4gICAgICAgICBiYi1jb2xsZWN0aW9ucy12aWV3ZXI+XG4gICAgICAgIEBpZiAoY29sbGVjdGlvbj8ubG9hZGluZyQgfCBhc3luYykge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXRhYmxlLWxvYWRpbmdcIj48L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICA8dGFibGUgKmJiQ29sbGVjdGlvbnNEYXRhPVwibGV0IGl0ZW1zID0gaXRlbXM7IGxldCBsb2FkaW5nID0gbG9hZGluZ1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwidGhlYWRcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBpdGVtczsgdHJhY2sgKHRyYWNrQnlQcm9wZXJ0eSA9PT0gbnVsbCA/ICRpbmRleCA6IGl0ZW1bdHJhY2tCeVByb3BlcnR5XSkpIHtcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkYXRhUm93VGVtcGxhdGU7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGl0ZW0sIGl0ZW06IGl0ZW19XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInRmb290XCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L3RhYmxlPlxuICAgICAgICA8ZGl2ICpiYkNvbGxlY3Rpb25zRW1wdHk9XCJsZXQgcXVlcnkgPSBxdWVyeVwiXG4gICAgICAgICAgICAgY2xhc3M9XCJiYi1jb2xsZWN0aW9ucy10YWJsZS1pbmZvXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmItY29sbGVjdGlvbnMtdGFibGUtaW1hZ2UgZW1wdHlcIj48L2Rpdj5cbiAgICAgICAgICAgIEBpZiAocXVlcnk/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW2JiVGVtcGxhdGVdPVwibm9SZXN1bHRzQ29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8cCBbYmItbG9jYWxpemUtc3RyaW5nXT1cIiRhbnkobm9SZXN1bHRzQ29udGVudCkgPz8gKCdjb2xsZWN0aW9uLm5vX3Jlc3VsdHNfbGFiZWwnIHwgYmJMb2NhbGl6ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXRhYmxlLWluZm8tdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZyAqYmJMb2NhbGl6ZVRlbXBsYXRlPVwiJ3F1ZXJ5J1wiPnt7IHF1ZXJ5ID8/ICcuLi4nIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtiYlRlbXBsYXRlXT1cImVtcHR5Q29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXRhYmxlLWluZm8tdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJGFueShlbXB0eUNvbnRlbnQpID8/ICgnY29sbGVjdGlvbi5lbXB0eV9sYWJlbCcgfCBiYkxvY2FsaXplKSB9fVxuICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKmJiQ29sbGVjdGlvbnNFcnJvcj1cImxldCBlcnJvciA9IGVycm9yXCJcbiAgICAgICAgICAgICBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXRhYmxlLWluZm9cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYi1jb2xsZWN0aW9ucy10YWJsZS1pbWFnZSBlcnJvclwiPjwvZGl2PlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtiYlRlbXBsYXRlXT1cImVycm9yQ29udGVudFwiPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiYmItY29sbGVjdGlvbnMtdGFibGUtaW5mby10ZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgIHt7ICRhbnkoZXJyb3JDb250ZW50KSA/PyAoJ2NvbGxlY3Rpb24uZXJyb3JfbGFiZWwnIHwgYmJMb2NhbGl6ZSkgfX1cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqYmJDb2xsZWN0aW9uc0luaXRpYWxcbiAgICAgICAgICAgICBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXRhYmxlLWluZm9cIj5cbiAgICAgICAgICAgIDxiYi1zcGlubmVyIGNsYXNzPVwiYmxvY2tcIj48L2JiLXNwaW5uZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbkBpZiAoIWhpZGVQYWdlcikge1xuICAgIDxmb290ZXIgY2xhc3M9XCJiYi1jb2xsZWN0aW9ucy10YWJsZS1mb290ZXJcIj5cbiAgICAgICAgPGJiLWNvbGxlY3Rpb25zLXBhZ2VyIFtjb2xsZWN0aW9uXT1cImNvbGxlY3Rpb25cIj48L2JiLWNvbGxlY3Rpb25zLXBhZ2VyPlxuICAgIDwvZm9vdGVyPlxufVxuIl19
@@ -1,30 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';
2
- import { BbAvatar } from '@bravobit/bb-foundation/elements';
3
- import { BbTemplate } from '@bravobit/bb-foundation/utils';
4
- import * as i0 from "@angular/core";
5
- export class BbCollectionsTableLabel {
6
- // Inputs.
7
- titleLabel = null;
8
- descriptionLabel = null;
9
- imageUrl = null;
10
- alt = null;
11
- type = 'image';
12
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbCollectionsTableLabel, deps: [], target: i0.ɵɵFactoryTarget.Component });
13
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: BbCollectionsTableLabel, isStandalone: true, selector: "[bb-collections-table-label]", inputs: { titleLabel: "titleLabel", descriptionLabel: "descriptionLabel", imageUrl: "imageUrl", alt: "alt", type: "type" }, host: { classAttribute: "bb-collections-table-label" }, ngImport: i0, template: "@switch (type) {\n @case ('avatar') {\n <bb-avatar [title]=\"alt ?? '...'\"\n [src]=\"imageUrl\"\n size=\"2\"\n class=\"bb-collections-table-label-avatar\">\n </bb-avatar>\n }\n @case ('content') {\n <ng-content></ng-content>\n }\n @default {\n @if (imageUrl; as src) {\n <div [style.background-image]=\"'url(' + src + ')'\"\n class=\"bb-collections-table-label-image\"></div>\n }\n }\n}\n\n<div class=\"bb-collections-table-label-content\">\n <span class=\"bb-collections-table-label-title\"><ng-template\n [bbTemplate]=\"titleLabel\">{{ titleLabel }}</ng-template></span>\n @if (descriptionLabel; as descriptionContent) {\n <small class=\"bb-collections-table-label-description\">\n <ng-template [bbTemplate]=\"descriptionContent\">{{ descriptionContent }}</ng-template>\n </small>\n }\n</div>\n", styles: [".bb-collections-table-label{align-items:center;display:inline-flex}a.bb-collections-table-label{text-decoration:none}a.bb-collections-table-label>.bb-collections-table-label-content>.bb-collections-table-label-title,a.bb-collections-table-label:visited>.bb-collections-table-label-content>.bb-collections-table-label-title{text-underline-offset:.25rem;text-decoration:dotted underline;text-decoration-thickness:1px;color:var(--bb-collections-table-label-color)}a.bb-collections-table-label>.bb-collections-table-label-content>.bb-collections-table-label-description,a.bb-collections-table-label:visited>.bb-collections-table-label-content>.bb-collections-table-label-description{color:#758795}a.bb-collections-table-label:hover>.bb-collections-table-label-content>.bb-collections-table-label-title,a.bb-collections-table-label:focus>.bb-collections-table-label-content>.bb-collections-table-label-title{text-decoration-style:solid}.bb-collections-table-label-image,.bb-collections-table-label-avatar{width:2rem;height:2rem;min-width:2rem;min-height:2rem;margin-right:.5rem}.bb-collections-table-label-image{background-size:contain;background-repeat:no-repeat;background-position:center center}.bb-collections-table-label-content{display:block}.bb-collections-table-label-title{display:block;color:#111;line-height:1.6;font-size:.875rem}.bb-collections-table-label-description{display:block;line-height:1.6;margin-top:.25rem;font-size:.8125rem;color:#758795}\n"], dependencies: [{ kind: "component", type: BbAvatar, selector: "bb-avatar", inputs: ["size", "unit", "src", "title", "tintColor"] }, { kind: "directive", type: BbTemplate, selector: "[bbTemplate]", inputs: ["bbTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
14
- }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbCollectionsTableLabel, decorators: [{
16
- type: Component,
17
- args: [{ selector: '[bb-collections-table-label]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'class': 'bb-collections-table-label' }, preserveWhitespaces: false, standalone: true, imports: [BbAvatar, BbTemplate], template: "@switch (type) {\n @case ('avatar') {\n <bb-avatar [title]=\"alt ?? '...'\"\n [src]=\"imageUrl\"\n size=\"2\"\n class=\"bb-collections-table-label-avatar\">\n </bb-avatar>\n }\n @case ('content') {\n <ng-content></ng-content>\n }\n @default {\n @if (imageUrl; as src) {\n <div [style.background-image]=\"'url(' + src + ')'\"\n class=\"bb-collections-table-label-image\"></div>\n }\n }\n}\n\n<div class=\"bb-collections-table-label-content\">\n <span class=\"bb-collections-table-label-title\"><ng-template\n [bbTemplate]=\"titleLabel\">{{ titleLabel }}</ng-template></span>\n @if (descriptionLabel; as descriptionContent) {\n <small class=\"bb-collections-table-label-description\">\n <ng-template [bbTemplate]=\"descriptionContent\">{{ descriptionContent }}</ng-template>\n </small>\n }\n</div>\n", styles: [".bb-collections-table-label{align-items:center;display:inline-flex}a.bb-collections-table-label{text-decoration:none}a.bb-collections-table-label>.bb-collections-table-label-content>.bb-collections-table-label-title,a.bb-collections-table-label:visited>.bb-collections-table-label-content>.bb-collections-table-label-title{text-underline-offset:.25rem;text-decoration:dotted underline;text-decoration-thickness:1px;color:var(--bb-collections-table-label-color)}a.bb-collections-table-label>.bb-collections-table-label-content>.bb-collections-table-label-description,a.bb-collections-table-label:visited>.bb-collections-table-label-content>.bb-collections-table-label-description{color:#758795}a.bb-collections-table-label:hover>.bb-collections-table-label-content>.bb-collections-table-label-title,a.bb-collections-table-label:focus>.bb-collections-table-label-content>.bb-collections-table-label-title{text-decoration-style:solid}.bb-collections-table-label-image,.bb-collections-table-label-avatar{width:2rem;height:2rem;min-width:2rem;min-height:2rem;margin-right:.5rem}.bb-collections-table-label-image{background-size:contain;background-repeat:no-repeat;background-position:center center}.bb-collections-table-label-content{display:block}.bb-collections-table-label-title{display:block;color:#111;line-height:1.6;font-size:.875rem}.bb-collections-table-label-description{display:block;line-height:1.6;margin-top:.25rem;font-size:.8125rem;color:#758795}\n"] }]
18
- }], propDecorators: { titleLabel: [{
19
- type: Input,
20
- args: [{ required: true }]
21
- }], descriptionLabel: [{
22
- type: Input
23
- }], imageUrl: [{
24
- type: Input
25
- }], alt: [{
26
- type: Input
27
- }], type: [{
28
- type: Input
29
- }] } });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbnMtdGFibGUtbGFiZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb2xsZWN0aW9ucy9zcmMvbGliL2NvbXBvbmVudHMvY29sbGVjdGlvbnMtdGFibGUtbGFiZWwvY29sbGVjdGlvbnMtdGFibGUtbGFiZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb2xsZWN0aW9ucy9zcmMvbGliL2NvbXBvbmVudHMvY29sbGVjdGlvbnMtdGFibGUtbGFiZWwvY29sbGVjdGlvbnMtdGFibGUtbGFiZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzFELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7QUFhekQsTUFBTSxPQUFPLHVCQUF1QjtJQUVoQyxVQUFVO0lBQ2UsVUFBVSxHQUFxQyxJQUFJLENBQUM7SUFDcEUsZ0JBQWdCLEdBQXFDLElBQUksQ0FBQztJQUMxRCxRQUFRLEdBQWtCLElBQUksQ0FBQztJQUMvQixHQUFHLEdBQWtCLElBQUksQ0FBQztJQUMxQixJQUFJLEdBQW1DLE9BQU8sQ0FBQzt3R0FQL0MsdUJBQXVCOzRGQUF2Qix1QkFBdUIsNFFDZnBDLDg4QkE0QkEsNitDRGZjLFFBQVEsNkdBQUUsVUFBVTs7NEZBRXJCLHVCQUF1QjtrQkFYbkMsU0FBUzsrQkFDSSw4QkFBOEIsbUJBR3ZCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0IsRUFBQyxPQUFPLEVBQUUsNEJBQTRCLEVBQUMsdUJBQ3hCLEtBQUssY0FDZCxJQUFJLFdBQ1AsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDOzhCQUtOLFVBQVU7c0JBQWxDLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDO2dCQUNkLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBUZW1wbGF0ZVJlZiwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCYkF2YXRhcn0gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24vZWxlbWVudHMnO1xuaW1wb3J0IHtCYlRlbXBsYXRlfSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbi91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW2JiLWNvbGxlY3Rpb25zLXRhYmxlLWxhYmVsXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbGxlY3Rpb25zLXRhYmxlLWxhYmVsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jb2xsZWN0aW9ucy10YWJsZS1sYWJlbC5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDogeydjbGFzcyc6ICdiYi1jb2xsZWN0aW9ucy10YWJsZS1sYWJlbCd9LFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0JiQXZhdGFyLCBCYlRlbXBsYXRlXVxufSlcbmV4cG9ydCBjbGFzcyBCYkNvbGxlY3Rpb25zVGFibGVMYWJlbCB7XG5cbiAgICAvLyBJbnB1dHMuXG4gICAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pIHRpdGxlTGFiZWw6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSBkZXNjcmlwdGlvbkxhYmVsOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgaW1hZ2VVcmw6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpIGFsdDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgdHlwZTogJ2ltYWdlJyB8ICdhdmF0YXInIHwgJ2NvbnRlbnQnID0gJ2ltYWdlJztcblxufVxuIiwiQHN3aXRjaCAodHlwZSkge1xuICAgIEBjYXNlICgnYXZhdGFyJykge1xuICAgICAgICA8YmItYXZhdGFyIFt0aXRsZV09XCJhbHQgPz8gJy4uLidcIlxuICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiaW1hZ2VVcmxcIlxuICAgICAgICAgICAgICAgICAgIHNpemU9XCIyXCJcbiAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXRhYmxlLWxhYmVsLWF2YXRhclwiPlxuICAgICAgICA8L2JiLWF2YXRhcj5cbiAgICB9XG4gICAgQGNhc2UgKCdjb250ZW50Jykge1xuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgfVxuICAgIEBkZWZhdWx0IHtcbiAgICAgICAgQGlmIChpbWFnZVVybDsgYXMgc3JjKSB7XG4gICAgICAgICAgICA8ZGl2IFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cIid1cmwoJyArIHNyYyArICcpJ1wiXG4gICAgICAgICAgICAgICAgIGNsYXNzPVwiYmItY29sbGVjdGlvbnMtdGFibGUtbGFiZWwtaW1hZ2VcIj48L2Rpdj5cbiAgICAgICAgfVxuICAgIH1cbn1cblxuPGRpdiBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXRhYmxlLWxhYmVsLWNvbnRlbnRcIj5cbiAgICA8c3BhbiBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXRhYmxlLWxhYmVsLXRpdGxlXCI+PG5nLXRlbXBsYXRlXG4gICAgICAgIFtiYlRlbXBsYXRlXT1cInRpdGxlTGFiZWxcIj57eyB0aXRsZUxhYmVsIH19PC9uZy10ZW1wbGF0ZT48L3NwYW4+XG4gICAgQGlmIChkZXNjcmlwdGlvbkxhYmVsOyBhcyBkZXNjcmlwdGlvbkNvbnRlbnQpIHtcbiAgICAgICAgPHNtYWxsIGNsYXNzPVwiYmItY29sbGVjdGlvbnMtdGFibGUtbGFiZWwtZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbYmJUZW1wbGF0ZV09XCJkZXNjcmlwdGlvbkNvbnRlbnRcIj57eyBkZXNjcmlwdGlvbkNvbnRlbnQgfX08L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3NtYWxsPlxuICAgIH1cbjwvZGl2PlxuIl19
@@ -1,65 +0,0 @@
1
- import { Attribute, ChangeDetectionStrategy, Component, HostListener, Optional, ViewEncapsulation } from '@angular/core';
2
- import { distinctUntilChanged, map, switchMap } from 'rxjs/operators';
3
- import { getControlValue } from '@bravobit/bb-foundation/rxjs';
4
- import { Subscription } from 'rxjs';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../collections-table/collections-table.component";
7
- export class BbCollectionsTableSorting {
8
- _name;
9
- _changeDetectorRef;
10
- _parent;
11
- // Readonly data.
12
- orderedOptions = [null, 'asc', 'desc'];
13
- // State.
14
- direction = null;
15
- // Subscription.
16
- _subscription = new Subscription();
17
- constructor(_name, _changeDetectorRef, _parent) {
18
- this._name = _name;
19
- this._changeDetectorRef = _changeDetectorRef;
20
- this._parent = _parent;
21
- }
22
- ngOnInit() {
23
- const direction$ = this._parent.collection$.pipe(switchMap(collection => getControlValue(collection.sortControl)), map(value => Array.isArray(value) ? value : [value]), map(value => value?.find(item => item?.name === this._name)), map(sorting => sorting?.direction ?? null), distinctUntilChanged());
24
- const subscription = direction$.subscribe(direction => {
25
- this.direction = direction;
26
- this._changeDetectorRef.markForCheck();
27
- });
28
- this._subscription.add(subscription);
29
- }
30
- ngOnDestroy() {
31
- this._subscription?.unsubscribe();
32
- }
33
- onClick() {
34
- if (!this._name) {
35
- return;
36
- }
37
- const nextDirection = this.getNextOption(this.direction);
38
- const controlValue = nextDirection === null ? null : { name: this._name, direction: nextDirection };
39
- this._parent?.collection?.sortControl?.setValue(controlValue);
40
- }
41
- getNextOption(direction) {
42
- const index = this.orderedOptions.findIndex(item => item === direction);
43
- const newIndex = (index + 1) % this.orderedOptions?.length;
44
- return this.orderedOptions?.[newIndex] ?? null;
45
- }
46
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbCollectionsTableSorting, deps: [{ token: 'bb-collections-table-sorting', attribute: true }, { token: i0.ChangeDetectorRef }, { token: i1.BbCollectionsTable, optional: true }], target: i0.ɵɵFactoryTarget.Component });
47
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: BbCollectionsTableSorting, isStandalone: true, selector: "th[bb-collections-table-sorting]", host: { listeners: { "click": "onClick()" }, properties: { "class.asc": "direction === 'asc'", "class.desc": "direction === 'desc'" }, classAttribute: "bb-collections-table-sorting" }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [".bb-collections-table-sorting{cursor:pointer;-webkit-user-select:none;user-select:none;background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E');background-repeat:no-repeat;padding-right:2.5rem!important;background-size:.5625rem .9375rem;background-position:center right 1rem;transition:background-color .12s cubic-bezier(0,0,.2,1)}.bb-collections-table-sorting:hover,.bb-collections-table-sorting:focus{background-color:#f4f0f0}.bb-collections-table-sorting:active{background-color:#f0ebeb}.bb-collections-table-sorting.asc{background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"black\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E')}.bb-collections-table-sorting.desc{background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"black\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E')}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
48
- }
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbCollectionsTableSorting, decorators: [{
50
- type: Component,
51
- args: [{ selector: 'th[bb-collections-table-sorting]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
52
- 'class': 'bb-collections-table-sorting',
53
- '[class.asc]': 'direction === \'asc\'',
54
- '[class.desc]': 'direction === \'desc\''
55
- }, preserveWhitespaces: false, standalone: true, template: "<ng-content></ng-content>\n", styles: [".bb-collections-table-sorting{cursor:pointer;-webkit-user-select:none;user-select:none;background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E');background-repeat:no-repeat;padding-right:2.5rem!important;background-size:.5625rem .9375rem;background-position:center right 1rem;transition:background-color .12s cubic-bezier(0,0,.2,1)}.bb-collections-table-sorting:hover,.bb-collections-table-sorting:focus{background-color:#f4f0f0}.bb-collections-table-sorting:active{background-color:#f0ebeb}.bb-collections-table-sorting.asc{background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"black\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E')}.bb-collections-table-sorting.desc{background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"black\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E')}\n"] }]
56
- }], ctorParameters: () => [{ type: undefined, decorators: [{
57
- type: Attribute,
58
- args: ['bb-collections-table-sorting']
59
- }] }, { type: i0.ChangeDetectorRef }, { type: i1.BbCollectionsTable, decorators: [{
60
- type: Optional
61
- }] }], propDecorators: { onClick: [{
62
- type: HostListener,
63
- args: ['click']
64
- }] } });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbnMtdGFibGUtc29ydGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2NvbGxlY3Rpb25zL3NyYy9saWIvY29tcG9uZW50cy9jb2xsZWN0aW9ucy10YWJsZS1zb3J0aW5nL2NvbGxlY3Rpb25zLXRhYmxlLXNvcnRpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb2xsZWN0aW9ucy9zcmMvbGliL2NvbXBvbmVudHMvY29sbGVjdGlvbnMtdGFibGUtc29ydGluZy9jb2xsZWN0aW9ucy10YWJsZS1zb3J0aW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQXFCLFFBQVEsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU3SixPQUFPLEVBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7QUFnQmxDLE1BQU0sT0FBTyx5QkFBeUI7SUFXNkI7SUFDM0M7SUFDWTtJQVhoQyxpQkFBaUI7SUFDUixjQUFjLEdBQTBCLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUV2RSxTQUFTO0lBQ1QsU0FBUyxHQUEwQixJQUFJLENBQUM7SUFFeEMsZ0JBQWdCO0lBQ1IsYUFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFFM0MsWUFBK0QsS0FBYSxFQUN4RCxrQkFBcUMsRUFDekIsT0FBcUM7UUFGTixVQUFLLEdBQUwsS0FB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YnV0ZSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JiQ29sbGVjdGlvbnNUYWJsZX0gZnJvbSAnLi4vY29sbGVjdGlvbnMtdGFibGUvY29sbGVjdGlvbnMtdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7ZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge2dldENvbnRyb2xWYWx1ZX0gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24vcnhqcyc7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGhbYmItY29sbGVjdGlvbnMtdGFibGUtc29ydGluZ10nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2xsZWN0aW9ucy10YWJsZS1zb3J0aW5nLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jb2xsZWN0aW9ucy10YWJsZS1zb3J0aW5nLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdjbGFzcyc6ICdiYi1jb2xsZWN0aW9ucy10YWJsZS1zb3J0aW5nJyxcbiAgICAgICAgJ1tjbGFzcy5hc2NdJzogJ2RpcmVjdGlvbiA9PT0gXFwnYXNjXFwnJyxcbiAgICAgICAgJ1tjbGFzcy5kZXNjXSc6ICdkaXJlY3Rpb24gPT09IFxcJ2Rlc2NcXCcnXG4gICAgfSxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEJiQ29sbGVjdGlvbnNUYWJsZVNvcnRpbmcgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICAvLyBSZWFkb25seSBkYXRhLlxuICAgIHJlYWRvbmx5IG9yZGVyZWRPcHRpb25zOiBbbnVsbCwgJ2FzYycsICdkZXNjJ10gPSBbbnVsbCwgJ2FzYycsICdkZXNjJ107XG5cbiAgICAvLyBTdGF0ZS5cbiAgICBkaXJlY3Rpb246ICdhc2MnIHwgJ2Rlc2MnIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvLyBTdWJzY3JpcHRpb24uXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgY29uc3RydWN0b3IoQEF0dHJpYnV0ZSgnYmItY29sbGVjdGlvbnMtdGFibGUtc29ydGluZycpIHByaXZhdGUgX25hbWU6IHN0cmluZyxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfcGFyZW50PzogQmJDb2xsZWN0aW9uc1RhYmxlPHVua25vd24+KSB7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGNvbnN0IGRpcmVjdGlvbiQgPSB0aGlzLl9wYXJlbnQuY29sbGVjdGlvbiQucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcChjb2xsZWN0aW9uID0+IGdldENvbnRyb2xWYWx1ZShjb2xsZWN0aW9uLnNvcnRDb250cm9sKSksXG4gICAgICAgICAgICBtYXAodmFsdWUgPT4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV0pLFxuICAgICAgICAgICAgbWFwKHZhbHVlID0+IHZhbHVlPy5maW5kKGl0ZW0gPT4gaXRlbT8ubmFtZSA9PT0gdGhpcy5fbmFtZSkpLFxuICAgICAgICAgICAgbWFwKHNvcnRpbmcgPT4gc29ydGluZz8uZGlyZWN0aW9uID8/IG51bGwpLFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSBkaXJlY3Rpb24kLnN1YnNjcmliZShkaXJlY3Rpb24gPT4ge1xuICAgICAgICAgICAgdGhpcy5kaXJlY3Rpb24gPSBkaXJlY3Rpb247XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoc3Vic2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgICBvbkNsaWNrKCkge1xuICAgICAgICBpZiAoIXRoaXMuX25hbWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5leHREaXJlY3Rpb24gPSB0aGlzLmdldE5leHRPcHRpb24odGhpcy5kaXJlY3Rpb24pO1xuICAgICAgICBjb25zdCBjb250cm9sVmFsdWUgPSBuZXh0RGlyZWN0aW9uID09PSBudWxsID8gbnVsbCA6IHtuYW1lOiB0aGlzLl9uYW1lLCBkaXJlY3Rpb246IG5leHREaXJlY3Rpb259O1xuICAgICAgICB0aGlzLl9wYXJlbnQ/LmNvbGxlY3Rpb24/LnNvcnRDb250cm9sPy5zZXRWYWx1ZShjb250cm9sVmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TmV4dE9wdGlvbihkaXJlY3Rpb246IHN0cmluZykge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMub3JkZXJlZE9wdGlvbnMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbSA9PT0gZGlyZWN0aW9uKTtcbiAgICAgICAgY29uc3QgbmV3SW5kZXggPSAoaW5kZXggKyAxKSAlIHRoaXMub3JkZXJlZE9wdGlvbnM/Lmxlbmd0aDtcbiAgICAgICAgcmV0dXJuIHRoaXMub3JkZXJlZE9wdGlvbnM/LltuZXdJbmRleF0gPz8gbnVsbDtcbiAgICB9XG5cbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==
@@ -1,37 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, ContentChild, Input, TemplateRef, ViewEncapsulation } from '@angular/core';
2
- import { BbCollectionsInitial } from '../../directives/collections-initial.directive';
3
- import { BbCollectionsError } from '../../directives/collections-error.directive';
4
- import { BbCollectionsEmpty } from '../../directives/collections-empty.directive';
5
- import { BbCollectionsData } from '../../directives/collections-data.directive';
6
- import { AsyncPipe, NgTemplateOutlet } from '@angular/common';
7
- import * as i0 from "@angular/core";
8
- export class BbCollectionsViewer {
9
- // Content.
10
- dataTemplate;
11
- emptyTemplate;
12
- errorTemplate;
13
- initialTemplate;
14
- // Inputs.
15
- collection = null;
16
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbCollectionsViewer, deps: [], target: i0.ɵɵFactoryTarget.Component });
17
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: BbCollectionsViewer, isStandalone: true, selector: "[bb-collections-viewer]", inputs: { collection: "collection" }, host: { classAttribute: "bb-collections-viewer" }, queries: [{ propertyName: "dataTemplate", first: true, predicate: BbCollectionsData, descendants: true, read: TemplateRef }, { propertyName: "emptyTemplate", first: true, predicate: BbCollectionsEmpty, descendants: true, read: TemplateRef }, { propertyName: "errorTemplate", first: true, predicate: BbCollectionsError, descendants: true, read: TemplateRef }, { propertyName: "initialTemplate", first: true, predicate: BbCollectionsInitial, descendants: true, read: TemplateRef }], ngImport: i0, template: "@if (collection?.data$ | async; as data) {\n @switch (data?.state) {\n @case ('initial') {\n <ng-container *ngTemplateOutlet=\"initialTemplate\"></ng-container>\n }\n @case ('empty') {\n <ng-container\n *ngTemplateOutlet=\"emptyTemplate; context: {query: data?.request?.query, loading: data?.loading}\"></ng-container>\n }\n @case ('error') {\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: {error: data?.error, loading: data?.loading}\"></ng-container>\n }\n @default {\n <ng-container\n *ngTemplateOutlet=\"dataTemplate; context: {items: data?.response?.data, loading: data?.loading}\"></ng-container>\n }\n }\n}\n", styles: [".bb-collections-viewer{display:block}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
18
- }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbCollectionsViewer, decorators: [{
20
- type: Component,
21
- args: [{ selector: '[bb-collections-viewer]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'class': 'bb-collections-viewer' }, preserveWhitespaces: false, standalone: true, imports: [AsyncPipe, NgTemplateOutlet], template: "@if (collection?.data$ | async; as data) {\n @switch (data?.state) {\n @case ('initial') {\n <ng-container *ngTemplateOutlet=\"initialTemplate\"></ng-container>\n }\n @case ('empty') {\n <ng-container\n *ngTemplateOutlet=\"emptyTemplate; context: {query: data?.request?.query, loading: data?.loading}\"></ng-container>\n }\n @case ('error') {\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: {error: data?.error, loading: data?.loading}\"></ng-container>\n }\n @default {\n <ng-container\n *ngTemplateOutlet=\"dataTemplate; context: {items: data?.response?.data, loading: data?.loading}\"></ng-container>\n }\n }\n}\n", styles: [".bb-collections-viewer{display:block}\n"] }]
22
- }], propDecorators: { dataTemplate: [{
23
- type: ContentChild,
24
- args: [BbCollectionsData, { read: TemplateRef, static: false }]
25
- }], emptyTemplate: [{
26
- type: ContentChild,
27
- args: [BbCollectionsEmpty, { read: TemplateRef, static: false }]
28
- }], errorTemplate: [{
29
- type: ContentChild,
30
- args: [BbCollectionsError, { read: TemplateRef, static: false }]
31
- }], initialTemplate: [{
32
- type: ContentChild,
33
- args: [BbCollectionsInitial, { read: TemplateRef, static: false }]
34
- }], collection: [{
35
- type: Input
36
- }] } });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbnMtdmlld2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vY29sbGVjdGlvbnMvc3JjL2xpYi9jb21wb25lbnRzL2NvbGxlY3Rpb25zLXZpZXdlci9jb2xsZWN0aW9ucy12aWV3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb2xsZWN0aW9ucy9zcmMvbGliL2NvbXBvbmVudHMvY29sbGVjdGlvbnMtdmlld2VyL2NvbGxlY3Rpb25zLXZpZXdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3RILE9BQU8sRUFBQyxvQkFBb0IsRUFBOEIsTUFBTSxnREFBZ0QsQ0FBQztBQUNqSCxPQUFPLEVBQUMsa0JBQWtCLEVBQTRCLE1BQU0sOENBQThDLENBQUM7QUFDM0csT0FBTyxFQUFDLGtCQUFrQixFQUE0QixNQUFNLDhDQUE4QyxDQUFDO0FBQzNHLE9BQU8sRUFBQyxpQkFBaUIsRUFBMkIsTUFBTSw2Q0FBNkMsQ0FBQztBQUN4RyxPQUFPLEVBQUMsU0FBUyxFQUFFLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7O0FBYzVELE1BQU0sT0FBTyxtQkFBbUI7SUFFNUIsV0FBVztJQUMwRCxZQUFZLENBQTRDO0lBQ3ZELGFBQWEsQ0FBNkM7SUFDMUQsYUFBYSxDQUE2QztJQUN4RCxlQUFlLENBQStDO0lBRXRJLFVBQVU7SUFDRCxVQUFVLEdBQXlCLElBQUksQ0FBQzt3R0FUeEMsbUJBQW1COzRGQUFuQixtQkFBbUIsc05BR2QsaUJBQWlCLDJCQUFTLFdBQVcsNkRBQ3JDLGtCQUFrQiwyQkFBUyxXQUFXLDZEQUN0QyxrQkFBa0IsMkJBQVMsV0FBVywrREFDdEMsb0JBQW9CLDJCQUFTLFdBQVcsNkJDekIxRCwrd0JBbUJBLDRGREZjLFNBQVMsOENBQUUsZ0JBQWdCOzs0RkFFNUIsbUJBQW1CO2tCQVgvQixTQUFTOytCQUNJLHlCQUF5QixtQkFHbEIsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQixFQUFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBQyx1QkFDbkIsS0FBSyxjQUNkLElBQUksV0FDUCxDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQzs4QkFLK0IsWUFBWTtzQkFBaEYsWUFBWTt1QkFBQyxpQkFBaUIsRUFBRSxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFDRyxhQUFhO3NCQUFsRixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUNFLGFBQWE7c0JBQWxGLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBQ0ksZUFBZTtzQkFBdEYsWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFHN0QsVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBJbnB1dCwgVGVtcGxhdGVSZWYsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmJDb2xsZWN0aW9uc0luaXRpYWwsIEJiQ29sbGVjdGlvbnNJbml0aWFsQ29udGV4dH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9jb2xsZWN0aW9ucy1pbml0aWFsLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0JiQ29sbGVjdGlvbnNFcnJvciwgQmJDb2xsZWN0aW9uc0Vycm9yQ29udGV4dH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9jb2xsZWN0aW9ucy1lcnJvci5kaXJlY3RpdmUnO1xuaW1wb3J0IHtCYkNvbGxlY3Rpb25zRW1wdHksIEJiQ29sbGVjdGlvbnNFbXB0eUNvbnRleHR9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvY29sbGVjdGlvbnMtZW1wdHkuZGlyZWN0aXZlJztcbmltcG9ydCB7QmJDb2xsZWN0aW9uc0RhdGEsIEJiQ29sbGVjdGlvbnNEYXRhQ29udGV4dH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9jb2xsZWN0aW9ucy1kYXRhLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0FzeW5jUGlwZSwgTmdUZW1wbGF0ZU91dGxldH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q29sbGVjdGlvbn0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW2JiLWNvbGxlY3Rpb25zLXZpZXdlcl0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2xsZWN0aW9ucy12aWV3ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NvbGxlY3Rpb25zLXZpZXdlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDogeydjbGFzcyc6ICdiYi1jb2xsZWN0aW9ucy12aWV3ZXInfSxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtBc3luY1BpcGUsIE5nVGVtcGxhdGVPdXRsZXRdXG59KVxuZXhwb3J0IGNsYXNzIEJiQ29sbGVjdGlvbnNWaWV3ZXI8VCA9IHVua25vd24+IHtcblxuICAgIC8vIENvbnRlbnQuXG4gICAgQENvbnRlbnRDaGlsZChCYkNvbGxlY3Rpb25zRGF0YSwge3JlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IGZhbHNlfSkgZGF0YVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8QmJDb2xsZWN0aW9uc0RhdGFDb250ZXh0PFQ+PjtcbiAgICBAQ29udGVudENoaWxkKEJiQ29sbGVjdGlvbnNFbXB0eSwge3JlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IGZhbHNlfSkgZW1wdHlUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPEJiQ29sbGVjdGlvbnNFbXB0eUNvbnRleHQ8VD4+O1xuICAgIEBDb250ZW50Q2hpbGQoQmJDb2xsZWN0aW9uc0Vycm9yLCB7cmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogZmFsc2V9KSBlcnJvclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8QmJDb2xsZWN0aW9uc0Vycm9yQ29udGV4dDxUPj47XG4gICAgQENvbnRlbnRDaGlsZChCYkNvbGxlY3Rpb25zSW5pdGlhbCwge3JlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IGZhbHNlfSkgaW5pdGlhbFRlbXBsYXRlPzogVGVtcGxhdGVSZWY8QmJDb2xsZWN0aW9uc0luaXRpYWxDb250ZXh0PFQ+PjtcblxuICAgIC8vIElucHV0cy5cbiAgICBASW5wdXQoKSBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uPFQ+IHwgbnVsbCA9IG51bGw7XG5cbn1cbiIsIkBpZiAoY29sbGVjdGlvbj8uZGF0YSQgfCBhc3luYzsgYXMgZGF0YSkge1xuICAgIEBzd2l0Y2ggKGRhdGE/LnN0YXRlKSB7XG4gICAgICAgIEBjYXNlICgnaW5pdGlhbCcpIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbml0aWFsVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfVxuICAgICAgICBAY2FzZSAoJ2VtcHR5Jykge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiZW1wdHlUZW1wbGF0ZTsgY29udGV4dDoge3F1ZXJ5OiBkYXRhPy5yZXF1ZXN0Py5xdWVyeSwgbG9hZGluZzogZGF0YT8ubG9hZGluZ31cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfVxuICAgICAgICBAY2FzZSAoJ2Vycm9yJykge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiZXJyb3JUZW1wbGF0ZTsgY29udGV4dDoge2Vycm9yOiBkYXRhPy5lcnJvciwgbG9hZGluZzogZGF0YT8ubG9hZGluZ31cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfVxuICAgICAgICBAZGVmYXVsdCB7XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkYXRhVGVtcGxhdGU7IGNvbnRleHQ6IHtpdGVtczogZGF0YT8ucmVzcG9uc2U/LmRhdGEsIGxvYWRpbmc6IGRhdGE/LmxvYWRpbmd9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=