@bravobit/bb-foundation 0.14.3 → 0.15.2
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/README.md +47 -47
- package/auth/bravobit-bb-foundation-auth.d.ts +5 -5
- package/auth/lib/auth.interceptor.d.ts +21 -21
- package/auth/lib/auth.module.d.ts +15 -15
- package/auth/lib/auth.service.d.ts +59 -59
- package/auth/lib/auth.session.d.ts +34 -34
- package/auth/lib/directives/authenticated.directive.d.ts +14 -14
- package/auth/lib/directives/permission.directive.d.ts +24 -24
- package/auth/lib/directives/role.directive.d.ts +16 -16
- package/auth/lib/guards/anonymous.guard.d.ts +11 -11
- package/auth/lib/guards/authenticated.guard.d.ts +11 -11
- package/auth/lib/helpers/jwt.helper.d.ts +8 -8
- package/auth/lib/helpers/mapper.helper.d.ts +23 -23
- package/auth/lib/interfaces/config.interface.d.ts +12 -12
- package/auth/lib/interfaces/mapper.interface.d.ts +19 -19
- package/auth/lib/interfaces/provider.interface.d.ts +16 -16
- package/auth/lib/interfaces/token.interface.d.ts +11 -11
- package/auth/lib/permissions.service.d.ts +14 -14
- package/auth/lib/providers/email.provider.d.ts +15 -15
- package/auth/lib/providers/verify.provider.d.ts +13 -13
- package/auth/lib/tokens/use-authorization.token.d.ts +2 -2
- package/auth/public_api.d.ts +18 -18
- package/bravobit-bb-foundation.d.ts +5 -5
- package/bundles/bravobit-bb-foundation-auth.umd.js +1400 -1402
- package/bundles/bravobit-bb-foundation-auth.umd.js.map +1 -1
- package/bundles/bravobit-bb-foundation-collections.umd.js +868 -0
- package/bundles/bravobit-bb-foundation-collections.umd.js.map +1 -0
- package/bundles/bravobit-bb-foundation-dashboard.umd.js +817 -819
- package/bundles/bravobit-bb-foundation-dashboard.umd.js.map +1 -1
- package/bundles/bravobit-bb-foundation-dialog.umd.js +649 -651
- package/bundles/bravobit-bb-foundation-dialog.umd.js.map +1 -1
- package/bundles/bravobit-bb-foundation-elements.umd.js +2651 -2653
- package/bundles/bravobit-bb-foundation-elements.umd.js.map +1 -1
- package/bundles/bravobit-bb-foundation-http.umd.js +488 -490
- package/bundles/bravobit-bb-foundation-http.umd.js.map +1 -1
- package/bundles/bravobit-bb-foundation-localize.umd.js +1208 -1210
- package/bundles/bravobit-bb-foundation-localize.umd.js.map +1 -1
- package/bundles/bravobit-bb-foundation-notifications.umd.js +743 -745
- package/bundles/bravobit-bb-foundation-notifications.umd.js.map +1 -1
- package/bundles/bravobit-bb-foundation-recaptcha.umd.js +640 -642
- package/bundles/bravobit-bb-foundation-recaptcha.umd.js.map +1 -1
- package/bundles/bravobit-bb-foundation-rxjs.umd.js +13 -13
- package/bundles/bravobit-bb-foundation-rxjs.umd.js.map +1 -1
- package/bundles/bravobit-bb-foundation-storage.umd.js +756 -758
- package/bundles/bravobit-bb-foundation-storage.umd.js.map +1 -1
- package/bundles/bravobit-bb-foundation-table.umd.js +993 -995
- package/bundles/bravobit-bb-foundation-table.umd.js.map +1 -1
- package/bundles/bravobit-bb-foundation.umd.js +1332 -1334
- package/bundles/bravobit-bb-foundation.umd.js.map +1 -1
- package/collections/bravobit-bb-foundation-collections.d.ts +5 -0
- package/collections/lib/collection.d.ts +43 -0
- package/collections/lib/collections.module.d.ts +10 -0
- package/collections/lib/components/collections-pager/collections-pager.component.d.ts +34 -0
- package/collections/lib/components/collections-viewer/collections-viewer.component.d.ts +12 -0
- package/collections/lib/components/collections.directive.d.ts +17 -0
- package/collections/lib/interfaces/collection.interface.d.ts +26 -0
- package/collections/lib/providers/api-collection.provider.d.ts +15 -0
- package/collections/lib/providers/collection.provider.d.ts +6 -0
- package/collections/lib/providers/local-collection.provider.d.ts +8 -0
- package/collections/package.json +10 -0
- package/collections/public_api.d.ts +9 -0
- package/dashboard/bravobit-bb-foundation-dashboard.d.ts +5 -5
- package/dashboard/lib/dashboard/dashboard.component.d.ts +19 -19
- package/dashboard/lib/dashboard-header/dashboard-header.component.d.ts +11 -11
- package/dashboard/lib/dashboard-menu/dashboard-menu.component.d.ts +9 -9
- package/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.d.ts +11 -11
- package/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.d.ts +21 -21
- package/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.d.ts +27 -27
- package/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.d.ts +16 -16
- package/dashboard/lib/dashboard.module.d.ts +16 -16
- package/dashboard/public_api.d.ts +8 -8
- package/dialog/bravobit-bb-foundation-dialog.d.ts +5 -5
- package/dialog/lib/dialog-actions/dialog-actions.component.d.ts +5 -5
- package/dialog/lib/dialog-confirm/dialog-confirm.component.d.ts +16 -16
- package/dialog/lib/dialog-container/dialog-container.component.d.ts +24 -24
- package/dialog/lib/dialog-header/dialog-header.component.d.ts +9 -9
- package/dialog/lib/dialog-link/dialog-link.component.d.ts +5 -5
- package/dialog/lib/dialog-modal/dialog-modal.component.d.ts +12 -12
- package/dialog/lib/dialog-overlay/dialog-overlay.component.d.ts +22 -22
- package/dialog/lib/dialog.injector.d.ts +8 -8
- package/dialog/lib/dialog.insertion.d.ts +8 -8
- package/dialog/lib/dialog.interfaces.d.ts +3 -3
- package/dialog/lib/dialog.module.d.ts +19 -19
- package/dialog/lib/dialog.ref.d.ts +8 -8
- package/dialog/lib/dialog.service.d.ts +19 -19
- package/dialog/public_api.d.ts +9 -9
- package/elements/bravobit-bb-foundation-elements.d.ts +5 -5
- package/elements/lib/avatar/avatar.component.d.ts +25 -25
- package/elements/lib/button/button.component.d.ts +23 -23
- package/elements/lib/checkbox/checkbox.component.d.ts +27 -27
- package/elements/lib/date-picker/date-picker.component.d.ts +69 -69
- package/elements/lib/directives/addon.directive.d.ts +9 -9
- package/elements/lib/directives/autosize.directive.d.ts +18 -18
- package/elements/lib/directives/focus-trap.directive.d.ts +17 -17
- package/elements/lib/directives/focus.directive.d.ts +14 -14
- package/elements/lib/directives/form-submit.directive.d.ts +17 -17
- package/elements/lib/directives/input.directive.d.ts +38 -38
- package/elements/lib/directives/template.directive.d.ts +10 -10
- package/elements/lib/dropdown/dropdown.component.d.ts +21 -21
- package/elements/lib/elements.interfaces.d.ts +25 -25
- package/elements/lib/elements.module.d.ts +116 -116
- package/elements/lib/file-picker/file-picker.component.d.ts +49 -49
- package/elements/lib/form-control/form-control.component.d.ts +21 -21
- package/elements/lib/form-error/form-error.component.d.ts +29 -29
- package/elements/lib/form-group/form-group.component.d.ts +10 -10
- package/elements/lib/icon/icon.component.d.ts +22 -22
- package/elements/lib/image-picker/image-picker.component.d.ts +38 -38
- package/elements/lib/pipes/file-image.pipe.d.ts +13 -13
- package/elements/lib/pipes/file-size.pipe.d.ts +8 -8
- package/elements/lib/pipes/relative-time.pipe.d.ts +19 -19
- package/elements/lib/spinner/spinner.component.d.ts +12 -12
- package/elements/lib/tag/tag.component.d.ts +7 -7
- package/elements/public_api.d.ts +25 -25
- package/esm2015/auth/bravobit-bb-foundation-auth.js +4 -4
- package/esm2015/auth/lib/auth.interceptor.js +95 -95
- package/esm2015/auth/lib/auth.module.js +54 -54
- package/esm2015/auth/lib/auth.service.js +299 -299
- package/esm2015/auth/lib/auth.session.js +136 -136
- package/esm2015/auth/lib/directives/authenticated.directive.js +32 -32
- package/esm2015/auth/lib/directives/permission.directive.js +81 -81
- package/esm2015/auth/lib/directives/role.directive.js +38 -38
- package/esm2015/auth/lib/guards/anonymous.guard.js +35 -35
- package/esm2015/auth/lib/guards/authenticated.guard.js +36 -36
- package/esm2015/auth/lib/helpers/jwt.helper.js +69 -69
- package/esm2015/auth/lib/helpers/mapper.helper.js +35 -35
- package/esm2015/auth/lib/interfaces/config.interface.js +3 -3
- package/esm2015/auth/lib/interfaces/mapper.interface.js +2 -2
- package/esm2015/auth/lib/interfaces/provider.interface.js +2 -2
- package/esm2015/auth/lib/interfaces/token.interface.js +2 -2
- package/esm2015/auth/lib/permissions.service.js +58 -58
- package/esm2015/auth/lib/providers/email.provider.js +26 -26
- package/esm2015/auth/lib/providers/verify.provider.js +20 -20
- package/esm2015/auth/lib/tokens/use-authorization.token.js +3 -3
- package/esm2015/auth/public_api.js +19 -19
- package/esm2015/bravobit-bb-foundation.js +4 -4
- package/esm2015/collections/bravobit-bb-foundation-collections.js +5 -0
- package/esm2015/collections/lib/collection.js +104 -0
- package/esm2015/collections/lib/collections.module.js +54 -0
- package/esm2015/collections/lib/components/collections-pager/collections-pager.component.js +136 -0
- package/esm2015/collections/lib/components/collections-viewer/collections-viewer.component.js +39 -0
- package/esm2015/collections/lib/components/collections.directive.js +43 -0
- package/esm2015/collections/lib/interfaces/collection.interface.js +2 -0
- package/esm2015/collections/lib/providers/api-collection.provider.js +69 -0
- package/esm2015/collections/lib/providers/collection.provider.js +14 -0
- package/esm2015/collections/lib/providers/local-collection.provider.js +16 -0
- package/esm2015/collections/public_api.js +10 -0
- package/esm2015/dashboard/bravobit-bb-foundation-dashboard.js +4 -4
- package/esm2015/dashboard/lib/dashboard/dashboard.component.js +64 -64
- package/esm2015/dashboard/lib/dashboard-header/dashboard-header.component.js +41 -41
- package/esm2015/dashboard/lib/dashboard-menu/dashboard-menu.component.js +39 -39
- package/esm2015/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.js +38 -38
- package/esm2015/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.js +83 -83
- package/esm2015/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.js +110 -110
- package/esm2015/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.js +71 -71
- package/esm2015/dashboard/lib/dashboard.module.js +47 -47
- package/esm2015/dashboard/public_api.js +9 -9
- package/esm2015/dialog/bravobit-bb-foundation-dialog.js +4 -4
- package/esm2015/dialog/lib/dialog-actions/dialog-actions.component.js +20 -20
- package/esm2015/dialog/lib/dialog-confirm/dialog-confirm.component.js +45 -45
- package/esm2015/dialog/lib/dialog-container/dialog-container.component.js +162 -162
- package/esm2015/dialog/lib/dialog-header/dialog-header.component.js +33 -33
- package/esm2015/dialog/lib/dialog-link/dialog-link.component.js +19 -19
- package/esm2015/dialog/lib/dialog-modal/dialog-modal.component.js +54 -54
- package/esm2015/dialog/lib/dialog-overlay/dialog-overlay.component.js +143 -143
- package/esm2015/dialog/lib/dialog.injector.js +18 -18
- package/esm2015/dialog/lib/dialog.insertion.js +16 -16
- package/esm2015/dialog/lib/dialog.interfaces.js +3 -3
- package/esm2015/dialog/lib/dialog.module.js +74 -74
- package/esm2015/dialog/lib/dialog.ref.js +22 -22
- package/esm2015/dialog/lib/dialog.service.js +77 -77
- package/esm2015/dialog/public_api.js +10 -10
- package/esm2015/elements/bravobit-bb-foundation-elements.js +4 -4
- package/esm2015/elements/lib/avatar/avatar.component.js +151 -151
- package/esm2015/elements/lib/button/button.component.js +79 -79
- package/esm2015/elements/lib/checkbox/checkbox.component.js +83 -83
- package/esm2015/elements/lib/date-picker/date-picker.component.js +322 -322
- package/esm2015/elements/lib/directives/addon.directive.js +29 -29
- package/esm2015/elements/lib/directives/autosize.directive.js +74 -74
- package/esm2015/elements/lib/directives/focus-trap.directive.js +77 -77
- package/esm2015/elements/lib/directives/focus.directive.js +39 -39
- package/esm2015/elements/lib/directives/form-submit.directive.js +53 -53
- package/esm2015/elements/lib/directives/input.directive.js +139 -139
- package/esm2015/elements/lib/directives/template.directive.js +28 -28
- package/esm2015/elements/lib/dropdown/dropdown.component.js +111 -111
- package/esm2015/elements/lib/elements.interfaces.js +4 -4
- package/esm2015/elements/lib/elements.module.js +177 -177
- package/esm2015/elements/lib/file-picker/file-picker.component.js +247 -247
- package/esm2015/elements/lib/form-control/form-control.component.js +58 -58
- package/esm2015/elements/lib/form-error/form-error.component.js +116 -116
- package/esm2015/elements/lib/form-group/form-group.component.js +27 -27
- package/esm2015/elements/lib/icon/icon.component.js +110 -110
- package/esm2015/elements/lib/image-picker/image-picker.component.js +119 -119
- package/esm2015/elements/lib/pipes/file-image.pipe.js +45 -45
- package/esm2015/elements/lib/pipes/file-size.pipe.js +28 -28
- package/esm2015/elements/lib/pipes/relative-time.pipe.js +96 -96
- package/esm2015/elements/lib/spinner/spinner.component.js +34 -34
- package/esm2015/elements/lib/tag/tag.component.js +26 -26
- package/esm2015/elements/public_api.js +26 -26
- package/esm2015/http/bravobit-bb-foundation-http.js +4 -4
- package/esm2015/http/lib/classes/http.config.js +31 -31
- package/esm2015/http/lib/classes/http.error.js +21 -21
- package/esm2015/http/lib/http.interfaces.js +2 -2
- package/esm2015/http/lib/http.module.js +43 -43
- package/esm2015/http/lib/interceptors/base-url.interceptor.js +52 -52
- package/esm2015/http/lib/interceptors/error.interceptor.js +33 -33
- package/esm2015/http/public_api.js +7 -7
- package/esm2015/lib/core/coercions/boolean-coercion.js +4 -4
- package/esm2015/lib/core/miscellaneous/regex.js +5 -5
- package/esm2015/lib/core/miscellaneous/validator.js +86 -86
- package/esm2015/lib/core/mixins/can-disable.js +16 -16
- package/esm2015/lib/core/mixins/can-hide-errors.js +16 -16
- package/esm2015/lib/core/mixins/can-load.js +16 -16
- package/esm2015/lib/core/mixins/constructor.js +2 -2
- package/esm2015/lib/core/mixins/has-error.js +16 -16
- package/esm2015/lib/core/mixins/is-focused.js +16 -16
- package/esm2015/lib/core/mixins/is-grouped.js +16 -16
- package/esm2015/lib/core/mixins/is-readonly.js +16 -16
- package/esm2015/lib/core/mixins/is-required.js +16 -16
- package/esm2015/lib/core/services/clipboard.service.js +72 -72
- package/esm2015/lib/core/services/exif.service.js +168 -168
- package/esm2015/lib/core/services/file-loader.service.js +90 -90
- package/esm2015/lib/core/services/image-converter.service.js +130 -130
- package/esm2015/lib/core/services/languages.service.js +74 -74
- package/esm2015/lib/core/services/network.service.js +56 -56
- package/esm2015/lib/core/services/patch.service.js +65 -65
- package/esm2015/lib/core/services/platform.service.js +42 -42
- package/esm2015/lib/core/tokens/accept-language.token.js +3 -3
- package/esm2015/lib/core/tokens/base-url.token.js +3 -3
- package/esm2015/lib/core/tokens/cookie.token.js +3 -3
- package/esm2015/lib/core/tokens/location.token.js +6 -6
- package/esm2015/lib/core/tokens/navigator.token.js +6 -6
- package/esm2015/lib/core/tokens/window.token.js +12 -12
- package/esm2015/localize/bravobit-bb-foundation-localize.js +4 -4
- package/esm2015/localize/lib/functions/date.function.js +18 -18
- package/esm2015/localize/lib/functions/lowercase.function.js +13 -13
- package/esm2015/localize/lib/functions/uppercase.function.js +13 -13
- package/esm2015/localize/lib/handlers/missing.handler.js +17 -17
- package/esm2015/localize/lib/interfaces/config.interfaces.js +10 -10
- package/esm2015/localize/lib/interfaces/dictionary.interfaces.js +8 -8
- package/esm2015/localize/lib/interfaces/functions.interfaces.js +8 -8
- package/esm2015/localize/lib/interfaces/handlers.interfaces.js +2 -2
- package/esm2015/localize/lib/interfaces/options.interfaces.js +6 -6
- package/esm2015/localize/lib/localizations/dutch.localization.js +53 -53
- package/esm2015/localize/lib/localizations/english.localization.js +53 -53
- package/esm2015/localize/lib/localize.dictionary.js +137 -137
- package/esm2015/localize/lib/localize.module.js +69 -69
- package/esm2015/localize/lib/localize.pipe.js +49 -49
- package/esm2015/localize/lib/localize.service.js +282 -282
- package/esm2015/localize/lib/views/localize-string/localize-string.component.js +99 -99
- package/esm2015/localize/lib/views/localize-template-or-string.directive.js +28 -28
- package/esm2015/localize/lib/views/localize-template.directive.js +21 -21
- package/esm2015/localize/public_api.js +18 -18
- package/esm2015/notifications/bravobit-bb-foundation-notifications.js +4 -4
- package/esm2015/notifications/lib/notifications-item/notifications-item.component.js +108 -108
- package/esm2015/notifications/lib/notifications-list/notifications-list.component.js +56 -56
- package/esm2015/notifications/lib/notifications.animations.js +28 -28
- package/esm2015/notifications/lib/notifications.injector.js +18 -18
- package/esm2015/notifications/lib/notifications.interfaces.js +20 -20
- package/esm2015/notifications/lib/notifications.module.js +31 -31
- package/esm2015/notifications/lib/notifications.service.js +145 -145
- package/esm2015/notifications/public_api.js +4 -4
- package/esm2015/public_api.js +30 -30
- package/esm2015/recaptcha/bravobit-bb-foundation-recaptcha.js +4 -4
- package/esm2015/recaptcha/lib/recaptcha/recaptcha.component.js +199 -199
- package/esm2015/recaptcha/lib/recaptcha-loader.service.js +93 -93
- package/esm2015/recaptcha/lib/recaptcha.interface.js +3 -3
- package/esm2015/recaptcha/lib/recaptcha.module.js +27 -27
- package/esm2015/recaptcha/public_api.js +5 -5
- package/esm2015/rxjs/bravobit-bb-foundation-rxjs.js +4 -4
- package/esm2015/rxjs/lib/operators/combine-latest-map.operator.js +7 -7
- package/esm2015/rxjs/lib/operators/filter-nil.operator.js +5 -5
- package/esm2015/rxjs/public_api.js +3 -3
- package/esm2015/storage/bravobit-bb-foundation-storage.js +4 -4
- package/esm2015/storage/lib/interfaces/attributes.interface.js +2 -2
- package/esm2015/storage/lib/interfaces/memory.interface.js +2 -2
- package/esm2015/storage/lib/interfaces/strategy.interface.js +2 -2
- package/esm2015/storage/lib/storage.service.js +111 -111
- package/esm2015/storage/lib/strategies/cookie-storage.strategy.js +143 -143
- package/esm2015/storage/lib/strategies/memory-storage.strategy.js +56 -56
- package/esm2015/storage/lib/strategies/polyfill-storage.strategy.js +102 -102
- package/esm2015/storage/public_api.js +8 -8
- package/esm2015/table/bravobit-bb-foundation-table.js +4 -4
- package/esm2015/table/lib/components/table/table.component.js +183 -183
- package/esm2015/table/lib/components/table-cell/table-cell.component.js +19 -19
- package/esm2015/table/lib/components/table-header-cell/table-header-cell.component.js +141 -141
- package/esm2015/table/lib/components/table-pager/table-pager.component.js +146 -146
- package/esm2015/table/lib/data/datasource.data.js +32 -32
- package/esm2015/table/lib/data/generic.data.js +73 -73
- package/esm2015/table/lib/interfaces/datasource.interface.js +2 -2
- package/esm2015/table/lib/interfaces/table.interfaces.js +2 -2
- package/esm2015/table/lib/table.module.js +39 -39
- package/esm2015/table/public_api.js +10 -10
- package/fesm2015/bravobit-bb-foundation-auth.js +915 -915
- package/fesm2015/bravobit-bb-foundation-auth.js.map +1 -1
- package/fesm2015/bravobit-bb-foundation-collections.js +463 -0
- package/fesm2015/bravobit-bb-foundation-collections.js.map +1 -0
- package/fesm2015/bravobit-bb-foundation-dashboard.js +434 -434
- package/fesm2015/bravobit-bb-foundation-dashboard.js.map +1 -1
- package/fesm2015/bravobit-bb-foundation-dialog.js +603 -603
- package/fesm2015/bravobit-bb-foundation-dialog.js.map +1 -1
- package/fesm2015/bravobit-bb-foundation-elements.js +2076 -2076
- package/fesm2015/bravobit-bb-foundation-elements.js.map +1 -1
- package/fesm2015/bravobit-bb-foundation-http.js +154 -154
- package/fesm2015/bravobit-bb-foundation-http.js.map +1 -1
- package/fesm2015/bravobit-bb-foundation-localize.js +796 -796
- package/fesm2015/bravobit-bb-foundation-localize.js.map +1 -1
- package/fesm2015/bravobit-bb-foundation-notifications.js +364 -364
- package/fesm2015/bravobit-bb-foundation-notifications.js.map +1 -1
- package/fesm2015/bravobit-bb-foundation-recaptcha.js +297 -297
- package/fesm2015/bravobit-bb-foundation-recaptcha.js.map +1 -1
- package/fesm2015/bravobit-bb-foundation-rxjs.js +7 -7
- package/fesm2015/bravobit-bb-foundation-rxjs.js.map +1 -1
- package/fesm2015/bravobit-bb-foundation-storage.js +399 -399
- package/fesm2015/bravobit-bb-foundation-storage.js.map +1 -1
- package/fesm2015/bravobit-bb-foundation-table.js +578 -578
- package/fesm2015/bravobit-bb-foundation-table.js.map +1 -1
- package/fesm2015/bravobit-bb-foundation.js +851 -851
- package/fesm2015/bravobit-bb-foundation.js.map +1 -1
- package/http/bravobit-bb-foundation-http.d.ts +5 -5
- package/http/lib/classes/http.config.d.ts +9 -9
- package/http/lib/classes/http.error.d.ts +7 -7
- package/http/lib/http.interfaces.d.ts +12 -12
- package/http/lib/http.module.d.ts +15 -15
- package/http/lib/interceptors/base-url.interceptor.d.ts +15 -15
- package/http/lib/interceptors/error.interceptor.d.ts +11 -11
- package/http/public_api.d.ts +6 -6
- package/lib/core/coercions/boolean-coercion.d.ts +1 -1
- package/lib/core/miscellaneous/regex.d.ts +4 -4
- package/lib/core/miscellaneous/validator.d.ts +13 -13
- package/lib/core/mixins/can-disable.d.ts +6 -6
- package/lib/core/mixins/can-hide-errors.d.ts +6 -6
- package/lib/core/mixins/can-load.d.ts +6 -6
- package/lib/core/mixins/constructor.d.ts +1 -1
- package/lib/core/mixins/has-error.d.ts +6 -6
- package/lib/core/mixins/is-focused.d.ts +6 -6
- package/lib/core/mixins/is-grouped.d.ts +6 -6
- package/lib/core/mixins/is-readonly.d.ts +6 -6
- package/lib/core/mixins/is-required.d.ts +6 -6
- package/lib/core/services/clipboard.service.d.ts +18 -18
- package/lib/core/services/exif.service.d.ts +15 -15
- package/lib/core/services/file-loader.service.d.ts +13 -13
- package/lib/core/services/image-converter.service.d.ts +21 -21
- package/lib/core/services/languages.service.d.ts +16 -16
- package/lib/core/services/network.service.d.ts +14 -14
- package/lib/core/services/patch.service.d.ts +16 -16
- package/lib/core/services/platform.service.d.ts +18 -18
- package/lib/core/tokens/accept-language.token.d.ts +2 -2
- package/lib/core/tokens/base-url.token.d.ts +2 -2
- package/lib/core/tokens/cookie.token.d.ts +2 -2
- package/lib/core/tokens/location.token.d.ts +2 -2
- package/lib/core/tokens/navigator.token.d.ts +2 -2
- package/lib/core/tokens/window.token.d.ts +2 -2
- package/localize/bravobit-bb-foundation-localize.d.ts +5 -5
- package/localize/lib/functions/date.function.d.ts +5 -5
- package/localize/lib/functions/lowercase.function.d.ts +5 -5
- package/localize/lib/functions/uppercase.function.d.ts +5 -5
- package/localize/lib/handlers/missing.handler.d.ts +6 -6
- package/localize/lib/interfaces/config.interfaces.d.ts +8 -8
- package/localize/lib/interfaces/dictionary.interfaces.d.ts +12 -12
- package/localize/lib/interfaces/functions.interfaces.d.ts +9 -9
- package/localize/lib/interfaces/handlers.interfaces.d.ts +6 -6
- package/localize/lib/interfaces/options.interfaces.d.ts +10 -10
- package/localize/lib/localizations/dutch.localization.d.ts +51 -51
- package/localize/lib/localizations/english.localization.d.ts +51 -51
- package/localize/lib/localize.dictionary.d.ts +24 -24
- package/localize/lib/localize.module.d.ts +18 -18
- package/localize/lib/localize.pipe.d.ts +12 -12
- package/localize/lib/localize.service.d.ts +51 -51
- package/localize/lib/views/localize-string/localize-string.component.d.ts +23 -23
- package/localize/lib/views/localize-template-or-string.directive.d.ts +10 -10
- package/localize/lib/views/localize-template.directive.d.ts +9 -9
- package/localize/public_api.d.ts +17 -17
- package/notifications/bravobit-bb-foundation-notifications.d.ts +5 -5
- package/notifications/lib/notifications-item/notifications-item.component.d.ts +34 -34
- package/notifications/lib/notifications-list/notifications-list.component.d.ts +16 -16
- package/notifications/lib/notifications.animations.d.ts +1 -1
- package/notifications/lib/notifications.injector.d.ts +8 -8
- package/notifications/lib/notifications.interfaces.d.ts +49 -49
- package/notifications/lib/notifications.module.d.ts +13 -13
- package/notifications/lib/notifications.service.d.ts +34 -34
- package/notifications/public_api.d.ts +3 -3
- package/package.json +5 -5
- package/public_api.d.ts +26 -26
- package/recaptcha/bravobit-bb-foundation-recaptcha.d.ts +5 -5
- package/recaptcha/lib/recaptcha/recaptcha.component.d.ts +47 -47
- package/recaptcha/lib/recaptcha-loader.service.d.ts +22 -22
- package/recaptcha/lib/recaptcha.interface.d.ts +14 -14
- package/recaptcha/lib/recaptcha.module.d.ts +10 -16
- package/recaptcha/public_api.d.ts +4 -4
- package/rxjs/bravobit-bb-foundation-rxjs.d.ts +5 -5
- package/rxjs/lib/operators/combine-latest-map.operator.d.ts +8 -8
- package/rxjs/lib/operators/filter-nil.operator.d.ts +1 -1
- package/rxjs/public_api.d.ts +2 -2
- package/storage/bravobit-bb-foundation-storage.d.ts +5 -5
- package/storage/lib/interfaces/attributes.interface.d.ts +13 -13
- package/storage/lib/interfaces/memory.interface.d.ts +7 -7
- package/storage/lib/interfaces/strategy.interface.d.ts +17 -17
- package/storage/lib/storage.service.d.ts +26 -26
- package/storage/lib/strategies/cookie-storage.strategy.d.ts +20 -20
- package/storage/lib/strategies/memory-storage.strategy.d.ts +11 -11
- package/storage/lib/strategies/polyfill-storage.strategy.d.ts +15 -15
- package/storage/public_api.d.ts +7 -7
- package/table/bravobit-bb-foundation-table.d.ts +5 -5
- package/table/lib/components/table/table.component.d.ts +48 -48
- package/table/lib/components/table-cell/table-cell.component.d.ts +5 -5
- package/table/lib/components/table-header-cell/table-header-cell.component.d.ts +29 -29
- package/table/lib/components/table-pager/table-pager.component.d.ts +41 -41
- package/table/lib/data/datasource.data.d.ts +14 -14
- package/table/lib/data/generic.data.d.ts +23 -23
- package/table/lib/interfaces/datasource.interface.d.ts +17 -17
- package/table/lib/interfaces/table.interfaces.d.ts +1 -1
- package/table/lib/table.module.d.ts +14 -14
- package/table/public_api.d.ts +9 -9
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import { Directive } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class BbSuffix {
|
|
4
|
-
}
|
|
5
|
-
BbSuffix.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.
|
|
6
|
-
BbSuffix.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.
|
|
7
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.
|
|
8
|
-
type: Directive,
|
|
9
|
-
args: [{
|
|
10
|
-
selector: '[bbSuffix]',
|
|
11
|
-
host: {
|
|
12
|
-
'class': 'bb-suffix'
|
|
13
|
-
}
|
|
14
|
-
}]
|
|
15
|
-
}] });
|
|
16
|
-
export class BbPrefix {
|
|
17
|
-
}
|
|
18
|
-
BbPrefix.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.
|
|
19
|
-
BbPrefix.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.
|
|
21
|
-
type: Directive,
|
|
22
|
-
args: [{
|
|
23
|
-
selector: '[bbPrefix]',
|
|
24
|
-
host: {
|
|
25
|
-
'class': 'bb-prefix'
|
|
26
|
-
}
|
|
27
|
-
}]
|
|
28
|
-
}] });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Directive } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class BbSuffix {
|
|
4
|
+
}
|
|
5
|
+
BbSuffix.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0, type: BbSuffix, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
6
|
+
BbSuffix.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.10", type: BbSuffix, selector: "[bbSuffix]", host: { classAttribute: "bb-suffix" }, ngImport: i0 });
|
|
7
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0, type: BbSuffix, decorators: [{
|
|
8
|
+
type: Directive,
|
|
9
|
+
args: [{
|
|
10
|
+
selector: '[bbSuffix]',
|
|
11
|
+
host: {
|
|
12
|
+
'class': 'bb-suffix'
|
|
13
|
+
}
|
|
14
|
+
}]
|
|
15
|
+
}] });
|
|
16
|
+
export class BbPrefix {
|
|
17
|
+
}
|
|
18
|
+
BbPrefix.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0, type: BbPrefix, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
19
|
+
BbPrefix.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.10", type: BbPrefix, selector: "[bbPrefix]", host: { classAttribute: "bb-prefix" }, ngImport: i0 });
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0, type: BbPrefix, decorators: [{
|
|
21
|
+
type: Directive,
|
|
22
|
+
args: [{
|
|
23
|
+
selector: '[bbPrefix]',
|
|
24
|
+
host: {
|
|
25
|
+
'class': 'bb-prefix'
|
|
26
|
+
}
|
|
27
|
+
}]
|
|
28
|
+
}] });
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9lbGVtZW50cy9zcmMvbGliL2RpcmVjdGl2ZXMvYWRkb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBUXhDLE1BQU0sT0FBTyxRQUFROztzR0FBUixRQUFROzBGQUFSLFFBQVE7NEZBQVIsUUFBUTtrQkFOcEIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsSUFBSSxFQUFFO3dCQUNGLE9BQU8sRUFBRSxXQUFXO3FCQUN2QjtpQkFDSjs7QUFVRCxNQUFNLE9BQU8sUUFBUTs7c0dBQVIsUUFBUTswRkFBUixRQUFROzRGQUFSLFFBQVE7a0JBTnBCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLElBQUksRUFBRTt3QkFDRixPQUFPLEVBQUUsV0FBVztxQkFDdkI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2JiU3VmZml4XScsXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnYmItc3VmZml4J1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgQmJTdWZmaXgge1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tiYlByZWZpeF0nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ2JiLXByZWZpeCdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEJiUHJlZml4IHtcbn1cbiJdfQ==
|
|
@@ -1,74 +1,74 @@
|
|
|
1
|
-
import { Directive, HostBinding, HostListener, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class BbAutosize {
|
|
4
|
-
constructor(_renderer, _elementRef) {
|
|
5
|
-
this._renderer = _renderer;
|
|
6
|
-
this._elementRef = _elementRef;
|
|
7
|
-
// Min/max heights for the textarea.
|
|
8
|
-
this.minHeight = null;
|
|
9
|
-
this.maxHeight = null;
|
|
10
|
-
this.rows = 1;
|
|
11
|
-
}
|
|
12
|
-
get element() {
|
|
13
|
-
var _a;
|
|
14
|
-
return (_a = this._elementRef) === null || _a === void 0 ? void 0 : _a.nativeElement;
|
|
15
|
-
}
|
|
16
|
-
ngAfterViewInit() {
|
|
17
|
-
// Update the styles after the DOM has loaded.
|
|
18
|
-
this.updateStyles();
|
|
19
|
-
}
|
|
20
|
-
onWindowResize() {
|
|
21
|
-
// Update the styles when the window is resized.
|
|
22
|
-
this.updateStyles();
|
|
23
|
-
}
|
|
24
|
-
onInputReceived() {
|
|
25
|
-
// Update the styles after the textarea received input.
|
|
26
|
-
this.updateStyles();
|
|
27
|
-
}
|
|
28
|
-
updateStyles() {
|
|
29
|
-
var _a, _b, _c;
|
|
30
|
-
// Validate the element exists.
|
|
31
|
-
if (!this.element) {
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
// Calculate border height which is not included in the scroll height.
|
|
35
|
-
const borderHeight = ((_a = this.element) === null || _a === void 0 ? void 0 : _a.offsetHeight) - ((_b = this.element) === null || _b === void 0 ? void 0 : _b.clientHeight);
|
|
36
|
-
// Reset textarea height to auto that correctly calculate the new height.
|
|
37
|
-
this.setHeight('auto');
|
|
38
|
-
// Set new height.
|
|
39
|
-
this.setHeight(`${((_c = this.element) === null || _c === void 0 ? void 0 : _c.scrollHeight) + borderHeight}px`);
|
|
40
|
-
}
|
|
41
|
-
setHeight(value) {
|
|
42
|
-
this._renderer.setStyle(this.element, 'height', value);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
BbAutosize.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.
|
|
46
|
-
BbAutosize.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.
|
|
47
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.
|
|
48
|
-
type: Directive,
|
|
49
|
-
args: [{
|
|
50
|
-
selector: 'textarea[bbAutosize]'
|
|
51
|
-
}]
|
|
52
|
-
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { minHeight: [{
|
|
53
|
-
type: Input
|
|
54
|
-
}, {
|
|
55
|
-
type: HostBinding,
|
|
56
|
-
args: ['style.min-height']
|
|
57
|
-
}], maxHeight: [{
|
|
58
|
-
type: Input
|
|
59
|
-
}, {
|
|
60
|
-
type: HostBinding,
|
|
61
|
-
args: ['style.max-height']
|
|
62
|
-
}], rows: [{
|
|
63
|
-
type: Input
|
|
64
|
-
}, {
|
|
65
|
-
type: HostBinding,
|
|
66
|
-
args: ['rows']
|
|
67
|
-
}], onWindowResize: [{
|
|
68
|
-
type: HostListener,
|
|
69
|
-
args: ['window:resize']
|
|
70
|
-
}], onInputReceived: [{
|
|
71
|
-
type: HostListener,
|
|
72
|
-
args: ['input']
|
|
73
|
-
}] } });
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Directive, HostBinding, HostListener, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class BbAutosize {
|
|
4
|
+
constructor(_renderer, _elementRef) {
|
|
5
|
+
this._renderer = _renderer;
|
|
6
|
+
this._elementRef = _elementRef;
|
|
7
|
+
// Min/max heights for the textarea.
|
|
8
|
+
this.minHeight = null;
|
|
9
|
+
this.maxHeight = null;
|
|
10
|
+
this.rows = 1;
|
|
11
|
+
}
|
|
12
|
+
get element() {
|
|
13
|
+
var _a;
|
|
14
|
+
return (_a = this._elementRef) === null || _a === void 0 ? void 0 : _a.nativeElement;
|
|
15
|
+
}
|
|
16
|
+
ngAfterViewInit() {
|
|
17
|
+
// Update the styles after the DOM has loaded.
|
|
18
|
+
this.updateStyles();
|
|
19
|
+
}
|
|
20
|
+
onWindowResize() {
|
|
21
|
+
// Update the styles when the window is resized.
|
|
22
|
+
this.updateStyles();
|
|
23
|
+
}
|
|
24
|
+
onInputReceived() {
|
|
25
|
+
// Update the styles after the textarea received input.
|
|
26
|
+
this.updateStyles();
|
|
27
|
+
}
|
|
28
|
+
updateStyles() {
|
|
29
|
+
var _a, _b, _c;
|
|
30
|
+
// Validate the element exists.
|
|
31
|
+
if (!this.element) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
// Calculate border height which is not included in the scroll height.
|
|
35
|
+
const borderHeight = ((_a = this.element) === null || _a === void 0 ? void 0 : _a.offsetHeight) - ((_b = this.element) === null || _b === void 0 ? void 0 : _b.clientHeight);
|
|
36
|
+
// Reset textarea height to auto that correctly calculate the new height.
|
|
37
|
+
this.setHeight('auto');
|
|
38
|
+
// Set new height.
|
|
39
|
+
this.setHeight(`${((_c = this.element) === null || _c === void 0 ? void 0 : _c.scrollHeight) + borderHeight}px`);
|
|
40
|
+
}
|
|
41
|
+
setHeight(value) {
|
|
42
|
+
this._renderer.setStyle(this.element, 'height', value);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
BbAutosize.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0, type: BbAutosize, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
46
|
+
BbAutosize.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.10", type: BbAutosize, selector: "textarea[bbAutosize]", inputs: { minHeight: "minHeight", maxHeight: "maxHeight", rows: "rows" }, host: { listeners: { "window:resize": "onWindowResize()", "input": "onInputReceived()" }, properties: { "style.min-height": "this.minHeight", "style.max-height": "this.maxHeight", "rows": "this.rows" } }, ngImport: i0 });
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0, type: BbAutosize, decorators: [{
|
|
48
|
+
type: Directive,
|
|
49
|
+
args: [{
|
|
50
|
+
selector: 'textarea[bbAutosize]'
|
|
51
|
+
}]
|
|
52
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { minHeight: [{
|
|
53
|
+
type: Input
|
|
54
|
+
}, {
|
|
55
|
+
type: HostBinding,
|
|
56
|
+
args: ['style.min-height']
|
|
57
|
+
}], maxHeight: [{
|
|
58
|
+
type: Input
|
|
59
|
+
}, {
|
|
60
|
+
type: HostBinding,
|
|
61
|
+
args: ['style.max-height']
|
|
62
|
+
}], rows: [{
|
|
63
|
+
type: Input
|
|
64
|
+
}, {
|
|
65
|
+
type: HostBinding,
|
|
66
|
+
args: ['rows']
|
|
67
|
+
}], onWindowResize: [{
|
|
68
|
+
type: HostListener,
|
|
69
|
+
args: ['window:resize']
|
|
70
|
+
}], onInputReceived: [{
|
|
71
|
+
type: HostListener,
|
|
72
|
+
args: ['input']
|
|
73
|
+
}] } });
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b3NpemUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9lbGVtZW50cy9zcmMvbGliL2RpcmVjdGl2ZXMvYXV0b3NpemUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFjLFdBQVcsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFZLE1BQU0sZUFBZSxDQUFDOztBQUtoSCxNQUFNLE9BQU8sVUFBVTtJQU9uQixZQUFvQixTQUFvQixFQUNwQixXQUF1QjtRQUR2QixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBTjNDLG9DQUFvQztRQUNNLGNBQVMsR0FBa0IsSUFBSSxDQUFDO1FBQ2hDLGNBQVMsR0FBa0IsSUFBSSxDQUFDO1FBQzVDLFNBQUksR0FBVyxDQUFDLENBQUM7SUFJL0MsQ0FBQztJQUVELElBQUksT0FBTzs7UUFDUCxPQUFPLE1BQUEsSUFBSSxDQUFDLFdBQVcsMENBQUUsYUFBb0MsQ0FBQztJQUNsRSxDQUFDO0lBRUQsZUFBZTtRQUNYLDhDQUE4QztRQUM5QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUdELGNBQWM7UUFDVixnREFBZ0Q7UUFDaEQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFHRCxlQUFlO1FBQ1gsdURBQXVEO1FBQ3ZELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU8sWUFBWTs7UUFDaEIsK0JBQStCO1FBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2YsT0FBTztTQUNWO1FBRUQsc0VBQXNFO1FBQ3RFLE1BQU0sWUFBWSxHQUFHLENBQUEsTUFBQSxJQUFJLENBQUMsT0FBTywwQ0FBRSxZQUFZLEtBQUcsTUFBQSxJQUFJLENBQUMsT0FBTywwQ0FBRSxZQUFZLENBQUEsQ0FBQztRQUU3RSx5RUFBeUU7UUFDekUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV2QixrQkFBa0I7UUFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUEsTUFBQSxJQUFJLENBQUMsT0FBTywwQ0FBRSxZQUFZLElBQUcsWUFBWSxJQUFJLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRU8sU0FBUyxDQUFDLEtBQWE7UUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDM0QsQ0FBQzs7d0dBbERRLFVBQVU7NEZBQVYsVUFBVTs0RkFBVixVQUFVO2tCQUh0QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxzQkFBc0I7aUJBQ25DO3lIQUk2QyxTQUFTO3NCQUFsRCxLQUFLOztzQkFBSSxXQUFXO3VCQUFDLGtCQUFrQjtnQkFDRSxTQUFTO3NCQUFsRCxLQUFLOztzQkFBSSxXQUFXO3VCQUFDLGtCQUFrQjtnQkFDVixJQUFJO3NCQUFqQyxLQUFLOztzQkFBSSxXQUFXO3VCQUFDLE1BQU07Z0JBZ0I1QixjQUFjO3NCQURiLFlBQVk7dUJBQUMsZUFBZTtnQkFPN0IsZUFBZTtzQkFEZCxZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIFJlbmRlcmVyMn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAndGV4dGFyZWFbYmJBdXRvc2l6ZV0nXG59KVxuZXhwb3J0IGNsYXNzIEJiQXV0b3NpemUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblxuICAgIC8vIE1pbi9tYXggaGVpZ2h0cyBmb3IgdGhlIHRleHRhcmVhLlxuICAgIEBJbnB1dCgpIEBIb3N0QmluZGluZygnc3R5bGUubWluLWhlaWdodCcpIG1pbkhlaWdodDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgQEhvc3RCaW5kaW5nKCdzdHlsZS5tYXgtaGVpZ2h0JykgbWF4SGVpZ2h0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ3Jvd3MnKSByb3dzOiBudW1iZXIgPSAxO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgfVxuXG4gICAgZ2V0IGVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50IGFzIEhUTUxUZXh0QXJlYUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICAvLyBVcGRhdGUgdGhlIHN0eWxlcyBhZnRlciB0aGUgRE9NIGhhcyBsb2FkZWQuXG4gICAgICAgIHRoaXMudXBkYXRlU3R5bGVzKCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXG4gICAgb25XaW5kb3dSZXNpemUoKSB7XG4gICAgICAgIC8vIFVwZGF0ZSB0aGUgc3R5bGVzIHdoZW4gdGhlIHdpbmRvdyBpcyByZXNpemVkLlxuICAgICAgICB0aGlzLnVwZGF0ZVN0eWxlcygpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2lucHV0JylcbiAgICBvbklucHV0UmVjZWl2ZWQoKSB7XG4gICAgICAgIC8vIFVwZGF0ZSB0aGUgc3R5bGVzIGFmdGVyIHRoZSB0ZXh0YXJlYSByZWNlaXZlZCBpbnB1dC5cbiAgICAgICAgdGhpcy51cGRhdGVTdHlsZXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVN0eWxlcygpIHtcbiAgICAgICAgLy8gVmFsaWRhdGUgdGhlIGVsZW1lbnQgZXhpc3RzLlxuICAgICAgICBpZiAoIXRoaXMuZWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2FsY3VsYXRlIGJvcmRlciBoZWlnaHQgd2hpY2ggaXMgbm90IGluY2x1ZGVkIGluIHRoZSBzY3JvbGwgaGVpZ2h0LlxuICAgICAgICBjb25zdCBib3JkZXJIZWlnaHQgPSB0aGlzLmVsZW1lbnQ/Lm9mZnNldEhlaWdodCAtIHRoaXMuZWxlbWVudD8uY2xpZW50SGVpZ2h0O1xuXG4gICAgICAgIC8vIFJlc2V0IHRleHRhcmVhIGhlaWdodCB0byBhdXRvIHRoYXQgY29ycmVjdGx5IGNhbGN1bGF0ZSB0aGUgbmV3IGhlaWdodC5cbiAgICAgICAgdGhpcy5zZXRIZWlnaHQoJ2F1dG8nKTtcblxuICAgICAgICAvLyBTZXQgbmV3IGhlaWdodC5cbiAgICAgICAgdGhpcy5zZXRIZWlnaHQoYCR7dGhpcy5lbGVtZW50Py5zY3JvbGxIZWlnaHQgKyBib3JkZXJIZWlnaHR9cHhgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEhlaWdodCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudCwgJ2hlaWdodCcsIHZhbHVlKTtcbiAgICB9XG5cbn1cbiJdfQ==
|
|
@@ -1,77 +1,77 @@
|
|
|
1
|
-
import { Directive, HostListener } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@bravobit/bb-foundation";
|
|
4
|
-
export class BbFocusTrap {
|
|
5
|
-
constructor(_platform, _elementRef) {
|
|
6
|
-
this._platform = _platform;
|
|
7
|
-
this._elementRef = _elementRef;
|
|
8
|
-
this._focusableElements = [
|
|
9
|
-
'a[href]',
|
|
10
|
-
'area[href]',
|
|
11
|
-
'input:not([disabled]):not([type="hidden"]):not([aria-hidden])',
|
|
12
|
-
'select:not([disabled]):not([aria-hidden])',
|
|
13
|
-
'textarea:not([disabled]):not([aria-hidden])',
|
|
14
|
-
'button:not([disabled]):not([aria-hidden])',
|
|
15
|
-
'iframe',
|
|
16
|
-
'object',
|
|
17
|
-
'embed',
|
|
18
|
-
'[contenteditable]',
|
|
19
|
-
'[tabindex]:not([tabindex^="-"])'
|
|
20
|
-
];
|
|
21
|
-
this.focus = (element) => {
|
|
22
|
-
return element && element.focus && element.focus();
|
|
23
|
-
};
|
|
24
|
-
this.isTabEvent = (event) => {
|
|
25
|
-
return event.key === 'Tab' || event.keyCode === 9;
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
onKeydown(event) {
|
|
29
|
-
// Validate it is a tab event.
|
|
30
|
-
if (!this.isTabEvent(event)) {
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
// Trap the focus inside the element.
|
|
34
|
-
return this.trapFocus(event);
|
|
35
|
-
}
|
|
36
|
-
trapFocus(event) {
|
|
37
|
-
// Validate that the DOM is available.
|
|
38
|
-
if (!this._platform.isBrowser) {
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
// Get all focusable nodes.
|
|
42
|
-
const focusableNodes = this.getFocusableNodes();
|
|
43
|
-
// Focus the first available element if the focus
|
|
44
|
-
// is not in the modal.
|
|
45
|
-
if (!this.element.contains(document.activeElement)) {
|
|
46
|
-
return this.focus(focusableNodes[0]);
|
|
47
|
-
}
|
|
48
|
-
const focusedItemIndex = focusableNodes.indexOf(document.activeElement);
|
|
49
|
-
if (event.shiftKey && focusedItemIndex === 0) {
|
|
50
|
-
this.focus(focusableNodes[focusableNodes.length - 1]);
|
|
51
|
-
return event.preventDefault();
|
|
52
|
-
}
|
|
53
|
-
if (!event.shiftKey && focusedItemIndex === focusableNodes.length - 1) {
|
|
54
|
-
this.focus(focusableNodes[0]);
|
|
55
|
-
return event.preventDefault();
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
get element() {
|
|
59
|
-
return this._elementRef.nativeElement;
|
|
60
|
-
}
|
|
61
|
-
getFocusableNodes() {
|
|
62
|
-
const nodes = this.element.querySelectorAll(this._focusableElements);
|
|
63
|
-
return Array(...nodes);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
BbFocusTrap.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.
|
|
67
|
-
BbFocusTrap.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.
|
|
68
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.
|
|
69
|
-
type: Directive,
|
|
70
|
-
args: [{
|
|
71
|
-
selector: '[bbFocusTrap]'
|
|
72
|
-
}]
|
|
73
|
-
}], ctorParameters: function () { return [{ type: i1.Platform }, { type: i0.ElementRef }]; }, propDecorators: { onKeydown: [{
|
|
74
|
-
type: HostListener,
|
|
75
|
-
args: ['keydown', ['$event']]
|
|
76
|
-
}] } });
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Directive, HostListener } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@bravobit/bb-foundation";
|
|
4
|
+
export class BbFocusTrap {
|
|
5
|
+
constructor(_platform, _elementRef) {
|
|
6
|
+
this._platform = _platform;
|
|
7
|
+
this._elementRef = _elementRef;
|
|
8
|
+
this._focusableElements = [
|
|
9
|
+
'a[href]',
|
|
10
|
+
'area[href]',
|
|
11
|
+
'input:not([disabled]):not([type="hidden"]):not([aria-hidden])',
|
|
12
|
+
'select:not([disabled]):not([aria-hidden])',
|
|
13
|
+
'textarea:not([disabled]):not([aria-hidden])',
|
|
14
|
+
'button:not([disabled]):not([aria-hidden])',
|
|
15
|
+
'iframe',
|
|
16
|
+
'object',
|
|
17
|
+
'embed',
|
|
18
|
+
'[contenteditable]',
|
|
19
|
+
'[tabindex]:not([tabindex^="-"])'
|
|
20
|
+
];
|
|
21
|
+
this.focus = (element) => {
|
|
22
|
+
return element && element.focus && element.focus();
|
|
23
|
+
};
|
|
24
|
+
this.isTabEvent = (event) => {
|
|
25
|
+
return event.key === 'Tab' || event.keyCode === 9;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
onKeydown(event) {
|
|
29
|
+
// Validate it is a tab event.
|
|
30
|
+
if (!this.isTabEvent(event)) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
// Trap the focus inside the element.
|
|
34
|
+
return this.trapFocus(event);
|
|
35
|
+
}
|
|
36
|
+
trapFocus(event) {
|
|
37
|
+
// Validate that the DOM is available.
|
|
38
|
+
if (!this._platform.isBrowser) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
// Get all focusable nodes.
|
|
42
|
+
const focusableNodes = this.getFocusableNodes();
|
|
43
|
+
// Focus the first available element if the focus
|
|
44
|
+
// is not in the modal.
|
|
45
|
+
if (!this.element.contains(document.activeElement)) {
|
|
46
|
+
return this.focus(focusableNodes[0]);
|
|
47
|
+
}
|
|
48
|
+
const focusedItemIndex = focusableNodes.indexOf(document.activeElement);
|
|
49
|
+
if (event.shiftKey && focusedItemIndex === 0) {
|
|
50
|
+
this.focus(focusableNodes[focusableNodes.length - 1]);
|
|
51
|
+
return event.preventDefault();
|
|
52
|
+
}
|
|
53
|
+
if (!event.shiftKey && focusedItemIndex === focusableNodes.length - 1) {
|
|
54
|
+
this.focus(focusableNodes[0]);
|
|
55
|
+
return event.preventDefault();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
get element() {
|
|
59
|
+
return this._elementRef.nativeElement;
|
|
60
|
+
}
|
|
61
|
+
getFocusableNodes() {
|
|
62
|
+
const nodes = this.element.querySelectorAll(this._focusableElements);
|
|
63
|
+
return Array(...nodes);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
BbFocusTrap.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0, type: BbFocusTrap, deps: [{ token: i1.Platform }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
67
|
+
BbFocusTrap.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.10", type: BbFocusTrap, selector: "[bbFocusTrap]", host: { listeners: { "keydown": "onKeydown($event)" } }, ngImport: i0 });
|
|
68
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0, type: BbFocusTrap, decorators: [{
|
|
69
|
+
type: Directive,
|
|
70
|
+
args: [{
|
|
71
|
+
selector: '[bbFocusTrap]'
|
|
72
|
+
}]
|
|
73
|
+
}], ctorParameters: function () { return [{ type: i1.Platform }, { type: i0.ElementRef }]; }, propDecorators: { onKeydown: [{
|
|
74
|
+
type: HostListener,
|
|
75
|
+
args: ['keydown', ['$event']]
|
|
76
|
+
}] } });
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtdHJhcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2VsZW1lbnRzL3NyYy9saWIvZGlyZWN0aXZlcy9mb2N1cy10cmFwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQzs7O0FBTWxFLE1BQU0sT0FBTyxXQUFXO0lBZ0JwQixZQUFvQixTQUFtQixFQUNuQixXQUF1QjtRQUR2QixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBZjFCLHVCQUFrQixHQUFHO1lBQ2xDLFNBQVM7WUFDVCxZQUFZO1lBQ1osK0RBQStEO1lBQy9ELDJDQUEyQztZQUMzQyw2Q0FBNkM7WUFDN0MsMkNBQTJDO1lBQzNDLFFBQVE7WUFDUixRQUFRO1lBQ1IsT0FBTztZQUNQLG1CQUFtQjtZQUNuQixpQ0FBaUM7U0FDcEMsQ0FBQztRQXNETSxVQUFLLEdBQUcsQ0FBQyxPQUFvQixFQUFFLEVBQUU7WUFDckMsT0FBTyxPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdkQsQ0FBQyxDQUFDO1FBRU0sZUFBVSxHQUFHLENBQUMsS0FBb0IsRUFBRSxFQUFFO1lBQzFDLE9BQU8sS0FBSyxDQUFDLEdBQUcsS0FBSyxLQUFLLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUM7UUFDdEQsQ0FBQyxDQUFDO0lBeERGLENBQUM7SUFHRCxTQUFTLENBQUMsS0FBb0I7UUFDMUIsOEJBQThCO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3pCLE9BQU87U0FDVjtRQUVELHFDQUFxQztRQUNyQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFvQjtRQUMxQixzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFO1lBQzNCLE9BQU87U0FDVjtRQUVELDJCQUEyQjtRQUMzQixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUVoRCxpREFBaUQ7UUFDakQsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDaEQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3hDO1FBRUQsTUFBTSxnQkFBZ0IsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV4RSxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksZ0JBQWdCLEtBQUssQ0FBQyxFQUFFO1lBQzFDLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0RCxPQUFPLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUNqQztRQUVELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLGdCQUFnQixLQUFLLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ25FLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUIsT0FBTyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDakM7SUFDTCxDQUFDO0lBRUQsSUFBWSxPQUFPO1FBQ2YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztJQUMxQyxDQUFDO0lBRU8saUJBQWlCO1FBQ3JCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDckUsT0FBTyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDOzt5R0FsRVEsV0FBVzs2RkFBWCxXQUFXOzRGQUFYLFdBQVc7a0JBSHZCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGVBQWU7aUJBQzVCO3dIQXNCRyxTQUFTO3NCQURSLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1BsYXRmb3JtfSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbic7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2JiRm9jdXNUcmFwXSdcbn0pXG5leHBvcnQgY2xhc3MgQmJGb2N1c1RyYXAge1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZm9jdXNhYmxlRWxlbWVudHMgPSBbXG4gICAgICAgICdhW2hyZWZdJyxcbiAgICAgICAgJ2FyZWFbaHJlZl0nLFxuICAgICAgICAnaW5wdXQ6bm90KFtkaXNhYmxlZF0pOm5vdChbdHlwZT1cImhpZGRlblwiXSk6bm90KFthcmlhLWhpZGRlbl0pJyxcbiAgICAgICAgJ3NlbGVjdDpub3QoW2Rpc2FibGVkXSk6bm90KFthcmlhLWhpZGRlbl0pJyxcbiAgICAgICAgJ3RleHRhcmVhOm5vdChbZGlzYWJsZWRdKTpub3QoW2FyaWEtaGlkZGVuXSknLFxuICAgICAgICAnYnV0dG9uOm5vdChbZGlzYWJsZWRdKTpub3QoW2FyaWEtaGlkZGVuXSknLFxuICAgICAgICAnaWZyYW1lJyxcbiAgICAgICAgJ29iamVjdCcsXG4gICAgICAgICdlbWJlZCcsXG4gICAgICAgICdbY29udGVudGVkaXRhYmxlXScsXG4gICAgICAgICdbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXhePVwiLVwiXSknXG4gICAgXTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX3BsYXRmb3JtOiBQbGF0Zm9ybSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIC8vIFZhbGlkYXRlIGl0IGlzIGEgdGFiIGV2ZW50LlxuICAgICAgICBpZiAoIXRoaXMuaXNUYWJFdmVudChldmVudCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRyYXAgdGhlIGZvY3VzIGluc2lkZSB0aGUgZWxlbWVudC5cbiAgICAgICAgcmV0dXJuIHRoaXMudHJhcEZvY3VzKGV2ZW50KTtcbiAgICB9XG5cbiAgICB0cmFwRm9jdXMoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgLy8gVmFsaWRhdGUgdGhhdCB0aGUgRE9NIGlzIGF2YWlsYWJsZS5cbiAgICAgICAgaWYgKCF0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEdldCBhbGwgZm9jdXNhYmxlIG5vZGVzLlxuICAgICAgICBjb25zdCBmb2N1c2FibGVOb2RlcyA9IHRoaXMuZ2V0Rm9jdXNhYmxlTm9kZXMoKTtcblxuICAgICAgICAvLyBGb2N1cyB0aGUgZmlyc3QgYXZhaWxhYmxlIGVsZW1lbnQgaWYgdGhlIGZvY3VzXG4gICAgICAgIC8vIGlzIG5vdCBpbiB0aGUgbW9kYWwuXG4gICAgICAgIGlmICghdGhpcy5lbGVtZW50LmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mb2N1cyhmb2N1c2FibGVOb2Rlc1swXSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmb2N1c2VkSXRlbUluZGV4ID0gZm9jdXNhYmxlTm9kZXMuaW5kZXhPZihkb2N1bWVudC5hY3RpdmVFbGVtZW50KTtcblxuICAgICAgICBpZiAoZXZlbnQuc2hpZnRLZXkgJiYgZm9jdXNlZEl0ZW1JbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5mb2N1cyhmb2N1c2FibGVOb2Rlc1tmb2N1c2FibGVOb2Rlcy5sZW5ndGggLSAxXSk7XG4gICAgICAgICAgICByZXR1cm4gZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZXZlbnQuc2hpZnRLZXkgJiYgZm9jdXNlZEl0ZW1JbmRleCA9PT0gZm9jdXNhYmxlTm9kZXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgdGhpcy5mb2N1cyhmb2N1c2FibGVOb2Rlc1swXSk7XG4gICAgICAgICAgICByZXR1cm4gZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRGb2N1c2FibGVOb2RlcygpIHtcbiAgICAgICAgY29uc3Qgbm9kZXMgPSB0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCh0aGlzLl9mb2N1c2FibGVFbGVtZW50cyk7XG4gICAgICAgIHJldHVybiBBcnJheSguLi5ub2Rlcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1cyA9IChlbGVtZW50OiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgICByZXR1cm4gZWxlbWVudCAmJiBlbGVtZW50LmZvY3VzICYmIGVsZW1lbnQuZm9jdXMoKTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBpc1RhYkV2ZW50ID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIHJldHVybiBldmVudC5rZXkgPT09ICdUYWInIHx8IGV2ZW50LmtleUNvZGUgPT09IDk7XG4gICAgfTtcblxufVxuIl19
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
import { Directive } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@bravobit/bb-foundation";
|
|
4
|
-
export class BbFocus {
|
|
5
|
-
constructor(_zone, _platform, _elementRef) {
|
|
6
|
-
this._zone = _zone;
|
|
7
|
-
this._platform = _platform;
|
|
8
|
-
this._elementRef = _elementRef;
|
|
9
|
-
}
|
|
10
|
-
get nativeElement() {
|
|
11
|
-
return this._elementRef.nativeElement;
|
|
12
|
-
}
|
|
13
|
-
ngAfterViewInit() {
|
|
14
|
-
// Run the method outside the Angular zone.
|
|
15
|
-
this._zone.runOutsideAngular(() => this.focus());
|
|
16
|
-
}
|
|
17
|
-
focus() {
|
|
18
|
-
// Check if set timeout exists and the user is
|
|
19
|
-
// using the site on desktop devices.
|
|
20
|
-
if (!this._platform.isDesktop || !setTimeout) {
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
// Check if the element and the focus method exist, if so focus the element.
|
|
24
|
-
if (!this.nativeElement || !this.nativeElement.focus) {
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
// Execute the focus method in a timeout.
|
|
28
|
-
setTimeout(() => this.nativeElement.focus(), 0);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
BbFocus.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.
|
|
32
|
-
BbFocus.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.
|
|
34
|
-
type: Directive,
|
|
35
|
-
args: [{
|
|
36
|
-
selector: '[bbFocus]'
|
|
37
|
-
}]
|
|
38
|
-
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.Platform }, { type: i0.ElementRef }]; } });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Directive } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@bravobit/bb-foundation";
|
|
4
|
+
export class BbFocus {
|
|
5
|
+
constructor(_zone, _platform, _elementRef) {
|
|
6
|
+
this._zone = _zone;
|
|
7
|
+
this._platform = _platform;
|
|
8
|
+
this._elementRef = _elementRef;
|
|
9
|
+
}
|
|
10
|
+
get nativeElement() {
|
|
11
|
+
return this._elementRef.nativeElement;
|
|
12
|
+
}
|
|
13
|
+
ngAfterViewInit() {
|
|
14
|
+
// Run the method outside the Angular zone.
|
|
15
|
+
this._zone.runOutsideAngular(() => this.focus());
|
|
16
|
+
}
|
|
17
|
+
focus() {
|
|
18
|
+
// Check if set timeout exists and the user is
|
|
19
|
+
// using the site on desktop devices.
|
|
20
|
+
if (!this._platform.isDesktop || !setTimeout) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
// Check if the element and the focus method exist, if so focus the element.
|
|
24
|
+
if (!this.nativeElement || !this.nativeElement.focus) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
// Execute the focus method in a timeout.
|
|
28
|
+
setTimeout(() => this.nativeElement.focus(), 0);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
BbFocus.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0, type: BbFocus, deps: [{ token: i0.NgZone }, { token: i1.Platform }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
32
|
+
BbFocus.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.10", type: BbFocus, selector: "[bbFocus]", ngImport: i0 });
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0, type: BbFocus, decorators: [{
|
|
34
|
+
type: Directive,
|
|
35
|
+
args: [{
|
|
36
|
+
selector: '[bbFocus]'
|
|
37
|
+
}]
|
|
38
|
+
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.Platform }, { type: i0.ElementRef }]; } });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9lbGVtZW50cy9zcmMvbGliL2RpcmVjdGl2ZXMvZm9jdXMuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQzs7O0FBTTNFLE1BQU0sT0FBTyxPQUFPO0lBRWhCLFlBQW9CLEtBQWEsRUFDYixTQUFtQixFQUNuQixXQUF1QjtRQUZ2QixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtJQUMzQyxDQUFDO0lBRUQsSUFBWSxhQUFhO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7SUFDMUMsQ0FBQztJQUVELGVBQWU7UUFDWCwyQ0FBMkM7UUFDM0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU8sS0FBSztRQUNULDhDQUE4QztRQUM5QyxxQ0FBcUM7UUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQzFDLE9BQU87U0FDVjtRQUVELDRFQUE0RTtRQUM1RSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFO1lBQ2xELE9BQU87U0FDVjtRQUVELHlDQUF5QztRQUN6QyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDOztxR0E5QlEsT0FBTzt5RkFBUCxPQUFPOzRGQUFQLE9BQU87a0JBSG5CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLFdBQVc7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIE5nWm9uZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1BsYXRmb3JtfSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbic7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2JiRm9jdXNdJ1xufSlcbmV4cG9ydCBjbGFzcyBCYkZvY3VzIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF96b25lOiBOZ1pvbmUsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfcGxhdGZvcm06IFBsYXRmb3JtLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBuYXRpdmVFbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgLy8gUnVuIHRoZSBtZXRob2Qgb3V0c2lkZSB0aGUgQW5ndWxhciB6b25lLlxuICAgICAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHRoaXMuZm9jdXMoKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1cygpIHtcbiAgICAgICAgLy8gQ2hlY2sgaWYgc2V0IHRpbWVvdXQgZXhpc3RzIGFuZCB0aGUgdXNlciBpc1xuICAgICAgICAvLyB1c2luZyB0aGUgc2l0ZSBvbiBkZXNrdG9wIGRldmljZXMuXG4gICAgICAgIGlmICghdGhpcy5fcGxhdGZvcm0uaXNEZXNrdG9wIHx8ICFzZXRUaW1lb3V0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVjayBpZiB0aGUgZWxlbWVudCBhbmQgdGhlIGZvY3VzIG1ldGhvZCBleGlzdCwgaWYgc28gZm9jdXMgdGhlIGVsZW1lbnQuXG4gICAgICAgIGlmICghdGhpcy5uYXRpdmVFbGVtZW50IHx8ICF0aGlzLm5hdGl2ZUVsZW1lbnQuZm9jdXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEV4ZWN1dGUgdGhlIGZvY3VzIG1ldGhvZCBpbiBhIHRpbWVvdXQuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5uYXRpdmVFbGVtZW50LmZvY3VzKCksIDApO1xuICAgIH1cblxufVxuIl19
|