@bravobit/bb-foundation 0.16.0 → 0.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/controls/bravobit-bb-foundation-controls.d.ts +5 -0
  2. package/controls/lib/checkbox/checkbox.component.d.ts +27 -0
  3. package/controls/lib/checkbox/checkbox.module.d.ts +9 -0
  4. package/controls/lib/controls.module.d.ts +7 -0
  5. package/controls/package.json +10 -0
  6. package/controls/public_api.d.ts +3 -0
  7. package/esm2020/auth/lib/auth.interceptor.mjs +3 -3
  8. package/esm2020/auth/lib/auth.module.mjs +4 -4
  9. package/esm2020/auth/lib/auth.service.mjs +3 -3
  10. package/esm2020/auth/lib/directives/authenticated.directive.mjs +3 -3
  11. package/esm2020/auth/lib/directives/permission.directive.mjs +3 -3
  12. package/esm2020/auth/lib/directives/role.directive.mjs +3 -3
  13. package/esm2020/auth/lib/guards/anonymous.guard.mjs +3 -3
  14. package/esm2020/auth/lib/guards/authenticated.guard.mjs +3 -3
  15. package/esm2020/auth/lib/helpers/mapper.helper.mjs +3 -3
  16. package/esm2020/auth/lib/permissions.service.mjs +3 -3
  17. package/esm2020/collections/lib/collections.module.mjs +4 -4
  18. package/esm2020/collections/lib/components/collections-pager/collections-pager.component.mjs +8 -8
  19. package/esm2020/collections/lib/components/collections-viewer/collections-viewer.component.mjs +3 -3
  20. package/esm2020/collections/lib/components/collections.directive.mjs +12 -12
  21. package/esm2020/controls/bravobit-bb-foundation-controls.mjs +5 -0
  22. package/esm2020/controls/lib/checkbox/checkbox.component.mjs +86 -0
  23. package/esm2020/controls/lib/checkbox/checkbox.module.mjs +19 -0
  24. package/esm2020/controls/lib/controls.module.mjs +16 -0
  25. package/esm2020/controls/public_api.mjs +4 -0
  26. package/esm2020/dashboard/lib/dashboard/dashboard.component.mjs +3 -3
  27. package/esm2020/dashboard/lib/dashboard-header/dashboard-header.component.mjs +3 -3
  28. package/esm2020/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +3 -3
  29. package/esm2020/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +3 -3
  30. package/esm2020/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +3 -3
  31. package/esm2020/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +3 -3
  32. package/esm2020/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +3 -3
  33. package/esm2020/dashboard/lib/dashboard.module.mjs +4 -4
  34. package/esm2020/dialog/lib/dialog-actions/dialog-actions.component.mjs +3 -3
  35. package/esm2020/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +3 -3
  36. package/esm2020/dialog/lib/dialog-container/dialog-container.component.mjs +3 -3
  37. package/esm2020/dialog/lib/dialog-header/dialog-header.component.mjs +3 -3
  38. package/esm2020/dialog/lib/dialog-link/dialog-link.component.mjs +3 -3
  39. package/esm2020/dialog/lib/dialog-modal/dialog-modal.component.mjs +3 -3
  40. package/esm2020/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +3 -3
  41. package/esm2020/dialog/lib/dialog.insertion.mjs +3 -3
  42. package/esm2020/dialog/lib/dialog.module.mjs +5 -9
  43. package/esm2020/dialog/lib/dialog.service.mjs +3 -3
  44. package/esm2020/elements/lib/avatar/avatar.component.mjs +3 -3
  45. package/esm2020/elements/lib/button/button.component.mjs +6 -6
  46. package/esm2020/elements/lib/checkbox/checkbox.component.mjs +3 -3
  47. package/esm2020/elements/lib/date-picker/date-picker.component.mjs +3 -3
  48. package/esm2020/elements/lib/directives/addon.directive.mjs +6 -6
  49. package/esm2020/elements/lib/directives/autosize.directive.mjs +3 -3
  50. package/esm2020/elements/lib/directives/focus-trap.directive.mjs +3 -3
  51. package/esm2020/elements/lib/directives/focus.directive.mjs +3 -3
  52. package/esm2020/elements/lib/directives/form-submit.directive.mjs +3 -3
  53. package/esm2020/elements/lib/directives/input.directive.mjs +6 -6
  54. package/esm2020/elements/lib/directives/template.directive.mjs +3 -3
  55. package/esm2020/elements/lib/dropdown/dropdown.component.mjs +6 -6
  56. package/esm2020/elements/lib/elements.module.mjs +4 -4
  57. package/esm2020/elements/lib/file-picker/file-picker.component.mjs +3 -3
  58. package/esm2020/elements/lib/form-control/form-control.component.mjs +3 -3
  59. package/esm2020/elements/lib/form-error/form-error.component.mjs +3 -3
  60. package/esm2020/elements/lib/form-group/form-group.component.mjs +3 -3
  61. package/esm2020/elements/lib/icon/icon.component.mjs +3 -3
  62. package/esm2020/elements/lib/image-picker/image-picker.component.mjs +3 -3
  63. package/esm2020/elements/lib/pipes/file-image.pipe.mjs +3 -3
  64. package/esm2020/elements/lib/pipes/file-size.pipe.mjs +3 -3
  65. package/esm2020/elements/lib/pipes/relative-time.pipe.mjs +3 -3
  66. package/esm2020/elements/lib/spinner/spinner.component.mjs +3 -3
  67. package/esm2020/elements/lib/tag/tag.component.mjs +3 -3
  68. package/esm2020/http/lib/http.module.mjs +4 -4
  69. package/esm2020/http/lib/interceptors/base-url.interceptor.mjs +3 -3
  70. package/esm2020/http/lib/interceptors/error.interceptor.mjs +3 -3
  71. package/esm2020/lib/core/services/clipboard.service.mjs +3 -3
  72. package/esm2020/lib/core/services/exif.service.mjs +3 -3
  73. package/esm2020/lib/core/services/file-loader.service.mjs +3 -3
  74. package/esm2020/lib/core/services/image-converter.service.mjs +3 -3
  75. package/esm2020/lib/core/services/languages.service.mjs +3 -3
  76. package/esm2020/lib/core/services/network.service.mjs +3 -3
  77. package/esm2020/lib/core/services/patch.service.mjs +3 -3
  78. package/esm2020/lib/core/services/platform.service.mjs +3 -3
  79. package/esm2020/localize/lib/localize.module.mjs +4 -4
  80. package/esm2020/localize/lib/localize.pipe.mjs +3 -3
  81. package/esm2020/localize/lib/localize.service.mjs +3 -3
  82. package/esm2020/localize/lib/views/localize-string/localize-string.component.mjs +3 -3
  83. package/esm2020/localize/lib/views/localize-template-or-string.directive.mjs +3 -3
  84. package/esm2020/localize/lib/views/localize-template.directive.mjs +3 -3
  85. package/esm2020/notifications/lib/notifications-item/notifications-item.component.mjs +3 -3
  86. package/esm2020/notifications/lib/notifications-list/notifications-list.component.mjs +3 -3
  87. package/esm2020/notifications/lib/notifications.module.mjs +6 -7
  88. package/esm2020/notifications/lib/notifications.service.mjs +3 -3
  89. package/esm2020/recaptcha/lib/recaptcha/recaptcha.component.mjs +3 -3
  90. package/esm2020/recaptcha/lib/recaptcha-loader.service.mjs +3 -3
  91. package/esm2020/recaptcha/lib/recaptcha.module.mjs +4 -4
  92. package/esm2020/storage/lib/storage.service.mjs +3 -3
  93. package/esm2020/table/lib/components/table/table.component.mjs +9 -9
  94. package/esm2020/table/lib/components/table-cell/table-cell.component.mjs +3 -3
  95. package/esm2020/table/lib/components/table-header-cell/table-header-cell.component.mjs +3 -3
  96. package/esm2020/table/lib/components/table-pager/table-pager.component.mjs +3 -3
  97. package/esm2020/table/lib/table.module.mjs +4 -4
  98. package/fesm2015/bravobit-bb-foundation-auth.mjs +32 -31
  99. package/fesm2015/bravobit-bb-foundation-collections.mjs +27 -26
  100. package/fesm2015/bravobit-bb-foundation-collections.mjs.map +1 -1
  101. package/fesm2015/bravobit-bb-foundation-controls.mjs +123 -0
  102. package/fesm2015/bravobit-bb-foundation-controls.mjs.map +1 -0
  103. package/fesm2015/bravobit-bb-foundation-dashboard.mjs +25 -25
  104. package/fesm2015/bravobit-bb-foundation-dialog.mjs +32 -35
  105. package/fesm2015/bravobit-bb-foundation-dialog.mjs.map +1 -1
  106. package/fesm2015/bravobit-bb-foundation-elements.mjs +85 -85
  107. package/fesm2015/bravobit-bb-foundation-http.mjs +11 -10
  108. package/fesm2015/bravobit-bb-foundation-localize.mjs +20 -19
  109. package/fesm2015/bravobit-bb-foundation-notifications.mjs +15 -15
  110. package/fesm2015/bravobit-bb-foundation-notifications.mjs.map +1 -1
  111. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs +11 -10
  112. package/fesm2015/bravobit-bb-foundation-rxjs.mjs +1 -0
  113. package/fesm2015/bravobit-bb-foundation-storage.mjs +4 -3
  114. package/fesm2015/bravobit-bb-foundation-table.mjs +23 -22
  115. package/fesm2015/bravobit-bb-foundation.mjs +25 -24
  116. package/fesm2020/bravobit-bb-foundation-auth.mjs +32 -31
  117. package/fesm2020/bravobit-bb-foundation-collections.mjs +27 -26
  118. package/fesm2020/bravobit-bb-foundation-collections.mjs.map +1 -1
  119. package/fesm2020/bravobit-bb-foundation-controls.mjs +121 -0
  120. package/fesm2020/bravobit-bb-foundation-controls.mjs.map +1 -0
  121. package/fesm2020/bravobit-bb-foundation-dashboard.mjs +25 -25
  122. package/fesm2020/bravobit-bb-foundation-dialog.mjs +32 -35
  123. package/fesm2020/bravobit-bb-foundation-dialog.mjs.map +1 -1
  124. package/fesm2020/bravobit-bb-foundation-elements.mjs +85 -85
  125. package/fesm2020/bravobit-bb-foundation-http.mjs +11 -10
  126. package/fesm2020/bravobit-bb-foundation-localize.mjs +20 -19
  127. package/fesm2020/bravobit-bb-foundation-notifications.mjs +15 -15
  128. package/fesm2020/bravobit-bb-foundation-notifications.mjs.map +1 -1
  129. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs +11 -10
  130. package/fesm2020/bravobit-bb-foundation-rxjs.mjs +1 -0
  131. package/fesm2020/bravobit-bb-foundation-storage.mjs +4 -3
  132. package/fesm2020/bravobit-bb-foundation-table.mjs +23 -22
  133. package/fesm2020/bravobit-bb-foundation.mjs +25 -24
  134. package/package.json +9 -1
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@bravobit/bb-foundation/controls" />
5
+ export * from './public_api';
@@ -0,0 +1,27 @@
1
+ import { ElementRef, OnInit, Renderer2 } from '@angular/core';
2
+ import { ControlValueAccessor } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ export declare class BbiCheckbox implements ControlValueAccessor, OnInit {
5
+ private _renderer;
6
+ readonly labelId: string;
7
+ inputElementRef: ElementRef<HTMLInputElement>;
8
+ set disabled(value: unknown);
9
+ set grouped(value: unknown);
10
+ set indeterminate(value: unknown);
11
+ onChange: (newValue: boolean) => void;
12
+ onTouched: () => void;
13
+ _grouped: boolean;
14
+ _disabled: boolean;
15
+ _indeterminate: boolean;
16
+ constructor(_renderer: Renderer2);
17
+ ngOnInit(): void;
18
+ registerOnChange(fn: any): void;
19
+ registerOnTouched(fn: any): void;
20
+ setDisabledState(isDisabled: boolean): void;
21
+ setIndeterminateState(indeterminate: boolean): void;
22
+ writeValue(newValue: boolean): void;
23
+ onChangeEvent(event: Event): void;
24
+ private setProperty;
25
+ static ɵfac: i0.ɵɵFactoryDeclaration<BbiCheckbox, never>;
26
+ static ɵcmp: i0.ɵɵComponentDeclaration<BbiCheckbox, "bbi-checkbox", never, { "grouped": "grouped"; "disabled": "disabled"; "indeterminate": "indeterminate"; }, {}, never, ["*"]>;
27
+ }
@@ -0,0 +1,9 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./checkbox.component";
3
+ import * as i2 from "@angular/common";
4
+ import * as i3 from "@angular/forms";
5
+ export declare class CheckboxModule {
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxModule, never>;
7
+ static ɵmod: i0.ɵɵNgModuleDeclaration<CheckboxModule, [typeof i1.BbiCheckbox], [typeof i2.CommonModule, typeof i3.ReactiveFormsModule], [typeof i1.BbiCheckbox]>;
8
+ static ɵinj: i0.ɵɵInjectorDeclaration<CheckboxModule>;
9
+ }
@@ -0,0 +1,7 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./checkbox/checkbox.module";
3
+ export declare class ControlsModule {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<ControlsModule, never>;
5
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ControlsModule, never, [typeof i1.CheckboxModule], [typeof i1.CheckboxModule]>;
6
+ static ɵinj: i0.ɵɵInjectorDeclaration<ControlsModule>;
7
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "module": "../fesm2015/bravobit-bb-foundation-controls.mjs",
3
+ "es2020": "../fesm2020/bravobit-bb-foundation-controls.mjs",
4
+ "esm2020": "../esm2020/controls/bravobit-bb-foundation-controls.mjs",
5
+ "fesm2020": "../fesm2020/bravobit-bb-foundation-controls.mjs",
6
+ "fesm2015": "../fesm2015/bravobit-bb-foundation-controls.mjs",
7
+ "typings": "bravobit-bb-foundation-controls.d.ts",
8
+ "sideEffects": false,
9
+ "name": "@bravobit/bb-foundation/controls"
10
+ }
@@ -0,0 +1,3 @@
1
+ export * from './lib/checkbox/checkbox.component';
2
+ export * from './lib/checkbox/checkbox.module';
3
+ export * from './lib/controls.module';
@@ -84,9 +84,9 @@ export class AuthInterceptor {
84
84
  return of(null);
85
85
  }
86
86
  }
87
- AuthInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: AuthInterceptor, deps: [{ token: i1.Auth }, { token: i2.AuthConfig, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
88
- AuthInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: AuthInterceptor });
89
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: AuthInterceptor, decorators: [{
87
+ AuthInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: AuthInterceptor, deps: [{ token: i1.Auth }, { token: i2.AuthConfig, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
88
+ AuthInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: AuthInterceptor });
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: AuthInterceptor, decorators: [{
90
90
  type: Injectable
91
91
  }], ctorParameters: function () { return [{ type: i1.Auth }, { type: i2.AuthConfig, decorators: [{
92
92
  type: Optional
@@ -28,16 +28,16 @@ export class AuthModule {
28
28
  };
29
29
  }
30
30
  }
31
- AuthModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: AuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
32
- AuthModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: AuthModule, declarations: [BbAuthenticated,
31
+ AuthModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: AuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
32
+ AuthModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: AuthModule, declarations: [BbAuthenticated,
33
33
  BbRole,
34
34
  BbPermission], imports: [HttpClientModule], exports: [BbAuthenticated,
35
35
  BbRole,
36
36
  BbPermission] });
37
- AuthModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: AuthModule, providers: [
37
+ AuthModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: AuthModule, providers: [
38
38
  { provide: AuthMapper, useClass: AuthMapper }
39
39
  ], imports: [[HttpClientModule]] });
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: AuthModule, decorators: [{
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: AuthModule, decorators: [{
41
41
  type: NgModule,
42
42
  args: [{
43
43
  imports: [HttpClientModule],
@@ -262,9 +262,9 @@ export class Auth {
262
262
  .join('/');
263
263
  }
264
264
  }
265
- Auth.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: Auth, deps: [{ token: i1.Storage }, { token: i2.AuthMapper }, { token: i0.Injector }, { token: i3.Platform }, { token: i4.HttpClient }, { token: i5.AuthConfig, optional: true }, { token: i6.TransferState, optional: true }, { token: i7.HttpConfig, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
266
- Auth.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: Auth });
267
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: Auth, decorators: [{
265
+ Auth.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: Auth, deps: [{ token: i1.Storage }, { token: i2.AuthMapper }, { token: i0.Injector }, { token: i3.Platform }, { token: i4.HttpClient }, { token: i5.AuthConfig, optional: true }, { token: i6.TransferState, optional: true }, { token: i7.HttpConfig, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
266
+ Auth.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: Auth });
267
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: Auth, decorators: [{
268
268
  type: Injectable
269
269
  }], ctorParameters: function () { return [{ type: i1.Storage }, { type: i2.AuthMapper }, { type: i0.Injector }, { type: i3.Platform }, { type: i4.HttpClient }, { type: i5.AuthConfig, decorators: [{
270
270
  type: Optional
@@ -20,9 +20,9 @@ export class BbAuthenticated {
20
20
  this._subscription?.unsubscribe();
21
21
  }
22
22
  }
23
- BbAuthenticated.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BbAuthenticated, deps: [{ token: i1.Auth }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
24
- BbAuthenticated.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: BbAuthenticated, selector: "[bbAuthenticated]", ngImport: i0 });
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BbAuthenticated, decorators: [{
23
+ BbAuthenticated.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbAuthenticated, deps: [{ token: i1.Auth }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
24
+ BbAuthenticated.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.0", type: BbAuthenticated, selector: "[bbAuthenticated]", ngImport: i0 });
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbAuthenticated, decorators: [{
26
26
  type: Directive,
27
27
  args: [{
28
28
  selector: '[bbAuthenticated]'
@@ -65,9 +65,9 @@ export class BbPermission {
65
65
  }
66
66
  }
67
67
  }
68
- BbPermission.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BbPermission, deps: [{ token: i1.Permissions }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
69
- BbPermission.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: BbPermission, selector: "[bbPermission]", inputs: { bbPermission: "bbPermission", bbPermissionElse: "bbPermissionElse" }, ngImport: i0 });
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BbPermission, decorators: [{
68
+ BbPermission.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbPermission, deps: [{ token: i1.Permissions }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
69
+ BbPermission.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.0", type: BbPermission, selector: "[bbPermission]", inputs: { bbPermission: "bbPermission", bbPermissionElse: "bbPermissionElse" }, ngImport: i0 });
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbPermission, decorators: [{
71
71
  type: Directive,
72
72
  args: [{
73
73
  selector: '[bbPermission]'
@@ -24,9 +24,9 @@ export class BbRole {
24
24
  this._subscription?.unsubscribe();
25
25
  }
26
26
  }
27
- BbRole.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BbRole, deps: [{ token: i1.Auth }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
28
- BbRole.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: BbRole, selector: "[bbRole]", inputs: { bbRole: "bbRole" }, ngImport: i0 });
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BbRole, decorators: [{
27
+ BbRole.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbRole, deps: [{ token: i1.Auth }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
28
+ BbRole.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.0", type: BbRole, selector: "[bbRole]", inputs: { bbRole: "bbRole" }, ngImport: i0 });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbRole, decorators: [{
30
30
  type: Directive,
31
31
  args: [{
32
32
  selector: '[bbRole]'
@@ -23,9 +23,9 @@ export class BbAnonymousGuard {
23
23
  return this.canActivate(childRoute, state);
24
24
  }
25
25
  }
26
- BbAnonymousGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BbAnonymousGuard, deps: [{ token: i1.Auth }], target: i0.ɵɵFactoryTarget.Injectable });
27
- BbAnonymousGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BbAnonymousGuard, providedIn: 'root' });
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BbAnonymousGuard, decorators: [{
26
+ BbAnonymousGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbAnonymousGuard, deps: [{ token: i1.Auth }], target: i0.ɵɵFactoryTarget.Injectable });
27
+ BbAnonymousGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbAnonymousGuard, providedIn: 'root' });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbAnonymousGuard, decorators: [{
29
29
  type: Injectable,
30
30
  args: [{
31
31
  providedIn: 'root'
@@ -24,9 +24,9 @@ export class BbAuthenticatedGuard {
24
24
  return this.canActivate(childRoute, state);
25
25
  }
26
26
  }
27
- BbAuthenticatedGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BbAuthenticatedGuard, deps: [{ token: i1.Auth }], target: i0.ɵɵFactoryTarget.Injectable });
28
- BbAuthenticatedGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BbAuthenticatedGuard, providedIn: 'root' });
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BbAuthenticatedGuard, decorators: [{
27
+ BbAuthenticatedGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbAuthenticatedGuard, deps: [{ token: i1.Auth }], target: i0.ɵɵFactoryTarget.Injectable });
28
+ BbAuthenticatedGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbAuthenticatedGuard, providedIn: 'root' });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbAuthenticatedGuard, decorators: [{
30
30
  type: Injectable,
31
31
  args: [{
32
32
  providedIn: 'root'
@@ -27,9 +27,9 @@ export class AuthMapper {
27
27
  return { accessToken: token, refreshToken: refresh_token };
28
28
  }
29
29
  }
30
- AuthMapper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: AuthMapper, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
31
- AuthMapper.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: AuthMapper });
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: AuthMapper, decorators: [{
30
+ AuthMapper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: AuthMapper, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
31
+ AuthMapper.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: AuthMapper });
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: AuthMapper, decorators: [{
33
33
  type: Injectable
34
34
  }] });
35
35
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGVyLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vYXV0aC9zcmMvbGliL2hlbHBlcnMvbWFwcGVyLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQUd6QyxNQUFNLE9BQU8sVUFBVTtJQUR2QjtRQUdJLFVBQVU7UUFDVixPQUFFLEdBQVcsU0FBUyxDQUFDO1FBQ3ZCLGFBQVEsR0FBVyxlQUFlLENBQUM7UUFDbkMsZUFBVSxHQUFXLGFBQWEsQ0FBQztRQUNuQyxXQUFNLEdBQVcsYUFBYSxDQUFDO1FBQy9CLFlBQU8sR0FBVyxjQUFjLENBQUM7UUFDakMsb0JBQWUsR0FBVyxZQUFZLENBQUM7UUFDdkMsa0JBQWEsR0FBVyxxQkFBcUIsQ0FBQztLQXNCakQ7SUFwQkcsSUFBSSxDQUFDLElBQVM7UUFDVixPQUFPLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDdkMsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFTO1FBQ2hCLHVCQUF1QjtRQUN2QixNQUFNLEVBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUMsR0FBRyxJQUFJLENBQUM7UUFFMUMsc0NBQXNDO1FBQ3RDLE9BQU8sRUFBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxTQUFTLENBQUMsSUFBUztRQUNmLHVCQUF1QjtRQUN2QixNQUFNLEVBQUMsS0FBSyxFQUFFLGFBQWEsRUFBQyxHQUFHLElBQUksQ0FBQztRQUVwQyxzQ0FBc0M7UUFDdEMsT0FBTyxFQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBQyxDQUFDO0lBQzdELENBQUM7O3VHQTdCUSxVQUFVOzJHQUFWLFVBQVU7MkZBQVYsVUFBVTtrQkFEdEIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXV0aE1hcHBlclByb3RvY29sfSBmcm9tICcuLi9pbnRlcmZhY2VzL21hcHBlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEF1dGhNYXBwZXIgaW1wbGVtZW50cyBBdXRoTWFwcGVyUHJvdG9jb2wge1xuXG4gICAgLy8gUm91dGVzLlxuICAgIG1lOiBzdHJpbmcgPSAnYXV0aC9tZSc7XG4gICAgcmVnaXN0ZXI6IHN0cmluZyA9ICdhdXRoL3JlZ2lzdGVyJztcbiAgICByZXNlbmRDb2RlOiBzdHJpbmcgPSAnYXV0aC9yZXNlbmQnO1xuICAgIGxvZ291dDogc3RyaW5nID0gJ2F1dGgvbG9nb3V0JztcbiAgICByZWZyZXNoOiBzdHJpbmcgPSAnYXV0aC9yZWZyZXNoJztcbiAgICByZXF1ZXN0UGFzc3dvcmQ6IHN0cmluZyA9ICdhdXRoL3Jlc2V0JztcbiAgICByZXNldFBhc3N3b3JkOiBzdHJpbmcgPSAnYXV0aC9yZXNldC1wYXNzd29yZCc7XG5cbiAgICByb2xlKGRhdGE6IGFueSkge1xuICAgICAgICByZXR1cm4gKGRhdGEgJiYgZGF0YS5yb2xlKSB8fCBudWxsO1xuICAgIH1cblxuICAgIHRvUmVnaXN0ZXIoZGF0YTogYW55KSB7XG4gICAgICAgIC8vIFJldHJpZXZlIHRoZSBwYXJhbXMuXG4gICAgICAgIGNvbnN0IHt0b2tlbiwgcmVmcmVzaF90b2tlbiwgdXNlcn0gPSBkYXRhO1xuXG4gICAgICAgIC8vIE1hcCB0aGUgZGF0YSB0byB0aGUgY29ycmVjdCBmb3JtYXQuXG4gICAgICAgIHJldHVybiB7YWNjZXNzVG9rZW46IHRva2VuLCByZWZyZXNoVG9rZW46IHJlZnJlc2hfdG9rZW4sIHVzZXI6IHVzZXJ9O1xuICAgIH1cblxuICAgIHRvUmVmcmVzaChkYXRhOiBhbnkpIHtcbiAgICAgICAgLy8gUmV0cmlldmUgdGhlIHBhcmFtcy5cbiAgICAgICAgY29uc3Qge3Rva2VuLCByZWZyZXNoX3Rva2VufSA9IGRhdGE7XG5cbiAgICAgICAgLy8gTWFwIHRoZSBkYXRhIHRvIHRoZSBjb3JyZWN0IGZvcm1hdC5cbiAgICAgICAgcmV0dXJuIHthY2Nlc3NUb2tlbjogdG9rZW4sIHJlZnJlc2hUb2tlbjogcmVmcmVzaF90b2tlbn07XG4gICAgfVxuXG59XG4iXX0=
@@ -46,9 +46,9 @@ export class Permissions {
46
46
  return permission?.includes(role) ?? false;
47
47
  }
48
48
  }
49
- Permissions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: Permissions, deps: [{ token: i1.Auth }, { token: i2.AuthConfig, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
50
- Permissions.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: Permissions });
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: Permissions, decorators: [{
49
+ Permissions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: Permissions, deps: [{ token: i1.Auth }, { token: i2.AuthConfig, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
50
+ Permissions.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: Permissions });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: Permissions, decorators: [{
52
52
  type: Injectable
53
53
  }], ctorParameters: function () { return [{ type: i1.Auth }, { type: i2.AuthConfig, decorators: [{
54
54
  type: Optional
@@ -6,8 +6,8 @@ import { NgModule } from '@angular/core';
6
6
  import * as i0 from "@angular/core";
7
7
  export class CollectionsModule {
8
8
  }
9
- CollectionsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CollectionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- CollectionsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CollectionsModule, declarations: [
9
+ CollectionsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: CollectionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ CollectionsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: CollectionsModule, declarations: [
11
11
  // Components.
12
12
  BbCollectionsViewer,
13
13
  BbCollectionsPager,
@@ -24,8 +24,8 @@ CollectionsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versi
24
24
  BbCollectionsEmpty,
25
25
  BbCollectionsError,
26
26
  BbCollectionsInitial] });
27
- CollectionsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CollectionsModule, imports: [[CommonModule]] });
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CollectionsModule, decorators: [{
27
+ CollectionsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: CollectionsModule, imports: [[CommonModule]] });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: CollectionsModule, decorators: [{
29
29
  type: NgModule,
30
30
  args: [{
31
31
  imports: [CommonModule],
@@ -26,10 +26,10 @@ export class BbCollectionsPager {
26
26
  this.data$ = this.cache$.pipe(map(cache => {
27
27
  const pageSize = cache?.pageSize ?? 1;
28
28
  const pageNumber = cache?.pageNumber ?? 1;
29
- const totalPages = cache?.totalPages ?? 1;
30
- const totalEntries = cache?.totalEntries ?? 0;
31
- const fromStart = Math.min((pageSize * (pageNumber - 1)) + 1, totalEntries);
32
- const fromEnd = Math.min((fromStart - 1) + pageSize, totalEntries);
29
+ const totalPages = Math.max(0, cache?.totalPages ?? 1);
30
+ const totalEntries = Math.max(0, cache?.totalEntries ?? 0);
31
+ const fromStart = Math.max(0, Math.min((pageSize * (pageNumber - 1)) + 1, totalEntries));
32
+ const fromEnd = Math.max(0, Math.min((fromStart - 1) + pageSize, totalEntries));
33
33
  const pages = this.filterActivePages(pageNumber, totalPages);
34
34
  const allowNext = pageNumber < totalPages;
35
35
  const allowPrevious = pageNumber > 1;
@@ -110,9 +110,9 @@ export class BbCollectionsPager {
110
110
  .map(page => ({ page, active: pageNumber === page }));
111
111
  }
112
112
  }
113
- BbCollectionsPager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BbCollectionsPager, deps: [], target: i0.ɵɵFactoryTarget.Component });
114
- BbCollectionsPager.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: BbCollectionsPager, selector: "bb-collections-pager", inputs: { label: "label", collection: "collection" }, host: { classAttribute: "bb-collections-pager" }, ngImport: i0, template: "<ng-container *ngIf=\"data$ | async as data\">\n <div [innerHTML]=\"data?.label\"\n class=\"bb-collections-pager-text\">\n </div>\n\n <div class=\"bb-collections-pager-container\">\n <ul class=\"bb-collections-pager-list\">\n <li class=\"bb-collections-pager-item\"\n title=\"Previous page\">\n <button [disabled]=\"!data?.allowPrevious\"\n (click)=\"setPage(data?.pageNumber - 1, data?.totalPages)\"\n class=\"bb-collections-pager-button arrow first\"\n type=\"button\">\n &#8592;\n </button>\n </li>\n <li *ngFor=\"let item of data?.pages\"\n [title]=\"'Page ' + item?.page\"\n class=\"bb-collections-pager-item\">\n <button [class.active]=\"item?.active\"\n (click)=\"setPage(item?.page, data?.totalPages)\"\n class=\"bb-collections-pager-button\"\n type=\"button\">\n {{ item?.page }}\n </button>\n </li>\n <li class=\"bb-collections-pager-item\"\n title=\"Next page\">\n <button [disabled]=\"!data?.allowNext\"\n (click)=\"setPage(data?.pageNumber + 1, data?.totalPages)\"\n class=\"bb-collections-pager-button arrow last\"\n type=\"button\">\n &#8594;\n </button>\n </li>\n </ul>\n </div>\n</ng-container>\n", styles: [".bb-collections-pager{display:flex;align-items:center;flex-direction:column-reverse}.bb-collections-pager-text{display:block;margin-top:10px}.bb-collections-pager-text>strong{font-weight:500}.bb-collections-pager-container{width:100%;display:flex;overflow-x:auto;align-items:center;justify-content:center}.bb-collections-pager-list{display:flex;border-radius:6px;align-items:center;background-color:#fff;border:1px solid rgba(67,90,111,.3);box-shadow:#435a6f24 0 1px 2px inset}.bb-collections-pager-item:not(:last-child){border-right:1px solid #cccccc}.bb-collections-pager-button{height:34px;border:none;display:flex;padding:0 4px;min-width:40px;-webkit-appearance:none;-moz-appearance:none;appearance:none;min-height:34px;-webkit-user-select:none;user-select:none;align-items:center;justify-content:center;background-color:transparent}.bb-collections-pager-button:hover,.bb-collections-pager-button:focus,.bb-collections-pager-button:active,.bb-collections-pager-button.active{color:#1565c0;font-weight:500}.bb-collections-pager-button:hover,.bb-collections-pager-button:focus{background-color:#1565c00d}.bb-collections-pager-button:active,.bb-collections-pager-button.active{background-color:#1565c033}.bb-collections-pager-button:not(.arrow):hover,.bb-collections-pager-button:not(.arrow):focus{outline:1px solid rgba(21,101,192,.5)}.bb-collections-pager-button:not(.arrow):focus,.bb-collections-pager-button:not(.arrow):active{outline:1px solid #1565c0;box-shadow:#1565c066 0 0 0 3px}.bb-collections-pager-button:not(.arrow).active{outline:1px solid #1565c0}.bb-collections-pager-button.arrow{font-weight:500}.bb-collections-pager-button.arrow.first{border-top-left-radius:2px;border-bottom-left-radius:2px}.bb-collections-pager-button.arrow.last{border-top-right-radius:2px;border-bottom-right-radius:2px}.bb-collections-pager-button:disabled{color:#000;outline:none;opacity:.25;cursor:default;pointer-events:none;background-color:transparent}@media only screen and (min-width: 768px){.bb-collections-pager{flex-wrap:wrap;align-items:center;flex-direction:row;justify-content:space-between}.bb-collections-pager-text{margin-top:0}.bb-collections-pager-container{width:auto;overflow-x:unset}}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BbCollectionsPager, decorators: [{
113
+ BbCollectionsPager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbCollectionsPager, deps: [], target: i0.ɵɵFactoryTarget.Component });
114
+ BbCollectionsPager.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", type: BbCollectionsPager, selector: "bb-collections-pager", inputs: { label: "label", collection: "collection" }, host: { classAttribute: "bb-collections-pager" }, ngImport: i0, template: "<ng-container *ngIf=\"data$ | async as data\">\n <div [innerHTML]=\"data?.label\"\n class=\"bb-collections-pager-text\">\n </div>\n\n <div class=\"bb-collections-pager-container\">\n <ul class=\"bb-collections-pager-list\">\n <li class=\"bb-collections-pager-item\"\n title=\"Previous page\">\n <button [disabled]=\"!data?.allowPrevious\"\n (click)=\"setPage(data?.pageNumber - 1, data?.totalPages)\"\n class=\"bb-collections-pager-button arrow first\"\n type=\"button\">\n &#8592;\n </button>\n </li>\n <li *ngFor=\"let item of data?.pages\"\n [title]=\"'Page ' + item?.page\"\n class=\"bb-collections-pager-item\">\n <button [class.active]=\"item?.active\"\n (click)=\"setPage(item?.page, data?.totalPages)\"\n class=\"bb-collections-pager-button\"\n type=\"button\">\n {{ item?.page }}\n </button>\n </li>\n <li class=\"bb-collections-pager-item\"\n title=\"Next page\">\n <button [disabled]=\"!data?.allowNext\"\n (click)=\"setPage(data?.pageNumber + 1, data?.totalPages)\"\n class=\"bb-collections-pager-button arrow last\"\n type=\"button\">\n &#8594;\n </button>\n </li>\n </ul>\n </div>\n</ng-container>\n", styles: [".bb-collections-pager{display:flex;align-items:center;flex-direction:column-reverse}.bb-collections-pager-text{display:block;margin-top:10px}.bb-collections-pager-text>strong{font-weight:500}.bb-collections-pager-container{width:100%;display:flex;overflow-x:auto;align-items:center;justify-content:center}.bb-collections-pager-list{display:flex;border-radius:6px;align-items:center;background-color:#fff;border:1px solid rgba(67,90,111,.3);box-shadow:#435a6f24 0 1px 2px inset}.bb-collections-pager-item:not(:last-child){border-right:1px solid #cccccc}.bb-collections-pager-button{height:34px;border:none;display:flex;padding:0 4px;min-width:40px;-webkit-appearance:none;-moz-appearance:none;appearance:none;min-height:34px;-webkit-user-select:none;user-select:none;align-items:center;justify-content:center;background-color:transparent}.bb-collections-pager-button:hover,.bb-collections-pager-button:focus,.bb-collections-pager-button:active,.bb-collections-pager-button.active{color:#1565c0;font-weight:500}.bb-collections-pager-button:hover,.bb-collections-pager-button:focus{background-color:#1565c00d}.bb-collections-pager-button:active,.bb-collections-pager-button.active{background-color:#1565c033}.bb-collections-pager-button:not(.arrow):hover,.bb-collections-pager-button:not(.arrow):focus{outline:1px solid rgba(21,101,192,.5)}.bb-collections-pager-button:not(.arrow):focus,.bb-collections-pager-button:not(.arrow):active{outline:1px solid #1565c0;box-shadow:#1565c066 0 0 0 3px}.bb-collections-pager-button:not(.arrow).active{outline:1px solid #1565c0}.bb-collections-pager-button.arrow{font-weight:500}.bb-collections-pager-button.arrow.first{border-top-left-radius:2px;border-bottom-left-radius:2px}.bb-collections-pager-button.arrow.last{border-top-right-radius:2px;border-bottom-right-radius:2px}.bb-collections-pager-button:disabled{color:#000;outline:none;opacity:.25;cursor:default;pointer-events:none;background-color:transparent}@media only screen and (min-width: 768px){.bb-collections-pager{flex-wrap:wrap;align-items:center;flex-direction:row;justify-content:space-between}.bb-collections-pager-text{margin-top:0}.bb-collections-pager-container{width:auto;overflow-x:unset}}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbCollectionsPager, decorators: [{
116
116
  type: Component,
117
117
  args: [{ selector: 'bb-collections-pager', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'class': 'bb-collections-pager' }, preserveWhitespaces: false, template: "<ng-container *ngIf=\"data$ | async as data\">\n <div [innerHTML]=\"data?.label\"\n class=\"bb-collections-pager-text\">\n </div>\n\n <div class=\"bb-collections-pager-container\">\n <ul class=\"bb-collections-pager-list\">\n <li class=\"bb-collections-pager-item\"\n title=\"Previous page\">\n <button [disabled]=\"!data?.allowPrevious\"\n (click)=\"setPage(data?.pageNumber - 1, data?.totalPages)\"\n class=\"bb-collections-pager-button arrow first\"\n type=\"button\">\n &#8592;\n </button>\n </li>\n <li *ngFor=\"let item of data?.pages\"\n [title]=\"'Page ' + item?.page\"\n class=\"bb-collections-pager-item\">\n <button [class.active]=\"item?.active\"\n (click)=\"setPage(item?.page, data?.totalPages)\"\n class=\"bb-collections-pager-button\"\n type=\"button\">\n {{ item?.page }}\n </button>\n </li>\n <li class=\"bb-collections-pager-item\"\n title=\"Next page\">\n <button [disabled]=\"!data?.allowNext\"\n (click)=\"setPage(data?.pageNumber + 1, data?.totalPages)\"\n class=\"bb-collections-pager-button arrow last\"\n type=\"button\">\n &#8594;\n </button>\n </li>\n </ul>\n </div>\n</ng-container>\n", styles: [".bb-collections-pager{display:flex;align-items:center;flex-direction:column-reverse}.bb-collections-pager-text{display:block;margin-top:10px}.bb-collections-pager-text>strong{font-weight:500}.bb-collections-pager-container{width:100%;display:flex;overflow-x:auto;align-items:center;justify-content:center}.bb-collections-pager-list{display:flex;border-radius:6px;align-items:center;background-color:#fff;border:1px solid rgba(67,90,111,.3);box-shadow:#435a6f24 0 1px 2px inset}.bb-collections-pager-item:not(:last-child){border-right:1px solid #cccccc}.bb-collections-pager-button{height:34px;border:none;display:flex;padding:0 4px;min-width:40px;-webkit-appearance:none;-moz-appearance:none;appearance:none;min-height:34px;-webkit-user-select:none;user-select:none;align-items:center;justify-content:center;background-color:transparent}.bb-collections-pager-button:hover,.bb-collections-pager-button:focus,.bb-collections-pager-button:active,.bb-collections-pager-button.active{color:#1565c0;font-weight:500}.bb-collections-pager-button:hover,.bb-collections-pager-button:focus{background-color:#1565c00d}.bb-collections-pager-button:active,.bb-collections-pager-button.active{background-color:#1565c033}.bb-collections-pager-button:not(.arrow):hover,.bb-collections-pager-button:not(.arrow):focus{outline:1px solid rgba(21,101,192,.5)}.bb-collections-pager-button:not(.arrow):focus,.bb-collections-pager-button:not(.arrow):active{outline:1px solid #1565c0;box-shadow:#1565c066 0 0 0 3px}.bb-collections-pager-button:not(.arrow).active{outline:1px solid #1565c0}.bb-collections-pager-button.arrow{font-weight:500}.bb-collections-pager-button.arrow.first{border-top-left-radius:2px;border-bottom-left-radius:2px}.bb-collections-pager-button.arrow.last{border-top-right-radius:2px;border-bottom-right-radius:2px}.bb-collections-pager-button:disabled{color:#000;outline:none;opacity:.25;cursor:default;pointer-events:none;background-color:transparent}@media only screen and (min-width: 768px){.bb-collections-pager{flex-wrap:wrap;align-items:center;flex-direction:row;justify-content:space-between}.bb-collections-pager-text{margin-top:0}.bb-collections-pager-container{width:auto;overflow-x:unset}}\n"] }]
118
118
  }], propDecorators: { label: [{
@@ -120,4 +120,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
120
120
  }], collection: [{
121
121
  type: Input
122
122
  }] } });
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbnMtcGFnZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb2xsZWN0aW9ucy9zcmMvbGliL2NvbXBvbmVudHMvY29sbGVjdGlvbnMtcGFnZXIvY29sbGVjdGlvbnMtcGFnZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb2xsZWN0aW9ucy9zcmMvbGliL2NvbXBvbmVudHMvY29sbGVjdGlvbnMtcGFnZXIvY29sbGVjdGlvbnMtcGFnZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTlHLE9BQU8sRUFBQyxlQUFlLEVBQTJCLE1BQU0sTUFBTSxDQUFDO0FBRS9ELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBV25DLE1BQU0sT0FBTyxrQkFBa0I7SUFUL0I7UUFXSSxpQkFBaUI7UUFDUix1QkFBa0IsR0FBVyxDQUFDLENBQUM7UUF3QnhDLFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBbUMsRUFBRSxDQUFDLENBQUM7UUFFbkUsMkJBQTJCO1FBQ25CLFdBQU0sR0FBa0IsSUFBSSxDQUFDO1FBQzdCLGdCQUFXLEdBQStCLElBQUksQ0FBQztRQUMvQyxrQkFBYSxHQUF3QixJQUFJLENBQUM7S0FvSHJEO0lBL0lHLFVBQVU7SUFDVixJQUNJLEtBQUssQ0FBQyxLQUFhO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lB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bkRlc3Ryb3ksIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb2xsZWN0aW9uRGF0YX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9jb2xsZWN0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q29sbGVjdGlvbn0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbic7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JiLWNvbGxlY3Rpb25zLXBhZ2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29sbGVjdGlvbnMtcGFnZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NvbGxlY3Rpb25zLXBhZ2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7J2NsYXNzJzogJ2JiLWNvbGxlY3Rpb25zLXBhZ2VyJ30sXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgQmJDb2xsZWN0aW9uc1BhZ2VyIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgLy8gUmVhZG9ubHkgZGF0YS5cbiAgICByZWFkb25seSBtYXhBbW91bnRPZkJ1dHRvbnM6IG51bWJlciA9IDU7XG5cbiAgICAvLyBJbnB1dHMuXG4gICAgQElucHV0KClcbiAgICBzZXQgbGFiZWwodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9sYWJlbCA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNhY2hlJC5uZXh0KHRoaXMuY2FjaGUkLmdldFZhbHVlKCkpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGNvbGxlY3Rpb24oY29sbGVjdGlvbjogQ29sbGVjdGlvbjx1bmtub3duPiB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5fY29sbGVjdGlvbiA9IGNvbGxlY3Rpb247XG4gICAgICAgIHRoaXMub2JzZXJ2ZUNvbGxlY3Rpb25DaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLy8gRGF0YS5cbiAgICBkYXRhJDogT2JzZXJ2YWJsZTx7XG4gICAgICAgIHRvdGFsUGFnZXM6IG51bWJlcixcbiAgICAgICAgcGFnZU51bWJlcjogbnVtYmVyLFxuICAgICAgICBwYWdlczogeyBwYWdlOiBudW1iZXIsIGFjdGl2ZTogYm9vbGVhbiB9W10sXG4gICAgICAgIGFsbG93TmV4dDogYm9vbGVhblxuICAgICAgICBhbGxvd1ByZXZpb3VzOiBib29sZWFuLFxuICAgICAgICBsYWJlbDogc3RyaW5nXG4gICAgfT47XG4gICAgY2FjaGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYXJ0aWFsPENvbGxlY3Rpb25EYXRhPHVua25vd24+Pj4oe30pO1xuXG4gICAgLy8gU3RhdGUgYW5kIHN1YnNjcmlwdGlvbnMuXG4gICAgcHJpdmF0ZSBfbGFiZWw6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgX2NvbGxlY3Rpb246IENvbGxlY3Rpb248dW5rbm93bj4gfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuZGF0YSQgPSB0aGlzLmNhY2hlJC5waXBlKFxuICAgICAgICAgICAgbWFwKGNhY2hlID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYWdlU2l6ZSA9IGNhY2hlPy5wYWdlU2l6ZSA/PyAxO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhZ2VOdW1iZXIgPSBjYWNoZT8ucGFnZU51bWJlciA/PyAxO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgdG90YWxQYWdlcyA9IGNhY2hlPy50b3RhbFBhZ2VzID8/IDE7XG4gICAgICAgICAgICAgICAgY29uc3QgdG90YWxFbnRyaWVzID0gY2FjaGU/LnRvdGFsRW50cmllcyA/PyAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZyb21TdGFydCA9IE1hdGgubWluKChwYWdlU2l6ZSAqIChwYWdlTnVtYmVyIC0gMSkpICsgMSwgdG90YWxFbnRyaWVzKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmcm9tRW5kID0gTWF0aC5taW4oKGZyb21TdGFydCAtIDEpICsgcGFnZVNpemUsIHRvdGFsRW50cmllcyk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBwYWdlcyA9IHRoaXMuZmlsdGVyQWN0aXZlUGFnZXMocGFnZU51bWJlciwgdG90YWxQYWdlcyk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBhbGxvd05leHQgPSBwYWdlTnVtYmVyIDwgdG90YWxQYWdlcztcbiAgICAgICAgICAgICAgICBjb25zdCBhbGxvd1ByZXZpb3VzID0gcGFnZU51bWJlciA+IDE7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICB0b3RhbFBhZ2VzLFxuICAgICAgICAgICAgICAgICAgICBwYWdlcyxcbiAgICAgICAgICAgICAgICAgICAgcGFnZU51bWJlcixcbiAgICAgICAgICAgICAgICAgICAgYWxsb3dOZXh0LFxuICAgICAgICAgICAgICAgICAgICBhbGxvd1ByZXZpb3VzLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5jYWxjdWxhdGVMYWJlbChmcm9tU3RhcnQsIGZyb21FbmQsIHRvdGFsRW50cmllcylcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHNldFBhZ2UocGFnZU51bWJlcjogbnVtYmVyLCB0b3RhbFBhZ2VzOiBudW1iZXIpIHtcbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBuZXcgdmFsdWUuXG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gTWF0aC5taW4oXG4gICAgICAgICAgICB0b3RhbFBhZ2VzLFxuICAgICAgICAgICAgTWF0aC5tYXgoMSwgcGFnZU51bWJlcilcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBWYWxpZGF0ZSB0aGUgdmFsdWUgaXMgYWN0dWFsbHkgZGlmZmVyZW50LlxuICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSB0aGlzLl9jb2xsZWN0aW9uPy5wYWdlTnVtYmVyQ29udHJvbD8udmFsdWU7XG4gICAgICAgIGlmIChjdXJyZW50VmFsdWUgPT09IG5ld1ZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9jb2xsZWN0aW9uPy5wYWdlTnVtYmVyQ29udHJvbD8uc2V0VmFsdWUocGFnZU51bWJlcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvYnNlcnZlQ29sbGVjdGlvbkNoYW5nZXMoKSB7XG4gICAgICAgIGlmICghdGhpcy5fY29sbGVjdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX3N1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFnZU51bWJlciA9IHRoaXMuX2NvbGxlY3Rpb24/LnBhZ2VOdW1iZXJDb250cm9sPy52YWx1ZTtcbiAgICAgICAgY29uc3QgcGFnZVNpemUgPSB0aGlzLl9jb2xsZWN0aW9uPy5wYWdlU2l6ZUNvbnRyb2w/LnZhbHVlO1xuXG4gICAgICAgIHRoaXMuY2FjaGUkLm5leHQoe3BhZ2VOdW1iZXIsIHBhZ2VTaXplfSk7XG5cbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gdGhpcy5fY29sbGVjdGlvbi5yYXckLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jYWNoZSQubmV4dChkYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVMYWJlbChzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlciwgdG90YWw6IG51bWJlcikge1xuICAgICAgICBjb25zdCBzdGFydFBvaW50ID0gJ1tzdGFydF0nO1xuICAgICAgICBjb25zdCBlbmRQb2ludCA9ICdbZW5kXSc7XG4gICAgICAgIGNvbnN0IHRvdGFsUG9pbnQgPSAnW3RvdGFsXSc7XG4gICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5fbGFiZWwgPz8gYFNob3dpbmcgJHtzdGFydFBvaW50fSB0byAke2VuZFBvaW50fSBvZiAke3RvdGFsUG9pbnR9IHJlc3VsdHNgO1xuXG4gICAgICAgIHJldHVybiBsYWJlbFxuICAgICAgICAgICAgLnJlcGxhY2Uoc3RhcnRQb2ludCwgYDxzdHJvbmc+JHtzdGFydH08L3N0cm9uZz5gKVxuICAgICAgICAgICAgLnJlcGxhY2UoZW5kUG9pbnQsIGA8c3Ryb25nPiR7ZW5kfTwvc3Ryb25nPmApXG4gICAgICAgICAgICAucmVwbGFjZSh0b3RhbFBvaW50LCBgPHN0cm9uZz4ke3RvdGFsfTwvc3Ryb25nPmApO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlUGFnZXMocGFnZU51bWJlcjogbnVtYmVyLCB0b3RhbFBhZ2VzOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgbWluID0gMTtcbiAgICAgICAgY29uc3QgbWF4ID0gdG90YWxQYWdlcztcbiAgICAgICAgY29uc3QgYW1vdW50ID0gTWF0aC5tYXgoMSwgdGhpcy5tYXhBbW91bnRPZkJ1dHRvbnMpO1xuXG4gICAgICAgIGNvbnN0IGRhdGEgPSBBcnJheShhbW91bnQpXG4gICAgICAgICAgICAuZmlsbCgwKVxuICAgICAgICAgICAgLm1hcCgoXywgaW5kZXgpID0+IHBhZ2VOdW1iZXIgKyAoaW5kZXggLSAxKSk7XG5cbiAgICAgICAgLy8gVmFsaWRhdGUgaWYgdGhlIG1pbmltdW0gdmFsdWUgbGVzcyB0aGFuXG4gICAgICAgIC8vIHRoZSBmaXJzdCB2YWx1ZS5cbiAgICAgICAgaWYgKGRhdGFbMF0gPCBtaW4pIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRhLm1hcChpdGVtID0+IGl0ZW0gKyAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgZGlmZmVyZW5jZSB3aXRoIHRoZSBtYXhcbiAgICAgICAgLy8gaWYgdGhpcyB2YWx1ZSBpcyBoaWdoZXIgdGhhbiAwIHdlIHNob3VsZCBtaW51cyBpdC5cbiAgICAgICAgY29uc3QgbGFzdFZhbHVlSW5BcnJheSA9IGRhdGFbZGF0YS5sZW5ndGggLSAxXTtcbiAgICAgICAgY29uc3QgZGlmZmVyZW5jZVdpdGhNYXggPSBsYXN0VmFsdWVJbkFycmF5IC0gbWF4O1xuICAgICAgICBpZiAoZGlmZmVyZW5jZVdpdGhNYXggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0YS5tYXAoaXRlbSA9PiBpdGVtIC0gZGlmZmVyZW5jZVdpdGhNYXgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSnVzdCByZXR1cm4gdGhlIGRlZmF1bHQgZGF0YS5cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaWx0ZXJBY3RpdmVQYWdlcyhwYWdlTnVtYmVyOiBudW1iZXIsIHRvdGFsUGFnZXM6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5jYWxjdWxhdGVQYWdlcyhwYWdlTnVtYmVyLCB0b3RhbFBhZ2VzKVxuICAgICAgICAgICAgLmZpbHRlcihwYWdlID0+IHBhZ2UgPiAwICYmIHBhZ2UgPD0gdG90YWxQYWdlcylcbiAgICAgICAgICAgIC5tYXAocGFnZSA9PiAoe3BhZ2UsIGFjdGl2ZTogcGFnZU51bWJlciA9PT0gcGFnZX0pKTtcbiAgICB9XG5cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhJCB8IGFzeW5jIGFzIGRhdGFcIj5cbiAgICA8ZGl2IFtpbm5lckhUTUxdPVwiZGF0YT8ubGFiZWxcIlxuICAgICAgICAgY2xhc3M9XCJiYi1jb2xsZWN0aW9ucy1wYWdlci10ZXh0XCI+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYmItY29sbGVjdGlvbnMtcGFnZXItY29udGFpbmVyXCI+XG4gICAgICAgIDx1bCBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXBhZ2VyLWxpc3RcIj5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXBhZ2VyLWl0ZW1cIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwiUHJldmlvdXMgcGFnZVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cIiFkYXRhPy5hbGxvd1ByZXZpb3VzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRQYWdlKGRhdGE/LnBhZ2VOdW1iZXIgLSAxLCBkYXRhPy50b3RhbFBhZ2VzKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXBhZ2VyLWJ1dHRvbiBhcnJvdyBmaXJzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICYjODU5MjtcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YT8ucGFnZXNcIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCInUGFnZSAnICsgaXRlbT8ucGFnZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJiYi1jb2xsZWN0aW9ucy1wYWdlci1pdGVtXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBbY2xhc3MuYWN0aXZlXT1cIml0ZW0/LmFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0UGFnZShpdGVtPy5wYWdlLCBkYXRhPy50b3RhbFBhZ2VzKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXBhZ2VyLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0/LnBhZ2UgfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJiYi1jb2xsZWN0aW9ucy1wYWdlci1pdGVtXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cIk5leHQgcGFnZVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cIiFkYXRhPy5hbGxvd05leHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldFBhZ2UoZGF0YT8ucGFnZU51bWJlciArIDEsIGRhdGE/LnRvdGFsUGFnZXMpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmItY29sbGVjdGlvbnMtcGFnZXItYnV0dG9uIGFycm93IGxhc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICAmIzg1OTQ7XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbnMtcGFnZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb2xsZWN0aW9ucy9zcmMvbGliL2NvbXBvbmVudHMvY29sbGVjdGlvbnMtcGFnZXIvY29sbGVjdGlvbnMtcGFnZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb2xsZWN0aW9ucy9zcmMvbGliL2NvbXBvbmVudHMvY29sbGVjdGlvbnMtcGFnZXIvY29sbGVjdGlvbnMtcGFnZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTlHLE9BQU8sRUFBQyxlQUFlLEVBQTJCLE1BQU0sTUFBTSxDQUFDO0FBRS9ELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBV25DLE1BQU0sT0FBTyxrQkFBa0I7SUFUL0I7UUFXSSxpQkFBaUI7UUFDUix1QkFBa0IsR0FBVyxDQUFDLENBQUM7UUF3QnhDLFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBbUMsRUFBRSxDQUFDLENBQUM7UUFFbkUsMkJBQTJCO1FBQ25CLFdBQU0sR0FBa0IsSUFBSSxDQUFDO1FBQzdCLGdCQUFXLEdBQStCLElBQUksQ0FBQztRQUMvQyxrQkFBYSxHQUF3QixJQUFJLENBQUM7S0FvSHJEO0lBL0lHLFVBQVU7SUFDVixJQUNJLEtBQUssQ0FBQyxLQUFhO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lB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QkFBc0IsRUFBQyx1QkFDbEIsS0FBSzs4QkFTdEIsS0FBSztzQkFEUixLQUFLO2dCQU9GLFVBQVU7c0JBRGIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbGxlY3Rpb25EYXRhfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2NvbGxlY3Rpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDb2xsZWN0aW9ufSBmcm9tICcuLi8uLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYmItY29sbGVjdGlvbnMtcGFnZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2xsZWN0aW9ucy1wYWdlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29sbGVjdGlvbnMtcGFnZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHsnY2xhc3MnOiAnYmItY29sbGVjdGlvbnMtcGFnZXInfSxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBCYkNvbGxlY3Rpb25zUGFnZXIgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICAvLyBSZWFkb25seSBkYXRhLlxuICAgIHJlYWRvbmx5IG1heEFtb3VudE9mQnV0dG9uczogbnVtYmVyID0gNTtcblxuICAgIC8vIElucHV0cy5cbiAgICBASW5wdXQoKVxuICAgIHNldCBsYWJlbCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2xhYmVsID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY2FjaGUkLm5leHQodGhpcy5jYWNoZSQuZ2V0VmFsdWUoKSk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgY29sbGVjdGlvbihjb2xsZWN0aW9uOiBDb2xsZWN0aW9uPHVua25vd24+IHwgbnVsbCkge1xuICAgICAgICB0aGlzLl9jb2xsZWN0aW9uID0gY29sbGVjdGlvbjtcbiAgICAgICAgdGhpcy5vYnNlcnZlQ29sbGVjdGlvbkNoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvLyBEYXRhLlxuICAgIGRhdGEkOiBPYnNlcnZhYmxlPHtcbiAgICAgICAgdG90YWxQYWdlczogbnVtYmVyLFxuICAgICAgICBwYWdlTnVtYmVyOiBudW1iZXIsXG4gICAgICAgIHBhZ2VzOiB7IHBhZ2U6IG51bWJlciwgYWN0aXZlOiBib29sZWFuIH1bXSxcbiAgICAgICAgYWxsb3dOZXh0OiBib29sZWFuXG4gICAgICAgIGFsbG93UHJldmlvdXM6IGJvb2xlYW4sXG4gICAgICAgIGxhYmVsOiBzdHJpbmdcbiAgICB9PjtcbiAgICBjYWNoZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFBhcnRpYWw8Q29sbGVjdGlvbkRhdGE8dW5rbm93bj4+Pih7fSk7XG5cbiAgICAvLyBTdGF0ZSBhbmQgc3Vic2NyaXB0aW9ucy5cbiAgICBwcml2YXRlIF9sYWJlbDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBfY29sbGVjdGlvbjogQ29sbGVjdGlvbjx1bmtub3duPiB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5kYXRhJCA9IHRoaXMuY2FjaGUkLnBpcGUoXG4gICAgICAgICAgICBtYXAoY2FjaGUgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhZ2VTaXplID0gY2FjaGU/LnBhZ2VTaXplID8/IDE7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFnZU51bWJlciA9IGNhY2hlPy5wYWdlTnVtYmVyID8/IDE7XG5cbiAgICAgICAgICAgICAgICBjb25zdCB0b3RhbFBhZ2VzID0gTWF0aC5tYXgoMCwgY2FjaGU/LnRvdGFsUGFnZXMgPz8gMSk7XG4gICAgICAgICAgICAgICAgY29uc3QgdG90YWxFbnRyaWVzID0gTWF0aC5tYXgoMCwgY2FjaGU/LnRvdGFsRW50cmllcyA/PyAwKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmcm9tU3RhcnQgPSBNYXRoLm1heCgwLCBNYXRoLm1pbigocGFnZVNpemUgKiAocGFnZU51bWJlciAtIDEpKSArIDEsIHRvdGFsRW50cmllcykpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZyb21FbmQgPSBNYXRoLm1heCgwLCBNYXRoLm1pbigoZnJvbVN0YXJ0IC0gMSkgKyBwYWdlU2l6ZSwgdG90YWxFbnRyaWVzKSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBwYWdlcyA9IHRoaXMuZmlsdGVyQWN0aXZlUGFnZXMocGFnZU51bWJlciwgdG90YWxQYWdlcyk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBhbGxvd05leHQgPSBwYWdlTnVtYmVyIDwgdG90YWxQYWdlcztcbiAgICAgICAgICAgICAgICBjb25zdCBhbGxvd1ByZXZpb3VzID0gcGFnZU51bWJlciA+IDE7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICB0b3RhbFBhZ2VzLFxuICAgICAgICAgICAgICAgICAgICBwYWdlcyxcbiAgICAgICAgICAgICAgICAgICAgcGFnZU51bWJlcixcbiAgICAgICAgICAgICAgICAgICAgYWxsb3dOZXh0LFxuICAgICAgICAgICAgICAgICAgICBhbGxvd1ByZXZpb3VzLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5jYWxjdWxhdGVMYWJlbChmcm9tU3RhcnQsIGZyb21FbmQsIHRvdGFsRW50cmllcylcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHNldFBhZ2UocGFnZU51bWJlcjogbnVtYmVyLCB0b3RhbFBhZ2VzOiBudW1iZXIpIHtcbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBuZXcgdmFsdWUuXG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gTWF0aC5taW4oXG4gICAgICAgICAgICB0b3RhbFBhZ2VzLFxuICAgICAgICAgICAgTWF0aC5tYXgoMSwgcGFnZU51bWJlcilcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBWYWxpZGF0ZSB0aGUgdmFsdWUgaXMgYWN0dWFsbHkgZGlmZmVyZW50LlxuICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSB0aGlzLl9jb2xsZWN0aW9uPy5wYWdlTnVtYmVyQ29udHJvbD8udmFsdWU7XG4gICAgICAgIGlmIChjdXJyZW50VmFsdWUgPT09IG5ld1ZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9jb2xsZWN0aW9uPy5wYWdlTnVtYmVyQ29udHJvbD8uc2V0VmFsdWUocGFnZU51bWJlcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvYnNlcnZlQ29sbGVjdGlvbkNoYW5nZXMoKSB7XG4gICAgICAgIGlmICghdGhpcy5fY29sbGVjdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX3N1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFnZU51bWJlciA9IHRoaXMuX2NvbGxlY3Rpb24/LnBhZ2VOdW1iZXJDb250cm9sPy52YWx1ZTtcbiAgICAgICAgY29uc3QgcGFnZVNpemUgPSB0aGlzLl9jb2xsZWN0aW9uPy5wYWdlU2l6ZUNvbnRyb2w/LnZhbHVlO1xuXG4gICAgICAgIHRoaXMuY2FjaGUkLm5leHQoe3BhZ2VOdW1iZXIsIHBhZ2VTaXplfSk7XG5cbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gdGhpcy5fY29sbGVjdGlvbi5yYXckLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jYWNoZSQubmV4dChkYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVMYWJlbChzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlciwgdG90YWw6IG51bWJlcikge1xuICAgICAgICBjb25zdCBzdGFydFBvaW50ID0gJ1tzdGFydF0nO1xuICAgICAgICBjb25zdCBlbmRQb2ludCA9ICdbZW5kXSc7XG4gICAgICAgIGNvbnN0IHRvdGFsUG9pbnQgPSAnW3RvdGFsXSc7XG4gICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5fbGFiZWwgPz8gYFNob3dpbmcgJHtzdGFydFBvaW50fSB0byAke2VuZFBvaW50fSBvZiAke3RvdGFsUG9pbnR9IHJlc3VsdHNgO1xuXG4gICAgICAgIHJldHVybiBsYWJlbFxuICAgICAgICAgICAgLnJlcGxhY2Uoc3RhcnRQb2ludCwgYDxzdHJvbmc+JHtzdGFydH08L3N0cm9uZz5gKVxuICAgICAgICAgICAgLnJlcGxhY2UoZW5kUG9pbnQsIGA8c3Ryb25nPiR7ZW5kfTwvc3Ryb25nPmApXG4gICAgICAgICAgICAucmVwbGFjZSh0b3RhbFBvaW50LCBgPHN0cm9uZz4ke3RvdGFsfTwvc3Ryb25nPmApO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlUGFnZXMocGFnZU51bWJlcjogbnVtYmVyLCB0b3RhbFBhZ2VzOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgbWluID0gMTtcbiAgICAgICAgY29uc3QgbWF4ID0gdG90YWxQYWdlcztcbiAgICAgICAgY29uc3QgYW1vdW50ID0gTWF0aC5tYXgoMSwgdGhpcy5tYXhBbW91bnRPZkJ1dHRvbnMpO1xuXG4gICAgICAgIGNvbnN0IGRhdGEgPSBBcnJheShhbW91bnQpXG4gICAgICAgICAgICAuZmlsbCgwKVxuICAgICAgICAgICAgLm1hcCgoXywgaW5kZXgpID0+IHBhZ2VOdW1iZXIgKyAoaW5kZXggLSAxKSk7XG5cbiAgICAgICAgLy8gVmFsaWRhdGUgaWYgdGhlIG1pbmltdW0gdmFsdWUgbGVzcyB0aGFuXG4gICAgICAgIC8vIHRoZSBmaXJzdCB2YWx1ZS5cbiAgICAgICAgaWYgKGRhdGFbMF0gPCBtaW4pIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRhLm1hcChpdGVtID0+IGl0ZW0gKyAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgZGlmZmVyZW5jZSB3aXRoIHRoZSBtYXhcbiAgICAgICAgLy8gaWYgdGhpcyB2YWx1ZSBpcyBoaWdoZXIgdGhhbiAwIHdlIHNob3VsZCBtaW51cyBpdC5cbiAgICAgICAgY29uc3QgbGFzdFZhbHVlSW5BcnJheSA9IGRhdGFbZGF0YS5sZW5ndGggLSAxXTtcbiAgICAgICAgY29uc3QgZGlmZmVyZW5jZVdpdGhNYXggPSBsYXN0VmFsdWVJbkFycmF5IC0gbWF4O1xuICAgICAgICBpZiAoZGlmZmVyZW5jZVdpdGhNYXggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0YS5tYXAoaXRlbSA9PiBpdGVtIC0gZGlmZmVyZW5jZVdpdGhNYXgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSnVzdCByZXR1cm4gdGhlIGRlZmF1bHQgZGF0YS5cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaWx0ZXJBY3RpdmVQYWdlcyhwYWdlTnVtYmVyOiBudW1iZXIsIHRvdGFsUGFnZXM6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5jYWxjdWxhdGVQYWdlcyhwYWdlTnVtYmVyLCB0b3RhbFBhZ2VzKVxuICAgICAgICAgICAgLmZpbHRlcihwYWdlID0+IHBhZ2UgPiAwICYmIHBhZ2UgPD0gdG90YWxQYWdlcylcbiAgICAgICAgICAgIC5tYXAocGFnZSA9PiAoe3BhZ2UsIGFjdGl2ZTogcGFnZU51bWJlciA9PT0gcGFnZX0pKTtcbiAgICB9XG5cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhJCB8IGFzeW5jIGFzIGRhdGFcIj5cbiAgICA8ZGl2IFtpbm5lckhUTUxdPVwiZGF0YT8ubGFiZWxcIlxuICAgICAgICAgY2xhc3M9XCJiYi1jb2xsZWN0aW9ucy1wYWdlci10ZXh0XCI+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYmItY29sbGVjdGlvbnMtcGFnZXItY29udGFpbmVyXCI+XG4gICAgICAgIDx1bCBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXBhZ2VyLWxpc3RcIj5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXBhZ2VyLWl0ZW1cIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwiUHJldmlvdXMgcGFnZVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cIiFkYXRhPy5hbGxvd1ByZXZpb3VzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRQYWdlKGRhdGE/LnBhZ2VOdW1iZXIgLSAxLCBkYXRhPy50b3RhbFBhZ2VzKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXBhZ2VyLWJ1dHRvbiBhcnJvdyBmaXJzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICYjODU5MjtcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YT8ucGFnZXNcIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCInUGFnZSAnICsgaXRlbT8ucGFnZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJiYi1jb2xsZWN0aW9ucy1wYWdlci1pdGVtXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBbY2xhc3MuYWN0aXZlXT1cIml0ZW0/LmFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0UGFnZShpdGVtPy5wYWdlLCBkYXRhPy50b3RhbFBhZ2VzKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXBhZ2VyLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0/LnBhZ2UgfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJiYi1jb2xsZWN0aW9ucy1wYWdlci1pdGVtXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cIk5leHQgcGFnZVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cIiFkYXRhPy5hbGxvd05leHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldFBhZ2UoZGF0YT8ucGFnZU51bWJlciArIDEsIGRhdGE/LnRvdGFsUGFnZXMpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmItY29sbGVjdGlvbnMtcGFnZXItYnV0dG9uIGFycm93IGxhc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICAmIzg1OTQ7XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -8,9 +8,9 @@ export class BbCollectionsViewer {
8
8
  this.collection = null;
9
9
  }
10
10
  }
11
- BbCollectionsViewer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BbCollectionsViewer, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
- BbCollectionsViewer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: BbCollectionsViewer, selector: "[bb-collections-viewer]", inputs: { collection: "collection" }, host: { classAttribute: "bb-collections-viewer" }, queries: [{ propertyName: "dataTemplate", first: true, predicate: BbCollectionsData, descendants: true, read: TemplateRef }, { propertyName: "emptyTemplate", first: true, predicate: BbCollectionsEmpty, descendants: true, read: TemplateRef }, { propertyName: "errorTemplate", first: true, predicate: BbCollectionsError, descendants: true, read: TemplateRef }, { propertyName: "initialTemplate", first: true, predicate: BbCollectionsInitial, descendants: true, read: TemplateRef }], ngImport: i0, template: "<ng-container *ngIf=\"collection?.data$ | async as data\"\n [ngSwitch]=\"data?.state\">\n <ng-container *ngSwitchDefault>\n <ng-container *ngTemplateOutlet=\"dataTemplate; context: {items: data?.response?.data}\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'initial'\">\n <ng-container *ngTemplateOutlet=\"initialTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'empty'\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate; context: {query: data?.request?.query}\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'error'\">\n <ng-container *ngTemplateOutlet=\"errorTemplate; context: {error: data?.error}\"></ng-container>\n </ng-container>\n</ng-container>\n", styles: [".bb-collections-viewer{display:block}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "async": i1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BbCollectionsViewer, decorators: [{
11
+ BbCollectionsViewer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbCollectionsViewer, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
+ BbCollectionsViewer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", type: BbCollectionsViewer, selector: "[bb-collections-viewer]", inputs: { collection: "collection" }, host: { classAttribute: "bb-collections-viewer" }, queries: [{ propertyName: "dataTemplate", first: true, predicate: BbCollectionsData, descendants: true, read: TemplateRef }, { propertyName: "emptyTemplate", first: true, predicate: BbCollectionsEmpty, descendants: true, read: TemplateRef }, { propertyName: "errorTemplate", first: true, predicate: BbCollectionsError, descendants: true, read: TemplateRef }, { propertyName: "initialTemplate", first: true, predicate: BbCollectionsInitial, descendants: true, read: TemplateRef }], ngImport: i0, template: "<ng-container *ngIf=\"collection?.data$ | async as data\"\n [ngSwitch]=\"data?.state\">\n <ng-container *ngSwitchDefault>\n <ng-container *ngTemplateOutlet=\"dataTemplate; context: {items: data?.response?.data}\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'initial'\">\n <ng-container *ngTemplateOutlet=\"initialTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'empty'\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate; context: {query: data?.request?.query}\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'error'\">\n <ng-container *ngTemplateOutlet=\"errorTemplate; context: {error: data?.error}\"></ng-container>\n </ng-container>\n</ng-container>\n", styles: [".bb-collections-viewer{display:block}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "async": i1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbCollectionsViewer, decorators: [{
14
14
  type: Component,
15
15
  args: [{ selector: '[bb-collections-viewer]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'class': 'bb-collections-viewer' }, preserveWhitespaces: false, template: "<ng-container *ngIf=\"collection?.data$ | async as data\"\n [ngSwitch]=\"data?.state\">\n <ng-container *ngSwitchDefault>\n <ng-container *ngTemplateOutlet=\"dataTemplate; context: {items: data?.response?.data}\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'initial'\">\n <ng-container *ngTemplateOutlet=\"initialTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'empty'\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate; context: {query: data?.request?.query}\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'error'\">\n <ng-container *ngTemplateOutlet=\"errorTemplate; context: {error: data?.error}\"></ng-container>\n </ng-container>\n</ng-container>\n", styles: [".bb-collections-viewer{display:block}\n"] }]
16
16
  }], propDecorators: { dataTemplate: [{
@@ -2,9 +2,9 @@ import { Directive } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class BbCollectionsData {
4
4
  }
5
- BbCollectionsData.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BbCollectionsData, deps: [], target: i0.ɵɵFactoryTarget.Directive });
6
- BbCollectionsData.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: BbCollectionsData, selector: "[bbCollectionsData]", ngImport: i0 });
7
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BbCollectionsData, decorators: [{
5
+ BbCollectionsData.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbCollectionsData, deps: [], target: i0.ɵɵFactoryTarget.Directive });
6
+ BbCollectionsData.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.0", type: BbCollectionsData, selector: "[bbCollectionsData]", ngImport: i0 });
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbCollectionsData, decorators: [{
8
8
  type: Directive,
9
9
  args: [{
10
10
  selector: '[bbCollectionsData]'
@@ -12,9 +12,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
12
12
  }] });
13
13
  export class BbCollectionsEmpty {
14
14
  }
15
- BbCollectionsEmpty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BbCollectionsEmpty, deps: [], target: i0.ɵɵFactoryTarget.Directive });
16
- BbCollectionsEmpty.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: BbCollectionsEmpty, selector: "[bbCollectionsEmpty]", ngImport: i0 });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BbCollectionsEmpty, decorators: [{
15
+ BbCollectionsEmpty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbCollectionsEmpty, deps: [], target: i0.ɵɵFactoryTarget.Directive });
16
+ BbCollectionsEmpty.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.0", type: BbCollectionsEmpty, selector: "[bbCollectionsEmpty]", ngImport: i0 });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbCollectionsEmpty, decorators: [{
18
18
  type: Directive,
19
19
  args: [{
20
20
  selector: '[bbCollectionsEmpty]'
@@ -22,9 +22,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
22
22
  }] });
23
23
  export class BbCollectionsError {
24
24
  }
25
- BbCollectionsError.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BbCollectionsError, deps: [], target: i0.ɵɵFactoryTarget.Directive });
26
- BbCollectionsError.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: BbCollectionsError, selector: "[bbCollectionsError]", ngImport: i0 });
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BbCollectionsError, decorators: [{
25
+ BbCollectionsError.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbCollectionsError, deps: [], target: i0.ɵɵFactoryTarget.Directive });
26
+ BbCollectionsError.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.0", type: BbCollectionsError, selector: "[bbCollectionsError]", ngImport: i0 });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbCollectionsError, decorators: [{
28
28
  type: Directive,
29
29
  args: [{
30
30
  selector: '[bbCollectionsError]'
@@ -32,9 +32,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
32
32
  }] });
33
33
  export class BbCollectionsInitial {
34
34
  }
35
- BbCollectionsInitial.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BbCollectionsInitial, deps: [], target: i0.ɵɵFactoryTarget.Directive });
36
- BbCollectionsInitial.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: BbCollectionsInitial, selector: "[bbCollectionsInitial]", ngImport: i0 });
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BbCollectionsInitial, decorators: [{
35
+ BbCollectionsInitial.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbCollectionsInitial, deps: [], target: i0.ɵɵFactoryTarget.Directive });
36
+ BbCollectionsInitial.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.0", type: BbCollectionsInitial, selector: "[bbCollectionsInitial]", ngImport: i0 });
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbCollectionsInitial, decorators: [{
38
38
  type: Directive,
39
39
  args: [{
40
40
  selector: '[bbCollectionsInitial]'
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public_api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhdm9iaXQtYmItZm91bmRhdGlvbi1jb250cm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vY29udHJvbHMvc3JjL2JyYXZvYml0LWJiLWZvdW5kYXRpb24tY29udHJvbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
@@ -0,0 +1,86 @@
1
+ import { ChangeDetectionStrategy, Component, forwardRef, Input, ViewChild, ViewEncapsulation } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { coerceBooleanProperty } from '@bravobit/bb-foundation';
4
+ import * as i0 from "@angular/core";
5
+ let nextUniqueId = 0;
6
+ export class BbiCheckbox {
7
+ constructor(_renderer) {
8
+ this._renderer = _renderer;
9
+ // Readonly data.
10
+ this.labelId = `bbi-checkbox-${nextUniqueId++}`;
11
+ // Methods.
12
+ this.onChange = () => ({});
13
+ this.onTouched = () => ({});
14
+ // State.
15
+ this._grouped = false;
16
+ this._disabled = false;
17
+ this._indeterminate = false;
18
+ }
19
+ // Inputs.
20
+ set disabled(value) {
21
+ const disabled = coerceBooleanProperty(value);
22
+ this.setDisabledState(disabled);
23
+ }
24
+ set grouped(value) {
25
+ this._grouped = coerceBooleanProperty(value);
26
+ }
27
+ set indeterminate(value) {
28
+ const indeterminate = coerceBooleanProperty(value);
29
+ this.setIndeterminateState(indeterminate);
30
+ }
31
+ ngOnInit() {
32
+ this.setDisabledState(this._disabled);
33
+ this.setIndeterminateState(this._indeterminate);
34
+ }
35
+ registerOnChange(fn) {
36
+ this.onChange = fn;
37
+ }
38
+ registerOnTouched(fn) {
39
+ this.onTouched = fn;
40
+ }
41
+ setDisabledState(isDisabled) {
42
+ this._disabled = isDisabled;
43
+ this.setProperty('disabled', this._disabled);
44
+ }
45
+ setIndeterminateState(indeterminate) {
46
+ this._indeterminate = indeterminate;
47
+ this.setProperty('indeterminate', this._indeterminate);
48
+ }
49
+ writeValue(newValue) {
50
+ this.setProperty('checked', newValue);
51
+ }
52
+ onChangeEvent(event) {
53
+ this.onChange(event?.target?.checked);
54
+ }
55
+ setProperty(key, value) {
56
+ const element = this.inputElementRef?.nativeElement;
57
+ if (!element) {
58
+ return;
59
+ }
60
+ this._renderer.setProperty(element, key, value);
61
+ }
62
+ }
63
+ BbiCheckbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbiCheckbox, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
64
+ BbiCheckbox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", type: BbiCheckbox, selector: "bbi-checkbox", inputs: { grouped: "grouped", disabled: "disabled", indeterminate: "indeterminate" }, host: { properties: { "class.grouped": "_grouped", "class.indeterminate": "_indeterminate" }, classAttribute: "bbi-checkbox" }, providers: [
65
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BbiCheckbox), multi: true }
66
+ ], viewQueries: [{ propertyName: "inputElementRef", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: "<input #input\n [id]=\"labelId\"\n (change)=\"onChangeEvent($event)\"\n (blur)=\"onTouched()\"\n class=\"bbi-checkbox-input\"\n type=\"checkbox\">\n<label [attr.for]=\"labelId\"\n class=\"bbi-checkbox-label\">\n <span class=\"bbi-checkbox-text\"\n dir=\"auto\"><ng-content></ng-content></span>\n</label>\n", styles: [".bbi-checkbox{display:block}.bbi-checkbox+.bbi-checkbox{margin-top:3px}.bbi-checkbox.grouped{margin-bottom:20px}.bbi-checkbox-input{border:0;width:1px;padding:0;height:1px;margin:-1px;overflow:hidden;position:absolute;visibility:inherit;white-space:nowrap;clip:rect(0,0,0,0)}.bbi-checkbox-input:checked+.bbi-checkbox-label:before,.bbi-checkbox-input:indeterminate+.bbi-checkbox-label:before{border:1px solid #1565c0;background-color:#1565c0}.bbi-checkbox-input:checked+.bbi-checkbox-label:after,.bbi-checkbox-input:indeterminate+.bbi-checkbox-label:after{opacity:1;transform:scale(1) rotate(-45deg)}.bbi-checkbox-input:indeterminate+.bbi-checkbox-label:after{top:-1px;left:5px;width:10px;border-left:0 solid white;border-bottom:2px solid white;transform:scale(1) rotate(0)}.bbi-checkbox-input:focus+.bbi-checkbox-label:before{outline-color:#1565c0}.bbi-checkbox-input:disabled+.bbi-checkbox-label{color:#c6c6c6;cursor:not-allowed}.bbi-checkbox-input:disabled+.bbi-checkbox-label:before{border-color:#c6c6c6}.bbi-checkbox-input:checked:disabled+.bbi-checkbox-label:before,.bbi-checkbox-input:indeterminate:disabled+.bbi-checkbox-label:before{background-color:#c6c6c6}.bbi-checkbox-label{border:0;margin:0;display:flex;cursor:pointer;font-size:16px;font-weight:400;line-height:1.28;-webkit-user-select:none;user-select:none;position:relative;padding-left:20px;font-family:inherit;vertical-align:initial}.bbi-checkbox-label:before{left:0;width:20px;content:\"\";height:20px;position:absolute;border-radius:4px;outline-offset:1px;border:1px solid #111111;background-color:initial;outline:2px solid transparent;transition:outline-color .2s cubic-bezier(0,0,.2,1),background-color .18s cubic-bezier(0,0,.2,1),border-color .18s cubic-bezier(0,0,.2,1)}.bbi-checkbox-label:after{left:4px;opacity:0;width:12px;height:6px;content:\"\";margin-top:6px;background:none;position:absolute;transform-origin:center;border-left:2px solid white;border-bottom:2px solid white;transform:scale(.85) rotate(-60deg);transition:opacity .12s cubic-bezier(0,0,.2,1),transform .18s cubic-bezier(0,0,.2,1)}.bbi-checkbox-text{padding-left:6px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbiCheckbox, decorators: [{
68
+ type: Component,
69
+ args: [{ selector: 'bbi-checkbox', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
70
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BbiCheckbox), multi: true }
71
+ ], host: {
72
+ 'class': 'bbi-checkbox',
73
+ '[class.grouped]': '_grouped',
74
+ '[class.indeterminate]': '_indeterminate'
75
+ }, inputs: ['grouped'], preserveWhitespaces: false, template: "<input #input\n [id]=\"labelId\"\n (change)=\"onChangeEvent($event)\"\n (blur)=\"onTouched()\"\n class=\"bbi-checkbox-input\"\n type=\"checkbox\">\n<label [attr.for]=\"labelId\"\n class=\"bbi-checkbox-label\">\n <span class=\"bbi-checkbox-text\"\n dir=\"auto\"><ng-content></ng-content></span>\n</label>\n", styles: [".bbi-checkbox{display:block}.bbi-checkbox+.bbi-checkbox{margin-top:3px}.bbi-checkbox.grouped{margin-bottom:20px}.bbi-checkbox-input{border:0;width:1px;padding:0;height:1px;margin:-1px;overflow:hidden;position:absolute;visibility:inherit;white-space:nowrap;clip:rect(0,0,0,0)}.bbi-checkbox-input:checked+.bbi-checkbox-label:before,.bbi-checkbox-input:indeterminate+.bbi-checkbox-label:before{border:1px solid #1565c0;background-color:#1565c0}.bbi-checkbox-input:checked+.bbi-checkbox-label:after,.bbi-checkbox-input:indeterminate+.bbi-checkbox-label:after{opacity:1;transform:scale(1) rotate(-45deg)}.bbi-checkbox-input:indeterminate+.bbi-checkbox-label:after{top:-1px;left:5px;width:10px;border-left:0 solid white;border-bottom:2px solid white;transform:scale(1) rotate(0)}.bbi-checkbox-input:focus+.bbi-checkbox-label:before{outline-color:#1565c0}.bbi-checkbox-input:disabled+.bbi-checkbox-label{color:#c6c6c6;cursor:not-allowed}.bbi-checkbox-input:disabled+.bbi-checkbox-label:before{border-color:#c6c6c6}.bbi-checkbox-input:checked:disabled+.bbi-checkbox-label:before,.bbi-checkbox-input:indeterminate:disabled+.bbi-checkbox-label:before{background-color:#c6c6c6}.bbi-checkbox-label{border:0;margin:0;display:flex;cursor:pointer;font-size:16px;font-weight:400;line-height:1.28;-webkit-user-select:none;user-select:none;position:relative;padding-left:20px;font-family:inherit;vertical-align:initial}.bbi-checkbox-label:before{left:0;width:20px;content:\"\";height:20px;position:absolute;border-radius:4px;outline-offset:1px;border:1px solid #111111;background-color:initial;outline:2px solid transparent;transition:outline-color .2s cubic-bezier(0,0,.2,1),background-color .18s cubic-bezier(0,0,.2,1),border-color .18s cubic-bezier(0,0,.2,1)}.bbi-checkbox-label:after{left:4px;opacity:0;width:12px;height:6px;content:\"\";margin-top:6px;background:none;position:absolute;transform-origin:center;border-left:2px solid white;border-bottom:2px solid white;transform:scale(.85) rotate(-60deg);transition:opacity .12s cubic-bezier(0,0,.2,1),transform .18s cubic-bezier(0,0,.2,1)}.bbi-checkbox-text{padding-left:6px}\n"] }]
76
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }]; }, propDecorators: { inputElementRef: [{
77
+ type: ViewChild,
78
+ args: ['input', { static: true }]
79
+ }], disabled: [{
80
+ type: Input
81
+ }], grouped: [{
82
+ type: Input
83
+ }], indeterminate: [{
84
+ type: Input
85
+ }] } });
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb250cm9scy9zcmMvbGliL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vY29udHJvbHMvc3JjL2xpYi9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxVQUFVLEVBQ1YsS0FBSyxFQUVMLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF1QixpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDOztBQUU5RCxJQUFJLFlBQVksR0FBRyxDQUFDLENBQUM7QUFtQnJCLE1BQU0sT0FBTyxXQUFXO0lBZ0NwQixZQUFvQixTQUFvQjtRQUFwQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBOUJ4QyxpQkFBaUI7UUFDUixZQUFPLEdBQUcsZ0JBQWdCLFlBQVksRUFBRSxFQUFFLENBQUM7UUFvQnBELFdBQVc7UUFDWCxhQUFRLEdBQWdDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkQsY0FBUyxHQUFlLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFbkMsU0FBUztRQUNULGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixtQkFBYyxHQUFZLEtBQUssQ0FBQztJQUdoQyxDQUFDO0lBekJELFVBQVU7SUFDVixJQUFhLFFBQVEsQ0FBQyxLQUFjO1FBQ2hDLE1BQU0sUUFBUSxHQUFHLHFCQUFxQixD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ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbnB1dCwgT25Jbml0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtjb2VyY2VCb29sZWFuUHJvcGVydHl9IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uJztcblxubGV0IG5leHRVbmlxdWVJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYmJpLWNoZWNrYm94JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NoZWNrYm94LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge3Byb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBCYmlDaGVja2JveCksIG11bHRpOiB0cnVlfVxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnYmJpLWNoZWNrYm94JyxcbiAgICAgICAgJ1tjbGFzcy5ncm91cGVkXSc6ICdfZ3JvdXBlZCcsXG4gICAgICAgICdbY2xhc3MuaW5kZXRlcm1pbmF0ZV0nOiAnX2luZGV0ZXJtaW5hdGUnXG4gICAgfSxcbiAgICBpbnB1dHM6IFsnZ3JvdXBlZCddLFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIEJiaUNoZWNrYm94IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCB7XG5cbiAgICAvLyBSZWFkb25seSBkYXRhLlxuICAgIHJlYWRvbmx5IGxhYmVsSWQgPSBgYmJpLWNoZWNrYm94LSR7bmV4dFVuaXF1ZUlkKyt9YDtcblxuICAgIC8vIFZpZXdzLlxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0Jywge3N0YXRpYzogdHJ1ZX0pIGlucHV0RWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAgIC8vIElucHV0cy5cbiAgICBASW5wdXQoKSBzZXQgZGlzYWJsZWQodmFsdWU6IHVua25vd24pIHtcbiAgICAgICAgY29uc3QgZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgICAgICB0aGlzLnNldERpc2FibGVkU3RhdGUoZGlzYWJsZWQpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBncm91cGVkKHZhbHVlOiB1bmtub3duKSB7XG4gICAgICAgIHRoaXMuX2dyb3VwZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBpbmRldGVybWluYXRlKHZhbHVlOiB1bmtub3duKSB7XG4gICAgICAgIGNvbnN0IGluZGV0ZXJtaW5hdGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgICAgICB0aGlzLnNldEluZGV0ZXJtaW5hdGVTdGF0ZShpbmRldGVybWluYXRlKTtcbiAgICB9XG5cbiAgICAvLyBNZXRob2RzLlxuICAgIG9uQ2hhbmdlOiAobmV3VmFsdWU6IGJvb2xlYW4pID0+IHZvaWQgPSAoKSA9PiAoe30pO1xuICAgIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+ICh7fSk7XG5cbiAgICAvLyBTdGF0ZS5cbiAgICBfZ3JvdXBlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIF9pbmRldGVybWluYXRlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyKSB7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuc2V0RGlzYWJsZWRTdGF0ZSh0aGlzLl9kaXNhYmxlZCk7XG4gICAgICAgIHRoaXMuc2V0SW5kZXRlcm1pbmF0ZVN0YXRlKHRoaXMuX2luZGV0ZXJtaW5hdGUpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgICAgIHRoaXMuc2V0UHJvcGVydHkoJ2Rpc2FibGVkJywgdGhpcy5fZGlzYWJsZWQpO1xuICAgIH1cblxuICAgIHNldEluZGV0ZXJtaW5hdGVTdGF0ZShpbmRldGVybWluYXRlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2luZGV0ZXJtaW5hdGUgPSBpbmRldGVybWluYXRlO1xuICAgICAgICB0aGlzLnNldFByb3BlcnR5KCdpbmRldGVybWluYXRlJywgdGhpcy5faW5kZXRlcm1pbmF0ZSk7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZShuZXdWYWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldFByb3BlcnR5KCdjaGVja2VkJywgbmV3VmFsdWUpO1xuICAgIH1cblxuICAgIG9uQ2hhbmdlRXZlbnQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UoKGV2ZW50Py50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCk/LmNoZWNrZWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0UHJvcGVydHkoa2V5OiBzdHJpbmcsIHZhbHVlOiB1bmtub3duKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmlucHV0RWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudDtcbiAgICAgICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkoZWxlbWVudCwga2V5LCB2YWx1ZSk7XG4gICAgfVxuXG59XG4iLCI8aW5wdXQgI2lucHV0XG4gICAgICAgW2lkXT1cImxhYmVsSWRcIlxuICAgICAgIChjaGFuZ2UpPVwib25DaGFuZ2VFdmVudCgkZXZlbnQpXCJcbiAgICAgICAoYmx1cik9XCJvblRvdWNoZWQoKVwiXG4gICAgICAgY2xhc3M9XCJiYmktY2hlY2tib3gtaW5wdXRcIlxuICAgICAgIHR5cGU9XCJjaGVja2JveFwiPlxuPGxhYmVsIFthdHRyLmZvcl09XCJsYWJlbElkXCJcbiAgICAgICBjbGFzcz1cImJiaS1jaGVja2JveC1sYWJlbFwiPlxuICAgIDxzcGFuIGNsYXNzPVwiYmJpLWNoZWNrYm94LXRleHRcIlxuICAgICAgICAgIGRpcj1cImF1dG9cIj48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9zcGFuPlxuPC9sYWJlbD5cbiJdfQ==