@bravobit/bb-foundation 0.45.3 → 0.50.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/auth/lib/auth.config.d.ts +0 -2
- package/auth/lib/auth.service.d.ts +1 -1
- package/auth/lib/directives/authenticated.directive.d.ts +1 -1
- package/collections/lib/directives/collections-data-row.directive.d.ts +1 -1
- package/collections/lib/directives/collections-data.directive.d.ts +1 -1
- package/collections/lib/directives/collections-empty.directive.d.ts +1 -1
- package/collections/lib/directives/collections-error.directive.d.ts +1 -1
- package/collections/lib/directives/collections-initial.directive.d.ts +1 -1
- package/collections/lib/directives/collections-item.directive.d.ts +1 -1
- package/dialog/lib/dialog-container/dialog-container.component.d.ts +1 -0
- package/dialog/lib/dialog-overlay/dialog-overlay.component.d.ts +1 -0
- package/fesm2022/bravobit-bb-foundation-auth.mjs +44 -50
- package/fesm2022/bravobit-bb-foundation-auth.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-collections.mjs +69 -75
- package/fesm2022/bravobit-bb-foundation-collections.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-combobox.mjs +21 -24
- package/fesm2022/bravobit-bb-foundation-combobox.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-dashboard.mjs +35 -35
- package/fesm2022/bravobit-bb-foundation-dashboard.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-dialog.mjs +63 -47
- package/fesm2022/bravobit-bb-foundation-dialog.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-elements.mjs +119 -131
- package/fesm2022/bravobit-bb-foundation-elements.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-http.mjs +10 -10
- package/fesm2022/bravobit-bb-foundation-http.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-localize.mjs +25 -32
- package/fesm2022/bravobit-bb-foundation-localize.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-masking.mjs +19 -22
- package/fesm2022/bravobit-bb-foundation-masking.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-notifications.mjs +15 -17
- package/fesm2022/bravobit-bb-foundation-notifications.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-permissions.mjs +11 -12
- package/fesm2022/bravobit-bb-foundation-permissions.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-recaptcha.mjs +11 -11
- package/fesm2022/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-rxjs.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-select.mjs +33 -36
- package/fesm2022/bravobit-bb-foundation-select.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-storage.mjs +16 -8
- package/fesm2022/bravobit-bb-foundation-storage.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-table.mjs +29 -31
- package/fesm2022/bravobit-bb-foundation-table.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-tooltip.mjs +12 -13
- package/fesm2022/bravobit-bb-foundation-tooltip.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-utils.mjs +20 -24
- package/fesm2022/bravobit-bb-foundation-utils.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation.mjs +21 -21
- package/fesm2022/bravobit-bb-foundation.mjs.map +1 -1
- package/localize/lib/localize.config.d.ts +0 -1
- package/localize/lib/localize.service.d.ts +1 -1
- package/localize/lib/views/localize-template.directive.d.ts +1 -1
- package/masking/lib/masking.service.d.ts +2 -2
- package/notifications/lib/notifications-list/notifications-list.component.d.ts +1 -2
- package/package.json +7 -45
- package/permissions/lib/directives/permission.directive.d.ts +1 -1
- package/select/lib/select/select.component.d.ts +1 -0
- package/storage/lib/interfaces/strategy.interface.d.ts +1 -1
- package/table/lib/components/table/table.component.d.ts +2 -2
- package/esm2022/auth/bravobit-bb-foundation-auth.mjs +0 -5
- package/esm2022/auth/lib/auth.config.mjs +0 -16
- package/esm2022/auth/lib/auth.interceptor.mjs +0 -87
- package/esm2022/auth/lib/auth.module.mjs +0 -25
- package/esm2022/auth/lib/auth.service.mjs +0 -261
- package/esm2022/auth/lib/auth.session.mjs +0 -142
- package/esm2022/auth/lib/directives/authenticated.directive.mjs +0 -78
- package/esm2022/auth/lib/guards/anonymous.guard.mjs +0 -29
- package/esm2022/auth/lib/guards/authenticated.guard.mjs +0 -32
- package/esm2022/auth/lib/helpers/jwt.helper.mjs +0 -67
- package/esm2022/auth/lib/interfaces/config.interface.mjs +0 -4
- package/esm2022/auth/lib/interfaces/provider.interface.mjs +0 -2
- package/esm2022/auth/lib/interfaces/token.interface.mjs +0 -2
- package/esm2022/auth/lib/providers/email.provider.mjs +0 -27
- package/esm2022/auth/lib/providers/verify.provider.mjs +0 -25
- package/esm2022/auth/lib/tokens/use-authorization.token.mjs +0 -3
- package/esm2022/auth/public_api.mjs +0 -15
- package/esm2022/bravobit-bb-foundation.mjs +0 -5
- package/esm2022/collections/bravobit-bb-foundation-collections.mjs +0 -5
- package/esm2022/collections/lib/classes/array.collection.mjs +0 -85
- package/esm2022/collections/lib/collection.mjs +0 -98
- package/esm2022/collections/lib/collections.module.mjs +0 -84
- package/esm2022/collections/lib/components/collections-actions/collections-actions.component.mjs +0 -37
- package/esm2022/collections/lib/components/collections-grid/collections-grid.component.mjs +0 -52
- package/esm2022/collections/lib/components/collections-pager/collections-pager.component.mjs +0 -114
- package/esm2022/collections/lib/components/collections-table/collections-table.component.mjs +0 -86
- package/esm2022/collections/lib/components/collections-table-label/collections-table-label.component.mjs +0 -30
- package/esm2022/collections/lib/components/collections-table-sorting/collections-table-sorting.component.mjs +0 -65
- package/esm2022/collections/lib/components/collections-viewer/collections-viewer.component.mjs +0 -37
- package/esm2022/collections/lib/directives/collections-data-row.directive.mjs +0 -29
- package/esm2022/collections/lib/directives/collections-data.directive.mjs +0 -29
- package/esm2022/collections/lib/directives/collections-empty.directive.mjs +0 -29
- package/esm2022/collections/lib/directives/collections-error.directive.mjs +0 -29
- package/esm2022/collections/lib/directives/collections-initial.directive.mjs +0 -23
- package/esm2022/collections/lib/directives/collections-item.directive.mjs +0 -29
- package/esm2022/collections/lib/interfaces/array-collection.interface.mjs +0 -2
- package/esm2022/collections/lib/interfaces/collection.interface.mjs +0 -2
- package/esm2022/collections/lib/providers/api-collection.provider.mjs +0 -103
- package/esm2022/collections/lib/providers/collection.provider.mjs +0 -39
- package/esm2022/collections/lib/providers/local-collection.provider.mjs +0 -25
- package/esm2022/collections/public_api.mjs +0 -22
- package/esm2022/combobox/bravobit-bb-foundation-combobox.mjs +0 -5
- package/esm2022/combobox/combobox/combobox-container.directive.mjs +0 -137
- package/esm2022/combobox/combobox/combobox.component.mjs +0 -118
- package/esm2022/combobox/combobox-label.directive.mjs +0 -14
- package/esm2022/combobox/combobox-option.directive.mjs +0 -17
- package/esm2022/combobox/combobox-panel/combobox-panel.animation.mjs +0 -11
- package/esm2022/combobox/combobox-panel/combobox-panel.component.mjs +0 -42
- package/esm2022/combobox/combobox.interface.mjs +0 -2
- package/esm2022/combobox/public_api.mjs +0 -4
- package/esm2022/dashboard/bravobit-bb-foundation-dashboard.mjs +0 -5
- package/esm2022/dashboard/lib/dashboard/dashboard.component.mjs +0 -50
- package/esm2022/dashboard/lib/dashboard-header/dashboard-header.component.mjs +0 -25
- package/esm2022/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +0 -28
- package/esm2022/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +0 -32
- package/esm2022/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +0 -75
- package/esm2022/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +0 -93
- package/esm2022/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +0 -60
- package/esm2022/dashboard/lib/dashboard.module.mjs +0 -50
- package/esm2022/dashboard/public_api.mjs +0 -9
- package/esm2022/dialog/bravobit-bb-foundation-dialog.mjs +0 -5
- package/esm2022/dialog/lib/dialog-actions/dialog-actions.component.mjs +0 -12
- package/esm2022/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +0 -44
- package/esm2022/dialog/lib/dialog-container/dialog-container.component.mjs +0 -58
- package/esm2022/dialog/lib/dialog-header/dialog-header.component.mjs +0 -15
- package/esm2022/dialog/lib/dialog-link/dialog-link.component.mjs +0 -11
- package/esm2022/dialog/lib/dialog-modal/dialog-modal.component.mjs +0 -57
- package/esm2022/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +0 -53
- package/esm2022/dialog/lib/dialog.config.mjs +0 -8
- package/esm2022/dialog/lib/dialog.insertion.mjs +0 -18
- package/esm2022/dialog/lib/dialog.interfaces.mjs +0 -9
- package/esm2022/dialog/lib/dialog.module.mjs +0 -64
- package/esm2022/dialog/lib/dialog.ref.mjs +0 -16
- package/esm2022/dialog/lib/dialog.service.mjs +0 -75
- package/esm2022/dialog/lib/directives/confirm.directive.mjs +0 -48
- package/esm2022/dialog/public_api.mjs +0 -12
- package/esm2022/elements/bravobit-bb-foundation-elements.mjs +0 -5
- package/esm2022/elements/lib/avatar/avatar.component.mjs +0 -175
- package/esm2022/elements/lib/button/button.component.mjs +0 -68
- package/esm2022/elements/lib/checkbox/checkbox.component.mjs +0 -116
- package/esm2022/elements/lib/checkbox-group/checkbox-group.component.mjs +0 -34
- package/esm2022/elements/lib/date-picker/date-picker.component.mjs +0 -323
- package/esm2022/elements/lib/directives/addon.directive.mjs +0 -27
- package/esm2022/elements/lib/directives/extra-error-controls.directive.mjs +0 -41
- package/esm2022/elements/lib/directives/file-drop.directive.mjs +0 -62
- package/esm2022/elements/lib/directives/form-submit.directive.mjs +0 -54
- package/esm2022/elements/lib/directives/form-submitter.directive.mjs +0 -24
- package/esm2022/elements/lib/directives/image-upload.directive.mjs +0 -143
- package/esm2022/elements/lib/directives/input.directive.mjs +0 -49
- package/esm2022/elements/lib/elements.config.mjs +0 -54
- package/esm2022/elements/lib/elements.interfaces.mjs +0 -5
- package/esm2022/elements/lib/elements.module.mjs +0 -146
- package/esm2022/elements/lib/file-picker/file-picker.component.mjs +0 -196
- package/esm2022/elements/lib/form-control/form-control.component.mjs +0 -46
- package/esm2022/elements/lib/form-error/form-error.component.mjs +0 -106
- package/esm2022/elements/lib/form-group/form-group.component.mjs +0 -19
- package/esm2022/elements/lib/icon/icon.component.mjs +0 -122
- package/esm2022/elements/lib/image-picker/image-picker.component.mjs +0 -126
- package/esm2022/elements/lib/multi-file-control/multi-file-control.component.mjs +0 -149
- package/esm2022/elements/lib/pipes/date.pipe.mjs +0 -28
- package/esm2022/elements/lib/pipes/file-image.pipe.mjs +0 -48
- package/esm2022/elements/lib/pipes/file-size.pipe.mjs +0 -27
- package/esm2022/elements/lib/pipes/relative-time.pipe.mjs +0 -99
- package/esm2022/elements/lib/radio-button/radio-button.component.mjs +0 -60
- package/esm2022/elements/lib/radio-group/radio-group.component.mjs +0 -103
- package/esm2022/elements/lib/spinner/spinner.component.mjs +0 -22
- package/esm2022/elements/public_api.mjs +0 -30
- package/esm2022/http/bravobit-bb-foundation-http.mjs +0 -5
- package/esm2022/http/lib/classes/http.config.mjs +0 -32
- package/esm2022/http/lib/classes/http.error.mjs +0 -20
- package/esm2022/http/lib/http.config.mjs +0 -18
- package/esm2022/http/lib/http.interfaces.mjs +0 -4
- package/esm2022/http/lib/http.module.mjs +0 -31
- package/esm2022/http/lib/interceptors/base-url.interceptor.mjs +0 -60
- package/esm2022/http/lib/interceptors/error.interceptor.mjs +0 -31
- package/esm2022/http/public_api.mjs +0 -8
- package/esm2022/lib/core/functions/array.utils.mjs +0 -7
- package/esm2022/lib/core/functions/date.utils.mjs +0 -31
- package/esm2022/lib/core/functions/password.utils.mjs +0 -17
- package/esm2022/lib/core/functions/route-cache.utils.mjs +0 -23
- package/esm2022/lib/core/miscellaneous/coercion.mjs +0 -5
- package/esm2022/lib/core/miscellaneous/regex.mjs +0 -44
- package/esm2022/lib/core/miscellaneous/validator.mjs +0 -85
- package/esm2022/lib/core/services/exif.service.mjs +0 -165
- package/esm2022/lib/core/services/file-loader.service.mjs +0 -85
- package/esm2022/lib/core/services/files.service.mjs +0 -78
- package/esm2022/lib/core/services/image-converter.service.mjs +0 -126
- package/esm2022/lib/core/services/languages.service.mjs +0 -75
- package/esm2022/lib/core/services/network.service.mjs +0 -58
- package/esm2022/lib/core/services/patch.service.mjs +0 -66
- package/esm2022/lib/core/tokens/accept-language.token.mjs +0 -3
- package/esm2022/lib/core/tokens/base-url.token.mjs +0 -3
- package/esm2022/lib/core/tokens/cookie.token.mjs +0 -3
- package/esm2022/lib/core/tokens/global-focus-mode.token.mjs +0 -10
- package/esm2022/lib/core/tokens/location.token.mjs +0 -6
- package/esm2022/lib/core/tokens/navigator.token.mjs +0 -6
- package/esm2022/lib/core/tokens/window.token.mjs +0 -12
- package/esm2022/localize/bravobit-bb-foundation-localize.mjs +0 -5
- package/esm2022/localize/lib/dictionary/dictionary.class.mjs +0 -96
- package/esm2022/localize/lib/dictionary/dictionary.context.mjs +0 -24
- package/esm2022/localize/lib/dictionary/dictionary.data.mjs +0 -7
- package/esm2022/localize/lib/functions/date.function.mjs +0 -18
- package/esm2022/localize/lib/functions/lowercase.function.mjs +0 -13
- package/esm2022/localize/lib/functions/uppercase.function.mjs +0 -13
- package/esm2022/localize/lib/handlers/missing.handler.mjs +0 -13
- package/esm2022/localize/lib/interfaces/config.interfaces.mjs +0 -2
- package/esm2022/localize/lib/interfaces/functions.interfaces.mjs +0 -8
- package/esm2022/localize/lib/interfaces/handlers.interfaces.mjs +0 -2
- package/esm2022/localize/lib/interfaces/options.interfaces.mjs +0 -6
- package/esm2022/localize/lib/localizations/dutch.localization.mjs +0 -64
- package/esm2022/localize/lib/localizations/english.localization.mjs +0 -64
- package/esm2022/localize/lib/localizations/papiamento.localization.mjs +0 -64
- package/esm2022/localize/lib/localizations/spanish.localization.mjs +0 -64
- package/esm2022/localize/lib/localize.config.mjs +0 -43
- package/esm2022/localize/lib/localize.module.mjs +0 -39
- package/esm2022/localize/lib/localize.pipe.mjs +0 -48
- package/esm2022/localize/lib/localize.service.mjs +0 -172
- package/esm2022/localize/lib/localize.tokens.mjs +0 -18
- package/esm2022/localize/lib/transforms/abstract.transform.mjs +0 -30
- package/esm2022/localize/lib/transforms/interpolate.transform.mjs +0 -45
- package/esm2022/localize/lib/transforms/plural.transform.mjs +0 -49
- package/esm2022/localize/lib/transforms/reference.transform.mjs +0 -19
- package/esm2022/localize/lib/views/localize-string/localize-string.component.mjs +0 -89
- package/esm2022/localize/lib/views/localize-template.directive.mjs +0 -23
- package/esm2022/localize/public_api.mjs +0 -27
- package/esm2022/masking/bravobit-bb-foundation-masking.mjs +0 -5
- package/esm2022/masking/lib/directives/currency-mask.directive.mjs +0 -41
- package/esm2022/masking/lib/directives/date-mask.directive.mjs +0 -41
- package/esm2022/masking/lib/directives/input-mask.directive.mjs +0 -126
- package/esm2022/masking/lib/input-mask.interface.mjs +0 -2
- package/esm2022/masking/lib/masking.module.mjs +0 -30
- package/esm2022/masking/lib/masking.service.mjs +0 -104
- package/esm2022/masking/public_api.mjs +0 -7
- package/esm2022/notifications/bravobit-bb-foundation-notifications.mjs +0 -5
- package/esm2022/notifications/lib/notifications-item/notifications-item.component.mjs +0 -112
- package/esm2022/notifications/lib/notifications-list/notifications-list.component.mjs +0 -48
- package/esm2022/notifications/lib/notifications.animations.mjs +0 -28
- package/esm2022/notifications/lib/notifications.config.mjs +0 -8
- package/esm2022/notifications/lib/notifications.interfaces.mjs +0 -31
- package/esm2022/notifications/lib/notifications.module.mjs +0 -20
- package/esm2022/notifications/lib/notifications.service.mjs +0 -161
- package/esm2022/notifications/public_api.mjs +0 -5
- package/esm2022/permissions/bravobit-bb-foundation-permissions.mjs +0 -5
- package/esm2022/permissions/lib/directives/permission.directive.mjs +0 -95
- package/esm2022/permissions/lib/guards/permission.guard.mjs +0 -25
- package/esm2022/permissions/lib/handlers/abstract.handler.mjs +0 -3
- package/esm2022/permissions/lib/handlers/local.handler.mjs +0 -29
- package/esm2022/permissions/lib/permissions.config.mjs +0 -20
- package/esm2022/permissions/lib/permissions.interface.mjs +0 -8
- package/esm2022/permissions/lib/permissions.module.mjs +0 -25
- package/esm2022/permissions/lib/permissions.service.mjs +0 -100
- package/esm2022/permissions/public_api.mjs +0 -9
- package/esm2022/public_api.mjs +0 -25
- package/esm2022/recaptcha/bravobit-bb-foundation-recaptcha.mjs +0 -5
- package/esm2022/recaptcha/lib/recaptcha/recaptcha.component.mjs +0 -225
- package/esm2022/recaptcha/lib/recaptcha-loader.service.mjs +0 -80
- package/esm2022/recaptcha/lib/recaptcha.config.mjs +0 -8
- package/esm2022/recaptcha/lib/recaptcha.interface.mjs +0 -3
- package/esm2022/recaptcha/lib/recaptcha.module.mjs +0 -27
- package/esm2022/recaptcha/public_api.mjs +0 -6
- package/esm2022/rxjs/bravobit-bb-foundation-rxjs.mjs +0 -5
- package/esm2022/rxjs/lib/observables/get-control-value.observable.mjs +0 -6
- package/esm2022/rxjs/lib/observables/get-route-param.observable.mjs +0 -5
- package/esm2022/rxjs/lib/operators/combine-latest-map.operator.mjs +0 -10
- package/esm2022/rxjs/lib/operators/filter-nil.operator.mjs +0 -5
- package/esm2022/rxjs/public_api.mjs +0 -5
- package/esm2022/select/bravobit-bb-foundation-select.mjs +0 -5
- package/esm2022/select/lib/select/select.component.mjs +0 -288
- package/esm2022/select/lib/select-label.directive.mjs +0 -18
- package/esm2022/select/lib/select-multi-label.directive.mjs +0 -18
- package/esm2022/select/lib/select-option-group.directive.mjs +0 -18
- package/esm2022/select/lib/select-option.directive.mjs +0 -18
- package/esm2022/select/lib/select.config.mjs +0 -8
- package/esm2022/select/lib/select.module.mjs +0 -46
- package/esm2022/select/public_api.mjs +0 -8
- package/esm2022/storage/bravobit-bb-foundation-storage.mjs +0 -5
- package/esm2022/storage/lib/interfaces/attributes.interface.mjs +0 -2
- package/esm2022/storage/lib/interfaces/memory.interface.mjs +0 -2
- package/esm2022/storage/lib/interfaces/strategy.interface.mjs +0 -2
- package/esm2022/storage/lib/storage.service.mjs +0 -113
- package/esm2022/storage/lib/strategies/cookie-storage.strategy.mjs +0 -144
- package/esm2022/storage/lib/strategies/memory-storage.strategy.mjs +0 -54
- package/esm2022/storage/lib/strategies/polyfill-storage.strategy.mjs +0 -100
- package/esm2022/storage/public_api.mjs +0 -8
- package/esm2022/table/bravobit-bb-foundation-table.mjs +0 -5
- package/esm2022/table/lib/components/table/table.component.mjs +0 -200
- package/esm2022/table/lib/components/table-cell/table-cell.component.mjs +0 -11
- package/esm2022/table/lib/components/table-header-cell/table-header-cell.component.mjs +0 -135
- package/esm2022/table/lib/components/table-pager/table-pager.component.mjs +0 -136
- package/esm2022/table/lib/data/datasource.data.mjs +0 -30
- package/esm2022/table/lib/data/generic.data.mjs +0 -84
- package/esm2022/table/lib/interfaces/datasource.interface.mjs +0 -2
- package/esm2022/table/lib/interfaces/table.interfaces.mjs +0 -2
- package/esm2022/table/lib/table.module.mjs +0 -44
- package/esm2022/table/public_api.mjs +0 -10
- package/esm2022/tooltip/bravobit-bb-foundation-tooltip.mjs +0 -5
- package/esm2022/tooltip/lib/tooltip-container/tooltip-container.component.mjs +0 -23
- package/esm2022/tooltip/lib/tooltip.directive.mjs +0 -130
- package/esm2022/tooltip/lib/tooltip.interfaces.mjs +0 -4
- package/esm2022/tooltip/lib/tooltip.module.mjs +0 -16
- package/esm2022/tooltip/public_api.mjs +0 -5
- package/esm2022/utils/bravobit-bb-foundation-utils.mjs +0 -5
- package/esm2022/utils/lib/directives/autosize.directive.mjs +0 -76
- package/esm2022/utils/lib/directives/focus-trap.directive.mjs +0 -80
- package/esm2022/utils/lib/directives/focus.directive.mjs +0 -57
- package/esm2022/utils/lib/directives/template.directive.mjs +0 -33
- package/esm2022/utils/lib/utils.module.mjs +0 -35
- package/esm2022/utils/public_api.mjs +0 -6
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "./exif.service";
|
|
4
|
-
import * as i2 from "@angular/cdk/platform";
|
|
5
|
-
import * as i3 from "./file-loader.service";
|
|
6
|
-
export class ImageConverter {
|
|
7
|
-
_exif;
|
|
8
|
-
_platform;
|
|
9
|
-
_fileLoader;
|
|
10
|
-
// Data.
|
|
11
|
-
_types = ['image/png', 'image/jpeg', 'image/webp'];
|
|
12
|
-
constructor(_exif, _platform, _fileLoader) {
|
|
13
|
-
this._exif = _exif;
|
|
14
|
-
this._platform = _platform;
|
|
15
|
-
this._fileLoader = _fileLoader;
|
|
16
|
-
}
|
|
17
|
-
async toDataUri(contents, options = null) {
|
|
18
|
-
// Check if the current platform is a browser.
|
|
19
|
-
if (!this._platform.isBrowser) {
|
|
20
|
-
return null;
|
|
21
|
-
}
|
|
22
|
-
// Get the image.
|
|
23
|
-
const image = await this.getImage(contents);
|
|
24
|
-
// Get the canvas width and height.
|
|
25
|
-
const canvasWidth = options?.width || image?.width;
|
|
26
|
-
const canvasHeight = options?.height || image?.height;
|
|
27
|
-
// Get the canvas and context.
|
|
28
|
-
const canvas = document.createElement('canvas');
|
|
29
|
-
const context = canvas.getContext('2d');
|
|
30
|
-
// Validate the context exists.
|
|
31
|
-
if (!context) {
|
|
32
|
-
return null;
|
|
33
|
-
}
|
|
34
|
-
// Set the width and height.
|
|
35
|
-
canvas.width = canvasWidth;
|
|
36
|
-
canvas.height = canvasHeight;
|
|
37
|
-
// When the canvas sizes are 0 we have failed.
|
|
38
|
-
if (canvas?.width === 0 && canvas?.height === 0) {
|
|
39
|
-
return null;
|
|
40
|
-
}
|
|
41
|
-
// Check if dimensions where supplied, else create the image.
|
|
42
|
-
if (!options) {
|
|
43
|
-
// Draw the image.
|
|
44
|
-
context.drawImage(image, 0, 0);
|
|
45
|
-
// Convert the canvas to a data url.
|
|
46
|
-
return canvas.toDataURL(this._types[0]);
|
|
47
|
-
}
|
|
48
|
-
// Get the dimensions and offsets.
|
|
49
|
-
const { width, height, xOffset, yOffset } = this.calculateOffsetAndDimensions(image, canvasWidth, canvasHeight);
|
|
50
|
-
// Draw the image.
|
|
51
|
-
context.drawImage(image, 0, 0, image.width, image.height, xOffset, yOffset, width, height);
|
|
52
|
-
// Convert the canvas to a data url.
|
|
53
|
-
return canvas.toDataURL(this._types[0]);
|
|
54
|
-
}
|
|
55
|
-
async fileToImage(file, types = this._types) {
|
|
56
|
-
// Check if the file matches an image.
|
|
57
|
-
if (!types.includes(file.type)) {
|
|
58
|
-
throw new Error('The selected file does not meet the required format.');
|
|
59
|
-
}
|
|
60
|
-
let stripped = null;
|
|
61
|
-
try {
|
|
62
|
-
stripped = await this._exif.strip(file, 90);
|
|
63
|
-
}
|
|
64
|
-
catch {
|
|
65
|
-
// Do nothing.
|
|
66
|
-
}
|
|
67
|
-
// Ge the data uri.
|
|
68
|
-
const dataUri = await this._fileLoader.asDataUrl(stripped ?? file);
|
|
69
|
-
// Convert the data URI to a image element.
|
|
70
|
-
return await this.stringToImage(dataUri);
|
|
71
|
-
}
|
|
72
|
-
stringToImage(src) {
|
|
73
|
-
return new Promise((resolve, reject) => {
|
|
74
|
-
const image = new Image();
|
|
75
|
-
image.src = src;
|
|
76
|
-
image.onload = () => resolve(image);
|
|
77
|
-
image.onerror = error => reject(error);
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
async getImage(contents) {
|
|
81
|
-
// If the contents is already an HTML image element just return it.
|
|
82
|
-
if (contents instanceof HTMLImageElement) {
|
|
83
|
-
return contents;
|
|
84
|
-
}
|
|
85
|
-
// If the contents is a file convert it to an HTML image element.
|
|
86
|
-
if (contents instanceof File) {
|
|
87
|
-
return this.fileToImage(contents);
|
|
88
|
-
}
|
|
89
|
-
// If the contents is a string convert it to an HTML image element.
|
|
90
|
-
return this.stringToImage(contents);
|
|
91
|
-
}
|
|
92
|
-
calculateOffsetAndDimensions = (image, canvasWidth, canvasHeight) => {
|
|
93
|
-
const originalWidth = image.width;
|
|
94
|
-
const originalHeight = image.height;
|
|
95
|
-
const widthRatio = canvasWidth / originalWidth;
|
|
96
|
-
const heightRatio = canvasHeight / originalHeight;
|
|
97
|
-
let width;
|
|
98
|
-
let height;
|
|
99
|
-
if (originalWidth > originalHeight) {
|
|
100
|
-
height = originalHeight * heightRatio;
|
|
101
|
-
width = (originalWidth / originalHeight) * height;
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
width = originalWidth * widthRatio;
|
|
105
|
-
height = (originalHeight / originalWidth) * width;
|
|
106
|
-
}
|
|
107
|
-
let xOffset = 0;
|
|
108
|
-
let yOffset = 0;
|
|
109
|
-
if (canvasHeight === height) {
|
|
110
|
-
xOffset = -((width - canvasWidth) / 2);
|
|
111
|
-
}
|
|
112
|
-
else if (canvasWidth === width) {
|
|
113
|
-
yOffset = -((height - canvasHeight) / 2);
|
|
114
|
-
}
|
|
115
|
-
return { xOffset, yOffset, width, height };
|
|
116
|
-
};
|
|
117
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ImageConverter, deps: [{ token: i1.Exif }, { token: i2.Platform }, { token: i3.FileLoader }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
118
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ImageConverter, providedIn: 'root' });
|
|
119
|
-
}
|
|
120
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ImageConverter, decorators: [{
|
|
121
|
-
type: Injectable,
|
|
122
|
-
args: [{
|
|
123
|
-
providedIn: 'root'
|
|
124
|
-
}]
|
|
125
|
-
}], ctorParameters: () => [{ type: i1.Exif }, { type: i2.Platform }, { type: i3.FileLoader }] });
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtY29udmVydGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9pbWFnZS1jb252ZXJ0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7OztBQU16QyxNQUFNLE9BQU8sY0FBYztJQUtIO0lBQ0E7SUFDQTtJQUxwQixRQUFRO0lBQ1MsTUFBTSxHQUFHLENBQUMsV0FBVyxFQUFFLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQztJQUVwRSxZQUFvQixLQUFXLEVBQ1gsU0FBbUIsRUFDbkIsV0FBdUI7UUFGdkIsVUFBSyxHQUFMLEtBQUssQ0FBTTtRQUNYLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7SUFDM0MsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBMEMsRUFBRSxVQUFvRCxJQUFJO1FBQ2hILDhDQUE4QztRQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM1QixPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO1FBRUQsaUJBQWlCO1FBQ2pCLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU1QyxtQ0FBbUM7UUFDbkMsTUFBTSxXQUFXLEdBQUcsT0FBTyxFQUFFLEtBQUssSUFBSSxLQUFLLEVBQUUsS0FBSyxDQUFDO1FBQ25ELE1BQU0sWUFBWSxHQUFHLE9BQU8sRUFBRSxNQUFNLElBQUksS0FBSyxFQUFFLE1BQU0sQ0FBQztRQUV0RCw4QkFBOEI7UUFDOUIsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxNQUFNLE9B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QUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNDLENBQUM7YUFBTSxJQUFJLFdBQVcsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUMvQixPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFFRCxPQUFPLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLENBQUM7SUFDN0MsQ0FBQyxDQUFDO3dHQXBJTyxjQUFjOzRHQUFkLGNBQWMsY0FGWCxNQUFNOzs0RkFFVCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RmlsZUxvYWRlcn0gZnJvbSAnLi9maWxlLWxvYWRlci5zZXJ2aWNlJztcbmltcG9ydCB7UGxhdGZvcm19IGZyb20gJ0Bhbmd1bGFyL2Nkay9wbGF0Zm9ybSc7XG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFeGlmfSBmcm9tICcuL2V4aWYuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VDb252ZXJ0ZXIge1xuXG4gICAgLy8gRGF0YS5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF90eXBlcyA9IFsnaW1hZ2UvcG5nJywgJ2ltYWdlL2pwZWcnLCAnaW1hZ2Uvd2VicCddO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZXhpZjogRXhpZixcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9wbGF0Zm9ybTogUGxhdGZvcm0sXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfZmlsZUxvYWRlcjogRmlsZUxvYWRlcikge1xuICAgIH1cblxuICAgIGFzeW5jIHRvRGF0YVVyaShjb250ZW50czogc3RyaW5nIHwgRmlsZSB8IEhUTUxJbWFnZUVsZW1lbnQsIG9wdGlvbnM6IHsgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIgfSB8IG51bGwgPSBudWxsKSB7XG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSBjdXJyZW50IHBsYXRmb3JtIGlzIGEgYnJvd3Nlci5cbiAgICAgICAgaWYgKCF0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gR2V0IHRoZSBpbWFnZS5cbiAgICAgICAgY29uc3QgaW1hZ2UgPSBhd2FpdCB0aGlzLmdldEltYWdlKGNvbnRlbnRzKTtcblxuICAgICAgICAvLyBHZXQgdGhlIGNhbnZhcyB3aWR0aCBhbmQgaGVpZ2h0LlxuICAgICAgICBjb25zdCBjYW52YXNXaWR0aCA9IG9wdGlvbnM/LndpZHRoIHx8IGltYWdlPy53aWR0aDtcbiAgICAgICAgY29uc3QgY2FudmFzSGVpZ2h0ID0gb3B0aW9ucz8uaGVpZ2h0IHx8IGltYWdlPy5oZWlnaHQ7XG5cbiAgICAgICAgLy8gR2V0IHRoZSBjYW52YXMgYW5kIGNvbnRleHQuXG4gICAgICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG5cbiAgICAgICAgLy8gVmFsaWRhdGUgdGhlIGNvbnRleHQgZXhpc3RzLlxuICAgICAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2V0IHRoZSB3aWR0aCBhbmQgaGVpZ2h0LlxuICAgICAgICBjYW52YXMud2lkdGggPSBjYW52YXNXaWR0aDtcbiAgICAgICAgY2FudmFzLmhlaWdodCA9IGNhbnZhc0hlaWdodDtcblxuICAgICAgICAvLyBXaGVuIHRoZSBjYW52YXMgc2l6ZXMgYXJlIDAgd2UgaGF2ZSBmYWlsZWQuXG4gICAgICAgIGlmIChjYW52YXM/LndpZHRoID09PSAwICYmIGNhbnZhcz8uaGVpZ2h0ID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENoZWNrIGlmIGRpbWVuc2lvbnMgd2hlcmUgc3VwcGxpZWQsIGVsc2UgY3JlYXRlIHRoZSBpbWFnZS5cbiAgICAgICAgaWYgKCFvcHRpb25zKSB7XG4gICAgICAgICAgICAvLyBEcmF3IHRoZSBpbWFnZS5cbiAgICAgICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKGltYWdlLCAwLCAwKTtcblxuICAgICAgICAgICAgLy8gQ29udmVydCB0aGUgY2FudmFzIHRvIGEgZGF0YSB1cmwuXG4gICAgICAgICAgICByZXR1cm4gY2FudmFzLnRvRGF0YVVSTCh0aGlzLl90eXBlc1swXSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBHZXQgdGhlIGRpbWVuc2lvbnMgYW5kIG9mZnNldHMuXG4gICAgICAgIGNvbnN0IHt3aWR0aCwgaGVpZ2h0LCB4T2Zmc2V0LCB5T2Zmc2V0fSA9IHRoaXMuY2FsY3VsYXRlT2Zmc2V0QW5kRGltZW5zaW9ucyhpbWFnZSwgY2FudmFzV2lkdGgsIGNhbnZhc0hlaWdodCk7XG5cbiAgICAgICAgLy8gRHJhdyB0aGUgaW1hZ2UuXG4gICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKGltYWdlLCAwLCAwLCBpbWFnZS53aWR0aCwgaW1hZ2UuaGVpZ2h0LCB4T2Zmc2V0LCB5T2Zmc2V0LCB3aWR0aCwgaGVpZ2h0KTtcblxuICAgICAgICAvLyBDb252ZXJ0IHRoZSBjYW52YXMgdG8gYSBkYXRhIHVybC5cbiAgICAgICAgcmV0dXJuIGNhbnZhcy50b0RhdGFVUkwodGhpcy5fdHlwZXNbMF0pO1xuICAgIH1cblxuICAgIGFzeW5jIGZpbGVUb0ltYWdlKGZpbGU6IEZpbGUsIHR5cGVzOiBzdHJpbmdbXSA9IHRoaXMuX3R5cGVzKSB7XG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSBmaWxlIG1hdGNoZXMgYW4gaW1hZ2UuXG4gICAgICAgIGlmICghdHlwZXMuaW5jbHVkZXMoZmlsZS50eXBlKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgc2VsZWN0ZWQgZmlsZSBkb2VzIG5vdCBtZWV0IHRoZSByZXF1aXJlZCBmb3JtYXQuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgc3RyaXBwZWQ6IEZpbGUgfCBudWxsID0gbnVsbDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHN0cmlwcGVkID0gYXdhaXQgdGhpcy5fZXhpZi5zdHJpcChmaWxlLCA5MCk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgLy8gRG8gbm90aGluZy5cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEdlIHRoZSBkYXRhIHVyaS5cbiAgICAgICAgY29uc3QgZGF0YVVyaSA9IGF3YWl0IHRoaXMuX2ZpbGVMb2FkZXIuYXNEYXRhVXJsKHN0cmlwcGVkID8/IGZpbGUpO1xuXG4gICAgICAgIC8vIENvbnZlcnQgdGhlIGRhdGEgVVJJIHRvIGEgaW1hZ2UgZWxlbWVudC5cbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuc3RyaW5nVG9JbWFnZShkYXRhVXJpKTtcbiAgICB9XG5cbiAgICBzdHJpbmdUb0ltYWdlKHNyYzogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxIVE1MSW1hZ2VFbGVtZW50PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xuICAgICAgICAgICAgaW1hZ2Uuc3JjID0gc3JjO1xuICAgICAgICAgICAgaW1hZ2Uub25sb2FkID0gKCkgPT4gcmVzb2x2ZShpbWFnZSk7XG4gICAgICAgICAgICBpbWFnZS5vbmVycm9yID0gZXJyb3IgPT4gcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBnZXRJbWFnZShjb250ZW50czogc3RyaW5nIHwgRmlsZSB8IEhUTUxJbWFnZUVsZW1lbnQpIHtcbiAgICAgICAgLy8gSWYgdGhlIGNvbnRlbnRzIGlzIGFscmVhZHkgYW4gSFRNTCBpbWFnZSBlbGVtZW50IGp1c3QgcmV0dXJuIGl0LlxuICAgICAgICBpZiAoY29udGVudHMgaW5zdGFuY2VvZiBIVE1MSW1hZ2VFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gY29udGVudHM7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZiB0aGUgY29udGVudHMgaXMgYSBmaWxlIGNvbnZlcnQgaXQgdG8gYW4gSFRNTCBpbWFnZSBlbGVtZW50LlxuICAgICAgICBpZiAoY29udGVudHMgaW5zdGFuY2VvZiBGaWxlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5maWxlVG9JbWFnZShjb250ZW50cyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZiB0aGUgY29udGVudHMgaXMgYSBzdHJpbmcgY29udmVydCBpdCB0byBhbiBIVE1MIGltYWdlIGVsZW1lbnQuXG4gICAgICAgIHJldHVybiB0aGlzLnN0cmluZ1RvSW1hZ2UoY29udGVudHMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlT2Zmc2V0QW5kRGltZW5zaW9ucyA9IChpbWFnZTogSFRNTEltYWdlRWxlbWVudCwgY2FudmFzV2lkdGg6IG51bWJlciwgY2FudmFzSGVpZ2h0OiBudW1iZXIpID0+IHtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxXaWR0aCA9IGltYWdlLndpZHRoO1xuICAgICAgICBjb25zdCBvcmlnaW5hbEhlaWdodCA9IGltYWdlLmhlaWdodDtcblxuICAgICAgICBjb25zdCB3aWR0aFJhdGlvID0gY2FudmFzV2lkdGggLyBvcmlnaW5hbFdpZHRoO1xuICAgICAgICBjb25zdCBoZWlnaHRSYXRpbyA9IGNhbnZhc0hlaWdodCAvIG9yaWdpbmFsSGVpZ2h0O1xuXG4gICAgICAgIGxldCB3aWR0aDogbnVtYmVyO1xuICAgICAgICBsZXQgaGVpZ2h0OiBudW1iZXI7XG5cbiAgICAgICAgaWYgKG9yaWdpbmFsV2lkdGggPiBvcmlnaW5hbEhlaWdodCkge1xuICAgICAgICAgICAgaGVpZ2h0ID0gb3JpZ2luYWxIZWlnaHQgKiBoZWlnaHRSYXRpbztcbiAgICAgICAgICAgIHdpZHRoID0gKG9yaWdpbmFsV2lkdGggLyBvcmlnaW5hbEhlaWdodCkgKiBoZWlnaHQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3aWR0aCA9IG9yaWdpbmFsV2lkdGggKiB3aWR0aFJhdGlvO1xuICAgICAgICAgICAgaGVpZ2h0ID0gKG9yaWdpbmFsSGVpZ2h0IC8gb3JpZ2luYWxXaWR0aCkgKiB3aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCB4T2Zmc2V0ID0gMDtcbiAgICAgICAgbGV0IHlPZmZzZXQgPSAwO1xuXG4gICAgICAgIGlmIChjYW52YXNIZWlnaHQgPT09IGhlaWdodCkge1xuICAgICAgICAgICAgeE9mZnNldCA9IC0oKHdpZHRoIC0gY2FudmFzV2lkdGgpIC8gMik7XG4gICAgICAgIH0gZWxzZSBpZiAoY2FudmFzV2lkdGggPT09IHdpZHRoKSB7XG4gICAgICAgICAgICB5T2Zmc2V0ID0gLSgoaGVpZ2h0IC0gY2FudmFzSGVpZ2h0KSAvIDIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHt4T2Zmc2V0LCB5T2Zmc2V0LCB3aWR0aCwgaGVpZ2h0fTtcbiAgICB9O1xuXG59XG4iXX0=
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { ACCEPT_LANGUAGE } from '../tokens/accept-language.token';
|
|
2
|
-
import { Inject, Injectable, Optional } from '@angular/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class Languages {
|
|
5
|
-
_acceptLanguage;
|
|
6
|
-
// Data.
|
|
7
|
-
_data = [];
|
|
8
|
-
constructor(_acceptLanguage) {
|
|
9
|
-
this._acceptLanguage = _acceptLanguage;
|
|
10
|
-
this._data = this.initialize();
|
|
11
|
-
}
|
|
12
|
-
get all() {
|
|
13
|
-
return this._data;
|
|
14
|
-
}
|
|
15
|
-
initialize() {
|
|
16
|
-
// Get the languages.
|
|
17
|
-
const data = this.getLanguages();
|
|
18
|
-
// Parse all languages by using a regex.
|
|
19
|
-
const strings = (data || '')
|
|
20
|
-
.match(/((([a-zA-Z]+(-[a-zA-Z0-9]+){0,2})|\*)(;q=[0-1](\.[0-9]+)?)?)*/g);
|
|
21
|
-
// Get the content by parsing the strings.
|
|
22
|
-
const content = strings.map(item => {
|
|
23
|
-
if (!item) {
|
|
24
|
-
return null;
|
|
25
|
-
}
|
|
26
|
-
const bits = item.split(';');
|
|
27
|
-
const ietf = bits[0].split('-');
|
|
28
|
-
const hasScript = ietf.length === 3;
|
|
29
|
-
return {
|
|
30
|
-
code: ietf[0],
|
|
31
|
-
script: hasScript ? ietf[1] : null,
|
|
32
|
-
region: hasScript ? ietf[2] : ietf[1],
|
|
33
|
-
quality: bits[1] ? parseFloat(bits[1].split('=')[1]) : 1.0
|
|
34
|
-
};
|
|
35
|
-
});
|
|
36
|
-
// Filter out all the empty items
|
|
37
|
-
// and sort them by the quality.
|
|
38
|
-
return content
|
|
39
|
-
.filter(item => !!item)
|
|
40
|
-
.sort((a, b) => b.quality - a.quality);
|
|
41
|
-
}
|
|
42
|
-
getLanguages = () => {
|
|
43
|
-
// If defined we must be in a server environment.
|
|
44
|
-
if (this._acceptLanguage) {
|
|
45
|
-
return this._acceptLanguage;
|
|
46
|
-
}
|
|
47
|
-
// Try to get the languages from the navigator.
|
|
48
|
-
if (typeof navigator !== 'object') {
|
|
49
|
-
return null;
|
|
50
|
-
}
|
|
51
|
-
let t = 'anguage';
|
|
52
|
-
let n = navigator;
|
|
53
|
-
let f = n['l' + t + 's'];
|
|
54
|
-
const data = f && f.length ? f : (t = n['l' + t] ||
|
|
55
|
-
n['browserL' + t] ||
|
|
56
|
-
n['userL' + t]) ? [t] : t;
|
|
57
|
-
return typeof data === 'string'
|
|
58
|
-
? data
|
|
59
|
-
: data.join(';');
|
|
60
|
-
};
|
|
61
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: Languages, deps: [{ token: ACCEPT_LANGUAGE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
62
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: Languages, providedIn: 'root' });
|
|
63
|
-
}
|
|
64
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: Languages, decorators: [{
|
|
65
|
-
type: Injectable,
|
|
66
|
-
args: [{
|
|
67
|
-
providedIn: 'root'
|
|
68
|
-
}]
|
|
69
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
70
|
-
type: Optional
|
|
71
|
-
}, {
|
|
72
|
-
type: Inject,
|
|
73
|
-
args: [ACCEPT_LANGUAGE]
|
|
74
|
-
}] }] });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2VzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9sYW5ndWFnZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQUszRCxNQUFNLE9BQU8sU0FBUztJQUt1QztJQUh6RCxRQUFRO0lBQ1MsS0FBSyxHQUEwRSxFQUFFLENBQUM7SUFFbkcsWUFBeUQsZUFBd0I7UUFBeEIsb0JBQWUsR0FBZixlQUFlLENBQVM7UUFDN0UsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQUksR0FBRztRQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRU8sVUFBVTtRQUNkLHFCQUFxQjtRQUNyQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFakMsd0NBQXdDO1FBQ3hDLE1BQU0sT0FBTyxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQzthQUN2QixLQUFLLENBQUMsZ0VBQWdFLENBQUMsQ0FBQztRQUU3RSwwQ0FBMEM7UUFDMUMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ1IsT0FBTyxJQUFJLENBQUM7WUFDaEIsQ0FBQztZQUVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDN0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztZQUVwQyxPQUFPO2dCQUNILElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUNiLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtnQkFDbEMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUNyQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHO2FBQzdELENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztRQUVILGlDQUFpQztRQUNqQyxnQ0FBZ0M7UUFDaEMsT0FBTyxPQUFPO2FBQ1QsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzthQUN0QixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU8sWUFBWSxHQUFHLEdBQUcsRUFBRTtRQUN4QixpREFBaUQ7UUFDakQsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQ2hDLENBQUM7UUFFRCwrQ0FBK0M7UUFDL0MsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNoQyxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO1FBRUQsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQztRQUNsQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUV6QixNQUFNLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztZQUM1QyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztZQUNqQixDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU5QixPQUFPLE9BQU8sSUFBSSxLQUFLLFFBQVE7WUFDM0IsQ0FBQyxDQUFDLElBQUk7WUFDTixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDLENBQUM7d0dBcEVPLFNBQVMsa0JBS2MsZUFBZTs0R0FMdEMsU0FBUyxjQUZOLE1BQU07OzRGQUVULFNBQVM7a0JBSHJCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFNZ0IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBQ0NFUFRfTEFOR1VBR0V9IGZyb20gJy4uL3Rva2Vucy9hY2NlcHQtbGFuZ3VhZ2UudG9rZW4nO1xuaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBMYW5ndWFnZXMge1xuXG4gICAgLy8gRGF0YS5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kYXRhOiB7IGNvZGU6IHN0cmluZywgc2NyaXB0Pzogc3RyaW5nLCByZWdpb24/OiBzdHJpbmcsIHF1YWxpdHk6IG51bWJlciB9W10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoQUNDRVBUX0xBTkdVQUdFKSBwcml2YXRlIF9hY2NlcHRMYW5ndWFnZT86IHN0cmluZykge1xuICAgICAgICB0aGlzLl9kYXRhID0gdGhpcy5pbml0aWFsaXplKCk7XG4gICAgfVxuXG4gICAgZ2V0IGFsbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplKCkge1xuICAgICAgICAvLyBHZXQgdGhlIGxhbmd1YWdlcy5cbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZ2V0TGFuZ3VhZ2VzKCk7XG5cbiAgICAgICAgLy8gUGFyc2UgYWxsIGxhbmd1YWdlcyBieSB1c2luZyBhIHJlZ2V4LlxuICAgICAgICBjb25zdCBzdHJpbmdzID0gKGRhdGEgfHwgJycpXG4gICAgICAgICAgICAubWF0Y2goLygoKFthLXpBLVpdKygtW2EtekEtWjAtOV0rKXswLDJ9KXxcXCopKDtxPVswLTFdKFxcLlswLTldKyk/KT8pKi9nKTtcblxuICAgICAgICAvLyBHZXQgdGhlIGNvbnRlbnQgYnkgcGFyc2luZyB0aGUgc3RyaW5ncy5cbiAgICAgICAgY29uc3QgY29udGVudCA9IHN0cmluZ3MubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgICAgaWYgKCFpdGVtKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGJpdHMgPSBpdGVtLnNwbGl0KCc7Jyk7XG4gICAgICAgICAgICBjb25zdCBpZXRmID0gYml0c1swXS5zcGxpdCgnLScpO1xuICAgICAgICAgICAgY29uc3QgaGFzU2NyaXB0ID0gaWV0Zi5sZW5ndGggPT09IDM7XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgY29kZTogaWV0ZlswXSxcbiAgICAgICAgICAgICAgICBzY3JpcHQ6IGhhc1NjcmlwdCA/IGlldGZbMV0gOiBudWxsLFxuICAgICAgICAgICAgICAgIHJlZ2lvbjogaGFzU2NyaXB0ID8gaWV0ZlsyXSA6IGlldGZbMV0sXG4gICAgICAgICAgICAgICAgcXVhbGl0eTogYml0c1sxXSA/IHBhcnNlRmxvYXQoYml0c1sxXS5zcGxpdCgnPScpWzFdKSA6IDEuMFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gRmlsdGVyIG91dCBhbGwgdGhlIGVtcHR5IGl0ZW1zXG4gICAgICAgIC8vIGFuZCBzb3J0IHRoZW0gYnkgdGhlIHF1YWxpdHkuXG4gICAgICAgIHJldHVybiBjb250ZW50XG4gICAgICAgICAgICAuZmlsdGVyKGl0ZW0gPT4gISFpdGVtKVxuICAgICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGIucXVhbGl0eSAtIGEucXVhbGl0eSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRMYW5ndWFnZXMgPSAoKSA9PiB7XG4gICAgICAgIC8vIElmIGRlZmluZWQgd2UgbXVzdCBiZSBpbiBhIHNlcnZlciBlbnZpcm9ubWVudC5cbiAgICAgICAgaWYgKHRoaXMuX2FjY2VwdExhbmd1YWdlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fYWNjZXB0TGFuZ3VhZ2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUcnkgdG8gZ2V0IHRoZSBsYW5ndWFnZXMgZnJvbSB0aGUgbmF2aWdhdG9yLlxuICAgICAgICBpZiAodHlwZW9mIG5hdmlnYXRvciAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHQgPSAnYW5ndWFnZSc7XG4gICAgICAgIGxldCBuID0gbmF2aWdhdG9yO1xuICAgICAgICBsZXQgZiA9IG5bJ2wnICsgdCArICdzJ107XG5cbiAgICAgICAgY29uc3QgZGF0YSA9IGYgJiYgZi5sZW5ndGggPyBmIDogKHQgPSBuWydsJyArIHRdIHx8XG4gICAgICAgICAgICBuWydicm93c2VyTCcgKyB0XSB8fFxuICAgICAgICAgICAgblsndXNlckwnICsgdF0pID8gW3RdIDogdDtcblxuICAgICAgICByZXR1cm4gdHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICA/IGRhdGFcbiAgICAgICAgICAgIDogZGF0YS5qb2luKCc7Jyk7XG4gICAgfTtcblxufVxuIl19
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { distinctUntilChanged, map, shareReplay } from 'rxjs/operators';
|
|
2
|
-
import { Inject, Injectable, Optional } from '@angular/core';
|
|
3
|
-
import { fromEvent, merge, Observable, of } from 'rxjs';
|
|
4
|
-
import { NAVIGATOR } from '../tokens/navigator.token';
|
|
5
|
-
import { WINDOW } from '../tokens/window.token';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/cdk/platform";
|
|
8
|
-
export class Network {
|
|
9
|
-
_platform;
|
|
10
|
-
_window;
|
|
11
|
-
_navigator;
|
|
12
|
-
// Data.
|
|
13
|
-
_online$ = of(true);
|
|
14
|
-
constructor(_platform, _window, _navigator) {
|
|
15
|
-
this._platform = _platform;
|
|
16
|
-
this._window = _window;
|
|
17
|
-
this._navigator = _navigator;
|
|
18
|
-
this.getOnlineObservable();
|
|
19
|
-
}
|
|
20
|
-
online() {
|
|
21
|
-
return this._online$;
|
|
22
|
-
}
|
|
23
|
-
getOnlineObservable() {
|
|
24
|
-
// Validate we are on a browser.
|
|
25
|
-
if (!this._platform.isBrowser) {
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
// Get all the events from the window.
|
|
29
|
-
const online$ = fromEvent(this._window, 'online').pipe(map(() => true));
|
|
30
|
-
const offline$ = fromEvent(this._window, 'offline').pipe(map(() => false));
|
|
31
|
-
const now$ = new Observable(subscriber => {
|
|
32
|
-
subscriber.next(this._navigator?.onLine);
|
|
33
|
-
subscriber.complete();
|
|
34
|
-
});
|
|
35
|
-
// Merge all event so we get notified when
|
|
36
|
-
// a user is online/offline.
|
|
37
|
-
this._online$ = merge(now$, online$, offline$).pipe(distinctUntilChanged(), shareReplay({ refCount: true, bufferSize: 1 }));
|
|
38
|
-
}
|
|
39
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: Network, deps: [{ token: i1.Platform }, { token: WINDOW, optional: true }, { token: NAVIGATOR, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
40
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: Network, providedIn: 'root' });
|
|
41
|
-
}
|
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: Network, decorators: [{
|
|
43
|
-
type: Injectable,
|
|
44
|
-
args: [{
|
|
45
|
-
providedIn: 'root'
|
|
46
|
-
}]
|
|
47
|
-
}], ctorParameters: () => [{ type: i1.Platform }, { type: Window, decorators: [{
|
|
48
|
-
type: Optional
|
|
49
|
-
}, {
|
|
50
|
-
type: Inject,
|
|
51
|
-
args: [WINDOW]
|
|
52
|
-
}] }, { type: Navigator, decorators: [{
|
|
53
|
-
type: Optional
|
|
54
|
-
}, {
|
|
55
|
-
type: Inject,
|
|
56
|
-
args: [NAVIGATOR]
|
|
57
|
-
}] }] });
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9zcmMvbGliL2NvcmUvc2VydmljZXMvbmV0d29yay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEUsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDdEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRXBELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBSzlDLE1BQU0sT0FBTyxPQUFPO0lBS0k7SUFDNEI7SUFDRztJQUxuRCxRQUFRO0lBQ0EsUUFBUSxHQUF3QixFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFakQsWUFBb0IsU0FBbUIsRUFDUyxPQUFnQixFQUNiLFVBQXNCO1FBRnJELGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDUyxZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2IsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNyRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsTUFBTTtRQUNGLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRU8sbUJBQW1CO1FBQ3ZCLGdDQUFnQztRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM1QixPQUFPO1FBQ1gsQ0FBQztRQUVELHNDQUFzQztRQUN0QyxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDeEUsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzNFLE1BQU0sSUFBSSxHQUFHLElBQUksVUFBVSxDQUFVLFVBQVUsQ0FBQyxFQUFFO1lBQzlDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN6QyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFFSCwwQ0FBMEM7UUFDMUMsNEJBQTRCO1FBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUMvQyxvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUMvQyxDQUFDO0lBQ04sQ0FBQzt3R0FuQ1EsT0FBTywwQ0FNZ0IsTUFBTSw2QkFDTixTQUFTOzRHQVBoQyxPQUFPLGNBRkosTUFBTTs7NEZBRVQsT0FBTztrQkFIbkIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQU9nQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLE1BQU07OzBCQUN6QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2Rpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlUmVwbGF5fSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtmcm9tRXZlbnQsIG1lcmdlLCBPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge05BVklHQVRPUn0gZnJvbSAnLi4vdG9rZW5zL25hdmlnYXRvci50b2tlbic7XG5pbXBvcnQge1BsYXRmb3JtfSBmcm9tICdAYW5ndWxhci9jZGsvcGxhdGZvcm0nO1xuaW1wb3J0IHtXSU5ET1d9IGZyb20gJy4uL3Rva2Vucy93aW5kb3cudG9rZW4nO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE5ldHdvcmsge1xuXG4gICAgLy8gRGF0YS5cbiAgICBwcml2YXRlIF9vbmxpbmUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gb2YodHJ1ZSk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9wbGF0Zm9ybTogUGxhdGZvcm0sXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChXSU5ET1cpIHByaXZhdGUgX3dpbmRvdz86IFdpbmRvdyxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE5BVklHQVRPUikgcHJpdmF0ZSBfbmF2aWdhdG9yPzogTmF2aWdhdG9yKSB7XG4gICAgICAgIHRoaXMuZ2V0T25saW5lT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIG9ubGluZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29ubGluZSQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRPbmxpbmVPYnNlcnZhYmxlKCkge1xuICAgICAgICAvLyBWYWxpZGF0ZSB3ZSBhcmUgb24gYSBicm93c2VyLlxuICAgICAgICBpZiAoIXRoaXMuX3BsYXRmb3JtLmlzQnJvd3Nlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gR2V0IGFsbCB0aGUgZXZlbnRzIGZyb20gdGhlIHdpbmRvdy5cbiAgICAgICAgY29uc3Qgb25saW5lJCA9IGZyb21FdmVudCh0aGlzLl93aW5kb3csICdvbmxpbmUnKS5waXBlKG1hcCgoKSA9PiB0cnVlKSk7XG4gICAgICAgIGNvbnN0IG9mZmxpbmUkID0gZnJvbUV2ZW50KHRoaXMuX3dpbmRvdywgJ29mZmxpbmUnKS5waXBlKG1hcCgoKSA9PiBmYWxzZSkpO1xuICAgICAgICBjb25zdCBub3ckID0gbmV3IE9ic2VydmFibGU8Ym9vbGVhbj4oc3Vic2NyaWJlciA9PiB7XG4gICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodGhpcy5fbmF2aWdhdG9yPy5vbkxpbmUpO1xuICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBNZXJnZSBhbGwgZXZlbnQgc28gd2UgZ2V0IG5vdGlmaWVkIHdoZW5cbiAgICAgICAgLy8gYSB1c2VyIGlzIG9ubGluZS9vZmZsaW5lLlxuICAgICAgICB0aGlzLl9vbmxpbmUkID0gbWVyZ2Uobm93JCwgb25saW5lJCwgb2ZmbGluZSQpLnBpcGUoXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgICAgc2hhcmVSZXBsYXkoe3JlZkNvdW50OiB0cnVlLCBidWZmZXJTaXplOiAxfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbn1cbiJdfQ==
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable, Optional } from '@angular/core';
|
|
2
|
-
import { debounceTime, startWith } from 'rxjs/operators';
|
|
3
|
-
import { WINDOW } from '../tokens/window.token';
|
|
4
|
-
import { fromEvent, Subscription } from 'rxjs';
|
|
5
|
-
import { DOCUMENT } from '@angular/common';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/cdk/platform";
|
|
8
|
-
export class Patch {
|
|
9
|
-
_platform;
|
|
10
|
-
_window;
|
|
11
|
-
_document;
|
|
12
|
-
_hasPatchedMobileVerticalHeight = false;
|
|
13
|
-
// Subscriptions.
|
|
14
|
-
_subscription = new Subscription();
|
|
15
|
-
constructor(_platform, _window, _document) {
|
|
16
|
-
this._platform = _platform;
|
|
17
|
-
this._window = _window;
|
|
18
|
-
this._document = _document;
|
|
19
|
-
}
|
|
20
|
-
mobileVerticalHeight() {
|
|
21
|
-
// Check if the user has already patched
|
|
22
|
-
// the mobile vertical height.
|
|
23
|
-
if (this._hasPatchedMobileVerticalHeight) {
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
this.periodicallySetDocumentVerticalProperty();
|
|
27
|
-
this._hasPatchedMobileVerticalHeight = true;
|
|
28
|
-
}
|
|
29
|
-
ngOnDestroy() {
|
|
30
|
-
this._subscription?.unsubscribe();
|
|
31
|
-
}
|
|
32
|
-
periodicallySetDocumentVerticalProperty() {
|
|
33
|
-
// Validate we are using a browser.
|
|
34
|
-
if (!this._platform.isBrowser) {
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
// Listen to a debounced window resize event.
|
|
38
|
-
const resize$ = fromEvent(this._window, 'resize').pipe(debounceTime(25), startWith(0));
|
|
39
|
-
// Subscribe to the resize observable.
|
|
40
|
-
const subscription = resize$.subscribe(() => {
|
|
41
|
-
const verticalHeight = this._window?.innerHeight * 0.01;
|
|
42
|
-
this._document?.documentElement?.style?.setProperty('--vh', `${verticalHeight}px`);
|
|
43
|
-
});
|
|
44
|
-
// Save the subscription so we can destroy it later.
|
|
45
|
-
this._subscription.add(subscription);
|
|
46
|
-
}
|
|
47
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: Patch, deps: [{ token: i1.Platform }, { token: WINDOW, optional: true }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
48
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: Patch, providedIn: 'root' });
|
|
49
|
-
}
|
|
50
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: Patch, decorators: [{
|
|
51
|
-
type: Injectable,
|
|
52
|
-
args: [{
|
|
53
|
-
providedIn: 'root'
|
|
54
|
-
}]
|
|
55
|
-
}], ctorParameters: () => [{ type: i1.Platform }, { type: Window, decorators: [{
|
|
56
|
-
type: Optional
|
|
57
|
-
}, {
|
|
58
|
-
type: Inject,
|
|
59
|
-
args: [WINDOW]
|
|
60
|
-
}] }, { type: Document, decorators: [{
|
|
61
|
-
type: Optional
|
|
62
|
-
}, {
|
|
63
|
-
type: Inject,
|
|
64
|
-
args: [DOCUMENT]
|
|
65
|
-
}] }] });
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0Y2guc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vc3JjL2xpYi9jb3JlL3NlcnZpY2VzL3BhdGNoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQWEsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxZQUFZLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzlDLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBS3pDLE1BQU0sT0FBTyxLQUFLO0lBT007SUFDNEI7SUFDRTtJQVAxQywrQkFBK0IsR0FBWSxLQUFLLENBQUM7SUFFekQsaUJBQWlCO0lBQ1QsYUFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFFM0MsWUFBb0IsU0FBbUIsRUFDUyxPQUFnQixFQUNkLFNBQW9CO1FBRmxELGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDUyxZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2QsY0FBUyxHQUFULFNBQVMsQ0FBVztJQUN0RSxDQUFDO0lBRUQsb0JBQW9CO1FBQ2hCLHdDQUF3QztRQUN4Qyw4QkFBOEI7UUFDOUIsSUFBSSxJQUFJLENBQUMsK0JBQStCLEVBQUUsQ0FBQztZQUN2QyxPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyx1Q0FBdUMsRUFBRSxDQUFDO1FBQy9DLElBQUksQ0FBQywrQkFBK0IsR0FBRyxJQUFJLENBQUM7SUFDaEQsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTyx1Q0FBdUM7UUFDM0MsbUNBQW1DO1FBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzVCLE9BQU87UUFDWCxDQUFDO1FBRUQsNkNBQTZDO1FBQzdDLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDbEQsWUFBWSxDQUFDLEVBQUUsQ0FBQyxFQUNoQixTQUFTLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztRQUVGLHNDQUFzQztRQUN0QyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN4QyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLFdBQVcsR0FBRyxJQUFJLENBQUM7WUFDeEQsSUFBSSxDQUFDLFNBQVMsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxjQUFjLElBQUksQ0FBQyxDQUFDO1FBQ3ZGLENBQUMsQ0FBQyxDQUFDO1FBRUgsb0RBQW9EO1FBQ3BELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7d0dBL0NRLEtBQUssMENBUWtCLE1BQU0sNkJBQ04sUUFBUTs0R0FUL0IsS0FBSyxjQUZGLE1BQU07OzRGQUVULEtBQUs7a0JBSGpCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFTZ0IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxNQUFNOzswQkFDekIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGUsIE9uRGVzdHJveSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIHN0YXJ0V2l0aH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtQbGF0Zm9ybX0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BsYXRmb3JtJztcbmltcG9ydCB7V0lORE9XfSBmcm9tICcuLi90b2tlbnMvd2luZG93LnRva2VuJztcbmltcG9ydCB7ZnJvbUV2ZW50LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQYXRjaCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgICBwcml2YXRlIF9oYXNQYXRjaGVkTW9iaWxlVmVydGljYWxIZWlnaHQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8vIFN1YnNjcmlwdGlvbnMuXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfcGxhdGZvcm06IFBsYXRmb3JtLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoV0lORE9XKSBwcml2YXRlIF93aW5kb3c/OiBXaW5kb3csXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBfZG9jdW1lbnQ/OiBEb2N1bWVudCkge1xuICAgIH1cblxuICAgIG1vYmlsZVZlcnRpY2FsSGVpZ2h0KCkge1xuICAgICAgICAvLyBDaGVjayBpZiB0aGUgdXNlciBoYXMgYWxyZWFkeSBwYXRjaGVkXG4gICAgICAgIC8vIHRoZSBtb2JpbGUgdmVydGljYWwgaGVpZ2h0LlxuICAgICAgICBpZiAodGhpcy5faGFzUGF0Y2hlZE1vYmlsZVZlcnRpY2FsSGVpZ2h0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnBlcmlvZGljYWxseVNldERvY3VtZW50VmVydGljYWxQcm9wZXJ0eSgpO1xuICAgICAgICB0aGlzLl9oYXNQYXRjaGVkTW9iaWxlVmVydGljYWxIZWlnaHQgPSB0cnVlO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwZXJpb2RpY2FsbHlTZXREb2N1bWVudFZlcnRpY2FsUHJvcGVydHkoKSB7XG4gICAgICAgIC8vIFZhbGlkYXRlIHdlIGFyZSB1c2luZyBhIGJyb3dzZXIuXG4gICAgICAgIGlmICghdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMaXN0ZW4gdG8gYSBkZWJvdW5jZWQgd2luZG93IHJlc2l6ZSBldmVudC5cbiAgICAgICAgY29uc3QgcmVzaXplJCA9IGZyb21FdmVudCh0aGlzLl93aW5kb3csICdyZXNpemUnKS5waXBlKFxuICAgICAgICAgICAgZGVib3VuY2VUaW1lKDI1KSxcbiAgICAgICAgICAgIHN0YXJ0V2l0aCgwKVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIFN1YnNjcmliZSB0byB0aGUgcmVzaXplIG9ic2VydmFibGUuXG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHJlc2l6ZSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZlcnRpY2FsSGVpZ2h0ID0gdGhpcy5fd2luZG93Py5pbm5lckhlaWdodCAqIDAuMDE7XG4gICAgICAgICAgICB0aGlzLl9kb2N1bWVudD8uZG9jdW1lbnRFbGVtZW50Py5zdHlsZT8uc2V0UHJvcGVydHkoJy0tdmgnLCBgJHt2ZXJ0aWNhbEhlaWdodH1weGApO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBTYXZlIHRoZSBzdWJzY3JpcHRpb24gc28gd2UgY2FuIGRlc3Ryb3kgaXQgbGF0ZXIuXG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoc3Vic2NyaXB0aW9uKTtcbiAgICB9XG5cbn1cbiJdfQ==
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
export const ACCEPT_LANGUAGE = new InjectionToken('AcceptLanguage');
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXB0LWxhbmd1YWdlLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9zcmMvbGliL2NvcmUvdG9rZW5zL2FjY2VwdC1sYW5ndWFnZS50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTdDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FBUyxnQkFBZ0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3Rpb25Ub2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBBQ0NFUFRfTEFOR1VBR0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignQWNjZXB0TGFuZ3VhZ2UnKTtcbiJdfQ==
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
export const BASE_URL = new InjectionToken('BaseUrl');
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS11cmwudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL3NyYy9saWIvY29yZS90b2tlbnMvYmFzZS11cmwudG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU3QyxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxjQUFjLENBQVMsU0FBUyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IEJBU0VfVVJMID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0Jhc2VVcmwnKTtcbiJdfQ==
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
export const COOKIE = new InjectionToken('Cookie');
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9zcmMvbGliL2NvcmUvdG9rZW5zL2Nvb2tpZS50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTdDLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGNBQWMsQ0FBUyxRQUFRLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0aW9uVG9rZW59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgQ09PS0lFID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0Nvb2tpZScpO1xuIl19
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { InjectionToken, makeEnvironmentProviders } from '@angular/core';
|
|
2
|
-
export const GLOBAL_FOCUS_MODE = new InjectionToken('The focus mode', {
|
|
3
|
-
factory: () => 'only-desktop'
|
|
4
|
-
});
|
|
5
|
-
export function provideGlobalFocusMode(mode) {
|
|
6
|
-
return makeEnvironmentProviders([
|
|
7
|
-
{ provide: GLOBAL_FOCUS_MODE, useValue: mode }
|
|
8
|
-
]);
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWZvY3VzLW1vZGUudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL3NyYy9saWIvY29yZS90b2tlbnMvZ2xvYmFsLWZvY3VzLW1vZGUudG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixjQUFjLEVBQUUsd0JBQXdCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFJN0YsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQy9DLGdCQUFnQixFQUNoQjtJQUNJLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxjQUFjO0NBQ2hDLENBQ0osQ0FBQztBQUVGLE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxJQUFlO0lBQ2xELE9BQU8sd0JBQXdCLENBQUM7UUFDNUIsRUFBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQztLQUMvQyxDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFbnZpcm9ubWVudFByb3ZpZGVycywgSW5qZWN0aW9uVG9rZW4sIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVyc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCB0eXBlIEZvY3VzTW9kZSA9ICdvbmx5LWRlc2t0b3AnIHwgJ2FsbCc7XG5cbmV4cG9ydCBjb25zdCBHTE9CQUxfRk9DVVNfTU9ERSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxGb2N1c01vZGU+KFxuICAgICdUaGUgZm9jdXMgbW9kZScsXG4gICAge1xuICAgICAgICBmYWN0b3J5OiAoKSA9PiAnb25seS1kZXNrdG9wJ1xuICAgIH1cbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlR2xvYmFsRm9jdXNNb2RlKG1vZGU6IEZvY3VzTW9kZSk6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICAgICAge3Byb3ZpZGU6IEdMT0JBTF9GT0NVU19NT0RFLCB1c2VWYWx1ZTogbW9kZX1cbiAgICBdKTtcbn1cbiJdfQ==
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { inject, InjectionToken } from '@angular/core';
|
|
2
|
-
import { WINDOW } from './window.token';
|
|
3
|
-
export const LOCATION = new InjectionToken('An abstraction over window.location object', {
|
|
4
|
-
factory: () => inject(WINDOW).location
|
|
5
|
-
});
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYXRpb24udG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL3NyYy9saWIvY29yZS90b2tlbnMvbG9jYXRpb24udG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXRDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxJQUFJLGNBQWMsQ0FDdEMsNENBQTRDLEVBQzVDO0lBQ0ksT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRO0NBQ3pDLENBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aW5qZWN0LCBJbmplY3Rpb25Ub2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1dJTkRPV30gZnJvbSAnLi93aW5kb3cudG9rZW4nO1xuXG5leHBvcnQgY29uc3QgTE9DQVRJT04gPSBuZXcgSW5qZWN0aW9uVG9rZW48TG9jYXRpb24+KFxuICAgICdBbiBhYnN0cmFjdGlvbiBvdmVyIHdpbmRvdy5sb2NhdGlvbiBvYmplY3QnLFxuICAgIHtcbiAgICAgICAgZmFjdG9yeTogKCkgPT4gaW5qZWN0KFdJTkRPVykubG9jYXRpb25cbiAgICB9XG4pOyJdfQ==
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { inject, InjectionToken } from '@angular/core';
|
|
2
|
-
import { WINDOW } from './window.token';
|
|
3
|
-
export const NAVIGATOR = new InjectionToken('An abstraction over window.navigator object', {
|
|
4
|
-
factory: () => inject(WINDOW).navigator
|
|
5
|
-
});
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdG9yLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9zcmMvbGliL2NvcmUvdG9rZW5zL25hdmlnYXRvci50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEMsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLElBQUksY0FBYyxDQUN2Qyw2Q0FBNkMsRUFDN0M7SUFDSSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVM7Q0FDMUMsQ0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpbmplY3QsIEluamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7V0lORE9XfSBmcm9tICcuL3dpbmRvdy50b2tlbic7XG5cbmV4cG9ydCBjb25zdCBOQVZJR0FUT1IgPSBuZXcgSW5qZWN0aW9uVG9rZW48TmF2aWdhdG9yPihcbiAgICAnQW4gYWJzdHJhY3Rpb24gb3ZlciB3aW5kb3cubmF2aWdhdG9yIG9iamVjdCcsXG4gICAge1xuICAgICAgICBmYWN0b3J5OiAoKSA9PiBpbmplY3QoV0lORE9XKS5uYXZpZ2F0b3JcbiAgICB9XG4pOyJdfQ==
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { inject, InjectionToken } from '@angular/core';
|
|
2
|
-
import { DOCUMENT } from '@angular/common';
|
|
3
|
-
export const WINDOW = new InjectionToken('An abstraction over global window object', {
|
|
4
|
-
factory: () => {
|
|
5
|
-
const { defaultView } = inject(DOCUMENT);
|
|
6
|
-
if (!defaultView) {
|
|
7
|
-
throw new Error('Window is not available');
|
|
8
|
-
}
|
|
9
|
-
return defaultView;
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9zcmMvbGliL2NvcmUvdG9rZW5zL3dpbmRvdy50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFekMsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLElBQUksY0FBYyxDQUNwQywwQ0FBMEMsRUFDMUM7SUFDSSxPQUFPLEVBQUUsR0FBRyxFQUFFO1FBQ1YsTUFBTSxFQUFDLFdBQVcsRUFBQyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV2QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUVELE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7Q0FDSixDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2luamVjdCwgSW5qZWN0aW9uVG9rZW59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuZXhwb3J0IGNvbnN0IFdJTkRPVyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxXaW5kb3c+KFxuICAgICdBbiBhYnN0cmFjdGlvbiBvdmVyIGdsb2JhbCB3aW5kb3cgb2JqZWN0JyxcbiAgICB7XG4gICAgICAgIGZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHtkZWZhdWx0Vmlld30gPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gICAgICAgICAgICBpZiAoIWRlZmF1bHRWaWV3KSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdXaW5kb3cgaXMgbm90IGF2YWlsYWJsZScpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZGVmYXVsdFZpZXc7XG4gICAgICAgIH1cbiAgICB9XG4pOyJdfQ==
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public_api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhdm9iaXQtYmItZm91bmRhdGlvbi1sb2NhbGl6ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbG9jYWxpemUvc3JjL2JyYXZvYml0LWJiLWZvdW5kYXRpb24tbG9jYWxpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { LocalizeDictionaryContext } from './dictionary.context';
|
|
2
|
-
export class LocalizeDictionary {
|
|
3
|
-
_id;
|
|
4
|
-
_locale;
|
|
5
|
-
_supported;
|
|
6
|
-
_dataValues;
|
|
7
|
-
_localize;
|
|
8
|
-
_data;
|
|
9
|
-
constructor(_id, _locale, _supported, _dataValues, _localize) {
|
|
10
|
-
this._id = _id;
|
|
11
|
-
this._locale = _locale;
|
|
12
|
-
this._supported = _supported;
|
|
13
|
-
this._dataValues = _dataValues;
|
|
14
|
-
this._localize = _localize;
|
|
15
|
-
this._data = this.formatData(this._dataValues);
|
|
16
|
-
}
|
|
17
|
-
get id() {
|
|
18
|
-
return this._id ?? null;
|
|
19
|
-
}
|
|
20
|
-
get locale() {
|
|
21
|
-
return this._locale ?? null;
|
|
22
|
-
}
|
|
23
|
-
get supported() {
|
|
24
|
-
return this._supported ?? [];
|
|
25
|
-
}
|
|
26
|
-
get(token) {
|
|
27
|
-
const key = Array.isArray(token) ? token.join('.') : token;
|
|
28
|
-
return this._data?.[key] ?? null;
|
|
29
|
-
}
|
|
30
|
-
has(token) {
|
|
31
|
-
return !!this.get(token);
|
|
32
|
-
}
|
|
33
|
-
all() {
|
|
34
|
-
return this.some(context => context);
|
|
35
|
-
}
|
|
36
|
-
some(callback) {
|
|
37
|
-
const defaultContext = new LocalizeDictionaryContext();
|
|
38
|
-
const context = !!callback ? callback(defaultContext) : defaultContext;
|
|
39
|
-
return Object.keys(this._data ?? {})
|
|
40
|
-
.filter(key => context.regexp.test(key))
|
|
41
|
-
.reduce((previous, current) => ([
|
|
42
|
-
...previous,
|
|
43
|
-
{ token: current, value: this.get(current) }
|
|
44
|
-
]), []);
|
|
45
|
-
}
|
|
46
|
-
async compare(to) {
|
|
47
|
-
if ((typeof ngDevMode === 'undefined' || ngDevMode)) {
|
|
48
|
-
const dictionaryIds = (Array.isArray(to) ? to : [to]);
|
|
49
|
-
const dictionaries = [];
|
|
50
|
-
for (const dictionaryId of dictionaryIds) {
|
|
51
|
-
const dictionary = await this._localize.load(dictionaryId);
|
|
52
|
-
dictionaries.push(dictionary);
|
|
53
|
-
}
|
|
54
|
-
const warnings = [];
|
|
55
|
-
const items = this.all();
|
|
56
|
-
for (const item of items) {
|
|
57
|
-
for (const dictionary of dictionaries) {
|
|
58
|
-
if (!dictionary.has(item?.token)) {
|
|
59
|
-
warnings.push({ dictionary: dictionary?.id, value: item?.token });
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
for (const dictionary of dictionaries) {
|
|
64
|
-
const items = dictionary.all();
|
|
65
|
-
for (const item of items) {
|
|
66
|
-
if (!this.has(item?.token)) {
|
|
67
|
-
warnings.push({ dictionary: this.id, value: item?.token });
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
const compareDictionaryIds = dictionaries.map(dictionary => dictionary?.id).join(', ');
|
|
72
|
-
for (const warning of warnings) {
|
|
73
|
-
console?.warn?.(`Dictionary "${warning.dictionary}" is missing token "${warning.value}"`);
|
|
74
|
-
}
|
|
75
|
-
console?.warn?.(`Total of ${warnings.length} warning(s) found while comparing "${this.id}" -> [${compareDictionaryIds}].`);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
count() {
|
|
79
|
-
return Object.keys(this._data ?? {}).length;
|
|
80
|
-
}
|
|
81
|
-
formatData(data, scope = null) {
|
|
82
|
-
return Object.keys(data ?? {}).reduce((previous, current) => {
|
|
83
|
-
const value = data?.[current];
|
|
84
|
-
if (typeof value === 'object' && value !== null) {
|
|
85
|
-
const reformatted = this.formatData(value, current);
|
|
86
|
-
return { ...previous, ...reformatted };
|
|
87
|
-
}
|
|
88
|
-
const token = [scope, current].filter(item => !!item).join('.');
|
|
89
|
-
if (previous[token] && (typeof ngDevMode === 'undefined' || ngDevMode)) {
|
|
90
|
-
console?.warn?.(`Duplicate key "${token}" was found, please verify your translation files.`);
|
|
91
|
-
}
|
|
92
|
-
return { ...previous, [token]: value };
|
|
93
|
-
}, {});
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGljdGlvbmFyeS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbG9jYWxpemUvc3JjL2xpYi9kaWN0aW9uYXJ5L2RpY3Rpb25hcnkuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFLL0QsTUFBTSxPQUFPLGtCQUFrQjtJQUlQO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFOSCxLQUFLLENBQXlCO0lBRS9DLFlBQW9CLEdBQVcsRUFDWCxPQUFlLEVBQ2YsVUFBb0IsRUFDcEIsV0FBeUMsRUFDekMsU0FBbUI7UUFKbkIsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUNYLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixlQUFVLEdBQVYsVUFBVSxDQUFVO1FBQ3BCLGdCQUFXLEdBQVgsV0FBVyxDQUE4QjtRQUN6QyxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25DLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELElBQUksRUFBRTtRQUNGLE9BQU8sSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELEdBQUcsQ0FBQyxLQUF3QjtRQUN4QixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFL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LEdBQUcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoRSxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUNyRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsa0JBQWtCLEtBQUssb0RBQW9ELENBQUMsQ0FBQztZQUNqRyxDQUFDO1lBRUQsT0FBTyxFQUFDLEdBQUcsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFDLENBQUM7UUFDekMsQ0FBQyxFQUEwQixFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xvY2FsaXplRGljdGlvbmFyeURhdGFWYWx1ZXN9IGZyb20gJy4vZGljdGlvbmFyeS5kYXRhJztcbmltcG9ydCB7TG9jYWxpemVEaWN0aW9uYXJ5Q29udGV4dH0gZnJvbSAnLi9kaWN0aW9uYXJ5LmNvbnRleHQnO1xuaW1wb3J0IHtMb2NhbGl6ZX0gZnJvbSAnLi4vbG9jYWxpemUuc2VydmljZSc7XG5cbmRlY2xhcmUgbGV0IG5nRGV2TW9kZTtcblxuZXhwb3J0IGNsYXNzIExvY2FsaXplRGljdGlvbmFyeSB7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kYXRhOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfaWQ6IHN0cmluZyxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9sb2NhbGU6IHN0cmluZyxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9zdXBwb3J0ZWQ6IHN0cmluZ1tdLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2RhdGFWYWx1ZXM6IExvY2FsaXplRGljdGlvbmFyeURhdGFWYWx1ZXMsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfbG9jYWxpemU6IExvY2FsaXplKSB7XG4gICAgICAgIHRoaXMuX2RhdGEgPSB0aGlzLmZvcm1hdERhdGEodGhpcy5fZGF0YVZhbHVlcyk7XG4gICAgfVxuXG4gICAgZ2V0IGlkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faWQgPz8gbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgbG9jYWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlID8/IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IHN1cHBvcnRlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N1cHBvcnRlZCA/PyBbXTtcbiAgICB9XG5cbiAgICBnZXQodG9rZW46IHN0cmluZyB8IHN0cmluZ1tdKSB7XG4gICAgICAgIGNvbnN0IGtleSA9IEFycmF5LmlzQXJyYXkodG9rZW4pID8gdG9rZW4uam9pbignLicpIDogdG9rZW47XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhPy5ba2V5XSA/PyBudWxsO1xuICAgIH1cblxuICAgIGhhcyh0b2tlbjogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5nZXQodG9rZW4pO1xuICAgIH1cblxuICAgIGFsbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc29tZShjb250ZXh0ID0+IGNvbnRleHQpO1xuICAgIH1cblxuICAgIHNvbWUoY2FsbGJhY2s6IChjb250ZXh0OiBMb2NhbGl6ZURpY3Rpb25hcnlDb250ZXh0KSA9PiBMb2NhbGl6ZURpY3Rpb25hcnlDb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRDb250ZXh0ID0gbmV3IExvY2FsaXplRGljdGlvbmFyeUNvbnRleHQoKTtcbiAgICAgICAgY29uc3QgY29udGV4dCA9ICEhY2FsbGJhY2sgPyBjYWxsYmFjayhkZWZhdWx0Q29udGV4dCkgOiBkZWZhdWx0Q29udGV4dDtcblxuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5fZGF0YSA/PyB7fSlcbiAgICAgICAgICAgIC5maWx0ZXIoa2V5ID0+IGNvbnRleHQucmVnZXhwLnRlc3Qoa2V5KSlcbiAgICAgICAgICAgIC5yZWR1Y2UoKHByZXZpb3VzLCBjdXJyZW50KSA9PiAoW1xuICAgICAgICAgICAgICAgIC4uLnByZXZpb3VzLFxuICAgICAgICAgICAgICAgIHt0b2tlbjogY3VycmVudCwgdmFsdWU6IHRoaXMuZ2V0KGN1cnJlbnQpfVxuICAgICAgICAgICAgXSksIDx7IHRva2VuOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfVtdPltdKTtcbiAgICB9XG5cbiAgICBhc3luYyBjb21wYXJlKHRvOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuICAgICAgICBpZiAoKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGRpY3Rpb25hcnlJZHMgPSAoQXJyYXkuaXNBcnJheSh0bykgPyB0byA6IFt0b10pO1xuICAgICAgICAgICAgY29uc3QgZGljdGlvbmFyaWVzOiBMb2NhbGl6ZURpY3Rpb25hcnlbXSA9IFtdO1xuICAgICAgICAgICAgZm9yIChjb25zdCBkaWN0aW9uYXJ5SWQgb2YgZGljdGlvbmFyeUlkcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpY3Rpb25hcnkgPSBhd2FpdCB0aGlzLl9sb2NhbGl6ZS5sb2FkKGRpY3Rpb25hcnlJZCk7XG4gICAgICAgICAgICAgICAgZGljdGlvbmFyaWVzLnB1c2goZGljdGlvbmFyeSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHdhcm5pbmdzID0gW107XG5cbiAgICAgICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5hbGwoKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZGljdGlvbmFyeSBvZiBkaWN0aW9uYXJpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFkaWN0aW9uYXJ5LmhhcyhpdGVtPy50b2tlbikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdhcm5pbmdzLnB1c2goe2RpY3Rpb25hcnk6IGRpY3Rpb25hcnk/LmlkLCB2YWx1ZTogaXRlbT8udG9rZW59KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yIChjb25zdCBkaWN0aW9uYXJ5IG9mIGRpY3Rpb25hcmllcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1zID0gZGljdGlvbmFyeS5hbGwoKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmhhcyhpdGVtPy50b2tlbikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdhcm5pbmdzLnB1c2goe2RpY3Rpb25hcnk6IHRoaXMuaWQsIHZhbHVlOiBpdGVtPy50b2tlbn0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjb21wYXJlRGljdGlvbmFyeUlkcyA9IGRpY3Rpb25hcmllcy5tYXAoZGljdGlvbmFyeSA9PiBkaWN0aW9uYXJ5Py5pZCkuam9pbignLCAnKTtcbiAgICAgICAgICAgIGZvciAoY29uc3Qgd2FybmluZyBvZiB3YXJuaW5ncykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGU/Lndhcm4/LihgRGljdGlvbmFyeSBcIiR7d2FybmluZy5kaWN0aW9uYXJ5fVwiIGlzIG1pc3NpbmcgdG9rZW4gXCIke3dhcm5pbmcudmFsdWV9XCJgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnNvbGU/Lndhcm4/LihgVG90YWwgb2YgJHt3YXJuaW5ncy5sZW5ndGh9IHdhcm5pbmcocykgZm91bmQgd2hpbGUgY29tcGFyaW5nIFwiJHt0aGlzLmlkfVwiIC0+IFske2NvbXBhcmVEaWN0aW9uYXJ5SWRzfV0uYCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb3VudCgpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuX2RhdGEgPz8ge30pLmxlbmd0aDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZvcm1hdERhdGEoZGF0YTogTG9jYWxpemVEaWN0aW9uYXJ5RGF0YVZhbHVlcywgc2NvcGU6IHN0cmluZyB8IG51bGwgPSBudWxsKSB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhkYXRhID8/IHt9KS5yZWR1Y2UoKHByZXZpb3VzLCBjdXJyZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGRhdGE/LltjdXJyZW50XTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVmb3JtYXR0ZWQgPSB0aGlzLmZvcm1hdERhdGEodmFsdWUsIGN1cnJlbnQpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7Li4ucHJldmlvdXMsIC4uLnJlZm9ybWF0dGVkfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgdG9rZW4gPSBbc2NvcGUsIGN1cnJlbnRdLmZpbHRlcihpdGVtID0+ICEhaXRlbSkuam9pbignLicpO1xuICAgICAgICAgICAgaWYgKHByZXZpb3VzW3Rva2VuXSAmJiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGU/Lndhcm4/LihgRHVwbGljYXRlIGtleSBcIiR7dG9rZW59XCIgd2FzIGZvdW5kLCBwbGVhc2UgdmVyaWZ5IHlvdXIgdHJhbnNsYXRpb24gZmlsZXMuYCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB7Li4ucHJldmlvdXMsIFt0b2tlbl06IHZhbHVlfTtcbiAgICAgICAgfSwgPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+e30pO1xuICAgIH1cblxufVxuIl19
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
export class LocalizeDictionaryContext {
|
|
2
|
-
regexp = /^.*$/;
|
|
3
|
-
pattern(regexp) {
|
|
4
|
-
this.regexp = regexp;
|
|
5
|
-
return this;
|
|
6
|
-
}
|
|
7
|
-
matches(value) {
|
|
8
|
-
const formatted = this.formatValue(value);
|
|
9
|
-
const regex = (formatted ?? '')
|
|
10
|
-
.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&')
|
|
11
|
-
.replace(/\\\*/g, '.*');
|
|
12
|
-
return this.pattern(new RegExp(`^${regex}$`));
|
|
13
|
-
}
|
|
14
|
-
group(value) {
|
|
15
|
-
const formatted = this.formatValue(value);
|
|
16
|
-
return this.matches([formatted, '*']);
|
|
17
|
-
}
|
|
18
|
-
formatValue(value) {
|
|
19
|
-
return Array.isArray(value)
|
|
20
|
-
? value.filter(item => !!item).join('.')
|
|
21
|
-
: value;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGljdGlvbmFyeS5jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9sb2NhbGl6ZS9zcmMvbGliL2RpY3Rpb25hcnkvZGljdGlvbmFyeS5jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyx5QkFBeUI7SUFFbEMsTUFBTSxHQUFXLE1BQU0sQ0FBQztJQUV4QixPQUFPLENBQUMsTUFBYztRQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQXdCO1FBQzVCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDO2FBQzFCLE9BQU8sQ0FBQywwQkFBMEIsRUFBRSxNQUFNLENBQUM7YUFDM0MsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUF3QjtRQUMxQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTyxXQUFXLENBQUMsS0FBd0I7UUFDeEMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUN2QixDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQ3hDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDaEIsQ0FBQztDQUVKIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIExvY2FsaXplRGljdGlvbmFyeUNvbnRleHQge1xuXG4gICAgcmVnZXhwOiBSZWdFeHAgPSAvXi4qJC87XG5cbiAgICBwYXR0ZXJuKHJlZ2V4cDogUmVnRXhwKSB7XG4gICAgICAgIHRoaXMucmVnZXhwID0gcmVnZXhwO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBtYXRjaGVzKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuICAgICAgICBjb25zdCBmb3JtYXR0ZWQgPSB0aGlzLmZvcm1hdFZhbHVlKHZhbHVlKTtcbiAgICAgICAgY29uc3QgcmVnZXggPSAoZm9ybWF0dGVkID8/ICcnKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1stW1xcXXt9KCkqKz8uLFxcXFxeJHwjXFxzXS9nLCAnXFxcXCQmJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXFxcXFwqL2csICcuKicpO1xuICAgICAgICByZXR1cm4gdGhpcy5wYXR0ZXJuKG5ldyBSZWdFeHAoYF4ke3JlZ2V4fSRgKSk7XG4gICAgfVxuXG4gICAgZ3JvdXAodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKSB7XG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IHRoaXMuZm9ybWF0VmFsdWUodmFsdWUpO1xuICAgICAgICByZXR1cm4gdGhpcy5tYXRjaGVzKFtmb3JtYXR0ZWQsICcqJ10pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9ybWF0VmFsdWUodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKSB7XG4gICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKVxuICAgICAgICAgICAgPyB2YWx1ZS5maWx0ZXIoaXRlbSA9PiAhIWl0ZW0pLmpvaW4oJy4nKVxuICAgICAgICAgICAgOiB2YWx1ZTtcbiAgICB9XG5cbn1cbiJdfQ==
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export class LocalizeDictionaryData {
|
|
2
|
-
data;
|
|
3
|
-
constructor(data) {
|
|
4
|
-
this.data = data;
|
|
5
|
-
}
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGljdGlvbmFyeS5kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9sb2NhbGl6ZS9zcmMvbGliL2RpY3Rpb25hcnkvZGljdGlvbmFyeS5kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxzQkFBc0I7SUFFWjtJQUFuQixZQUFtQixJQUFrQztRQUFsQyxTQUFJLEdBQUosSUFBSSxDQUE4QjtJQUNyRCxDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBMb2NhbGl6ZURpY3Rpb25hcnlEYXRhVmFsdWVzID0geyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBMb2NhbGl6ZURpY3Rpb25hcnlEYXRhVmFsdWVzIH07XG5cbmV4cG9ydCBjbGFzcyBMb2NhbGl6ZURpY3Rpb25hcnlEYXRhIHtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRhOiBMb2NhbGl6ZURpY3Rpb25hcnlEYXRhVmFsdWVzKSB7XG4gICAgfVxuXG59XG4iXX0=
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { formatDate } from '@angular/common';
|
|
2
|
-
//
|
|
3
|
-
// This function transform the value
|
|
4
|
-
// to a localized date.
|
|
5
|
-
//
|
|
6
|
-
export class LocalizeDateFunction {
|
|
7
|
-
keyword() {
|
|
8
|
-
return 'date';
|
|
9
|
-
}
|
|
10
|
-
transform(value, locale) {
|
|
11
|
-
const date = new Date(value);
|
|
12
|
-
if (date.toString() === 'Invalid Date') {
|
|
13
|
-
return '?';
|
|
14
|
-
}
|
|
15
|
-
return formatDate(date, 'longDate', locale);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbG9jYWxpemUvc3JjL2xpYi9mdW5jdGlvbnMvZGF0ZS5mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFM0MsRUFBRTtBQUNGLG9DQUFvQztBQUNwQyx1QkFBdUI7QUFDdkIsRUFBRTtBQUVGLE1BQU0sT0FBTyxvQkFBb0I7SUFFN0IsT0FBTztRQUNILE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBYSxFQUFFLE1BQWU7UUFDcEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFN0IsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssY0FBYyxFQUFFLENBQUM7WUFDckMsT0FBTyxHQUFHLENBQUM7UUFDZixDQUFDO1FBRUQsT0FBTyxVQUFVLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoRCxDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xvY2FsaXplRnVuY3Rpb259IGZyb20gJy4uL2ludGVyZmFjZXMvZnVuY3Rpb25zLmludGVyZmFjZXMnO1xuaW1wb3J0IHtmb3JtYXREYXRlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG4vL1xuLy8gVGhpcyBmdW5jdGlvbiB0cmFuc2Zvcm0gdGhlIHZhbHVlXG4vLyB0byBhIGxvY2FsaXplZCBkYXRlLlxuLy9cblxuZXhwb3J0IGNsYXNzIExvY2FsaXplRGF0ZUZ1bmN0aW9uIGltcGxlbWVudHMgTG9jYWxpemVGdW5jdGlvbiB7XG5cbiAgICBrZXl3b3JkKCkge1xuICAgICAgICByZXR1cm4gJ2RhdGUnO1xuICAgIH1cblxuICAgIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nLCBsb2NhbGU/OiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHZhbHVlKTtcblxuICAgICAgICBpZiAoZGF0ZS50b1N0cmluZygpID09PSAnSW52YWxpZCBEYXRlJykge1xuICAgICAgICAgICAgcmV0dXJuICc/JztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmb3JtYXREYXRlKGRhdGUsICdsb25nRGF0ZScsIGxvY2FsZSk7XG4gICAgfVxuXG59XG4iXX0=
|