@bravobit/bb-foundation 0.20.2 → 0.21.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. package/auth/{bravobit-bb-foundation-auth.d.ts → index.d.ts} +0 -0
  2. package/auth/lib/directives/authenticated.directive.d.ts +1 -1
  3. package/auth/lib/directives/permission.directive.d.ts +1 -1
  4. package/auth/lib/directives/role.directive.d.ts +1 -1
  5. package/collections/{bravobit-bb-foundation-collections.d.ts → index.d.ts} +0 -0
  6. package/collections/lib/collection.d.ts +6 -6
  7. package/collections/lib/components/collections-pager/collections-pager.component.d.ts +1 -1
  8. package/collections/lib/components/collections-viewer/collections-viewer.component.d.ts +1 -1
  9. package/collections/lib/components/collections.directive.d.ts +4 -4
  10. package/controls/{bravobit-bb-foundation-controls.d.ts → index.d.ts} +0 -0
  11. package/controls/lib/checkbox/checkbox/checkbox.component.d.ts +10 -10
  12. package/controls/lib/checkbox/checkbox-group/checkbox-group.component.d.ts +9 -5
  13. package/dashboard/{bravobit-bb-foundation-dashboard.d.ts → index.d.ts} +0 -0
  14. package/dashboard/lib/dashboard/dashboard.component.d.ts +1 -1
  15. package/dashboard/lib/dashboard-header/dashboard-header.component.d.ts +1 -1
  16. package/dashboard/lib/dashboard-menu/dashboard-menu.component.d.ts +1 -1
  17. package/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.d.ts +1 -1
  18. package/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.d.ts +1 -1
  19. package/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.d.ts +1 -1
  20. package/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.d.ts +1 -1
  21. package/dialog/{bravobit-bb-foundation-dialog.d.ts → index.d.ts} +0 -0
  22. package/dialog/lib/dialog-actions/dialog-actions.component.d.ts +1 -1
  23. package/dialog/lib/dialog-confirm/dialog-confirm.component.d.ts +1 -1
  24. package/dialog/lib/dialog-container/dialog-container.component.d.ts +1 -1
  25. package/dialog/lib/dialog-header/dialog-header.component.d.ts +1 -1
  26. package/dialog/lib/dialog-link/dialog-link.component.d.ts +1 -1
  27. package/dialog/lib/dialog-modal/dialog-modal.component.d.ts +1 -1
  28. package/dialog/lib/dialog-overlay/dialog-overlay.component.d.ts +1 -1
  29. package/dialog/lib/dialog.insertion.d.ts +1 -1
  30. package/elements/{bravobit-bb-foundation-elements.d.ts → index.d.ts} +0 -0
  31. package/elements/lib/avatar/avatar.component.d.ts +1 -1
  32. package/elements/lib/button/button.component.d.ts +2 -2
  33. package/elements/lib/checkbox/checkbox.component.d.ts +1 -1
  34. package/elements/lib/date-picker/date-picker.component.d.ts +2 -2
  35. package/elements/lib/directives/addon.directive.d.ts +2 -2
  36. package/elements/lib/directives/autosize.directive.d.ts +1 -1
  37. package/elements/lib/directives/focus-trap.directive.d.ts +1 -1
  38. package/elements/lib/directives/focus.directive.d.ts +1 -1
  39. package/elements/lib/directives/form-submit.directive.d.ts +1 -1
  40. package/elements/lib/directives/input.directive.d.ts +2 -2
  41. package/elements/lib/directives/template.directive.d.ts +1 -1
  42. package/elements/lib/dropdown/dropdown.component.d.ts +2 -2
  43. package/elements/lib/file-picker/file-picker.component.d.ts +2 -2
  44. package/elements/lib/form-control/form-control.component.d.ts +1 -1
  45. package/elements/lib/form-error/form-error.component.d.ts +1 -1
  46. package/elements/lib/form-group/form-group.component.d.ts +1 -1
  47. package/elements/lib/icon/icon.component.d.ts +1 -1
  48. package/elements/lib/image-picker/image-picker.component.d.ts +1 -1
  49. package/elements/lib/pipes/file-image.pipe.d.ts +1 -1
  50. package/elements/lib/pipes/file-size.pipe.d.ts +1 -1
  51. package/elements/lib/pipes/relative-time.pipe.d.ts +1 -1
  52. package/elements/lib/spinner/spinner.component.d.ts +1 -1
  53. package/elements/lib/tag/tag.component.d.ts +1 -1
  54. package/esm2020/auth/lib/auth.interceptor.mjs +3 -3
  55. package/esm2020/auth/lib/auth.module.mjs +6 -6
  56. package/esm2020/auth/lib/auth.service.mjs +5 -5
  57. package/esm2020/auth/lib/directives/authenticated.directive.mjs +3 -3
  58. package/esm2020/auth/lib/directives/permission.directive.mjs +3 -3
  59. package/esm2020/auth/lib/directives/role.directive.mjs +3 -3
  60. package/esm2020/auth/lib/guards/anonymous.guard.mjs +3 -3
  61. package/esm2020/auth/lib/guards/authenticated.guard.mjs +3 -3
  62. package/esm2020/auth/lib/helpers/mapper.helper.mjs +3 -3
  63. package/esm2020/auth/lib/permissions.service.mjs +3 -3
  64. package/esm2020/collections/lib/collection.mjs +5 -5
  65. package/esm2020/collections/lib/collections.module.mjs +5 -5
  66. package/esm2020/collections/lib/components/collections-pager/collections-pager.component.mjs +3 -3
  67. package/esm2020/collections/lib/components/collections-viewer/collections-viewer.component.mjs +3 -3
  68. package/esm2020/collections/lib/components/collections.directive.mjs +12 -12
  69. package/esm2020/controls/lib/checkbox/checkbox/checkbox.component.mjs +6 -6
  70. package/esm2020/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +19 -6
  71. package/esm2020/controls/lib/checkbox/checkbox.module.mjs +5 -5
  72. package/esm2020/controls/lib/controls.module.mjs +5 -5
  73. package/esm2020/dashboard/lib/dashboard/dashboard.component.mjs +3 -3
  74. package/esm2020/dashboard/lib/dashboard-header/dashboard-header.component.mjs +3 -3
  75. package/esm2020/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +3 -3
  76. package/esm2020/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +3 -3
  77. package/esm2020/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +3 -3
  78. package/esm2020/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +5 -5
  79. package/esm2020/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +3 -3
  80. package/esm2020/dashboard/lib/dashboard.module.mjs +5 -5
  81. package/esm2020/dialog/lib/dialog-actions/dialog-actions.component.mjs +3 -3
  82. package/esm2020/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +8 -8
  83. package/esm2020/dialog/lib/dialog-container/dialog-container.component.mjs +4 -4
  84. package/esm2020/dialog/lib/dialog-header/dialog-header.component.mjs +3 -3
  85. package/esm2020/dialog/lib/dialog-link/dialog-link.component.mjs +3 -3
  86. package/esm2020/dialog/lib/dialog-modal/dialog-modal.component.mjs +3 -3
  87. package/esm2020/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +3 -3
  88. package/esm2020/dialog/lib/dialog.insertion.mjs +3 -3
  89. package/esm2020/dialog/lib/dialog.module.mjs +7 -9
  90. package/esm2020/dialog/lib/dialog.service.mjs +3 -3
  91. package/esm2020/elements/lib/avatar/avatar.component.mjs +3 -3
  92. package/esm2020/elements/lib/button/button.component.mjs +6 -6
  93. package/esm2020/elements/lib/checkbox/checkbox.component.mjs +5 -5
  94. package/esm2020/elements/lib/date-picker/date-picker.component.mjs +12 -12
  95. package/esm2020/elements/lib/directives/addon.directive.mjs +6 -6
  96. package/esm2020/elements/lib/directives/autosize.directive.mjs +3 -3
  97. package/esm2020/elements/lib/directives/focus-trap.directive.mjs +3 -3
  98. package/esm2020/elements/lib/directives/focus.directive.mjs +3 -3
  99. package/esm2020/elements/lib/directives/form-submit.directive.mjs +3 -3
  100. package/esm2020/elements/lib/directives/input.directive.mjs +6 -6
  101. package/esm2020/elements/lib/directives/template.directive.mjs +3 -3
  102. package/esm2020/elements/lib/dropdown/dropdown.component.mjs +7 -7
  103. package/esm2020/elements/lib/elements.module.mjs +5 -5
  104. package/esm2020/elements/lib/file-picker/file-picker.component.mjs +10 -10
  105. package/esm2020/elements/lib/form-control/form-control.component.mjs +6 -6
  106. package/esm2020/elements/lib/form-error/form-error.component.mjs +3 -3
  107. package/esm2020/elements/lib/form-group/form-group.component.mjs +3 -3
  108. package/esm2020/elements/lib/icon/icon.component.mjs +3 -3
  109. package/esm2020/elements/lib/image-picker/image-picker.component.mjs +5 -5
  110. package/esm2020/elements/lib/pipes/file-image.pipe.mjs +3 -3
  111. package/esm2020/elements/lib/pipes/file-size.pipe.mjs +3 -3
  112. package/esm2020/elements/lib/pipes/relative-time.pipe.mjs +3 -3
  113. package/esm2020/elements/lib/spinner/spinner.component.mjs +3 -3
  114. package/esm2020/elements/lib/tag/tag.component.mjs +3 -3
  115. package/esm2020/http/lib/http.module.mjs +5 -5
  116. package/esm2020/http/lib/interceptors/base-url.interceptor.mjs +3 -3
  117. package/esm2020/http/lib/interceptors/error.interceptor.mjs +3 -3
  118. package/esm2020/lib/core/services/clipboard.service.mjs +3 -3
  119. package/esm2020/lib/core/services/exif.service.mjs +3 -3
  120. package/esm2020/lib/core/services/file-loader.service.mjs +3 -3
  121. package/esm2020/lib/core/services/image-converter.service.mjs +3 -3
  122. package/esm2020/lib/core/services/languages.service.mjs +3 -3
  123. package/esm2020/lib/core/services/network.service.mjs +3 -3
  124. package/esm2020/lib/core/services/patch.service.mjs +3 -3
  125. package/esm2020/lib/core/services/platform.service.mjs +3 -3
  126. package/esm2020/localize/lib/localize.module.mjs +5 -5
  127. package/esm2020/localize/lib/localize.pipe.mjs +3 -3
  128. package/esm2020/localize/lib/localize.service.mjs +9 -7
  129. package/esm2020/localize/lib/views/localize-string/localize-string.component.mjs +3 -3
  130. package/esm2020/localize/lib/views/localize-template-or-string.directive.mjs +3 -3
  131. package/esm2020/localize/lib/views/localize-template.directive.mjs +3 -3
  132. package/esm2020/masking/bravobit-bb-foundation-masking.mjs +5 -0
  133. package/esm2020/masking/lib/input-mask.directive.mjs +110 -0
  134. package/esm2020/masking/lib/input-mask.interface.mjs +2 -0
  135. package/esm2020/masking/lib/masking.module.mjs +16 -0
  136. package/esm2020/masking/lib/masking.service.mjs +94 -0
  137. package/esm2020/masking/public_api.mjs +5 -0
  138. package/esm2020/notifications/lib/notifications-item/notifications-item.component.mjs +3 -3
  139. package/esm2020/notifications/lib/notifications-list/notifications-list.component.mjs +6 -6
  140. package/esm2020/notifications/lib/notifications.module.mjs +5 -5
  141. package/esm2020/notifications/lib/notifications.service.mjs +3 -3
  142. package/esm2020/recaptcha/lib/recaptcha/recaptcha.component.mjs +3 -3
  143. package/esm2020/recaptcha/lib/recaptcha-loader.service.mjs +3 -3
  144. package/esm2020/recaptcha/lib/recaptcha.module.mjs +4 -4
  145. package/esm2020/storage/lib/storage.service.mjs +8 -8
  146. package/esm2020/table/lib/components/table/table.component.mjs +14 -14
  147. package/esm2020/table/lib/components/table-cell/table-cell.component.mjs +3 -3
  148. package/esm2020/table/lib/components/table-header-cell/table-header-cell.component.mjs +4 -4
  149. package/esm2020/table/lib/components/table-pager/table-pager.component.mjs +6 -6
  150. package/esm2020/table/lib/table.module.mjs +5 -5
  151. package/esm2020/theming/bravobit-bb-foundation-theming.mjs +5 -0
  152. package/esm2020/theming/lib/themes/checkbox-group.theme.mjs +2 -0
  153. package/esm2020/theming/lib/themes/checkbox.theme.mjs +2 -0
  154. package/esm2020/theming/lib/theming.interface.mjs +3 -0
  155. package/esm2020/theming/lib/theming.module.mjs +38 -0
  156. package/esm2020/theming/lib/theming.service.mjs +100 -0
  157. package/esm2020/theming/public_api.mjs +4 -0
  158. package/fesm2015/bravobit-bb-foundation-auth.mjs +33 -33
  159. package/fesm2015/bravobit-bb-foundation-auth.mjs.map +1 -1
  160. package/fesm2015/bravobit-bb-foundation-collections.mjs +26 -26
  161. package/fesm2015/bravobit-bb-foundation-collections.mjs.map +1 -1
  162. package/fesm2015/bravobit-bb-foundation-controls.mjs +31 -18
  163. package/fesm2015/bravobit-bb-foundation-controls.mjs.map +1 -1
  164. package/fesm2015/bravobit-bb-foundation-dashboard.mjs +26 -26
  165. package/fesm2015/bravobit-bb-foundation-dashboard.mjs.map +1 -1
  166. package/fesm2015/bravobit-bb-foundation-dialog.mjs +34 -36
  167. package/fesm2015/bravobit-bb-foundation-dialog.mjs.map +1 -1
  168. package/fesm2015/bravobit-bb-foundation-elements.mjs +143 -143
  169. package/fesm2015/bravobit-bb-foundation-elements.mjs.map +1 -1
  170. package/fesm2015/bravobit-bb-foundation-http.mjs +10 -10
  171. package/fesm2015/bravobit-bb-foundation-http.mjs.map +1 -1
  172. package/fesm2015/bravobit-bb-foundation-localize.mjs +26 -24
  173. package/fesm2015/bravobit-bb-foundation-localize.mjs.map +1 -1
  174. package/fesm2015/bravobit-bb-foundation-masking.mjs +235 -0
  175. package/fesm2015/bravobit-bb-foundation-masking.mjs.map +1 -0
  176. package/fesm2015/bravobit-bb-foundation-notifications.mjs +14 -14
  177. package/fesm2015/bravobit-bb-foundation-notifications.mjs.map +1 -1
  178. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs +10 -10
  179. package/fesm2015/bravobit-bb-foundation-storage.mjs +7 -7
  180. package/fesm2015/bravobit-bb-foundation-storage.mjs.map +1 -1
  181. package/fesm2015/bravobit-bb-foundation-table.mjs +27 -27
  182. package/fesm2015/bravobit-bb-foundation-table.mjs.map +1 -1
  183. package/fesm2015/bravobit-bb-foundation-theming.mjs +153 -0
  184. package/fesm2015/bravobit-bb-foundation-theming.mjs.map +1 -0
  185. package/fesm2015/bravobit-bb-foundation.mjs +24 -24
  186. package/fesm2020/bravobit-bb-foundation-auth.mjs +33 -33
  187. package/fesm2020/bravobit-bb-foundation-auth.mjs.map +1 -1
  188. package/fesm2020/bravobit-bb-foundation-collections.mjs +26 -26
  189. package/fesm2020/bravobit-bb-foundation-collections.mjs.map +1 -1
  190. package/fesm2020/bravobit-bb-foundation-controls.mjs +31 -18
  191. package/fesm2020/bravobit-bb-foundation-controls.mjs.map +1 -1
  192. package/fesm2020/bravobit-bb-foundation-dashboard.mjs +26 -26
  193. package/fesm2020/bravobit-bb-foundation-dashboard.mjs.map +1 -1
  194. package/fesm2020/bravobit-bb-foundation-dialog.mjs +34 -36
  195. package/fesm2020/bravobit-bb-foundation-dialog.mjs.map +1 -1
  196. package/fesm2020/bravobit-bb-foundation-elements.mjs +143 -143
  197. package/fesm2020/bravobit-bb-foundation-elements.mjs.map +1 -1
  198. package/fesm2020/bravobit-bb-foundation-http.mjs +10 -10
  199. package/fesm2020/bravobit-bb-foundation-http.mjs.map +1 -1
  200. package/fesm2020/bravobit-bb-foundation-localize.mjs +24 -22
  201. package/fesm2020/bravobit-bb-foundation-localize.mjs.map +1 -1
  202. package/fesm2020/bravobit-bb-foundation-masking.mjs +223 -0
  203. package/fesm2020/bravobit-bb-foundation-masking.mjs.map +1 -0
  204. package/fesm2020/bravobit-bb-foundation-notifications.mjs +14 -14
  205. package/fesm2020/bravobit-bb-foundation-notifications.mjs.map +1 -1
  206. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs +10 -10
  207. package/fesm2020/bravobit-bb-foundation-storage.mjs +7 -7
  208. package/fesm2020/bravobit-bb-foundation-storage.mjs.map +1 -1
  209. package/fesm2020/bravobit-bb-foundation-table.mjs +27 -27
  210. package/fesm2020/bravobit-bb-foundation-table.mjs.map +1 -1
  211. package/fesm2020/bravobit-bb-foundation-theming.mjs +143 -0
  212. package/fesm2020/bravobit-bb-foundation-theming.mjs.map +1 -0
  213. package/fesm2020/bravobit-bb-foundation.mjs +24 -24
  214. package/http/{bravobit-bb-foundation-http.d.ts → index.d.ts} +0 -0
  215. package/{bravobit-bb-foundation.d.ts → index.d.ts} +0 -0
  216. package/localize/{bravobit-bb-foundation-localize.d.ts → index.d.ts} +0 -0
  217. package/localize/lib/localize.pipe.d.ts +1 -1
  218. package/localize/lib/views/localize-string/localize-string.component.d.ts +1 -1
  219. package/localize/lib/views/localize-template-or-string.directive.d.ts +1 -1
  220. package/localize/lib/views/localize-template.directive.d.ts +1 -1
  221. package/masking/index.d.ts +5 -0
  222. package/masking/lib/input-mask.directive.d.ts +36 -0
  223. package/masking/lib/input-mask.interface.d.ts +20 -0
  224. package/masking/lib/masking.module.d.ts +7 -0
  225. package/masking/lib/masking.service.d.ts +12 -0
  226. package/masking/public_api.d.ts +4 -0
  227. package/notifications/{bravobit-bb-foundation-notifications.d.ts → index.d.ts} +0 -0
  228. package/notifications/lib/notifications-item/notifications-item.component.d.ts +1 -1
  229. package/notifications/lib/notifications-list/notifications-list.component.d.ts +1 -1
  230. package/package.json +36 -19
  231. package/recaptcha/{bravobit-bb-foundation-recaptcha.d.ts → index.d.ts} +0 -0
  232. package/recaptcha/lib/recaptcha/recaptcha.component.d.ts +1 -1
  233. package/rxjs/{bravobit-bb-foundation-rxjs.d.ts → index.d.ts} +0 -0
  234. package/storage/{bravobit-bb-foundation-storage.d.ts → index.d.ts} +0 -0
  235. package/table/{bravobit-bb-foundation-table.d.ts → index.d.ts} +0 -0
  236. package/table/lib/components/table/table.component.d.ts +7 -7
  237. package/table/lib/components/table-cell/table-cell.component.d.ts +1 -1
  238. package/table/lib/components/table-header-cell/table-header-cell.component.d.ts +1 -1
  239. package/table/lib/components/table-pager/table-pager.component.d.ts +1 -1
  240. package/theming/index.d.ts +5 -0
  241. package/theming/lib/themes/checkbox-group.theme.d.ts +5 -0
  242. package/theming/lib/themes/checkbox.theme.d.ts +19 -0
  243. package/theming/lib/theming.interface.d.ts +14 -0
  244. package/theming/lib/theming.module.d.ts +13 -0
  245. package/theming/lib/theming.service.d.ts +24 -0
  246. package/theming/public_api.d.ts +3 -0
  247. package/auth/package.json +0 -10
  248. package/collections/package.json +0 -10
  249. package/controls/package.json +0 -10
  250. package/dashboard/package.json +0 -10
  251. package/dialog/package.json +0 -10
  252. package/elements/package.json +0 -10
  253. package/http/package.json +0 -10
  254. package/localize/package.json +0 -10
  255. package/notifications/package.json +0 -10
  256. package/recaptcha/package.json +0 -10
  257. package/rxjs/package.json +0 -10
  258. package/storage/package.json +0 -10
  259. package/table/package.json +0 -10
@@ -102,9 +102,9 @@ class LocalCollectionProvider extends CollectionProvider {
102
102
 
103
103
  class BbCollectionsData {
104
104
  }
105
- BbCollectionsData.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BbCollectionsData, deps: [], target: i0.ɵɵFactoryTarget.Directive });
106
- BbCollectionsData.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.6", type: BbCollectionsData, selector: "[bbCollectionsData]", ngImport: i0 });
107
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BbCollectionsData, decorators: [{
105
+ BbCollectionsData.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbCollectionsData, deps: [], target: i0.ɵɵFactoryTarget.Directive });
106
+ BbCollectionsData.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.3", type: BbCollectionsData, selector: "[bbCollectionsData]", ngImport: i0 });
107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbCollectionsData, decorators: [{
108
108
  type: Directive,
109
109
  args: [{
110
110
  selector: '[bbCollectionsData]'
@@ -112,9 +112,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImpor
112
112
  }] });
113
113
  class BbCollectionsEmpty {
114
114
  }
115
- BbCollectionsEmpty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BbCollectionsEmpty, deps: [], target: i0.ɵɵFactoryTarget.Directive });
116
- BbCollectionsEmpty.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.6", type: BbCollectionsEmpty, selector: "[bbCollectionsEmpty]", ngImport: i0 });
117
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BbCollectionsEmpty, decorators: [{
115
+ BbCollectionsEmpty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbCollectionsEmpty, deps: [], target: i0.ɵɵFactoryTarget.Directive });
116
+ BbCollectionsEmpty.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.3", type: BbCollectionsEmpty, selector: "[bbCollectionsEmpty]", ngImport: i0 });
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbCollectionsEmpty, decorators: [{
118
118
  type: Directive,
119
119
  args: [{
120
120
  selector: '[bbCollectionsEmpty]'
@@ -122,9 +122,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImpor
122
122
  }] });
123
123
  class BbCollectionsError {
124
124
  }
125
- BbCollectionsError.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BbCollectionsError, deps: [], target: i0.ɵɵFactoryTarget.Directive });
126
- BbCollectionsError.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.6", type: BbCollectionsError, selector: "[bbCollectionsError]", ngImport: i0 });
127
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BbCollectionsError, decorators: [{
125
+ BbCollectionsError.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbCollectionsError, deps: [], target: i0.ɵɵFactoryTarget.Directive });
126
+ BbCollectionsError.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.3", type: BbCollectionsError, selector: "[bbCollectionsError]", ngImport: i0 });
127
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbCollectionsError, decorators: [{
128
128
  type: Directive,
129
129
  args: [{
130
130
  selector: '[bbCollectionsError]'
@@ -132,9 +132,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImpor
132
132
  }] });
133
133
  class BbCollectionsInitial {
134
134
  }
135
- BbCollectionsInitial.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BbCollectionsInitial, deps: [], target: i0.ɵɵFactoryTarget.Directive });
136
- BbCollectionsInitial.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.6", type: BbCollectionsInitial, selector: "[bbCollectionsInitial]", ngImport: i0 });
137
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BbCollectionsInitial, decorators: [{
135
+ BbCollectionsInitial.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbCollectionsInitial, deps: [], target: i0.ɵɵFactoryTarget.Directive });
136
+ BbCollectionsInitial.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.3", type: BbCollectionsInitial, selector: "[bbCollectionsInitial]", ngImport: i0 });
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbCollectionsInitial, decorators: [{
138
138
  type: Directive,
139
139
  args: [{
140
140
  selector: '[bbCollectionsInitial]'
@@ -147,9 +147,9 @@ class BbCollectionsViewer {
147
147
  this.collection = null;
148
148
  }
149
149
  }
150
- BbCollectionsViewer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BbCollectionsViewer, deps: [], target: i0.ɵɵFactoryTarget.Component });
151
- BbCollectionsViewer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.6", type: BbCollectionsViewer, 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: "<ng-container *ngIf=\"collection?.data$ | async as data\"\r\n [ngSwitch]=\"data?.state\">\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"dataTemplate; context: {items: data?.response?.data}\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'initial'\">\r\n <ng-container *ngTemplateOutlet=\"initialTemplate\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'empty'\">\r\n <ng-container *ngTemplateOutlet=\"emptyTemplate; context: {query: data?.request?.query}\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'error'\">\r\n <ng-container *ngTemplateOutlet=\"errorTemplate; context: {error: data?.error}\"></ng-container>\r\n </ng-container>\r\n</ng-container>\r\n", styles: [".bb-collections-viewer{display:block}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "async": i1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
152
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BbCollectionsViewer, decorators: [{
150
+ BbCollectionsViewer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbCollectionsViewer, deps: [], target: i0.ɵɵFactoryTarget.Component });
151
+ BbCollectionsViewer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: BbCollectionsViewer, 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: "<ng-container *ngIf=\"collection?.data$ | async as data\"\r\n [ngSwitch]=\"data?.state\">\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"dataTemplate; context: {items: data?.response?.data}\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'initial'\">\r\n <ng-container *ngTemplateOutlet=\"initialTemplate\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'empty'\">\r\n <ng-container *ngTemplateOutlet=\"emptyTemplate; context: {query: data?.request?.query}\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'error'\">\r\n <ng-container *ngTemplateOutlet=\"errorTemplate; context: {error: data?.error}\"></ng-container>\r\n </ng-container>\r\n</ng-container>\r\n", styles: [".bb-collections-viewer{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
152
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbCollectionsViewer, decorators: [{
153
153
  type: Component,
154
154
  args: [{ selector: '[bb-collections-viewer]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'class': 'bb-collections-viewer' }, preserveWhitespaces: false, template: "<ng-container *ngIf=\"collection?.data$ | async as data\"\r\n [ngSwitch]=\"data?.state\">\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"dataTemplate; context: {items: data?.response?.data}\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'initial'\">\r\n <ng-container *ngTemplateOutlet=\"initialTemplate\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'empty'\">\r\n <ng-container *ngTemplateOutlet=\"emptyTemplate; context: {query: data?.request?.query}\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'error'\">\r\n <ng-container *ngTemplateOutlet=\"errorTemplate; context: {error: data?.error}\"></ng-container>\r\n </ng-container>\r\n</ng-container>\r\n", styles: [".bb-collections-viewer{display:block}\n"] }]
155
155
  }], propDecorators: { dataTemplate: [{
@@ -275,9 +275,9 @@ class BbCollectionsPager {
275
275
  .map(page => ({ page, active: pageNumber === page }));
276
276
  }
277
277
  }
278
- BbCollectionsPager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BbCollectionsPager, deps: [], target: i0.ɵɵFactoryTarget.Component });
279
- BbCollectionsPager.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.6", type: BbCollectionsPager, selector: "bb-collections-pager", inputs: { label: "label", collection: "collection" }, host: { classAttribute: "bb-collections-pager" }, ngImport: i0, template: "<ng-container *ngIf=\"data$ | async as data\">\r\n <div [innerHTML]=\"data?.label\"\r\n class=\"bb-collections-pager-text\">\r\n </div>\r\n\r\n <div class=\"bb-collections-pager-container\">\r\n <ul class=\"bb-collections-pager-list\">\r\n <li class=\"bb-collections-pager-item\"\r\n title=\"Previous page\">\r\n <button [disabled]=\"!data?.allowPrevious\"\r\n (click)=\"setPage(data?.pageNumber - 1, data?.totalPages)\"\r\n class=\"bb-collections-pager-button arrow first\"\r\n type=\"button\">\r\n &#8592;\r\n </button>\r\n </li>\r\n <li *ngFor=\"let item of data?.pages\"\r\n [title]=\"'Page ' + item?.page\"\r\n class=\"bb-collections-pager-item\">\r\n <button [class.active]=\"item?.active\"\r\n (click)=\"setPage(item?.page, data?.totalPages)\"\r\n class=\"bb-collections-pager-button\"\r\n type=\"button\">\r\n {{ item?.page }}\r\n </button>\r\n </li>\r\n <li class=\"bb-collections-pager-item\"\r\n title=\"Next page\">\r\n <button [disabled]=\"!data?.allowNext\"\r\n (click)=\"setPage(data?.pageNumber + 1, data?.totalPages)\"\r\n class=\"bb-collections-pager-button arrow last\"\r\n type=\"button\">\r\n &#8594;\r\n </button>\r\n </li>\r\n </ul>\r\n </div>\r\n</ng-container>\r\n", styles: [".bb-collections-pager{display:flex;align-items:center;flex-direction:column-reverse}.bb-collections-pager-text{display:block;margin-top:10px}.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;border-radius:6px;align-items:center;background-color:#fff;border:1px solid rgba(67,90,111,.3);box-shadow:#435a6f24 0 1px 2px inset}.bb-collections-pager-item:not(:last-child){border-right:1px solid #cccccc}.bb-collections-pager-button{height:34px;border:none;display:flex;padding:0 4px;min-width:40px;-webkit-appearance:none;appearance:none;min-height:34px;-webkit-user-select:none;user-select:none;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{color:#1565c0;font-weight:500}.bb-collections-pager-button:hover,.bb-collections-pager-button:focus{background-color:#1565c00d}.bb-collections-pager-button:active,.bb-collections-pager-button.active{background-color:#1565c033}.bb-collections-pager-button:not(.arrow):hover,.bb-collections-pager-button:not(.arrow):focus{outline:1px solid rgba(21,101,192,.5)}.bb-collections-pager-button:not(.arrow):focus,.bb-collections-pager-button:not(.arrow):active{outline:1px solid #1565c0;box-shadow:#1565c066 0 0 0 3px}.bb-collections-pager-button:not(.arrow).active{outline:1px solid #1565c0}.bb-collections-pager-button.arrow{font-weight:500}.bb-collections-pager-button.arrow.first{border-top-left-radius:2px;border-bottom-left-radius:2px}.bb-collections-pager-button.arrow.last{border-top-right-radius:2px;border-bottom-right-radius:2px}.bb-collections-pager-button:disabled{color:#000;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"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
280
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BbCollectionsPager, decorators: [{
278
+ BbCollectionsPager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbCollectionsPager, deps: [], target: i0.ɵɵFactoryTarget.Component });
279
+ BbCollectionsPager.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: BbCollectionsPager, selector: "bb-collections-pager", inputs: { label: "label", collection: "collection" }, host: { classAttribute: "bb-collections-pager" }, ngImport: i0, template: "<ng-container *ngIf=\"data$ | async as data\">\r\n <div [innerHTML]=\"data?.label\"\r\n class=\"bb-collections-pager-text\">\r\n </div>\r\n\r\n <div class=\"bb-collections-pager-container\">\r\n <ul class=\"bb-collections-pager-list\">\r\n <li class=\"bb-collections-pager-item\"\r\n title=\"Previous page\">\r\n <button [disabled]=\"!data?.allowPrevious\"\r\n (click)=\"setPage(data?.pageNumber - 1, data?.totalPages)\"\r\n class=\"bb-collections-pager-button arrow first\"\r\n type=\"button\">\r\n &#8592;\r\n </button>\r\n </li>\r\n <li *ngFor=\"let item of data?.pages\"\r\n [title]=\"'Page ' + item?.page\"\r\n class=\"bb-collections-pager-item\">\r\n <button [class.active]=\"item?.active\"\r\n (click)=\"setPage(item?.page, data?.totalPages)\"\r\n class=\"bb-collections-pager-button\"\r\n type=\"button\">\r\n {{ item?.page }}\r\n </button>\r\n </li>\r\n <li class=\"bb-collections-pager-item\"\r\n title=\"Next page\">\r\n <button [disabled]=\"!data?.allowNext\"\r\n (click)=\"setPage(data?.pageNumber + 1, data?.totalPages)\"\r\n class=\"bb-collections-pager-button arrow last\"\r\n type=\"button\">\r\n &#8594;\r\n </button>\r\n </li>\r\n </ul>\r\n </div>\r\n</ng-container>\r\n", styles: [".bb-collections-pager{display:flex;align-items:center;flex-direction:column-reverse}.bb-collections-pager-text{display:block;margin-top:10px}.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;border-radius:6px;align-items:center;background-color:#fff;border:1px solid rgba(67,90,111,.3);box-shadow:#435a6f24 0 1px 2px inset}.bb-collections-pager-item:not(:last-child){border-right:1px solid #cccccc}.bb-collections-pager-button{height:34px;border:none;display:flex;padding:0 4px;min-width:40px;-webkit-appearance:none;appearance:none;min-height:34px;-webkit-user-select:none;user-select:none;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{color:#1565c0;font-weight:500}.bb-collections-pager-button:hover,.bb-collections-pager-button:focus{background-color:#1565c00d}.bb-collections-pager-button:active,.bb-collections-pager-button.active{background-color:#1565c033}.bb-collections-pager-button:not(.arrow):hover,.bb-collections-pager-button:not(.arrow):focus{outline:1px solid rgba(21,101,192,.5)}.bb-collections-pager-button:not(.arrow):focus,.bb-collections-pager-button:not(.arrow):active{outline:1px solid #1565c0;box-shadow:#1565c066 0 0 0 3px}.bb-collections-pager-button:not(.arrow).active{outline:1px solid #1565c0}.bb-collections-pager-button.arrow{font-weight:500}.bb-collections-pager-button.arrow.first{border-top-left-radius:2px;border-bottom-left-radius:2px}.bb-collections-pager-button.arrow.last{border-top-right-radius:2px;border-bottom-right-radius:2px}.bb-collections-pager-button:disabled{color:#000;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: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
280
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbCollectionsPager, decorators: [{
281
281
  type: Component,
282
282
  args: [{ selector: 'bb-collections-pager', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'class': 'bb-collections-pager' }, preserveWhitespaces: false, template: "<ng-container *ngIf=\"data$ | async as data\">\r\n <div [innerHTML]=\"data?.label\"\r\n class=\"bb-collections-pager-text\">\r\n </div>\r\n\r\n <div class=\"bb-collections-pager-container\">\r\n <ul class=\"bb-collections-pager-list\">\r\n <li class=\"bb-collections-pager-item\"\r\n title=\"Previous page\">\r\n <button [disabled]=\"!data?.allowPrevious\"\r\n (click)=\"setPage(data?.pageNumber - 1, data?.totalPages)\"\r\n class=\"bb-collections-pager-button arrow first\"\r\n type=\"button\">\r\n &#8592;\r\n </button>\r\n </li>\r\n <li *ngFor=\"let item of data?.pages\"\r\n [title]=\"'Page ' + item?.page\"\r\n class=\"bb-collections-pager-item\">\r\n <button [class.active]=\"item?.active\"\r\n (click)=\"setPage(item?.page, data?.totalPages)\"\r\n class=\"bb-collections-pager-button\"\r\n type=\"button\">\r\n {{ item?.page }}\r\n </button>\r\n </li>\r\n <li class=\"bb-collections-pager-item\"\r\n title=\"Next page\">\r\n <button [disabled]=\"!data?.allowNext\"\r\n (click)=\"setPage(data?.pageNumber + 1, data?.totalPages)\"\r\n class=\"bb-collections-pager-button arrow last\"\r\n type=\"button\">\r\n &#8594;\r\n </button>\r\n </li>\r\n </ul>\r\n </div>\r\n</ng-container>\r\n", styles: [".bb-collections-pager{display:flex;align-items:center;flex-direction:column-reverse}.bb-collections-pager-text{display:block;margin-top:10px}.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;border-radius:6px;align-items:center;background-color:#fff;border:1px solid rgba(67,90,111,.3);box-shadow:#435a6f24 0 1px 2px inset}.bb-collections-pager-item:not(:last-child){border-right:1px solid #cccccc}.bb-collections-pager-button{height:34px;border:none;display:flex;padding:0 4px;min-width:40px;-webkit-appearance:none;appearance:none;min-height:34px;-webkit-user-select:none;user-select:none;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{color:#1565c0;font-weight:500}.bb-collections-pager-button:hover,.bb-collections-pager-button:focus{background-color:#1565c00d}.bb-collections-pager-button:active,.bb-collections-pager-button.active{background-color:#1565c033}.bb-collections-pager-button:not(.arrow):hover,.bb-collections-pager-button:not(.arrow):focus{outline:1px solid rgba(21,101,192,.5)}.bb-collections-pager-button:not(.arrow):focus,.bb-collections-pager-button:not(.arrow):active{outline:1px solid #1565c0;box-shadow:#1565c066 0 0 0 3px}.bb-collections-pager-button:not(.arrow).active{outline:1px solid #1565c0}.bb-collections-pager-button.arrow{font-weight:500}.bb-collections-pager-button.arrow.first{border-top-left-radius:2px;border-bottom-left-radius:2px}.bb-collections-pager-button.arrow.last{border-top-right-radius:2px;border-bottom-right-radius:2px}.bb-collections-pager-button:disabled{color:#000;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"] }]
283
283
  }], propDecorators: { label: [{
@@ -351,16 +351,16 @@ class Collection {
351
351
  }
352
352
  getState(data) {
353
353
  if (!!data?.error) {
354
- return "error" /* Error */;
354
+ return "error" /* CollectionState.Error */;
355
355
  }
356
356
  if (!!data?.initial) {
357
- return "initial" /* Initial */;
357
+ return "initial" /* CollectionState.Initial */;
358
358
  }
359
359
  const count = data?.response?.data?.length ?? 0;
360
360
  if (count <= 0) {
361
- return "empty" /* Empty */;
361
+ return "empty" /* CollectionState.Empty */;
362
362
  }
363
- return "data" /* Data */;
363
+ return "data" /* CollectionState.Data */;
364
364
  }
365
365
  cacheCollectionData(data) {
366
366
  this.raw$.next(data);
@@ -387,8 +387,8 @@ class Collection {
387
387
 
388
388
  class CollectionsModule {
389
389
  }
390
- CollectionsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: CollectionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
391
- CollectionsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: CollectionsModule, declarations: [
390
+ CollectionsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: CollectionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
391
+ CollectionsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.3", ngImport: i0, type: CollectionsModule, declarations: [
392
392
  // Components.
393
393
  BbCollectionsViewer,
394
394
  BbCollectionsPager,
@@ -405,8 +405,8 @@ CollectionsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versi
405
405
  BbCollectionsEmpty,
406
406
  BbCollectionsError,
407
407
  BbCollectionsInitial] });
408
- CollectionsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: CollectionsModule, imports: [[CommonModule]] });
409
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: CollectionsModule, decorators: [{
408
+ CollectionsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: CollectionsModule, imports: [CommonModule] });
409
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: CollectionsModule, decorators: [{
410
410
  type: NgModule,
411
411
  args: [{
412
412
  imports: [CommonModule],
@@ -1 +1 @@
1
- {"version":3,"file":"bravobit-bb-foundation-collections.mjs","sources":["../../../projects/bb-foundation/collections/src/lib/providers/collection.provider.ts","../../../projects/bb-foundation/collections/src/lib/providers/api-collection.provider.ts","../../../projects/bb-foundation/collections/src/lib/providers/local-collection.provider.ts","../../../projects/bb-foundation/collections/src/lib/components/collections.directive.ts","../../../projects/bb-foundation/collections/src/lib/components/collections-viewer/collections-viewer.component.ts","../../../projects/bb-foundation/collections/src/lib/components/collections-viewer/collections-viewer.component.html","../../../projects/bb-foundation/collections/src/lib/components/collections-pager/collections-pager.component.ts","../../../projects/bb-foundation/collections/src/lib/components/collections-pager/collections-pager.component.html","../../../projects/bb-foundation/collections/src/lib/collection.ts","../../../projects/bb-foundation/collections/src/lib/collections.module.ts","../../../projects/bb-foundation/collections/src/bravobit-bb-foundation-collections.ts"],"sourcesContent":["import {CollectionData, CollectionRequest} from '../interfaces/collection.interface';\r\nimport {Observable} from 'rxjs';\r\n\r\nexport abstract class CollectionProvider<T> {\r\n\r\n abstract transform(request: CollectionRequest): Observable<CollectionData<T>>;\r\n\r\n protected formatArrayToCollectionData(items: T[]) {\r\n const count = items?.length ?? 1;\r\n return <CollectionData<T>>{\r\n pageSize: count,\r\n totalEntries: count,\r\n pageNumber: 1,\r\n totalPages: 1,\r\n data: items\r\n };\r\n }\r\n\r\n}\r\n","import {CollectionApiResponse, CollectionData, CollectionRequest} from '../interfaces/collection.interface';\r\nimport {combineLatest, isObservable, Observable, of} from 'rxjs';\r\nimport {CollectionProvider} from './collection.provider';\r\nimport {HttpClient} from '@angular/common/http';\r\nimport {map, switchMap} from 'rxjs/operators';\r\n\r\nexport class ApiCollectionProvider<T> extends CollectionProvider<T> {\r\n\r\n // State.\r\n protected extraParams: { [name: string]: Observable<string | number | boolean | ReadonlyArray<string | number | boolean>> } = {};\r\n\r\n constructor(protected readonly endpoint: string | Observable<string>,\r\n protected readonly httpClient: HttpClient) {\r\n super();\r\n }\r\n\r\n append(name: string, value: string | number | boolean | ReadonlyArray<string | number | boolean> | Observable<string | number | boolean | ReadonlyArray<string | number | boolean>>) {\r\n this.extraParams[name] = isObservable(value) ? value : of(value);\r\n return this;\r\n }\r\n\r\n transform(request: CollectionRequest) {\r\n const endpoint$ = isObservable(this.endpoint) ? this.endpoint : of(this.endpoint);\r\n const params = this.getBackendFormat(request);\r\n const extraParams$ = this.getExtraParams(this.extraParams);\r\n\r\n return combineLatest([endpoint$, extraParams$]).pipe(\r\n switchMap(([endpoint, extraParams]) => {\r\n return this.httpClient.get<CollectionApiResponse<T> | T[]>(endpoint, {\r\n params: {...params, ...extraParams}\r\n });\r\n }),\r\n map(response => this.formatToCollectionData(response))\r\n );\r\n }\r\n\r\n protected getExtraParams(params: { [name: string]: Observable<string | number | boolean | ReadonlyArray<string | number | boolean>> }) {\r\n const keys = Object.keys(params ?? {});\r\n if (keys.length <= 0) {\r\n return of({});\r\n }\r\n\r\n const observables$ = keys.map(key => params?.[key]);\r\n return combineLatest(observables$).pipe(\r\n map(data => {\r\n return data.reduce((previous, current, index) => {\r\n if (current === null || current === undefined) {\r\n return previous;\r\n }\r\n const key = keys?.[index];\r\n return {...previous, [key]: current};\r\n }, {});\r\n })\r\n );\r\n }\r\n\r\n protected formatToCollectionData(response: CollectionApiResponse<T> | T[]) {\r\n if (Array.isArray(response)) {\r\n return this.formatArrayToCollectionData(response);\r\n }\r\n\r\n return <CollectionData<T>>{\r\n pageSize: response?.page_size,\r\n pageNumber: response?.page_number,\r\n totalPages: response?.total_pages,\r\n totalEntries: response?.total_entries,\r\n data: response?.data\r\n };\r\n }\r\n\r\n protected getBackendFormat(request: CollectionRequest) {\r\n const params = {};\r\n\r\n params['page'] = request?.pageNumber ?? 1;\r\n params['page_size'] = request?.pageSize ?? 25;\r\n\r\n if (request?.sort) {\r\n const sort = Array.isArray(request?.sort) ? request?.sort : [request?.sort];\r\n const filteredSort = sort?.filter(item => !!item?.name && !!item?.direction);\r\n\r\n params['sort'] = filteredSort?.map(item => item?.name)?.join(',');\r\n params['sort_direction'] = filteredSort?.map(item => item?.direction)?.join(',');\r\n }\r\n\r\n if (request?.query && request?.query?.length > 0 && request?.queryFields && request?.queryFields?.length > 0) {\r\n params['query'] = request?.query;\r\n params['query_fields'] = request?.queryFields?.join(',');\r\n }\r\n\r\n return params;\r\n }\r\n\r\n}\r\n","import {CollectionRequest} from '../interfaces/collection.interface';\r\nimport {CollectionProvider} from './collection.provider';\r\nimport {Observable, of} from 'rxjs';\r\nimport {map} from 'rxjs/operators';\r\n\r\nexport class LocalCollectionProvider<T> extends CollectionProvider<T> {\r\n\r\n constructor(private readonly _items: T[] | Observable<T[]>) {\r\n super();\r\n }\r\n\r\n transform(request: CollectionRequest) {\r\n const items$ = Array.isArray(this._items)\r\n ? of(this._items)\r\n : this._items;\r\n\r\n return items$.pipe(\r\n map(items => this.formatArrayToCollectionData(items))\r\n );\r\n }\r\n\r\n}\r\n","import {Directive} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[bbCollectionsData]'\r\n})\r\nexport class BbCollectionsData<T> {\r\n}\r\n\r\n@Directive({\r\n selector: '[bbCollectionsEmpty]'\r\n})\r\nexport class BbCollectionsEmpty {\r\n}\r\n\r\n@Directive({\r\n selector: '[bbCollectionsError]'\r\n})\r\nexport class BbCollectionsError {\r\n}\r\n\r\n@Directive({\r\n selector: '[bbCollectionsInitial]'\r\n})\r\nexport class BbCollectionsInitial {\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChild,\r\n Input,\r\n TemplateRef,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {\r\n BbCollectionsData,\r\n BbCollectionsEmpty,\r\n BbCollectionsError,\r\n BbCollectionsInitial\r\n} from '../collections.directive';\r\nimport {Collection} from '../../collection';\r\n\r\n@Component({\r\n selector: '[bb-collections-viewer]',\r\n templateUrl: './collections-viewer.component.html',\r\n styleUrls: ['./collections-viewer.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: {'class': 'bb-collections-viewer'},\r\n preserveWhitespaces: false\r\n})\r\nexport class BbCollectionsViewer<T = unknown> {\r\n\r\n // Content.\r\n @ContentChild(BbCollectionsData, {read: TemplateRef, static: false}) dataTemplate?: TemplateRef<any>;\r\n @ContentChild(BbCollectionsEmpty, {read: TemplateRef, static: false}) emptyTemplate?: TemplateRef<any>;\r\n @ContentChild(BbCollectionsError, {read: TemplateRef, static: false}) errorTemplate?: TemplateRef<any>;\r\n @ContentChild(BbCollectionsInitial, {read: TemplateRef, static: false}) initialTemplate?: TemplateRef<any>;\r\n\r\n // Inputs.\r\n @Input() collection: Collection<T> | null = null;\r\n\r\n}\r\n","<ng-container *ngIf=\"collection?.data$ | async as data\"\r\n [ngSwitch]=\"data?.state\">\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"dataTemplate; context: {items: data?.response?.data}\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'initial'\">\r\n <ng-container *ngTemplateOutlet=\"initialTemplate\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'empty'\">\r\n <ng-container *ngTemplateOutlet=\"emptyTemplate; context: {query: data?.request?.query}\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'error'\">\r\n <ng-container *ngTemplateOutlet=\"errorTemplate; context: {error: data?.error}\"></ng-container>\r\n </ng-container>\r\n</ng-container>\r\n","import {ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit, ViewEncapsulation} from '@angular/core';\r\nimport {CollectionData} from '../../interfaces/collection.interface';\r\nimport {BehaviorSubject, Observable, Subscription} from 'rxjs';\r\nimport {Collection} from '../../collection';\r\nimport {map} from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'bb-collections-pager',\r\n templateUrl: './collections-pager.component.html',\r\n styleUrls: ['./collections-pager.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: {'class': 'bb-collections-pager'},\r\n preserveWhitespaces: false\r\n})\r\nexport class BbCollectionsPager implements OnInit, OnDestroy {\r\n\r\n // Readonly data.\r\n readonly maxAmountOfButtons: number = 5;\r\n\r\n // Inputs.\r\n @Input()\r\n set label(value: string) {\r\n this._label = value;\r\n this.cache$.next(this.cache$.getValue());\r\n }\r\n\r\n @Input()\r\n set collection(collection: Collection<unknown> | null) {\r\n this._collection = collection;\r\n this.observeCollectionChanges();\r\n }\r\n\r\n // Data.\r\n data$: Observable<{\r\n totalPages: number,\r\n pageNumber: number,\r\n pages: { page: number, active: boolean }[],\r\n allowNext: boolean\r\n allowPrevious: boolean,\r\n label: string\r\n }>;\r\n cache$ = new BehaviorSubject<Partial<CollectionData<unknown>>>({});\r\n\r\n // State and subscriptions.\r\n private _label: string | null = null;\r\n private _collection: Collection<unknown> | null = null;\r\n private _subscription: Subscription | null = null;\r\n\r\n ngOnInit() {\r\n this.data$ = this.cache$.pipe(\r\n map(cache => {\r\n const pageSize = cache?.pageSize ?? 1;\r\n const pageNumber = cache?.pageNumber ?? 1;\r\n\r\n const totalPages = Math.max(0, cache?.totalPages ?? 1);\r\n const totalEntries = Math.max(0, cache?.totalEntries ?? 0);\r\n const fromStart = Math.max(0, Math.min((pageSize * (pageNumber - 1)) + 1, totalEntries));\r\n const fromEnd = Math.max(0, Math.min((fromStart - 1) + pageSize, totalEntries));\r\n\r\n const pages = this.filterActivePages(pageNumber, totalPages);\r\n\r\n const allowNext = pageNumber < totalPages;\r\n const allowPrevious = pageNumber > 1;\r\n\r\n return {\r\n totalPages,\r\n pages,\r\n pageNumber,\r\n allowNext,\r\n allowPrevious,\r\n label: this.calculateLabel(fromStart, fromEnd, totalEntries)\r\n };\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this._subscription?.unsubscribe();\r\n }\r\n\r\n setPage(pageNumber: number, totalPages: number) {\r\n // Calculate the new value.\r\n const newValue = Math.min(\r\n totalPages,\r\n Math.max(1, pageNumber)\r\n );\r\n\r\n // Validate the value is actually different.\r\n const currentValue = this._collection?.pageNumberControl?.value;\r\n if (currentValue === newValue) {\r\n return;\r\n }\r\n\r\n this._collection?.pageNumberControl?.setValue(pageNumber);\r\n }\r\n\r\n private observeCollectionChanges() {\r\n if (!this._collection) {\r\n return;\r\n }\r\n\r\n if (this._subscription) {\r\n this._subscription?.unsubscribe();\r\n }\r\n\r\n const pageNumber = this._collection?.pageNumberControl?.value;\r\n const pageSize = this._collection?.pageSizeControl?.value;\r\n\r\n this.cache$.next({pageNumber, pageSize});\r\n\r\n this._subscription = this._collection.raw$.subscribe(data => {\r\n if (data) {\r\n this.cache$.next(data);\r\n }\r\n });\r\n }\r\n\r\n private calculateLabel(start: number, end: number, total: number) {\r\n const startPoint = '[start]';\r\n const endPoint = '[end]';\r\n const totalPoint = '[total]';\r\n const label = this._label ?? `Showing ${startPoint} to ${endPoint} of ${totalPoint} results`;\r\n\r\n return label\r\n .replace(startPoint, `<strong>${start}</strong>`)\r\n .replace(endPoint, `<strong>${end}</strong>`)\r\n .replace(totalPoint, `<strong>${total}</strong>`);\r\n }\r\n\r\n private calculatePages(pageNumber: number, totalPages: number) {\r\n const min = 1;\r\n const max = totalPages;\r\n const amount = Math.max(1, this.maxAmountOfButtons);\r\n\r\n const data = Array(amount)\r\n .fill(0)\r\n .map((_, index) => pageNumber + (index - 1));\r\n\r\n // Validate if the minimum value less than\r\n // the first value.\r\n if (data[0] < min) {\r\n return data.map(item => item + 1);\r\n }\r\n\r\n // Calculate the difference with the max\r\n // if this value is higher than 0 we should minus it.\r\n const lastValueInArray = data[data.length - 1];\r\n const differenceWithMax = lastValueInArray - max;\r\n if (differenceWithMax > 0) {\r\n return data.map(item => item - differenceWithMax);\r\n }\r\n\r\n // Just return the default data.\r\n return data;\r\n }\r\n\r\n private filterActivePages(pageNumber: number, totalPages: number) {\r\n return this.calculatePages(pageNumber, totalPages)\r\n .filter(page => page > 0 && page <= totalPages)\r\n .map(page => ({page, active: pageNumber === page}));\r\n }\r\n\r\n}\r\n","<ng-container *ngIf=\"data$ | async as data\">\r\n <div [innerHTML]=\"data?.label\"\r\n class=\"bb-collections-pager-text\">\r\n </div>\r\n\r\n <div class=\"bb-collections-pager-container\">\r\n <ul class=\"bb-collections-pager-list\">\r\n <li class=\"bb-collections-pager-item\"\r\n title=\"Previous page\">\r\n <button [disabled]=\"!data?.allowPrevious\"\r\n (click)=\"setPage(data?.pageNumber - 1, data?.totalPages)\"\r\n class=\"bb-collections-pager-button arrow first\"\r\n type=\"button\">\r\n &#8592;\r\n </button>\r\n </li>\r\n <li *ngFor=\"let item of data?.pages\"\r\n [title]=\"'Page ' + item?.page\"\r\n class=\"bb-collections-pager-item\">\r\n <button [class.active]=\"item?.active\"\r\n (click)=\"setPage(item?.page, data?.totalPages)\"\r\n class=\"bb-collections-pager-button\"\r\n type=\"button\">\r\n {{ item?.page }}\r\n </button>\r\n </li>\r\n <li class=\"bb-collections-pager-item\"\r\n title=\"Next page\">\r\n <button [disabled]=\"!data?.allowNext\"\r\n (click)=\"setPage(data?.pageNumber + 1, data?.totalPages)\"\r\n class=\"bb-collections-pager-button arrow last\"\r\n type=\"button\">\r\n &#8594;\r\n </button>\r\n </li>\r\n </ul>\r\n </div>\r\n</ng-container>\r\n","import {catchError, debounceTime, distinctUntilChanged, map, startWith, switchMap, tap} from 'rxjs/operators';\r\nimport {CollectionData, CollectionRequest, CollectionRequestSort} from './interfaces/collection.interface';\r\nimport {BehaviorSubject, combineLatest, isObservable, Observable, of} from 'rxjs';\r\nimport {CollectionProvider} from './providers/collection.provider';\r\nimport {AbstractControl, FormControl} from '@angular/forms';\r\n\r\nexport const enum CollectionState {\r\n Initial = 'initial',\r\n Error = 'error',\r\n Empty = 'empty',\r\n Data = 'data'\r\n}\r\n\r\nexport class Collection<T> {\r\n\r\n // Controls.\r\n readonly queryControl: FormControl;\r\n readonly queryFieldsControl: FormControl;\r\n readonly pageNumberControl: FormControl;\r\n readonly pageSizeControl: FormControl;\r\n readonly sortControl: FormControl;\r\n\r\n // Request.\r\n readonly data$: Observable<{\r\n response?: CollectionData<T>,\r\n request?: CollectionRequest,\r\n error?: Error\r\n state: CollectionState,\r\n loading: boolean,\r\n initial: boolean\r\n }>;\r\n\r\n readonly raw$ = new BehaviorSubject<CollectionData<T> | null>(null);\r\n readonly loading$ = new BehaviorSubject<boolean>(true);\r\n\r\n // State.\r\n private _formatter: (item: T[]) => T[] | Observable<T[]> = null;\r\n private _refresh$ = new BehaviorSubject<number>(0);\r\n private _requestCache: CollectionRequest | null = null;\r\n\r\n constructor(private readonly _provider: CollectionProvider<T>,\r\n private readonly _initialValues: Partial<CollectionRequest> = {}) {\r\n this.queryControl = new FormControl(_initialValues?.query ?? null);\r\n this.queryFieldsControl = new FormControl(_initialValues?.queryFields ?? []);\r\n this.pageNumberControl = new FormControl(_initialValues?.pageNumber ?? 1);\r\n this.pageSizeControl = new FormControl(_initialValues?.pageSize ?? 25);\r\n this.sortControl = new FormControl(_initialValues?.sort ?? null);\r\n\r\n this.data$ = this.getData();\r\n }\r\n\r\n refresh() {\r\n this._refresh$.next(0);\r\n }\r\n\r\n setFormatter(callback: (items: T[]) => T[] | Observable<T[]>) {\r\n this._formatter = callback;\r\n return this;\r\n }\r\n\r\n private getData() {\r\n const data$ = this.request.pipe(\r\n tap(() => this.loading$.next(true)),\r\n map(request => this.validateRequest(request)),\r\n switchMap(request => {\r\n return this._provider.transform(request).pipe(\r\n tap(response => this.cacheCollectionData(response)),\r\n map(response => ({response, request, initial: false})),\r\n catchError(error => of<{ error: Error, response: CollectionData<T> | null, request: CollectionRequest, initial: boolean }>({\r\n error,\r\n request,\r\n response: null,\r\n initial: false\r\n }))\r\n );\r\n }),\r\n startWith<{ initial: boolean, response: CollectionData<T> | null }>({initial: true, response: null})\r\n );\r\n\r\n return combineLatest([data$, this.loading$.asObservable()]).pipe(\r\n switchMap(([data, loading]) => {\r\n const combined = {...data, loading};\r\n return this.formatResponse(data?.response).pipe(\r\n map(response => ({\r\n ...combined,\r\n response,\r\n state: this.getState(combined)\r\n }))\r\n );\r\n })\r\n );\r\n }\r\n\r\n private formatResponse(response: CollectionData<T>) {\r\n if (!response || !this._formatter) {\r\n return of(response);\r\n }\r\n\r\n const items = response?.data ?? [];\r\n const data = this._formatter?.(items) ?? items;\r\n const data$ = isObservable(data) ? data : of(data);\r\n\r\n return data$.pipe(\r\n map(data => ({...response, data}))\r\n );\r\n }\r\n\r\n private validateRequest(request: CollectionRequest) {\r\n // We should reset the page number whenever we change the query or the page size.\r\n if (this._requestCache && request && (this._requestCache?.query !== request?.query || this._requestCache?.pageSize !== request?.pageSize)) {\r\n this.pageNumberControl?.setValue(1, {emitEvent: false});\r\n request.pageNumber = this.pageNumberControl?.value;\r\n }\r\n\r\n this._requestCache = {...request};\r\n\r\n return request;\r\n }\r\n\r\n private getState(data: { response?: CollectionData<T>, request?: CollectionRequest, error?: Error, loading: boolean, initial: boolean }) {\r\n if (!!data?.error) {\r\n return CollectionState.Error;\r\n }\r\n\r\n if (!!data?.initial) {\r\n return CollectionState.Initial;\r\n }\r\n\r\n const count = data?.response?.data?.length ?? 0;\r\n if (count <= 0) {\r\n return CollectionState.Empty;\r\n }\r\n\r\n return CollectionState.Data;\r\n }\r\n\r\n private cacheCollectionData(data: CollectionData<T>) {\r\n this.raw$.next(data);\r\n this.loading$.next(false);\r\n }\r\n\r\n private get request() {\r\n const pageNumber$ = this.controlToObservable<number>(this.pageNumberControl);\r\n const pageSize$ = this.controlToObservable<number>(this.pageSizeControl);\r\n const query$ = this.getQueryObservable();\r\n const queryFields$ = this.controlToObservable<string[]>(this.queryFieldsControl);\r\n const sort$ = this.controlToObservable<CollectionRequestSort | CollectionRequestSort[]>(this.sortControl);\r\n\r\n return combineLatest([pageNumber$, pageSize$, query$, queryFields$, sort$, this._refresh$.asObservable()]).pipe(\r\n map(([pageNumber, pageSize, query, queryFields, sort]) => ({\r\n pageNumber,\r\n pageSize,\r\n query,\r\n queryFields,\r\n sort\r\n }))\r\n );\r\n }\r\n\r\n private getQueryObservable() {\r\n return this.queryControl.valueChanges.pipe(\r\n debounceTime<string>(400),\r\n distinctUntilChanged<string>(),\r\n startWith(this.queryControl?.value as string | null)\r\n );\r\n }\r\n\r\n private controlToObservable = <T = unknown>(control: AbstractControl) => {\r\n return control.valueChanges.pipe(\r\n distinctUntilChanged<T>(),\r\n startWith(control?.value as T)\r\n );\r\n };\r\n\r\n}\r\n\r\n","import {\r\n BbCollectionsData,\r\n BbCollectionsEmpty,\r\n BbCollectionsError,\r\n BbCollectionsInitial\r\n} from './components/collections.directive';\r\nimport {BbCollectionsViewer} from './components/collections-viewer/collections-viewer.component';\r\nimport {BbCollectionsPager} from './components/collections-pager/collections-pager.component';\r\nimport {CommonModule} from '@angular/common';\r\nimport {NgModule} from '@angular/core';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [\r\n // Components.\r\n BbCollectionsViewer,\r\n BbCollectionsPager,\r\n // Directives.\r\n BbCollectionsData,\r\n BbCollectionsEmpty,\r\n BbCollectionsError,\r\n BbCollectionsInitial\r\n ],\r\n exports: [\r\n // Components.\r\n BbCollectionsViewer,\r\n BbCollectionsPager,\r\n // Directives.\r\n BbCollectionsData,\r\n BbCollectionsEmpty,\r\n BbCollectionsError,\r\n BbCollectionsInitial\r\n ]\r\n})\r\nexport class CollectionsModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bravobit-bb-foundation-collections.mjs","sources":["../../../projects/bb-foundation/collections/src/lib/providers/collection.provider.ts","../../../projects/bb-foundation/collections/src/lib/providers/api-collection.provider.ts","../../../projects/bb-foundation/collections/src/lib/providers/local-collection.provider.ts","../../../projects/bb-foundation/collections/src/lib/components/collections.directive.ts","../../../projects/bb-foundation/collections/src/lib/components/collections-viewer/collections-viewer.component.ts","../../../projects/bb-foundation/collections/src/lib/components/collections-viewer/collections-viewer.component.html","../../../projects/bb-foundation/collections/src/lib/components/collections-pager/collections-pager.component.ts","../../../projects/bb-foundation/collections/src/lib/components/collections-pager/collections-pager.component.html","../../../projects/bb-foundation/collections/src/lib/collection.ts","../../../projects/bb-foundation/collections/src/lib/collections.module.ts","../../../projects/bb-foundation/collections/src/bravobit-bb-foundation-collections.ts"],"sourcesContent":["import {CollectionData, CollectionRequest} from '../interfaces/collection.interface';\r\nimport {Observable} from 'rxjs';\r\n\r\nexport abstract class CollectionProvider<T> {\r\n\r\n abstract transform(request: CollectionRequest): Observable<CollectionData<T>>;\r\n\r\n protected formatArrayToCollectionData(items: T[]) {\r\n const count = items?.length ?? 1;\r\n return <CollectionData<T>>{\r\n pageSize: count,\r\n totalEntries: count,\r\n pageNumber: 1,\r\n totalPages: 1,\r\n data: items\r\n };\r\n }\r\n\r\n}\r\n","import {CollectionApiResponse, CollectionData, CollectionRequest} from '../interfaces/collection.interface';\r\nimport {combineLatest, isObservable, Observable, of} from 'rxjs';\r\nimport {CollectionProvider} from './collection.provider';\r\nimport {HttpClient} from '@angular/common/http';\r\nimport {map, switchMap} from 'rxjs/operators';\r\n\r\nexport class ApiCollectionProvider<T> extends CollectionProvider<T> {\r\n\r\n // State.\r\n protected extraParams: { [name: string]: Observable<string | number | boolean | ReadonlyArray<string | number | boolean>> } = {};\r\n\r\n constructor(protected readonly endpoint: string | Observable<string>,\r\n protected readonly httpClient: HttpClient) {\r\n super();\r\n }\r\n\r\n append(name: string, value: string | number | boolean | ReadonlyArray<string | number | boolean> | Observable<string | number | boolean | ReadonlyArray<string | number | boolean>>) {\r\n this.extraParams[name] = isObservable(value) ? value : of(value);\r\n return this;\r\n }\r\n\r\n transform(request: CollectionRequest) {\r\n const endpoint$ = isObservable(this.endpoint) ? this.endpoint : of(this.endpoint);\r\n const params = this.getBackendFormat(request);\r\n const extraParams$ = this.getExtraParams(this.extraParams);\r\n\r\n return combineLatest([endpoint$, extraParams$]).pipe(\r\n switchMap(([endpoint, extraParams]) => {\r\n return this.httpClient.get<CollectionApiResponse<T> | T[]>(endpoint, {\r\n params: {...params, ...extraParams}\r\n });\r\n }),\r\n map(response => this.formatToCollectionData(response))\r\n );\r\n }\r\n\r\n protected getExtraParams(params: { [name: string]: Observable<string | number | boolean | ReadonlyArray<string | number | boolean>> }) {\r\n const keys = Object.keys(params ?? {});\r\n if (keys.length <= 0) {\r\n return of({});\r\n }\r\n\r\n const observables$ = keys.map(key => params?.[key]);\r\n return combineLatest(observables$).pipe(\r\n map(data => {\r\n return data.reduce((previous, current, index) => {\r\n if (current === null || current === undefined) {\r\n return previous;\r\n }\r\n const key = keys?.[index];\r\n return {...previous, [key]: current};\r\n }, {});\r\n })\r\n );\r\n }\r\n\r\n protected formatToCollectionData(response: CollectionApiResponse<T> | T[]) {\r\n if (Array.isArray(response)) {\r\n return this.formatArrayToCollectionData(response);\r\n }\r\n\r\n return <CollectionData<T>>{\r\n pageSize: response?.page_size,\r\n pageNumber: response?.page_number,\r\n totalPages: response?.total_pages,\r\n totalEntries: response?.total_entries,\r\n data: response?.data\r\n };\r\n }\r\n\r\n protected getBackendFormat(request: CollectionRequest) {\r\n const params = {};\r\n\r\n params['page'] = request?.pageNumber ?? 1;\r\n params['page_size'] = request?.pageSize ?? 25;\r\n\r\n if (request?.sort) {\r\n const sort = Array.isArray(request?.sort) ? request?.sort : [request?.sort];\r\n const filteredSort = sort?.filter(item => !!item?.name && !!item?.direction);\r\n\r\n params['sort'] = filteredSort?.map(item => item?.name)?.join(',');\r\n params['sort_direction'] = filteredSort?.map(item => item?.direction)?.join(',');\r\n }\r\n\r\n if (request?.query && request?.query?.length > 0 && request?.queryFields && request?.queryFields?.length > 0) {\r\n params['query'] = request?.query;\r\n params['query_fields'] = request?.queryFields?.join(',');\r\n }\r\n\r\n return params;\r\n }\r\n\r\n}\r\n","import {CollectionRequest} from '../interfaces/collection.interface';\r\nimport {CollectionProvider} from './collection.provider';\r\nimport {Observable, of} from 'rxjs';\r\nimport {map} from 'rxjs/operators';\r\n\r\nexport class LocalCollectionProvider<T> extends CollectionProvider<T> {\r\n\r\n constructor(private readonly _items: T[] | Observable<T[]>) {\r\n super();\r\n }\r\n\r\n transform(request: CollectionRequest) {\r\n const items$ = Array.isArray(this._items)\r\n ? of(this._items)\r\n : this._items;\r\n\r\n return items$.pipe(\r\n map(items => this.formatArrayToCollectionData(items))\r\n );\r\n }\r\n\r\n}\r\n","import {Directive} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[bbCollectionsData]'\r\n})\r\nexport class BbCollectionsData<T> {\r\n}\r\n\r\n@Directive({\r\n selector: '[bbCollectionsEmpty]'\r\n})\r\nexport class BbCollectionsEmpty {\r\n}\r\n\r\n@Directive({\r\n selector: '[bbCollectionsError]'\r\n})\r\nexport class BbCollectionsError {\r\n}\r\n\r\n@Directive({\r\n selector: '[bbCollectionsInitial]'\r\n})\r\nexport class BbCollectionsInitial {\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChild,\r\n Input,\r\n TemplateRef,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {\r\n BbCollectionsData,\r\n BbCollectionsEmpty,\r\n BbCollectionsError,\r\n BbCollectionsInitial\r\n} from '../collections.directive';\r\nimport {Collection} from '../../collection';\r\n\r\n@Component({\r\n selector: '[bb-collections-viewer]',\r\n templateUrl: './collections-viewer.component.html',\r\n styleUrls: ['./collections-viewer.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: {'class': 'bb-collections-viewer'},\r\n preserveWhitespaces: false\r\n})\r\nexport class BbCollectionsViewer<T = unknown> {\r\n\r\n // Content.\r\n @ContentChild(BbCollectionsData, {read: TemplateRef, static: false}) dataTemplate?: TemplateRef<any>;\r\n @ContentChild(BbCollectionsEmpty, {read: TemplateRef, static: false}) emptyTemplate?: TemplateRef<any>;\r\n @ContentChild(BbCollectionsError, {read: TemplateRef, static: false}) errorTemplate?: TemplateRef<any>;\r\n @ContentChild(BbCollectionsInitial, {read: TemplateRef, static: false}) initialTemplate?: TemplateRef<any>;\r\n\r\n // Inputs.\r\n @Input() collection: Collection<T> | null = null;\r\n\r\n}\r\n","<ng-container *ngIf=\"collection?.data$ | async as data\"\r\n [ngSwitch]=\"data?.state\">\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"dataTemplate; context: {items: data?.response?.data}\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'initial'\">\r\n <ng-container *ngTemplateOutlet=\"initialTemplate\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'empty'\">\r\n <ng-container *ngTemplateOutlet=\"emptyTemplate; context: {query: data?.request?.query}\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'error'\">\r\n <ng-container *ngTemplateOutlet=\"errorTemplate; context: {error: data?.error}\"></ng-container>\r\n </ng-container>\r\n</ng-container>\r\n","import {ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit, ViewEncapsulation} from '@angular/core';\r\nimport {CollectionData} from '../../interfaces/collection.interface';\r\nimport {BehaviorSubject, Observable, Subscription} from 'rxjs';\r\nimport {Collection} from '../../collection';\r\nimport {map} from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'bb-collections-pager',\r\n templateUrl: './collections-pager.component.html',\r\n styleUrls: ['./collections-pager.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: {'class': 'bb-collections-pager'},\r\n preserveWhitespaces: false\r\n})\r\nexport class BbCollectionsPager implements OnInit, OnDestroy {\r\n\r\n // Readonly data.\r\n readonly maxAmountOfButtons: number = 5;\r\n\r\n // Inputs.\r\n @Input()\r\n set label(value: string) {\r\n this._label = value;\r\n this.cache$.next(this.cache$.getValue());\r\n }\r\n\r\n @Input()\r\n set collection(collection: Collection<unknown> | null) {\r\n this._collection = collection;\r\n this.observeCollectionChanges();\r\n }\r\n\r\n // Data.\r\n data$: Observable<{\r\n totalPages: number,\r\n pageNumber: number,\r\n pages: { page: number, active: boolean }[],\r\n allowNext: boolean\r\n allowPrevious: boolean,\r\n label: string\r\n }>;\r\n cache$ = new BehaviorSubject<Partial<CollectionData<unknown>>>({});\r\n\r\n // State and subscriptions.\r\n private _label: string | null = null;\r\n private _collection: Collection<unknown> | null = null;\r\n private _subscription: Subscription | null = null;\r\n\r\n ngOnInit() {\r\n this.data$ = this.cache$.pipe(\r\n map(cache => {\r\n const pageSize = cache?.pageSize ?? 1;\r\n const pageNumber = cache?.pageNumber ?? 1;\r\n\r\n const totalPages = Math.max(0, cache?.totalPages ?? 1);\r\n const totalEntries = Math.max(0, cache?.totalEntries ?? 0);\r\n const fromStart = Math.max(0, Math.min((pageSize * (pageNumber - 1)) + 1, totalEntries));\r\n const fromEnd = Math.max(0, Math.min((fromStart - 1) + pageSize, totalEntries));\r\n\r\n const pages = this.filterActivePages(pageNumber, totalPages);\r\n\r\n const allowNext = pageNumber < totalPages;\r\n const allowPrevious = pageNumber > 1;\r\n\r\n return {\r\n totalPages,\r\n pages,\r\n pageNumber,\r\n allowNext,\r\n allowPrevious,\r\n label: this.calculateLabel(fromStart, fromEnd, totalEntries)\r\n };\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this._subscription?.unsubscribe();\r\n }\r\n\r\n setPage(pageNumber: number, totalPages: number) {\r\n // Calculate the new value.\r\n const newValue = Math.min(\r\n totalPages,\r\n Math.max(1, pageNumber)\r\n );\r\n\r\n // Validate the value is actually different.\r\n const currentValue = this._collection?.pageNumberControl?.value;\r\n if (currentValue === newValue) {\r\n return;\r\n }\r\n\r\n this._collection?.pageNumberControl?.setValue(pageNumber);\r\n }\r\n\r\n private observeCollectionChanges() {\r\n if (!this._collection) {\r\n return;\r\n }\r\n\r\n if (this._subscription) {\r\n this._subscription?.unsubscribe();\r\n }\r\n\r\n const pageNumber = this._collection?.pageNumberControl?.value;\r\n const pageSize = this._collection?.pageSizeControl?.value;\r\n\r\n this.cache$.next({pageNumber, pageSize});\r\n\r\n this._subscription = this._collection.raw$.subscribe(data => {\r\n if (data) {\r\n this.cache$.next(data);\r\n }\r\n });\r\n }\r\n\r\n private calculateLabel(start: number, end: number, total: number) {\r\n const startPoint = '[start]';\r\n const endPoint = '[end]';\r\n const totalPoint = '[total]';\r\n const label = this._label ?? `Showing ${startPoint} to ${endPoint} of ${totalPoint} results`;\r\n\r\n return label\r\n .replace(startPoint, `<strong>${start}</strong>`)\r\n .replace(endPoint, `<strong>${end}</strong>`)\r\n .replace(totalPoint, `<strong>${total}</strong>`);\r\n }\r\n\r\n private calculatePages(pageNumber: number, totalPages: number) {\r\n const min = 1;\r\n const max = totalPages;\r\n const amount = Math.max(1, this.maxAmountOfButtons);\r\n\r\n const data = Array(amount)\r\n .fill(0)\r\n .map((_, index) => pageNumber + (index - 1));\r\n\r\n // Validate if the minimum value less than\r\n // the first value.\r\n if (data[0] < min) {\r\n return data.map(item => item + 1);\r\n }\r\n\r\n // Calculate the difference with the max\r\n // if this value is higher than 0 we should minus it.\r\n const lastValueInArray = data[data.length - 1];\r\n const differenceWithMax = lastValueInArray - max;\r\n if (differenceWithMax > 0) {\r\n return data.map(item => item - differenceWithMax);\r\n }\r\n\r\n // Just return the default data.\r\n return data;\r\n }\r\n\r\n private filterActivePages(pageNumber: number, totalPages: number) {\r\n return this.calculatePages(pageNumber, totalPages)\r\n .filter(page => page > 0 && page <= totalPages)\r\n .map(page => ({page, active: pageNumber === page}));\r\n }\r\n\r\n}\r\n","<ng-container *ngIf=\"data$ | async as data\">\r\n <div [innerHTML]=\"data?.label\"\r\n class=\"bb-collections-pager-text\">\r\n </div>\r\n\r\n <div class=\"bb-collections-pager-container\">\r\n <ul class=\"bb-collections-pager-list\">\r\n <li class=\"bb-collections-pager-item\"\r\n title=\"Previous page\">\r\n <button [disabled]=\"!data?.allowPrevious\"\r\n (click)=\"setPage(data?.pageNumber - 1, data?.totalPages)\"\r\n class=\"bb-collections-pager-button arrow first\"\r\n type=\"button\">\r\n &#8592;\r\n </button>\r\n </li>\r\n <li *ngFor=\"let item of data?.pages\"\r\n [title]=\"'Page ' + item?.page\"\r\n class=\"bb-collections-pager-item\">\r\n <button [class.active]=\"item?.active\"\r\n (click)=\"setPage(item?.page, data?.totalPages)\"\r\n class=\"bb-collections-pager-button\"\r\n type=\"button\">\r\n {{ item?.page }}\r\n </button>\r\n </li>\r\n <li class=\"bb-collections-pager-item\"\r\n title=\"Next page\">\r\n <button [disabled]=\"!data?.allowNext\"\r\n (click)=\"setPage(data?.pageNumber + 1, data?.totalPages)\"\r\n class=\"bb-collections-pager-button arrow last\"\r\n type=\"button\">\r\n &#8594;\r\n </button>\r\n </li>\r\n </ul>\r\n </div>\r\n</ng-container>\r\n","import {catchError, debounceTime, distinctUntilChanged, map, startWith, switchMap, tap} from 'rxjs/operators';\r\nimport {CollectionData, CollectionRequest, CollectionRequestSort} from './interfaces/collection.interface';\r\nimport {BehaviorSubject, combineLatest, isObservable, Observable, of} from 'rxjs';\r\nimport {CollectionProvider} from './providers/collection.provider';\r\nimport {AbstractControl, FormControl} from '@angular/forms';\r\n\r\nexport const enum CollectionState {\r\n Initial = 'initial',\r\n Error = 'error',\r\n Empty = 'empty',\r\n Data = 'data'\r\n}\r\n\r\nexport class Collection<T> {\r\n\r\n // Controls.\r\n readonly queryControl: FormControl<string | null>;\r\n readonly queryFieldsControl: FormControl<string[]>;\r\n readonly pageNumberControl: FormControl<number>;\r\n readonly pageSizeControl: FormControl<number>;\r\n readonly sortControl: FormControl<CollectionRequestSort | CollectionRequestSort[]>;\r\n\r\n // Request.\r\n readonly data$: Observable<{\r\n response?: CollectionData<T>,\r\n request?: CollectionRequest,\r\n error?: Error\r\n state: CollectionState,\r\n loading: boolean,\r\n initial: boolean\r\n }>;\r\n\r\n readonly raw$ = new BehaviorSubject<CollectionData<T> | null>(null);\r\n readonly loading$ = new BehaviorSubject<boolean>(true);\r\n\r\n // State.\r\n private _formatter: (item: T[]) => T[] | Observable<T[]> = null;\r\n private _refresh$ = new BehaviorSubject<number>(0);\r\n private _requestCache: CollectionRequest | null = null;\r\n\r\n constructor(private readonly _provider: CollectionProvider<T>,\r\n private readonly _initialValues: Partial<CollectionRequest> = {}) {\r\n this.queryControl = new FormControl<string | null>(_initialValues?.query ?? null);\r\n this.queryFieldsControl = new FormControl<string[]>(_initialValues?.queryFields ?? []);\r\n this.pageNumberControl = new FormControl<number>(_initialValues?.pageNumber ?? 1);\r\n this.pageSizeControl = new FormControl<number>(_initialValues?.pageSize ?? 25);\r\n this.sortControl = new FormControl<CollectionRequestSort | CollectionRequestSort[] | null>(_initialValues?.sort ?? null);\r\n\r\n this.data$ = this.getData();\r\n }\r\n\r\n refresh() {\r\n this._refresh$.next(0);\r\n }\r\n\r\n setFormatter(callback: (items: T[]) => T[] | Observable<T[]>) {\r\n this._formatter = callback;\r\n return this;\r\n }\r\n\r\n private getData() {\r\n const data$ = this.request.pipe(\r\n tap(() => this.loading$.next(true)),\r\n map(request => this.validateRequest(request)),\r\n switchMap(request => {\r\n return this._provider.transform(request).pipe(\r\n tap(response => this.cacheCollectionData(response)),\r\n map(response => ({response, request, initial: false})),\r\n catchError(error => of<{ error: Error, response: CollectionData<T> | null, request: CollectionRequest, initial: boolean }>({\r\n error,\r\n request,\r\n response: null,\r\n initial: false\r\n }))\r\n );\r\n }),\r\n startWith<{ initial: boolean, response: CollectionData<T> | null }>({initial: true, response: null})\r\n );\r\n\r\n return combineLatest([data$, this.loading$.asObservable()]).pipe(\r\n switchMap(([data, loading]) => {\r\n const combined = {...data, loading};\r\n return this.formatResponse(data?.response).pipe(\r\n map(response => ({\r\n ...combined,\r\n response,\r\n state: this.getState(combined)\r\n }))\r\n );\r\n })\r\n );\r\n }\r\n\r\n private formatResponse(response: CollectionData<T>) {\r\n if (!response || !this._formatter) {\r\n return of(response);\r\n }\r\n\r\n const items = response?.data ?? [];\r\n const data = this._formatter?.(items) ?? items;\r\n const data$ = isObservable(data) ? data : of(data);\r\n\r\n return data$.pipe(\r\n map(data => ({...response, data}))\r\n );\r\n }\r\n\r\n private validateRequest(request: CollectionRequest) {\r\n // We should reset the page number whenever we change the query or the page size.\r\n if (this._requestCache && request && (this._requestCache?.query !== request?.query || this._requestCache?.pageSize !== request?.pageSize)) {\r\n this.pageNumberControl?.setValue(1, {emitEvent: false});\r\n request.pageNumber = this.pageNumberControl?.value;\r\n }\r\n\r\n this._requestCache = {...request};\r\n\r\n return request;\r\n }\r\n\r\n private getState(data: { response?: CollectionData<T>, request?: CollectionRequest, error?: Error, loading: boolean, initial: boolean }) {\r\n if (!!data?.error) {\r\n return CollectionState.Error;\r\n }\r\n\r\n if (!!data?.initial) {\r\n return CollectionState.Initial;\r\n }\r\n\r\n const count = data?.response?.data?.length ?? 0;\r\n if (count <= 0) {\r\n return CollectionState.Empty;\r\n }\r\n\r\n return CollectionState.Data;\r\n }\r\n\r\n private cacheCollectionData(data: CollectionData<T>) {\r\n this.raw$.next(data);\r\n this.loading$.next(false);\r\n }\r\n\r\n private get request() {\r\n const pageNumber$ = this.controlToObservable<number>(this.pageNumberControl);\r\n const pageSize$ = this.controlToObservable<number>(this.pageSizeControl);\r\n const query$ = this.getQueryObservable();\r\n const queryFields$ = this.controlToObservable<string[]>(this.queryFieldsControl);\r\n const sort$ = this.controlToObservable<CollectionRequestSort | CollectionRequestSort[]>(this.sortControl);\r\n\r\n return combineLatest([pageNumber$, pageSize$, query$, queryFields$, sort$, this._refresh$.asObservable()]).pipe(\r\n map(([pageNumber, pageSize, query, queryFields, sort]) => ({\r\n pageNumber,\r\n pageSize,\r\n query,\r\n queryFields,\r\n sort\r\n }))\r\n );\r\n }\r\n\r\n private getQueryObservable() {\r\n return this.queryControl.valueChanges.pipe(\r\n debounceTime<string>(400),\r\n distinctUntilChanged<string>(),\r\n startWith(this.queryControl?.value as string | null)\r\n );\r\n }\r\n\r\n private controlToObservable = <T = unknown>(control: AbstractControl) => {\r\n return control.valueChanges.pipe(\r\n distinctUntilChanged<T>(),\r\n startWith(control?.value as T)\r\n );\r\n };\r\n\r\n}\r\n\r\n","import {\r\n BbCollectionsData,\r\n BbCollectionsEmpty,\r\n BbCollectionsError,\r\n BbCollectionsInitial\r\n} from './components/collections.directive';\r\nimport {BbCollectionsViewer} from './components/collections-viewer/collections-viewer.component';\r\nimport {BbCollectionsPager} from './components/collections-pager/collections-pager.component';\r\nimport {CommonModule} from '@angular/common';\r\nimport {NgModule} from '@angular/core';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [\r\n // Components.\r\n BbCollectionsViewer,\r\n BbCollectionsPager,\r\n // Directives.\r\n BbCollectionsData,\r\n BbCollectionsEmpty,\r\n BbCollectionsError,\r\n BbCollectionsInitial\r\n ],\r\n exports: [\r\n // Components.\r\n BbCollectionsViewer,\r\n BbCollectionsPager,\r\n // Directives.\r\n BbCollectionsData,\r\n BbCollectionsEmpty,\r\n BbCollectionsError,\r\n BbCollectionsInitial\r\n ]\r\n})\r\nexport class CollectionsModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ class BbiCheckboxGroup {
12
12
  this.label = null; // TODO(Stan): Add template possibilities here.
13
13
  this._grouped = false;
14
14
  this._required = false;
15
+ this._inline = false;
15
16
  }
16
17
  // Grouped.
17
18
  get grouped() { return this._grouped; }
@@ -31,22 +32,34 @@ class BbiCheckboxGroup {
31
32
  this._changeDetectorRef.markForCheck();
32
33
  }
33
34
  }
35
+ // Inline.
36
+ get inline() { return this._inline; }
37
+ set inline(value) {
38
+ const newValue = coerceBooleanProperty(value);
39
+ if (newValue !== this.inline) {
40
+ this._inline = newValue;
41
+ this._changeDetectorRef.markForCheck();
42
+ }
43
+ }
34
44
  }
35
- BbiCheckboxGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BbiCheckboxGroup, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
36
- BbiCheckboxGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.6", type: BbiCheckboxGroup, selector: "bbi-checkbox-group", inputs: { label: "label", grouped: "grouped", required: "required" }, host: { properties: { "class.grouped": "grouped", "class.required": "required" }, classAttribute: "bbi-checkbox-group" }, ngImport: i0, template: "<label *ngIf=\"label as label\"\r\n class=\"bbi-checkbox-group-label\">\r\n {{ label }}\r\n</label>\r\n\r\n<div class=\"bbi-checkbox-group-items\">\r\n <ng-content select=\"bbi-checkbox\"></ng-content>\r\n</div>\r\n", styles: [".bbi-checkbox-group{display:block}.bbi-checkbox-group.grouped{margin-bottom:20px}.bbi-checkbox-group.required>.bbi-checkbox-group-label:after{content:\"*\";color:#c23934;font-size:12px;line-height:1.5}.bbi-checkbox-group-label{border:0;padding:0;line-height:1.33;margin-bottom:4px;font-family:inherit;display:inline-block;box-sizing:border-box;vertical-align:initial;color:var(--checkbox-group-label-color, #525252);font-size:var(--checkbox-group-label-size, 14px);font-weight:var(--checkbox-group-label-weight, 400)}.bbi-checkbox-group-items{display:flex;flex-direction:column}.bbi-checkbox-group-items:not(:empty){margin-bottom:-4px}.bbi-checkbox-group-items>*{margin-bottom:4px}@media only screen and (min-width: 768px){.bbi-checkbox-group:not(.vertical)>.bbi-checkbox-group-items{flex-wrap:wrap;flex-direction:row}.bbi-checkbox-group:not(.vertical)>.bbi-checkbox-group-items>*:not(:last-child){margin-right:10px}}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BbiCheckboxGroup, decorators: [{
45
+ BbiCheckboxGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbiCheckboxGroup, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
46
+ BbiCheckboxGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: BbiCheckboxGroup, selector: "bbi-checkbox-group", inputs: { label: "label", grouped: "grouped", required: "required", inline: "inline" }, host: { properties: { "class.grouped": "grouped", "class.required": "required", "class.inline": "inline" }, classAttribute: "bbi-checkbox-group" }, ngImport: i0, template: "<label *ngIf=\"label as label\"\r\n class=\"bbi-checkbox-group-label\">\r\n {{ label }}\r\n</label>\r\n\r\n<div class=\"bbi-checkbox-group-items\">\r\n <ng-content select=\"bbi-checkbox\"></ng-content>\r\n</div>\r\n", styles: [".bbi-checkbox-group{display:block}.bbi-checkbox-group.grouped{margin-bottom:var(--checkbox-group-grouping, 20px)}.bbi-checkbox-group.required>.bbi-checkbox-group-label:after{content:\"*\";color:#c23934;font-size:12px;line-height:1.5}.bbi-checkbox-group-label{border:0;padding:0;line-height:1.33;margin-bottom:4px;font-family:inherit;display:inline-block;box-sizing:border-box;vertical-align:initial;color:var(--checkbox-group-label-color, #525252);font-size:var(--checkbox-group-label-font-size, 14px);font-weight:var(--checkbox-group-label-font-weight, 400)}.bbi-checkbox-group-items{display:flex;flex-direction:column}.bbi-checkbox-group-items:not(:empty){margin-bottom:-var(--checkbox-group-item-spacing-vertical,4px)}.bbi-checkbox-group-items>*{margin-bottom:var(--checkbox-group-item-spacing-vertical, 4px)}@media only screen and (min-width: 768px){.bbi-checkbox-group.inline>.bbi-checkbox-group-items{flex-wrap:wrap;flex-direction:row}.bbi-checkbox-group.inline>.bbi-checkbox-group-items>*:not(:last-child){margin-right:var(--checkbox-group-item-spacing-horizontal, 10px)}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbiCheckboxGroup, decorators: [{
38
48
  type: Component,
39
49
  args: [{ selector: 'bbi-checkbox-group', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
40
50
  'class': 'bbi-checkbox-group',
41
51
  '[class.grouped]': 'grouped',
42
- '[class.required]': 'required'
43
- }, preserveWhitespaces: false, template: "<label *ngIf=\"label as label\"\r\n class=\"bbi-checkbox-group-label\">\r\n {{ label }}\r\n</label>\r\n\r\n<div class=\"bbi-checkbox-group-items\">\r\n <ng-content select=\"bbi-checkbox\"></ng-content>\r\n</div>\r\n", styles: [".bbi-checkbox-group{display:block}.bbi-checkbox-group.grouped{margin-bottom:20px}.bbi-checkbox-group.required>.bbi-checkbox-group-label:after{content:\"*\";color:#c23934;font-size:12px;line-height:1.5}.bbi-checkbox-group-label{border:0;padding:0;line-height:1.33;margin-bottom:4px;font-family:inherit;display:inline-block;box-sizing:border-box;vertical-align:initial;color:var(--checkbox-group-label-color, #525252);font-size:var(--checkbox-group-label-size, 14px);font-weight:var(--checkbox-group-label-weight, 400)}.bbi-checkbox-group-items{display:flex;flex-direction:column}.bbi-checkbox-group-items:not(:empty){margin-bottom:-4px}.bbi-checkbox-group-items>*{margin-bottom:4px}@media only screen and (min-width: 768px){.bbi-checkbox-group:not(.vertical)>.bbi-checkbox-group-items{flex-wrap:wrap;flex-direction:row}.bbi-checkbox-group:not(.vertical)>.bbi-checkbox-group-items>*:not(:last-child){margin-right:10px}}\n"] }]
52
+ '[class.required]': 'required',
53
+ '[class.inline]': 'inline'
54
+ }, preserveWhitespaces: false, template: "<label *ngIf=\"label as label\"\r\n class=\"bbi-checkbox-group-label\">\r\n {{ label }}\r\n</label>\r\n\r\n<div class=\"bbi-checkbox-group-items\">\r\n <ng-content select=\"bbi-checkbox\"></ng-content>\r\n</div>\r\n", styles: [".bbi-checkbox-group{display:block}.bbi-checkbox-group.grouped{margin-bottom:var(--checkbox-group-grouping, 20px)}.bbi-checkbox-group.required>.bbi-checkbox-group-label:after{content:\"*\";color:#c23934;font-size:12px;line-height:1.5}.bbi-checkbox-group-label{border:0;padding:0;line-height:1.33;margin-bottom:4px;font-family:inherit;display:inline-block;box-sizing:border-box;vertical-align:initial;color:var(--checkbox-group-label-color, #525252);font-size:var(--checkbox-group-label-font-size, 14px);font-weight:var(--checkbox-group-label-font-weight, 400)}.bbi-checkbox-group-items{display:flex;flex-direction:column}.bbi-checkbox-group-items:not(:empty){margin-bottom:-var(--checkbox-group-item-spacing-vertical,4px)}.bbi-checkbox-group-items>*{margin-bottom:var(--checkbox-group-item-spacing-vertical, 4px)}@media only screen and (min-width: 768px){.bbi-checkbox-group.inline>.bbi-checkbox-group-items{flex-wrap:wrap;flex-direction:row}.bbi-checkbox-group.inline>.bbi-checkbox-group-items>*:not(:last-child){margin-right:var(--checkbox-group-item-spacing-horizontal, 10px)}}\n"] }]
44
55
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { label: [{
45
56
  type: Input
46
57
  }], grouped: [{
47
58
  type: Input
48
59
  }], required: [{
49
60
  type: Input
61
+ }], inline: [{
62
+ type: Input
50
63
  }] } });
51
64
 
52
65
  let nextUniqueId = 0;
@@ -165,11 +178,11 @@ class BbiCheckbox {
165
178
  this._renderer.setProperty(element, field, value);
166
179
  }
167
180
  }
168
- BbiCheckbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BbiCheckbox, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
169
- BbiCheckbox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.6", type: BbiCheckbox, selector: "bbi-checkbox", inputs: { checked: "checked", disabled: "disabled", grouped: "grouped", indeterminate: "indeterminate", required: "required" }, outputs: { checkedChange: "checkedChange", indeterminateChange: "indeterminateChange" }, host: { properties: { "class.grouped": "grouped", "class.indeterminate": "indeterminate", "class.required": "required" }, classAttribute: "bbi-checkbox" }, providers: [
181
+ BbiCheckbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbiCheckbox, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
182
+ BbiCheckbox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: BbiCheckbox, selector: "bbi-checkbox", inputs: { checked: "checked", disabled: "disabled", grouped: "grouped", indeterminate: "indeterminate", required: "required" }, outputs: { checkedChange: "checkedChange", indeterminateChange: "indeterminateChange" }, host: { properties: { "class.grouped": "grouped", "class.indeterminate": "indeterminate", "class.required": "required" }, classAttribute: "bbi-checkbox" }, providers: [
170
183
  { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BbiCheckbox), multi: true }
171
- ], viewQueries: [{ propertyName: "inputElementRef", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: "<input #input\r\n [id]=\"labelId\"\r\n [disabled]=\"disabled\"\r\n [checked]=\"checked\"\r\n (change)=\"onChangeEvent($event)\"\r\n (click)=\"onClickEvent($event)\"\r\n (blur)=\"onTouched()\"\r\n class=\"bbi-checkbox-input\"\r\n type=\"checkbox\">\r\n<label [attr.for]=\"labelId\"\r\n class=\"bbi-checkbox-label\">\r\n <span class=\"bbi-checkbox-text\"><ng-content></ng-content></span>\r\n</label>\r\n", styles: [".bbi-checkbox{display:block}.bbi-checkbox.grouped{margin-bottom:20px}.bbi-checkbox.required>.bbi-checkbox-label>.bbi-checkbox-text:after{content:\"*\";color:#c23934;font-size:12px;line-height:1.5;margin-left:3px}.bbi-checkbox-input{border:0;width:1px;padding:0;height:1px;margin:-1px;overflow:hidden;position:absolute;visibility:inherit;white-space:nowrap;clip:rect(0,0,0,0)}.bbi-checkbox-input:checked+.bbi-checkbox-label:before,.bbi-checkbox-input:indeterminate+.bbi-checkbox-label:before{border:1px solid var(--checkbox-accent-color, #1565c0);background-color:var(--checkbox-accent-color, #1565c0)}.bbi-checkbox-input:checked+.bbi-checkbox-label:after,.bbi-checkbox-input:indeterminate+.bbi-checkbox-label:after{opacity:1;transform:scale(1) rotate(-45deg)}.bbi-checkbox-input:indeterminate+.bbi-checkbox-label:after{top:-1px;left:5px;width:10px;transform:scale(1) rotate(0);border-left:0 solid var(--checkbox-check-color, white);border-bottom:2px solid var(--checkbox-check-color, white)}.bbi-checkbox-input:focus+.bbi-checkbox-label:before{outline-color:var(--checkbox-accent-color, #1565c0)}.bbi-checkbox-input:disabled+.bbi-checkbox-label{cursor:not-allowed;color:var(--checkbox-disabled-color, #c6c6c6)}.bbi-checkbox-input:disabled+.bbi-checkbox-label:before{border-color:var(--checkbox-disabled-color, #c6c6c6)}.bbi-checkbox-input:disabled+.bbi-checkbox-label>.bbi-checkbox-text{color:var(--checkbox-disabled-color, #c6c6c6)}.bbi-checkbox-input:checked:disabled+.bbi-checkbox-label:before,.bbi-checkbox-input:indeterminate:disabled+.bbi-checkbox-label:before{background-color:var(--checkbox-disabled-color, #c6c6c6)}.bbi-checkbox-label{border:0;margin:0;display:flex;cursor:pointer;font-size:16px;font-weight:400;line-height:1.28;-webkit-user-select:none;user-select:none;position:relative;padding-left:20px;font-family:inherit;vertical-align:initial}.bbi-checkbox-label:before{left:0;width:20px;content:\"\";height:20px;position:absolute;border-radius:4px;outline-offset:1px;background-color:initial;outline:2px solid transparent;border:1px solid var(--checkbox-border-color, #111111);transition:outline-color .2s cubic-bezier(0,0,.2,1),background-color .18s cubic-bezier(0,0,.2,1),border-color .18s cubic-bezier(0,0,.2,1)}.bbi-checkbox-label:after{left:4px;opacity:0;width:12px;height:6px;content:\"\";margin-top:6px;background:none;position:absolute;transform-origin:center;transform:scale(.85) rotate(-60deg);border-left:2px solid var(--checkbox-check-color, white);border-bottom:2px solid var(--checkbox-check-color, white);transition:opacity .12s cubic-bezier(0,0,.2,1),transform .18s cubic-bezier(0,0,.2,1)}.bbi-checkbox-text{padding-left:6px;color:var(--checkbox-label-color, #111111)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
172
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BbiCheckbox, decorators: [{
184
+ ], viewQueries: [{ propertyName: "inputElementRef", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: "<input #input\r\n [id]=\"labelId\"\r\n [disabled]=\"disabled\"\r\n [checked]=\"checked\"\r\n (change)=\"onChangeEvent($event)\"\r\n (click)=\"onClickEvent($event)\"\r\n (blur)=\"onTouched()\"\r\n class=\"bbi-checkbox-input\"\r\n type=\"checkbox\">\r\n<label [attr.for]=\"labelId\"\r\n class=\"bbi-checkbox-label\">\r\n <span class=\"bbi-checkbox-text\"><ng-content></ng-content></span>\r\n</label>\r\n", styles: [".bbi-checkbox{display:block}.bbi-checkbox.grouped{margin-bottom:var(--checkbox-grouping, 20px)}.bbi-checkbox.required>.bbi-checkbox-label>.bbi-checkbox-text:after{content:\"*\";color:#c23934;font-size:12px;line-height:1.5;margin-left:3px}.bbi-checkbox-input{border:0;width:1px;padding:0;height:1px;margin:-1px;overflow:hidden;position:absolute;visibility:inherit;white-space:nowrap;clip:rect(0,0,0,0)}.bbi-checkbox-input:checked+.bbi-checkbox-label:before,.bbi-checkbox-input:indeterminate+.bbi-checkbox-label:before{background-color:var(--checkbox-accent-color, var(--accent-color, #1565c0));border:var(--checkbox-border-thickness, 1px) solid var(--checkbox-accent-color, var(--accent-color, #1565c0))}.bbi-checkbox-input:checked+.bbi-checkbox-label:after,.bbi-checkbox-input:indeterminate+.bbi-checkbox-label:after{opacity:1;transform:scale(1) rotate(-45deg)}.bbi-checkbox-input:indeterminate+.bbi-checkbox-label:after{left:calc(var(--checkbox-size, 20px) / 4);width:calc(var(--checkbox-size, 20px) / 2);transform:scale(1) rotate(0);border-left:0 solid var(--checkbox-check-color, white);border-bottom:var(--checkbox-check-thickness, 2px) solid var(--checkbox-check-color, white)}.bbi-checkbox-input:focus+.bbi-checkbox-label:before{outline-color:var(--checkbox-outline-color, var(--accent-color, #1565c0))}.bbi-checkbox-input:disabled+.bbi-checkbox-label{cursor:not-allowed;color:var(--checkbox-disabled-color, #c6c6c6)}.bbi-checkbox-input:disabled+.bbi-checkbox-label:before{border-color:var(--checkbox-disabled-color, #c6c6c6)}.bbi-checkbox-input:disabled+.bbi-checkbox-label>.bbi-checkbox-text{color:var(--checkbox-disabled-color, #c6c6c6)}.bbi-checkbox-input:checked:disabled+.bbi-checkbox-label:before,.bbi-checkbox-input:indeterminate:disabled+.bbi-checkbox-label:before{background-color:var(--checkbox-disabled-color, #c6c6c6)}.bbi-checkbox-label{border:0;margin:0;display:flex;cursor:pointer;-webkit-user-select:none;user-select:none;position:relative;align-items:center;font-family:inherit;vertical-align:initial;min-height:var(--checkbox-size, 20px);padding-left:var(--checkbox-size, 20px)}.bbi-checkbox-label:before{left:0;content:\"\";position:absolute;width:var(--checkbox-size, 20px);height:var(--checkbox-size, 20px);background-color:initial;border-radius:var(--checkbox-border-radius, 4px);outline-offset:var(--checkbox-outline-offset, 1px);outline:var(--checkbox-outline-thickness, 2px) solid transparent;border:var(--checkbox-border-thickness, 1px) solid var(--checkbox-border-color, #111111);transition:outline-color .2s cubic-bezier(0,0,.2,1),background-color .18s cubic-bezier(0,0,.2,1),border-color .18s cubic-bezier(0,0,.2,1)}.bbi-checkbox-label:after{opacity:0;content:\"\";background:none;position:absolute;transform-origin:center;width:var(--checkbox-check-size, 12px);transform:scale(.85) rotate(-60deg);height:calc(var(--checkbox-check-size, 12px) / 2);top:calc(50% - var(--checkbox-check-size, 12px) / 2 * .75);left:calc((var(--checkbox-size, 20px) - var(--checkbox-check-size, 12px)) / 2);border-left:var(--checkbox-check-thickness, 2px) solid var(--checkbox-check-color, white);border-bottom:var(--checkbox-check-thickness, 2px) solid var(--checkbox-check-color, white);transition:opacity .12s cubic-bezier(0,0,.2,1),transform .18s cubic-bezier(0,0,.2,1)}.bbi-checkbox-text{color:var(--checkbox-label-color, #111111);padding-left:var(--checkbox-label-offset, 6px);font-size:var(--checkbox-label-font-size, 16px);font-weight:var(--checkbox-label-font-weight, 400);line-height:var(--checkbox-label-line-height, 1.28)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
185
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbiCheckbox, decorators: [{
173
186
  type: Component,
174
187
  args: [{ selector: 'bbi-checkbox', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
175
188
  { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BbiCheckbox), multi: true }
@@ -178,7 +191,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImpor
178
191
  '[class.grouped]': 'grouped',
179
192
  '[class.indeterminate]': 'indeterminate',
180
193
  '[class.required]': 'required'
181
- }, preserveWhitespaces: false, template: "<input #input\r\n [id]=\"labelId\"\r\n [disabled]=\"disabled\"\r\n [checked]=\"checked\"\r\n (change)=\"onChangeEvent($event)\"\r\n (click)=\"onClickEvent($event)\"\r\n (blur)=\"onTouched()\"\r\n class=\"bbi-checkbox-input\"\r\n type=\"checkbox\">\r\n<label [attr.for]=\"labelId\"\r\n class=\"bbi-checkbox-label\">\r\n <span class=\"bbi-checkbox-text\"><ng-content></ng-content></span>\r\n</label>\r\n", styles: [".bbi-checkbox{display:block}.bbi-checkbox.grouped{margin-bottom:20px}.bbi-checkbox.required>.bbi-checkbox-label>.bbi-checkbox-text:after{content:\"*\";color:#c23934;font-size:12px;line-height:1.5;margin-left:3px}.bbi-checkbox-input{border:0;width:1px;padding:0;height:1px;margin:-1px;overflow:hidden;position:absolute;visibility:inherit;white-space:nowrap;clip:rect(0,0,0,0)}.bbi-checkbox-input:checked+.bbi-checkbox-label:before,.bbi-checkbox-input:indeterminate+.bbi-checkbox-label:before{border:1px solid var(--checkbox-accent-color, #1565c0);background-color:var(--checkbox-accent-color, #1565c0)}.bbi-checkbox-input:checked+.bbi-checkbox-label:after,.bbi-checkbox-input:indeterminate+.bbi-checkbox-label:after{opacity:1;transform:scale(1) rotate(-45deg)}.bbi-checkbox-input:indeterminate+.bbi-checkbox-label:after{top:-1px;left:5px;width:10px;transform:scale(1) rotate(0);border-left:0 solid var(--checkbox-check-color, white);border-bottom:2px solid var(--checkbox-check-color, white)}.bbi-checkbox-input:focus+.bbi-checkbox-label:before{outline-color:var(--checkbox-accent-color, #1565c0)}.bbi-checkbox-input:disabled+.bbi-checkbox-label{cursor:not-allowed;color:var(--checkbox-disabled-color, #c6c6c6)}.bbi-checkbox-input:disabled+.bbi-checkbox-label:before{border-color:var(--checkbox-disabled-color, #c6c6c6)}.bbi-checkbox-input:disabled+.bbi-checkbox-label>.bbi-checkbox-text{color:var(--checkbox-disabled-color, #c6c6c6)}.bbi-checkbox-input:checked:disabled+.bbi-checkbox-label:before,.bbi-checkbox-input:indeterminate:disabled+.bbi-checkbox-label:before{background-color:var(--checkbox-disabled-color, #c6c6c6)}.bbi-checkbox-label{border:0;margin:0;display:flex;cursor:pointer;font-size:16px;font-weight:400;line-height:1.28;-webkit-user-select:none;user-select:none;position:relative;padding-left:20px;font-family:inherit;vertical-align:initial}.bbi-checkbox-label:before{left:0;width:20px;content:\"\";height:20px;position:absolute;border-radius:4px;outline-offset:1px;background-color:initial;outline:2px solid transparent;border:1px solid var(--checkbox-border-color, #111111);transition:outline-color .2s cubic-bezier(0,0,.2,1),background-color .18s cubic-bezier(0,0,.2,1),border-color .18s cubic-bezier(0,0,.2,1)}.bbi-checkbox-label:after{left:4px;opacity:0;width:12px;height:6px;content:\"\";margin-top:6px;background:none;position:absolute;transform-origin:center;transform:scale(.85) rotate(-60deg);border-left:2px solid var(--checkbox-check-color, white);border-bottom:2px solid var(--checkbox-check-color, white);transition:opacity .12s cubic-bezier(0,0,.2,1),transform .18s cubic-bezier(0,0,.2,1)}.bbi-checkbox-text{padding-left:6px;color:var(--checkbox-label-color, #111111)}\n"] }]
194
+ }, preserveWhitespaces: false, template: "<input #input\r\n [id]=\"labelId\"\r\n [disabled]=\"disabled\"\r\n [checked]=\"checked\"\r\n (change)=\"onChangeEvent($event)\"\r\n (click)=\"onClickEvent($event)\"\r\n (blur)=\"onTouched()\"\r\n class=\"bbi-checkbox-input\"\r\n type=\"checkbox\">\r\n<label [attr.for]=\"labelId\"\r\n class=\"bbi-checkbox-label\">\r\n <span class=\"bbi-checkbox-text\"><ng-content></ng-content></span>\r\n</label>\r\n", styles: [".bbi-checkbox{display:block}.bbi-checkbox.grouped{margin-bottom:var(--checkbox-grouping, 20px)}.bbi-checkbox.required>.bbi-checkbox-label>.bbi-checkbox-text:after{content:\"*\";color:#c23934;font-size:12px;line-height:1.5;margin-left:3px}.bbi-checkbox-input{border:0;width:1px;padding:0;height:1px;margin:-1px;overflow:hidden;position:absolute;visibility:inherit;white-space:nowrap;clip:rect(0,0,0,0)}.bbi-checkbox-input:checked+.bbi-checkbox-label:before,.bbi-checkbox-input:indeterminate+.bbi-checkbox-label:before{background-color:var(--checkbox-accent-color, var(--accent-color, #1565c0));border:var(--checkbox-border-thickness, 1px) solid var(--checkbox-accent-color, var(--accent-color, #1565c0))}.bbi-checkbox-input:checked+.bbi-checkbox-label:after,.bbi-checkbox-input:indeterminate+.bbi-checkbox-label:after{opacity:1;transform:scale(1) rotate(-45deg)}.bbi-checkbox-input:indeterminate+.bbi-checkbox-label:after{left:calc(var(--checkbox-size, 20px) / 4);width:calc(var(--checkbox-size, 20px) / 2);transform:scale(1) rotate(0);border-left:0 solid var(--checkbox-check-color, white);border-bottom:var(--checkbox-check-thickness, 2px) solid var(--checkbox-check-color, white)}.bbi-checkbox-input:focus+.bbi-checkbox-label:before{outline-color:var(--checkbox-outline-color, var(--accent-color, #1565c0))}.bbi-checkbox-input:disabled+.bbi-checkbox-label{cursor:not-allowed;color:var(--checkbox-disabled-color, #c6c6c6)}.bbi-checkbox-input:disabled+.bbi-checkbox-label:before{border-color:var(--checkbox-disabled-color, #c6c6c6)}.bbi-checkbox-input:disabled+.bbi-checkbox-label>.bbi-checkbox-text{color:var(--checkbox-disabled-color, #c6c6c6)}.bbi-checkbox-input:checked:disabled+.bbi-checkbox-label:before,.bbi-checkbox-input:indeterminate:disabled+.bbi-checkbox-label:before{background-color:var(--checkbox-disabled-color, #c6c6c6)}.bbi-checkbox-label{border:0;margin:0;display:flex;cursor:pointer;-webkit-user-select:none;user-select:none;position:relative;align-items:center;font-family:inherit;vertical-align:initial;min-height:var(--checkbox-size, 20px);padding-left:var(--checkbox-size, 20px)}.bbi-checkbox-label:before{left:0;content:\"\";position:absolute;width:var(--checkbox-size, 20px);height:var(--checkbox-size, 20px);background-color:initial;border-radius:var(--checkbox-border-radius, 4px);outline-offset:var(--checkbox-outline-offset, 1px);outline:var(--checkbox-outline-thickness, 2px) solid transparent;border:var(--checkbox-border-thickness, 1px) solid var(--checkbox-border-color, #111111);transition:outline-color .2s cubic-bezier(0,0,.2,1),background-color .18s cubic-bezier(0,0,.2,1),border-color .18s cubic-bezier(0,0,.2,1)}.bbi-checkbox-label:after{opacity:0;content:\"\";background:none;position:absolute;transform-origin:center;width:var(--checkbox-check-size, 12px);transform:scale(.85) rotate(-60deg);height:calc(var(--checkbox-check-size, 12px) / 2);top:calc(50% - var(--checkbox-check-size, 12px) / 2 * .75);left:calc((var(--checkbox-size, 20px) - var(--checkbox-check-size, 12px)) / 2);border-left:var(--checkbox-check-thickness, 2px) solid var(--checkbox-check-color, white);border-bottom:var(--checkbox-check-thickness, 2px) solid var(--checkbox-check-color, white);transition:opacity .12s cubic-bezier(0,0,.2,1),transform .18s cubic-bezier(0,0,.2,1)}.bbi-checkbox-text{color:var(--checkbox-label-color, #111111);padding-left:var(--checkbox-label-offset, 6px);font-size:var(--checkbox-label-font-size, 16px);font-weight:var(--checkbox-label-font-weight, 400);line-height:var(--checkbox-label-line-height, 1.28)}\n"] }]
182
195
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { inputElementRef: [{
183
196
  type: ViewChild,
184
197
  args: ['input', { static: true }]
@@ -200,10 +213,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImpor
200
213
 
201
214
  class CheckboxModule {
202
215
  }
203
- CheckboxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: CheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
204
- CheckboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: CheckboxModule, declarations: [BbiCheckbox, BbiCheckboxGroup], imports: [CommonModule], exports: [BbiCheckbox, BbiCheckboxGroup] });
205
- CheckboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: CheckboxModule, imports: [[CommonModule]] });
206
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: CheckboxModule, decorators: [{
216
+ CheckboxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: CheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
217
+ CheckboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.3", ngImport: i0, type: CheckboxModule, declarations: [BbiCheckbox, BbiCheckboxGroup], imports: [CommonModule], exports: [BbiCheckbox, BbiCheckboxGroup] });
218
+ CheckboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: CheckboxModule, imports: [CommonModule] });
219
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: CheckboxModule, decorators: [{
207
220
  type: NgModule,
208
221
  args: [{
209
222
  imports: [CommonModule],
@@ -214,10 +227,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImpor
214
227
 
215
228
  class ControlsModule {
216
229
  }
217
- ControlsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: ControlsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
218
- ControlsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: ControlsModule, imports: [CheckboxModule], exports: [CheckboxModule] });
219
- ControlsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: ControlsModule, imports: [[CheckboxModule], CheckboxModule] });
220
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: ControlsModule, decorators: [{
230
+ ControlsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: ControlsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
231
+ ControlsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.3", ngImport: i0, type: ControlsModule, imports: [CheckboxModule], exports: [CheckboxModule] });
232
+ ControlsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: ControlsModule, imports: [CheckboxModule, CheckboxModule] });
233
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: ControlsModule, decorators: [{
221
234
  type: NgModule,
222
235
  args: [{
223
236
  imports: [CheckboxModule],