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