@bravobit/bb-foundation 0.15.6 → 0.16.3
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.interceptor.d.ts +1 -1
- package/auth/lib/auth.service.d.ts +1 -1
- package/auth/package.json +5 -5
- package/collections/lib/collection.d.ts +1 -1
- package/collections/package.json +5 -5
- package/controls/bravobit-bb-foundation-controls.d.ts +5 -0
- package/controls/lib/checkbox/checkbox/checkbox.component.d.ts +47 -0
- package/controls/lib/checkbox/checkbox-group/checkbox-group.component.d.ts +18 -0
- package/controls/lib/checkbox/checkbox.module.d.ts +9 -0
- package/controls/lib/controls.module.d.ts +7 -0
- package/controls/package.json +10 -0
- package/controls/public_api.d.ts +4 -0
- package/dashboard/package.json +5 -5
- package/dialog/package.json +5 -5
- package/elements/package.json +5 -5
- package/{esm2015/auth/bravobit-bb-foundation-auth.js → esm2020/auth/bravobit-bb-foundation-auth.mjs} +0 -0
- package/esm2020/auth/lib/auth.interceptor.mjs +94 -0
- package/{esm2015/auth/lib/auth.module.js → esm2020/auth/lib/auth.module.mjs} +5 -5
- package/esm2020/auth/lib/auth.service.mjs +276 -0
- package/esm2020/auth/lib/auth.session.mjs +131 -0
- package/{esm2015/auth/lib/directives/authenticated.directive.js → esm2020/auth/lib/directives/authenticated.directive.mjs} +5 -6
- package/esm2020/auth/lib/directives/permission.directive.mjs +80 -0
- package/esm2020/auth/lib/directives/role.directive.mjs +37 -0
- package/esm2020/auth/lib/guards/anonymous.guard.mjs +34 -0
- package/esm2020/auth/lib/guards/authenticated.guard.mjs +35 -0
- package/{esm2015/auth/lib/helpers/jwt.helper.js → esm2020/auth/lib/helpers/jwt.helper.mjs} +3 -3
- package/{esm2015/auth/lib/helpers/mapper.helper.js → esm2020/auth/lib/helpers/mapper.helper.mjs} +4 -4
- package/{esm2015/auth/lib/interfaces/config.interface.js → esm2020/auth/lib/interfaces/config.interface.mjs} +0 -0
- package/{esm2015/auth/lib/interfaces/mapper.interface.js → esm2020/auth/lib/interfaces/mapper.interface.mjs} +0 -0
- package/{esm2015/auth/lib/interfaces/provider.interface.js → esm2020/auth/lib/interfaces/provider.interface.mjs} +0 -0
- package/{esm2015/auth/lib/interfaces/token.interface.js → esm2020/auth/lib/interfaces/token.interface.mjs} +0 -0
- package/esm2020/auth/lib/permissions.service.mjs +56 -0
- package/esm2020/auth/lib/providers/email.provider.mjs +25 -0
- package/esm2020/auth/lib/providers/verify.provider.mjs +19 -0
- package/{esm2015/auth/lib/tokens/use-authorization.token.js → esm2020/auth/lib/tokens/use-authorization.token.mjs} +0 -0
- package/{esm2015/auth/public_api.js → esm2020/auth/public_api.mjs} +0 -0
- package/{esm2015/bravobit-bb-foundation.js → esm2020/bravobit-bb-foundation.mjs} +0 -0
- package/{esm2015/collections/bravobit-bb-foundation-collections.js → esm2020/collections/bravobit-bb-foundation-collections.mjs} +0 -0
- package/esm2020/collections/lib/collection.mjs +102 -0
- package/{esm2015/collections/lib/collections.module.js → esm2020/collections/lib/collections.module.mjs} +5 -5
- package/esm2020/collections/lib/components/collections-pager/collections-pager.component.mjs +123 -0
- package/esm2020/collections/lib/components/collections-viewer/collections-viewer.component.mjs +31 -0
- package/{esm2015/collections/lib/components/collections.directive.js → esm2020/collections/lib/components/collections.directive.mjs} +13 -13
- package/{esm2015/collections/lib/interfaces/collection.interface.js → esm2020/collections/lib/interfaces/collection.interface.mjs} +0 -0
- package/esm2020/collections/lib/providers/api-collection.provider.mjs +71 -0
- package/esm2020/collections/lib/providers/collection.provider.mjs +13 -0
- package/{esm2015/collections/lib/providers/local-collection.provider.js → esm2020/collections/lib/providers/local-collection.provider.mjs} +0 -0
- package/{esm2015/collections/public_api.js → esm2020/collections/public_api.mjs} +0 -0
- package/esm2020/controls/bravobit-bb-foundation-controls.mjs +5 -0
- package/esm2020/controls/lib/checkbox/checkbox/checkbox.component.mjs +153 -0
- package/esm2020/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +48 -0
- package/esm2020/controls/lib/checkbox/checkbox.module.mjs +19 -0
- package/esm2020/controls/lib/controls.module.mjs +16 -0
- package/esm2020/controls/public_api.mjs +5 -0
- package/{esm2015/dashboard/bravobit-bb-foundation-dashboard.js → esm2020/dashboard/bravobit-bb-foundation-dashboard.mjs} +0 -0
- package/esm2020/dashboard/lib/dashboard/dashboard.component.mjs +56 -0
- package/esm2020/dashboard/lib/dashboard-header/dashboard-header.component.mjs +30 -0
- package/esm2020/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +31 -0
- package/esm2020/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +29 -0
- package/esm2020/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +75 -0
- package/esm2020/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +99 -0
- package/esm2020/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +62 -0
- package/{esm2015/dashboard/lib/dashboard.module.js → esm2020/dashboard/lib/dashboard.module.mjs} +5 -5
- package/{esm2015/dashboard/public_api.js → esm2020/dashboard/public_api.mjs} +0 -0
- package/{esm2015/dialog/bravobit-bb-foundation-dialog.js → esm2020/dialog/bravobit-bb-foundation-dialog.mjs} +0 -0
- package/esm2020/dialog/lib/dialog-actions/dialog-actions.component.mjs +12 -0
- package/esm2020/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +37 -0
- package/{esm2015/dialog/lib/dialog-container/dialog-container.component.js → esm2020/dialog/lib/dialog-container/dialog-container.component.mjs} +6 -15
- package/esm2020/dialog/lib/dialog-header/dialog-header.component.mjs +25 -0
- package/esm2020/dialog/lib/dialog-link/dialog-link.component.mjs +11 -0
- package/esm2020/dialog/lib/dialog-modal/dialog-modal.component.mjs +46 -0
- package/esm2020/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +134 -0
- package/{esm2015/dialog/lib/dialog.injector.js → esm2020/dialog/lib/dialog.injector.mjs} +0 -0
- package/{esm2015/dialog/lib/dialog.insertion.js → esm2020/dialog/lib/dialog.insertion.mjs} +4 -4
- package/{esm2015/dialog/lib/dialog.interfaces.js → esm2020/dialog/lib/dialog.interfaces.mjs} +0 -0
- package/{esm2015/dialog/lib/dialog.module.js → esm2020/dialog/lib/dialog.module.mjs} +5 -9
- package/{esm2015/dialog/lib/dialog.ref.js → esm2020/dialog/lib/dialog.ref.mjs} +0 -0
- package/{esm2015/dialog/lib/dialog.service.js → esm2020/dialog/lib/dialog.service.mjs} +5 -5
- package/{esm2015/dialog/public_api.js → esm2020/dialog/public_api.mjs} +0 -0
- package/{esm2015/elements/bravobit-bb-foundation-elements.js → esm2020/elements/bravobit-bb-foundation-elements.mjs} +0 -0
- package/esm2020/elements/lib/avatar/avatar.component.mjs +142 -0
- package/esm2020/elements/lib/button/button.component.mjs +61 -0
- package/esm2020/elements/lib/checkbox/checkbox.component.mjs +73 -0
- package/esm2020/elements/lib/date-picker/date-picker.component.mjs +304 -0
- package/{esm2015/elements/lib/directives/addon.directive.js → esm2020/elements/lib/directives/addon.directive.mjs} +7 -7
- package/esm2020/elements/lib/directives/autosize.directive.mjs +72 -0
- package/{esm2015/elements/lib/directives/focus-trap.directive.js → esm2020/elements/lib/directives/focus-trap.directive.mjs} +4 -4
- package/{esm2015/elements/lib/directives/focus.directive.js → esm2020/elements/lib/directives/focus.directive.mjs} +4 -4
- package/esm2020/elements/lib/directives/form-submit.directive.mjs +50 -0
- package/esm2020/elements/lib/directives/input.directive.mjs +136 -0
- package/{esm2015/elements/lib/directives/template.directive.js → esm2020/elements/lib/directives/template.directive.mjs} +4 -4
- package/esm2020/elements/lib/dropdown/dropdown.component.mjs +100 -0
- package/{esm2015/elements/lib/elements.interfaces.js → esm2020/elements/lib/elements.interfaces.mjs} +0 -0
- package/{esm2015/elements/lib/elements.module.js → esm2020/elements/lib/elements.module.mjs} +5 -5
- package/esm2020/elements/lib/file-picker/file-picker.component.mjs +236 -0
- package/esm2020/elements/lib/form-control/form-control.component.mjs +49 -0
- package/esm2020/elements/lib/form-error/form-error.component.mjs +108 -0
- package/esm2020/elements/lib/form-group/form-group.component.mjs +18 -0
- package/esm2020/elements/lib/icon/icon.component.mjs +102 -0
- package/esm2020/elements/lib/image-picker/image-picker.component.mjs +106 -0
- package/esm2020/elements/lib/pipes/file-image.pipe.mjs +42 -0
- package/{esm2015/elements/lib/pipes/file-size.pipe.js → esm2020/elements/lib/pipes/file-size.pipe.mjs} +4 -4
- package/esm2020/elements/lib/pipes/relative-time.pipe.mjs +94 -0
- package/esm2020/elements/lib/spinner/spinner.component.mjs +25 -0
- package/esm2020/elements/lib/tag/tag.component.mjs +18 -0
- package/{esm2015/elements/public_api.js → esm2020/elements/public_api.mjs} +0 -0
- package/{esm2015/http/bravobit-bb-foundation-http.js → esm2020/http/bravobit-bb-foundation-http.mjs} +0 -0
- package/esm2020/http/lib/classes/http.config.mjs +29 -0
- package/esm2020/http/lib/classes/http.error.mjs +20 -0
- package/{esm2015/http/lib/http.interfaces.js → esm2020/http/lib/http.interfaces.mjs} +0 -0
- package/{esm2015/http/lib/http.module.js → esm2020/http/lib/http.module.mjs} +5 -5
- package/esm2020/http/lib/interceptors/base-url.interceptor.mjs +50 -0
- package/esm2020/http/lib/interceptors/error.interceptor.mjs +32 -0
- package/{esm2015/http/public_api.js → esm2020/http/public_api.mjs} +0 -0
- package/{esm2015/lib/core/miscellaneous/regex.js → esm2020/lib/core/miscellaneous/regex.mjs} +0 -0
- package/esm2020/lib/core/miscellaneous/validator.mjs +85 -0
- package/esm2020/lib/core/mixins/can-disable.mjs +16 -0
- package/{esm2015/lib/core/mixins/can-hide-errors.js → esm2020/lib/core/mixins/can-hide-errors.mjs} +2 -2
- package/esm2020/lib/core/mixins/can-load.mjs +16 -0
- package/{esm2015/lib/core/mixins/constructor.js → esm2020/lib/core/mixins/constructor.mjs} +0 -0
- package/esm2020/lib/core/mixins/has-error.mjs +16 -0
- package/esm2020/lib/core/mixins/is-focused.mjs +16 -0
- package/esm2020/lib/core/mixins/is-grouped.mjs +16 -0
- package/esm2020/lib/core/mixins/is-readonly.mjs +16 -0
- package/esm2020/lib/core/mixins/is-required.mjs +16 -0
- package/esm2020/lib/core/services/clipboard.service.mjs +70 -0
- package/esm2020/lib/core/services/exif.service.mjs +163 -0
- package/esm2020/lib/core/services/file-loader.service.mjs +87 -0
- package/esm2020/lib/core/services/image-converter.service.mjs +123 -0
- package/{esm2015/lib/core/services/languages.service.js → esm2020/lib/core/services/languages.service.mjs} +4 -4
- package/{esm2015/lib/core/services/network.service.js → esm2020/lib/core/services/network.service.mjs} +5 -6
- package/esm2020/lib/core/services/patch.service.mjs +63 -0
- package/{esm2015/lib/core/services/platform.service.js → esm2020/lib/core/services/platform.service.mjs} +5 -5
- package/{esm2015/lib/core/tokens/accept-language.token.js → esm2020/lib/core/tokens/accept-language.token.mjs} +0 -0
- package/{esm2015/lib/core/tokens/base-url.token.js → esm2020/lib/core/tokens/base-url.token.mjs} +0 -0
- package/{esm2015/lib/core/tokens/cookie.token.js → esm2020/lib/core/tokens/cookie.token.mjs} +0 -0
- package/{esm2015/lib/core/tokens/location.token.js → esm2020/lib/core/tokens/location.token.mjs} +0 -0
- package/{esm2015/lib/core/tokens/navigator.token.js → esm2020/lib/core/tokens/navigator.token.mjs} +0 -0
- package/{esm2015/lib/core/tokens/window.token.js → esm2020/lib/core/tokens/window.token.mjs} +0 -0
- package/{esm2015/localize/bravobit-bb-foundation-localize.js → esm2020/localize/bravobit-bb-foundation-localize.mjs} +0 -0
- package/{esm2015/localize/lib/functions/date.function.js → esm2020/localize/lib/functions/date.function.mjs} +0 -0
- package/{esm2015/localize/lib/functions/lowercase.function.js → esm2020/localize/lib/functions/lowercase.function.mjs} +0 -0
- package/{esm2015/localize/lib/functions/uppercase.function.js → esm2020/localize/lib/functions/uppercase.function.mjs} +0 -0
- package/{esm2015/localize/lib/handlers/missing.handler.js → esm2020/localize/lib/handlers/missing.handler.mjs} +0 -0
- package/{esm2015/localize/lib/interfaces/config.interfaces.js → esm2020/localize/lib/interfaces/config.interfaces.mjs} +0 -0
- package/{esm2015/localize/lib/interfaces/dictionary.interfaces.js → esm2020/localize/lib/interfaces/dictionary.interfaces.mjs} +0 -0
- package/{esm2015/localize/lib/interfaces/functions.interfaces.js → esm2020/localize/lib/interfaces/functions.interfaces.mjs} +0 -0
- package/{esm2015/localize/lib/interfaces/handlers.interfaces.js → esm2020/localize/lib/interfaces/handlers.interfaces.mjs} +0 -0
- package/{esm2015/localize/lib/interfaces/options.interfaces.js → esm2020/localize/lib/interfaces/options.interfaces.mjs} +0 -0
- package/{esm2015/localize/lib/localizations/dutch.localization.js → esm2020/localize/lib/localizations/dutch.localization.mjs} +0 -0
- package/{esm2015/localize/lib/localizations/english.localization.js → esm2020/localize/lib/localizations/english.localization.mjs} +0 -0
- package/esm2020/localize/lib/localize.dictionary.mjs +135 -0
- package/{esm2015/localize/lib/localize.module.js → esm2020/localize/lib/localize.module.mjs} +5 -5
- package/{esm2015/localize/lib/localize.pipe.js → esm2020/localize/lib/localize.pipe.mjs} +5 -5
- package/esm2020/localize/lib/localize.service.mjs +277 -0
- package/esm2020/localize/lib/views/localize-string/localize-string.component.mjs +88 -0
- package/{esm2015/localize/lib/views/localize-template-or-string.directive.js → esm2020/localize/lib/views/localize-template-or-string.directive.mjs} +4 -4
- package/{esm2015/localize/lib/views/localize-template.directive.js → esm2020/localize/lib/views/localize-template.directive.mjs} +4 -4
- package/{esm2015/localize/public_api.js → esm2020/localize/public_api.mjs} +0 -0
- package/{esm2015/notifications/bravobit-bb-foundation-notifications.js → esm2020/notifications/bravobit-bb-foundation-notifications.mjs} +0 -0
- package/esm2020/notifications/lib/notifications-item/notifications-item.component.mjs +100 -0
- package/esm2020/notifications/lib/notifications-list/notifications-list.component.mjs +47 -0
- package/{esm2015/notifications/lib/notifications.animations.js → esm2020/notifications/lib/notifications.animations.mjs} +0 -0
- package/{esm2015/notifications/lib/notifications.injector.js → esm2020/notifications/lib/notifications.injector.mjs} +0 -0
- package/{esm2015/notifications/lib/notifications.interfaces.js → esm2020/notifications/lib/notifications.interfaces.mjs} +0 -0
- package/{esm2015/notifications/lib/notifications.module.js → esm2020/notifications/lib/notifications.module.mjs} +6 -7
- package/{esm2015/notifications/lib/notifications.service.js → esm2020/notifications/lib/notifications.service.mjs} +5 -5
- package/{esm2015/notifications/public_api.js → esm2020/notifications/public_api.mjs} +0 -0
- package/{esm2015/public_api.js → esm2020/public_api.mjs} +1 -2
- package/{esm2015/recaptcha/bravobit-bb-foundation-recaptcha.js → esm2020/recaptcha/bravobit-bb-foundation-recaptcha.mjs} +0 -0
- package/esm2020/recaptcha/lib/recaptcha/recaptcha.component.mjs +185 -0
- package/esm2020/recaptcha/lib/recaptcha-loader.service.mjs +90 -0
- package/{esm2015/recaptcha/lib/recaptcha.interface.js → esm2020/recaptcha/lib/recaptcha.interface.mjs} +0 -0
- package/{esm2015/recaptcha/lib/recaptcha.module.js → esm2020/recaptcha/lib/recaptcha.module.mjs} +5 -5
- package/{esm2015/recaptcha/public_api.js → esm2020/recaptcha/public_api.mjs} +0 -0
- package/{esm2015/rxjs/bravobit-bb-foundation-rxjs.js → esm2020/rxjs/bravobit-bb-foundation-rxjs.mjs} +0 -0
- package/esm2020/rxjs/lib/operators/combine-latest-map.operator.mjs +10 -0
- package/{esm2015/rxjs/lib/operators/filter-nil.operator.js → esm2020/rxjs/lib/operators/filter-nil.operator.mjs} +0 -0
- package/{esm2015/rxjs/public_api.js → esm2020/rxjs/public_api.mjs} +0 -0
- package/{esm2015/storage/bravobit-bb-foundation-storage.js → esm2020/storage/bravobit-bb-foundation-storage.mjs} +0 -0
- package/{esm2015/storage/lib/interfaces/attributes.interface.js → esm2020/storage/lib/interfaces/attributes.interface.mjs} +0 -0
- package/{esm2015/storage/lib/interfaces/memory.interface.js → esm2020/storage/lib/interfaces/memory.interface.mjs} +0 -0
- package/{esm2015/storage/lib/interfaces/strategy.interface.js → esm2020/storage/lib/interfaces/strategy.interface.mjs} +0 -0
- package/esm2020/storage/lib/storage.service.mjs +109 -0
- package/esm2020/storage/lib/strategies/cookie-storage.strategy.mjs +142 -0
- package/{esm2015/storage/lib/strategies/memory-storage.strategy.js → esm2020/storage/lib/strategies/memory-storage.strategy.mjs} +2 -2
- package/esm2020/storage/lib/strategies/polyfill-storage.strategy.mjs +102 -0
- package/{esm2015/storage/public_api.js → esm2020/storage/public_api.mjs} +0 -0
- package/{esm2015/table/bravobit-bb-foundation-table.js → esm2020/table/bravobit-bb-foundation-table.mjs} +0 -0
- package/esm2020/table/lib/components/table/table.component.mjs +191 -0
- package/esm2020/table/lib/components/table-cell/table-cell.component.mjs +11 -0
- package/esm2020/table/lib/components/table-header-cell/table-header-cell.component.mjs +131 -0
- package/esm2020/table/lib/components/table-pager/table-pager.component.mjs +136 -0
- package/esm2020/table/lib/data/datasource.data.mjs +32 -0
- package/esm2020/table/lib/data/generic.data.mjs +72 -0
- package/{esm2015/table/lib/interfaces/datasource.interface.js → esm2020/table/lib/interfaces/datasource.interface.mjs} +0 -0
- package/{esm2015/table/lib/interfaces/table.interfaces.js → esm2020/table/lib/interfaces/table.interfaces.mjs} +0 -0
- package/{esm2015/table/lib/table.module.js → esm2020/table/lib/table.module.mjs} +5 -5
- package/{esm2015/table/public_api.js → esm2020/table/public_api.mjs} +0 -0
- package/fesm2015/{bravobit-bb-foundation-auth.js → bravobit-bb-foundation-auth.mjs} +79 -68
- package/fesm2015/bravobit-bb-foundation-auth.mjs.map +1 -0
- package/fesm2015/{bravobit-bb-foundation-collections.js → bravobit-bb-foundation-collections.mjs} +45 -57
- package/fesm2015/bravobit-bb-foundation-collections.mjs.map +1 -0
- package/fesm2015/bravobit-bb-foundation-controls.mjs +235 -0
- package/fesm2015/bravobit-bb-foundation-controls.mjs.map +1 -0
- package/fesm2015/bravobit-bb-foundation-dashboard.mjs +416 -0
- package/fesm2015/bravobit-bb-foundation-dashboard.mjs.map +1 -0
- package/fesm2015/{bravobit-bb-foundation-dialog.js → bravobit-bb-foundation-dialog.mjs} +45 -106
- package/fesm2015/bravobit-bb-foundation-dialog.mjs.map +1 -0
- package/fesm2015/{bravobit-bb-foundation-elements.js → bravobit-bb-foundation-elements.mjs} +195 -303
- package/fesm2015/bravobit-bb-foundation-elements.mjs.map +1 -0
- package/fesm2015/{bravobit-bb-foundation-http.js → bravobit-bb-foundation-http.mjs} +18 -16
- package/fesm2015/bravobit-bb-foundation-http.mjs.map +1 -0
- package/fesm2015/{bravobit-bb-foundation-localize.js → bravobit-bb-foundation-localize.mjs} +63 -69
- package/fesm2015/bravobit-bb-foundation-localize.mjs.map +1 -0
- package/fesm2015/bravobit-bb-foundation-notifications.mjs +377 -0
- package/fesm2015/bravobit-bb-foundation-notifications.mjs.map +1 -0
- package/fesm2015/{bravobit-bb-foundation-recaptcha.js → bravobit-bb-foundation-recaptcha.mjs} +40 -47
- package/fesm2015/bravobit-bb-foundation-recaptcha.mjs.map +1 -0
- package/fesm2015/{bravobit-bb-foundation-rxjs.js → bravobit-bb-foundation-rxjs.mjs} +1 -1
- package/fesm2015/bravobit-bb-foundation-rxjs.mjs.map +1 -0
- package/fesm2015/{bravobit-bb-foundation-storage.js → bravobit-bb-foundation-storage.mjs} +12 -10
- package/fesm2015/bravobit-bb-foundation-storage.mjs.map +1 -0
- package/fesm2015/bravobit-bb-foundation-table.mjs +603 -0
- package/fesm2015/bravobit-bb-foundation-table.mjs.map +1 -0
- package/fesm2015/{bravobit-bb-foundation.js → bravobit-bb-foundation.mjs} +76 -69
- package/fesm2015/bravobit-bb-foundation.mjs.map +1 -0
- package/fesm2020/bravobit-bb-foundation-auth.mjs +928 -0
- package/fesm2020/bravobit-bb-foundation-auth.mjs.map +1 -0
- package/fesm2020/bravobit-bb-foundation-collections.mjs +441 -0
- package/fesm2020/bravobit-bb-foundation-collections.mjs.map +1 -0
- package/fesm2020/bravobit-bb-foundation-controls.mjs +233 -0
- package/fesm2020/bravobit-bb-foundation-controls.mjs.map +1 -0
- package/fesm2020/bravobit-bb-foundation-dashboard.mjs +404 -0
- package/fesm2020/bravobit-bb-foundation-dashboard.mjs.map +1 -0
- package/fesm2020/bravobit-bb-foundation-dialog.mjs +584 -0
- package/fesm2020/bravobit-bb-foundation-dialog.mjs.map +1 -0
- package/fesm2020/bravobit-bb-foundation-elements.mjs +1994 -0
- package/fesm2020/bravobit-bb-foundation-elements.mjs.map +1 -0
- package/fesm2020/bravobit-bb-foundation-http.mjs +168 -0
- package/fesm2020/bravobit-bb-foundation-http.mjs.map +1 -0
- package/fesm2020/bravobit-bb-foundation-localize.mjs +832 -0
- package/fesm2020/bravobit-bb-foundation-localize.mjs.map +1 -0
- package/fesm2020/bravobit-bb-foundation-notifications.mjs +375 -0
- package/fesm2020/bravobit-bb-foundation-notifications.mjs.map +1 -0
- package/fesm2020/bravobit-bb-foundation-recaptcha.mjs +300 -0
- package/fesm2020/bravobit-bb-foundation-recaptcha.mjs.map +1 -0
- package/fesm2020/bravobit-bb-foundation-rxjs.mjs +21 -0
- package/fesm2020/bravobit-bb-foundation-rxjs.mjs.map +1 -0
- package/fesm2020/bravobit-bb-foundation-storage.mjs +413 -0
- package/fesm2020/bravobit-bb-foundation-storage.mjs.map +1 -0
- package/fesm2020/bravobit-bb-foundation-table.mjs +592 -0
- package/fesm2020/bravobit-bb-foundation-table.mjs.map +1 -0
- package/fesm2020/bravobit-bb-foundation.mjs +892 -0
- package/fesm2020/bravobit-bb-foundation.mjs.map +1 -0
- package/http/package.json +5 -5
- package/localize/package.json +5 -5
- package/notifications/package.json +5 -5
- package/package.json +126 -8
- package/public_api.d.ts +0 -1
- package/recaptcha/package.json +5 -5
- package/rxjs/package.json +5 -5
- package/storage/package.json +5 -5
- package/table/package.json +5 -5
- package/bundles/bravobit-bb-foundation-auth.umd.js +0 -1483
- package/bundles/bravobit-bb-foundation-auth.umd.js.map +0 -1
- package/bundles/bravobit-bb-foundation-collections.umd.js +0 -868
- package/bundles/bravobit-bb-foundation-collections.umd.js.map +0 -1
- package/bundles/bravobit-bb-foundation-dashboard.umd.js +0 -876
- package/bundles/bravobit-bb-foundation-dashboard.umd.js.map +0 -1
- package/bundles/bravobit-bb-foundation-dialog.umd.js +0 -716
- package/bundles/bravobit-bb-foundation-dialog.umd.js.map +0 -1
- package/bundles/bravobit-bb-foundation-elements.umd.js +0 -2768
- package/bundles/bravobit-bb-foundation-elements.umd.js.map +0 -1
- package/bundles/bravobit-bb-foundation-http.umd.js +0 -535
- package/bundles/bravobit-bb-foundation-http.umd.js.map +0 -1
- package/bundles/bravobit-bb-foundation-localize.umd.js +0 -1292
- package/bundles/bravobit-bb-foundation-localize.umd.js.map +0 -1
- package/bundles/bravobit-bb-foundation-notifications.umd.js +0 -794
- package/bundles/bravobit-bb-foundation-notifications.umd.js.map +0 -1
- package/bundles/bravobit-bb-foundation-recaptcha.umd.js +0 -683
- package/bundles/bravobit-bb-foundation-recaptcha.umd.js.map +0 -1
- package/bundles/bravobit-bb-foundation-rxjs.umd.js +0 -29
- package/bundles/bravobit-bb-foundation-rxjs.umd.js.map +0 -1
- package/bundles/bravobit-bb-foundation-storage.umd.js +0 -799
- package/bundles/bravobit-bb-foundation-storage.umd.js.map +0 -1
- package/bundles/bravobit-bb-foundation-table.umd.js +0 -1084
- package/bundles/bravobit-bb-foundation-table.umd.js.map +0 -1
- package/bundles/bravobit-bb-foundation.umd.js +0 -1440
- package/bundles/bravobit-bb-foundation.umd.js.map +0 -1
- package/esm2015/auth/lib/auth.interceptor.js +0 -95
- package/esm2015/auth/lib/auth.service.js +0 -299
- package/esm2015/auth/lib/auth.session.js +0 -136
- package/esm2015/auth/lib/directives/permission.directive.js +0 -81
- package/esm2015/auth/lib/directives/role.directive.js +0 -38
- package/esm2015/auth/lib/guards/anonymous.guard.js +0 -35
- package/esm2015/auth/lib/guards/authenticated.guard.js +0 -36
- package/esm2015/auth/lib/permissions.service.js +0 -58
- package/esm2015/auth/lib/providers/email.provider.js +0 -26
- package/esm2015/auth/lib/providers/verify.provider.js +0 -20
- package/esm2015/collections/lib/collection.js +0 -104
- package/esm2015/collections/lib/components/collections-pager/collections-pager.component.js +0 -136
- package/esm2015/collections/lib/components/collections-viewer/collections-viewer.component.js +0 -39
- package/esm2015/collections/lib/providers/api-collection.provider.js +0 -69
- package/esm2015/collections/lib/providers/collection.provider.js +0 -14
- package/esm2015/dashboard/lib/dashboard/dashboard.component.js +0 -64
- package/esm2015/dashboard/lib/dashboard-header/dashboard-header.component.js +0 -41
- package/esm2015/dashboard/lib/dashboard-menu/dashboard-menu.component.js +0 -39
- package/esm2015/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.js +0 -38
- package/esm2015/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.js +0 -83
- package/esm2015/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.js +0 -110
- package/esm2015/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.js +0 -71
- package/esm2015/dialog/lib/dialog-actions/dialog-actions.component.js +0 -20
- package/esm2015/dialog/lib/dialog-confirm/dialog-confirm.component.js +0 -45
- package/esm2015/dialog/lib/dialog-header/dialog-header.component.js +0 -33
- package/esm2015/dialog/lib/dialog-link/dialog-link.component.js +0 -19
- package/esm2015/dialog/lib/dialog-modal/dialog-modal.component.js +0 -54
- package/esm2015/dialog/lib/dialog-overlay/dialog-overlay.component.js +0 -143
- package/esm2015/elements/lib/avatar/avatar.component.js +0 -151
- package/esm2015/elements/lib/button/button.component.js +0 -79
- package/esm2015/elements/lib/checkbox/checkbox.component.js +0 -83
- package/esm2015/elements/lib/date-picker/date-picker.component.js +0 -322
- package/esm2015/elements/lib/directives/autosize.directive.js +0 -74
- package/esm2015/elements/lib/directives/form-submit.directive.js +0 -53
- package/esm2015/elements/lib/directives/input.directive.js +0 -139
- package/esm2015/elements/lib/dropdown/dropdown.component.js +0 -111
- package/esm2015/elements/lib/file-picker/file-picker.component.js +0 -247
- package/esm2015/elements/lib/form-control/form-control.component.js +0 -58
- package/esm2015/elements/lib/form-error/form-error.component.js +0 -116
- package/esm2015/elements/lib/form-group/form-group.component.js +0 -27
- package/esm2015/elements/lib/icon/icon.component.js +0 -110
- package/esm2015/elements/lib/image-picker/image-picker.component.js +0 -119
- package/esm2015/elements/lib/pipes/file-image.pipe.js +0 -45
- package/esm2015/elements/lib/pipes/relative-time.pipe.js +0 -96
- package/esm2015/elements/lib/spinner/spinner.component.js +0 -34
- package/esm2015/elements/lib/tag/tag.component.js +0 -26
- package/esm2015/http/lib/classes/http.config.js +0 -31
- package/esm2015/http/lib/classes/http.error.js +0 -21
- package/esm2015/http/lib/interceptors/base-url.interceptor.js +0 -52
- package/esm2015/http/lib/interceptors/error.interceptor.js +0 -33
- package/esm2015/lib/core/coercions/boolean-coercion.js +0 -4
- package/esm2015/lib/core/miscellaneous/validator.js +0 -86
- package/esm2015/lib/core/mixins/can-disable.js +0 -16
- package/esm2015/lib/core/mixins/can-load.js +0 -16
- package/esm2015/lib/core/mixins/has-error.js +0 -16
- package/esm2015/lib/core/mixins/is-focused.js +0 -16
- package/esm2015/lib/core/mixins/is-grouped.js +0 -16
- package/esm2015/lib/core/mixins/is-readonly.js +0 -16
- package/esm2015/lib/core/mixins/is-required.js +0 -16
- package/esm2015/lib/core/services/clipboard.service.js +0 -72
- package/esm2015/lib/core/services/exif.service.js +0 -168
- package/esm2015/lib/core/services/file-loader.service.js +0 -90
- package/esm2015/lib/core/services/image-converter.service.js +0 -130
- package/esm2015/lib/core/services/patch.service.js +0 -65
- package/esm2015/localize/lib/localize.dictionary.js +0 -137
- package/esm2015/localize/lib/localize.service.js +0 -282
- package/esm2015/localize/lib/views/localize-string/localize-string.component.js +0 -99
- package/esm2015/notifications/lib/notifications-item/notifications-item.component.js +0 -108
- package/esm2015/notifications/lib/notifications-list/notifications-list.component.js +0 -56
- package/esm2015/recaptcha/lib/recaptcha/recaptcha.component.js +0 -199
- package/esm2015/recaptcha/lib/recaptcha-loader.service.js +0 -93
- package/esm2015/rxjs/lib/operators/combine-latest-map.operator.js +0 -7
- package/esm2015/storage/lib/storage.service.js +0 -111
- package/esm2015/storage/lib/strategies/cookie-storage.strategy.js +0 -143
- package/esm2015/storage/lib/strategies/polyfill-storage.strategy.js +0 -102
- package/esm2015/table/lib/components/table/table.component.js +0 -204
- package/esm2015/table/lib/components/table-cell/table-cell.component.js +0 -19
- package/esm2015/table/lib/components/table-header-cell/table-header-cell.component.js +0 -143
- package/esm2015/table/lib/components/table-pager/table-pager.component.js +0 -146
- package/esm2015/table/lib/data/datasource.data.js +0 -32
- package/esm2015/table/lib/data/generic.data.js +0 -73
- package/fesm2015/bravobit-bb-foundation-auth.js.map +0 -1
- package/fesm2015/bravobit-bb-foundation-collections.js.map +0 -1
- package/fesm2015/bravobit-bb-foundation-dashboard.js +0 -468
- package/fesm2015/bravobit-bb-foundation-dashboard.js.map +0 -1
- package/fesm2015/bravobit-bb-foundation-dialog.js.map +0 -1
- package/fesm2015/bravobit-bb-foundation-elements.js.map +0 -1
- package/fesm2015/bravobit-bb-foundation-http.js.map +0 -1
- package/fesm2015/bravobit-bb-foundation-localize.js.map +0 -1
- package/fesm2015/bravobit-bb-foundation-notifications.js +0 -393
- package/fesm2015/bravobit-bb-foundation-notifications.js.map +0 -1
- package/fesm2015/bravobit-bb-foundation-recaptcha.js.map +0 -1
- package/fesm2015/bravobit-bb-foundation-rxjs.js.map +0 -1
- package/fesm2015/bravobit-bb-foundation-storage.js.map +0 -1
- package/fesm2015/bravobit-bb-foundation-table.js +0 -636
- package/fesm2015/bravobit-bb-foundation-table.js.map +0 -1
- package/fesm2015/bravobit-bb-foundation.js.map +0 -1
- package/lib/core/coercions/boolean-coercion.d.ts +0 -1
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { mixinRequired, mixinDisabled, mixinReadonly, mixinGrouped, mixinFocused, mixinError, mixinHideErrors } from '@bravobit/bb-foundation';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, ContentChild, Input, ViewEncapsulation } from '@angular/core';
|
|
3
|
-
import { NgControl } from '@angular/forms';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../form-error/form-error.component";
|
|
6
|
-
import * as i2 from "@angular/common";
|
|
7
|
-
import * as i3 from "../directives/template.directive";
|
|
8
|
-
let nextUniqueId = 0;
|
|
9
|
-
class BbFormControlBase {
|
|
10
|
-
}
|
|
11
|
-
const BbFormControlMixinBase = mixinDisabled(mixinFocused(mixinReadonly(mixinGrouped(mixinRequired(mixinError(mixinHideErrors(BbFormControlBase)))))));
|
|
12
|
-
export class BbFormControl extends BbFormControlMixinBase {
|
|
13
|
-
constructor() {
|
|
14
|
-
super(...arguments);
|
|
15
|
-
// Inputs.
|
|
16
|
-
this.label = null;
|
|
17
|
-
this.hint = null;
|
|
18
|
-
// Data.
|
|
19
|
-
this.arrow = false;
|
|
20
|
-
// Data.
|
|
21
|
-
this.labelId = `bb-form-control-${nextUniqueId++}`;
|
|
22
|
-
}
|
|
23
|
-
onErrorChange(error) {
|
|
24
|
-
this.error = !!error;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
BbFormControl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: BbFormControl, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
28
|
-
BbFormControl.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.11", type: BbFormControl, selector: "bb-form-control", inputs: { grouped: "grouped", hideErrors: "hideErrors", label: "label", hint: "hint" }, host: { properties: { "class.readonly": "readonly", "class.required": "required", "class.disabled": "disabled", "class.focused": "focused", "class.grouped": "grouped", "class.arrow": "arrow", "class.error": "error" }, classAttribute: "bb-form-control" }, queries: [{ propertyName: "ngControl", first: true, predicate: NgControl, descendants: true }], usesInheritance: true, ngImport: i0, template: "<!-- Label of the form control. -->\n<label *ngIf=\"label as labelContent\"\n [attr.for]=\"labelId\"\n class=\"bb-form-control-label\">\n <ng-template [bbTemplate]=\"labelContent\">\n {{ labelContent }}\n </ng-template>\n</label>\n\n<!-- The input with the addons. -->\n<div class=\"bb-form-control-container\">\n <ng-content select=\"[bbPrefix]\"></ng-content>\n <ng-content select=\"[bbInput]\"></ng-content>\n <ng-content select=\"[bbSuffix]\"></ng-content>\n</div>\n\n<!-- The error component. -->\n<bb-form-error *ngIf=\"!hideErrors\"\n [control]=\"ngControl\"\n (errorChange)=\"onErrorChange($event)\">\n</bb-form-error>\n\n<!-- The form control hint. -->\n<p *ngIf=\"hint as hintContent\"\n class=\"bb-form-control-hint\">\n <ng-template [bbTemplate]=\"hintContent\">\n {{ hintContent }}\n </ng-template>\n</p>\n", styles: [".bb-form-control{color:#2d3c4d;display:block}.bb-form-control>.bb-form-control-container>*.bb-prefix,.bb-form-control>.bb-form-control-container>*.bb-suffix{margin:0 8px;color:#b4b4b4;transition:color .3s cubic-bezier(0,0,.2,1)}.bb-form-control.grouped{margin-bottom:20px}.bb-form-control.small{max-width:240px}.bb-form-control.medium{max-width:480px}.bb-form-control.large{max-width:720px}.bb-form-control.required>.bb-form-control-label:after{content:\"*\";color:#c23934;font-size:12px;line-height:1.5}.bb-form-control.disabled>.bb-form-control-container{cursor:default;pointer-events:none;background-color:#cccccca3}.bb-form-control.disabled>.bb-form-control-container>input,.bb-form-control.disabled>.bb-form-control-container>textarea,.bb-form-control.disabled>.bb-form-control-container>select{color:#aaa}.bb-form-control.readonly>.bb-form-control-container{cursor:default;border:1px dotted #bdc4c9}.bb-form-control:not(.disabled):not(.readonly).focused>.bb-form-control-container{background-color:#fff;box-shadow:inset 0 3px #b7bcc233,0 6px 6px -6px #0000001a,0 0 0 3px #007bff33}.bb-form-control:not(.disabled):not(.readonly).focused>.bb-form-control-container>input::-moz-placeholder,.bb-form-control:not(.disabled):not(.readonly).focused>.bb-form-control-container>textarea::-moz-placeholder{color:#b4b4b4;-moz-transition:color .3s cubic-bezier(0,0,.2,1);transition:color .3s cubic-bezier(0,0,.2,1)}.bb-form-control:not(.disabled):not(.readonly).focused>.bb-form-control-container>input:-ms-input-placeholder,.bb-form-control:not(.disabled):not(.readonly).focused>.bb-form-control-container>textarea:-ms-input-placeholder{color:#b4b4b4;-ms-transition:color .3s cubic-bezier(0,0,.2,1);transition:color .3s cubic-bezier(0,0,.2,1)}.bb-form-control:not(.disabled):not(.readonly).focused>.bb-form-control-container>input::placeholder,.bb-form-control:not(.disabled):not(.readonly).focused>.bb-form-control-container>textarea::placeholder{color:#b4b4b4;transition:color .3s cubic-bezier(0,0,.2,1)}.bb-form-control.error>.bb-form-control-label{color:#c23934}.bb-form-control.error>.bb-form-control-hint{display:none}.bb-form-control.error>.bb-form-control-container{border:1px solid #962b26;background-color:#c2393440!important;box-shadow:inset 0 3px #b7bcc233,0 6px 6px -6px #0000001a,0 0 0 3px #c2393466!important}.bb-form-control.error>.bb-form-control-container>*.bb-prefix,.bb-form-control.error>.bb-form-control-container>.bb-suffix{color:#c23934}.bb-form-control.error>.bb-form-control-container>input::-moz-placeholder,.bb-form-control.error>.bb-form-control-container>textarea::-moz-placeholder{color:#c2393466!important}.bb-form-control.error>.bb-form-control-container>input:-ms-input-placeholder,.bb-form-control.error>.bb-form-control-container>textarea:-ms-input-placeholder{color:#c2393466!important}.bb-form-control.error>.bb-form-control-container>input::placeholder,.bb-form-control.error>.bb-form-control-container>textarea::placeholder{color:#c2393466!important}.bb-form-control.arrow>.bb-form-control-container:after{top:0;right:0;bottom:0;width:20px;content:\"\";height:36px;display:flex;min-width:20px;position:absolute;pointer-events:none;background-repeat:no-repeat;background-position:calc(100% - 8px) center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAGCAYAAAAYLBS/AAAACXBIWXMAAAsSAAALEgHS3X78AAAAWUlEQVQYlY3QsQ2DMAAEwMMTsAkrZInvWY3WXiIjJJtkA1OBRCIRf/nSffFTrXXGE4uxbCXJBw+8R0CStcAg3JKsUI7mDzzBBd3AC4Cp9/4z21o7znl9A9gBAf4fpjLTwkUAAAAASUVORK5CYII=)}.bb-form-control-container{width:100%;display:flex;overflow:hidden;position:relative;border-radius:3px;align-items:center;border:1px solid #b6bbc1;background-color:#fff8ff;transition-duration:.25s;transition-property:background-color,box-shadow;transition-timing-function:cubic-bezier(0,0,.2,1);box-shadow:inset 0 3px #b7bcc233,0 6px 6px -6px #0000001a}.bb-form-control-container>input::-moz-placeholder,.bb-form-control-container>textarea::-moz-placeholder{color:#d2d2d2;-moz-transition:color .3s cubic-bezier(0,0,.2,1);transition:color .3s cubic-bezier(0,0,.2,1)}.bb-form-control-container>input:-ms-input-placeholder,.bb-form-control-container>textarea:-ms-input-placeholder{color:#d2d2d2;-ms-transition:color .3s cubic-bezier(0,0,.2,1);transition:color .3s cubic-bezier(0,0,.2,1)}.bb-form-control-container>input::placeholder,.bb-form-control-container>textarea::placeholder{color:#d2d2d2;transition:color .3s cubic-bezier(0,0,.2,1)}.bb-form-control-container>input,.bb-form-control-container>textarea,.bb-form-control-container>select{margin:0;width:100%;border:none;color:#3d464d;font-size:16px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent}.bb-form-control-container>input,.bb-form-control-container>select{height:36px;padding:0 8px}.bb-form-control-container>select{padding-right:28px}.bb-form-control-container>select>::-ms-expand{display:none}.bb-form-control-container>input::-ms-clear,.bb-form-control-container>input::-ms-reveal{width:0;height:0;display:none}.bb-form-control-container>input::-webkit-search-decoration,.bb-form-control-container>input::-webkit-search-cancel-button,.bb-form-control-container>input::-webkit-search-results-button,.bb-form-control-container>input::-webkit-search-results-decoration{display:none}.bb-form-control-container>textarea{resize:none;padding:8px}.bb-form-control-label{color:#000;display:block;position:relative;margin-bottom:4px;transition:color 30ms cubic-bezier(0,0,.2,1)}.bb-form-control-error,.bb-form-control-hint{display:block;font-size:13px;margin-top:4px}.bb-form-control-error{color:#c23934}.bb-form-control-hint{color:#738694}\n"], components: [{ type: i1.BbFormError, selector: "bb-form-error", inputs: ["control"], outputs: ["errorChange"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.BbTemplate, selector: "[bbTemplate]", inputs: ["bbTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: BbFormControl, decorators: [{
|
|
30
|
-
type: Component,
|
|
31
|
-
args: [{
|
|
32
|
-
selector: 'bb-form-control',
|
|
33
|
-
templateUrl: './form-control.component.html',
|
|
34
|
-
styleUrls: ['./form-control.component.scss'],
|
|
35
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
36
|
-
encapsulation: ViewEncapsulation.None,
|
|
37
|
-
host: {
|
|
38
|
-
'class': 'bb-form-control',
|
|
39
|
-
'[class.readonly]': 'readonly',
|
|
40
|
-
'[class.required]': 'required',
|
|
41
|
-
'[class.disabled]': 'disabled',
|
|
42
|
-
'[class.focused]': 'focused',
|
|
43
|
-
'[class.grouped]': 'grouped',
|
|
44
|
-
'[class.arrow]': 'arrow',
|
|
45
|
-
'[class.error]': 'error'
|
|
46
|
-
},
|
|
47
|
-
inputs: ['grouped', 'hideErrors'],
|
|
48
|
-
preserveWhitespaces: false
|
|
49
|
-
}]
|
|
50
|
-
}], propDecorators: { ngControl: [{
|
|
51
|
-
type: ContentChild,
|
|
52
|
-
args: [NgControl]
|
|
53
|
-
}], label: [{
|
|
54
|
-
type: Input
|
|
55
|
-
}], hint: [{
|
|
56
|
-
type: Input
|
|
57
|
-
}] } });
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb250cm9sLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9mb3JtLWNvbnRyb2wvZm9ybS1jb250cm9sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9mb3JtLWNvbnRyb2wvZm9ybS1jb250cm9sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxhQUFhLEVBR2IsYUFBYSxFQUdiLGFBQWEsRUFHYixZQUFZLEVBR1osWUFBWSxFQUdaLFVBQVUsRUFHVixlQUFlLEVBQ2xCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFlLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3RILE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFFekMsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBRXJCLE1BQU0saUJBQWlCO0NBQ3RCO0FBRUQsTUFBTSxzQkFBc0IsR0FRdEIsYUFBYSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFxQjlILE1BQU0sT0FBTyxhQUFjLFNBQVEsc0JBQXNCO0lBbkJ6RDs7UUF3QkksVUFBVTtRQUNELFVBQUssR0FBcUMsSUFBSSxDQUFDO1FBQy9DLFNBQUksR0FBcUMsSUFBSSxDQUFDO1FBRXZELFFBQVE7UUFDUixVQUFLLEdBQVksS0FBSyxDQUFDO1FBRXZCLFFBQVE7UUFDUixZQUFPLEdBQUcsbUJBQW1CLFlBQVksRUFBRSxFQUFFLENBQUM7S0FNakQ7SUFKRyxhQUFhLENBQUMsS0FBMkM7UUFDckQsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3pCLENBQUM7OzJHQWpCUSxhQUFhOytGQUFiLGFBQWEscWJBR1IsU0FBUyx1RUMvRDNCLGs0QkE2QkE7NEZEK0JhLGFBQWE7a0JBbkJ6QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFdBQVcsRUFBRSwrQkFBK0I7b0JBQzVDLFNBQVMsRUFBRSxDQUFDLCtCQUErQixDQUFDO29CQUM1QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLElBQUksRUFBRTt3QkFDRixPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixrQkFBa0IsRUFBRSxVQUFVO3dCQUM5QixrQkFBa0IsRUFBRSxVQUFVO3dCQUM5QixrQkFBa0IsRUFBRSxVQUFVO3dCQUM5QixpQkFBaUIsRUFBRSxTQUFTO3dCQUM1QixpQkFBaUIsRUFBRSxTQUFTO3dCQUM1QixlQUFlLEVBQUUsT0FBTzt3QkFDeEIsZUFBZSxFQUFFLE9BQU87cUJBQzNCO29CQUNELE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUM7b0JBQ2pDLG1CQUFtQixFQUFFLEtBQUs7aUJBQzdCOzhCQUk0QixTQUFTO3NCQUFqQyxZQUFZO3VCQUFDLFNBQVM7Z0JBR2QsS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgSXNSZXF1aXJlZCxcbiAgICBJc1JlcXVpcmVkQ29uc3RydWN0b3IsXG4gICAgbWl4aW5SZXF1aXJlZCxcbiAgICBDYW5EaXNhYmxlLFxuICAgIENhbkRpc2FibGVDb25zdHJ1Y3RvcixcbiAgICBtaXhpbkRpc2FibGVkLFxuICAgIElzUmVhZG9ubHksXG4gICAgSXNSZWFkb25seUNvbnN0cnVjdG9yLFxuICAgIG1peGluUmVhZG9ubHksXG4gICAgSXNHcm91cGVkLFxuICAgIElzR3JvdXBlZENvbnN0cnVjdG9yLFxuICAgIG1peGluR3JvdXBlZCxcbiAgICBJc0ZvY3VzZWQsXG4gICAgSXNGb2N1c2VkQ29uc3RydWN0b3IsXG4gICAgbWl4aW5Gb2N1c2VkLFxuICAgIEhhc0Vycm9yLFxuICAgIEhhc0Vycm9yQ29uc3RydWN0b3IsXG4gICAgbWl4aW5FcnJvcixcbiAgICBDYW5IaWRlRXJyb3JzLFxuICAgIENhbkhpZGVFcnJvcnNDb25zdHJ1Y3RvcixcbiAgICBtaXhpbkhpZGVFcnJvcnNcbn0gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24nO1xuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIElucHV0LCBUZW1wbGF0ZVJlZiwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxubGV0IG5leHRVbmlxdWVJZCA9IDA7XG5cbmNsYXNzIEJiRm9ybUNvbnRyb2xCYXNlIHtcbn1cblxuY29uc3QgQmJGb3JtQ29udHJvbE1peGluQmFzZTogSXNSZXF1aXJlZENvbnN0cnVjdG9yXG4gICAgJiBJc0dyb3VwZWRDb25zdHJ1Y3RvclxuICAgICYgSXNGb2N1c2VkQ29uc3RydWN0b3JcbiAgICAmIElzUmVhZG9ubHlDb25zdHJ1Y3RvclxuICAgICYgQ2FuRGlzYWJsZUNvbnN0cnVjdG9yXG4gICAgJiBIYXNFcnJvckNvbnN0cnVjdG9yXG4gICAgJiBDYW5IaWRlRXJyb3JzQ29uc3RydWN0b3JcbiAgICAmIHR5cGVvZiBCYkZvcm1Db250cm9sQmFzZVxuICAgID0gbWl4aW5EaXNhYmxlZChtaXhpbkZvY3VzZWQobWl4aW5SZWFkb25seShtaXhpbkdyb3VwZWQobWl4aW5SZXF1aXJlZChtaXhpbkVycm9yKG1peGluSGlkZUVycm9ycyhCYkZvcm1Db250cm9sQmFzZSkpKSkpKSk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYmItZm9ybS1jb250cm9sJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1jb250cm9sLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9mb3JtLWNvbnRyb2wuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ2JiLWZvcm0tY29udHJvbCcsXG4gICAgICAgICdbY2xhc3MucmVhZG9ubHldJzogJ3JlYWRvbmx5JyxcbiAgICAgICAgJ1tjbGFzcy5yZXF1aXJlZF0nOiAncmVxdWlyZWQnLFxuICAgICAgICAnW2NsYXNzLmRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gICAgICAgICdbY2xhc3MuZm9jdXNlZF0nOiAnZm9jdXNlZCcsXG4gICAgICAgICdbY2xhc3MuZ3JvdXBlZF0nOiAnZ3JvdXBlZCcsXG4gICAgICAgICdbY2xhc3MuYXJyb3ddJzogJ2Fycm93JyxcbiAgICAgICAgJ1tjbGFzcy5lcnJvcl0nOiAnZXJyb3InXG4gICAgfSxcbiAgICBpbnB1dHM6IFsnZ3JvdXBlZCcsICdoaWRlRXJyb3JzJ10sXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgQmJGb3JtQ29udHJvbCBleHRlbmRzIEJiRm9ybUNvbnRyb2xNaXhpbkJhc2UgaW1wbGVtZW50cyBJc1JlcXVpcmVkLCBJc0ZvY3VzZWQsIElzUmVhZG9ubHksIElzR3JvdXBlZCwgQ2FuRGlzYWJsZSwgSGFzRXJyb3IsIENhbkhpZGVFcnJvcnMge1xuXG4gICAgLy8gVmlld3MuXG4gICAgQENvbnRlbnRDaGlsZChOZ0NvbnRyb2wpIG5nQ29udHJvbDogTmdDb250cm9sO1xuXG4gICAgLy8gSW5wdXRzLlxuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgaGludDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xuXG4gICAgLy8gRGF0YS5cbiAgICBhcnJvdzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLy8gRGF0YS5cbiAgICBsYWJlbElkID0gYGJiLWZvcm0tY29udHJvbC0ke25leHRVbmlxdWVJZCsrfWA7XG5cbiAgICBvbkVycm9yQ2hhbmdlKGVycm9yOiB7IHRva2VuOiBzdHJpbmcsIGRhdGE/OiBhbnkgfSB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5lcnJvciA9ICEhZXJyb3I7XG4gICAgfVxuXG59XG4iLCI8IS0tIExhYmVsIG9mIHRoZSBmb3JtIGNvbnRyb2wuIC0tPlxuPGxhYmVsICpuZ0lmPVwibGFiZWwgYXMgbGFiZWxDb250ZW50XCJcbiAgICAgICBbYXR0ci5mb3JdPVwibGFiZWxJZFwiXG4gICAgICAgY2xhc3M9XCJiYi1mb3JtLWNvbnRyb2wtbGFiZWxcIj5cbiAgICA8bmctdGVtcGxhdGUgW2JiVGVtcGxhdGVdPVwibGFiZWxDb250ZW50XCI+XG4gICAgICAgIHt7IGxhYmVsQ29udGVudCB9fVxuICAgIDwvbmctdGVtcGxhdGU+XG48L2xhYmVsPlxuXG48IS0tIFRoZSBpbnB1dCB3aXRoIHRoZSBhZGRvbnMuIC0tPlxuPGRpdiBjbGFzcz1cImJiLWZvcm0tY29udHJvbC1jb250YWluZXJcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbYmJQcmVmaXhdXCI+PC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltiYklucHV0XVwiPjwvbmctY29udGVudD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbYmJTdWZmaXhdXCI+PC9uZy1jb250ZW50PlxuPC9kaXY+XG5cbjwhLS0gVGhlIGVycm9yIGNvbXBvbmVudC4gLS0+XG48YmItZm9ybS1lcnJvciAqbmdJZj1cIiFoaWRlRXJyb3JzXCJcbiAgICAgICAgICAgICAgIFtjb250cm9sXT1cIm5nQ29udHJvbFwiXG4gICAgICAgICAgICAgICAoZXJyb3JDaGFuZ2UpPVwib25FcnJvckNoYW5nZSgkZXZlbnQpXCI+XG48L2JiLWZvcm0tZXJyb3I+XG5cbjwhLS0gVGhlIGZvcm0gY29udHJvbCBoaW50LiAtLT5cbjxwICpuZ0lmPVwiaGludCBhcyBoaW50Q29udGVudFwiXG4gICBjbGFzcz1cImJiLWZvcm0tY29udHJvbC1oaW50XCI+XG4gICAgPG5nLXRlbXBsYXRlIFtiYlRlbXBsYXRlXT1cImhpbnRDb250ZW50XCI+XG4gICAgICAgIHt7IGhpbnRDb250ZW50IH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvcD5cbiJdfQ==
|
|
@@ -1,116 +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 { combineLatest, EMPTY, of } from 'rxjs';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "../directives/form-submit.directive";
|
|
7
|
-
import * as i2 from "@angular/forms";
|
|
8
|
-
import * as i3 from "@angular/common";
|
|
9
|
-
import * as i4 from "@bravobit/bb-foundation/localize";
|
|
10
|
-
export class BbFormError {
|
|
11
|
-
constructor(_form, _control, _errors) {
|
|
12
|
-
this._form = _form;
|
|
13
|
-
this._control = _control;
|
|
14
|
-
this._errors = _errors;
|
|
15
|
-
// Outputs.
|
|
16
|
-
this.errorChange = new EventEmitter();
|
|
17
|
-
// Subscriptions.
|
|
18
|
-
this._ngControl = null;
|
|
19
|
-
}
|
|
20
|
-
// Inputs.
|
|
21
|
-
set control(value) {
|
|
22
|
-
this._ngControl = value;
|
|
23
|
-
}
|
|
24
|
-
get control() {
|
|
25
|
-
return this._ngControl;
|
|
26
|
-
}
|
|
27
|
-
ngOnInit() {
|
|
28
|
-
// Set the control if it was not set before.
|
|
29
|
-
if (!this.control) {
|
|
30
|
-
this.control = this._control;
|
|
31
|
-
}
|
|
32
|
-
// Listen for the submit changes
|
|
33
|
-
const submitStatus$ = this.submitStatusChanges();
|
|
34
|
-
// An observable that emits error changes.
|
|
35
|
-
const errorChanges$ = this.statusChanges().pipe(map(() => this.getError(this.control.errors)), distinctUntilChanged(), map(error => typeof error === 'string' ? { token: error } : error));
|
|
36
|
-
// Whenever the user submitted the form we want to
|
|
37
|
-
// listen for any error changes.
|
|
38
|
-
this.error$ = combineLatest([submitStatus$, errorChanges$]).pipe(map(([submitted, error]) => {
|
|
39
|
-
// If not submitted return null.
|
|
40
|
-
if (!submitted) {
|
|
41
|
-
return null;
|
|
42
|
-
}
|
|
43
|
-
// Return the error if submitted.
|
|
44
|
-
return error;
|
|
45
|
-
}), tap(value => this.errorChange.emit(value)));
|
|
46
|
-
}
|
|
47
|
-
getError(errors) {
|
|
48
|
-
// Validate the errors exist.
|
|
49
|
-
if (!errors) {
|
|
50
|
-
return null;
|
|
51
|
-
}
|
|
52
|
-
// Get the first error in the errors.
|
|
53
|
-
const [errorName] = Object.keys(errors);
|
|
54
|
-
const error = errors[errorName];
|
|
55
|
-
// Validate the error exists.
|
|
56
|
-
if (!error) {
|
|
57
|
-
return null;
|
|
58
|
-
}
|
|
59
|
-
// Map the arrays into a object so we can
|
|
60
|
-
// access the functions by a key-lookup.
|
|
61
|
-
const errorFunctions = this._errors.reduce((previous, current) => (Object.assign(Object.assign({}, previous), current)), {});
|
|
62
|
-
// Get the error function.
|
|
63
|
-
const errorFunction = errorFunctions[errorName] || errorFunctions['unknown'];
|
|
64
|
-
// Validate the error function exists.
|
|
65
|
-
if (!errorFunction) {
|
|
66
|
-
return null;
|
|
67
|
-
}
|
|
68
|
-
// Return the parsed error.
|
|
69
|
-
return errorFunction(error);
|
|
70
|
-
}
|
|
71
|
-
submitStatusChanges() {
|
|
72
|
-
if (!this._form) {
|
|
73
|
-
return of(true);
|
|
74
|
-
}
|
|
75
|
-
return this._form.submitStatus$;
|
|
76
|
-
}
|
|
77
|
-
statusChanges() {
|
|
78
|
-
if (!this.control) {
|
|
79
|
-
return EMPTY;
|
|
80
|
-
}
|
|
81
|
-
if (!this.control.statusChanges) {
|
|
82
|
-
return EMPTY;
|
|
83
|
-
}
|
|
84
|
-
return this.control.statusChanges.pipe(startWith(this.control.status), delay(0));
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
BbFormError.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: BbFormError, deps: [{ token: i1.BbFormSubmit, optional: true }, { token: i2.NgControl, optional: true }, { token: ELEMENTS_ERRORS, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
88
|
-
BbFormError.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.11", type: BbFormError, selector: "bb-form-error", inputs: { control: "control" }, outputs: { errorChange: "errorChange" }, host: { classAttribute: "bb-form-error" }, ngImport: i0, template: "<ng-container *ngIf=\"error$ | async as error\">\n <p *ngIf=\"error?.token | bbLocalize:{optional: true, data: error?.data} as message\"\n class=\"bb-form-error-message\">\n {{ message }}\n </p>\n</ng-container>", styles: [".bb-form-error{display:block}.bb-form-error-message{color:#c23934;display:block;font-size:13px;margin-top:4px}\n"], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i3.AsyncPipe, "bbLocalize": i4.BbLocalize }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
89
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: BbFormError, decorators: [{
|
|
90
|
-
type: Component,
|
|
91
|
-
args: [{
|
|
92
|
-
selector: 'bb-form-error',
|
|
93
|
-
templateUrl: './form-error.component.html',
|
|
94
|
-
styleUrls: ['./form-error.component.scss'],
|
|
95
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
96
|
-
encapsulation: ViewEncapsulation.None,
|
|
97
|
-
host: {
|
|
98
|
-
'class': 'bb-form-error'
|
|
99
|
-
},
|
|
100
|
-
preserveWhitespaces: false
|
|
101
|
-
}]
|
|
102
|
-
}], ctorParameters: function () { return [{ type: i1.BbFormSubmit, decorators: [{
|
|
103
|
-
type: Optional
|
|
104
|
-
}] }, { type: i2.NgControl, decorators: [{
|
|
105
|
-
type: Optional
|
|
106
|
-
}] }, { type: undefined, decorators: [{
|
|
107
|
-
type: Optional
|
|
108
|
-
}, {
|
|
109
|
-
type: Inject,
|
|
110
|
-
args: [ELEMENTS_ERRORS]
|
|
111
|
-
}] }]; }, propDecorators: { control: [{
|
|
112
|
-
type: Input
|
|
113
|
-
}], errorChange: [{
|
|
114
|
-
type: Output
|
|
115
|
-
}] } });
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2VsZW1lbnRzL3NyYy9saWIvZm9ybS1lcnJvci9mb3JtLWVycm9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9mb3JtLWVycm9yL2Zvcm0tZXJyb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDTixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2hGLE9BQU8sRUFBQyxlQUFlLEVBQWdCLE1BQU0sd0JBQXdCLENBQUM7QUFHdEUsT0FBTyxFQUFDLGFBQWEsRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFhMUQsTUFBTSxPQUFPLFdBQVc7SUFxQnBCLFlBQWdDLEtBQW1CLEVBQ25CLFFBQW1CLEVBQ00sT0FBd0I7UUFGakQsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUNuQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ00sWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFYakYsV0FBVztRQUNELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQXdDLENBQUM7UUFLakYsaUJBQWlCO1FBQ1QsZUFBVSxHQUFxQixJQUFJLENBQUM7SUFLNUMsQ0FBQztJQXRCRCxVQUFVO0lBQ1YsSUFDSSxPQUFPLENBQUMsS0FBZ0I7UUFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBZ0JELFFBQVE7UUFDSiw0Q0FBNEM7UUFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDaEM7UUFFRCxnQ0FBZ0M7UUFDaEMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFFakQsMENBQTBDO1FBQzFDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLENBQzNDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsRUFDN0Msb0JBQW9CLEVBQUUsRUFDdEIsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQ25FLENBQUM7UUFFRixrREFBa0Q7UUFDbEQsZ0NBQWdDO1FBQ2hDLElBQUksQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUM1RCxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQ3ZCLGdDQUFnQztZQUNoQyxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNaLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7WUFFRCxpQ0FBaUM7WUFDakMsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDN0MsQ0FBQztJQUNOLENBQUM7SUFFTyxRQUFRLENBQUMsTUFBeUI7UUFDdEMsNkJBQTZCO1FBQzdCLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQscUNBQXFDO1FBQ3JDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVoQyw2QkFBNkI7UUFDN0IsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNSLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCx5Q0FBeUM7UUFDekMsd0NBQXdDO1FBQ3hDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsaUNBQUssUUFBUSxHQUFLLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRW5HLDBCQUEwQjtRQUMxQixNQUFNLGFBQWEsR0FBRyxjQUFjLENBQUMsU0FBUyxDQUFDLElBQUksY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTdFLHNDQUFzQztRQUN0QyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ2hCLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCwyQkFBMkI7UUFDM0IsT0FBTyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVPLG1CQUFtQjtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNiLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ25CO1FBRUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQztJQUNwQyxDQUFDO0lBRU8sYUFBYTtRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNmLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFO1lBQzdCLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBRUQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ2xDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQWlCLENBQUMsRUFDekMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUNYLENBQUM7SUFDTixDQUFDOzt5R0E5R1EsV0FBVyx1R0F1QlksZUFBZTs2RkF2QnRDLFdBQVcseUtDNUJ4Qix3T0FLZTs0RkR1QkYsV0FBVztrQkFYdkIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsV0FBVyxFQUFFLDZCQUE2QjtvQkFDMUMsU0FBUyxFQUFFLENBQUMsNkJBQTZCLENBQUM7b0JBQzFDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsSUFBSSxFQUFFO3dCQUNGLE9BQU8sRUFBRSxlQUFlO3FCQUMzQjtvQkFDRCxtQkFBbUIsRUFBRSxLQUFLO2lCQUM3Qjs7MEJBc0JnQixRQUFROzswQkFDUixRQUFROzswQkFDUixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGVBQWU7NENBbkIzQyxPQUFPO3NCQURWLEtBQUs7Z0JBVUksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7ZGVsYXksIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN0YXJ0V2l0aCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0VMRU1FTlRTX0VSUk9SUywgRWxlbWVudHNFcnJvcn0gZnJvbSAnLi4vZWxlbWVudHMuaW50ZXJmYWNlcyc7XG5pbXBvcnQge0JiRm9ybVN1Ym1pdH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9mb3JtLXN1Ym1pdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgRU1QVFksIE9ic2VydmFibGUsIG9mfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdiYi1mb3JtLWVycm9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1lcnJvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZm9ybS1lcnJvci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnYmItZm9ybS1lcnJvcidcbiAgICB9LFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIEJiRm9ybUVycm9yIGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIC8vIElucHV0cy5cbiAgICBASW5wdXQoKVxuICAgIHNldCBjb250cm9sKHZhbHVlOiBOZ0NvbnRyb2wpIHtcbiAgICAgICAgdGhpcy5fbmdDb250cm9sID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGNvbnRyb2woKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9uZ0NvbnRyb2w7XG4gICAgfVxuXG4gICAgLy8gT3V0cHV0cy5cbiAgICBAT3V0cHV0KCkgZXJyb3JDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgdG9rZW46IHN0cmluZywgZGF0YT86IGFueSB9IHwgbnVsbD4oKTtcblxuICAgIC8vIFN0YXRlLlxuICAgIGVycm9yJDogT2JzZXJ2YWJsZTx7IHRva2VuOiBzdHJpbmcsIGRhdGE/OiBhbnkgfSB8IG51bGw+O1xuXG4gICAgLy8gU3Vic2NyaXB0aW9ucy5cbiAgICBwcml2YXRlIF9uZ0NvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwgPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBfZm9ybTogQmJGb3JtU3VibWl0LFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEVMRU1FTlRTX0VSUk9SUykgcHJpdmF0ZSBfZXJyb3JzOiBFbGVtZW50c0Vycm9yW10pIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgLy8gU2V0IHRoZSBjb250cm9sIGlmIGl0IHdhcyBub3Qgc2V0IGJlZm9yZS5cbiAgICAgICAgaWYgKCF0aGlzLmNvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbCA9IHRoaXMuX2NvbnRyb2w7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMaXN0ZW4gZm9yIHRoZSBzdWJtaXQgY2hhbmdlc1xuICAgICAgICBjb25zdCBzdWJtaXRTdGF0dXMkID0gdGhpcy5zdWJtaXRTdGF0dXNDaGFuZ2VzKCk7XG5cbiAgICAgICAgLy8gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGVycm9yIGNoYW5nZXMuXG4gICAgICAgIGNvbnN0IGVycm9yQ2hhbmdlcyQgPSB0aGlzLnN0YXR1c0NoYW5nZXMoKS5waXBlKFxuICAgICAgICAgICAgbWFwKCgpID0+IHRoaXMuZ2V0RXJyb3IodGhpcy5jb250cm9sLmVycm9ycykpLFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICAgIG1hcChlcnJvciA9PiB0eXBlb2YgZXJyb3IgPT09ICdzdHJpbmcnID8ge3Rva2VuOiBlcnJvcn0gOiBlcnJvcilcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBXaGVuZXZlciB0aGUgdXNlciBzdWJtaXR0ZWQgdGhlIGZvcm0gd2Ugd2FudCB0b1xuICAgICAgICAvLyBsaXN0ZW4gZm9yIGFueSBlcnJvciBjaGFuZ2VzLlxuICAgICAgICB0aGlzLmVycm9yJCA9IGNvbWJpbmVMYXRlc3QoW3N1Ym1pdFN0YXR1cyQsIGVycm9yQ2hhbmdlcyRdKS5waXBlKFxuICAgICAgICAgICAgbWFwKChbc3VibWl0dGVkLCBlcnJvcl0pID0+IHtcbiAgICAgICAgICAgICAgICAvLyBJZiBub3Qgc3VibWl0dGVkIHJldHVybiBudWxsLlxuICAgICAgICAgICAgICAgIGlmICghc3VibWl0dGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIFJldHVybiB0aGUgZXJyb3IgaWYgc3VibWl0dGVkLlxuICAgICAgICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGFwKHZhbHVlID0+IHRoaXMuZXJyb3JDaGFuZ2UuZW1pdCh2YWx1ZSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRFcnJvcihlcnJvcnM/OiBWYWxpZGF0aW9uRXJyb3JzKSB7XG4gICAgICAgIC8vIFZhbGlkYXRlIHRoZSBlcnJvcnMgZXhpc3QuXG4gICAgICAgIGlmICghZXJyb3JzKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEdldCB0aGUgZmlyc3QgZXJyb3IgaW4gdGhlIGVycm9ycy5cbiAgICAgICAgY29uc3QgW2Vycm9yTmFtZV0gPSBPYmplY3Qua2V5cyhlcnJvcnMpO1xuICAgICAgICBjb25zdCBlcnJvciA9IGVycm9yc1tlcnJvck5hbWVdO1xuXG4gICAgICAgIC8vIFZhbGlkYXRlIHRoZSBlcnJvciBleGlzdHMuXG4gICAgICAgIGlmICghZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTWFwIHRoZSBhcnJheXMgaW50byBhIG9iamVjdCBzbyB3ZSBjYW5cbiAgICAgICAgLy8gYWNjZXNzIHRoZSBmdW5jdGlvbnMgYnkgYSBrZXktbG9va3VwLlxuICAgICAgICBjb25zdCBlcnJvckZ1bmN0aW9ucyA9IHRoaXMuX2Vycm9ycy5yZWR1Y2UoKHByZXZpb3VzLCBjdXJyZW50KSA9PiAoey4uLnByZXZpb3VzLCAuLi5jdXJyZW50fSksIHt9KTtcblxuICAgICAgICAvLyBHZXQgdGhlIGVycm9yIGZ1bmN0aW9uLlxuICAgICAgICBjb25zdCBlcnJvckZ1bmN0aW9uID0gZXJyb3JGdW5jdGlvbnNbZXJyb3JOYW1lXSB8fCBlcnJvckZ1bmN0aW9uc1sndW5rbm93biddO1xuXG4gICAgICAgIC8vIFZhbGlkYXRlIHRoZSBlcnJvciBmdW5jdGlvbiBleGlzdHMuXG4gICAgICAgIGlmICghZXJyb3JGdW5jdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZXR1cm4gdGhlIHBhcnNlZCBlcnJvci5cbiAgICAgICAgcmV0dXJuIGVycm9yRnVuY3Rpb24oZXJyb3IpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3VibWl0U3RhdHVzQ2hhbmdlcygpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9mb3JtKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybS5zdWJtaXRTdGF0dXMkO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdHVzQ2hhbmdlcygpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRyb2wpIHtcbiAgICAgICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5jb250cm9sLnN0YXR1c0NoYW5nZXMpIHtcbiAgICAgICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2wuc3RhdHVzQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgc3RhcnRXaXRoKHRoaXMuY29udHJvbC5zdGF0dXMgYXMgdW5rbm93biksXG4gICAgICAgICAgICBkZWxheSgwKVxuICAgICAgICApO1xuICAgIH1cblxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImVycm9yJCB8IGFzeW5jIGFzIGVycm9yXCI+XG4gICAgPHAgKm5nSWY9XCJlcnJvcj8udG9rZW4gfCBiYkxvY2FsaXplOntvcHRpb25hbDogdHJ1ZSwgZGF0YTogZXJyb3I/LmRhdGF9IGFzIG1lc3NhZ2VcIlxuICAgICAgIGNsYXNzPVwiYmItZm9ybS1lcnJvci1tZXNzYWdlXCI+XG4gICAgICAgIHt7IG1lc3NhZ2UgfX1cbiAgICA8L3A+XG48L25nLWNvbnRhaW5lcj4iXX0=
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { mixinGrouped } from '@bravobit/bb-foundation';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
class BbFormGroupBase {
|
|
5
|
-
}
|
|
6
|
-
const BbFormGroupMixinBase = mixinGrouped(BbFormGroupBase);
|
|
7
|
-
export class BbFormGroup extends BbFormGroupMixinBase {
|
|
8
|
-
}
|
|
9
|
-
BbFormGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: BbFormGroup, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
10
|
-
BbFormGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.11", type: BbFormGroup, selector: "bb-form-group", inputs: { grouped: "grouped" }, host: { properties: { "class.grouped": "grouped" }, classAttribute: "bb-form-group" }, usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [".bb-form-group{width:100%;display:flex;flex-wrap:wrap;margin-top:-10px}.bb-form-group>*{margin-top:10px}.bb-form-group>*:not(:first-child){margin-left:10px}.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:20px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: BbFormGroup, decorators: [{
|
|
12
|
-
type: Component,
|
|
13
|
-
args: [{
|
|
14
|
-
selector: 'bb-form-group',
|
|
15
|
-
templateUrl: './form-group.component.html',
|
|
16
|
-
styleUrls: ['./form-group.component.scss'],
|
|
17
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
18
|
-
encapsulation: ViewEncapsulation.None,
|
|
19
|
-
host: {
|
|
20
|
-
'class': 'bb-form-group',
|
|
21
|
-
'[class.grouped]': 'grouped'
|
|
22
|
-
},
|
|
23
|
-
inputs: ['grouped'],
|
|
24
|
-
preserveWhitespaces: false
|
|
25
|
-
}]
|
|
26
|
-
}] });
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2VsZW1lbnRzL3NyYy9saWIvZm9ybS1ncm91cC9mb3JtLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9mb3JtLWdyb3VwL2Zvcm0tZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQyxZQUFZLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RixPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDOztBQUVwRixNQUFNLGVBQWU7Q0FDcEI7QUFFRCxNQUFNLG9CQUFvQixHQUVwQixZQUFZLENBQUMsZUFBZSxDQUFDLENBQUM7QUFlcEMsTUFBTSxPQUFPLFdBQVksU0FBUSxvQkFBb0I7O3lHQUF4QyxXQUFXOzZGQUFYLFdBQVcsbU1DdkJ4Qiw2QkFDQTs0RkRzQmEsV0FBVztrQkFidkIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsV0FBVyxFQUFFLDZCQUE2QjtvQkFDMUMsU0FBUyxFQUFFLENBQUMsNkJBQTZCLENBQUM7b0JBQzFDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsSUFBSSxFQUFFO3dCQUNGLE9BQU8sRUFBRSxlQUFlO3dCQUN4QixpQkFBaUIsRUFBRSxTQUFTO3FCQUMvQjtvQkFDRCxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUM7b0JBQ25CLG1CQUFtQixFQUFFLEtBQUs7aUJBQzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJc0dyb3VwZWQsIElzR3JvdXBlZENvbnN0cnVjdG9yLCBtaXhpbkdyb3VwZWR9IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5jbGFzcyBCYkZvcm1Hcm91cEJhc2Uge1xufVxuXG5jb25zdCBCYkZvcm1Hcm91cE1peGluQmFzZTogSXNHcm91cGVkQ29uc3RydWN0b3JcbiAgICAmIHR5cGVvZiBCYkZvcm1Hcm91cEJhc2VcbiAgICA9IG1peGluR3JvdXBlZChCYkZvcm1Hcm91cEJhc2UpO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JiLWZvcm0tZ3JvdXAnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9mb3JtLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdjbGFzcyc6ICdiYi1mb3JtLWdyb3VwJyxcbiAgICAgICAgJ1tjbGFzcy5ncm91cGVkXSc6ICdncm91cGVkJ1xuICAgIH0sXG4gICAgaW5wdXRzOiBbJ2dyb3VwZWQnXSxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBCYkZvcm1Hcm91cCBleHRlbmRzIEJiRm9ybUdyb3VwTWl4aW5CYXNlIGltcGxlbWVudHMgSXNHcm91cGVkIHtcbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Inject, Input, Optional, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { ELEMENTS_ICONS } from '../elements.interfaces';
|
|
3
|
-
import { coerceBooleanProperty } from '@bravobit/bb-foundation';
|
|
4
|
-
import { BehaviorSubject } from 'rxjs';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/common";
|
|
7
|
-
export class BbIcon {
|
|
8
|
-
constructor(_registry) {
|
|
9
|
-
this._registry = _registry;
|
|
10
|
-
// Data.
|
|
11
|
-
this._src = null;
|
|
12
|
-
// State.
|
|
13
|
-
this.state$ = new BehaviorSubject(null);
|
|
14
|
-
this.alt = null;
|
|
15
|
-
this.size = 24;
|
|
16
|
-
this._ariaHidden = true;
|
|
17
|
-
this.warn = (content) => {
|
|
18
|
-
return console && console.warn && console.warn(content);
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
set src(newValue) {
|
|
22
|
-
this.state$.next(this.convert(newValue));
|
|
23
|
-
this._src = newValue;
|
|
24
|
-
}
|
|
25
|
-
get src() {
|
|
26
|
-
return this._src;
|
|
27
|
-
}
|
|
28
|
-
set ariaHidden(newValue) {
|
|
29
|
-
this._ariaHidden = coerceBooleanProperty(newValue);
|
|
30
|
-
}
|
|
31
|
-
get ariaHidden() {
|
|
32
|
-
return this._ariaHidden;
|
|
33
|
-
}
|
|
34
|
-
convert(src) {
|
|
35
|
-
const [namespace, value] = (src || '').split(':');
|
|
36
|
-
const onError = () => {
|
|
37
|
-
this.warn(`ElementsModule: The icon with src "${src}" could not be rendered correctly; Did you put a correct src attribute?`);
|
|
38
|
-
return { type: 'unknown' };
|
|
39
|
-
};
|
|
40
|
-
if (!namespace || !value || !this._registry) {
|
|
41
|
-
return onError();
|
|
42
|
-
}
|
|
43
|
-
// Try to find a image icon.
|
|
44
|
-
const imageIcon = this.findImageIcon(namespace, value);
|
|
45
|
-
if (imageIcon) {
|
|
46
|
-
return imageIcon;
|
|
47
|
-
}
|
|
48
|
-
// Try to find a font icon.
|
|
49
|
-
const fontIcon = this.findFontIcon(namespace, value);
|
|
50
|
-
if (fontIcon) {
|
|
51
|
-
return fontIcon;
|
|
52
|
-
}
|
|
53
|
-
// Return the on error function.
|
|
54
|
-
return onError();
|
|
55
|
-
}
|
|
56
|
-
findImageIcon(namespace, value) {
|
|
57
|
-
const data = this._registry.find(item => item['namespace'] === namespace && item['name'] === value);
|
|
58
|
-
if (!data) {
|
|
59
|
-
return null;
|
|
60
|
-
}
|
|
61
|
-
return { type: data['type'], src: data['src'] };
|
|
62
|
-
}
|
|
63
|
-
findFontIcon(namespace, content) {
|
|
64
|
-
const data = this._registry.find(item => item['namespace'] === namespace);
|
|
65
|
-
if (!data) {
|
|
66
|
-
return null;
|
|
67
|
-
}
|
|
68
|
-
const uses = data['uses'];
|
|
69
|
-
if (uses === 'data-attribute') {
|
|
70
|
-
return { type: data['type'], className: data['className'], attribute: content };
|
|
71
|
-
}
|
|
72
|
-
return { type: data['type'], className: data['className'], content };
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
BbIcon.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: BbIcon, deps: [{ token: ELEMENTS_ICONS, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
76
|
-
BbIcon.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.11", type: BbIcon, selector: "bb-icon", inputs: { alt: "alt", size: "size", src: "src", ariaHidden: "ariaHidden" }, host: { properties: { "attr.aria-hidden": "ariaHidden", "style.width.px": "size", "style.height.px": "size", "style.min-width.px": "size", "style.min-height.px": "size", "style.font-size.px": "size" }, classAttribute: "bb-icon" }, ngImport: i0, template: "<ng-container *ngIf=\"state$ | async as data\"\n [ngSwitch]=\"data?.type\">\n <i *ngSwitchCase=\"'font'\"\n [attr.data-icon]=\"data?.attribute\"\n [class]=\"data?.className\">\n {{ data?.content }}\n </i>\n <img *ngSwitchCase=\"'image'\"\n [src]=\"data?.src\"\n [alt]=\"alt\">\n <svg *ngSwitchCase=\"'unknown'\"\n viewBox=\"0 0 1 1\">\n <rect x=\"0\" y=\"0\" width=\"1\" height=\"1\" fill=\"#c5c5c5\"></rect>\n </svg>\n</ng-container>\n", styles: [".bb-icon{display:flex;-webkit-user-select:none;-moz-user-select:none;-ms-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"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "async": i1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
77
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: BbIcon, decorators: [{
|
|
78
|
-
type: Component,
|
|
79
|
-
args: [{
|
|
80
|
-
selector: 'bb-icon',
|
|
81
|
-
templateUrl: './icon.component.html',
|
|
82
|
-
styleUrls: ['./icon.component.scss'],
|
|
83
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
84
|
-
encapsulation: ViewEncapsulation.None,
|
|
85
|
-
host: {
|
|
86
|
-
'class': 'bb-icon',
|
|
87
|
-
'[attr.aria-hidden]': 'ariaHidden',
|
|
88
|
-
'[style.width.px]': 'size',
|
|
89
|
-
'[style.height.px]': 'size',
|
|
90
|
-
'[style.min-width.px]': 'size',
|
|
91
|
-
'[style.min-height.px]': 'size',
|
|
92
|
-
'[style.font-size.px]': 'size'
|
|
93
|
-
},
|
|
94
|
-
preserveWhitespaces: false
|
|
95
|
-
}]
|
|
96
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
97
|
-
type: Optional
|
|
98
|
-
}, {
|
|
99
|
-
type: Inject,
|
|
100
|
-
args: [ELEMENTS_ICONS]
|
|
101
|
-
}] }]; }, propDecorators: { alt: [{
|
|
102
|
-
type: Input
|
|
103
|
-
}], size: [{
|
|
104
|
-
type: Input
|
|
105
|
-
}], src: [{
|
|
106
|
-
type: Input
|
|
107
|
-
}], ariaHidden: [{
|
|
108
|
-
type: Input
|
|
109
|
-
}] } });
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2VsZW1lbnRzL3NyYy9saWIvaWNvbi9pY29uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9pY29uL2ljb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQUMsY0FBYyxFQUFlLE1BQU0sd0JBQXdCLENBQUM7QUFDcEUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLE1BQU0sQ0FBQzs7O0FBbUJyQyxNQUFNLE9BQU8sTUFBTTtJQWdDZixZQUF3RCxTQUF5QjtRQUF6QixjQUFTLEdBQVQsU0FBUyxDQUFnQjtRQTlCakYsUUFBUTtRQUNBLFNBQUksR0FBa0IsSUFBSSxDQUFDO1FBRW5DLFNBQVM7UUFDVCxXQUFNLEdBQUcsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUM7UUFFL0IsUUFBRyxHQUFrQixJQUFJLENBQUM7UUFDMUIsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQXFCbkIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUEwRG5CLFNBQUksR0FBRyxDQUFDLE9BQWUsRUFBRSxFQUFFO1lBQy9CLE9BQU8sT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1RCxDQUFDLENBQUM7SUF6REYsQ0FBQztJQXRCRCxJQUNJLEdBQUcsQ0FBQyxRQUF1QjtRQUMzQixJ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Qzs7b0dBdEZRLE1BQU0sa0JBZ0NpQixjQUFjO3dGQWhDckMsTUFBTSxrV0N0Qm5CLG9nQkFlQTs0RkRPYSxNQUFNO2tCQWpCbEIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsU0FBUztvQkFDbkIsV0FBVyxFQUFFLHVCQUF1QjtvQkFDcEMsU0FBUyxFQUFFLENBQUMsdUJBQXVCLENBQUM7b0JBQ3BDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsSUFBSSxFQUFFO3dCQUNGLE9BQU8sRUFBRSxTQUFTO3dCQUNsQixvQkFBb0IsRUFBRSxZQUFZO3dCQUNsQyxrQkFBa0IsRUFBRSxNQUFNO3dCQUMxQixtQkFBbUIsRUFBRSxNQUFNO3dCQUMzQixzQkFBc0IsRUFBRSxNQUFNO3dCQUM5Qix1QkFBdUIsRUFBRSxNQUFNO3dCQUMvQixzQkFBc0IsRUFBRSxNQUFNO3FCQUNqQztvQkFDRCxtQkFBbUIsRUFBRSxLQUFLO2lCQUM3Qjs7MEJBaUNnQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGNBQWM7NENBeEJyQyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUdGLEdBQUc7c0JBRE4sS0FBSztnQkFXRixVQUFVO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9wdGlvbmFsLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0VMRU1FTlRTX0lDT05TLCBFbGVtZW50c0ljb259IGZyb20gJy4uL2VsZW1lbnRzLmludGVyZmFjZXMnO1xuaW1wb3J0IHtjb2VyY2VCb29sZWFuUHJvcGVydHl9IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdiYi1pY29uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaWNvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaWNvbi5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnYmItaWNvbicsXG4gICAgICAgICdbYXR0ci5hcmlhLWhpZGRlbl0nOiAnYXJpYUhpZGRlbicsXG4gICAgICAgICdbc3R5bGUud2lkdGgucHhdJzogJ3NpemUnLFxuICAgICAgICAnW3N0eWxlLmhlaWdodC5weF0nOiAnc2l6ZScsXG4gICAgICAgICdbc3R5bGUubWluLXdpZHRoLnB4XSc6ICdzaXplJyxcbiAgICAgICAgJ1tzdHlsZS5taW4taGVpZ2h0LnB4XSc6ICdzaXplJyxcbiAgICAgICAgJ1tzdHlsZS5mb250LXNpemUucHhdJzogJ3NpemUnXG4gICAgfSxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBCYkljb24ge1xuXG4gICAgLy8gRGF0YS5cbiAgICBwcml2YXRlIF9zcmM6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgLy8gU3RhdGUuXG4gICAgc3RhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xuXG4gICAgQElucHV0KCkgYWx0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSBzaXplOiBudW1iZXIgPSAyNDtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHNyYyhuZXdWYWx1ZTogc3RyaW5nIHwgbnVsbCkge1xuICAgICAgICB0aGlzLnN0YXRlJC5uZXh0KHRoaXMuY29udmVydChuZXdWYWx1ZSkpO1xuICAgICAgICB0aGlzLl9zcmMgPSBuZXdWYWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgc3JjKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3JjO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGFyaWFIaWRkZW4obmV3VmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fYXJpYUhpZGRlbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShuZXdWYWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IGFyaWFIaWRkZW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcmlhSGlkZGVuO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2FyaWFIaWRkZW4gPSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChFTEVNRU5UU19JQ09OUykgcHJpdmF0ZSBfcmVnaXN0cnk6IEVsZW1lbnRzSWNvbltdKSB7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb252ZXJ0KHNyYzogc3RyaW5nIHwgbnVsbCkge1xuICAgICAgICBjb25zdCBbbmFtZXNwYWNlLCB2YWx1ZV0gPSAoc3JjIHx8ICcnKS5zcGxpdCgnOicpO1xuXG4gICAgICAgIGNvbnN0IG9uRXJyb3IgPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLndhcm4oYEVsZW1lbnRzTW9kdWxlOiBUaGUgaWNvbiB3aXRoIHNyYyBcIiR7c3JjfVwiIGNvdWxkIG5vdCBiZSByZW5kZXJlZCBjb3JyZWN0bHk7IERpZCB5b3UgcHV0IGEgY29ycmVjdCBzcmMgYXR0cmlidXRlP2ApO1xuICAgICAgICAgICAgcmV0dXJuIHt0eXBlOiAndW5rbm93bid9O1xuICAgICAgICB9O1xuXG4gICAgICAgIGlmICghbmFtZXNwYWNlIHx8ICF2YWx1ZSB8fCAhdGhpcy5fcmVnaXN0cnkpIHtcbiAgICAgICAgICAgIHJldHVybiBvbkVycm9yKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUcnkgdG8gZmluZCBhIGltYWdlIGljb24uXG4gICAgICAgIGNvbnN0IGltYWdlSWNvbiA9IHRoaXMuZmluZEltYWdlSWNvbihuYW1lc3BhY2UsIHZhbHVlKTtcbiAgICAgICAgaWYgKGltYWdlSWNvbikge1xuICAgICAgICAgICAgcmV0dXJuIGltYWdlSWNvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRyeSB0byBmaW5kIGEgZm9udCBpY29uLlxuICAgICAgICBjb25zdCBmb250SWNvbiA9IHRoaXMuZmluZEZvbnRJY29uKG5hbWVzcGFjZSwgdmFsdWUpO1xuICAgICAgICBpZiAoZm9udEljb24pIHtcbiAgICAgICAgICAgIHJldHVybiBmb250SWNvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJldHVybiB0aGUgb24gZXJyb3IgZnVuY3Rpb24uXG4gICAgICAgIHJldHVybiBvbkVycm9yKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5kSW1hZ2VJY29uKG5hbWVzcGFjZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9yZWdpc3RyeS5maW5kKGl0ZW0gPT4gaXRlbVsnbmFtZXNwYWNlJ10gPT09IG5hbWVzcGFjZSAmJiBpdGVtWyduYW1lJ10gPT09IHZhbHVlKTtcblxuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHt0eXBlOiBkYXRhWyd0eXBlJ10sIHNyYzogZGF0YVsnc3JjJ119O1xuICAgIH1cblxuICAgIHByaXZhdGUgZmluZEZvbnRJY29uKG5hbWVzcGFjZTogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuX3JlZ2lzdHJ5LmZpbmQoaXRlbSA9PiBpdGVtWyduYW1lc3BhY2UnXSA9PT0gbmFtZXNwYWNlKTtcblxuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdXNlcyA9IGRhdGFbJ3VzZXMnXTtcbiAgICAgICAgaWYgKHVzZXMgPT09ICdkYXRhLWF0dHJpYnV0ZScpIHtcbiAgICAgICAgICAgIHJldHVybiB7dHlwZTogZGF0YVsndHlwZSddLCBjbGFzc05hbWU6IGRhdGFbJ2NsYXNzTmFtZSddLCBhdHRyaWJ1dGU6IGNvbnRlbnR9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHt0eXBlOiBkYXRhWyd0eXBlJ10sIGNsYXNzTmFtZTogZGF0YVsnY2xhc3NOYW1lJ10sIGNvbnRlbnR9O1xuICAgIH1cblxuICAgIHByaXZhdGUgd2FybiA9IChjb250ZW50OiBzdHJpbmcpID0+IHtcbiAgICAgICAgcmV0dXJuIGNvbnNvbGUgJiYgY29uc29sZS53YXJuICYmIGNvbnNvbGUud2Fybihjb250ZW50KTtcbiAgICB9O1xuXG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwic3RhdGUkIHwgYXN5bmMgYXMgZGF0YVwiXG4gICAgICAgICAgICAgIFtuZ1N3aXRjaF09XCJkYXRhPy50eXBlXCI+XG4gICAgPGkgKm5nU3dpdGNoQ2FzZT1cIidmb250J1wiXG4gICAgICAgW2F0dHIuZGF0YS1pY29uXT1cImRhdGE/LmF0dHJpYnV0ZVwiXG4gICAgICAgW2NsYXNzXT1cImRhdGE/LmNsYXNzTmFtZVwiPlxuICAgICAgICB7eyBkYXRhPy5jb250ZW50IH19XG4gICAgPC9pPlxuICAgIDxpbWcgKm5nU3dpdGNoQ2FzZT1cIidpbWFnZSdcIlxuICAgICAgICAgW3NyY109XCJkYXRhPy5zcmNcIlxuICAgICAgICAgW2FsdF09XCJhbHRcIj5cbiAgICA8c3ZnICpuZ1N3aXRjaENhc2U9XCIndW5rbm93bidcIlxuICAgICAgICAgdmlld0JveD1cIjAgMCAxIDFcIj5cbiAgICAgICAgPHJlY3QgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiMVwiIGhlaWdodD1cIjFcIiBmaWxsPVwiI2M1YzVjNVwiPjwvcmVjdD5cbiAgICA8L3N2Zz5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
3
|
-
import { mixinDisabled, mixinGrouped } from '@bravobit/bb-foundation';
|
|
4
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
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
|
-
import * as i2 from "../button/button.component";
|
|
10
|
-
import * as i3 from "@angular/common";
|
|
11
|
-
class BbImagePickerBase {
|
|
12
|
-
}
|
|
13
|
-
const BbImagePickerMixinBase = mixinDisabled(mixinGrouped(BbImagePickerBase));
|
|
14
|
-
export class BbImagePicker extends BbImagePickerMixinBase {
|
|
15
|
-
constructor(_converter) {
|
|
16
|
-
super();
|
|
17
|
-
this._converter = _converter;
|
|
18
|
-
// Inputs.
|
|
19
|
-
this.label = null;
|
|
20
|
-
this.placeholder = null;
|
|
21
|
-
this.styleDimensions = null;
|
|
22
|
-
this.cropDimensions = null;
|
|
23
|
-
// Form.
|
|
24
|
-
this._value$ = new BehaviorSubject(null);
|
|
25
|
-
this.valueChange = new EventEmitter();
|
|
26
|
-
this.onTouchedCallback = () => {
|
|
27
|
-
};
|
|
28
|
-
this.onChangeCallback = () => {
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
get value() {
|
|
32
|
-
return this._value$.getValue();
|
|
33
|
-
}
|
|
34
|
-
set value(value) {
|
|
35
|
-
this._value$.next(value);
|
|
36
|
-
this.valueChange.emit(value);
|
|
37
|
-
}
|
|
38
|
-
get image() {
|
|
39
|
-
return this._value$.pipe(map(value => value || this.placeholder), map(value => value ? `url(${value})` : null));
|
|
40
|
-
}
|
|
41
|
-
onFileChange(event) {
|
|
42
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
-
// Grab the file from the event.
|
|
44
|
-
const file = event.target.files[0];
|
|
45
|
-
// Check if the file exists.
|
|
46
|
-
if (!file || this.disabled) {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
try {
|
|
50
|
-
this.value = yield this._converter.toDataUri(file, this.cropDimensions);
|
|
51
|
-
}
|
|
52
|
-
catch (error) {
|
|
53
|
-
this.value = null;
|
|
54
|
-
}
|
|
55
|
-
this.onChangeCallback(this.value);
|
|
56
|
-
if (this.fileInput && this.fileInput.nativeElement) {
|
|
57
|
-
this.fileInput.nativeElement.value = '';
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
openFilePicker() {
|
|
62
|
-
if (this.disabled) {
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
// Execute a click on the file input.
|
|
66
|
-
this.fileInput
|
|
67
|
-
&& this.fileInput.nativeElement
|
|
68
|
-
&& this.fileInput.nativeElement.click
|
|
69
|
-
&& this.fileInput.nativeElement.click();
|
|
70
|
-
}
|
|
71
|
-
writeValue(value) {
|
|
72
|
-
this.value = value;
|
|
73
|
-
}
|
|
74
|
-
registerOnChange(method) {
|
|
75
|
-
this.onChangeCallback = method;
|
|
76
|
-
}
|
|
77
|
-
registerOnTouched(method) {
|
|
78
|
-
this.onTouchedCallback = method;
|
|
79
|
-
}
|
|
80
|
-
setDisabledState(isDisabled) {
|
|
81
|
-
this.disabled = isDisabled;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
BbImagePicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: BbImagePicker, deps: [{ token: i1.ImageConverter }], target: i0.ɵɵFactoryTarget.Component });
|
|
85
|
-
BbImagePicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.11", type: BbImagePicker, selector: "bb-image-picker", inputs: { grouped: "grouped", disabled: "disabled", label: "label", placeholder: "placeholder", styleDimensions: "styleDimensions", cropDimensions: "cropDimensions", value: "value" }, outputs: { valueChange: "valueChange" }, host: { properties: { "class.disabled": "disabled", "class.grouped": "grouped" }, classAttribute: "bb-image-picker" }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BbImagePicker), multi: true }], viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true, static: true }], usesInheritance: 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\">\n </span>\n\n<button *ngIf=\"label as labelText\"\n (click)=\"openFilePicker()\"\n bb-button\n class=\"bb-image-input-button\"\n type=\"button\">\n {{ labelText }}\n</button>\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:20px}.bb-image-picker.disabled{opacity:.5;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-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;border-radius:4px;align-items:center;justify-content:center;background:rgba(0,0,0,.2) url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7) center center/cover no-repeat}.bb-image-input-button{margin-top:10px}\n"], components: [{ type: i2.BbButton, selector: "button[bb-button]", inputs: ["disabled", "loading"], exportAs: ["bbButton"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i3.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
86
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: BbImagePicker, decorators: [{
|
|
87
|
-
type: Component,
|
|
88
|
-
args: [{
|
|
89
|
-
selector: 'bb-image-picker',
|
|
90
|
-
templateUrl: './image-picker.component.html',
|
|
91
|
-
styleUrls: ['./image-picker.component.scss'],
|
|
92
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
93
|
-
encapsulation: ViewEncapsulation.None,
|
|
94
|
-
host: {
|
|
95
|
-
'class': 'bb-image-picker',
|
|
96
|
-
'[class.disabled]': 'disabled',
|
|
97
|
-
'[class.grouped]': 'grouped'
|
|
98
|
-
},
|
|
99
|
-
inputs: ['grouped', 'disabled'],
|
|
100
|
-
providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BbImagePicker), multi: true }],
|
|
101
|
-
preserveWhitespaces: false
|
|
102
|
-
}]
|
|
103
|
-
}], ctorParameters: function () { return [{ type: i1.ImageConverter }]; }, propDecorators: { fileInput: [{
|
|
104
|
-
type: ViewChild,
|
|
105
|
-
args: ['fileInput', { static: true }]
|
|
106
|
-
}], label: [{
|
|
107
|
-
type: Input
|
|
108
|
-
}], placeholder: [{
|
|
109
|
-
type: Input
|
|
110
|
-
}], styleDimensions: [{
|
|
111
|
-
type: Input
|
|
112
|
-
}], cropDimensions: [{
|
|
113
|
-
type: Input
|
|
114
|
-
}], value: [{
|
|
115
|
-
type: Input
|
|
116
|
-
}], valueChange: [{
|
|
117
|
-
type: Output
|
|
118
|
-
}] } });
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9pbWFnZS1waWNrZXIvaW1hZ2UtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9pbWFnZS1waWNrZXIvaW1hZ2UtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0gsYUFBYSxFQUViLFlBQVksRUFDZixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBdUIsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFFbkMsTUFBTSxpQkFBaUI7Q0FDdEI7QUFFRCxNQUFNLHNCQUFzQixHQUd0QixhQUFhLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztBQWlCckQsTUFBTSxPQUFPLGFBQWMsU0FBUSxzQkFBc0I7SUFjckQsWUFBb0IsVUFBMEI7UUFDMUMsS0FBSyxFQUFFLENBQUM7UUFEUSxlQUFVLEdBQVYsVUFBVSxDQUFnQjtRQVQ5QyxVQUFVO1FBQ0QsVUFBSyxHQUFrQixJQUFJLENBQUM7UUFDNUIsZ0JBQVcsR0FBa0IsSUFBSSxDQUFDO1FBQ2xDLG9CQUFlLEdBQTZDLElBQUksQ0FBQztRQUNqRSxtQkFBYyxHQUE2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LEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQyxDQUFDLHVLQzFDeEcsdW9CQXFCQTs0RkR3QmEsYUFBYTtrQkFmekIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixXQUFXLEVBQUUsK0JBQStCO29CQUM1QyxTQUFTLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQztvQkFDNUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxJQUFJLEVBQUU7d0JBQ0YsT0FBTyxFQUFFLGlCQUFpQjt3QkFDMUIsa0JBQWtCLEVBQUUsVUFBVTt3QkFDOUIsaUJBQWlCLEVBQUUsU0FBUztxQkFDL0I7b0JBQ0QsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQztvQkFDL0IsU0FBUyxFQUFFLENBQUMsRUFBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQyxDQUFDO29CQUNwRyxtQkFBbUIsRUFBRSxLQUFLO2lCQUM3QjtxR0FJMkMsU0FBUztzQkFBaEQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUc3QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBVUYsS0FBSztzQkFEUixLQUFLO2dCQUtJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEltYWdlQ29udmVydGVyLFxuICAgIENhbkRpc2FibGVDb25zdHJ1Y3RvcixcbiAgICBtaXhpbkRpc2FibGVkLFxuICAgIElzR3JvdXBlZENvbnN0cnVjdG9yLFxuICAgIG1peGluR3JvdXBlZFxufSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbic7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuY2xhc3MgQmJJbWFnZVBpY2tlckJhc2Uge1xufVxuXG5jb25zdCBCYkltYWdlUGlja2VyTWl4aW5CYXNlOiBJc0dyb3VwZWRDb25zdHJ1Y3RvclxuICAgICYgQ2FuRGlzYWJsZUNvbnN0cnVjdG9yXG4gICAgJiB0eXBlb2YgQmJJbWFnZVBpY2tlckJhc2VcbiAgICA9IG1peGluRGlzYWJsZWQobWl4aW5Hcm91cGVkKEJiSW1hZ2VQaWNrZXJCYXNlKSk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYmItaW1hZ2UtcGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2UtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbWFnZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ2JiLWltYWdlLXBpY2tlcicsXG4gICAgICAgICdbY2xhc3MuZGlzYWJsZWRdJzogJ2Rpc2FibGVkJyxcbiAgICAgICAgJ1tjbGFzcy5ncm91cGVkXSc6ICdncm91cGVkJ1xuICAgIH0sXG4gICAgaW5wdXRzOiBbJ2dyb3VwZWQnLCAnZGlzYWJsZWQnXSxcbiAgICBwcm92aWRlcnM6IFt7cHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEJiSW1hZ2VQaWNrZXIpLCBtdWx0aTogdHJ1ZX1dLFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIEJiSW1hZ2VQaWNrZXIgZXh0ZW5kcyBCYkltYWdlUGlja2VyTWl4aW5CYXNlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gICAgLy8gVmlld3MuXG4gICAgQFZpZXdDaGlsZCgnZmlsZUlucHV0Jywge3N0YXRpYzogdHJ1ZX0pIGZpbGVJbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAgIC8vIElucHV0cy5cbiAgICBASW5wdXQoKSBsYWJlbDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpIHN0eWxlRGltZW5zaW9uczogeyB3aWR0aDogc3RyaW5nLCBoZWlnaHQ6IHN0cmluZyB9IHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgY3JvcERpbWVuc2lvbnM6IHsgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIgfSB8IG51bGwgPSBudWxsO1xuXG4gICAgLy8gRm9ybS5cbiAgICBwcml2YXRlIF92YWx1ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IG51bGw+KG51bGwpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfY29udmVydGVyOiBJbWFnZUNvbnZlcnRlcikge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWUkLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBudWxsPigpO1xuXG4gICAgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlJC5uZXh0KHZhbHVlKTtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXQgaW1hZ2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZSQucGlwZShcbiAgICAgICAgICAgIG1hcCh2YWx1ZSA9PiB2YWx1ZSB8fCB0aGlzLnBsYWNlaG9sZGVyKSxcbiAgICAgICAgICAgIG1hcCh2YWx1ZSA9PiB2YWx1ZSA/IGB1cmwoJHt2YWx1ZX0pYCA6IG51bGwpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgYXN5bmMgb25GaWxlQ2hhbmdlKGV2ZW50KSB7XG4gICAgICAgIC8vIEdyYWIgdGhlIGZpbGUgZnJvbSB0aGUgZXZlbnQuXG4gICAgICAgIGNvbnN0IGZpbGU6IEZpbGUgPSBldmVudC50YXJnZXQuZmlsZXNbMF07XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGZpbGUgZXhpc3RzLlxuICAgICAgICBpZiAoIWZpbGUgfHwgdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBhd2FpdCB0aGlzLl9jb252ZXJ0ZXIudG9EYXRhVXJpKGZpbGUsIHRoaXMuY3JvcERpbWVuc2lvbnMpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sodGhpcy52YWx1ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMuZmlsZUlucHV0ICYmIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9wZW5GaWxlUGlja2VyKCkge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRXhlY3V0ZSBhIGNsaWNrIG9uIHRoZSBmaWxlIGlucHV0LlxuICAgICAgICB0aGlzLmZpbGVJbnB1dFxuICAgICAgICAmJiB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50XG4gICAgICAgICYmIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQuY2xpY2tcbiAgICAgICAgJiYgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgIH1cblxuICAgIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gKCkgPT4ge1xuICAgIH07XG5cbiAgICBvbkNoYW5nZUNhbGxiYWNrOiAoXzogc3RyaW5nIHwgbnVsbCkgPT4gdm9pZCA9ICgpID0+IHtcbiAgICB9O1xuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCkge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShtZXRob2Q6IChfOiBzdHJpbmcgfCBudWxsKSA9PiB2b2lkKSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IG1ldGhvZDtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChtZXRob2Q6ICgpID0+IHZvaWQpIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IG1ldGhvZDtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgfVxuXG59XG4iLCI8IS0tIFRoZSBpbnB1dCB0aGF0IGNhbiBvcGVuIHRoZSBmaWxlIHBpY2tlci4gLS0+XG48aW5wdXQgI2ZpbGVJbnB1dFxuICAgICAgIChjaGFuZ2UpPVwib25GaWxlQ2hhbmdlKCRldmVudClcIlxuICAgICAgIGNsYXNzPVwiYmItaW1hZ2UtcGlja2VyLWlucHV0XCJcbiAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgYWNjZXB0PVwiaW1hZ2UvKlwiPlxuXG48c3BhbiBbc3R5bGUud2lkdGhdPVwic3R5bGVEaW1lbnNpb25zPy53aWR0aCB8fCAnMTAwJSdcIlxuICAgICAgW3N0eWxlLmhlaWdodF09XCJzdHlsZURpbWVuc2lvbnM/LmhlaWdodCB8fCAnMjE1cHgnXCJcbiAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cImltYWdlIHwgYXN5bmNcIlxuICAgICAgY2xhc3M9XCJiYi1pbWFnZS1pbnB1dC1pbWFnZVwiPlxuICAgIDwvc3Bhbj5cblxuPGJ1dHRvbiAqbmdJZj1cImxhYmVsIGFzIGxhYmVsVGV4dFwiXG4gICAgICAgIChjbGljayk9XCJvcGVuRmlsZVBpY2tlcigpXCJcbiAgICAgICAgYmItYnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYmItaW1hZ2UtaW5wdXQtYnV0dG9uXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiPlxuICAgIHt7IGxhYmVsVGV4dCB9fVxuPC9idXR0b24+XG4iXX0=
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { Pipe } from '@angular/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@bravobit/bb-foundation";
|
|
5
|
-
import * as i2 from "@angular/platform-browser";
|
|
6
|
-
export class BbFileImage {
|
|
7
|
-
constructor(_platform, _image, _sanitizer) {
|
|
8
|
-
this._platform = _platform;
|
|
9
|
-
this._image = _image;
|
|
10
|
-
this._sanitizer = _sanitizer;
|
|
11
|
-
}
|
|
12
|
-
transform(file) {
|
|
13
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
14
|
-
// If the file is not a file return.
|
|
15
|
-
if (!this._platform.isBrowser || !(file instanceof File)) {
|
|
16
|
-
return null;
|
|
17
|
-
}
|
|
18
|
-
return this._image.fileToImage(file, [
|
|
19
|
-
'image/png',
|
|
20
|
-
'image/jpeg',
|
|
21
|
-
'image/gif',
|
|
22
|
-
'image/svg+xml'
|
|
23
|
-
]).then(image => {
|
|
24
|
-
if (!image) {
|
|
25
|
-
return null;
|
|
26
|
-
}
|
|
27
|
-
return {
|
|
28
|
-
background: this._sanitizer.bypassSecurityTrustStyle(`url(${image.src})`),
|
|
29
|
-
aspectRatio: image.height / image.width
|
|
30
|
-
};
|
|
31
|
-
}).catch(() => {
|
|
32
|
-
return null;
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
BbFileImage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: BbFileImage, deps: [{ token: i1.Platform }, { token: i1.ImageConverter }, { token: i2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
38
|
-
BbFileImage.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: BbFileImage, name: "bbFileImage" });
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: BbFileImage, decorators: [{
|
|
40
|
-
type: Pipe,
|
|
41
|
-
args: [{
|
|
42
|
-
name: 'bbFileImage'
|
|
43
|
-
}]
|
|
44
|
-
}], ctorParameters: function () { return [{ type: i1.Platform }, { type: i1.ImageConverter }, { type: i2.DomSanitizer }]; } });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbWFnZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9lbGVtZW50cy9zcmMvbGliL3BpcGVzL2ZpbGUtaW1hZ2UucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFDLElBQUksRUFBZ0IsTUFBTSxlQUFlLENBQUM7Ozs7QUFLbEQsTUFBTSxPQUFPLFdBQVc7SUFFcEIsWUFBb0IsU0FBbUIsRUFDbkIsTUFBc0IsRUFDdEIsVUFBd0I7UUFGeEIsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUN0QixlQUFVLEdBQVYsVUFBVSxDQUFjO0lBQzVDLENBQUM7SUFFSyxTQUFTLENBQUMsSUFBVTs7WUFDdEIsb0NBQW9DO1lBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsSUFBSSxZQUFZLElBQUksQ0FBQyxFQUFFO2dCQUN0RCxPQUFPLElBQUksQ0FBQzthQUNmO1lBRUQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUU7Z0JBQ2pDLFdBQVc7Z0JBQ1gsWUFBWTtnQkFDWixXQUFXO2dCQUNYLGVBQWU7YUFDbEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDWixJQUFJLENBQUMsS0FBSyxFQUFFO29CQUNSLE9BQU8sSUFBSSxDQUFDO2lCQUNmO2dCQUVELE9BQU87b0JBQ0gsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsd0JBQXdCLENBQUMsT0FBTyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUM7b0JBQ3pFLFdBQVcsRUFBRSxLQUFLLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxLQUFLO2lCQUMxQyxDQUFDO1lBQ04sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtnQkFDVixPQUFPLElBQUksQ0FBQztZQUNoQixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7S0FBQTs7eUdBOUJRLFdBQVc7dUdBQVgsV0FBVzs0RkFBWCxXQUFXO2tCQUh2QixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxhQUFhO2lCQUN0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW1hZ2VDb252ZXJ0ZXIsIFBsYXRmb3JtfSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbic7XG5pbXBvcnQge0RvbVNhbml0aXplcn0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQge1BpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gICAgbmFtZTogJ2JiRmlsZUltYWdlJ1xufSlcbmV4cG9ydCBjbGFzcyBCYkZpbGVJbWFnZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfcGxhdGZvcm06IFBsYXRmb3JtLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2ltYWdlOiBJbWFnZUNvbnZlcnRlcixcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9zYW5pdGl6ZXI6IERvbVNhbml0aXplcikge1xuICAgIH1cblxuICAgIGFzeW5jIHRyYW5zZm9ybShmaWxlOiBGaWxlKSB7XG4gICAgICAgIC8vIElmIHRoZSBmaWxlIGlzIG5vdCBhIGZpbGUgcmV0dXJuLlxuICAgICAgICBpZiAoIXRoaXMuX3BsYXRmb3JtLmlzQnJvd3NlciB8fCAhKGZpbGUgaW5zdGFuY2VvZiBGaWxlKSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5faW1hZ2UuZmlsZVRvSW1hZ2UoZmlsZSwgW1xuICAgICAgICAgICAgJ2ltYWdlL3BuZycsXG4gICAgICAgICAgICAnaW1hZ2UvanBlZycsXG4gICAgICAgICAgICAnaW1hZ2UvZ2lmJyxcbiAgICAgICAgICAgICdpbWFnZS9zdmcreG1sJ1xuICAgICAgICBdKS50aGVuKGltYWdlID0+IHtcbiAgICAgICAgICAgIGlmICghaW1hZ2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0aGlzLl9zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKGB1cmwoJHtpbWFnZS5zcmN9KWApLFxuICAgICAgICAgICAgICAgIGFzcGVjdFJhdGlvOiBpbWFnZS5oZWlnaHQgLyBpbWFnZS53aWR0aFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSkuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0pO1xuICAgIH1cblxufVxuIl19
|