@bravobit/bb-foundation 0.23.5 → 0.23.6

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 (172) hide show
  1. package/controls/lib/control-error/control-error.utils.d.ts +3 -0
  2. package/controls/lib/controls.module.d.ts +4 -2
  3. package/controls/lib/form-control/form-control/form-control.component.d.ts +0 -2
  4. package/controls/lib/radio/radio-button/radio-button.component.d.ts +24 -0
  5. package/controls/lib/radio/radio-group/radio-group.component.d.ts +53 -0
  6. package/controls/lib/radio/radio.module.d.ts +11 -0
  7. package/controls/lib/toggle/toggle/toggle.component.d.ts +45 -0
  8. package/controls/lib/toggle/toggle-group/toggle-group.component.d.ts +23 -0
  9. package/controls/lib/toggle/toggle.module.d.ts +10 -0
  10. package/controls/public_api.d.ts +7 -0
  11. package/elements/lib/avatar/avatar.component.d.ts +1 -1
  12. package/esm2020/auth/lib/auth.interceptor.mjs +3 -3
  13. package/esm2020/auth/lib/auth.module.mjs +4 -4
  14. package/esm2020/auth/lib/auth.service.mjs +3 -3
  15. package/esm2020/auth/lib/directives/authenticated.directive.mjs +3 -3
  16. package/esm2020/auth/lib/directives/permission.directive.mjs +3 -3
  17. package/esm2020/auth/lib/guards/anonymous.guard.mjs +3 -3
  18. package/esm2020/auth/lib/guards/authenticated.guard.mjs +3 -3
  19. package/esm2020/auth/lib/guards/permission.guard.mjs +3 -3
  20. package/esm2020/auth/lib/permissions/permissions.service.mjs +3 -3
  21. package/esm2020/collections/lib/collections.module.mjs +4 -4
  22. package/esm2020/collections/lib/components/collections-pager/collections-pager.component.mjs +3 -3
  23. package/esm2020/collections/lib/components/collections-viewer/collections-viewer.component.mjs +3 -3
  24. package/esm2020/collections/lib/components/collections.directive.mjs +12 -12
  25. package/esm2020/controls/lib/checkbox/checkbox/checkbox.component.mjs +22 -10
  26. package/esm2020/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +13 -7
  27. package/esm2020/controls/lib/checkbox/checkbox.module.mjs +4 -4
  28. package/esm2020/controls/lib/control-error/control-error/control-error.component.mjs +3 -3
  29. package/esm2020/controls/lib/control-error/control-error-submit.directive.mjs +3 -3
  30. package/esm2020/controls/lib/control-error/control-error.module.mjs +4 -4
  31. package/esm2020/controls/lib/control-error/control-error.utils.mjs +20 -0
  32. package/esm2020/controls/lib/controls.module.mjs +19 -10
  33. package/esm2020/controls/lib/form-control/form-control/form-control.component.mjs +14 -30
  34. package/esm2020/controls/lib/form-control/form-control-addon/form-control-addon.component.mjs +3 -3
  35. package/esm2020/controls/lib/form-control/form-control-input.directive.mjs +3 -3
  36. package/esm2020/controls/lib/form-control/form-control.module.mjs +4 -4
  37. package/esm2020/controls/lib/radio/radio-button/radio-button.component.mjs +75 -0
  38. package/esm2020/controls/lib/radio/radio-group/radio-group.component.mjs +168 -0
  39. package/esm2020/controls/lib/radio/radio.module.mjs +21 -0
  40. package/esm2020/controls/lib/toggle/toggle/toggle.component.mjs +153 -0
  41. package/esm2020/controls/lib/toggle/toggle-group/toggle-group.component.mjs +62 -0
  42. package/esm2020/controls/lib/toggle/toggle.module.mjs +20 -0
  43. package/esm2020/controls/public_api.mjs +8 -1
  44. package/esm2020/dashboard/lib/dashboard/dashboard.component.mjs +3 -3
  45. package/esm2020/dashboard/lib/dashboard-header/dashboard-header.component.mjs +3 -3
  46. package/esm2020/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +3 -3
  47. package/esm2020/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +3 -3
  48. package/esm2020/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +3 -3
  49. package/esm2020/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +3 -3
  50. package/esm2020/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +3 -3
  51. package/esm2020/dashboard/lib/dashboard.module.mjs +4 -4
  52. package/esm2020/dialog/lib/dialog-actions/dialog-actions.component.mjs +3 -3
  53. package/esm2020/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +3 -3
  54. package/esm2020/dialog/lib/dialog-container/dialog-container.component.mjs +3 -3
  55. package/esm2020/dialog/lib/dialog-header/dialog-header.component.mjs +3 -3
  56. package/esm2020/dialog/lib/dialog-link/dialog-link.component.mjs +3 -3
  57. package/esm2020/dialog/lib/dialog-modal/dialog-modal.component.mjs +3 -3
  58. package/esm2020/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +3 -3
  59. package/esm2020/dialog/lib/dialog.insertion.mjs +3 -3
  60. package/esm2020/dialog/lib/dialog.module.mjs +4 -4
  61. package/esm2020/dialog/lib/dialog.service.mjs +3 -3
  62. package/esm2020/elements/lib/avatar/avatar.component.mjs +15 -13
  63. package/esm2020/elements/lib/button/button.component.mjs +6 -6
  64. package/esm2020/elements/lib/checkbox/checkbox.component.mjs +3 -3
  65. package/esm2020/elements/lib/date-picker/date-picker.component.mjs +3 -3
  66. package/esm2020/elements/lib/directives/addon.directive.mjs +6 -6
  67. package/esm2020/elements/lib/directives/form-submit.directive.mjs +3 -3
  68. package/esm2020/elements/lib/directives/form-submitter.directive.mjs +3 -3
  69. package/esm2020/elements/lib/directives/input.directive.mjs +6 -6
  70. package/esm2020/elements/lib/dropdown/dropdown.component.mjs +6 -6
  71. package/esm2020/elements/lib/elements.module.mjs +4 -4
  72. package/esm2020/elements/lib/file-picker/file-picker.component.mjs +3 -3
  73. package/esm2020/elements/lib/form-control/form-control.component.mjs +3 -3
  74. package/esm2020/elements/lib/form-error/form-error.component.mjs +3 -3
  75. package/esm2020/elements/lib/form-group/form-group.component.mjs +3 -3
  76. package/esm2020/elements/lib/icon/icon.component.mjs +3 -3
  77. package/esm2020/elements/lib/image-picker/image-picker.component.mjs +3 -3
  78. package/esm2020/elements/lib/pipes/file-image.pipe.mjs +3 -3
  79. package/esm2020/elements/lib/pipes/file-size.pipe.mjs +3 -3
  80. package/esm2020/elements/lib/pipes/relative-time.pipe.mjs +3 -3
  81. package/esm2020/elements/lib/spinner/spinner.component.mjs +3 -3
  82. package/esm2020/elements/lib/tag/tag.component.mjs +3 -3
  83. package/esm2020/http/lib/http.module.mjs +4 -4
  84. package/esm2020/http/lib/interceptors/base-url.interceptor.mjs +3 -3
  85. package/esm2020/http/lib/interceptors/error.interceptor.mjs +3 -3
  86. package/esm2020/lib/core/services/clipboard.service.mjs +3 -3
  87. package/esm2020/lib/core/services/exif.service.mjs +3 -3
  88. package/esm2020/lib/core/services/file-loader.service.mjs +3 -3
  89. package/esm2020/lib/core/services/image-converter.service.mjs +3 -3
  90. package/esm2020/lib/core/services/languages.service.mjs +3 -3
  91. package/esm2020/lib/core/services/network.service.mjs +3 -3
  92. package/esm2020/lib/core/services/patch.service.mjs +3 -3
  93. package/esm2020/localize/lib/localize.module.mjs +4 -4
  94. package/esm2020/localize/lib/localize.pipe.mjs +3 -3
  95. package/esm2020/localize/lib/localize.service.mjs +3 -3
  96. package/esm2020/localize/lib/views/localize-string/localize-string.component.mjs +3 -3
  97. package/esm2020/localize/lib/views/localize-template.directive.mjs +3 -3
  98. package/esm2020/masking/lib/directives/currency-mask.directive.mjs +3 -3
  99. package/esm2020/masking/lib/directives/date-mask.directive.mjs +3 -3
  100. package/esm2020/masking/lib/directives/input-mask.directive.mjs +3 -3
  101. package/esm2020/masking/lib/masking.module.mjs +4 -4
  102. package/esm2020/masking/lib/masking.service.mjs +3 -3
  103. package/esm2020/notifications/lib/notifications-item/notifications-item.component.mjs +3 -3
  104. package/esm2020/notifications/lib/notifications-list/notifications-list.component.mjs +3 -3
  105. package/esm2020/notifications/lib/notifications.module.mjs +4 -4
  106. package/esm2020/notifications/lib/notifications.service.mjs +3 -3
  107. package/esm2020/recaptcha/lib/recaptcha/recaptcha.component.mjs +3 -3
  108. package/esm2020/recaptcha/lib/recaptcha-loader.service.mjs +3 -3
  109. package/esm2020/recaptcha/lib/recaptcha.module.mjs +4 -4
  110. package/esm2020/storage/lib/storage.service.mjs +3 -3
  111. package/esm2020/table/lib/components/table/table.component.mjs +9 -9
  112. package/esm2020/table/lib/components/table-cell/table-cell.component.mjs +3 -3
  113. package/esm2020/table/lib/components/table-header-cell/table-header-cell.component.mjs +3 -3
  114. package/esm2020/table/lib/components/table-pager/table-pager.component.mjs +3 -3
  115. package/esm2020/table/lib/table.module.mjs +4 -4
  116. package/esm2020/theming/lib/themes/radio-button.theme.mjs +29 -0
  117. package/esm2020/theming/lib/themes/radio-group.theme.mjs +20 -0
  118. package/esm2020/theming/lib/themes/toggle-group.theme.mjs +17 -0
  119. package/esm2020/theming/lib/themes/toggle.theme.mjs +28 -0
  120. package/esm2020/theming/lib/theming.data.mjs +9 -1
  121. package/esm2020/theming/lib/theming.directive.mjs +3 -3
  122. package/esm2020/theming/lib/theming.interface.mjs +1 -1
  123. package/esm2020/theming/lib/theming.module.mjs +4 -4
  124. package/esm2020/utils/lib/directives/autosize.directive.mjs +3 -3
  125. package/esm2020/utils/lib/directives/focus-trap.directive.mjs +3 -3
  126. package/esm2020/utils/lib/directives/focus.directive.mjs +3 -3
  127. package/esm2020/utils/lib/directives/template.directive.mjs +3 -3
  128. package/esm2020/utils/lib/utils.module.mjs +4 -4
  129. package/fesm2015/bravobit-bb-foundation-auth.mjs +28 -28
  130. package/fesm2015/bravobit-bb-foundation-collections.mjs +22 -22
  131. package/fesm2015/bravobit-bb-foundation-controls.mjs +677 -179
  132. package/fesm2015/bravobit-bb-foundation-controls.mjs.map +1 -1
  133. package/fesm2015/bravobit-bb-foundation-dashboard.mjs +25 -25
  134. package/fesm2015/bravobit-bb-foundation-dialog.mjs +31 -31
  135. package/fesm2015/bravobit-bb-foundation-elements.mjs +87 -85
  136. package/fesm2015/bravobit-bb-foundation-elements.mjs.map +1 -1
  137. package/fesm2015/bravobit-bb-foundation-http.mjs +10 -10
  138. package/fesm2015/bravobit-bb-foundation-localize.mjs +16 -16
  139. package/fesm2015/bravobit-bb-foundation-masking.mjs +16 -16
  140. package/fesm2015/bravobit-bb-foundation-notifications.mjs +13 -13
  141. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs +10 -10
  142. package/fesm2015/bravobit-bb-foundation-storage.mjs +3 -3
  143. package/fesm2015/bravobit-bb-foundation-table.mjs +22 -22
  144. package/fesm2015/bravobit-bb-foundation-theming.mjs +102 -7
  145. package/fesm2015/bravobit-bb-foundation-theming.mjs.map +1 -1
  146. package/fesm2015/bravobit-bb-foundation-utils.mjs +16 -16
  147. package/fesm2015/bravobit-bb-foundation.mjs +21 -21
  148. package/fesm2020/bravobit-bb-foundation-auth.mjs +28 -28
  149. package/fesm2020/bravobit-bb-foundation-collections.mjs +22 -22
  150. package/fesm2020/bravobit-bb-foundation-controls.mjs +663 -173
  151. package/fesm2020/bravobit-bb-foundation-controls.mjs.map +1 -1
  152. package/fesm2020/bravobit-bb-foundation-dashboard.mjs +25 -25
  153. package/fesm2020/bravobit-bb-foundation-dialog.mjs +31 -31
  154. package/fesm2020/bravobit-bb-foundation-elements.mjs +87 -85
  155. package/fesm2020/bravobit-bb-foundation-elements.mjs.map +1 -1
  156. package/fesm2020/bravobit-bb-foundation-http.mjs +10 -10
  157. package/fesm2020/bravobit-bb-foundation-localize.mjs +16 -16
  158. package/fesm2020/bravobit-bb-foundation-masking.mjs +16 -16
  159. package/fesm2020/bravobit-bb-foundation-notifications.mjs +13 -13
  160. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs +10 -10
  161. package/fesm2020/bravobit-bb-foundation-storage.mjs +3 -3
  162. package/fesm2020/bravobit-bb-foundation-table.mjs +22 -22
  163. package/fesm2020/bravobit-bb-foundation-theming.mjs +102 -7
  164. package/fesm2020/bravobit-bb-foundation-theming.mjs.map +1 -1
  165. package/fesm2020/bravobit-bb-foundation-utils.mjs +16 -16
  166. package/fesm2020/bravobit-bb-foundation.mjs +21 -21
  167. package/package.json +1 -1
  168. package/theming/lib/themes/radio-button.theme.d.ts +26 -0
  169. package/theming/lib/themes/radio-group.theme.d.ts +17 -0
  170. package/theming/lib/themes/toggle-group.theme.d.ts +16 -0
  171. package/theming/lib/themes/toggle.theme.d.ts +25 -0
  172. package/theming/lib/theming.interface.d.ts +8 -0
@@ -217,11 +217,11 @@ class BbTablePager extends BbTablePagerMixinBase {
217
217
  .map(page => ({ page, active: pageNumber === page }));
218
218
  }
219
219
  }
220
- BbTablePager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbTablePager, deps: null, target: i0.ɵɵFactoryTarget.Component });
221
- BbTablePager.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: BbTablePager, selector: "bb-table-pager", inputs: { disabled: "disabled", amountOfButtons: "amountOfButtons", showArrowButtons: "showArrowButtons", pageNumber: "pageNumber", totalPages: "totalPages" }, host: { properties: { "class.disabled": "disabled" }, classAttribute: "bb-table-pager" }, providers: [
220
+ BbTablePager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbTablePager, deps: null, target: i0.ɵɵFactoryTarget.Component });
221
+ BbTablePager.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: BbTablePager, selector: "bb-table-pager", inputs: { disabled: "disabled", amountOfButtons: "amountOfButtons", showArrowButtons: "showArrowButtons", pageNumber: "pageNumber", totalPages: "totalPages" }, host: { properties: { "class.disabled": "disabled" }, classAttribute: "bb-table-pager" }, providers: [
222
222
  { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BbTablePager), multi: true }
223
223
  ], usesInheritance: true, ngImport: i0, template: "<ul class=\"bb-pager-list\">\n <!-- The previous page arrow button. -->\n <li *ngIf=\"showArrowButtons\"\n class=\"bb-pager-list-item\"\n title=\"Previous page\">\n <button [disabled]=\"isPreviousDisabled$ | async\"\n (click)=\"goToPrevious()\"\n class=\"bb-pager-list-button\"\n type=\"button\">\n <bb-icon src=\"material:keyboard_arrow_left\"></bb-icon>\n </button>\n </li>\n\n <!-- The list of number buttons to navigate through the list. -->\n <ng-container *ngIf=\"list$ | async as list\">\n <li *ngFor=\"let item of list; trackBy: trackByIndex\"\n [title]=\"'Page ' + item?.page\"\n class=\"bb-pager-list-item\">\n <button (click)=\"goToIndex(item?.page)\"\n [class.active]=\"item?.active\"\n class=\"bb-pager-list-button\"\n type=\"button\">\n {{ item?.page }}\n </button>\n </li>\n </ng-container>\n\n <!-- The next page arrow button. -->\n <li *ngIf=\"showArrowButtons\"\n class=\"bb-pager-list-item\"\n title=\"Next page\">\n <button [disabled]=\"isNextDisabled$ | async\"\n (click)=\"goToNext()\"\n class=\"bb-pager-list-button\"\n type=\"button\">\n <bb-icon src=\"material:keyboard_arrow_right\"></bb-icon>\n </button>\n </li>\n</ul>\n", styles: [".bb-table-pager{flex:1;display:flex;align-items:center;justify-content:flex-end}.bb-table-pager.disabled{opacity:.5;-webkit-user-select:none;user-select:none;pointer-events:none}.bb-pager-list{display:flex}.bb-pager-list-item{margin-left:8px}.bb-pager-list-button{padding:0;color:#3d464d;line-height:1;min-width:32px;font-size:16px;-webkit-appearance:none;appearance:none;font-weight:500;min-height:32px;-webkit-user-select:none;user-select:none;border-radius:4px;align-items:center;display:inline-flex;justify-content:center;border:1px solid #b6bbc1;transition-duration:.2s;background-color:transparent;transition-timing-function:cubic-bezier(0,0,.2,1);transition-property:color,border-color,opacity,background-color;box-shadow:inset 0 3px #b7bcc233,0 6px 6px -6px #0000001a}.bb-pager-list-button:hover,.bb-pager-list-button:focus{background-color:#0000000a}.bb-pager-list-button.active,.bb-pager-list-button.active:hover{color:#2196f3;cursor:default;border-color:#2196f3;background-color:transparent}.bb-pager-list-button:disabled{opacity:.35;cursor:default;pointer-events:none}\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: "component", type: i3.BbIcon, selector: "bb-icon", inputs: ["alt", "size", "src", "ariaHidden"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
224
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbTablePager, decorators: [{
224
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbTablePager, decorators: [{
225
225
  type: Component,
226
226
  args: [{ selector: 'bb-table-pager', changeDetection: ChangeDetectionStrategy.OnPush, host: {
227
227
  'class': 'bb-table-pager',
@@ -241,9 +241,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
241
241
 
242
242
  class BbTableColumnDef {
243
243
  }
244
- BbTableColumnDef.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbTableColumnDef, deps: [], target: i0.ɵɵFactoryTarget.Directive });
245
- BbTableColumnDef.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.1", type: BbTableColumnDef, selector: "[bbTableColumnDef]", ngImport: i0 });
246
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbTableColumnDef, decorators: [{
244
+ BbTableColumnDef.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbTableColumnDef, deps: [], target: i0.ɵɵFactoryTarget.Directive });
245
+ BbTableColumnDef.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.2", type: BbTableColumnDef, selector: "[bbTableColumnDef]", ngImport: i0 });
246
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbTableColumnDef, decorators: [{
247
247
  type: Directive,
248
248
  args: [{
249
249
  selector: '[bbTableColumnDef]'
@@ -251,9 +251,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
251
251
  }] });
252
252
  class BbTableRowDef {
253
253
  }
254
- BbTableRowDef.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbTableRowDef, deps: [], target: i0.ɵɵFactoryTarget.Directive });
255
- BbTableRowDef.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.1", type: BbTableRowDef, selector: "[bbTableRowDef]", ngImport: i0 });
256
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbTableRowDef, decorators: [{
254
+ BbTableRowDef.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbTableRowDef, deps: [], target: i0.ɵɵFactoryTarget.Directive });
255
+ BbTableRowDef.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.2", type: BbTableRowDef, selector: "[bbTableRowDef]", ngImport: i0 });
256
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbTableRowDef, decorators: [{
257
257
  type: Directive,
258
258
  args: [{
259
259
  selector: '[bbTableRowDef]'
@@ -392,9 +392,9 @@ class BbTable {
392
392
  return this.form.valueChanges.pipe(startWith(this.form.value));
393
393
  }
394
394
  }
395
- BbTable.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbTable, deps: [], target: i0.ɵɵFactoryTarget.Component });
396
- BbTable.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: BbTable, selector: "bb-table", inputs: { identifier: "identifier", dataSource: "dataSource", queryFields: "queryFields", sortingStrategy: "sortingStrategy", header: "header", footer: "footer", sizes: "sizes" }, host: { classAttribute: "bb-table" }, queries: [{ propertyName: "tableRowTemplate", first: true, predicate: BbTableRowDef, descendants: true, read: TemplateRef }, { propertyName: "tableColumnTemplates", predicate: BbTableColumnDef, read: TemplateRef }], ngImport: i0, template: "<!--\n This is the header of the table. It can be a user\n defined custom header or just the default header.\n-->\n\n<header *ngIf=\"(header === true ? headerTemplate : header) as template\"\n class=\"bb-table-top-actions\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n</header>\n\n<!--\n This is the table that contains the\n rows and columns.\n-->\n\n<div class=\"bb-table-wrapper\">\n <div *ngIf=\"isLoading$ | async\"\n class=\"bb-table-progress\">\n <div class=\"bb-table-indeterminate\"></div>\n </div>\n <table class=\"bb-table-container\">\n <thead>\n <tr>\n <ng-content select=\"bb-table-header-cell\"></ng-content>\n </tr>\n </thead>\n <tbody *ngIf=\"data$ | async as data; else isLoadingTemplate\"\n [ngSwitch]=\"data?.state\">\n <ng-container *ngSwitchCase=\"'success'\">\n <ng-container *ngIf=\"!!tableRowTemplate; else tableCellsTemplates\">\n <ng-container\n *ngTemplateOutlet=\"tableRowTemplate; context: {data: data?.result?.data || []}\"></ng-container>\n </ng-container>\n\n <ng-template #tableCellsTemplates>\n <tr *ngFor=\"let item of data?.result?.data; trackBy: trackByFn\">\n <ng-container *ngFor=\"let template of tableColumnTemplates\">\n <ng-container *ngTemplateOutlet=\"template; context: {item: item}\"></ng-container>\n </ng-container>\n </tr>\n </ng-template>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'empty'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error_datasource'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error_not_found'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error_server'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error_down'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n </tbody>\n </table>\n</div>\n\n<footer *ngIf=\"(footer === true ? footerTemplate : footer) as template\"\n class=\"bb-table-bottom-actions\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n</footer>\n\n<ng-template #isLoadingTemplate>\n <tr>\n <td [attr.colspan]=\"headerCount\"\n class=\"bb-table-template\">\n <div class=\"bb-table-template-content\">\n {{ 'tables.loading' | bbLocalize }}\n </div>\n </td>\n </tr>\n</ng-template>\n\n<!--\n This is the template that will be used when the user has not\n supplied a custom header template.\n-->\n\n<ng-template #headerTemplate>\n <ng-content></ng-content>\n <bb-form-control>\n <input [formControl]=\"queryControl\"\n [placeholder]=\"'tables.search' | bbLocalize\"\n bbInput\n autocomplete=\"off\">\n <bb-icon *ngIf=\"queryControl?.value?.length <= 0; else closeButtonTemplate\"\n bbSuffix\n src=\"material:search\">\n </bb-icon>\n </bb-form-control>\n</ng-template>\n\n<!--\n This is the template that will be used when the user has not\n supplied a custom footer template.\n-->\n\n<ng-template #footerTemplate>\n <bb-form-control *ngIf=\"sizes?.length > 1\">\n <select [formControl]=\"pageSizeControl\"\n bbInput\n title=\"Sizes\">\n <option *ngFor=\"let item of sizes; trackBy: trackByValue\"\n [ngValue]=\"item\">\n {{ item }} / {{ 'tables.page' | bbLocalize }}\n </option>\n </select>\n </bb-form-control>\n\n <bb-table-pager [totalPages]=\"(data$ | async)?.result?.totalPages\"\n [formControl]=\"pageNumberControl\">\n </bb-table-pager>\n</ng-template>\n\n<!--\n This the template that will be used when the user\n has filled in some data in the query control.\n-->\n\n<ng-template #closeButtonTemplate>\n <button bbSuffix\n (click)=\"queryControl?.patchValue('')\"\n type=\"button\"\n class=\"bb-table-progress-close-query\">\n <bb-icon src=\"material:close\"></bb-icon>\n </button>\n</ng-template>\n\n<ng-template #errorTemplate let-state=\"state\" let-status=\"statusCode\">\n <tr>\n <td [attr.colspan]=\"headerCount\"\n class=\"bb-table-template\">\n <div class=\"bb-table-template-content\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"64\" height=\"41\">\n <g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(0 1)\">\n <ellipse cx=\"32\" cy=\"33\" fill=\"#F5F5F5\" rx=\"32\" ry=\"7\"></ellipse>\n <g fill-rule=\"nonzero\" stroke=\"#D9D9D9\">\n <path\n d=\"M55 12.7605604L44.8543047 1.25739633C44.3674414.47382661 43.6558789 0 42.9067617 0H21.0932383c-.7491172 0-1.4606797.47395025-1.947543 1.25739633L9 12.7605604V22h46v-9.2394396z\"></path>\n <path fill=\"#FAFAFA\"\n d=\"M41.6132813 15.9315c0-1.6056489.9936718-2.931266 2.2264179-2.9315H55v18.1371277C55 33.2589574 53.6793867 35 52.0504297 35H11.94957031C10.32052344 35 9 33.2588404 9 31.1371277V13h11.1603008c1.2327461 0 2.226418 1.3228085 2.226418 2.9284574v.0211809c0 1.6056489 1.0049921 2.9015426 2.2377382 2.9015426h14.751086c1.2327461 0 2.2377383-1.3078298 2.2377383-2.9134788V15.9315z\"></path>\n </g>\n </g>\n </svg>\n <span *ngIf=\"state as stateLabel\">{{ ('tables.' + stateLabel) | bbLocalize }}</span>\n <span *ngIf=\"status as statusCode\"\n class=\"bb-table-template-content-code\">(HTTP {{ statusCode }})</span>\n </div>\n </td>\n </tr>\n</ng-template>\n", styles: [".bb-table{width:100%;display:block;box-shadow:0 6px 6px -6px #0000001a}.bb-table.plain{box-shadow:none}.bb-table.plain>.bb-table-wrapper{border-top-left-radius:0;border-top-right-radius:0}.bb-table-wrapper{overflow-x:auto;position:relative;background-color:#fff;border-top-left-radius:4px;border-top-right-radius:4px}.bb-table-container{width:100%}.bb-table-container td{border-bottom:1px solid #d8d8d8}.bb-table-top-actions{display:flex;flex-wrap:wrap;flex-direction:column;padding:20px 20px 10px;background-color:#fff;justify-content:flex-end;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom:1px solid #d8d8d8}.bb-table-top-actions>*{margin-left:0;margin-bottom:10px}.bb-table-top-actions+.bb-table-wrapper{border-radius:0}.bb-table-bottom-actions{height:60px;display:flex;padding:0 20px;overflow-x:auto;align-items:center;background-color:#fff;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.bb-table-template{border:none;background-color:#f5f5f5;border-bottom:1px solid #d8d8d8}.bb-table-template-content{padding:20px;display:flex;color:#3d464d;font-size:14px;line-height:1.2;font-weight:400;min-height:140px;text-align:center;align-items:center;flex-direction:column;justify-content:center}.bb-table-template-content>svg{margin-bottom:12px}.bb-table-template-content-code{opacity:.5;margin-top:5px;display:inline-block}.bb-table-progress{top:0;left:0;right:0;opacity:0;width:100%;height:4px;display:block;overflow:hidden;position:absolute;background-color:#2f408b4d;animation:fadeIn .25s cubic-bezier(0,0,.2,1) .1s forwards}.bb-table-progress .bb-table-indeterminate{background-color:#2f408b}.bb-table-progress .bb-table-indeterminate:before{top:0;left:0;bottom:0;content:\"\";position:absolute;will-change:left,right;background-color:inherit;animation:indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite}.bb-table-progress .bb-table-indeterminate:after{top:0;left:0;bottom:0;content:\"\";position:absolute;animation-delay:1.15s;will-change:left,right;background-color:inherit;animation:indeterminate-short 2.1s cubic-bezier(.165,.84,.44,1) infinite}.bb-table-progress-close-query{padding:0;border:none;border-radius:4px;background-color:transparent;transition:background-color .25s cubic-bezier(0,0,.2,1)}.bb-table-progress-close-query:hover{background-color:#00000014}.bb-table-progress-close-query:focus{background-color:#0000001f}.bb-table-progress-close-query:active{background-color:#00000029}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@media only screen and (min-width: 768px){.bb-table-top-actions{flex-direction:row}.bb-table-top-actions>*:not(:first-child){margin-left:10px;margin-bottom:10px}}\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: "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: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.BbInput, selector: "input[bbInput], textarea[bbInput]", inputs: ["readonly"] }, { kind: "directive", type: i3.BbSelect, selector: "select[bbInput]", inputs: ["disabled", "required"] }, { kind: "directive", type: i3.BbSuffix, selector: "[bbSuffix]" }, { kind: "component", type: i3.BbIcon, selector: "bb-icon", inputs: ["alt", "size", "src", "ariaHidden"] }, { kind: "component", type: i3.BbFormControl, selector: "bb-form-control", inputs: ["grouped", "hideErrors", "label", "hint"] }, { kind: "component", type: BbTablePager, selector: "bb-table-pager", inputs: ["disabled", "amountOfButtons", "showArrowButtons", "pageNumber", "totalPages"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.BbLocalize, name: "bbLocalize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
397
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbTable, decorators: [{
395
+ BbTable.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbTable, deps: [], target: i0.ɵɵFactoryTarget.Component });
396
+ BbTable.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: BbTable, selector: "bb-table", inputs: { identifier: "identifier", dataSource: "dataSource", queryFields: "queryFields", sortingStrategy: "sortingStrategy", header: "header", footer: "footer", sizes: "sizes" }, host: { classAttribute: "bb-table" }, queries: [{ propertyName: "tableRowTemplate", first: true, predicate: BbTableRowDef, descendants: true, read: TemplateRef }, { propertyName: "tableColumnTemplates", predicate: BbTableColumnDef, read: TemplateRef }], ngImport: i0, template: "<!--\n This is the header of the table. It can be a user\n defined custom header or just the default header.\n-->\n\n<header *ngIf=\"(header === true ? headerTemplate : header) as template\"\n class=\"bb-table-top-actions\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n</header>\n\n<!--\n This is the table that contains the\n rows and columns.\n-->\n\n<div class=\"bb-table-wrapper\">\n <div *ngIf=\"isLoading$ | async\"\n class=\"bb-table-progress\">\n <div class=\"bb-table-indeterminate\"></div>\n </div>\n <table class=\"bb-table-container\">\n <thead>\n <tr>\n <ng-content select=\"bb-table-header-cell\"></ng-content>\n </tr>\n </thead>\n <tbody *ngIf=\"data$ | async as data; else isLoadingTemplate\"\n [ngSwitch]=\"data?.state\">\n <ng-container *ngSwitchCase=\"'success'\">\n <ng-container *ngIf=\"!!tableRowTemplate; else tableCellsTemplates\">\n <ng-container\n *ngTemplateOutlet=\"tableRowTemplate; context: {data: data?.result?.data || []}\"></ng-container>\n </ng-container>\n\n <ng-template #tableCellsTemplates>\n <tr *ngFor=\"let item of data?.result?.data; trackBy: trackByFn\">\n <ng-container *ngFor=\"let template of tableColumnTemplates\">\n <ng-container *ngTemplateOutlet=\"template; context: {item: item}\"></ng-container>\n </ng-container>\n </tr>\n </ng-template>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'empty'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error_datasource'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error_not_found'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error_server'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error_down'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n </tbody>\n </table>\n</div>\n\n<footer *ngIf=\"(footer === true ? footerTemplate : footer) as template\"\n class=\"bb-table-bottom-actions\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n</footer>\n\n<ng-template #isLoadingTemplate>\n <tr>\n <td [attr.colspan]=\"headerCount\"\n class=\"bb-table-template\">\n <div class=\"bb-table-template-content\">\n {{ 'tables.loading' | bbLocalize }}\n </div>\n </td>\n </tr>\n</ng-template>\n\n<!--\n This is the template that will be used when the user has not\n supplied a custom header template.\n-->\n\n<ng-template #headerTemplate>\n <ng-content></ng-content>\n <bb-form-control>\n <input [formControl]=\"queryControl\"\n [placeholder]=\"'tables.search' | bbLocalize\"\n bbInput\n autocomplete=\"off\">\n <bb-icon *ngIf=\"queryControl?.value?.length <= 0; else closeButtonTemplate\"\n bbSuffix\n src=\"material:search\">\n </bb-icon>\n </bb-form-control>\n</ng-template>\n\n<!--\n This is the template that will be used when the user has not\n supplied a custom footer template.\n-->\n\n<ng-template #footerTemplate>\n <bb-form-control *ngIf=\"sizes?.length > 1\">\n <select [formControl]=\"pageSizeControl\"\n bbInput\n title=\"Sizes\">\n <option *ngFor=\"let item of sizes; trackBy: trackByValue\"\n [ngValue]=\"item\">\n {{ item }} / {{ 'tables.page' | bbLocalize }}\n </option>\n </select>\n </bb-form-control>\n\n <bb-table-pager [totalPages]=\"(data$ | async)?.result?.totalPages\"\n [formControl]=\"pageNumberControl\">\n </bb-table-pager>\n</ng-template>\n\n<!--\n This the template that will be used when the user\n has filled in some data in the query control.\n-->\n\n<ng-template #closeButtonTemplate>\n <button bbSuffix\n (click)=\"queryControl?.patchValue('')\"\n type=\"button\"\n class=\"bb-table-progress-close-query\">\n <bb-icon src=\"material:close\"></bb-icon>\n </button>\n</ng-template>\n\n<ng-template #errorTemplate let-state=\"state\" let-status=\"statusCode\">\n <tr>\n <td [attr.colspan]=\"headerCount\"\n class=\"bb-table-template\">\n <div class=\"bb-table-template-content\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"64\" height=\"41\">\n <g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(0 1)\">\n <ellipse cx=\"32\" cy=\"33\" fill=\"#F5F5F5\" rx=\"32\" ry=\"7\"></ellipse>\n <g fill-rule=\"nonzero\" stroke=\"#D9D9D9\">\n <path\n d=\"M55 12.7605604L44.8543047 1.25739633C44.3674414.47382661 43.6558789 0 42.9067617 0H21.0932383c-.7491172 0-1.4606797.47395025-1.947543 1.25739633L9 12.7605604V22h46v-9.2394396z\"></path>\n <path fill=\"#FAFAFA\"\n d=\"M41.6132813 15.9315c0-1.6056489.9936718-2.931266 2.2264179-2.9315H55v18.1371277C55 33.2589574 53.6793867 35 52.0504297 35H11.94957031C10.32052344 35 9 33.2588404 9 31.1371277V13h11.1603008c1.2327461 0 2.226418 1.3228085 2.226418 2.9284574v.0211809c0 1.6056489 1.0049921 2.9015426 2.2377382 2.9015426h14.751086c1.2327461 0 2.2377383-1.3078298 2.2377383-2.9134788V15.9315z\"></path>\n </g>\n </g>\n </svg>\n <span *ngIf=\"state as stateLabel\">{{ ('tables.' + stateLabel) | bbLocalize }}</span>\n <span *ngIf=\"status as statusCode\"\n class=\"bb-table-template-content-code\">(HTTP {{ statusCode }})</span>\n </div>\n </td>\n </tr>\n</ng-template>\n", styles: [".bb-table{width:100%;display:block;box-shadow:0 6px 6px -6px #0000001a}.bb-table.plain{box-shadow:none}.bb-table.plain>.bb-table-wrapper{border-top-left-radius:0;border-top-right-radius:0}.bb-table-wrapper{overflow-x:auto;position:relative;background-color:#fff;border-top-left-radius:4px;border-top-right-radius:4px}.bb-table-container{width:100%}.bb-table-container td{border-bottom:1px solid #d8d8d8}.bb-table-top-actions{display:flex;flex-wrap:wrap;flex-direction:column;padding:20px 20px 10px;background-color:#fff;justify-content:flex-end;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom:1px solid #d8d8d8}.bb-table-top-actions>*{margin-left:0;margin-bottom:10px}.bb-table-top-actions+.bb-table-wrapper{border-radius:0}.bb-table-bottom-actions{height:60px;display:flex;padding:0 20px;overflow-x:auto;align-items:center;background-color:#fff;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.bb-table-template{border:none;background-color:#f5f5f5;border-bottom:1px solid #d8d8d8}.bb-table-template-content{padding:20px;display:flex;color:#3d464d;font-size:14px;line-height:1.2;font-weight:400;min-height:140px;text-align:center;align-items:center;flex-direction:column;justify-content:center}.bb-table-template-content>svg{margin-bottom:12px}.bb-table-template-content-code{opacity:.5;margin-top:5px;display:inline-block}.bb-table-progress{top:0;left:0;right:0;opacity:0;width:100%;height:4px;display:block;overflow:hidden;position:absolute;background-color:#2f408b4d;animation:fadeIn .25s cubic-bezier(0,0,.2,1) .1s forwards}.bb-table-progress .bb-table-indeterminate{background-color:#2f408b}.bb-table-progress .bb-table-indeterminate:before{top:0;left:0;bottom:0;content:\"\";position:absolute;will-change:left,right;background-color:inherit;animation:indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite}.bb-table-progress .bb-table-indeterminate:after{top:0;left:0;bottom:0;content:\"\";position:absolute;animation-delay:1.15s;will-change:left,right;background-color:inherit;animation:indeterminate-short 2.1s cubic-bezier(.165,.84,.44,1) infinite}.bb-table-progress-close-query{padding:0;border:none;border-radius:4px;background-color:transparent;transition:background-color .25s cubic-bezier(0,0,.2,1)}.bb-table-progress-close-query:hover{background-color:#00000014}.bb-table-progress-close-query:focus{background-color:#0000001f}.bb-table-progress-close-query:active{background-color:#00000029}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@media only screen and (min-width: 768px){.bb-table-top-actions{flex-direction:row}.bb-table-top-actions>*:not(:first-child){margin-left:10px;margin-bottom:10px}}\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: "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: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.BbInput, selector: "input[bbInput], textarea[bbInput]", inputs: ["readonly"] }, { kind: "directive", type: i3.BbSelect, selector: "select[bbInput]", inputs: ["disabled", "required"] }, { kind: "directive", type: i3.BbSuffix, selector: "[bbSuffix]" }, { kind: "component", type: i3.BbIcon, selector: "bb-icon", inputs: ["alt", "size", "src", "ariaHidden"] }, { kind: "component", type: i3.BbFormControl, selector: "bb-form-control", inputs: ["grouped", "hideErrors", "label", "hint"] }, { kind: "component", type: BbTablePager, selector: "bb-table-pager", inputs: ["disabled", "amountOfButtons", "showArrowButtons", "pageNumber", "totalPages"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.BbLocalize, name: "bbLocalize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
397
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbTable, decorators: [{
398
398
  type: Component,
399
399
  args: [{ selector: 'bb-table', host: { 'class': 'bb-table' }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, template: "<!--\n This is the header of the table. It can be a user\n defined custom header or just the default header.\n-->\n\n<header *ngIf=\"(header === true ? headerTemplate : header) as template\"\n class=\"bb-table-top-actions\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n</header>\n\n<!--\n This is the table that contains the\n rows and columns.\n-->\n\n<div class=\"bb-table-wrapper\">\n <div *ngIf=\"isLoading$ | async\"\n class=\"bb-table-progress\">\n <div class=\"bb-table-indeterminate\"></div>\n </div>\n <table class=\"bb-table-container\">\n <thead>\n <tr>\n <ng-content select=\"bb-table-header-cell\"></ng-content>\n </tr>\n </thead>\n <tbody *ngIf=\"data$ | async as data; else isLoadingTemplate\"\n [ngSwitch]=\"data?.state\">\n <ng-container *ngSwitchCase=\"'success'\">\n <ng-container *ngIf=\"!!tableRowTemplate; else tableCellsTemplates\">\n <ng-container\n *ngTemplateOutlet=\"tableRowTemplate; context: {data: data?.result?.data || []}\"></ng-container>\n </ng-container>\n\n <ng-template #tableCellsTemplates>\n <tr *ngFor=\"let item of data?.result?.data; trackBy: trackByFn\">\n <ng-container *ngFor=\"let template of tableColumnTemplates\">\n <ng-container *ngTemplateOutlet=\"template; context: {item: item}\"></ng-container>\n </ng-container>\n </tr>\n </ng-template>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'empty'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error_datasource'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error_not_found'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error_server'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error_down'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n </tbody>\n </table>\n</div>\n\n<footer *ngIf=\"(footer === true ? footerTemplate : footer) as template\"\n class=\"bb-table-bottom-actions\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n</footer>\n\n<ng-template #isLoadingTemplate>\n <tr>\n <td [attr.colspan]=\"headerCount\"\n class=\"bb-table-template\">\n <div class=\"bb-table-template-content\">\n {{ 'tables.loading' | bbLocalize }}\n </div>\n </td>\n </tr>\n</ng-template>\n\n<!--\n This is the template that will be used when the user has not\n supplied a custom header template.\n-->\n\n<ng-template #headerTemplate>\n <ng-content></ng-content>\n <bb-form-control>\n <input [formControl]=\"queryControl\"\n [placeholder]=\"'tables.search' | bbLocalize\"\n bbInput\n autocomplete=\"off\">\n <bb-icon *ngIf=\"queryControl?.value?.length <= 0; else closeButtonTemplate\"\n bbSuffix\n src=\"material:search\">\n </bb-icon>\n </bb-form-control>\n</ng-template>\n\n<!--\n This is the template that will be used when the user has not\n supplied a custom footer template.\n-->\n\n<ng-template #footerTemplate>\n <bb-form-control *ngIf=\"sizes?.length > 1\">\n <select [formControl]=\"pageSizeControl\"\n bbInput\n title=\"Sizes\">\n <option *ngFor=\"let item of sizes; trackBy: trackByValue\"\n [ngValue]=\"item\">\n {{ item }} / {{ 'tables.page' | bbLocalize }}\n </option>\n </select>\n </bb-form-control>\n\n <bb-table-pager [totalPages]=\"(data$ | async)?.result?.totalPages\"\n [formControl]=\"pageNumberControl\">\n </bb-table-pager>\n</ng-template>\n\n<!--\n This the template that will be used when the user\n has filled in some data in the query control.\n-->\n\n<ng-template #closeButtonTemplate>\n <button bbSuffix\n (click)=\"queryControl?.patchValue('')\"\n type=\"button\"\n class=\"bb-table-progress-close-query\">\n <bb-icon src=\"material:close\"></bb-icon>\n </button>\n</ng-template>\n\n<ng-template #errorTemplate let-state=\"state\" let-status=\"statusCode\">\n <tr>\n <td [attr.colspan]=\"headerCount\"\n class=\"bb-table-template\">\n <div class=\"bb-table-template-content\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"64\" height=\"41\">\n <g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(0 1)\">\n <ellipse cx=\"32\" cy=\"33\" fill=\"#F5F5F5\" rx=\"32\" ry=\"7\"></ellipse>\n <g fill-rule=\"nonzero\" stroke=\"#D9D9D9\">\n <path\n d=\"M55 12.7605604L44.8543047 1.25739633C44.3674414.47382661 43.6558789 0 42.9067617 0H21.0932383c-.7491172 0-1.4606797.47395025-1.947543 1.25739633L9 12.7605604V22h46v-9.2394396z\"></path>\n <path fill=\"#FAFAFA\"\n d=\"M41.6132813 15.9315c0-1.6056489.9936718-2.931266 2.2264179-2.9315H55v18.1371277C55 33.2589574 53.6793867 35 52.0504297 35H11.94957031C10.32052344 35 9 33.2588404 9 31.1371277V13h11.1603008c1.2327461 0 2.226418 1.3228085 2.226418 2.9284574v.0211809c0 1.6056489 1.0049921 2.9015426 2.2377382 2.9015426h14.751086c1.2327461 0 2.2377383-1.3078298 2.2377383-2.9134788V15.9315z\"></path>\n </g>\n </g>\n </svg>\n <span *ngIf=\"state as stateLabel\">{{ ('tables.' + stateLabel) | bbLocalize }}</span>\n <span *ngIf=\"status as statusCode\"\n class=\"bb-table-template-content-code\">(HTTP {{ statusCode }})</span>\n </div>\n </td>\n </tr>\n</ng-template>\n", styles: [".bb-table{width:100%;display:block;box-shadow:0 6px 6px -6px #0000001a}.bb-table.plain{box-shadow:none}.bb-table.plain>.bb-table-wrapper{border-top-left-radius:0;border-top-right-radius:0}.bb-table-wrapper{overflow-x:auto;position:relative;background-color:#fff;border-top-left-radius:4px;border-top-right-radius:4px}.bb-table-container{width:100%}.bb-table-container td{border-bottom:1px solid #d8d8d8}.bb-table-top-actions{display:flex;flex-wrap:wrap;flex-direction:column;padding:20px 20px 10px;background-color:#fff;justify-content:flex-end;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom:1px solid #d8d8d8}.bb-table-top-actions>*{margin-left:0;margin-bottom:10px}.bb-table-top-actions+.bb-table-wrapper{border-radius:0}.bb-table-bottom-actions{height:60px;display:flex;padding:0 20px;overflow-x:auto;align-items:center;background-color:#fff;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.bb-table-template{border:none;background-color:#f5f5f5;border-bottom:1px solid #d8d8d8}.bb-table-template-content{padding:20px;display:flex;color:#3d464d;font-size:14px;line-height:1.2;font-weight:400;min-height:140px;text-align:center;align-items:center;flex-direction:column;justify-content:center}.bb-table-template-content>svg{margin-bottom:12px}.bb-table-template-content-code{opacity:.5;margin-top:5px;display:inline-block}.bb-table-progress{top:0;left:0;right:0;opacity:0;width:100%;height:4px;display:block;overflow:hidden;position:absolute;background-color:#2f408b4d;animation:fadeIn .25s cubic-bezier(0,0,.2,1) .1s forwards}.bb-table-progress .bb-table-indeterminate{background-color:#2f408b}.bb-table-progress .bb-table-indeterminate:before{top:0;left:0;bottom:0;content:\"\";position:absolute;will-change:left,right;background-color:inherit;animation:indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite}.bb-table-progress .bb-table-indeterminate:after{top:0;left:0;bottom:0;content:\"\";position:absolute;animation-delay:1.15s;will-change:left,right;background-color:inherit;animation:indeterminate-short 2.1s cubic-bezier(.165,.84,.44,1) infinite}.bb-table-progress-close-query{padding:0;border:none;border-radius:4px;background-color:transparent;transition:background-color .25s cubic-bezier(0,0,.2,1)}.bb-table-progress-close-query:hover{background-color:#00000014}.bb-table-progress-close-query:focus{background-color:#0000001f}.bb-table-progress-close-query:active{background-color:#00000029}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@media only screen and (min-width: 768px){.bb-table-top-actions{flex-direction:row}.bb-table-top-actions>*:not(:first-child){margin-left:10px;margin-bottom:10px}}\n"] }]
400
400
  }], propDecorators: { tableColumnTemplates: [{
@@ -421,9 +421,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
421
421
 
422
422
  class BbTableCell {
423
423
  }
424
- BbTableCell.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbTableCell, deps: [], target: i0.ɵɵFactoryTarget.Component });
425
- BbTableCell.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: BbTableCell, selector: "bb-table-cell", host: { classAttribute: "bb-table-cell" }, ngImport: i0, template: "<div>\n <ng-content></ng-content>\n</div>", styles: [".bb-table-cell{color:#848f99;font-size:14px;text-align:left;line-height:1.2;font-weight:400;padding:12px 20px;display:table-cell;word-wrap:break-word;vertical-align:middle;background-color:#f5f5f5;border-bottom:1px solid #d8d8d8}.bb-table-cell:not(:last-child){border-right:1px solid #d8d8d8}.bb-table-cell.fit{width:1%;white-space:nowrap}.bb-table-cell.left{text-align:left}.bb-table-cell.center{text-align:center}.bb-table-cell.right{text-align:right}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
426
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbTableCell, decorators: [{
424
+ BbTableCell.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbTableCell, deps: [], target: i0.ɵɵFactoryTarget.Component });
425
+ BbTableCell.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: BbTableCell, selector: "bb-table-cell", host: { classAttribute: "bb-table-cell" }, ngImport: i0, template: "<div>\n <ng-content></ng-content>\n</div>", styles: [".bb-table-cell{color:#848f99;font-size:14px;text-align:left;line-height:1.2;font-weight:400;padding:12px 20px;display:table-cell;word-wrap:break-word;vertical-align:middle;background-color:#f5f5f5;border-bottom:1px solid #d8d8d8}.bb-table-cell:not(:last-child){border-right:1px solid #d8d8d8}.bb-table-cell.fit{width:1%;white-space:nowrap}.bb-table-cell.left{text-align:left}.bb-table-cell.center{text-align:center}.bb-table-cell.right{text-align:right}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
426
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbTableCell, decorators: [{
427
427
  type: Component,
428
428
  args: [{ selector: 'bb-table-cell', changeDetection: ChangeDetectionStrategy.OnPush, host: { 'class': 'bb-table-cell' }, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, template: "<div>\n <ng-content></ng-content>\n</div>", styles: [".bb-table-cell{color:#848f99;font-size:14px;text-align:left;line-height:1.2;font-weight:400;padding:12px 20px;display:table-cell;word-wrap:break-word;vertical-align:middle;background-color:#f5f5f5;border-bottom:1px solid #d8d8d8}.bb-table-cell:not(:last-child){border-right:1px solid #d8d8d8}.bb-table-cell.fit{width:1%;white-space:nowrap}.bb-table-cell.left{text-align:left}.bb-table-cell.center{text-align:center}.bb-table-cell.right{text-align:right}\n"] }]
429
429
  }] });
@@ -528,9 +528,9 @@ class BbTableHeaderCell extends BbTableHeaderCellMixinBase {
528
528
  this._table?.sortControl?.patchValue(newValue);
529
529
  }
530
530
  }
531
- BbTableHeaderCell.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbTableHeaderCell, deps: [{ token: BbTable, host: true, optional: true }, { token: 'name', attribute: true, optional: true }], target: i0.ɵɵFactoryTarget.Component });
532
- BbTableHeaderCell.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: BbTableHeaderCell, selector: "bb-table-header-cell", inputs: { disabled: "disabled", sort: "sort" }, host: { listeners: { "click": "onClick()" }, properties: { "class.disabled": "isDisabled" }, classAttribute: "bb-table-header-cell" }, usesInheritance: true, ngImport: i0, template: "<!-- The content. -->\n<ng-content></ng-content>\n\n<!-- The indicator for the sort direction. -->\n<ng-container *ngIf=\"valueChanges$ | async as value\">\n <button *ngIf=\"!isDisabled\"\n [class.asc]=\"value === 'asc'\"\n [class.desc]=\"value === 'desc'\"\n class=\"bb-table-header-cell-toggle\"\n type=\"button\"></button>\n</ng-container>\n", styles: [".bb-table-header-cell{height:50px;color:#212529;cursor:pointer;font-size:16px;font-weight:500;-webkit-user-select:none;user-select:none;padding:10px 20px;position:relative;display:table-cell;vertical-align:middle;border-bottom:1px solid #d8d8d8}.bb-table-header-cell:active>.bb-table-header-cell-toggle{background-color:#00000014}.bb-table-header-cell:not(.disabled){padding-right:52px}.bb-table-header-cell.fit{width:1%;white-space:nowrap}.bb-table-header-cell.left{text-align:left}.bb-table-header-cell.center{text-align:center}.bb-table-header-cell.right{text-align:right}.bb-table-header-cell.disabled{cursor:default;pointer-events:none}.bb-table-header-cell-toggle{top:50%;right:14px;width:22px;border:none;height:22px;margin-left:auto;position:absolute;border-radius:4px;transform:translateY(-50%);background-position:center;background-repeat:no-repeat;background-color:transparent;transition:background-color .2s cubic-bezier(0,0,.2,1);background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E')}.bb-table-header-cell-toggle.desc{background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"black\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E')}.bb-table-header-cell-toggle.asc{background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"black\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E')}\n"], dependencies: [{ 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 });
533
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbTableHeaderCell, decorators: [{
531
+ BbTableHeaderCell.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbTableHeaderCell, deps: [{ token: BbTable, host: true, optional: true }, { token: 'name', attribute: true, optional: true }], target: i0.ɵɵFactoryTarget.Component });
532
+ BbTableHeaderCell.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: BbTableHeaderCell, selector: "bb-table-header-cell", inputs: { disabled: "disabled", sort: "sort" }, host: { listeners: { "click": "onClick()" }, properties: { "class.disabled": "isDisabled" }, classAttribute: "bb-table-header-cell" }, usesInheritance: true, ngImport: i0, template: "<!-- The content. -->\n<ng-content></ng-content>\n\n<!-- The indicator for the sort direction. -->\n<ng-container *ngIf=\"valueChanges$ | async as value\">\n <button *ngIf=\"!isDisabled\"\n [class.asc]=\"value === 'asc'\"\n [class.desc]=\"value === 'desc'\"\n class=\"bb-table-header-cell-toggle\"\n type=\"button\"></button>\n</ng-container>\n", styles: [".bb-table-header-cell{height:50px;color:#212529;cursor:pointer;font-size:16px;font-weight:500;-webkit-user-select:none;user-select:none;padding:10px 20px;position:relative;display:table-cell;vertical-align:middle;border-bottom:1px solid #d8d8d8}.bb-table-header-cell:active>.bb-table-header-cell-toggle{background-color:#00000014}.bb-table-header-cell:not(.disabled){padding-right:52px}.bb-table-header-cell.fit{width:1%;white-space:nowrap}.bb-table-header-cell.left{text-align:left}.bb-table-header-cell.center{text-align:center}.bb-table-header-cell.right{text-align:right}.bb-table-header-cell.disabled{cursor:default;pointer-events:none}.bb-table-header-cell-toggle{top:50%;right:14px;width:22px;border:none;height:22px;margin-left:auto;position:absolute;border-radius:4px;transform:translateY(-50%);background-position:center;background-repeat:no-repeat;background-color:transparent;transition:background-color .2s cubic-bezier(0,0,.2,1);background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E')}.bb-table-header-cell-toggle.desc{background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"black\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E')}.bb-table-header-cell-toggle.asc{background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"black\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E')}\n"], dependencies: [{ 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 });
533
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbTableHeaderCell, decorators: [{
534
534
  type: Component,
535
535
  args: [{ selector: 'bb-table-header-cell', changeDetection: ChangeDetectionStrategy.OnPush, host: {
536
536
  'class': 'bb-table-header-cell',
@@ -562,8 +562,8 @@ const DECLARATIONS_EXPORTS = [
562
562
  ];
563
563
  class TableModule {
564
564
  }
565
- TableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: TableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
566
- TableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: TableModule, declarations: [BbTable,
565
+ TableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: TableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
566
+ TableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.2", ngImport: i0, type: TableModule, declarations: [BbTable,
567
567
  BbTableColumnDef,
568
568
  BbTableRowDef,
569
569
  BbTableHeaderCell,
@@ -574,8 +574,8 @@ TableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "1
574
574
  BbTableHeaderCell,
575
575
  BbTableCell,
576
576
  BbTablePager] });
577
- TableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: TableModule, imports: [CommonModule, ReactiveFormsModule, ElementsModule, LocalizeModule] });
578
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: TableModule, decorators: [{
577
+ TableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: TableModule, imports: [CommonModule, ReactiveFormsModule, ElementsModule, LocalizeModule] });
578
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: TableModule, decorators: [{
579
579
  type: NgModule,
580
580
  args: [{
581
581
  imports: [CommonModule, ReactiveFormsModule, ElementsModule, LocalizeModule],
@@ -25,9 +25,9 @@ class BbiTheming {
25
25
  }
26
26
  }
27
27
  }
28
- BbiTheming.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbiTheming, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
29
- BbiTheming.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.1", type: BbiTheming, selector: "[bbiTheming]", inputs: { theme: ["bbiTheming", "theme"] }, ngImport: i0 });
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbiTheming, decorators: [{
28
+ BbiTheming.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbiTheming, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
29
+ BbiTheming.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.2", type: BbiTheming, selector: "[bbiTheming]", inputs: { theme: ["bbiTheming", "theme"] }, ngImport: i0 });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbiTheming, decorators: [{
31
31
  type: Directive,
32
32
  args: [{
33
33
  selector: '[bbiTheming]'
@@ -155,6 +155,70 @@ function formControlThemeFactory() {
155
155
  };
156
156
  }
157
157
 
158
+ function toggleGroupThemeFactory() {
159
+ return {
160
+ grouping: '20px',
161
+ label: {
162
+ color: '#525252',
163
+ offset: '4px',
164
+ fontSize: '14px',
165
+ fontWeight: '400',
166
+ lineHeight: '1.33'
167
+ },
168
+ spacing: {
169
+ horizontal: '10px',
170
+ vertical: '4px'
171
+ }
172
+ };
173
+ }
174
+
175
+ function radioButtonThemeFactory() {
176
+ const accentColor = new ThemeColorVariable('accentColor');
177
+ return {
178
+ size: '20px',
179
+ colors: {
180
+ accent: accentColor,
181
+ disabled: '#c6c6c6'
182
+ },
183
+ border: {
184
+ color: '#111111',
185
+ thickness: '1px',
186
+ radius: '50%'
187
+ },
188
+ outline: {
189
+ color: accentColor,
190
+ offset: '1px',
191
+ thickness: '2px'
192
+ },
193
+ label: {
194
+ color: '#111111',
195
+ offset: '6px',
196
+ fontSize: '16px',
197
+ fontWeight: '400',
198
+ lineHeight: '1.28'
199
+ }
200
+ };
201
+ }
202
+
203
+ function radioGroupThemeFactory() {
204
+ const errorColor = new ThemeColorVariable('errorColor');
205
+ return {
206
+ grouping: '20px',
207
+ error: errorColor,
208
+ label: {
209
+ color: '#525252',
210
+ offset: '4px',
211
+ fontSize: '14px',
212
+ fontWeight: '400',
213
+ lineHeight: '1.33'
214
+ },
215
+ spacing: {
216
+ horizontal: '10px',
217
+ vertical: '4px'
218
+ }
219
+ };
220
+ }
221
+
158
222
  function checkboxThemeFactory() {
159
223
  const accentColor = new ThemeColorVariable('accentColor');
160
224
  return {
@@ -189,6 +253,33 @@ function checkboxThemeFactory() {
189
253
  };
190
254
  }
191
255
 
256
+ function toggleThemeFactory() {
257
+ const accentColor = new ThemeColorVariable('accentColor');
258
+ return {
259
+ grouping: '20px',
260
+ width: '40px',
261
+ height: '20px',
262
+ colors: {
263
+ accent: accentColor,
264
+ disabled: '#c6c6c6',
265
+ indicator: '#ffffff',
266
+ background: '#aeaeae'
267
+ },
268
+ outline: {
269
+ color: accentColor,
270
+ offset: '1px',
271
+ thickness: '2px'
272
+ },
273
+ label: {
274
+ color: '#111111',
275
+ offset: '6px',
276
+ fontSize: '16px',
277
+ fontWeight: '400',
278
+ lineHeight: '1.28'
279
+ }
280
+ };
281
+ }
282
+
192
283
  class Theme {
193
284
  constructor(theme) {
194
285
  this.isObject = (item) => {
@@ -209,6 +300,10 @@ class Theme {
209
300
  formControlAddon: formControlAddonThemeFactory(),
210
301
  checkbox: checkboxThemeFactory(),
211
302
  checkboxGroup: checkboxGroupThemeFactory(),
303
+ radioButton: radioButtonThemeFactory(),
304
+ radioGroup: radioGroupThemeFactory(),
305
+ toggle: toggleThemeFactory(),
306
+ toggleGroup: toggleGroupThemeFactory(),
212
307
  controlError: controlErrorThemeFactory()
213
308
  };
214
309
  }
@@ -267,10 +362,10 @@ class Theme {
267
362
 
268
363
  class ThemingModule {
269
364
  }
270
- ThemingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: ThemingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
271
- ThemingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: ThemingModule, declarations: [BbiTheming], exports: [BbiTheming] });
272
- ThemingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: ThemingModule });
273
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: ThemingModule, decorators: [{
365
+ ThemingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ThemingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
366
+ ThemingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.2", ngImport: i0, type: ThemingModule, declarations: [BbiTheming], exports: [BbiTheming] });
367
+ ThemingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ThemingModule });
368
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ThemingModule, decorators: [{
274
369
  type: NgModule,
275
370
  args: [{
276
371
  declarations: [BbiTheming],
@@ -1 +1 @@
1
- {"version":3,"file":"bravobit-bb-foundation-theming.mjs","sources":["../../../projects/bb-foundation/theming/src/lib/theming.directive.ts","../../../projects/bb-foundation/theming/src/lib/themes/form-control-addon.theme.ts","../../../projects/bb-foundation/theming/src/lib/themes/checkbox-group.theme.ts","../../../projects/bb-foundation/theming/src/lib/utils/theming.variable.ts","../../../projects/bb-foundation/theming/src/lib/themes/control-error.theme.ts","../../../projects/bb-foundation/theming/src/lib/themes/form-control.theme.ts","../../../projects/bb-foundation/theming/src/lib/themes/checkbox.theme.ts","../../../projects/bb-foundation/theming/src/lib/theming.data.ts","../../../projects/bb-foundation/theming/src/lib/theming.module.ts","../../../projects/bb-foundation/theming/src/bravobit-bb-foundation-theming.ts"],"sourcesContent":["import {Directive, ElementRef, Input, Renderer2, RendererStyleFlags2} from '@angular/core';\nimport {Theme} from './theming.data';\n\n@Directive({\n selector: '[bbiTheming]'\n})\nexport class BbiTheming {\n\n // Inputs.\n @Input('bbiTheming') set theme(theme: Theme | null) {\n this._theme = theme;\n this.setTheme();\n }\n\n // Cache.\n private _theme: Theme | null = null;\n\n constructor(private _renderer: Renderer2,\n private _elementRef: ElementRef) {\n }\n\n private setTheme() {\n if (!this._theme) {\n return;\n }\n const variables = this._theme.variables();\n const element = this._elementRef.nativeElement;\n\n for (const key in variables) {\n const value = variables?.[key];\n this._renderer.setStyle(element, key, value, RendererStyleFlags2.DashCase);\n }\n }\n\n}\n","import {ThemeVariable} from '../utils/theming.variable';\n\nexport interface FormControlAddonTheme {\n spacing: ThemeVariable;\n}\n\nexport function formControlAddonThemeFactory(): FormControlAddonTheme {\n return {\n spacing: '10px'\n };\n}\n","import {ThemeVariable} from '../utils/theming.variable';\n\nexport interface CheckboxGroupTheme {\n grouping: ThemeVariable;\n\n label: {\n color: ThemeVariable;\n fontSize: ThemeVariable;\n fontWeight: ThemeVariable;\n lineHeight: ThemeVariable;\n offset: ThemeVariable;\n };\n\n spacing: {\n horizontal: ThemeVariable;\n vertical: ThemeVariable;\n };\n}\n\nexport function checkboxGroupThemeFactory(): CheckboxGroupTheme {\n return {\n grouping: '20px',\n label: {\n color: '#525252',\n offset: '4px',\n fontSize: '14px',\n fontWeight: '400',\n lineHeight: '1.33'\n },\n spacing: {\n horizontal: '10px',\n vertical: '4px'\n }\n };\n}\n","import {GlobalVariables, GlobalVariablesKey} from '../theming.interface';\n\nexport type ThemeVariable = ThemeVariableFunction | string;\n\nexport abstract class ThemeVariableFunction {\n\n protected constructor(private _key: GlobalVariablesKey) {\n }\n\n abstract format(value: string): string;\n\n toString(variables: GlobalVariables) {\n const value = variables?.[this._key] ?? null;\n if (!value) {\n throw new Error(`Invalid variable key \"${this._key}\"`);\n }\n return !!value ? this.format(value) : null;\n }\n\n}\n\nexport class ThemeColorVariable extends ThemeVariableFunction {\n\n // State.\n private _opacity: number = 1;\n\n constructor(key: GlobalVariablesKey) {\n super(key);\n }\n\n format(value: string) {\n const rgb = this.hexToRgb(value);\n return this.toRgba(rgb);\n }\n\n opacity(value: number) {\n this._opacity = value;\n return this;\n }\n\n private toRgba(data: { red: number, green: number, blue: number }) {\n return `rgba(${data?.red},${data?.green},${data?.blue},${this._opacity})`;\n }\n\n private hexToRgb(value: string) {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(value);\n if (!result) {\n throw new Error(`Invalid color format for \"${value}\". Only hex is currently supported.`);\n }\n\n const red = parseInt(result?.[1], 16);\n const green = parseInt(result?.[2], 16);\n const blue = parseInt(result?.[3], 16);\n return {red, green, blue};\n }\n\n}\n","import {ThemeColorVariable, ThemeVariable} from '../utils/theming.variable';\n\nexport interface ControlErrorTheme {\n color: ThemeVariable;\n fontSize: ThemeVariable;\n lineHeight: ThemeVariable;\n fontWeight: ThemeVariable;\n spacing: ThemeVariable;\n}\n\nexport function controlErrorThemeFactory(): ControlErrorTheme {\n return {\n color: new ThemeColorVariable('errorColor'),\n fontSize: '13px',\n lineHeight: '1.5',\n fontWeight: '400',\n spacing: '4px'\n };\n}\n","import {ThemeColorVariable, ThemeVariable} from '../utils/theming.variable';\n\ninterface BorderTheme {\n radius: ThemeVariable;\n width: ThemeVariable;\n style: ThemeVariable;\n color: ThemeVariable;\n}\n\nexport interface FormControlTheme {\n grouping: ThemeVariable;\n color: ThemeVariable;\n background: ThemeVariable;\n error: {\n color: ThemeVariable;\n background: ThemeVariable;\n placeholderColor: ThemeVariable;\n };\n border: BorderTheme;\n focused: {\n color: ThemeVariable;\n background: ThemeVariable;\n shadow: ThemeVariable;\n border: BorderTheme;\n };\n disabled: {\n color: ThemeVariable;\n background: ThemeVariable;\n opacity: ThemeVariable;\n border: BorderTheme;\n };\n}\n\nexport function formControlThemeFactory(): FormControlTheme {\n const errorColorKey = 'errorColor';\n const inputColor = '#111111';\n const backgroundColor = '#ffffff';\n return {\n grouping: '20px',\n color: inputColor,\n background: backgroundColor,\n error: {\n color: new ThemeColorVariable(errorColorKey),\n background: new ThemeColorVariable(errorColorKey).opacity(0.1),\n placeholderColor: new ThemeColorVariable(errorColorKey).opacity(0.4)\n },\n border: {\n radius: '6px',\n width: '1px',\n style: 'solid',\n color: 'rgba(67, 90, 111, 0.3)'\n },\n focused: {\n color: inputColor,\n background: backgroundColor,\n border: {\n radius: '6px',\n width: '1px',\n style: 'solid',\n color: '#212121'\n },\n shadow: '0 0 0 3px rgba(0, 123, 255, 0.2)'\n },\n disabled: {\n color: inputColor,\n background: backgroundColor,\n border: {\n radius: '6px',\n width: '1px',\n style: 'solid',\n color: '#212121'\n },\n opacity: '0.25'\n }\n };\n}\n","import {ThemeColorVariable, ThemeVariable} from '../utils/theming.variable';\n\nexport interface CheckboxTheme {\n size: ThemeVariable;\n grouping: ThemeVariable;\n\n colors: {\n accent: ThemeVariable;\n disabled: ThemeVariable;\n };\n\n border: {\n color: ThemeVariable;\n thickness: ThemeVariable;\n radius: ThemeVariable;\n };\n\n outline: {\n color: ThemeVariable;\n offset: ThemeVariable;\n thickness: ThemeVariable;\n };\n\n check: {\n size: ThemeVariable;\n color: ThemeVariable;\n thickness: ThemeVariable;\n };\n\n label: {\n color: ThemeVariable;\n fontSize: ThemeVariable;\n fontWeight: ThemeVariable;\n lineHeight: ThemeVariable;\n offset: ThemeVariable;\n };\n}\n\nexport function checkboxThemeFactory(): CheckboxTheme {\n const accentColor = new ThemeColorVariable('accentColor');\n return {\n size: '20px',\n grouping: '20px',\n colors: {\n accent: accentColor,\n disabled: '#c6c6c6'\n },\n border: {\n color: '#111111',\n thickness: '1px',\n radius: '4px'\n },\n outline: {\n color: accentColor,\n offset: '1px',\n thickness: '2px'\n },\n check: {\n size: '12px',\n color: 'white',\n thickness: '2px'\n },\n label: {\n color: '#111111',\n offset: '6px',\n fontSize: '16px',\n fontWeight: '400',\n lineHeight: '1.28'\n }\n };\n}\n","import {GlobalTheme, GlobalVariables, PartialGlobalTheme} from './theming.interface';\nimport {formControlAddonThemeFactory} from './themes/form-control-addon.theme';\nimport {checkboxGroupThemeFactory} from './themes/checkbox-group.theme';\nimport {controlErrorThemeFactory} from './themes/control-error.theme';\nimport {formControlThemeFactory} from './themes/form-control.theme';\nimport {ThemeVariableFunction} from './utils/theming.variable';\nimport {checkboxThemeFactory} from './themes/checkbox.theme';\n\nexport class Theme {\n\n protected readonly data: GlobalTheme;\n protected readonly globals: GlobalVariables;\n\n constructor(theme?: PartialGlobalTheme) {\n const defaultFactories = this.defaultFactories();\n this.data = this.mergeThemeData(defaultFactories, theme);\n this.globals = this.getGlobals();\n }\n\n variables() {\n return this.getContents(this.data);\n }\n\n protected defaultFactories(): GlobalTheme {\n return {\n accentColor: '#1565c0',\n errorColor: '#bd322a',\n formControl: formControlThemeFactory(),\n formControlAddon: formControlAddonThemeFactory(),\n checkbox: checkboxThemeFactory(),\n checkboxGroup: checkboxGroupThemeFactory(),\n controlError: controlErrorThemeFactory()\n };\n }\n\n protected getContents(data: object, scope: string | null = null) {\n return Object.keys(data).reduce((previous, current) => {\n const value = data?.[current];\n const token = this.getToken(current, scope);\n\n if (typeof value === 'object' && value !== null && !(value instanceof ThemeVariableFunction)) {\n const formatted = this.getContents(value, token);\n return {...previous, ...formatted};\n }\n\n const formattedValue = (value instanceof ThemeVariableFunction)\n ? value.toString(this.globals)\n : value;\n\n if (!formattedValue) {\n return previous;\n }\n\n return {...previous, [`--${token}`]: formattedValue};\n }, {}) as { [key: string]: string };\n }\n\n protected getToken(key: string, scope: string) {\n const token = this.tokenize(key);\n return [scope, token].filter(item => !!item).join('-');\n }\n\n protected tokenize(value: string) {\n const result = value.replace(/([A-Z])/g, ' $1');\n return result.split(' ').join('-').toLowerCase();\n }\n\n protected mergeThemeData(target: GlobalTheme, ...sources: PartialGlobalTheme[]) {\n if (!sources?.length) {\n return target;\n }\n\n const source = sources.shift();\n if (this.isObject(target) && this.isObject(source)) {\n for (const key in source) {\n if (this.isObject(source[key])) {\n if (!target[key]) {\n Object.assign(target, {[key]: {}});\n }\n this.mergeThemeData(target[key], source[key]);\n } else {\n Object.assign(target, {[key]: source[key]});\n }\n }\n }\n\n return this.mergeThemeData(target, ...sources);\n }\n\n protected getGlobals() {\n return {\n accentColor: this.data.accentColor,\n errorColor: this.data.errorColor\n };\n }\n\n private isObject = (item: unknown) => {\n return (item && typeof item === 'object' && !Array.isArray(item));\n };\n\n}\n","import {BbiTheming} from './theming.directive';\nimport {NgModule} from '@angular/core';\n\n@NgModule({\n declarations: [BbiTheming],\n exports: [BbiTheming]\n})\nexport class ThemingModule {\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-theming.mjs","sources":["../../../projects/bb-foundation/theming/src/lib/theming.directive.ts","../../../projects/bb-foundation/theming/src/lib/themes/form-control-addon.theme.ts","../../../projects/bb-foundation/theming/src/lib/themes/checkbox-group.theme.ts","../../../projects/bb-foundation/theming/src/lib/utils/theming.variable.ts","../../../projects/bb-foundation/theming/src/lib/themes/control-error.theme.ts","../../../projects/bb-foundation/theming/src/lib/themes/form-control.theme.ts","../../../projects/bb-foundation/theming/src/lib/themes/toggle-group.theme.ts","../../../projects/bb-foundation/theming/src/lib/themes/radio-button.theme.ts","../../../projects/bb-foundation/theming/src/lib/themes/radio-group.theme.ts","../../../projects/bb-foundation/theming/src/lib/themes/checkbox.theme.ts","../../../projects/bb-foundation/theming/src/lib/themes/toggle.theme.ts","../../../projects/bb-foundation/theming/src/lib/theming.data.ts","../../../projects/bb-foundation/theming/src/lib/theming.module.ts","../../../projects/bb-foundation/theming/src/bravobit-bb-foundation-theming.ts"],"sourcesContent":["import {Directive, ElementRef, Input, Renderer2, RendererStyleFlags2} from '@angular/core';\nimport {Theme} from './theming.data';\n\n@Directive({\n selector: '[bbiTheming]'\n})\nexport class BbiTheming {\n\n // Inputs.\n @Input('bbiTheming') set theme(theme: Theme | null) {\n this._theme = theme;\n this.setTheme();\n }\n\n // Cache.\n private _theme: Theme | null = null;\n\n constructor(private _renderer: Renderer2,\n private _elementRef: ElementRef) {\n }\n\n private setTheme() {\n if (!this._theme) {\n return;\n }\n const variables = this._theme.variables();\n const element = this._elementRef.nativeElement;\n\n for (const key in variables) {\n const value = variables?.[key];\n this._renderer.setStyle(element, key, value, RendererStyleFlags2.DashCase);\n }\n }\n\n}\n","import {ThemeVariable} from '../utils/theming.variable';\n\nexport interface FormControlAddonTheme {\n spacing: ThemeVariable;\n}\n\nexport function formControlAddonThemeFactory(): FormControlAddonTheme {\n return {\n spacing: '10px'\n };\n}\n","import {ThemeVariable} from '../utils/theming.variable';\n\nexport interface CheckboxGroupTheme {\n grouping: ThemeVariable;\n\n label: {\n color: ThemeVariable;\n fontSize: ThemeVariable;\n fontWeight: ThemeVariable;\n lineHeight: ThemeVariable;\n offset: ThemeVariable;\n };\n\n spacing: {\n horizontal: ThemeVariable;\n vertical: ThemeVariable;\n };\n}\n\nexport function checkboxGroupThemeFactory(): CheckboxGroupTheme {\n return {\n grouping: '20px',\n label: {\n color: '#525252',\n offset: '4px',\n fontSize: '14px',\n fontWeight: '400',\n lineHeight: '1.33'\n },\n spacing: {\n horizontal: '10px',\n vertical: '4px'\n }\n };\n}\n","import {GlobalVariables, GlobalVariablesKey} from '../theming.interface';\n\nexport type ThemeVariable = ThemeVariableFunction | string;\n\nexport abstract class ThemeVariableFunction {\n\n protected constructor(private _key: GlobalVariablesKey) {\n }\n\n abstract format(value: string): string;\n\n toString(variables: GlobalVariables) {\n const value = variables?.[this._key] ?? null;\n if (!value) {\n throw new Error(`Invalid variable key \"${this._key}\"`);\n }\n return !!value ? this.format(value) : null;\n }\n\n}\n\nexport class ThemeColorVariable extends ThemeVariableFunction {\n\n // State.\n private _opacity: number = 1;\n\n constructor(key: GlobalVariablesKey) {\n super(key);\n }\n\n format(value: string) {\n const rgb = this.hexToRgb(value);\n return this.toRgba(rgb);\n }\n\n opacity(value: number) {\n this._opacity = value;\n return this;\n }\n\n private toRgba(data: { red: number, green: number, blue: number }) {\n return `rgba(${data?.red},${data?.green},${data?.blue},${this._opacity})`;\n }\n\n private hexToRgb(value: string) {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(value);\n if (!result) {\n throw new Error(`Invalid color format for \"${value}\". Only hex is currently supported.`);\n }\n\n const red = parseInt(result?.[1], 16);\n const green = parseInt(result?.[2], 16);\n const blue = parseInt(result?.[3], 16);\n return {red, green, blue};\n }\n\n}\n","import {ThemeColorVariable, ThemeVariable} from '../utils/theming.variable';\n\nexport interface ControlErrorTheme {\n color: ThemeVariable;\n fontSize: ThemeVariable;\n lineHeight: ThemeVariable;\n fontWeight: ThemeVariable;\n spacing: ThemeVariable;\n}\n\nexport function controlErrorThemeFactory(): ControlErrorTheme {\n return {\n color: new ThemeColorVariable('errorColor'),\n fontSize: '13px',\n lineHeight: '1.5',\n fontWeight: '400',\n spacing: '4px'\n };\n}\n","import {ThemeColorVariable, ThemeVariable} from '../utils/theming.variable';\n\ninterface BorderTheme {\n radius: ThemeVariable;\n width: ThemeVariable;\n style: ThemeVariable;\n color: ThemeVariable;\n}\n\nexport interface FormControlTheme {\n grouping: ThemeVariable;\n color: ThemeVariable;\n background: ThemeVariable;\n error: {\n color: ThemeVariable;\n background: ThemeVariable;\n placeholderColor: ThemeVariable;\n };\n border: BorderTheme;\n focused: {\n color: ThemeVariable;\n background: ThemeVariable;\n shadow: ThemeVariable;\n border: BorderTheme;\n };\n disabled: {\n color: ThemeVariable;\n background: ThemeVariable;\n opacity: ThemeVariable;\n border: BorderTheme;\n };\n}\n\nexport function formControlThemeFactory(): FormControlTheme {\n const errorColorKey = 'errorColor';\n const inputColor = '#111111';\n const backgroundColor = '#ffffff';\n return {\n grouping: '20px',\n color: inputColor,\n background: backgroundColor,\n error: {\n color: new ThemeColorVariable(errorColorKey),\n background: new ThemeColorVariable(errorColorKey).opacity(0.1),\n placeholderColor: new ThemeColorVariable(errorColorKey).opacity(0.4)\n },\n border: {\n radius: '6px',\n width: '1px',\n style: 'solid',\n color: 'rgba(67, 90, 111, 0.3)'\n },\n focused: {\n color: inputColor,\n background: backgroundColor,\n border: {\n radius: '6px',\n width: '1px',\n style: 'solid',\n color: '#212121'\n },\n shadow: '0 0 0 3px rgba(0, 123, 255, 0.2)'\n },\n disabled: {\n color: inputColor,\n background: backgroundColor,\n border: {\n radius: '6px',\n width: '1px',\n style: 'solid',\n color: '#212121'\n },\n opacity: '0.25'\n }\n };\n}\n","import {ThemeVariable} from '../utils/theming.variable';\n\nexport interface ToggleGroupTheme {\n grouping: ThemeVariable;\n\n label: {\n color: ThemeVariable;\n fontSize: ThemeVariable;\n fontWeight: ThemeVariable;\n lineHeight: ThemeVariable;\n offset: ThemeVariable;\n };\n\n spacing: {\n horizontal: ThemeVariable;\n vertical: ThemeVariable;\n };\n}\n\nexport function toggleGroupThemeFactory(): ToggleGroupTheme {\n return {\n grouping: '20px',\n label: {\n color: '#525252',\n offset: '4px',\n fontSize: '14px',\n fontWeight: '400',\n lineHeight: '1.33'\n },\n spacing: {\n horizontal: '10px',\n vertical: '4px'\n }\n };\n}\n","import {ThemeColorVariable, ThemeVariable} from '../utils/theming.variable';\n\nexport interface RadioButtonTheme {\n size: ThemeVariable;\n\n colors: {\n accent: ThemeVariable;\n disabled: ThemeVariable;\n };\n\n border: {\n color: ThemeVariable;\n thickness: ThemeVariable;\n radius: ThemeVariable;\n };\n\n outline: {\n color: ThemeVariable;\n offset: ThemeVariable;\n thickness: ThemeVariable;\n };\n\n label: {\n color: ThemeVariable;\n fontSize: ThemeVariable;\n fontWeight: ThemeVariable;\n lineHeight: ThemeVariable;\n offset: ThemeVariable;\n };\n}\n\nexport function radioButtonThemeFactory(): RadioButtonTheme {\n const accentColor = new ThemeColorVariable('accentColor');\n return {\n size: '20px',\n colors: {\n accent: accentColor,\n disabled: '#c6c6c6'\n },\n border: {\n color: '#111111',\n thickness: '1px',\n radius: '50%'\n },\n outline: {\n color: accentColor,\n offset: '1px',\n thickness: '2px'\n },\n label: {\n color: '#111111',\n offset: '6px',\n fontSize: '16px',\n fontWeight: '400',\n lineHeight: '1.28'\n }\n };\n}\n","import {ThemeColorVariable, ThemeVariable} from '../utils/theming.variable';\n\nexport interface RadioGroupTheme {\n grouping: ThemeVariable;\n error: ThemeVariable;\n\n label: {\n color: ThemeVariable;\n fontSize: ThemeVariable;\n fontWeight: ThemeVariable;\n lineHeight: ThemeVariable;\n offset: ThemeVariable;\n };\n\n spacing: {\n horizontal: ThemeVariable;\n vertical: ThemeVariable;\n };\n}\n\nexport function radioGroupThemeFactory(): RadioGroupTheme {\n const errorColor = new ThemeColorVariable('errorColor');\n return {\n grouping: '20px',\n error: errorColor,\n label: {\n color: '#525252',\n offset: '4px',\n fontSize: '14px',\n fontWeight: '400',\n lineHeight: '1.33'\n },\n spacing: {\n horizontal: '10px',\n vertical: '4px'\n }\n };\n}\n","import {ThemeColorVariable, ThemeVariable} from '../utils/theming.variable';\n\nexport interface CheckboxTheme {\n size: ThemeVariable;\n grouping: ThemeVariable;\n\n colors: {\n accent: ThemeVariable;\n disabled: ThemeVariable;\n };\n\n border: {\n color: ThemeVariable;\n thickness: ThemeVariable;\n radius: ThemeVariable;\n };\n\n outline: {\n color: ThemeVariable;\n offset: ThemeVariable;\n thickness: ThemeVariable;\n };\n\n check: {\n size: ThemeVariable;\n color: ThemeVariable;\n thickness: ThemeVariable;\n };\n\n label: {\n color: ThemeVariable;\n fontSize: ThemeVariable;\n fontWeight: ThemeVariable;\n lineHeight: ThemeVariable;\n offset: ThemeVariable;\n };\n}\n\nexport function checkboxThemeFactory(): CheckboxTheme {\n const accentColor = new ThemeColorVariable('accentColor');\n return {\n size: '20px',\n grouping: '20px',\n colors: {\n accent: accentColor,\n disabled: '#c6c6c6'\n },\n border: {\n color: '#111111',\n thickness: '1px',\n radius: '4px'\n },\n outline: {\n color: accentColor,\n offset: '1px',\n thickness: '2px'\n },\n check: {\n size: '12px',\n color: 'white',\n thickness: '2px'\n },\n label: {\n color: '#111111',\n offset: '6px',\n fontSize: '16px',\n fontWeight: '400',\n lineHeight: '1.28'\n }\n };\n}\n","import {ThemeColorVariable, ThemeVariable} from '../utils/theming.variable';\n\nexport interface ToggleTheme {\n grouping: ThemeVariable;\n width: ThemeVariable;\n height: ThemeVariable;\n\n colors: {\n accent: ThemeVariable;\n disabled: ThemeVariable;\n indicator: ThemeVariable;\n background: ThemeVariable;\n };\n\n outline: {\n color: ThemeVariable;\n offset: ThemeVariable;\n thickness: ThemeVariable;\n };\n\n label: {\n color: ThemeVariable;\n fontSize: ThemeVariable;\n fontWeight: ThemeVariable;\n lineHeight: ThemeVariable;\n offset: ThemeVariable;\n };\n}\n\nexport function toggleThemeFactory(): ToggleTheme {\n const accentColor = new ThemeColorVariable('accentColor');\n return {\n grouping: '20px',\n width: '40px',\n height: '20px',\n colors: {\n accent: accentColor,\n disabled: '#c6c6c6',\n indicator: '#ffffff',\n background: '#aeaeae'\n },\n outline: {\n color: accentColor,\n offset: '1px',\n thickness: '2px'\n },\n label: {\n color: '#111111',\n offset: '6px',\n fontSize: '16px',\n fontWeight: '400',\n lineHeight: '1.28'\n }\n };\n}\n","import {GlobalTheme, GlobalVariables, PartialGlobalTheme} from './theming.interface';\nimport {formControlAddonThemeFactory} from './themes/form-control-addon.theme';\nimport {checkboxGroupThemeFactory} from './themes/checkbox-group.theme';\nimport {controlErrorThemeFactory} from './themes/control-error.theme';\nimport {formControlThemeFactory} from './themes/form-control.theme';\nimport {toggleGroupThemeFactory} from './themes/toggle-group.theme';\nimport {radioButtonThemeFactory} from './themes/radio-button.theme';\nimport {radioGroupThemeFactory} from './themes/radio-group.theme';\nimport {ThemeVariableFunction} from './utils/theming.variable';\nimport {checkboxThemeFactory} from './themes/checkbox.theme';\nimport {toggleThemeFactory} from './themes/toggle.theme';\n\nexport class Theme {\n\n protected readonly data: GlobalTheme;\n protected readonly globals: GlobalVariables;\n\n constructor(theme?: PartialGlobalTheme) {\n const defaultFactories = this.defaultFactories();\n this.data = this.mergeThemeData(defaultFactories, theme);\n this.globals = this.getGlobals();\n }\n\n variables() {\n return this.getContents(this.data);\n }\n\n protected defaultFactories(): GlobalTheme {\n return {\n accentColor: '#1565c0',\n errorColor: '#bd322a',\n formControl: formControlThemeFactory(),\n formControlAddon: formControlAddonThemeFactory(),\n checkbox: checkboxThemeFactory(),\n checkboxGroup: checkboxGroupThemeFactory(),\n radioButton: radioButtonThemeFactory(),\n radioGroup: radioGroupThemeFactory(),\n toggle: toggleThemeFactory(),\n toggleGroup: toggleGroupThemeFactory(),\n controlError: controlErrorThemeFactory()\n };\n }\n\n protected getContents(data: object, scope: string | null = null) {\n return Object.keys(data).reduce((previous, current) => {\n const value = data?.[current];\n const token = this.getToken(current, scope);\n\n if (typeof value === 'object' && value !== null && !(value instanceof ThemeVariableFunction)) {\n const formatted = this.getContents(value, token);\n return {...previous, ...formatted};\n }\n\n const formattedValue = (value instanceof ThemeVariableFunction)\n ? value.toString(this.globals)\n : value;\n\n if (!formattedValue) {\n return previous;\n }\n\n return {...previous, [`--${token}`]: formattedValue};\n }, {}) as { [key: string]: string };\n }\n\n protected getToken(key: string, scope: string) {\n const token = this.tokenize(key);\n return [scope, token].filter(item => !!item).join('-');\n }\n\n protected tokenize(value: string) {\n const result = value.replace(/([A-Z])/g, ' $1');\n return result.split(' ').join('-').toLowerCase();\n }\n\n protected mergeThemeData(target: GlobalTheme, ...sources: PartialGlobalTheme[]) {\n if (!sources?.length) {\n return target;\n }\n\n const source = sources.shift();\n if (this.isObject(target) && this.isObject(source)) {\n for (const key in source) {\n if (this.isObject(source[key])) {\n if (!target[key]) {\n Object.assign(target, {[key]: {}});\n }\n this.mergeThemeData(target[key], source[key]);\n } else {\n Object.assign(target, {[key]: source[key]});\n }\n }\n }\n\n return this.mergeThemeData(target, ...sources);\n }\n\n protected getGlobals() {\n return {\n accentColor: this.data.accentColor,\n errorColor: this.data.errorColor\n };\n }\n\n private isObject = (item: unknown) => {\n return (item && typeof item === 'object' && !Array.isArray(item));\n };\n\n}\n","import {BbiTheming} from './theming.directive';\nimport {NgModule} from '@angular/core';\n\n@NgModule({\n declarations: [BbiTheming],\n exports: [BbiTheming]\n})\nexport class ThemingModule {\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -17,9 +17,9 @@ class BbTemplate {
17
17
  this._viewContainerRef.createEmbeddedView(template);
18
18
  }
19
19
  }
20
- BbTemplate.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbTemplate, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
21
- BbTemplate.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.1", type: BbTemplate, selector: "[bbTemplate]", inputs: { bbTemplate: "bbTemplate" }, ngImport: i0 });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbTemplate, decorators: [{
20
+ BbTemplate.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbTemplate, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
21
+ BbTemplate.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.2", type: BbTemplate, selector: "[bbTemplate]", inputs: { bbTemplate: "bbTemplate" }, ngImport: i0 });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbTemplate, decorators: [{
23
23
  type: Directive,
24
24
  args: [{
25
25
  selector: '[bbTemplate]'
@@ -68,9 +68,9 @@ class BbAutosize {
68
68
  this._renderer.setStyle(this.element, 'height', value);
69
69
  }
70
70
  }
71
- BbAutosize.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbAutosize, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
72
- BbAutosize.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.1", type: BbAutosize, selector: "textarea[bbAutosize]", inputs: { minHeight: "minHeight", maxHeight: "maxHeight", rows: "rows" }, host: { listeners: { "window:resize": "onWindowResize()", "input": "onInputReceived()" }, properties: { "style.min-height": "this.minHeight", "style.max-height": "this.maxHeight", "rows": "this.rows" } }, ngImport: i0 });
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbAutosize, decorators: [{
71
+ BbAutosize.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbAutosize, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
72
+ BbAutosize.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.2", type: BbAutosize, selector: "textarea[bbAutosize]", inputs: { minHeight: "minHeight", maxHeight: "maxHeight", rows: "rows" }, host: { listeners: { "window:resize": "onWindowResize()", "input": "onInputReceived()" }, properties: { "style.min-height": "this.minHeight", "style.max-height": "this.maxHeight", "rows": "this.rows" } }, ngImport: i0 });
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbAutosize, decorators: [{
74
74
  type: Directive,
75
75
  args: [{
76
76
  selector: 'textarea[bbAutosize]'
@@ -124,9 +124,9 @@ class BbFocus {
124
124
  setTimeout(() => this.nativeElement.focus(), 0);
125
125
  }
126
126
  }
127
- BbFocus.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbFocus, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
128
- BbFocus.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.1", type: BbFocus, selector: "[bbFocus]", ngImport: i0 });
129
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbFocus, decorators: [{
127
+ BbFocus.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbFocus, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
128
+ BbFocus.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.2", type: BbFocus, selector: "[bbFocus]", ngImport: i0 });
129
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbFocus, decorators: [{
130
130
  type: Directive,
131
131
  args: [{
132
132
  selector: '[bbFocus]'
@@ -195,9 +195,9 @@ class BbFocusTrap {
195
195
  return Array(...nodes);
196
196
  }
197
197
  }
198
- BbFocusTrap.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbFocusTrap, deps: [{ token: i1.Platform }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
199
- BbFocusTrap.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.1", type: BbFocusTrap, selector: "[bbFocusTrap]", host: { listeners: { "keydown": "onKeydown($event)" } }, ngImport: i0 });
200
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbFocusTrap, decorators: [{
198
+ BbFocusTrap.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbFocusTrap, deps: [{ token: i1.Platform }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
199
+ BbFocusTrap.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.2", type: BbFocusTrap, selector: "[bbFocusTrap]", host: { listeners: { "keydown": "onKeydown($event)" } }, ngImport: i0 });
200
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbFocusTrap, decorators: [{
201
201
  type: Directive,
202
202
  args: [{
203
203
  selector: '[bbFocusTrap]'
@@ -209,16 +209,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
209
209
 
210
210
  class UtilsModule {
211
211
  }
212
- UtilsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: UtilsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
213
- UtilsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: UtilsModule, declarations: [BbTemplate,
212
+ UtilsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: UtilsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
213
+ UtilsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.2", ngImport: i0, type: UtilsModule, declarations: [BbTemplate,
214
214
  BbAutosize,
215
215
  BbFocus,
216
216
  BbFocusTrap], exports: [BbTemplate,
217
217
  BbAutosize,
218
218
  BbFocus,
219
219
  BbFocusTrap] });
220
- UtilsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: UtilsModule });
221
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: UtilsModule, decorators: [{
220
+ UtilsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: UtilsModule });
221
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: UtilsModule, decorators: [{
222
222
  type: NgModule,
223
223
  args: [{
224
224
  declarations: [