@bravobit/bb-foundation 0.32.0 → 0.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/elements/lib/date-picker/date-picker.component.d.ts +3 -2
  2. package/elements/lib/directives/image-upload.directive.d.ts +28 -0
  3. package/elements/lib/elements.module.d.ts +21 -20
  4. package/elements/public_api.d.ts +1 -0
  5. package/esm2022/auth/lib/auth.interceptor.mjs +3 -3
  6. package/esm2022/auth/lib/auth.module.mjs +4 -4
  7. package/esm2022/auth/lib/auth.service.mjs +3 -3
  8. package/esm2022/auth/lib/directives/authenticated.directive.mjs +3 -3
  9. package/esm2022/auth/lib/guards/anonymous.guard.mjs +3 -3
  10. package/esm2022/auth/lib/guards/authenticated.guard.mjs +3 -3
  11. package/esm2022/collections/lib/collections.module.mjs +4 -4
  12. package/esm2022/collections/lib/components/collections-pager/collections-pager.component.mjs +3 -3
  13. package/esm2022/collections/lib/components/collections-viewer/collections-viewer.component.mjs +3 -3
  14. package/esm2022/collections/lib/components/collections.directive.mjs +12 -12
  15. package/esm2022/combobox/combobox/combobox-container.directive.mjs +3 -3
  16. package/esm2022/combobox/combobox/combobox.component.mjs +3 -3
  17. package/esm2022/combobox/combobox-label.directive.mjs +3 -3
  18. package/esm2022/combobox/combobox-option.directive.mjs +3 -3
  19. package/esm2022/combobox/combobox-panel/combobox-panel.component.mjs +3 -3
  20. package/esm2022/controls/lib/checkbox/checkbox/checkbox.component.mjs +3 -3
  21. package/esm2022/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +3 -3
  22. package/esm2022/controls/lib/checkbox/checkbox.module.mjs +4 -4
  23. package/esm2022/controls/lib/control-error/control-error/control-error.component.mjs +3 -3
  24. package/esm2022/controls/lib/control-error/control-error-submit.directive.mjs +3 -3
  25. package/esm2022/controls/lib/control-error/control-error.module.mjs +4 -4
  26. package/esm2022/controls/lib/controls.module.mjs +4 -4
  27. package/esm2022/controls/lib/form-control/form-control/form-control.component.mjs +3 -3
  28. package/esm2022/controls/lib/form-control/form-control-addon/form-control-addon.component.mjs +3 -3
  29. package/esm2022/controls/lib/form-control/form-control-input.directive.mjs +3 -3
  30. package/esm2022/controls/lib/form-control/form-control.module.mjs +4 -4
  31. package/esm2022/controls/lib/radio/radio-button/radio-button.component.mjs +3 -3
  32. package/esm2022/controls/lib/radio/radio-group/radio-group.component.mjs +3 -3
  33. package/esm2022/controls/lib/radio/radio.module.mjs +4 -4
  34. package/esm2022/controls/lib/toggle/toggle/toggle.component.mjs +3 -3
  35. package/esm2022/controls/lib/toggle/toggle-group/toggle-group.component.mjs +3 -3
  36. package/esm2022/controls/lib/toggle/toggle.module.mjs +4 -4
  37. package/esm2022/dashboard/lib/dashboard/dashboard.component.mjs +3 -3
  38. package/esm2022/dashboard/lib/dashboard-header/dashboard-header.component.mjs +3 -3
  39. package/esm2022/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +3 -3
  40. package/esm2022/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +3 -3
  41. package/esm2022/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +3 -3
  42. package/esm2022/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +3 -3
  43. package/esm2022/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +3 -3
  44. package/esm2022/dashboard/lib/dashboard.module.mjs +4 -4
  45. package/esm2022/dialog/lib/dialog-actions/dialog-actions.component.mjs +3 -3
  46. package/esm2022/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +3 -3
  47. package/esm2022/dialog/lib/dialog-container/dialog-container.component.mjs +3 -3
  48. package/esm2022/dialog/lib/dialog-header/dialog-header.component.mjs +3 -3
  49. package/esm2022/dialog/lib/dialog-link/dialog-link.component.mjs +3 -3
  50. package/esm2022/dialog/lib/dialog-modal/dialog-modal.component.mjs +3 -3
  51. package/esm2022/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +3 -3
  52. package/esm2022/dialog/lib/dialog.insertion.mjs +3 -3
  53. package/esm2022/dialog/lib/dialog.module.mjs +4 -4
  54. package/esm2022/dialog/lib/dialog.service.mjs +3 -3
  55. package/esm2022/elements/lib/avatar/avatar.component.mjs +3 -3
  56. package/esm2022/elements/lib/button/button.component.mjs +6 -6
  57. package/esm2022/elements/lib/checkbox/checkbox.component.mjs +3 -3
  58. package/esm2022/elements/lib/date-picker/date-picker.component.mjs +9 -12
  59. package/esm2022/elements/lib/directives/addon.directive.mjs +6 -6
  60. package/esm2022/elements/lib/directives/form-submit.directive.mjs +3 -3
  61. package/esm2022/elements/lib/directives/form-submitter.directive.mjs +3 -3
  62. package/esm2022/elements/lib/directives/image-upload.directive.mjs +139 -0
  63. package/esm2022/elements/lib/directives/input.directive.mjs +6 -6
  64. package/esm2022/elements/lib/dropdown/dropdown.component.mjs +6 -6
  65. package/esm2022/elements/lib/elements.module.mjs +9 -5
  66. package/esm2022/elements/lib/file-picker/file-picker.component.mjs +3 -3
  67. package/esm2022/elements/lib/form-control/form-control.component.mjs +3 -3
  68. package/esm2022/elements/lib/form-error/form-error.component.mjs +3 -3
  69. package/esm2022/elements/lib/form-group/form-group.component.mjs +3 -3
  70. package/esm2022/elements/lib/icon/icon.component.mjs +3 -3
  71. package/esm2022/elements/lib/image-picker/image-picker.component.mjs +3 -3
  72. package/esm2022/elements/lib/pipes/file-image.pipe.mjs +3 -3
  73. package/esm2022/elements/lib/pipes/file-size.pipe.mjs +3 -3
  74. package/esm2022/elements/lib/pipes/relative-time.pipe.mjs +3 -3
  75. package/esm2022/elements/lib/spinner/spinner.component.mjs +3 -3
  76. package/esm2022/elements/lib/tag/tag.component.mjs +3 -3
  77. package/esm2022/elements/public_api.mjs +2 -1
  78. package/esm2022/http/lib/http.module.mjs +4 -4
  79. package/esm2022/http/lib/interceptors/base-url.interceptor.mjs +3 -3
  80. package/esm2022/http/lib/interceptors/error.interceptor.mjs +3 -3
  81. package/esm2022/lib/core/functions/array.utils.mjs +7 -0
  82. package/esm2022/lib/core/miscellaneous/regex.mjs +41 -2
  83. package/esm2022/lib/core/services/exif.service.mjs +3 -3
  84. package/esm2022/lib/core/services/file-loader.service.mjs +3 -3
  85. package/esm2022/lib/core/services/files.service.mjs +86 -0
  86. package/esm2022/lib/core/services/image-converter.service.mjs +3 -3
  87. package/esm2022/lib/core/services/languages.service.mjs +3 -3
  88. package/esm2022/lib/core/services/network.service.mjs +5 -5
  89. package/esm2022/lib/core/services/patch.service.mjs +3 -3
  90. package/esm2022/localize/lib/localize.module.mjs +4 -4
  91. package/esm2022/localize/lib/localize.pipe.mjs +3 -3
  92. package/esm2022/localize/lib/localize.service.mjs +3 -3
  93. package/esm2022/localize/lib/views/localize-string/localize-string.component.mjs +3 -3
  94. package/esm2022/localize/lib/views/localize-template.directive.mjs +3 -3
  95. package/esm2022/masking/lib/directives/currency-mask.directive.mjs +3 -3
  96. package/esm2022/masking/lib/directives/date-mask.directive.mjs +3 -3
  97. package/esm2022/masking/lib/directives/input-mask.directive.mjs +3 -3
  98. package/esm2022/masking/lib/masking.module.mjs +4 -4
  99. package/esm2022/masking/lib/masking.service.mjs +3 -3
  100. package/esm2022/notifications/lib/notifications-item/notifications-item.component.mjs +3 -3
  101. package/esm2022/notifications/lib/notifications-list/notifications-list.component.mjs +3 -3
  102. package/esm2022/notifications/lib/notifications.module.mjs +4 -4
  103. package/esm2022/notifications/lib/notifications.service.mjs +3 -3
  104. package/esm2022/permissions/lib/directives/permission.directive.mjs +3 -3
  105. package/esm2022/permissions/lib/guards/permission.guard.mjs +3 -3
  106. package/esm2022/permissions/lib/permissions.module.mjs +4 -4
  107. package/esm2022/permissions/lib/permissions.service.mjs +3 -3
  108. package/esm2022/public_api.mjs +3 -2
  109. package/esm2022/recaptcha/lib/recaptcha/recaptcha.component.mjs +3 -3
  110. package/esm2022/recaptcha/lib/recaptcha-loader.service.mjs +3 -3
  111. package/esm2022/recaptcha/lib/recaptcha.module.mjs +4 -4
  112. package/esm2022/rxjs/lib/observables/get-route-param.observable.mjs +5 -0
  113. package/esm2022/rxjs/public_api.mjs +2 -1
  114. package/esm2022/storage/lib/storage.service.mjs +3 -3
  115. package/esm2022/table/lib/components/table/table.component.mjs +9 -9
  116. package/esm2022/table/lib/components/table-cell/table-cell.component.mjs +3 -3
  117. package/esm2022/table/lib/components/table-header-cell/table-header-cell.component.mjs +3 -3
  118. package/esm2022/table/lib/components/table-pager/table-pager.component.mjs +3 -3
  119. package/esm2022/table/lib/table.module.mjs +4 -4
  120. package/esm2022/theming/lib/theming.directive.mjs +3 -3
  121. package/esm2022/theming/lib/theming.module.mjs +4 -4
  122. package/esm2022/tooltip/lib/tooltip-container/tooltip-container.component.mjs +3 -3
  123. package/esm2022/tooltip/lib/tooltip.directive.mjs +3 -3
  124. package/esm2022/tooltip/lib/tooltip.module.mjs +4 -4
  125. package/esm2022/utils/lib/directives/autosize.directive.mjs +3 -3
  126. package/esm2022/utils/lib/directives/focus-trap.directive.mjs +3 -3
  127. package/esm2022/utils/lib/directives/focus.directive.mjs +3 -3
  128. package/esm2022/utils/lib/directives/template.directive.mjs +3 -3
  129. package/esm2022/utils/lib/utils.module.mjs +4 -4
  130. package/fesm2022/bravobit-bb-foundation-auth.mjs +19 -19
  131. package/fesm2022/bravobit-bb-foundation-collections.mjs +22 -22
  132. package/fesm2022/bravobit-bb-foundation-combobox.mjs +15 -15
  133. package/fesm2022/bravobit-bb-foundation-controls.mjs +57 -57
  134. package/fesm2022/bravobit-bb-foundation-dashboard.mjs +25 -25
  135. package/fesm2022/bravobit-bb-foundation-dialog.mjs +31 -31
  136. package/fesm2022/bravobit-bb-foundation-elements.mjs +223 -88
  137. package/fesm2022/bravobit-bb-foundation-elements.mjs.map +1 -1
  138. package/fesm2022/bravobit-bb-foundation-http.mjs +10 -10
  139. package/fesm2022/bravobit-bb-foundation-localize.mjs +16 -16
  140. package/fesm2022/bravobit-bb-foundation-masking.mjs +16 -16
  141. package/fesm2022/bravobit-bb-foundation-notifications.mjs +13 -13
  142. package/fesm2022/bravobit-bb-foundation-permissions.mjs +13 -13
  143. package/fesm2022/bravobit-bb-foundation-recaptcha.mjs +10 -10
  144. package/fesm2022/bravobit-bb-foundation-rxjs.mjs +5 -1
  145. package/fesm2022/bravobit-bb-foundation-rxjs.mjs.map +1 -1
  146. package/fesm2022/bravobit-bb-foundation-storage.mjs +3 -3
  147. package/fesm2022/bravobit-bb-foundation-table.mjs +22 -22
  148. package/fesm2022/bravobit-bb-foundation-theming.mjs +7 -7
  149. package/fesm2022/bravobit-bb-foundation-tooltip.mjs +10 -10
  150. package/fesm2022/bravobit-bb-foundation-utils.mjs +16 -16
  151. package/fesm2022/bravobit-bb-foundation.mjs +161 -100
  152. package/fesm2022/bravobit-bb-foundation.mjs.map +1 -1
  153. package/lib/core/functions/array.utils.d.ts +1 -0
  154. package/lib/core/miscellaneous/regex.d.ts +1 -0
  155. package/lib/core/services/files.service.d.ts +19 -0
  156. package/package.json +21 -21
  157. package/public_api.d.ts +2 -1
  158. package/rxjs/lib/observables/get-route-param.observable.d.ts +3 -0
  159. package/rxjs/public_api.d.ts +1 -0
  160. package/esm2022/lib/core/services/clipboard.service.mjs +0 -70
  161. package/lib/core/services/clipboard.service.d.ts +0 -18
@@ -33,10 +33,10 @@ export class BbFormSubmit {
33
33
  }
34
34
  return this._formDirective.ngSubmit.pipe(map(() => true));
35
35
  }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BbFormSubmit, deps: [{ token: i0.ElementRef }, { token: i1.FormGroupDirective, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive }); }
37
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: BbFormSubmit, selector: "form", exportAs: ["bbForm"], ngImport: i0 }); }
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbFormSubmit, deps: [{ token: i0.ElementRef }, { token: i1.FormGroupDirective, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive }); }
37
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: BbFormSubmit, selector: "form", exportAs: ["bbForm"], ngImport: i0 }); }
38
38
  }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BbFormSubmit, decorators: [{
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbFormSubmit, decorators: [{
40
40
  type: Directive,
41
41
  args: [{
42
42
  selector: 'form',
@@ -12,10 +12,10 @@ export class BbFormSubmitter {
12
12
  reset() {
13
13
  this.submitted$.next(false);
14
14
  }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BbFormSubmitter, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
16
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: BbFormSubmitter, selector: "[bbFormSubmitter]", exportAs: ["bbFormSubmitter"], ngImport: i0 }); }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbFormSubmitter, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
16
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: BbFormSubmitter, selector: "[bbFormSubmitter]", exportAs: ["bbFormSubmitter"], ngImport: i0 }); }
17
17
  }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BbFormSubmitter, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbFormSubmitter, decorators: [{
19
19
  type: Directive,
20
20
  args: [{
21
21
  selector: '[bbFormSubmitter]',
@@ -0,0 +1,139 @@
1
+ import { Directive, EventEmitter, HostListener, Input, numberAttribute, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@bravobit/bb-foundation";
4
+ import * as i2 from "@angular/cdk/platform";
5
+ export class BbImageUpload {
6
+ constructor(_files, _platform, _renderer) {
7
+ this._files = _files;
8
+ this._platform = _platform;
9
+ this._renderer = _renderer;
10
+ // Inputs.
11
+ this.width = null;
12
+ this.height = null;
13
+ this.mode = 'aspect-fit';
14
+ this.type = 'png';
15
+ // Outputs.
16
+ this.onDataUri = new EventEmitter();
17
+ this.onFile = new EventEmitter();
18
+ }
19
+ async onClick() {
20
+ if (!this._platform.isBrowser) {
21
+ return;
22
+ }
23
+ const originalFile = await this.openFilePicker();
24
+ const dataUri = await this.toDataUri(originalFile);
25
+ const image = await this.toImage(dataUri);
26
+ const scaledDataUri = this.scaleImage(image);
27
+ this.onDataUri.emit(scaledDataUri);
28
+ if (this.onFile?.observed) {
29
+ const name = this.getFileName();
30
+ const file = this._files.fromDataUri(scaledDataUri, name);
31
+ this.onFile.emit(file);
32
+ }
33
+ }
34
+ openFilePicker() {
35
+ return new Promise(resolve => {
36
+ const input = this._renderer.createElement('input');
37
+ this._renderer.setProperty(input, 'type', 'file');
38
+ this._renderer.setProperty(input, 'accept', 'image/png,image/jpeg');
39
+ const handler = this._renderer.listen(input, 'change', event => {
40
+ handler();
41
+ const files = event?.target?.files ?? [];
42
+ const file = files?.[0] ?? null;
43
+ return resolve(file);
44
+ });
45
+ input?.click?.();
46
+ });
47
+ }
48
+ async toDataUri(file) {
49
+ return new Promise((resolve, reject) => {
50
+ const reader = new FileReader();
51
+ reader.onerror = () => reject('error file read');
52
+ reader.onabort = () => reject('abort file read');
53
+ reader.onload = () => resolve(reader?.result);
54
+ reader.readAsDataURL(file);
55
+ });
56
+ }
57
+ toImage(src) {
58
+ return new Promise((resolve, reject) => {
59
+ const image = new Image();
60
+ image.src = src;
61
+ image.onload = () => resolve(image);
62
+ image.onerror = error => reject(error);
63
+ });
64
+ }
65
+ scaleImage(image) {
66
+ const imageWidth = image?.width ?? 0;
67
+ const imageHeight = image?.height ?? 0;
68
+ const canvas = this._renderer.createElement('canvas');
69
+ this._renderer.setProperty(canvas, 'width', this.width ?? imageWidth);
70
+ this._renderer.setProperty(canvas, 'height', this.height ?? imageHeight);
71
+ const context = canvas.getContext('2d');
72
+ const scaleX = canvas.width / imageWidth;
73
+ const scaleY = canvas.height / imageHeight;
74
+ const scale = this.getScaleByMode(scaleX, scaleY);
75
+ const scaledWidth = imageWidth * scale;
76
+ const scaledHeight = imageHeight * scale;
77
+ const offsetX = (canvas.width - scaledWidth) / 2;
78
+ const offsetY = (canvas.height - scaledHeight) / 2;
79
+ context.drawImage(image, 0, 0, imageWidth, imageHeight, offsetX, offsetY, scaledWidth, scaledHeight);
80
+ const type = this.getExportType();
81
+ return canvas.toDataURL(type);
82
+ }
83
+ getExportType() {
84
+ switch (this.type) {
85
+ case 'jpg':
86
+ return 'image/jpeg';
87
+ case 'png':
88
+ default:
89
+ return 'image/png';
90
+ }
91
+ }
92
+ getScaleByMode(x, y) {
93
+ switch (this.mode) {
94
+ case 'aspect-fill':
95
+ return Math.max(x, y);
96
+ case 'aspect-fit':
97
+ default:
98
+ return Math.min(x, y);
99
+ }
100
+ }
101
+ getFileName() {
102
+ switch (this.type) {
103
+ case 'jpg':
104
+ return 'image.jpg';
105
+ case 'png':
106
+ return 'image.png';
107
+ default:
108
+ return 'image';
109
+ }
110
+ }
111
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbImageUpload, deps: [{ token: i1.Files }, { token: i2.Platform }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
112
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.0.1", type: BbImageUpload, selector: "button[bbImageUpload]", inputs: { width: ["bbImageUploadWidth", "width", numberAttribute], height: ["bbImageUploadHeight", "height", numberAttribute], mode: ["bbImageUploadMode", "mode"], type: ["bbImageUploadType", "type"] }, outputs: { onDataUri: "onDataUri", onFile: "onFile" }, host: { listeners: { "click": "onClick()" } }, ngImport: i0 }); }
113
+ }
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbImageUpload, decorators: [{
115
+ type: Directive,
116
+ args: [{
117
+ selector: 'button[bbImageUpload]'
118
+ }]
119
+ }], ctorParameters: () => [{ type: i1.Files }, { type: i2.Platform }, { type: i0.Renderer2 }], propDecorators: { width: [{
120
+ type: Input,
121
+ args: [{ alias: 'bbImageUploadWidth', transform: numberAttribute }]
122
+ }], height: [{
123
+ type: Input,
124
+ args: [{ alias: 'bbImageUploadHeight', transform: numberAttribute }]
125
+ }], mode: [{
126
+ type: Input,
127
+ args: [{ alias: 'bbImageUploadMode' }]
128
+ }], type: [{
129
+ type: Input,
130
+ args: [{ alias: 'bbImageUploadType' }]
131
+ }], onDataUri: [{
132
+ type: Output
133
+ }], onFile: [{
134
+ type: Output
135
+ }], onClick: [{
136
+ type: HostListener,
137
+ args: ['click']
138
+ }] } });
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtdXBsb2FkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9kaXJlY3RpdmVzL2ltYWdlLXVwbG9hZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFZLE1BQU0sZUFBZSxDQUFDOzs7O0FBTy9HLE1BQU0sT0FBTyxhQUFhO0lBWXRCLFlBQW9CLE1BQWEsRUFDYixTQUFtQixFQUNuQixTQUFvQjtRQUZwQixXQUFNLEdBQU4sTUFBTSxDQUFPO1FBQ2IsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBWnhDLFVBQVU7UUFDd0QsVUFBSyxHQUFrQixJQUFJLENBQUM7UUFDM0IsV0FBTSxHQUFrQixJQUFJLENBQUM7UUFDM0QsU0FBSSxHQUFpQyxZQUFZLENBQUM7UUFDbEQsU0FBSSxHQUFrQixLQUFLLENBQUM7UUFFakUsV0FBVztRQUNELGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3ZDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBSzVDLENBQUM7SUFHRCxLQUFLLENBQUMsT0FBTztRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzVCLE9BQU87UUFDWCxDQUFDO1FBRUQsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDakQsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ25ELE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FB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QUssRUFBRSxtQkFBbUIsRUFBQztnQkFDRSxJQUFJO3NCQUF4QyxLQUFLO3VCQUFDLEVBQUMsS0FBSyxFQUFFLG1CQUFtQixFQUFDO2dCQUd6QixTQUFTO3NCQUFsQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFRRCxPQUFPO3NCQURaLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIG51bWJlckF0dHJpYnV0ZSwgT3V0cHV0LCBSZW5kZXJlcjJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtQbGF0Zm9ybX0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BsYXRmb3JtJztcbmltcG9ydCB7RmlsZXN9IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdidXR0b25bYmJJbWFnZVVwbG9hZF0nXG59KVxuZXhwb3J0IGNsYXNzIEJiSW1hZ2VVcGxvYWQge1xuXG4gICAgLy8gSW5wdXRzLlxuICAgIEBJbnB1dCh7YWxpYXM6ICdiYkltYWdlVXBsb2FkV2lkdGgnLCB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZX0pIHdpZHRoOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoe2FsaWFzOiAnYmJJbWFnZVVwbG9hZEhlaWdodCcsIHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlfSkgaGVpZ2h0OiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoe2FsaWFzOiAnYmJJbWFnZVVwbG9hZE1vZGUnfSkgbW9kZTogJ2FzcGVjdC1maXQnIHwgJ2FzcGVjdC1maWxsJyA9ICdhc3BlY3QtZml0JztcbiAgICBASW5wdXQoe2FsaWFzOiAnYmJJbWFnZVVwbG9hZFR5cGUnfSkgdHlwZTogJ3BuZycgfCAnanBnJyA9ICdwbmcnO1xuXG4gICAgLy8gT3V0cHV0cy5cbiAgICBAT3V0cHV0KCkgb25EYXRhVXJpID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gICAgQE91dHB1dCgpIG9uRmlsZSA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZT4oKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2ZpbGVzOiBGaWxlcyxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9wbGF0Zm9ybTogUGxhdGZvcm0sXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMikge1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgICBhc3luYyBvbkNsaWNrKCkge1xuICAgICAgICBpZiAoIXRoaXMuX3BsYXRmb3JtLmlzQnJvd3Nlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb3JpZ2luYWxGaWxlID0gYXdhaXQgdGhpcy5vcGVuRmlsZVBpY2tlcigpO1xuICAgICAgICBjb25zdCBkYXRhVXJpID0gYXdhaXQgdGhpcy50b0RhdGFVcmkob3JpZ2luYWxGaWxlKTtcbiAgICAgICAgY29uc3QgaW1hZ2UgPSBhd2FpdCB0aGlzLnRvSW1hZ2UoZGF0YVVyaSk7XG4gICAgICAgIGNvbnN0IHNjYWxlZERhdGFVcmkgPSB0aGlzLnNjYWxlSW1hZ2UoaW1hZ2UpO1xuICAgICAgICB0aGlzLm9uRGF0YVVyaS5lbWl0KHNjYWxlZERhdGFVcmkpO1xuXG4gICAgICAgIGlmICh0aGlzLm9uRmlsZT8ub2JzZXJ2ZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLmdldEZpbGVOYW1lKCk7XG4gICAgICAgICAgICBjb25zdCBmaWxlID0gdGhpcy5fZmlsZXMuZnJvbURhdGFVcmkoc2NhbGVkRGF0YVVyaSwgbmFtZSk7XG4gICAgICAgICAgICB0aGlzLm9uRmlsZS5lbWl0KGZpbGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvcGVuRmlsZVBpY2tlcigpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPEZpbGU+KHJlc29sdmUgPT4ge1xuICAgICAgICAgICAgY29uc3QgaW5wdXQgPSB0aGlzLl9yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkoaW5wdXQsICd0eXBlJywgJ2ZpbGUnKTtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KGlucHV0LCAnYWNjZXB0JywgJ2ltYWdlL3BuZyxpbWFnZS9qcGVnJyk7XG4gICAgICAgICAgICBjb25zdCBoYW5kbGVyID0gdGhpcy5fcmVuZGVyZXIubGlzdGVuKGlucHV0LCAnY2hhbmdlJywgZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgIGhhbmRsZXIoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlcyA9IGV2ZW50Py50YXJnZXQ/LmZpbGVzID8/IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGUgPSBmaWxlcz8uWzBdID8/IG51bGw7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUoZmlsZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlucHV0Py5jbGljaz8uKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgdG9EYXRhVXJpKGZpbGU6IEZpbGUpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHN0cmluZz4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgICAgIHJlYWRlci5vbmVycm9yID0gKCkgPT4gcmVqZWN0KCdlcnJvciBmaWxlIHJlYWQnKTtcbiAgICAgICAgICAgIHJlYWRlci5vbmFib3J0ID0gKCkgPT4gcmVqZWN0KCdhYm9ydCBmaWxlIHJlYWQnKTtcbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiByZXNvbHZlKHJlYWRlcj8ucmVzdWx0IGFzIHN0cmluZyk7XG4gICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0b0ltYWdlKHNyYzogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxIVE1MSW1hZ2VFbGVtZW50PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xuICAgICAgICAgICAgaW1hZ2Uuc3JjID0gc3JjO1xuICAgICAgICAgICAgaW1hZ2Uub25sb2FkID0gKCkgPT4gcmVzb2x2ZShpbWFnZSk7XG4gICAgICAgICAgICBpbWFnZS5vbmVycm9yID0gZXJyb3IgPT4gcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzY2FsZUltYWdlKGltYWdlOiBIVE1MSW1hZ2VFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IGltYWdlV2lkdGggPSBpbWFnZT8ud2lkdGggPz8gMDtcbiAgICAgICAgY29uc3QgaW1hZ2VIZWlnaHQgPSBpbWFnZT8uaGVpZ2h0ID8/IDA7XG5cbiAgICAgICAgY29uc3QgY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCA9IHRoaXMuX3JlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eShjYW52YXMsICd3aWR0aCcsIHRoaXMud2lkdGggPz8gaW1hZ2VXaWR0aCk7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KGNhbnZhcywgJ2hlaWdodCcsIHRoaXMuaGVpZ2h0ID8/IGltYWdlSGVpZ2h0KTtcblxuICAgICAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG5cbiAgICAgICAgY29uc3Qgc2NhbGVYID0gY2FudmFzLndpZHRoIC8gaW1hZ2VXaWR0aDtcbiAgICAgICAgY29uc3Qgc2NhbGVZID0gY2FudmFzLmhlaWdodCAvIGltYWdlSGVpZ2h0O1xuICAgICAgICBjb25zdCBzY2FsZSA9IHRoaXMuZ2V0U2NhbGVCeU1vZGUoc2NhbGVYLCBzY2FsZVkpO1xuXG4gICAgICAgIGNvbnN0IHNjYWxlZFdpZHRoID0gaW1hZ2VXaWR0aCAqIHNjYWxlO1xuICAgICAgICBjb25zdCBzY2FsZWRIZWlnaHQgPSBpbWFnZUhlaWdodCAqIHNjYWxlO1xuICAgICAgICBjb25zdCBvZmZzZXRYID0gKGNhbnZhcy53aWR0aCAtIHNjYWxlZFdpZHRoKSAvIDI7XG4gICAgICAgIGNvbnN0IG9mZnNldFkgPSAoY2FudmFzLmhlaWdodCAtIHNjYWxlZEhlaWdodCkgLyAyO1xuXG4gICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKGltYWdlLCAwLCAwLCBpbWFnZVdpZHRoLCBpbWFnZUhlaWdodCwgb2Zmc2V0WCwgb2Zmc2V0WSwgc2NhbGVkV2lkdGgsIHNjYWxlZEhlaWdodCk7XG5cbiAgICAgICAgY29uc3QgdHlwZSA9IHRoaXMuZ2V0RXhwb3J0VHlwZSgpO1xuICAgICAgICByZXR1cm4gY2FudmFzLnRvRGF0YVVSTCh0eXBlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEV4cG9ydFR5cGUoKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdqcGcnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnaW1hZ2UvanBlZyc7XG4gICAgICAgICAgICBjYXNlICdwbmcnOlxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2ltYWdlL3BuZyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNjYWxlQnlNb2RlKHg6IG51bWJlciwgeTogbnVtYmVyKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5tb2RlKSB7XG4gICAgICAgICAgICBjYXNlICdhc3BlY3QtZmlsbCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE1hdGgubWF4KHgsIHkpO1xuICAgICAgICAgICAgY2FzZSAnYXNwZWN0LWZpdCc6XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLm1pbih4LCB5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RmlsZU5hbWUoKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdqcGcnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnaW1hZ2UuanBnJztcbiAgICAgICAgICAgIGNhc2UgJ3BuZyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdpbWFnZS5wbmcnO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2ltYWdlJztcbiAgICAgICAgfVxuICAgIH1cblxufVxuIl19
@@ -60,10 +60,10 @@ export class BbSelect {
60
60
  }
61
61
  this._formControl.required = this._required;
62
62
  }
63
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BbSelect, deps: [{ token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: i2.BbFormControl, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
64
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: BbSelect, selector: "select[bbInput]", inputs: { disabled: "disabled", required: "required" }, host: { listeners: { "focus": "setFocus(true)", "blur": "setFocus(false)" }, properties: { "disabled": "disabled", "attr.id": "this.id" } }, ngImport: i0 }); }
63
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbSelect, deps: [{ token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: i2.BbFormControl, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
64
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: BbSelect, selector: "select[bbInput]", inputs: { disabled: "disabled", required: "required" }, host: { listeners: { "focus": "setFocus(true)", "blur": "setFocus(false)" }, properties: { "disabled": "disabled", "attr.id": "this.id" } }, ngImport: i0 }); }
65
65
  }
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BbSelect, decorators: [{
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbSelect, decorators: [{
67
67
  type: Directive,
68
68
  args: [{
69
69
  selector: 'select[bbInput]',
@@ -108,10 +108,10 @@ export class BbInput extends BbSelect {
108
108
  }
109
109
  this._formControl.readonly = this._readonly;
110
110
  }
111
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BbInput, deps: [{ token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: i2.BbFormControl, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
112
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: BbInput, selector: "input[bbInput], textarea[bbInput]", inputs: { readonly: "readonly" }, host: { listeners: { "focus": "setFocus(true)", "blur": "setFocus(false)" }, properties: { "disabled": "disabled", "readonly": "readonly" } }, usesInheritance: true, ngImport: i0 }); }
111
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbInput, deps: [{ token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: i2.BbFormControl, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
112
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: BbInput, selector: "input[bbInput], textarea[bbInput]", inputs: { readonly: "readonly" }, host: { listeners: { "focus": "setFocus(true)", "blur": "setFocus(false)" }, properties: { "disabled": "disabled", "readonly": "readonly" } }, usesInheritance: true, ngImport: i0 }); }
113
113
  }
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BbInput, decorators: [{
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbInput, decorators: [{
115
115
  type: Directive,
116
116
  args: [{
117
117
  selector: 'input[bbInput], textarea[bbInput]',
@@ -24,8 +24,8 @@ export class BbDropdown {
24
24
  }
25
25
  return this.close();
26
26
  }
27
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BbDropdown, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
28
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: BbDropdown, selector: "bb-dropdown", host: { listeners: { "document:click": "onDocumentClick($event.target)" }, classAttribute: "bb-dropdown" }, ngImport: i0, template: "<button (click)=\"toggle()\"\n [class.opened]=\"visible$ | async\"\n type=\"button\">\n <ng-content></ng-content>\n</button>\n\n<div *ngIf=\"visible$ | async\"\n [@dropdownMenuAnimation]=\"true\"\n class=\"bb-dropdown-menu\"\n role=\"list\">\n <ng-content select=\"[bbDropdownItem], hr\"></ng-content>\n</div>\n", styles: [".bb-dropdown{position:relative;display:inline-block}.bb-dropdown.right>.bb-dropdown-menu{right:0;left:auto;transform-origin:top right}.bb-dropdown-menu{left:0;top:100%;padding:0;z-index:10;display:block;margin:10px 0 0;border-radius:4px;position:absolute;list-style-type:none;background-color:#fff;border:1px solid #cccccc;transform-origin:top left;box-shadow:0 0 6px #0000001a}.bb-dropdown-menu:after{width:0;top:-5px;height:0;right:5px;content:\"\";position:absolute;border-style:solid;border-width:0 10px 5px 10px;border-color:transparent transparent #d9d9d9 transparent}.bb-dropdown-menu>hr{margin:0;height:1px;border:none;background-color:#ccc}.bb-dropdown-item{width:100%;border:none;line-height:1;display:block;cursor:pointer;text-align:left;font-weight:500;-webkit-user-select:none;user-select:none;padding:12px 20px;white-space:nowrap;text-decoration:none;color:#676767!important;background-color:transparent;transition:background-color .25s cubic-bezier(0,0,.2,1)}.bb-dropdown-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.bb-dropdown-item:hover{background-color:#f6f6f6}.bb-dropdown-item:focus{box-shadow:0 0 0 3px #dce0e980}.bb-dropdown-item:active{background-color:#f0f0f0}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], animations: [
27
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbDropdown, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
28
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: BbDropdown, selector: "bb-dropdown", host: { listeners: { "document:click": "onDocumentClick($event.target)" }, classAttribute: "bb-dropdown" }, ngImport: i0, template: "<button (click)=\"toggle()\"\n [class.opened]=\"visible$ | async\"\n type=\"button\">\n <ng-content></ng-content>\n</button>\n\n<div *ngIf=\"visible$ | async\"\n [@dropdownMenuAnimation]=\"true\"\n class=\"bb-dropdown-menu\"\n role=\"list\">\n <ng-content select=\"[bbDropdownItem], hr\"></ng-content>\n</div>\n", styles: [".bb-dropdown{position:relative;display:inline-block}.bb-dropdown.right>.bb-dropdown-menu{right:0;left:auto;transform-origin:top right}.bb-dropdown-menu{left:0;top:100%;padding:0;z-index:10;display:block;margin:10px 0 0;border-radius:4px;position:absolute;list-style-type:none;background-color:#fff;border:1px solid #cccccc;transform-origin:top left;box-shadow:0 0 6px #0000001a}.bb-dropdown-menu:after{width:0;top:-5px;height:0;right:5px;content:\"\";position:absolute;border-style:solid;border-width:0 10px 5px 10px;border-color:transparent transparent #d9d9d9 transparent}.bb-dropdown-menu>hr{margin:0;height:1px;border:none;background-color:#ccc}.bb-dropdown-item{width:100%;border:none;line-height:1;display:block;cursor:pointer;text-align:left;font-weight:500;-webkit-user-select:none;user-select:none;padding:12px 20px;white-space:nowrap;text-decoration:none;color:#676767!important;background-color:transparent;transition:background-color .25s cubic-bezier(0,0,.2,1)}.bb-dropdown-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.bb-dropdown-item:hover{background-color:#f6f6f6}.bb-dropdown-item:focus{box-shadow:0 0 0 3px #dce0e980}.bb-dropdown-item:active{background-color:#f0f0f0}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], animations: [
29
29
  trigger('dropdownMenuAnimation', [
30
30
  transition(':enter', [
31
31
  // 1. Set the initial state.
@@ -42,7 +42,7 @@ export class BbDropdown {
42
42
  ])
43
43
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
44
44
  }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BbDropdown, decorators: [{
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbDropdown, decorators: [{
46
46
  type: Component,
47
47
  args: [{ selector: 'bb-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'class': 'bb-dropdown' }, preserveWhitespaces: false, animations: [
48
48
  trigger('dropdownMenuAnimation', [
@@ -76,10 +76,10 @@ export class BbDropdownItem {
76
76
  }
77
77
  this._parent?.close();
78
78
  }
79
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BbDropdownItem, deps: [{ token: BbDropdown, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
80
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: BbDropdownItem, selector: "[bbDropdownItem]", inputs: { closeOnClick: "closeOnClick" }, host: { listeners: { "click": "onClick()" }, classAttribute: "bb-dropdown-item" }, ngImport: i0 }); }
79
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbDropdownItem, deps: [{ token: BbDropdown, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
80
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: BbDropdownItem, selector: "[bbDropdownItem]", inputs: { closeOnClick: "closeOnClick" }, host: { listeners: { "click": "onClick()" }, classAttribute: "bb-dropdown-item" }, ngImport: i0 }); }
81
81
  }
82
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BbDropdownItem, decorators: [{
82
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbDropdownItem, decorators: [{
83
83
  type: Directive,
84
84
  args: [{
85
85
  selector: '[bbDropdownItem]',
@@ -3,6 +3,7 @@ import { ELEMENTS_ERRORS, ELEMENTS_ICONS } from './elements.interfaces';
3
3
  import { BbFormSubmitter } from './directives/form-submitter.directive';
4
4
  import { BbImagePicker } from './image-picker/image-picker.component';
5
5
  import { BbFormControl } from './form-control/form-control.component';
6
+ import { BbImageUpload } from './directives/image-upload.directive';
6
7
  import { BbFilePicker } from './file-picker/file-picker.component';
7
8
  import { BbDatePicker } from './date-picker/date-picker.component';
8
9
  import { LocalizeModule } from '@bravobit/bb-foundation/localize';
@@ -34,6 +35,7 @@ const DECLARATIONS_EXPORTS = [
34
35
  BbSelect,
35
36
  BbPrefix,
36
37
  BbSuffix,
38
+ BbImageUpload,
37
39
  // Pipes.
38
40
  BbFileSize,
39
41
  BbFileImage,
@@ -64,8 +66,8 @@ export class ElementsModule {
64
66
  ]
65
67
  };
66
68
  }
67
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: ElementsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
68
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.1", ngImport: i0, type: ElementsModule, declarations: [
69
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ElementsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
70
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: ElementsModule, declarations: [
69
71
  // Directives.
70
72
  BbFormError,
71
73
  BbFormSubmit,
@@ -74,6 +76,7 @@ export class ElementsModule {
74
76
  BbSelect,
75
77
  BbPrefix,
76
78
  BbSuffix,
79
+ BbImageUpload,
77
80
  // Pipes.
78
81
  BbFileSize,
79
82
  BbFileImage,
@@ -104,6 +107,7 @@ export class ElementsModule {
104
107
  BbSelect,
105
108
  BbPrefix,
106
109
  BbSuffix,
110
+ BbImageUpload,
107
111
  // Pipes.
108
112
  BbFileSize,
109
113
  BbFileImage,
@@ -123,12 +127,12 @@ export class ElementsModule {
123
127
  BbFilePicker,
124
128
  BbImagePicker,
125
129
  BbDatePicker, UtilsModule] }); }
126
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: ElementsModule, imports: [CommonModule,
130
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ElementsModule, imports: [CommonModule,
127
131
  ReactiveFormsModule,
128
132
  LocalizeModule,
129
133
  UtilsModule, UtilsModule] }); }
130
134
  }
131
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: ElementsModule, decorators: [{
135
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ElementsModule, decorators: [{
132
136
  type: NgModule,
133
137
  args: [{
134
138
  imports: [
@@ -174,4 +178,4 @@ export function getErrors() {
174
178
  };
175
179
  return data;
176
180
  }
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9lbGVtZW50cy9zcmMvbGliL2VsZW1lbnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLGNBQWMsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ3pFLE9BQU8sRUFBQyxlQUFlLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDdEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDcEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxFQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDaEUsT0FBTyxFQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDOUQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzlELE9BQU8sRUFBQyxRQUFRLEVBQUUsUUFBUSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFzQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDRCQUE0QixD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Q0FBQztRQUN6RixPQUFPLEVBQUUsQ0FBQyxFQUFDLElBQUksRUFBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUMsS0FBSyxFQUFFLDZCQUE2QixFQUFFLElBQUksRUFBRSxFQUFDLElBQUksRUFBQyxFQUFDLENBQUM7UUFDM0UsT0FBTyxFQUFFLENBQUMsRUFBQyxJQUFJLEVBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBRSw2QkFBNkIsRUFBRSxJQUFJLEVBQUUsRUFBQyxJQUFJLEVBQUMsRUFBQyxDQUFDO1FBQzNFLFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxpQ0FBaUM7UUFDcEQsZUFBZSxFQUFFLEdBQUcsRUFBRSxDQUFDLHFDQUFxQztRQUM1RCxTQUFTLEVBQUUsQ0FBQyxFQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM1QyxLQUFLLEVBQUUsK0JBQStCO1lBQ3RDLElBQUksRUFBRSxFQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUM7U0FDdkMsQ0FBQztRQUNGLFNBQVMsRUFBRSxDQUFDLEVBQUMsY0FBYyxFQUFFLFlBQVksRUFBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLEtBQUssRUFBRSwrQkFBK0I7WUFDdEMsSUFBSSxFQUFFLEVBQUMsY0FBYyxFQUFFLFlBQVksRUFBQztTQUN2QyxDQUFDO0tBQ0wsQ0FBQztJQUVGLE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0JiRHJvcGRvd24sIEJiRHJvcGRvd25JdGVtfSBmcm9tICcuL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQge0VMRU1FTlRTX0VSUk9SUywgRUxFTUVOVFNfSUNPTlN9IGZyb20gJy4vZWxlbWVudHMuaW50ZXJmYWNlcyc7XG5pbXBvcnQge0JiRm9ybVN1Ym1pdHRlcn0gZnJvbSAnLi9kaXJlY3RpdmVzL2Zvcm0tc3VibWl0dGVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0JiSW1hZ2VQaWNrZXJ9IGZyb20gJy4vaW1hZ2UtcGlja2VyL2ltYWdlLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHtCYkZvcm1Db250cm9sfSBmcm9tICcuL2Zvcm0tY29udHJvbC9mb3JtLWNvbnRyb2wuY29tcG9uZW50JztcbmltcG9ydCB7QmJGaWxlUGlja2VyfSBmcm9tICcuL2ZpbGUtcGlja2VyL2ZpbGUtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiRGF0ZVBpY2tlcn0gZnJvbSAnLi9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHtMb2NhbGl6ZU1vZHVsZX0gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24vbG9jYWxpemUnO1xuaW1wb3J0IHtCYlByZWZpeCwgQmJTdWZmaXh9IGZyb20gJy4vZGlyZWN0aXZlcy9hZGRvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHtCYkZvcm1TdWJtaXR9IGZyb20gJy4vZGlyZWN0aXZlcy9mb3JtLXN1Ym1pdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtCYklucHV0LCBCYlNlbGVjdH0gZnJvbSAnLi9kaXJlY3RpdmVzL2lucHV0LmRpcmVjdGl2ZSc7XG5pbXBvcnQge0JiRm9ybUdyb3VwfSBmcm9tICcuL2Zvcm0tZ3JvdXAvZm9ybS1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHtCYkZvcm1FcnJvcn0gZnJvbSAnLi9mb3JtLWVycm9yL2Zvcm0tZXJyb3IuY29tcG9uZW50JztcbmltcG9ydCB7QmJBbmNob3IsIEJiQnV0dG9ufSBmcm9tICcuL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7TW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCYlJlbGF0aXZlVGltZX0gZnJvbSAnLi9waXBlcy9yZWxhdGl2ZS10aW1lLnBpcGUnO1xuaW1wb3J0IHtVdGlsc01vZHVsZX0gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24vdXRpbHMnO1xuaW1wb3J0IHtCYkNoZWNrYm94fSBmcm9tICcuL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCc7XG5pbXBvcnQge0JiU3Bpbm5lcn0gZnJvbSAnLi9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50JztcbmltcG9ydCB7QmJGaWxlSW1hZ2V9IGZyb20gJy4vcGlwZXMvZmlsZS1pbWFnZS5waXBlJztcbmltcG9ydCB7UmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtCYkF2YXRhcn0gZnJvbSAnLi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiRmlsZVNpemV9IGZyb20gJy4vcGlwZXMvZmlsZS1zaXplLnBpcGUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0JiSWNvbn0gZnJvbSAnLi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7QmJUYWd9IGZyb20gJy4vdGFnL3RhZy5jb21wb25lbnQnO1xuXG5jb25zdCBERUNMQVJBVElPTlNfRVhQT1JUUyA9IFtcbiAgICAvLyBEaXJlY3RpdmVzLlxuICAgIEJiRm9ybUVycm9yLFxuICAgIEJiRm9ybVN1Ym1pdCxcbiAgICBCYkZvcm1TdWJtaXR0ZXIsXG4gICAgQmJJbnB1dCxcbiAgICBCYlNlbGVjdCxcbiAgICBCYlByZWZpeCxcbiAgICBCYlN1ZmZpeCxcbiAgICAvLyBQaXBlcy5cbiAgICBCYkZpbGVTaXplLFxuICAgIEJiRmlsZUltYWdlLFxuICAgIEJiUmVsYXRpdmVUaW1lLFxuICAgIC8vIENvbXBvbmVudHMuXG4gICAgQmJCdXR0b24sXG4gICAgQmJBbmNob3IsXG4gICAgQmJTcGlubmVyLFxuICAgIEJiSWNvbixcbiAgICBCYkZvcm1Db250cm9sLFxuICAgIEJiRm9ybUdyb3VwLFxuICAgIEJiQ2hlY2tib3gsXG4gICAgQmJEcm9wZG93bixcbiAgICBCYkRyb3Bkb3duSXRlbSxcbiAgICBCYlRhZyxcbiAgICBCYkF2YXRhcixcbiAgICBCYkZpbGVQaWNrZXIsXG4gICAgQmJJbWFnZVBpY2tlcixcbiAgICBCYkRhdGVQaWNrZXJcbl07XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIExvY2FsaXplTW9kdWxlLFxuICAgICAgICBVdGlsc01vZHVsZVxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbLi4uREVDTEFSQVRJT05TX0VYUE9SVFNdLFxuICAgIGV4cG9ydHM6IFsuLi5ERUNMQVJBVElPTlNfRVhQT1JUUywgVXRpbHNNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEVsZW1lbnRzTW9kdWxlIHtcblxuICAgIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8RWxlbWVudHNNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBFbGVtZW50c01vZHVsZSxcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgIHtwcm92aWRlOiBFTEVNRU5UU19FUlJPUlMsIHVzZUZhY3Rvcnk6IGdldEVycm9ycywgbXVsdGk6IHRydWV9LFxuICAgICAgICAgICAgICAgIEVMRU1FTlRTX01BVEVSSUFMX0lDT05cbiAgICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICB9XG5cbn1cblxuZXhwb3J0IGNvbnN0IEVMRU1FTlRTX01BVEVSSUFMX0lDT04gPSB7XG4gICAgcHJvdmlkZTogRUxFTUVOVFNfSUNPTlMsXG4gICAgdXNlVmFsdWU6IHtuYW1lc3BhY2U6ICdtYXRlcmlhbCcsIGNsYXNzTmFtZTogJ21hdGVyaWFsLWljb25zJywgdXNlczogJ2NvbnRlbnQnLCB0eXBlOiAnZm9udCd9LFxuICAgIG11bHRpOiB0cnVlXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXJyb3JzKCkge1xuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgIHVua25vd246ICgpID0+ICdmb3JtLWNvbnRyb2wtZXJyb3JzLnVua25vd24nLFxuICAgICAgICByZXF1aXJlZDogKCkgPT4gJ2Zvcm0tY29udHJvbC1lcnJvcnMucmVxdWlyZWQnLFxuICAgICAgICBwYXR0ZXJuOiAoKSA9PiAnZm9ybS1jb250cm9sLWVycm9ycy5wYXR0ZXJuJyxcbiAgICAgICAgZW1haWw6ICgpID0+ICdmb3JtLWNvbnRyb2wtZXJyb3JzLmVtYWlsJyxcbiAgICAgICAgZW1haWxUYWtlbjogKCkgPT4gJ2Zvcm0tY29udHJvbC1lcnJvcnMuZW1haWxUYWtlbicsXG4gICAgICAgIHBhc3N3b3JkTWF0Y2g6ICgpID0+ICdmb3JtLWNvbnRyb2wtZXJyb3JzLnBhc3N3b3JkTWF0Y2gnLFxuICAgICAgICBjb25maXJtOiAoKSA9PiAnZm9ybS1jb250cm9sLWVycm9ycy5jb25maXJtJyxcbiAgICAgICAgZnVsbE51bWJlcjogKCkgPT4gJ2Zvcm0tY29udHJvbC1lcnJvcnMuZnVsbE51bWJlcicsXG4gICAgICAgIG1pbjogKHttaW59KSA9PiAoe3Rva2VuOiAnZm9ybS1jb250cm9sLWVycm9ycy5taW4nLCBkYXRhOiB7bWlufX0pLFxuICAgICAgICBtYXg6ICh7bWF4fSkgPT4gKHt0b2tlbjogJ2Zvcm0tY29udHJvbC1lcnJvcnMubWF4JywgZGF0YToge21heH19KSxcbiAgICAgICAgbWF4RmlsZVNpemU6ICh7bWF4U2l6ZX0pID0+ICh7dG9rZW46ICdmb3JtLWNvbnRyb2wtZXJyb3JzLm1heEZpbGVTaXplJywgZGF0YToge21heFNpemV9fSksXG4gICAgICAgIG1pbkRhdGU6ICh7ZGF0ZX0pID0+ICh7dG9rZW46ICdmb3JtLWNvbnRyb2wtZXJyb3JzLm1pbkRhdGUnLCBkYXRhOiB7ZGF0ZX19KSxcbiAgICAgICAgbWF4RGF0ZTogKHtkYXRlfSkgPT4gKHt0b2tlbjogJ2Zvcm0tY29udHJvbC1lcnJvcnMubWF4RGF0ZScsIGRhdGE6IHtkYXRlfX0pLFxuICAgICAgICBpbnZhbGlkRGF0ZTogKCkgPT4gJ2Zvcm0tY29udHJvbC1lcnJvcnMuaW52YWxpZERhdGUnLFxuICAgICAgICBpbnZhbGlkRmlsZVR5cGU6ICgpID0+ICdmb3JtLWNvbnRyb2wtZXJyb3JzLmludmFsaWRGaWxlVHlwZScsXG4gICAgICAgIG1pbmxlbmd0aDogKHtyZXF1aXJlZExlbmd0aCwgYWN0dWFsTGVuZ3RofSkgPT4gKHtcbiAgICAgICAgICAgIHRva2VuOiAnZm9ybS1jb250cm9sLWVycm9ycy5taW5sZW5ndGgnLFxuICAgICAgICAgICAgZGF0YToge3JlcXVpcmVkTGVuZ3RoLCBhY3R1YWxMZW5ndGh9XG4gICAgICAgIH0pLFxuICAgICAgICBtYXhsZW5ndGg6ICh7cmVxdWlyZWRMZW5ndGgsIGFjdHVhbExlbmd0aH0pID0+ICh7XG4gICAgICAgICAgICB0b2tlbjogJ2Zvcm0tY29udHJvbC1lcnJvcnMubWF4bGVuZ3RoJyxcbiAgICAgICAgICAgIGRhdGE6IHtyZXF1aXJlZExlbmd0aCwgYWN0dWFsTGVuZ3RofVxuICAgICAgICB9KVxuICAgIH07XG5cbiAgICByZXR1cm4gZGF0YTtcbn1cbiJdfQ==
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9lbGVtZW50cy9zcmMvbGliL2VsZW1lbnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLGNBQWMsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ3pFLE9BQU8sRUFBQyxlQUFlLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDdEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDcEUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDakUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxRQUFRLEVBQUUsUUFBUSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxPQUFPLEVBQUUsUUFBUSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzlELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUM5RCxPQUFPLEVBQUMsUUFBUSxFQUFFLFFBQVEsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBc0IsUUFBUSxFQUFDLE1BQU0sZUFBZSxD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LEVBQUUsQ0FBQyxDQUFDLEVBQUMsS0FBSyxFQUFFLGlDQUFpQyxFQUFFLElBQUksRUFBRSxFQUFDLE9BQU8sRUFBQyxFQUFDLENBQUM7UUFDekYsT0FBTyxFQUFFLENBQUMsRUFBQyxJQUFJLEVBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBRSw2QkFBNkIsRUFBRSxJQUFJLEVBQUUsRUFBQyxJQUFJLEVBQUMsRUFBQyxDQUFDO1FBQzNFLE9BQU8sRUFBRSxDQUFDLEVBQUMsSUFBSSxFQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUUsNkJBQTZCLEVBQUUsSUFBSSxFQUFFLEVBQUMsSUFBSSxFQUFDLEVBQUMsQ0FBQztRQUMzRSxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUMsaUNBQWlDO1FBQ3BELGVBQWUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxxQ0FBcUM7UUFDNUQsU0FBUyxFQUFFLENBQUMsRUFBQyxjQUFjLEVBQUUsWUFBWSxFQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDNUMsS0FBSyxFQUFFLCtCQUErQjtZQUN0QyxJQUFJLEVBQUUsRUFBQyxjQUFjLEVBQUUsWUFBWSxFQUFDO1NBQ3ZDLENBQUM7UUFDRixTQUFTLEVBQUUsQ0FBQyxFQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM1QyxLQUFLLEVBQUUsK0JBQStCO1lBQ3RDLElBQUksRUFBRSxFQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUM7U0FDdkMsQ0FBQztLQUNMLENBQUM7SUFFRixPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtCYkRyb3Bkb3duLCBCYkRyb3Bkb3duSXRlbX0gZnJvbSAnLi9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHtFTEVNRU5UU19FUlJPUlMsIEVMRU1FTlRTX0lDT05TfSBmcm9tICcuL2VsZW1lbnRzLmludGVyZmFjZXMnO1xuaW1wb3J0IHtCYkZvcm1TdWJtaXR0ZXJ9IGZyb20gJy4vZGlyZWN0aXZlcy9mb3JtLXN1Ym1pdHRlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHtCYkltYWdlUGlja2VyfSBmcm9tICcuL2ltYWdlLXBpY2tlci9pbWFnZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7QmJGb3JtQ29udHJvbH0gZnJvbSAnLi9mb3JtLWNvbnRyb2wvZm9ybS1jb250cm9sLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiSW1hZ2VVcGxvYWR9IGZyb20gJy4vZGlyZWN0aXZlcy9pbWFnZS11cGxvYWQuZGlyZWN0aXZlJztcbmltcG9ydCB7QmJGaWxlUGlja2VyfSBmcm9tICcuL2ZpbGUtcGlja2VyL2ZpbGUtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiRGF0ZVBpY2tlcn0gZnJvbSAnLi9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHtMb2NhbGl6ZU1vZHVsZX0gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24vbG9jYWxpemUnO1xuaW1wb3J0IHtCYlByZWZpeCwgQmJTdWZmaXh9IGZyb20gJy4vZGlyZWN0aXZlcy9hZGRvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHtCYkZvcm1TdWJtaXR9IGZyb20gJy4vZGlyZWN0aXZlcy9mb3JtLXN1Ym1pdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtCYklucHV0LCBCYlNlbGVjdH0gZnJvbSAnLi9kaXJlY3RpdmVzL2lucHV0LmRpcmVjdGl2ZSc7XG5pbXBvcnQge0JiRm9ybUdyb3VwfSBmcm9tICcuL2Zvcm0tZ3JvdXAvZm9ybS1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHtCYkZvcm1FcnJvcn0gZnJvbSAnLi9mb3JtLWVycm9yL2Zvcm0tZXJyb3IuY29tcG9uZW50JztcbmltcG9ydCB7QmJBbmNob3IsIEJiQnV0dG9ufSBmcm9tICcuL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7TW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCYlJlbGF0aXZlVGltZX0gZnJvbSAnLi9waXBlcy9yZWxhdGl2ZS10aW1lLnBpcGUnO1xuaW1wb3J0IHtVdGlsc01vZHVsZX0gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24vdXRpbHMnO1xuaW1wb3J0IHtCYkNoZWNrYm94fSBmcm9tICcuL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCc7XG5pbXBvcnQge0JiU3Bpbm5lcn0gZnJvbSAnLi9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50JztcbmltcG9ydCB7QmJGaWxlSW1hZ2V9IGZyb20gJy4vcGlwZXMvZmlsZS1pbWFnZS5waXBlJztcbmltcG9ydCB7UmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtCYkF2YXRhcn0gZnJvbSAnLi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiRmlsZVNpemV9IGZyb20gJy4vcGlwZXMvZmlsZS1zaXplLnBpcGUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0JiSWNvbn0gZnJvbSAnLi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7QmJUYWd9IGZyb20gJy4vdGFnL3RhZy5jb21wb25lbnQnO1xuXG5jb25zdCBERUNMQVJBVElPTlNfRVhQT1JUUyA9IFtcbiAgICAvLyBEaXJlY3RpdmVzLlxuICAgIEJiRm9ybUVycm9yLFxuICAgIEJiRm9ybVN1Ym1pdCxcbiAgICBCYkZvcm1TdWJtaXR0ZXIsXG4gICAgQmJJbnB1dCxcbiAgICBCYlNlbGVjdCxcbiAgICBCYlByZWZpeCxcbiAgICBCYlN1ZmZpeCxcbiAgICBCYkltYWdlVXBsb2FkLFxuICAgIC8vIFBpcGVzLlxuICAgIEJiRmlsZVNpemUsXG4gICAgQmJGaWxlSW1hZ2UsXG4gICAgQmJSZWxhdGl2ZVRpbWUsXG4gICAgLy8gQ29tcG9uZW50cy5cbiAgICBCYkJ1dHRvbixcbiAgICBCYkFuY2hvcixcbiAgICBCYlNwaW5uZXIsXG4gICAgQmJJY29uLFxuICAgIEJiRm9ybUNvbnRyb2wsXG4gICAgQmJGb3JtR3JvdXAsXG4gICAgQmJDaGVja2JveCxcbiAgICBCYkRyb3Bkb3duLFxuICAgIEJiRHJvcGRvd25JdGVtLFxuICAgIEJiVGFnLFxuICAgIEJiQXZhdGFyLFxuICAgIEJiRmlsZVBpY2tlcixcbiAgICBCYkltYWdlUGlja2VyLFxuICAgIEJiRGF0ZVBpY2tlclxuXTtcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgTG9jYWxpemVNb2R1bGUsXG4gICAgICAgIFV0aWxzTW9kdWxlXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFsuLi5ERUNMQVJBVElPTlNfRVhQT1JUU10sXG4gICAgZXhwb3J0czogWy4uLkRFQ0xBUkFUSU9OU19FWFBPUlRTLCBVdGlsc01vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgRWxlbWVudHNNb2R1bGUge1xuXG4gICAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxFbGVtZW50c01vZHVsZT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IEVsZW1lbnRzTW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAge3Byb3ZpZGU6IEVMRU1FTlRTX0VSUk9SUywgdXNlRmFjdG9yeTogZ2V0RXJyb3JzLCBtdWx0aTogdHJ1ZX0sXG4gICAgICAgICAgICAgICAgRUxFTUVOVFNfTUFURVJJQUxfSUNPTlxuICAgICAgICAgICAgXVxuICAgICAgICB9O1xuICAgIH1cblxufVxuXG5leHBvcnQgY29uc3QgRUxFTUVOVFNfTUFURVJJQUxfSUNPTiA9IHtcbiAgICBwcm92aWRlOiBFTEVNRU5UU19JQ09OUyxcbiAgICB1c2VWYWx1ZToge25hbWVzcGFjZTogJ21hdGVyaWFsJywgY2xhc3NOYW1lOiAnbWF0ZXJpYWwtaWNvbnMnLCB1c2VzOiAnY29udGVudCcsIHR5cGU6ICdmb250J30sXG4gICAgbXVsdGk6IHRydWVcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFcnJvcnMoKSB7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgdW5rbm93bjogKCkgPT4gJ2Zvcm0tY29udHJvbC1lcnJvcnMudW5rbm93bicsXG4gICAgICAgIHJlcXVpcmVkOiAoKSA9PiAnZm9ybS1jb250cm9sLWVycm9ycy5yZXF1aXJlZCcsXG4gICAgICAgIHBhdHRlcm46ICgpID0+ICdmb3JtLWNvbnRyb2wtZXJyb3JzLnBhdHRlcm4nLFxuICAgICAgICBlbWFpbDogKCkgPT4gJ2Zvcm0tY29udHJvbC1lcnJvcnMuZW1haWwnLFxuICAgICAgICBlbWFpbFRha2VuOiAoKSA9PiAnZm9ybS1jb250cm9sLWVycm9ycy5lbWFpbFRha2VuJyxcbiAgICAgICAgcGFzc3dvcmRNYXRjaDogKCkgPT4gJ2Zvcm0tY29udHJvbC1lcnJvcnMucGFzc3dvcmRNYXRjaCcsXG4gICAgICAgIGNvbmZpcm06ICgpID0+ICdmb3JtLWNvbnRyb2wtZXJyb3JzLmNvbmZpcm0nLFxuICAgICAgICBmdWxsTnVtYmVyOiAoKSA9PiAnZm9ybS1jb250cm9sLWVycm9ycy5mdWxsTnVtYmVyJyxcbiAgICAgICAgbWluOiAoe21pbn0pID0+ICh7dG9rZW46ICdmb3JtLWNvbnRyb2wtZXJyb3JzLm1pbicsIGRhdGE6IHttaW59fSksXG4gICAgICAgIG1heDogKHttYXh9KSA9PiAoe3Rva2VuOiAnZm9ybS1jb250cm9sLWVycm9ycy5tYXgnLCBkYXRhOiB7bWF4fX0pLFxuICAgICAgICBtYXhGaWxlU2l6ZTogKHttYXhTaXplfSkgPT4gKHt0b2tlbjogJ2Zvcm0tY29udHJvbC1lcnJvcnMubWF4RmlsZVNpemUnLCBkYXRhOiB7bWF4U2l6ZX19KSxcbiAgICAgICAgbWluRGF0ZTogKHtkYXRlfSkgPT4gKHt0b2tlbjogJ2Zvcm0tY29udHJvbC1lcnJvcnMubWluRGF0ZScsIGRhdGE6IHtkYXRlfX0pLFxuICAgICAgICBtYXhEYXRlOiAoe2RhdGV9KSA9PiAoe3Rva2VuOiAnZm9ybS1jb250cm9sLWVycm9ycy5tYXhEYXRlJywgZGF0YToge2RhdGV9fSksXG4gICAgICAgIGludmFsaWREYXRlOiAoKSA9PiAnZm9ybS1jb250cm9sLWVycm9ycy5pbnZhbGlkRGF0ZScsXG4gICAgICAgIGludmFsaWRGaWxlVHlwZTogKCkgPT4gJ2Zvcm0tY29udHJvbC1lcnJvcnMuaW52YWxpZEZpbGVUeXBlJyxcbiAgICAgICAgbWlubGVuZ3RoOiAoe3JlcXVpcmVkTGVuZ3RoLCBhY3R1YWxMZW5ndGh9KSA9PiAoe1xuICAgICAgICAgICAgdG9rZW46ICdmb3JtLWNvbnRyb2wtZXJyb3JzLm1pbmxlbmd0aCcsXG4gICAgICAgICAgICBkYXRhOiB7cmVxdWlyZWRMZW5ndGgsIGFjdHVhbExlbmd0aH1cbiAgICAgICAgfSksXG4gICAgICAgIG1heGxlbmd0aDogKHtyZXF1aXJlZExlbmd0aCwgYWN0dWFsTGVuZ3RofSkgPT4gKHtcbiAgICAgICAgICAgIHRva2VuOiAnZm9ybS1jb250cm9sLWVycm9ycy5tYXhsZW5ndGgnLFxuICAgICAgICAgICAgZGF0YToge3JlcXVpcmVkTGVuZ3RoLCBhY3R1YWxMZW5ndGh9XG4gICAgICAgIH0pXG4gICAgfTtcblxuICAgIHJldHVybiBkYXRhO1xufVxuIl19
@@ -148,8 +148,8 @@ export class BbFilePicker extends BbFilePickerMixinBase {
148
148
  invalidFileType: true
149
149
  };
150
150
  }
151
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BbFilePicker, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
152
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: BbFilePicker, selector: "bb-file-picker", inputs: { disabled: "disabled", hideErrors: "hideErrors", grouped: "grouped", required: "required", label: "label", hint: "hint", accept: "accept", showImages: "showImages", allowDragging: "allowDragging", value: "value" }, outputs: { valueChange: "valueChange" }, host: { listeners: { "dragover": "onDrag($event,true)", "dragleave": "onDrag($event,false)", "drop": "onDrop($event)" }, properties: { "class.required": "required", "class.disabled": "disabled", "class.grouped": "grouped", "class.hovered": "hovered", "class.error": "error" }, classAttribute: "bb-file-picker" }, providers: [
151
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbFilePicker, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
152
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: BbFilePicker, selector: "bb-file-picker", inputs: { disabled: "disabled", hideErrors: "hideErrors", grouped: "grouped", required: "required", label: "label", hint: "hint", accept: "accept", showImages: "showImages", allowDragging: "allowDragging", value: "value" }, outputs: { valueChange: "valueChange" }, host: { listeners: { "dragover": "onDrag($event,true)", "dragleave": "onDrag($event,false)", "drop": "onDrop($event)" }, properties: { "class.required": "required", "class.disabled": "disabled", "class.grouped": "grouped", "class.hovered": "hovered", "class.error": "error" }, classAttribute: "bb-file-picker" }, providers: [
153
153
  {
154
154
  provide: NG_VALUE_ACCESSOR,
155
155
  useExisting: forwardRef(() => BbFilePicker),
@@ -172,7 +172,7 @@ export class BbFilePicker extends BbFilePickerMixinBase {
172
172
  ])
173
173
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
174
174
  }
175
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BbFilePicker, decorators: [{
175
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbFilePicker, decorators: [{
176
176
  type: Component,
177
177
  args: [{ selector: 'bb-file-picker', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
178
178
  {
@@ -23,10 +23,10 @@ export class BbFormControl extends BbFormControlMixinBase {
23
23
  onErrorChange(error) {
24
24
  this.error = !!error;
25
25
  }
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BbFormControl, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
27
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: BbFormControl, selector: "bb-form-control", inputs: { grouped: "grouped", hideErrors: "hideErrors", label: "label", hint: "hint" }, host: { properties: { "class.readonly": "readonly", "class.required": "required", "class.disabled": "disabled", "class.focused": "focused", "class.grouped": "grouped", "class.arrow": "arrow", "class.error": "error" }, classAttribute: "bb-form-control" }, queries: [{ propertyName: "ngControl", first: true, predicate: NgControl, descendants: true }], usesInheritance: true, ngImport: i0, template: "<!-- Label of the form control. -->\n<label *ngIf=\"label as labelContent\"\n [attr.for]=\"labelId\"\n class=\"bb-form-control-label\">\n <ng-template [bbTemplate]=\"labelContent\">\n {{ labelContent }}\n </ng-template>\n</label>\n\n<!-- The input with the addons. -->\n<div class=\"bb-form-control-container\">\n <ng-content select=\"[bbPrefix]\"></ng-content>\n <ng-content select=\"[bbInput]\"></ng-content>\n <ng-content select=\"[bbSuffix]\"></ng-content>\n</div>\n\n<!-- The error component. -->\n<bb-form-error *ngIf=\"!hideErrors\"\n [control]=\"ngControl\"\n (errorChange)=\"onErrorChange($event)\">\n</bb-form-error>\n\n<!-- The form control hint. -->\n<p *ngIf=\"hint as hintContent\"\n class=\"bb-form-control-hint\">\n <ng-template [bbTemplate]=\"hintContent\">\n {{ hintContent }}\n </ng-template>\n</p>\n", styles: [".bb-form-control{color:#2d3c4d;display:block}.bb-form-control>.bb-form-control-container>*.bb-prefix,.bb-form-control>.bb-form-control-container>*.bb-suffix{margin:0 8px;color:#b4b4b4;transition:color .3s cubic-bezier(0,0,.2,1)}.bb-form-control.grouped{margin-bottom:20px}.bb-form-control.small{max-width:240px}.bb-form-control.medium{max-width:480px}.bb-form-control.large{max-width:720px}.bb-form-control.required>.bb-form-control-label:after{content:\"*\";color:#c23934;font-size:12px;line-height:1.5}.bb-form-control.disabled>.bb-form-control-container{cursor:default;pointer-events:none;background-color:#cccccca3}.bb-form-control.disabled>.bb-form-control-container>input,.bb-form-control.disabled>.bb-form-control-container>textarea,.bb-form-control.disabled>.bb-form-control-container>select{color:#aaa}.bb-form-control.readonly>.bb-form-control-container{cursor:default;border:1px dotted #bdc4c9}.bb-form-control:not(.disabled):not(.readonly).focused>.bb-form-control-container{background-color:#fff;box-shadow:inset 0 3px #b7bcc233,0 6px 6px -6px #0000001a,0 0 0 3px #007bff33}.bb-form-control:not(.disabled):not(.readonly).focused>.bb-form-control-container>input::placeholder,.bb-form-control:not(.disabled):not(.readonly).focused>.bb-form-control-container>textarea::placeholder{color:#b4b4b4;transition:color .3s cubic-bezier(0,0,.2,1)}.bb-form-control.error>.bb-form-control-label{color:#c23934}.bb-form-control.error>.bb-form-control-hint{display:none}.bb-form-control.error>.bb-form-control-container{border:1px solid #962b26;background-color:#c2393440!important;box-shadow:inset 0 3px #b7bcc233,0 6px 6px -6px #0000001a,0 0 0 3px #c2393466!important}.bb-form-control.error>.bb-form-control-container>*.bb-prefix,.bb-form-control.error>.bb-form-control-container>.bb-suffix{color:#c23934}.bb-form-control.error>.bb-form-control-container>input::placeholder,.bb-form-control.error>.bb-form-control-container>textarea::placeholder{color:#c2393466!important}.bb-form-control.arrow>.bb-form-control-container:after{top:0;right:0;bottom:0;width:20px;content:\"\";height:36px;display:flex;min-width:20px;position:absolute;pointer-events:none;background-repeat:no-repeat;background-position:calc(100% - 8px) center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAGCAYAAAAYLBS/AAAACXBIWXMAAAsSAAALEgHS3X78AAAAWUlEQVQYlY3QsQ2DMAAEwMMTsAkrZInvWY3WXiIjJJtkA1OBRCIRf/nSffFTrXXGE4uxbCXJBw+8R0CStcAg3JKsUI7mDzzBBd3AC4Cp9/4z21o7znl9A9gBAf4fpjLTwkUAAAAASUVORK5CYII=)}.bb-form-control-container{width:100%;display:flex;overflow:hidden;position:relative;border-radius:3px;align-items:center;border:1px solid #b6bbc1;background-color:#fff8ff;transition-duration:.25s;transition-property:background-color,box-shadow;transition-timing-function:cubic-bezier(0,0,.2,1);box-shadow:inset 0 3px #b7bcc233,0 6px 6px -6px #0000001a}.bb-form-control-container>input::placeholder,.bb-form-control-container>textarea::placeholder{color:#d2d2d2;transition:color .3s cubic-bezier(0,0,.2,1)}.bb-form-control-container>input,.bb-form-control-container>textarea,.bb-form-control-container>select{margin:0;width:100%;border:none;color:#3d464d;font-size:16px;appearance:none;background-color:transparent}.bb-form-control-container>input,.bb-form-control-container>select{height:36px;padding:0 8px}.bb-form-control-container>select{padding-right:28px}.bb-form-control-container>select>::-ms-expand{display:none}.bb-form-control-container>input::-ms-clear,.bb-form-control-container>input::-ms-reveal{width:0;height:0;display:none}.bb-form-control-container>input::-webkit-search-decoration,.bb-form-control-container>input::-webkit-search-cancel-button,.bb-form-control-container>input::-webkit-search-results-button,.bb-form-control-container>input::-webkit-search-results-decoration{display:none}.bb-form-control-container>textarea{resize:none;padding:8px}.bb-form-control-label{color:#000;display:block;position:relative;margin-bottom:4px;transition:color 30ms cubic-bezier(0,0,.2,1)}.bb-form-control-error,.bb-form-control-hint{display:block;font-size:13px;margin-top:4px}.bb-form-control-error{color:#c23934}.bb-form-control-hint{color:#738694}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.BbTemplate, selector: "[bbTemplate]", inputs: ["bbTemplate"] }, { kind: "component", type: i3.BbFormError, selector: "bb-form-error", inputs: ["control"], outputs: ["errorChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbFormControl, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: BbFormControl, selector: "bb-form-control", inputs: { grouped: "grouped", hideErrors: "hideErrors", label: "label", hint: "hint" }, host: { properties: { "class.readonly": "readonly", "class.required": "required", "class.disabled": "disabled", "class.focused": "focused", "class.grouped": "grouped", "class.arrow": "arrow", "class.error": "error" }, classAttribute: "bb-form-control" }, queries: [{ propertyName: "ngControl", first: true, predicate: NgControl, descendants: true }], usesInheritance: true, ngImport: i0, template: "<!-- Label of the form control. -->\n<label *ngIf=\"label as labelContent\"\n [attr.for]=\"labelId\"\n class=\"bb-form-control-label\">\n <ng-template [bbTemplate]=\"labelContent\">\n {{ labelContent }}\n </ng-template>\n</label>\n\n<!-- The input with the addons. -->\n<div class=\"bb-form-control-container\">\n <ng-content select=\"[bbPrefix]\"></ng-content>\n <ng-content select=\"[bbInput]\"></ng-content>\n <ng-content select=\"[bbSuffix]\"></ng-content>\n</div>\n\n<!-- The error component. -->\n<bb-form-error *ngIf=\"!hideErrors\"\n [control]=\"ngControl\"\n (errorChange)=\"onErrorChange($event)\">\n</bb-form-error>\n\n<!-- The form control hint. -->\n<p *ngIf=\"hint as hintContent\"\n class=\"bb-form-control-hint\">\n <ng-template [bbTemplate]=\"hintContent\">\n {{ hintContent }}\n </ng-template>\n</p>\n", styles: [".bb-form-control{color:#2d3c4d;display:block}.bb-form-control>.bb-form-control-container>*.bb-prefix,.bb-form-control>.bb-form-control-container>*.bb-suffix{margin:0 8px;color:#b4b4b4;transition:color .3s cubic-bezier(0,0,.2,1)}.bb-form-control.grouped{margin-bottom:20px}.bb-form-control.small{max-width:240px}.bb-form-control.medium{max-width:480px}.bb-form-control.large{max-width:720px}.bb-form-control.required>.bb-form-control-label:after{content:\"*\";color:#c23934;font-size:12px;line-height:1.5}.bb-form-control.disabled>.bb-form-control-container{cursor:default;pointer-events:none;background-color:#cccccca3}.bb-form-control.disabled>.bb-form-control-container>input,.bb-form-control.disabled>.bb-form-control-container>textarea,.bb-form-control.disabled>.bb-form-control-container>select{color:#aaa}.bb-form-control.readonly>.bb-form-control-container{cursor:default;border:1px dotted #bdc4c9}.bb-form-control:not(.disabled):not(.readonly).focused>.bb-form-control-container{background-color:#fff;box-shadow:inset 0 3px #b7bcc233,0 6px 6px -6px #0000001a,0 0 0 3px #007bff33}.bb-form-control:not(.disabled):not(.readonly).focused>.bb-form-control-container>input::placeholder,.bb-form-control:not(.disabled):not(.readonly).focused>.bb-form-control-container>textarea::placeholder{color:#b4b4b4;transition:color .3s cubic-bezier(0,0,.2,1)}.bb-form-control.error>.bb-form-control-label{color:#c23934}.bb-form-control.error>.bb-form-control-hint{display:none}.bb-form-control.error>.bb-form-control-container{border:1px solid #962b26;background-color:#c2393440!important;box-shadow:inset 0 3px #b7bcc233,0 6px 6px -6px #0000001a,0 0 0 3px #c2393466!important}.bb-form-control.error>.bb-form-control-container>*.bb-prefix,.bb-form-control.error>.bb-form-control-container>.bb-suffix{color:#c23934}.bb-form-control.error>.bb-form-control-container>input::placeholder,.bb-form-control.error>.bb-form-control-container>textarea::placeholder{color:#c2393466!important}.bb-form-control.arrow>.bb-form-control-container:after{top:0;right:0;bottom:0;width:20px;content:\"\";height:36px;display:flex;min-width:20px;position:absolute;pointer-events:none;background-repeat:no-repeat;background-position:calc(100% - 8px) center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAGCAYAAAAYLBS/AAAACXBIWXMAAAsSAAALEgHS3X78AAAAWUlEQVQYlY3QsQ2DMAAEwMMTsAkrZInvWY3WXiIjJJtkA1OBRCIRf/nSffFTrXXGE4uxbCXJBw+8R0CStcAg3JKsUI7mDzzBBd3AC4Cp9/4z21o7znl9A9gBAf4fpjLTwkUAAAAASUVORK5CYII=)}.bb-form-control-container{width:100%;display:flex;overflow:hidden;position:relative;border-radius:3px;align-items:center;border:1px solid #b6bbc1;background-color:#fff8ff;transition-duration:.25s;transition-property:background-color,box-shadow;transition-timing-function:cubic-bezier(0,0,.2,1);box-shadow:inset 0 3px #b7bcc233,0 6px 6px -6px #0000001a}.bb-form-control-container>input::placeholder,.bb-form-control-container>textarea::placeholder{color:#d2d2d2;transition:color .3s cubic-bezier(0,0,.2,1)}.bb-form-control-container>input,.bb-form-control-container>textarea,.bb-form-control-container>select{margin:0;width:100%;border:none;color:#3d464d;font-size:16px;appearance:none;background-color:transparent}.bb-form-control-container>input,.bb-form-control-container>select{height:36px;padding:0 8px}.bb-form-control-container>select{padding-right:28px}.bb-form-control-container>select>::-ms-expand{display:none}.bb-form-control-container>input::-ms-clear,.bb-form-control-container>input::-ms-reveal{width:0;height:0;display:none}.bb-form-control-container>input::-webkit-search-decoration,.bb-form-control-container>input::-webkit-search-cancel-button,.bb-form-control-container>input::-webkit-search-results-button,.bb-form-control-container>input::-webkit-search-results-decoration{display:none}.bb-form-control-container>textarea{resize:none;padding:8px}.bb-form-control-label{color:#000;display:block;position:relative;margin-bottom:4px;transition:color 30ms cubic-bezier(0,0,.2,1)}.bb-form-control-error,.bb-form-control-hint{display:block;font-size:13px;margin-top:4px}.bb-form-control-error{color:#c23934}.bb-form-control-hint{color:#738694}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.BbTemplate, selector: "[bbTemplate]", inputs: ["bbTemplate"] }, { kind: "component", type: i3.BbFormError, selector: "bb-form-error", inputs: ["control"], outputs: ["errorChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
28
28
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BbFormControl, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbFormControl, decorators: [{
30
30
  type: Component,
31
31
  args: [{ selector: 'bb-form-control', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
32
32
  'class': 'bb-form-control',
@@ -96,10 +96,10 @@ export class BbFormError {
96
96
  }
97
97
  return this.control.statusChanges.pipe(startWith(this.control.status), delay(0));
98
98
  }
99
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BbFormError, deps: [{ token: i1.BbFormSubmit, optional: true }, { token: i2.NgControl, optional: true }, { token: i3.BbFormSubmitter, optional: true }, { token: ELEMENTS_ERRORS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
100
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: BbFormError, selector: "bb-form-error", inputs: { control: "control" }, outputs: { errorChange: "errorChange" }, host: { classAttribute: "bb-form-error" }, ngImport: i0, template: "<ng-container *ngIf=\"error$ | async as error\">\n <p *ngIf=\"error?.token | bbLocalize:{optional: true, data: error?.data} as message\"\n class=\"bb-form-error-message\">\n {{ message }}\n </p>\n</ng-container>", styles: [".bb-form-error{display:block}.bb-form-error-message{color:#c23934;display:block;font-size:13px;margin-top:4px}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.BbLocalize, name: "bbLocalize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
99
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbFormError, deps: [{ token: i1.BbFormSubmit, optional: true }, { token: i2.NgControl, optional: true }, { token: i3.BbFormSubmitter, optional: true }, { token: ELEMENTS_ERRORS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
100
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: BbFormError, selector: "bb-form-error", inputs: { control: "control" }, outputs: { errorChange: "errorChange" }, host: { classAttribute: "bb-form-error" }, ngImport: i0, template: "<ng-container *ngIf=\"error$ | async as error\">\n <p *ngIf=\"error?.token | bbLocalize:{optional: true, data: error?.data} as message\"\n class=\"bb-form-error-message\">\n {{ message }}\n </p>\n</ng-container>", styles: [".bb-form-error{display:block}.bb-form-error-message{color:#c23934;display:block;font-size:13px;margin-top:4px}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.BbLocalize, name: "bbLocalize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
101
101
  }
102
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BbFormError, decorators: [{
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbFormError, decorators: [{
103
103
  type: Component,
104
104
  args: [{ selector: 'bb-form-error', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
105
105
  'class': 'bb-form-error'
@@ -5,10 +5,10 @@ class BbFormGroupBase {
5
5
  }
6
6
  const BbFormGroupMixinBase = mixinGrouped(BbFormGroupBase);
7
7
  export class BbFormGroup extends BbFormGroupMixinBase {
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BbFormGroup, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
9
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: BbFormGroup, selector: "bb-form-group", inputs: { grouped: "grouped" }, host: { properties: { "class.grouped": "grouped" }, classAttribute: "bb-form-group" }, usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [".bb-form-group{width:100%;display:flex;flex-wrap:wrap;margin-top:-10px}.bb-form-group>*{margin-top:10px}.bb-form-group>*:not(:first-child){margin-left:10px}.bb-form-group.start{justify-content:flex-start}.bb-form-group.end{justify-content:flex-end}.bb-form-group.vertical{flex-direction:column;justify-content:normal}.bb-form-group.vertical>*{margin-left:0}.bb-form-group.vertical.start{align-items:flex-start}.bb-form-group.vertical.end{align-items:flex-end}.bb-form-group.grouped{margin-bottom:20px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbFormGroup, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: BbFormGroup, selector: "bb-form-group", inputs: { grouped: "grouped" }, host: { properties: { "class.grouped": "grouped" }, classAttribute: "bb-form-group" }, usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [".bb-form-group{width:100%;display:flex;flex-wrap:wrap;margin-top:-10px}.bb-form-group>*{margin-top:10px}.bb-form-group>*:not(:first-child){margin-left:10px}.bb-form-group.start{justify-content:flex-start}.bb-form-group.end{justify-content:flex-end}.bb-form-group.vertical{flex-direction:column;justify-content:normal}.bb-form-group.vertical>*{margin-left:0}.bb-form-group.vertical.start{align-items:flex-start}.bb-form-group.vertical.end{align-items:flex-end}.bb-form-group.grouped{margin-bottom:20px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BbFormGroup, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbFormGroup, decorators: [{
12
12
  type: Component,
13
13
  args: [{ selector: 'bb-form-group', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
14
14
  'class': 'bb-form-group',
@@ -71,10 +71,10 @@ export class BbIcon {
71
71
  }
72
72
  return { type: data['type'], className: data['className'], content };
73
73
  }
74
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BbIcon, deps: [{ token: ELEMENTS_ICONS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
75
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: BbIcon, selector: "bb-icon", inputs: { alt: "alt", size: "size", src: "src", ariaHidden: "ariaHidden" }, host: { properties: { "attr.aria-hidden": "ariaHidden", "style.width.px": "size", "style.height.px": "size", "style.min-width.px": "size", "style.min-height.px": "size", "style.font-size.px": "size" }, classAttribute: "bb-icon" }, ngImport: i0, template: "<ng-container *ngIf=\"state$ | async as data\"\n [ngSwitch]=\"data?.type\">\n <i *ngSwitchCase=\"'font'\"\n [attr.data-icon]=\"data?.attribute\"\n [class]=\"data?.className\">\n {{ data?.content }}\n </i>\n <img *ngSwitchCase=\"'image'\"\n [src]=\"data?.src\"\n [alt]=\"alt\">\n <svg *ngSwitchCase=\"'unknown'\"\n viewBox=\"0 0 1 1\">\n <rect x=\"0\" y=\"0\" width=\"1\" height=\"1\" fill=\"#c5c5c5\"></rect>\n </svg>\n</ng-container>\n", styles: [".bb-icon{display:flex;-webkit-user-select:none;user-select:none;align-items:center;justify-content:center}.bb-icon>i{font-size:inherit}.bb-icon>img,.bb-icon>svg{width:100%;height:100%;display:flex}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
74
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbIcon, deps: [{ token: ELEMENTS_ICONS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
75
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: BbIcon, selector: "bb-icon", inputs: { alt: "alt", size: "size", src: "src", ariaHidden: "ariaHidden" }, host: { properties: { "attr.aria-hidden": "ariaHidden", "style.width.px": "size", "style.height.px": "size", "style.min-width.px": "size", "style.min-height.px": "size", "style.font-size.px": "size" }, classAttribute: "bb-icon" }, ngImport: i0, template: "<ng-container *ngIf=\"state$ | async as data\"\n [ngSwitch]=\"data?.type\">\n <i *ngSwitchCase=\"'font'\"\n [attr.data-icon]=\"data?.attribute\"\n [class]=\"data?.className\">\n {{ data?.content }}\n </i>\n <img *ngSwitchCase=\"'image'\"\n [src]=\"data?.src\"\n [alt]=\"alt\">\n <svg *ngSwitchCase=\"'unknown'\"\n viewBox=\"0 0 1 1\">\n <rect x=\"0\" y=\"0\" width=\"1\" height=\"1\" fill=\"#c5c5c5\"></rect>\n </svg>\n</ng-container>\n", styles: [".bb-icon{display:flex;-webkit-user-select:none;user-select:none;align-items:center;justify-content:center}.bb-icon>i{font-size:inherit}.bb-icon>img,.bb-icon>svg{width:100%;height:100%;display:flex}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
76
76
  }
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BbIcon, decorators: [{
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbIcon, decorators: [{
78
78
  type: Component,
79
79
  args: [{ selector: 'bb-icon', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
80
80
  'class': 'bb-icon',
@@ -77,10 +77,10 @@ export class BbImagePicker extends BbImagePickerMixinBase {
77
77
  setDisabledState(isDisabled) {
78
78
  this.disabled = isDisabled;
79
79
  }
80
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BbImagePicker, deps: [{ token: i1.ImageConverter }], target: i0.ɵɵFactoryTarget.Component }); }
81
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: BbImagePicker, selector: "bb-image-picker", inputs: { grouped: "grouped", disabled: "disabled", label: "label", placeholder: "placeholder", styleDimensions: "styleDimensions", cropDimensions: "cropDimensions", value: "value" }, outputs: { valueChange: "valueChange" }, host: { properties: { "class.disabled": "disabled", "class.grouped": "grouped" }, classAttribute: "bb-image-picker" }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BbImagePicker), multi: true }], viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<!-- The input that can open the file picker. -->\n<input #fileInput\n (change)=\"onFileChange($event)\"\n class=\"bb-image-picker-input\"\n type=\"file\"\n tabindex=\"-1\"\n accept=\"image/*\">\n\n<span [style.width]=\"styleDimensions?.width || '100%'\"\n [style.height]=\"styleDimensions?.height || '215px'\"\n [style.background-image]=\"image | async\"\n class=\"bb-image-input-image\">\n </span>\n\n<button *ngIf=\"label as labelText\"\n (click)=\"openFilePicker()\"\n bb-button\n class=\"bb-image-input-button\"\n type=\"button\">\n {{ labelText }}\n</button>\n", styles: [".bb-image-picker{display:flex;align-items:center;flex-direction:column}.bb-image-picker.circle>.bb-image-input-image{border-radius:50%}.bb-image-picker.grouped{margin-bottom:20px}.bb-image-picker.disabled{opacity:.5;cursor:default;-webkit-user-select:none;user-select:none;pointer-events:none}.bb-image-picker-input{opacity:0;z-index:-1;width:.1px;height:.1px;overflow:hidden;position:absolute}.bb-image-input-image{display:flex;cursor:default;position:relative;border-radius:4px;align-items:center;justify-content:center;background:#0003 url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7) center center/cover no-repeat}.bb-image-input-button{margin-top:10px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.BbButton, selector: "button[bb-button]", inputs: ["disabled", "loading"], exportAs: ["bbButton"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
80
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbImagePicker, deps: [{ token: i1.ImageConverter }], target: i0.ɵɵFactoryTarget.Component }); }
81
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: BbImagePicker, selector: "bb-image-picker", inputs: { grouped: "grouped", disabled: "disabled", label: "label", placeholder: "placeholder", styleDimensions: "styleDimensions", cropDimensions: "cropDimensions", value: "value" }, outputs: { valueChange: "valueChange" }, host: { properties: { "class.disabled": "disabled", "class.grouped": "grouped" }, classAttribute: "bb-image-picker" }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BbImagePicker), multi: true }], viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<!-- The input that can open the file picker. -->\n<input #fileInput\n (change)=\"onFileChange($event)\"\n class=\"bb-image-picker-input\"\n type=\"file\"\n tabindex=\"-1\"\n accept=\"image/*\">\n\n<span [style.width]=\"styleDimensions?.width || '100%'\"\n [style.height]=\"styleDimensions?.height || '215px'\"\n [style.background-image]=\"image | async\"\n class=\"bb-image-input-image\">\n </span>\n\n<button *ngIf=\"label as labelText\"\n (click)=\"openFilePicker()\"\n bb-button\n class=\"bb-image-input-button\"\n type=\"button\">\n {{ labelText }}\n</button>\n", styles: [".bb-image-picker{display:flex;align-items:center;flex-direction:column}.bb-image-picker.circle>.bb-image-input-image{border-radius:50%}.bb-image-picker.grouped{margin-bottom:20px}.bb-image-picker.disabled{opacity:.5;cursor:default;-webkit-user-select:none;user-select:none;pointer-events:none}.bb-image-picker-input{opacity:0;z-index:-1;width:.1px;height:.1px;overflow:hidden;position:absolute}.bb-image-input-image{display:flex;cursor:default;position:relative;border-radius:4px;align-items:center;justify-content:center;background:#0003 url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7) center center/cover no-repeat}.bb-image-input-button{margin-top:10px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.BbButton, selector: "button[bb-button]", inputs: ["disabled", "loading"], exportAs: ["bbButton"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
82
82
  }
83
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BbImagePicker, decorators: [{
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbImagePicker, decorators: [{
84
84
  type: Component,
85
85
  args: [{ selector: 'bb-image-picker', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
86
86
  'class': 'bb-image-picker',
@@ -32,10 +32,10 @@ export class BbFileImage {
32
32
  return null;
33
33
  });
34
34
  }
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BbFileImage, deps: [{ token: i1.Platform }, { token: i2.ImageConverter }, { token: i3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
36
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.1", ngImport: i0, type: BbFileImage, name: "bbFileImage" }); }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbFileImage, deps: [{ token: i1.Platform }, { token: i2.ImageConverter }, { token: i3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
36
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: BbFileImage, name: "bbFileImage" }); }
37
37
  }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BbFileImage, decorators: [{
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbFileImage, decorators: [{
39
39
  type: Pipe,
40
40
  args: [{
41
41
  name: 'bbFileImage'
@@ -16,10 +16,10 @@ export class BbFileSize {
16
16
  transform(value) {
17
17
  return this.format(value);
18
18
  }
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BbFileSize, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
20
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.1", ngImport: i0, type: BbFileSize, name: "bbFileSize" }); }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbFileSize, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
20
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: BbFileSize, name: "bbFileSize" }); }
21
21
  }
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BbFileSize, decorators: [{
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbFileSize, decorators: [{
23
23
  type: Pipe,
24
24
  args: [{
25
25
  name: 'bbFileSize'
@@ -79,10 +79,10 @@ export class BbRelativeTime {
79
79
  get locale() {
80
80
  return this._localize?.current?.locale ?? this._localeId;
81
81
  }
82
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BbRelativeTime, deps: [{ token: LOCALE_ID }, { token: i1.Localize, optional: true }], target: i0.ɵɵFactoryTarget.Pipe }); }
83
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.1", ngImport: i0, type: BbRelativeTime, name: "bbRelativeTime" }); }
82
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbRelativeTime, deps: [{ token: LOCALE_ID }, { token: i1.Localize, optional: true }], target: i0.ɵɵFactoryTarget.Pipe }); }
83
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: BbRelativeTime, name: "bbRelativeTime" }); }
84
84
  }
85
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BbRelativeTime, decorators: [{
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbRelativeTime, decorators: [{
86
86
  type: Pipe,
87
87
  args: [{
88
88
  name: 'bbRelativeTime'