@bravobit/bb-foundation 0.14.2 → 0.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +851 -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 +1336 -1263
- 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 +40 -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 +88 -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 -0
- 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 -29
- 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 +447 -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 +854 -785
- 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 -0
- 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 -25
- 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 -10
- 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,136 +1,136 @@
|
|
|
1
|
-
import { JwtHelper } from './helpers/jwt.helper';
|
|
2
|
-
import { shareReplay } from 'rxjs/operators';
|
|
3
|
-
import { BehaviorSubject } from 'rxjs';
|
|
4
|
-
export class AuthSession {
|
|
5
|
-
constructor(options) {
|
|
6
|
-
var _a, _b;
|
|
7
|
-
// Readonly data.
|
|
8
|
-
this._jwt = new JwtHelper();
|
|
9
|
-
// Token strings.
|
|
10
|
-
this._accessTokenString = null;
|
|
11
|
-
this._refreshTokenString = null;
|
|
12
|
-
// Token payloads.
|
|
13
|
-
this._accessTokenPayload = null;
|
|
14
|
-
this._refreshTokenPayload = null;
|
|
15
|
-
// Private user data.
|
|
16
|
-
this._user$ = new BehaviorSubject(null);
|
|
17
|
-
// Public user data.
|
|
18
|
-
this.user = this._user$.pipe(shareReplay(1));
|
|
19
|
-
this.generateKey = (applicationId, key) => {
|
|
20
|
-
return [applicationId, key].join('_');
|
|
21
|
-
};
|
|
22
|
-
this.isTokenValid = (token) => {
|
|
23
|
-
var _a;
|
|
24
|
-
if (!token) {
|
|
25
|
-
return false;
|
|
26
|
-
}
|
|
27
|
-
return ((_a = token === null || token === void 0 ? void 0 : token.expiresAt) === null || _a === void 0 ? void 0 : _a.getTime()) > Date.now();
|
|
28
|
-
};
|
|
29
|
-
const applicationId = (_a = options === null || options === void 0 ? void 0 : options.id) !== null && _a !== void 0 ? _a : 'ng';
|
|
30
|
-
// Setting up the readonly storage keys.
|
|
31
|
-
this._accessTokenStorageKey = this.generateKey(applicationId, 'au_act');
|
|
32
|
-
this._refreshTokenStorageKey = this.generateKey(applicationId, 'au_rft');
|
|
33
|
-
this._userStorageKey = this.generateKey(applicationId, 'au_usr');
|
|
34
|
-
// Setting up the storage.
|
|
35
|
-
this._storage = (_b = options === null || options === void 0 ? void 0 : options.storage) !== null && _b !== void 0 ? _b : null;
|
|
36
|
-
// Init methods.
|
|
37
|
-
this.restoreFromStorage();
|
|
38
|
-
}
|
|
39
|
-
get accessToken() {
|
|
40
|
-
return this.isTokenValid(this._accessTokenPayload)
|
|
41
|
-
? this._accessTokenString
|
|
42
|
-
: null;
|
|
43
|
-
}
|
|
44
|
-
get refreshToken() {
|
|
45
|
-
return this.isTokenValid(this.refreshTokenPayload)
|
|
46
|
-
? this._refreshTokenString
|
|
47
|
-
: null;
|
|
48
|
-
}
|
|
49
|
-
get accessTokenPayload() {
|
|
50
|
-
var _a;
|
|
51
|
-
return (_a = this._accessTokenPayload) !== null && _a !== void 0 ? _a : null;
|
|
52
|
-
}
|
|
53
|
-
get refreshTokenPayload() {
|
|
54
|
-
var _a;
|
|
55
|
-
return (_a = this._refreshTokenPayload) !== null && _a !== void 0 ? _a : null;
|
|
56
|
-
}
|
|
57
|
-
authenticated() {
|
|
58
|
-
return this.isTokenValid(this._accessTokenPayload) || this.isTokenValid(this._refreshTokenPayload);
|
|
59
|
-
}
|
|
60
|
-
setTokens(accessToken, refreshToken) {
|
|
61
|
-
this.setAccessToken(accessToken);
|
|
62
|
-
this.setRefreshToken(refreshToken);
|
|
63
|
-
this.syncTokensInStorage();
|
|
64
|
-
}
|
|
65
|
-
setUser(user) {
|
|
66
|
-
this._user$.next(user !== null && user !== void 0 ? user : null);
|
|
67
|
-
this.syncUserInStorage();
|
|
68
|
-
}
|
|
69
|
-
clear() {
|
|
70
|
-
this.setTokens(null, null);
|
|
71
|
-
this.setUser(null);
|
|
72
|
-
}
|
|
73
|
-
restoreFromStorage() {
|
|
74
|
-
if (!this._storage) {
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
// Set the access token.
|
|
78
|
-
const accessToken = this._storage.get(this._accessTokenStorageKey);
|
|
79
|
-
this.setAccessToken(accessToken);
|
|
80
|
-
// Set the refresh token.
|
|
81
|
-
const refreshToken = this._storage.get(this._refreshTokenStorageKey);
|
|
82
|
-
this.setRefreshToken(refreshToken);
|
|
83
|
-
// Set the user if we have any correct token payloads.
|
|
84
|
-
if (this._accessTokenPayload || this._refreshTokenPayload) {
|
|
85
|
-
const user = this._storage.get(this._userStorageKey);
|
|
86
|
-
this._user$.next(user !== null && user !== void 0 ? user : null); // Note: just settings here instead of setUser() because of syncing to the storage.
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
syncTokensInStorage() {
|
|
90
|
-
var _a, _b;
|
|
91
|
-
if (!this._storage) {
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
// Set the access token if completely valid.
|
|
95
|
-
if (!!this.accessToken) {
|
|
96
|
-
this._storage.set(this._accessTokenStorageKey, this._accessTokenString, {
|
|
97
|
-
expires: (_a = this._accessTokenPayload) === null || _a === void 0 ? void 0 : _a.expiresAt
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
this._storage.remove(this._accessTokenStorageKey);
|
|
102
|
-
}
|
|
103
|
-
// Set the refresh token if completely valid.
|
|
104
|
-
if (!!this.refreshToken) {
|
|
105
|
-
this._storage.set(this._refreshTokenStorageKey, this._refreshTokenString, {
|
|
106
|
-
expires: (_b = this._refreshTokenPayload) === null || _b === void 0 ? void 0 : _b.expiresAt
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
this._storage.remove(this._refreshTokenStorageKey);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
syncUserInStorage() {
|
|
114
|
-
if (!this._storage) {
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
const user = this._user$.getValue();
|
|
118
|
-
if (!user) {
|
|
119
|
-
return this._storage.remove(this._userStorageKey);
|
|
120
|
-
}
|
|
121
|
-
const date = new Date();
|
|
122
|
-
date.setFullYear(date.getFullYear() + 1);
|
|
123
|
-
this._storage.set(this._userStorageKey, user, {
|
|
124
|
-
expires: new Date(date.getTime())
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
setAccessToken(value) {
|
|
128
|
-
this._accessTokenString = value !== null && value !== void 0 ? value : null;
|
|
129
|
-
this._accessTokenPayload = this._jwt.decode(this._accessTokenString);
|
|
130
|
-
}
|
|
131
|
-
setRefreshToken(value) {
|
|
132
|
-
this._refreshTokenString = value !== null && value !== void 0 ? value : null;
|
|
133
|
-
this._refreshTokenPayload = this._jwt.decode(this._refreshTokenString);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXNzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9hdXRoL3NyYy9saWIvYXV0aC5zZXNzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVyQyxNQUFNLE9BQU8sV0FBVztJQXlCcEIsWUFBWSxPQUFvRDs7UUF2QmhFLGlCQUFpQjtRQUNBLFNBQUksR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBTXhDLGlCQUFpQjtRQUNULHVCQUFrQixHQUFrQixJQUFJLENBQUM7UUFDekMsd0JBQW1CLEdBQWtCLElBQUksQ0FBQztRQUVsRCxrQkFBa0I7UUFDVix3QkFBbUIsR0FBcUIsSUFBSSxDQUFDO1FBQzdDLHlCQUFvQixHQUFxQixJQUFJLENBQUM7UUFFdEQscUJBQXFCO1FBQ2IsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFhLElBQUksQ0FBQyxDQUFDO1FBRXZELG9CQUFvQjtRQUNwQixTQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ25CLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDakIsQ0FBQztRQWdJTSxnQkFBVyxHQUFHLENBQUMsYUFBcUIsRUFBRSxHQUFXLEVBQUUsRUFBRTtZQUN6RCxPQUFPLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUM7UUFFTSxpQkFBWSxHQUFHLENBQUMsS0FBZ0IsRUFBRSxFQUFFOztZQUN4QyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNSLE9BQU8sS0FBSyxDQUFDO2FBQ2hCO1lBRUQsT0FBTyxDQUFBLE1B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IjpbImltcG9ydCB7U3RvcmFnZVN0cmF0ZWd5fSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbi9zdG9yYWdlJztcclxuaW1wb3J0IHtBdXRoVG9rZW59IGZyb20gJy4vaW50ZXJmYWNlcy90b2tlbi5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge0p3dEhlbHBlcn0gZnJvbSAnLi9oZWxwZXJzL2p3dC5oZWxwZXInO1xyXG5pbXBvcnQge3NoYXJlUmVwbGF5fSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0fSBmcm9tICdyeGpzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBBdXRoU2Vzc2lvbiB7XHJcblxyXG4gICAgLy8gUmVhZG9ubHkgZGF0YS5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2p3dCA9IG5ldyBKd3RIZWxwZXIoKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3N0b3JhZ2U6IFN0b3JhZ2VTdHJhdGVneSB8IG51bGw7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9hY2Nlc3NUb2tlblN0b3JhZ2VLZXk6IHN0cmluZztcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3JlZnJlc2hUb2tlblN0b3JhZ2VLZXk6IHN0cmluZztcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3VzZXJTdG9yYWdlS2V5OiBzdHJpbmc7XHJcblxyXG4gICAgLy8gVG9rZW4gc3RyaW5ncy5cclxuICAgIHByaXZhdGUgX2FjY2Vzc1Rva2VuU3RyaW5nOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICAgIHByaXZhdGUgX3JlZnJlc2hUb2tlblN0cmluZzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgLy8gVG9rZW4gcGF5bG9hZHMuXHJcbiAgICBwcml2YXRlIF9hY2Nlc3NUb2tlblBheWxvYWQ6IEF1dGhUb2tlbiB8IG51bGwgPSBudWxsO1xyXG4gICAgcHJpdmF0ZSBfcmVmcmVzaFRva2VuUGF5bG9hZDogQXV0aFRva2VuIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgLy8gUHJpdmF0ZSB1c2VyIGRhdGEuXHJcbiAgICBwcml2YXRlIF91c2VyJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55IHwgbnVsbD4obnVsbCk7XHJcblxyXG4gICAgLy8gUHVibGljIHVzZXIgZGF0YS5cclxuICAgIHVzZXIgPSB0aGlzLl91c2VyJC5waXBlKFxyXG4gICAgICAgIHNoYXJlUmVwbGF5KDEpXHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM/OiB7IGlkPzogc3RyaW5nLCBzdG9yYWdlPzogU3RvcmFnZVN0cmF0ZWd5IH0pIHtcclxuICAgICAgICBjb25zdCBhcHBsaWNhdGlvbklkID0gb3B0aW9ucz8uaWQgPz8gJ25nJztcclxuXHJcbiAgICAgICAgLy8gU2V0dGluZyB1cCB0aGUgcmVhZG9ubHkgc3RvcmFnZSBrZXlzLlxyXG4gICAgICAgIHRoaXMuX2FjY2Vzc1Rva2VuU3RvcmFnZUtleSA9IHRoaXMuZ2VuZXJhdGVLZXkoYXBwbGljYXRpb25JZCwgJ2F1X2FjdCcpO1xyXG4gICAgICAgIHRoaXMuX3JlZnJlc2hUb2tlblN0b3JhZ2VLZXkgPSB0aGlzLmdlbmVyYXRlS2V5KGFwcGxpY2F0aW9uSWQsICdhdV9yZnQnKTtcclxuICAgICAgICB0aGlzLl91c2VyU3RvcmFnZUtleSA9IHRoaXMuZ2VuZXJhdGVLZXkoYXBwbGljYXRpb25JZCwgJ2F1X3VzcicpO1xyXG5cclxuICAgICAgICAvLyBTZXR0aW5nIHVwIHRoZSBzdG9yYWdlLlxyXG4gICAgICAgIHRoaXMuX3N0b3JhZ2UgPSBvcHRpb25zPy5zdG9yYWdlID8/IG51bGw7XHJcblxyXG4gICAgICAgIC8vIEluaXQgbWV0aG9kcy5cclxuICAgICAgICB0aGlzLnJlc3RvcmVGcm9tU3RvcmFnZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBhY2Nlc3NUb2tlbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc1Rva2VuVmFsaWQodGhpcy5fYWNjZXNzVG9rZW5QYXlsb2FkKVxyXG4gICAgICAgICAgICA/IHRoaXMuX2FjY2Vzc1Rva2VuU3RyaW5nXHJcbiAgICAgICAgICAgIDogbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgcmVmcmVzaFRva2VuKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlzVG9rZW5WYWxpZCh0aGlzLnJlZnJlc2hUb2tlblBheWxvYWQpXHJcbiAgICAgICAgICAgID8gdGhpcy5fcmVmcmVzaFRva2VuU3RyaW5nXHJcbiAgICAgICAgICAgIDogbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgYWNjZXNzVG9rZW5QYXlsb2FkKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hY2Nlc3NUb2tlblBheWxvYWQgPz8gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgcmVmcmVzaFRva2VuUGF5bG9hZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcmVmcmVzaFRva2VuUGF5bG9hZCA/PyBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGF1dGhlbnRpY2F0ZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNUb2tlblZhbGlkKHRoaXMuX2FjY2Vzc1Rva2VuUGF5bG9hZCkgfHwgdGhpcy5pc1Rva2VuVmFsaWQodGhpcy5fcmVmcmVzaFRva2VuUGF5bG9hZCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VG9rZW5zKGFjY2Vzc1Rva2VuOiBzdHJpbmcgfCBudWxsLCByZWZyZXNoVG9rZW46IHN0cmluZyB8IG51bGwpIHtcclxuICAgICAgICB0aGlzLnNldEFjY2Vzc1Rva2VuKGFjY2Vzc1Rva2VuKTtcclxuICAgICAgICB0aGlzLnNldFJlZnJlc2hUb2tlbihyZWZyZXNoVG9rZW4pO1xyXG4gICAgICAgIHRoaXMuc3luY1Rva2Vuc0luU3RvcmFnZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFVzZXIodXNlcjogdW5rbm93bikge1xyXG4gICAgICAgIHRoaXMuX3VzZXIkLm5leHQodXNlciA/PyBudWxsKTtcclxuICAgICAgICB0aGlzLnN5bmNVc2VySW5TdG9yYWdlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xlYXIoKSB7XHJcbiAgICAgICAgdGhpcy5zZXRUb2tlbnMobnVsbCwgbnVsbCk7XHJcbiAgICAgICAgdGhpcy5zZXRVc2VyKG51bGwpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVzdG9yZUZyb21TdG9yYWdlKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5fc3RvcmFnZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBTZXQgdGhlIGFjY2VzcyB0b2tlbi5cclxuICAgICAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IHRoaXMuX3N0b3JhZ2UuZ2V0PHN0cmluZz4odGhpcy5fYWNjZXNzVG9rZW5TdG9yYWdlS2V5KTtcclxuICAgICAgICB0aGlzLnNldEFjY2Vzc1Rva2VuKGFjY2Vzc1Rva2VuKTtcclxuXHJcbiAgICAgICAgLy8gU2V0IHRoZSByZWZyZXNoIHRva2VuLlxyXG4gICAgICAgIGNvbnN0IHJlZnJlc2hUb2tlbiA9IHRoaXMuX3N0b3JhZ2UuZ2V0PHN0cmluZz4odGhpcy5fcmVmcmVzaFRva2VuU3RvcmFnZUtleSk7XHJcbiAgICAgICAgdGhpcy5zZXRSZWZyZXNoVG9rZW4ocmVmcmVzaFRva2VuKTtcclxuXHJcbiAgICAgICAgLy8gU2V0IHRoZSB1c2VyIGlmIHdlIGhhdmUgYW55IGNvcnJlY3QgdG9rZW4gcGF5bG9hZHMuXHJcbiAgICAgICAgaWYgKHRoaXMuX2FjY2Vzc1Rva2VuUGF5bG9hZCB8fCB0aGlzLl9yZWZyZXNoVG9rZW5QYXlsb2FkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHVzZXIgPSB0aGlzLl9zdG9yYWdlLmdldDx1bmtub3duPih0aGlzLl91c2VyU3RvcmFnZUtleSk7XHJcbiAgICAgICAgICAgIHRoaXMuX3VzZXIkLm5leHQodXNlciA/PyBudWxsKTsgLy8gTm90ZToganVzdCBzZXR0aW5ncyBoZXJlIGluc3RlYWQgb2Ygc2V0VXNlcigpIGJlY2F1c2Ugb2Ygc3luY2luZyB0byB0aGUgc3RvcmFnZS5cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzeW5jVG9rZW5zSW5TdG9yYWdlKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5fc3RvcmFnZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBTZXQgdGhlIGFjY2VzcyB0b2tlbiBpZiBjb21wbGV0ZWx5IHZhbGlkLlxyXG4gICAgICAgIGlmICghIXRoaXMuYWNjZXNzVG9rZW4pIHtcclxuICAgICAgICAgICAgdGhpcy5fc3RvcmFnZS5zZXQ8c3RyaW5nPih0aGlzLl9hY2Nlc3NUb2tlblN0b3JhZ2VLZXksIHRoaXMuX2FjY2Vzc1Rva2VuU3RyaW5nLCB7XHJcbiAgICAgICAgICAgICAgICBleHBpcmVzOiB0aGlzLl9hY2Nlc3NUb2tlblBheWxvYWQ/LmV4cGlyZXNBdFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9zdG9yYWdlLnJlbW92ZSh0aGlzLl9hY2Nlc3NUb2tlblN0b3JhZ2VLZXkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gU2V0IHRoZSByZWZyZXNoIHRva2VuIGlmIGNvbXBsZXRlbHkgdmFsaWQuXHJcbiAgICAgICAgaWYgKCEhdGhpcy5yZWZyZXNoVG9rZW4pIHtcclxuICAgICAgICAgICAgdGhpcy5fc3RvcmFnZS5zZXQ8c3RyaW5nPih0aGlzLl9yZWZyZXNoVG9rZW5TdG9yYWdlS2V5LCB0aGlzLl9yZWZyZXNoVG9rZW5TdHJpbmcsIHtcclxuICAgICAgICAgICAgICAgIGV4cGlyZXM6IHRoaXMuX3JlZnJlc2hUb2tlblBheWxvYWQ/LmV4cGlyZXNBdFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9zdG9yYWdlLnJlbW92ZSh0aGlzLl9yZWZyZXNoVG9rZW5TdG9yYWdlS2V5KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzeW5jVXNlckluU3RvcmFnZSgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuX3N0b3JhZ2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgdXNlciA9IHRoaXMuX3VzZXIkLmdldFZhbHVlKCk7XHJcbiAgICAgICAgaWYgKCF1c2VyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9zdG9yYWdlLnJlbW92ZSh0aGlzLl91c2VyU3RvcmFnZUtleSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcclxuICAgICAgICBkYXRlLnNldEZ1bGxZZWFyKGRhdGUuZ2V0RnVsbFllYXIoKSArIDEpO1xyXG4gICAgICAgIHRoaXMuX3N0b3JhZ2Uuc2V0PHVua25vd24+KHRoaXMuX3VzZXJTdG9yYWdlS2V5LCB1c2VyLCB7XHJcbiAgICAgICAgICAgIGV4cGlyZXM6IG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpKVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0QWNjZXNzVG9rZW4odmFsdWU6IHN0cmluZyB8IG51bGwpIHtcclxuICAgICAgICB0aGlzLl9hY2Nlc3NUb2tlblN0cmluZyA9IHZhbHVlID8/IG51bGw7XHJcbiAgICAgICAgdGhpcy5fYWNjZXNzVG9rZW5QYXlsb2FkID0gdGhpcy5fand0LmRlY29kZSh0aGlzLl9hY2Nlc3NUb2tlblN0cmluZyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRSZWZyZXNoVG9rZW4odmFsdWU6IHN0cmluZyB8IG51bGwpIHtcclxuICAgICAgICB0aGlzLl9yZWZyZXNoVG9rZW5TdHJpbmcgPSB2YWx1ZSA/PyBudWxsO1xyXG4gICAgICAgIHRoaXMuX3JlZnJlc2hUb2tlblBheWxvYWQgPSB0aGlzLl9qd3QuZGVjb2RlKHRoaXMuX3JlZnJlc2hUb2tlblN0cmluZyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZW5lcmF0ZUtleSA9IChhcHBsaWNhdGlvbklkOiBzdHJpbmcsIGtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIFthcHBsaWNhdGlvbklkLCBrZXldLmpvaW4oJ18nKTtcclxuICAgIH07XHJcblxyXG4gICAgcHJpdmF0ZSBpc1Rva2VuVmFsaWQgPSAodG9rZW46IEF1dGhUb2tlbikgPT4ge1xyXG4gICAgICAgIGlmICghdG9rZW4pIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRva2VuPy5leHBpcmVzQXQ/LmdldFRpbWUoKSA+IERhdGUubm93KCk7XHJcbiAgICB9O1xyXG5cclxufVxyXG4iXX0=
|
|
1
|
+
import { JwtHelper } from './helpers/jwt.helper';
|
|
2
|
+
import { shareReplay } from 'rxjs/operators';
|
|
3
|
+
import { BehaviorSubject } from 'rxjs';
|
|
4
|
+
export class AuthSession {
|
|
5
|
+
constructor(options) {
|
|
6
|
+
var _a, _b;
|
|
7
|
+
// Readonly data.
|
|
8
|
+
this._jwt = new JwtHelper();
|
|
9
|
+
// Token strings.
|
|
10
|
+
this._accessTokenString = null;
|
|
11
|
+
this._refreshTokenString = null;
|
|
12
|
+
// Token payloads.
|
|
13
|
+
this._accessTokenPayload = null;
|
|
14
|
+
this._refreshTokenPayload = null;
|
|
15
|
+
// Private user data.
|
|
16
|
+
this._user$ = new BehaviorSubject(null);
|
|
17
|
+
// Public user data.
|
|
18
|
+
this.user = this._user$.pipe(shareReplay(1));
|
|
19
|
+
this.generateKey = (applicationId, key) => {
|
|
20
|
+
return [applicationId, key].join('_');
|
|
21
|
+
};
|
|
22
|
+
this.isTokenValid = (token) => {
|
|
23
|
+
var _a;
|
|
24
|
+
if (!token) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
return ((_a = token === null || token === void 0 ? void 0 : token.expiresAt) === null || _a === void 0 ? void 0 : _a.getTime()) > Date.now();
|
|
28
|
+
};
|
|
29
|
+
const applicationId = (_a = options === null || options === void 0 ? void 0 : options.id) !== null && _a !== void 0 ? _a : 'ng';
|
|
30
|
+
// Setting up the readonly storage keys.
|
|
31
|
+
this._accessTokenStorageKey = this.generateKey(applicationId, 'au_act');
|
|
32
|
+
this._refreshTokenStorageKey = this.generateKey(applicationId, 'au_rft');
|
|
33
|
+
this._userStorageKey = this.generateKey(applicationId, 'au_usr');
|
|
34
|
+
// Setting up the storage.
|
|
35
|
+
this._storage = (_b = options === null || options === void 0 ? void 0 : options.storage) !== null && _b !== void 0 ? _b : null;
|
|
36
|
+
// Init methods.
|
|
37
|
+
this.restoreFromStorage();
|
|
38
|
+
}
|
|
39
|
+
get accessToken() {
|
|
40
|
+
return this.isTokenValid(this._accessTokenPayload)
|
|
41
|
+
? this._accessTokenString
|
|
42
|
+
: null;
|
|
43
|
+
}
|
|
44
|
+
get refreshToken() {
|
|
45
|
+
return this.isTokenValid(this.refreshTokenPayload)
|
|
46
|
+
? this._refreshTokenString
|
|
47
|
+
: null;
|
|
48
|
+
}
|
|
49
|
+
get accessTokenPayload() {
|
|
50
|
+
var _a;
|
|
51
|
+
return (_a = this._accessTokenPayload) !== null && _a !== void 0 ? _a : null;
|
|
52
|
+
}
|
|
53
|
+
get refreshTokenPayload() {
|
|
54
|
+
var _a;
|
|
55
|
+
return (_a = this._refreshTokenPayload) !== null && _a !== void 0 ? _a : null;
|
|
56
|
+
}
|
|
57
|
+
authenticated() {
|
|
58
|
+
return this.isTokenValid(this._accessTokenPayload) || this.isTokenValid(this._refreshTokenPayload);
|
|
59
|
+
}
|
|
60
|
+
setTokens(accessToken, refreshToken) {
|
|
61
|
+
this.setAccessToken(accessToken);
|
|
62
|
+
this.setRefreshToken(refreshToken);
|
|
63
|
+
this.syncTokensInStorage();
|
|
64
|
+
}
|
|
65
|
+
setUser(user) {
|
|
66
|
+
this._user$.next(user !== null && user !== void 0 ? user : null);
|
|
67
|
+
this.syncUserInStorage();
|
|
68
|
+
}
|
|
69
|
+
clear() {
|
|
70
|
+
this.setTokens(null, null);
|
|
71
|
+
this.setUser(null);
|
|
72
|
+
}
|
|
73
|
+
restoreFromStorage() {
|
|
74
|
+
if (!this._storage) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
// Set the access token.
|
|
78
|
+
const accessToken = this._storage.get(this._accessTokenStorageKey);
|
|
79
|
+
this.setAccessToken(accessToken);
|
|
80
|
+
// Set the refresh token.
|
|
81
|
+
const refreshToken = this._storage.get(this._refreshTokenStorageKey);
|
|
82
|
+
this.setRefreshToken(refreshToken);
|
|
83
|
+
// Set the user if we have any correct token payloads.
|
|
84
|
+
if (this._accessTokenPayload || this._refreshTokenPayload) {
|
|
85
|
+
const user = this._storage.get(this._userStorageKey);
|
|
86
|
+
this._user$.next(user !== null && user !== void 0 ? user : null); // Note: just settings here instead of setUser() because of syncing to the storage.
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
syncTokensInStorage() {
|
|
90
|
+
var _a, _b;
|
|
91
|
+
if (!this._storage) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
// Set the access token if completely valid.
|
|
95
|
+
if (!!this.accessToken) {
|
|
96
|
+
this._storage.set(this._accessTokenStorageKey, this._accessTokenString, {
|
|
97
|
+
expires: (_a = this._accessTokenPayload) === null || _a === void 0 ? void 0 : _a.expiresAt
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
this._storage.remove(this._accessTokenStorageKey);
|
|
102
|
+
}
|
|
103
|
+
// Set the refresh token if completely valid.
|
|
104
|
+
if (!!this.refreshToken) {
|
|
105
|
+
this._storage.set(this._refreshTokenStorageKey, this._refreshTokenString, {
|
|
106
|
+
expires: (_b = this._refreshTokenPayload) === null || _b === void 0 ? void 0 : _b.expiresAt
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
this._storage.remove(this._refreshTokenStorageKey);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
syncUserInStorage() {
|
|
114
|
+
if (!this._storage) {
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
const user = this._user$.getValue();
|
|
118
|
+
if (!user) {
|
|
119
|
+
return this._storage.remove(this._userStorageKey);
|
|
120
|
+
}
|
|
121
|
+
const date = new Date();
|
|
122
|
+
date.setFullYear(date.getFullYear() + 1);
|
|
123
|
+
this._storage.set(this._userStorageKey, user, {
|
|
124
|
+
expires: new Date(date.getTime())
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
setAccessToken(value) {
|
|
128
|
+
this._accessTokenString = value !== null && value !== void 0 ? value : null;
|
|
129
|
+
this._accessTokenPayload = this._jwt.decode(this._accessTokenString);
|
|
130
|
+
}
|
|
131
|
+
setRefreshToken(value) {
|
|
132
|
+
this._refreshTokenString = value !== null && value !== void 0 ? value : null;
|
|
133
|
+
this._refreshTokenPayload = this._jwt.decode(this._refreshTokenString);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXNzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9hdXRoL3NyYy9saWIvYXV0aC5zZXNzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVyQyxNQUFNLE9BQU8sV0FBVztJQXlCcEIsWUFBWSxPQUFvRDs7UUF2QmhFLGlCQUFpQjtRQUNBLFNBQUksR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBTXhDLGlCQUFpQjtRQUNULHVCQUFrQixHQUFrQixJQUFJLENBQUM7UUFDekMsd0JBQW1CLEdBQWtCLElBQUksQ0FBQztRQUVsRCxrQkFBa0I7UUFDVix3QkFBbUIsR0FBcUIsSUFBSSxDQUFDO1FBQzdDLHlCQUFvQixHQUFxQixJQUFJLENBQUM7UUFFdEQscUJBQXFCO1FBQ2IsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFhLElBQUksQ0FBQyxDQUFDO1FBRXZELG9CQUFvQjtRQUNwQixTQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ25CLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDakIsQ0FBQztRQWdJTSxnQkFBVyxHQUFHLENBQUMsYUFBcUIsRUFBRSxHQUFXLEVBQUUsRUFBRTtZQUN6RCxPQUFPLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUM7UUFFTSxpQkFBWSxHQUFHLENBQUMsS0FBZ0IsRUFBRSxFQUFFOztZQUN4QyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNSLE9BQU8sS0FBSyxDQUFDO2FBQ2hCO1lBRUQsT0FBTyxDQUFBLE1B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IjpbImltcG9ydCB7U3RvcmFnZVN0cmF0ZWd5fSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbi9zdG9yYWdlJztcbmltcG9ydCB7QXV0aFRva2VufSBmcm9tICcuL2ludGVyZmFjZXMvdG9rZW4uaW50ZXJmYWNlJztcbmltcG9ydCB7Snd0SGVscGVyfSBmcm9tICcuL2hlbHBlcnMvand0LmhlbHBlcic7XG5pbXBvcnQge3NoYXJlUmVwbGF5fSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjbGFzcyBBdXRoU2Vzc2lvbiB7XG5cbiAgICAvLyBSZWFkb25seSBkYXRhLlxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2p3dCA9IG5ldyBKd3RIZWxwZXIoKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yYWdlOiBTdG9yYWdlU3RyYXRlZ3kgfCBudWxsO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2FjY2Vzc1Rva2VuU3RvcmFnZUtleTogc3RyaW5nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3JlZnJlc2hUb2tlblN0b3JhZ2VLZXk6IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IF91c2VyU3RvcmFnZUtleTogc3RyaW5nO1xuXG4gICAgLy8gVG9rZW4gc3RyaW5ncy5cbiAgICBwcml2YXRlIF9hY2Nlc3NUb2tlblN0cmluZzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBfcmVmcmVzaFRva2VuU3RyaW5nOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8vIFRva2VuIHBheWxvYWRzLlxuICAgIHByaXZhdGUgX2FjY2Vzc1Rva2VuUGF5bG9hZDogQXV0aFRva2VuIHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBfcmVmcmVzaFRva2VuUGF5bG9hZDogQXV0aFRva2VuIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvLyBQcml2YXRlIHVzZXIgZGF0YS5cbiAgICBwcml2YXRlIF91c2VyJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55IHwgbnVsbD4obnVsbCk7XG5cbiAgICAvLyBQdWJsaWMgdXNlciBkYXRhLlxuICAgIHVzZXIgPSB0aGlzLl91c2VyJC5waXBlKFxuICAgICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zPzogeyBpZD86IHN0cmluZywgc3RvcmFnZT86IFN0b3JhZ2VTdHJhdGVneSB9KSB7XG4gICAgICAgIGNvbnN0IGFwcGxpY2F0aW9uSWQgPSBvcHRpb25zPy5pZCA/PyAnbmcnO1xuXG4gICAgICAgIC8vIFNldHRpbmcgdXAgdGhlIHJlYWRvbmx5IHN0b3JhZ2Uga2V5cy5cbiAgICAgICAgdGhpcy5fYWNjZXNzVG9rZW5TdG9yYWdlS2V5ID0gdGhpcy5nZW5lcmF0ZUtleShhcHBsaWNhdGlvbklkLCAnYXVfYWN0Jyk7XG4gICAgICAgIHRoaXMuX3JlZnJlc2hUb2tlblN0b3JhZ2VLZXkgPSB0aGlzLmdlbmVyYXRlS2V5KGFwcGxpY2F0aW9uSWQsICdhdV9yZnQnKTtcbiAgICAgICAgdGhpcy5fdXNlclN0b3JhZ2VLZXkgPSB0aGlzLmdlbmVyYXRlS2V5KGFwcGxpY2F0aW9uSWQsICdhdV91c3InKTtcblxuICAgICAgICAvLyBTZXR0aW5nIHVwIHRoZSBzdG9yYWdlLlxuICAgICAgICB0aGlzLl9zdG9yYWdlID0gb3B0aW9ucz8uc3RvcmFnZSA/PyBudWxsO1xuXG4gICAgICAgIC8vIEluaXQgbWV0aG9kcy5cbiAgICAgICAgdGhpcy5yZXN0b3JlRnJvbVN0b3JhZ2UoKTtcbiAgICB9XG5cbiAgICBnZXQgYWNjZXNzVG9rZW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVG9rZW5WYWxpZCh0aGlzLl9hY2Nlc3NUb2tlblBheWxvYWQpXG4gICAgICAgICAgICA/IHRoaXMuX2FjY2Vzc1Rva2VuU3RyaW5nXG4gICAgICAgICAgICA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IHJlZnJlc2hUb2tlbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNUb2tlblZhbGlkKHRoaXMucmVmcmVzaFRva2VuUGF5bG9hZClcbiAgICAgICAgICAgID8gdGhpcy5fcmVmcmVzaFRva2VuU3RyaW5nXG4gICAgICAgICAgICA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGFjY2Vzc1Rva2VuUGF5bG9hZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjY2Vzc1Rva2VuUGF5bG9hZCA/PyBudWxsO1xuICAgIH1cblxuICAgIGdldCByZWZyZXNoVG9rZW5QYXlsb2FkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVmcmVzaFRva2VuUGF5bG9hZCA/PyBudWxsO1xuICAgIH1cblxuICAgIGF1dGhlbnRpY2F0ZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVG9rZW5WYWxpZCh0aGlzLl9hY2Nlc3NUb2tlblBheWxvYWQpIHx8IHRoaXMuaXNUb2tlblZhbGlkKHRoaXMuX3JlZnJlc2hUb2tlblBheWxvYWQpO1xuICAgIH1cblxuICAgIHNldFRva2VucyhhY2Nlc3NUb2tlbjogc3RyaW5nIHwgbnVsbCwgcmVmcmVzaFRva2VuOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuc2V0QWNjZXNzVG9rZW4oYWNjZXNzVG9rZW4pO1xuICAgICAgICB0aGlzLnNldFJlZnJlc2hUb2tlbihyZWZyZXNoVG9rZW4pO1xuICAgICAgICB0aGlzLnN5bmNUb2tlbnNJblN0b3JhZ2UoKTtcbiAgICB9XG5cbiAgICBzZXRVc2VyKHVzZXI6IHVua25vd24pIHtcbiAgICAgICAgdGhpcy5fdXNlciQubmV4dCh1c2VyID8/IG51bGwpO1xuICAgICAgICB0aGlzLnN5bmNVc2VySW5TdG9yYWdlKCk7XG4gICAgfVxuXG4gICAgY2xlYXIoKSB7XG4gICAgICAgIHRoaXMuc2V0VG9rZW5zKG51bGwsIG51bGwpO1xuICAgICAgICB0aGlzLnNldFVzZXIobnVsbCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXN0b3JlRnJvbVN0b3JhZ2UoKSB7XG4gICAgICAgIGlmICghdGhpcy5fc3RvcmFnZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2V0IHRoZSBhY2Nlc3MgdG9rZW4uXG4gICAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gdGhpcy5fc3RvcmFnZS5nZXQ8c3RyaW5nPih0aGlzLl9hY2Nlc3NUb2tlblN0b3JhZ2VLZXkpO1xuICAgICAgICB0aGlzLnNldEFjY2Vzc1Rva2VuKGFjY2Vzc1Rva2VuKTtcblxuICAgICAgICAvLyBTZXQgdGhlIHJlZnJlc2ggdG9rZW4uXG4gICAgICAgIGNvbnN0IHJlZnJlc2hUb2tlbiA9IHRoaXMuX3N0b3JhZ2UuZ2V0PHN0cmluZz4odGhpcy5fcmVmcmVzaFRva2VuU3RvcmFnZUtleSk7XG4gICAgICAgIHRoaXMuc2V0UmVmcmVzaFRva2VuKHJlZnJlc2hUb2tlbik7XG5cbiAgICAgICAgLy8gU2V0IHRoZSB1c2VyIGlmIHdlIGhhdmUgYW55IGNvcnJlY3QgdG9rZW4gcGF5bG9hZHMuXG4gICAgICAgIGlmICh0aGlzLl9hY2Nlc3NUb2tlblBheWxvYWQgfHwgdGhpcy5fcmVmcmVzaFRva2VuUGF5bG9hZCkge1xuICAgICAgICAgICAgY29uc3QgdXNlciA9IHRoaXMuX3N0b3JhZ2UuZ2V0PHVua25vd24+KHRoaXMuX3VzZXJTdG9yYWdlS2V5KTtcbiAgICAgICAgICAgIHRoaXMuX3VzZXIkLm5leHQodXNlciA/PyBudWxsKTsgLy8gTm90ZToganVzdCBzZXR0aW5ncyBoZXJlIGluc3RlYWQgb2Ygc2V0VXNlcigpIGJlY2F1c2Ugb2Ygc3luY2luZyB0byB0aGUgc3RvcmFnZS5cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc3luY1Rva2Vuc0luU3RvcmFnZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9zdG9yYWdlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgdGhlIGFjY2VzcyB0b2tlbiBpZiBjb21wbGV0ZWx5IHZhbGlkLlxuICAgICAgICBpZiAoISF0aGlzLmFjY2Vzc1Rva2VuKSB7XG4gICAgICAgICAgICB0aGlzLl9zdG9yYWdlLnNldDxzdHJpbmc+KHRoaXMuX2FjY2Vzc1Rva2VuU3RvcmFnZUtleSwgdGhpcy5fYWNjZXNzVG9rZW5TdHJpbmcsIHtcbiAgICAgICAgICAgICAgICBleHBpcmVzOiB0aGlzLl9hY2Nlc3NUb2tlblBheWxvYWQ/LmV4cGlyZXNBdFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9zdG9yYWdlLnJlbW92ZSh0aGlzLl9hY2Nlc3NUb2tlblN0b3JhZ2VLZXkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2V0IHRoZSByZWZyZXNoIHRva2VuIGlmIGNvbXBsZXRlbHkgdmFsaWQuXG4gICAgICAgIGlmICghIXRoaXMucmVmcmVzaFRva2VuKSB7XG4gICAgICAgICAgICB0aGlzLl9zdG9yYWdlLnNldDxzdHJpbmc+KHRoaXMuX3JlZnJlc2hUb2tlblN0b3JhZ2VLZXksIHRoaXMuX3JlZnJlc2hUb2tlblN0cmluZywge1xuICAgICAgICAgICAgICAgIGV4cGlyZXM6IHRoaXMuX3JlZnJlc2hUb2tlblBheWxvYWQ/LmV4cGlyZXNBdFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9zdG9yYWdlLnJlbW92ZSh0aGlzLl9yZWZyZXNoVG9rZW5TdG9yYWdlS2V5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc3luY1VzZXJJblN0b3JhZ2UoKSB7XG4gICAgICAgIGlmICghdGhpcy5fc3RvcmFnZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdXNlciA9IHRoaXMuX3VzZXIkLmdldFZhbHVlKCk7XG4gICAgICAgIGlmICghdXNlcikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3N0b3JhZ2UucmVtb3ZlKHRoaXMuX3VzZXJTdG9yYWdlS2V5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICBkYXRlLnNldEZ1bGxZZWFyKGRhdGUuZ2V0RnVsbFllYXIoKSArIDEpO1xuICAgICAgICB0aGlzLl9zdG9yYWdlLnNldDx1bmtub3duPih0aGlzLl91c2VyU3RvcmFnZUtleSwgdXNlciwge1xuICAgICAgICAgICAgZXhwaXJlczogbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkpXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0QWNjZXNzVG9rZW4odmFsdWU6IHN0cmluZyB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5fYWNjZXNzVG9rZW5TdHJpbmcgPSB2YWx1ZSA/PyBudWxsO1xuICAgICAgICB0aGlzLl9hY2Nlc3NUb2tlblBheWxvYWQgPSB0aGlzLl9qd3QuZGVjb2RlKHRoaXMuX2FjY2Vzc1Rva2VuU3RyaW5nKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFJlZnJlc2hUb2tlbih2YWx1ZTogc3RyaW5nIHwgbnVsbCkge1xuICAgICAgICB0aGlzLl9yZWZyZXNoVG9rZW5TdHJpbmcgPSB2YWx1ZSA/PyBudWxsO1xuICAgICAgICB0aGlzLl9yZWZyZXNoVG9rZW5QYXlsb2FkID0gdGhpcy5fand0LmRlY29kZSh0aGlzLl9yZWZyZXNoVG9rZW5TdHJpbmcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2VuZXJhdGVLZXkgPSAoYXBwbGljYXRpb25JZDogc3RyaW5nLCBrZXk6IHN0cmluZykgPT4ge1xuICAgICAgICByZXR1cm4gW2FwcGxpY2F0aW9uSWQsIGtleV0uam9pbignXycpO1xuICAgIH07XG5cbiAgICBwcml2YXRlIGlzVG9rZW5WYWxpZCA9ICh0b2tlbjogQXV0aFRva2VuKSA9PiB7XG4gICAgICAgIGlmICghdG9rZW4pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0b2tlbj8uZXhwaXJlc0F0Py5nZXRUaW1lKCkgPiBEYXRlLm5vdygpO1xuICAgIH07XG5cbn1cbiJdfQ==
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
import { Directive } from '@angular/core';
|
|
2
|
-
import { distinctUntilChanged, map } from 'rxjs/operators';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../auth.service";
|
|
5
|
-
export class BbAuthenticated {
|
|
6
|
-
constructor(_auth, _template, _viewContainerRef) {
|
|
7
|
-
this._auth = _auth;
|
|
8
|
-
this._template = _template;
|
|
9
|
-
this._viewContainerRef = _viewContainerRef;
|
|
10
|
-
}
|
|
11
|
-
ngOnInit() {
|
|
12
|
-
this._subscription = this._auth.user.pipe(map(user => !!user), distinctUntilChanged()).subscribe(isAuthenticated => {
|
|
13
|
-
if (!isAuthenticated) {
|
|
14
|
-
return this._viewContainerRef.clear();
|
|
15
|
-
}
|
|
16
|
-
this._viewContainerRef.createEmbeddedView(this._template);
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
ngOnDestroy() {
|
|
20
|
-
var _a;
|
|
21
|
-
(_a = this._subscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
BbAuthenticated.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.
|
|
25
|
-
BbAuthenticated.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.
|
|
27
|
-
type: Directive,
|
|
28
|
-
args: [{
|
|
29
|
-
selector: '[bbAuthenticated]'
|
|
30
|
-
}]
|
|
31
|
-
}], ctorParameters: function () { return [{ type: i1.Auth }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Directive } from '@angular/core';
|
|
2
|
+
import { distinctUntilChanged, map } from 'rxjs/operators';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../auth.service";
|
|
5
|
+
export class BbAuthenticated {
|
|
6
|
+
constructor(_auth, _template, _viewContainerRef) {
|
|
7
|
+
this._auth = _auth;
|
|
8
|
+
this._template = _template;
|
|
9
|
+
this._viewContainerRef = _viewContainerRef;
|
|
10
|
+
}
|
|
11
|
+
ngOnInit() {
|
|
12
|
+
this._subscription = this._auth.user.pipe(map(user => !!user), distinctUntilChanged()).subscribe(isAuthenticated => {
|
|
13
|
+
if (!isAuthenticated) {
|
|
14
|
+
return this._viewContainerRef.clear();
|
|
15
|
+
}
|
|
16
|
+
this._viewContainerRef.createEmbeddedView(this._template);
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
ngOnDestroy() {
|
|
20
|
+
var _a;
|
|
21
|
+
(_a = this._subscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
BbAuthenticated.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0, type: BbAuthenticated, deps: [{ token: i1.Auth }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
25
|
+
BbAuthenticated.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.10", type: BbAuthenticated, selector: "[bbAuthenticated]", ngImport: i0 });
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0, type: BbAuthenticated, decorators: [{
|
|
27
|
+
type: Directive,
|
|
28
|
+
args: [{
|
|
29
|
+
selector: '[bbAuthenticated]'
|
|
30
|
+
}]
|
|
31
|
+
}], ctorParameters: function () { return [{ type: i1.Auth }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRlZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2F1dGgvc3JjL2xpYi9kaXJlY3RpdmVzL2F1dGhlbnRpY2F0ZWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQW1ELE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBT3pELE1BQU0sT0FBTyxlQUFlO0lBS3hCLFlBQW9CLEtBQVcsRUFDWCxTQUEyQixFQUMzQixpQkFBbUM7UUFGbkMsVUFBSyxHQUFMLEtBQUssQ0FBTTtRQUNYLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7SUFDdkQsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDckMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUNuQixvQkFBb0IsRUFBRSxDQUN6QixDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUMxQixJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUNsQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUN6QztZQUVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVzs7UUFDUCxNQUFBLElBQUksQ0FBQyxhQUFhLDBDQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ3RDLENBQUM7OzZHQXpCUSxlQUFlO2lHQUFmLGVBQWU7NEZBQWYsZUFBZTtrQkFIM0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsbUJBQW1CO2lCQUNoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0F1dGh9IGZyb20gJy4uL2F1dGguc2VydmljZSc7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2JiQXV0aGVudGljYXRlZF0nXG59KVxuZXhwb3J0IGNsYXNzIEJiQXV0aGVudGljYXRlZCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAgIC8vIFN1YnNjcmlwdGlvbnMuXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9hdXRoOiBBdXRoLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX3RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gdGhpcy5fYXV0aC51c2VyLnBpcGUoXG4gICAgICAgICAgICBtYXAodXNlciA9PiAhIXVzZXIpLFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICApLnN1YnNjcmliZShpc0F1dGhlbnRpY2F0ZWQgPT4ge1xuICAgICAgICAgICAgaWYgKCFpc0F1dGhlbnRpY2F0ZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fdmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLl90ZW1wbGF0ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG59XG4iXX0=
|
|
@@ -1,81 +1,81 @@
|
|
|
1
|
-
import { Directive, Input } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject } from 'rxjs';
|
|
3
|
-
import { switchMap } from 'rxjs/operators';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../permissions.service";
|
|
6
|
-
export class BbPermission {
|
|
7
|
-
constructor(_permissions, _templateRef, _viewContainerRef) {
|
|
8
|
-
this._permissions = _permissions;
|
|
9
|
-
this._templateRef = _templateRef;
|
|
10
|
-
this._viewContainerRef = _viewContainerRef;
|
|
11
|
-
// Data.
|
|
12
|
-
this._permission$ = new BehaviorSubject([]);
|
|
13
|
-
this._valid = false;
|
|
14
|
-
this._elseTemplateRef = null;
|
|
15
|
-
this._thenViewRef = null;
|
|
16
|
-
this._elseViewRef = null;
|
|
17
|
-
this.getAllowedPermissions = (value) => {
|
|
18
|
-
return Array.isArray(value) ? value : [value];
|
|
19
|
-
};
|
|
20
|
-
this.assertTemplate = (property, templateRef) => {
|
|
21
|
-
const isTemplateRefOrNull = !!(!templateRef || templateRef.createEmbeddedView);
|
|
22
|
-
if (!isTemplateRefOrNull) {
|
|
23
|
-
throw new Error(`${property} must be a TemplateRef.`);
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
set bbPermission(value) {
|
|
28
|
-
const permissions = this.getAllowedPermissions(value);
|
|
29
|
-
this._permission$.next(permissions);
|
|
30
|
-
this.updateView();
|
|
31
|
-
}
|
|
32
|
-
set bbPermissionElse(templateRef) {
|
|
33
|
-
this.assertTemplate('bbPermissionElse', templateRef);
|
|
34
|
-
this._elseTemplateRef = templateRef;
|
|
35
|
-
this.updateView();
|
|
36
|
-
}
|
|
37
|
-
ngOnInit() {
|
|
38
|
-
const check$ = this._permission$.pipe(switchMap(permissions => this._permissions.has(permissions)));
|
|
39
|
-
this._subscription = check$.subscribe(valid => {
|
|
40
|
-
this._valid = valid;
|
|
41
|
-
this.updateView();
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
ngOnDestroy() {
|
|
45
|
-
var _a;
|
|
46
|
-
(_a = this._subscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
|
47
|
-
}
|
|
48
|
-
updateView() {
|
|
49
|
-
if (this._valid) {
|
|
50
|
-
if (!this._thenViewRef) {
|
|
51
|
-
this._viewContainerRef.clear();
|
|
52
|
-
this._elseViewRef = null;
|
|
53
|
-
if (this._templateRef) {
|
|
54
|
-
this._thenViewRef = this._viewContainerRef.createEmbeddedView(this._templateRef);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
if (!this._elseViewRef) {
|
|
60
|
-
this._viewContainerRef.clear();
|
|
61
|
-
this._thenViewRef = null;
|
|
62
|
-
if (this._elseTemplateRef) {
|
|
63
|
-
this._elseViewRef = this._viewContainerRef.createEmbeddedView(this._elseTemplateRef);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
BbPermission.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.
|
|
70
|
-
BbPermission.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.
|
|
71
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.
|
|
72
|
-
type: Directive,
|
|
73
|
-
args: [{
|
|
74
|
-
selector: '[bbPermission]'
|
|
75
|
-
}]
|
|
76
|
-
}], ctorParameters: function () { return [{ type: i1.Permissions }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; }, propDecorators: { bbPermission: [{
|
|
77
|
-
type: Input
|
|
78
|
-
}], bbPermissionElse: [{
|
|
79
|
-
type: Input
|
|
80
|
-
}] } });
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
import { switchMap } from 'rxjs/operators';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../permissions.service";
|
|
6
|
+
export class BbPermission {
|
|
7
|
+
constructor(_permissions, _templateRef, _viewContainerRef) {
|
|
8
|
+
this._permissions = _permissions;
|
|
9
|
+
this._templateRef = _templateRef;
|
|
10
|
+
this._viewContainerRef = _viewContainerRef;
|
|
11
|
+
// Data.
|
|
12
|
+
this._permission$ = new BehaviorSubject([]);
|
|
13
|
+
this._valid = false;
|
|
14
|
+
this._elseTemplateRef = null;
|
|
15
|
+
this._thenViewRef = null;
|
|
16
|
+
this._elseViewRef = null;
|
|
17
|
+
this.getAllowedPermissions = (value) => {
|
|
18
|
+
return Array.isArray(value) ? value : [value];
|
|
19
|
+
};
|
|
20
|
+
this.assertTemplate = (property, templateRef) => {
|
|
21
|
+
const isTemplateRefOrNull = !!(!templateRef || templateRef.createEmbeddedView);
|
|
22
|
+
if (!isTemplateRefOrNull) {
|
|
23
|
+
throw new Error(`${property} must be a TemplateRef.`);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
set bbPermission(value) {
|
|
28
|
+
const permissions = this.getAllowedPermissions(value);
|
|
29
|
+
this._permission$.next(permissions);
|
|
30
|
+
this.updateView();
|
|
31
|
+
}
|
|
32
|
+
set bbPermissionElse(templateRef) {
|
|
33
|
+
this.assertTemplate('bbPermissionElse', templateRef);
|
|
34
|
+
this._elseTemplateRef = templateRef;
|
|
35
|
+
this.updateView();
|
|
36
|
+
}
|
|
37
|
+
ngOnInit() {
|
|
38
|
+
const check$ = this._permission$.pipe(switchMap(permissions => this._permissions.has(permissions)));
|
|
39
|
+
this._subscription = check$.subscribe(valid => {
|
|
40
|
+
this._valid = valid;
|
|
41
|
+
this.updateView();
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
ngOnDestroy() {
|
|
45
|
+
var _a;
|
|
46
|
+
(_a = this._subscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
|
47
|
+
}
|
|
48
|
+
updateView() {
|
|
49
|
+
if (this._valid) {
|
|
50
|
+
if (!this._thenViewRef) {
|
|
51
|
+
this._viewContainerRef.clear();
|
|
52
|
+
this._elseViewRef = null;
|
|
53
|
+
if (this._templateRef) {
|
|
54
|
+
this._thenViewRef = this._viewContainerRef.createEmbeddedView(this._templateRef);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
if (!this._elseViewRef) {
|
|
60
|
+
this._viewContainerRef.clear();
|
|
61
|
+
this._thenViewRef = null;
|
|
62
|
+
if (this._elseTemplateRef) {
|
|
63
|
+
this._elseViewRef = this._viewContainerRef.createEmbeddedView(this._elseTemplateRef);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
BbPermission.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0, type: BbPermission, deps: [{ token: i1.Permissions }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
70
|
+
BbPermission.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.10", type: BbPermission, selector: "[bbPermission]", inputs: { bbPermission: "bbPermission", bbPermissionElse: "bbPermissionElse" }, ngImport: i0 });
|
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0, type: BbPermission, decorators: [{
|
|
72
|
+
type: Directive,
|
|
73
|
+
args: [{
|
|
74
|
+
selector: '[bbPermission]'
|
|
75
|
+
}]
|
|
76
|
+
}], ctorParameters: function () { return [{ type: i1.Permissions }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; }, propDecorators: { bbPermission: [{
|
|
77
|
+
type: Input
|
|
78
|
+
}], bbPermissionElse: [{
|
|
79
|
+
type: Input
|
|
80
|
+
}] } });
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2F1dGgvc3JjL2xpYi9kaXJlY3RpdmVzL3Blcm1pc3Npb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQW1CLEtBQUssRUFBbUQsTUFBTSxlQUFlLENBQUM7QUFFbEgsT0FBTyxFQUFDLGVBQWUsRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7OztBQUt6QyxNQUFNLE9BQU8sWUFBWTtJQTRCckIsWUFBb0IsWUFBeUIsRUFDekIsWUFBOEIsRUFDOUIsaUJBQW1DO1FBRm5DLGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQ3pCLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtRQUM5QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBNUJ2RCxRQUFRO1FBQ0EsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBVyxFQUFFLENBQUMsQ0FBQztRQUNqRCxXQUFNLEdBQVksS0FBSyxDQUFDO1FBRXhCLHFCQUFnQixHQUE0QixJQUFJLENBQUM7UUFFakQsaUJBQVksR0FBZ0MsSUFBSSxDQUFDO1FBQ2pELGlCQUFZLEdBQWdDLElBQUksQ0FBQztRQTJEakQsMEJBQXFCLEdBQUcsQ0FBQyxLQUF3QixFQUFFLEVBQUU7WUFDekQsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDO1FBRU0sbUJBQWMsR0FBRyxDQUFDLFFBQWdCLEVBQUUsV0FBb0MsRUFBRSxFQUFFO1lBQ2hGLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLElBQUksV0FBVyxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDL0UsSUFBSSxDQUFDLG1CQUFtQixFQUFFO2dCQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsUUFBUSx5QkFBeUIsQ0FBQyxDQUFDO2FBQ3pEO1FBQ0wsQ0FBQyxDQUFDO0lBOUNGLENBQUM7SUFwQkQsSUFDSSxZQUFZLENBQUMsS0FBd0I7UUFDckMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFDSSxnQkFBZ0IsQ0FBQyxXQUFvQztRQUNyRCxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxXQUFXLENBQUM7UUFDcEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFVRCxRQUFRO1FBQ0osTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ2pDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQy9ELENBQUM7UUFFRixJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDMUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDcEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7O1FBQ1AsTUFBQSxJQUFJLENBQUMsYUFBYSwwQ0FBRSxXQUFXLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRU8sVUFBVTtRQUNkLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUNwQixJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO2dCQUN6QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7b0JBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztpQkFDcEY7YUFDSjtTQUNKO2FBQU07WUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDcEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztnQkFDekIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7b0JBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2lCQUN4RjthQUNKO1NBQ0o7SUFDTCxDQUFDOzswR0FsRVEsWUFBWTs4RkFBWixZQUFZOzRGQUFaLFlBQVk7a0JBSHhCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtpQkFDN0I7MkpBYU8sWUFBWTtzQkFEZixLQUFLO2dCQVFGLGdCQUFnQjtzQkFEbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbWJlZGRlZFZpZXdSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtQZXJtaXNzaW9uc30gZnJvbSAnLi4vcGVybWlzc2lvbnMuc2VydmljZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7c3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2JiUGVybWlzc2lvbl0nXG59KVxuZXhwb3J0IGNsYXNzIEJiUGVybWlzc2lvbiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAgIC8vIERhdGEuXG4gICAgcHJpdmF0ZSBfcGVybWlzc2lvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZ1tdPihbXSk7XG4gICAgcHJpdmF0ZSBfdmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHByaXZhdGUgX2Vsc2VUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xuXG4gICAgcHJpdmF0ZSBfdGhlblZpZXdSZWY6IEVtYmVkZGVkVmlld1JlZjxhbnk+IHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBfZWxzZVZpZXdSZWY6IEVtYmVkZGVkVmlld1JlZjxhbnk+IHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBiYlBlcm1pc3Npb24odmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKSB7XG4gICAgICAgIGNvbnN0IHBlcm1pc3Npb25zID0gdGhpcy5nZXRBbGxvd2VkUGVybWlzc2lvbnModmFsdWUpO1xuICAgICAgICB0aGlzLl9wZXJtaXNzaW9uJC5uZXh0KHBlcm1pc3Npb25zKTtcbiAgICAgICAgdGhpcy51cGRhdGVWaWV3KCk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgYmJQZXJtaXNzaW9uRWxzZSh0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5hc3NlcnRUZW1wbGF0ZSgnYmJQZXJtaXNzaW9uRWxzZScsIHRlbXBsYXRlUmVmKTtcbiAgICAgICAgdGhpcy5fZWxzZVRlbXBsYXRlUmVmID0gdGVtcGxhdGVSZWY7XG4gICAgICAgIHRoaXMudXBkYXRlVmlldygpO1xuICAgIH1cblxuICAgIC8vIFN1YnNjcmlwdGlvbnMuXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9wZXJtaXNzaW9uczogUGVybWlzc2lvbnMsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBjb25zdCBjaGVjayQgPSB0aGlzLl9wZXJtaXNzaW9uJC5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKHBlcm1pc3Npb25zID0+IHRoaXMuX3Blcm1pc3Npb25zLmhhcyhwZXJtaXNzaW9ucykpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gY2hlY2skLnN1YnNjcmliZSh2YWxpZCA9PiB7XG4gICAgICAgICAgICB0aGlzLl92YWxpZCA9IHZhbGlkO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWaWV3KCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVWaWV3KCkge1xuICAgICAgICBpZiAodGhpcy5fdmFsaWQpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5fdGhlblZpZXdSZWYpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZWxzZVZpZXdSZWYgPSBudWxsO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl90ZW1wbGF0ZVJlZikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl90aGVuVmlld1JlZiA9IHRoaXMuX3ZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX3RlbXBsYXRlUmVmKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX2Vsc2VWaWV3UmVmKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3RoZW5WaWV3UmVmID0gbnVsbDtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fZWxzZVRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2Vsc2VWaWV3UmVmID0gdGhpcy5fdmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5fZWxzZVRlbXBsYXRlUmVmKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEFsbG93ZWRQZXJtaXNzaW9ucyA9ICh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10pID0+IHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xuICAgIH07XG5cbiAgICBwcml2YXRlIGFzc2VydFRlbXBsYXRlID0gKHByb3BlcnR5OiBzdHJpbmcsIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCkgPT4ge1xuICAgICAgICBjb25zdCBpc1RlbXBsYXRlUmVmT3JOdWxsID0gISEoIXRlbXBsYXRlUmVmIHx8IHRlbXBsYXRlUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyk7XG4gICAgICAgIGlmICghaXNUZW1wbGF0ZVJlZk9yTnVsbCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke3Byb3BlcnR5fSBtdXN0IGJlIGEgVGVtcGxhdGVSZWYuYCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG59XG4iXX0=
|