@bravobit/bb-foundation 0.45.3 → 0.50.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/auth/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 +33 -36
- 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 +7 -45
- package/permissions/lib/directives/permission.directive.d.ts +1 -1
- package/select/lib/select/select.component.d.ts +1 -0
- 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 -288
- 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,106 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, Optional, Output, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { delay, distinctUntilChanged, map, startWith, tap } from 'rxjs/operators';
|
|
3
|
-
import { ELEMENTS_ERRORS } from '../elements.interfaces';
|
|
4
|
-
import { BbLocalize } from '@bravobit/bb-foundation/localize';
|
|
5
|
-
import { combineLatest, of } from 'rxjs';
|
|
6
|
-
import { AsyncPipe } from '@angular/common';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "../directives/form-submit.directive";
|
|
9
|
-
import * as i2 from "@angular/forms";
|
|
10
|
-
import * as i3 from "../directives/form-submitter.directive";
|
|
11
|
-
import * as i4 from "../directives/extra-error-controls.directive";
|
|
12
|
-
export class BbFormError {
|
|
13
|
-
_form;
|
|
14
|
-
_ngControl;
|
|
15
|
-
_formSubmitter;
|
|
16
|
-
_extraErrorControls;
|
|
17
|
-
_errors;
|
|
18
|
-
// Readonly data.
|
|
19
|
-
errorsMap;
|
|
20
|
-
// Inputs.
|
|
21
|
-
control = null;
|
|
22
|
-
// Outputs.
|
|
23
|
-
errorChange = new EventEmitter();
|
|
24
|
-
// State.
|
|
25
|
-
error$;
|
|
26
|
-
constructor(_form, _ngControl, _formSubmitter, _extraErrorControls, _errors) {
|
|
27
|
-
this._form = _form;
|
|
28
|
-
this._ngControl = _ngControl;
|
|
29
|
-
this._formSubmitter = _formSubmitter;
|
|
30
|
-
this._extraErrorControls = _extraErrorControls;
|
|
31
|
-
this._errors = _errors;
|
|
32
|
-
this.errorsMap = this._errors.reduce((previous, current) => ({ ...previous, ...current }), {});
|
|
33
|
-
}
|
|
34
|
-
ngOnInit() {
|
|
35
|
-
this.setControl();
|
|
36
|
-
this.setError();
|
|
37
|
-
}
|
|
38
|
-
setControl() {
|
|
39
|
-
if (!this.control) {
|
|
40
|
-
this.control = this._ngControl;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
setError() {
|
|
44
|
-
const submitStatus$ = this.submitStatusChanges();
|
|
45
|
-
const errorChanges$ = this.getErrors().pipe(map(errors => this.formatError(errors)), distinctUntilChanged(), map(error => typeof error === 'string' ? { token: error } : error));
|
|
46
|
-
this.error$ = combineLatest([submitStatus$, errorChanges$]).pipe(map(([submitted, error]) => submitted ? error : null), tap(value => this.errorChange.emit(value)));
|
|
47
|
-
}
|
|
48
|
-
formatError(errors) {
|
|
49
|
-
const [errorName] = Object.keys(errors ?? {});
|
|
50
|
-
const error = errors?.[errorName];
|
|
51
|
-
if (!error) {
|
|
52
|
-
return null;
|
|
53
|
-
}
|
|
54
|
-
const errorFunction = this.errorsMap?.[errorName] ?? this.errorsMap?.['unknown'];
|
|
55
|
-
if (!errorFunction) {
|
|
56
|
-
return null;
|
|
57
|
-
}
|
|
58
|
-
return errorFunction(error);
|
|
59
|
-
}
|
|
60
|
-
submitStatusChanges() {
|
|
61
|
-
const native$ = this.getNativeFormSubmit();
|
|
62
|
-
const manual$ = this.getManualFormSubmit();
|
|
63
|
-
return combineLatest([native$, manual$]).pipe(map(([native, manual]) => native || manual), distinctUntilChanged());
|
|
64
|
-
}
|
|
65
|
-
getNativeFormSubmit() {
|
|
66
|
-
if (!this._form) {
|
|
67
|
-
return of(true);
|
|
68
|
-
}
|
|
69
|
-
return this._form.submitStatus$;
|
|
70
|
-
}
|
|
71
|
-
getManualFormSubmit() {
|
|
72
|
-
if (!this._formSubmitter) {
|
|
73
|
-
return of(false);
|
|
74
|
-
}
|
|
75
|
-
return this._formSubmitter.submitted$.pipe(distinctUntilChanged());
|
|
76
|
-
}
|
|
77
|
-
getErrors() {
|
|
78
|
-
const error$ = (this.control?.statusChanges ?? of(null)).pipe(startWith(this.control?.status), map(_ => this.control?.errors ?? null), delay(0));
|
|
79
|
-
const extraError$ = this._extraErrorControls?.changes?.asObservable() ?? of(null);
|
|
80
|
-
return combineLatest([error$, extraError$]).pipe(map(([error, extraError]) => error ?? extraError ?? null), distinctUntilChanged());
|
|
81
|
-
}
|
|
82
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbFormError, deps: [{ token: i1.BbFormSubmit, optional: true }, { token: i2.NgControl, optional: true }, { token: i3.BbFormSubmitter, optional: true }, { token: i4.BbExtraErrorControls, optional: true }, { token: ELEMENTS_ERRORS, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
83
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: BbFormError, isStandalone: true, selector: "bb-form-error", inputs: { control: "control" }, outputs: { errorChange: "errorChange" }, host: { classAttribute: "bb-form-error" }, ngImport: i0, template: "@if (error$ | async; as error) {\n @if (error?.token | bbLocalize:{optional: true, data: error?.data}; as message) {\n <p class=\"bb-form-error-message\">{{ message }}</p>\n }\n}\n", styles: [".bb-form-error{display:block}.bb-form-error-message{color:#c23934;display:block;line-height:1.5;margin-top:.25rem;font-size:.8125rem}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: BbLocalize, name: "bbLocalize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
84
|
-
}
|
|
85
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbFormError, decorators: [{
|
|
86
|
-
type: Component,
|
|
87
|
-
args: [{ selector: 'bb-form-error', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'class': 'bb-form-error' }, preserveWhitespaces: false, standalone: true, imports: [AsyncPipe, BbLocalize], template: "@if (error$ | async; as error) {\n @if (error?.token | bbLocalize:{optional: true, data: error?.data}; as message) {\n <p class=\"bb-form-error-message\">{{ message }}</p>\n }\n}\n", styles: [".bb-form-error{display:block}.bb-form-error-message{color:#c23934;display:block;line-height:1.5;margin-top:.25rem;font-size:.8125rem}\n"] }]
|
|
88
|
-
}], ctorParameters: () => [{ type: i1.BbFormSubmit, decorators: [{
|
|
89
|
-
type: Optional
|
|
90
|
-
}] }, { type: i2.NgControl, decorators: [{
|
|
91
|
-
type: Optional
|
|
92
|
-
}] }, { type: i3.BbFormSubmitter, decorators: [{
|
|
93
|
-
type: Optional
|
|
94
|
-
}] }, { type: i4.BbExtraErrorControls, decorators: [{
|
|
95
|
-
type: Optional
|
|
96
|
-
}] }, { type: undefined, decorators: [{
|
|
97
|
-
type: Optional
|
|
98
|
-
}, {
|
|
99
|
-
type: Inject,
|
|
100
|
-
args: [ELEMENTS_ERRORS]
|
|
101
|
-
}] }], propDecorators: { control: [{
|
|
102
|
-
type: Input
|
|
103
|
-
}], errorChange: [{
|
|
104
|
-
type: Output
|
|
105
|
-
}] } });
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2VsZW1lbnRzL3NyYy9saWIvZm9ybS1lcnJvci9mb3JtLWVycm9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9mb3JtLWVycm9yL2Zvcm0tZXJyb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxRQUFRLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTNJLE9BQU8sRUFBQyxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRixPQUFPLEVBQUMsZUFBZSxFQUFnQixNQUFNLHdCQUF3QixDQUFDO0FBRXRFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUU1RCxPQUFPLEVBQUMsYUFBYSxFQUFjLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQWExQyxNQUFNLE9BQU8sV0FBVztJQWNZO0lBQ0E7SUFDQTtJQUNBO0lBQ3lCO0lBaEJ6RCxpQkFBaUI7SUFDUixTQUFTLENBQWdCO0lBRWxDLFVBQVU7SUFDRCxPQUFPLEdBQXFCLElBQUksQ0FBQztJQUUxQyxXQUFXO0lBQ0QsV0FBVyxHQUFHLElBQUksWUFBWSxFQUF3QyxDQUFDO0lBRWpGLFNBQVM7SUFDVCxNQUFNLENBQW1EO0lBRXpELFlBQWdDLEtBQW9CLEVBQ3BCLFVBQXNCLEVBQ3RCLGNB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LG9CQUFvQixFQUFFLENBQ3pCLENBQUM7SUFDTixDQUFDO3dHQXRHUSxXQUFXLDBNQWtCWSxlQUFlOzRGQWxCdEMsV0FBVyw2TEN0QnhCLG1NQUtBLDRMRGVjLFNBQVMseUNBQUUsVUFBVTs7NEZBRXRCLFdBQVc7a0JBWHZCLFNBQVM7K0JBQ0ksZUFBZSxtQkFHUix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUMsT0FBTyxFQUFFLGVBQWUsRUFBQyx1QkFDWCxLQUFLLGNBQ2QsSUFBSSxXQUNQLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQzs7MEJBZ0JuQixRQUFROzswQkFDUixRQUFROzswQkFDUixRQUFROzswQkFDUixRQUFROzswQkFDUixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGVBQWU7eUNBWnRDLE9BQU87c0JBQWYsS0FBSztnQkFHSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCYkV4dHJhRXJyb3JDb250cm9sc30gZnJvbSAnLi4vZGlyZWN0aXZlcy9leHRyYS1lcnJvci1jb250cm9scy5kaXJlY3RpdmUnO1xuaW1wb3J0IHtkZWxheSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc3RhcnRXaXRoLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7QmJGb3JtU3VibWl0dGVyfSBmcm9tICcuLi9kaXJlY3RpdmVzL2Zvcm0tc3VibWl0dGVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0VMRU1FTlRTX0VSUk9SUywgRWxlbWVudHNFcnJvcn0gZnJvbSAnLi4vZWxlbWVudHMuaW50ZXJmYWNlcyc7XG5pbXBvcnQge0JiRm9ybVN1Ym1pdH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9mb3JtLXN1Ym1pdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtCYkxvY2FsaXplfSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbi9sb2NhbGl6ZSc7XG5pbXBvcnQge05nQ29udHJvbCwgVmFsaWRhdGlvbkVycm9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0FzeW5jUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdiYi1mb3JtLWVycm9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1lcnJvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZm9ybS1lcnJvci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDogeydjbGFzcyc6ICdiYi1mb3JtLWVycm9yJ30sXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQXN5bmNQaXBlLCBCYkxvY2FsaXplXVxufSlcbmV4cG9ydCBjbGFzcyBCYkZvcm1FcnJvciBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICAvLyBSZWFkb25seSBkYXRhLlxuICAgIHJlYWRvbmx5IGVycm9yc01hcDogRWxlbWVudHNFcnJvcjtcblxuICAgIC8vIElucHV0cy5cbiAgICBASW5wdXQoKSBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsID0gbnVsbDtcblxuICAgIC8vIE91dHB1dHMuXG4gICAgQE91dHB1dCgpIGVycm9yQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7IHRva2VuOiBzdHJpbmcsIGRhdGE/OiBhbnkgfSB8IG51bGw+KCk7XG5cbiAgICAvLyBTdGF0ZS5cbiAgICBlcnJvciQ6IE9ic2VydmFibGU8eyB0b2tlbjogc3RyaW5nLCBkYXRhPzogYW55IH0gfCBudWxsPjtcblxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHByaXZhdGUgX2Zvcm0/OiBCYkZvcm1TdWJtaXQsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfbmdDb250cm9sPzogTmdDb250cm9sLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2Zvcm1TdWJtaXR0ZXI/OiBCYkZvcm1TdWJtaXR0ZXIsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfZXh0cmFFcnJvckNvbnRyb2xzPzogQmJFeHRyYUVycm9yQ29udHJvbHMsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChFTEVNRU5UU19FUlJPUlMpIHByaXZhdGUgX2Vycm9ycz86IEVsZW1lbnRzRXJyb3JbXSkge1xuICAgICAgICB0aGlzLmVycm9yc01hcCA9IHRoaXMuX2Vycm9ycy5yZWR1Y2UoKHByZXZpb3VzLCBjdXJyZW50KSA9PiAoey4uLnByZXZpb3VzLCAuLi5jdXJyZW50fSksIHt9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zZXRDb250cm9sKCk7XG4gICAgICAgIHRoaXMuc2V0RXJyb3IoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldENvbnRyb2woKSB7XG4gICAgICAgIGlmICghdGhpcy5jb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wgPSB0aGlzLl9uZ0NvbnRyb2w7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEVycm9yKCkge1xuICAgICAgICBjb25zdCBzdWJtaXRTdGF0dXMkID0gdGhpcy5zdWJtaXRTdGF0dXNDaGFuZ2VzKCk7XG4gICAgICAgIGNvbnN0IGVycm9yQ2hhbmdlcyQgPSB0aGlzLmdldEVycm9ycygpLnBpcGUoXG4gICAgICAgICAgICBtYXAoZXJyb3JzID0+IHRoaXMuZm9ybWF0RXJyb3IoZXJyb3JzKSksXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgICAgbWFwKGVycm9yID0+IHR5cGVvZiBlcnJvciA9PT0gJ3N0cmluZycgPyB7dG9rZW46IGVycm9yfSA6IGVycm9yKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuZXJyb3IkID0gY29tYmluZUxhdGVzdChbc3VibWl0U3RhdHVzJCwgZXJyb3JDaGFuZ2VzJF0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKFtzdWJtaXR0ZWQsIGVycm9yXSkgPT4gc3VibWl0dGVkID8gZXJyb3IgOiBudWxsKSxcbiAgICAgICAgICAgIHRhcCh2YWx1ZSA9PiB0aGlzLmVycm9yQ2hhbmdlLmVtaXQodmFsdWUpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9ybWF0RXJyb3IoZXJyb3JzPzogVmFsaWRhdGlvbkVycm9ycykge1xuICAgICAgICBjb25zdCBbZXJyb3JOYW1lXSA9IE9iamVjdC5rZXlzKGVycm9ycyA/PyB7fSk7XG4gICAgICAgIGNvbnN0IGVycm9yID0gZXJyb3JzPy5bZXJyb3JOYW1lXTtcbiAgICAgICAgaWYgKCFlcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlcnJvckZ1bmN0aW9uID0gdGhpcy5lcnJvcnNNYXA/LltlcnJvck5hbWVdID8/IHRoaXMuZXJyb3JzTWFwPy5bJ3Vua25vd24nXTtcbiAgICAgICAgaWYgKCFlcnJvckZ1bmN0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBlcnJvckZ1bmN0aW9uKGVycm9yKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN1Ym1pdFN0YXR1c0NoYW5nZXMoKSB7XG4gICAgICAgIGNvbnN0IG5hdGl2ZSQgPSB0aGlzLmdldE5hdGl2ZUZvcm1TdWJtaXQoKTtcbiAgICAgICAgY29uc3QgbWFudWFsJCA9IHRoaXMuZ2V0TWFudWFsRm9ybVN1Ym1pdCgpO1xuICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChbbmF0aXZlJCwgbWFudWFsJF0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKFtuYXRpdmUsIG1hbnVhbF0pID0+IG5hdGl2ZSB8fCBtYW51YWwpLFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TmF0aXZlRm9ybVN1Ym1pdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9mb3JtKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybS5zdWJtaXRTdGF0dXMkO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TWFudWFsRm9ybVN1Ym1pdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9mb3JtU3VibWl0dGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1TdWJtaXR0ZXIuc3VibWl0dGVkJC5waXBlKFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RXJyb3JzKCkge1xuICAgICAgICBjb25zdCBlcnJvciQgPSAodGhpcy5jb250cm9sPy5zdGF0dXNDaGFuZ2VzID8/IG9mKG51bGwpKS5waXBlKFxuICAgICAgICAgICAgc3RhcnRXaXRoKHRoaXMuY29udHJvbD8uc3RhdHVzKSxcbiAgICAgICAgICAgIG1hcChfID0+IHRoaXMuY29udHJvbD8uZXJyb3JzID8/IG51bGwpLFxuICAgICAgICAgICAgZGVsYXkoMClcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBleHRyYUVycm9yJCA9IHRoaXMuX2V4dHJhRXJyb3JDb250cm9scz8uY2hhbmdlcz8uYXNPYnNlcnZhYmxlKCkgPz8gb2YobnVsbCk7XG5cbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW2Vycm9yJCwgZXh0cmFFcnJvciRdKS5waXBlKFxuICAgICAgICAgICAgbWFwKChbZXJyb3IsIGV4dHJhRXJyb3JdKSA9PiBlcnJvciA/PyBleHRyYUVycm9yID8/IG51bGwpLFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICApO1xuICAgIH1cblxufVxuIiwiQGlmIChlcnJvciQgfCBhc3luYzsgYXMgZXJyb3IpIHtcbiAgICBAaWYgKGVycm9yPy50b2tlbiB8IGJiTG9jYWxpemU6e29wdGlvbmFsOiB0cnVlLCBkYXRhOiBlcnJvcj8uZGF0YX07IGFzIG1lc3NhZ2UpIHtcbiAgICAgICAgPHAgY2xhc3M9XCJiYi1mb3JtLWVycm9yLW1lc3NhZ2VcIj57eyBtZXNzYWdlIH19PC9wPlxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { booleanAttribute, ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class BbFormGroup {
|
|
4
|
-
// Inputs.
|
|
5
|
-
grouped = false;
|
|
6
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbFormGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.12", type: BbFormGroup, isStandalone: true, selector: "bb-form-group", inputs: { grouped: ["grouped", "grouped", booleanAttribute] }, host: { properties: { "class.grouped": "grouped" }, classAttribute: "bb-form-group" }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [".bb-form-group{width:100%;display:flex;flex-wrap:wrap;margin-top:-.75rem}.bb-form-group>*{margin-top:.75rem}.bb-form-group>*:not(:first-child){margin-left:.75rem}.bb-form-group.start{justify-content:flex-start}.bb-form-group.end{justify-content:flex-end}.bb-form-group.vertical{flex-direction:column;justify-content:normal}.bb-form-group.vertical>*{margin-left:0}.bb-form-group.vertical.start{align-items:flex-start}.bb-form-group.vertical.end{align-items:flex-end}.bb-form-group.grouped{margin-bottom:1.5rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
8
|
-
}
|
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbFormGroup, decorators: [{
|
|
10
|
-
type: Component,
|
|
11
|
-
args: [{ selector: 'bb-form-group', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
12
|
-
'class': 'bb-form-group',
|
|
13
|
-
'[class.grouped]': 'grouped'
|
|
14
|
-
}, preserveWhitespaces: false, standalone: true, template: "<ng-content></ng-content>\n", styles: [".bb-form-group{width:100%;display:flex;flex-wrap:wrap;margin-top:-.75rem}.bb-form-group>*{margin-top:.75rem}.bb-form-group>*:not(:first-child){margin-left:.75rem}.bb-form-group.start{justify-content:flex-start}.bb-form-group.end{justify-content:flex-end}.bb-form-group.vertical{flex-direction:column;justify-content:normal}.bb-form-group.vertical>*{margin-left:0}.bb-form-group.vertical.start{align-items:flex-start}.bb-form-group.vertical.end{align-items:flex-end}.bb-form-group.grouped{margin-bottom:1.5rem}\n"] }]
|
|
15
|
-
}], propDecorators: { grouped: [{
|
|
16
|
-
type: Input,
|
|
17
|
-
args: [{ transform: booleanAttribute }]
|
|
18
|
-
}] } });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2VsZW1lbnRzL3NyYy9saWIvZm9ybS1ncm91cC9mb3JtLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9mb3JtLWdyb3VwL2Zvcm0tZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGdCQUFnQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBZTdHLE1BQU0sT0FBTyxXQUFXO0lBRXBCLFVBQVU7SUFDNEIsT0FBTyxHQUFZLEtBQUssQ0FBQzt3R0FIdEQsV0FBVzs0RkFBWCxXQUFXLDJGQUdELGdCQUFnQixvSENsQnZDLDZCQUNBOzs0RkRjYSxXQUFXO2tCQWJ2QixTQUFTOytCQUNJLGVBQWUsbUJBR1IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDRixPQUFPLEVBQUUsZUFBZTt3QkFDeEIsaUJBQWlCLEVBQUUsU0FBUztxQkFDL0IsdUJBQ29CLEtBQUssY0FDZCxJQUFJOzhCQUtzQixPQUFPO3NCQUE1QyxLQUFLO3VCQUFDLEVBQUMsU0FBUyxFQUFFLGdCQUFnQixFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtib29sZWFuQXR0cmlidXRlLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JiLWZvcm0tZ3JvdXAnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9mb3JtLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdjbGFzcyc6ICdiYi1mb3JtLWdyb3VwJyxcbiAgICAgICAgJ1tjbGFzcy5ncm91cGVkXSc6ICdncm91cGVkJ1xuICAgIH0sXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBCYkZvcm1Hcm91cCB7XG5cbiAgICAvLyBJbnB1dHMuXG4gICAgQElucHV0KHt0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGV9KSBncm91cGVkOiBib29sZWFuID0gZmFsc2U7XG5cbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
import { booleanAttribute, ChangeDetectionStrategy, Component, HostBinding, Inject, Input, numberAttribute, Optional, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { ELEMENTS_CONFIG, ELEMENTS_ICONS } from '../elements.interfaces';
|
|
3
|
-
import { AsyncPipe } from '@angular/common';
|
|
4
|
-
import { BehaviorSubject } from 'rxjs';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class BbIcon {
|
|
7
|
-
_config;
|
|
8
|
-
_registry;
|
|
9
|
-
// Data.
|
|
10
|
-
_src = null;
|
|
11
|
-
// State.
|
|
12
|
-
state$ = new BehaviorSubject(null);
|
|
13
|
-
alt = null;
|
|
14
|
-
size = 1.5;
|
|
15
|
-
ariaHidden = true;
|
|
16
|
-
unit = null;
|
|
17
|
-
set src(newValue) {
|
|
18
|
-
this.state$.next(this.convert(newValue));
|
|
19
|
-
this._src = newValue;
|
|
20
|
-
}
|
|
21
|
-
get src() {
|
|
22
|
-
return this._src;
|
|
23
|
-
}
|
|
24
|
-
get sizes() {
|
|
25
|
-
const unit = this.unit ?? this._config?.defaultDisplayUnit ?? 'rem';
|
|
26
|
-
return `${this.size}${unit}`;
|
|
27
|
-
}
|
|
28
|
-
constructor(_config, _registry) {
|
|
29
|
-
this._config = _config;
|
|
30
|
-
this._registry = _registry;
|
|
31
|
-
}
|
|
32
|
-
convert(src) {
|
|
33
|
-
const [namespace, value] = (src || '').split(':');
|
|
34
|
-
const onError = () => {
|
|
35
|
-
this.warn(`ElementsModule: The icon with src "${src}" could not be rendered correctly; Did you put a correct src attribute?`);
|
|
36
|
-
return { type: 'unknown' };
|
|
37
|
-
};
|
|
38
|
-
if (!namespace || !value || !this._registry) {
|
|
39
|
-
return onError();
|
|
40
|
-
}
|
|
41
|
-
// Try to find a image icon.
|
|
42
|
-
const imageIcon = this.findImageIcon(namespace, value);
|
|
43
|
-
if (imageIcon) {
|
|
44
|
-
return imageIcon;
|
|
45
|
-
}
|
|
46
|
-
// Try to find a font icon.
|
|
47
|
-
const fontIcon = this.findFontIcon(namespace, value);
|
|
48
|
-
if (fontIcon) {
|
|
49
|
-
return fontIcon;
|
|
50
|
-
}
|
|
51
|
-
// Return the on error function.
|
|
52
|
-
return onError();
|
|
53
|
-
}
|
|
54
|
-
findImageIcon(namespace, value) {
|
|
55
|
-
const data = this._registry.find(item => item['namespace'] === namespace && item['name'] === value);
|
|
56
|
-
if (!data) {
|
|
57
|
-
return null;
|
|
58
|
-
}
|
|
59
|
-
return { type: data['type'], src: data['src'] };
|
|
60
|
-
}
|
|
61
|
-
findFontIcon(namespace, content) {
|
|
62
|
-
const data = this._registry.find(item => item['namespace'] === namespace);
|
|
63
|
-
if (!data) {
|
|
64
|
-
return null;
|
|
65
|
-
}
|
|
66
|
-
const uses = data['uses'];
|
|
67
|
-
if (uses === 'data-attribute') {
|
|
68
|
-
return { type: data['type'], className: data['className'], attribute: content };
|
|
69
|
-
}
|
|
70
|
-
return { type: data['type'], className: data['className'], content };
|
|
71
|
-
}
|
|
72
|
-
warn = (content) => {
|
|
73
|
-
return console && console.warn && console.warn(content);
|
|
74
|
-
};
|
|
75
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbIcon, deps: [{ token: ELEMENTS_CONFIG, optional: true }, { token: ELEMENTS_ICONS, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
76
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: BbIcon, isStandalone: true, selector: "bb-icon", inputs: { alt: "alt", size: ["size", "size", numberAttribute], ariaHidden: ["ariaHidden", "ariaHidden", booleanAttribute], unit: "unit", src: "src" }, host: { properties: { "attr.aria-hidden": "ariaHidden", "style.width": "this.sizes", "style.height": "this.sizes", "style.min-width": "this.sizes", "style.min-height": "this.sizes", "style.font-size": "this.sizes" }, classAttribute: "bb-icon" }, ngImport: i0, template: "@if (state$ | async; as data) {\n @switch (data?.type) {\n @case ('font') {\n <i [attr.data-icon]=\"data?.attribute\"\n [class]=\"data?.className\">\n {{ data?.content }}\n </i>\n }\n @case ('image') {\n <img [src]=\"data?.src\"\n [alt]=\"alt\">\n }\n @default {\n <svg viewBox=\"0 0 1 1\">\n <rect x=\"0\" y=\"0\" width=\"1\" height=\"1\" fill=\"#c5c5c5\"></rect>\n </svg>\n }\n }\n}\n", styles: [".bb-icon{display:flex;-webkit-user-select:none;user-select:none;align-items:center;justify-content:center}.bb-icon>i{font-size:inherit}.bb-icon>img,.bb-icon>svg{width:100%;height:100%;display:flex}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
77
|
-
}
|
|
78
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbIcon, decorators: [{
|
|
79
|
-
type: Component,
|
|
80
|
-
args: [{ selector: 'bb-icon', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
81
|
-
'class': 'bb-icon',
|
|
82
|
-
'[attr.aria-hidden]': 'ariaHidden'
|
|
83
|
-
}, preserveWhitespaces: false, standalone: true, imports: [AsyncPipe], template: "@if (state$ | async; as data) {\n @switch (data?.type) {\n @case ('font') {\n <i [attr.data-icon]=\"data?.attribute\"\n [class]=\"data?.className\">\n {{ data?.content }}\n </i>\n }\n @case ('image') {\n <img [src]=\"data?.src\"\n [alt]=\"alt\">\n }\n @default {\n <svg viewBox=\"0 0 1 1\">\n <rect x=\"0\" y=\"0\" width=\"1\" height=\"1\" fill=\"#c5c5c5\"></rect>\n </svg>\n }\n }\n}\n", styles: [".bb-icon{display:flex;-webkit-user-select:none;user-select:none;align-items:center;justify-content:center}.bb-icon>i{font-size:inherit}.bb-icon>img,.bb-icon>svg{width:100%;height:100%;display:flex}\n"] }]
|
|
84
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
85
|
-
type: Optional
|
|
86
|
-
}, {
|
|
87
|
-
type: Inject,
|
|
88
|
-
args: [ELEMENTS_CONFIG]
|
|
89
|
-
}] }, { type: undefined, decorators: [{
|
|
90
|
-
type: Optional
|
|
91
|
-
}, {
|
|
92
|
-
type: Inject,
|
|
93
|
-
args: [ELEMENTS_ICONS]
|
|
94
|
-
}] }], propDecorators: { alt: [{
|
|
95
|
-
type: Input
|
|
96
|
-
}], size: [{
|
|
97
|
-
type: Input,
|
|
98
|
-
args: [{ transform: numberAttribute }]
|
|
99
|
-
}], ariaHidden: [{
|
|
100
|
-
type: Input,
|
|
101
|
-
args: [{ transform: booleanAttribute }]
|
|
102
|
-
}], unit: [{
|
|
103
|
-
type: Input
|
|
104
|
-
}], src: [{
|
|
105
|
-
type: Input
|
|
106
|
-
}], sizes: [{
|
|
107
|
-
type: HostBinding,
|
|
108
|
-
args: ['style.width']
|
|
109
|
-
}, {
|
|
110
|
-
type: HostBinding,
|
|
111
|
-
args: ['style.height']
|
|
112
|
-
}, {
|
|
113
|
-
type: HostBinding,
|
|
114
|
-
args: ['style.min-width']
|
|
115
|
-
}, {
|
|
116
|
-
type: HostBinding,
|
|
117
|
-
args: ['style.min-height']
|
|
118
|
-
}, {
|
|
119
|
-
type: HostBinding,
|
|
120
|
-
args: ['style.font-size']
|
|
121
|
-
}] } });
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2VsZW1lbnRzL3NyYy9saWIvaWNvbi9pY29uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9pY29uL2ljb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGdCQUFnQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdKLE9BQU8sRUFBQyxlQUFlLEVBQUUsY0FBYyxFQUFvRCxNQUFNLHdCQUF3QixDQUFDO0FBQzFILE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sTUFBTSxDQUFDOztBQWdCckMsTUFBTSxPQUFPLE1BQU07SUFpQzBDO0lBQ0Q7SUFoQ3hELFFBQVE7SUFDQSxJQUFJLEdBQWtCLElBQUksQ0FBQztJQUVuQyxTQUFTO0lBQ1QsTUFBTSxHQUFHLElBQUksZUFBZSxDQUFNLElBQUksQ0FBQyxDQUFDO0lBRS9CLEdBQUcsR0FBa0IsSUFBSSxDQUFDO0lBQ0UsSUFBSSxHQUFXLEdBQUcsQ0FBQztJQUNsQixVQUFVLEdBQVksSUFBSSxDQUFDO0lBQ3hELElBQUksR0FBK0IsSUFBSSxDQUFDO0lBRWpELElBQ0ksR0FBRyxDQUFDLFFBQXVCO1FBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztJQUN6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dGUsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbmplY3QsIElucHV0LCBudW1iZXJBdHRyaWJ1dGUsIE9wdGlvbmFsLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0VMRU1FTlRTX0NPTkZJRywgRUxFTUVOVFNfSUNPTlMsIEVsZW1lbnRzQ29uZmlnLCBFbGVtZW50c0Rpc3BsYXlVbml0LCBFbGVtZW50c0ljb259IGZyb20gJy4uL2VsZW1lbnRzLmludGVyZmFjZXMnO1xuaW1wb3J0IHtBc3luY1BpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYmItaWNvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ljb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ljb24uY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ2JiLWljb24nLFxuICAgICAgICAnW2F0dHIuYXJpYS1oaWRkZW5dJzogJ2FyaWFIaWRkZW4nXG4gICAgfSxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtBc3luY1BpcGVdXG59KVxuZXhwb3J0IGNsYXNzIEJiSWNvbiB7XG5cbiAgICAvLyBEYXRhLlxuICAgIHByaXZhdGUgX3NyYzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvLyBTdGF0ZS5cbiAgICBzdGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XG5cbiAgICBASW5wdXQoKSBhbHQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCh7dHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGV9KSBzaXplOiBudW1iZXIgPSAxLjU7XG4gICAgQElucHV0KHt0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGV9KSBhcmlhSGlkZGVuOiBib29sZWFuID0gdHJ1ZTtcbiAgICBASW5wdXQoKSB1bml0OiBFbGVtZW50c0Rpc3BsYXlVbml0IHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBzcmMobmV3VmFsdWU6IHN0cmluZyB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5zdGF0ZSQubmV4dCh0aGlzLmNvbnZlcnQobmV3VmFsdWUpKTtcbiAgICAgICAgdGhpcy5fc3JjID0gbmV3VmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IHNyYygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NyYztcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLndpZHRoJylcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmhlaWdodCcpXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5taW4td2lkdGgnKVxuICAgIEBIb3N0QmluZGluZygnc3R5bGUubWluLWhlaWdodCcpXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5mb250LXNpemUnKVxuICAgIGdldCBzaXplcygpIHtcbiAgICAgICAgY29uc3QgdW5pdCA9IHRoaXMudW5pdCA/PyB0aGlzLl9jb25maWc/LmRlZmF1bHREaXNwbGF5VW5pdCA/PyAncmVtJztcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuc2l6ZX0ke3VuaXR9YDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASW5qZWN0KEVMRU1FTlRTX0NPTkZJRykgcHJpdmF0ZSBfY29uZmlnPzogRWxlbWVudHNDb25maWcsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChFTEVNRU5UU19JQ09OUykgcHJpdmF0ZSBfcmVnaXN0cnk/OiBFbGVtZW50c0ljb25bXSkge1xuICAgIH1cblxuICAgIHByaXZhdGUgY29udmVydChzcmM6IHN0cmluZyB8IG51bGwpIHtcbiAgICAgICAgY29uc3QgW25hbWVzcGFjZSwgdmFsdWVdID0gKHNyYyB8fCAnJykuc3BsaXQoJzonKTtcblxuICAgICAgICBjb25zdCBvbkVycm9yID0gKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy53YXJuKGBFbGVtZW50c01vZHVsZTogVGhlIGljb24gd2l0aCBzcmMgXCIke3NyY31cIiBjb3VsZCBub3QgYmUgcmVuZGVyZWQgY29ycmVjdGx5OyBEaWQgeW91IHB1dCBhIGNvcnJlY3Qgc3JjIGF0dHJpYnV0ZT9gKTtcbiAgICAgICAgICAgIHJldHVybiB7dHlwZTogJ3Vua25vd24nfTtcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoIW5hbWVzcGFjZSB8fCAhdmFsdWUgfHwgIXRoaXMuX3JlZ2lzdHJ5KSB7XG4gICAgICAgICAgICByZXR1cm4gb25FcnJvcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVHJ5IHRvIGZpbmQgYSBpbWFnZSBpY29uLlxuICAgICAgICBjb25zdCBpbWFnZUljb24gPSB0aGlzLmZpbmRJbWFnZUljb24obmFtZXNwYWNlLCB2YWx1ZSk7XG4gICAgICAgIGlmIChpbWFnZUljb24pIHtcbiAgICAgICAgICAgIHJldHVybiBpbWFnZUljb247XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUcnkgdG8gZmluZCBhIGZvbnQgaWNvbi5cbiAgICAgICAgY29uc3QgZm9udEljb24gPSB0aGlzLmZpbmRGb250SWNvbihuYW1lc3BhY2UsIHZhbHVlKTtcbiAgICAgICAgaWYgKGZvbnRJY29uKSB7XG4gICAgICAgICAgICByZXR1cm4gZm9udEljb247XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZXR1cm4gdGhlIG9uIGVycm9yIGZ1bmN0aW9uLlxuICAgICAgICByZXR1cm4gb25FcnJvcigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZmluZEltYWdlSWNvbihuYW1lc3BhY2U6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xuICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5fcmVnaXN0cnkuZmluZChpdGVtID0+IGl0ZW1bJ25hbWVzcGFjZSddID09PSBuYW1lc3BhY2UgJiYgaXRlbVsnbmFtZSddID09PSB2YWx1ZSk7XG5cbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7dHlwZTogZGF0YVsndHlwZSddLCBzcmM6IGRhdGFbJ3NyYyddfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmRGb250SWNvbihuYW1lc3BhY2U6IHN0cmluZywgY29udGVudDogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9yZWdpc3RyeS5maW5kKGl0ZW0gPT4gaXRlbVsnbmFtZXNwYWNlJ10gPT09IG5hbWVzcGFjZSk7XG5cbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHVzZXMgPSBkYXRhWyd1c2VzJ107XG4gICAgICAgIGlmICh1c2VzID09PSAnZGF0YS1hdHRyaWJ1dGUnKSB7XG4gICAgICAgICAgICByZXR1cm4ge3R5cGU6IGRhdGFbJ3R5cGUnXSwgY2xhc3NOYW1lOiBkYXRhWydjbGFzc05hbWUnXSwgYXR0cmlidXRlOiBjb250ZW50fTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7dHlwZTogZGF0YVsndHlwZSddLCBjbGFzc05hbWU6IGRhdGFbJ2NsYXNzTmFtZSddLCBjb250ZW50fTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHdhcm4gPSAoY29udGVudDogc3RyaW5nKSA9PiB7XG4gICAgICAgIHJldHVybiBjb25zb2xlICYmIGNvbnNvbGUud2FybiAmJiBjb25zb2xlLndhcm4oY29udGVudCk7XG4gICAgfTtcblxufVxuIiwiQGlmIChzdGF0ZSQgfCBhc3luYzsgYXMgZGF0YSkge1xuICAgIEBzd2l0Y2ggKGRhdGE/LnR5cGUpIHtcbiAgICAgICAgQGNhc2UgKCdmb250Jykge1xuICAgICAgICAgICAgPGkgW2F0dHIuZGF0YS1pY29uXT1cImRhdGE/LmF0dHJpYnV0ZVwiXG4gICAgICAgICAgICAgICBbY2xhc3NdPVwiZGF0YT8uY2xhc3NOYW1lXCI+XG4gICAgICAgICAgICAgICAge3sgZGF0YT8uY29udGVudCB9fVxuICAgICAgICAgICAgPC9pPlxuICAgICAgICB9XG4gICAgICAgIEBjYXNlICgnaW1hZ2UnKSB7XG4gICAgICAgICAgICA8aW1nIFtzcmNdPVwiZGF0YT8uc3JjXCJcbiAgICAgICAgICAgICAgICAgW2FsdF09XCJhbHRcIj5cbiAgICAgICAgfVxuICAgICAgICBAZGVmYXVsdCB7XG4gICAgICAgICAgICA8c3ZnIHZpZXdCb3g9XCIwIDAgMSAxXCI+XG4gICAgICAgICAgICAgICAgPHJlY3QgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiMVwiIGhlaWdodD1cIjFcIiBmaWxsPVwiI2M1YzVjNVwiPjwvcmVjdD5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
import { booleanAttribute, ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
import { BbButton } from '../button/button.component';
|
|
4
|
-
import { AsyncPipe } from '@angular/common';
|
|
5
|
-
import { BehaviorSubject } from 'rxjs';
|
|
6
|
-
import { map } from 'rxjs/operators';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@bravobit/bb-foundation";
|
|
9
|
-
export class BbImagePicker {
|
|
10
|
-
_converter;
|
|
11
|
-
// Views.
|
|
12
|
-
fileInput;
|
|
13
|
-
// Inputs.
|
|
14
|
-
label = null;
|
|
15
|
-
placeholder = null;
|
|
16
|
-
styleDimensions = null;
|
|
17
|
-
cropDimensions = null;
|
|
18
|
-
buttonClass = null;
|
|
19
|
-
disabled = false;
|
|
20
|
-
grouped = false;
|
|
21
|
-
// Callbacks.
|
|
22
|
-
onTouchedCallback = () => ({});
|
|
23
|
-
onChangeCallback = () => ({});
|
|
24
|
-
// Form.
|
|
25
|
-
_value$ = new BehaviorSubject(null);
|
|
26
|
-
constructor(_converter) {
|
|
27
|
-
this._converter = _converter;
|
|
28
|
-
}
|
|
29
|
-
get value() {
|
|
30
|
-
return this._value$.getValue();
|
|
31
|
-
}
|
|
32
|
-
valueChange = new EventEmitter();
|
|
33
|
-
set value(value) {
|
|
34
|
-
this._value$.next(value);
|
|
35
|
-
this.valueChange.emit(value);
|
|
36
|
-
}
|
|
37
|
-
get image() {
|
|
38
|
-
return this._value$.pipe(map(value => value || this.placeholder), map(value => value ? `url(${value})` : null));
|
|
39
|
-
}
|
|
40
|
-
async onFileChange(event) {
|
|
41
|
-
// Grab the file from the event.
|
|
42
|
-
const file = event.target.files[0];
|
|
43
|
-
// Check if the file exists.
|
|
44
|
-
if (!file || this.disabled) {
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
try {
|
|
48
|
-
this.value = await this._converter.toDataUri(file, this.cropDimensions);
|
|
49
|
-
}
|
|
50
|
-
catch {
|
|
51
|
-
this.value = null;
|
|
52
|
-
}
|
|
53
|
-
this.onChangeCallback(this.value);
|
|
54
|
-
if (this.fileInput && this.fileInput.nativeElement) {
|
|
55
|
-
this.fileInput.nativeElement.value = '';
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
openFilePicker() {
|
|
59
|
-
if (this.disabled) {
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
// Execute a click on the file input.
|
|
63
|
-
this.fileInput
|
|
64
|
-
&& this.fileInput.nativeElement
|
|
65
|
-
&& this.fileInput.nativeElement.click
|
|
66
|
-
&& this.fileInput.nativeElement.click();
|
|
67
|
-
}
|
|
68
|
-
writeValue(value) {
|
|
69
|
-
this.value = value;
|
|
70
|
-
}
|
|
71
|
-
registerOnChange(method) {
|
|
72
|
-
this.onChangeCallback = method;
|
|
73
|
-
}
|
|
74
|
-
registerOnTouched(method) {
|
|
75
|
-
this.onTouchedCallback = method;
|
|
76
|
-
}
|
|
77
|
-
setDisabledState(isDisabled) {
|
|
78
|
-
this.disabled = isDisabled;
|
|
79
|
-
}
|
|
80
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbImagePicker, deps: [{ token: i1.ImageConverter }], target: i0.ɵɵFactoryTarget.Component });
|
|
81
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: BbImagePicker, isStandalone: true, selector: "bb-image-picker", inputs: { label: "label", placeholder: "placeholder", styleDimensions: "styleDimensions", cropDimensions: "cropDimensions", buttonClass: "buttonClass", disabled: ["disabled", "disabled", booleanAttribute], grouped: ["grouped", "grouped", booleanAttribute], value: "value" }, outputs: { valueChange: "valueChange" }, host: { properties: { "class.disabled": "disabled", "class.grouped": "grouped" }, classAttribute: "bb-image-picker" }, providers: [
|
|
82
|
-
{
|
|
83
|
-
provide: NG_VALUE_ACCESSOR,
|
|
84
|
-
useExisting: forwardRef(() => BbImagePicker),
|
|
85
|
-
multi: true
|
|
86
|
-
}
|
|
87
|
-
], viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true, static: true }], ngImport: i0, template: "<!-- The input that can open the file picker. -->\n<input #fileInput\n (change)=\"onFileChange($event)\"\n class=\"bb-image-picker-input\"\n type=\"file\"\n tabindex=\"-1\"\n accept=\"image/*\">\n\n<span [style.width]=\"styleDimensions?.width ?? '100%'\"\n [style.height]=\"styleDimensions?.height ?? '215px'\"\n [style.background-image]=\"image | async\"\n class=\"bb-image-input-image\"></span>\n\n@if (label; as labelText) {\n <button (click)=\"openFilePicker()\"\n bb-button\n class=\"bb-image-input-button {{ buttonClass }}\"\n type=\"button\">\n {{ labelText }}\n </button>\n}\n", styles: [".bb-image-picker{display:flex;align-items:center;flex-direction:column}.bb-image-picker.circle>.bb-image-input-image{border-radius:50%}.bb-image-picker.grouped{margin-bottom:1.5rem}.bb-image-picker.disabled{opacity:.5;cursor:default;-webkit-user-select:none;user-select:none;pointer-events:none}.bb-image-picker-input{opacity:0;z-index:-1;width:.1px;height:.1px;overflow:hidden;position:absolute}.bb-image-input-image{display:flex;cursor:default;position:relative;align-items:center;border-radius:.25rem;justify-content:center;background:#0003 url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7) center center/cover no-repeat}.bb-image-input-button{margin-top:.75rem}\n"], dependencies: [{ kind: "component", type: BbButton, selector: "button[bb-button]", inputs: ["disabled", "loading"], exportAs: ["bbButton"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
88
|
-
}
|
|
89
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbImagePicker, decorators: [{
|
|
90
|
-
type: Component,
|
|
91
|
-
args: [{ selector: 'bb-image-picker', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
92
|
-
'class': 'bb-image-picker',
|
|
93
|
-
'[class.disabled]': 'disabled',
|
|
94
|
-
'[class.grouped]': 'grouped'
|
|
95
|
-
}, providers: [
|
|
96
|
-
{
|
|
97
|
-
provide: NG_VALUE_ACCESSOR,
|
|
98
|
-
useExisting: forwardRef(() => BbImagePicker),
|
|
99
|
-
multi: true
|
|
100
|
-
}
|
|
101
|
-
], preserveWhitespaces: false, standalone: true, imports: [BbButton, AsyncPipe], template: "<!-- The input that can open the file picker. -->\n<input #fileInput\n (change)=\"onFileChange($event)\"\n class=\"bb-image-picker-input\"\n type=\"file\"\n tabindex=\"-1\"\n accept=\"image/*\">\n\n<span [style.width]=\"styleDimensions?.width ?? '100%'\"\n [style.height]=\"styleDimensions?.height ?? '215px'\"\n [style.background-image]=\"image | async\"\n class=\"bb-image-input-image\"></span>\n\n@if (label; as labelText) {\n <button (click)=\"openFilePicker()\"\n bb-button\n class=\"bb-image-input-button {{ buttonClass }}\"\n type=\"button\">\n {{ labelText }}\n </button>\n}\n", styles: [".bb-image-picker{display:flex;align-items:center;flex-direction:column}.bb-image-picker.circle>.bb-image-input-image{border-radius:50%}.bb-image-picker.grouped{margin-bottom:1.5rem}.bb-image-picker.disabled{opacity:.5;cursor:default;-webkit-user-select:none;user-select:none;pointer-events:none}.bb-image-picker-input{opacity:0;z-index:-1;width:.1px;height:.1px;overflow:hidden;position:absolute}.bb-image-input-image{display:flex;cursor:default;position:relative;align-items:center;border-radius:.25rem;justify-content:center;background:#0003 url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7) center center/cover no-repeat}.bb-image-input-button{margin-top:.75rem}\n"] }]
|
|
102
|
-
}], ctorParameters: () => [{ type: i1.ImageConverter }], propDecorators: { fileInput: [{
|
|
103
|
-
type: ViewChild,
|
|
104
|
-
args: ['fileInput', { static: true }]
|
|
105
|
-
}], label: [{
|
|
106
|
-
type: Input
|
|
107
|
-
}], placeholder: [{
|
|
108
|
-
type: Input
|
|
109
|
-
}], styleDimensions: [{
|
|
110
|
-
type: Input
|
|
111
|
-
}], cropDimensions: [{
|
|
112
|
-
type: Input
|
|
113
|
-
}], buttonClass: [{
|
|
114
|
-
type: Input
|
|
115
|
-
}], disabled: [{
|
|
116
|
-
type: Input,
|
|
117
|
-
args: [{ transform: booleanAttribute }]
|
|
118
|
-
}], grouped: [{
|
|
119
|
-
type: Input,
|
|
120
|
-
args: [{ transform: booleanAttribute }]
|
|
121
|
-
}], value: [{
|
|
122
|
-
type: Input
|
|
123
|
-
}], valueChange: [{
|
|
124
|
-
type: Output
|
|
125
|
-
}] } });
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9pbWFnZS1waWNrZXIvaW1hZ2UtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9pbWFnZS1waWNrZXIvaW1hZ2UtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN0SyxPQUFPLEVBQXVCLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkUsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBd0JuQyxNQUFNLE9BQU8sYUFBYTtJQXFCRjtJQW5CcEIsU0FBUztJQUMrQixTQUFTLENBQStCO0lBRWhGLFVBQVU7SUFDRCxLQUFLLEdBQWtCLElBQUksQ0FBQztJQUM1QixXQUFXLEdBQWtCLElBQUksQ0FBQztJQUNsQyxlQUFlLEdBQTZDLElBQUksQ0FBQztJQUNqRSxjQUFjLEdBQTZDLElBQUksQ0FBQztJQUNoRSxXQUFXLEdBQWtCLElBQUksQ0FBQztJQUNMLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFDMUIsT0FBTyxHQUFZLEtBQUssQ0FBQztJQUUv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IHtib29sZWFuQXR0cmlidXRlLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7SW1hZ2VDb252ZXJ0ZXJ9IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uJztcbmltcG9ydCB7QmJCdXR0b259IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7QXN5bmNQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdiYi1pbWFnZS1waWNrZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ltYWdlLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnYmItaW1hZ2UtcGlja2VyJyxcbiAgICAgICAgJ1tjbGFzcy5kaXNhYmxlZF0nOiAnZGlzYWJsZWQnLFxuICAgICAgICAnW2NsYXNzLmdyb3VwZWRdJzogJ2dyb3VwZWQnXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBCYkltYWdlUGlja2VyKSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0JiQnV0dG9uLCBBc3luY1BpcGVdXG59KVxuZXhwb3J0IGNsYXNzIEJiSW1hZ2VQaWNrZXIgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cbiAgICAvLyBWaWV3cy5cbiAgICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnLCB7c3RhdGljOiB0cnVlfSkgZmlsZUlucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgLy8gSW5wdXRzLlxuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgc3R5bGVEaW1lbnNpb25zOiB7IHdpZHRoOiBzdHJpbmcsIGhlaWdodDogc3RyaW5nIH0gfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSBjcm9wRGltZW5zaW9uczogeyB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciB9IHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgYnV0dG9uQ2xhc3M6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCh7dHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlfSkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoe3RyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZX0pIGdyb3VwZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8vIENhbGxiYWNrcy5cbiAgICBvblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCA9ICgpID0+ICh7fSk7XG4gICAgb25DaGFuZ2VDYWxsYmFjazogKF86IHN0cmluZyB8IG51bGwpID0+IHZvaWQgPSAoKSA9PiAoe30pO1xuXG4gICAgLy8gRm9ybS5cbiAgICBwcml2YXRlIF92YWx1ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IG51bGw+KG51bGwpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfY29udmVydGVyOiBJbWFnZUNvbnZlcnRlcikge1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWUkLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBudWxsPigpO1xuXG4gICAgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlJC5uZXh0KHZhbHVlKTtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXQgaW1hZ2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZSQucGlwZShcbiAgICAgICAgICAgIG1hcCh2YWx1ZSA9PiB2YWx1ZSB8fCB0aGlzLnBsYWNlaG9sZGVyKSxcbiAgICAgICAgICAgIG1hcCh2YWx1ZSA9PiB2YWx1ZSA/IGB1cmwoJHt2YWx1ZX0pYCA6IG51bGwpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgYXN5bmMgb25GaWxlQ2hhbmdlKGV2ZW50KSB7XG4gICAgICAgIC8vIEdyYWIgdGhlIGZpbGUgZnJvbSB0aGUgZXZlbnQuXG4gICAgICAgIGNvbnN0IGZpbGU6IEZpbGUgPSBldmVudC50YXJnZXQuZmlsZXNbMF07XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGZpbGUgZXhpc3RzLlxuICAgICAgICBpZiAoIWZpbGUgfHwgdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBhd2FpdCB0aGlzLl9jb252ZXJ0ZXIudG9EYXRhVXJpKGZpbGUsIHRoaXMuY3JvcERpbWVuc2lvbnMpO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMudmFsdWUpO1xuXG4gICAgICAgIGlmICh0aGlzLmZpbGVJbnB1dCAmJiB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvcGVuRmlsZVBpY2tlcigpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEV4ZWN1dGUgYSBjbGljayBvbiB0aGUgZmlsZSBpbnB1dC5cbiAgICAgICAgdGhpcy5maWxlSW5wdXRcbiAgICAgICAgJiYgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudFxuICAgICAgICAmJiB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrXG4gICAgICAgICYmIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKG1ldGhvZDogKF86IHN0cmluZyB8IG51bGwpID0+IHZvaWQpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrID0gbWV0aG9kO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKG1ldGhvZDogKCkgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gbWV0aG9kO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB9XG5cbn1cbiIsIjwhLS0gVGhlIGlucHV0IHRoYXQgY2FuIG9wZW4gdGhlIGZpbGUgcGlja2VyLiAtLT5cbjxpbnB1dCAjZmlsZUlucHV0XG4gICAgICAgKGNoYW5nZSk9XCJvbkZpbGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgY2xhc3M9XCJiYi1pbWFnZS1waWNrZXItaW5wdXRcIlxuICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICBhY2NlcHQ9XCJpbWFnZS8qXCI+XG5cbjxzcGFuIFtzdHlsZS53aWR0aF09XCJzdHlsZURpbWVuc2lvbnM/LndpZHRoID8/ICcxMDAlJ1wiXG4gICAgICBbc3R5bGUuaGVpZ2h0XT1cInN0eWxlRGltZW5zaW9ucz8uaGVpZ2h0ID8/ICcyMTVweCdcIlxuICAgICAgW3N0eWxlLmJhY2tncm91bmQtaW1hZ2VdPVwiaW1hZ2UgfCBhc3luY1wiXG4gICAgICBjbGFzcz1cImJiLWltYWdlLWlucHV0LWltYWdlXCI+PC9zcGFuPlxuXG5AaWYgKGxhYmVsOyBhcyBsYWJlbFRleHQpIHtcbiAgICA8YnV0dG9uIChjbGljayk9XCJvcGVuRmlsZVBpY2tlcigpXCJcbiAgICAgICAgICAgIGJiLWJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJiYi1pbWFnZS1pbnB1dC1idXR0b24ge3sgYnV0dG9uQ2xhc3MgfX1cIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICB7eyBsYWJlbFRleHQgfX1cbiAgICA8L2J1dHRvbj5cbn1cbiJdfQ==
|