@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
@@ -6,9 +6,9 @@ export class BbiFormControlAddon {
6
6
  this.type = null;
7
7
  }
8
8
  }
9
- BbiFormControlAddon.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbiFormControlAddon, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
- BbiFormControlAddon.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: BbiFormControlAddon, selector: "[bbi-form-control-addon]", inputs: { type: ["bbi-form-control-addon", "type"] }, host: { properties: { "class.prefix": "type === 'prefix'", "class.suffix": "type === 'suffix'" }, classAttribute: "bbi-form-control-addon" }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [".bbi-form-control-addon{margin:0 10px;color:inherit;display:block}.bbi-form-control-addon.suffix{margin-left:0}.bbi-form-control-addon.prefix{margin-right:0}a.bbi-form-control-addon,button.bbi-form-control-addon{width:32px;height:32px;border:none;display:flex;-webkit-appearance:none;appearance:none;margin-right:4px;border-radius:6px;align-items:center;text-decoration:none;justify-content:center;background-color:transparent}a.bbi-form-control-addon,a.bbi-form-control-addon:visited,button.bbi-form-control-addon,button.bbi-form-control-addon:visited{color:inherit}a.bbi-form-control-addon:hover,button.bbi-form-control-addon:hover{background-color:#1565c014}a.bbi-form-control-addon:focus,button.bbi-form-control-addon:focus{background-color:#1565c01f}a.bbi-form-control-addon:active,button.bbi-form-control-addon:active{background-color:#1565c029}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbiFormControlAddon, decorators: [{
9
+ BbiFormControlAddon.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbiFormControlAddon, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
+ BbiFormControlAddon.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: BbiFormControlAddon, selector: "[bbi-form-control-addon]", inputs: { type: ["bbi-form-control-addon", "type"] }, host: { properties: { "class.prefix": "type === 'prefix'", "class.suffix": "type === 'suffix'" }, classAttribute: "bbi-form-control-addon" }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [".bbi-form-control-addon{margin:0 10px;color:inherit;display:block}.bbi-form-control-addon.suffix{margin-left:0}.bbi-form-control-addon.prefix{margin-right:0}a.bbi-form-control-addon,button.bbi-form-control-addon{width:32px;height:32px;border:none;display:flex;-webkit-appearance:none;appearance:none;margin-right:4px;border-radius:6px;align-items:center;text-decoration:none;justify-content:center;background-color:transparent}a.bbi-form-control-addon,a.bbi-form-control-addon:visited,button.bbi-form-control-addon,button.bbi-form-control-addon:visited{color:inherit}a.bbi-form-control-addon:hover,button.bbi-form-control-addon:hover{background-color:#1565c014}a.bbi-form-control-addon:focus,button.bbi-form-control-addon:focus{background-color:#1565c01f}a.bbi-form-control-addon:active,button.bbi-form-control-addon:active{background-color:#1565c029}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbiFormControlAddon, decorators: [{
12
12
  type: Component,
13
13
  args: [{ selector: '[bbi-form-control-addon]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
14
14
  'class': 'bbi-form-control-addon',
@@ -97,9 +97,9 @@ export class BbiFormControlInput {
97
97
  this._subscription.add(subscription);
98
98
  }
99
99
  }
100
- BbiFormControlInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbiFormControlInput, deps: [{ token: i0.ElementRef }, { token: i1.BbiFormControl }, { token: i0.ChangeDetectorRef }, { token: i2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
101
- BbiFormControlInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.1", type: BbiFormControlInput, selector: "input[bbiFormControlInput]", inputs: { disabled: "disabled", readonly: "readonly", required: "required" }, host: { properties: { "attr.id": "this.labelId", "required": "this.required" } }, ngImport: i0 });
102
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbiFormControlInput, decorators: [{
100
+ BbiFormControlInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbiFormControlInput, deps: [{ token: i0.ElementRef }, { token: i1.BbiFormControl }, { token: i0.ChangeDetectorRef }, { token: i2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
101
+ BbiFormControlInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.2", type: BbiFormControlInput, selector: "input[bbiFormControlInput]", inputs: { disabled: "disabled", readonly: "readonly", required: "required" }, host: { properties: { "attr.id": "this.labelId", "required": "this.required" } }, ngImport: i0 });
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbiFormControlInput, decorators: [{
103
103
  type: Directive,
104
104
  args: [{
105
105
  selector: 'input[bbiFormControlInput]'
@@ -8,14 +8,14 @@ import { NgModule } from '@angular/core';
8
8
  import * as i0 from "@angular/core";
9
9
  export class FormControlModule {
10
10
  }
11
- FormControlModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: FormControlModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- FormControlModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: FormControlModule, declarations: [BbiFormControl,
11
+ FormControlModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: FormControlModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ FormControlModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.2", ngImport: i0, type: FormControlModule, declarations: [BbiFormControl,
13
13
  BbiFormControlInput,
14
14
  BbiFormControlAddon], imports: [CommonModule, ControlErrorModule, UtilsModule], exports: [BbiFormControl,
15
15
  BbiFormControlInput,
16
16
  BbiFormControlAddon] });
17
- FormControlModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: FormControlModule, imports: [CommonModule, ControlErrorModule, UtilsModule] });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: FormControlModule, decorators: [{
17
+ FormControlModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: FormControlModule, imports: [CommonModule, ControlErrorModule, UtilsModule] });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: FormControlModule, decorators: [{
19
19
  type: NgModule,
20
20
  args: [{
21
21
  imports: [CommonModule, ControlErrorModule, UtilsModule],
@@ -0,0 +1,75 @@
1
+ import { ChangeDetectionStrategy, Component, HostBinding, HostListener, Input, ViewEncapsulation } from '@angular/core';
2
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../radio-group/radio-group.component";
5
+ import * as i2 from "@angular/common";
6
+ export class BbiRadioButton {
7
+ constructor(_radioGroup, _changeDetectorRef) {
8
+ this._radioGroup = _radioGroup;
9
+ this._changeDetectorRef = _changeDetectorRef;
10
+ // Inputs.
11
+ this.value = null;
12
+ this._disabled = false;
13
+ this._hideText = false;
14
+ }
15
+ // Disabled.
16
+ get disabled() {
17
+ return this._radioGroup?.disabled || this._disabled;
18
+ }
19
+ set disabled(value) {
20
+ const newValue = coerceBooleanProperty(value);
21
+ if (newValue !== this.disabled) {
22
+ this._disabled = newValue;
23
+ this._changeDetectorRef.markForCheck();
24
+ }
25
+ }
26
+ // Hide text.
27
+ get hideText() {
28
+ return this._hideText;
29
+ }
30
+ set hideText(value) {
31
+ const newValue = coerceBooleanProperty(value);
32
+ if (newValue !== this.hideText) {
33
+ this._hideText = newValue;
34
+ this._changeDetectorRef.markForCheck();
35
+ }
36
+ }
37
+ onClick() {
38
+ if (this.disabled) {
39
+ return;
40
+ }
41
+ this._radioGroup.select(this.value);
42
+ }
43
+ onSpacePressed() {
44
+ return this.onClick();
45
+ }
46
+ get selected() {
47
+ return this._radioGroup?.value === this.value;
48
+ }
49
+ }
50
+ BbiRadioButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbiRadioButton, deps: [{ token: i1.BbiRadioGroup }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
51
+ BbiRadioButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: BbiRadioButton, selector: "bbi-radio-button", inputs: { value: "value", disabled: "disabled", hideText: "hideText" }, host: { listeners: { "click": "onClick()", "keydown.space": "onSpacePressed()" }, properties: { "class.disabled": "disabled", "tabindex": "disabled ? -1 : 0", "class.selected": "this.selected" }, classAttribute: "bbi-radio-button" }, ngImport: i0, template: "<div class=\"bbi-radio-button-indicator\"></div>\n<span *ngIf=\"!hideText\"\n class=\"bbi-radio-button-text\"><ng-content></ng-content></span>\n", styles: [".bbi-radio-button{display:flex;cursor:pointer;align-items:center}.bbi-radio-button:not(.disabled):focus>.bbi-radio-button-indicator{outline-color:var(--radio-button-outline-color, var(--accent-color, #1565c0))}.bbi-radio-button.disabled{-webkit-user-select:none;user-select:none;cursor:not-allowed}.bbi-radio-button.disabled>.bbi-radio-button-indicator{border-color:var(--radio-button-colors-disabled, #c6c6c6)}.bbi-radio-button.disabled>.bbi-radio-button-text{color:var(--radio-button-colors-disabled, #c6c6c6)}.bbi-radio-button.selected>.bbi-radio-button-indicator{border-color:var(--radio-button-colors-accent, var(--accent-color, #1565c0))}.bbi-radio-button.selected>.bbi-radio-button-indicator:after{opacity:1;transform:none}.bbi-radio-button-indicator{display:flex;align-items:center;justify-content:center;width:var(--radio-button-size, 20px);height:var(--radio-button-size, 20px);min-width:var(--radio-button-size, 20px);min-height:var(--radio-button-size, 20px);border-radius:var(--radio-button-border-radius, 50%);outline-offset:var(--radio-button-outline-offset, 1px);outline:var(--radio-button-outline-thickness, 2px) solid transparent;border:var(--radio-button-border-thickness, 1px) solid var(--radio-button-border-color, #111111);transition:outline-color .2s cubic-bezier(0,0,.2,1),border-color .18s cubic-bezier(0,0,.2,1)}.bbi-radio-button-indicator:after{opacity:0;content:\"\";display:block;transform:scale(0);width:calc(var(--radio-button-size, 20px) / 2);height:calc(var(--radio-button-size, 20px) / 2);border-radius:var(--radio-button-border-radius, 50%);background-color:var(--radio-button-colors-accent, var(--accent-color, #1565c0));transition:transform .1s cubic-bezier(0,0,.2,1)}.bbi-radio-button-text{color:var(--radio-button-label-color, #111111);padding-left:var(--radio-button-label-offset, 6px);font-size:var(--radio-button-label-font-size, 16px);font-weight:var(--radio-button-label-font-weight, 400);line-height:var(--radio-button-label-line-height, 1.28)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbiRadioButton, decorators: [{
53
+ type: Component,
54
+ args: [{ selector: 'bbi-radio-button', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
55
+ 'class': 'bbi-radio-button',
56
+ '[class.disabled]': 'disabled',
57
+ '[tabindex]': 'disabled ? -1 : 0'
58
+ }, preserveWhitespaces: false, template: "<div class=\"bbi-radio-button-indicator\"></div>\n<span *ngIf=\"!hideText\"\n class=\"bbi-radio-button-text\"><ng-content></ng-content></span>\n", styles: [".bbi-radio-button{display:flex;cursor:pointer;align-items:center}.bbi-radio-button:not(.disabled):focus>.bbi-radio-button-indicator{outline-color:var(--radio-button-outline-color, var(--accent-color, #1565c0))}.bbi-radio-button.disabled{-webkit-user-select:none;user-select:none;cursor:not-allowed}.bbi-radio-button.disabled>.bbi-radio-button-indicator{border-color:var(--radio-button-colors-disabled, #c6c6c6)}.bbi-radio-button.disabled>.bbi-radio-button-text{color:var(--radio-button-colors-disabled, #c6c6c6)}.bbi-radio-button.selected>.bbi-radio-button-indicator{border-color:var(--radio-button-colors-accent, var(--accent-color, #1565c0))}.bbi-radio-button.selected>.bbi-radio-button-indicator:after{opacity:1;transform:none}.bbi-radio-button-indicator{display:flex;align-items:center;justify-content:center;width:var(--radio-button-size, 20px);height:var(--radio-button-size, 20px);min-width:var(--radio-button-size, 20px);min-height:var(--radio-button-size, 20px);border-radius:var(--radio-button-border-radius, 50%);outline-offset:var(--radio-button-outline-offset, 1px);outline:var(--radio-button-outline-thickness, 2px) solid transparent;border:var(--radio-button-border-thickness, 1px) solid var(--radio-button-border-color, #111111);transition:outline-color .2s cubic-bezier(0,0,.2,1),border-color .18s cubic-bezier(0,0,.2,1)}.bbi-radio-button-indicator:after{opacity:0;content:\"\";display:block;transform:scale(0);width:calc(var(--radio-button-size, 20px) / 2);height:calc(var(--radio-button-size, 20px) / 2);border-radius:var(--radio-button-border-radius, 50%);background-color:var(--radio-button-colors-accent, var(--accent-color, #1565c0));transition:transform .1s cubic-bezier(0,0,.2,1)}.bbi-radio-button-text{color:var(--radio-button-label-color, #111111);padding-left:var(--radio-button-label-offset, 6px);font-size:var(--radio-button-label-font-size, 16px);font-weight:var(--radio-button-label-font-weight, 400);line-height:var(--radio-button-label-line-height, 1.28)}\n"] }]
59
+ }], ctorParameters: function () { return [{ type: i1.BbiRadioGroup }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { value: [{
60
+ type: Input
61
+ }], disabled: [{
62
+ type: Input
63
+ }], hideText: [{
64
+ type: Input
65
+ }], onClick: [{
66
+ type: HostListener,
67
+ args: ['click']
68
+ }], onSpacePressed: [{
69
+ type: HostListener,
70
+ args: ['keydown.space']
71
+ }], selected: [{
72
+ type: HostBinding,
73
+ args: ['class.selected']
74
+ }] } });
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vY29udHJvbHMvc3JjL2xpYi9yYWRpby9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vY29udHJvbHMvc3JjL2xpYi9yYWRpby9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pJLE9BQU8sRUFBZSxxQkFBcUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDOzs7O0FBZ0IxRSxNQUFNLE9BQU8sY0FBYztJQXVEdkIsWUFBb0IsV0FBMEIsRUFDMUIsa0JBQXFDO1FBRHJDLGdCQUFXLEdBQVgsV0FBVyxDQUFlO1FBQzFCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUF0RHpELFVBQVU7UUFDRCxVQUFLLEdBQWUsSUFBSSxDQUFDO1FBZ0IxQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBZ0IzQixjQUFTLEdBQVksS0FBSyxDQUFDO0lBc0JuQyxDQUFDO0lBcERELFlBQVk7SUFDWixJQUNJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLEtBQW1CO1FBQzVCLE1BQU0sUUFBUSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLElBQUksUUFBUSxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7WUFDMUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1NBQzFDO0lBQ0wsQ0FBQztJQUlELGFBQWE7SUFDYixJQUNJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLEtBQW1CO1FBQzVCLE1BQU0sUUFBUSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLElBQUksUUFBUSxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7WUFDMUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1NBQzFDO0lBQ0wsQ0FBQztJQUtELE9BQU87UUFDSCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUdELGNBQWM7UUFDVixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFDSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ2xELENBQUM7OzJHQXJEUSxjQUFjOytGQUFkLGNBQWMsMFdDakIzQix1SkFHQTsyRkRjYSxjQUFjO2tCQWIxQixTQUFTOytCQUNJLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNGLE9BQU8sRUFBRSxrQkFBa0I7d0JBQzNCLGtCQUFrQixFQUFFLFVBQVU7d0JBQzlCLFlBQVksRUFBRSxtQkFBbUI7cUJBQ3BDLHVCQUNvQixLQUFLO29JQUtqQixLQUFLO3NCQUFiLEtBQUs7Z0JBSUYsUUFBUTtzQkFEWCxLQUFLO2dCQWlCRixRQUFRO3NCQURYLEtBQUs7Z0JBZ0JOLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPO2dCQVNyQixjQUFjO3NCQURiLFlBQVk7dUJBQUMsZUFBZTtnQkFNekIsUUFBUTtzQkFEWCxXQUFXO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Jvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5fSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtCYmlSYWRpb0dyb3VwfSBmcm9tICcuLi9yYWRpby1ncm91cC9yYWRpby1ncm91cC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JiaS1yYWRpby1idXR0b24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yYWRpby1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3JhZGlvLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnYmJpLXJhZGlvLWJ1dHRvbicsXG4gICAgICAgICdbY2xhc3MuZGlzYWJsZWRdJzogJ2Rpc2FibGVkJyxcbiAgICAgICAgJ1t0YWJpbmRleF0nOiAnZGlzYWJsZWQgPyAtMSA6IDAnXG4gICAgfSxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBCYmlSYWRpb0J1dHRvbiB7XG5cbiAgICAvLyBJbnB1dHMuXG4gICAgQElucHV0KCkgdmFsdWU6IGFueSB8IG51bGwgPSBudWxsO1xuXG4gICAgLy8gRGlzYWJsZWQuXG4gICAgQElucHV0KClcbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yYWRpb0dyb3VwPy5kaXNhYmxlZCB8fCB0aGlzLl9kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBzZXQgZGlzYWJsZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgICAgIGlmIChuZXdWYWx1ZSAhPT0gdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBuZXdWYWx1ZTtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8vIEhpZGUgdGV4dC5cbiAgICBASW5wdXQoKVxuICAgIGdldCBoaWRlVGV4dCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hpZGVUZXh0O1xuICAgIH1cblxuICAgIHNldCBoaWRlVGV4dCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICAgICAgaWYgKG5ld1ZhbHVlICE9PSB0aGlzLmhpZGVUZXh0KSB7XG4gICAgICAgICAgICB0aGlzLl9oaWRlVGV4dCA9IG5ld1ZhbHVlO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9oaWRlVGV4dDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIG9uQ2xpY2soKSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcmFkaW9Hcm91cC5zZWxlY3QodGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5zcGFjZScpXG4gICAgb25TcGFjZVByZXNzZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9uQ2xpY2soKTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNlbGVjdGVkJylcbiAgICBnZXQgc2VsZWN0ZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yYWRpb0dyb3VwPy52YWx1ZSA9PT0gdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9yYWRpb0dyb3VwOiBCYmlSYWRpb0dyb3VwLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIH1cblxuICAgIC8vIFJlcXVpcmVkIHNvIHRoYXQgdGhlIHRlbXBsYXRlIHR5cGUgY2hlY2tlciBjYW4gaW5mZXIgdGhlIHR5cGUgb2YgdGhlIGNvZXJjZWQgaW5wdXRzLlxuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV92YWx1ZTogYW55O1xuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9kaXNhYmxlZDogQm9vbGVhbklucHV0O1xuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9oaWRlVGV4dDogQm9vbGVhbklucHV0O1xuXG59XG4iLCI8ZGl2IGNsYXNzPVwiYmJpLXJhZGlvLWJ1dHRvbi1pbmRpY2F0b3JcIj48L2Rpdj5cbjxzcGFuICpuZ0lmPVwiIWhpZGVUZXh0XCJcbiAgICAgIGNsYXNzPVwiYmJpLXJhZGlvLWJ1dHRvbi10ZXh0XCI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50Pjwvc3Bhbj5cbiJdfQ==
@@ -0,0 +1,168 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Optional, Output, ViewEncapsulation } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';
3
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
4
+ import { shouldShowErrors } from '../../control-error/control-error.utils';
5
+ import { BehaviorSubject } from 'rxjs';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../control-error/control-error-submit.directive";
8
+ import * as i2 from "@angular/common";
9
+ import * as i3 from "../../control-error/control-error/control-error.component";
10
+ import * as i4 from "@bravobit/bb-foundation/utils";
11
+ export class BbiRadioGroup {
12
+ constructor(_injector, _changeDetectorRef, _errorSubmit) {
13
+ this._injector = _injector;
14
+ this._changeDetectorRef = _changeDetectorRef;
15
+ this._errorSubmit = _errorSubmit;
16
+ // Inputs.
17
+ this.label = null;
18
+ this.errorMode = 'blur';
19
+ // Outputs.
20
+ this.valueChange = new EventEmitter();
21
+ // State.
22
+ this.validationErrors$ = new BehaviorSubject(null);
23
+ this._value = null;
24
+ this._disabled = false;
25
+ this._grouped = false;
26
+ this._readonly = false;
27
+ this._required = false;
28
+ this._inline = false;
29
+ // Methods.
30
+ this.onChange = () => ({});
31
+ this.onTouched = () => ({});
32
+ }
33
+ // Value.
34
+ get value() {
35
+ return this._value;
36
+ }
37
+ set value(value) {
38
+ this._value = value;
39
+ this._changeDetectorRef.markForCheck();
40
+ }
41
+ // Disabled.
42
+ get disabled() {
43
+ return this._disabled;
44
+ }
45
+ set disabled(value) {
46
+ const newValue = coerceBooleanProperty(value);
47
+ if (newValue !== this.disabled) {
48
+ this._disabled = newValue;
49
+ this._changeDetectorRef.markForCheck();
50
+ }
51
+ }
52
+ // Grouped.
53
+ get grouped() {
54
+ return this._grouped;
55
+ }
56
+ set grouped(value) {
57
+ const newValue = coerceBooleanProperty(value);
58
+ if (newValue !== this.grouped) {
59
+ this._grouped = newValue;
60
+ this._changeDetectorRef.markForCheck();
61
+ }
62
+ }
63
+ // Readonly.
64
+ get readonly() {
65
+ return this._readonly;
66
+ }
67
+ set readonly(value) {
68
+ const newValue = coerceBooleanProperty(value);
69
+ if (newValue !== this.grouped) {
70
+ this._readonly = newValue;
71
+ this._changeDetectorRef.markForCheck();
72
+ }
73
+ }
74
+ // Required.
75
+ get required() {
76
+ return this._required;
77
+ }
78
+ set required(value) {
79
+ const newValue = coerceBooleanProperty(value);
80
+ if (newValue !== this.required) {
81
+ this._required = newValue;
82
+ this._changeDetectorRef.markForCheck();
83
+ }
84
+ }
85
+ // Inline.
86
+ get inline() {
87
+ return this._inline;
88
+ }
89
+ set inline(value) {
90
+ const newValue = coerceBooleanProperty(value);
91
+ if (newValue !== this.inline) {
92
+ this._inline = newValue;
93
+ this._changeDetectorRef.markForCheck();
94
+ }
95
+ }
96
+ ngDoCheck() {
97
+ const control = this._injector.get(NgControl);
98
+ const submitted = this._errorSubmit?.submitted;
99
+ const hasErrors = shouldShowErrors(this.errorMode, control, submitted, false, this.readonly);
100
+ const errors = control?.errors ?? null;
101
+ const newValue = hasErrors ? errors : null;
102
+ const equal = JSON.stringify(newValue) === JSON.stringify(this.validationErrors$.getValue());
103
+ if (equal) {
104
+ return;
105
+ }
106
+ this.validationErrors$.next(newValue);
107
+ }
108
+ select(value) {
109
+ if (this.value === value || this.disabled || this.readonly) {
110
+ return;
111
+ }
112
+ this.value = value;
113
+ this.onChange?.(this.value);
114
+ this.valueChange.emit(this.value);
115
+ this.onTouched?.();
116
+ }
117
+ registerOnChange(fn) {
118
+ this.onChange = fn;
119
+ }
120
+ registerOnTouched(fn) {
121
+ this.onTouched = fn;
122
+ }
123
+ setDisabledState(isDisabled) {
124
+ this.disabled = isDisabled;
125
+ }
126
+ writeValue(newValue) {
127
+ this.value = newValue;
128
+ }
129
+ }
130
+ BbiRadioGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbiRadioGroup, deps: [{ token: i0.Injector }, { token: i0.ChangeDetectorRef }, { token: i1.BbiControlErrorSubmit, optional: true }], target: i0.ɵɵFactoryTarget.Component });
131
+ BbiRadioGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: BbiRadioGroup, selector: "bbi-radio-group", inputs: { label: "label", errorMode: "errorMode", value: "value", disabled: "disabled", grouped: "grouped", readonly: "readonly", required: "required", inline: "inline" }, outputs: { valueChange: "valueChange" }, host: { properties: { "class.disabled": "disabled", "class.readonly": "readonly", "class.grouped": "grouped", "class.required": "required", "class.inline": "inline", "class.error": "validationErrors$?.getValue()" }, classAttribute: "bbi-radio-group" }, providers: [
132
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BbiRadioGroup), multi: true }
133
+ ], ngImport: i0, template: "<label *ngIf=\"label as labelContent\"\n class=\"bbi-radio-group-label\">\n <ng-template [bbTemplate]=\"labelContent\">{{ labelContent }}</ng-template>\n</label>\n\n<div class=\"bbi-radio-group-items\">\n <ng-content select=\"bbi-radio-button\"></ng-content>\n</div>\n\n<bbi-control-error *ngIf=\"validationErrors$ | async as errors\"\n [errors]=\"errors\">\n</bbi-control-error>\n", styles: [".bbi-radio-group{display:block}.bbi-radio-group.grouped{margin-bottom:var(--radio-group-grouping, 20px)}.bbi-radio-group.readonly{pointer-events:none}.bbi-radio-group.error>.bbi-radio-group-label{color:var(--radio-group-error, var(--error-color, #bd322a))}.bbi-radio-group.required>.bbi-radio-group-label:after{content:\"*\";color:#c23934;font-size:12px;line-height:1.5}.bbi-radio-group-label{border:0;padding:0;font-family:inherit;display:inline-block;box-sizing:border-box;vertical-align:initial;color:var(--radio-group-label-color, #525252);font-size:var(--radio-group-label-font-size, 14px);margin-bottom:var(--radio-group-label-offset, 4px);line-height:var(--radio-group-label-line-height, 1.33);font-weight:var(--radio-group-label-font-weight, 400)}.bbi-radio-group-items{display:flex;flex-direction:column}.bbi-radio-group-items:not(:empty){margin-bottom:-var(--radio-group-item-spacing-vertical,4px)}.bbi-radio-group-items>*{margin-bottom:var(--radio-group-item-spacing-vertical, 4px)}@media only screen and (min-width: 768px){.bbi-radio-group.inline>.bbi-radio-group-items{flex-wrap:wrap;flex-direction:row}.bbi-radio-group.inline>.bbi-radio-group-items>*:not(:last-child){margin-right:var(--radio-group-item-spacing-horizontal, 10px)}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.BbiControlError, selector: "bbi-control-error", inputs: ["errors"] }, { kind: "directive", type: i4.BbTemplate, selector: "[bbTemplate]", inputs: ["bbTemplate"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
134
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbiRadioGroup, decorators: [{
135
+ type: Component,
136
+ args: [{ selector: 'bbi-radio-group', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
137
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BbiRadioGroup), multi: true }
138
+ ], host: {
139
+ 'class': 'bbi-radio-group',
140
+ '[class.disabled]': 'disabled',
141
+ '[class.readonly]': 'readonly',
142
+ '[class.grouped]': 'grouped',
143
+ '[class.required]': 'required',
144
+ '[class.inline]': 'inline',
145
+ '[class.error]': 'validationErrors$?.getValue()'
146
+ }, preserveWhitespaces: false, template: "<label *ngIf=\"label as labelContent\"\n class=\"bbi-radio-group-label\">\n <ng-template [bbTemplate]=\"labelContent\">{{ labelContent }}</ng-template>\n</label>\n\n<div class=\"bbi-radio-group-items\">\n <ng-content select=\"bbi-radio-button\"></ng-content>\n</div>\n\n<bbi-control-error *ngIf=\"validationErrors$ | async as errors\"\n [errors]=\"errors\">\n</bbi-control-error>\n", styles: [".bbi-radio-group{display:block}.bbi-radio-group.grouped{margin-bottom:var(--radio-group-grouping, 20px)}.bbi-radio-group.readonly{pointer-events:none}.bbi-radio-group.error>.bbi-radio-group-label{color:var(--radio-group-error, var(--error-color, #bd322a))}.bbi-radio-group.required>.bbi-radio-group-label:after{content:\"*\";color:#c23934;font-size:12px;line-height:1.5}.bbi-radio-group-label{border:0;padding:0;font-family:inherit;display:inline-block;box-sizing:border-box;vertical-align:initial;color:var(--radio-group-label-color, #525252);font-size:var(--radio-group-label-font-size, 14px);margin-bottom:var(--radio-group-label-offset, 4px);line-height:var(--radio-group-label-line-height, 1.33);font-weight:var(--radio-group-label-font-weight, 400)}.bbi-radio-group-items{display:flex;flex-direction:column}.bbi-radio-group-items:not(:empty){margin-bottom:-var(--radio-group-item-spacing-vertical,4px)}.bbi-radio-group-items>*{margin-bottom:var(--radio-group-item-spacing-vertical, 4px)}@media only screen and (min-width: 768px){.bbi-radio-group.inline>.bbi-radio-group-items{flex-wrap:wrap;flex-direction:row}.bbi-radio-group.inline>.bbi-radio-group-items>*:not(:last-child){margin-right:var(--radio-group-item-spacing-horizontal, 10px)}}\n"] }]
147
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ChangeDetectorRef }, { type: i1.BbiControlErrorSubmit, decorators: [{
148
+ type: Optional
149
+ }] }]; }, propDecorators: { label: [{
150
+ type: Input
151
+ }], errorMode: [{
152
+ type: Input
153
+ }], valueChange: [{
154
+ type: Output
155
+ }], value: [{
156
+ type: Input
157
+ }], disabled: [{
158
+ type: Input
159
+ }], grouped: [{
160
+ type: Input
161
+ }], readonly: [{
162
+ type: Input
163
+ }], required: [{
164
+ type: Input
165
+ }], inline: [{
166
+ type: Input
167
+ }] } });
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb250cm9scy9zcmMvbGliL3JhZGlvL3JhZGlvLWdyb3VwL3JhZGlvLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vY29udHJvbHMvc3JjL2xpYi9yYWRpby9yYWRpby1ncm91cC9yYWRpby1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQXFCLFNBQVMsRUFBVyxZQUFZLEVBQUUsVUFBVSxFQUFZLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFlLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzFMLE9BQU8sRUFBdUIsaUJBQWlCLEVBQUUsU0FBUyxFQUFtQixNQUFNLGdCQUFnQixDQUFDO0FBR3BHLE9BQU8sRUFBZSxxQkFBcUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzFFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7OztBQXNCckMsTUFBTSxPQUFPLGFBQWE7SUE2R3RCLFlBQW9CLFNBQW1CLEVBQ25CLGtCQUFxQyxFQUN6QixZQUFvQztRQUZoRCxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDekIsaUJBQVksR0FBWixZQUFZLENBQXdCO1FBN0dwRSxVQUFVO1FBQ0QsVUFBSyxHQUFxQyxJQUFJLENBQUM7UUFDL0MsY0FBUyxHQUFxQixNQUFNLENBQUM7UUFFOUMsV0FBVztRQUNELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVoRCxTQUFTO1FBQ1Qs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UUFBUTs0Q0E1R1osS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0ksV0FBVztzQkFBcEIsTUFBTTtnQkFPSCxLQUFLO3NCQURSLEtBQUs7Z0JBY0YsUUFBUTtzQkFEWCxLQUFLO2dCQWlCRixPQUFPO3NCQURWLEtBQUs7Z0JBaUJGLFFBQVE7c0JBRFgsS0FBSztnQkFpQkYsUUFBUTtzQkFEWCxLQUFLO2dCQWlCRixNQUFNO3NCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBEb0NoZWNrLCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIEluamVjdG9yLCBJbnB1dCwgT3B0aW9uYWwsIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SLCBOZ0NvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7QmJpQ29udHJvbEVycm9yU3VibWl0fSBmcm9tICcuLi8uLi9jb250cm9sLWVycm9yL2NvbnRyb2wtZXJyb3Itc3VibWl0LmRpcmVjdGl2ZSc7XG5pbXBvcnQge0NvbnRyb2xFcnJvck1vZGV9IGZyb20gJy4uLy4uL2NvbnRyb2wtZXJyb3IvY29udHJvbC1lcnJvci5pbnRlcmZhY2UnO1xuaW1wb3J0IHtCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7c2hvdWxkU2hvd0Vycm9yc30gZnJvbSAnLi4vLi4vY29udHJvbC1lcnJvci9jb250cm9sLWVycm9yLnV0aWxzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdiYmktcmFkaW8tZ3JvdXAnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yYWRpby1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcmFkaW8tZ3JvdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7cHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEJiaVJhZGlvR3JvdXApLCBtdWx0aTogdHJ1ZX1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ2JiaS1yYWRpby1ncm91cCcsXG4gICAgICAgICdbY2xhc3MuZGlzYWJsZWRdJzogJ2Rpc2FibGVkJyxcbiAgICAgICAgJ1tjbGFzcy5yZWFkb25seV0nOiAncmVhZG9ubHknLFxuICAgICAgICAnW2NsYXNzLmdyb3VwZWRdJzogJ2dyb3VwZWQnLFxuICAgICAgICAnW2NsYXNzLnJlcXVpcmVkXSc6ICdyZXF1aXJlZCcsXG4gICAgICAgICdbY2xhc3MuaW5saW5lXSc6ICdpbmxpbmUnLFxuICAgICAgICAnW2NsYXNzLmVycm9yXSc6ICd2YWxpZGF0aW9uRXJyb3JzJD8uZ2V0VmFsdWUoKSdcbiAgICB9LFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIEJiaVJhZGlvR3JvdXAgaW1wbGVtZW50cyBEb0NoZWNrLCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cbiAgICAvLyBJbnB1dHMuXG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSBlcnJvck1vZGU6IENvbnRyb2xFcnJvck1vZGUgPSAnYmx1cic7XG5cbiAgICAvLyBPdXRwdXRzLlxuICAgIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgLy8gU3RhdGUuXG4gICAgdmFsaWRhdGlvbkVycm9ycyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPihudWxsKTtcblxuICAgIC8vIFZhbHVlLlxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgICB9XG5cbiAgICBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF92YWx1ZTogYW55ID0gbnVsbDtcblxuICAgIC8vIERpc2FibGVkLlxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgc2V0IGRpc2FibGVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgICAgICBpZiAobmV3VmFsdWUgIT09IHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2Rpc2FibGVkID0gbmV3VmFsdWU7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvLyBHcm91cGVkLlxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGdyb3VwZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ncm91cGVkO1xuICAgIH1cblxuICAgIHNldCBncm91cGVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgICAgICBpZiAobmV3VmFsdWUgIT09IHRoaXMuZ3JvdXBlZCkge1xuICAgICAgICAgICAgdGhpcy5fZ3JvdXBlZCA9IG5ld1ZhbHVlO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9ncm91cGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvLyBSZWFkb25seS5cbiAgICBASW5wdXQoKVxuICAgIGdldCByZWFkb25seSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlYWRvbmx5O1xuICAgIH1cblxuICAgIHNldCByZWFkb25seSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICAgICAgaWYgKG5ld1ZhbHVlICE9PSB0aGlzLmdyb3VwZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3JlYWRvbmx5ID0gbmV3VmFsdWU7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3JlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvLyBSZXF1aXJlZC5cbiAgICBASW5wdXQoKVxuICAgIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xuICAgIH1cblxuICAgIHNldCByZXF1aXJlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICAgICAgaWYgKG5ld1ZhbHVlICE9PSB0aGlzLnJlcXVpcmVkKSB7XG4gICAgICAgICAgICB0aGlzLl9yZXF1aXJlZCA9IG5ld1ZhbHVlO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9yZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLy8gSW5saW5lLlxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlubGluZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lubGluZTtcbiAgICB9XG5cbiAgICBzZXQgaW5saW5lKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgICAgICBpZiAobmV3VmFsdWUgIT09IHRoaXMuaW5saW5lKSB7XG4gICAgICAgICAgICB0aGlzLl9pbmxpbmUgPSBuZXdWYWx1ZTtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaW5saW5lOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvLyBNZXRob2RzLlxuICAgIG9uQ2hhbmdlOiAobmV3VmFsdWU6IGFueSkgPT4gdm9pZCA9ICgpID0+ICh7fSk7XG4gICAgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4gKHt9KTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfZXJyb3JTdWJtaXQ/OiBCYmlDb250cm9sRXJyb3JTdWJtaXQpIHtcbiAgICB9XG5cbiAgICBuZ0RvQ2hlY2soKSB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLl9pbmplY3Rvci5nZXQoTmdDb250cm9sKTtcbiAgICAgICAgY29uc3Qgc3VibWl0dGVkID0gdGhpcy5fZXJyb3JTdWJtaXQ/LnN1Ym1pdHRlZDtcbiAgICAgICAgY29uc3QgaGFzRXJyb3JzID0gc2hvdWxkU2hvd0Vycm9ycyh0aGlzLmVycm9yTW9kZSwgY29udHJvbCwgc3VibWl0dGVkLCBmYWxzZSwgdGhpcy5yZWFkb25seSk7XG4gICAgICAgIGNvbnN0IGVycm9ycyA9IGNvbnRyb2w/LmVycm9ycyA/PyBudWxsO1xuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IGhhc0Vycm9ycyA/IGVycm9ycyA6IG51bGw7XG5cbiAgICAgICAgY29uc3QgZXF1YWwgPSBKU09OLnN0cmluZ2lmeShuZXdWYWx1ZSkgPT09IEpTT04uc3RyaW5naWZ5KHRoaXMudmFsaWRhdGlvbkVycm9ycyQuZ2V0VmFsdWUoKSk7XG4gICAgICAgIGlmIChlcXVhbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzJC5uZXh0KG5ld1ZhbHVlKTtcbiAgICB9XG5cbiAgICBzZWxlY3QodmFsdWU6IGFueSkge1xuICAgICAgICBpZiAodGhpcy52YWx1ZSA9PT0gdmFsdWUgfHwgdGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRvbmx5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlPy4odGhpcy52YWx1ZSk7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQ/LigpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChuZXdWYWx1ZTogYm9vbGVhbikgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZShuZXdWYWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB9XG5cbiAgICAvLyBSZXF1aXJlZCBzbyB0aGF0IHRoZSB0ZW1wbGF0ZSB0eXBlIGNoZWNrZXIgY2FuIGluZmVyIHRoZSB0eXBlIG9mIHRoZSBjb2VyY2VkIGlucHV0cy5cbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbGFiZWw6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV92YWx1ZTogYW55O1xuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9kaXNhYmxlZDogQm9vbGVhbklucHV0O1xuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9yZWFkb25seTogQm9vbGVhbklucHV0O1xuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9ncm91cGVkOiBCb29sZWFuSW5wdXQ7XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3JlcXVpcmVkOiBCb29sZWFuSW5wdXQ7XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2lubGluZTogQm9vbGVhbklucHV0O1xuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9lcnJvck1vZGU6IENvbnRyb2xFcnJvck1vZGU7XG5cbn1cbiIsIjxsYWJlbCAqbmdJZj1cImxhYmVsIGFzIGxhYmVsQ29udGVudFwiXG4gICAgICAgY2xhc3M9XCJiYmktcmFkaW8tZ3JvdXAtbGFiZWxcIj5cbiAgICA8bmctdGVtcGxhdGUgW2JiVGVtcGxhdGVdPVwibGFiZWxDb250ZW50XCI+e3sgbGFiZWxDb250ZW50IH19PC9uZy10ZW1wbGF0ZT5cbjwvbGFiZWw+XG5cbjxkaXYgY2xhc3M9XCJiYmktcmFkaW8tZ3JvdXAtaXRlbXNcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJiYmktcmFkaW8tYnV0dG9uXCI+PC9uZy1jb250ZW50PlxuPC9kaXY+XG5cbjxiYmktY29udHJvbC1lcnJvciAqbmdJZj1cInZhbGlkYXRpb25FcnJvcnMkIHwgYXN5bmMgYXMgZXJyb3JzXCJcbiAgICAgICAgICAgICAgICAgICBbZXJyb3JzXT1cImVycm9yc1wiPlxuPC9iYmktY29udHJvbC1lcnJvcj5cbiJdfQ==
@@ -0,0 +1,21 @@
1
+ import { ControlErrorModule } from '../control-error/control-error.module';
2
+ import { BbiRadioButton } from './radio-button/radio-button.component';
3
+ import { BbiRadioGroup } from './radio-group/radio-group.component';
4
+ import { UtilsModule } from '@bravobit/bb-foundation/utils';
5
+ import { CommonModule } from '@angular/common';
6
+ import { NgModule } from '@angular/core';
7
+ import * as i0 from "@angular/core";
8
+ export class RadioModule {
9
+ }
10
+ RadioModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: RadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ RadioModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.2", ngImport: i0, type: RadioModule, declarations: [BbiRadioGroup, BbiRadioButton], imports: [CommonModule, ControlErrorModule, UtilsModule], exports: [BbiRadioGroup, BbiRadioButton] });
12
+ RadioModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: RadioModule, imports: [CommonModule, ControlErrorModule, UtilsModule] });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: RadioModule, decorators: [{
14
+ type: NgModule,
15
+ args: [{
16
+ imports: [CommonModule, ControlErrorModule, UtilsModule],
17
+ declarations: [BbiRadioGroup, BbiRadioButton],
18
+ exports: [BbiRadioGroup, BbiRadioButton]
19
+ }]
20
+ }] });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb250cm9scy9zcmMvbGliL3JhZGlvL3JhZGlvLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDckUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFPdkMsTUFBTSxPQUFPLFdBQVc7O3dHQUFYLFdBQVc7eUdBQVgsV0FBVyxpQkFITCxhQUFhLEVBQUUsY0FBYyxhQURsQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxhQUU3QyxhQUFhLEVBQUUsY0FBYzt5R0FFOUIsV0FBVyxZQUpWLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxXQUFXOzJGQUk5QyxXQUFXO2tCQUx2QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxXQUFXLENBQUM7b0JBQ3hELFlBQVksRUFBRSxDQUFDLGFBQWEsRUFBRSxjQUFjLENBQUM7b0JBQzdDLE9BQU8sRUFBRSxDQUFDLGFBQWEsRUFBRSxjQUFjLENBQUM7aUJBQzNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb250cm9sRXJyb3JNb2R1bGV9IGZyb20gJy4uL2NvbnRyb2wtZXJyb3IvY29udHJvbC1lcnJvci5tb2R1bGUnO1xuaW1wb3J0IHtCYmlSYWRpb0J1dHRvbn0gZnJvbSAnLi9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiaVJhZGlvR3JvdXB9IGZyb20gJy4vcmFkaW8tZ3JvdXAvcmFkaW8tZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7VXRpbHNNb2R1bGV9IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uL3V0aWxzJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQ29udHJvbEVycm9yTW9kdWxlLCBVdGlsc01vZHVsZV0sXG4gICAgZGVjbGFyYXRpb25zOiBbQmJpUmFkaW9Hcm91cCwgQmJpUmFkaW9CdXR0b25dLFxuICAgIGV4cG9ydHM6IFtCYmlSYWRpb0dyb3VwLCBCYmlSYWRpb0J1dHRvbl1cbn0pXG5leHBvcnQgY2xhc3MgUmFkaW9Nb2R1bGUge1xufVxuIl19
@@ -0,0 +1,153 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
2
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
3
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ let nextUniqueId = 0;
7
+ export class BbiToggle {
8
+ constructor(_renderer, _changeDetectorRef) {
9
+ this._renderer = _renderer;
10
+ this._changeDetectorRef = _changeDetectorRef;
11
+ // Readonly data.
12
+ this.labelId = `bbi-toggle-${nextUniqueId++}`;
13
+ // Outputs.
14
+ this.checkedChange = new EventEmitter();
15
+ this._checked = false;
16
+ this._disabled = false;
17
+ this._grouped = false;
18
+ this._required = false;
19
+ this._hideText = false;
20
+ // Methods.
21
+ this.onChange = () => ({});
22
+ this.onTouched = () => ({});
23
+ }
24
+ // Checked.
25
+ get checked() {
26
+ return this._checked;
27
+ }
28
+ set checked(value) {
29
+ const newValue = coerceBooleanProperty(value);
30
+ if (newValue !== this.checked) {
31
+ this._checked = newValue;
32
+ this._changeDetectorRef.markForCheck();
33
+ }
34
+ }
35
+ // Disabled.
36
+ get disabled() {
37
+ return this._disabled;
38
+ }
39
+ set disabled(value) {
40
+ const newValue = coerceBooleanProperty(value);
41
+ if (newValue !== this.disabled) {
42
+ this._disabled = newValue;
43
+ this._changeDetectorRef.markForCheck();
44
+ }
45
+ }
46
+ // Grouped.
47
+ get grouped() {
48
+ return this._grouped;
49
+ }
50
+ set grouped(value) {
51
+ const newValue = coerceBooleanProperty(value);
52
+ if (newValue !== this.grouped) {
53
+ this._grouped = newValue;
54
+ this._changeDetectorRef.markForCheck();
55
+ }
56
+ }
57
+ // Required.
58
+ get required() {
59
+ return this._required;
60
+ }
61
+ set required(value) {
62
+ const newValue = coerceBooleanProperty(value);
63
+ if (newValue !== this.required) {
64
+ this._required = newValue;
65
+ this._changeDetectorRef.markForCheck();
66
+ }
67
+ }
68
+ // Hide text.
69
+ get hideText() {
70
+ return this._hideText;
71
+ }
72
+ set hideText(value) {
73
+ const newValue = coerceBooleanProperty(value);
74
+ if (newValue !== this.hideText) {
75
+ this._hideText = newValue;
76
+ this._changeDetectorRef.markForCheck();
77
+ }
78
+ }
79
+ registerOnChange(fn) {
80
+ this.onChange = fn;
81
+ }
82
+ registerOnTouched(fn) {
83
+ this.onTouched = fn;
84
+ }
85
+ setDisabledState(isDisabled) {
86
+ this.disabled = isDisabled;
87
+ }
88
+ writeValue(newValue) {
89
+ this.checked = !!newValue;
90
+ }
91
+ toggle() {
92
+ this.checked = !this.checked;
93
+ }
94
+ onClickEvent(event) {
95
+ event.stopPropagation();
96
+ if (this.disabled) {
97
+ return;
98
+ }
99
+ this.toggle();
100
+ // Emit our custom change event if the native input emitted one.
101
+ // It is important to only emit it, if the native input triggered one, because
102
+ // we don't want to trigger a change event, when the `checked` variable changes for example.
103
+ this.emitChangeEvent();
104
+ }
105
+ onChangeEvent(event) {
106
+ // We always have to stop propagation on the change event.
107
+ // Otherwise the change event, from the input element, will bubble up and
108
+ // emit its event object to the `change` output.
109
+ event.stopPropagation();
110
+ }
111
+ emitChangeEvent() {
112
+ this.onChange?.(this.checked);
113
+ this.checkedChange.emit(this.checked);
114
+ this.syncField('checked', this.checked);
115
+ }
116
+ syncField(field, value) {
117
+ const element = this.inputElementRef?.nativeElement;
118
+ if (!element) {
119
+ return;
120
+ }
121
+ this._renderer.setProperty(element, field, value);
122
+ }
123
+ }
124
+ BbiToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbiToggle, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
125
+ BbiToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: BbiToggle, selector: "bbi-toggle", inputs: { checked: "checked", disabled: "disabled", grouped: "grouped", required: "required", hideText: "hideText" }, outputs: { checkedChange: "checkedChange" }, host: { properties: { "class.grouped": "grouped", "class.required": "required" }, classAttribute: "bbi-toggle" }, providers: [
126
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BbiToggle), multi: true }
127
+ ], viewQueries: [{ propertyName: "inputElementRef", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: "<input #input\n [id]=\"labelId\"\n [disabled]=\"disabled\"\n [checked]=\"checked\"\n (change)=\"onChangeEvent($event)\"\n (click)=\"onClickEvent($event)\"\n (blur)=\"onTouched()\"\n class=\"bbi-toggle-input\"\n type=\"checkbox\">\n<label [attr.for]=\"labelId\"\n class=\"bbi-toggle-label\">\n <div class=\"bbi-toggle-switch\"></div>\n <span *ngIf=\"!hideText\"\n class=\"bbi-toggle-text\"><ng-content></ng-content></span>\n</label>\n", styles: [".bbi-toggle{display:block}.bbi-toggle.grouped{margin-bottom:var(--toggle-grouping, 20px)}.bbi-toggle-input{border:0;width:1px;padding:0;height:1px;margin:-1px;overflow:hidden;position:absolute;visibility:inherit;white-space:nowrap;clip:rect(0,0,0,0)}.bbi-toggle-switch{display:block;position:relative;width:var(--toggle-width, 40px);height:var(--toggle-height, 20px);min-width:var(--toggle-width, 40px);min-height:var(--toggle-height, 20px);outline-offset:var(--toggle-outline-offset, 1px);border-radius:calc(var(--toggle-height, 20px) / 2);background-color:var(--toggle-colors-background, #aeaeae);outline:var(--toggle-outline-thickness, 2px) solid transparent;transition:background-color 70ms cubic-bezier(.2,0,1,.9)}.bbi-toggle-switch:before{content:\"\";position:absolute;border-radius:50%;top:calc(.125 * var(--toggle-height, 20px));width:calc(.75 * var(--toggle-height, 20px));height:calc(.75 * var(--toggle-height, 20px));left:calc(.125 * var(--toggle-height, 20px));background-color:var(--toggle-colors-indicator, #ffffff);transition:transform 70ms cubic-bezier(.2,0,1,.9)}.bbi-toggle-input:checked+.bbi-toggle-label>.bbi-toggle-switch{background-color:var(--toggle-colors-accent, var(--accent-color, #1565c0))}.bbi-toggle-input:checked+.bbi-toggle-label>.bbi-toggle-switch:before{transform:translate(calc(var(--toggle-width, 40px) - .75 * var(--toggle-height, 20px) - .125 * var(--toggle-height, 20px) * 2))}.bbi-toggle-input:focus+.bbi-toggle-label>.bbi-toggle-switch{outline-color:var(--toggle-outline-color, var(--accent-color, #1565c0))}.bbi-toggle-input:disabled+.bbi-toggle-label{cursor:not-allowed}.bbi-toggle-input:disabled+.bbi-toggle-label>.bbi-toggle-text{color:var(--toggle-colors-disabled, #c6c6c6)}.bbi-toggle-label{display:flex;cursor:pointer;align-items:center}.bbi-toggle-text{color:var(--toggle-label-color, #111111);padding-left:var(--toggle-label-offset, 6px);font-size:var(--toggle-label-font-size, 16px);font-weight:var(--toggle-label-font-weight, 400);line-height:var(--toggle-label-line-height, 1.28)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
128
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbiToggle, decorators: [{
129
+ type: Component,
130
+ args: [{ selector: 'bbi-toggle', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
131
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BbiToggle), multi: true }
132
+ ], host: {
133
+ 'class': 'bbi-toggle',
134
+ '[class.grouped]': 'grouped',
135
+ '[class.required]': 'required'
136
+ }, preserveWhitespaces: false, template: "<input #input\n [id]=\"labelId\"\n [disabled]=\"disabled\"\n [checked]=\"checked\"\n (change)=\"onChangeEvent($event)\"\n (click)=\"onClickEvent($event)\"\n (blur)=\"onTouched()\"\n class=\"bbi-toggle-input\"\n type=\"checkbox\">\n<label [attr.for]=\"labelId\"\n class=\"bbi-toggle-label\">\n <div class=\"bbi-toggle-switch\"></div>\n <span *ngIf=\"!hideText\"\n class=\"bbi-toggle-text\"><ng-content></ng-content></span>\n</label>\n", styles: [".bbi-toggle{display:block}.bbi-toggle.grouped{margin-bottom:var(--toggle-grouping, 20px)}.bbi-toggle-input{border:0;width:1px;padding:0;height:1px;margin:-1px;overflow:hidden;position:absolute;visibility:inherit;white-space:nowrap;clip:rect(0,0,0,0)}.bbi-toggle-switch{display:block;position:relative;width:var(--toggle-width, 40px);height:var(--toggle-height, 20px);min-width:var(--toggle-width, 40px);min-height:var(--toggle-height, 20px);outline-offset:var(--toggle-outline-offset, 1px);border-radius:calc(var(--toggle-height, 20px) / 2);background-color:var(--toggle-colors-background, #aeaeae);outline:var(--toggle-outline-thickness, 2px) solid transparent;transition:background-color 70ms cubic-bezier(.2,0,1,.9)}.bbi-toggle-switch:before{content:\"\";position:absolute;border-radius:50%;top:calc(.125 * var(--toggle-height, 20px));width:calc(.75 * var(--toggle-height, 20px));height:calc(.75 * var(--toggle-height, 20px));left:calc(.125 * var(--toggle-height, 20px));background-color:var(--toggle-colors-indicator, #ffffff);transition:transform 70ms cubic-bezier(.2,0,1,.9)}.bbi-toggle-input:checked+.bbi-toggle-label>.bbi-toggle-switch{background-color:var(--toggle-colors-accent, var(--accent-color, #1565c0))}.bbi-toggle-input:checked+.bbi-toggle-label>.bbi-toggle-switch:before{transform:translate(calc(var(--toggle-width, 40px) - .75 * var(--toggle-height, 20px) - .125 * var(--toggle-height, 20px) * 2))}.bbi-toggle-input:focus+.bbi-toggle-label>.bbi-toggle-switch{outline-color:var(--toggle-outline-color, var(--accent-color, #1565c0))}.bbi-toggle-input:disabled+.bbi-toggle-label{cursor:not-allowed}.bbi-toggle-input:disabled+.bbi-toggle-label>.bbi-toggle-text{color:var(--toggle-colors-disabled, #c6c6c6)}.bbi-toggle-label{display:flex;cursor:pointer;align-items:center}.bbi-toggle-text{color:var(--toggle-label-color, #111111);padding-left:var(--toggle-label-offset, 6px);font-size:var(--toggle-label-font-size, 16px);font-weight:var(--toggle-label-font-weight, 400);line-height:var(--toggle-label-line-height, 1.28)}\n"] }]
137
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { inputElementRef: [{
138
+ type: ViewChild,
139
+ args: ['input', { static: true }]
140
+ }], checkedChange: [{
141
+ type: Output
142
+ }], checked: [{
143
+ type: Input
144
+ }], disabled: [{
145
+ type: Input
146
+ }], grouped: [{
147
+ type: Input
148
+ }], required: [{
149
+ type: Input
150
+ }], hideText: [{
151
+ type: Input
152
+ }] } });
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vY29udHJvbHMvc3JjL2xpYi90b2dnbGUvdG9nZ2xlL3RvZ2dsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2NvbnRyb2xzL3NyYy9saWIvdG9nZ2xlL3RvZ2dsZS90b2dnbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQUUsTUFBTSxFQUViLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFlLHFCQUFxQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDMUUsT0FBTyxFQUF1QixpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7QUFFdkUsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBa0JyQixNQUFNLE9BQU8sU0FBUztJQStGbEIsWUFBb0IsU0FBb0IsRUFDcEIsa0JBQXFDO1FBRHJDLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQTlGekQsaUJBQWlCO1FBQ1IsWUFBTyxHQUFHLGNBQWMsWUFBWSxFQUFFLEVBQUUsQ0FBQztRQUtsRCxXQUFXO1FBQ0Qsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBZ0I5QyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBZ0IxQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBZ0IzQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBZ0IxQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBZ0IzQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBRW5DLFdBQVc7UUFDWCxhQUFRLEdB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OzJGRGtCYSxTQUFTO2tCQWhCckIsU0FBUzsrQkFDSSxZQUFZLG1CQUdMLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksYUFDMUI7d0JBQ1AsRUFBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQztxQkFDdEYsUUFDSzt3QkFDRixPQUFPLEVBQUUsWUFBWTt3QkFDckIsaUJBQWlCLEVBQUUsU0FBUzt3QkFDNUIsa0JBQWtCLEVBQUUsVUFBVTtxQkFDakMsdUJBQ29CLEtBQUs7Z0lBUVUsZUFBZTtzQkFBbEQsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUd4QixhQUFhO3NCQUF0QixNQUFNO2dCQUlILE9BQU87c0JBRFYsS0FBSztnQkFpQkYsUUFBUTtzQkFEWCxLQUFLO2dCQWlCRixPQUFPO3NCQURWLEtBQUs7Z0JBaUJGLFFBQVE7c0JBRFgsS0FBSztnQkFpQkYsUUFBUTtzQkFEWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbnB1dCwgT3V0cHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Jvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5fSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxubGV0IG5leHRVbmlxdWVJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYmJpLXRvZ2dsZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RvZ2dsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdG9nZ2xlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge3Byb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBCYmlUb2dnbGUpLCBtdWx0aTogdHJ1ZX1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ2JiaS10b2dnbGUnLFxuICAgICAgICAnW2NsYXNzLmdyb3VwZWRdJzogJ2dyb3VwZWQnLFxuICAgICAgICAnW2NsYXNzLnJlcXVpcmVkXSc6ICdyZXF1aXJlZCdcbiAgICB9LFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIEJiaVRvZ2dsZSBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblxuICAgIC8vIFJlYWRvbmx5IGRhdGEuXG4gICAgcmVhZG9ubHkgbGFiZWxJZCA9IGBiYmktdG9nZ2xlLSR7bmV4dFVuaXF1ZUlkKyt9YDtcblxuICAgIC8vIFZpZXdzLlxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0Jywge3N0YXRpYzogdHJ1ZX0pIGlucHV0RWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAgIC8vIE91dHB1dHMuXG4gICAgQE91dHB1dCgpIGNoZWNrZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvLyBDaGVja2VkLlxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGNoZWNrZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jaGVja2VkO1xuICAgIH1cblxuICAgIHNldCBjaGVja2VkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgICAgICBpZiAobmV3VmFsdWUgIT09IHRoaXMuY2hlY2tlZCkge1xuICAgICAgICAgICAgdGhpcy5fY2hlY2tlZCA9IG5ld1ZhbHVlO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9jaGVja2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvLyBEaXNhYmxlZC5cbiAgICBASW5wdXQoKVxuICAgIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICAgIH1cblxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICAgICAgaWYgKG5ld1ZhbHVlICE9PSB0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IG5ld1ZhbHVlO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLy8gR3JvdXBlZC5cbiAgICBASW5wdXQoKVxuICAgIGdldCBncm91cGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ3JvdXBlZDtcbiAgICB9XG5cbiAgICBzZXQgZ3JvdXBlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICAgICAgaWYgKG5ld1ZhbHVlICE9PSB0aGlzLmdyb3VwZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2dyb3VwZWQgPSBuZXdWYWx1ZTtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ3JvdXBlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLy8gUmVxdWlyZWQuXG4gICAgQElucHV0KClcbiAgICBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZDtcbiAgICB9XG5cbiAgICBzZXQgcmVxdWlyZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgICAgIGlmIChuZXdWYWx1ZSAhPT0gdGhpcy5yZXF1aXJlZCkge1xuICAgICAgICAgICAgdGhpcy5fcmVxdWlyZWQgPSBuZXdWYWx1ZTtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8vIEhpZGUgdGV4dC5cbiAgICBASW5wdXQoKVxuICAgIGdldCBoaWRlVGV4dCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hpZGVUZXh0O1xuICAgIH1cblxuICAgIHNldCBoaWRlVGV4dCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICAgICAgaWYgKG5ld1ZhbHVlICE9PSB0aGlzLmhpZGVUZXh0KSB7XG4gICAgICAgICAgICB0aGlzLl9oaWRlVGV4dCA9IG5ld1ZhbHVlO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9oaWRlVGV4dDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLy8gTWV0aG9kcy5cbiAgICBvbkNoYW5nZTogKG5ld1ZhbHVlOiBib29sZWFuKSA9PiB2b2lkID0gKCkgPT4gKHt9KTtcbiAgICBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiAoe30pO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAobmV3VmFsdWU6IGJvb2xlYW4pID0+IHZvaWQpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUobmV3VmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5jaGVja2VkID0gISFuZXdWYWx1ZTtcbiAgICB9XG5cbiAgICB0b2dnbGUoKSB7XG4gICAgICAgIHRoaXMuY2hlY2tlZCA9ICF0aGlzLmNoZWNrZWQ7XG4gICAgfVxuXG4gICAgb25DbGlja0V2ZW50KGV2ZW50OiBFdmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudG9nZ2xlKCk7XG5cbiAgICAgICAgLy8gRW1pdCBvdXIgY3VzdG9tIGNoYW5nZSBldmVudCBpZiB0aGUgbmF0aXZlIGlucHV0IGVtaXR0ZWQgb25lLlxuICAgICAgICAvLyBJdCBpcyBpbXBvcnRhbnQgdG8gb25seSBlbWl0IGl0LCBpZiB0aGUgbmF0aXZlIGlucHV0IHRyaWdnZXJlZCBvbmUsIGJlY2F1c2VcbiAgICAgICAgLy8gd2UgZG9uJ3Qgd2FudCB0byB0cmlnZ2VyIGEgY2hhbmdlIGV2ZW50LCB3aGVuIHRoZSBgY2hlY2tlZGAgdmFyaWFibGUgY2hhbmdlcyBmb3IgZXhhbXBsZS5cbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlRXZlbnQoKTtcbiAgICB9XG5cbiAgICBvbkNoYW5nZUV2ZW50KGV2ZW50OiBFdmVudCkge1xuICAgICAgICAvLyBXZSBhbHdheXMgaGF2ZSB0byBzdG9wIHByb3BhZ2F0aW9uIG9uIHRoZSBjaGFuZ2UgZXZlbnQuXG4gICAgICAgIC8vIE90aGVyd2lzZSB0aGUgY2hhbmdlIGV2ZW50LCBmcm9tIHRoZSBpbnB1dCBlbGVtZW50LCB3aWxsIGJ1YmJsZSB1cCBhbmRcbiAgICAgICAgLy8gZW1pdCBpdHMgZXZlbnQgb2JqZWN0IHRvIHRoZSBgY2hhbmdlYCBvdXRwdXQuXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZW1pdENoYW5nZUV2ZW50KCkge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlPy4odGhpcy5jaGVja2VkKTtcbiAgICAgICAgdGhpcy5jaGVja2VkQ2hhbmdlLmVtaXQodGhpcy5jaGVja2VkKTtcbiAgICAgICAgdGhpcy5zeW5jRmllbGQoJ2NoZWNrZWQnLCB0aGlzLmNoZWNrZWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3luY0ZpZWxkKGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmlucHV0RWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudDtcbiAgICAgICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkoZWxlbWVudCwgZmllbGQsIHZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyBSZXF1aXJlZCBzbyB0aGF0IHRoZSB0ZW1wbGF0ZSB0eXBlIGNoZWNrZXIgY2FuIGluZmVyIHRoZSB0eXBlIG9mIHRoZSBjb2VyY2VkIGlucHV0cy5cbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfY2hlY2tlZDogQm9vbGVhbklucHV0O1xuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9kaXNhYmxlZDogQm9vbGVhbklucHV0O1xuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9yZXF1aXJlZDogQm9vbGVhbklucHV0O1xuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9ncm91cGVkOiBCb29sZWFuSW5wdXQ7XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2hpZGVUZXh0OiBCb29sZWFuSW5wdXQ7XG5cbn1cbiIsIjxpbnB1dCAjaW5wdXRcbiAgICAgICBbaWRdPVwibGFiZWxJZFwiXG4gICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICBbY2hlY2tlZF09XCJjaGVja2VkXCJcbiAgICAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlRXZlbnQoJGV2ZW50KVwiXG4gICAgICAgKGNsaWNrKT1cIm9uQ2xpY2tFdmVudCgkZXZlbnQpXCJcbiAgICAgICAoYmx1cik9XCJvblRvdWNoZWQoKVwiXG4gICAgICAgY2xhc3M9XCJiYmktdG9nZ2xlLWlucHV0XCJcbiAgICAgICB0eXBlPVwiY2hlY2tib3hcIj5cbjxsYWJlbCBbYXR0ci5mb3JdPVwibGFiZWxJZFwiXG4gICAgICAgY2xhc3M9XCJiYmktdG9nZ2xlLWxhYmVsXCI+XG4gICAgPGRpdiBjbGFzcz1cImJiaS10b2dnbGUtc3dpdGNoXCI+PC9kaXY+XG4gICAgPHNwYW4gKm5nSWY9XCIhaGlkZVRleHRcIlxuICAgICAgICAgIGNsYXNzPVwiYmJpLXRvZ2dsZS10ZXh0XCI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50Pjwvc3Bhbj5cbjwvbGFiZWw+XG4iXX0=