@bravobit/bb-foundation 0.45.4 → 0.50.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/auth/lib/auth.config.d.ts +0 -2
- package/auth/lib/auth.service.d.ts +1 -1
- package/auth/lib/directives/authenticated.directive.d.ts +1 -1
- package/collections/lib/directives/collections-data-row.directive.d.ts +1 -1
- package/collections/lib/directives/collections-data.directive.d.ts +1 -1
- package/collections/lib/directives/collections-empty.directive.d.ts +1 -1
- package/collections/lib/directives/collections-error.directive.d.ts +1 -1
- package/collections/lib/directives/collections-initial.directive.d.ts +1 -1
- package/collections/lib/directives/collections-item.directive.d.ts +1 -1
- package/dialog/lib/dialog-container/dialog-container.component.d.ts +1 -0
- package/dialog/lib/dialog-overlay/dialog-overlay.component.d.ts +1 -0
- package/fesm2022/bravobit-bb-foundation-auth.mjs +44 -50
- package/fesm2022/bravobit-bb-foundation-auth.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-collections.mjs +69 -75
- package/fesm2022/bravobit-bb-foundation-collections.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-combobox.mjs +21 -24
- package/fesm2022/bravobit-bb-foundation-combobox.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-dashboard.mjs +35 -35
- package/fesm2022/bravobit-bb-foundation-dashboard.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-dialog.mjs +63 -47
- package/fesm2022/bravobit-bb-foundation-dialog.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-elements.mjs +119 -131
- package/fesm2022/bravobit-bb-foundation-elements.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-http.mjs +10 -10
- package/fesm2022/bravobit-bb-foundation-http.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-localize.mjs +25 -32
- package/fesm2022/bravobit-bb-foundation-localize.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-masking.mjs +19 -22
- package/fesm2022/bravobit-bb-foundation-masking.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-notifications.mjs +15 -17
- package/fesm2022/bravobit-bb-foundation-notifications.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-permissions.mjs +11 -12
- package/fesm2022/bravobit-bb-foundation-permissions.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-recaptcha.mjs +11 -11
- package/fesm2022/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-rxjs.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-select.mjs +26 -30
- package/fesm2022/bravobit-bb-foundation-select.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-storage.mjs +16 -8
- package/fesm2022/bravobit-bb-foundation-storage.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-table.mjs +29 -31
- package/fesm2022/bravobit-bb-foundation-table.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-tooltip.mjs +12 -13
- package/fesm2022/bravobit-bb-foundation-tooltip.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-utils.mjs +20 -24
- package/fesm2022/bravobit-bb-foundation-utils.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation.mjs +21 -21
- package/fesm2022/bravobit-bb-foundation.mjs.map +1 -1
- package/localize/lib/localize.config.d.ts +0 -1
- package/localize/lib/localize.service.d.ts +1 -1
- package/localize/lib/views/localize-template.directive.d.ts +1 -1
- package/masking/lib/masking.service.d.ts +2 -2
- package/notifications/lib/notifications-list/notifications-list.component.d.ts +1 -2
- package/package.json +25 -63
- package/permissions/lib/directives/permission.directive.d.ts +1 -1
- package/storage/lib/interfaces/strategy.interface.d.ts +1 -1
- package/table/lib/components/table/table.component.d.ts +2 -2
- package/esm2022/auth/bravobit-bb-foundation-auth.mjs +0 -5
- package/esm2022/auth/lib/auth.config.mjs +0 -16
- package/esm2022/auth/lib/auth.interceptor.mjs +0 -87
- package/esm2022/auth/lib/auth.module.mjs +0 -25
- package/esm2022/auth/lib/auth.service.mjs +0 -261
- package/esm2022/auth/lib/auth.session.mjs +0 -142
- package/esm2022/auth/lib/directives/authenticated.directive.mjs +0 -78
- package/esm2022/auth/lib/guards/anonymous.guard.mjs +0 -29
- package/esm2022/auth/lib/guards/authenticated.guard.mjs +0 -32
- package/esm2022/auth/lib/helpers/jwt.helper.mjs +0 -67
- package/esm2022/auth/lib/interfaces/config.interface.mjs +0 -4
- package/esm2022/auth/lib/interfaces/provider.interface.mjs +0 -2
- package/esm2022/auth/lib/interfaces/token.interface.mjs +0 -2
- package/esm2022/auth/lib/providers/email.provider.mjs +0 -27
- package/esm2022/auth/lib/providers/verify.provider.mjs +0 -25
- package/esm2022/auth/lib/tokens/use-authorization.token.mjs +0 -3
- package/esm2022/auth/public_api.mjs +0 -15
- package/esm2022/bravobit-bb-foundation.mjs +0 -5
- package/esm2022/collections/bravobit-bb-foundation-collections.mjs +0 -5
- package/esm2022/collections/lib/classes/array.collection.mjs +0 -85
- package/esm2022/collections/lib/collection.mjs +0 -98
- package/esm2022/collections/lib/collections.module.mjs +0 -84
- package/esm2022/collections/lib/components/collections-actions/collections-actions.component.mjs +0 -37
- package/esm2022/collections/lib/components/collections-grid/collections-grid.component.mjs +0 -52
- package/esm2022/collections/lib/components/collections-pager/collections-pager.component.mjs +0 -114
- package/esm2022/collections/lib/components/collections-table/collections-table.component.mjs +0 -86
- package/esm2022/collections/lib/components/collections-table-label/collections-table-label.component.mjs +0 -30
- package/esm2022/collections/lib/components/collections-table-sorting/collections-table-sorting.component.mjs +0 -65
- package/esm2022/collections/lib/components/collections-viewer/collections-viewer.component.mjs +0 -37
- package/esm2022/collections/lib/directives/collections-data-row.directive.mjs +0 -29
- package/esm2022/collections/lib/directives/collections-data.directive.mjs +0 -29
- package/esm2022/collections/lib/directives/collections-empty.directive.mjs +0 -29
- package/esm2022/collections/lib/directives/collections-error.directive.mjs +0 -29
- package/esm2022/collections/lib/directives/collections-initial.directive.mjs +0 -23
- package/esm2022/collections/lib/directives/collections-item.directive.mjs +0 -29
- package/esm2022/collections/lib/interfaces/array-collection.interface.mjs +0 -2
- package/esm2022/collections/lib/interfaces/collection.interface.mjs +0 -2
- package/esm2022/collections/lib/providers/api-collection.provider.mjs +0 -103
- package/esm2022/collections/lib/providers/collection.provider.mjs +0 -39
- package/esm2022/collections/lib/providers/local-collection.provider.mjs +0 -25
- package/esm2022/collections/public_api.mjs +0 -22
- package/esm2022/combobox/bravobit-bb-foundation-combobox.mjs +0 -5
- package/esm2022/combobox/combobox/combobox-container.directive.mjs +0 -137
- package/esm2022/combobox/combobox/combobox.component.mjs +0 -118
- package/esm2022/combobox/combobox-label.directive.mjs +0 -14
- package/esm2022/combobox/combobox-option.directive.mjs +0 -17
- package/esm2022/combobox/combobox-panel/combobox-panel.animation.mjs +0 -11
- package/esm2022/combobox/combobox-panel/combobox-panel.component.mjs +0 -42
- package/esm2022/combobox/combobox.interface.mjs +0 -2
- package/esm2022/combobox/public_api.mjs +0 -4
- package/esm2022/dashboard/bravobit-bb-foundation-dashboard.mjs +0 -5
- package/esm2022/dashboard/lib/dashboard/dashboard.component.mjs +0 -50
- package/esm2022/dashboard/lib/dashboard-header/dashboard-header.component.mjs +0 -25
- package/esm2022/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +0 -28
- package/esm2022/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +0 -32
- package/esm2022/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +0 -75
- package/esm2022/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +0 -93
- package/esm2022/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +0 -60
- package/esm2022/dashboard/lib/dashboard.module.mjs +0 -50
- package/esm2022/dashboard/public_api.mjs +0 -9
- package/esm2022/dialog/bravobit-bb-foundation-dialog.mjs +0 -5
- package/esm2022/dialog/lib/dialog-actions/dialog-actions.component.mjs +0 -12
- package/esm2022/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +0 -44
- package/esm2022/dialog/lib/dialog-container/dialog-container.component.mjs +0 -58
- package/esm2022/dialog/lib/dialog-header/dialog-header.component.mjs +0 -15
- package/esm2022/dialog/lib/dialog-link/dialog-link.component.mjs +0 -11
- package/esm2022/dialog/lib/dialog-modal/dialog-modal.component.mjs +0 -57
- package/esm2022/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +0 -53
- package/esm2022/dialog/lib/dialog.config.mjs +0 -8
- package/esm2022/dialog/lib/dialog.insertion.mjs +0 -18
- package/esm2022/dialog/lib/dialog.interfaces.mjs +0 -9
- package/esm2022/dialog/lib/dialog.module.mjs +0 -64
- package/esm2022/dialog/lib/dialog.ref.mjs +0 -16
- package/esm2022/dialog/lib/dialog.service.mjs +0 -75
- package/esm2022/dialog/lib/directives/confirm.directive.mjs +0 -48
- package/esm2022/dialog/public_api.mjs +0 -12
- package/esm2022/elements/bravobit-bb-foundation-elements.mjs +0 -5
- package/esm2022/elements/lib/avatar/avatar.component.mjs +0 -175
- package/esm2022/elements/lib/button/button.component.mjs +0 -68
- package/esm2022/elements/lib/checkbox/checkbox.component.mjs +0 -116
- package/esm2022/elements/lib/checkbox-group/checkbox-group.component.mjs +0 -34
- package/esm2022/elements/lib/date-picker/date-picker.component.mjs +0 -323
- package/esm2022/elements/lib/directives/addon.directive.mjs +0 -27
- package/esm2022/elements/lib/directives/extra-error-controls.directive.mjs +0 -41
- package/esm2022/elements/lib/directives/file-drop.directive.mjs +0 -62
- package/esm2022/elements/lib/directives/form-submit.directive.mjs +0 -54
- package/esm2022/elements/lib/directives/form-submitter.directive.mjs +0 -24
- package/esm2022/elements/lib/directives/image-upload.directive.mjs +0 -143
- package/esm2022/elements/lib/directives/input.directive.mjs +0 -49
- package/esm2022/elements/lib/elements.config.mjs +0 -54
- package/esm2022/elements/lib/elements.interfaces.mjs +0 -5
- package/esm2022/elements/lib/elements.module.mjs +0 -146
- package/esm2022/elements/lib/file-picker/file-picker.component.mjs +0 -196
- package/esm2022/elements/lib/form-control/form-control.component.mjs +0 -46
- package/esm2022/elements/lib/form-error/form-error.component.mjs +0 -106
- package/esm2022/elements/lib/form-group/form-group.component.mjs +0 -19
- package/esm2022/elements/lib/icon/icon.component.mjs +0 -122
- package/esm2022/elements/lib/image-picker/image-picker.component.mjs +0 -126
- package/esm2022/elements/lib/multi-file-control/multi-file-control.component.mjs +0 -149
- package/esm2022/elements/lib/pipes/date.pipe.mjs +0 -28
- package/esm2022/elements/lib/pipes/file-image.pipe.mjs +0 -48
- package/esm2022/elements/lib/pipes/file-size.pipe.mjs +0 -27
- package/esm2022/elements/lib/pipes/relative-time.pipe.mjs +0 -99
- package/esm2022/elements/lib/radio-button/radio-button.component.mjs +0 -60
- package/esm2022/elements/lib/radio-group/radio-group.component.mjs +0 -103
- package/esm2022/elements/lib/spinner/spinner.component.mjs +0 -22
- package/esm2022/elements/public_api.mjs +0 -30
- package/esm2022/http/bravobit-bb-foundation-http.mjs +0 -5
- package/esm2022/http/lib/classes/http.config.mjs +0 -32
- package/esm2022/http/lib/classes/http.error.mjs +0 -20
- package/esm2022/http/lib/http.config.mjs +0 -18
- package/esm2022/http/lib/http.interfaces.mjs +0 -4
- package/esm2022/http/lib/http.module.mjs +0 -31
- package/esm2022/http/lib/interceptors/base-url.interceptor.mjs +0 -60
- package/esm2022/http/lib/interceptors/error.interceptor.mjs +0 -31
- package/esm2022/http/public_api.mjs +0 -8
- package/esm2022/lib/core/functions/array.utils.mjs +0 -7
- package/esm2022/lib/core/functions/date.utils.mjs +0 -31
- package/esm2022/lib/core/functions/password.utils.mjs +0 -17
- package/esm2022/lib/core/functions/route-cache.utils.mjs +0 -23
- package/esm2022/lib/core/miscellaneous/coercion.mjs +0 -5
- package/esm2022/lib/core/miscellaneous/regex.mjs +0 -44
- package/esm2022/lib/core/miscellaneous/validator.mjs +0 -85
- package/esm2022/lib/core/services/exif.service.mjs +0 -165
- package/esm2022/lib/core/services/file-loader.service.mjs +0 -85
- package/esm2022/lib/core/services/files.service.mjs +0 -78
- package/esm2022/lib/core/services/image-converter.service.mjs +0 -126
- package/esm2022/lib/core/services/languages.service.mjs +0 -75
- package/esm2022/lib/core/services/network.service.mjs +0 -58
- package/esm2022/lib/core/services/patch.service.mjs +0 -66
- package/esm2022/lib/core/tokens/accept-language.token.mjs +0 -3
- package/esm2022/lib/core/tokens/base-url.token.mjs +0 -3
- package/esm2022/lib/core/tokens/cookie.token.mjs +0 -3
- package/esm2022/lib/core/tokens/global-focus-mode.token.mjs +0 -10
- package/esm2022/lib/core/tokens/location.token.mjs +0 -6
- package/esm2022/lib/core/tokens/navigator.token.mjs +0 -6
- package/esm2022/lib/core/tokens/window.token.mjs +0 -12
- package/esm2022/localize/bravobit-bb-foundation-localize.mjs +0 -5
- package/esm2022/localize/lib/dictionary/dictionary.class.mjs +0 -96
- package/esm2022/localize/lib/dictionary/dictionary.context.mjs +0 -24
- package/esm2022/localize/lib/dictionary/dictionary.data.mjs +0 -7
- package/esm2022/localize/lib/functions/date.function.mjs +0 -18
- package/esm2022/localize/lib/functions/lowercase.function.mjs +0 -13
- package/esm2022/localize/lib/functions/uppercase.function.mjs +0 -13
- package/esm2022/localize/lib/handlers/missing.handler.mjs +0 -13
- package/esm2022/localize/lib/interfaces/config.interfaces.mjs +0 -2
- package/esm2022/localize/lib/interfaces/functions.interfaces.mjs +0 -8
- package/esm2022/localize/lib/interfaces/handlers.interfaces.mjs +0 -2
- package/esm2022/localize/lib/interfaces/options.interfaces.mjs +0 -6
- package/esm2022/localize/lib/localizations/dutch.localization.mjs +0 -64
- package/esm2022/localize/lib/localizations/english.localization.mjs +0 -64
- package/esm2022/localize/lib/localizations/papiamento.localization.mjs +0 -64
- package/esm2022/localize/lib/localizations/spanish.localization.mjs +0 -64
- package/esm2022/localize/lib/localize.config.mjs +0 -43
- package/esm2022/localize/lib/localize.module.mjs +0 -39
- package/esm2022/localize/lib/localize.pipe.mjs +0 -48
- package/esm2022/localize/lib/localize.service.mjs +0 -172
- package/esm2022/localize/lib/localize.tokens.mjs +0 -18
- package/esm2022/localize/lib/transforms/abstract.transform.mjs +0 -30
- package/esm2022/localize/lib/transforms/interpolate.transform.mjs +0 -45
- package/esm2022/localize/lib/transforms/plural.transform.mjs +0 -49
- package/esm2022/localize/lib/transforms/reference.transform.mjs +0 -19
- package/esm2022/localize/lib/views/localize-string/localize-string.component.mjs +0 -89
- package/esm2022/localize/lib/views/localize-template.directive.mjs +0 -23
- package/esm2022/localize/public_api.mjs +0 -27
- package/esm2022/masking/bravobit-bb-foundation-masking.mjs +0 -5
- package/esm2022/masking/lib/directives/currency-mask.directive.mjs +0 -41
- package/esm2022/masking/lib/directives/date-mask.directive.mjs +0 -41
- package/esm2022/masking/lib/directives/input-mask.directive.mjs +0 -126
- package/esm2022/masking/lib/input-mask.interface.mjs +0 -2
- package/esm2022/masking/lib/masking.module.mjs +0 -30
- package/esm2022/masking/lib/masking.service.mjs +0 -104
- package/esm2022/masking/public_api.mjs +0 -7
- package/esm2022/notifications/bravobit-bb-foundation-notifications.mjs +0 -5
- package/esm2022/notifications/lib/notifications-item/notifications-item.component.mjs +0 -112
- package/esm2022/notifications/lib/notifications-list/notifications-list.component.mjs +0 -48
- package/esm2022/notifications/lib/notifications.animations.mjs +0 -28
- package/esm2022/notifications/lib/notifications.config.mjs +0 -8
- package/esm2022/notifications/lib/notifications.interfaces.mjs +0 -31
- package/esm2022/notifications/lib/notifications.module.mjs +0 -20
- package/esm2022/notifications/lib/notifications.service.mjs +0 -161
- package/esm2022/notifications/public_api.mjs +0 -5
- package/esm2022/permissions/bravobit-bb-foundation-permissions.mjs +0 -5
- package/esm2022/permissions/lib/directives/permission.directive.mjs +0 -95
- package/esm2022/permissions/lib/guards/permission.guard.mjs +0 -25
- package/esm2022/permissions/lib/handlers/abstract.handler.mjs +0 -3
- package/esm2022/permissions/lib/handlers/local.handler.mjs +0 -29
- package/esm2022/permissions/lib/permissions.config.mjs +0 -20
- package/esm2022/permissions/lib/permissions.interface.mjs +0 -8
- package/esm2022/permissions/lib/permissions.module.mjs +0 -25
- package/esm2022/permissions/lib/permissions.service.mjs +0 -100
- package/esm2022/permissions/public_api.mjs +0 -9
- package/esm2022/public_api.mjs +0 -25
- package/esm2022/recaptcha/bravobit-bb-foundation-recaptcha.mjs +0 -5
- package/esm2022/recaptcha/lib/recaptcha/recaptcha.component.mjs +0 -225
- package/esm2022/recaptcha/lib/recaptcha-loader.service.mjs +0 -80
- package/esm2022/recaptcha/lib/recaptcha.config.mjs +0 -8
- package/esm2022/recaptcha/lib/recaptcha.interface.mjs +0 -3
- package/esm2022/recaptcha/lib/recaptcha.module.mjs +0 -27
- package/esm2022/recaptcha/public_api.mjs +0 -6
- package/esm2022/rxjs/bravobit-bb-foundation-rxjs.mjs +0 -5
- package/esm2022/rxjs/lib/observables/get-control-value.observable.mjs +0 -6
- package/esm2022/rxjs/lib/observables/get-route-param.observable.mjs +0 -5
- package/esm2022/rxjs/lib/operators/combine-latest-map.operator.mjs +0 -10
- package/esm2022/rxjs/lib/operators/filter-nil.operator.mjs +0 -5
- package/esm2022/rxjs/public_api.mjs +0 -5
- package/esm2022/select/bravobit-bb-foundation-select.mjs +0 -5
- package/esm2022/select/lib/select/select.component.mjs +0 -289
- package/esm2022/select/lib/select-label.directive.mjs +0 -18
- package/esm2022/select/lib/select-multi-label.directive.mjs +0 -18
- package/esm2022/select/lib/select-option-group.directive.mjs +0 -18
- package/esm2022/select/lib/select-option.directive.mjs +0 -18
- package/esm2022/select/lib/select.config.mjs +0 -8
- package/esm2022/select/lib/select.module.mjs +0 -46
- package/esm2022/select/public_api.mjs +0 -8
- package/esm2022/storage/bravobit-bb-foundation-storage.mjs +0 -5
- package/esm2022/storage/lib/interfaces/attributes.interface.mjs +0 -2
- package/esm2022/storage/lib/interfaces/memory.interface.mjs +0 -2
- package/esm2022/storage/lib/interfaces/strategy.interface.mjs +0 -2
- package/esm2022/storage/lib/storage.service.mjs +0 -113
- package/esm2022/storage/lib/strategies/cookie-storage.strategy.mjs +0 -144
- package/esm2022/storage/lib/strategies/memory-storage.strategy.mjs +0 -54
- package/esm2022/storage/lib/strategies/polyfill-storage.strategy.mjs +0 -100
- package/esm2022/storage/public_api.mjs +0 -8
- package/esm2022/table/bravobit-bb-foundation-table.mjs +0 -5
- package/esm2022/table/lib/components/table/table.component.mjs +0 -200
- package/esm2022/table/lib/components/table-cell/table-cell.component.mjs +0 -11
- package/esm2022/table/lib/components/table-header-cell/table-header-cell.component.mjs +0 -135
- package/esm2022/table/lib/components/table-pager/table-pager.component.mjs +0 -136
- package/esm2022/table/lib/data/datasource.data.mjs +0 -30
- package/esm2022/table/lib/data/generic.data.mjs +0 -84
- package/esm2022/table/lib/interfaces/datasource.interface.mjs +0 -2
- package/esm2022/table/lib/interfaces/table.interfaces.mjs +0 -2
- package/esm2022/table/lib/table.module.mjs +0 -44
- package/esm2022/table/public_api.mjs +0 -10
- package/esm2022/tooltip/bravobit-bb-foundation-tooltip.mjs +0 -5
- package/esm2022/tooltip/lib/tooltip-container/tooltip-container.component.mjs +0 -23
- package/esm2022/tooltip/lib/tooltip.directive.mjs +0 -130
- package/esm2022/tooltip/lib/tooltip.interfaces.mjs +0 -4
- package/esm2022/tooltip/lib/tooltip.module.mjs +0 -16
- package/esm2022/tooltip/public_api.mjs +0 -5
- package/esm2022/utils/bravobit-bb-foundation-utils.mjs +0 -5
- package/esm2022/utils/lib/directives/autosize.directive.mjs +0 -76
- package/esm2022/utils/lib/directives/focus-trap.directive.mjs +0 -80
- package/esm2022/utils/lib/directives/focus.directive.mjs +0 -57
- package/esm2022/utils/lib/directives/template.directive.mjs +0 -33
- package/esm2022/utils/lib/utils.module.mjs +0 -35
- package/esm2022/utils/public_api.mjs +0 -6
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { Directive, Input } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject, combineLatest, Subscription } from 'rxjs';
|
|
3
|
-
import { distinctUntilChanged, switchMap } from 'rxjs/operators';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../permissions.service";
|
|
6
|
-
export class BbPermission {
|
|
7
|
-
_permissions;
|
|
8
|
-
_templateRef;
|
|
9
|
-
_viewContainerRef;
|
|
10
|
-
// Templates.
|
|
11
|
-
_elseTemplateRef = null;
|
|
12
|
-
// View refs.
|
|
13
|
-
_thenViewRef = null;
|
|
14
|
-
_elseViewRef = null;
|
|
15
|
-
// Data.
|
|
16
|
-
_valid = false;
|
|
17
|
-
_permission$ = new BehaviorSubject([]);
|
|
18
|
-
_mode$ = new BehaviorSubject('and');
|
|
19
|
-
set bbPermission(value) {
|
|
20
|
-
const permissions = Array.isArray(value) ? value : [value];
|
|
21
|
-
this._permission$.next(permissions);
|
|
22
|
-
this.updateView();
|
|
23
|
-
}
|
|
24
|
-
set bbPermissionElse(templateRef) {
|
|
25
|
-
this.assertTemplate('bbPermissionElse', templateRef);
|
|
26
|
-
this._elseTemplateRef = templateRef;
|
|
27
|
-
this.updateView();
|
|
28
|
-
}
|
|
29
|
-
set bbPermissionMode(mode) {
|
|
30
|
-
this._mode$.next(mode);
|
|
31
|
-
}
|
|
32
|
-
// Subscriptions.
|
|
33
|
-
_subscription = new Subscription();
|
|
34
|
-
constructor(_permissions, _templateRef, _viewContainerRef) {
|
|
35
|
-
this._permissions = _permissions;
|
|
36
|
-
this._templateRef = _templateRef;
|
|
37
|
-
this._viewContainerRef = _viewContainerRef;
|
|
38
|
-
}
|
|
39
|
-
ngOnInit() {
|
|
40
|
-
const check$ = combineLatest([this._permission$, this._mode$]).pipe(switchMap(([permissions, mode]) => this._permissions.has(permissions, { mode })), distinctUntilChanged());
|
|
41
|
-
const subscription = check$.subscribe(valid => {
|
|
42
|
-
this._valid = valid;
|
|
43
|
-
this.updateView();
|
|
44
|
-
});
|
|
45
|
-
this._subscription.add(subscription);
|
|
46
|
-
}
|
|
47
|
-
ngOnDestroy() {
|
|
48
|
-
this._subscription?.unsubscribe();
|
|
49
|
-
}
|
|
50
|
-
updateView() {
|
|
51
|
-
if (this._valid) {
|
|
52
|
-
if (!this._thenViewRef) {
|
|
53
|
-
this._viewContainerRef.clear();
|
|
54
|
-
this._elseViewRef = null;
|
|
55
|
-
if (this._templateRef) {
|
|
56
|
-
this._thenViewRef = this._viewContainerRef.createEmbeddedView(this._templateRef);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
if (!this._elseViewRef) {
|
|
62
|
-
this._viewContainerRef.clear();
|
|
63
|
-
this._thenViewRef = null;
|
|
64
|
-
if (this._elseTemplateRef) {
|
|
65
|
-
this._elseViewRef = this._viewContainerRef.createEmbeddedView(this._elseTemplateRef);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
assertTemplate(property, templateRef) {
|
|
71
|
-
const isTemplateRefOrNull = !!(!templateRef || templateRef.createEmbeddedView);
|
|
72
|
-
if (!isTemplateRefOrNull) {
|
|
73
|
-
throw new Error(`${property} must be a TemplateRef.`);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
static ngAcceptInputType_bbPermission;
|
|
77
|
-
static ngAcceptInputType_bbPermissionElse;
|
|
78
|
-
static ngAcceptInputType_bbPermissionMode;
|
|
79
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbPermission, deps: [{ token: i1.Permissions }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
80
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.12", type: BbPermission, isStandalone: true, selector: "[bbPermission]", inputs: { bbPermission: "bbPermission", bbPermissionElse: "bbPermissionElse", bbPermissionMode: "bbPermissionMode" }, ngImport: i0 });
|
|
81
|
-
}
|
|
82
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbPermission, decorators: [{
|
|
83
|
-
type: Directive,
|
|
84
|
-
args: [{
|
|
85
|
-
selector: '[bbPermission]',
|
|
86
|
-
standalone: true
|
|
87
|
-
}]
|
|
88
|
-
}], ctorParameters: () => [{ type: i1.Permissions }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }], propDecorators: { bbPermission: [{
|
|
89
|
-
type: Input
|
|
90
|
-
}], bbPermissionElse: [{
|
|
91
|
-
type: Input
|
|
92
|
-
}], bbPermissionMode: [{
|
|
93
|
-
type: Input
|
|
94
|
-
}] } });
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL3Blcm1pc3Npb25zL3NyYy9saWIvZGlyZWN0aXZlcy9wZXJtaXNzaW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFtQixLQUFLLEVBQW1ELE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNsRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7OztBQVEvRCxNQUFNLE9BQU8sWUFBWTtJQW9DRDtJQUNBO0lBQ0E7SUFwQ3BCLGFBQWE7SUFDTCxnQkFBZ0IsR0FBNEIsSUFBSSxDQUFDO0lBRXpELGFBQWE7SUFDTCxZQUFZLEdBQWdDLElBQUksQ0FBQztJQUNqRCxZQUFZLEdBQWdDLElBQUksQ0FBQztJQUV6RCxRQUFRO0lBQ0EsTUFBTSxHQUFZLEtBQUssQ0FBQztJQUN4QixZQUFZLEdBQUcsSUFBSSxlQUFlLENBQVcsRUFBRSxDQUFDLENBQUM7SUFDakQsTUFBTSxHQUFHLElBQUksZUFBZSxDQUFrQixLQUFLLENBQUMsQ0FBQztJQUU3RCxJQUNJLFlBQVksQ0FBQyxLQUF3QjtRQUNyQyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUNJLGdCQUFnQixDQUFDLFdBQTZCO1FBQzlDLElBQUks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QUFDLGtDQUFrQyxDQUFtQjtJQUM1RCxNQUFNLENBQUMsa0NBQWtDLENBQWtCO3dHQXZGbEQsWUFBWTs0RkFBWixZQUFZOzs0RkFBWixZQUFZO2tCQUp4QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjt5SUFnQk8sWUFBWTtzQkFEZixLQUFLO2dCQVFGLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFRRixnQkFBZ0I7c0JBRG5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRW1iZWRkZWRWaWV3UmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkaXN0aW5jdFVudGlsQ2hhbmdlZCwgc3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1Blcm1pc3Npb25zTW9kZX0gZnJvbSAnLi4vcGVybWlzc2lvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7UGVybWlzc2lvbnN9IGZyb20gJy4uL3Blcm1pc3Npb25zLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tiYlBlcm1pc3Npb25dJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEJiUGVybWlzc2lvbiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAgIC8vIFRlbXBsYXRlcy5cbiAgICBwcml2YXRlIF9lbHNlVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbDtcblxuICAgIC8vIFZpZXcgcmVmcy5cbiAgICBwcml2YXRlIF90aGVuVmlld1JlZjogRW1iZWRkZWRWaWV3UmVmPGFueT4gfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIF9lbHNlVmlld1JlZjogRW1iZWRkZWRWaWV3UmVmPGFueT4gfCBudWxsID0gbnVsbDtcblxuICAgIC8vIERhdGEuXG4gICAgcHJpdmF0ZSBfdmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwcml2YXRlIF9wZXJtaXNzaW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nW10+KFtdKTtcbiAgICBwcml2YXRlIF9tb2RlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGVybWlzc2lvbnNNb2RlPignYW5kJyk7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBiYlBlcm1pc3Npb24odmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKSB7XG4gICAgICAgIGNvbnN0IHBlcm1pc3Npb25zID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XG4gICAgICAgIHRoaXMuX3Blcm1pc3Npb24kLm5leHQocGVybWlzc2lvbnMpO1xuICAgICAgICB0aGlzLnVwZGF0ZVZpZXcoKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBiYlBlcm1pc3Npb25FbHNlKHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIHRoaXMuYXNzZXJ0VGVtcGxhdGUoJ2JiUGVybWlzc2lvbkVsc2UnLCB0ZW1wbGF0ZVJlZik7XG4gICAgICAgIHRoaXMuX2Vsc2VUZW1wbGF0ZVJlZiA9IHRlbXBsYXRlUmVmO1xuICAgICAgICB0aGlzLnVwZGF0ZVZpZXcoKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBiYlBlcm1pc3Npb25Nb2RlKG1vZGU6IFBlcm1pc3Npb25zTW9kZSkge1xuICAgICAgICB0aGlzLl9tb2RlJC5uZXh0KG1vZGUpO1xuICAgIH1cblxuICAgIC8vIFN1YnNjcmlwdGlvbnMuXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfcGVybWlzc2lvbnM6IFBlcm1pc3Npb25zLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX3RlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgY29uc3QgY2hlY2skID0gY29tYmluZUxhdGVzdChbdGhpcy5fcGVybWlzc2lvbiQsIHRoaXMuX21vZGUkXSkucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoW3Blcm1pc3Npb25zLCBtb2RlXSkgPT4gdGhpcy5fcGVybWlzc2lvbnMuaGFzKHBlcm1pc3Npb25zLCB7bW9kZX0pKSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSBjaGVjayQuc3Vic2NyaWJlKHZhbGlkID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3ZhbGlkID0gdmFsaWQ7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZpZXcoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoc3Vic2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlVmlldygpIHtcbiAgICAgICAgaWYgKHRoaXMuX3ZhbGlkKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX3RoZW5WaWV3UmVmKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2Vsc2VWaWV3UmVmID0gbnVsbDtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fdGVtcGxhdGVSZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGhlblZpZXdSZWYgPSB0aGlzLl92aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLl90ZW1wbGF0ZVJlZik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9lbHNlVmlld1JlZikge1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl90aGVuVmlld1JlZiA9IG51bGw7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2Vsc2VUZW1wbGF0ZVJlZikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbHNlVmlld1JlZiA9IHRoaXMuX3ZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX2Vsc2VUZW1wbGF0ZVJlZik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3NlcnRUZW1wbGF0ZShwcm9wZXJ0eTogc3RyaW5nLCB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwpIHtcbiAgICAgICAgY29uc3QgaXNUZW1wbGF0ZVJlZk9yTnVsbCA9ICEhKCF0ZW1wbGF0ZVJlZiB8fCB0ZW1wbGF0ZVJlZi5jcmVhdGVFbWJlZGRlZFZpZXcpO1xuICAgICAgICBpZiAoIWlzVGVtcGxhdGVSZWZPck51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgJHtwcm9wZXJ0eX0gbXVzdCBiZSBhIFRlbXBsYXRlUmVmLmApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2JiUGVybWlzc2lvbjogc3RyaW5nIHwgc3RyaW5nW107XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2JiUGVybWlzc2lvbkVsc2U6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2JiUGVybWlzc2lvbk1vZGU6IFBlcm1pc3Npb25zTW9kZTtcblxufVxuIl19
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { Router } from '@angular/router';
|
|
2
|
-
import { PERMISSIONS_CONFIG } from '../permissions.interface';
|
|
3
|
-
import { Permissions } from '../permissions.service';
|
|
4
|
-
import { inject } from '@angular/core';
|
|
5
|
-
export const bbPermissionGuard = (value, options) => {
|
|
6
|
-
return (route, state) => {
|
|
7
|
-
const router = inject(Router);
|
|
8
|
-
const permissions = inject(Permissions);
|
|
9
|
-
const config = inject(PERMISSIONS_CONFIG, { optional: true });
|
|
10
|
-
const valid = permissions.hasSync(value, options);
|
|
11
|
-
if (valid) {
|
|
12
|
-
return true;
|
|
13
|
-
}
|
|
14
|
-
const onPermissionDeniedFn = config?.onPermissionDenied ?? null;
|
|
15
|
-
if (!onPermissionDeniedFn) {
|
|
16
|
-
return false;
|
|
17
|
-
}
|
|
18
|
-
const urlTree = onPermissionDeniedFn(router, route, state);
|
|
19
|
-
if (!urlTree) {
|
|
20
|
-
return false;
|
|
21
|
-
}
|
|
22
|
-
return valid ? true : urlTree;
|
|
23
|
-
};
|
|
24
|
-
};
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vcGVybWlzc2lvbnMvc3JjL2xpYi9ndWFyZHMvcGVybWlzc2lvbi5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXdDLE1BQU0sRUFBc0IsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRyxPQUFPLEVBQXFCLGtCQUFrQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDaEYsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFckMsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUF3QixFQUFFLE9BQTRCLEVBQWlCLEVBQUU7SUFDdkcsT0FBTyxDQUFDLEtBQTZCLEVBQUUsS0FBMEIsRUFBRSxFQUFFO1FBQ2pFLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFFNUQsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbEQsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNSLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxNQUFNLG9CQUFvQixHQUFHLE1BQU0sRUFBRSxrQkFBa0IsSUFBSSxJQUFJLENBQUM7UUFDaEUsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDeEIsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ1gsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUNsQyxDQUFDLENBQUM7QUFDTixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FjdGl2YXRlZFJvdXRlU25hcHNob3QsIENhbkFjdGl2YXRlRm4sIFJvdXRlciwgUm91dGVyU3RhdGVTbmFwc2hvdH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7UGVybWlzc2lvbnNPcHRpb25zLCBQRVJNSVNTSU9OU19DT05GSUd9IGZyb20gJy4uL3Blcm1pc3Npb25zLmludGVyZmFjZSc7XG5pbXBvcnQge1Blcm1pc3Npb25zfSBmcm9tICcuLi9wZXJtaXNzaW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7aW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IGJiUGVybWlzc2lvbkd1YXJkID0gKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3B0aW9ucz86IFBlcm1pc3Npb25zT3B0aW9ucyk6IENhbkFjdGl2YXRlRm4gPT4ge1xuICAgIHJldHVybiAocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KSA9PiB7XG4gICAgICAgIGNvbnN0IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICAgICAgICBjb25zdCBwZXJtaXNzaW9ucyA9IGluamVjdChQZXJtaXNzaW9ucyk7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IGluamVjdChQRVJNSVNTSU9OU19DT05GSUcsIHtvcHRpb25hbDogdHJ1ZX0pO1xuXG4gICAgICAgIGNvbnN0IHZhbGlkID0gcGVybWlzc2lvbnMuaGFzU3luYyh2YWx1ZSwgb3B0aW9ucyk7XG4gICAgICAgIGlmICh2YWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBvblBlcm1pc3Npb25EZW5pZWRGbiA9IGNvbmZpZz8ub25QZXJtaXNzaW9uRGVuaWVkID8/IG51bGw7XG4gICAgICAgIGlmICghb25QZXJtaXNzaW9uRGVuaWVkRm4pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHVybFRyZWUgPSBvblBlcm1pc3Npb25EZW5pZWRGbihyb3V0ZXIsIHJvdXRlLCBzdGF0ZSk7XG4gICAgICAgIGlmICghdXJsVHJlZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbGlkID8gdHJ1ZSA6IHVybFRyZWU7XG4gICAgfTtcbn07XG4iXX0=
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export class PermissionsHandler {
|
|
2
|
-
}
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QuaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vcGVybWlzc2lvbnMvc3JjL2xpYi9oYW5kbGVycy9hYnN0cmFjdC5oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBZ0Isa0JBQWtCO0NBSXZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBlcm1pc3Npb25zSGFuZGxlciB7XG5cbiAgICBhYnN0cmFjdCBnZXQoKTogT2JzZXJ2YWJsZTxzdHJpbmdbXT4gfCBzdHJpbmdbXTtcblxufVxuIl19
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { PermissionsHandler } from './abstract.handler';
|
|
2
|
-
import { map } from 'rxjs/operators';
|
|
3
|
-
export class LocalPermissionsHandler extends PermissionsHandler {
|
|
4
|
-
auth;
|
|
5
|
-
localPermissions;
|
|
6
|
-
constructor(auth, localPermissions) {
|
|
7
|
-
super();
|
|
8
|
-
this.auth = auth;
|
|
9
|
-
this.localPermissions = localPermissions;
|
|
10
|
-
}
|
|
11
|
-
get() {
|
|
12
|
-
return this.auth.user.pipe(map(user => user?.role ?? null), map(role => {
|
|
13
|
-
if (role === null || role === undefined) {
|
|
14
|
-
return [];
|
|
15
|
-
}
|
|
16
|
-
return this.getPermissionsForRole(role);
|
|
17
|
-
}));
|
|
18
|
-
}
|
|
19
|
-
getPermissionsForRole(role) {
|
|
20
|
-
return Object.keys(this.localPermissions ?? {}).reduce((previous, current) => {
|
|
21
|
-
const roles = this.localPermissions?.[current] ?? [];
|
|
22
|
-
if (roles === '*' || roles?.includes(role)) {
|
|
23
|
-
return [...previous, current];
|
|
24
|
-
}
|
|
25
|
-
return previous;
|
|
26
|
-
}, []);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwuaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vcGVybWlzc2lvbnMvc3JjL2xpYi9oYW5kbGVycy9sb2NhbC5oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRXRELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsa0JBQWtCO0lBRXJDO0lBQ0E7SUFEdEIsWUFBc0IsSUFBVSxFQUNWLGdCQUFzQztRQUN4RCxLQUFLLEVBQUUsQ0FBQztRQUZVLFNBQUksR0FBSixJQUFJLENBQU07UUFDVixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXNCO0lBRTVELENBQUM7SUFFUSxHQUFHO1FBQ1IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ3RCLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLEVBQy9CLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNQLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ3RDLE9BQU8sRUFBRSxDQUFDO1lBQ2QsQ0FBQztZQUVELE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRVMscUJBQXFCLENBQUMsSUFBWTtRQUN4QyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUN6RSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDckQsSUFBSSxLQUFLLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDekMsT0FBTyxDQUFDLEdBQUcsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ2xDLENBQUM7WUFFRCxPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDWCxDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xvY2FsUGVybWlzc2lvbnNEYXRhfSBmcm9tICcuLi9wZXJtaXNzaW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHtQZXJtaXNzaW9uc0hhbmRsZXJ9IGZyb20gJy4vYWJzdHJhY3QuaGFuZGxlcic7XG5pbXBvcnQge0F1dGh9IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uL2F1dGgnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGNsYXNzIExvY2FsUGVybWlzc2lvbnNIYW5kbGVyIGV4dGVuZHMgUGVybWlzc2lvbnNIYW5kbGVyIHtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBhdXRoOiBBdXRoLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBsb2NhbFBlcm1pc3Npb25zOiBMb2NhbFBlcm1pc3Npb25zRGF0YSkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGdldCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0aC51c2VyLnBpcGUoXG4gICAgICAgICAgICBtYXAodXNlciA9PiB1c2VyPy5yb2xlID8/IG51bGwpLFxuICAgICAgICAgICAgbWFwKHJvbGUgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyb2xlID09PSBudWxsIHx8IHJvbGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UGVybWlzc2lvbnNGb3JSb2xlKHJvbGUpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0UGVybWlzc2lvbnNGb3JSb2xlKHJvbGU6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5sb2NhbFBlcm1pc3Npb25zID8/IHt9KS5yZWR1Y2UoKHByZXZpb3VzLCBjdXJyZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByb2xlcyA9IHRoaXMubG9jYWxQZXJtaXNzaW9ucz8uW2N1cnJlbnRdID8/IFtdO1xuICAgICAgICAgICAgaWYgKHJvbGVzID09PSAnKicgfHwgcm9sZXM/LmluY2x1ZGVzKHJvbGUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFsuLi5wcmV2aW91cywgY3VycmVudF07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBwcmV2aW91cztcbiAgICAgICAgfSwgW10pO1xuICAgIH1cblxufVxuIl19
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { makeEnvironmentProviders } from '@angular/core';
|
|
2
|
-
import { PERMISSIONS_CONFIG } from './permissions.interface';
|
|
3
|
-
import { LocalPermissionsHandler } from './handlers/local.handler';
|
|
4
|
-
import { PermissionsHandler } from './handlers/abstract.handler';
|
|
5
|
-
import { Auth } from '@bravobit/bb-foundation/auth';
|
|
6
|
-
export function providePermissionsConfig(config) {
|
|
7
|
-
const defaultProvider = {
|
|
8
|
-
provide: PermissionsHandler,
|
|
9
|
-
deps: [Auth],
|
|
10
|
-
useFactory: (auth) => {
|
|
11
|
-
return new LocalPermissionsHandler(auth, config?.localPermissions ?? {});
|
|
12
|
-
}
|
|
13
|
-
};
|
|
14
|
-
const permissionHandlerProvider = config?.provider ?? defaultProvider;
|
|
15
|
-
return makeEnvironmentProviders([
|
|
16
|
-
{ provide: PERMISSIONS_CONFIG, useValue: config },
|
|
17
|
-
permissionHandlerProvider
|
|
18
|
-
]);
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9wZXJtaXNzaW9ucy9zcmMvbGliL3Blcm1pc3Npb25zLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLHdCQUF3QixFQUFXLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxrQkFBa0IsRUFBb0IsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFFbEQsTUFBTSxVQUFVLHdCQUF3QixDQUFDLE1BQTBCO0lBQy9ELE1BQU0sZUFBZSxHQUFhO1FBQzlCLE9BQU8sRUFBRSxrQkFBa0I7UUFDM0IsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDO1FBQ1osVUFBVSxFQUFFLENBQUMsSUFBVSxFQUFFLEVBQUU7WUFDdkIsT0FBTyxJQUFJLHVCQUF1QixDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLElBQUksRUFBRSxDQUFDLENBQUM7UUFDN0UsQ0FBQztLQUNKLENBQUM7SUFFRixNQUFNLHlCQUF5QixHQUFHLE1BQU0sRUFBRSxRQUFRLElBQUksZUFBZSxDQUFDO0lBRXRFLE9BQU8sd0JBQXdCLENBQUM7UUFDNUIsRUFBQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBQztRQUMvQyx5QkFBeUI7S0FDNUIsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RW52aXJvbm1lbnRQcm92aWRlcnMsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycywgUHJvdmlkZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtQRVJNSVNTSU9OU19DT05GSUcsIFBlcm1pc3Npb25zQ29uZmlnfSBmcm9tICcuL3Blcm1pc3Npb25zLmludGVyZmFjZSc7XG5pbXBvcnQge0xvY2FsUGVybWlzc2lvbnNIYW5kbGVyfSBmcm9tICcuL2hhbmRsZXJzL2xvY2FsLmhhbmRsZXInO1xuaW1wb3J0IHtQZXJtaXNzaW9uc0hhbmRsZXJ9IGZyb20gJy4vaGFuZGxlcnMvYWJzdHJhY3QuaGFuZGxlcic7XG5pbXBvcnQge0F1dGh9IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uL2F1dGgnO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVBlcm1pc3Npb25zQ29uZmlnKGNvbmZpZz86IFBlcm1pc3Npb25zQ29uZmlnKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICAgIGNvbnN0IGRlZmF1bHRQcm92aWRlcjogUHJvdmlkZXIgPSB7XG4gICAgICAgIHByb3ZpZGU6IFBlcm1pc3Npb25zSGFuZGxlcixcbiAgICAgICAgZGVwczogW0F1dGhdLFxuICAgICAgICB1c2VGYWN0b3J5OiAoYXV0aDogQXV0aCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBMb2NhbFBlcm1pc3Npb25zSGFuZGxlcihhdXRoLCBjb25maWc/LmxvY2FsUGVybWlzc2lvbnMgPz8ge30pO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IHBlcm1pc3Npb25IYW5kbGVyUHJvdmlkZXIgPSBjb25maWc/LnByb3ZpZGVyID8/IGRlZmF1bHRQcm92aWRlcjtcblxuICAgIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgICAgICB7cHJvdmlkZTogUEVSTUlTU0lPTlNfQ09ORklHLCB1c2VWYWx1ZTogY29uZmlnfSxcbiAgICAgICAgcGVybWlzc2lvbkhhbmRsZXJQcm92aWRlclxuICAgIF0pO1xufVxuIl19
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
export class PermissionsConfig {
|
|
3
|
-
provider;
|
|
4
|
-
localPermissions;
|
|
5
|
-
onPermissionDenied;
|
|
6
|
-
}
|
|
7
|
-
export const PERMISSIONS_CONFIG = new InjectionToken('permissions config');
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9wZXJtaXNzaW9ucy9zcmMvbGliL3Blcm1pc3Npb25zLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsY0FBYyxFQUFXLE1BQU0sZUFBZSxDQUFDO0FBRXZELE1BQU0sT0FBTyxpQkFBaUI7SUFDMUIsUUFBUSxDQUFZO0lBQ3BCLGdCQUFnQixDQUF3QjtJQUN4QyxrQkFBa0IsQ0FBNkY7Q0FDbEg7QUFTRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBc0MsSUFBSSxjQUFjLENBQUMsb0JBQW9CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUm91dGVyLCBSb3V0ZXJTdGF0ZVNuYXBzaG90LCBVcmxUcmVlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtJbmplY3Rpb25Ub2tlbiwgUHJvdmlkZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbnNDb25maWcge1xuICAgIHByb3ZpZGVyPzogUHJvdmlkZXI7XG4gICAgbG9jYWxQZXJtaXNzaW9ucz86IExvY2FsUGVybWlzc2lvbnNEYXRhO1xuICAgIG9uUGVybWlzc2lvbkRlbmllZD86IChyb3V0ZXI6IFJvdXRlciwgc25hcHNob3Q6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KSA9PiBVcmxUcmVlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBlcm1pc3Npb25zT3B0aW9ucyB7XG4gICAgbW9kZT86IFBlcm1pc3Npb25zTW9kZTtcbn1cblxuZXhwb3J0IHR5cGUgUGVybWlzc2lvbnNNb2RlID0gJ2FuZCcgfCAnb3InIHwgJ25vdCc7XG5leHBvcnQgdHlwZSBMb2NhbFBlcm1pc3Npb25zRGF0YTxUIGV4dGVuZHMgc3RyaW5nID0gYW55PiA9IFJlY29yZDxzdHJpbmcsIFRbXSB8ICcqJz47XG5cbmV4cG9ydCBjb25zdCBQRVJNSVNTSU9OU19DT05GSUc6IEluamVjdGlvblRva2VuPFBlcm1pc3Npb25zQ29uZmlnPiA9IG5ldyBJbmplY3Rpb25Ub2tlbigncGVybWlzc2lvbnMgY29uZmlnJyk7XG4iXX0=
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { BbPermission } from './directives/permission.directive';
|
|
2
|
-
import { providePermissionsConfig } from './permissions.config';
|
|
3
|
-
import { NgModule } from '@angular/core';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class PermissionsModule {
|
|
6
|
-
static forRoot(config) {
|
|
7
|
-
return {
|
|
8
|
-
ngModule: PermissionsModule,
|
|
9
|
-
providers: [
|
|
10
|
-
providePermissionsConfig(config)
|
|
11
|
-
]
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: PermissionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
15
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.12", ngImport: i0, type: PermissionsModule, imports: [BbPermission], exports: [BbPermission] });
|
|
16
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: PermissionsModule });
|
|
17
|
-
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: PermissionsModule, decorators: [{
|
|
19
|
-
type: NgModule,
|
|
20
|
-
args: [{
|
|
21
|
-
imports: [BbPermission],
|
|
22
|
-
exports: [BbPermission]
|
|
23
|
-
}]
|
|
24
|
-
}] });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9wZXJtaXNzaW9ucy9zcmMvbGliL3Blcm1pc3Npb25zLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDL0QsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFzQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBTzVELE1BQU0sT0FBTyxpQkFBaUI7SUFFMUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUEwQjtRQUNyQyxPQUFPO1lBQ0gsUUFBUSxFQUFFLGlCQUFpQjtZQUMzQixTQUFTLEVBQUU7Z0JBQ1Asd0JBQXdCLENBQUMsTUFBTSxDQUFDO2FBQ25DO1NBQ0osQ0FBQztJQUNOLENBQUM7d0dBVFEsaUJBQWlCO3lHQUFqQixpQkFBaUIsWUFIaEIsWUFBWSxhQUNaLFlBQVk7eUdBRWIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUo3QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUMxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QmJQZXJtaXNzaW9ufSBmcm9tICcuL2RpcmVjdGl2ZXMvcGVybWlzc2lvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHtwcm92aWRlUGVybWlzc2lvbnNDb25maWd9IGZyb20gJy4vcGVybWlzc2lvbnMuY29uZmlnJztcbmltcG9ydCB7TW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtQZXJtaXNzaW9uc0NvbmZpZ30gZnJvbSAnLi9wZXJtaXNzaW9ucy5pbnRlcmZhY2UnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtCYlBlcm1pc3Npb25dLFxuICAgIGV4cG9ydHM6IFtCYlBlcm1pc3Npb25dXG59KVxuZXhwb3J0IGNsYXNzIFBlcm1pc3Npb25zTW9kdWxlIHtcblxuICAgIHN0YXRpYyBmb3JSb290KGNvbmZpZz86IFBlcm1pc3Npb25zQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxQZXJtaXNzaW9uc01vZHVsZT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IFBlcm1pc3Npb25zTW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAgcHJvdmlkZVBlcm1pc3Npb25zQ29uZmlnKGNvbmZpZylcbiAgICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICB9XG5cbn1cbiJdfQ==
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import { BehaviorSubject, isObservable, of, Subscription } from 'rxjs';
|
|
2
|
-
import { distinctUntilChanged, map } from 'rxjs/operators';
|
|
3
|
-
import { Injectable } from '@angular/core';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "./handlers/abstract.handler";
|
|
6
|
-
export class Permissions {
|
|
7
|
-
_handler;
|
|
8
|
-
// State.
|
|
9
|
-
_activePermissions$ = new BehaviorSubject([]);
|
|
10
|
-
// Subscriptions.
|
|
11
|
-
_subscription = new Subscription();
|
|
12
|
-
constructor(_handler) {
|
|
13
|
-
this._handler = _handler;
|
|
14
|
-
this.trackPermissions();
|
|
15
|
-
}
|
|
16
|
-
ngOnDestroy() {
|
|
17
|
-
this._subscription?.unsubscribe();
|
|
18
|
-
}
|
|
19
|
-
all() {
|
|
20
|
-
return this._activePermissions$.asObservable();
|
|
21
|
-
}
|
|
22
|
-
allSync() {
|
|
23
|
-
return this._activePermissions$.getValue();
|
|
24
|
-
}
|
|
25
|
-
has(value, options) {
|
|
26
|
-
const requiredPermissions = this.getRequiredPermissions(value);
|
|
27
|
-
if (requiredPermissions?.length <= 0) {
|
|
28
|
-
return of(false);
|
|
29
|
-
}
|
|
30
|
-
return this._activePermissions$.pipe(map(activePermissions => this.hasPermission(requiredPermissions, activePermissions, options)), distinctUntilChanged());
|
|
31
|
-
}
|
|
32
|
-
hasSync(value, options) {
|
|
33
|
-
const requiredPermissions = this.getRequiredPermissions(value);
|
|
34
|
-
if (requiredPermissions?.length <= 0) {
|
|
35
|
-
return false;
|
|
36
|
-
}
|
|
37
|
-
const activePermissions = this._activePermissions$.getValue();
|
|
38
|
-
return this.hasPermission(requiredPermissions, activePermissions, options);
|
|
39
|
-
}
|
|
40
|
-
hasPermission(requiredPermissions, activePermissions, options) {
|
|
41
|
-
const mode = options?.mode ?? 'and';
|
|
42
|
-
switch (mode) {
|
|
43
|
-
case 'or':
|
|
44
|
-
return this.verifyModeOr(requiredPermissions, activePermissions);
|
|
45
|
-
case 'not':
|
|
46
|
-
return this.verifyModeNot(requiredPermissions, activePermissions);
|
|
47
|
-
case 'and':
|
|
48
|
-
default:
|
|
49
|
-
return this.verifyModeAnd(requiredPermissions, activePermissions);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
verifyModeAnd(permissions, activePermissions) {
|
|
53
|
-
for (const permission of permissions) {
|
|
54
|
-
const verified = activePermissions?.includes(permission);
|
|
55
|
-
if (!verified) {
|
|
56
|
-
return false;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
return true;
|
|
60
|
-
}
|
|
61
|
-
verifyModeNot(permissions, activePermissions) {
|
|
62
|
-
for (const permission of permissions) {
|
|
63
|
-
if (activePermissions.includes(permission)) {
|
|
64
|
-
return false;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
return true;
|
|
68
|
-
}
|
|
69
|
-
verifyModeOr(permissions, activePermissions) {
|
|
70
|
-
for (const permission of permissions) {
|
|
71
|
-
const verified = activePermissions?.includes(permission);
|
|
72
|
-
if (verified) {
|
|
73
|
-
return true;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
return false;
|
|
77
|
-
}
|
|
78
|
-
getRequiredPermissions(value) {
|
|
79
|
-
return Array.isArray(value)
|
|
80
|
-
? value
|
|
81
|
-
: [value];
|
|
82
|
-
}
|
|
83
|
-
trackPermissions() {
|
|
84
|
-
const data = this._handler.get();
|
|
85
|
-
const permissions$ = isObservable(data) ? data : of(data);
|
|
86
|
-
const subscription = permissions$.subscribe(permissions => {
|
|
87
|
-
this._activePermissions$.next(permissions ?? []);
|
|
88
|
-
});
|
|
89
|
-
this._subscription.add(subscription);
|
|
90
|
-
}
|
|
91
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: Permissions, deps: [{ token: i1.PermissionsHandler }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
92
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: Permissions, providedIn: 'root' });
|
|
93
|
-
}
|
|
94
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: Permissions, decorators: [{
|
|
95
|
-
type: Injectable,
|
|
96
|
-
args: [{
|
|
97
|
-
providedIn: 'root'
|
|
98
|
-
}]
|
|
99
|
-
}], ctorParameters: () => [{ type: i1.PermissionsHandler }] });
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vcGVybWlzc2lvbnMvc3JjL2xpYi9wZXJtaXNzaW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFHckUsT0FBTyxFQUFDLG9CQUFvQixFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7OztBQUtwRCxNQUFNLE9BQU8sV0FBVztJQVFBO0lBTnBCLFNBQVM7SUFDRCxtQkFBbUIsR0FBRyxJQUFJLGVBQWUsQ0FBVyxFQUFFLENBQUMsQ0FBQztJQUVoRSxpQkFBaUI7SUFDVCxhQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUUzQyxZQUFvQixRQUE0QjtRQUE1QixhQUFRLEdBQVIsUUFBUSxDQUFvQjtRQUM1QyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELEdBQUc7UUFDQyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0lBRUQsT0FBTztRQUNILE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFRCxHQUFHLENBQUMsS0FBd0IsRUFBRSxPQUE0QjtRQUN0RCxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvRCxJQUFJLG1CQUFtQixFQUFFLE1BQU0sSUFBSSxDQUFDLEVBQUUs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R0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTFELE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDdEQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLENBQUM7UUFDckQsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN6QyxDQUFDO3dHQXpHUSxXQUFXOzRHQUFYLFdBQVcsY0FGUixNQUFNOzs0RkFFVCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBpc09ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtQZXJtaXNzaW9uc0hhbmRsZXJ9IGZyb20gJy4vaGFuZGxlcnMvYWJzdHJhY3QuaGFuZGxlcic7XG5pbXBvcnQge1Blcm1pc3Npb25zT3B0aW9uc30gZnJvbSAnLi9wZXJtaXNzaW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHtkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0luamVjdGFibGUsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbnMgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gICAgLy8gU3RhdGUuXG4gICAgcHJpdmF0ZSBfYWN0aXZlUGVybWlzc2lvbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmdbXT4oW10pO1xuXG4gICAgLy8gU3Vic2NyaXB0aW9ucy5cbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9oYW5kbGVyOiBQZXJtaXNzaW9uc0hhbmRsZXIpIHtcbiAgICAgICAgdGhpcy50cmFja1Blcm1pc3Npb25zKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBhbGwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hY3RpdmVQZXJtaXNzaW9ucyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgYWxsU3luYygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVBlcm1pc3Npb25zJC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIGhhcyh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wdGlvbnM/OiBQZXJtaXNzaW9uc09wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcmVxdWlyZWRQZXJtaXNzaW9ucyA9IHRoaXMuZ2V0UmVxdWlyZWRQZXJtaXNzaW9ucyh2YWx1ZSk7XG4gICAgICAgIGlmIChyZXF1aXJlZFBlcm1pc3Npb25zPy5sZW5ndGggPD0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9hY3RpdmVQZXJtaXNzaW9ucyQucGlwZShcbiAgICAgICAgICAgIG1hcChhY3RpdmVQZXJtaXNzaW9ucyA9PiB0aGlzLmhhc1Blcm1pc3Npb24ocmVxdWlyZWRQZXJtaXNzaW9ucywgYWN0aXZlUGVybWlzc2lvbnMsIG9wdGlvbnMpKSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBoYXNTeW5jKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3B0aW9ucz86IFBlcm1pc3Npb25zT3B0aW9ucykge1xuICAgICAgICBjb25zdCByZXF1aXJlZFBlcm1pc3Npb25zID0gdGhpcy5nZXRSZXF1aXJlZFBlcm1pc3Npb25zKHZhbHVlKTtcbiAgICAgICAgaWYgKHJlcXVpcmVkUGVybWlzc2lvbnM/Lmxlbmd0aCA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhY3RpdmVQZXJtaXNzaW9ucyA9IHRoaXMuX2FjdGl2ZVBlcm1pc3Npb25zJC5nZXRWYWx1ZSgpO1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNQZXJtaXNzaW9uKHJlcXVpcmVkUGVybWlzc2lvbnMsIGFjdGl2ZVBlcm1pc3Npb25zLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhc1Blcm1pc3Npb24ocmVxdWlyZWRQZXJtaXNzaW9uczogc3RyaW5nW10sIGFjdGl2ZVBlcm1pc3Npb25zOiBzdHJpbmdbXSwgb3B0aW9ucz86IFBlcm1pc3Npb25zT3B0aW9ucykge1xuICAgICAgICBjb25zdCBtb2RlID0gb3B0aW9ucz8ubW9kZSA/PyAnYW5kJztcbiAgICAgICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICAgICAgICBjYXNlICdvcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudmVyaWZ5TW9kZU9yKHJlcXVpcmVkUGVybWlzc2lvbnMsIGFjdGl2ZVBlcm1pc3Npb25zKTtcbiAgICAgICAgICAgIGNhc2UgJ25vdCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudmVyaWZ5TW9kZU5vdChyZXF1aXJlZFBlcm1pc3Npb25zLCBhY3RpdmVQZXJtaXNzaW9ucyk7XG4gICAgICAgICAgICBjYXNlICdhbmQnOlxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy52ZXJpZnlNb2RlQW5kKHJlcXVpcmVkUGVybWlzc2lvbnMsIGFjdGl2ZVBlcm1pc3Npb25zKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdmVyaWZ5TW9kZUFuZChwZXJtaXNzaW9uczogc3RyaW5nW10sIGFjdGl2ZVBlcm1pc3Npb25zOiBzdHJpbmdbXSkge1xuICAgICAgICBmb3IgKGNvbnN0IHBlcm1pc3Npb24gb2YgcGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IHZlcmlmaWVkID0gYWN0aXZlUGVybWlzc2lvbnM/LmluY2x1ZGVzKHBlcm1pc3Npb24pO1xuICAgICAgICAgICAgaWYgKCF2ZXJpZmllZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmVyaWZ5TW9kZU5vdChwZXJtaXNzaW9uczogc3RyaW5nW10sIGFjdGl2ZVBlcm1pc3Npb25zOiBzdHJpbmdbXSkge1xuICAgICAgICBmb3IgKGNvbnN0IHBlcm1pc3Npb24gb2YgcGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIGlmIChhY3RpdmVQZXJtaXNzaW9ucy5pbmNsdWRlcyhwZXJtaXNzaW9uKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmVyaWZ5TW9kZU9yKHBlcm1pc3Npb25zOiBzdHJpbmdbXSwgYWN0aXZlUGVybWlzc2lvbnM6IHN0cmluZ1tdKSB7XG4gICAgICAgIGZvciAoY29uc3QgcGVybWlzc2lvbiBvZiBwZXJtaXNzaW9ucykge1xuICAgICAgICAgICAgY29uc3QgdmVyaWZpZWQgPSBhY3RpdmVQZXJtaXNzaW9ucz8uaW5jbHVkZXMocGVybWlzc2lvbik7XG4gICAgICAgICAgICBpZiAodmVyaWZpZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFJlcXVpcmVkUGVybWlzc2lvbnModmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKSB7XG4gICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKVxuICAgICAgICAgICAgPyB2YWx1ZVxuICAgICAgICAgICAgOiBbdmFsdWVdO1xuICAgIH1cblxuICAgIHByaXZhdGUgdHJhY2tQZXJtaXNzaW9ucygpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuX2hhbmRsZXIuZ2V0KCk7XG4gICAgICAgIGNvbnN0IHBlcm1pc3Npb25zJCA9IGlzT2JzZXJ2YWJsZShkYXRhKSA/IGRhdGEgOiBvZihkYXRhKTtcblxuICAgICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSBwZXJtaXNzaW9ucyQuc3Vic2NyaWJlKHBlcm1pc3Npb25zID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2FjdGl2ZVBlcm1pc3Npb25zJC5uZXh0KHBlcm1pc3Npb25zID8/IFtdKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoc3Vic2NyaXB0aW9uKTtcbiAgICB9XG5cbn1cbiJdfQ==
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export * from './lib/handlers/abstract.handler';
|
|
2
|
-
export * from './lib/handlers/local.handler';
|
|
3
|
-
export * from './lib/directives/permission.directive';
|
|
4
|
-
export * from './lib/guards/permission.guard';
|
|
5
|
-
export * from './lib/permissions.interface';
|
|
6
|
-
export * from './lib/permissions.service';
|
|
7
|
-
export * from './lib/permissions.config';
|
|
8
|
-
export * from './lib/permissions.module';
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vcGVybWlzc2lvbnMvc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDhCQUE4QixDQUFDO0FBRTdDLGNBQWMsdUNBQXVDLENBQUM7QUFFdEQsY0FBYywrQkFBK0IsQ0FBQztBQUU5QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvaGFuZGxlcnMvYWJzdHJhY3QuaGFuZGxlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9oYW5kbGVycy9sb2NhbC5oYW5kbGVyJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9wZXJtaXNzaW9uLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2d1YXJkcy9wZXJtaXNzaW9uLmd1YXJkJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGVybWlzc2lvbnMuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Blcm1pc3Npb25zLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGVybWlzc2lvbnMuY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Blcm1pc3Npb25zLm1vZHVsZSc7XG4iXX0=
|
package/esm2022/public_api.mjs
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Public API Surface of bb-foundation
|
|
3
|
-
*/
|
|
4
|
-
export * from './lib/core/services/image-converter.service';
|
|
5
|
-
export * from './lib/core/services/file-loader.service';
|
|
6
|
-
export * from './lib/core/services/files.service';
|
|
7
|
-
export * from './lib/core/services/languages.service';
|
|
8
|
-
export * from './lib/core/services/network.service';
|
|
9
|
-
export * from './lib/core/services/patch.service';
|
|
10
|
-
export * from './lib/core/services/exif.service';
|
|
11
|
-
export * from './lib/core/tokens/base-url.token';
|
|
12
|
-
export * from './lib/core/tokens/accept-language.token';
|
|
13
|
-
export * from './lib/core/tokens/cookie.token';
|
|
14
|
-
export * from './lib/core/tokens/window.token';
|
|
15
|
-
export * from './lib/core/tokens/navigator.token';
|
|
16
|
-
export * from './lib/core/tokens/location.token';
|
|
17
|
-
export * from './lib/core/tokens/global-focus-mode.token';
|
|
18
|
-
export * from './lib/core/miscellaneous/regex';
|
|
19
|
-
export * from './lib/core/miscellaneous/validator';
|
|
20
|
-
export * from './lib/core/miscellaneous/coercion';
|
|
21
|
-
export * from './lib/core/functions/date.utils';
|
|
22
|
-
export * from './lib/core/functions/password.utils';
|
|
23
|
-
export * from './lib/core/functions/array.utils';
|
|
24
|
-
export * from './lib/core/functions/route-cache.utils';
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGtDQUFrQyxDQUFDO0FBRWpELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsMkNBQTJDLENBQUM7QUFFMUQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsbUNBQW1DLENBQUM7QUFFbEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx3Q0FBd0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgYmItZm91bmRhdGlvblxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvc2VydmljZXMvaW1hZ2UtY29udmVydGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS9zZXJ2aWNlcy9maWxlLWxvYWRlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvc2VydmljZXMvZmlsZXMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlL3NlcnZpY2VzL2xhbmd1YWdlcy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvc2VydmljZXMvbmV0d29yay5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvc2VydmljZXMvcGF0Y2guc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlL3NlcnZpY2VzL2V4aWYuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvdG9rZW5zL2Jhc2UtdXJsLnRva2VuJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvdG9rZW5zL2FjY2VwdC1sYW5ndWFnZS50b2tlbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlL3Rva2Vucy9jb29raWUudG9rZW4nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS90b2tlbnMvd2luZG93LnRva2VuJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvdG9rZW5zL25hdmlnYXRvci50b2tlbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlL3Rva2Vucy9sb2NhdGlvbi50b2tlbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlL3Rva2Vucy9nbG9iYWwtZm9jdXMtbW9kZS50b2tlbic7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvbWlzY2VsbGFuZW91cy9yZWdleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlL21pc2NlbGxhbmVvdXMvdmFsaWRhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvbWlzY2VsbGFuZW91cy9jb2VyY2lvbic7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvZnVuY3Rpb25zL2RhdGUudXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS9mdW5jdGlvbnMvcGFzc3dvcmQudXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS9mdW5jdGlvbnMvYXJyYXkudXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS9mdW5jdGlvbnMvcm91dGUtY2FjaGUudXRpbHMnO1xuIl19
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public_api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhdm9iaXQtYmItZm91bmRhdGlvbi1yZWNhcHRjaGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL3JlY2FwdGNoYS9zcmMvYnJhdm9iaXQtYmItZm91bmRhdGlvbi1yZWNhcHRjaGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
|