@bravobit/bb-foundation 0.31.0 → 0.32.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.
- package/auth/lib/directives/authenticated.directive.d.ts +1 -3
- package/collections/lib/collection.d.ts +1 -1
- package/combobox/combobox/combobox-container.directive.d.ts +28 -0
- package/combobox/combobox/combobox.component.d.ts +37 -0
- package/combobox/combobox-label.directive.d.ts +5 -0
- package/combobox/combobox-option.directive.d.ts +7 -0
- package/combobox/combobox-panel/combobox-panel.animation.d.ts +1 -0
- package/combobox/combobox-panel/combobox-panel.component.d.ts +18 -0
- package/combobox/combobox.interface.d.ts +8 -0
- package/combobox/index.d.ts +5 -0
- package/combobox/public_api.d.ts +3 -0
- package/dialog/lib/dialog.service.d.ts +2 -3
- package/esm2022/auth/lib/auth.interceptor.mjs +4 -4
- package/esm2022/auth/lib/auth.module.mjs +4 -4
- package/esm2022/auth/lib/auth.service.mjs +5 -5
- package/esm2022/auth/lib/auth.session.mjs +1 -1
- package/esm2022/auth/lib/directives/abstract.directive.mjs +1 -1
- package/esm2022/auth/lib/directives/authenticated.directive.mjs +6 -8
- package/esm2022/auth/lib/guards/anonymous.guard.mjs +4 -4
- package/esm2022/auth/lib/guards/authenticated.guard.mjs +4 -4
- package/esm2022/auth/lib/helpers/jwt.helper.mjs +1 -1
- package/esm2022/collections/lib/collection.mjs +1 -1
- package/esm2022/collections/lib/collections.module.mjs +4 -4
- package/esm2022/collections/lib/components/collections-pager/collections-pager.component.mjs +4 -4
- package/esm2022/collections/lib/components/collections-viewer/collections-viewer.component.mjs +3 -3
- package/esm2022/collections/lib/components/collections.directive.mjs +12 -12
- package/esm2022/collections/lib/providers/api-collection.provider.mjs +1 -1
- package/esm2022/combobox/bravobit-bb-foundation-combobox.mjs +5 -0
- package/esm2022/combobox/combobox/combobox-container.directive.mjs +132 -0
- package/esm2022/combobox/combobox/combobox.component.mjs +115 -0
- package/esm2022/combobox/combobox-label.directive.mjs +14 -0
- package/esm2022/combobox/combobox-option.directive.mjs +17 -0
- package/esm2022/combobox/combobox-panel/combobox-panel.animation.mjs +11 -0
- package/esm2022/combobox/combobox-panel/combobox-panel.component.mjs +38 -0
- package/esm2022/combobox/combobox.interface.mjs +2 -0
- package/esm2022/combobox/public_api.mjs +4 -0
- package/esm2022/controls/lib/checkbox/checkbox/checkbox.component.mjs +4 -4
- package/esm2022/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +4 -4
- package/esm2022/controls/lib/checkbox/checkbox.module.mjs +4 -4
- package/esm2022/controls/lib/control-error/control-error/control-error.component.mjs +4 -4
- package/esm2022/controls/lib/control-error/control-error-submit.directive.mjs +4 -4
- package/esm2022/controls/lib/control-error/control-error.module.mjs +4 -4
- package/esm2022/controls/lib/control-error/control-error.utils.mjs +1 -1
- package/esm2022/controls/lib/controls.module.mjs +4 -4
- package/esm2022/controls/lib/form-control/form-control/form-control.component.mjs +4 -4
- package/esm2022/controls/lib/form-control/form-control-addon/form-control-addon.component.mjs +3 -3
- package/esm2022/controls/lib/form-control/form-control-input.directive.mjs +4 -4
- package/esm2022/controls/lib/form-control/form-control.module.mjs +4 -4
- package/esm2022/controls/lib/radio/radio-button/radio-button.component.mjs +4 -4
- package/esm2022/controls/lib/radio/radio-group/radio-group.component.mjs +4 -4
- package/esm2022/controls/lib/radio/radio.module.mjs +4 -4
- package/esm2022/controls/lib/toggle/toggle/toggle.component.mjs +4 -4
- package/esm2022/controls/lib/toggle/toggle-group/toggle-group.component.mjs +4 -4
- package/esm2022/controls/lib/toggle/toggle.module.mjs +4 -4
- package/esm2022/dashboard/lib/dashboard/dashboard.component.mjs +4 -4
- package/esm2022/dashboard/lib/dashboard-header/dashboard-header.component.mjs +3 -3
- package/esm2022/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +3 -3
- package/esm2022/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +4 -4
- package/esm2022/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +5 -5
- package/esm2022/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +4 -4
- package/esm2022/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +4 -4
- package/esm2022/dashboard/lib/dashboard.module.mjs +4 -4
- package/esm2022/dialog/lib/dialog-actions/dialog-actions.component.mjs +3 -3
- package/esm2022/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +3 -3
- package/esm2022/dialog/lib/dialog-container/dialog-container.component.mjs +4 -4
- package/esm2022/dialog/lib/dialog-header/dialog-header.component.mjs +3 -3
- package/esm2022/dialog/lib/dialog-link/dialog-link.component.mjs +3 -3
- package/esm2022/dialog/lib/dialog-modal/dialog-modal.component.mjs +4 -4
- package/esm2022/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +4 -4
- package/esm2022/dialog/lib/dialog.insertion.mjs +3 -3
- package/esm2022/dialog/lib/dialog.module.mjs +4 -4
- package/esm2022/dialog/lib/dialog.service.mjs +6 -7
- package/esm2022/elements/lib/avatar/avatar.component.mjs +4 -4
- package/esm2022/elements/lib/button/button.component.mjs +7 -7
- package/esm2022/elements/lib/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/elements/lib/date-picker/date-picker.component.mjs +4 -4
- package/esm2022/elements/lib/directives/addon.directive.mjs +6 -6
- package/esm2022/elements/lib/directives/form-submit.directive.mjs +4 -4
- package/esm2022/elements/lib/directives/form-submitter.directive.mjs +3 -3
- package/esm2022/elements/lib/directives/input.directive.mjs +7 -7
- package/esm2022/elements/lib/dropdown/dropdown.component.mjs +7 -7
- package/esm2022/elements/lib/elements.module.mjs +4 -4
- package/esm2022/elements/lib/file-picker/file-picker.component.mjs +4 -4
- package/esm2022/elements/lib/form-control/form-control.component.mjs +3 -3
- package/esm2022/elements/lib/form-error/form-error.component.mjs +4 -4
- package/esm2022/elements/lib/form-group/form-group.component.mjs +3 -3
- package/esm2022/elements/lib/icon/icon.component.mjs +4 -4
- package/esm2022/elements/lib/image-picker/image-picker.component.mjs +5 -5
- package/esm2022/elements/lib/pipes/file-image.pipe.mjs +4 -4
- package/esm2022/elements/lib/pipes/file-size.pipe.mjs +4 -4
- package/esm2022/elements/lib/pipes/relative-time.pipe.mjs +4 -4
- package/esm2022/elements/lib/spinner/spinner.component.mjs +3 -3
- package/esm2022/elements/lib/tag/tag.component.mjs +3 -3
- package/esm2022/http/lib/classes/http.config.mjs +1 -1
- package/esm2022/http/lib/http.module.mjs +5 -5
- package/esm2022/http/lib/interceptors/base-url.interceptor.mjs +4 -4
- package/esm2022/http/lib/interceptors/error.interceptor.mjs +4 -4
- package/esm2022/lib/core/functions/date.utils.mjs +1 -1
- package/esm2022/lib/core/functions/password.utils.mjs +1 -1
- package/esm2022/lib/core/miscellaneous/validator.mjs +1 -1
- package/esm2022/lib/core/services/clipboard.service.mjs +4 -4
- package/esm2022/lib/core/services/exif.service.mjs +4 -4
- package/esm2022/lib/core/services/file-loader.service.mjs +4 -4
- package/esm2022/lib/core/services/image-converter.service.mjs +4 -4
- package/esm2022/lib/core/services/languages.service.mjs +4 -4
- package/esm2022/lib/core/services/network.service.mjs +4 -4
- package/esm2022/lib/core/services/patch.service.mjs +4 -4
- package/esm2022/lib/core/tokens/window.token.mjs +1 -1
- package/esm2022/localize/lib/dictionary/dictionary.class.mjs +1 -1
- package/esm2022/localize/lib/functions/date.function.mjs +1 -1
- package/esm2022/localize/lib/handlers/missing.handler.mjs +1 -1
- package/esm2022/localize/lib/locale.token.mjs +1 -1
- package/esm2022/localize/lib/localize.module.mjs +5 -5
- package/esm2022/localize/lib/localize.pipe.mjs +4 -4
- package/esm2022/localize/lib/localize.service.mjs +4 -4
- package/esm2022/localize/lib/transforms/abstract.transform.mjs +1 -1
- package/esm2022/localize/lib/transforms/interpolate.transform.mjs +1 -1
- package/esm2022/localize/lib/transforms/plural.transform.mjs +1 -1
- package/esm2022/localize/lib/views/localize-string/localize-string.component.mjs +4 -4
- package/esm2022/localize/lib/views/localize-template.directive.mjs +3 -3
- package/esm2022/masking/lib/directives/currency-mask.directive.mjs +3 -3
- package/esm2022/masking/lib/directives/date-mask.directive.mjs +3 -3
- package/esm2022/masking/lib/directives/input-mask.directive.mjs +4 -4
- package/esm2022/masking/lib/masking.module.mjs +4 -4
- package/esm2022/masking/lib/masking.service.mjs +4 -4
- package/esm2022/notifications/lib/notifications-item/notifications-item.component.mjs +4 -4
- package/esm2022/notifications/lib/notifications-list/notifications-list.component.mjs +3 -3
- package/esm2022/notifications/lib/notifications.module.mjs +4 -4
- package/esm2022/notifications/lib/notifications.service.mjs +4 -4
- package/esm2022/permissions/lib/directives/permission.directive.mjs +4 -4
- package/esm2022/permissions/lib/guards/permission.guard.mjs +4 -4
- package/esm2022/permissions/lib/handlers/local.handler.mjs +1 -1
- package/esm2022/permissions/lib/permissions.module.mjs +4 -4
- package/esm2022/permissions/lib/permissions.service.mjs +4 -4
- package/esm2022/recaptcha/lib/recaptcha/recaptcha.component.mjs +4 -4
- package/esm2022/recaptcha/lib/recaptcha-loader.service.mjs +4 -4
- package/esm2022/recaptcha/lib/recaptcha.module.mjs +4 -4
- package/esm2022/storage/lib/storage.service.mjs +4 -4
- package/esm2022/storage/lib/strategies/cookie-storage.strategy.mjs +1 -1
- package/esm2022/storage/lib/strategies/memory-storage.strategy.mjs +1 -1
- package/esm2022/storage/lib/strategies/polyfill-storage.strategy.mjs +1 -1
- package/esm2022/table/lib/components/table/table.component.mjs +10 -10
- package/esm2022/table/lib/components/table-cell/table-cell.component.mjs +3 -3
- package/esm2022/table/lib/components/table-header-cell/table-header-cell.component.mjs +4 -4
- package/esm2022/table/lib/components/table-pager/table-pager.component.mjs +4 -4
- package/esm2022/table/lib/data/datasource.data.mjs +1 -1
- package/esm2022/table/lib/data/generic.data.mjs +1 -1
- package/esm2022/table/lib/table.module.mjs +4 -4
- package/esm2022/theming/lib/theming.data.mjs +1 -1
- package/esm2022/theming/lib/theming.directive.mjs +4 -4
- package/esm2022/theming/lib/theming.module.mjs +4 -4
- package/esm2022/theming/lib/utils/theming.variable.mjs +1 -1
- package/esm2022/tooltip/lib/tooltip-container/tooltip-container.component.mjs +3 -3
- package/esm2022/tooltip/lib/tooltip.directive.mjs +4 -4
- package/esm2022/tooltip/lib/tooltip.module.mjs +4 -4
- package/esm2022/utils/lib/directives/autosize.directive.mjs +4 -4
- package/esm2022/utils/lib/directives/focus-trap.directive.mjs +4 -4
- package/esm2022/utils/lib/directives/focus.directive.mjs +4 -4
- package/esm2022/utils/lib/directives/template.directive.mjs +3 -3
- package/esm2022/utils/lib/utils.module.mjs +4 -4
- package/fesm2022/bravobit-bb-foundation-auth.mjs +22 -24
- package/fesm2022/bravobit-bb-foundation-auth.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-collections.mjs +22 -22
- package/fesm2022/bravobit-bb-foundation-collections.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-combobox.mjs +316 -0
- package/fesm2022/bravobit-bb-foundation-combobox.mjs.map +1 -0
- package/fesm2022/bravobit-bb-foundation-controls.mjs +59 -59
- package/fesm2022/bravobit-bb-foundation-controls.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-dashboard.mjs +26 -26
- package/fesm2022/bravobit-bb-foundation-dashboard.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-dialog.mjs +34 -35
- package/fesm2022/bravobit-bb-foundation-dialog.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-elements.mjs +80 -80
- package/fesm2022/bravobit-bb-foundation-elements.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-http.mjs +10 -10
- package/fesm2022/bravobit-bb-foundation-http.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-localize.mjs +17 -17
- package/fesm2022/bravobit-bb-foundation-localize.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-masking.mjs +17 -17
- package/fesm2022/bravobit-bb-foundation-masking.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-notifications.mjs +14 -14
- package/fesm2022/bravobit-bb-foundation-notifications.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-permissions.mjs +13 -13
- package/fesm2022/bravobit-bb-foundation-permissions.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-recaptcha.mjs +10 -10
- package/fesm2022/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-rxjs.mjs +1 -1
- package/fesm2022/bravobit-bb-foundation-storage.mjs +3 -3
- package/fesm2022/bravobit-bb-foundation-storage.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-table.mjs +22 -22
- package/fesm2022/bravobit-bb-foundation-table.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-theming.mjs +7 -7
- package/fesm2022/bravobit-bb-foundation-theming.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-tooltip.mjs +10 -10
- package/fesm2022/bravobit-bb-foundation-tooltip.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-utils.mjs +16 -16
- package/fesm2022/bravobit-bb-foundation-utils.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation.mjs +21 -21
- package/fesm2022/bravobit-bb-foundation.mjs.map +1 -1
- package/package.json +28 -22
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bravobit-bb-foundation-elements.mjs","sources":["../../../projects/bb-foundation/elements/src/lib/dropdown/dropdown.component.ts","../../../projects/bb-foundation/elements/src/lib/dropdown/dropdown.component.html","../../../projects/bb-foundation/elements/src/lib/elements.interfaces.ts","../../../projects/bb-foundation/elements/src/lib/directives/form-submitter.directive.ts","../../../projects/bb-foundation/elements/src/lib/spinner/spinner.component.ts","../../../projects/bb-foundation/elements/src/lib/spinner/spinner.component.html","../../../projects/bb-foundation/elements/src/lib/button/button.component.ts","../../../projects/bb-foundation/elements/src/lib/button/button.component.html","../../../projects/bb-foundation/elements/src/lib/image-picker/image-picker.component.ts","../../../projects/bb-foundation/elements/src/lib/image-picker/image-picker.component.html","../../../projects/bb-foundation/elements/src/lib/directives/form-submit.directive.ts","../../../projects/bb-foundation/elements/src/lib/form-error/form-error.component.ts","../../../projects/bb-foundation/elements/src/lib/form-error/form-error.component.html","../../../projects/bb-foundation/elements/src/lib/form-control/form-control.component.ts","../../../projects/bb-foundation/elements/src/lib/form-control/form-control.component.html","../../../projects/bb-foundation/elements/src/lib/pipes/file-size.pipe.ts","../../../projects/bb-foundation/elements/src/lib/pipes/file-image.pipe.ts","../../../projects/bb-foundation/elements/src/lib/file-picker/file-picker.component.ts","../../../projects/bb-foundation/elements/src/lib/file-picker/file-picker.component.html","../../../projects/bb-foundation/elements/src/lib/directives/input.directive.ts","../../../projects/bb-foundation/elements/src/lib/date-picker/date-picker.component.ts","../../../projects/bb-foundation/elements/src/lib/date-picker/date-picker.component.html","../../../projects/bb-foundation/elements/src/lib/directives/addon.directive.ts","../../../projects/bb-foundation/elements/src/lib/form-group/form-group.component.ts","../../../projects/bb-foundation/elements/src/lib/form-group/form-group.component.html","../../../projects/bb-foundation/elements/src/lib/pipes/relative-time.pipe.ts","../../../projects/bb-foundation/elements/src/lib/checkbox/checkbox.component.ts","../../../projects/bb-foundation/elements/src/lib/checkbox/checkbox.component.html","../../../projects/bb-foundation/elements/src/lib/avatar/avatar.component.ts","../../../projects/bb-foundation/elements/src/lib/avatar/avatar.component.html","../../../projects/bb-foundation/elements/src/lib/icon/icon.component.ts","../../../projects/bb-foundation/elements/src/lib/icon/icon.component.html","../../../projects/bb-foundation/elements/src/lib/tag/tag.component.ts","../../../projects/bb-foundation/elements/src/lib/tag/tag.component.html","../../../projects/bb-foundation/elements/src/lib/elements.module.ts","../../../projects/bb-foundation/elements/src/bravobit-bb-foundation-elements.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ElementRef,\n Host,\n HostListener,\n Input,\n Optional,\n ViewEncapsulation\n} from '@angular/core';\nimport {animate, style, transition, trigger} from '@angular/animations';\nimport {BehaviorSubject} from 'rxjs';\n\n@Component({\n selector: 'bb-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {'class': 'bb-dropdown'},\n preserveWhitespaces: false,\n animations: [\n trigger('dropdownMenuAnimation', [\n transition(':enter', [\n // 1. Set the initial state.\n style({opacity: 0, transform: 'scale(0.9)'}),\n // 2. Start the animation to show the item.\n animate('80ms cubic-bezier(0, 0, .2, 1)', style({opacity: 1, transform: 'scale(1)'}))\n ]),\n transition(':leave', [\n // 1. Set the initial state.\n style({opacity: 1, transform: 'scale(1)'}),\n // 2. Start the animation to hide the item.\n animate('80ms cubic-bezier(0, 0, .2, 1)', style({opacity: 0, transform: 'scale(0.9)'}))\n ])\n ])\n ]\n\n})\nexport class BbDropdown {\n\n // State.\n visible$ = new BehaviorSubject<boolean>(false);\n\n constructor(private _elementRef: ElementRef) {\n }\n\n toggle() {\n return this.visible$.next(!this.visible$.getValue());\n }\n\n close() {\n return this.visible$.next(false);\n }\n\n @HostListener('document:click', ['$event.target'])\n onDocumentClick(target: HTMLElement) {\n if (!target) {\n return;\n }\n\n if (this._elementRef?.nativeElement?.contains(target)) {\n return;\n }\n\n return this.close();\n }\n\n}\n\n@Directive({\n selector: '[bbDropdownItem]',\n host: {\n 'class': 'bb-dropdown-item'\n }\n})\nexport class BbDropdownItem {\n\n // Inputs.\n @Input() closeOnClick: boolean = true;\n\n constructor(@Optional() @Host() private _parent?: BbDropdown) {\n }\n\n @HostListener('click')\n onClick() {\n if (!this.closeOnClick) {\n return;\n }\n\n this._parent?.close();\n }\n\n}\n","<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","import {InjectionToken} from '@angular/core';\n\nexport const ELEMENTS_ICONS: InjectionToken<ElementsIcon[]> = new InjectionToken('elements_icons');\nexport const ELEMENTS_ERRORS: InjectionToken<ElementsError[]> = new InjectionToken('elements_errors');\n\nexport type ElementsIcon = ElementsIconFont | ElementsIconImage | ElementsIconUnknown;\nexport type ElementsError = { [error: string]: (data?: any) => string | { token: string, data?: any }; };\n\nexport interface ElementsIconFont {\n namespace: string;\n className: string;\n uses: 'content' | 'data-attribute';\n type: 'font';\n}\n\nexport interface ElementsIconImage {\n namespace: string;\n name: string;\n src: string;\n type: 'image';\n}\n\nexport interface ElementsIconUnknown {\n type: 'unknown';\n}\n","import {Directive} from '@angular/core';\nimport {BehaviorSubject} from 'rxjs';\n\n@Directive({\n selector: '[bbFormSubmitter]',\n exportAs: 'bbFormSubmitter'\n})\nexport class BbFormSubmitter {\n\n // State.\n submitted$ = new BehaviorSubject<boolean>(false);\n\n submit() {\n this.submitted$.next(true);\n }\n\n reset() {\n this.submitted$.next(false);\n }\n\n}\n","import {ChangeDetectionStrategy, Component, Input, ViewEncapsulation} from '@angular/core';\nimport {CanDisable, CanDisableConstructor, mixinDisabled} from '@bravobit/bb-foundation';\n\nclass BbSpinnerBase {\n}\n\nconst BbSpinnerMixinBase: CanDisableConstructor\n & typeof BbSpinnerBase\n = mixinDisabled(BbSpinnerBase);\n\n@Component({\n selector: 'bb-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {'class': 'bb-spinner'},\n inputs: ['color', 'alt', 'disabled'],\n preserveWhitespaces: false\n})\nexport class BbSpinner extends BbSpinnerMixinBase implements CanDisable {\n\n // Inputs.\n @Input() color: string = '#303f9f';\n @Input() alt: string = 'Loading...';\n\n}\n","<!--\n The spinner element.\n\n This element contains a circle with a 25% bar that spins\n indefinitely. The border color can be set via the \"color\"\n property.\n-->\n<div class=\"bb-spinner-container\">\n <div [style.border-left-color]=\"color\"\n [class.disabled]=\"disabled\"\n class=\"bb-spinner-loader\"\n aria-live=\"assertive\"\n role=\"alert\">\n {{ alt }}\n </div>\n <ng-content select=\"img\"></ng-content>\n</div>\n\n<!--\n The content of the spinner.\n\n This element contains the content of the spinner. The user\n can set the content inside the tag.\n-->\n<span class=\"bb-spinner-content\">\n <ng-content></ng-content>\n</span>\n","import {\n CanLoad,\n CanLoadConstructor,\n mixinLoad,\n CanDisable,\n CanDisableConstructor,\n mixinDisabled\n} from '@bravobit/bb-foundation';\nimport {ChangeDetectionStrategy, Component, ElementRef, Input, ViewEncapsulation} from '@angular/core';\n\nclass BbButtonBase {\n constructor(public _elementRef: ElementRef) {\n }\n}\n\nconst BbButtonMixinBase: CanDisableConstructor & CanLoadConstructor\n & typeof BbButtonBase = mixinDisabled(mixinLoad(BbButtonBase));\n\n@Component({\n selector: 'button[bb-button]',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n exportAs: 'bbButton',\n host: {\n 'class': 'bb-button',\n '[class.loading]': 'loading',\n '[attr.disabled]': 'disabled || loading || null'\n },\n inputs: ['disabled', 'loading'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BbButton extends BbButtonMixinBase implements CanDisable, CanLoad {\n\n get nativeElement() {\n return this._elementRef.nativeElement;\n }\n\n constructor(_elementRef: ElementRef<HTMLButtonElement>) {\n super(_elementRef);\n }\n\n focus() {\n this.nativeElement && this.nativeElement.focus();\n }\n\n}\n\n@Component({\n selector: 'a[bb-button]',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n exportAs: 'bbButton, bbAnchor',\n host: {\n 'class': 'bb-button',\n '[attr.tabindex]': '(disabled || loading) ? -1 : (tabIndex || 0)',\n '[attr.disabled]': 'disabled || loading || null',\n '[attr.aria-disabled]': '(disabled || loading).toString()',\n '(click)': 'stopDisabledEvents($event)'\n },\n inputs: ['disabled', 'loading'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BbAnchor extends BbButton {\n\n // Inputs.\n @Input() tabIndex: number;\n\n constructor(_elementRef: ElementRef) {\n super(_elementRef);\n }\n\n stopDisabledEvents(event: Event) {\n // If the button is not disabled (and not loading) let all events pass.\n if (!this.disabled && !this.loading) {\n return;\n }\n\n // If the button is disabled and/or loading stop\n // the event from bubbling up.\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n\n}\n","<bb-spinner [class.visible]=\"loading\"\n class=\"bb-button-spinner small\">\n</bb-spinner>\n\n<ng-content></ng-content>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n ImageConverter,\n CanDisableConstructor,\n mixinDisabled,\n IsGroupedConstructor,\n mixinGrouped\n} from '@bravobit/bb-foundation';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {BehaviorSubject} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nclass BbImagePickerBase {\n}\n\nconst BbImagePickerMixinBase: IsGroupedConstructor\n & CanDisableConstructor\n & typeof BbImagePickerBase\n = mixinDisabled(mixinGrouped(BbImagePickerBase));\n\n@Component({\n selector: 'bb-image-picker',\n templateUrl: './image-picker.component.html',\n styleUrls: ['./image-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'bb-image-picker',\n '[class.disabled]': 'disabled',\n '[class.grouped]': 'grouped'\n },\n inputs: ['grouped', 'disabled'],\n providers: [{provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BbImagePicker), multi: true}],\n preserveWhitespaces: false\n})\nexport class BbImagePicker extends BbImagePickerMixinBase implements ControlValueAccessor {\n\n // Views.\n @ViewChild('fileInput', {static: true}) fileInput: ElementRef<HTMLInputElement>;\n\n // Inputs.\n @Input() label: string | null = null;\n @Input() placeholder: string | null = null;\n @Input() styleDimensions: { width: string, height: string } | null = null;\n @Input() cropDimensions: { width: number, height: number } | null = null;\n\n // Form.\n private _value$ = new BehaviorSubject<string | null>(null);\n\n constructor(private _converter: ImageConverter) {\n super();\n }\n\n @Input()\n get value() {\n return this._value$.getValue();\n }\n\n @Output() valueChange = new EventEmitter<string | null>();\n\n set value(value: string | null) {\n this._value$.next(value);\n this.valueChange.emit(value);\n }\n\n get image() {\n return this._value$.pipe(\n map(value => value || this.placeholder),\n map(value => value ? `url(${value})` : null)\n );\n }\n\n async onFileChange(event) {\n // Grab the file from the event.\n const file: File = event.target.files[0];\n\n // Check if the file exists.\n if (!file || this.disabled) {\n return;\n }\n\n try {\n this.value = await this._converter.toDataUri(file, this.cropDimensions);\n } catch (error) {\n this.value = null;\n }\n\n this.onChangeCallback(this.value);\n\n if (this.fileInput && this.fileInput.nativeElement) {\n this.fileInput.nativeElement.value = '';\n }\n }\n\n openFilePicker() {\n if (this.disabled) {\n return;\n }\n\n // Execute a click on the file input.\n this.fileInput\n && this.fileInput.nativeElement\n && this.fileInput.nativeElement.click\n && this.fileInput.nativeElement.click();\n }\n\n onTouchedCallback: () => void = () => {\n };\n\n onChangeCallback: (_: string | null) => void = () => {\n };\n\n writeValue(value: string | null) {\n this.value = value;\n }\n\n registerOnChange(method: (_: string | null) => void) {\n this.onChangeCallback = method;\n }\n\n registerOnTouched(method: () => void) {\n this.onTouchedCallback = method;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n}\n","<!-- 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","import {distinctUntilChanged, map, shareReplay, startWith} from 'rxjs/operators';\nimport {Directive, ElementRef, OnInit, Optional, Self} from '@angular/core';\nimport {EMPTY, fromEvent, merge, Observable} from 'rxjs';\nimport {FormGroupDirective} from '@angular/forms';\n\n@Directive({\n selector: 'form',\n exportAs: 'bbForm'\n})\nexport class BbFormSubmit implements OnInit {\n\n submitStatus$: Observable<boolean>;\n\n constructor(private _host: ElementRef<HTMLFormElement>,\n @Optional() @Self() private _formDirective: FormGroupDirective) {\n }\n\n ngOnInit() {\n // Submit changes.\n const regularSubmitChanges$ = fromEvent(this.nativeElement, 'submit').pipe(\n map(() => true)\n );\n\n // Reactive form submit changes.\n const reactiveSubmitChanges$ = this.reactiveSubmitChanges();\n\n // Reset changes.\n const resetChanges$ = fromEvent(this.nativeElement, 'reset').pipe(\n map(() => false)\n );\n\n // Listen to the submit status.\n this.submitStatus$ = merge(regularSubmitChanges$, reactiveSubmitChanges$, resetChanges$).pipe(\n startWith(false),\n distinctUntilChanged(),\n shareReplay({refCount: true, bufferSize: 1})\n );\n }\n\n submit() {\n this._formDirective?.ngSubmit?.emit();\n }\n\n reset() {\n return this.nativeElement?.reset();\n }\n\n private get nativeElement() {\n return this._host?.nativeElement;\n }\n\n private reactiveSubmitChanges() {\n if (!this._formDirective) {\n return EMPTY;\n }\n\n return this._formDirective.ngSubmit.pipe(\n map(() => true)\n );\n }\n\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Input,\n OnInit,\n Optional,\n Output,\n ViewEncapsulation\n} from '@angular/core';\nimport {delay, distinctUntilChanged, map, startWith, tap} from 'rxjs/operators';\nimport {BbFormSubmitter} from '../directives/form-submitter.directive';\nimport {ELEMENTS_ERRORS, ElementsError} from '../elements.interfaces';\nimport {BbFormSubmit} from '../directives/form-submit.directive';\nimport {NgControl, ValidationErrors} from '@angular/forms';\nimport {combineLatest, EMPTY, Observable, of} from 'rxjs';\n\n@Component({\n selector: 'bb-form-error',\n templateUrl: './form-error.component.html',\n styleUrls: ['./form-error.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'bb-form-error'\n },\n preserveWhitespaces: false\n})\nexport class BbFormError implements OnInit {\n\n // Inputs.\n @Input()\n set control(value: NgControl) {\n this._ngControl = value;\n }\n\n get control() {\n return this._ngControl;\n }\n\n // Outputs.\n @Output() errorChange = new EventEmitter<{ token: string, data?: any } | null>();\n\n // State.\n error$: Observable<{ token: string, data?: any } | null>;\n\n // Subscriptions.\n private _ngControl: NgControl | null = null;\n\n constructor(@Optional() private _form?: BbFormSubmit,\n @Optional() private _control?: NgControl,\n @Optional() private _formSubmitter?: BbFormSubmitter,\n @Optional() @Inject(ELEMENTS_ERRORS) private _errors?: ElementsError[]) {\n }\n\n ngOnInit() {\n // Set the control if it was not set before.\n if (!this.control) {\n this.control = this._control;\n }\n\n // Listen for the submit changes\n const submitStatus$ = this.submitStatusChanges();\n\n // An observable that emits error changes.\n const errorChanges$ = this.statusChanges().pipe(\n map(() => this.getError(this.control.errors)),\n distinctUntilChanged(),\n map(error => typeof error === 'string' ? {token: error} : error)\n );\n\n // Whenever the user submitted the form we want to\n // listen for any error changes.\n this.error$ = combineLatest([submitStatus$, errorChanges$]).pipe(\n map(([submitted, error]) => {\n // If not submitted return null.\n if (!submitted) {\n return null;\n }\n\n // Return the error if submitted.\n return error;\n }),\n tap(value => this.errorChange.emit(value))\n );\n }\n\n private getError(errors?: ValidationErrors) {\n // Validate the errors exist.\n if (!errors) {\n return null;\n }\n\n // Get the first error in the errors.\n const [errorName] = Object.keys(errors);\n const error = errors[errorName];\n\n // Validate the error exists.\n if (!error) {\n return null;\n }\n\n // Map the arrays into a object so we can\n // access the functions by a key-lookup.\n const errorFunctions = this._errors.reduce((previous, current) => ({...previous, ...current}), {});\n\n // Get the error function.\n const errorFunction = errorFunctions[errorName] || errorFunctions['unknown'];\n\n // Validate the error function exists.\n if (!errorFunction) {\n return null;\n }\n\n // Return the parsed error.\n return errorFunction(error);\n }\n\n private submitStatusChanges() {\n const native$ = this.getNativeFormSubmit();\n const manual$ = this.getManualFormSubmit();\n return combineLatest([native$, manual$]).pipe(\n map(([native, manual]) => native || manual),\n distinctUntilChanged()\n );\n }\n\n private getNativeFormSubmit() {\n if (!this._form) {\n return of(true);\n }\n\n return this._form.submitStatus$;\n }\n\n private getManualFormSubmit() {\n if (!this._formSubmitter) {\n return of(false);\n }\n\n return this._formSubmitter.submitted$.pipe(\n distinctUntilChanged()\n );\n }\n\n private statusChanges() {\n if (!this.control) {\n return EMPTY;\n }\n\n if (!this.control.statusChanges) {\n return EMPTY;\n }\n\n return this.control.statusChanges.pipe(\n startWith(this.control.status as unknown),\n delay(0)\n );\n }\n\n}\n","<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>","import {\n IsRequired,\n IsRequiredConstructor,\n mixinRequired,\n CanDisable,\n CanDisableConstructor,\n mixinDisabled,\n IsReadonly,\n IsReadonlyConstructor,\n mixinReadonly,\n IsGrouped,\n IsGroupedConstructor,\n mixinGrouped,\n IsFocused,\n IsFocusedConstructor,\n mixinFocused,\n HasError,\n HasErrorConstructor,\n mixinError,\n CanHideErrors,\n CanHideErrorsConstructor,\n mixinHideErrors\n} from '@bravobit/bb-foundation';\nimport {ChangeDetectionStrategy, Component, ContentChild, Input, TemplateRef, ViewEncapsulation} from '@angular/core';\nimport {NgControl} from '@angular/forms';\n\nlet nextUniqueId = 0;\n\nclass BbFormControlBase {\n}\n\nconst BbFormControlMixinBase: IsRequiredConstructor\n & IsGroupedConstructor\n & IsFocusedConstructor\n & IsReadonlyConstructor\n & CanDisableConstructor\n & HasErrorConstructor\n & CanHideErrorsConstructor\n & typeof BbFormControlBase\n = mixinDisabled(mixinFocused(mixinReadonly(mixinGrouped(mixinRequired(mixinError(mixinHideErrors(BbFormControlBase)))))));\n\n@Component({\n selector: 'bb-form-control',\n templateUrl: './form-control.component.html',\n styleUrls: ['./form-control.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'bb-form-control',\n '[class.readonly]': 'readonly',\n '[class.required]': 'required',\n '[class.disabled]': 'disabled',\n '[class.focused]': 'focused',\n '[class.grouped]': 'grouped',\n '[class.arrow]': 'arrow',\n '[class.error]': 'error'\n },\n inputs: ['grouped', 'hideErrors'],\n preserveWhitespaces: false\n})\nexport class BbFormControl extends BbFormControlMixinBase implements IsRequired, IsFocused, IsReadonly, IsGrouped, CanDisable, HasError, CanHideErrors {\n\n // Views.\n @ContentChild(NgControl) ngControl: NgControl;\n\n // Inputs.\n @Input() label: string | TemplateRef<any> | null = null;\n @Input() hint: string | TemplateRef<any> | null = null;\n\n // Data.\n arrow: boolean = false;\n\n // Data.\n labelId = `bb-form-control-${nextUniqueId++}`;\n\n onErrorChange(error: { token: string, data?: any } | null) {\n this.error = !!error;\n }\n\n}\n","<!-- 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","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({\n name: 'bbFileSize'\n})\nexport class BbFileSize implements PipeTransform {\n\n transform(value: number) {\n return this.format(value);\n }\n\n private format = (value: number, decimals: number = 2) => {\n if (value === 0) {\n return '0 Bytes';\n }\n\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n const index = Math.floor(Math.log(value) / Math.log(k));\n\n return parseFloat((value / Math.pow(k, index)).toFixed(dm)) + ' ' + sizes[index];\n };\n\n}\n","import {ImageConverter} from '@bravobit/bb-foundation';\nimport {DomSanitizer} from '@angular/platform-browser';\nimport {Pipe, PipeTransform} from '@angular/core';\nimport {Platform} from '@angular/cdk/platform';\n\n@Pipe({\n name: 'bbFileImage'\n})\nexport class BbFileImage implements PipeTransform {\n\n constructor(private _platform: Platform,\n private _image: ImageConverter,\n private _sanitizer: DomSanitizer) {\n }\n\n async transform(file: File) {\n // If the file is not a file return.\n if (!this._platform.isBrowser || !(file instanceof File)) {\n return null;\n }\n\n return this._image.fileToImage(file, [\n 'image/png',\n 'image/jpeg',\n 'image/webp',\n 'image/gif',\n 'image/svg+xml'\n ]).then(image => {\n if (!image) {\n return null;\n }\n\n return {\n background: this._sanitizer.bypassSecurityTrustStyle(`url(${image.src})`),\n aspectRatio: image.height / image.width\n };\n }).catch(() => {\n return null;\n });\n }\n\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n CanDisable,\n CanDisableConstructor,\n IsGrouped,\n IsGroupedConstructor,\n IsRequired,\n IsRequiredConstructor,\n CanHideErrors,\n CanHideErrorsConstructor,\n HasError,\n HasErrorConstructor,\n mixinDisabled,\n mixinGrouped,\n mixinRequired,\n mixinError,\n mixinHideErrors\n} from '@bravobit/bb-foundation';\nimport {ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {animate, style, transition, trigger} from '@angular/animations';\nimport {BehaviorSubject} from 'rxjs';\n\nlet nextUniqueId = 0;\n\nclass BbFilePickerBase {\n}\n\nconst BbFilePickerMixinBase: IsRequiredConstructor\n & CanDisableConstructor\n & IsGroupedConstructor\n & HasErrorConstructor\n & CanHideErrorsConstructor\n & typeof BbFilePickerBase\n = mixinRequired(mixinDisabled(mixinGrouped(mixinError(mixinHideErrors(BbFilePickerBase)))));\n\n@Component({\n selector: 'bb-file-picker',\n templateUrl: './file-picker.component.html',\n styleUrls: ['./file-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => BbFilePicker),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: BbFilePicker,\n multi: true\n }\n ],\n host: {\n 'class': 'bb-file-picker',\n '[class.required]': 'required',\n '[class.disabled]': 'disabled',\n '[class.grouped]': 'grouped',\n '[class.hovered]': 'hovered',\n '[class.error]': 'error'\n },\n animations: [\n trigger('bbFilePickerImageAnimation', [\n transition(':enter', [\n style({opacity: 0}),\n animate('200ms', style({opacity: 1}))\n ]),\n transition(':leave', [\n animate('200ms', style({opacity: 0}))\n ])\n ])\n ],\n inputs: ['disabled', 'hideErrors', 'grouped', 'required'],\n preserveWhitespaces: false\n})\nexport class BbFilePicker extends BbFilePickerMixinBase implements ControlValueAccessor, IsRequired, CanDisable, IsGrouped, HasError, CanHideErrors {\n\n // Views.\n @ViewChild('fileInput', {static: true}) fileInput: ElementRef<HTMLInputElement>;\n @ContentChild('extra') extraTemplate: TemplateRef<any>;\n\n // Inputs.\n @Input() label: string | TemplateRef<any> | null = null;\n @Input() hint: string | TemplateRef<any> | null = null;\n @Input() accept: string | null = null;\n @Input() showImages: boolean = true;\n @Input() allowDragging: boolean = true;\n\n // State.\n labelId = `bb-file-picker-${nextUniqueId++}`;\n hovered: boolean = false;\n value$ = new BehaviorSubject<{ file?: File }>({});\n\n @Input()\n get value() {\n const {file} = this.value$.getValue();\n return file;\n }\n\n @Output() valueChange = new EventEmitter<File | null>();\n\n set value(value: File | null) {\n this.value$.next({file: value});\n this.valueChange.emit(value);\n }\n\n @HostListener('dragover', ['$event', 'true'])\n @HostListener('dragleave', ['$event', 'false'])\n onDrag(event: Event, isHovered: boolean) {\n // Validate the input can support drag.\n if (!this.allowDragging || this.disabled) {\n return;\n }\n\n // Prevent the default event action\n // and start the hovering.\n this.preventDefault(event);\n this.hovered = isHovered;\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event: Event) {\n // Validate the input can support drag.\n if (!this.allowDragging || this.disabled) {\n return;\n }\n\n // Prevent the default event action\n // and stop the hovering.\n this.preventDefault(event);\n this.hovered = false;\n\n // Save the file.\n this.saveFile(event['dataTransfer'].files);\n\n // Run the on change callback.\n this.onChangeCallback(this.value);\n }\n\n onButtonPressed(file?: File) {\n if (file) {\n this.value = null;\n this.onChangeCallback(this.value);\n return;\n }\n\n return this.openFilePicker();\n }\n\n openFilePicker() {\n return this.fileInput\n && this.fileInput.nativeElement\n && this.fileInput.nativeElement.click\n && this.fileInput.nativeElement.click();\n }\n\n onFileChange(event: Event) {\n // Validate the input is not disabled.\n if (this.disabled) {\n return;\n }\n\n // Extract the file from the event.\n const fileList = this.getFileListFromEvent(event);\n\n // Save the file.\n this.saveFile(fileList);\n\n // Run the on change callback.\n this.onChangeCallback(this.value);\n\n // Clear the file input.\n if (this.fileInput && this.fileInput.nativeElement) {\n this.fileInput.nativeElement.value = '';\n }\n }\n\n onTouchedCallback: () => void = () => {\n };\n\n onChangeCallback: (_: File | null) => void = () => {\n };\n\n writeValue(value: File | null) {\n this.value = value;\n }\n\n registerOnChange(method: (_: File | null) => void) {\n this.onChangeCallback = method;\n }\n\n registerOnTouched(method: () => void) {\n this.onTouchedCallback = method;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n onErrorChange(error: { token: string, data?: any } | null) {\n this.error = !!error;\n }\n\n validate({value}: FormControl<File>) {\n if (value === null || value === undefined) {\n return null;\n }\n\n const regexString = (this.accept || '*')\n .replace(/\\*/g, '.\\*')\n .replace(/,/g, '|');\n const mimeTypeRegex = new RegExp(regexString);\n\n const isNotValid = (typeof File === 'undefined') || !(value instanceof File) || !mimeTypeRegex.test(value?.type);\n return isNotValid && {\n invalidFileType: true\n };\n }\n\n private saveFile = (files?: FileList) => {\n // Validate the files exist.\n if (!files) {\n return;\n }\n\n // Retrieve the first file.\n const file = files[0];\n\n // Validate the first file exists.\n if (!file) {\n return;\n }\n\n // Save the file.\n this.value = file;\n };\n\n private getFileListFromEvent = (event: Event) => {\n const element = event.target as HTMLInputElement;\n\n if (!element) {\n return null;\n }\n\n return element.files;\n };\n\n private preventDefault = (event: Event) => {\n event.preventDefault();\n event.stopPropagation();\n };\n\n}\n","<!-- The label of the input. -->\n<label *ngIf=\"label as labelContent\"\n [for]=\"labelId\"\n class=\"bb-file-picker-label\">\n <ng-template [bbTemplate]=\"labelContent\">\n {{ labelContent }}\n </ng-template>\n</label>\n\n<!-- The input that can open the file picker. -->\n<input #fileInput\n [accept]=\"accept\"\n [disabled]=\"disabled\"\n (change)=\"onFileChange($event)\"\n class=\"bb-file-picker-input\"\n type=\"file\"\n tabindex=\"-1\">\n\n<div *ngIf=\"value$ | async as data\"\n class=\"bb-file-picker-wrapper\">\n <!-- The button that accepts files. -->\n <div class=\"bb-file-picker-container\">\n <button [class.destructive]=\"!!data?.file\"\n [class.standalone]=\"!allowDragging\"\n [disabled]=\"disabled\"\n [id]=\"labelId\"\n (click)=\"onButtonPressed(data?.file)\"\n type=\"button\"\n class=\"bb-file-picker-button\">\n <ng-container *ngTemplateOutlet=\"data?.file ? closeIcon : uploadIcon\"></ng-container>\n {{ (data?.file ? 'file-picker.remove' : 'file-picker.choose') | bbLocalize }}\n </button>\n <div *ngIf=\"allowDragging\"\n class=\"bb-file-picker-zone\">\n {{ 'file-picker.drop' | bbLocalize }}\n </div>\n </div>\n\n <ng-container *ngIf=\"!!extraTemplate\">\n <ng-container *ngTemplateOutlet=\"extraTemplate; context: {$implicit: data?.file}\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"showImages\">\n <div *ngIf=\"data?.file | bbFileImage | async as image\"\n class=\"bb-file-picker-image-container\">\n <div class=\"bb-file-picker-image-wrapper\">\n <div [@bbFilePickerImageAnimation]=\"true\"\n [style.padding-top.%]=\"image?.aspectRatio * 100\"\n [style.background-image]=\"image?.background\"\n class=\"bb-file-picker-image\">\n </div>\n </div>\n </div>\n </ng-container>\n\n <!-- Extra information of the file. -->\n <div [class.visible]=\"!!data?.file\"\n class=\"bb-file-picker-info\">\n <span *ngIf=\"data?.file?.name as name\">{{ name }}</span>\n <span *ngIf=\"data?.file?.size as size\">{{ size | bbFileSize }}</span>\n </div>\n</div>\n\n<bb-form-error *ngIf=\"!hideErrors\"\n (errorChange)=\"onErrorChange($event)\">\n</bb-form-error>\n\n<!-- The file picker hint. -->\n<p *ngIf=\"hint as hintContent\"\n class=\"bb-file-picker-hint\">\n <ng-template [bbTemplate]=\"hintContent\">\n {{ hintContent }}\n </ng-template>\n</p>\n\n<!-- Upload icon. -->\n<ng-template #uploadIcon>\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n class=\"bb-file-picker-icon\"\n width=\"24\"\n height=\"24\">\n <path fill=\"currentColor\"\n d=\"M2 12.5C2 9.46 4.46 7 7.5 7H18c2.21 0 4 1.79 4 4s-1.79 4-4 4H9.5a2.5 2.5 0 010-5H17v2H9.41c-.55 0-.55 1 0 1H18c1.1 0 2-.9 2-2s-.9-2-2-2H7.5C5.57 9 4 10.57 4 12.5S5.57 16 7.5 16H17v2H7.5C4.46 18 2 15.54 2 12.5z\"></path>\n <path fill=\"none\" d=\"M0 0h24v24H0V0z\"></path>\n </svg>\n</ng-template>\n\n<!-- Close icon. -->\n<ng-template #closeIcon>\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n class=\"bb-file-picker-icon\"\n width=\"24\"\n height=\"24\">\n <path fill=\"currentColor\"\n d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"></path>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\n </svg>\n</ng-template>\n","import {\n Directive,\n DoCheck,\n ElementRef,\n Host,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Self\n} from '@angular/core';\nimport {BbFormControl} from '../form-control/form-control.component';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {NgControl} from '@angular/forms';\nimport {Subscription} from 'rxjs';\n\n@Directive({\n selector: 'select[bbInput]',\n host: {\n '[disabled]': 'disabled',\n '(focus)': 'setFocus(true)',\n '(blur)': 'setFocus(false)'\n }\n})\nexport class BbSelect implements OnInit, DoCheck, OnDestroy {\n\n protected hasArrow: boolean = true;\n\n private _subscription: Subscription;\n\n constructor(protected _elementRef: ElementRef,\n @Optional() @Self() protected _ngControl: NgControl,\n @Optional() @Host() protected _formControl: BbFormControl) {\n }\n\n ngOnInit() {\n // Set an arrow on the form control if\n // it requires one.\n this._formControl.arrow = this.hasArrow;\n }\n\n ngDoCheck() {\n if (this._ngControl) {\n this.disabled = this._ngControl.disabled;\n }\n }\n\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n\n focus() {\n return this._elementRef?.nativeElement?.focus();\n }\n\n setFocus(hasFocus: boolean) {\n if (!this._formControl) {\n return;\n }\n\n this._formControl.focused = hasFocus;\n }\n\n @HostBinding('attr.id')\n get id() {\n return this._formControl?.labelId ?? null;\n }\n\n get disabled() {\n if (this._ngControl && this._ngControl.disabled !== null) {\n return this._ngControl.disabled;\n }\n\n return this._disabled;\n }\n\n @Input()\n set disabled(newValue: boolean) {\n this._disabled = coerceBooleanProperty(newValue);\n\n if (!this._formControl) {\n return;\n }\n\n this._formControl.disabled = this._disabled;\n }\n\n private _disabled = false;\n\n get required() {\n return this._required;\n }\n\n @Input()\n set required(newValue: boolean) {\n this._required = coerceBooleanProperty(newValue);\n\n if (!this._formControl) {\n return;\n }\n\n this._formControl.required = this._required;\n }\n\n private _required = false;\n\n}\n\n@Directive({\n selector: 'input[bbInput], textarea[bbInput]',\n host: {\n '[disabled]': 'disabled',\n '[readonly]': 'readonly',\n '(focus)': 'setFocus(true)',\n '(blur)': 'setFocus(false)'\n }\n})\nexport class BbInput extends BbSelect {\n\n protected override hasArrow: boolean = false;\n\n constructor(protected override _elementRef: ElementRef,\n @Optional() @Self() protected override _ngControl: NgControl,\n @Optional() @Host() protected override _formControl: BbFormControl) {\n super(_elementRef, _ngControl, _formControl);\n }\n\n get readonly() {\n return this._readonly;\n }\n\n @Input()\n set readonly(newValue: boolean) {\n this._readonly = coerceBooleanProperty(newValue);\n\n if (!this._formControl) {\n return;\n }\n\n this._formControl.readonly = this._readonly;\n }\n\n private _readonly = false;\n\n}\n","import {\n CanDisable,\n CanDisableConstructor,\n CanHideErrors,\n CanHideErrorsConstructor,\n HasError,\n HasErrorConstructor,\n IsGrouped,\n IsGroupedConstructor,\n IsReadonly,\n IsReadonlyConstructor,\n IsRequired,\n IsRequiredConstructor,\n mixinDisabled,\n mixinError,\n mixinGrouped,\n mixinHideErrors,\n mixinReadonly,\n mixinRequired\n} from '@bravobit/bb-foundation';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormControl,\n FormGroup,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n Validators\n} from '@angular/forms';\nimport {BehaviorSubject, combineLatest, Observable, Subscription} from 'rxjs';\nimport {distinctUntilChanged, map, startWith, tap} from 'rxjs/operators';\nimport {LOCALIZE_ID} from '@bravobit/bb-foundation/localize';\nimport {formatDate} from '@angular/common';\n\nclass BbDatePickerBase {\n}\n\nconst BbFilePickerMixinBase: IsRequiredConstructor\n & IsReadonlyConstructor\n & CanDisableConstructor\n & IsGroupedConstructor\n & HasErrorConstructor\n & CanHideErrorsConstructor\n & typeof BbDatePickerBase\n = mixinRequired(mixinReadonly(mixinDisabled(mixinGrouped(mixinError(mixinHideErrors(BbDatePickerBase))))));\n\n@Component({\n selector: 'bb-date-picker',\n templateUrl: './date-picker.component.html',\n styleUrls: ['./date-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => BbDatePicker),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: BbDatePicker,\n multi: true\n }\n ],\n host: {\n 'class': 'bb-date-picker',\n '[class.required]': 'required',\n '[class.readonly]': 'readonly',\n '[class.disabled]': 'disabled',\n '[class.grouped]': 'grouped',\n '[class.error]': 'error'\n },\n inputs: ['required', 'readonly', 'disabled', 'grouped', 'hideErrors'],\n preserveWhitespaces: false\n})\nexport class BbDatePicker extends BbFilePickerMixinBase implements ControlValueAccessor, OnInit, OnDestroy, IsRequired, IsReadonly, CanDisable, IsGrouped, HasError, CanHideErrors {\n\n // Readonly data.\n readonly _yearRegex = /^(10|[1-9][0-9])\\d{2}$/; // Note: 1000 - 9999\n\n // Inputs.\n @Input() label: string | TemplateRef<any> | null = null;\n @Input() hint: string | TemplateRef<any> | null = null;\n @Input() dayPlaceholder: string | null = 'dd';\n @Input() monthPlaceholder: string | null = 'mm';\n @Input() yearPlaceholder: string | null = 'yyyy';\n\n @Input()\n set years(value: [string | number, string | number] | null) {\n this.parseYears(value);\n }\n\n // Forms.\n form: FormGroup;\n trackByValue = (_, item) => item?.value;\n\n // Data.\n data$: Observable<{\n days?: { label: string, value: number }[],\n months?: { label: string, value: number }[],\n years?: number[] | null\n }>;\n years$ = new BehaviorSubject<number[] | null>(null);\n\n get value() {\n return this.formToDateString(this.form?.value);\n }\n\n @Input()\n set value(value: string | null) {\n this.parseDateStringInForm(value);\n this.valueChange.emit(this.value);\n }\n\n @Output() valueChange = new EventEmitter<string | null>();\n\n // Subscriptions.\n private _subscription = new Subscription();\n\n constructor(@Inject(LOCALIZE_ID) private _localizeId: Observable<string>) {\n super();\n }\n\n ngOnInit() {\n this.composeForm();\n this.getData();\n this.handleChanges();\n }\n\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n\n writeValue(value: string | null) {\n this.parseDateStringInForm(value);\n }\n\n registerOnChange(method: (_: string | null) => void) {\n this.onChangeCallback = method;\n }\n\n registerOnTouched(method: () => void) {\n this.onTouchedCallback = method;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n\n if (this.disabled) {\n this.form?.disable();\n } else {\n this.form?.enable();\n }\n }\n\n onTouchedCallback: () => void = () => {\n };\n\n onChangeCallback: (_: string | null) => void = () => {\n };\n\n onErrorChange(error: { token: string, data?: any } | null) {\n this.error = !!error;\n }\n\n validate({value}: FormControl<string>) {\n if (value === null || value === undefined) {\n return null;\n }\n\n const data = this.parseDateString(value);\n const date = new Date(data?.year, data?.month - 1, data?.day);\n\n const maxDays = this.getDaysInMonth(data?.month, `${data?.year}`);\n\n const isInvalidDate = date.toString() === 'Invalid Date';\n const exceededMaxDays = data?.day > maxDays;\n\n return (isInvalidDate || exceededMaxDays) && {\n invalidDate: true\n };\n }\n\n private handleChanges() {\n const dateOrNull$ = this.form.valueChanges.pipe(\n map(value => this.formToDateString(value)),\n distinctUntilChanged()\n );\n\n const subscription = dateOrNull$.subscribe(() => {\n this.valueChange.emit(this.value);\n this.onChangeCallback(this.value);\n });\n this._subscription.add(subscription);\n }\n\n private getData() {\n const years$ = this.years$.asObservable();\n const months$ = this.getMonthData();\n const days$ = this.getDayData();\n\n this.data$ = combineLatest([years$, months$, days$]).pipe(\n map(([years, months, days]) => ({years, months, days})),\n tap(data => this.verifyListData(data?.days?.length, data?.years))\n );\n }\n\n private verifyListData(maxDays: number, years: number[] | null) {\n const dayControl = this.form.get('day');\n if (dayControl?.value !== null && dayControl?.value > maxDays) {\n dayControl.patchValue(maxDays);\n }\n\n const yearControl = this.form.get('year');\n if (years !== null && yearControl?.value !== null && this._yearRegex.test(yearControl?.value)) {\n const selectedYear = Number(yearControl?.value);\n\n const firstYear = Math.min(...years);\n const lastYear = Math.max(...years);\n\n if (selectedYear < firstYear || selectedYear > lastYear) {\n Promise.resolve().then(() => yearControl.patchValue(null));\n }\n }\n }\n\n private getDayData() {\n const count$ = this.form.valueChanges.pipe(\n startWith(this.form?.value as object),\n map(({month, year}) => this.getDaysInMonth(month, year)),\n distinctUntilChanged()\n );\n\n return count$.pipe(\n map(count => Array(count).fill(0).map((_, index) => ({\n label: `${index + 1}`,\n value: index + 1\n })))\n );\n }\n\n private getMonthData() {\n return this._localizeId.pipe(\n map(locale => {\n return Array(12).fill(0).map((_, month) => {\n const date = new Date(2000, month, 1);\n const label = formatDate(date, 'LLLL', locale);\n return {label, value: month + 1};\n });\n })\n );\n }\n\n private composeForm() {\n const {required, pattern, minLength, maxLength} = Validators;\n const yearPattern = pattern(this._yearRegex);\n const yearValidators = [required, yearPattern, minLength(4), maxLength(4)];\n\n this.form = new FormGroup({\n day: new FormControl<number>(null, required),\n month: new FormControl<number>(null, required),\n year: new FormControl<number>(null, yearValidators)\n });\n }\n\n private parseDateStringInForm(value: string | null) {\n // If the date string was not a valid format, reset the form.\n if (!this.isValidDateString(value)) {\n if (value !== null) {\n this.form?.reset({year: null, month: null, day: null}, {emitEvent: false});\n }\n return;\n }\n\n // Parse the date string and save in the form.\n const data = this.parseDateString(value);\n const year = data?.year !== null && data?.year !== undefined\n ? this.padString(`${data?.year}`, 4, '0')\n : null;\n const formData = {...(data ?? {}), year};\n\n this.form?.patchValue(formData, {emitEvent: false});\n }\n\n private parseDateString(value: string) {\n if (!this.isValidDateString(value)) {\n return null;\n }\n\n // Parse the date string.\n const [year, month, day] = value?.split('-');\n\n return {\n day: day ? parseInt(day, 10) : null,\n month: month ? parseInt(month, 10) : null,\n year: year ? parseInt(year, 10) : null\n };\n }\n\n private parseYears(values: [string | number, string | number] | null) {\n if (!values) {\n return this.years$.next(null);\n }\n\n // Parse the values to years (in numbers).\n const [first, last] = values;\n const firstYear = this.parseYearFormat(first);\n const lastYear = this.parseYearFormat(last);\n\n // Check cases in where we cannot parse.\n if (firstYear === null || lastYear === null) {\n return this.years$.next(null);\n }\n\n const difference = firstYear - lastYear;\n const absoluteDifference = Math.abs(difference) + 1;\n\n // Create an array with years.\n const years = Array(absoluteDifference)\n .fill(0)\n .map((_, index) => difference < 0 ? (firstYear + index) : (firstYear - index));\n\n // Validate we have one or more years.\n if (years?.length <= 0) {\n return this.years$.next(null);\n }\n\n // Push the years.\n return this.years$.next(years);\n }\n\n private formToDateString = ({year, month, day}) => {\n if (this.form?.invalid) {\n return null;\n }\n\n const prefixedMonth = this.padString(`${month}`, 2, '0');\n const prefixedDay = this.padString(`${day}`, 2, '0');\n\n return [year, prefixedMonth, prefixedDay].join('-');\n };\n\n private parseYearFormat = (value: string | number) => {\n // Transform the value to a definitive string.\n const yearString = `${value}`;\n const currentFullYear = new Date().getFullYear();\n\n // Handle default \"current\" syntax.\n if (yearString === 'current') {\n return currentFullYear;\n }\n\n // Handle \"current + {amount}\" syntax.\n if (/^current\\s?\\+\\s?\\d+$/.test(yearString)) {\n const amount = Number(yearString?.split('+')?.[1]?.trim()) ?? 0;\n return currentFullYear + amount;\n }\n\n // Handle \"current - {amount}\" syntax.\n if (/^current\\s?-\\s?\\d+$/.test(yearString)) {\n const amount = Number(yearString?.split('-')?.[1]?.trim()) ?? 0;\n return currentFullYear - amount;\n }\n\n // Handling the default number case.\n if (/^[0-9]{4}$/.test(yearString)) {\n return Number(yearString);\n }\n\n // We could not parse it.\n return null;\n };\n\n private getDaysInMonth = (month: number | null = null, year: string | null = null) => {\n if (this.form?.invalid || month === null || year === null) {\n return 31;\n }\n\n const parsedYear = parseInt(year, 10);\n return new Date(parsedYear, month, 0).getDate();\n };\n\n private isValidDateString = (value: unknown) => {\n return typeof value === 'string' && /^[0-9]{4}-[0-9]{2}-[0-9]{2}$/.test(value);\n };\n\n private padString = (value: string, maxLength: number, fillString: string = '0') => {\n const count = maxLength - value.length;\n for (let index = 0; index < count; index++) {\n value = `${fillString}${value}`;\n }\n\n return value;\n };\n\n}\n","<!-- Label of the date picker. -->\n<label *ngIf=\"label as labelContent\"\n class=\"bb-date-picker-label\">\n <ng-template [bbTemplate]=\"labelContent\">\n {{ labelContent }}\n </ng-template>\n</label>\n\n<!-- The form containing the year/month/day fields. -->\n<form *ngIf=\"data$ | async as data\"\n [formGroup]=\"form\"\n class=\"bb-date-picker-container\"\n novalidate>\n <div class=\"bb-date-picker-item\">\n <bb-form-control hideErrors>\n <select [class.has-value]=\"!!form?.get('day')?.value\"\n bbInput\n autocomplete=\"off\"\n formControlName=\"day\">\n <option [ngValue]=\"null\">{{ dayPlaceholder }}</option>\n <option *ngFor=\"let day of data?.days; trackBy: trackByValue\"\n [ngValue]=\"day?.value\">\n {{ day?.label }}\n </option>\n </select>\n </bb-form-control>\n </div>\n <div class=\"bb-date-picker-item\">\n <bb-form-control hideErrors>\n <select [class.has-value]=\"!!form?.get('month')?.value\"\n bbInput\n autocomplete=\"off\"\n formControlName=\"month\">\n <option [ngValue]=\"null\">{{ monthPlaceholder }}</option>\n <option *ngFor=\"let month of data?.months; trackBy: trackByValue\"\n [ngValue]=\"month?.value\">\n {{ month?.label }}\n </option>\n </select>\n </bb-form-control>\n </div>\n <div class=\"bb-date-picker-item\">\n <bb-form-control hideErrors>\n <select *ngIf=\"data?.years?.length > 0; else defaultYearInputTemplate\"\n [class.has-value]=\"!!form?.get('year')?.value\"\n bbInput\n autocomplete=\"off\"\n formControlName=\"year\">\n <option [ngValue]=\"null\">{{ yearPlaceholder }}</option>\n <option *ngFor=\"let year of data?.years\"\n [value]=\"year\">\n {{ year }}\n </option>\n </select>\n\n <ng-template #defaultYearInputTemplate>\n <input [placeholder]=\"yearPlaceholder\"\n bbInput\n type=\"text\"\n inputmode=\"numeric\"\n minlength=\"4\"\n maxlength=\"4\"\n pattern=\"^[0-9]{4}$\"\n formControlName=\"year\"\n autocomplete=\"off\">\n </ng-template>\n </bb-form-control>\n </div>\n</form>\n\n<!-- The date picker error. -->\n<bb-form-error *ngIf=\"!hideErrors\"\n (errorChange)=\"onErrorChange($event)\">\n</bb-form-error>\n\n<!-- The date picker hint. -->\n<p *ngIf=\"hint as hintContent\"\n class=\"bb-date-picker-hint\">\n <ng-template [bbTemplate]=\"hintContent\">\n {{ hintContent }}\n </ng-template>\n</p>\n","import {Directive} from '@angular/core';\n\n@Directive({\n selector: '[bbSuffix]',\n host: {\n 'class': 'bb-suffix'\n }\n})\nexport class BbSuffix {\n}\n\n@Directive({\n selector: '[bbPrefix]',\n host: {\n 'class': 'bb-prefix'\n }\n})\nexport class BbPrefix {\n}\n","import {IsGrouped, IsGroupedConstructor, mixinGrouped} from '@bravobit/bb-foundation';\nimport {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\n\nclass BbFormGroupBase {\n}\n\nconst BbFormGroupMixinBase: IsGroupedConstructor\n & typeof BbFormGroupBase\n = mixinGrouped(BbFormGroupBase);\n\n@Component({\n selector: 'bb-form-group',\n templateUrl: './form-group.component.html',\n styleUrls: ['./form-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'bb-form-group',\n '[class.grouped]': 'grouped'\n },\n inputs: ['grouped'],\n preserveWhitespaces: false\n})\nexport class BbFormGroup extends BbFormGroupMixinBase implements IsGrouped {\n}\n","<ng-content></ng-content>\n","import {Inject, LOCALE_ID, Optional, Pipe, PipeTransform} from '@angular/core';\nimport {Localize} from '@bravobit/bb-foundation/localize';\nimport {formatDate} from '@angular/common';\n\n@Pipe({\n name: 'bbRelativeTime'\n})\nexport class BbRelativeTime implements PipeTransform {\n\n constructor(@Inject(LOCALE_ID) private _localeId: string,\n @Optional() private _localize?: Localize) {\n }\n\n transform(value: string | number | Date) {\n // Parse the value to a date object.\n const date = this.parseAsDate(value);\n\n // Check if the date is valid.\n if (!this.isValidDate(date)) {\n return value;\n }\n\n // Return the formatted date.\n return this.format(date);\n }\n\n private format(date: Date) {\n // It happens tomorrow.\n if (this.isTomorrow(date)) {\n return this.formatString(date, 'times.tomorrow_at', 'shortTime');\n }\n\n // It happened today.\n if (this.isToday(date)) {\n return this.formatString(date, 'times.today_at', 'shortTime');\n }\n\n // It happened yesterday.\n if (this.isYesterday(date)) {\n return this.formatString(date, 'times.yesterday_at', 'shortTime');\n }\n\n // Just return the date.\n return this.formatString(date);\n }\n\n private formatString(date: Date, token?: string, format?: string) {\n // Just return the parsed date.\n if (!this._localize || !token || !format) {\n return formatDate(date, 'mediumDate', this.locale);\n }\n\n // Return the translated formatting.\n return this._localize.translate({\n token: token,\n data: {date: formatDate(date, format, this.locale)}\n });\n }\n\n private get locale() {\n return this._localize?.current?.locale ?? this._localeId;\n }\n\n private isValidDate = (date: Date) => {\n return typeof date === 'object' &&\n typeof date.getTime === 'function' &&\n !isNaN(date.getTime());\n };\n\n private parseAsDate = (value: string | number | Date) => {\n // Add a Z after the date so\n // it is treated as a UTC date.\n if (typeof value === 'string' && /^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$/.test(value)) {\n return new Date(`${value}Z`);\n }\n\n // Return the regular parsed date.\n return new Date(value);\n };\n\n private isToday = (date: Date) => {\n const today = new Date();\n return date?.getDate() === today?.getDate() &&\n date?.getMonth() === today?.getMonth() &&\n date?.getFullYear() === today?.getFullYear();\n };\n\n private isYesterday = (date: Date) => {\n const yesterday = new Date(new Date()?.setDate(new Date()?.getDate() - 1));\n return date?.getDate() === yesterday?.getDate() &&\n date?.getMonth() === yesterday?.getMonth() &&\n date?.getFullYear() === yesterday?.getFullYear();\n };\n\n private isTomorrow = (date: Date) => {\n const tomorrow = new Date(new Date()?.setDate(new Date()?.getDate() + 1));\n return date?.getDate() === tomorrow?.getDate() &&\n date?.getMonth() === tomorrow?.getMonth() &&\n date?.getFullYear() === tomorrow?.getFullYear();\n };\n\n}\n","import {\n CanDisable,\n CanDisableConstructor,\n mixinDisabled,\n IsGrouped,\n IsGroupedConstructor,\n mixinGrouped\n} from '@bravobit/bb-foundation';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n Input,\n ViewEncapsulation\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\n\nlet nextUniqueId = 0;\n\nclass BbCheckboxBase {\n}\n\nconst BbCheckboxMixinBase: IsGroupedConstructor\n & CanDisableConstructor\n & typeof BbCheckboxBase\n = mixinDisabled(mixinGrouped(BbCheckboxBase));\n\n@Component({\n selector: 'bb-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BbCheckbox), multi: true}\n ],\n host: {\n 'class': 'bb-checkbox',\n '[class.grouped]': 'grouped'\n },\n inputs: ['grouped', 'disabled'],\n preserveWhitespaces: false\n})\nexport class BbCheckbox extends BbCheckboxMixinBase implements ControlValueAccessor, IsGrouped, CanDisable {\n\n // Data.\n labelId = `bb-checkbox-${nextUniqueId++}`;\n\n // Inputs.\n @Input() tabIndex: number;\n\n get checked() {\n return this._checked;\n }\n\n @Input()\n set checked(value: any) {\n this._checked = coerceBooleanProperty(value);\n this._changeDetection.markForCheck();\n }\n\n private _checked: boolean = false;\n\n constructor(private _changeDetection: ChangeDetectorRef) {\n super();\n }\n\n // Methods.\n onChange: (newValue: boolean) => void = () => {\n };\n\n onTouched: () => void = () => {\n };\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n this._changeDetection.markForCheck();\n }\n\n writeValue(newValue: boolean) {\n this.checked = newValue;\n }\n\n onInteractionEvent(event: Event) {\n // Stop the propagation to prevent it from bubbling up.\n event.stopPropagation();\n }\n\n onInputClick(event: Event) {\n // Stop the propagation to prevent it from bubbling up.\n event.stopPropagation();\n\n // Toggle the value.\n this.checked = !this.checked;\n\n // Emit the change event.\n this.onChange && this.onChange(this.checked);\n }\n\n}\n","<input [id]=\"labelId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\"\n class=\"bb-checkbox-input\"\n tabindex=\"-1\"\n type=\"checkbox\">\n\n<label [for]=\"labelId\"\n [attr.tabindex]=\"disabled ? -1 : (tabIndex || 0)\"\n (keyup.space)=\"onInputClick($event)\"\n class=\"bb-checkbox-label\">\n <span>\n <svg width=\"12px\"\n height=\"10px\"\n viewbox=\"0 0 12 10\">\n <polyline points=\"1.5 6 4.5 9 10.5 1\"></polyline>\n </svg>\n </span>\n <span>\n <ng-content></ng-content>\n </span>\n</label>\n","import {ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation} from '@angular/core';\nimport {BehaviorSubject} from 'rxjs';\n\n@Component({\n selector: 'bb-avatar',\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n host: {\n 'class': 'bb-avatar',\n 'role': 'img',\n '[style.width.px]': 'size',\n '[style.min-width.px]': 'size',\n '[style.height.px]': 'size',\n '[style.min-height.px]': 'size',\n '[style.font-size.px]': 'size * 0.42',\n '[style.color]': 'color',\n '[style.background-color]': 'backgroundColor'\n }\n})\nexport class BbAvatar {\n\n // Inputs.\n @Input() size: number = 40;\n\n // State.\n state$ = new BehaviorSubject<string>('initials');\n\n // Data.\n private _src: string | null = null;\n private _title: string | null = null;\n private _initials: string = '!';\n private _color: string = 'rgb(255, 255, 255)';\n private _backgroundColor: string = 'rgb(66, 66, 66)';\n\n @Input()\n set src(value: string) {\n this._src = value;\n\n if (this._src) {\n this.state$.next('image');\n }\n }\n\n @Input()\n @HostBinding('attr.title')\n set title(value: string) {\n // Set the title and the initials.\n this._title = value ?? '!';\n this._initials = this.getInitials(this._title);\n\n // Generate the colors based on the name.\n const {r, g, b} = this.toRgb(this._title);\n this.setColors(r, g, b);\n }\n\n @Input()\n set tintColor(value: string) {\n const result = this.parseColorFormat(value);\n if (!result) {\n return;\n }\n\n const {r, g, b} = result;\n this.setColors(r, g, b);\n }\n\n get src() {\n return this._src;\n }\n\n get color() {\n return this._color;\n }\n\n get backgroundColor() {\n return this._backgroundColor;\n }\n\n get title() {\n return this._title;\n }\n\n get initials() {\n return this._initials;\n }\n\n private setColors(red: number, green: number, blue: number) {\n this._color = `rgb(${red},${green},${blue})`;\n this._backgroundColor = `rgba(${red},${green},${blue}, 0.25)`;\n }\n\n private toRgb = (value: string) => {\n const baseRed = 128;\n const baseGreen = 128;\n const baseBlue = 128;\n\n let seed = value.charCodeAt(0) ^ value.charCodeAt(1);\n const rand_1 = Math.abs((Math.sin(seed++) * 10000)) % 256;\n const rand_2 = Math.abs((Math.sin(seed++) * 10000)) % 256;\n const rand_3 = Math.abs((Math.sin(seed++) * 10000)) % 256;\n\n const r = Math.round((rand_1 + baseRed) / 2);\n const g = Math.round((rand_2 + baseGreen) / 2);\n const b = Math.round((rand_3 + baseBlue) / 2);\n\n return {r, g, b};\n };\n\n private getInitials = (name: string) => {\n // Get all the initials.\n const names = (name ?? '').split(' ');\n const initials = names\n .map(name => name.charAt(0).toUpperCase())\n .filter(name => /^[a-zA-Z]+$/.test(name));\n\n // Check if there are any initials.\n if (initials?.length <= 0) {\n return null;\n }\n\n // Get the first and last initials.\n if (initials?.length > 1) {\n return `${initials?.[0]}${initials?.[initials?.length - 1]}`;\n }\n\n // Get only the first initial.\n return initials?.[0];\n };\n\n private parseColorFormat = (value: string) => {\n if (!value) {\n return null;\n }\n\n // Hex 3 values.\n let match = value.match(/^#([0-9a-f]{3})$/i);\n if (match && match[1]) {\n const r = parseInt(match[1].charAt(0), 16) * 0x11;\n const g = parseInt(match[1].charAt(1), 16) * 0x11;\n const b = parseInt(match[1].charAt(2), 16) * 0x11;\n\n return {r, g, b};\n }\n\n // Hex 6 values.\n match = value.match(/^#([0-9a-f]{6})$/i);\n if (match && match[1]) {\n const r = parseInt(match[1].substring(0, 2), 16);\n const g = parseInt(match[1].substring(2, 4), 16);\n const b = parseInt(match[1].substring(4, 6), 16);\n\n return {r, g, b};\n }\n\n // Rgb values.\n match = value.match(/^rgb\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)$/i);\n if (match) {\n const r = parseInt(match[1], 10);\n const g = parseInt(match[2], 10);\n const b = parseInt(match[3], 10);\n\n return {r, g, b};\n }\n\n // Not a supported color format.\n console?.warn?.(`BbAvatar: Unsupported tintColor \"${value}\" was used.`);\n return null;\n };\n\n}\n","<ng-container [ngSwitch]=\"state$ | async\">\n <!-- Image. -->\n <ng-container *ngSwitchCase=\"'image'\">\n <img [src]=\"src\"\n [alt]=\"initials\"\n (error)=\"state$?.next('initials')\"\n class=\"bb-avatar-image\">\n </ng-container>\n\n <!-- Default initials fallback. -->\n <ng-container *ngSwitchDefault>\n {{ initials }}\n </ng-container>\n</ng-container>\n","import {ChangeDetectionStrategy, Component, Inject, Input, Optional, ViewEncapsulation} from '@angular/core';\nimport {ELEMENTS_ICONS, ElementsIcon} from '../elements.interfaces';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {BehaviorSubject} from 'rxjs';\n\n@Component({\n selector: 'bb-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'bb-icon',\n '[attr.aria-hidden]': 'ariaHidden',\n '[style.width.px]': 'size',\n '[style.height.px]': 'size',\n '[style.min-width.px]': 'size',\n '[style.min-height.px]': 'size',\n '[style.font-size.px]': 'size'\n },\n preserveWhitespaces: false\n})\nexport class BbIcon {\n\n // Data.\n private _src: string | null = null;\n\n // State.\n state$ = new BehaviorSubject<any>(null);\n\n @Input() alt: string | null = null;\n @Input() size: number = 24;\n\n @Input()\n set src(newValue: string | null) {\n this.state$.next(this.convert(newValue));\n this._src = newValue;\n }\n\n get src() {\n return this._src;\n }\n\n @Input()\n set ariaHidden(newValue: boolean) {\n this._ariaHidden = coerceBooleanProperty(newValue);\n }\n\n get ariaHidden() {\n return this._ariaHidden;\n }\n\n private _ariaHidden = true;\n\n constructor(@Optional() @Inject(ELEMENTS_ICONS) private _registry: ElementsIcon[]) {\n }\n\n private convert(src: string | null) {\n const [namespace, value] = (src || '').split(':');\n\n const onError = () => {\n this.warn(`ElementsModule: The icon with src \"${src}\" could not be rendered correctly; Did you put a correct src attribute?`);\n return {type: 'unknown'};\n };\n\n if (!namespace || !value || !this._registry) {\n return onError();\n }\n\n // Try to find a image icon.\n const imageIcon = this.findImageIcon(namespace, value);\n if (imageIcon) {\n return imageIcon;\n }\n\n // Try to find a font icon.\n const fontIcon = this.findFontIcon(namespace, value);\n if (fontIcon) {\n return fontIcon;\n }\n\n // Return the on error function.\n return onError();\n }\n\n private findImageIcon(namespace: string, value: string) {\n const data = this._registry.find(item => item['namespace'] === namespace && item['name'] === value);\n\n if (!data) {\n return null;\n }\n\n return {type: data['type'], src: data['src']};\n }\n\n private findFontIcon(namespace: string, content: string) {\n const data = this._registry.find(item => item['namespace'] === namespace);\n\n if (!data) {\n return null;\n }\n\n const uses = data['uses'];\n if (uses === 'data-attribute') {\n return {type: data['type'], className: data['className'], attribute: content};\n }\n\n return {type: data['type'], className: data['className'], content};\n }\n\n private warn = (content: string) => {\n return console && console.warn && console.warn(content);\n };\n\n}\n","<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","import {ChangeDetectionStrategy, Component, EventEmitter, Output, ViewEncapsulation} from '@angular/core';\n\n@Component({\n selector: 'bb-tag',\n templateUrl: './tag.component.html',\n styleUrls: ['./tag.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n host: {'class': 'bb-tag'}\n})\nexport class BbTag {\n\n // Outputs.\n @Output() onClose: EventEmitter<void> = new EventEmitter<void>();\n\n}\n","<ng-content></ng-content>\n\n<button *ngIf=\"onClose?.observed\"\n (click)=\"onClose.emit()\"\n type=\"button\">\n Close\n</button>","import {BbDropdown, BbDropdownItem} from './dropdown/dropdown.component';\nimport {ELEMENTS_ERRORS, ELEMENTS_ICONS} from './elements.interfaces';\nimport {BbFormSubmitter} from './directives/form-submitter.directive';\nimport {BbImagePicker} from './image-picker/image-picker.component';\nimport {BbFormControl} from './form-control/form-control.component';\nimport {BbFilePicker} from './file-picker/file-picker.component';\nimport {BbDatePicker} from './date-picker/date-picker.component';\nimport {LocalizeModule} from '@bravobit/bb-foundation/localize';\nimport {BbPrefix, BbSuffix} from './directives/addon.directive';\nimport {BbFormSubmit} from './directives/form-submit.directive';\nimport {BbInput, BbSelect} from './directives/input.directive';\nimport {BbFormGroup} from './form-group/form-group.component';\nimport {BbFormError} from './form-error/form-error.component';\nimport {BbAnchor, BbButton} from './button/button.component';\nimport {ModuleWithProviders, NgModule} from '@angular/core';\nimport {BbRelativeTime} from './pipes/relative-time.pipe';\nimport {UtilsModule} from '@bravobit/bb-foundation/utils';\nimport {BbCheckbox} from './checkbox/checkbox.component';\nimport {BbSpinner} from './spinner/spinner.component';\nimport {BbFileImage} from './pipes/file-image.pipe';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {BbAvatar} from './avatar/avatar.component';\nimport {BbFileSize} from './pipes/file-size.pipe';\nimport {CommonModule} from '@angular/common';\nimport {BbIcon} from './icon/icon.component';\nimport {BbTag} from './tag/tag.component';\n\nconst DECLARATIONS_EXPORTS = [\n // Directives.\n BbFormError,\n BbFormSubmit,\n BbFormSubmitter,\n BbInput,\n BbSelect,\n BbPrefix,\n BbSuffix,\n // Pipes.\n BbFileSize,\n BbFileImage,\n BbRelativeTime,\n // Components.\n BbButton,\n BbAnchor,\n BbSpinner,\n BbIcon,\n BbFormControl,\n BbFormGroup,\n BbCheckbox,\n BbDropdown,\n BbDropdownItem,\n BbTag,\n BbAvatar,\n BbFilePicker,\n BbImagePicker,\n BbDatePicker\n];\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n LocalizeModule,\n UtilsModule\n ],\n declarations: [...DECLARATIONS_EXPORTS],\n exports: [...DECLARATIONS_EXPORTS, UtilsModule]\n})\nexport class ElementsModule {\n\n static forRoot(): ModuleWithProviders<ElementsModule> {\n return {\n ngModule: ElementsModule,\n providers: [\n {provide: ELEMENTS_ERRORS, useFactory: getErrors, multi: true},\n ELEMENTS_MATERIAL_ICON\n ]\n };\n }\n\n}\n\nexport const ELEMENTS_MATERIAL_ICON = {\n provide: ELEMENTS_ICONS,\n useValue: {namespace: 'material', className: 'material-icons', uses: 'content', type: 'font'},\n multi: true\n};\n\nexport function getErrors() {\n const data = {\n unknown: () => 'form-control-errors.unknown',\n required: () => 'form-control-errors.required',\n pattern: () => 'form-control-errors.pattern',\n email: () => 'form-control-errors.email',\n emailTaken: () => 'form-control-errors.emailTaken',\n passwordMatch: () => 'form-control-errors.passwordMatch',\n confirm: () => 'form-control-errors.confirm',\n fullNumber: () => 'form-control-errors.fullNumber',\n min: ({min}) => ({token: 'form-control-errors.min', data: {min}}),\n max: ({max}) => ({token: 'form-control-errors.max', data: {max}}),\n maxFileSize: ({maxSize}) => ({token: 'form-control-errors.maxFileSize', data: {maxSize}}),\n minDate: ({date}) => ({token: 'form-control-errors.minDate', data: {date}}),\n maxDate: ({date}) => ({token: 'form-control-errors.maxDate', data: {date}}),\n invalidDate: () => 'form-control-errors.invalidDate',\n invalidFileType: () => 'form-control-errors.invalidFileType',\n minlength: ({requiredLength, actualLength}) => ({\n token: 'form-control-errors.minlength',\n data: {requiredLength, actualLength}\n }),\n maxlength: ({requiredLength, actualLength}) => ({\n token: 'form-control-errors.maxlength',\n data: {requiredLength, actualLength}\n })\n };\n\n return data;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.BbSpinner","i1","i2","i3.BbButton","i4","i5","nextUniqueId","i3.BbFormError","BbFilePickerMixinBase","i5.BbFileSize","i6.BbFileImage","i2.BbFormControl","i3","i4.BbFormError","i5.BbFormSubmit","i6.BbInput","i6.BbSelect","i7.BbFormControl"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bravobit-bb-foundation-elements.mjs","sources":["../../../projects/bb-foundation/elements/src/lib/dropdown/dropdown.component.ts","../../../projects/bb-foundation/elements/src/lib/dropdown/dropdown.component.html","../../../projects/bb-foundation/elements/src/lib/elements.interfaces.ts","../../../projects/bb-foundation/elements/src/lib/directives/form-submitter.directive.ts","../../../projects/bb-foundation/elements/src/lib/spinner/spinner.component.ts","../../../projects/bb-foundation/elements/src/lib/spinner/spinner.component.html","../../../projects/bb-foundation/elements/src/lib/button/button.component.ts","../../../projects/bb-foundation/elements/src/lib/button/button.component.html","../../../projects/bb-foundation/elements/src/lib/image-picker/image-picker.component.ts","../../../projects/bb-foundation/elements/src/lib/image-picker/image-picker.component.html","../../../projects/bb-foundation/elements/src/lib/directives/form-submit.directive.ts","../../../projects/bb-foundation/elements/src/lib/form-error/form-error.component.ts","../../../projects/bb-foundation/elements/src/lib/form-error/form-error.component.html","../../../projects/bb-foundation/elements/src/lib/form-control/form-control.component.ts","../../../projects/bb-foundation/elements/src/lib/form-control/form-control.component.html","../../../projects/bb-foundation/elements/src/lib/pipes/file-size.pipe.ts","../../../projects/bb-foundation/elements/src/lib/pipes/file-image.pipe.ts","../../../projects/bb-foundation/elements/src/lib/file-picker/file-picker.component.ts","../../../projects/bb-foundation/elements/src/lib/file-picker/file-picker.component.html","../../../projects/bb-foundation/elements/src/lib/directives/input.directive.ts","../../../projects/bb-foundation/elements/src/lib/date-picker/date-picker.component.ts","../../../projects/bb-foundation/elements/src/lib/date-picker/date-picker.component.html","../../../projects/bb-foundation/elements/src/lib/directives/addon.directive.ts","../../../projects/bb-foundation/elements/src/lib/form-group/form-group.component.ts","../../../projects/bb-foundation/elements/src/lib/form-group/form-group.component.html","../../../projects/bb-foundation/elements/src/lib/pipes/relative-time.pipe.ts","../../../projects/bb-foundation/elements/src/lib/checkbox/checkbox.component.ts","../../../projects/bb-foundation/elements/src/lib/checkbox/checkbox.component.html","../../../projects/bb-foundation/elements/src/lib/avatar/avatar.component.ts","../../../projects/bb-foundation/elements/src/lib/avatar/avatar.component.html","../../../projects/bb-foundation/elements/src/lib/icon/icon.component.ts","../../../projects/bb-foundation/elements/src/lib/icon/icon.component.html","../../../projects/bb-foundation/elements/src/lib/tag/tag.component.ts","../../../projects/bb-foundation/elements/src/lib/tag/tag.component.html","../../../projects/bb-foundation/elements/src/lib/elements.module.ts","../../../projects/bb-foundation/elements/src/bravobit-bb-foundation-elements.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ElementRef,\n Host,\n HostListener,\n Input,\n Optional,\n ViewEncapsulation\n} from '@angular/core';\nimport {animate, style, transition, trigger} from '@angular/animations';\nimport {BehaviorSubject} from 'rxjs';\n\n@Component({\n selector: 'bb-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {'class': 'bb-dropdown'},\n preserveWhitespaces: false,\n animations: [\n trigger('dropdownMenuAnimation', [\n transition(':enter', [\n // 1. Set the initial state.\n style({opacity: 0, transform: 'scale(0.9)'}),\n // 2. Start the animation to show the item.\n animate('80ms cubic-bezier(0, 0, .2, 1)', style({opacity: 1, transform: 'scale(1)'}))\n ]),\n transition(':leave', [\n // 1. Set the initial state.\n style({opacity: 1, transform: 'scale(1)'}),\n // 2. Start the animation to hide the item.\n animate('80ms cubic-bezier(0, 0, .2, 1)', style({opacity: 0, transform: 'scale(0.9)'}))\n ])\n ])\n ]\n\n})\nexport class BbDropdown {\n\n // State.\n visible$ = new BehaviorSubject<boolean>(false);\n\n constructor(private _elementRef: ElementRef) {\n }\n\n toggle() {\n return this.visible$.next(!this.visible$.getValue());\n }\n\n close() {\n return this.visible$.next(false);\n }\n\n @HostListener('document:click', ['$event.target'])\n onDocumentClick(target: HTMLElement) {\n if (!target) {\n return;\n }\n\n if (this._elementRef?.nativeElement?.contains(target)) {\n return;\n }\n\n return this.close();\n }\n\n}\n\n@Directive({\n selector: '[bbDropdownItem]',\n host: {\n 'class': 'bb-dropdown-item'\n }\n})\nexport class BbDropdownItem {\n\n // Inputs.\n @Input() closeOnClick: boolean = true;\n\n constructor(@Optional() @Host() private _parent?: BbDropdown) {\n }\n\n @HostListener('click')\n onClick() {\n if (!this.closeOnClick) {\n return;\n }\n\n this._parent?.close();\n }\n\n}\n","<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","import {InjectionToken} from '@angular/core';\n\nexport const ELEMENTS_ICONS: InjectionToken<ElementsIcon[]> = new InjectionToken('elements_icons');\nexport const ELEMENTS_ERRORS: InjectionToken<ElementsError[]> = new InjectionToken('elements_errors');\n\nexport type ElementsIcon = ElementsIconFont | ElementsIconImage | ElementsIconUnknown;\nexport type ElementsError = { [error: string]: (data?: any) => string | { token: string, data?: any }; };\n\nexport interface ElementsIconFont {\n namespace: string;\n className: string;\n uses: 'content' | 'data-attribute';\n type: 'font';\n}\n\nexport interface ElementsIconImage {\n namespace: string;\n name: string;\n src: string;\n type: 'image';\n}\n\nexport interface ElementsIconUnknown {\n type: 'unknown';\n}\n","import {Directive} from '@angular/core';\nimport {BehaviorSubject} from 'rxjs';\n\n@Directive({\n selector: '[bbFormSubmitter]',\n exportAs: 'bbFormSubmitter'\n})\nexport class BbFormSubmitter {\n\n // State.\n submitted$ = new BehaviorSubject<boolean>(false);\n\n submit() {\n this.submitted$.next(true);\n }\n\n reset() {\n this.submitted$.next(false);\n }\n\n}\n","import {ChangeDetectionStrategy, Component, Input, ViewEncapsulation} from '@angular/core';\nimport {CanDisable, CanDisableConstructor, mixinDisabled} from '@bravobit/bb-foundation';\n\nclass BbSpinnerBase {\n}\n\nconst BbSpinnerMixinBase: CanDisableConstructor\n & typeof BbSpinnerBase\n = mixinDisabled(BbSpinnerBase);\n\n@Component({\n selector: 'bb-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {'class': 'bb-spinner'},\n inputs: ['color', 'alt', 'disabled'],\n preserveWhitespaces: false\n})\nexport class BbSpinner extends BbSpinnerMixinBase implements CanDisable {\n\n // Inputs.\n @Input() color: string = '#303f9f';\n @Input() alt: string = 'Loading...';\n\n}\n","<!--\n The spinner element.\n\n This element contains a circle with a 25% bar that spins\n indefinitely. The border color can be set via the \"color\"\n property.\n-->\n<div class=\"bb-spinner-container\">\n <div [style.border-left-color]=\"color\"\n [class.disabled]=\"disabled\"\n class=\"bb-spinner-loader\"\n aria-live=\"assertive\"\n role=\"alert\">\n {{ alt }}\n </div>\n <ng-content select=\"img\"></ng-content>\n</div>\n\n<!--\n The content of the spinner.\n\n This element contains the content of the spinner. The user\n can set the content inside the tag.\n-->\n<span class=\"bb-spinner-content\">\n <ng-content></ng-content>\n</span>\n","import {\n CanLoad,\n CanLoadConstructor,\n mixinLoad,\n CanDisable,\n CanDisableConstructor,\n mixinDisabled\n} from '@bravobit/bb-foundation';\nimport {ChangeDetectionStrategy, Component, ElementRef, Input, ViewEncapsulation} from '@angular/core';\n\nclass BbButtonBase {\n constructor(public _elementRef: ElementRef) {\n }\n}\n\nconst BbButtonMixinBase: CanDisableConstructor & CanLoadConstructor\n & typeof BbButtonBase = mixinDisabled(mixinLoad(BbButtonBase));\n\n@Component({\n selector: 'button[bb-button]',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n exportAs: 'bbButton',\n host: {\n 'class': 'bb-button',\n '[class.loading]': 'loading',\n '[attr.disabled]': 'disabled || loading || null'\n },\n inputs: ['disabled', 'loading'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BbButton extends BbButtonMixinBase implements CanDisable, CanLoad {\n\n get nativeElement() {\n return this._elementRef.nativeElement;\n }\n\n constructor(_elementRef: ElementRef<HTMLButtonElement>) {\n super(_elementRef);\n }\n\n focus() {\n this.nativeElement && this.nativeElement.focus();\n }\n\n}\n\n@Component({\n selector: 'a[bb-button]',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n exportAs: 'bbButton, bbAnchor',\n host: {\n 'class': 'bb-button',\n '[attr.tabindex]': '(disabled || loading) ? -1 : (tabIndex || 0)',\n '[attr.disabled]': 'disabled || loading || null',\n '[attr.aria-disabled]': '(disabled || loading).toString()',\n '(click)': 'stopDisabledEvents($event)'\n },\n inputs: ['disabled', 'loading'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BbAnchor extends BbButton {\n\n // Inputs.\n @Input() tabIndex: number;\n\n constructor(_elementRef: ElementRef) {\n super(_elementRef);\n }\n\n stopDisabledEvents(event: Event) {\n // If the button is not disabled (and not loading) let all events pass.\n if (!this.disabled && !this.loading) {\n return;\n }\n\n // If the button is disabled and/or loading stop\n // the event from bubbling up.\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n\n}\n","<bb-spinner [class.visible]=\"loading\"\n class=\"bb-button-spinner small\">\n</bb-spinner>\n\n<ng-content></ng-content>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n ImageConverter,\n CanDisableConstructor,\n mixinDisabled,\n IsGroupedConstructor,\n mixinGrouped\n} from '@bravobit/bb-foundation';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {BehaviorSubject} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nclass BbImagePickerBase {\n}\n\nconst BbImagePickerMixinBase: IsGroupedConstructor\n & CanDisableConstructor\n & typeof BbImagePickerBase\n = mixinDisabled(mixinGrouped(BbImagePickerBase));\n\n@Component({\n selector: 'bb-image-picker',\n templateUrl: './image-picker.component.html',\n styleUrls: ['./image-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'bb-image-picker',\n '[class.disabled]': 'disabled',\n '[class.grouped]': 'grouped'\n },\n inputs: ['grouped', 'disabled'],\n providers: [{provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BbImagePicker), multi: true}],\n preserveWhitespaces: false\n})\nexport class BbImagePicker extends BbImagePickerMixinBase implements ControlValueAccessor {\n\n // Views.\n @ViewChild('fileInput', {static: true}) fileInput: ElementRef<HTMLInputElement>;\n\n // Inputs.\n @Input() label: string | null = null;\n @Input() placeholder: string | null = null;\n @Input() styleDimensions: { width: string, height: string } | null = null;\n @Input() cropDimensions: { width: number, height: number } | null = null;\n\n // Form.\n private _value$ = new BehaviorSubject<string | null>(null);\n\n constructor(private _converter: ImageConverter) {\n super();\n }\n\n @Input()\n get value() {\n return this._value$.getValue();\n }\n\n @Output() valueChange = new EventEmitter<string | null>();\n\n set value(value: string | null) {\n this._value$.next(value);\n this.valueChange.emit(value);\n }\n\n get image() {\n return this._value$.pipe(\n map(value => value || this.placeholder),\n map(value => value ? `url(${value})` : null)\n );\n }\n\n async onFileChange(event) {\n // Grab the file from the event.\n const file: File = event.target.files[0];\n\n // Check if the file exists.\n if (!file || this.disabled) {\n return;\n }\n\n try {\n this.value = await this._converter.toDataUri(file, this.cropDimensions);\n } catch (error) {\n this.value = null;\n }\n\n this.onChangeCallback(this.value);\n\n if (this.fileInput && this.fileInput.nativeElement) {\n this.fileInput.nativeElement.value = '';\n }\n }\n\n openFilePicker() {\n if (this.disabled) {\n return;\n }\n\n // Execute a click on the file input.\n this.fileInput\n && this.fileInput.nativeElement\n && this.fileInput.nativeElement.click\n && this.fileInput.nativeElement.click();\n }\n\n onTouchedCallback: () => void = () => {\n };\n\n onChangeCallback: (_: string | null) => void = () => {\n };\n\n writeValue(value: string | null) {\n this.value = value;\n }\n\n registerOnChange(method: (_: string | null) => void) {\n this.onChangeCallback = method;\n }\n\n registerOnTouched(method: () => void) {\n this.onTouchedCallback = method;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n}\n","<!-- 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","import {distinctUntilChanged, map, shareReplay, startWith} from 'rxjs/operators';\nimport {Directive, ElementRef, OnInit, Optional, Self} from '@angular/core';\nimport {EMPTY, fromEvent, merge, Observable} from 'rxjs';\nimport {FormGroupDirective} from '@angular/forms';\n\n@Directive({\n selector: 'form',\n exportAs: 'bbForm'\n})\nexport class BbFormSubmit implements OnInit {\n\n submitStatus$: Observable<boolean>;\n\n constructor(private _host: ElementRef<HTMLFormElement>,\n @Optional() @Self() private _formDirective: FormGroupDirective) {\n }\n\n ngOnInit() {\n // Submit changes.\n const regularSubmitChanges$ = fromEvent(this.nativeElement, 'submit').pipe(\n map(() => true)\n );\n\n // Reactive form submit changes.\n const reactiveSubmitChanges$ = this.reactiveSubmitChanges();\n\n // Reset changes.\n const resetChanges$ = fromEvent(this.nativeElement, 'reset').pipe(\n map(() => false)\n );\n\n // Listen to the submit status.\n this.submitStatus$ = merge(regularSubmitChanges$, reactiveSubmitChanges$, resetChanges$).pipe(\n startWith(false),\n distinctUntilChanged(),\n shareReplay({refCount: true, bufferSize: 1})\n );\n }\n\n submit() {\n this._formDirective?.ngSubmit?.emit();\n }\n\n reset() {\n return this.nativeElement?.reset();\n }\n\n private get nativeElement() {\n return this._host?.nativeElement;\n }\n\n private reactiveSubmitChanges() {\n if (!this._formDirective) {\n return EMPTY;\n }\n\n return this._formDirective.ngSubmit.pipe(\n map(() => true)\n );\n }\n\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Input,\n OnInit,\n Optional,\n Output,\n ViewEncapsulation\n} from '@angular/core';\nimport {delay, distinctUntilChanged, map, startWith, tap} from 'rxjs/operators';\nimport {BbFormSubmitter} from '../directives/form-submitter.directive';\nimport {ELEMENTS_ERRORS, ElementsError} from '../elements.interfaces';\nimport {BbFormSubmit} from '../directives/form-submit.directive';\nimport {NgControl, ValidationErrors} from '@angular/forms';\nimport {combineLatest, EMPTY, Observable, of} from 'rxjs';\n\n@Component({\n selector: 'bb-form-error',\n templateUrl: './form-error.component.html',\n styleUrls: ['./form-error.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'bb-form-error'\n },\n preserveWhitespaces: false\n})\nexport class BbFormError implements OnInit {\n\n // Inputs.\n @Input()\n set control(value: NgControl) {\n this._ngControl = value;\n }\n\n get control() {\n return this._ngControl;\n }\n\n // Outputs.\n @Output() errorChange = new EventEmitter<{ token: string, data?: any } | null>();\n\n // State.\n error$: Observable<{ token: string, data?: any } | null>;\n\n // Subscriptions.\n private _ngControl: NgControl | null = null;\n\n constructor(@Optional() private _form?: BbFormSubmit,\n @Optional() private _control?: NgControl,\n @Optional() private _formSubmitter?: BbFormSubmitter,\n @Optional() @Inject(ELEMENTS_ERRORS) private _errors?: ElementsError[]) {\n }\n\n ngOnInit() {\n // Set the control if it was not set before.\n if (!this.control) {\n this.control = this._control;\n }\n\n // Listen for the submit changes\n const submitStatus$ = this.submitStatusChanges();\n\n // An observable that emits error changes.\n const errorChanges$ = this.statusChanges().pipe(\n map(() => this.getError(this.control.errors)),\n distinctUntilChanged(),\n map(error => typeof error === 'string' ? {token: error} : error)\n );\n\n // Whenever the user submitted the form we want to\n // listen for any error changes.\n this.error$ = combineLatest([submitStatus$, errorChanges$]).pipe(\n map(([submitted, error]) => {\n // If not submitted return null.\n if (!submitted) {\n return null;\n }\n\n // Return the error if submitted.\n return error;\n }),\n tap(value => this.errorChange.emit(value))\n );\n }\n\n private getError(errors?: ValidationErrors) {\n // Validate the errors exist.\n if (!errors) {\n return null;\n }\n\n // Get the first error in the errors.\n const [errorName] = Object.keys(errors);\n const error = errors[errorName];\n\n // Validate the error exists.\n if (!error) {\n return null;\n }\n\n // Map the arrays into a object so we can\n // access the functions by a key-lookup.\n const errorFunctions = this._errors.reduce((previous, current) => ({...previous, ...current}), {});\n\n // Get the error function.\n const errorFunction = errorFunctions[errorName] || errorFunctions['unknown'];\n\n // Validate the error function exists.\n if (!errorFunction) {\n return null;\n }\n\n // Return the parsed error.\n return errorFunction(error);\n }\n\n private submitStatusChanges() {\n const native$ = this.getNativeFormSubmit();\n const manual$ = this.getManualFormSubmit();\n return combineLatest([native$, manual$]).pipe(\n map(([native, manual]) => native || manual),\n distinctUntilChanged()\n );\n }\n\n private getNativeFormSubmit() {\n if (!this._form) {\n return of(true);\n }\n\n return this._form.submitStatus$;\n }\n\n private getManualFormSubmit() {\n if (!this._formSubmitter) {\n return of(false);\n }\n\n return this._formSubmitter.submitted$.pipe(\n distinctUntilChanged()\n );\n }\n\n private statusChanges() {\n if (!this.control) {\n return EMPTY;\n }\n\n if (!this.control.statusChanges) {\n return EMPTY;\n }\n\n return this.control.statusChanges.pipe(\n startWith(this.control.status as unknown),\n delay(0)\n );\n }\n\n}\n","<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>","import {\n IsRequired,\n IsRequiredConstructor,\n mixinRequired,\n CanDisable,\n CanDisableConstructor,\n mixinDisabled,\n IsReadonly,\n IsReadonlyConstructor,\n mixinReadonly,\n IsGrouped,\n IsGroupedConstructor,\n mixinGrouped,\n IsFocused,\n IsFocusedConstructor,\n mixinFocused,\n HasError,\n HasErrorConstructor,\n mixinError,\n CanHideErrors,\n CanHideErrorsConstructor,\n mixinHideErrors\n} from '@bravobit/bb-foundation';\nimport {ChangeDetectionStrategy, Component, ContentChild, Input, TemplateRef, ViewEncapsulation} from '@angular/core';\nimport {NgControl} from '@angular/forms';\n\nlet nextUniqueId = 0;\n\nclass BbFormControlBase {\n}\n\nconst BbFormControlMixinBase: IsRequiredConstructor\n & IsGroupedConstructor\n & IsFocusedConstructor\n & IsReadonlyConstructor\n & CanDisableConstructor\n & HasErrorConstructor\n & CanHideErrorsConstructor\n & typeof BbFormControlBase\n = mixinDisabled(mixinFocused(mixinReadonly(mixinGrouped(mixinRequired(mixinError(mixinHideErrors(BbFormControlBase)))))));\n\n@Component({\n selector: 'bb-form-control',\n templateUrl: './form-control.component.html',\n styleUrls: ['./form-control.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'bb-form-control',\n '[class.readonly]': 'readonly',\n '[class.required]': 'required',\n '[class.disabled]': 'disabled',\n '[class.focused]': 'focused',\n '[class.grouped]': 'grouped',\n '[class.arrow]': 'arrow',\n '[class.error]': 'error'\n },\n inputs: ['grouped', 'hideErrors'],\n preserveWhitespaces: false\n})\nexport class BbFormControl extends BbFormControlMixinBase implements IsRequired, IsFocused, IsReadonly, IsGrouped, CanDisable, HasError, CanHideErrors {\n\n // Views.\n @ContentChild(NgControl) ngControl: NgControl;\n\n // Inputs.\n @Input() label: string | TemplateRef<any> | null = null;\n @Input() hint: string | TemplateRef<any> | null = null;\n\n // Data.\n arrow: boolean = false;\n\n // Data.\n labelId = `bb-form-control-${nextUniqueId++}`;\n\n onErrorChange(error: { token: string, data?: any } | null) {\n this.error = !!error;\n }\n\n}\n","<!-- 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","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({\n name: 'bbFileSize'\n})\nexport class BbFileSize implements PipeTransform {\n\n transform(value: number) {\n return this.format(value);\n }\n\n private format = (value: number, decimals: number = 2) => {\n if (value === 0) {\n return '0 Bytes';\n }\n\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n const index = Math.floor(Math.log(value) / Math.log(k));\n\n return parseFloat((value / Math.pow(k, index)).toFixed(dm)) + ' ' + sizes[index];\n };\n\n}\n","import {ImageConverter} from '@bravobit/bb-foundation';\nimport {DomSanitizer} from '@angular/platform-browser';\nimport {Pipe, PipeTransform} from '@angular/core';\nimport {Platform} from '@angular/cdk/platform';\n\n@Pipe({\n name: 'bbFileImage'\n})\nexport class BbFileImage implements PipeTransform {\n\n constructor(private _platform: Platform,\n private _image: ImageConverter,\n private _sanitizer: DomSanitizer) {\n }\n\n async transform(file: File) {\n // If the file is not a file return.\n if (!this._platform.isBrowser || !(file instanceof File)) {\n return null;\n }\n\n return this._image.fileToImage(file, [\n 'image/png',\n 'image/jpeg',\n 'image/webp',\n 'image/gif',\n 'image/svg+xml'\n ]).then(image => {\n if (!image) {\n return null;\n }\n\n return {\n background: this._sanitizer.bypassSecurityTrustStyle(`url(${image.src})`),\n aspectRatio: image.height / image.width\n };\n }).catch(() => {\n return null;\n });\n }\n\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n CanDisable,\n CanDisableConstructor,\n IsGrouped,\n IsGroupedConstructor,\n IsRequired,\n IsRequiredConstructor,\n CanHideErrors,\n CanHideErrorsConstructor,\n HasError,\n HasErrorConstructor,\n mixinDisabled,\n mixinGrouped,\n mixinRequired,\n mixinError,\n mixinHideErrors\n} from '@bravobit/bb-foundation';\nimport {ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {animate, style, transition, trigger} from '@angular/animations';\nimport {BehaviorSubject} from 'rxjs';\n\nlet nextUniqueId = 0;\n\nclass BbFilePickerBase {\n}\n\nconst BbFilePickerMixinBase: IsRequiredConstructor\n & CanDisableConstructor\n & IsGroupedConstructor\n & HasErrorConstructor\n & CanHideErrorsConstructor\n & typeof BbFilePickerBase\n = mixinRequired(mixinDisabled(mixinGrouped(mixinError(mixinHideErrors(BbFilePickerBase)))));\n\n@Component({\n selector: 'bb-file-picker',\n templateUrl: './file-picker.component.html',\n styleUrls: ['./file-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => BbFilePicker),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: BbFilePicker,\n multi: true\n }\n ],\n host: {\n 'class': 'bb-file-picker',\n '[class.required]': 'required',\n '[class.disabled]': 'disabled',\n '[class.grouped]': 'grouped',\n '[class.hovered]': 'hovered',\n '[class.error]': 'error'\n },\n animations: [\n trigger('bbFilePickerImageAnimation', [\n transition(':enter', [\n style({opacity: 0}),\n animate('200ms', style({opacity: 1}))\n ]),\n transition(':leave', [\n animate('200ms', style({opacity: 0}))\n ])\n ])\n ],\n inputs: ['disabled', 'hideErrors', 'grouped', 'required'],\n preserveWhitespaces: false\n})\nexport class BbFilePicker extends BbFilePickerMixinBase implements ControlValueAccessor, IsRequired, CanDisable, IsGrouped, HasError, CanHideErrors {\n\n // Views.\n @ViewChild('fileInput', {static: true}) fileInput: ElementRef<HTMLInputElement>;\n @ContentChild('extra') extraTemplate: TemplateRef<any>;\n\n // Inputs.\n @Input() label: string | TemplateRef<any> | null = null;\n @Input() hint: string | TemplateRef<any> | null = null;\n @Input() accept: string | null = null;\n @Input() showImages: boolean = true;\n @Input() allowDragging: boolean = true;\n\n // State.\n labelId = `bb-file-picker-${nextUniqueId++}`;\n hovered: boolean = false;\n value$ = new BehaviorSubject<{ file?: File }>({});\n\n @Input()\n get value() {\n const {file} = this.value$.getValue();\n return file;\n }\n\n @Output() valueChange = new EventEmitter<File | null>();\n\n set value(value: File | null) {\n this.value$.next({file: value});\n this.valueChange.emit(value);\n }\n\n @HostListener('dragover', ['$event', 'true'])\n @HostListener('dragleave', ['$event', 'false'])\n onDrag(event: Event, isHovered: boolean) {\n // Validate the input can support drag.\n if (!this.allowDragging || this.disabled) {\n return;\n }\n\n // Prevent the default event action\n // and start the hovering.\n this.preventDefault(event);\n this.hovered = isHovered;\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event: Event) {\n // Validate the input can support drag.\n if (!this.allowDragging || this.disabled) {\n return;\n }\n\n // Prevent the default event action\n // and stop the hovering.\n this.preventDefault(event);\n this.hovered = false;\n\n // Save the file.\n this.saveFile(event['dataTransfer'].files);\n\n // Run the on change callback.\n this.onChangeCallback(this.value);\n }\n\n onButtonPressed(file?: File) {\n if (file) {\n this.value = null;\n this.onChangeCallback(this.value);\n return;\n }\n\n return this.openFilePicker();\n }\n\n openFilePicker() {\n return this.fileInput\n && this.fileInput.nativeElement\n && this.fileInput.nativeElement.click\n && this.fileInput.nativeElement.click();\n }\n\n onFileChange(event: Event) {\n // Validate the input is not disabled.\n if (this.disabled) {\n return;\n }\n\n // Extract the file from the event.\n const fileList = this.getFileListFromEvent(event);\n\n // Save the file.\n this.saveFile(fileList);\n\n // Run the on change callback.\n this.onChangeCallback(this.value);\n\n // Clear the file input.\n if (this.fileInput && this.fileInput.nativeElement) {\n this.fileInput.nativeElement.value = '';\n }\n }\n\n onTouchedCallback: () => void = () => {\n };\n\n onChangeCallback: (_: File | null) => void = () => {\n };\n\n writeValue(value: File | null) {\n this.value = value;\n }\n\n registerOnChange(method: (_: File | null) => void) {\n this.onChangeCallback = method;\n }\n\n registerOnTouched(method: () => void) {\n this.onTouchedCallback = method;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n onErrorChange(error: { token: string, data?: any } | null) {\n this.error = !!error;\n }\n\n validate({value}: FormControl<File>) {\n if (value === null || value === undefined) {\n return null;\n }\n\n const regexString = (this.accept || '*')\n .replace(/\\*/g, '.\\*')\n .replace(/,/g, '|');\n const mimeTypeRegex = new RegExp(regexString);\n\n const isNotValid = (typeof File === 'undefined') || !(value instanceof File) || !mimeTypeRegex.test(value?.type);\n return isNotValid && {\n invalidFileType: true\n };\n }\n\n private saveFile = (files?: FileList) => {\n // Validate the files exist.\n if (!files) {\n return;\n }\n\n // Retrieve the first file.\n const file = files[0];\n\n // Validate the first file exists.\n if (!file) {\n return;\n }\n\n // Save the file.\n this.value = file;\n };\n\n private getFileListFromEvent = (event: Event) => {\n const element = event.target as HTMLInputElement;\n\n if (!element) {\n return null;\n }\n\n return element.files;\n };\n\n private preventDefault = (event: Event) => {\n event.preventDefault();\n event.stopPropagation();\n };\n\n}\n","<!-- The label of the input. -->\n<label *ngIf=\"label as labelContent\"\n [for]=\"labelId\"\n class=\"bb-file-picker-label\">\n <ng-template [bbTemplate]=\"labelContent\">\n {{ labelContent }}\n </ng-template>\n</label>\n\n<!-- The input that can open the file picker. -->\n<input #fileInput\n [accept]=\"accept\"\n [disabled]=\"disabled\"\n (change)=\"onFileChange($event)\"\n class=\"bb-file-picker-input\"\n type=\"file\"\n tabindex=\"-1\">\n\n<div *ngIf=\"value$ | async as data\"\n class=\"bb-file-picker-wrapper\">\n <!-- The button that accepts files. -->\n <div class=\"bb-file-picker-container\">\n <button [class.destructive]=\"!!data?.file\"\n [class.standalone]=\"!allowDragging\"\n [disabled]=\"disabled\"\n [id]=\"labelId\"\n (click)=\"onButtonPressed(data?.file)\"\n type=\"button\"\n class=\"bb-file-picker-button\">\n <ng-container *ngTemplateOutlet=\"data?.file ? closeIcon : uploadIcon\"></ng-container>\n {{ (data?.file ? 'file-picker.remove' : 'file-picker.choose') | bbLocalize }}\n </button>\n <div *ngIf=\"allowDragging\"\n class=\"bb-file-picker-zone\">\n {{ 'file-picker.drop' | bbLocalize }}\n </div>\n </div>\n\n <ng-container *ngIf=\"!!extraTemplate\">\n <ng-container *ngTemplateOutlet=\"extraTemplate; context: {$implicit: data?.file}\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"showImages\">\n <div *ngIf=\"data?.file | bbFileImage | async as image\"\n class=\"bb-file-picker-image-container\">\n <div class=\"bb-file-picker-image-wrapper\">\n <div [@bbFilePickerImageAnimation]=\"true\"\n [style.padding-top.%]=\"image?.aspectRatio * 100\"\n [style.background-image]=\"image?.background\"\n class=\"bb-file-picker-image\">\n </div>\n </div>\n </div>\n </ng-container>\n\n <!-- Extra information of the file. -->\n <div [class.visible]=\"!!data?.file\"\n class=\"bb-file-picker-info\">\n <span *ngIf=\"data?.file?.name as name\">{{ name }}</span>\n <span *ngIf=\"data?.file?.size as size\">{{ size | bbFileSize }}</span>\n </div>\n</div>\n\n<bb-form-error *ngIf=\"!hideErrors\"\n (errorChange)=\"onErrorChange($event)\">\n</bb-form-error>\n\n<!-- The file picker hint. -->\n<p *ngIf=\"hint as hintContent\"\n class=\"bb-file-picker-hint\">\n <ng-template [bbTemplate]=\"hintContent\">\n {{ hintContent }}\n </ng-template>\n</p>\n\n<!-- Upload icon. -->\n<ng-template #uploadIcon>\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n class=\"bb-file-picker-icon\"\n width=\"24\"\n height=\"24\">\n <path fill=\"currentColor\"\n d=\"M2 12.5C2 9.46 4.46 7 7.5 7H18c2.21 0 4 1.79 4 4s-1.79 4-4 4H9.5a2.5 2.5 0 010-5H17v2H9.41c-.55 0-.55 1 0 1H18c1.1 0 2-.9 2-2s-.9-2-2-2H7.5C5.57 9 4 10.57 4 12.5S5.57 16 7.5 16H17v2H7.5C4.46 18 2 15.54 2 12.5z\"></path>\n <path fill=\"none\" d=\"M0 0h24v24H0V0z\"></path>\n </svg>\n</ng-template>\n\n<!-- Close icon. -->\n<ng-template #closeIcon>\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n class=\"bb-file-picker-icon\"\n width=\"24\"\n height=\"24\">\n <path fill=\"currentColor\"\n d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"></path>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\n </svg>\n</ng-template>\n","import {\n Directive,\n DoCheck,\n ElementRef,\n Host,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Self\n} from '@angular/core';\nimport {BbFormControl} from '../form-control/form-control.component';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {NgControl} from '@angular/forms';\nimport {Subscription} from 'rxjs';\n\n@Directive({\n selector: 'select[bbInput]',\n host: {\n '[disabled]': 'disabled',\n '(focus)': 'setFocus(true)',\n '(blur)': 'setFocus(false)'\n }\n})\nexport class BbSelect implements OnInit, DoCheck, OnDestroy {\n\n protected hasArrow: boolean = true;\n\n private _subscription: Subscription;\n\n constructor(protected _elementRef: ElementRef,\n @Optional() @Self() protected _ngControl: NgControl,\n @Optional() @Host() protected _formControl: BbFormControl) {\n }\n\n ngOnInit() {\n // Set an arrow on the form control if\n // it requires one.\n this._formControl.arrow = this.hasArrow;\n }\n\n ngDoCheck() {\n if (this._ngControl) {\n this.disabled = this._ngControl.disabled;\n }\n }\n\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n\n focus() {\n return this._elementRef?.nativeElement?.focus();\n }\n\n setFocus(hasFocus: boolean) {\n if (!this._formControl) {\n return;\n }\n\n this._formControl.focused = hasFocus;\n }\n\n @HostBinding('attr.id')\n get id() {\n return this._formControl?.labelId ?? null;\n }\n\n get disabled() {\n if (this._ngControl && this._ngControl.disabled !== null) {\n return this._ngControl.disabled;\n }\n\n return this._disabled;\n }\n\n @Input()\n set disabled(newValue: boolean) {\n this._disabled = coerceBooleanProperty(newValue);\n\n if (!this._formControl) {\n return;\n }\n\n this._formControl.disabled = this._disabled;\n }\n\n private _disabled = false;\n\n get required() {\n return this._required;\n }\n\n @Input()\n set required(newValue: boolean) {\n this._required = coerceBooleanProperty(newValue);\n\n if (!this._formControl) {\n return;\n }\n\n this._formControl.required = this._required;\n }\n\n private _required = false;\n\n}\n\n@Directive({\n selector: 'input[bbInput], textarea[bbInput]',\n host: {\n '[disabled]': 'disabled',\n '[readonly]': 'readonly',\n '(focus)': 'setFocus(true)',\n '(blur)': 'setFocus(false)'\n }\n})\nexport class BbInput extends BbSelect {\n\n protected override hasArrow: boolean = false;\n\n constructor(protected override _elementRef: ElementRef,\n @Optional() @Self() protected override _ngControl: NgControl,\n @Optional() @Host() protected override _formControl: BbFormControl) {\n super(_elementRef, _ngControl, _formControl);\n }\n\n get readonly() {\n return this._readonly;\n }\n\n @Input()\n set readonly(newValue: boolean) {\n this._readonly = coerceBooleanProperty(newValue);\n\n if (!this._formControl) {\n return;\n }\n\n this._formControl.readonly = this._readonly;\n }\n\n private _readonly = false;\n\n}\n","import {\n CanDisable,\n CanDisableConstructor,\n CanHideErrors,\n CanHideErrorsConstructor,\n HasError,\n HasErrorConstructor,\n IsGrouped,\n IsGroupedConstructor,\n IsReadonly,\n IsReadonlyConstructor,\n IsRequired,\n IsRequiredConstructor,\n mixinDisabled,\n mixinError,\n mixinGrouped,\n mixinHideErrors,\n mixinReadonly,\n mixinRequired\n} from '@bravobit/bb-foundation';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormControl,\n FormGroup,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n Validators\n} from '@angular/forms';\nimport {BehaviorSubject, combineLatest, Observable, Subscription} from 'rxjs';\nimport {distinctUntilChanged, map, startWith, tap} from 'rxjs/operators';\nimport {LOCALIZE_ID} from '@bravobit/bb-foundation/localize';\nimport {formatDate} from '@angular/common';\n\nclass BbDatePickerBase {\n}\n\nconst BbFilePickerMixinBase: IsRequiredConstructor\n & IsReadonlyConstructor\n & CanDisableConstructor\n & IsGroupedConstructor\n & HasErrorConstructor\n & CanHideErrorsConstructor\n & typeof BbDatePickerBase\n = mixinRequired(mixinReadonly(mixinDisabled(mixinGrouped(mixinError(mixinHideErrors(BbDatePickerBase))))));\n\n@Component({\n selector: 'bb-date-picker',\n templateUrl: './date-picker.component.html',\n styleUrls: ['./date-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => BbDatePicker),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: BbDatePicker,\n multi: true\n }\n ],\n host: {\n 'class': 'bb-date-picker',\n '[class.required]': 'required',\n '[class.readonly]': 'readonly',\n '[class.disabled]': 'disabled',\n '[class.grouped]': 'grouped',\n '[class.error]': 'error'\n },\n inputs: ['required', 'readonly', 'disabled', 'grouped', 'hideErrors'],\n preserveWhitespaces: false\n})\nexport class BbDatePicker extends BbFilePickerMixinBase implements ControlValueAccessor, OnInit, OnDestroy, IsRequired, IsReadonly, CanDisable, IsGrouped, HasError, CanHideErrors {\n\n // Readonly data.\n readonly _yearRegex = /^(10|[1-9][0-9])\\d{2}$/; // Note: 1000 - 9999\n\n // Inputs.\n @Input() label: string | TemplateRef<any> | null = null;\n @Input() hint: string | TemplateRef<any> | null = null;\n @Input() dayPlaceholder: string | null = 'dd';\n @Input() monthPlaceholder: string | null = 'mm';\n @Input() yearPlaceholder: string | null = 'yyyy';\n\n @Input()\n set years(value: [string | number, string | number] | null) {\n this.parseYears(value);\n }\n\n // Forms.\n form: FormGroup;\n trackByValue = (_, item) => item?.value;\n\n // Data.\n data$: Observable<{\n days?: { label: string, value: number }[],\n months?: { label: string, value: number }[],\n years?: number[] | null\n }>;\n years$ = new BehaviorSubject<number[] | null>(null);\n\n get value() {\n return this.formToDateString(this.form?.value);\n }\n\n @Input()\n set value(value: string | null) {\n this.parseDateStringInForm(value);\n this.valueChange.emit(this.value);\n }\n\n @Output() valueChange = new EventEmitter<string | null>();\n\n // Subscriptions.\n private _subscription = new Subscription();\n\n constructor(@Inject(LOCALIZE_ID) private _localizeId: Observable<string>) {\n super();\n }\n\n ngOnInit() {\n this.composeForm();\n this.getData();\n this.handleChanges();\n }\n\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n\n writeValue(value: string | null) {\n this.parseDateStringInForm(value);\n }\n\n registerOnChange(method: (_: string | null) => void) {\n this.onChangeCallback = method;\n }\n\n registerOnTouched(method: () => void) {\n this.onTouchedCallback = method;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n\n if (this.disabled) {\n this.form?.disable();\n } else {\n this.form?.enable();\n }\n }\n\n onTouchedCallback: () => void = () => {\n };\n\n onChangeCallback: (_: string | null) => void = () => {\n };\n\n onErrorChange(error: { token: string, data?: any } | null) {\n this.error = !!error;\n }\n\n validate({value}: FormControl<string>) {\n if (value === null || value === undefined) {\n return null;\n }\n\n const data = this.parseDateString(value);\n const date = new Date(data?.year, data?.month - 1, data?.day);\n\n const maxDays = this.getDaysInMonth(data?.month, `${data?.year}`);\n\n const isInvalidDate = date.toString() === 'Invalid Date';\n const exceededMaxDays = data?.day > maxDays;\n\n return (isInvalidDate || exceededMaxDays) && {\n invalidDate: true\n };\n }\n\n private handleChanges() {\n const dateOrNull$ = this.form.valueChanges.pipe(\n map(value => this.formToDateString(value)),\n distinctUntilChanged()\n );\n\n const subscription = dateOrNull$.subscribe(() => {\n this.valueChange.emit(this.value);\n this.onChangeCallback(this.value);\n });\n this._subscription.add(subscription);\n }\n\n private getData() {\n const years$ = this.years$.asObservable();\n const months$ = this.getMonthData();\n const days$ = this.getDayData();\n\n this.data$ = combineLatest([years$, months$, days$]).pipe(\n map(([years, months, days]) => ({years, months, days})),\n tap(data => this.verifyListData(data?.days?.length, data?.years))\n );\n }\n\n private verifyListData(maxDays: number, years: number[] | null) {\n const dayControl = this.form.get('day');\n if (dayControl?.value !== null && dayControl?.value > maxDays) {\n dayControl.patchValue(maxDays);\n }\n\n const yearControl = this.form.get('year');\n if (years !== null && yearControl?.value !== null && this._yearRegex.test(yearControl?.value)) {\n const selectedYear = Number(yearControl?.value);\n\n const firstYear = Math.min(...years);\n const lastYear = Math.max(...years);\n\n if (selectedYear < firstYear || selectedYear > lastYear) {\n Promise.resolve().then(() => yearControl.patchValue(null));\n }\n }\n }\n\n private getDayData() {\n const count$ = this.form.valueChanges.pipe(\n startWith(this.form?.value as object),\n map(({month, year}) => this.getDaysInMonth(month, year)),\n distinctUntilChanged()\n );\n\n return count$.pipe(\n map(count => Array(count).fill(0).map((_, index) => ({\n label: `${index + 1}`,\n value: index + 1\n })))\n );\n }\n\n private getMonthData() {\n return this._localizeId.pipe(\n map(locale => {\n return Array(12).fill(0).map((_, month) => {\n const date = new Date(2000, month, 1);\n const label = formatDate(date, 'LLLL', locale);\n return {label, value: month + 1};\n });\n })\n );\n }\n\n private composeForm() {\n const {required, pattern, minLength, maxLength} = Validators;\n const yearPattern = pattern(this._yearRegex);\n const yearValidators = [required, yearPattern, minLength(4), maxLength(4)];\n\n this.form = new FormGroup({\n day: new FormControl<number>(null, required),\n month: new FormControl<number>(null, required),\n year: new FormControl<number>(null, yearValidators)\n });\n }\n\n private parseDateStringInForm(value: string | null) {\n // If the date string was not a valid format, reset the form.\n if (!this.isValidDateString(value)) {\n if (value !== null) {\n this.form?.reset({year: null, month: null, day: null}, {emitEvent: false});\n }\n return;\n }\n\n // Parse the date string and save in the form.\n const data = this.parseDateString(value);\n const year = data?.year !== null && data?.year !== undefined\n ? this.padString(`${data?.year}`, 4, '0')\n : null;\n const formData = {...(data ?? {}), year};\n\n this.form?.patchValue(formData, {emitEvent: false});\n }\n\n private parseDateString(value: string) {\n if (!this.isValidDateString(value)) {\n return null;\n }\n\n // Parse the date string.\n const [year, month, day] = value?.split('-');\n\n return {\n day: day ? parseInt(day, 10) : null,\n month: month ? parseInt(month, 10) : null,\n year: year ? parseInt(year, 10) : null\n };\n }\n\n private parseYears(values: [string | number, string | number] | null) {\n if (!values) {\n return this.years$.next(null);\n }\n\n // Parse the values to years (in numbers).\n const [first, last] = values;\n const firstYear = this.parseYearFormat(first);\n const lastYear = this.parseYearFormat(last);\n\n // Check cases in where we cannot parse.\n if (firstYear === null || lastYear === null) {\n return this.years$.next(null);\n }\n\n const difference = firstYear - lastYear;\n const absoluteDifference = Math.abs(difference) + 1;\n\n // Create an array with years.\n const years = Array(absoluteDifference)\n .fill(0)\n .map((_, index) => difference < 0 ? (firstYear + index) : (firstYear - index));\n\n // Validate we have one or more years.\n if (years?.length <= 0) {\n return this.years$.next(null);\n }\n\n // Push the years.\n return this.years$.next(years);\n }\n\n private formToDateString = ({year, month, day}) => {\n if (this.form?.invalid) {\n return null;\n }\n\n const prefixedMonth = this.padString(`${month}`, 2, '0');\n const prefixedDay = this.padString(`${day}`, 2, '0');\n\n return [year, prefixedMonth, prefixedDay].join('-');\n };\n\n private parseYearFormat = (value: string | number) => {\n // Transform the value to a definitive string.\n const yearString = `${value}`;\n const currentFullYear = new Date().getFullYear();\n\n // Handle default \"current\" syntax.\n if (yearString === 'current') {\n return currentFullYear;\n }\n\n // Handle \"current + {amount}\" syntax.\n if (/^current\\s?\\+\\s?\\d+$/.test(yearString)) {\n const amount = Number(yearString?.split('+')?.[1]?.trim()) ?? 0;\n return currentFullYear + amount;\n }\n\n // Handle \"current - {amount}\" syntax.\n if (/^current\\s?-\\s?\\d+$/.test(yearString)) {\n const amount = Number(yearString?.split('-')?.[1]?.trim()) ?? 0;\n return currentFullYear - amount;\n }\n\n // Handling the default number case.\n if (/^[0-9]{4}$/.test(yearString)) {\n return Number(yearString);\n }\n\n // We could not parse it.\n return null;\n };\n\n private getDaysInMonth = (month: number | null = null, year: string | null = null) => {\n if (this.form?.invalid || month === null || year === null) {\n return 31;\n }\n\n const parsedYear = parseInt(year, 10);\n return new Date(parsedYear, month, 0).getDate();\n };\n\n private isValidDateString = (value: unknown) => {\n return typeof value === 'string' && /^[0-9]{4}-[0-9]{2}-[0-9]{2}$/.test(value);\n };\n\n private padString = (value: string, maxLength: number, fillString: string = '0') => {\n const count = maxLength - value.length;\n for (let index = 0; index < count; index++) {\n value = `${fillString}${value}`;\n }\n\n return value;\n };\n\n}\n","<!-- Label of the date picker. -->\n<label *ngIf=\"label as labelContent\"\n class=\"bb-date-picker-label\">\n <ng-template [bbTemplate]=\"labelContent\">\n {{ labelContent }}\n </ng-template>\n</label>\n\n<!-- The form containing the year/month/day fields. -->\n<form *ngIf=\"data$ | async as data\"\n [formGroup]=\"form\"\n class=\"bb-date-picker-container\"\n novalidate>\n <div class=\"bb-date-picker-item\">\n <bb-form-control hideErrors>\n <select [class.has-value]=\"!!form?.get('day')?.value\"\n bbInput\n autocomplete=\"off\"\n formControlName=\"day\">\n <option [ngValue]=\"null\">{{ dayPlaceholder }}</option>\n <option *ngFor=\"let day of data?.days; trackBy: trackByValue\"\n [ngValue]=\"day?.value\">\n {{ day?.label }}\n </option>\n </select>\n </bb-form-control>\n </div>\n <div class=\"bb-date-picker-item\">\n <bb-form-control hideErrors>\n <select [class.has-value]=\"!!form?.get('month')?.value\"\n bbInput\n autocomplete=\"off\"\n formControlName=\"month\">\n <option [ngValue]=\"null\">{{ monthPlaceholder }}</option>\n <option *ngFor=\"let month of data?.months; trackBy: trackByValue\"\n [ngValue]=\"month?.value\">\n {{ month?.label }}\n </option>\n </select>\n </bb-form-control>\n </div>\n <div class=\"bb-date-picker-item\">\n <bb-form-control hideErrors>\n <select *ngIf=\"data?.years?.length > 0; else defaultYearInputTemplate\"\n [class.has-value]=\"!!form?.get('year')?.value\"\n bbInput\n autocomplete=\"off\"\n formControlName=\"year\">\n <option [ngValue]=\"null\">{{ yearPlaceholder }}</option>\n <option *ngFor=\"let year of data?.years\"\n [value]=\"year\">\n {{ year }}\n </option>\n </select>\n\n <ng-template #defaultYearInputTemplate>\n <input [placeholder]=\"yearPlaceholder\"\n bbInput\n type=\"text\"\n inputmode=\"numeric\"\n minlength=\"4\"\n maxlength=\"4\"\n pattern=\"^[0-9]{4}$\"\n formControlName=\"year\"\n autocomplete=\"off\">\n </ng-template>\n </bb-form-control>\n </div>\n</form>\n\n<!-- The date picker error. -->\n<bb-form-error *ngIf=\"!hideErrors\"\n (errorChange)=\"onErrorChange($event)\">\n</bb-form-error>\n\n<!-- The date picker hint. -->\n<p *ngIf=\"hint as hintContent\"\n class=\"bb-date-picker-hint\">\n <ng-template [bbTemplate]=\"hintContent\">\n {{ hintContent }}\n </ng-template>\n</p>\n","import {Directive} from '@angular/core';\n\n@Directive({\n selector: '[bbSuffix]',\n host: {\n 'class': 'bb-suffix'\n }\n})\nexport class BbSuffix {\n}\n\n@Directive({\n selector: '[bbPrefix]',\n host: {\n 'class': 'bb-prefix'\n }\n})\nexport class BbPrefix {\n}\n","import {IsGrouped, IsGroupedConstructor, mixinGrouped} from '@bravobit/bb-foundation';\nimport {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\n\nclass BbFormGroupBase {\n}\n\nconst BbFormGroupMixinBase: IsGroupedConstructor\n & typeof BbFormGroupBase\n = mixinGrouped(BbFormGroupBase);\n\n@Component({\n selector: 'bb-form-group',\n templateUrl: './form-group.component.html',\n styleUrls: ['./form-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'bb-form-group',\n '[class.grouped]': 'grouped'\n },\n inputs: ['grouped'],\n preserveWhitespaces: false\n})\nexport class BbFormGroup extends BbFormGroupMixinBase implements IsGrouped {\n}\n","<ng-content></ng-content>\n","import {Inject, LOCALE_ID, Optional, Pipe, PipeTransform} from '@angular/core';\nimport {Localize} from '@bravobit/bb-foundation/localize';\nimport {formatDate} from '@angular/common';\n\n@Pipe({\n name: 'bbRelativeTime'\n})\nexport class BbRelativeTime implements PipeTransform {\n\n constructor(@Inject(LOCALE_ID) private _localeId: string,\n @Optional() private _localize?: Localize) {\n }\n\n transform(value: string | number | Date) {\n // Parse the value to a date object.\n const date = this.parseAsDate(value);\n\n // Check if the date is valid.\n if (!this.isValidDate(date)) {\n return value;\n }\n\n // Return the formatted date.\n return this.format(date);\n }\n\n private format(date: Date) {\n // It happens tomorrow.\n if (this.isTomorrow(date)) {\n return this.formatString(date, 'times.tomorrow_at', 'shortTime');\n }\n\n // It happened today.\n if (this.isToday(date)) {\n return this.formatString(date, 'times.today_at', 'shortTime');\n }\n\n // It happened yesterday.\n if (this.isYesterday(date)) {\n return this.formatString(date, 'times.yesterday_at', 'shortTime');\n }\n\n // Just return the date.\n return this.formatString(date);\n }\n\n private formatString(date: Date, token?: string, format?: string) {\n // Just return the parsed date.\n if (!this._localize || !token || !format) {\n return formatDate(date, 'mediumDate', this.locale);\n }\n\n // Return the translated formatting.\n return this._localize.translate({\n token: token,\n data: {date: formatDate(date, format, this.locale)}\n });\n }\n\n private get locale() {\n return this._localize?.current?.locale ?? this._localeId;\n }\n\n private isValidDate = (date: Date) => {\n return typeof date === 'object' &&\n typeof date.getTime === 'function' &&\n !isNaN(date.getTime());\n };\n\n private parseAsDate = (value: string | number | Date) => {\n // Add a Z after the date so\n // it is treated as a UTC date.\n if (typeof value === 'string' && /^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$/.test(value)) {\n return new Date(`${value}Z`);\n }\n\n // Return the regular parsed date.\n return new Date(value);\n };\n\n private isToday = (date: Date) => {\n const today = new Date();\n return date?.getDate() === today?.getDate() &&\n date?.getMonth() === today?.getMonth() &&\n date?.getFullYear() === today?.getFullYear();\n };\n\n private isYesterday = (date: Date) => {\n const yesterday = new Date(new Date()?.setDate(new Date()?.getDate() - 1));\n return date?.getDate() === yesterday?.getDate() &&\n date?.getMonth() === yesterday?.getMonth() &&\n date?.getFullYear() === yesterday?.getFullYear();\n };\n\n private isTomorrow = (date: Date) => {\n const tomorrow = new Date(new Date()?.setDate(new Date()?.getDate() + 1));\n return date?.getDate() === tomorrow?.getDate() &&\n date?.getMonth() === tomorrow?.getMonth() &&\n date?.getFullYear() === tomorrow?.getFullYear();\n };\n\n}\n","import {\n CanDisable,\n CanDisableConstructor,\n mixinDisabled,\n IsGrouped,\n IsGroupedConstructor,\n mixinGrouped\n} from '@bravobit/bb-foundation';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n Input,\n ViewEncapsulation\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\n\nlet nextUniqueId = 0;\n\nclass BbCheckboxBase {\n}\n\nconst BbCheckboxMixinBase: IsGroupedConstructor\n & CanDisableConstructor\n & typeof BbCheckboxBase\n = mixinDisabled(mixinGrouped(BbCheckboxBase));\n\n@Component({\n selector: 'bb-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BbCheckbox), multi: true}\n ],\n host: {\n 'class': 'bb-checkbox',\n '[class.grouped]': 'grouped'\n },\n inputs: ['grouped', 'disabled'],\n preserveWhitespaces: false\n})\nexport class BbCheckbox extends BbCheckboxMixinBase implements ControlValueAccessor, IsGrouped, CanDisable {\n\n // Data.\n labelId = `bb-checkbox-${nextUniqueId++}`;\n\n // Inputs.\n @Input() tabIndex: number;\n\n get checked() {\n return this._checked;\n }\n\n @Input()\n set checked(value: any) {\n this._checked = coerceBooleanProperty(value);\n this._changeDetection.markForCheck();\n }\n\n private _checked: boolean = false;\n\n constructor(private _changeDetection: ChangeDetectorRef) {\n super();\n }\n\n // Methods.\n onChange: (newValue: boolean) => void = () => {\n };\n\n onTouched: () => void = () => {\n };\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n this._changeDetection.markForCheck();\n }\n\n writeValue(newValue: boolean) {\n this.checked = newValue;\n }\n\n onInteractionEvent(event: Event) {\n // Stop the propagation to prevent it from bubbling up.\n event.stopPropagation();\n }\n\n onInputClick(event: Event) {\n // Stop the propagation to prevent it from bubbling up.\n event.stopPropagation();\n\n // Toggle the value.\n this.checked = !this.checked;\n\n // Emit the change event.\n this.onChange && this.onChange(this.checked);\n }\n\n}\n","<input [id]=\"labelId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\"\n class=\"bb-checkbox-input\"\n tabindex=\"-1\"\n type=\"checkbox\">\n\n<label [for]=\"labelId\"\n [attr.tabindex]=\"disabled ? -1 : (tabIndex || 0)\"\n (keyup.space)=\"onInputClick($event)\"\n class=\"bb-checkbox-label\">\n <span>\n <svg width=\"12px\"\n height=\"10px\"\n viewbox=\"0 0 12 10\">\n <polyline points=\"1.5 6 4.5 9 10.5 1\"></polyline>\n </svg>\n </span>\n <span>\n <ng-content></ng-content>\n </span>\n</label>\n","import {ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation} from '@angular/core';\nimport {BehaviorSubject} from 'rxjs';\n\n@Component({\n selector: 'bb-avatar',\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n host: {\n 'class': 'bb-avatar',\n 'role': 'img',\n '[style.width.px]': 'size',\n '[style.min-width.px]': 'size',\n '[style.height.px]': 'size',\n '[style.min-height.px]': 'size',\n '[style.font-size.px]': 'size * 0.42',\n '[style.color]': 'color',\n '[style.background-color]': 'backgroundColor'\n }\n})\nexport class BbAvatar {\n\n // Inputs.\n @Input() size: number = 40;\n\n // State.\n state$ = new BehaviorSubject<string>('initials');\n\n // Data.\n private _src: string | null = null;\n private _title: string | null = null;\n private _initials: string = '!';\n private _color: string = 'rgb(255, 255, 255)';\n private _backgroundColor: string = 'rgb(66, 66, 66)';\n\n @Input()\n set src(value: string) {\n this._src = value;\n\n if (this._src) {\n this.state$.next('image');\n }\n }\n\n @Input()\n @HostBinding('attr.title')\n set title(value: string) {\n // Set the title and the initials.\n this._title = value ?? '!';\n this._initials = this.getInitials(this._title);\n\n // Generate the colors based on the name.\n const {r, g, b} = this.toRgb(this._title);\n this.setColors(r, g, b);\n }\n\n @Input()\n set tintColor(value: string) {\n const result = this.parseColorFormat(value);\n if (!result) {\n return;\n }\n\n const {r, g, b} = result;\n this.setColors(r, g, b);\n }\n\n get src() {\n return this._src;\n }\n\n get color() {\n return this._color;\n }\n\n get backgroundColor() {\n return this._backgroundColor;\n }\n\n get title() {\n return this._title;\n }\n\n get initials() {\n return this._initials;\n }\n\n private setColors(red: number, green: number, blue: number) {\n this._color = `rgb(${red},${green},${blue})`;\n this._backgroundColor = `rgba(${red},${green},${blue}, 0.25)`;\n }\n\n private toRgb = (value: string) => {\n const baseRed = 128;\n const baseGreen = 128;\n const baseBlue = 128;\n\n let seed = value.charCodeAt(0) ^ value.charCodeAt(1);\n const rand_1 = Math.abs((Math.sin(seed++) * 10000)) % 256;\n const rand_2 = Math.abs((Math.sin(seed++) * 10000)) % 256;\n const rand_3 = Math.abs((Math.sin(seed++) * 10000)) % 256;\n\n const r = Math.round((rand_1 + baseRed) / 2);\n const g = Math.round((rand_2 + baseGreen) / 2);\n const b = Math.round((rand_3 + baseBlue) / 2);\n\n return {r, g, b};\n };\n\n private getInitials = (name: string) => {\n // Get all the initials.\n const names = (name ?? '').split(' ');\n const initials = names\n .map(name => name.charAt(0).toUpperCase())\n .filter(name => /^[a-zA-Z]+$/.test(name));\n\n // Check if there are any initials.\n if (initials?.length <= 0) {\n return null;\n }\n\n // Get the first and last initials.\n if (initials?.length > 1) {\n return `${initials?.[0]}${initials?.[initials?.length - 1]}`;\n }\n\n // Get only the first initial.\n return initials?.[0];\n };\n\n private parseColorFormat = (value: string) => {\n if (!value) {\n return null;\n }\n\n // Hex 3 values.\n let match = value.match(/^#([0-9a-f]{3})$/i);\n if (match && match[1]) {\n const r = parseInt(match[1].charAt(0), 16) * 0x11;\n const g = parseInt(match[1].charAt(1), 16) * 0x11;\n const b = parseInt(match[1].charAt(2), 16) * 0x11;\n\n return {r, g, b};\n }\n\n // Hex 6 values.\n match = value.match(/^#([0-9a-f]{6})$/i);\n if (match && match[1]) {\n const r = parseInt(match[1].substring(0, 2), 16);\n const g = parseInt(match[1].substring(2, 4), 16);\n const b = parseInt(match[1].substring(4, 6), 16);\n\n return {r, g, b};\n }\n\n // Rgb values.\n match = value.match(/^rgb\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)$/i);\n if (match) {\n const r = parseInt(match[1], 10);\n const g = parseInt(match[2], 10);\n const b = parseInt(match[3], 10);\n\n return {r, g, b};\n }\n\n // Not a supported color format.\n console?.warn?.(`BbAvatar: Unsupported tintColor \"${value}\" was used.`);\n return null;\n };\n\n}\n","<ng-container [ngSwitch]=\"state$ | async\">\n <!-- Image. -->\n <ng-container *ngSwitchCase=\"'image'\">\n <img [src]=\"src\"\n [alt]=\"initials\"\n (error)=\"state$?.next('initials')\"\n class=\"bb-avatar-image\">\n </ng-container>\n\n <!-- Default initials fallback. -->\n <ng-container *ngSwitchDefault>\n {{ initials }}\n </ng-container>\n</ng-container>\n","import {ChangeDetectionStrategy, Component, Inject, Input, Optional, ViewEncapsulation} from '@angular/core';\nimport {ELEMENTS_ICONS, ElementsIcon} from '../elements.interfaces';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {BehaviorSubject} from 'rxjs';\n\n@Component({\n selector: 'bb-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'bb-icon',\n '[attr.aria-hidden]': 'ariaHidden',\n '[style.width.px]': 'size',\n '[style.height.px]': 'size',\n '[style.min-width.px]': 'size',\n '[style.min-height.px]': 'size',\n '[style.font-size.px]': 'size'\n },\n preserveWhitespaces: false\n})\nexport class BbIcon {\n\n // Data.\n private _src: string | null = null;\n\n // State.\n state$ = new BehaviorSubject<any>(null);\n\n @Input() alt: string | null = null;\n @Input() size: number = 24;\n\n @Input()\n set src(newValue: string | null) {\n this.state$.next(this.convert(newValue));\n this._src = newValue;\n }\n\n get src() {\n return this._src;\n }\n\n @Input()\n set ariaHidden(newValue: boolean) {\n this._ariaHidden = coerceBooleanProperty(newValue);\n }\n\n get ariaHidden() {\n return this._ariaHidden;\n }\n\n private _ariaHidden = true;\n\n constructor(@Optional() @Inject(ELEMENTS_ICONS) private _registry: ElementsIcon[]) {\n }\n\n private convert(src: string | null) {\n const [namespace, value] = (src || '').split(':');\n\n const onError = () => {\n this.warn(`ElementsModule: The icon with src \"${src}\" could not be rendered correctly; Did you put a correct src attribute?`);\n return {type: 'unknown'};\n };\n\n if (!namespace || !value || !this._registry) {\n return onError();\n }\n\n // Try to find a image icon.\n const imageIcon = this.findImageIcon(namespace, value);\n if (imageIcon) {\n return imageIcon;\n }\n\n // Try to find a font icon.\n const fontIcon = this.findFontIcon(namespace, value);\n if (fontIcon) {\n return fontIcon;\n }\n\n // Return the on error function.\n return onError();\n }\n\n private findImageIcon(namespace: string, value: string) {\n const data = this._registry.find(item => item['namespace'] === namespace && item['name'] === value);\n\n if (!data) {\n return null;\n }\n\n return {type: data['type'], src: data['src']};\n }\n\n private findFontIcon(namespace: string, content: string) {\n const data = this._registry.find(item => item['namespace'] === namespace);\n\n if (!data) {\n return null;\n }\n\n const uses = data['uses'];\n if (uses === 'data-attribute') {\n return {type: data['type'], className: data['className'], attribute: content};\n }\n\n return {type: data['type'], className: data['className'], content};\n }\n\n private warn = (content: string) => {\n return console && console.warn && console.warn(content);\n };\n\n}\n","<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","import {ChangeDetectionStrategy, Component, EventEmitter, Output, ViewEncapsulation} from '@angular/core';\n\n@Component({\n selector: 'bb-tag',\n templateUrl: './tag.component.html',\n styleUrls: ['./tag.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n host: {'class': 'bb-tag'}\n})\nexport class BbTag {\n\n // Outputs.\n @Output() onClose: EventEmitter<void> = new EventEmitter<void>();\n\n}\n","<ng-content></ng-content>\n\n<button *ngIf=\"onClose?.observed\"\n (click)=\"onClose.emit()\"\n type=\"button\">\n Close\n</button>","import {BbDropdown, BbDropdownItem} from './dropdown/dropdown.component';\nimport {ELEMENTS_ERRORS, ELEMENTS_ICONS} from './elements.interfaces';\nimport {BbFormSubmitter} from './directives/form-submitter.directive';\nimport {BbImagePicker} from './image-picker/image-picker.component';\nimport {BbFormControl} from './form-control/form-control.component';\nimport {BbFilePicker} from './file-picker/file-picker.component';\nimport {BbDatePicker} from './date-picker/date-picker.component';\nimport {LocalizeModule} from '@bravobit/bb-foundation/localize';\nimport {BbPrefix, BbSuffix} from './directives/addon.directive';\nimport {BbFormSubmit} from './directives/form-submit.directive';\nimport {BbInput, BbSelect} from './directives/input.directive';\nimport {BbFormGroup} from './form-group/form-group.component';\nimport {BbFormError} from './form-error/form-error.component';\nimport {BbAnchor, BbButton} from './button/button.component';\nimport {ModuleWithProviders, NgModule} from '@angular/core';\nimport {BbRelativeTime} from './pipes/relative-time.pipe';\nimport {UtilsModule} from '@bravobit/bb-foundation/utils';\nimport {BbCheckbox} from './checkbox/checkbox.component';\nimport {BbSpinner} from './spinner/spinner.component';\nimport {BbFileImage} from './pipes/file-image.pipe';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {BbAvatar} from './avatar/avatar.component';\nimport {BbFileSize} from './pipes/file-size.pipe';\nimport {CommonModule} from '@angular/common';\nimport {BbIcon} from './icon/icon.component';\nimport {BbTag} from './tag/tag.component';\n\nconst DECLARATIONS_EXPORTS = [\n // Directives.\n BbFormError,\n BbFormSubmit,\n BbFormSubmitter,\n BbInput,\n BbSelect,\n BbPrefix,\n BbSuffix,\n // Pipes.\n BbFileSize,\n BbFileImage,\n BbRelativeTime,\n // Components.\n BbButton,\n BbAnchor,\n BbSpinner,\n BbIcon,\n BbFormControl,\n BbFormGroup,\n BbCheckbox,\n BbDropdown,\n BbDropdownItem,\n BbTag,\n BbAvatar,\n BbFilePicker,\n BbImagePicker,\n BbDatePicker\n];\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n LocalizeModule,\n UtilsModule\n ],\n declarations: [...DECLARATIONS_EXPORTS],\n exports: [...DECLARATIONS_EXPORTS, UtilsModule]\n})\nexport class ElementsModule {\n\n static forRoot(): ModuleWithProviders<ElementsModule> {\n return {\n ngModule: ElementsModule,\n providers: [\n {provide: ELEMENTS_ERRORS, useFactory: getErrors, multi: true},\n ELEMENTS_MATERIAL_ICON\n ]\n };\n }\n\n}\n\nexport const ELEMENTS_MATERIAL_ICON = {\n provide: ELEMENTS_ICONS,\n useValue: {namespace: 'material', className: 'material-icons', uses: 'content', type: 'font'},\n multi: true\n};\n\nexport function getErrors() {\n const data = {\n unknown: () => 'form-control-errors.unknown',\n required: () => 'form-control-errors.required',\n pattern: () => 'form-control-errors.pattern',\n email: () => 'form-control-errors.email',\n emailTaken: () => 'form-control-errors.emailTaken',\n passwordMatch: () => 'form-control-errors.passwordMatch',\n confirm: () => 'form-control-errors.confirm',\n fullNumber: () => 'form-control-errors.fullNumber',\n min: ({min}) => ({token: 'form-control-errors.min', data: {min}}),\n max: ({max}) => ({token: 'form-control-errors.max', data: {max}}),\n maxFileSize: ({maxSize}) => ({token: 'form-control-errors.maxFileSize', data: {maxSize}}),\n minDate: ({date}) => ({token: 'form-control-errors.minDate', data: {date}}),\n maxDate: ({date}) => ({token: 'form-control-errors.maxDate', data: {date}}),\n invalidDate: () => 'form-control-errors.invalidDate',\n invalidFileType: () => 'form-control-errors.invalidFileType',\n minlength: ({requiredLength, actualLength}) => ({\n token: 'form-control-errors.minlength',\n data: {requiredLength, actualLength}\n }),\n maxlength: ({requiredLength, actualLength}) => ({\n token: 'form-control-errors.maxlength',\n data: {requiredLength, actualLength}\n })\n };\n\n return data;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.BbSpinner","i1","i2","i3.BbButton","i4","i5","nextUniqueId","i3.BbFormError","BbFilePickerMixinBase","i5.BbFileSize","i6.BbFileImage","i2.BbFormControl","i3","i4.BbFormError","i5.BbFormSubmit","i6.BbInput","i6.BbSelect","i7.BbFormControl"],"mappings":"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"}
|