@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,53 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostListener, inject, Output, Renderer2, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { firstValueFrom, fromEvent, Subscription, takeUntil, timer } from 'rxjs';
|
|
3
|
-
import { DIALOG_CONFIG } from '../dialog.interfaces';
|
|
4
|
-
import { filter, switchMap } from 'rxjs/operators';
|
|
5
|
-
import { DOCUMENT } from '@angular/common';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export class BbDialogOverlay {
|
|
8
|
-
// Dependencies.
|
|
9
|
-
_config = inject(DIALOG_CONFIG, { optional: true });
|
|
10
|
-
_renderer = inject(Renderer2);
|
|
11
|
-
_elementRef = inject(ElementRef);
|
|
12
|
-
_document = inject(DOCUMENT);
|
|
13
|
-
// Outputs.
|
|
14
|
-
closeRequested = new EventEmitter();
|
|
15
|
-
// Subscriptions.
|
|
16
|
-
_subscription = new Subscription();
|
|
17
|
-
ngOnInit() {
|
|
18
|
-
this.handleOverlayClicks();
|
|
19
|
-
}
|
|
20
|
-
ngOnDestroy() {
|
|
21
|
-
this._subscription?.unsubscribe();
|
|
22
|
-
}
|
|
23
|
-
onKeyEvent(event) {
|
|
24
|
-
if (event?.key !== 'Escape') {
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
this.closeRequested.emit();
|
|
28
|
-
}
|
|
29
|
-
async close() {
|
|
30
|
-
this._renderer.addClass(this._elementRef.nativeElement, 'leaving');
|
|
31
|
-
const timer$ = timer(this._config?.animationMs ?? 240);
|
|
32
|
-
return firstValueFrom(timer$);
|
|
33
|
-
}
|
|
34
|
-
handleOverlayClicks() {
|
|
35
|
-
const element = this._elementRef.nativeElement ?? null;
|
|
36
|
-
const subscription = fromEvent(element, 'pointerdown').pipe(filter(event => event?.target === element), switchMap(() => fromEvent(this._document, 'pointerup').pipe(filter((event) => event?.target === element), takeUntil(fromEvent(this._document, 'pointermove'))))).subscribe(() => {
|
|
37
|
-
this.closeRequested.emit();
|
|
38
|
-
});
|
|
39
|
-
this._subscription.add(subscription);
|
|
40
|
-
}
|
|
41
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbDialogOverlay, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
42
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: BbDialogOverlay, isStandalone: true, selector: "bb-dialog-overlay", outputs: { closeRequested: "closeRequested" }, host: { listeners: { "window:keyup": "onKeyEvent($event)" }, classAttribute: "bb-dialog-overlay" }, ngImport: i0, template: "<ng-content select=\"[bb-dialog-modal]\"></ng-content>\n", styles: [".bb-dialog-overlay{inset:0;display:flex;z-index:1000;position:fixed;padding:1.5rem;flex-direction:column;will-change:background-color;background-color:#1119;animation:dialogOverlayEntering .24s cubic-bezier(0,0,.2,1) forwards}.bb-dialog-overlay.leaving{animation:dialogOverlayLeaving .24s cubic-bezier(0,0,.2,1) forwards}.bb-dialog-overlay.leaving .bb-dialog-modal{animation:dialogModalLeaving .24s cubic-bezier(0,0,.2,1) forwards}@keyframes dialogOverlayEntering{0%{background-color:transparent}to{background-color:#1119}}@keyframes dialogOverlayLeaving{to{background-color:transparent}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
43
|
-
}
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbDialogOverlay, decorators: [{
|
|
45
|
-
type: Component,
|
|
46
|
-
args: [{ selector: 'bb-dialog-overlay', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'class': 'bb-dialog-overlay' }, preserveWhitespaces: false, standalone: true, template: "<ng-content select=\"[bb-dialog-modal]\"></ng-content>\n", styles: [".bb-dialog-overlay{inset:0;display:flex;z-index:1000;position:fixed;padding:1.5rem;flex-direction:column;will-change:background-color;background-color:#1119;animation:dialogOverlayEntering .24s cubic-bezier(0,0,.2,1) forwards}.bb-dialog-overlay.leaving{animation:dialogOverlayLeaving .24s cubic-bezier(0,0,.2,1) forwards}.bb-dialog-overlay.leaving .bb-dialog-modal{animation:dialogModalLeaving .24s cubic-bezier(0,0,.2,1) forwards}@keyframes dialogOverlayEntering{0%{background-color:transparent}to{background-color:#1119}}@keyframes dialogOverlayLeaving{to{background-color:transparent}}\n"] }]
|
|
47
|
-
}], propDecorators: { closeRequested: [{
|
|
48
|
-
type: Output
|
|
49
|
-
}], onKeyEvent: [{
|
|
50
|
-
type: HostListener,
|
|
51
|
-
args: ['window:keyup', ['$event']]
|
|
52
|
-
}] } });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLW92ZXJsYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9kaWFsb2cvc3JjL2xpYi9kaWFsb2ctb3ZlcmxheS9kaWFsb2ctb3ZlcmxheS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2RpYWxvZy9zcmMvbGliL2RpYWxvZy1vdmVybGF5L2RpYWxvZy1vdmVybGF5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzFLLE9BQU8sRUFBQyxjQUFjLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQy9FLE9BQU8sRUFBQyxhQUFhLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7QUFZekMsTUFBTSxPQUFPLGVBQWU7SUFFeEIsZ0JBQWdCO0lBQ0MsT0FBTyxHQUFrQixNQUFNLENBQUMsYUFBYSxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7SUFDakUsU0FBUyxHQUFjLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6QyxXQUFXLEdBQWUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdDLFNBQVMsR0FBYSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFeEQsV0FBVztJQUNELGNBQWMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBRXBELGlCQUFpQjtJQUNULGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRTNDLFFBQVE7UUFDSixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUdELFVBQVUsQ0FBQyxLQUFvQjtRQUMzQixJQUFJLEtBQUssRUFBRSxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDMUIsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSztRQUNQLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFdBQVcsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUN2RCxPQUFPLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU8sbUJBQW1CO1FBQ3ZCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQztRQUN2RCxNQUFNLFlBQVksR0FBRyxTQUFTLENBQWUsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FDckUsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sS0FBSyxPQUFPLENBQUMsRUFDMUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUNYLFNBQVMsQ0FBZSxJQUFJLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDckQsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxLQUFLLE9BQU8sQ0FBQyxFQUM1QyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FDdEQsQ0FDSixDQUNKLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNiLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN6QyxDQUFDO3dHQWxEUSxlQUFlOzRGQUFmLGVBQWUsZ09DaEI1QiwwREFDQTs7NEZEZWEsZUFBZTtrQkFWM0IsU0FBUzsrQkFDSSxtQkFBbUIsbUJBR1osdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQixFQUFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBQyx1QkFDZixLQUFLLGNBQ2QsSUFBSTs4QkFXTixjQUFjO3NCQUF2QixNQUFNO2dCQWNQLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxjQUFjLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBpbmplY3QsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFJlbmRlcmVyMiwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtmaXJzdFZhbHVlRnJvbSwgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24sIHRha2VVbnRpbCwgdGltZXJ9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtESUFMT0dfQ09ORklHLCBEaWFsb2dDb25maWd9IGZyb20gJy4uL2RpYWxvZy5pbnRlcmZhY2VzJztcbmltcG9ydCB7ZmlsdGVyLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYmItZGlhbG9nLW92ZXJsYXknLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kaWFsb2ctb3ZlcmxheS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZGlhbG9nLW92ZXJsYXkuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHsnY2xhc3MnOiAnYmItZGlhbG9nLW92ZXJsYXknfSxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEJiRGlhbG9nT3ZlcmxheSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAgIC8vIERlcGVuZGVuY2llcy5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jb25maWc/OiBEaWFsb2dDb25maWcgPSBpbmplY3QoRElBTE9HX0NPTkZJRywge29wdGlvbmFsOiB0cnVlfSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfcmVuZGVyZXI6IFJlbmRlcmVyMiA9IGluamVjdChSZW5kZXJlcjIpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfZG9jdW1lbnQ6IERvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcblxuICAgIC8vIE91dHB1dHMuXG4gICAgQE91dHB1dCgpIGNsb3NlUmVxdWVzdGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLy8gU3Vic2NyaXB0aW9ucy5cbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVPdmVybGF5Q2xpY2tzKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5dXAnLCBbJyRldmVudCddKVxuICAgIG9uS2V5RXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50Py5rZXkgIT09ICdFc2NhcGUnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jbG9zZVJlcXVlc3RlZC5lbWl0KCk7XG4gICAgfVxuXG4gICAgYXN5bmMgY2xvc2UoKSB7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2xlYXZpbmcnKTtcbiAgICAgICAgY29uc3QgdGltZXIkID0gdGltZXIodGhpcy5fY29uZmlnPy5hbmltYXRpb25NcyA/PyAyNDApO1xuICAgICAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGltZXIkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZU92ZXJsYXlDbGlja3MoKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgPz8gbnVsbDtcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50PFBvaW50ZXJFdmVudD4oZWxlbWVudCwgJ3BvaW50ZXJkb3duJykucGlwZShcbiAgICAgICAgICAgIGZpbHRlcihldmVudCA9PiBldmVudD8udGFyZ2V0ID09PSBlbGVtZW50KSxcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICAgICAgICAgIGZyb21FdmVudDxQb2ludGVyRXZlbnQ+KHRoaXMuX2RvY3VtZW50LCAncG9pbnRlcnVwJykucGlwZShcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQ/LnRhcmdldCA9PT0gZWxlbWVudCksXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbChmcm9tRXZlbnQodGhpcy5fZG9jdW1lbnQsICdwb2ludGVybW92ZScpKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jbG9zZVJlcXVlc3RlZC5lbWl0KCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKHN1YnNjcmlwdGlvbik7XG4gICAgfVxuXG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJbYmItZGlhbG9nLW1vZGFsXVwiPjwvbmctY29udGVudD5cbiJdfQ==
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { makeEnvironmentProviders } from '@angular/core';
|
|
2
|
-
import { DIALOG_CONFIG } from './dialog.interfaces';
|
|
3
|
-
export function provideDialogConfig(config) {
|
|
4
|
-
return makeEnvironmentProviders([
|
|
5
|
-
{ provide: DIALOG_CONFIG, useValue: config ?? {} }
|
|
6
|
-
]);
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZGlhbG9nL3NyYy9saWIvZGlhbG9nLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLHdCQUF3QixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBQyxhQUFhLEVBQWUsTUFBTSxxQkFBcUIsQ0FBQztBQUVoRSxNQUFNLFVBQVUsbUJBQW1CLENBQUMsTUFBcUI7SUFDckQsT0FBTyx3QkFBd0IsQ0FBQztRQUM1QixFQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU0sSUFBSSxFQUFFLEVBQUM7S0FDbkQsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RW52aXJvbm1lbnRQcm92aWRlcnMsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVyc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RJQUxPR19DT05GSUcsIERpYWxvZ0NvbmZpZ30gZnJvbSAnLi9kaWFsb2cuaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlRGlhbG9nQ29uZmlnKGNvbmZpZz86IERpYWxvZ0NvbmZpZyk6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICAgICAge3Byb3ZpZGU6IERJQUxPR19DT05GSUcsIHVzZVZhbHVlOiBjb25maWcgPz8ge319XG4gICAgXSk7XG59XG4iXX0=
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Directive } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class BbDialogInsertion {
|
|
4
|
-
viewContainerRef;
|
|
5
|
-
constructor(viewContainerRef) {
|
|
6
|
-
this.viewContainerRef = viewContainerRef;
|
|
7
|
-
}
|
|
8
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbDialogInsertion, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
9
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.12", type: BbDialogInsertion, isStandalone: true, selector: "[bbDialogInsertion]", ngImport: i0 });
|
|
10
|
-
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbDialogInsertion, decorators: [{
|
|
12
|
-
type: Directive,
|
|
13
|
-
args: [{
|
|
14
|
-
selector: '[bbDialogInsertion]',
|
|
15
|
-
standalone: true
|
|
16
|
-
}]
|
|
17
|
-
}], ctorParameters: () => [{ type: i0.ViewContainerRef }] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmluc2VydGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZGlhbG9nL3NyYy9saWIvZGlhbG9nLmluc2VydGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFtQixNQUFNLGVBQWUsQ0FBQzs7QUFNMUQsTUFBTSxPQUFPLGlCQUFpQjtJQUVQO0lBQW5CLFlBQW1CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO0lBQ3JELENBQUM7d0dBSFEsaUJBQWlCOzRGQUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBSjdCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tiYkRpYWxvZ0luc2VydGlvbl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQmJEaWFsb2dJbnNlcnRpb24ge1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHtcbiAgICB9XG5cbn1cbiJdfQ==
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
export class BbDialogConfig {
|
|
3
|
-
data;
|
|
4
|
-
}
|
|
5
|
-
export class DialogConfig {
|
|
6
|
-
animationMs;
|
|
7
|
-
}
|
|
8
|
-
export const DIALOG_CONFIG = new InjectionToken('dialog config');
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmludGVyZmFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2RpYWxvZy9zcmMvbGliL2RpYWxvZy5pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFN0MsTUFBTSxPQUFPLGNBQWM7SUFDdkIsSUFBSSxDQUFLO0NBQ1o7QUFVRCxNQUFNLE9BQU8sWUFBWTtJQUNyQixXQUFXLENBQVU7Q0FDeEI7QUFFRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQWlDLElBQUksY0FBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3Rpb25Ub2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBCYkRpYWxvZ0NvbmZpZzxUID0gYW55PiB7XG4gICAgZGF0YT86IFQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlhbG9nQ29uZmlybU9wdGlvbnMge1xuICAgIGNhbmNlbEJ1dHRvbkNsYXNzOiBzdHJpbmc7XG4gICAgY2FuY2VsQnV0dG9uVGV4dDogc3RyaW5nO1xuICAgIGNvbmZpcm1CdXR0b25UZXh0OiBzdHJpbmc7XG4gICAgY29uZmlybUJ1dHRvbkNsYXNzOiBzdHJpbmc7XG4gICAgd2lkdGg6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIERpYWxvZ0NvbmZpZyB7XG4gICAgYW5pbWF0aW9uTXM/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjb25zdCBESUFMT0dfQ09ORklHOiBJbmplY3Rpb25Ub2tlbjxEaWFsb2dDb25maWc+ID0gbmV3IEluamVjdGlvblRva2VuKCdkaWFsb2cgY29uZmlnJyk7XG4iXX0=
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { BbDialogContainer } from './dialog-container/dialog-container.component';
|
|
2
|
-
import { BbDialogConfirm } from './dialog-confirm/dialog-confirm.component';
|
|
3
|
-
import { BbDialogActions } from './dialog-actions/dialog-actions.component';
|
|
4
|
-
import { BbDialogOverlay } from './dialog-overlay/dialog-overlay.component';
|
|
5
|
-
import { BbDialogHeader } from './dialog-header/dialog-header.component';
|
|
6
|
-
import { BbDialogModal } from './dialog-modal/dialog-modal.component';
|
|
7
|
-
import { BbDialogLink } from './dialog-link/dialog-link.component';
|
|
8
|
-
import { NgModule } from '@angular/core';
|
|
9
|
-
import { BbConfirm } from './directives/confirm.directive';
|
|
10
|
-
import { BbDialogInsertion } from './dialog.insertion';
|
|
11
|
-
import { provideDialogConfig } from './dialog.config';
|
|
12
|
-
import * as i0 from "@angular/core";
|
|
13
|
-
export class DialogModule {
|
|
14
|
-
static forRoot(config) {
|
|
15
|
-
return {
|
|
16
|
-
ngModule: DialogModule,
|
|
17
|
-
providers: [
|
|
18
|
-
provideDialogConfig(config)
|
|
19
|
-
]
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: DialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
23
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.12", ngImport: i0, type: DialogModule, imports: [BbDialogContainer,
|
|
24
|
-
BbDialogOverlay,
|
|
25
|
-
BbDialogModal,
|
|
26
|
-
BbDialogHeader,
|
|
27
|
-
BbDialogLink,
|
|
28
|
-
BbDialogActions,
|
|
29
|
-
BbDialogConfirm,
|
|
30
|
-
BbDialogInsertion,
|
|
31
|
-
BbConfirm], exports: [BbDialogOverlay,
|
|
32
|
-
BbDialogModal,
|
|
33
|
-
BbDialogHeader,
|
|
34
|
-
BbDialogLink,
|
|
35
|
-
BbDialogActions,
|
|
36
|
-
BbConfirm] });
|
|
37
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: DialogModule, imports: [BbDialogActions,
|
|
38
|
-
BbDialogConfirm] });
|
|
39
|
-
}
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: DialogModule, decorators: [{
|
|
41
|
-
type: NgModule,
|
|
42
|
-
args: [{
|
|
43
|
-
imports: [
|
|
44
|
-
BbDialogContainer,
|
|
45
|
-
BbDialogOverlay,
|
|
46
|
-
BbDialogModal,
|
|
47
|
-
BbDialogHeader,
|
|
48
|
-
BbDialogLink,
|
|
49
|
-
BbDialogActions,
|
|
50
|
-
BbDialogConfirm,
|
|
51
|
-
BbDialogInsertion,
|
|
52
|
-
BbConfirm
|
|
53
|
-
],
|
|
54
|
-
exports: [
|
|
55
|
-
BbDialogOverlay,
|
|
56
|
-
BbDialogModal,
|
|
57
|
-
BbDialogHeader,
|
|
58
|
-
BbDialogLink,
|
|
59
|
-
BbDialogActions,
|
|
60
|
-
BbConfirm
|
|
61
|
-
]
|
|
62
|
-
}]
|
|
63
|
-
}] });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZGlhbG9nL3NyYy9saWIvZGlhbG9nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQUNoRixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDMUUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDdkUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRSxPQUFPLEVBQXNCLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDekQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0saUJBQWlCLENBQUM7O0FBd0JwRCxNQUFNLE9BQU8sWUFBWTtJQUVyQixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQXFCO1FBQ2hDLE9BQU87WUFDSCxRQUFRLEVBQUUsWUFBWTtZQUN0QixTQUFTLEVBQUU7Z0JBQ1AsbUJBQW1CLENBQUMsTUFBTSxDQUFDO2FBQzlCO1NBQ0osQ0FBQztJQUNOLENBQUM7d0dBVFEsWUFBWTt5R0FBWixZQUFZLFlBbkJqQixpQkFBaUI7WUFDakIsZUFBZTtZQUNmLGFBQWE7WUFDYixjQUFjO1lBQ2QsWUFBWTtZQUNaLGVBQWU7WUFDZixlQUFlO1lBQ2YsaUJBQWlCO1lBQ2pCLFNBQVMsYUFHVCxlQUFlO1lBQ2YsYUFBYTtZQUNiLGNBQWM7WUFDZCxZQUFZO1lBQ1osZUFBZTtZQUNmLFNBQVM7eUdBR0osWUFBWSxZQWRqQixlQUFlO1lBQ2YsZUFBZTs7NEZBYVYsWUFBWTtrQkFyQnhCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLGlCQUFpQjt3QkFDakIsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGNBQWM7d0JBQ2QsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixTQUFTO3FCQUNaO29CQUNELE9BQU8sRUFBRTt3QkFDTCxlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsU0FBUztxQkFDWjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QmJEaWFsb2dDb250YWluZXJ9IGZyb20gJy4vZGlhbG9nLWNvbnRhaW5lci9kaWFsb2ctY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiRGlhbG9nQ29uZmlybX0gZnJvbSAnLi9kaWFsb2ctY29uZmlybS9kaWFsb2ctY29uZmlybS5jb21wb25lbnQnO1xuaW1wb3J0IHtCYkRpYWxvZ0FjdGlvbnN9IGZyb20gJy4vZGlhbG9nLWFjdGlvbnMvZGlhbG9nLWFjdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7QmJEaWFsb2dPdmVybGF5fSBmcm9tICcuL2RpYWxvZy1vdmVybGF5L2RpYWxvZy1vdmVybGF5LmNvbXBvbmVudCc7XG5pbXBvcnQge0JiRGlhbG9nSGVhZGVyfSBmcm9tICcuL2RpYWxvZy1oZWFkZXIvZGlhbG9nLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHtCYkRpYWxvZ01vZGFsfSBmcm9tICcuL2RpYWxvZy1tb2RhbC9kaWFsb2ctbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7QmJEaWFsb2dMaW5rfSBmcm9tICcuL2RpYWxvZy1saW5rL2RpYWxvZy1saW5rLmNvbXBvbmVudCc7XG5pbXBvcnQge01vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmJDb25maXJtfSBmcm9tICcuL2RpcmVjdGl2ZXMvY29uZmlybS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtCYkRpYWxvZ0luc2VydGlvbn0gZnJvbSAnLi9kaWFsb2cuaW5zZXJ0aW9uJztcbmltcG9ydCB7cHJvdmlkZURpYWxvZ0NvbmZpZ30gZnJvbSAnLi9kaWFsb2cuY29uZmlnJztcbmltcG9ydCB7RGlhbG9nQ29uZmlnfSBmcm9tICcuL2RpYWxvZy5pbnRlcmZhY2VzJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEJiRGlhbG9nQ29udGFpbmVyLFxuICAgICAgICBCYkRpYWxvZ092ZXJsYXksXG4gICAgICAgIEJiRGlhbG9nTW9kYWwsXG4gICAgICAgIEJiRGlhbG9nSGVhZGVyLFxuICAgICAgICBCYkRpYWxvZ0xpbmssXG4gICAgICAgIEJiRGlhbG9nQWN0aW9ucyxcbiAgICAgICAgQmJEaWFsb2dDb25maXJtLFxuICAgICAgICBCYkRpYWxvZ0luc2VydGlvbixcbiAgICAgICAgQmJDb25maXJtXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIEJiRGlhbG9nT3ZlcmxheSxcbiAgICAgICAgQmJEaWFsb2dNb2RhbCxcbiAgICAgICAgQmJEaWFsb2dIZWFkZXIsXG4gICAgICAgIEJiRGlhbG9nTGluayxcbiAgICAgICAgQmJEaWFsb2dBY3Rpb25zLFxuICAgICAgICBCYkNvbmZpcm1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIERpYWxvZ01vZHVsZSB7XG5cbiAgICBzdGF0aWMgZm9yUm9vdChjb25maWc/OiBEaWFsb2dDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPERpYWxvZ01vZHVsZT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IERpYWxvZ01vZHVsZSxcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgIHByb3ZpZGVEaWFsb2dDb25maWcoY29uZmlnKVxuICAgICAgICAgICAgXVxuICAgICAgICB9O1xuICAgIH1cblxufVxuIl19
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { take } from 'rxjs/operators';
|
|
2
|
-
import { Subject } from 'rxjs';
|
|
3
|
-
export class BbDialogRef {
|
|
4
|
-
// Data.
|
|
5
|
-
_afterClosed$ = new Subject();
|
|
6
|
-
_overlayClicked$ = new Subject();
|
|
7
|
-
afterClosed = this._afterClosed$.pipe(take(1));
|
|
8
|
-
overlayClicked = this._overlayClicked$.pipe(take(1));
|
|
9
|
-
onOverlayClicked() {
|
|
10
|
-
this._overlayClicked$.next();
|
|
11
|
-
}
|
|
12
|
-
close(result) {
|
|
13
|
-
this._afterClosed$.next(result);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnJlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZGlhbG9nL3NyYy9saWIvZGlhbG9nLnJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEMsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUU3QixNQUFNLE9BQU8sV0FBVztJQUVwQixRQUFRO0lBQ1MsYUFBYSxHQUFHLElBQUksT0FBTyxFQUFLLENBQUM7SUFDakMsZ0JBQWdCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUUvQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0MsY0FBYyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFOUQsZ0JBQWdCO1FBQ1osSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBVTtRQUNaLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Q0FFSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGNsYXNzIEJiRGlhbG9nUmVmPFQgPSBhbnk+IHtcblxuICAgIC8vIERhdGEuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfYWZ0ZXJDbG9zZWQkID0gbmV3IFN1YmplY3Q8VD4oKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vdmVybGF5Q2xpY2tlZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgcmVhZG9ubHkgYWZ0ZXJDbG9zZWQgPSB0aGlzLl9hZnRlckNsb3NlZCQucGlwZSh0YWtlKDEpKTtcbiAgICByZWFkb25seSBvdmVybGF5Q2xpY2tlZCA9IHRoaXMuX292ZXJsYXlDbGlja2VkJC5waXBlKHRha2UoMSkpO1xuXG4gICAgb25PdmVybGF5Q2xpY2tlZCgpIHtcbiAgICAgICAgdGhpcy5fb3ZlcmxheUNsaWNrZWQkLm5leHQoKTtcbiAgICB9XG5cbiAgICBjbG9zZShyZXN1bHQ/OiBUKSB7XG4gICAgICAgIHRoaXMuX2FmdGVyQ2xvc2VkJC5uZXh0KHJlc3VsdCk7XG4gICAgfVxuXG59XG4iXX0=
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { createComponent, createEnvironmentInjector, Injectable } from '@angular/core';
|
|
2
|
-
import { BbDialogContainer } from './dialog-container/dialog-container.component';
|
|
3
|
-
import { BbDialogConfirm } from './dialog-confirm/dialog-confirm.component';
|
|
4
|
-
import { BbDialogConfig } from './dialog.interfaces';
|
|
5
|
-
import { BbDialogRef } from './dialog.ref';
|
|
6
|
-
import { firstValueFrom } from 'rxjs';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export class Dialog {
|
|
9
|
-
_applicationRef;
|
|
10
|
-
_environmentInjector;
|
|
11
|
-
constructor(_applicationRef, _environmentInjector) {
|
|
12
|
-
this._applicationRef = _applicationRef;
|
|
13
|
-
this._environmentInjector = _environmentInjector;
|
|
14
|
-
}
|
|
15
|
-
open(componentType, config) {
|
|
16
|
-
return this.createDialog(componentType, config);
|
|
17
|
-
}
|
|
18
|
-
async confirm(title, description, options) {
|
|
19
|
-
const dialogRef = this.open(BbDialogConfirm, {
|
|
20
|
-
data: { title, description, ...(options ?? {}) }
|
|
21
|
-
});
|
|
22
|
-
return await firstValueFrom(dialogRef.afterClosed);
|
|
23
|
-
}
|
|
24
|
-
createDialog(componentType, config) {
|
|
25
|
-
// Create a reference.
|
|
26
|
-
const dialogRef = new BbDialogRef();
|
|
27
|
-
const environmentInjector = createEnvironmentInjector([
|
|
28
|
-
{ provide: BbDialogConfig, useValue: config ?? {} },
|
|
29
|
-
{ provide: BbDialogRef, useValue: dialogRef }
|
|
30
|
-
], this._environmentInjector);
|
|
31
|
-
const dialogComponentRef = createComponent(BbDialogContainer, { environmentInjector });
|
|
32
|
-
// Attach the host view to the application.
|
|
33
|
-
this._applicationRef.attachView(dialogComponentRef.hostView);
|
|
34
|
-
try {
|
|
35
|
-
// Remove the current focus.
|
|
36
|
-
const activeElement = document.activeElement;
|
|
37
|
-
activeElement.blur();
|
|
38
|
-
// Append the element to the DOM.
|
|
39
|
-
document.body.appendChild(dialogComponentRef.location.nativeElement);
|
|
40
|
-
}
|
|
41
|
-
catch {
|
|
42
|
-
// Don't do anything, because it must've failed.
|
|
43
|
-
}
|
|
44
|
-
// Set the child component type on the component.
|
|
45
|
-
dialogComponentRef.instance.childComponentType = componentType;
|
|
46
|
-
dialogComponentRef.instance.onOverlayClicked.subscribe(() => dialogRef.onOverlayClicked());
|
|
47
|
-
// Listen for close events.
|
|
48
|
-
dialogRef.afterClosed.subscribe(async () => {
|
|
49
|
-
await dialogComponentRef?.instance?.close();
|
|
50
|
-
return this.deleteDialog(dialogComponentRef);
|
|
51
|
-
});
|
|
52
|
-
// Return the reference.
|
|
53
|
-
return dialogRef;
|
|
54
|
-
}
|
|
55
|
-
deleteDialog(dialogComponentRef) {
|
|
56
|
-
// Only continue if the dialog component ref exists.
|
|
57
|
-
if (!dialogComponentRef) {
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
// Detach the dialog.
|
|
61
|
-
this._applicationRef.detachView(dialogComponentRef.hostView);
|
|
62
|
-
// Destroy the dialog.
|
|
63
|
-
dialogComponentRef.destroy();
|
|
64
|
-
dialogComponentRef = null;
|
|
65
|
-
}
|
|
66
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: Dialog, deps: [{ token: i0.ApplicationRef }, { token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
67
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: Dialog, providedIn: 'root' });
|
|
68
|
-
}
|
|
69
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: Dialog, decorators: [{
|
|
70
|
-
type: Injectable,
|
|
71
|
-
args: [{
|
|
72
|
-
providedIn: 'root'
|
|
73
|
-
}]
|
|
74
|
-
}], ctorParameters: () => [{ type: i0.ApplicationRef }, { type: i0.EnvironmentInjector }] });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2RpYWxvZy9zcmMvbGliL2RpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBK0IsZUFBZSxFQUFFLHlCQUF5QixFQUF1QixVQUFVLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQzNKLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRSxPQUFPLEVBQUMsY0FBYyxFQUF1QixNQUFNLHFCQUFxQixDQUFDO0FBQ3pFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLE1BQU0sQ0FBQzs7QUFLcEMsTUFBTSxPQUFPLE1BQU07SUFFSztJQUNBO0lBRHBCLFlBQW9CLGVBQStCLEVBQy9CLG9CQUF5QztRQUR6QyxvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFDL0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtJQUM3RCxDQUFDO0lBRUQsSUFBSSxDQUFVLGFBQXdCLEVBQUUsTUFBdUI7UUFDM0QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFJLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFnQyxFQUFFLFdBQXNDLEVBQUUsT0FBdUM7UUFDM0gsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBVSxlQUFlLEVBQUU7WUFDbEQsSUFBSSxFQUFFLEVBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxHQUFHLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxFQUFDO1NBQ2pELENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxjQUFjLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFTyxZQUFZLENBQVUsYUFBd0IsRUFBRSxNQUF1QjtRQUMzRSxzQkFBc0I7UUFDdEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxXQUFXLEVBQUssQ0FBQztRQUN2QyxNQUFNLG1CQUFtQixHQUFHLHlCQUF5QixDQUFDO1lBQ2xELEVBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxJQUFJLEVBQUUsRUFBQztZQUNqRCxFQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBQztTQUM5QyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzlCLE1BQU0sa0JBQWtCLEdBQUcsZUFBZSxDQUFDLGlCQUFpQixFQUFFLEVBQUMsbUJBQW1CLEVBQUMsQ0FBQyxDQUFDO1FBRXJGLDJDQUEyQztRQUMzQyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU3RCxJQUFJLENBQUM7WUFDRCw0QkFBNEI7WUFDNUIsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLGFBQTRCLENBQUM7WUFDNUQsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1lBRXJCLGlDQUFpQztZQUNqQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDekUsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNMLGdEQUFnRDtRQUNwRCxDQUFDO1FBRUQsaURBQWlEO1FBQ2pELGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsR0FBRyxhQUFhLENBQUM7UUFDL0Qsa0JBQWtCLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBRTNGLDJCQUEyQjtRQUMzQixTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUN2QyxNQUFNLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUM1QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQztRQUVILHdCQUF3QjtRQUN4QixPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRU8sWUFBWSxDQUFDLGtCQUFtRDtRQUNwRSxvREFBb0Q7UUFDcEQsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDdEIsT0FBTztRQUNYLENBQUM7UUFFRCxxQkFBcUI7UUFDckIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFN0Qsc0JBQXNCO1FBQ3RCLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzdCLGtCQUFrQixHQUFHLElBQUksQ0FBQztJQUM5QixDQUFDO3dHQWxFUSxNQUFNOzRHQUFOLE1BQU0sY0FGSCxNQUFNOzs0RkFFVCxNQUFNO2tCQUhsQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXBwbGljYXRpb25SZWYsIENvbXBvbmVudFJlZiwgY3JlYXRlQ29tcG9uZW50LCBjcmVhdGVFbnZpcm9ubWVudEluamVjdG9yLCBFbnZpcm9ubWVudEluamVjdG9yLCBJbmplY3RhYmxlLCBUZW1wbGF0ZVJlZiwgVHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JiRGlhbG9nQ29udGFpbmVyfSBmcm9tICcuL2RpYWxvZy1jb250YWluZXIvZGlhbG9nLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHtCYkRpYWxvZ0NvbmZpcm19IGZyb20gJy4vZGlhbG9nLWNvbmZpcm0vZGlhbG9nLWNvbmZpcm0uY29tcG9uZW50JztcbmltcG9ydCB7QmJEaWFsb2dDb25maWcsIERpYWxvZ0NvbmZpcm1PcHRpb25zfSBmcm9tICcuL2RpYWxvZy5pbnRlcmZhY2VzJztcbmltcG9ydCB7QmJEaWFsb2dSZWZ9IGZyb20gJy4vZGlhbG9nLnJlZic7XG5pbXBvcnQge2ZpcnN0VmFsdWVGcm9tfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEaWFsb2cge1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfYXBwbGljYXRpb25SZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2Vudmlyb25tZW50SW5qZWN0b3I6IEVudmlyb25tZW50SW5qZWN0b3IpIHtcbiAgICB9XG5cbiAgICBvcGVuPFQgPSBhbnk+KGNvbXBvbmVudFR5cGU6IFR5cGU8YW55PiwgY29uZmlnPzogQmJEaWFsb2dDb25maWcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRGlhbG9nPFQ+KGNvbXBvbmVudFR5cGUsIGNvbmZpZyk7XG4gICAgfVxuXG4gICAgYXN5bmMgY29uZmlybSh0aXRsZTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiwgZGVzY3JpcHRpb246IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4sIG9wdGlvbnM/OiBQYXJ0aWFsPERpYWxvZ0NvbmZpcm1PcHRpb25zPikge1xuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLm9wZW48Ym9vbGVhbj4oQmJEaWFsb2dDb25maXJtLCB7XG4gICAgICAgICAgICBkYXRhOiB7dGl0bGUsIGRlc2NyaXB0aW9uLCAuLi4ob3B0aW9ucyA/PyB7fSl9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gYXdhaXQgZmlyc3RWYWx1ZUZyb20oZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZURpYWxvZzxUID0gYW55Pihjb21wb25lbnRUeXBlOiBUeXBlPGFueT4sIGNvbmZpZz86IEJiRGlhbG9nQ29uZmlnKSB7XG4gICAgICAgIC8vIENyZWF0ZSBhIHJlZmVyZW5jZS5cbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gbmV3IEJiRGlhbG9nUmVmPFQ+KCk7XG4gICAgICAgIGNvbnN0IGVudmlyb25tZW50SW5qZWN0b3IgPSBjcmVhdGVFbnZpcm9ubWVudEluamVjdG9yKFtcbiAgICAgICAgICAgIHtwcm92aWRlOiBCYkRpYWxvZ0NvbmZpZywgdXNlVmFsdWU6IGNvbmZpZyA/PyB7fX0sXG4gICAgICAgICAgICB7cHJvdmlkZTogQmJEaWFsb2dSZWYsIHVzZVZhbHVlOiBkaWFsb2dSZWZ9XG4gICAgICAgIF0sIHRoaXMuX2Vudmlyb25tZW50SW5qZWN0b3IpO1xuICAgICAgICBjb25zdCBkaWFsb2dDb21wb25lbnRSZWYgPSBjcmVhdGVDb21wb25lbnQoQmJEaWFsb2dDb250YWluZXIsIHtlbnZpcm9ubWVudEluamVjdG9yfSk7XG5cbiAgICAgICAgLy8gQXR0YWNoIHRoZSBob3N0IHZpZXcgdG8gdGhlIGFwcGxpY2F0aW9uLlxuICAgICAgICB0aGlzLl9hcHBsaWNhdGlvblJlZi5hdHRhY2hWaWV3KGRpYWxvZ0NvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIFJlbW92ZSB0aGUgY3VycmVudCBmb2N1cy5cbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgYWN0aXZlRWxlbWVudC5ibHVyKCk7XG5cbiAgICAgICAgICAgIC8vIEFwcGVuZCB0aGUgZWxlbWVudCB0byB0aGUgRE9NLlxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkaWFsb2dDb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgLy8gRG9uJ3QgZG8gYW55dGhpbmcsIGJlY2F1c2UgaXQgbXVzdCd2ZSBmYWlsZWQuXG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgdGhlIGNoaWxkIGNvbXBvbmVudCB0eXBlIG9uIHRoZSBjb21wb25lbnQuXG4gICAgICAgIGRpYWxvZ0NvbXBvbmVudFJlZi5pbnN0YW5jZS5jaGlsZENvbXBvbmVudFR5cGUgPSBjb21wb25lbnRUeXBlO1xuICAgICAgICBkaWFsb2dDb21wb25lbnRSZWYuaW5zdGFuY2Uub25PdmVybGF5Q2xpY2tlZC5zdWJzY3JpYmUoKCkgPT4gZGlhbG9nUmVmLm9uT3ZlcmxheUNsaWNrZWQoKSk7XG5cbiAgICAgICAgLy8gTGlzdGVuIGZvciBjbG9zZSBldmVudHMuXG4gICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZC5zdWJzY3JpYmUoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgYXdhaXQgZGlhbG9nQ29tcG9uZW50UmVmPy5pbnN0YW5jZT8uY2xvc2UoKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRlbGV0ZURpYWxvZyhkaWFsb2dDb21wb25lbnRSZWYpO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBSZXR1cm4gdGhlIHJlZmVyZW5jZS5cbiAgICAgICAgcmV0dXJuIGRpYWxvZ1JlZjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlbGV0ZURpYWxvZyhkaWFsb2dDb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxCYkRpYWxvZ0NvbnRhaW5lcj4pIHtcbiAgICAgICAgLy8gT25seSBjb250aW51ZSBpZiB0aGUgZGlhbG9nIGNvbXBvbmVudCByZWYgZXhpc3RzLlxuICAgICAgICBpZiAoIWRpYWxvZ0NvbXBvbmVudFJlZikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRGV0YWNoIHRoZSBkaWFsb2cuXG4gICAgICAgIHRoaXMuX2FwcGxpY2F0aW9uUmVmLmRldGFjaFZpZXcoZGlhbG9nQ29tcG9uZW50UmVmLmhvc3RWaWV3KTtcblxuICAgICAgICAvLyBEZXN0cm95IHRoZSBkaWFsb2cuXG4gICAgICAgIGRpYWxvZ0NvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICAgIGRpYWxvZ0NvbXBvbmVudFJlZiA9IG51bGw7XG4gICAgfVxuXG59XG4iXX0=
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { Directive, EventEmitter, HostListener, inject, Input, Output } from '@angular/core';
|
|
2
|
-
import { Dialog } from '../dialog.service';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class BbConfirm {
|
|
5
|
-
// Dependencies.
|
|
6
|
-
_dialog = inject(Dialog);
|
|
7
|
-
// Inputs.
|
|
8
|
-
bbConfirmTitle = 'dialog.default_title';
|
|
9
|
-
bbConfirmDescription = 'dialog.default_description';
|
|
10
|
-
bbConfirmButtonText = null;
|
|
11
|
-
bbCancelButtonText = null;
|
|
12
|
-
// Outputs.
|
|
13
|
-
confirm = new EventEmitter();
|
|
14
|
-
async onClick(event) {
|
|
15
|
-
const confirmed = await this._dialog.confirm(this.bbConfirmTitle, this.bbConfirmDescription, {
|
|
16
|
-
confirmButtonText: this.bbConfirmButtonText,
|
|
17
|
-
cancelButtonText: this.bbCancelButtonText
|
|
18
|
-
});
|
|
19
|
-
if (!confirmed) {
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
this.confirm.emit(event);
|
|
23
|
-
}
|
|
24
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbConfirm, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
25
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.12", type: BbConfirm, isStandalone: true, selector: "[bbConfirm]", inputs: { bbConfirmTitle: "bbConfirmTitle", bbConfirmDescription: "bbConfirmDescription", bbConfirmButtonText: "bbConfirmButtonText", bbCancelButtonText: "bbCancelButtonText" }, outputs: { confirm: "bbConfirm" }, host: { listeners: { "click": "onClick($event)" } }, ngImport: i0 });
|
|
26
|
-
}
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbConfirm, decorators: [{
|
|
28
|
-
type: Directive,
|
|
29
|
-
args: [{
|
|
30
|
-
selector: '[bbConfirm]',
|
|
31
|
-
standalone: true
|
|
32
|
-
}]
|
|
33
|
-
}], propDecorators: { bbConfirmTitle: [{
|
|
34
|
-
type: Input
|
|
35
|
-
}], bbConfirmDescription: [{
|
|
36
|
-
type: Input
|
|
37
|
-
}], bbConfirmButtonText: [{
|
|
38
|
-
type: Input
|
|
39
|
-
}], bbCancelButtonText: [{
|
|
40
|
-
type: Input
|
|
41
|
-
}], confirm: [{
|
|
42
|
-
type: Output,
|
|
43
|
-
args: ['bbConfirm']
|
|
44
|
-
}], onClick: [{
|
|
45
|
-
type: HostListener,
|
|
46
|
-
args: ['click', ['$event']]
|
|
47
|
-
}] } });
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2RpYWxvZy9zcmMvbGliL2RpcmVjdGl2ZXMvY29uZmlybS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQzs7QUFNekMsTUFBTSxPQUFPLFNBQVM7SUFFbEIsZ0JBQWdCO0lBQ1IsT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVqQyxVQUFVO0lBQ0QsY0FBYyxHQUFXLHNCQUFzQixDQUFDO0lBQ2hELG9CQUFvQixHQUFXLDRCQUE0QixDQUFDO0lBQzVELG1CQUFtQixHQUFrQixJQUFJLENBQUM7SUFDMUMsa0JBQWtCLEdBQWtCLElBQUksQ0FBQztJQUVsRCxXQUFXO0lBQ1UsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7SUFHOUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFpQjtRQUMzQixNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQ3pGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxtQkFBbUI7WUFDM0MsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtTQUM1QyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDYixPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7d0dBekJRLFNBQVM7NEZBQVQsU0FBUzs7NEZBQVQsU0FBUztrQkFKckIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsVUFBVSxFQUFFLElBQUk7aUJBQ25COzhCQU9ZLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBR2UsT0FBTztzQkFBM0IsTUFBTTt1QkFBQyxXQUFXO2dCQUdiLE9BQU87c0JBRFosWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIGluamVjdCwgSW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RpYWxvZ30gZnJvbSAnLi4vZGlhbG9nLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tiYkNvbmZpcm1dJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEJiQ29uZmlybSB7XG5cbiAgICAvLyBEZXBlbmRlbmNpZXMuXG4gICAgcHJpdmF0ZSBfZGlhbG9nID0gaW5qZWN0KERpYWxvZyk7XG5cbiAgICAvLyBJbnB1dHMuXG4gICAgQElucHV0KCkgYmJDb25maXJtVGl0bGU6IHN0cmluZyA9ICdkaWFsb2cuZGVmYXVsdF90aXRsZSc7XG4gICAgQElucHV0KCkgYmJDb25maXJtRGVzY3JpcHRpb246IHN0cmluZyA9ICdkaWFsb2cuZGVmYXVsdF9kZXNjcmlwdGlvbic7XG4gICAgQElucHV0KCkgYmJDb25maXJtQnV0dG9uVGV4dDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgYmJDYW5jZWxCdXR0b25UZXh0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8vIE91dHB1dHMuXG4gICAgQE91dHB1dCgnYmJDb25maXJtJykgY29uZmlybSA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgICBhc3luYyBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGNvbmZpcm1lZCA9IGF3YWl0IHRoaXMuX2RpYWxvZy5jb25maXJtKHRoaXMuYmJDb25maXJtVGl0bGUsIHRoaXMuYmJDb25maXJtRGVzY3JpcHRpb24sIHtcbiAgICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiB0aGlzLmJiQ29uZmlybUJ1dHRvblRleHQsXG4gICAgICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiB0aGlzLmJiQ2FuY2VsQnV0dG9uVGV4dFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFjb25maXJtZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29uZmlybS5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbn1cbiJdfQ==
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export * from './lib/dialog.ref';
|
|
2
|
-
export * from './lib/dialog.interfaces';
|
|
3
|
-
export * from './lib/dialog-overlay/dialog-overlay.component';
|
|
4
|
-
export * from './lib/dialog-modal/dialog-modal.component';
|
|
5
|
-
export * from './lib/dialog-header/dialog-header.component';
|
|
6
|
-
export * from './lib/dialog-link/dialog-link.component';
|
|
7
|
-
export * from './lib/dialog-actions/dialog-actions.component';
|
|
8
|
-
export * from './lib/directives/confirm.directive';
|
|
9
|
-
export * from './lib/dialog.service';
|
|
10
|
-
export * from './lib/dialog.config';
|
|
11
|
-
export * from './lib/dialog.module';
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZGlhbG9nL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyx5QkFBeUIsQ0FBQztBQUV4QyxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsK0NBQStDLENBQUM7QUFFOUQsY0FBYyxvQ0FBb0MsQ0FBQztBQUVuRCxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2RpYWxvZy5yZWYnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlhbG9nLmludGVyZmFjZXMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaWFsb2ctb3ZlcmxheS9kaWFsb2ctb3ZlcmxheS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlhbG9nLW1vZGFsL2RpYWxvZy1tb2RhbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlhbG9nLWhlYWRlci9kaWFsb2ctaGVhZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaWFsb2ctbGluay9kaWFsb2ctbGluay5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlhbG9nLWFjdGlvbnMvZGlhbG9nLWFjdGlvbnMuY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9jb25maXJtLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpYWxvZy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpYWxvZy5jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlhbG9nLm1vZHVsZSc7XG4iXX0=
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public_api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhdm9iaXQtYmItZm91bmRhdGlvbi1lbGVtZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2JyYXZvYml0LWJiLWZvdW5kYXRpb24tZWxlbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
|
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, HostBinding, inject, Input, numberAttribute, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { ELEMENTS_CONFIG } from '../elements.interfaces';
|
|
3
|
-
import { AsyncPipe } from '@angular/common';
|
|
4
|
-
import { BehaviorSubject } from 'rxjs';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class BbAvatar {
|
|
7
|
-
// Dependencies.
|
|
8
|
-
_config = inject(ELEMENTS_CONFIG, { optional: true });
|
|
9
|
-
// Inputs.
|
|
10
|
-
size = 2.5;
|
|
11
|
-
unit = null;
|
|
12
|
-
// State.
|
|
13
|
-
state$ = new BehaviorSubject('initials');
|
|
14
|
-
// Data.
|
|
15
|
-
_src = null;
|
|
16
|
-
_title = null;
|
|
17
|
-
_initials = '!';
|
|
18
|
-
_color = 'rgb(255, 255, 255)';
|
|
19
|
-
_backgroundColor = 'rgb(66, 66, 66)';
|
|
20
|
-
set src(value) {
|
|
21
|
-
this._src = value;
|
|
22
|
-
if (this._src) {
|
|
23
|
-
this.state$.next('image');
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
set title(value) {
|
|
27
|
-
// Set the title and the initials.
|
|
28
|
-
this._title = value ?? '!';
|
|
29
|
-
this._initials = this.getInitials(this._title);
|
|
30
|
-
// Generate the colors based on the name.
|
|
31
|
-
const { r, g, b } = this.toRgb(this._title);
|
|
32
|
-
this.setColors(r, g, b);
|
|
33
|
-
}
|
|
34
|
-
set tintColor(value) {
|
|
35
|
-
const result = this.parseColorFormat(value);
|
|
36
|
-
if (!result) {
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
const { r, g, b } = result;
|
|
40
|
-
this.setColors(r, g, b);
|
|
41
|
-
}
|
|
42
|
-
get sizes() {
|
|
43
|
-
const unit = this.unit ?? this._config?.defaultDisplayUnit ?? 'rem';
|
|
44
|
-
return `${this.size}${unit}`;
|
|
45
|
-
}
|
|
46
|
-
get fontSize() {
|
|
47
|
-
const unit = this.unit ?? this._config?.defaultDisplayUnit ?? 'rem';
|
|
48
|
-
return `${this.size * 0.42}${unit}`;
|
|
49
|
-
}
|
|
50
|
-
get src() {
|
|
51
|
-
return this._src;
|
|
52
|
-
}
|
|
53
|
-
get color() {
|
|
54
|
-
return this._color;
|
|
55
|
-
}
|
|
56
|
-
get backgroundColor() {
|
|
57
|
-
return this._backgroundColor;
|
|
58
|
-
}
|
|
59
|
-
get title() {
|
|
60
|
-
return this._title;
|
|
61
|
-
}
|
|
62
|
-
get initials() {
|
|
63
|
-
return this._initials;
|
|
64
|
-
}
|
|
65
|
-
setColors(red, green, blue) {
|
|
66
|
-
this._color = `rgb(${red},${green},${blue})`;
|
|
67
|
-
this._backgroundColor = `rgba(${red},${green},${blue}, 0.25)`;
|
|
68
|
-
}
|
|
69
|
-
toRgb = (value) => {
|
|
70
|
-
const baseRed = 128;
|
|
71
|
-
const baseGreen = 128;
|
|
72
|
-
const baseBlue = 128;
|
|
73
|
-
let seed = value.charCodeAt(0) ^ value.charCodeAt(1);
|
|
74
|
-
const rand_1 = Math.abs((Math.sin(seed++) * 10000)) % 256;
|
|
75
|
-
const rand_2 = Math.abs((Math.sin(seed++) * 10000)) % 256;
|
|
76
|
-
const rand_3 = Math.abs((Math.sin(seed++) * 10000)) % 256;
|
|
77
|
-
const r = Math.round((rand_1 + baseRed) / 2);
|
|
78
|
-
const g = Math.round((rand_2 + baseGreen) / 2);
|
|
79
|
-
const b = Math.round((rand_3 + baseBlue) / 2);
|
|
80
|
-
return { r, g, b };
|
|
81
|
-
};
|
|
82
|
-
getInitials = (name) => {
|
|
83
|
-
// Get all the initials.
|
|
84
|
-
const names = (name ?? '').split(' ');
|
|
85
|
-
const initials = names
|
|
86
|
-
.map(name => name.charAt(0).toUpperCase())
|
|
87
|
-
.filter(name => /^[a-zA-Z]+$/.test(name));
|
|
88
|
-
// Check if there are any initials.
|
|
89
|
-
if (initials?.length <= 0) {
|
|
90
|
-
return null;
|
|
91
|
-
}
|
|
92
|
-
// Get the first and last initials.
|
|
93
|
-
if (initials?.length > 1) {
|
|
94
|
-
return `${initials?.[0]}${initials?.[initials?.length - 1]}`;
|
|
95
|
-
}
|
|
96
|
-
// Get only the first initial.
|
|
97
|
-
return initials?.[0];
|
|
98
|
-
};
|
|
99
|
-
parseColorFormat = (value) => {
|
|
100
|
-
if (!value) {
|
|
101
|
-
return null;
|
|
102
|
-
}
|
|
103
|
-
// Hex 3 values.
|
|
104
|
-
let match = value.match(/^#([0-9a-f]{3})$/i);
|
|
105
|
-
if (match && match[1]) {
|
|
106
|
-
const r = parseInt(match[1].charAt(0), 16) * 0x11;
|
|
107
|
-
const g = parseInt(match[1].charAt(1), 16) * 0x11;
|
|
108
|
-
const b = parseInt(match[1].charAt(2), 16) * 0x11;
|
|
109
|
-
return { r, g, b };
|
|
110
|
-
}
|
|
111
|
-
// Hex 6 values.
|
|
112
|
-
match = value.match(/^#([0-9a-f]{6})$/i);
|
|
113
|
-
if (match && match[1]) {
|
|
114
|
-
const r = parseInt(match[1].substring(0, 2), 16);
|
|
115
|
-
const g = parseInt(match[1].substring(2, 4), 16);
|
|
116
|
-
const b = parseInt(match[1].substring(4, 6), 16);
|
|
117
|
-
return { r, g, b };
|
|
118
|
-
}
|
|
119
|
-
// Rgb values.
|
|
120
|
-
match = value.match(/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i);
|
|
121
|
-
if (match) {
|
|
122
|
-
const r = parseInt(match[1], 10);
|
|
123
|
-
const g = parseInt(match[2], 10);
|
|
124
|
-
const b = parseInt(match[3], 10);
|
|
125
|
-
return { r, g, b };
|
|
126
|
-
}
|
|
127
|
-
// Not a supported color format.
|
|
128
|
-
console?.warn?.(`BbAvatar: Unsupported tintColor "${value}" was used.`);
|
|
129
|
-
return null;
|
|
130
|
-
};
|
|
131
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbAvatar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
132
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: BbAvatar, isStandalone: true, selector: "bb-avatar", inputs: { size: ["size", "size", numberAttribute], unit: "unit", src: "src", title: "title", tintColor: "tintColor" }, host: { attributes: { "role": "img" }, properties: { "style.color": "color", "style.background-color": "backgroundColor", "attr.title": "this.title", "style.width": "this.sizes", "style.height": "this.sizes", "style.min-width": "this.sizes", "style.min-height": "this.sizes", "style.font-size": "this.fontSize" }, classAttribute: "bb-avatar" }, ngImport: i0, template: "@switch (state$ | async) {\n @case ('image') {\n <img [src]=\"src\"\n [alt]=\"initials\"\n (error)=\"state$?.next('initials')\"\n class=\"bb-avatar-image\">\n }\n @default {\n {{ initials }}\n }\n}\n", styles: [".bb-avatar{line-height:1;overflow:hidden;font-weight:500;-webkit-user-select:none;user-select:none;position:relative;border-radius:50%;align-items:center;display:inline-flex;justify-content:center}.bb-avatar.rounded{border-radius:4px}.bb-avatar.square{border-radius:0}.bb-avatar-image{width:100%;height:100%;object-fit:cover;position:absolute}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
133
|
-
}
|
|
134
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbAvatar, decorators: [{
|
|
135
|
-
type: Component,
|
|
136
|
-
args: [{ selector: 'bb-avatar', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
|
|
137
|
-
'class': 'bb-avatar',
|
|
138
|
-
'role': 'img',
|
|
139
|
-
'[style.color]': 'color',
|
|
140
|
-
'[style.background-color]': 'backgroundColor'
|
|
141
|
-
}, standalone: true, imports: [AsyncPipe], template: "@switch (state$ | async) {\n @case ('image') {\n <img [src]=\"src\"\n [alt]=\"initials\"\n (error)=\"state$?.next('initials')\"\n class=\"bb-avatar-image\">\n }\n @default {\n {{ initials }}\n }\n}\n", styles: [".bb-avatar{line-height:1;overflow:hidden;font-weight:500;-webkit-user-select:none;user-select:none;position:relative;border-radius:50%;align-items:center;display:inline-flex;justify-content:center}.bb-avatar.rounded{border-radius:4px}.bb-avatar.square{border-radius:0}.bb-avatar-image{width:100%;height:100%;object-fit:cover;position:absolute}\n"] }]
|
|
142
|
-
}], propDecorators: { size: [{
|
|
143
|
-
type: Input,
|
|
144
|
-
args: [{ transform: numberAttribute }]
|
|
145
|
-
}], unit: [{
|
|
146
|
-
type: Input
|
|
147
|
-
}], src: [{
|
|
148
|
-
type: Input
|
|
149
|
-
}], title: [{
|
|
150
|
-
type: Input
|
|
151
|
-
}, {
|
|
152
|
-
type: HostBinding,
|
|
153
|
-
args: ['attr.title']
|
|
154
|
-
}], tintColor: [{
|
|
155
|
-
type: Input
|
|
156
|
-
}], sizes: [{
|
|
157
|
-
type: HostBinding,
|
|
158
|
-
args: ['style.width']
|
|
159
|
-
}, {
|
|
160
|
-
type: HostBinding,
|
|
161
|
-
args: ['style.height']
|
|
162
|
-
}, {
|
|
163
|
-
type: HostBinding,
|
|
164
|
-
args: ['style.min-width']
|
|
165
|
-
}, {
|
|
166
|
-
type: HostBinding,
|
|
167
|
-
args: ['style.min-height']
|
|
168
|
-
}, {
|
|
169
|
-
type: HostBinding,
|
|
170
|
-
args: ['style.font-size']
|
|
171
|
-
}], fontSize: [{
|
|
172
|
-
type: HostBinding,
|
|
173
|
-
args: ['style.font-size']
|
|
174
|
-
}] } });
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pJLE9BQU8sRUFBQyxlQUFlLEVBQXNDLE1BQU0sd0JBQXdCLENBQUM7QUFDNUYsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxNQUFNLENBQUM7O0FBa0JyQyxNQUFNLE9BQU8sUUFBUTtJQUVqQixnQkFBZ0I7SUFDQyxPQUFPLEdBQW9CLE1BQU0sQ0FBQyxlQUFlLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztJQUV0RixVQUFVO0lBQzJCLElBQUksR0FBVyxHQUFHLENBQUM7SUFDL0MsSUFBSSxHQUErQixJQUFJLENBQUM7SUFFakQsU0FBUztJQUNULE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBUyxVQUFVLENBQUMsQ0FBQztJQUVqRCxRQUFRO0lBQ0EsSUFBSSxHQUFrQixJQUFJLENBQUM7SUFDM0IsTUFBTSxHQUFrQixJQUFJLENBQUM7SUFDN0IsU0FBUyxHQUFXLEdBQUcsQ0FBQztJQUN4QixNQUFNLEdBQVcsb0JBQW9CLENBQUM7SUFDdEMsZ0JBQWdCLEdBQVcsaUJBQWlCLENBQUM7SUFFckQsSUFDSSxHQUFHLENBQUMsS0FB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QUMsRUFBRSxDQUFDLEVBQUMsQ0FBQztRQUNyQixDQUFDO1FBRUQsZ0NBQWdDO1FBQ2hDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxvQ0FBb0MsS0FBSyxhQUFhLENBQUMsQ0FBQztRQUN4RSxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDLENBQUM7d0dBeEtPLFFBQVE7NEZBQVIsUUFBUSw4RUFNRSxlQUFlLHdiQzNCdEMsdVFBV0EsOFlEUWMsU0FBUzs7NEZBRVYsUUFBUTtrQkFoQnBCLFNBQVM7K0JBQ0ksV0FBVyxtQkFHSix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLHVCQUNoQixLQUFLLFFBQ3BCO3dCQUNGLE9BQU8sRUFBRSxXQUFXO3dCQUNwQixNQUFNLEVBQUUsS0FBSzt3QkFDYixlQUFlLEVBQUUsT0FBTzt3QkFDeEIsMEJBQTBCLEVBQUUsaUJBQWlCO3FCQUNoRCxjQUNXLElBQUksV0FDUCxDQUFDLFNBQVMsQ0FBQzs4QkFRaUIsSUFBSTtzQkFBeEMsS0FBSzt1QkFBQyxFQUFDLFNBQVMsRUFBRSxlQUFlLEVBQUM7Z0JBQzFCLElBQUk7c0JBQVosS0FBSztnQkFhRixHQUFHO3NCQUROLEtBQUs7Z0JBV0YsS0FBSztzQkFGUixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLFlBQVk7Z0JBWXJCLFNBQVM7c0JBRFosS0FBSztnQkFnQkYsS0FBSztzQkFMUixXQUFXO3VCQUFDLGFBQWE7O3NCQUN6QixXQUFXO3VCQUFDLGNBQWM7O3NCQUMxQixXQUFXO3VCQUFDLGlCQUFpQjs7c0JBQzdCLFdBQVc7dUJBQUMsa0JBQWtCOztzQkFDOUIsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBTzFCLFFBQVE7c0JBRFgsV0FBVzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBpbmplY3QsIElucHV0LCBudW1iZXJBdHRyaWJ1dGUsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RUxFTUVOVFNfQ09ORklHLCBFbGVtZW50c0NvbmZpZywgRWxlbWVudHNEaXNwbGF5VW5pdH0gZnJvbSAnLi4vZWxlbWVudHMuaW50ZXJmYWNlcyc7XG5pbXBvcnQge0FzeW5jUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdiYi1hdmF0YXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hdmF0YXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2F2YXRhci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnYmItYXZhdGFyJyxcbiAgICAgICAgJ3JvbGUnOiAnaW1nJyxcbiAgICAgICAgJ1tzdHlsZS5jb2xvcl0nOiAnY29sb3InLFxuICAgICAgICAnW3N0eWxlLmJhY2tncm91bmQtY29sb3JdJzogJ2JhY2tncm91bmRDb2xvcidcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0FzeW5jUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgQmJBdmF0YXIge1xuXG4gICAgLy8gRGVwZW5kZW5jaWVzLlxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NvbmZpZz86IEVsZW1lbnRzQ29uZmlnID0gaW5qZWN0KEVMRU1FTlRTX0NPTkZJRywge29wdGlvbmFsOiB0cnVlfSk7XG5cbiAgICAvLyBJbnB1dHMuXG4gICAgQElucHV0KHt0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZX0pIHNpemU6IG51bWJlciA9IDIuNTtcbiAgICBASW5wdXQoKSB1bml0OiBFbGVtZW50c0Rpc3BsYXlVbml0IHwgbnVsbCA9IG51bGw7XG5cbiAgICAvLyBTdGF0ZS5cbiAgICBzdGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJ2luaXRpYWxzJyk7XG5cbiAgICAvLyBEYXRhLlxuICAgIHByaXZhdGUgX3NyYzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBfdGl0bGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgX2luaXRpYWxzOiBzdHJpbmcgPSAnISc7XG4gICAgcHJpdmF0ZSBfY29sb3I6IHN0cmluZyA9ICdyZ2IoMjU1LCAyNTUsIDI1NSknO1xuICAgIHByaXZhdGUgX2JhY2tncm91bmRDb2xvcjogc3RyaW5nID0gJ3JnYig2NiwgNjYsIDY2KSc7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBzcmModmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9zcmMgPSB2YWx1ZTtcblxuICAgICAgICBpZiAodGhpcy5fc3JjKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlJC5uZXh0KCdpbWFnZScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIudGl0bGUnKVxuICAgIHNldCB0aXRsZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIC8vIFNldCB0aGUgdGl0bGUgYW5kIHRoZSBpbml0aWFscy5cbiAgICAgICAgdGhpcy5fdGl0bGUgPSB2YWx1ZSA/PyAnISc7XG4gICAgICAgIHRoaXMuX2luaXRpYWxzID0gdGhpcy5nZXRJbml0aWFscyh0aGlzLl90aXRsZSk7XG5cbiAgICAgICAgLy8gR2VuZXJhdGUgdGhlIGNvbG9ycyBiYXNlZCBvbiB0aGUgbmFtZS5cbiAgICAgICAgY29uc3Qge3IsIGcsIGJ9ID0gdGhpcy50b1JnYih0aGlzLl90aXRsZSk7XG4gICAgICAgIHRoaXMuc2V0Q29sb3JzKHIsIGcsIGIpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRpbnRDb2xvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMucGFyc2VDb2xvckZvcm1hdCh2YWx1ZSk7XG4gICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7ciwgZywgYn0gPSByZXN1bHQ7XG4gICAgICAgIHRoaXMuc2V0Q29sb3JzKHIsIGcsIGIpO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUud2lkdGgnKVxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuaGVpZ2h0JylcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLm1pbi13aWR0aCcpXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5taW4taGVpZ2h0JylcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmZvbnQtc2l6ZScpXG4gICAgZ2V0IHNpemVzKCkge1xuICAgICAgICBjb25zdCB1bml0ID0gdGhpcy51bml0ID8/IHRoaXMuX2NvbmZpZz8uZGVmYXVsdERpc3BsYXlVbml0ID8/ICdyZW0nO1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5zaXplfSR7dW5pdH1gO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuZm9udC1zaXplJylcbiAgICBnZXQgZm9udFNpemUoKSB7XG4gICAgICAgIGNvbnN0IHVuaXQgPSB0aGlzLnVuaXQgPz8gdGhpcy5fY29uZmlnPy5kZWZhdWx0RGlzcGxheVVuaXQgPz8gJ3JlbSc7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLnNpemUgKiAwLjQyfSR7dW5pdH1gO1xuICAgIH1cblxuICAgIGdldCBzcmMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zcmM7XG4gICAgfVxuXG4gICAgZ2V0IGNvbG9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29sb3I7XG4gICAgfVxuXG4gICAgZ2V0IGJhY2tncm91bmRDb2xvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2JhY2tncm91bmRDb2xvcjtcbiAgICB9XG5cbiAgICBnZXQgdGl0bGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90aXRsZTtcbiAgICB9XG5cbiAgICBnZXQgaW5pdGlhbHMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbml0aWFscztcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldENvbG9ycyhyZWQ6IG51bWJlciwgZ3JlZW46IG51bWJlciwgYmx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX2NvbG9yID0gYHJnYigke3JlZH0sJHtncmVlbn0sJHtibHVlfSlgO1xuICAgICAgICB0aGlzLl9iYWNrZ3JvdW5kQ29sb3IgPSBgcmdiYSgke3JlZH0sJHtncmVlbn0sJHtibHVlfSwgMC4yNSlgO1xuICAgIH1cblxuICAgIHByaXZhdGUgdG9SZ2IgPSAodmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCBiYXNlUmVkID0gMTI4O1xuICAgICAgICBjb25zdCBiYXNlR3JlZW4gPSAxMjg7XG4gICAgICAgIGNvbnN0IGJhc2VCbHVlID0gMTI4O1xuXG4gICAgICAgIGxldCBzZWVkID0gdmFsdWUuY2hhckNvZGVBdCgwKSBeIHZhbHVlLmNoYXJDb2RlQXQoMSk7XG4gICAgICAgIGNvbnN0IHJhbmRfMSA9IE1hdGguYWJzKChNYXRoLnNpbihzZWVkKyspICogMTAwMDApKSAlIDI1NjtcbiAgICAgICAgY29uc3QgcmFuZF8yID0gTWF0aC5hYnMoKE1hdGguc2luKHNlZWQrKykgKiAxMDAwMCkpICUgMjU2O1xuICAgICAgICBjb25zdCByYW5kXzMgPSBNYXRoLmFicygoTWF0aC5zaW4oc2VlZCsrKSAqIDEwMDAwKSkgJSAyNTY7XG5cbiAgICAgICAgY29uc3QgciA9IE1hdGgucm91bmQoKHJhbmRfMSArIGJhc2VSZWQpIC8gMik7XG4gICAgICAgIGNvbnN0IGcgPSBNYXRoLnJvdW5kKChyYW5kXzIgKyBiYXNlR3JlZW4pIC8gMik7XG4gICAgICAgIGNvbnN0IGIgPSBNYXRoLnJvdW5kKChyYW5kXzMgKyBiYXNlQmx1ZSkgLyAyKTtcblxuICAgICAgICByZXR1cm4ge3IsIGcsIGJ9O1xuICAgIH07XG5cbiAgICBwcml2YXRlIGdldEluaXRpYWxzID0gKG5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICAvLyBHZXQgYWxsIHRoZSBpbml0aWFscy5cbiAgICAgICAgY29uc3QgbmFtZXMgPSAobmFtZSA/PyAnJykuc3BsaXQoJyAnKTtcbiAgICAgICAgY29uc3QgaW5pdGlhbHMgPSBuYW1lc1xuICAgICAgICAgICAgLm1hcChuYW1lID0+IG5hbWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkpXG4gICAgICAgICAgICAuZmlsdGVyKG5hbWUgPT4gL15bYS16QS1aXSskLy50ZXN0KG5hbWUpKTtcblxuICAgICAgICAvLyBDaGVjayBpZiB0aGVyZSBhcmUgYW55IGluaXRpYWxzLlxuICAgICAgICBpZiAoaW5pdGlhbHM/Lmxlbmd0aCA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEdldCB0aGUgZmlyc3QgYW5kIGxhc3QgaW5pdGlhbHMuXG4gICAgICAgIGlmIChpbml0aWFscz8ubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgcmV0dXJuIGAke2luaXRpYWxzPy5bMF19JHtpbml0aWFscz8uW2luaXRpYWxzPy5sZW5ndGggLSAxXX1gO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gR2V0IG9ubHkgdGhlIGZpcnN0IGluaXRpYWwuXG4gICAgICAgIHJldHVybiBpbml0aWFscz8uWzBdO1xuICAgIH07XG5cbiAgICBwcml2YXRlIHBhcnNlQ29sb3JGb3JtYXQgPSAodmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEhleCAzIHZhbHVlcy5cbiAgICAgICAgbGV0IG1hdGNoID0gdmFsdWUubWF0Y2goL14jKFswLTlhLWZdezN9KSQvaSk7XG4gICAgICAgIGlmIChtYXRjaCAmJiBtYXRjaFsxXSkge1xuICAgICAgICAgICAgY29uc3QgciA9IHBhcnNlSW50KG1hdGNoWzFdLmNoYXJBdCgwKSwgMTYpICogMHgxMTtcbiAgICAgICAgICAgIGNvbnN0IGcgPSBwYXJzZUludChtYXRjaFsxXS5jaGFyQXQoMSksIDE2KSAqIDB4MTE7XG4gICAgICAgICAgICBjb25zdCBiID0gcGFyc2VJbnQobWF0Y2hbMV0uY2hhckF0KDIpLCAxNikgKiAweDExO1xuXG4gICAgICAgICAgICByZXR1cm4ge3IsIGcsIGJ9O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSGV4IDYgdmFsdWVzLlxuICAgICAgICBtYXRjaCA9IHZhbHVlLm1hdGNoKC9eIyhbMC05YS1mXXs2fSkkL2kpO1xuICAgICAgICBpZiAobWF0Y2ggJiYgbWF0Y2hbMV0pIHtcbiAgICAgICAgICAgIGNvbnN0IHIgPSBwYXJzZUludChtYXRjaFsxXS5zdWJzdHJpbmcoMCwgMiksIDE2KTtcbiAgICAgICAgICAgIGNvbnN0IGcgPSBwYXJzZUludChtYXRjaFsxXS5zdWJzdHJpbmcoMiwgNCksIDE2KTtcbiAgICAgICAgICAgIGNvbnN0IGIgPSBwYXJzZUludChtYXRjaFsxXS5zdWJzdHJpbmcoNCwgNiksIDE2KTtcblxuICAgICAgICAgICAgcmV0dXJuIHtyLCBnLCBifTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJnYiB2YWx1ZXMuXG4gICAgICAgIG1hdGNoID0gdmFsdWUubWF0Y2goL15yZ2JcXHMqXFwoXFxzKihcXGQrKVxccyosXFxzKihcXGQrKVxccyosXFxzKihcXGQrKVxccypcXCkkL2kpO1xuICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICAgIGNvbnN0IHIgPSBwYXJzZUludChtYXRjaFsxXSwgMTApO1xuICAgICAgICAgICAgY29uc3QgZyA9IHBhcnNlSW50KG1hdGNoWzJdLCAxMCk7XG4gICAgICAgICAgICBjb25zdCBiID0gcGFyc2VJbnQobWF0Y2hbM10sIDEwKTtcblxuICAgICAgICAgICAgcmV0dXJuIHtyLCBnLCBifTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE5vdCBhIHN1cHBvcnRlZCBjb2xvciBmb3JtYXQuXG4gICAgICAgIGNvbnNvbGU/Lndhcm4/LihgQmJBdmF0YXI6IFVuc3VwcG9ydGVkIHRpbnRDb2xvciBcIiR7dmFsdWV9XCIgd2FzIHVzZWQuYCk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG5cbn1cbiIsIkBzd2l0Y2ggKHN0YXRlJCB8IGFzeW5jKSB7XG4gICAgQGNhc2UgKCdpbWFnZScpIHtcbiAgICAgICAgPGltZyBbc3JjXT1cInNyY1wiXG4gICAgICAgICAgICAgW2FsdF09XCJpbml0aWFsc1wiXG4gICAgICAgICAgICAgKGVycm9yKT1cInN0YXRlJD8ubmV4dCgnaW5pdGlhbHMnKVwiXG4gICAgICAgICAgICAgY2xhc3M9XCJiYi1hdmF0YXItaW1hZ2VcIj5cbiAgICB9XG4gICAgQGRlZmF1bHQge1xuICAgICAgICB7eyBpbml0aWFscyB9fVxuICAgIH1cbn1cbiJdfQ==
|