@bravobit/bb-foundation 0.16.3 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +47 -47
- package/auth/bravobit-bb-foundation-auth.d.ts +5 -5
- package/auth/lib/auth.interceptor.d.ts +21 -21
- package/auth/lib/auth.module.d.ts +15 -15
- package/auth/lib/auth.service.d.ts +59 -59
- package/auth/lib/auth.session.d.ts +34 -34
- package/auth/lib/directives/authenticated.directive.d.ts +14 -14
- package/auth/lib/directives/permission.directive.d.ts +24 -24
- package/auth/lib/directives/role.directive.d.ts +16 -16
- package/auth/lib/guards/anonymous.guard.d.ts +11 -11
- package/auth/lib/guards/authenticated.guard.d.ts +11 -11
- package/auth/lib/helpers/jwt.helper.d.ts +8 -8
- package/auth/lib/helpers/mapper.helper.d.ts +23 -23
- package/auth/lib/interfaces/config.interface.d.ts +12 -12
- package/auth/lib/interfaces/mapper.interface.d.ts +19 -19
- package/auth/lib/interfaces/provider.interface.d.ts +16 -16
- package/auth/lib/interfaces/token.interface.d.ts +11 -11
- package/auth/lib/permissions.service.d.ts +14 -14
- package/auth/lib/providers/email.provider.d.ts +15 -15
- package/auth/lib/providers/verify.provider.d.ts +13 -13
- package/auth/lib/tokens/use-authorization.token.d.ts +2 -2
- package/auth/public_api.d.ts +18 -18
- package/bravobit-bb-foundation.d.ts +5 -5
- package/collections/bravobit-bb-foundation-collections.d.ts +5 -5
- package/collections/lib/collection.d.ts +43 -43
- package/collections/lib/collections.module.d.ts +10 -10
- package/collections/lib/components/collections-pager/collections-pager.component.d.ts +34 -34
- package/collections/lib/components/collections-viewer/collections-viewer.component.d.ts +12 -12
- package/collections/lib/components/collections.directive.d.ts +17 -17
- package/collections/lib/interfaces/collection.interface.d.ts +26 -26
- package/collections/lib/providers/api-collection.provider.d.ts +17 -15
- package/collections/lib/providers/collection.provider.d.ts +6 -6
- package/collections/lib/providers/local-collection.provider.d.ts +8 -8
- package/collections/public_api.d.ts +9 -9
- package/controls/bravobit-bb-foundation-controls.d.ts +5 -5
- package/controls/lib/checkbox/checkbox/checkbox.component.d.ts +47 -47
- package/controls/lib/checkbox/checkbox-group/checkbox-group.component.d.ts +18 -18
- package/controls/lib/checkbox/checkbox.module.d.ts +9 -9
- package/controls/lib/controls.module.d.ts +7 -7
- package/controls/public_api.d.ts +4 -4
- package/dashboard/bravobit-bb-foundation-dashboard.d.ts +5 -5
- package/dashboard/lib/dashboard/dashboard.component.d.ts +19 -19
- package/dashboard/lib/dashboard-header/dashboard-header.component.d.ts +11 -11
- package/dashboard/lib/dashboard-menu/dashboard-menu.component.d.ts +9 -9
- package/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.d.ts +11 -11
- package/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.d.ts +21 -21
- package/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.d.ts +27 -27
- package/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.d.ts +16 -16
- package/dashboard/lib/dashboard.module.d.ts +16 -16
- package/dashboard/public_api.d.ts +8 -8
- package/dialog/bravobit-bb-foundation-dialog.d.ts +5 -5
- package/dialog/lib/dialog-actions/dialog-actions.component.d.ts +5 -5
- package/dialog/lib/dialog-confirm/dialog-confirm.component.d.ts +16 -16
- package/dialog/lib/dialog-container/dialog-container.component.d.ts +24 -24
- package/dialog/lib/dialog-header/dialog-header.component.d.ts +9 -9
- package/dialog/lib/dialog-link/dialog-link.component.d.ts +5 -5
- package/dialog/lib/dialog-modal/dialog-modal.component.d.ts +12 -12
- package/dialog/lib/dialog-overlay/dialog-overlay.component.d.ts +22 -22
- package/dialog/lib/dialog.injector.d.ts +8 -8
- package/dialog/lib/dialog.insertion.d.ts +8 -8
- package/dialog/lib/dialog.interfaces.d.ts +3 -3
- package/dialog/lib/dialog.module.d.ts +19 -19
- package/dialog/lib/dialog.ref.d.ts +8 -8
- package/dialog/lib/dialog.service.d.ts +19 -19
- package/dialog/public_api.d.ts +9 -9
- package/elements/bravobit-bb-foundation-elements.d.ts +5 -5
- package/elements/lib/avatar/avatar.component.d.ts +25 -25
- package/elements/lib/button/button.component.d.ts +23 -23
- package/elements/lib/checkbox/checkbox.component.d.ts +27 -27
- package/elements/lib/date-picker/date-picker.component.d.ts +69 -69
- package/elements/lib/directives/addon.directive.d.ts +9 -9
- package/elements/lib/directives/autosize.directive.d.ts +18 -18
- package/elements/lib/directives/focus-trap.directive.d.ts +17 -17
- package/elements/lib/directives/focus.directive.d.ts +14 -14
- package/elements/lib/directives/form-submit.directive.d.ts +17 -17
- package/elements/lib/directives/input.directive.d.ts +38 -38
- package/elements/lib/directives/template.directive.d.ts +10 -10
- package/elements/lib/dropdown/dropdown.component.d.ts +21 -21
- package/elements/lib/elements.interfaces.d.ts +25 -25
- package/elements/lib/elements.module.d.ts +116 -116
- package/elements/lib/file-picker/file-picker.component.d.ts +49 -49
- package/elements/lib/form-control/form-control.component.d.ts +21 -21
- package/elements/lib/form-error/form-error.component.d.ts +29 -29
- package/elements/lib/form-group/form-group.component.d.ts +10 -10
- package/elements/lib/icon/icon.component.d.ts +22 -22
- package/elements/lib/image-picker/image-picker.component.d.ts +38 -38
- package/elements/lib/pipes/file-image.pipe.d.ts +13 -13
- package/elements/lib/pipes/file-size.pipe.d.ts +8 -8
- package/elements/lib/pipes/relative-time.pipe.d.ts +19 -19
- package/elements/lib/spinner/spinner.component.d.ts +12 -12
- package/elements/lib/tag/tag.component.d.ts +7 -7
- package/elements/public_api.d.ts +25 -25
- package/esm2020/auth/bravobit-bb-foundation-auth.mjs +4 -4
- package/esm2020/auth/lib/auth.interceptor.mjs +93 -94
- package/esm2020/auth/lib/auth.module.mjs +54 -54
- package/esm2020/auth/lib/auth.service.mjs +281 -276
- package/esm2020/auth/lib/auth.session.mjs +131 -131
- package/esm2020/auth/lib/directives/authenticated.directive.mjs +31 -31
- package/esm2020/auth/lib/directives/permission.directive.mjs +80 -80
- package/esm2020/auth/lib/directives/role.directive.mjs +37 -37
- package/esm2020/auth/lib/guards/anonymous.guard.mjs +34 -34
- package/esm2020/auth/lib/guards/authenticated.guard.mjs +35 -35
- package/esm2020/auth/lib/helpers/jwt.helper.mjs +69 -69
- package/esm2020/auth/lib/helpers/mapper.helper.mjs +35 -35
- package/esm2020/auth/lib/interfaces/config.interface.mjs +3 -3
- package/esm2020/auth/lib/interfaces/mapper.interface.mjs +2 -2
- package/esm2020/auth/lib/interfaces/provider.interface.mjs +2 -2
- package/esm2020/auth/lib/interfaces/token.interface.mjs +2 -2
- package/esm2020/auth/lib/permissions.service.mjs +56 -56
- package/esm2020/auth/lib/providers/email.provider.mjs +25 -25
- package/esm2020/auth/lib/providers/verify.provider.mjs +19 -19
- package/esm2020/auth/lib/tokens/use-authorization.token.mjs +3 -3
- package/esm2020/auth/public_api.mjs +19 -19
- package/esm2020/bravobit-bb-foundation.mjs +4 -4
- package/esm2020/collections/bravobit-bb-foundation-collections.mjs +4 -4
- package/esm2020/collections/lib/collection.mjs +102 -102
- package/esm2020/collections/lib/collections.module.mjs +54 -54
- package/esm2020/collections/lib/components/collections-pager/collections-pager.component.mjs +123 -123
- package/esm2020/collections/lib/components/collections-viewer/collections-viewer.component.mjs +31 -31
- package/esm2020/collections/lib/components/collections.directive.mjs +43 -43
- package/esm2020/collections/lib/interfaces/collection.interface.mjs +2 -2
- package/esm2020/collections/lib/providers/api-collection.provider.mjs +71 -71
- package/esm2020/collections/lib/providers/collection.provider.mjs +13 -13
- package/esm2020/collections/lib/providers/local-collection.provider.mjs +16 -16
- package/esm2020/collections/public_api.mjs +10 -10
- package/esm2020/controls/bravobit-bb-foundation-controls.mjs +4 -4
- package/esm2020/controls/lib/checkbox/checkbox/checkbox.component.mjs +153 -153
- package/esm2020/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +48 -48
- package/esm2020/controls/lib/checkbox/checkbox.module.mjs +19 -19
- package/esm2020/controls/lib/controls.module.mjs +16 -16
- package/esm2020/controls/public_api.mjs +5 -5
- package/esm2020/dashboard/bravobit-bb-foundation-dashboard.mjs +4 -4
- package/esm2020/dashboard/lib/dashboard/dashboard.component.mjs +56 -56
- package/esm2020/dashboard/lib/dashboard-header/dashboard-header.component.mjs +30 -30
- package/esm2020/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +31 -31
- package/esm2020/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +29 -29
- package/esm2020/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +75 -75
- package/esm2020/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +99 -99
- package/esm2020/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +62 -62
- package/esm2020/dashboard/lib/dashboard.module.mjs +47 -47
- package/esm2020/dashboard/public_api.mjs +9 -9
- package/esm2020/dialog/bravobit-bb-foundation-dialog.mjs +4 -4
- package/esm2020/dialog/lib/dialog-actions/dialog-actions.component.mjs +12 -12
- package/esm2020/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +37 -37
- package/esm2020/dialog/lib/dialog-container/dialog-container.component.mjs +153 -153
- package/esm2020/dialog/lib/dialog-header/dialog-header.component.mjs +25 -25
- package/esm2020/dialog/lib/dialog-link/dialog-link.component.mjs +11 -11
- package/esm2020/dialog/lib/dialog-modal/dialog-modal.component.mjs +46 -46
- package/esm2020/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +134 -134
- package/esm2020/dialog/lib/dialog.injector.mjs +18 -18
- package/esm2020/dialog/lib/dialog.insertion.mjs +16 -16
- package/esm2020/dialog/lib/dialog.interfaces.mjs +3 -3
- package/esm2020/dialog/lib/dialog.module.mjs +70 -70
- package/esm2020/dialog/lib/dialog.ref.mjs +22 -22
- package/esm2020/dialog/lib/dialog.service.mjs +77 -77
- package/esm2020/dialog/public_api.mjs +10 -10
- package/esm2020/elements/bravobit-bb-foundation-elements.mjs +4 -4
- package/esm2020/elements/lib/avatar/avatar.component.mjs +145 -142
- package/esm2020/elements/lib/button/button.component.mjs +61 -61
- package/esm2020/elements/lib/checkbox/checkbox.component.mjs +73 -73
- package/esm2020/elements/lib/date-picker/date-picker.component.mjs +304 -304
- package/esm2020/elements/lib/directives/addon.directive.mjs +29 -29
- package/esm2020/elements/lib/directives/autosize.directive.mjs +72 -72
- package/esm2020/elements/lib/directives/focus-trap.directive.mjs +77 -77
- package/esm2020/elements/lib/directives/focus.directive.mjs +39 -39
- package/esm2020/elements/lib/directives/form-submit.directive.mjs +50 -50
- package/esm2020/elements/lib/directives/input.directive.mjs +136 -136
- package/esm2020/elements/lib/directives/template.directive.mjs +28 -28
- package/esm2020/elements/lib/dropdown/dropdown.component.mjs +100 -100
- package/esm2020/elements/lib/elements.interfaces.mjs +4 -4
- package/esm2020/elements/lib/elements.module.mjs +177 -177
- package/esm2020/elements/lib/file-picker/file-picker.component.mjs +236 -236
- package/esm2020/elements/lib/form-control/form-control.component.mjs +49 -49
- package/esm2020/elements/lib/form-error/form-error.component.mjs +108 -108
- package/esm2020/elements/lib/form-group/form-group.component.mjs +18 -18
- package/esm2020/elements/lib/icon/icon.component.mjs +102 -102
- package/esm2020/elements/lib/image-picker/image-picker.component.mjs +106 -106
- package/esm2020/elements/lib/pipes/file-image.pipe.mjs +42 -42
- package/esm2020/elements/lib/pipes/file-size.pipe.mjs +28 -28
- package/esm2020/elements/lib/pipes/relative-time.pipe.mjs +94 -94
- package/esm2020/elements/lib/spinner/spinner.component.mjs +25 -25
- package/esm2020/elements/lib/tag/tag.component.mjs +18 -18
- package/esm2020/elements/public_api.mjs +26 -26
- package/esm2020/http/bravobit-bb-foundation-http.mjs +4 -4
- package/esm2020/http/lib/classes/http.config.mjs +29 -29
- package/esm2020/http/lib/classes/http.error.mjs +20 -20
- package/esm2020/http/lib/http.interfaces.mjs +2 -2
- package/esm2020/http/lib/http.module.mjs +43 -43
- package/esm2020/http/lib/interceptors/base-url.interceptor.mjs +50 -50
- package/esm2020/http/lib/interceptors/error.interceptor.mjs +32 -32
- package/esm2020/http/public_api.mjs +7 -7
- package/esm2020/lib/core/miscellaneous/regex.mjs +5 -5
- package/esm2020/lib/core/miscellaneous/validator.mjs +85 -85
- package/esm2020/lib/core/mixins/can-disable.mjs +16 -16
- package/esm2020/lib/core/mixins/can-hide-errors.mjs +16 -16
- package/esm2020/lib/core/mixins/can-load.mjs +16 -16
- package/esm2020/lib/core/mixins/constructor.mjs +2 -2
- package/esm2020/lib/core/mixins/has-error.mjs +16 -16
- package/esm2020/lib/core/mixins/is-focused.mjs +16 -16
- package/esm2020/lib/core/mixins/is-grouped.mjs +16 -16
- package/esm2020/lib/core/mixins/is-readonly.mjs +16 -16
- package/esm2020/lib/core/mixins/is-required.mjs +16 -16
- package/esm2020/lib/core/services/clipboard.service.mjs +70 -70
- package/esm2020/lib/core/services/exif.service.mjs +163 -163
- package/esm2020/lib/core/services/file-loader.service.mjs +87 -87
- package/esm2020/lib/core/services/image-converter.service.mjs +123 -123
- package/esm2020/lib/core/services/languages.service.mjs +74 -74
- package/esm2020/lib/core/services/network.service.mjs +55 -55
- package/esm2020/lib/core/services/patch.service.mjs +63 -63
- package/esm2020/lib/core/services/platform.service.mjs +42 -42
- package/esm2020/lib/core/tokens/accept-language.token.mjs +3 -3
- package/esm2020/lib/core/tokens/base-url.token.mjs +3 -3
- package/esm2020/lib/core/tokens/cookie.token.mjs +3 -3
- package/esm2020/lib/core/tokens/location.token.mjs +6 -6
- package/esm2020/lib/core/tokens/navigator.token.mjs +6 -6
- package/esm2020/lib/core/tokens/window.token.mjs +12 -12
- package/esm2020/localize/bravobit-bb-foundation-localize.mjs +4 -4
- package/esm2020/localize/lib/functions/date.function.mjs +18 -18
- package/esm2020/localize/lib/functions/lowercase.function.mjs +13 -13
- package/esm2020/localize/lib/functions/uppercase.function.mjs +13 -13
- package/esm2020/localize/lib/handlers/missing.handler.mjs +15 -17
- package/esm2020/localize/lib/interfaces/config.interfaces.mjs +7 -10
- package/esm2020/localize/lib/interfaces/functions.interfaces.mjs +8 -8
- package/esm2020/localize/lib/interfaces/handlers.interfaces.mjs +2 -2
- package/esm2020/localize/lib/interfaces/options.interfaces.mjs +6 -6
- package/esm2020/localize/lib/localizations/dutch.localization.mjs +45 -53
- package/esm2020/localize/lib/localizations/english.localization.mjs +45 -53
- package/esm2020/localize/lib/localize.dictionary.mjs +26 -135
- package/esm2020/localize/lib/localize.module.mjs +71 -69
- package/esm2020/localize/lib/localize.pipe.mjs +49 -49
- package/esm2020/localize/lib/localize.service.mjs +205 -277
- package/esm2020/localize/lib/views/localize-string/localize-string.component.mjs +88 -88
- package/esm2020/localize/lib/views/localize-template-or-string.directive.mjs +28 -28
- package/esm2020/localize/lib/views/localize-template.directive.mjs +21 -21
- package/esm2020/localize/public_api.mjs +17 -18
- package/esm2020/notifications/bravobit-bb-foundation-notifications.mjs +4 -4
- package/esm2020/notifications/lib/notifications-item/notifications-item.component.mjs +100 -100
- package/esm2020/notifications/lib/notifications-list/notifications-list.component.mjs +47 -47
- package/esm2020/notifications/lib/notifications.animations.mjs +28 -28
- package/esm2020/notifications/lib/notifications.injector.mjs +18 -18
- package/esm2020/notifications/lib/notifications.interfaces.mjs +20 -20
- package/esm2020/notifications/lib/notifications.module.mjs +30 -30
- package/esm2020/notifications/lib/notifications.service.mjs +145 -145
- package/esm2020/notifications/public_api.mjs +4 -4
- package/esm2020/public_api.mjs +29 -29
- package/esm2020/recaptcha/bravobit-bb-foundation-recaptcha.mjs +4 -4
- package/esm2020/recaptcha/lib/recaptcha/recaptcha.component.mjs +185 -185
- package/esm2020/recaptcha/lib/recaptcha-loader.service.mjs +90 -90
- package/esm2020/recaptcha/lib/recaptcha.interface.mjs +3 -3
- package/esm2020/recaptcha/lib/recaptcha.module.mjs +27 -27
- package/esm2020/recaptcha/public_api.mjs +5 -5
- package/esm2020/rxjs/bravobit-bb-foundation-rxjs.mjs +4 -4
- package/esm2020/rxjs/lib/operators/combine-latest-map.operator.mjs +10 -10
- package/esm2020/rxjs/lib/operators/filter-nil.operator.mjs +5 -5
- package/esm2020/rxjs/public_api.mjs +3 -3
- package/esm2020/storage/bravobit-bb-foundation-storage.mjs +4 -4
- package/esm2020/storage/lib/interfaces/attributes.interface.mjs +2 -2
- package/esm2020/storage/lib/interfaces/memory.interface.mjs +2 -2
- package/esm2020/storage/lib/interfaces/strategy.interface.mjs +2 -2
- package/esm2020/storage/lib/storage.service.mjs +109 -109
- package/esm2020/storage/lib/strategies/cookie-storage.strategy.mjs +142 -142
- package/esm2020/storage/lib/strategies/memory-storage.strategy.mjs +56 -56
- package/esm2020/storage/lib/strategies/polyfill-storage.strategy.mjs +102 -102
- package/esm2020/storage/public_api.mjs +8 -8
- package/esm2020/table/bravobit-bb-foundation-table.mjs +4 -4
- package/esm2020/table/lib/components/table/table.component.mjs +191 -191
- package/esm2020/table/lib/components/table-cell/table-cell.component.mjs +11 -11
- package/esm2020/table/lib/components/table-header-cell/table-header-cell.component.mjs +131 -131
- package/esm2020/table/lib/components/table-pager/table-pager.component.mjs +136 -136
- package/esm2020/table/lib/data/datasource.data.mjs +32 -32
- package/esm2020/table/lib/data/generic.data.mjs +72 -72
- package/esm2020/table/lib/interfaces/datasource.interface.mjs +2 -2
- package/esm2020/table/lib/interfaces/table.interfaces.mjs +2 -2
- package/esm2020/table/lib/table.module.mjs +42 -42
- package/esm2020/table/public_api.mjs +10 -10
- package/fesm2015/bravobit-bb-foundation-auth.mjs +930 -926
- package/fesm2015/bravobit-bb-foundation-auth.mjs.map +1 -1
- package/fesm2015/bravobit-bb-foundation-collections.mjs +423 -423
- package/fesm2015/bravobit-bb-foundation-collections.mjs.map +1 -1
- package/fesm2015/bravobit-bb-foundation-controls.mjs +216 -216
- package/fesm2015/bravobit-bb-foundation-controls.mjs.map +1 -1
- package/fesm2015/bravobit-bb-foundation-dashboard.mjs +382 -382
- package/fesm2015/bravobit-bb-foundation-dashboard.mjs.map +1 -1
- package/fesm2015/bravobit-bb-foundation-dialog.mjs +542 -542
- package/fesm2015/bravobit-bb-foundation-dialog.mjs.map +1 -1
- package/fesm2015/bravobit-bb-foundation-elements.mjs +1971 -1968
- package/fesm2015/bravobit-bb-foundation-elements.mjs.map +1 -1
- package/fesm2015/bravobit-bb-foundation-http.mjs +156 -156
- package/fesm2015/bravobit-bb-foundation-http.mjs.map +1 -1
- package/fesm2015/bravobit-bb-foundation-localize.mjs +611 -805
- package/fesm2015/bravobit-bb-foundation-localize.mjs.map +1 -1
- package/fesm2015/bravobit-bb-foundation-notifications.mjs +348 -348
- package/fesm2015/bravobit-bb-foundation-notifications.mjs.map +1 -1
- package/fesm2015/bravobit-bb-foundation-recaptcha.mjs +290 -290
- package/fesm2015/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
- package/fesm2015/bravobit-bb-foundation-rxjs.mjs +7 -7
- package/fesm2015/bravobit-bb-foundation-rxjs.mjs.map +1 -1
- package/fesm2015/bravobit-bb-foundation-storage.mjs +401 -401
- package/fesm2015/bravobit-bb-foundation-storage.mjs.map +1 -1
- package/fesm2015/bravobit-bb-foundation-table.mjs +571 -571
- package/fesm2015/bravobit-bb-foundation-table.mjs.map +1 -1
- package/fesm2015/bravobit-bb-foundation.mjs +860 -860
- package/fesm2015/bravobit-bb-foundation.mjs.map +1 -1
- package/fesm2020/bravobit-bb-foundation-auth.mjs +882 -878
- package/fesm2020/bravobit-bb-foundation-auth.mjs.map +1 -1
- package/fesm2020/bravobit-bb-foundation-collections.mjs +413 -413
- package/fesm2020/bravobit-bb-foundation-collections.mjs.map +1 -1
- package/fesm2020/bravobit-bb-foundation-controls.mjs +214 -214
- package/fesm2020/bravobit-bb-foundation-controls.mjs.map +1 -1
- package/fesm2020/bravobit-bb-foundation-dashboard.mjs +370 -370
- package/fesm2020/bravobit-bb-foundation-dashboard.mjs.map +1 -1
- package/fesm2020/bravobit-bb-foundation-dialog.mjs +541 -541
- package/fesm2020/bravobit-bb-foundation-dialog.mjs.map +1 -1
- package/fesm2020/bravobit-bb-foundation-elements.mjs +1928 -1925
- package/fesm2020/bravobit-bb-foundation-elements.mjs.map +1 -1
- package/fesm2020/bravobit-bb-foundation-http.mjs +148 -148
- package/fesm2020/bravobit-bb-foundation-http.mjs.map +1 -1
- package/fesm2020/bravobit-bb-foundation-localize.mjs +590 -792
- package/fesm2020/bravobit-bb-foundation-localize.mjs.map +1 -1
- package/fesm2020/bravobit-bb-foundation-notifications.mjs +346 -346
- package/fesm2020/bravobit-bb-foundation-notifications.mjs.map +1 -1
- package/fesm2020/bravobit-bb-foundation-recaptcha.mjs +280 -280
- package/fesm2020/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
- package/fesm2020/bravobit-bb-foundation-rxjs.mjs +10 -10
- package/fesm2020/bravobit-bb-foundation-rxjs.mjs.map +1 -1
- package/fesm2020/bravobit-bb-foundation-storage.mjs +396 -396
- package/fesm2020/bravobit-bb-foundation-storage.mjs.map +1 -1
- package/fesm2020/bravobit-bb-foundation-table.mjs +560 -560
- package/fesm2020/bravobit-bb-foundation-table.mjs.map +1 -1
- package/fesm2020/bravobit-bb-foundation.mjs +832 -832
- package/fesm2020/bravobit-bb-foundation.mjs.map +1 -1
- package/http/bravobit-bb-foundation-http.d.ts +5 -5
- package/http/lib/classes/http.config.d.ts +9 -9
- package/http/lib/classes/http.error.d.ts +7 -7
- package/http/lib/http.interfaces.d.ts +12 -12
- package/http/lib/http.module.d.ts +15 -15
- package/http/lib/interceptors/base-url.interceptor.d.ts +15 -15
- package/http/lib/interceptors/error.interceptor.d.ts +11 -11
- package/http/public_api.d.ts +6 -6
- package/lib/core/miscellaneous/regex.d.ts +4 -4
- package/lib/core/miscellaneous/validator.d.ts +13 -13
- package/lib/core/mixins/can-disable.d.ts +6 -6
- package/lib/core/mixins/can-hide-errors.d.ts +6 -6
- package/lib/core/mixins/can-load.d.ts +6 -6
- package/lib/core/mixins/constructor.d.ts +1 -1
- package/lib/core/mixins/has-error.d.ts +6 -6
- package/lib/core/mixins/is-focused.d.ts +6 -6
- package/lib/core/mixins/is-grouped.d.ts +6 -6
- package/lib/core/mixins/is-readonly.d.ts +6 -6
- package/lib/core/mixins/is-required.d.ts +6 -6
- package/lib/core/services/clipboard.service.d.ts +18 -18
- package/lib/core/services/exif.service.d.ts +15 -15
- package/lib/core/services/file-loader.service.d.ts +13 -13
- package/lib/core/services/image-converter.service.d.ts +21 -21
- package/lib/core/services/languages.service.d.ts +16 -16
- package/lib/core/services/network.service.d.ts +14 -14
- package/lib/core/services/patch.service.d.ts +16 -16
- package/lib/core/services/platform.service.d.ts +18 -18
- package/lib/core/tokens/accept-language.token.d.ts +2 -2
- package/lib/core/tokens/base-url.token.d.ts +2 -2
- package/lib/core/tokens/cookie.token.d.ts +2 -2
- package/lib/core/tokens/location.token.d.ts +2 -2
- package/lib/core/tokens/navigator.token.d.ts +2 -2
- package/lib/core/tokens/window.token.d.ts +2 -2
- package/localize/bravobit-bb-foundation-localize.d.ts +5 -5
- package/localize/lib/functions/date.function.d.ts +5 -5
- package/localize/lib/functions/lowercase.function.d.ts +5 -5
- package/localize/lib/functions/uppercase.function.d.ts +5 -5
- package/localize/lib/handlers/missing.handler.d.ts +6 -6
- package/localize/lib/interfaces/config.interfaces.d.ts +18 -8
- package/localize/lib/interfaces/functions.interfaces.d.ts +9 -9
- package/localize/lib/interfaces/handlers.interfaces.d.ts +6 -6
- package/localize/lib/interfaces/options.interfaces.d.ts +10 -10
- package/localize/lib/localizations/dutch.localization.d.ts +44 -51
- package/localize/lib/localizations/english.localization.d.ts +44 -51
- package/localize/lib/localize.dictionary.d.ts +7 -24
- package/localize/lib/localize.module.d.ts +17 -18
- package/localize/lib/localize.pipe.d.ts +12 -12
- package/localize/lib/localize.service.d.ts +40 -51
- package/localize/lib/views/localize-string/localize-string.component.d.ts +23 -23
- package/localize/lib/views/localize-template-or-string.directive.d.ts +10 -10
- package/localize/lib/views/localize-template.directive.d.ts +9 -9
- package/localize/public_api.d.ts +16 -17
- package/notifications/bravobit-bb-foundation-notifications.d.ts +5 -5
- package/notifications/lib/notifications-item/notifications-item.component.d.ts +34 -34
- package/notifications/lib/notifications-list/notifications-list.component.d.ts +16 -16
- package/notifications/lib/notifications.animations.d.ts +1 -1
- package/notifications/lib/notifications.injector.d.ts +8 -8
- package/notifications/lib/notifications.interfaces.d.ts +49 -49
- package/notifications/lib/notifications.module.d.ts +13 -13
- package/notifications/lib/notifications.service.d.ts +34 -34
- package/notifications/public_api.d.ts +3 -3
- package/package.json +6 -6
- package/public_api.d.ts +25 -25
- package/recaptcha/bravobit-bb-foundation-recaptcha.d.ts +5 -5
- package/recaptcha/lib/recaptcha/recaptcha.component.d.ts +47 -47
- package/recaptcha/lib/recaptcha-loader.service.d.ts +22 -22
- package/recaptcha/lib/recaptcha.interface.d.ts +14 -14
- package/recaptcha/lib/recaptcha.module.d.ts +10 -10
- package/recaptcha/public_api.d.ts +4 -4
- package/rxjs/bravobit-bb-foundation-rxjs.d.ts +5 -5
- package/rxjs/lib/operators/combine-latest-map.operator.d.ts +8 -8
- package/rxjs/lib/operators/filter-nil.operator.d.ts +1 -1
- package/rxjs/public_api.d.ts +2 -2
- package/storage/bravobit-bb-foundation-storage.d.ts +5 -5
- package/storage/lib/interfaces/attributes.interface.d.ts +13 -13
- package/storage/lib/interfaces/memory.interface.d.ts +7 -7
- package/storage/lib/interfaces/strategy.interface.d.ts +17 -17
- package/storage/lib/storage.service.d.ts +26 -26
- package/storage/lib/strategies/cookie-storage.strategy.d.ts +20 -20
- package/storage/lib/strategies/memory-storage.strategy.d.ts +11 -11
- package/storage/lib/strategies/polyfill-storage.strategy.d.ts +15 -15
- package/storage/public_api.d.ts +7 -7
- package/table/bravobit-bb-foundation-table.d.ts +5 -5
- package/table/lib/components/table/table.component.d.ts +56 -56
- package/table/lib/components/table-cell/table-cell.component.d.ts +5 -5
- package/table/lib/components/table-header-cell/table-header-cell.component.d.ts +29 -29
- package/table/lib/components/table-pager/table-pager.component.d.ts +41 -41
- package/table/lib/data/datasource.data.d.ts +14 -14
- package/table/lib/data/generic.data.d.ts +23 -23
- package/table/lib/interfaces/datasource.interface.d.ts +17 -17
- package/table/lib/interfaces/table.interfaces.d.ts +1 -1
- package/table/lib/table.module.d.ts +14 -14
- package/table/public_api.d.ts +9 -9
- package/esm2020/localize/lib/interfaces/dictionary.interfaces.mjs +0 -8
- package/localize/lib/interfaces/dictionary.interfaces.d.ts +0 -12
|
@@ -1,100 +1,100 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@bravobit/bb-foundation";
|
|
4
|
-
import * as i2 from "@angular/common";
|
|
5
|
-
import * as i3 from "@bravobit/bb-foundation/localize";
|
|
6
|
-
export class BbNotificationsItem {
|
|
7
|
-
constructor(_zone, _platform, _changeDetection) {
|
|
8
|
-
this._zone = _zone;
|
|
9
|
-
this._platform = _platform;
|
|
10
|
-
this._changeDetection = _changeDetection;
|
|
11
|
-
// Data.
|
|
12
|
-
this._progress = 0;
|
|
13
|
-
this._count = 0;
|
|
14
|
-
// Data.
|
|
15
|
-
this._radius = 19;
|
|
16
|
-
this._circumference = this._radius * 2 * Math.PI;
|
|
17
|
-
this.callActionAndDestroy = (notification, action) => {
|
|
18
|
-
// Perform the callback (if it exists).
|
|
19
|
-
action && action.callback && action.callback();
|
|
20
|
-
// Call the destroy method (if it exists).
|
|
21
|
-
notification && notification.destroy && notification.destroy();
|
|
22
|
-
};
|
|
23
|
-
this.instance = () => {
|
|
24
|
-
// Calculate the difference.
|
|
25
|
-
this._difference = (Date.now() - this._startTime) - (this._count * this._speed);
|
|
26
|
-
// Add up the count.
|
|
27
|
-
if (this._count++ === this._steps) {
|
|
28
|
-
this.notification.destroy();
|
|
29
|
-
}
|
|
30
|
-
// Add the steps to the progress.
|
|
31
|
-
this._progress += 100 / this._steps;
|
|
32
|
-
// Set a new timer.
|
|
33
|
-
this._timer = this.setTimeout(this.instance, this._speed - this._difference);
|
|
34
|
-
// Run a new change detection cycle.
|
|
35
|
-
this._zone.run(() => this._changeDetection.detectChanges());
|
|
36
|
-
};
|
|
37
|
-
this.setTimeout = (method, timeout) => {
|
|
38
|
-
// Check if the window and method exist.
|
|
39
|
-
if (!window || !window.setTimeout) {
|
|
40
|
-
return null;
|
|
41
|
-
}
|
|
42
|
-
return window.setTimeout(method, timeout);
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
get getClass() {
|
|
46
|
-
return `bb-notifications-item ${this.notification.type}`;
|
|
47
|
-
}
|
|
48
|
-
get progressStrokeArray() {
|
|
49
|
-
const value = Math.floor(this._circumference);
|
|
50
|
-
return `${value}, ${value}`;
|
|
51
|
-
}
|
|
52
|
-
get progressStrokeOffset() {
|
|
53
|
-
return Math.floor(this._circumference - this._progress / 100 * this._circumference);
|
|
54
|
-
}
|
|
55
|
-
get isContentString() {
|
|
56
|
-
return typeof this.notification.content === 'string';
|
|
57
|
-
}
|
|
58
|
-
ngOnInit() {
|
|
59
|
-
// Check if the notification timeout is not 0 and the platform is a browser.
|
|
60
|
-
if (this.notification.timeout <= 0 || !this._platform.isBrowser) {
|
|
61
|
-
this.notification.dismiss = true;
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
// Start the timeout.
|
|
65
|
-
this.startTimeout();
|
|
66
|
-
}
|
|
67
|
-
ngOnDestroy() {
|
|
68
|
-
// Clear the timeout if it was set.
|
|
69
|
-
this._timer && window && window.clearTimeout && window.clearTimeout(this._timer);
|
|
70
|
-
}
|
|
71
|
-
startTimeout() {
|
|
72
|
-
// Calculate the steps of the timeout.
|
|
73
|
-
this._steps = this.notification.timeout / 10;
|
|
74
|
-
// Calculate the speed of the timeout.
|
|
75
|
-
this._speed = this.notification.timeout / this._steps;
|
|
76
|
-
// Get the start time.
|
|
77
|
-
this._startTime = Date.now();
|
|
78
|
-
// Set a new timer outside of Angular.
|
|
79
|
-
this._zone.runOutsideAngular(() => this._timer = this.setTimeout(this.instance, this._speed));
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
BbNotificationsItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
83
|
-
BbNotificationsItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.
|
|
84
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
85
|
-
type: Component,
|
|
86
|
-
args: [{ selector: 'bb-notifications-item', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
|
|
87
|
-
'role': 'alert'
|
|
88
|
-
}, template: "<div class=\"notification-content-wrapper\">\n <!--\n The icon for the notification.\n\n The icon is reflected by the type of the\n notification. Same goes for the color and\n background-color.\n -->\n <div [style.color]=\"notification?.color\"\n [style.background-color]=\"notification?.backgroundColor\"\n class=\"notification-icon-wrapper\">\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 16 19.5\"\n class=\"notification-icon\">\n <path\n d=\"M8 19.5c1.1 0 2-.9 2-2H6c0 1.1.9 2 2 2zM14 13.5v-5c0-3.1-1.6-5.6-4.5-6.3v-.7C9.5.7 8.8 0 8 0S6.5.7 6.5 1.5v.7C3.6 2.9 2 5.4 2 8.5v5l-2 2v1h16v-1l-2-2z\">\n </path>\n </svg>\n\n <!--\n The circular progress for the notification.\n\n The progress is only visible when a timeout is\n set. The progress adapts to the time remaining\n for the notification.\n -->\n <svg *ngIf=\"notification?.timeout > 0\"\n class=\"notification-progress-ring\"\n viewBox=\"0 0 40 40\"\n role=\"progressbar\">\n <circle #progress\n [attr.stroke-dasharray]=\"progressStrokeArray\"\n [attr.stroke-dashoffset]=\"progressStrokeOffset\"\n [style.stroke]=\"notification?.color\"\n class=\"notification-progress-circle\"\n stroke-width=\"2\"\n fill=\"transparent\"\n r=\"19\"\n cx=\"20\"\n cy=\"20\">\n </circle>\n </svg>\n </div>\n\n <!--\n The content for the notification.\n\n This displays a string or a template based\n on the given parameter by the user.\n -->\n <div class=\"notification-content\">\n <ng-container *ngIf=\"isContentString; else templateContent\"\n [ngSwitch]=\"notification?.localize\">\n <ng-container *ngSwitchCase=\"true\">\n {{ $any(notification?.content) | bbLocalize:{data: notification?.data} }}\n </ng-container>\n <ng-container *ngSwitchDefault>\n {{ notification?.content }}\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n<!--\n The actions of the notification.\n\n All actions are displayed here and are\n based on the actions array the user provided.\n-->\n<div *ngIf=\"notification?.actions?.length > 0 || notification?.dismiss\"\n class=\"notification-actions\">\n <button *ngFor=\"let action of notification?.actions\"\n (click)=\"callActionAndDestroy(notification, action)\"\n type=\"button\"\n [class.destructive]=\"action?.type === 'cancel'\"\n class=\"notification-actions-button\">\n <span [ngSwitch]=\"notification?.localize\"\n class=\"notification-actions-button-highlight\">\n <ng-container *ngSwitchCase=\"true\">\n {{ action?.title | bbLocalize:{data: notification?.data} }}\n </ng-container>\n <ng-container *ngSwitchDefault>\n {{ action?.title }}\n </ng-container>\n </span>\n </button>\n <button *ngIf=\"notification?.dismiss\"\n (click)=\"notification?.destroy()\"\n class=\"notification-actions-button destructive\"\n type=\"button\">\n <span class=\"notification-actions-button-highlight\">\n {{ notification?.dismissText || dismissButtonText }}\n </span>\n </button>\n</div>\n\n<!--\n The outlet for the notification content template ref.\n-->\n<ng-template #templateContent>\n <ng-container *ngTemplateOutlet=\"$any(notification?.content)\"></ng-container>\n</ng-template>\n", styles: [".bb-notifications-item{display:flex;border-radius:4px;flex-direction:column;background-color:#fff;border:1px solid #d6dbe0}.bb-notifications-item.success .notification-icon-wrapper{color:#2dc05d;background-color:#ebfaf0}.bb-notifications-item.success .notification-progress-circle{stroke:#36d068}.bb-notifications-item.error .notification-icon-wrapper{color:#f43e3e;background-color:#feeeee}.bb-notifications-item.error .notification-progress-circle{stroke:#f55656}.bb-notifications-item.warning .notification-icon-wrapper{color:#f1ae00;background-color:#fff8e7}.bb-notifications-item.warning .notification-progress-circle{stroke:#ffbc0b}.bb-notifications-item.info .notification-icon-wrapper{color:#099bf6;background-color:#e9f6fe}.bb-notifications-item.info .notification-progress-circle{stroke:#22a5f7}.bb-notifications-item.custom .notification-icon-wrapper{color:#657385;background-color:#f3f5f6}.bb-notifications-item.custom .notification-progress-circle{stroke:#657385}.notification-content-wrapper{padding:20px;display:flex;align-items:center}.notification-icon-wrapper{width:40px;height:40px;display:flex;-webkit-user-select:none;user-select:none;position:relative;border-radius:50%;align-items:center;justify-content:center;color:#657385;background-color:#f3f5f6}.notification-icon{width:100%;height:100%;padding:10px;fill:currentColor}.notification-content{flex:1;font-size:14px;line-height:1.5;font-weight:500;margin-left:20px;color:#000000d9}.notification-content i{font-style:italic}.notification-content,.notification-actions-button{font-family:inherit}.notification-actions{display:flex;margin:0 20px;-webkit-user-select:none;user-select:none;border-top:1px solid #f3f5f6}.notification-actions-button{flex:1;border:none;color:#22a5f7;cursor:pointer;font-size:14px;font-weight:500;padding:12px 2px;text-align:center;background-color:transparent}.notification-actions-button:hover>.notification-actions-button-highlight,.notification-actions-button:focus>.notification-actions-button-highlight{background-color:#22a5f71a}.notification-actions-button:active>.notification-actions-button-highlight{background-color:#22a5f733}.notification-actions-button.destructive{color:#f55656}.notification-actions-button.destructive:hover>.notification-actions-button-highlight,.notification-actions-button.destructive:focus>.notification-actions-button-highlight{background-color:#f556561a}.notification-actions-button.destructive:active>.notification-actions-button-highlight{background-color:#f5565633}.notification-actions-button-highlight{padding:4px 12px;border-radius:12px;display:inline-flex;transition:background-color .15s cubic-bezier(0,0,.2,1)}.notification-progress-ring{top:0;left:0;right:0;bottom:0;width:100%;height:100%;position:absolute}.notification-progress-circle{transform:rotate(-90deg);transform-origin:50% 50%;stroke:#657385}\n"] }]
|
|
89
|
-
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.Platform }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { notification: [{
|
|
90
|
-
type: Input
|
|
91
|
-
}], dismissButtonText: [{
|
|
92
|
-
type: Input
|
|
93
|
-
}], progressElementRef: [{
|
|
94
|
-
type: ViewChild,
|
|
95
|
-
args: ['progress']
|
|
96
|
-
}], getClass: [{
|
|
97
|
-
type: HostBinding,
|
|
98
|
-
args: ['class']
|
|
99
|
-
}] } });
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbm90aWZpY2F0aW9ucy9zcmMvbGliL25vdGlmaWNhdGlvbnMtaXRlbS9ub3RpZmljYXRpb25zLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9ub3RpZmljYXRpb25zL3NyYy9saWIvbm90aWZpY2F0aW9ucy1pdGVtL25vdGlmaWNhdGlvbnMtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxXQUFXLEVBQ1gsS0FBSyxFQUlMLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7Ozs7O0FBZXZCLE1BQU0sT0FBTyxtQkFBbUI7SUE0QjVCLFlBQW9CLEtBQWEsRUFDYixTQUFtQixFQUNuQixnQkFBbUM7UUFGbkMsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFtQjtRQXJCdkQsUUFBUTtRQUNBLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFDZCxXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBU25CLFFBQVE7UUFDUyxZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsbUJBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBd0M3RCx5QkFBb0IsR0FBRyxDQUFDLFlBQTBCLEVBQUUsTUFBMEIsRUFBRSxFQUFFO1lBQzlFLHVDQUF1QztZQUN2QyxNQUFNLElBQUksTUFBTSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFFL0MsMENBQTBDO1lBQzFDLFlBQVks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RyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBRXRELHNCQUFzQjtRQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUU3QixzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNsRyxDQUFDOztnSEFsRlEsbUJBQW1CO29HQUFuQixtQkFBbUIsb1ZDM0JoQywweUhBc0dBOzJGRDNFYSxtQkFBbUI7a0JBWC9CLFNBQVM7K0JBQ0ksdUJBQXVCLG1CQUdoQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLHVCQUNoQixLQUFLLFFBQ3BCO3dCQUNGLE1BQU0sRUFBRSxPQUFPO3FCQUNsQjtvSkFLUSxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFHaUIsa0JBQWtCO3NCQUF4QyxTQUFTO3VCQUFDLFVBQVU7Z0JBaUJLLFFBQVE7c0JBQWpDLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOb3RpZmljYXRpb24sIE5vdGlmaWNhdGlvbkFjdGlvbn0gZnJvbSAnLi4vbm90aWZpY2F0aW9ucy5pbnRlcmZhY2VzJztcbmltcG9ydCB7UGxhdGZvcm19IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdiYi1ub3RpZmljYXRpb25zLWl0ZW0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ub3RpZmljYXRpb25zLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL25vdGlmaWNhdGlvbnMtaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gICAgaG9zdDoge1xuICAgICAgICAncm9sZSc6ICdhbGVydCdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEJiTm90aWZpY2F0aW9uc0l0ZW0gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICAvLyBJbnB1dHMuXG4gICAgQElucHV0KCkgbm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb247XG4gICAgQElucHV0KCkgZGlzbWlzc0J1dHRvblRleHQ6IHN0cmluZyB8IG51bGw7XG5cbiAgICAvLyBFbGVtZW50cy5cbiAgICBAVmlld0NoaWxkKCdwcm9ncmVzcycpIHByb2dyZXNzRWxlbWVudFJlZjogRWxlbWVudFJlZjtcblxuICAgIC8vIERhdGEuXG4gICAgcHJpdmF0ZSBfcHJvZ3Jlc3MgPSAwO1xuICAgIHByaXZhdGUgX2NvdW50ID0gMDtcblxuICAgIC8vIEhlbHBlciB2YXJpYWJsZXMuXG4gICAgcHJpdmF0ZSBfc3RlcHM6IG51bWJlcjtcbiAgICBwcml2YXRlIF9zcGVlZDogbnVtYmVyO1xuICAgIHByaXZhdGUgX3RpbWVyOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfc3RhcnRUaW1lOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfZGlmZmVyZW5jZTogbnVtYmVyO1xuXG4gICAgLy8gRGF0YS5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9yYWRpdXMgPSAxOTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jaXJjdW1mZXJlbmNlID0gdGhpcy5fcmFkaXVzICogMiAqIE1hdGguUEk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGdldENsYXNzKCkge1xuICAgICAgICByZXR1cm4gYGJiLW5vdGlmaWNhdGlvbnMtaXRlbSAke3RoaXMubm90aWZpY2F0aW9uLnR5cGV9YDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF96b25lOiBOZ1pvbmUsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfcGxhdGZvcm06IFBsYXRmb3JtLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2NoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB9XG5cbiAgICBnZXQgcHJvZ3Jlc3NTdHJva2VBcnJheSgpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBNYXRoLmZsb29yKHRoaXMuX2NpcmN1bWZlcmVuY2UpO1xuICAgICAgICByZXR1cm4gYCR7dmFsdWV9LCAke3ZhbHVlfWA7XG4gICAgfVxuXG4gICAgZ2V0IHByb2dyZXNzU3Ryb2tlT2Zmc2V0KCkge1xuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcih0aGlzLl9jaXJjdW1mZXJlbmNlIC0gdGhpcy5fcHJvZ3Jlc3MgLyAxMDAgKiB0aGlzLl9jaXJjdW1mZXJlbmNlKTtcbiAgICB9XG5cbiAgICBnZXQgaXNDb250ZW50U3RyaW5nKCkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHRoaXMubm90aWZpY2F0aW9uLmNvbnRlbnQgPT09ICdzdHJpbmcnO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICAvLyBDaGVjayBpZiB0aGUgbm90aWZpY2F0aW9uIHRpbWVvdXQgaXMgbm90IDAgYW5kIHRoZSBwbGF0Zm9ybSBpcyBhIGJyb3dzZXIuXG4gICAgICAgIGlmICh0aGlzLm5vdGlmaWNhdGlvbi50aW1lb3V0IDw9IDAgfHwgIXRoaXMuX3BsYXRmb3JtLmlzQnJvd3Nlcikge1xuICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uZGlzbWlzcyA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTdGFydCB0aGUgdGltZW91dC5cbiAgICAgICAgdGhpcy5zdGFydFRpbWVvdXQoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgLy8gQ2xlYXIgdGhlIHRpbWVvdXQgaWYgaXQgd2FzIHNldC5cbiAgICAgICAgdGhpcy5fdGltZXIgJiYgd2luZG93ICYmIHdpbmRvdy5jbGVhclRpbWVvdXQgJiYgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLl90aW1lcik7XG4gICAgfVxuXG4gICAgY2FsbEFjdGlvbkFuZERlc3Ryb3kgPSAobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb24sIGFjdGlvbjogTm90aWZpY2F0aW9uQWN0aW9uKSA9PiB7XG4gICAgICAgIC8vIFBlcmZvcm0gdGhlIGNhbGxiYWNrIChpZiBpdCBleGlzdHMpLlxuICAgICAgICBhY3Rpb24gJiYgYWN0aW9uLmNhbGxiYWNrICYmIGFjdGlvbi5jYWxsYmFjaygpO1xuXG4gICAgICAgIC8vIENhbGwgdGhlIGRlc3Ryb3kgbWV0aG9kIChpZiBpdCBleGlzdHMpLlxuICAgICAgICBub3RpZmljYXRpb24gJiYgbm90aWZpY2F0aW9uLmRlc3Ryb3kgJiYgbm90aWZpY2F0aW9uLmRlc3Ryb3koKTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBzdGFydFRpbWVvdXQoKSB7XG4gICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgc3RlcHMgb2YgdGhlIHRpbWVvdXQuXG4gICAgICAgIHRoaXMuX3N0ZXBzID0gdGhpcy5ub3RpZmljYXRpb24udGltZW91dCAvIDEwO1xuXG4gICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgc3BlZWQgb2YgdGhlIHRpbWVvdXQuXG4gICAgICAgIHRoaXMuX3NwZWVkID0gdGhpcy5ub3RpZmljYXRpb24udGltZW91dCAvIHRoaXMuX3N0ZXBzO1xuXG4gICAgICAgIC8vIEdldCB0aGUgc3RhcnQgdGltZS5cbiAgICAgICAgdGhpcy5fc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcblxuICAgICAgICAvLyBTZXQgYSBuZXcgdGltZXIgb3V0c2lkZSBvZiBBbmd1bGFyLlxuICAgICAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHRoaXMuX3RpbWVyID0gdGhpcy5zZXRUaW1lb3V0KHRoaXMuaW5zdGFuY2UsIHRoaXMuX3NwZWVkKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbnN0YW5jZSA9ICgpID0+IHtcbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBkaWZmZXJlbmNlLlxuICAgICAgICB0aGlzLl9kaWZmZXJlbmNlID0gKERhdGUubm93KCkgLSB0aGlzLl9zdGFydFRpbWUpIC0gKHRoaXMuX2NvdW50ICogdGhpcy5fc3BlZWQpO1xuXG4gICAgICAgIC8vIEFkZCB1cCB0aGUgY291bnQuXG4gICAgICAgIGlmICh0aGlzLl9jb3VudCsrID09PSB0aGlzLl9zdGVwcykge1xuICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uZGVzdHJveSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQWRkIHRoZSBzdGVwcyB0byB0aGUgcHJvZ3Jlc3MuXG4gICAgICAgIHRoaXMuX3Byb2dyZXNzICs9IDEwMCAvIHRoaXMuX3N0ZXBzO1xuXG4gICAgICAgIC8vIFNldCBhIG5ldyB0aW1lci5cbiAgICAgICAgdGhpcy5fdGltZXIgPSB0aGlzLnNldFRpbWVvdXQodGhpcy5pbnN0YW5jZSwgdGhpcy5fc3BlZWQgLSB0aGlzLl9kaWZmZXJlbmNlKTtcblxuICAgICAgICAvLyBSdW4gYSBuZXcgY2hhbmdlIGRldGVjdGlvbiBjeWNsZS5cbiAgICAgICAgdGhpcy5fem9uZS5ydW4oKCkgPT4gdGhpcy5fY2hhbmdlRGV0ZWN0aW9uLmRldGVjdENoYW5nZXMoKSk7XG4gICAgfTtcblxuICAgIHByaXZhdGUgc2V0VGltZW91dCA9IChtZXRob2Q6ICgpID0+IHZvaWQsIHRpbWVvdXQ6IG51bWJlcikgPT4ge1xuICAgICAgICAvLyBDaGVjayBpZiB0aGUgd2luZG93IGFuZCBtZXRob2QgZXhpc3QuXG4gICAgICAgIGlmICghd2luZG93IHx8ICF3aW5kb3cuc2V0VGltZW91dCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gd2luZG93LnNldFRpbWVvdXQobWV0aG9kLCB0aW1lb3V0KTtcbiAgICB9O1xuXG59XG4iLCI8ZGl2IGNsYXNzPVwibm90aWZpY2F0aW9uLWNvbnRlbnQtd3JhcHBlclwiPlxuICAgIDwhLS1cbiAgICAgICAgVGhlIGljb24gZm9yIHRoZSBub3RpZmljYXRpb24uXG5cbiAgICAgICAgVGhlIGljb24gaXMgcmVmbGVjdGVkIGJ5IHRoZSB0eXBlIG9mIHRoZVxuICAgICAgICBub3RpZmljYXRpb24uIFNhbWUgZ29lcyBmb3IgdGhlIGNvbG9yIGFuZFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yLlxuICAgIC0tPlxuICAgIDxkaXYgW3N0eWxlLmNvbG9yXT1cIm5vdGlmaWNhdGlvbj8uY29sb3JcIlxuICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwibm90aWZpY2F0aW9uPy5iYWNrZ3JvdW5kQ29sb3JcIlxuICAgICAgICAgY2xhc3M9XCJub3RpZmljYXRpb24taWNvbi13cmFwcGVyXCI+XG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNiAxOS41XCJcbiAgICAgICAgICAgICBjbGFzcz1cIm5vdGlmaWNhdGlvbi1pY29uXCI+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgIGQ9XCJNOCAxOS41YzEuMSAwIDItLjkgMi0ySDZjMCAxLjEuOSAyIDIgMnpNMTQgMTMuNXYtNWMwLTMuMS0xLjYtNS42LTQuNS02LjN2LS43QzkuNS43IDguOCAwIDggMFM2LjUuNyA2LjUgMS41di43QzMuNiAyLjkgMiA1LjQgMiA4LjV2NWwtMiAydjFoMTZ2LTFsLTItMnpcIj5cbiAgICAgICAgICAgIDwvcGF0aD5cbiAgICAgICAgPC9zdmc+XG5cbiAgICAgICAgPCEtLVxuICAgICAgICAgICAgVGhlIGNpcmN1bGFyIHByb2dyZXNzIGZvciB0aGUgbm90aWZpY2F0aW9uLlxuXG4gICAgICAgICAgICBUaGUgcHJvZ3Jlc3MgaXMgb25seSB2aXNpYmxlIHdoZW4gYSB0aW1lb3V0IGlzXG4gICAgICAgICAgICBzZXQuIFRoZSBwcm9ncmVzcyBhZGFwdHMgdG8gdGhlIHRpbWUgcmVtYWluaW5nXG4gICAgICAgICAgICBmb3IgdGhlIG5vdGlmaWNhdGlvbi5cbiAgICAgICAgLS0+XG4gICAgICAgIDxzdmcgKm5nSWY9XCJub3RpZmljYXRpb24/LnRpbWVvdXQgPiAwXCJcbiAgICAgICAgICAgICBjbGFzcz1cIm5vdGlmaWNhdGlvbi1wcm9ncmVzcy1yaW5nXCJcbiAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDQwIDQwXCJcbiAgICAgICAgICAgICByb2xlPVwicHJvZ3Jlc3NiYXJcIj5cbiAgICAgICAgICAgIDxjaXJjbGUgI3Byb2dyZXNzXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZS1kYXNoYXJyYXldPVwicHJvZ3Jlc3NTdHJva2VBcnJheVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZS1kYXNob2Zmc2V0XT1cInByb2dyZXNzU3Ryb2tlT2Zmc2V0XCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLnN0cm9rZV09XCJub3RpZmljYXRpb24/LmNvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJub3RpZmljYXRpb24tcHJvZ3Jlc3MtY2lyY2xlXCJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgIHI9XCIxOVwiXG4gICAgICAgICAgICAgICAgICAgIGN4PVwiMjBcIlxuICAgICAgICAgICAgICAgICAgICBjeT1cIjIwXCI+XG4gICAgICAgICAgICA8L2NpcmNsZT5cbiAgICAgICAgPC9zdmc+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tXG4gICAgICAgIFRoZSBjb250ZW50IGZvciB0aGUgbm90aWZpY2F0aW9uLlxuXG4gICAgICAgIFRoaXMgZGlzcGxheXMgYSBzdHJpbmcgb3IgYSB0ZW1wbGF0ZSBiYXNlZFxuICAgICAgICBvbiB0aGUgZ2l2ZW4gcGFyYW1ldGVyIGJ5IHRoZSB1c2VyLlxuICAgIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJub3RpZmljYXRpb24tY29udGVudFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNDb250ZW50U3RyaW5nOyBlbHNlIHRlbXBsYXRlQ29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgW25nU3dpdGNoXT1cIm5vdGlmaWNhdGlvbj8ubG9jYWxpemVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICB7eyAkYW55KG5vdGlmaWNhdGlvbj8uY29udGVudCkgfCBiYkxvY2FsaXplOntkYXRhOiBub3RpZmljYXRpb24/LmRhdGF9IH19XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cbiAgICAgICAgICAgICAgICB7eyBub3RpZmljYXRpb24/LmNvbnRlbnQgfX1cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48IS0tXG4gICAgVGhlIGFjdGlvbnMgb2YgdGhlIG5vdGlmaWNhdGlvbi5cblxuICAgIEFsbCBhY3Rpb25zIGFyZSBkaXNwbGF5ZWQgaGVyZSBhbmQgYXJlXG4gICAgYmFzZWQgb24gdGhlIGFjdGlvbnMgYXJyYXkgdGhlIHVzZXIgcHJvdmlkZWQuXG4tLT5cbjxkaXYgKm5nSWY9XCJub3RpZmljYXRpb24/LmFjdGlvbnM/Lmxlbmd0aCA+IDAgfHwgbm90aWZpY2F0aW9uPy5kaXNtaXNzXCJcbiAgICAgY2xhc3M9XCJub3RpZmljYXRpb24tYWN0aW9uc1wiPlxuICAgIDxidXR0b24gKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBub3RpZmljYXRpb24/LmFjdGlvbnNcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNhbGxBY3Rpb25BbmREZXN0cm95KG5vdGlmaWNhdGlvbiwgYWN0aW9uKVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFtjbGFzcy5kZXN0cnVjdGl2ZV09XCJhY3Rpb24/LnR5cGUgPT09ICdjYW5jZWwnXCJcbiAgICAgICAgICAgIGNsYXNzPVwibm90aWZpY2F0aW9uLWFjdGlvbnMtYnV0dG9uXCI+XG4gICAgICAgIDxzcGFuIFtuZ1N3aXRjaF09XCJub3RpZmljYXRpb24/LmxvY2FsaXplXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJub3RpZmljYXRpb24tYWN0aW9ucy1idXR0b24taGlnaGxpZ2h0XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAge3sgYWN0aW9uPy50aXRsZSB8IGJiTG9jYWxpemU6e2RhdGE6IG5vdGlmaWNhdGlvbj8uZGF0YX0gfX1cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICAgICAgICAgIHt7IGFjdGlvbj8udGl0bGUgfX1cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiAqbmdJZj1cIm5vdGlmaWNhdGlvbj8uZGlzbWlzc1wiXG4gICAgICAgICAgICAoY2xpY2spPVwibm90aWZpY2F0aW9uPy5kZXN0cm95KClcIlxuICAgICAgICAgICAgY2xhc3M9XCJub3RpZmljYXRpb24tYWN0aW9ucy1idXR0b24gZGVzdHJ1Y3RpdmVcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm5vdGlmaWNhdGlvbi1hY3Rpb25zLWJ1dHRvbi1oaWdobGlnaHRcIj5cbiAgICAgICAgICAgIHt7IG5vdGlmaWNhdGlvbj8uZGlzbWlzc1RleHQgfHwgZGlzbWlzc0J1dHRvblRleHQgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+XG5cbjwhLS1cbiAgICBUaGUgb3V0bGV0IGZvciB0aGUgbm90aWZpY2F0aW9uIGNvbnRlbnQgdGVtcGxhdGUgcmVmLlxuLS0+XG48bmctdGVtcGxhdGUgI3RlbXBsYXRlQ29udGVudD5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiJGFueShub3RpZmljYXRpb24/LmNvbnRlbnQpXCI+PC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
1
|
+
import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@bravobit/bb-foundation";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
import * as i3 from "@bravobit/bb-foundation/localize";
|
|
6
|
+
export class BbNotificationsItem {
|
|
7
|
+
constructor(_zone, _platform, _changeDetection) {
|
|
8
|
+
this._zone = _zone;
|
|
9
|
+
this._platform = _platform;
|
|
10
|
+
this._changeDetection = _changeDetection;
|
|
11
|
+
// Data.
|
|
12
|
+
this._progress = 0;
|
|
13
|
+
this._count = 0;
|
|
14
|
+
// Data.
|
|
15
|
+
this._radius = 19;
|
|
16
|
+
this._circumference = this._radius * 2 * Math.PI;
|
|
17
|
+
this.callActionAndDestroy = (notification, action) => {
|
|
18
|
+
// Perform the callback (if it exists).
|
|
19
|
+
action && action.callback && action.callback();
|
|
20
|
+
// Call the destroy method (if it exists).
|
|
21
|
+
notification && notification.destroy && notification.destroy();
|
|
22
|
+
};
|
|
23
|
+
this.instance = () => {
|
|
24
|
+
// Calculate the difference.
|
|
25
|
+
this._difference = (Date.now() - this._startTime) - (this._count * this._speed);
|
|
26
|
+
// Add up the count.
|
|
27
|
+
if (this._count++ === this._steps) {
|
|
28
|
+
this.notification.destroy();
|
|
29
|
+
}
|
|
30
|
+
// Add the steps to the progress.
|
|
31
|
+
this._progress += 100 / this._steps;
|
|
32
|
+
// Set a new timer.
|
|
33
|
+
this._timer = this.setTimeout(this.instance, this._speed - this._difference);
|
|
34
|
+
// Run a new change detection cycle.
|
|
35
|
+
this._zone.run(() => this._changeDetection.detectChanges());
|
|
36
|
+
};
|
|
37
|
+
this.setTimeout = (method, timeout) => {
|
|
38
|
+
// Check if the window and method exist.
|
|
39
|
+
if (!window || !window.setTimeout) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
return window.setTimeout(method, timeout);
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
get getClass() {
|
|
46
|
+
return `bb-notifications-item ${this.notification.type}`;
|
|
47
|
+
}
|
|
48
|
+
get progressStrokeArray() {
|
|
49
|
+
const value = Math.floor(this._circumference);
|
|
50
|
+
return `${value}, ${value}`;
|
|
51
|
+
}
|
|
52
|
+
get progressStrokeOffset() {
|
|
53
|
+
return Math.floor(this._circumference - this._progress / 100 * this._circumference);
|
|
54
|
+
}
|
|
55
|
+
get isContentString() {
|
|
56
|
+
return typeof this.notification.content === 'string';
|
|
57
|
+
}
|
|
58
|
+
ngOnInit() {
|
|
59
|
+
// Check if the notification timeout is not 0 and the platform is a browser.
|
|
60
|
+
if (this.notification.timeout <= 0 || !this._platform.isBrowser) {
|
|
61
|
+
this.notification.dismiss = true;
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
// Start the timeout.
|
|
65
|
+
this.startTimeout();
|
|
66
|
+
}
|
|
67
|
+
ngOnDestroy() {
|
|
68
|
+
// Clear the timeout if it was set.
|
|
69
|
+
this._timer && window && window.clearTimeout && window.clearTimeout(this._timer);
|
|
70
|
+
}
|
|
71
|
+
startTimeout() {
|
|
72
|
+
// Calculate the steps of the timeout.
|
|
73
|
+
this._steps = this.notification.timeout / 10;
|
|
74
|
+
// Calculate the speed of the timeout.
|
|
75
|
+
this._speed = this.notification.timeout / this._steps;
|
|
76
|
+
// Get the start time.
|
|
77
|
+
this._startTime = Date.now();
|
|
78
|
+
// Set a new timer outside of Angular.
|
|
79
|
+
this._zone.runOutsideAngular(() => this._timer = this.setTimeout(this.instance, this._speed));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
BbNotificationsItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BbNotificationsItem, deps: [{ token: i0.NgZone }, { token: i1.Platform }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
83
|
+
BbNotificationsItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.6", type: BbNotificationsItem, selector: "bb-notifications-item", inputs: { notification: "notification", dismissButtonText: "dismissButtonText" }, host: { attributes: { "role": "alert" }, properties: { "class": "this.getClass" } }, viewQueries: [{ propertyName: "progressElementRef", first: true, predicate: ["progress"], descendants: true }], ngImport: i0, template: "<div class=\"notification-content-wrapper\">\r\n <!--\r\n The icon for the notification.\r\n\r\n The icon is reflected by the type of the\r\n notification. Same goes for the color and\r\n background-color.\r\n -->\r\n <div [style.color]=\"notification?.color\"\r\n [style.background-color]=\"notification?.backgroundColor\"\r\n class=\"notification-icon-wrapper\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 16 19.5\"\r\n class=\"notification-icon\">\r\n <path\r\n d=\"M8 19.5c1.1 0 2-.9 2-2H6c0 1.1.9 2 2 2zM14 13.5v-5c0-3.1-1.6-5.6-4.5-6.3v-.7C9.5.7 8.8 0 8 0S6.5.7 6.5 1.5v.7C3.6 2.9 2 5.4 2 8.5v5l-2 2v1h16v-1l-2-2z\">\r\n </path>\r\n </svg>\r\n\r\n <!--\r\n The circular progress for the notification.\r\n\r\n The progress is only visible when a timeout is\r\n set. The progress adapts to the time remaining\r\n for the notification.\r\n -->\r\n <svg *ngIf=\"notification?.timeout > 0\"\r\n class=\"notification-progress-ring\"\r\n viewBox=\"0 0 40 40\"\r\n role=\"progressbar\">\r\n <circle #progress\r\n [attr.stroke-dasharray]=\"progressStrokeArray\"\r\n [attr.stroke-dashoffset]=\"progressStrokeOffset\"\r\n [style.stroke]=\"notification?.color\"\r\n class=\"notification-progress-circle\"\r\n stroke-width=\"2\"\r\n fill=\"transparent\"\r\n r=\"19\"\r\n cx=\"20\"\r\n cy=\"20\">\r\n </circle>\r\n </svg>\r\n </div>\r\n\r\n <!--\r\n The content for the notification.\r\n\r\n This displays a string or a template based\r\n on the given parameter by the user.\r\n -->\r\n <div class=\"notification-content\">\r\n <ng-container *ngIf=\"isContentString; else templateContent\"\r\n [ngSwitch]=\"notification?.localize\">\r\n <ng-container *ngSwitchCase=\"true\">\r\n {{ $any(notification?.content) | bbLocalize:{data: notification?.data} }}\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n {{ notification?.content }}\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<!--\r\n The actions of the notification.\r\n\r\n All actions are displayed here and are\r\n based on the actions array the user provided.\r\n-->\r\n<div *ngIf=\"notification?.actions?.length > 0 || notification?.dismiss\"\r\n class=\"notification-actions\">\r\n <button *ngFor=\"let action of notification?.actions\"\r\n (click)=\"callActionAndDestroy(notification, action)\"\r\n type=\"button\"\r\n [class.destructive]=\"action?.type === 'cancel'\"\r\n class=\"notification-actions-button\">\r\n <span [ngSwitch]=\"notification?.localize\"\r\n class=\"notification-actions-button-highlight\">\r\n <ng-container *ngSwitchCase=\"true\">\r\n {{ action?.title | bbLocalize:{data: notification?.data} }}\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n {{ action?.title }}\r\n </ng-container>\r\n </span>\r\n </button>\r\n <button *ngIf=\"notification?.dismiss\"\r\n (click)=\"notification?.destroy()\"\r\n class=\"notification-actions-button destructive\"\r\n type=\"button\">\r\n <span class=\"notification-actions-button-highlight\">\r\n {{ notification?.dismissText || dismissButtonText }}\r\n </span>\r\n </button>\r\n</div>\r\n\r\n<!--\r\n The outlet for the notification content template ref.\r\n-->\r\n<ng-template #templateContent>\r\n <ng-container *ngTemplateOutlet=\"$any(notification?.content)\"></ng-container>\r\n</ng-template>\r\n", styles: [".bb-notifications-item{display:flex;border-radius:4px;flex-direction:column;background-color:#fff;border:1px solid #d6dbe0}.bb-notifications-item.success .notification-icon-wrapper{color:#2dc05d;background-color:#ebfaf0}.bb-notifications-item.success .notification-progress-circle{stroke:#36d068}.bb-notifications-item.error .notification-icon-wrapper{color:#f43e3e;background-color:#feeeee}.bb-notifications-item.error .notification-progress-circle{stroke:#f55656}.bb-notifications-item.warning .notification-icon-wrapper{color:#f1ae00;background-color:#fff8e7}.bb-notifications-item.warning .notification-progress-circle{stroke:#ffbc0b}.bb-notifications-item.info .notification-icon-wrapper{color:#099bf6;background-color:#e9f6fe}.bb-notifications-item.info .notification-progress-circle{stroke:#22a5f7}.bb-notifications-item.custom .notification-icon-wrapper{color:#657385;background-color:#f3f5f6}.bb-notifications-item.custom .notification-progress-circle{stroke:#657385}.notification-content-wrapper{padding:20px;display:flex;align-items:center}.notification-icon-wrapper{width:40px;height:40px;display:flex;-webkit-user-select:none;user-select:none;position:relative;border-radius:50%;align-items:center;justify-content:center;color:#657385;background-color:#f3f5f6}.notification-icon{width:100%;height:100%;padding:10px;fill:currentColor}.notification-content{flex:1;font-size:14px;line-height:1.5;font-weight:500;margin-left:20px;color:#000000d9}.notification-content i{font-style:italic}.notification-content,.notification-actions-button{font-family:inherit}.notification-actions{display:flex;margin:0 20px;-webkit-user-select:none;user-select:none;border-top:1px solid #f3f5f6}.notification-actions-button{flex:1;border:none;color:#22a5f7;cursor:pointer;font-size:14px;font-weight:500;padding:12px 2px;text-align:center;background-color:transparent}.notification-actions-button:hover>.notification-actions-button-highlight,.notification-actions-button:focus>.notification-actions-button-highlight{background-color:#22a5f71a}.notification-actions-button:active>.notification-actions-button-highlight{background-color:#22a5f733}.notification-actions-button.destructive{color:#f55656}.notification-actions-button.destructive:hover>.notification-actions-button-highlight,.notification-actions-button.destructive:focus>.notification-actions-button-highlight{background-color:#f556561a}.notification-actions-button.destructive:active>.notification-actions-button-highlight{background-color:#f5565633}.notification-actions-button-highlight{padding:4px 12px;border-radius:12px;display:inline-flex;transition:background-color .15s cubic-bezier(0,0,.2,1)}.notification-progress-ring{top:0;left:0;right:0;bottom:0;width:100%;height:100%;position:absolute}.notification-progress-circle{transform:rotate(-90deg);transform-origin:50% 50%;stroke:#657385}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "bbLocalize": i3.BbLocalize }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
84
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BbNotificationsItem, decorators: [{
|
|
85
|
+
type: Component,
|
|
86
|
+
args: [{ selector: 'bb-notifications-item', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
|
|
87
|
+
'role': 'alert'
|
|
88
|
+
}, template: "<div class=\"notification-content-wrapper\">\r\n <!--\r\n The icon for the notification.\r\n\r\n The icon is reflected by the type of the\r\n notification. Same goes for the color and\r\n background-color.\r\n -->\r\n <div [style.color]=\"notification?.color\"\r\n [style.background-color]=\"notification?.backgroundColor\"\r\n class=\"notification-icon-wrapper\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 16 19.5\"\r\n class=\"notification-icon\">\r\n <path\r\n d=\"M8 19.5c1.1 0 2-.9 2-2H6c0 1.1.9 2 2 2zM14 13.5v-5c0-3.1-1.6-5.6-4.5-6.3v-.7C9.5.7 8.8 0 8 0S6.5.7 6.5 1.5v.7C3.6 2.9 2 5.4 2 8.5v5l-2 2v1h16v-1l-2-2z\">\r\n </path>\r\n </svg>\r\n\r\n <!--\r\n The circular progress for the notification.\r\n\r\n The progress is only visible when a timeout is\r\n set. The progress adapts to the time remaining\r\n for the notification.\r\n -->\r\n <svg *ngIf=\"notification?.timeout > 0\"\r\n class=\"notification-progress-ring\"\r\n viewBox=\"0 0 40 40\"\r\n role=\"progressbar\">\r\n <circle #progress\r\n [attr.stroke-dasharray]=\"progressStrokeArray\"\r\n [attr.stroke-dashoffset]=\"progressStrokeOffset\"\r\n [style.stroke]=\"notification?.color\"\r\n class=\"notification-progress-circle\"\r\n stroke-width=\"2\"\r\n fill=\"transparent\"\r\n r=\"19\"\r\n cx=\"20\"\r\n cy=\"20\">\r\n </circle>\r\n </svg>\r\n </div>\r\n\r\n <!--\r\n The content for the notification.\r\n\r\n This displays a string or a template based\r\n on the given parameter by the user.\r\n -->\r\n <div class=\"notification-content\">\r\n <ng-container *ngIf=\"isContentString; else templateContent\"\r\n [ngSwitch]=\"notification?.localize\">\r\n <ng-container *ngSwitchCase=\"true\">\r\n {{ $any(notification?.content) | bbLocalize:{data: notification?.data} }}\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n {{ notification?.content }}\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<!--\r\n The actions of the notification.\r\n\r\n All actions are displayed here and are\r\n based on the actions array the user provided.\r\n-->\r\n<div *ngIf=\"notification?.actions?.length > 0 || notification?.dismiss\"\r\n class=\"notification-actions\">\r\n <button *ngFor=\"let action of notification?.actions\"\r\n (click)=\"callActionAndDestroy(notification, action)\"\r\n type=\"button\"\r\n [class.destructive]=\"action?.type === 'cancel'\"\r\n class=\"notification-actions-button\">\r\n <span [ngSwitch]=\"notification?.localize\"\r\n class=\"notification-actions-button-highlight\">\r\n <ng-container *ngSwitchCase=\"true\">\r\n {{ action?.title | bbLocalize:{data: notification?.data} }}\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n {{ action?.title }}\r\n </ng-container>\r\n </span>\r\n </button>\r\n <button *ngIf=\"notification?.dismiss\"\r\n (click)=\"notification?.destroy()\"\r\n class=\"notification-actions-button destructive\"\r\n type=\"button\">\r\n <span class=\"notification-actions-button-highlight\">\r\n {{ notification?.dismissText || dismissButtonText }}\r\n </span>\r\n </button>\r\n</div>\r\n\r\n<!--\r\n The outlet for the notification content template ref.\r\n-->\r\n<ng-template #templateContent>\r\n <ng-container *ngTemplateOutlet=\"$any(notification?.content)\"></ng-container>\r\n</ng-template>\r\n", styles: [".bb-notifications-item{display:flex;border-radius:4px;flex-direction:column;background-color:#fff;border:1px solid #d6dbe0}.bb-notifications-item.success .notification-icon-wrapper{color:#2dc05d;background-color:#ebfaf0}.bb-notifications-item.success .notification-progress-circle{stroke:#36d068}.bb-notifications-item.error .notification-icon-wrapper{color:#f43e3e;background-color:#feeeee}.bb-notifications-item.error .notification-progress-circle{stroke:#f55656}.bb-notifications-item.warning .notification-icon-wrapper{color:#f1ae00;background-color:#fff8e7}.bb-notifications-item.warning .notification-progress-circle{stroke:#ffbc0b}.bb-notifications-item.info .notification-icon-wrapper{color:#099bf6;background-color:#e9f6fe}.bb-notifications-item.info .notification-progress-circle{stroke:#22a5f7}.bb-notifications-item.custom .notification-icon-wrapper{color:#657385;background-color:#f3f5f6}.bb-notifications-item.custom .notification-progress-circle{stroke:#657385}.notification-content-wrapper{padding:20px;display:flex;align-items:center}.notification-icon-wrapper{width:40px;height:40px;display:flex;-webkit-user-select:none;user-select:none;position:relative;border-radius:50%;align-items:center;justify-content:center;color:#657385;background-color:#f3f5f6}.notification-icon{width:100%;height:100%;padding:10px;fill:currentColor}.notification-content{flex:1;font-size:14px;line-height:1.5;font-weight:500;margin-left:20px;color:#000000d9}.notification-content i{font-style:italic}.notification-content,.notification-actions-button{font-family:inherit}.notification-actions{display:flex;margin:0 20px;-webkit-user-select:none;user-select:none;border-top:1px solid #f3f5f6}.notification-actions-button{flex:1;border:none;color:#22a5f7;cursor:pointer;font-size:14px;font-weight:500;padding:12px 2px;text-align:center;background-color:transparent}.notification-actions-button:hover>.notification-actions-button-highlight,.notification-actions-button:focus>.notification-actions-button-highlight{background-color:#22a5f71a}.notification-actions-button:active>.notification-actions-button-highlight{background-color:#22a5f733}.notification-actions-button.destructive{color:#f55656}.notification-actions-button.destructive:hover>.notification-actions-button-highlight,.notification-actions-button.destructive:focus>.notification-actions-button-highlight{background-color:#f556561a}.notification-actions-button.destructive:active>.notification-actions-button-highlight{background-color:#f5565633}.notification-actions-button-highlight{padding:4px 12px;border-radius:12px;display:inline-flex;transition:background-color .15s cubic-bezier(0,0,.2,1)}.notification-progress-ring{top:0;left:0;right:0;bottom:0;width:100%;height:100%;position:absolute}.notification-progress-circle{transform:rotate(-90deg);transform-origin:50% 50%;stroke:#657385}\n"] }]
|
|
89
|
+
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.Platform }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { notification: [{
|
|
90
|
+
type: Input
|
|
91
|
+
}], dismissButtonText: [{
|
|
92
|
+
type: Input
|
|
93
|
+
}], progressElementRef: [{
|
|
94
|
+
type: ViewChild,
|
|
95
|
+
args: ['progress']
|
|
96
|
+
}], getClass: [{
|
|
97
|
+
type: HostBinding,
|
|
98
|
+
args: ['class']
|
|
99
|
+
}] } });
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbm90aWZpY2F0aW9ucy9zcmMvbGliL25vdGlmaWNhdGlvbnMtaXRlbS9ub3RpZmljYXRpb25zLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9ub3RpZmljYXRpb25zL3NyYy9saWIvbm90aWZpY2F0aW9ucy1pdGVtL25vdGlmaWNhdGlvbnMtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxXQUFXLEVBQ1gsS0FBSyxFQUlMLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7Ozs7O0FBZXZCLE1BQU0sT0FBTyxtQkFBbUI7SUE0QjVCLFlBQW9CLEtBQWEsRUFDYixTQUFtQixFQUNuQixnQkFBbUM7UUFGbkMsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFtQjtRQXJCdkQsUUFBUTtRQUNBLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFDZCxXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBU25CLFFBQVE7UUFDUyxZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsbUJBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBd0M3RCx5QkFBb0IsR0FBRyxDQUFDLFlBQTBCLEVBQUUsTUFBMEIsRUFBRSxFQUFFO1lBQzlFLHVDQUF1QztZQUN2QyxNQUFNLElBQUksTUFBTSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFFL0MsMENBQTBDO1lBQzFDLFlBQVks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RyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBRXRELHNCQUFzQjtRQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUU3QixzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNsRyxDQUFDOztnSEFsRlEsbUJBQW1CO29HQUFuQixtQkFBbUIsb1ZDM0JoQyxzL0hBc0dBOzJGRDNFYSxtQkFBbUI7a0JBWC9CLFNBQVM7K0JBQ0ksdUJBQXVCLG1CQUdoQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLHVCQUNoQixLQUFLLFFBQ3BCO3dCQUNGLE1BQU0sRUFBRSxPQUFPO3FCQUNsQjtvSkFLUSxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFHaUIsa0JBQWtCO3NCQUF4QyxTQUFTO3VCQUFDLFVBQVU7Z0JBaUJLLFFBQVE7c0JBQWpDLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEhvc3RCaW5kaW5nLFxyXG4gICAgSW5wdXQsXHJcbiAgICBOZ1pvbmUsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBPbkluaXQsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge05vdGlmaWNhdGlvbiwgTm90aWZpY2F0aW9uQWN0aW9ufSBmcm9tICcuLi9ub3RpZmljYXRpb25zLmludGVyZmFjZXMnO1xyXG5pbXBvcnQge1BsYXRmb3JtfSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYmItbm90aWZpY2F0aW9ucy1pdGVtJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9ub3RpZmljYXRpb25zLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vbm90aWZpY2F0aW9ucy1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcclxuICAgIGhvc3Q6IHtcclxuICAgICAgICAncm9sZSc6ICdhbGVydCdcclxuICAgIH1cclxufSlcclxuZXhwb3J0IGNsYXNzIEJiTm90aWZpY2F0aW9uc0l0ZW0gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gICAgLy8gSW5wdXRzLlxyXG4gICAgQElucHV0KCkgbm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb247XHJcbiAgICBASW5wdXQoKSBkaXNtaXNzQnV0dG9uVGV4dDogc3RyaW5nIHwgbnVsbDtcclxuXHJcbiAgICAvLyBFbGVtZW50cy5cclxuICAgIEBWaWV3Q2hpbGQoJ3Byb2dyZXNzJykgcHJvZ3Jlc3NFbGVtZW50UmVmOiBFbGVtZW50UmVmO1xyXG5cclxuICAgIC8vIERhdGEuXHJcbiAgICBwcml2YXRlIF9wcm9ncmVzcyA9IDA7XHJcbiAgICBwcml2YXRlIF9jb3VudCA9IDA7XHJcblxyXG4gICAgLy8gSGVscGVyIHZhcmlhYmxlcy5cclxuICAgIHByaXZhdGUgX3N0ZXBzOiBudW1iZXI7XHJcbiAgICBwcml2YXRlIF9zcGVlZDogbnVtYmVyO1xyXG4gICAgcHJpdmF0ZSBfdGltZXI6IG51bWJlcjtcclxuICAgIHByaXZhdGUgX3N0YXJ0VGltZTogbnVtYmVyO1xyXG4gICAgcHJpdmF0ZSBfZGlmZmVyZW5jZTogbnVtYmVyO1xyXG5cclxuICAgIC8vIERhdGEuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9yYWRpdXMgPSAxOTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NpcmN1bWZlcmVuY2UgPSB0aGlzLl9yYWRpdXMgKiAyICogTWF0aC5QSTtcclxuXHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGdldENsYXNzKCkge1xyXG4gICAgICAgIHJldHVybiBgYmItbm90aWZpY2F0aW9ucy1pdGVtICR7dGhpcy5ub3RpZmljYXRpb24udHlwZX1gO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX3pvbmU6IE5nWm9uZSxcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgX3BsYXRmb3JtOiBQbGF0Zm9ybSxcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2NoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgcHJvZ3Jlc3NTdHJva2VBcnJheSgpIHtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IE1hdGguZmxvb3IodGhpcy5fY2lyY3VtZmVyZW5jZSk7XHJcbiAgICAgICAgcmV0dXJuIGAke3ZhbHVlfSwgJHt2YWx1ZX1gO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBwcm9ncmVzc1N0cm9rZU9mZnNldCgpIHtcclxuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcih0aGlzLl9jaXJjdW1mZXJlbmNlIC0gdGhpcy5fcHJvZ3Jlc3MgLyAxMDAgKiB0aGlzLl9jaXJjdW1mZXJlbmNlKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaXNDb250ZW50U3RyaW5nKCkge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgdGhpcy5ub3RpZmljYXRpb24uY29udGVudCA9PT0gJ3N0cmluZyc7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIG5vdGlmaWNhdGlvbiB0aW1lb3V0IGlzIG5vdCAwIGFuZCB0aGUgcGxhdGZvcm0gaXMgYSBicm93c2VyLlxyXG4gICAgICAgIGlmICh0aGlzLm5vdGlmaWNhdGlvbi50aW1lb3V0IDw9IDAgfHwgIXRoaXMuX3BsYXRmb3JtLmlzQnJvd3Nlcikge1xyXG4gICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5kaXNtaXNzID0gdHJ1ZTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gU3RhcnQgdGhlIHRpbWVvdXQuXHJcbiAgICAgICAgdGhpcy5zdGFydFRpbWVvdXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICAvLyBDbGVhciB0aGUgdGltZW91dCBpZiBpdCB3YXMgc2V0LlxyXG4gICAgICAgIHRoaXMuX3RpbWVyICYmIHdpbmRvdyAmJiB3aW5kb3cuY2xlYXJUaW1lb3V0ICYmIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5fdGltZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbGxBY3Rpb25BbmREZXN0cm95ID0gKG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uLCBhY3Rpb246IE5vdGlmaWNhdGlvbkFjdGlvbikgPT4ge1xyXG4gICAgICAgIC8vIFBlcmZvcm0gdGhlIGNhbGxiYWNrIChpZiBpdCBleGlzdHMpLlxyXG4gICAgICAgIGFjdGlvbiAmJiBhY3Rpb24uY2FsbGJhY2sgJiYgYWN0aW9uLmNhbGxiYWNrKCk7XHJcblxyXG4gICAgICAgIC8vIENhbGwgdGhlIGRlc3Ryb3kgbWV0aG9kIChpZiBpdCBleGlzdHMpLlxyXG4gICAgICAgIG5vdGlmaWNhdGlvbiAmJiBub3RpZmljYXRpb24uZGVzdHJveSAmJiBub3RpZmljYXRpb24uZGVzdHJveSgpO1xyXG4gICAgfTtcclxuXHJcbiAgICBwcml2YXRlIHN0YXJ0VGltZW91dCgpIHtcclxuICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHN0ZXBzIG9mIHRoZSB0aW1lb3V0LlxyXG4gICAgICAgIHRoaXMuX3N0ZXBzID0gdGhpcy5ub3RpZmljYXRpb24udGltZW91dCAvIDEwO1xyXG5cclxuICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHNwZWVkIG9mIHRoZSB0aW1lb3V0LlxyXG4gICAgICAgIHRoaXMuX3NwZWVkID0gdGhpcy5ub3RpZmljYXRpb24udGltZW91dCAvIHRoaXMuX3N0ZXBzO1xyXG5cclxuICAgICAgICAvLyBHZXQgdGhlIHN0YXJ0IHRpbWUuXHJcbiAgICAgICAgdGhpcy5fc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcclxuXHJcbiAgICAgICAgLy8gU2V0IGEgbmV3IHRpbWVyIG91dHNpZGUgb2YgQW5ndWxhci5cclxuICAgICAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHRoaXMuX3RpbWVyID0gdGhpcy5zZXRUaW1lb3V0KHRoaXMuaW5zdGFuY2UsIHRoaXMuX3NwZWVkKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbnN0YW5jZSA9ICgpID0+IHtcclxuICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIGRpZmZlcmVuY2UuXHJcbiAgICAgICAgdGhpcy5fZGlmZmVyZW5jZSA9IChEYXRlLm5vdygpIC0gdGhpcy5fc3RhcnRUaW1lKSAtICh0aGlzLl9jb3VudCAqIHRoaXMuX3NwZWVkKTtcclxuXHJcbiAgICAgICAgLy8gQWRkIHVwIHRoZSBjb3VudC5cclxuICAgICAgICBpZiAodGhpcy5fY291bnQrKyA9PT0gdGhpcy5fc3RlcHMpIHtcclxuICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uZGVzdHJveSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gQWRkIHRoZSBzdGVwcyB0byB0aGUgcHJvZ3Jlc3MuXHJcbiAgICAgICAgdGhpcy5fcHJvZ3Jlc3MgKz0gMTAwIC8gdGhpcy5fc3RlcHM7XHJcblxyXG4gICAgICAgIC8vIFNldCBhIG5ldyB0aW1lci5cclxuICAgICAgICB0aGlzLl90aW1lciA9IHRoaXMuc2V0VGltZW91dCh0aGlzLmluc3RhbmNlLCB0aGlzLl9zcGVlZCAtIHRoaXMuX2RpZmZlcmVuY2UpO1xyXG5cclxuICAgICAgICAvLyBSdW4gYSBuZXcgY2hhbmdlIGRldGVjdGlvbiBjeWNsZS5cclxuICAgICAgICB0aGlzLl96b25lLnJ1bigoKSA9PiB0aGlzLl9jaGFuZ2VEZXRlY3Rpb24uZGV0ZWN0Q2hhbmdlcygpKTtcclxuICAgIH07XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRUaW1lb3V0ID0gKG1ldGhvZDogKCkgPT4gdm9pZCwgdGltZW91dDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIHdpbmRvdyBhbmQgbWV0aG9kIGV4aXN0LlxyXG4gICAgICAgIGlmICghd2luZG93IHx8ICF3aW5kb3cuc2V0VGltZW91dCkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB3aW5kb3cuc2V0VGltZW91dChtZXRob2QsIHRpbWVvdXQpO1xyXG4gICAgfTtcclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm5vdGlmaWNhdGlvbi1jb250ZW50LXdyYXBwZXJcIj5cclxuICAgIDwhLS1cclxuICAgICAgICBUaGUgaWNvbiBmb3IgdGhlIG5vdGlmaWNhdGlvbi5cclxuXHJcbiAgICAgICAgVGhlIGljb24gaXMgcmVmbGVjdGVkIGJ5IHRoZSB0eXBlIG9mIHRoZVxyXG4gICAgICAgIG5vdGlmaWNhdGlvbi4gU2FtZSBnb2VzIGZvciB0aGUgY29sb3IgYW5kXHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvci5cclxuICAgIC0tPlxyXG4gICAgPGRpdiBbc3R5bGUuY29sb3JdPVwibm90aWZpY2F0aW9uPy5jb2xvclwiXHJcbiAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cIm5vdGlmaWNhdGlvbj8uYmFja2dyb3VuZENvbG9yXCJcclxuICAgICAgICAgY2xhc3M9XCJub3RpZmljYXRpb24taWNvbi13cmFwcGVyXCI+XHJcbiAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTkuNVwiXHJcbiAgICAgICAgICAgICBjbGFzcz1cIm5vdGlmaWNhdGlvbi1pY29uXCI+XHJcbiAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICBkPVwiTTggMTkuNWMxLjEgMCAyLS45IDItMkg2YzAgMS4xLjkgMiAyIDJ6TTE0IDEzLjV2LTVjMC0zLjEtMS42LTUuNi00LjUtNi4zdi0uN0M5LjUuNyA4LjggMCA4IDBTNi41LjcgNi41IDEuNXYuN0MzLjYgMi45IDIgNS40IDIgOC41djVsLTIgMnYxaDE2di0xbC0yLTJ6XCI+XHJcbiAgICAgICAgICAgIDwvcGF0aD5cclxuICAgICAgICA8L3N2Zz5cclxuXHJcbiAgICAgICAgPCEtLVxyXG4gICAgICAgICAgICBUaGUgY2lyY3VsYXIgcHJvZ3Jlc3MgZm9yIHRoZSBub3RpZmljYXRpb24uXHJcblxyXG4gICAgICAgICAgICBUaGUgcHJvZ3Jlc3MgaXMgb25seSB2aXNpYmxlIHdoZW4gYSB0aW1lb3V0IGlzXHJcbiAgICAgICAgICAgIHNldC4gVGhlIHByb2dyZXNzIGFkYXB0cyB0byB0aGUgdGltZSByZW1haW5pbmdcclxuICAgICAgICAgICAgZm9yIHRoZSBub3RpZmljYXRpb24uXHJcbiAgICAgICAgLS0+XHJcbiAgICAgICAgPHN2ZyAqbmdJZj1cIm5vdGlmaWNhdGlvbj8udGltZW91dCA+IDBcIlxyXG4gICAgICAgICAgICAgY2xhc3M9XCJub3RpZmljYXRpb24tcHJvZ3Jlc3MtcmluZ1wiXHJcbiAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDQwIDQwXCJcclxuICAgICAgICAgICAgIHJvbGU9XCJwcm9ncmVzc2JhclwiPlxyXG4gICAgICAgICAgICA8Y2lyY2xlICNwcm9ncmVzc1xyXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZS1kYXNoYXJyYXldPVwicHJvZ3Jlc3NTdHJva2VBcnJheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlLWRhc2hvZmZzZXRdPVwicHJvZ3Jlc3NTdHJva2VPZmZzZXRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS5zdHJva2VdPVwibm90aWZpY2F0aW9uPy5jb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJub3RpZmljYXRpb24tcHJvZ3Jlc3MtY2lyY2xlXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgIHI9XCIxOVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY3g9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY3k9XCIyMFwiPlxyXG4gICAgICAgICAgICA8L2NpcmNsZT5cclxuICAgICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS1cclxuICAgICAgICBUaGUgY29udGVudCBmb3IgdGhlIG5vdGlmaWNhdGlvbi5cclxuXHJcbiAgICAgICAgVGhpcyBkaXNwbGF5cyBhIHN0cmluZyBvciBhIHRlbXBsYXRlIGJhc2VkXHJcbiAgICAgICAgb24gdGhlIGdpdmVuIHBhcmFtZXRlciBieSB0aGUgdXNlci5cclxuICAgIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cIm5vdGlmaWNhdGlvbi1jb250ZW50XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQ29udGVudFN0cmluZzsgZWxzZSB0ZW1wbGF0ZUNvbnRlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW25nU3dpdGNoXT1cIm5vdGlmaWNhdGlvbj8ubG9jYWxpemVcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgJGFueShub3RpZmljYXRpb24/LmNvbnRlbnQpIHwgYmJMb2NhbGl6ZTp7ZGF0YTogbm90aWZpY2F0aW9uPy5kYXRhfSB9fVxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICAgICAgICAgICAge3sgbm90aWZpY2F0aW9uPy5jb250ZW50IH19XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPCEtLVxyXG4gICAgVGhlIGFjdGlvbnMgb2YgdGhlIG5vdGlmaWNhdGlvbi5cclxuXHJcbiAgICBBbGwgYWN0aW9ucyBhcmUgZGlzcGxheWVkIGhlcmUgYW5kIGFyZVxyXG4gICAgYmFzZWQgb24gdGhlIGFjdGlvbnMgYXJyYXkgdGhlIHVzZXIgcHJvdmlkZWQuXHJcbi0tPlxyXG48ZGl2ICpuZ0lmPVwibm90aWZpY2F0aW9uPy5hY3Rpb25zPy5sZW5ndGggPiAwIHx8IG5vdGlmaWNhdGlvbj8uZGlzbWlzc1wiXHJcbiAgICAgY2xhc3M9XCJub3RpZmljYXRpb24tYWN0aW9uc1wiPlxyXG4gICAgPGJ1dHRvbiAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIG5vdGlmaWNhdGlvbj8uYWN0aW9uc1wiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJjYWxsQWN0aW9uQW5kRGVzdHJveShub3RpZmljYXRpb24sIGFjdGlvbilcIlxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgW2NsYXNzLmRlc3RydWN0aXZlXT1cImFjdGlvbj8udHlwZSA9PT0gJ2NhbmNlbCdcIlxyXG4gICAgICAgICAgICBjbGFzcz1cIm5vdGlmaWNhdGlvbi1hY3Rpb25zLWJ1dHRvblwiPlxyXG4gICAgICAgIDxzcGFuIFtuZ1N3aXRjaF09XCJub3RpZmljYXRpb24/LmxvY2FsaXplXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cIm5vdGlmaWNhdGlvbi1hY3Rpb25zLWJ1dHRvbi1oaWdobGlnaHRcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgYWN0aW9uPy50aXRsZSB8IGJiTG9jYWxpemU6e2RhdGE6IG5vdGlmaWNhdGlvbj8uZGF0YX0gfX1cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgICAgICAgICAgIHt7IGFjdGlvbj8udGl0bGUgfX1cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uICpuZ0lmPVwibm90aWZpY2F0aW9uPy5kaXNtaXNzXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm5vdGlmaWNhdGlvbj8uZGVzdHJveSgpXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJub3RpZmljYXRpb24tYWN0aW9ucy1idXR0b24gZGVzdHJ1Y3RpdmVcIlxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJub3RpZmljYXRpb24tYWN0aW9ucy1idXR0b24taGlnaGxpZ2h0XCI+XHJcbiAgICAgICAgICAgIHt7IG5vdGlmaWNhdGlvbj8uZGlzbWlzc1RleHQgfHwgZGlzbWlzc0J1dHRvblRleHQgfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuPC9kaXY+XHJcblxyXG48IS0tXHJcbiAgICBUaGUgb3V0bGV0IGZvciB0aGUgbm90aWZpY2F0aW9uIGNvbnRlbnQgdGVtcGxhdGUgcmVmLlxyXG4tLT5cclxuPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZUNvbnRlbnQ+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiJGFueShub3RpZmljYXRpb24/LmNvbnRlbnQpXCI+PC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { notificationAnimation } from '../notifications.animations';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../notifications.interfaces";
|
|
5
|
-
import * as i2 from "../notifications-item/notifications-item.component";
|
|
6
|
-
import * as i3 from "@angular/common";
|
|
7
|
-
export class BbNotificationsList {
|
|
8
|
-
constructor(data) {
|
|
9
|
-
this.data = data;
|
|
10
|
-
// Data.
|
|
11
|
-
this.position = null;
|
|
12
|
-
// Track by function.
|
|
13
|
-
this.trackByFn = (_, item) => item.id;
|
|
14
|
-
}
|
|
15
|
-
get horizontalPosition() {
|
|
16
|
-
return this.location.horizontal;
|
|
17
|
-
}
|
|
18
|
-
get verticalPosition() {
|
|
19
|
-
return this.location.vertical;
|
|
20
|
-
}
|
|
21
|
-
get animation() {
|
|
22
|
-
const to = this.horizontalPosition === 'flex-start'
|
|
23
|
-
? -50
|
|
24
|
-
: 50;
|
|
25
|
-
return { to };
|
|
26
|
-
}
|
|
27
|
-
get location() {
|
|
28
|
-
const [y, x] = (this.data.position || '').split('|');
|
|
29
|
-
return { vertical: y || null, horizontal: x || null };
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
BbNotificationsList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
33
|
-
BbNotificationsList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
35
|
-
type: Component,
|
|
36
|
-
args: [{ selector: 'bb-notifications-list', animations: [notificationAnimation], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
|
|
37
|
-
'class': 'bb-notifications-list',
|
|
38
|
-
'role': 'list'
|
|
39
|
-
}, template: "<!--\n The notifications list.\n\n The list provides the animation effect for the\n incoming notifications.\n-->\n<div *ngIf=\"data?.data | async as notifications\"\n [@notificationListAnimation]=\"{value: notifications?.length, params: animation}\"\n class=\"notifications-list-wrapper\">\n <!--\n The loop for the notifications.\n\n All notifications will be displayed here. They\n are wrapped within a wrapper which separates them.\n -->\n <div *ngFor=\"let notification of notifications; trackBy: trackByFn\"\n class=\"notifications-item-wrapper\">\n <bb-notifications-item [notification]=\"notification\"\n [dismissButtonText]=\"data?.dismissText\">\n </bb-notifications-item>\n </div>\n</div>\n", styles: [".bb-notifications-list{top:0;left:0;right:0;bottom:0;z-index:1100;padding:10px;display:flex;position:fixed;pointer-events:none}.notifications-list-wrapper{width:100%;display:block;max-width:400px;position:relative}.notifications-item-wrapper{padding:0;margin:0 0 10px;pointer-events:all}\n"] }]
|
|
40
|
-
}], ctorParameters: function () { return [{ type: i1.NotificationsData }]; }, propDecorators: { horizontalPosition: [{
|
|
41
|
-
type: HostBinding,
|
|
42
|
-
args: ['style.justify-content']
|
|
43
|
-
}], verticalPosition: [{
|
|
44
|
-
type: HostBinding,
|
|
45
|
-
args: ['style.align-items']
|
|
46
|
-
}] } });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { notificationAnimation } from '../notifications.animations';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../notifications.interfaces";
|
|
5
|
+
import * as i2 from "../notifications-item/notifications-item.component";
|
|
6
|
+
import * as i3 from "@angular/common";
|
|
7
|
+
export class BbNotificationsList {
|
|
8
|
+
constructor(data) {
|
|
9
|
+
this.data = data;
|
|
10
|
+
// Data.
|
|
11
|
+
this.position = null;
|
|
12
|
+
// Track by function.
|
|
13
|
+
this.trackByFn = (_, item) => item.id;
|
|
14
|
+
}
|
|
15
|
+
get horizontalPosition() {
|
|
16
|
+
return this.location.horizontal;
|
|
17
|
+
}
|
|
18
|
+
get verticalPosition() {
|
|
19
|
+
return this.location.vertical;
|
|
20
|
+
}
|
|
21
|
+
get animation() {
|
|
22
|
+
const to = this.horizontalPosition === 'flex-start'
|
|
23
|
+
? -50
|
|
24
|
+
: 50;
|
|
25
|
+
return { to };
|
|
26
|
+
}
|
|
27
|
+
get location() {
|
|
28
|
+
const [y, x] = (this.data.position || '').split('|');
|
|
29
|
+
return { vertical: y || null, horizontal: x || null };
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
BbNotificationsList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BbNotificationsList, deps: [{ token: i1.NotificationsData }], target: i0.ɵɵFactoryTarget.Component });
|
|
33
|
+
BbNotificationsList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.6", type: BbNotificationsList, selector: "bb-notifications-list", host: { attributes: { "role": "list" }, properties: { "style.justify-content": "this.horizontalPosition", "style.align-items": "this.verticalPosition" }, classAttribute: "bb-notifications-list" }, ngImport: i0, template: "<!--\r\n The notifications list.\r\n\r\n The list provides the animation effect for the\r\n incoming notifications.\r\n-->\r\n<div *ngIf=\"data?.data | async as notifications\"\r\n [@notificationListAnimation]=\"{value: notifications?.length, params: animation}\"\r\n class=\"notifications-list-wrapper\">\r\n <!--\r\n The loop for the notifications.\r\n\r\n All notifications will be displayed here. They\r\n are wrapped within a wrapper which separates them.\r\n -->\r\n <div *ngFor=\"let notification of notifications; trackBy: trackByFn\"\r\n class=\"notifications-item-wrapper\">\r\n <bb-notifications-item [notification]=\"notification\"\r\n [dismissButtonText]=\"data?.dismissText\">\r\n </bb-notifications-item>\r\n </div>\r\n</div>\r\n", styles: [".bb-notifications-list{top:0;left:0;right:0;bottom:0;z-index:1100;padding:10px;display:flex;position:fixed;pointer-events:none}.notifications-list-wrapper{width:100%;display:block;max-width:400px;position:relative}.notifications-item-wrapper{padding:0;margin:0 0 10px;pointer-events:all}\n"], components: [{ type: i2.BbNotificationsItem, selector: "bb-notifications-item", inputs: ["notification", "dismissButtonText"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i3.AsyncPipe }, animations: [notificationAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BbNotificationsList, decorators: [{
|
|
35
|
+
type: Component,
|
|
36
|
+
args: [{ selector: 'bb-notifications-list', animations: [notificationAnimation], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
|
|
37
|
+
'class': 'bb-notifications-list',
|
|
38
|
+
'role': 'list'
|
|
39
|
+
}, template: "<!--\r\n The notifications list.\r\n\r\n The list provides the animation effect for the\r\n incoming notifications.\r\n-->\r\n<div *ngIf=\"data?.data | async as notifications\"\r\n [@notificationListAnimation]=\"{value: notifications?.length, params: animation}\"\r\n class=\"notifications-list-wrapper\">\r\n <!--\r\n The loop for the notifications.\r\n\r\n All notifications will be displayed here. They\r\n are wrapped within a wrapper which separates them.\r\n -->\r\n <div *ngFor=\"let notification of notifications; trackBy: trackByFn\"\r\n class=\"notifications-item-wrapper\">\r\n <bb-notifications-item [notification]=\"notification\"\r\n [dismissButtonText]=\"data?.dismissText\">\r\n </bb-notifications-item>\r\n </div>\r\n</div>\r\n", styles: [".bb-notifications-list{top:0;left:0;right:0;bottom:0;z-index:1100;padding:10px;display:flex;position:fixed;pointer-events:none}.notifications-list-wrapper{width:100%;display:block;max-width:400px;position:relative}.notifications-item-wrapper{padding:0;margin:0 0 10px;pointer-events:all}\n"] }]
|
|
40
|
+
}], ctorParameters: function () { return [{ type: i1.NotificationsData }]; }, propDecorators: { horizontalPosition: [{
|
|
41
|
+
type: HostBinding,
|
|
42
|
+
args: ['style.justify-content']
|
|
43
|
+
}], verticalPosition: [{
|
|
44
|
+
type: HostBinding,
|
|
45
|
+
args: ['style.align-items']
|
|
46
|
+
}] } });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbm90aWZpY2F0aW9ucy9zcmMvbGliL25vdGlmaWNhdGlvbnMtbGlzdC9ub3RpZmljYXRpb25zLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9ub3RpZmljYXRpb25zL3NyYy9saWIvbm90aWZpY2F0aW9ucy1saXN0L25vdGlmaWNhdGlvbnMtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7QUFlbEUsTUFBTSxPQUFPLG1CQUFtQjtJQVE1QixZQUFtQixJQUF1QjtRQUF2QixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQU4xQyxRQUFRO1FBQ1IsYUFBUSxHQUFpQyxJQUFJLENBQUM7UUFFOUMscUJBQXFCO1FBQ3JCLGNBQVMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFrQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBRy9DLENBQUM7SUFFRCxJQUNJLGtCQUFrQjtRQUNsQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUNJLGdCQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDVCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEtBQUssWUFBWTtZQUMvQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ0wsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVULE9BQU8sRUFBQyxFQUFFLEVBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsSUFBWSxRQUFRO1FBQ2hCLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFckQsT0FBTyxFQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLElBQUksSUFBSSxFQUFDLENBQUM7SUFDeEQsQ0FBQzs7Z0hBakNRLG1CQUFtQjtvR0FBbkIsbUJBQW1CLGtRQ2pCaEMsZzFCQXNCQSwwcUJEZGdCLENBQUMscUJBQXFCLENBQUM7MkZBUzFCLG1CQUFtQjtrQkFiL0IsU0FBUzsrQkFDSSx1QkFBdUIsY0FHckIsQ0FBQyxxQkFBcUIsQ0FBQyxtQkFDbEIsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSx1QkFDaEIsS0FBSyxRQUNwQjt3QkFDRixPQUFPLEVBQUUsdUJBQXVCO3dCQUNoQyxNQUFNLEVBQUUsTUFBTTtxQkFDakI7d0dBY0csa0JBQWtCO3NCQURyQixXQUFXO3VCQUFDLHVCQUF1QjtnQkFNaEMsZ0JBQWdCO3NCQURuQixXQUFXO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Tm90aWZpY2F0aW9uLCBOb3RpZmljYXRpb25zRGF0YSwgTm90aWZpY2F0aW9uc1Bvc2l0aW9ufSBmcm9tICcuLi9ub3RpZmljYXRpb25zLmludGVyZmFjZXMnO1xyXG5pbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7bm90aWZpY2F0aW9uQW5pbWF0aW9ufSBmcm9tICcuLi9ub3RpZmljYXRpb25zLmFuaW1hdGlvbnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JiLW5vdGlmaWNhdGlvbnMtbGlzdCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vbm90aWZpY2F0aW9ucy1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL25vdGlmaWNhdGlvbnMtbGlzdC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgYW5pbWF0aW9uczogW25vdGlmaWNhdGlvbkFuaW1hdGlvbl0sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcclxuICAgIGhvc3Q6IHtcclxuICAgICAgICAnY2xhc3MnOiAnYmItbm90aWZpY2F0aW9ucy1saXN0JyxcclxuICAgICAgICAncm9sZSc6ICdsaXN0J1xyXG4gICAgfVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmJOb3RpZmljYXRpb25zTGlzdCB7XHJcblxyXG4gICAgLy8gRGF0YS5cclxuICAgIHBvc2l0aW9uOiBOb3RpZmljYXRpb25zUG9zaXRpb24gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICAvLyBUcmFjayBieSBmdW5jdGlvbi5cclxuICAgIHRyYWNrQnlGbiA9IChfLCBpdGVtOiBOb3RpZmljYXRpb24pID0+IGl0ZW0uaWQ7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHVibGljIGRhdGE6IE5vdGlmaWNhdGlvbnNEYXRhKSB7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5qdXN0aWZ5LWNvbnRlbnQnKVxyXG4gICAgZ2V0IGhvcml6b250YWxQb3NpdGlvbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5sb2NhdGlvbi5ob3Jpem9udGFsO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuYWxpZ24taXRlbXMnKVxyXG4gICAgZ2V0IHZlcnRpY2FsUG9zaXRpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubG9jYXRpb24udmVydGljYWw7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGFuaW1hdGlvbigpIHtcclxuICAgICAgICBjb25zdCB0byA9IHRoaXMuaG9yaXpvbnRhbFBvc2l0aW9uID09PSAnZmxleC1zdGFydCdcclxuICAgICAgICAgICAgPyAtNTBcclxuICAgICAgICAgICAgOiA1MDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHt0b307XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXQgbG9jYXRpb24oKSB7XHJcbiAgICAgICAgY29uc3QgW3ksIHhdID0gKHRoaXMuZGF0YS5wb3NpdGlvbiB8fCAnJykuc3BsaXQoJ3wnKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHt2ZXJ0aWNhbDogeSB8fCBudWxsLCBob3Jpem9udGFsOiB4IHx8IG51bGx9O1xyXG4gICAgfVxyXG5cclxufVxyXG4iLCI8IS0tXHJcbiAgICBUaGUgbm90aWZpY2F0aW9ucyBsaXN0LlxyXG5cclxuICAgIFRoZSBsaXN0IHByb3ZpZGVzIHRoZSBhbmltYXRpb24gZWZmZWN0IGZvciB0aGVcclxuICAgIGluY29taW5nIG5vdGlmaWNhdGlvbnMuXHJcbi0tPlxyXG48ZGl2ICpuZ0lmPVwiZGF0YT8uZGF0YSB8IGFzeW5jIGFzIG5vdGlmaWNhdGlvbnNcIlxyXG4gICAgIFtAbm90aWZpY2F0aW9uTGlzdEFuaW1hdGlvbl09XCJ7dmFsdWU6IG5vdGlmaWNhdGlvbnM/Lmxlbmd0aCwgcGFyYW1zOiBhbmltYXRpb259XCJcclxuICAgICBjbGFzcz1cIm5vdGlmaWNhdGlvbnMtbGlzdC13cmFwcGVyXCI+XHJcbiAgICA8IS0tXHJcbiAgICAgICAgVGhlIGxvb3AgZm9yIHRoZSBub3RpZmljYXRpb25zLlxyXG5cclxuICAgICAgICBBbGwgbm90aWZpY2F0aW9ucyB3aWxsIGJlIGRpc3BsYXllZCBoZXJlLiBUaGV5XHJcbiAgICAgICAgYXJlIHdyYXBwZWQgd2l0aGluIGEgd3JhcHBlciB3aGljaCBzZXBhcmF0ZXMgdGhlbS5cclxuICAgIC0tPlxyXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgbm90aWZpY2F0aW9uIG9mIG5vdGlmaWNhdGlvbnM7IHRyYWNrQnk6IHRyYWNrQnlGblwiXHJcbiAgICAgICAgIGNsYXNzPVwibm90aWZpY2F0aW9ucy1pdGVtLXdyYXBwZXJcIj5cclxuICAgICAgICA8YmItbm90aWZpY2F0aW9ucy1pdGVtIFtub3RpZmljYXRpb25dPVwibm90aWZpY2F0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNtaXNzQnV0dG9uVGV4dF09XCJkYXRhPy5kaXNtaXNzVGV4dFwiPlxyXG4gICAgICAgIDwvYmItbm90aWZpY2F0aW9ucy1pdGVtPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
import { animate, group, query, stagger, style, transition, trigger } from '@angular/animations';
|
|
2
|
-
const s = '250ms cubic-bezier(0, 0, .2, 1)';
|
|
3
|
-
const l = '400ms cubic-bezier(0, 0, .2, 1)';
|
|
4
|
-
export const notificationAnimation = trigger('notificationListAnimation', [
|
|
5
|
-
transition('* => *', [
|
|
6
|
-
query(':enter', group([
|
|
7
|
-
// 1. Set the initial state.
|
|
8
|
-
style({ height: 0, opacity: 0, transform: 'translateX({{ to }}%) scale(0.95)' }),
|
|
9
|
-
// 2. Start the animation to show the item.
|
|
10
|
-
stagger(0, [
|
|
11
|
-
animate(s, style({ height: '*' })),
|
|
12
|
-
animate(l, style({ opacity: 1, transform: 'translateX(0) scale(0.95)' })),
|
|
13
|
-
animate(s, style({ transform: 'translateX(0) scale(1)' }))
|
|
14
|
-
])
|
|
15
|
-
]), { optional: true }),
|
|
16
|
-
query(':leave', group([
|
|
17
|
-
// 1. Set the initial state.
|
|
18
|
-
style({ height: '*', opacity: 1, transform: 'translateX(0) scale(1)' }),
|
|
19
|
-
// 2. Start the animation to hide the item.
|
|
20
|
-
stagger(0, [
|
|
21
|
-
animate(s, style({ transform: 'translateX(0) scale(0.95)' })),
|
|
22
|
-
animate(l, style({ opacity: 0, transform: 'translateX({{ to }}%) scale(0.95)' })),
|
|
23
|
-
animate(s, style({ height: 0 }))
|
|
24
|
-
])
|
|
25
|
-
]), { optional: true })
|
|
26
|
-
])
|
|
27
|
-
]);
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { animate, group, query, stagger, style, transition, trigger } from '@angular/animations';
|
|
2
|
+
const s = '250ms cubic-bezier(0, 0, .2, 1)';
|
|
3
|
+
const l = '400ms cubic-bezier(0, 0, .2, 1)';
|
|
4
|
+
export const notificationAnimation = trigger('notificationListAnimation', [
|
|
5
|
+
transition('* => *', [
|
|
6
|
+
query(':enter', group([
|
|
7
|
+
// 1. Set the initial state.
|
|
8
|
+
style({ height: 0, opacity: 0, transform: 'translateX({{ to }}%) scale(0.95)' }),
|
|
9
|
+
// 2. Start the animation to show the item.
|
|
10
|
+
stagger(0, [
|
|
11
|
+
animate(s, style({ height: '*' })),
|
|
12
|
+
animate(l, style({ opacity: 1, transform: 'translateX(0) scale(0.95)' })),
|
|
13
|
+
animate(s, style({ transform: 'translateX(0) scale(1)' }))
|
|
14
|
+
])
|
|
15
|
+
]), { optional: true }),
|
|
16
|
+
query(':leave', group([
|
|
17
|
+
// 1. Set the initial state.
|
|
18
|
+
style({ height: '*', opacity: 1, transform: 'translateX(0) scale(1)' }),
|
|
19
|
+
// 2. Start the animation to hide the item.
|
|
20
|
+
stagger(0, [
|
|
21
|
+
animate(s, style({ transform: 'translateX(0) scale(0.95)' })),
|
|
22
|
+
animate(l, style({ opacity: 0, transform: 'translateX({{ to }}%) scale(0.95)' })),
|
|
23
|
+
animate(s, style({ height: 0 }))
|
|
24
|
+
])
|
|
25
|
+
]), { optional: true })
|
|
26
|
+
])
|
|
27
|
+
]);
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5hbmltYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9ub3RpZmljYXRpb25zL3NyYy9saWIvbm90aWZpY2F0aW9ucy5hbmltYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUvRixNQUFNLENBQUMsR0FBRyxpQ0FBaUMsQ0FBQztBQUM1QyxNQUFNLENBQUMsR0FBRyxpQ0FBaUMsQ0FBQztBQUU1QyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxPQUFPLENBQUMsMkJBQTJCLEVBQUU7SUFDdEUsVUFBVSxDQUFDLFFBQVEsRUFBRTtRQUNqQixLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQztZQUNsQiw0QkFBNEI7WUFDNUIsS0FBSyxDQUFDLEVBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxtQ0FBbUMsRUFBQyxDQUFDO1lBQzlFLDJDQUEyQztZQUMzQyxPQUFPLENBQUMsQ0FBQyxFQUFFO2dCQUNQLE9BQU8sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBQyxDQUFDLENBQUM7Z0JBQ2hDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsMkJBQTJCLEVBQUMsQ0FBQyxDQUFDO2dCQUN2RSxPQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFDLFNBQVMsRUFBRSx3QkFBd0IsRUFBQyxDQUFDLENBQUM7YUFDM0QsQ0FBQztTQUNMLENBQUMsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQztRQUVyQixLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQztZQUNsQiw0QkFBNEI7WUFDNUIsS0FBSyxDQUFDLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSx3QkFBd0IsRUFBQyxDQUFDO1lBQ3JFLDJDQUEyQztZQUMzQyxPQUFPLENBQUMsQ0FBQyxFQUFFO2dCQUNQLE9BQU8sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUMsU0FBUyxFQUFFLDJCQUEyQixFQUFDLENBQUMsQ0FBQztnQkFDM0QsT0FBTyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxtQ0FBbUMsRUFBQyxDQUFDLENBQUM7Z0JBQy9FLE9BQU8sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUMsTUFBTSxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUM7YUFDakMsQ0FBQztTQUNMLENBQUMsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQztLQUN4QixDQUFDO0NBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHthbmltYXRlLCBncm91cCwgcXVlcnksIHN0YWdnZXIsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuXHJcbmNvbnN0IHMgPSAnMjUwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIC4yLCAxKSc7XHJcbmNvbnN0IGwgPSAnNDAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIC4yLCAxKSc7XHJcblxyXG5leHBvcnQgY29uc3Qgbm90aWZpY2F0aW9uQW5pbWF0aW9uID0gdHJpZ2dlcignbm90aWZpY2F0aW9uTGlzdEFuaW1hdGlvbicsIFtcclxuICAgIHRyYW5zaXRpb24oJyogPT4gKicsIFtcclxuICAgICAgICBxdWVyeSgnOmVudGVyJywgZ3JvdXAoW1xyXG4gICAgICAgICAgICAvLyAxLiBTZXQgdGhlIGluaXRpYWwgc3RhdGUuXHJcbiAgICAgICAgICAgIHN0eWxlKHtoZWlnaHQ6IDAsIG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoe3sgdG8gfX0lKSBzY2FsZSgwLjk1KSd9KSxcclxuICAgICAgICAgICAgLy8gMi4gU3RhcnQgdGhlIGFuaW1hdGlvbiB0byBzaG93IHRoZSBpdGVtLlxyXG4gICAgICAgICAgICBzdGFnZ2VyKDAsIFtcclxuICAgICAgICAgICAgICAgIGFuaW1hdGUocywgc3R5bGUoe2hlaWdodDogJyonfSkpLFxyXG4gICAgICAgICAgICAgICAgYW5pbWF0ZShsLCBzdHlsZSh7b3BhY2l0eTogMSwgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgwKSBzY2FsZSgwLjk1KSd9KSksXHJcbiAgICAgICAgICAgICAgICBhbmltYXRlKHMsIHN0eWxlKHt0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApIHNjYWxlKDEpJ30pKVxyXG4gICAgICAgICAgICBdKVxyXG4gICAgICAgIF0pLCB7b3B0aW9uYWw6IHRydWV9KSxcclxuXHJcbiAgICAgICAgcXVlcnkoJzpsZWF2ZScsIGdyb3VwKFtcclxuICAgICAgICAgICAgLy8gMS4gU2V0IHRoZSBpbml0aWFsIHN0YXRlLlxyXG4gICAgICAgICAgICBzdHlsZSh7aGVpZ2h0OiAnKicsIG9wYWNpdHk6IDEsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMCkgc2NhbGUoMSknfSksXHJcbiAgICAgICAgICAgIC8vIDIuIFN0YXJ0IHRoZSBhbmltYXRpb24gdG8gaGlkZSB0aGUgaXRlbS5cclxuICAgICAgICAgICAgc3RhZ2dlcigwLCBbXHJcbiAgICAgICAgICAgICAgICBhbmltYXRlKHMsIHN0eWxlKHt0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApIHNjYWxlKDAuOTUpJ30pKSxcclxuICAgICAgICAgICAgICAgIGFuaW1hdGUobCwgc3R5bGUoe29wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoe3sgdG8gfX0lKSBzY2FsZSgwLjk1KSd9KSksXHJcbiAgICAgICAgICAgICAgICBhbmltYXRlKHMsIHN0eWxlKHtoZWlnaHQ6IDB9KSlcclxuICAgICAgICAgICAgXSlcclxuICAgICAgICBdKSwge29wdGlvbmFsOiB0cnVlfSlcclxuICAgIF0pXHJcbl0pO1xyXG4iXX0=
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
export class NotificationsInjector {
|
|
2
|
-
constructor(_parentInjector, _additionalTokens) {
|
|
3
|
-
this._parentInjector = _parentInjector;
|
|
4
|
-
this._additionalTokens = _additionalTokens;
|
|
5
|
-
}
|
|
6
|
-
get(token, notFoundValue) {
|
|
7
|
-
// First check if the additional token
|
|
8
|
-
// contains the token.
|
|
9
|
-
const value = this._additionalTokens.get(token);
|
|
10
|
-
// If that value exists return it.
|
|
11
|
-
if (value) {
|
|
12
|
-
return value;
|
|
13
|
-
}
|
|
14
|
-
// Else query the parent injector.
|
|
15
|
-
return this._parentInjector.get(token, notFoundValue);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export class NotificationsInjector {
|
|
2
|
+
constructor(_parentInjector, _additionalTokens) {
|
|
3
|
+
this._parentInjector = _parentInjector;
|
|
4
|
+
this._additionalTokens = _additionalTokens;
|
|
5
|
+
}
|
|
6
|
+
get(token, notFoundValue) {
|
|
7
|
+
// First check if the additional token
|
|
8
|
+
// contains the token.
|
|
9
|
+
const value = this._additionalTokens.get(token);
|
|
10
|
+
// If that value exists return it.
|
|
11
|
+
if (value) {
|
|
12
|
+
return value;
|
|
13
|
+
}
|
|
14
|
+
// Else query the parent injector.
|
|
15
|
+
return this._parentInjector.get(token, notFoundValue);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5pbmplY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbm90aWZpY2F0aW9ucy9zcmMvbGliL25vdGlmaWNhdGlvbnMuaW5qZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLHFCQUFxQjtJQUU5QixZQUFvQixlQUF5QixFQUN6QixpQkFBb0M7UUFEcEMsb0JBQWUsR0FBZixlQUFlLENBQVU7UUFDekIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUN4RCxDQUFDO0lBSUQsR0FBRyxDQUFDLEtBQVUsRUFBRSxhQUFtQjtRQUMvQixzQ0FBc0M7UUFDdEMsc0JBQXNCO1FBQ3RCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFaEQsa0NBQWtDO1FBQ2xDLElBQUksS0FBSyxFQUFFO1lBQ1AsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFFRCxrQ0FBa0M7UUFDbEMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBTSxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDL0QsQ0FBQztDQUVKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3Rpb25Ub2tlbiwgSW5qZWN0b3IsIFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbnNJbmplY3RvciBpbXBsZW1lbnRzIEluamVjdG9yIHtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9wYXJlbnRJbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9hZGRpdGlvbmFsVG9rZW5zOiBXZWFrTWFwPGFueSwgYW55Pikge1xyXG4gICAgfVxyXG5cclxuICAgIGdldDxUPih0b2tlbjogVHlwZTxUPiB8IEluamVjdGlvblRva2VuPFQ+LCBub3RGb3VuZFZhbHVlPzogVCk6IFQ7XHJcbiAgICBnZXQodG9rZW46IGFueSwgbm90Rm91bmRWYWx1ZT86IGFueSk7XHJcbiAgICBnZXQodG9rZW46IGFueSwgbm90Rm91bmRWYWx1ZT86IGFueSkge1xyXG4gICAgICAgIC8vIEZpcnN0IGNoZWNrIGlmIHRoZSBhZGRpdGlvbmFsIHRva2VuXHJcbiAgICAgICAgLy8gY29udGFpbnMgdGhlIHRva2VuLlxyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5fYWRkaXRpb25hbFRva2Vucy5nZXQodG9rZW4pO1xyXG5cclxuICAgICAgICAvLyBJZiB0aGF0IHZhbHVlIGV4aXN0cyByZXR1cm4gaXQuXHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIEVsc2UgcXVlcnkgdGhlIHBhcmVudCBpbmplY3Rvci5cclxuICAgICAgICByZXR1cm4gdGhpcy5fcGFyZW50SW5qZWN0b3IuZ2V0PGFueT4odG9rZW4sIG5vdEZvdW5kVmFsdWUpO1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=
|