@dereekb/dbx-firebase 12.6.21 → 13.0.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/LICENSE +1 -1
- package/fesm2022/dereekb-dbx-firebase.mjs +910 -1396
- package/fesm2022/dereekb-dbx-firebase.mjs.map +1 -1
- package/package.json +21 -23
- package/types/dereekb-dbx-firebase.d.ts +4304 -0
- package/esm2022/dereekb-dbx-firebase.mjs +0 -5
- package/esm2022/index.mjs +0 -2
- package/esm2022/lib/analytics/analytics.user.events.providers.mjs +0 -25
- package/esm2022/lib/analytics/analytics.user.events.service.mjs +0 -37
- package/esm2022/lib/analytics/analytics.user.source.mjs +0 -48
- package/esm2022/lib/analytics/index.mjs +0 -4
- package/esm2022/lib/auth/appcheck/appcheck.interceptor.mjs +0 -76
- package/esm2022/lib/auth/appcheck/appcheck.mjs +0 -11
- package/esm2022/lib/auth/appcheck/index.mjs +0 -3
- package/esm2022/lib/auth/auth.mjs +0 -22
- package/esm2022/lib/auth/firebase.auth.module.mjs +0 -22
- package/esm2022/lib/auth/firebase.auth.providers.mjs +0 -27
- package/esm2022/lib/auth/index.mjs +0 -7
- package/esm2022/lib/auth/login/firebase.login.module.mjs +0 -124
- package/esm2022/lib/auth/login/firebase.login.providers.default.mjs +0 -109
- package/esm2022/lib/auth/login/firebase.login.providers.mjs +0 -59
- package/esm2022/lib/auth/login/index.mjs +0 -27
- package/esm2022/lib/auth/login/login.anonymous.component.mjs +0 -23
- package/esm2022/lib/auth/login/login.apple.component.mjs +0 -23
- package/esm2022/lib/auth/login/login.button.component.mjs +0 -148
- package/esm2022/lib/auth/login/login.component.mjs +0 -39
- package/esm2022/lib/auth/login/login.context.back.component.mjs +0 -26
- package/esm2022/lib/auth/login/login.context.directive.mjs +0 -30
- package/esm2022/lib/auth/login/login.context.mjs +0 -7
- package/esm2022/lib/auth/login/login.email.component.mjs +0 -24
- package/esm2022/lib/auth/login/login.email.content.component.mjs +0 -102
- package/esm2022/lib/auth/login/login.email.form.component.mjs +0 -27
- package/esm2022/lib/auth/login/login.email.recovery.form.component.mjs +0 -21
- package/esm2022/lib/auth/login/login.facebook.component.mjs +0 -23
- package/esm2022/lib/auth/login/login.github.component.mjs +0 -23
- package/esm2022/lib/auth/login/login.google.component.mjs +0 -23
- package/esm2022/lib/auth/login/login.list.component.mjs +0 -71
- package/esm2022/lib/auth/login/login.microsoft.component.mjs +0 -23
- package/esm2022/lib/auth/login/login.mjs +0 -3
- package/esm2022/lib/auth/login/login.password.mjs +0 -4
- package/esm2022/lib/auth/login/login.service.mjs +0 -127
- package/esm2022/lib/auth/login/login.terms.component.mjs +0 -29
- package/esm2022/lib/auth/login/login.terms.mjs +0 -6
- package/esm2022/lib/auth/login/login.terms.simple.component.mjs +0 -38
- package/esm2022/lib/auth/login/login.twitter.component.mjs +0 -23
- package/esm2022/lib/auth/login/register.component.mjs +0 -27
- package/esm2022/lib/auth/login/register.email.component.mjs +0 -23
- package/esm2022/lib/auth/service/firebase.auth.rxjs.mjs +0 -46
- package/esm2022/lib/auth/service/firebase.auth.service.delegate.mjs +0 -28
- package/esm2022/lib/auth/service/firebase.auth.service.mjs +0 -193
- package/esm2022/lib/auth/service/index.mjs +0 -4
- package/esm2022/lib/development/development.directive.mjs +0 -78
- package/esm2022/lib/development/development.module.mjs +0 -61
- package/esm2022/lib/development/development.popup.component.mjs +0 -44
- package/esm2022/lib/development/development.popup.content.component.mjs +0 -79
- package/esm2022/lib/development/development.popup.content.form.component.mjs +0 -39
- package/esm2022/lib/development/development.providers.mjs +0 -47
- package/esm2022/lib/development/development.scheduler.list.component.mjs +0 -79
- package/esm2022/lib/development/development.scheduler.service.mjs +0 -78
- package/esm2022/lib/development/development.scheduler.widget.component.mjs +0 -40
- package/esm2022/lib/development/development.service.mjs +0 -20
- package/esm2022/lib/development/development.widget.mjs +0 -2
- package/esm2022/lib/development/development.widget.service.mjs +0 -56
- package/esm2022/lib/development/index.mjs +0 -14
- package/esm2022/lib/firebase/appcheck.mjs +0 -2
- package/esm2022/lib/firebase/emulators.mjs +0 -14
- package/esm2022/lib/firebase/firebase.emulator.module.mjs +0 -23
- package/esm2022/lib/firebase/firebase.emulator.providers.mjs +0 -33
- package/esm2022/lib/firebase/firebase.emulator.service.mjs +0 -29
- package/esm2022/lib/firebase/firebase.module.mjs +0 -26
- package/esm2022/lib/firebase/firebase.options.environment.mjs +0 -2
- package/esm2022/lib/firebase/firebase.options.mjs +0 -3
- package/esm2022/lib/firebase/firebase.providers.mjs +0 -149
- package/esm2022/lib/firebase/index.mjs +0 -10
- package/esm2022/lib/firestore/firebase.firestore.context.service.mjs +0 -18
- package/esm2022/lib/firestore/firebase.firestore.mjs +0 -6
- package/esm2022/lib/firestore/firebase.firestore.module.mjs +0 -23
- package/esm2022/lib/firestore/firebase.firestore.providers.mjs +0 -86
- package/esm2022/lib/firestore/index.mjs +0 -5
- package/esm2022/lib/function/firebase.function.module.mjs +0 -23
- package/esm2022/lib/function/firebase.function.providers.mjs +0 -54
- package/esm2022/lib/function/index.mjs +0 -3
- package/esm2022/lib/index.mjs +0 -14
- package/esm2022/lib/model/error.mjs +0 -6
- package/esm2022/lib/model/index.mjs +0 -7
- package/esm2022/lib/model/loader/collection.change.trigger.mjs +0 -80
- package/esm2022/lib/model/loader/collection.change.watcher.mjs +0 -35
- package/esm2022/lib/model/loader/collection.loader.instance.mjs +0 -227
- package/esm2022/lib/model/loader/collection.loader.mjs +0 -2
- package/esm2022/lib/model/loader/document.loader.instance.mjs +0 -68
- package/esm2022/lib/model/loader/document.loader.mjs +0 -2
- package/esm2022/lib/model/loader/index.mjs +0 -7
- package/esm2022/lib/model/model.module.mjs +0 -17
- package/esm2022/lib/model/modules/index.mjs +0 -3
- package/esm2022/lib/model/modules/model/entities/index.mjs +0 -11
- package/esm2022/lib/model/modules/model/entities/model.entities.component.mjs +0 -122
- package/esm2022/lib/model/modules/model/entities/model.entities.entity.component.mjs +0 -79
- package/esm2022/lib/model/modules/model/entities/model.entities.mjs +0 -15
- package/esm2022/lib/model/modules/model/entities/model.entities.popover.button.component.mjs +0 -49
- package/esm2022/lib/model/modules/model/entities/model.entities.popover.component.mjs +0 -42
- package/esm2022/lib/model/modules/model/entities/model.entities.providers.mjs +0 -20
- package/esm2022/lib/model/modules/model/entities/model.entities.source.directive.mjs +0 -38
- package/esm2022/lib/model/modules/model/entities/model.entities.widget.entity.abstract.directive.mjs +0 -18
- package/esm2022/lib/model/modules/model/entities/model.entities.widget.entity.debug.component.mjs +0 -41
- package/esm2022/lib/model/modules/model/entities/model.entities.widget.mjs +0 -51
- package/esm2022/lib/model/modules/model/entities/model.entities.widget.service.mjs +0 -91
- package/esm2022/lib/model/modules/model/history/index.mjs +0 -7
- package/esm2022/lib/model/modules/model/history/model.history.component.mjs +0 -36
- package/esm2022/lib/model/modules/model/history/model.history.module.mjs +0 -26
- package/esm2022/lib/model/modules/model/history/model.history.popover.button.component.mjs +0 -40
- package/esm2022/lib/model/modules/model/history/model.history.popover.component.mjs +0 -36
- package/esm2022/lib/model/modules/model/history/model.sourceselect.history.mjs +0 -18
- package/esm2022/lib/model/modules/model/history/model.tracker.service.mjs +0 -58
- package/esm2022/lib/model/modules/model/index.mjs +0 -8
- package/esm2022/lib/model/modules/model/model.key.component.mjs +0 -51
- package/esm2022/lib/model/modules/model/model.types.list.component.mjs +0 -67
- package/esm2022/lib/model/modules/model/model.types.module.mjs +0 -26
- package/esm2022/lib/model/modules/model/model.types.providers.mjs +0 -20
- package/esm2022/lib/model/modules/model/model.types.service.mjs +0 -122
- package/esm2022/lib/model/modules/model/model.types.view.directive.mjs +0 -45
- package/esm2022/lib/model/modules/store/index.mjs +0 -22
- package/esm2022/lib/model/modules/store/model.store.module.mjs +0 -21
- package/esm2022/lib/model/modules/store/store.collection.change.directive.mjs +0 -45
- package/esm2022/lib/model/modules/store/store.collection.change.if.directive.mjs +0 -42
- package/esm2022/lib/model/modules/store/store.collection.crud.mjs +0 -28
- package/esm2022/lib/model/modules/store/store.collection.directive.mjs +0 -99
- package/esm2022/lib/model/modules/store/store.collection.list.directive.mjs +0 -31
- package/esm2022/lib/model/modules/store/store.collection.mjs +0 -79
- package/esm2022/lib/model/modules/store/store.document.context.store.directive.mjs +0 -19
- package/esm2022/lib/model/modules/store/store.document.context.store.link.mjs +0 -45
- package/esm2022/lib/model/modules/store/store.document.context.store.mjs +0 -86
- package/esm2022/lib/model/modules/store/store.document.crud.mjs +0 -80
- package/esm2022/lib/model/modules/store/store.document.directive.mjs +0 -114
- package/esm2022/lib/model/modules/store/store.document.mjs +0 -193
- package/esm2022/lib/model/modules/store/store.document.twoway.key.directive.mjs +0 -26
- package/esm2022/lib/model/modules/store/store.document.twoway.key.source.directive.mjs +0 -22
- package/esm2022/lib/model/modules/store/store.document.twoway.key.source.mjs +0 -16
- package/esm2022/lib/model/modules/store/store.mjs +0 -2
- package/esm2022/lib/model/modules/store/store.subcollection.directive.mjs +0 -44
- package/esm2022/lib/model/modules/store/store.subcollection.document.mjs +0 -99
- package/esm2022/lib/model/modules/store/store.subcollection.mjs +0 -80
- package/esm2022/lib/model/modules/store/store.subcollection.rxjs.mjs +0 -23
- package/esm2022/lib/model/service/index.mjs +0 -5
- package/esm2022/lib/model/service/model.context.instance.mjs +0 -73
- package/esm2022/lib/model/service/model.context.mjs +0 -2
- package/esm2022/lib/model/service/model.context.providers.mjs +0 -32
- package/esm2022/lib/model/service/model.context.service.mjs +0 -38
- package/esm2022/lib/model/system/index.mjs +0 -6
- package/esm2022/lib/model/system/systemstate.collection.store.directive.mjs +0 -20
- package/esm2022/lib/model/system/systemstate.collection.store.mjs +0 -16
- package/esm2022/lib/model/system/systemstate.document.store.accessor.mjs +0 -35
- package/esm2022/lib/model/system/systemstate.document.store.directive.mjs +0 -19
- package/esm2022/lib/model/system/systemstate.document.store.mjs +0 -16
- package/esm2022/lib/module.mjs +0 -15
- package/esm2022/lib/modules/index.mjs +0 -3
- package/esm2022/lib/modules/notification/component/index.mjs +0 -6
- package/esm2022/lib/modules/notification/component/notificationitem.content.component.mjs +0 -15
- package/esm2022/lib/modules/notification/component/notificationitem.list.component.mjs +0 -90
- package/esm2022/lib/modules/notification/component/notificationitem.view.component.mjs +0 -37
- package/esm2022/lib/modules/notification/component/notificationitem.view.default.component.mjs +0 -27
- package/esm2022/lib/modules/notification/component/notificationitem.view.directive.mjs +0 -14
- package/esm2022/lib/modules/notification/container/index.mjs +0 -3
- package/esm2022/lib/modules/notification/container/notification.item.store.popover.button.component.mjs +0 -48
- package/esm2022/lib/modules/notification/container/notification.item.store.popover.component.mjs +0 -35
- package/esm2022/lib/modules/notification/index.mjs +0 -7
- package/esm2022/lib/modules/notification/notification.module.mjs +0 -103
- package/esm2022/lib/modules/notification/notification.providers.mjs +0 -47
- package/esm2022/lib/modules/notification/service/index.mjs +0 -4
- package/esm2022/lib/modules/notification/service/notification.template.service.mjs +0 -28
- package/esm2022/lib/modules/notification/service/notificationitem.widget.mjs +0 -11
- package/esm2022/lib/modules/notification/service/notificationitem.widget.service.mjs +0 -55
- package/esm2022/lib/modules/notification/store/index.mjs +0 -18
- package/esm2022/lib/modules/notification/store/notification.collection.store.directive.mjs +0 -21
- package/esm2022/lib/modules/notification/store/notification.collection.store.mjs +0 -23
- package/esm2022/lib/modules/notification/store/notification.document.store.directive.mjs +0 -21
- package/esm2022/lib/modules/notification/store/notification.document.store.mjs +0 -33
- package/esm2022/lib/modules/notification/store/notification.item.store.mjs +0 -30
- package/esm2022/lib/modules/notification/store/notificationbox.collection.store.directive.mjs +0 -21
- package/esm2022/lib/modules/notification/store/notificationbox.collection.store.mjs +0 -16
- package/esm2022/lib/modules/notification/store/notificationbox.document.store.directive.mjs +0 -21
- package/esm2022/lib/modules/notification/store/notificationbox.document.store.mjs +0 -22
- package/esm2022/lib/modules/notification/store/notificationsummary.collection.store.directive.mjs +0 -21
- package/esm2022/lib/modules/notification/store/notificationsummary.collection.store.mjs +0 -16
- package/esm2022/lib/modules/notification/store/notificationsummary.document.store.directive.mjs +0 -21
- package/esm2022/lib/modules/notification/store/notificationsummary.document.store.mjs +0 -34
- package/esm2022/lib/modules/notification/store/notificationuser.collection.store.directive.mjs +0 -21
- package/esm2022/lib/modules/notification/store/notificationuser.collection.store.mjs +0 -16
- package/esm2022/lib/modules/notification/store/notificationuser.document.store.directive.mjs +0 -21
- package/esm2022/lib/modules/notification/store/notificationuser.document.store.mjs +0 -18
- package/esm2022/lib/modules/storagefile/container/index.mjs +0 -8
- package/esm2022/lib/modules/storagefile/container/storagefile.download.button.component.mjs +0 -278
- package/esm2022/lib/modules/storagefile/container/storagefile.upload.action.handler.directive.mjs +0 -118
- package/esm2022/lib/modules/storagefile/container/storagefile.upload.error.mjs +0 -12
- package/esm2022/lib/modules/storagefile/container/storagefile.upload.handler.mjs +0 -260
- package/esm2022/lib/modules/storagefile/container/storagefile.upload.initialize.document.directive.mjs +0 -51
- package/esm2022/lib/modules/storagefile/container/storagefile.upload.store.directive.mjs +0 -38
- package/esm2022/lib/modules/storagefile/container/storagefile.upload.sync.directive.mjs +0 -36
- package/esm2022/lib/modules/storagefile/index.mjs +0 -6
- package/esm2022/lib/modules/storagefile/service/index.mjs +0 -3
- package/esm2022/lib/modules/storagefile/service/storagefile.download.service.mjs +0 -158
- package/esm2022/lib/modules/storagefile/service/storagefile.download.storage.service.mjs +0 -91
- package/esm2022/lib/modules/storagefile/storagefile.providers.mjs +0 -33
- package/esm2022/lib/modules/storagefile/storagefile.upload.module.mjs +0 -83
- package/esm2022/lib/modules/storagefile/store/index.mjs +0 -8
- package/esm2022/lib/modules/storagefile/store/storagefile.collection.store.directive.mjs +0 -22
- package/esm2022/lib/modules/storagefile/store/storagefile.collection.store.mjs +0 -18
- package/esm2022/lib/modules/storagefile/store/storagefile.document.store.directive.mjs +0 -21
- package/esm2022/lib/modules/storagefile/store/storagefile.document.store.mjs +0 -23
- package/esm2022/lib/modules/storagefile/store/storagefile.upload.store.mjs +0 -63
- package/esm2022/lib/modules/storagefile/store/storagefilegroup.document.store.directive.mjs +0 -21
- package/esm2022/lib/modules/storagefile/store/storagefilegroup.document.store.mjs +0 -18
- package/esm2022/lib/pipe/index.mjs +0 -4
- package/esm2022/lib/pipe/key.flat.pipe.mjs +0 -20
- package/esm2022/lib/pipe/key.twoway.pipe.mjs +0 -20
- package/esm2022/lib/pipe/pipe.module.mjs +0 -23
- package/esm2022/lib/providers.mjs +0 -48
- package/esm2022/lib/router/id.param.redirect.mjs +0 -64
- package/esm2022/lib/router/index.mjs +0 -2
- package/esm2022/lib/storage/firebase.storage.mjs +0 -10
- package/esm2022/lib/storage/firebase.storage.module.mjs +0 -22
- package/esm2022/lib/storage/firebase.storage.providers.mjs +0 -44
- package/esm2022/lib/storage/firebase.storage.service.mjs +0 -27
- package/esm2022/lib/storage/index.mjs +0 -5
- package/index.d.ts +0 -1
- package/lib/analytics/analytics.user.events.providers.d.ts +0 -6
- package/lib/analytics/analytics.user.events.service.d.ts +0 -19
- package/lib/analytics/analytics.user.source.d.ts +0 -21
- package/lib/analytics/index.d.ts +0 -3
- package/lib/auth/appcheck/appcheck.d.ts +0 -8
- package/lib/auth/appcheck/appcheck.interceptor.d.ts +0 -15
- package/lib/auth/appcheck/index.d.ts +0 -2
- package/lib/auth/auth.d.ts +0 -15
- package/lib/auth/firebase.auth.module.d.ts +0 -13
- package/lib/auth/firebase.auth.providers.d.ts +0 -21
- package/lib/auth/index.d.ts +0 -6
- package/lib/auth/login/firebase.login.module.d.ts +0 -36
- package/lib/auth/login/firebase.login.providers.d.ts +0 -32
- package/lib/auth/login/firebase.login.providers.default.d.ts +0 -7
- package/lib/auth/login/index.d.ts +0 -26
- package/lib/auth/login/login.anonymous.component.d.ts +0 -8
- package/lib/auth/login/login.apple.component.d.ts +0 -8
- package/lib/auth/login/login.button.component.d.ts +0 -53
- package/lib/auth/login/login.component.d.ts +0 -14
- package/lib/auth/login/login.context.back.component.d.ts +0 -8
- package/lib/auth/login/login.context.d.ts +0 -6
- package/lib/auth/login/login.context.directive.d.ts +0 -10
- package/lib/auth/login/login.d.ts +0 -7
- package/lib/auth/login/login.email.component.d.ts +0 -8
- package/lib/auth/login/login.email.content.component.d.ts +0 -41
- package/lib/auth/login/login.email.form.component.d.ts +0 -17
- package/lib/auth/login/login.email.recovery.form.component.d.ts +0 -11
- package/lib/auth/login/login.facebook.component.d.ts +0 -8
- package/lib/auth/login/login.github.component.d.ts +0 -8
- package/lib/auth/login/login.google.component.d.ts +0 -8
- package/lib/auth/login/login.list.component.d.ts +0 -21
- package/lib/auth/login/login.microsoft.component.d.ts +0 -8
- package/lib/auth/login/login.password.d.ts +0 -3
- package/lib/auth/login/login.service.d.ts +0 -115
- package/lib/auth/login/login.terms.component.d.ts +0 -9
- package/lib/auth/login/login.terms.d.ts +0 -18
- package/lib/auth/login/login.terms.simple.component.d.ts +0 -9
- package/lib/auth/login/login.twitter.component.d.ts +0 -8
- package/lib/auth/login/register.component.d.ts +0 -12
- package/lib/auth/login/register.email.component.d.ts +0 -8
- package/lib/auth/service/firebase.auth.rxjs.d.ts +0 -23
- package/lib/auth/service/firebase.auth.service.d.ts +0 -95
- package/lib/auth/service/firebase.auth.service.delegate.d.ts +0 -25
- package/lib/auth/service/index.d.ts +0 -3
- package/lib/development/development.directive.d.ts +0 -24
- package/lib/development/development.module.d.ts +0 -15
- package/lib/development/development.popup.component.d.ts +0 -14
- package/lib/development/development.popup.content.component.d.ts +0 -49
- package/lib/development/development.popup.content.form.component.d.ts +0 -17
- package/lib/development/development.providers.d.ts +0 -32
- package/lib/development/development.scheduler.list.component.d.ts +0 -23
- package/lib/development/development.scheduler.service.d.ts +0 -31
- package/lib/development/development.scheduler.widget.component.d.ts +0 -12
- package/lib/development/development.service.d.ts +0 -16
- package/lib/development/development.widget.d.ts +0 -8
- package/lib/development/development.widget.service.d.ts +0 -29
- package/lib/development/index.d.ts +0 -13
- package/lib/firebase/appcheck.d.ts +0 -21
- package/lib/firebase/emulators.d.ts +0 -60
- package/lib/firebase/firebase.emulator.module.d.ts +0 -14
- package/lib/firebase/firebase.emulator.providers.d.ts +0 -13
- package/lib/firebase/firebase.emulator.service.d.ts +0 -11
- package/lib/firebase/firebase.module.d.ts +0 -14
- package/lib/firebase/firebase.options.d.ts +0 -36
- package/lib/firebase/firebase.options.environment.d.ts +0 -10
- package/lib/firebase/firebase.providers.d.ts +0 -51
- package/lib/firebase/index.d.ts +0 -9
- package/lib/firestore/firebase.firestore.context.service.d.ts +0 -10
- package/lib/firestore/firebase.firestore.d.ts +0 -5
- package/lib/firestore/firebase.firestore.module.d.ts +0 -15
- package/lib/firestore/firebase.firestore.providers.d.ts +0 -62
- package/lib/firestore/index.d.ts +0 -4
- package/lib/function/firebase.function.module.d.ts +0 -16
- package/lib/function/firebase.function.providers.d.ts +0 -43
- package/lib/function/index.d.ts +0 -2
- package/lib/index.d.ts +0 -13
- package/lib/model/error.d.ts +0 -2
- package/lib/model/index.d.ts +0 -6
- package/lib/model/loader/collection.change.trigger.d.ts +0 -57
- package/lib/model/loader/collection.change.watcher.d.ts +0 -44
- package/lib/model/loader/collection.loader.d.ts +0 -61
- package/lib/model/loader/collection.loader.instance.d.ts +0 -110
- package/lib/model/loader/document.loader.d.ts +0 -75
- package/lib/model/loader/document.loader.instance.d.ts +0 -46
- package/lib/model/loader/index.d.ts +0 -6
- package/lib/model/model.module.d.ts +0 -9
- package/lib/model/modules/index.d.ts +0 -2
- package/lib/model/modules/model/entities/index.d.ts +0 -10
- package/lib/model/modules/model/entities/model.entities.component.d.ts +0 -47
- package/lib/model/modules/model/entities/model.entities.d.ts +0 -60
- package/lib/model/modules/model/entities/model.entities.entity.component.d.ts +0 -43
- package/lib/model/modules/model/entities/model.entities.popover.button.component.d.ts +0 -30
- package/lib/model/modules/model/entities/model.entities.popover.component.d.ts +0 -59
- package/lib/model/modules/model/entities/model.entities.providers.d.ts +0 -22
- package/lib/model/modules/model/entities/model.entities.source.directive.d.ts +0 -8
- package/lib/model/modules/model/entities/model.entities.widget.d.ts +0 -30
- package/lib/model/modules/model/entities/model.entities.widget.entity.abstract.directive.d.ts +0 -13
- package/lib/model/modules/model/entities/model.entities.widget.entity.debug.component.d.ts +0 -17
- package/lib/model/modules/model/entities/model.entities.widget.service.d.ts +0 -74
- package/lib/model/modules/model/history/index.d.ts +0 -6
- package/lib/model/modules/model/history/model.history.component.d.ts +0 -16
- package/lib/model/modules/model/history/model.history.module.d.ts +0 -16
- package/lib/model/modules/model/history/model.history.popover.button.component.d.ts +0 -16
- package/lib/model/modules/model/history/model.history.popover.component.d.ts +0 -50
- package/lib/model/modules/model/history/model.sourceselect.history.d.ts +0 -32
- package/lib/model/modules/model/history/model.tracker.service.d.ts +0 -43
- package/lib/model/modules/model/index.d.ts +0 -7
- package/lib/model/modules/model/model.key.component.d.ts +0 -25
- package/lib/model/modules/model/model.types.list.component.d.ts +0 -22
- package/lib/model/modules/model/model.types.module.d.ts +0 -16
- package/lib/model/modules/model/model.types.providers.d.ts +0 -22
- package/lib/model/modules/model/model.types.service.d.ts +0 -90
- package/lib/model/modules/model/model.types.view.directive.d.ts +0 -19
- package/lib/model/modules/store/index.d.ts +0 -21
- package/lib/model/modules/store/model.store.module.d.ts +0 -11
- package/lib/model/modules/store/store.collection.change.directive.d.ts +0 -28
- package/lib/model/modules/store/store.collection.change.if.directive.d.ts +0 -18
- package/lib/model/modules/store/store.collection.crud.d.ts +0 -21
- package/lib/model/modules/store/store.collection.d.ts +0 -97
- package/lib/model/modules/store/store.collection.directive.d.ts +0 -56
- package/lib/model/modules/store/store.collection.list.directive.d.ts +0 -16
- package/lib/model/modules/store/store.d.ts +0 -87
- package/lib/model/modules/store/store.document.context.store.d.ts +0 -59
- package/lib/model/modules/store/store.document.context.store.directive.d.ts +0 -8
- package/lib/model/modules/store/store.document.context.store.link.d.ts +0 -17
- package/lib/model/modules/store/store.document.crud.d.ts +0 -63
- package/lib/model/modules/store/store.document.d.ts +0 -101
- package/lib/model/modules/store/store.document.directive.d.ts +0 -66
- package/lib/model/modules/store/store.document.twoway.key.directive.d.ts +0 -14
- package/lib/model/modules/store/store.document.twoway.key.source.d.ts +0 -10
- package/lib/model/modules/store/store.document.twoway.key.source.directive.d.ts +0 -13
- package/lib/model/modules/store/store.subcollection.d.ts +0 -51
- package/lib/model/modules/store/store.subcollection.directive.d.ts +0 -28
- package/lib/model/modules/store/store.subcollection.document.d.ts +0 -67
- package/lib/model/modules/store/store.subcollection.rxjs.d.ts +0 -24
- package/lib/model/service/index.d.ts +0 -4
- package/lib/model/service/model.context.d.ts +0 -33
- package/lib/model/service/model.context.instance.d.ts +0 -17
- package/lib/model/service/model.context.providers.d.ts +0 -18
- package/lib/model/service/model.context.service.d.ts +0 -31
- package/lib/model/system/index.d.ts +0 -5
- package/lib/model/system/systemstate.collection.store.d.ts +0 -8
- package/lib/model/system/systemstate.collection.store.directive.d.ts +0 -9
- package/lib/model/system/systemstate.document.store.accessor.d.ts +0 -22
- package/lib/model/system/systemstate.document.store.d.ts +0 -8
- package/lib/model/system/systemstate.document.store.directive.d.ts +0 -9
- package/lib/module.d.ts +0 -7
- package/lib/modules/index.d.ts +0 -2
- package/lib/modules/notification/component/index.d.ts +0 -5
- package/lib/modules/notification/component/notificationitem.content.component.d.ts +0 -9
- package/lib/modules/notification/component/notificationitem.list.component.d.ts +0 -24
- package/lib/modules/notification/component/notificationitem.view.component.d.ts +0 -10
- package/lib/modules/notification/component/notificationitem.view.default.component.d.ts +0 -9
- package/lib/modules/notification/component/notificationitem.view.directive.d.ts +0 -8
- package/lib/modules/notification/container/index.d.ts +0 -2
- package/lib/modules/notification/container/notification.item.store.popover.button.component.d.ts +0 -17
- package/lib/modules/notification/container/notification.item.store.popover.component.d.ts +0 -50
- package/lib/modules/notification/index.d.ts +0 -6
- package/lib/modules/notification/notification.module.d.ts +0 -38
- package/lib/modules/notification/notification.providers.d.ts +0 -24
- package/lib/modules/notification/service/index.d.ts +0 -3
- package/lib/modules/notification/service/notification.template.service.d.ts +0 -11
- package/lib/modules/notification/service/notificationitem.widget.d.ts +0 -26
- package/lib/modules/notification/service/notificationitem.widget.service.d.ts +0 -22
- package/lib/modules/notification/store/index.d.ts +0 -17
- package/lib/modules/notification/store/notification.collection.store.d.ts +0 -9
- package/lib/modules/notification/store/notification.collection.store.directive.d.ts +0 -9
- package/lib/modules/notification/store/notification.document.store.d.ts +0 -16
- package/lib/modules/notification/store/notification.document.store.directive.d.ts +0 -9
- package/lib/modules/notification/store/notification.item.store.d.ts +0 -28
- package/lib/modules/notification/store/notificationbox.collection.store.d.ts +0 -8
- package/lib/modules/notification/store/notificationbox.collection.store.directive.d.ts +0 -9
- package/lib/modules/notification/store/notificationbox.document.store.d.ts +0 -13
- package/lib/modules/notification/store/notificationbox.document.store.directive.d.ts +0 -9
- package/lib/modules/notification/store/notificationsummary.collection.store.d.ts +0 -8
- package/lib/modules/notification/store/notificationsummary.collection.store.directive.d.ts +0 -9
- package/lib/modules/notification/store/notificationsummary.document.store.d.ts +0 -21
- package/lib/modules/notification/store/notificationsummary.document.store.directive.d.ts +0 -9
- package/lib/modules/notification/store/notificationuser.collection.store.d.ts +0 -8
- package/lib/modules/notification/store/notificationuser.collection.store.directive.d.ts +0 -9
- package/lib/modules/notification/store/notificationuser.document.store.d.ts +0 -11
- package/lib/modules/notification/store/notificationuser.document.store.directive.d.ts +0 -9
- package/lib/modules/storagefile/container/index.d.ts +0 -7
- package/lib/modules/storagefile/container/storagefile.download.button.component.d.ts +0 -160
- package/lib/modules/storagefile/container/storagefile.upload.action.handler.directive.d.ts +0 -47
- package/lib/modules/storagefile/container/storagefile.upload.error.d.ts +0 -9
- package/lib/modules/storagefile/container/storagefile.upload.handler.d.ts +0 -183
- package/lib/modules/storagefile/container/storagefile.upload.initialize.document.directive.d.ts +0 -21
- package/lib/modules/storagefile/container/storagefile.upload.store.directive.d.ts +0 -20
- package/lib/modules/storagefile/container/storagefile.upload.sync.directive.d.ts +0 -18
- package/lib/modules/storagefile/index.d.ts +0 -5
- package/lib/modules/storagefile/service/index.d.ts +0 -2
- package/lib/modules/storagefile/service/storagefile.download.service.d.ts +0 -79
- package/lib/modules/storagefile/service/storagefile.download.storage.service.d.ts +0 -56
- package/lib/modules/storagefile/storagefile.providers.d.ts +0 -13
- package/lib/modules/storagefile/storagefile.upload.module.d.ts +0 -29
- package/lib/modules/storagefile/store/index.d.ts +0 -7
- package/lib/modules/storagefile/store/storagefile.collection.store.d.ts +0 -10
- package/lib/modules/storagefile/store/storagefile.collection.store.directive.d.ts +0 -9
- package/lib/modules/storagefile/store/storagefile.document.store.d.ts +0 -16
- package/lib/modules/storagefile/store/storagefile.document.store.directive.d.ts +0 -9
- package/lib/modules/storagefile/store/storagefile.upload.store.d.ts +0 -166
- package/lib/modules/storagefile/store/storagefilegroup.document.store.d.ts +0 -11
- package/lib/modules/storagefile/store/storagefilegroup.document.store.directive.d.ts +0 -9
- package/lib/pipe/index.d.ts +0 -3
- package/lib/pipe/key.flat.pipe.d.ts +0 -9
- package/lib/pipe/key.twoway.pipe.d.ts +0 -9
- package/lib/pipe/pipe.module.d.ts +0 -13
- package/lib/providers.d.ts +0 -64
- package/lib/router/id.param.redirect.d.ts +0 -41
- package/lib/router/index.d.ts +0 -1
- package/lib/storage/firebase.storage.d.ts +0 -9
- package/lib/storage/firebase.storage.module.d.ts +0 -13
- package/lib/storage/firebase.storage.providers.d.ts +0 -31
- package/lib/storage/firebase.storage.service.d.ts +0 -13
- package/lib/storage/index.d.ts +0 -4
|
@@ -1,260 +0,0 @@
|
|
|
1
|
-
import { catchError, map, Observable, of, shareReplay } from 'rxjs';
|
|
2
|
-
import { runAsyncTasksForValues, separateValues } from '@dereekb/util';
|
|
3
|
-
import { MultiSubscriptionObject } from '@dereekb/rxjs';
|
|
4
|
-
/**
|
|
5
|
-
* Default implementation of StorageFileUploadHandler.
|
|
6
|
-
*/
|
|
7
|
-
export function storageFileUploadHandler(config) {
|
|
8
|
-
const { storageService, storageFileUploadConfigFactory } = config;
|
|
9
|
-
let resumable;
|
|
10
|
-
return {
|
|
11
|
-
uploadFile: async (file) => {
|
|
12
|
-
const storageFileUploadConfig = await storageFileUploadConfigFactory(file);
|
|
13
|
-
const { storagePath } = storageFileUploadConfig;
|
|
14
|
-
const storageAccessorFile = storageService.file(storagePath);
|
|
15
|
-
const upload = new Observable((x) => {
|
|
16
|
-
if (storageAccessorFile.uploadResumable) {
|
|
17
|
-
resumable = storageAccessorFile.uploadResumable(file);
|
|
18
|
-
// subscribe to the event by piping this observable to it
|
|
19
|
-
resumable
|
|
20
|
-
.streamSnapshotEvents()
|
|
21
|
-
.pipe(map((x) => {
|
|
22
|
-
const { bytesTransferred, totalBytes } = x;
|
|
23
|
-
const progress = {
|
|
24
|
-
file,
|
|
25
|
-
fileRef: storageAccessorFile,
|
|
26
|
-
uploadRef: resumable,
|
|
27
|
-
bytesTransferred,
|
|
28
|
-
totalBytes,
|
|
29
|
-
progress: bytesTransferred / totalBytes
|
|
30
|
-
};
|
|
31
|
-
return progress;
|
|
32
|
-
}))
|
|
33
|
-
.pipe(catchError((error) => {
|
|
34
|
-
// if an error occurs, catch it and emit it as a progress
|
|
35
|
-
const progress = {
|
|
36
|
-
file,
|
|
37
|
-
fileRef: storageAccessorFile,
|
|
38
|
-
uploadRef: resumable,
|
|
39
|
-
error,
|
|
40
|
-
failed: true
|
|
41
|
-
};
|
|
42
|
-
return of(progress);
|
|
43
|
-
}))
|
|
44
|
-
.subscribe(x);
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
throw new Error('uploadResumable() function was unavailable.');
|
|
48
|
-
}
|
|
49
|
-
}).pipe(shareReplay(1));
|
|
50
|
-
const instance = {
|
|
51
|
-
upload,
|
|
52
|
-
taskRef: storageAccessorFile,
|
|
53
|
-
pause: () => resumable?.pause() ?? false,
|
|
54
|
-
resume: () => resumable?.resume() ?? false,
|
|
55
|
-
cancel: () => resumable?.cancel() ?? false
|
|
56
|
-
};
|
|
57
|
-
return instance;
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Uploads files using the provided upload handler and files.
|
|
63
|
-
*
|
|
64
|
-
* An observable is returned that emits the latest file events from any file that is being uploaded.
|
|
65
|
-
*
|
|
66
|
-
* @param input
|
|
67
|
-
* @returns
|
|
68
|
-
*/
|
|
69
|
-
export function storageFileUploadFiles(input) {
|
|
70
|
-
const { uploadHandler, files, maxParallelUploads: inputMaxParallelUploads } = input;
|
|
71
|
-
const maxParallelTasks = inputMaxParallelUploads ?? 3;
|
|
72
|
-
const multiUploadsSubscriptionObject = new MultiSubscriptionObject();
|
|
73
|
-
// begin the upload for each file
|
|
74
|
-
const allFiles = Array.from(files);
|
|
75
|
-
// unsubscribe from all previous uploads
|
|
76
|
-
multiUploadsSubscriptionObject.unsub();
|
|
77
|
-
const allFilesAndLatestProgress = new Array(allFiles.length);
|
|
78
|
-
const allFilesAndDetails = allFiles.map((file) => ({ file }));
|
|
79
|
-
const overallProgressPerCompletedFile = (1 / allFilesAndLatestProgress.length);
|
|
80
|
-
/**
|
|
81
|
-
* Once set, any new file upload task that hits this will return an cancel failure.
|
|
82
|
-
*/
|
|
83
|
-
let flaggedCancel = false;
|
|
84
|
-
const cancel = () => {
|
|
85
|
-
flaggedCancel = true;
|
|
86
|
-
};
|
|
87
|
-
const upload = new Observable((subscriber) => {
|
|
88
|
-
const overallStartTime = new Date();
|
|
89
|
-
const incompleteFileFileIndexes = new Set(allFiles.map((_, index) => index));
|
|
90
|
-
const activeFileIndexes = new Set();
|
|
91
|
-
const doneFileIndexes = new Set();
|
|
92
|
-
let latestOverallProgress = 0;
|
|
93
|
-
function onStartFileUpload(index, uploadInstance) {
|
|
94
|
-
activeFileIndexes.add(index);
|
|
95
|
-
allFilesAndDetails[index].startTime = new Date();
|
|
96
|
-
allFilesAndDetails[index].uploadInstance = uploadInstance;
|
|
97
|
-
allFilesAndDetails[index].fileRef = uploadInstance.taskRef;
|
|
98
|
-
}
|
|
99
|
-
function onStartFileUploadFlaggedCancelled(index) {
|
|
100
|
-
allFilesAndDetails[index].startTime = new Date();
|
|
101
|
-
// immediately mark it done
|
|
102
|
-
_markFileUploadDone(index, true);
|
|
103
|
-
// emit new progress event
|
|
104
|
-
_emitEvent();
|
|
105
|
-
}
|
|
106
|
-
function _markFileUploadDone(fileIndex, finalError) {
|
|
107
|
-
doneFileIndexes.add(fileIndex); // add to done file indexes
|
|
108
|
-
activeFileIndexes.delete(fileIndex); // remove from active file indexes if it exists
|
|
109
|
-
incompleteFileFileIndexes.delete(fileIndex); // remove from incomplete file indexes
|
|
110
|
-
// update details
|
|
111
|
-
allFilesAndDetails[fileIndex].endTime = new Date();
|
|
112
|
-
const error = finalError ?? allFilesAndDetails[fileIndex].error;
|
|
113
|
-
allFilesAndDetails[fileIndex].success = !error;
|
|
114
|
-
allFilesAndDetails[fileIndex].error = error;
|
|
115
|
-
}
|
|
116
|
-
function updateUploadProgress(input) {
|
|
117
|
-
const { index: fileIndex, nextProgress, fileUploadTaskDone: inputFileUploadTaskDone, nonProgressError } = input;
|
|
118
|
-
const error = nonProgressError ?? nextProgress?.error;
|
|
119
|
-
const fileUploadTaskDone = inputFileUploadTaskDone ?? Boolean(error);
|
|
120
|
-
// the task may already be done, as after a progress-related error the complete task can get called.
|
|
121
|
-
const isTaskAlreadyDone = allFilesAndDetails[fileIndex].endTime != null;
|
|
122
|
-
if (!isTaskAlreadyDone) {
|
|
123
|
-
let nextOverallProgress = latestOverallProgress;
|
|
124
|
-
const nextProgressPercent = fileUploadTaskDone ? 100 : (nextProgress?.progress ?? 0) * 100;
|
|
125
|
-
// update the overall progress percentage
|
|
126
|
-
if (nextProgressPercent) {
|
|
127
|
-
// update the overall percentage
|
|
128
|
-
const previousProgress = allFilesAndLatestProgress[fileIndex];
|
|
129
|
-
const previousProgressPercent = previousProgress?.progress != null ? previousProgress.progress * 100 : 0;
|
|
130
|
-
const progressPercentChange = nextProgressPercent - previousProgressPercent;
|
|
131
|
-
// increase overall progress by the change
|
|
132
|
-
nextOverallProgress += progressPercentChange * overallProgressPerCompletedFile;
|
|
133
|
-
}
|
|
134
|
-
// update the file progress
|
|
135
|
-
if (nextProgress) {
|
|
136
|
-
// update the latest FileProgress
|
|
137
|
-
allFilesAndLatestProgress[fileIndex] = nextProgress;
|
|
138
|
-
// only set fileRef once
|
|
139
|
-
if (!allFilesAndDetails[fileIndex].fileRef) {
|
|
140
|
-
allFilesAndDetails[fileIndex].fileRef = nextProgress.fileRef;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
// if complete, update the indexes and details
|
|
144
|
-
if (fileUploadTaskDone) {
|
|
145
|
-
_markFileUploadDone(fileIndex, error);
|
|
146
|
-
}
|
|
147
|
-
// update the overall progress
|
|
148
|
-
latestOverallProgress = nextOverallProgress;
|
|
149
|
-
// emit the event to send it
|
|
150
|
-
_emitEvent(nextProgress);
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
function _emitEvent(nextProgress) {
|
|
154
|
-
const isComplete = incompleteFileFileIndexes.size === 0;
|
|
155
|
-
let overallProgress = latestOverallProgress;
|
|
156
|
-
let result = undefined;
|
|
157
|
-
if (isComplete) {
|
|
158
|
-
overallProgress = 100; // set to 100%
|
|
159
|
-
const overallEndTime = new Date();
|
|
160
|
-
const fileResults = allFiles.map((file, index) => {
|
|
161
|
-
const result = {
|
|
162
|
-
startTime: allFilesAndDetails[index].startTime,
|
|
163
|
-
endTime: allFilesAndDetails[index].endTime,
|
|
164
|
-
file,
|
|
165
|
-
fileRef: allFilesAndDetails[index].fileRef,
|
|
166
|
-
success: !allFilesAndDetails[index].error,
|
|
167
|
-
error: allFilesAndDetails[index].error
|
|
168
|
-
};
|
|
169
|
-
return result;
|
|
170
|
-
});
|
|
171
|
-
const { included: successFileResults, excluded: errorFileResults } = separateValues(fileResults, (x) => x.success);
|
|
172
|
-
// all are done, set the result on the next event
|
|
173
|
-
result = {
|
|
174
|
-
startTime: overallStartTime,
|
|
175
|
-
endTime: overallEndTime,
|
|
176
|
-
successFileResults,
|
|
177
|
-
errorFileResults,
|
|
178
|
-
fileResults
|
|
179
|
-
};
|
|
180
|
-
}
|
|
181
|
-
const nextEvent = {
|
|
182
|
-
allFiles,
|
|
183
|
-
isComplete,
|
|
184
|
-
overallProgress,
|
|
185
|
-
uploadProgress: nextProgress,
|
|
186
|
-
incompleteFileCount: incompleteFileFileIndexes.size,
|
|
187
|
-
activeFileCount: activeFileIndexes.size,
|
|
188
|
-
doneFileCount: doneFileIndexes.size,
|
|
189
|
-
result
|
|
190
|
-
};
|
|
191
|
-
subscriber.next(nextEvent);
|
|
192
|
-
}
|
|
193
|
-
async function runUploadTaskForFile([file, index]) {
|
|
194
|
-
if (flaggedCancel) {
|
|
195
|
-
onStartFileUploadFlaggedCancelled(index);
|
|
196
|
-
return Promise.resolve();
|
|
197
|
-
}
|
|
198
|
-
return new Promise((resolve) => {
|
|
199
|
-
const updateFileUploadProgress = (nextProgress) => {
|
|
200
|
-
// update the progress
|
|
201
|
-
updateUploadProgress({
|
|
202
|
-
index,
|
|
203
|
-
nextProgress
|
|
204
|
-
});
|
|
205
|
-
};
|
|
206
|
-
const updateFileUploadProgressWithUncaughtError = (error) => {
|
|
207
|
-
// error occurred, update the progress with the error
|
|
208
|
-
updateUploadProgress({
|
|
209
|
-
index,
|
|
210
|
-
nonProgressError: error,
|
|
211
|
-
fileUploadTaskDone: true
|
|
212
|
-
});
|
|
213
|
-
// always resolve, never reject
|
|
214
|
-
resolve();
|
|
215
|
-
};
|
|
216
|
-
const completeFileUploadProgress = () => {
|
|
217
|
-
updateUploadProgress({
|
|
218
|
-
index,
|
|
219
|
-
fileUploadTaskDone: true
|
|
220
|
-
});
|
|
221
|
-
resolve();
|
|
222
|
-
};
|
|
223
|
-
// upload the file, subscribe to the progress
|
|
224
|
-
try {
|
|
225
|
-
uploadHandler
|
|
226
|
-
.uploadFile(file)
|
|
227
|
-
.then((uploadInstance) => {
|
|
228
|
-
// add to active file indexes
|
|
229
|
-
onStartFileUpload(index, uploadInstance);
|
|
230
|
-
const uploadSubscription = uploadInstance.upload.subscribe({
|
|
231
|
-
next: updateFileUploadProgress,
|
|
232
|
-
error: updateFileUploadProgressWithUncaughtError,
|
|
233
|
-
complete: completeFileUploadProgress
|
|
234
|
-
});
|
|
235
|
-
multiUploadsSubscriptionObject.addSubs(uploadSubscription);
|
|
236
|
-
})
|
|
237
|
-
.catch(updateFileUploadProgressWithUncaughtError);
|
|
238
|
-
}
|
|
239
|
-
catch (error) {
|
|
240
|
-
updateFileUploadProgressWithUncaughtError(error);
|
|
241
|
-
}
|
|
242
|
-
});
|
|
243
|
-
}
|
|
244
|
-
// run upload task for each file
|
|
245
|
-
const fileTuples = allFiles.map((file, index) => [file, index]);
|
|
246
|
-
runAsyncTasksForValues(fileTuples, runUploadTaskForFile, {
|
|
247
|
-
maxParallelTasks,
|
|
248
|
-
retriesAllowed: 0 // no retries allowed
|
|
249
|
-
}).then(() => {
|
|
250
|
-
// all tasks are finished. Complete the subscriber.
|
|
251
|
-
subscriber.complete();
|
|
252
|
-
});
|
|
253
|
-
}).pipe(shareReplay(1));
|
|
254
|
-
const instance = {
|
|
255
|
-
cancel,
|
|
256
|
-
upload
|
|
257
|
-
};
|
|
258
|
-
return instance;
|
|
259
|
-
}
|
|
260
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZWZpbGUudXBsb2FkLmhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2R1bGVzL3N0b3JhZ2VmaWxlL2NvbnRhaW5lci9zdG9yYWdlZmlsZS51cGxvYWQuaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdwRSxPQUFPLEVBQThGLHNCQUFzQixFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFxRXhEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHdCQUF3QixDQUFDLE1BQXNDO0lBQzdFLE1BQU0sRUFBRSxjQUFjLEVBQUUsOEJBQThCLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFbEUsSUFBSSxTQUFtQyxDQUFDO0lBRXhDLE9BQU87UUFDTCxVQUFVLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO1lBQ3pCLE1BQU0sdUJBQXVCLEdBQUcsTUFBTSw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUUzRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsdUJBQXVCLENBQUM7WUFDaEQsTUFBTSxtQkFBbUIsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBRTdELE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxDQUFnRCxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNqRixJQUFJLG1CQUFtQixDQUFDLGVBQWUsRUFBRSxDQUFDO29CQUN4QyxTQUFTLEdBQUcsbUJBQW1CLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUV0RCx5REFBeUQ7b0JBQ3pELFNBQVM7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Y0FBYyxDQUFDLENBQUM7d0JBRXpDLE1BQU0sa0JBQWtCLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7NEJBQ3pELElBQUksRUFBRSx3QkFBd0I7NEJBQzlCLEtBQUssRUFBRSx5Q0FBeUM7NEJBQ2hELFFBQVEsRUFBRSwwQkFBMEI7eUJBQ3JDLENBQUMsQ0FBQzt3QkFFSCw4QkFBOEIsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztvQkFDN0QsQ0FBQyxDQUFDO3lCQUNELEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO2dCQUN0RCxDQUFDO2dCQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7b0JBQ2YseUNBQXlDLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25ELENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxnQ0FBZ0M7UUFDaEMsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBVSxDQUFDLENBQUM7UUFFekUsc0JBQXNCLENBQUMsVUFBVSxFQUFFLG9CQUFvQixFQUFFO1lBQ3ZELGdCQUFnQjtZQUNoQixjQUFjLEVBQUUsQ0FBQyxDQUFDLHFCQUFxQjtTQUN4QyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNYLG1EQUFtRDtZQUNuRCxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFeEIsTUFBTSxRQUFRLEdBQW1DO1FBQy9DLE1BQU07UUFDTixNQUFNO0tBQ1AsQ0FBQztJQUVGLE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIE9ic2VydmFibGUsIG9mLCBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdHlwZSBEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlVXBsb2FkU3RvcmVGaWxlUHJvZ3Jlc3MgfSBmcm9tICcuLi9zdG9yZSc7XG5pbXBvcnQgeyB0eXBlIERieEZpcmViYXNlU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zdG9yYWdlL2ZpcmViYXNlLnN0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyB0eXBlIEluZGV4TnVtYmVyLCB0eXBlIE1heWJlLCB0eXBlIFBlcmNlbnREZWNpbWFsLCB0eXBlIFBlcmNlbnROdW1iZXIsIHR5cGUgUHJvbWlzZU9yVmFsdWUsIHJ1bkFzeW5jVGFza3NGb3JWYWx1ZXMsIHNlcGFyYXRlVmFsdWVzIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBNdWx0aVN1YnNjcmlwdGlvbk9iamVjdCB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgdHlwZSBGaXJlYmFzZVN0b3JhZ2VBY2Nlc3NvckZpbGUsIHR5cGUgU3RvcmFnZUN1c3RvbU1ldGFkYXRhLCB0eXBlIFN0b3JhZ2VQYXRoSW5wdXQsIHR5cGUgU3RvcmFnZVVwbG9hZE9wdGlvbnMsIHR5cGUgU3RvcmFnZVVwbG9hZFRhc2sgfSBmcm9tICdAZGVyZWVrYi9maXJlYmFzZSc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBvYnNlcnZhYmxlIGZvciB1cGxvYWRpbmcgYSBmaWxlLlxuICovXG5leHBvcnQgdHlwZSBTdG9yYWdlRmlsZVVwbG9hZEhhbmRsZXJGdW5jdGlvbiA9IChmaWxlOiBGaWxlKSA9PiBQcm9taXNlPFN0b3JhZ2VGaWxlVXBsb2FkSGFuZGxlckluc3RhbmNlPjtcblxuZXhwb3J0IGludGVyZmFjZSBTdG9yYWdlRmlsZVVwbG9hZEhhbmRsZXJJbnN0YW5jZSBleHRlbmRzIFBpY2s8U3RvcmFnZVVwbG9hZFRhc2s8RmlyZWJhc2VTdG9yYWdlQWNjZXNzb3JGaWxlPiwgJ3Rhc2tSZWYnIHwgJ3BhdXNlJyB8ICdyZXN1bWUnIHwgJ2NhbmNlbCc+IHtcbiAgLyoqXG4gICAqIFRoZSB1cGxvYWQgb2JzZXJ2YWJsZS5cbiAgICpcbiAgICogTXVzdCBiZSBzdWJzY3JpYmVkIHRvIGluIG9yZGVyIGZvciB0aGUgdXBsb2FkIHRvIGJlZ2luLlxuICAgKi9cbiAgcmVhZG9ubHkgdXBsb2FkOiBPYnNlcnZhYmxlPERieEZpcmViYXNlU3RvcmFnZUZpbGVVcGxvYWRTdG9yZUZpbGVQcm9ncmVzcz47XG59XG5cbi8qKlxuICogSGFuZGxlcyB1cGxvYWRpbmcgZmlsZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmFnZUZpbGVVcGxvYWRIYW5kbGVyIHtcbiAgLyoqXG4gICAqIFVwbG9hZHMgYSBmaWxlLCBhbmQgcmV0dXJucyB0aGUgZmlsZSBwcm9ncmVzcyBhcyBpdCBpcyB1cGxvYWRpbmcuXG4gICAqL1xuICByZWFkb25seSB1cGxvYWRGaWxlOiBTdG9yYWdlRmlsZVVwbG9hZEhhbmRsZXJGdW5jdGlvbjtcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBhIHNpbmdsZSBmaWxlIHVwbG9hZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdG9yYWdlRmlsZVVwbG9hZENvbmZpZyB7XG4gIC8qKlxuICAgKiBQYXRoIGZvciB3aGVyZSB0byB1cGxvYWQgdGhlIGZpbGUgdG9cbiAgICovXG4gIHJlYWRvbmx5IHN0b3JhZ2VQYXRoOiBTdG9yYWdlUGF0aElucHV0O1xuICAvKipcbiAgICogVXBsb2FkIG9wdGlvbnMgZm9yIHRoZSBmaWxlLlxuICAgKlxuICAgKiBSZXN1bWFibGUgaXMgbm90IHN1cHBvcnRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHVwbG9hZE9wdGlvbnM/OiBTdG9yYWdlRmlsZVVwbG9hZENvbmZpZ09wdGlvbnM7XG4gIC8qKlxuICAgKiBDdXN0b20gbWV0YWRhdGEgZm9yIHRoZSBmaWxlLlxuICAgKlxuICAgKiBJcyBtZXJnZWQgd2l0aCB1cGxvYWRPcHRpb25zJ3MgbWV0YWRhdGEuXG4gICAqL1xuICByZWFkb25seSBjdXN0b21NZXRhZGF0YT86IFN0b3JhZ2VDdXN0b21NZXRhZGF0YTtcbn1cblxuLyoqXG4gKiBTdG9yYWdlRmlsZVVwbG9hZENvbmZpZyB1cGxvYWQgb3B0aW9ucy5cbiAqL1xuZXhwb3J0IHR5cGUgU3RvcmFnZUZpbGVVcGxvYWRDb25maWdPcHRpb25zID0gT21pdDxTdG9yYWdlVXBsb2FkT3B0aW9ucywgJ3Jlc3VtYWJsZSc+O1xuXG4vKipcbiAqIEZ1bmN0aW9uIHVzZWQgdG8gZ2VuZXJhdGUgZmlsZSBuYW1lcyBmb3IgdGhlIHVwbG9hZGVkIGZpbGVzLlxuICpcbiAqIElmIG5vdCBzZXQsIHRoZSBmaWxlIG5hbWUgd2lsbCBiZSB1c2VkIGFzIGlzLlxuICovXG5leHBvcnQgdHlwZSBTdG9yYWdlRmlsZVVwbG9hZENvbmZpZ0ZhY3RvcnkgPSAoZmlsZTogRmlsZSkgPT4gUHJvbWlzZU9yVmFsdWU8U3RvcmFnZUZpbGVVcGxvYWRDb25maWc+O1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIFN0b3JhZ2VGaWxlVXBsb2FkSGFuZGxlcigpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0b3JhZ2VGaWxlVXBsb2FkSGFuZGxlckNvbmZpZyB7XG4gIHJlYWRvbmx5IHN0b3JhZ2VTZXJ2aWNlOiBEYnhGaXJlYmFzZVN0b3JhZ2VTZXJ2aWNlO1xuICByZWFkb25seSBzdG9yYWdlRmlsZVVwbG9hZENvbmZpZ0ZhY3Rvcnk6IFN0b3JhZ2VGaWxlVXBsb2FkQ29uZmlnRmFjdG9yeTtcbn1cblxuLyoqXG4gKiBEZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIFN0b3JhZ2VGaWxlVXBsb2FkSGFuZGxlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0b3JhZ2VGaWxlVXBsb2FkSGFuZGxlcihjb25maWc6IFN0b3JhZ2VGaWxlVXBsb2FkSGFuZGxlckNvbmZpZyk6IFN0b3JhZ2VGaWxlVXBsb2FkSGFuZGxlciB7XG4gIGNvbnN0IHsgc3RvcmFnZVNlcnZpY2UsIHN0b3JhZ2VGaWxlVXBsb2FkQ29uZmlnRmFjdG9yeSB9ID0gY29uZmlnO1xuXG4gIGxldCByZXN1bWFibGU6IE1heWJlPFN0b3JhZ2VVcGxvYWRUYXNrPjtcblxuICByZXR1cm4ge1xuICAgIHVwbG9hZEZpbGU6IGFzeW5jIChmaWxlKSA9PiB7XG4gICAgICBjb25zdCBzdG9yYWdlRmlsZVVwbG9hZENvbmZpZyA9IGF3YWl0IHN0b3JhZ2VGaWxlVXBsb2FkQ29uZmlnRmFjdG9yeShmaWxlKTtcblxuICAgICAgY29uc3QgeyBzdG9yYWdlUGF0aCB9ID0gc3RvcmFnZUZpbGVVcGxvYWRDb25maWc7XG4gICAgICBjb25zdCBzdG9yYWdlQWNjZXNzb3JGaWxlID0gc3RvcmFnZVNlcnZpY2UuZmlsZShzdG9yYWdlUGF0aCk7XG5cbiAgICAgIGNvbnN0IHVwbG9hZCA9IG5ldyBPYnNlcnZhYmxlPERieEZpcmViYXNlU3RvcmFnZUZpbGVVcGxvYWRTdG9yZUZpbGVQcm9ncmVzcz4oKHgpID0+IHtcbiAgICAgICAgaWYgKHN0b3JhZ2VBY2Nlc3NvckZpbGUudXBsb2FkUmVzdW1hYmxlKSB7XG4gICAgICAgICAgcmVzdW1hYmxlID0gc3RvcmFnZUFjY2Vzc29yRmlsZS51cGxvYWRSZXN1bWFibGUoZmlsZSk7XG5cbiAgICAgICAgICAvLyBzdWJzY3JpYmUgdG8gdGhlIGV2ZW50IGJ5IHBpcGluZyB0aGlzIG9ic2VydmFibGUgdG8gaXRcbiAgICAgICAgICByZXN1bWFibGVcbiAgICAgICAgICAgIC5zdHJlYW1TbmFwc2hvdEV2ZW50cygpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgbWFwKCh4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBieXRlc1RyYW5zZmVycmVkLCB0b3RhbEJ5dGVzIH0gPSB4O1xuXG4gICAgICAgICAgICAgICAgY29uc3QgcHJvZ3Jlc3M6IERieEZpcmViYXNlU3RvcmFnZUZpbGVVcGxvYWRTdG9yZUZpbGVQcm9ncmVzcyA9IHtcbiAgICAgICAgICAgICAgICAgIGZpbGUsXG4gICAgICAgICAgICAgICAgICBmaWxlUmVmOiBzdG9yYWdlQWNjZXNzb3JGaWxlLFxuICAgICAgICAgICAgICAgICAgdXBsb2FkUmVmOiByZXN1bWFibGUsXG4gICAgICAgICAgICAgICAgICBieXRlc1RyYW5zZmVycmVkLFxuICAgICAgICAgICAgICAgICAgdG90YWxCeXRlcyxcbiAgICAgICAgICAgICAgICAgIHByb2dyZXNzOiBieXRlc1RyYW5zZmVycmVkIC8gdG90YWxCeXRlc1xuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvZ3Jlc3M7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBpZiBhbiBlcnJvciBvY2N1cnMsIGNhdGNoIGl0IGFuZCBlbWl0IGl0IGFzIGEgcHJvZ3Jlc3NcbiAgICAgICAgICAgICAgICBjb25zdCBwcm9ncmVzczogRGJ4RmlyZWJhc2VTdG9yYWdlRmlsZVVwbG9hZFN0b3JlRmlsZVByb2dyZXNzID0ge1xuICAgICAgICAgICAgICAgICAgZmlsZSxcbiAgICAgICAgICAgICAgICAgIGZpbGVSZWY6IHN0b3JhZ2VBY2Nlc3NvckZpbGUsXG4gICAgICAgICAgICAgICAgICB1cGxvYWRSZWY6IHJlc3VtYWJsZSxcbiAgICAgICAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgICAgICAgZmFpbGVkOiB0cnVlXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBvZihwcm9ncmVzcyk7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcigndXBsb2FkUmVzdW1hYmxlKCkgZnVuY3Rpb24gd2FzIHVuYXZhaWxhYmxlLicpO1xuICAgICAgICB9XG4gICAgICB9KS5waXBlKHNoYXJlUmVwbGF5KDEpKTtcblxuICAgICAgY29uc3QgaW5zdGFuY2U6IFN0b3JhZ2VGaWxlVXBsb2FkSGFuZGxlckluc3RhbmNlID0ge1xuICAgICAgICB1cGxvYWQsXG4gICAgICAgIHRhc2tSZWY6IHN0b3JhZ2VBY2Nlc3NvckZpbGUsXG4gICAgICAgIHBhdXNlOiAoKSA9PiByZXN1bWFibGU/LnBhdXNlKCkgPz8gZmFsc2UsXG4gICAgICAgIHJlc3VtZTogKCkgPT4gcmVzdW1hYmxlPy5yZXN1bWUoKSA/PyBmYWxzZSxcbiAgICAgICAgY2FuY2VsOiAoKSA9PiByZXN1bWFibGU/LmNhbmNlbCgpID8/IGZhbHNlXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gaW5zdGFuY2U7XG4gICAgfVxuICB9O1xufVxuXG4vLyBNQVJLOiBVcGxvYWQgRmlsZXNcbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmFnZUZpbGVVcGxvYWRGaWxlc0lucHV0IHtcbiAgcmVhZG9ubHkgdXBsb2FkSGFuZGxlcjogU3RvcmFnZUZpbGVVcGxvYWRIYW5kbGVyO1xuICAvKipcbiAgICogRmlsZXMgdG8gdXBsb2FkXG4gICAqL1xuICByZWFkb25seSBmaWxlczogRmlsZVtdO1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBtYXggcGFyYWxsZWwgdXBsb2FkcyB0byBwZXJmb3JtIGF0IGEgdGltZS5cbiAgICpcbiAgICogRGVmYXVsdHMgdG8gM1xuICAgKi9cbiAgcmVhZG9ubHkgbWF4UGFyYWxsZWxVcGxvYWRzPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0b3JhZ2VGaWxlVXBsb2FkRmlsZXNJbnN0YW5jZSB7XG4gIC8qKlxuICAgKiBDYW5jZWxzIHRoZSB1cGxvYWQgb2YgdGhlIHJlbWFpbmluZyBmaWxlcy5cbiAgICovXG4gIGNhbmNlbCgpOiB2b2lkO1xuICAvKipcbiAgICogVGhlIHVwbG9hZCBvYnNlcnZhYmxlLlxuICAgKlxuICAgKiBNdXN0IGJlIHN1YnNjcmliZWQgdG8gaW4gb3JkZXIgZm9yIHRoZSB1cGxvYWQgdG8gYmVnaW4uXG4gICAqL1xuICByZWFkb25seSB1cGxvYWQ6IE9ic2VydmFibGU8U3RvcmFnZUZpbGVVcGxvYWRGaWxlc0V2ZW50Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdG9yYWdlRmlsZVVwbG9hZEZpbGVzRXZlbnQge1xuICAvKipcbiAgICogQWxsIGZpbGVzIGJlaW5nIHVwbG9hZGVkXG4gICAqL1xuICByZWFkb25seSBhbGxGaWxlczogRmlsZVtdO1xuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIGFsbCBmaWxlcyBoYXZlIGJlZW4gdXBsb2FkZWQuXG4gICAqXG4gICAqIFRoZSByZXN1bHQgdmFsdWUgc2hvdWxkIGJlIGF2YWlsYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IGlzQ29tcGxldGU6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHVwbG9hZCB3YXMgY2FuY2VsZWQuXG4gICAqL1xuICByZWFkb25seSBpc0NhbmNlbGVkPzogTWF5YmU8Ym9vbGVhbj47XG4gIC8qKlxuICAgKiBUaGUgb3ZlcmFsbCBwcm9ncmVzcyBvZiBhbGwgZmlsZXMgYmVpbmcgdXBsb2FkZWQuXG4gICAqL1xuICByZWFkb25seSBvdmVyYWxsUHJvZ3Jlc3M6IFBlcmNlbnROdW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgdXBsb2FkIHByb2dyZXNzIHRoYXQgdHJpZ2dlcmVkIHRoaXMgZXZlbnQuXG4gICAqL1xuICByZWFkb25seSB1cGxvYWRQcm9ncmVzcz86IE1heWJlPERieEZpcmViYXNlU3RvcmFnZUZpbGVVcGxvYWRTdG9yZUZpbGVQcm9ncmVzcz47XG4gIC8qKlxuICAgKiBUaGUgZmluYWwgcmVzdWx0LlxuICAgKlxuICAgKiBTZXQgd2hlbiB0aGUgZmluYWwgZmlsZSBoYXMgYmVlbiB1cGxvYWRlZCBvciBmYWlsZWQuXG4gICAqL1xuICByZWFkb25seSByZXN1bHQ/OiBTdG9yYWdlRmlsZVVwbG9hZEZpbGVzRmluYWxSZXN1bHQ7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGZpbGVzIHRoYXQgYXJlIHN0aWxsIHVwbG9hZGluZyBvciBxdWV1ZWQgZm9yIHVwbG9hZC5cbiAgICovXG4gIHJlYWRvbmx5IGluY29tcGxldGVGaWxlQ291bnQ6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgZmlsZXMgdGhhdCBhcmUgYWN0aXZlLlxuICAgKi9cbiAgcmVhZG9ubHkgYWN0aXZlRmlsZUNvdW50OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGZpbGVzIHRoYXQgYXJlIGRvbmUuXG4gICAqL1xuICByZWFkb25seSBkb25lRmlsZUNvdW50OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmFnZUZpbGVVcGxvYWRGaWxlc0ZpbmFsUmVzdWx0IHtcbiAgcmVhZG9ubHkgc3RhcnRUaW1lOiBEYXRlO1xuICByZWFkb25seSBlbmRUaW1lOiBEYXRlO1xuICByZWFkb25seSBmaWxlUmVzdWx0czogU3RvcmFnZUZpbGVVcGxvYWRGaWxlc0ZpbmFsRmlsZVJlc3VsdFtdO1xuICByZWFkb25seSBzdWNjZXNzRmlsZVJlc3VsdHM6IFN0b3JhZ2VGaWxlVXBsb2FkRmlsZXNGaW5hbEZpbGVSZXN1bHRbXTtcbiAgcmVhZG9ubHkgZXJyb3JGaWxlUmVzdWx0czogU3RvcmFnZUZpbGVVcGxvYWRGaWxlc0ZpbmFsRmlsZVJlc3VsdFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0b3JhZ2VGaWxlVXBsb2FkRmlsZXNGaW5hbEZpbGVSZXN1bHQge1xuICAvKipcbiAgICogVGhlIHN0YXJ0IHRpbWUgb2YgdGhlIGZpbGUgdXBsb2FkLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhcnRUaW1lOiBEYXRlO1xuICAvKipcbiAgICogVGhlIGVuZCB0aW1lIG9mIHRoZSBmaWxlIHVwbG9hZCwgb3Igd2hlbiBpdCBmYWlsZWQgb3Igd2FzIGNhbmNlbGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5kVGltZTogRGF0ZTtcbiAgLyoqXG4gICAqIFRoZSBmaWxlIHRoYXQgd2FzIHVwbG9hZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZTogRmlsZTtcbiAgLyoqXG4gICAqIFRoZSBhY2Nlc3NvciBmaWxlIGZvciB0aGUgZmlsZSwgaWYgYXZhaWxhYmxlLlxuICAgKlxuICAgKiBJcyBnZW5lcmFsbHkgYXZhaWxhYmxlIGlmIHN1Y2Nlc3MgaXMgdHJ1ZS5cbiAgICovXG4gIHJlYWRvbmx5IGZpbGVSZWY/OiBNYXliZTxGaXJlYmFzZVN0b3JhZ2VBY2Nlc3NvckZpbGU+O1xuICAvKipcbiAgICogVHJ1ZSBpZiB0aGUgZmlsZSB3YXMgdXBsb2FkZWQgc3VjY2Vzc2Z1bGx5LlxuICAgKi9cbiAgcmVhZG9ubHkgc3VjY2VzczogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEVycm9yIGlmIHRoZSBmaWxlIGZhaWxlZCB0byB1cGxvYWQuXG4gICAqL1xuICByZWFkb25seSBlcnJvcj86IE1heWJlPHVua25vd24+O1xuICAvKipcbiAgICogVHJ1ZSBpZiB0aGUgZmlsZSB1cGxvYWQgd2FzIGNhbmNlbGxlZC5cbiAgICovXG4gIHJlYWRvbmx5IGNhbmNlbGVkPzogTWF5YmU8Ym9vbGVhbj47XG59XG5cbi8qKlxuICogVXBsb2FkcyBmaWxlcyB1c2luZyB0aGUgcHJvdmlkZWQgdXBsb2FkIGhhbmRsZXIgYW5kIGZpbGVzLlxuICpcbiAqIEFuIG9ic2VydmFibGUgaXMgcmV0dXJuZWQgdGhhdCBlbWl0cyB0aGUgbGF0ZXN0IGZpbGUgZXZlbnRzIGZyb20gYW55IGZpbGUgdGhhdCBpcyBiZWluZyB1cGxvYWRlZC5cbiAqXG4gKiBAcGFyYW0gaW5wdXRcbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdG9yYWdlRmlsZVVwbG9hZEZpbGVzKGlucHV0OiBTdG9yYWdlRmlsZVVwbG9hZEZpbGVzSW5wdXQpOiBTdG9yYWdlRmlsZVVwbG9hZEZpbGVzSW5zdGFuY2Uge1xuICBjb25zdCB7IHVwbG9hZEhhbmRsZXIsIGZpbGVzLCBtYXhQYXJhbGxlbFVwbG9hZHM6IGlucHV0TWF4UGFyYWxsZWxVcGxvYWRzIH0gPSBpbnB1dDtcbiAgY29uc3QgbWF4UGFyYWxsZWxUYXNrcyA9IGlucHV0TWF4UGFyYWxsZWxVcGxvYWRzID8/IDM7XG5cbiAgY29uc3QgbXVsdGlVcGxvYWRzU3Vic2NyaXB0aW9uT2JqZWN0ID0gbmV3IE11bHRpU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG5cbiAgLy8gYmVnaW4gdGhlIHVwbG9hZCBmb3IgZWFjaCBmaWxlXG4gIGNvbnN0IGFsbEZpbGVzID0gQXJyYXkuZnJvbShmaWxlcyk7XG5cbiAgLy8gdW5zdWJzY3JpYmUgZnJvbSBhbGwgcHJldmlvdXMgdXBsb2Fkc1xuICBtdWx0aVVwbG9hZHNTdWJzY3JpcHRpb25PYmplY3QudW5zdWIoKTtcblxuICBpbnRlcmZhY2UgVXBkYXRlVXBsb2FkUHJvZ3Jlc3NJbnB1dCB7XG4gICAgLyoqXG4gICAgICogVGhlIGZpbGUgaW5kZXggbnVtYmVyLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGluZGV4OiBJbmRleE51bWJlcjtcbiAgICAvKipcbiAgICAgKiBUaGUgbmV4dCBwcm9ncmVzcyBldmVudCwgaWYgYXBwbGljYWJsZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBuZXh0UHJvZ3Jlc3M/OiBNYXliZTxEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlVXBsb2FkU3RvcmVGaWxlUHJvZ3Jlc3M+O1xuICAgIC8qKlxuICAgICAqIEFuIGVycm9yIHRoYXQgb2NjdXJlZCBvdXRzaWRlIG9mIHRoZSBuZXh0UHJvZ3Jlc3MsIGlmIGFwcGxpY2FibGUuXG4gICAgICpcbiAgICAgKiBUaGVzZSBhcmUgdHlwaWNhbGx5IFwidW5jYXVnaHRcIiBlcnJvcnMuXG4gICAgICovXG4gICAgcmVhZG9ubHkgbm9uUHJvZ3Jlc3NFcnJvcj86IE1heWJlPHVua25vd24+O1xuICAgIC8qKlxuICAgICAqIFBhc3NlZCBhcyB0cnVlIHdoZW4gdGhlIHVwbG9hZCB0YXNrIGlzIGRvbmUuXG4gICAgICpcbiAgICAgKiBUaGlzIGlzIGFsc28gaW5mZXJyZWQgYXMgdHJ1ZSB3aGVuIGEgcHJvZ3Jlc3MgZXJyb3Igb2NjdXJzIGZvciBhbiB1cGxvYWQuXG4gICAgICpcbiAgICAgKiBEb2VzIG5vdCBzcGVjaWZ5IHdoZXRoZXIgb3Igbm90IHN1Y2Nlc3Mgd2FzIGFjaGlldmVkIG9yIG5vdC5cbiAgICAgKi9cbiAgICByZWFkb25seSBmaWxlVXBsb2FkVGFza0RvbmU/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFRydWUgaWYgdGhlIHVwbG9hZCB3YXMgY2FuY2VsZWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgY2FuY2VsZWQ/OiBib29sZWFuO1xuICB9XG5cbiAgaW50ZXJmYWNlIEZpbGVVcGxvYWREZXRhaWxzIHtcbiAgICByZWFkb25seSBmaWxlOiBGaWxlO1xuICAgIC8qKlxuICAgICAqIFRoZSBjdXJyZW50IHVwbG9hZCBpbnN0YW5jZSBmb3IgdGhlIGZpbGUuXG4gICAgICpcbiAgICAgKiBTZXQgaWYgdGhlIGZpbGUgaXMgY3VycmVudGx5IHVwbG9hZGluZy5cbiAgICAgKi9cbiAgICB1cGxvYWRJbnN0YW5jZT86IFN0b3JhZ2VGaWxlVXBsb2FkSGFuZGxlckluc3RhbmNlO1xuICAgIGZpbGVSZWY/OiBNYXliZTxGaXJlYmFzZVN0b3JhZ2VBY2Nlc3NvckZpbGU+O1xuICAgIHN0YXJ0VGltZT86IERhdGU7XG4gICAgZW5kVGltZT86IERhdGU7XG4gICAgc3VjY2Vzcz86IGJvb2xlYW47XG4gICAgY2FuY2VsZWQ/OiBNYXliZTxib29sZWFuPjtcbiAgICBlcnJvcj86IE1heWJlPHVua25vd24+O1xuICB9XG5cbiAgY29uc3QgYWxsRmlsZXNBbmRMYXRlc3RQcm9ncmVzczogTWF5YmU8RGJ4RmlyZWJhc2VTdG9yYWdlRmlsZVVwbG9hZFN0b3JlRmlsZVByb2dyZXNzPltdID0gbmV3IEFycmF5KGFsbEZpbGVzLmxlbmd0aCk7XG4gIGNvbnN0IGFsbEZpbGVzQW5kRGV0YWlsczogRmlsZVVwbG9hZERldGFpbHNbXSA9IGFsbEZpbGVzLm1hcCgoZmlsZSkgPT4gKHsgZmlsZSB9KSk7XG4gIGNvbnN0IG92ZXJhbGxQcm9ncmVzc1BlckNvbXBsZXRlZEZpbGU6IFBlcmNlbnREZWNpbWFsID0gKDEgLyBhbGxGaWxlc0FuZExhdGVzdFByb2dyZXNzLmxlbmd0aCkgYXMgUGVyY2VudERlY2ltYWw7XG5cbiAgLyoqXG4gICAqIE9uY2Ugc2V0LCBhbnkgbmV3IGZpbGUgdXBsb2FkIHRhc2sgdGhhdCBoaXRzIHRoaXMgd2lsbCByZXR1cm4gYW4gY2FuY2VsIGZhaWx1cmUuXG4gICAqL1xuICBsZXQgZmxhZ2dlZENhbmNlbCA9IGZhbHNlO1xuXG4gIGNvbnN0IGNhbmNlbCA9ICgpID0+IHtcbiAgICBmbGFnZ2VkQ2FuY2VsID0gdHJ1ZTtcbiAgfTtcblxuICBjb25zdCB1cGxvYWQgPSBuZXcgT2JzZXJ2YWJsZTxTdG9yYWdlRmlsZVVwbG9hZEZpbGVzRXZlbnQ+KChzdWJzY3JpYmVyKSA9PiB7XG4gICAgY29uc3Qgb3ZlcmFsbFN0YXJ0VGltZSA9IG5ldyBEYXRlKCk7XG5cbiAgICBjb25zdCBpbmNvbXBsZXRlRmlsZUZpbGVJbmRleGVzID0gbmV3IFNldDxJbmRleE51bWJlcj4oYWxsRmlsZXMubWFwKChfLCBpbmRleCkgPT4gaW5kZXgpKTtcbiAgICBjb25zdCBhY3RpdmVGaWxlSW5kZXhlcyA9IG5ldyBTZXQ8SW5kZXhOdW1iZXI+KCk7XG4gICAgY29uc3QgZG9uZUZpbGVJbmRleGVzID0gbmV3IFNldDxJbmRleE51bWJlcj4oKTtcbiAgICBsZXQgbGF0ZXN0T3ZlcmFsbFByb2dyZXNzOiBQZXJjZW50TnVtYmVyID0gMDtcblxuICAgIGZ1bmN0aW9uIG9uU3RhcnRGaWxlVXBsb2FkKGluZGV4OiBJbmRleE51bWJlciwgdXBsb2FkSW5zdGFuY2U6IFN0b3JhZ2VGaWxlVXBsb2FkSGFuZGxlckluc3RhbmNlKSB7XG4gICAgICBhY3RpdmVGaWxlSW5kZXhlcy5hZGQoaW5kZXgpO1xuICAgICAgYWxsRmlsZXNBbmREZXRhaWxzW2luZGV4XS5zdGFydFRpbWUgPSBuZXcgRGF0ZSgpO1xuICAgICAgYWxsRmlsZXNBbmREZXRhaWxzW2luZGV4XS51cGxvYWRJbnN0YW5jZSA9IHVwbG9hZEluc3RhbmNlO1xuICAgICAgYWxsRmlsZXNBbmREZXRhaWxzW2luZGV4XS5maWxlUmVmID0gdXBsb2FkSW5zdGFuY2UudGFza1JlZjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBvblN0YXJ0RmlsZVVwbG9hZEZsYWdnZWRDYW5jZWxsZWQoaW5kZXg6IEluZGV4TnVtYmVyKSB7XG4gICAgICBhbGxGaWxlc0FuZERldGFpbHNbaW5kZXhdLnN0YXJ0VGltZSA9IG5ldyBEYXRlKCk7XG5cbiAgICAgIC8vIGltbWVkaWF0ZWx5IG1hcmsgaXQgZG9uZVxuICAgICAgX21hcmtGaWxlVXBsb2FkRG9uZShpbmRleCwgdHJ1ZSk7XG5cbiAgICAgIC8vIGVtaXQgbmV3IHByb2dyZXNzIGV2ZW50XG4gICAgICBfZW1pdEV2ZW50KCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gX21hcmtGaWxlVXBsb2FkRG9uZShmaWxlSW5kZXg6IEluZGV4TnVtYmVyLCBmaW5hbEVycm9yPzogTWF5YmU8dW5rbm93bj4pIHtcbiAgICAgIGRvbmVGaWxlSW5kZXhlcy5hZGQoZmlsZUluZGV4KTsgLy8gYWRkIHRvIGRvbmUgZmlsZSBpbmRleGVzXG4gICAgICBhY3RpdmVGaWxlSW5kZXhlcy5kZWxldGUoZmlsZUluZGV4KTsgLy8gcmVtb3ZlIGZyb20gYWN0aXZlIGZpbGUgaW5kZXhlcyBpZiBpdCBleGlzdHNcbiAgICAgIGluY29tcGxldGVGaWxlRmlsZUluZGV4ZXMuZGVsZXRlKGZpbGVJbmRleCk7IC8vIHJlbW92ZSBmcm9tIGluY29tcGxldGUgZmlsZSBpbmRleGVzXG5cbiAgICAgIC8vIHVwZGF0ZSBkZXRhaWxzXG4gICAgICBhbGxGaWxlc0FuZERldGFpbHNbZmlsZUluZGV4XS5lbmRUaW1lID0gbmV3IERhdGUoKTtcblxuICAgICAgY29uc3QgZXJyb3IgPSBmaW5hbEVycm9yID8/IGFsbEZpbGVzQW5kRGV0YWlsc1tmaWxlSW5kZXhdLmVycm9yO1xuICAgICAgYWxsRmlsZXNBbmREZXRhaWxzW2ZpbGVJbmRleF0uc3VjY2VzcyA9ICFlcnJvcjtcbiAgICAgIGFsbEZpbGVzQW5kRGV0YWlsc1tmaWxlSW5kZXhdLmVycm9yID0gZXJyb3I7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdXBkYXRlVXBsb2FkUHJvZ3Jlc3MoaW5wdXQ6IFVwZGF0ZVVwbG9hZFByb2dyZXNzSW5wdXQpIHtcbiAgICAgIGNvbnN0IHsgaW5kZXg6IGZpbGVJbmRleCwgbmV4dFByb2dyZXNzLCBmaWxlVXBsb2FkVGFza0RvbmU6IGlucHV0RmlsZVVwbG9hZFRhc2tEb25lLCBub25Qcm9ncmVzc0Vycm9yIH0gPSBpbnB1dDtcbiAgICAgIGNvbnN0IGVycm9yID0gbm9uUHJvZ3Jlc3NFcnJvciA/PyBuZXh0UHJvZ3Jlc3M/LmVycm9yO1xuICAgICAgY29uc3QgZmlsZVVwbG9hZFRhc2tEb25lID0gaW5wdXRGaWxlVXBsb2FkVGFza0RvbmUgPz8gQm9vbGVhbihlcnJvcik7XG5cbiAgICAgIC8vIHRoZSB0YXNrIG1heSBhbHJlYWR5IGJlIGRvbmUsIGFzIGFmdGVyIGEgcHJvZ3Jlc3MtcmVsYXRlZCBlcnJvciB0aGUgY29tcGxldGUgdGFzayBjYW4gZ2V0IGNhbGxlZC5cbiAgICAgIGNvbnN0IGlzVGFza0FscmVhZHlEb25lID0gYWxsRmlsZXNBbmREZXRhaWxzW2ZpbGVJbmRleF0uZW5kVGltZSAhPSBudWxsO1xuXG4gICAgICBpZiAoIWlzVGFza0FscmVhZHlEb25lKSB7XG4gICAgICAgIGxldCBuZXh0T3ZlcmFsbFByb2dyZXNzID0gbGF0ZXN0T3ZlcmFsbFByb2dyZXNzO1xuICAgICAgICBjb25zdCBuZXh0UHJvZ3Jlc3NQZXJjZW50ID0gZmlsZVVwbG9hZFRhc2tEb25lID8gMTAwIDogKG5leHRQcm9ncmVzcz8ucHJvZ3Jlc3MgPz8gMCkgKiAxMDA7XG5cbiAgICAgICAgLy8gdXBkYXRlIHRoZSBvdmVyYWxsIHByb2dyZXNzIHBlcmNlbnRhZ2VcbiAgICAgICAgaWYgKG5leHRQcm9ncmVzc1BlcmNlbnQpIHtcbiAgICAgICAgICAvLyB1cGRhdGUgdGhlIG92ZXJhbGwgcGVyY2VudGFnZVxuICAgICAgICAgIGNvbnN0IHByZXZpb3VzUHJvZ3Jlc3MgPSBhbGxGaWxlc0FuZExhdGVzdFByb2dyZXNzW2ZpbGVJbmRleF07XG4gICAgICAgICAgY29uc3QgcHJldmlvdXNQcm9ncmVzc1BlcmNlbnQgPSBwcmV2aW91c1Byb2dyZXNzPy5wcm9ncmVzcyAhPSBudWxsID8gcHJldmlvdXNQcm9ncmVzcy5wcm9ncmVzcyAqIDEwMCA6IDA7XG4gICAgICAgICAgY29uc3QgcHJvZ3Jlc3NQZXJjZW50Q2hhbmdlID0gbmV4dFByb2dyZXNzUGVyY2VudCAtIHByZXZpb3VzUHJvZ3Jlc3NQZXJjZW50O1xuXG4gICAgICAgICAgLy8gaW5jcmVhc2Ugb3ZlcmFsbCBwcm9ncmVzcyBieSB0aGUgY2hhbmdlXG4gICAgICAgICAgbmV4dE92ZXJhbGxQcm9ncmVzcyArPSBwcm9ncmVzc1BlcmNlbnRDaGFuZ2UgKiBvdmVyYWxsUHJvZ3Jlc3NQZXJDb21wbGV0ZWRGaWxlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdXBkYXRlIHRoZSBmaWxlIHByb2dyZXNzXG4gICAgICAgIGlmIChuZXh0UHJvZ3Jlc3MpIHtcbiAgICAgICAgICAvLyB1cGRhdGUgdGhlIGxhdGVzdCBGaWxlUHJvZ3Jlc3NcbiAgICAgICAgICBhbGxGaWxlc0FuZExhdGVzdFByb2dyZXNzW2ZpbGVJbmRleF0gPSBuZXh0UHJvZ3Jlc3M7XG5cbiAgICAgICAgICAvLyBvbmx5IHNldCBmaWxlUmVmIG9uY2VcbiAgICAgICAgICBpZiAoIWFsbEZpbGVzQW5kRGV0YWlsc1tmaWxlSW5kZXhdLmZpbGVSZWYpIHtcbiAgICAgICAgICAgIGFsbEZpbGVzQW5kRGV0YWlsc1tmaWxlSW5kZXhdLmZpbGVSZWYgPSBuZXh0UHJvZ3Jlc3MuZmlsZVJlZjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBpZiBjb21wbGV0ZSwgdXBkYXRlIHRoZSBpbmRleGVzIGFuZCBkZXRhaWxzXG4gICAgICAgIGlmIChmaWxlVXBsb2FkVGFza0RvbmUpIHtcbiAgICAgICAgICBfbWFya0ZpbGVVcGxvYWREb25lKGZpbGVJbmRleCwgZXJyb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdXBkYXRlIHRoZSBvdmVyYWxsIHByb2dyZXNzXG4gICAgICAgIGxhdGVzdE92ZXJhbGxQcm9ncmVzcyA9IG5leHRPdmVyYWxsUHJvZ3Jlc3M7XG5cbiAgICAgICAgLy8gZW1pdCB0aGUgZXZlbnQgdG8gc2VuZCBpdFxuICAgICAgICBfZW1pdEV2ZW50KG5leHRQcm9ncmVzcyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gX2VtaXRFdmVudChuZXh0UHJvZ3Jlc3M/OiBNYXliZTxEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlVXBsb2FkU3RvcmVGaWxlUHJvZ3Jlc3M+KSB7XG4gICAgICBjb25zdCBpc0NvbXBsZXRlID0gaW5jb21wbGV0ZUZpbGVGaWxlSW5kZXhlcy5zaXplID09PSAwO1xuXG4gICAgICBsZXQgb3ZlcmFsbFByb2dyZXNzID0gbGF0ZXN0T3ZlcmFsbFByb2dyZXNzO1xuICAgICAgbGV0IHJlc3VsdDogTWF5YmU8U3RvcmFnZUZpbGVVcGxvYWRGaWxlc0ZpbmFsUmVzdWx0PiA9IHVuZGVmaW5lZDtcblxuICAgICAgaWYgKGlzQ29tcGxldGUpIHtcbiAgICAgICAgb3ZlcmFsbFByb2dyZXNzID0gMTAwOyAvLyBzZXQgdG8gMTAwJVxuICAgICAgICBjb25zdCBvdmVyYWxsRW5kVGltZSA9IG5ldyBEYXRlKCk7XG5cbiAgICAgICAgY29uc3QgZmlsZVJlc3VsdHMgPSBhbGxGaWxlcy5tYXAoKGZpbGUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0OiBTdG9yYWdlRmlsZVVwbG9hZEZpbGVzRmluYWxGaWxlUmVzdWx0ID0ge1xuICAgICAgICAgICAgc3RhcnRUaW1lOiBhbGxGaWxlc0FuZERldGFpbHNbaW5kZXhdLnN0YXJ0VGltZSBhcyBEYXRlLFxuICAgICAgICAgICAgZW5kVGltZTogYWxsRmlsZXNBbmREZXRhaWxzW2luZGV4XS5lbmRUaW1lIGFzIERhdGUsXG4gICAgICAgICAgICBmaWxlLFxuICAgICAgICAgICAgZmlsZVJlZjogYWxsRmlsZXNBbmREZXRhaWxzW2luZGV4XS5maWxlUmVmLFxuICAgICAgICAgICAgc3VjY2VzczogIWFsbEZpbGVzQW5kRGV0YWlsc1tpbmRleF0uZXJyb3IsXG4gICAgICAgICAgICBlcnJvcjogYWxsRmlsZXNBbmREZXRhaWxzW2luZGV4XS5lcnJvclxuICAgICAgICAgIH07XG5cbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCB7IGluY2x1ZGVkOiBzdWNjZXNzRmlsZVJlc3VsdHMsIGV4Y2x1ZGVkOiBlcnJvckZpbGVSZXN1bHRzIH0gPSBzZXBhcmF0ZVZhbHVlcyhmaWxlUmVzdWx0cywgKHgpID0+IHguc3VjY2Vzcyk7XG5cbiAgICAgICAgLy8gYWxsIGFyZSBkb25lLCBzZXQgdGhlIHJlc3VsdCBvbiB0aGUgbmV4dCBldmVudFxuICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgc3RhcnRUaW1lOiBvdmVyYWxsU3RhcnRUaW1lLFxuICAgICAgICAgIGVuZFRpbWU6IG92ZXJhbGxFbmRUaW1lLFxuICAgICAgICAgIHN1Y2Nlc3NGaWxlUmVzdWx0cyxcbiAgICAgICAgICBlcnJvckZpbGVSZXN1bHRzLFxuICAgICAgICAgIGZpbGVSZXN1bHRzXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5leHRFdmVudDogU3RvcmFnZUZpbGVVcGxvYWRGaWxlc0V2ZW50ID0ge1xuICAgICAgICBhbGxGaWxlcyxcbiAgICAgICAgaXNDb21wbGV0ZSxcbiAgICAgICAgb3ZlcmFsbFByb2dyZXNzLFxuICAgICAgICB1cGxvYWRQcm9ncmVzczogbmV4dFByb2dyZXNzLFxuICAgICAgICBpbmNvbXBsZXRlRmlsZUNvdW50OiBpbmNvbXBsZXRlRmlsZUZpbGVJbmRleGVzLnNpemUsXG4gICAgICAgIGFjdGl2ZUZpbGVDb3VudDogYWN0aXZlRmlsZUluZGV4ZXMuc2l6ZSxcbiAgICAgICAgZG9uZUZpbGVDb3VudDogZG9uZUZpbGVJbmRleGVzLnNpemUsXG4gICAgICAgIHJlc3VsdFxuICAgICAgfTtcblxuICAgICAgc3Vic2NyaWJlci5uZXh0KG5leHRFdmVudCk7XG4gICAgfVxuXG4gICAgYXN5bmMgZnVuY3Rpb24gcnVuVXBsb2FkVGFza0ZvckZpbGUoW2ZpbGUsIGluZGV4XTogcmVhZG9ubHkgW0ZpbGUsIEluZGV4TnVtYmVyXSkge1xuICAgICAgaWYgKGZsYWdnZWRDYW5jZWwpIHtcbiAgICAgICAgb25TdGFydEZpbGVVcGxvYWRGbGFnZ2VkQ2FuY2VsbGVkKGluZGV4KTtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHtcbiAgICAgICAgY29uc3QgdXBkYXRlRmlsZVVwbG9hZFByb2dyZXNzID0gKG5leHRQcm9ncmVzczogRGJ4RmlyZWJhc2VTdG9yYWdlRmlsZVVwbG9hZFN0b3JlRmlsZVByb2dyZXNzKSA9PiB7XG4gICAgICAgICAgLy8gdXBkYXRlIHRoZSBwcm9ncmVzc1xuICAgICAgICAgIHVwZGF0ZVVwbG9hZFByb2dyZXNzKHtcbiAgICAgICAgICAgIGluZGV4LFxuICAgICAgICAgICAgbmV4dFByb2dyZXNzXG4gICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgdXBkYXRlRmlsZVVwbG9hZFByb2dyZXNzV2l0aFVuY2F1Z2h0RXJyb3IgPSAoZXJyb3I6IHVua25vd24pID0+IHtcbiAgICAgICAgICAvLyBlcnJvciBvY2N1cnJlZCwgdXBkYXRlIHRoZSBwcm9ncmVzcyB3aXRoIHRoZSBlcnJvclxuICAgICAgICAgIHVwZGF0ZVVwbG9hZFByb2dyZXNzKHtcbiAgICAgICAgICAgIGluZGV4LFxuICAgICAgICAgICAgbm9uUHJvZ3Jlc3NFcnJvcjogZXJyb3IsXG4gICAgICAgICAgICBmaWxlVXBsb2FkVGFza0RvbmU6IHRydWVcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIC8vIGFsd2F5cyByZXNvbHZlLCBuZXZlciByZWplY3RcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgY29tcGxldGVGaWxlVXBsb2FkUHJvZ3Jlc3MgPSAoKSA9PiB7XG4gICAgICAgICAgdXBkYXRlVXBsb2FkUHJvZ3Jlc3Moe1xuICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICBmaWxlVXBsb2FkVGFza0RvbmU6IHRydWVcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyB1cGxvYWQgdGhlIGZpbGUsIHN1YnNjcmliZSB0byB0aGUgcHJvZ3Jlc3NcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB1cGxvYWRIYW5kbGVyXG4gICAgICAgICAgICAudXBsb2FkRmlsZShmaWxlKVxuICAgICAgICAgICAgLnRoZW4oKHVwbG9hZEluc3RhbmNlKSA9PiB7XG4gICAgICAgICAgICAgIC8vIGFkZCB0byBhY3RpdmUgZmlsZSBpbmRleGVzXG4gICAgICAgICAgICAgIG9uU3RhcnRGaWxlVXBsb2FkKGluZGV4LCB1cGxvYWRJbnN0YW5jZSk7XG5cbiAgICAgICAgICAgICAgY29uc3QgdXBsb2FkU3Vic2NyaXB0aW9uID0gdXBsb2FkSW5zdGFuY2UudXBsb2FkLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogdXBkYXRlRmlsZVVwbG9hZFByb2dyZXNzLFxuICAgICAgICAgICAgICAgIGVycm9yOiB1cGRhdGVGaWxlVXBsb2FkUHJvZ3Jlc3NXaXRoVW5jYXVnaHRFcnJvcixcbiAgICAgICAgICAgICAgICBjb21wbGV0ZTogY29tcGxldGVGaWxlVXBsb2FkUHJvZ3Jlc3NcbiAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgbXVsdGlVcGxvYWRzU3Vic2NyaXB0aW9uT2JqZWN0LmFkZFN1YnModXBsb2FkU3Vic2NyaXB0aW9uKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2godXBkYXRlRmlsZVVwbG9hZFByb2dyZXNzV2l0aFVuY2F1Z2h0RXJyb3IpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIHVwZGF0ZUZpbGVVcGxvYWRQcm9ncmVzc1dpdGhVbmNhdWdodEVycm9yKGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gcnVuIHVwbG9hZCB0YXNrIGZvciBlYWNoIGZpbGVcbiAgICBjb25zdCBmaWxlVHVwbGVzID0gYWxsRmlsZXMubWFwKChmaWxlLCBpbmRleCkgPT4gW2ZpbGUsIGluZGV4XSBhcyBjb25zdCk7XG5cbiAgICBydW5Bc3luY1Rhc2tzRm9yVmFsdWVzKGZpbGVUdXBsZXMsIHJ1blVwbG9hZFRhc2tGb3JGaWxlLCB7XG4gICAgICBtYXhQYXJhbGxlbFRhc2tzLFxuICAgICAgcmV0cmllc0FsbG93ZWQ6IDAgLy8gbm8gcmV0cmllcyBhbGxvd2VkXG4gICAgfSkudGhlbigoKSA9PiB7XG4gICAgICAvLyBhbGwgdGFza3MgYXJlIGZpbmlzaGVkLiBDb21wbGV0ZSB0aGUgc3Vic2NyaWJlci5cbiAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICB9KTtcbiAgfSkucGlwZShzaGFyZVJlcGxheSgxKSk7XG5cbiAgY29uc3QgaW5zdGFuY2U6IFN0b3JhZ2VGaWxlVXBsb2FkRmlsZXNJbnN0YW5jZSA9IHtcbiAgICBjYW5jZWwsXG4gICAgdXBsb2FkXG4gIH07XG5cbiAgcmV0dXJuIGluc3RhbmNlO1xufVxuIl19
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { Directive, inject, input } from '@angular/core';
|
|
2
|
-
import { DbxFirebaseStorageFileUploadStore, StorageFileDocumentStore } from '../store';
|
|
3
|
-
import { AbstractSubscriptionDirective, DbxActionContextStoreSourceInstance, DbxActionHandlerInstance } from '@dereekb/dbx-core';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
/**
|
|
6
|
-
* Directive that passes the upload result to a StorageFileDocumentStore to initialize the document immediately.
|
|
7
|
-
*
|
|
8
|
-
* Use with a DbxAction instance.
|
|
9
|
-
*/
|
|
10
|
-
export class DbxFirebaseStorageFileUploadInitializeDocumentDirective extends AbstractSubscriptionDirective {
|
|
11
|
-
uploadStore = inject(DbxFirebaseStorageFileUploadStore);
|
|
12
|
-
storageFileDocumentStore = inject(StorageFileDocumentStore);
|
|
13
|
-
initializeWithExpediteProcessing = input();
|
|
14
|
-
source = inject((DbxActionContextStoreSourceInstance), { host: true });
|
|
15
|
-
_dbxActionHandlerInstance = new DbxActionHandlerInstance(this.source);
|
|
16
|
-
constructor() {
|
|
17
|
-
super();
|
|
18
|
-
// set the trigger
|
|
19
|
-
this.sub = this.uploadStore.uploadResult$.subscribe(async (result) => {
|
|
20
|
-
const successFileResult = result.successFileResults.find((x) => x.fileRef != null);
|
|
21
|
-
const fileRef = successFileResult?.fileRef;
|
|
22
|
-
if (fileRef) {
|
|
23
|
-
this.source.triggerWithValue(fileRef);
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
// set the handler function
|
|
27
|
-
this._dbxActionHandlerInstance.setHandlerFunction((fileRef, context) => {
|
|
28
|
-
context.startWorkingWithLoadingStateObservable(this.storageFileDocumentStore.initializeStorageFileFromUpload({
|
|
29
|
-
pathString: fileRef.storagePath.pathString,
|
|
30
|
-
bucketId: fileRef.storagePath.bucketId,
|
|
31
|
-
expediteProcessing: this.initializeWithExpediteProcessing() ?? undefined
|
|
32
|
-
}));
|
|
33
|
-
});
|
|
34
|
-
this._dbxActionHandlerInstance.init();
|
|
35
|
-
}
|
|
36
|
-
ngOnDestroy() {
|
|
37
|
-
super.ngOnDestroy();
|
|
38
|
-
this._dbxActionHandlerInstance.destroy();
|
|
39
|
-
}
|
|
40
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseStorageFileUploadInitializeDocumentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
41
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: DbxFirebaseStorageFileUploadInitializeDocumentDirective, isStandalone: true, selector: "[dbxFirebaseStorageFileUploadInitializeDocument]", inputs: { initializeWithExpediteProcessing: { classPropertyName: "initializeWithExpediteProcessing", publicName: "initializeWithExpediteProcessing", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["dbxFirebaseStorageFileUploadInitializeDocument"], usesInheritance: true, ngImport: i0 });
|
|
42
|
-
}
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseStorageFileUploadInitializeDocumentDirective, decorators: [{
|
|
44
|
-
type: Directive,
|
|
45
|
-
args: [{
|
|
46
|
-
selector: '[dbxFirebaseStorageFileUploadInitializeDocument]',
|
|
47
|
-
exportAs: 'dbxFirebaseStorageFileUploadInitializeDocument',
|
|
48
|
-
standalone: true
|
|
49
|
-
}]
|
|
50
|
-
}], ctorParameters: () => [] });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZWZpbGUudXBsb2FkLmluaXRpYWxpemUuZG9jdW1lbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kdWxlcy9zdG9yYWdlZmlsZS9jb250YWluZXIvc3RvcmFnZWZpbGUudXBsb2FkLmluaXRpYWxpemUuZG9jdW1lbnQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdkYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLG1DQUFtQyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBSWpJOzs7O0dBSUc7QUFNSCxNQUFNLE9BQU8sdURBQXdELFNBQVEsNkJBQTZCO0lBQy9GLFdBQVcsR0FBRyxNQUFNLENBQUMsaUNBQWlDLENBQUMsQ0FBQztJQUN4RCx3QkFBd0IsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUU1RCxnQ0FBZ0MsR0FBRyxLQUFLLEVBQWtCLENBQUM7SUFFbkQsTUFBTSxHQUE4RixNQUFNLENBQUMsQ0FBQSxtQ0FBeUYsQ0FBQSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdE4seUJBQXlCLEdBQUcsSUFBSSx3QkFBd0IsQ0FBdUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRTdJO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFFUixrQkFBa0I7UUFDbEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ25FLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQztZQUNuRixNQUFNLE9BQU8sR0FBRyxpQkFBaUIsRUFBRSxPQUFPLENBQUM7WUFFM0MsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDWixJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3hDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILDJCQUEyQjtRQUMzQixJQUFJLENBQUMseUJBQXlCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDckUsT0FBTyxDQUFDLHNDQUFzQyxDQUM1QyxJQUFJLENBQUMsd0JBQXdCLENBQUMsK0JBQStCLENBQUM7Z0JBQzVELFVBQVUsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLFVBQVU7Z0JBQzFDLFFBQVEsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLFFBQVE7Z0JBQ3RDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxJQUFJLFNBQVM7YUFDekUsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRVEsV0FBVztRQUNsQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNDLENBQUM7d0dBdkNVLHVEQUF1RDs0RkFBdkQsdURBQXVEOzs0RkFBdkQsdURBQXVEO2tCQUxuRSxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrREFBa0Q7b0JBQzVELFFBQVEsRUFBRSxnREFBZ0Q7b0JBQzFELFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBpbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlVXBsb2FkU3RvcmUsIFN0b3JhZ2VGaWxlRG9jdW1lbnRTdG9yZSB9IGZyb20gJy4uL3N0b3JlJztcbmltcG9ydCB7IEFic3RyYWN0U3Vic2NyaXB0aW9uRGlyZWN0aXZlLCBEYnhBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2VJbnN0YW5jZSwgRGJ4QWN0aW9uSGFuZGxlckluc3RhbmNlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgRmlyZWJhc2VTdG9yYWdlQWNjZXNzb3JGaWxlLCBPbkNhbGxDcmVhdGVNb2RlbFJlc3VsdCB9IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5cbi8qKlxuICogRGlyZWN0aXZlIHRoYXQgcGFzc2VzIHRoZSB1cGxvYWQgcmVzdWx0IHRvIGEgU3RvcmFnZUZpbGVEb2N1bWVudFN0b3JlIHRvIGluaXRpYWxpemUgdGhlIGRvY3VtZW50IGltbWVkaWF0ZWx5LlxuICpcbiAqIFVzZSB3aXRoIGEgRGJ4QWN0aW9uIGluc3RhbmNlLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGJ4RmlyZWJhc2VTdG9yYWdlRmlsZVVwbG9hZEluaXRpYWxpemVEb2N1bWVudF0nLFxuICBleHBvcnRBczogJ2RieEZpcmViYXNlU3RvcmFnZUZpbGVVcGxvYWRJbml0aWFsaXplRG9jdW1lbnQnLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlU3RvcmFnZUZpbGVVcGxvYWRJbml0aWFsaXplRG9jdW1lbnREaXJlY3RpdmUgZXh0ZW5kcyBBYnN0cmFjdFN1YnNjcmlwdGlvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHJlYWRvbmx5IHVwbG9hZFN0b3JlID0gaW5qZWN0KERieEZpcmViYXNlU3RvcmFnZUZpbGVVcGxvYWRTdG9yZSk7XG4gIHJlYWRvbmx5IHN0b3JhZ2VGaWxlRG9jdW1lbnRTdG9yZSA9IGluamVjdChTdG9yYWdlRmlsZURvY3VtZW50U3RvcmUpO1xuXG4gIHJlYWRvbmx5IGluaXRpYWxpemVXaXRoRXhwZWRpdGVQcm9jZXNzaW5nID0gaW5wdXQ8TWF5YmU8Ym9vbGVhbj4+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzb3VyY2U6IERieEFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZUluc3RhbmNlPEZpcmViYXNlU3RvcmFnZUFjY2Vzc29yRmlsZSwgT25DYWxsQ3JlYXRlTW9kZWxSZXN1bHQ+ID0gaW5qZWN0KERieEFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZUluc3RhbmNlPEZpcmViYXNlU3RvcmFnZUFjY2Vzc29yRmlsZSwgT25DYWxsQ3JlYXRlTW9kZWxSZXN1bHQ+LCB7IGhvc3Q6IHRydWUgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RieEFjdGlvbkhhbmRsZXJJbnN0YW5jZSA9IG5ldyBEYnhBY3Rpb25IYW5kbGVySW5zdGFuY2U8RmlyZWJhc2VTdG9yYWdlQWNjZXNzb3JGaWxlLCBPbkNhbGxDcmVhdGVNb2RlbFJlc3VsdD4odGhpcy5zb3VyY2UpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICAvLyBzZXQgdGhlIHRyaWdnZXJcbiAgICB0aGlzLnN1YiA9IHRoaXMudXBsb2FkU3RvcmUudXBsb2FkUmVzdWx0JC5zdWJzY3JpYmUoYXN5bmMgKHJlc3VsdCkgPT4ge1xuICAgICAgY29uc3Qgc3VjY2Vzc0ZpbGVSZXN1bHQgPSByZXN1bHQuc3VjY2Vzc0ZpbGVSZXN1bHRzLmZpbmQoKHgpID0+IHguZmlsZVJlZiAhPSBudWxsKTtcbiAgICAgIGNvbnN0IGZpbGVSZWYgPSBzdWNjZXNzRmlsZVJlc3VsdD8uZmlsZVJlZjtcblxuICAgICAgaWYgKGZpbGVSZWYpIHtcbiAgICAgICAgdGhpcy5zb3VyY2UudHJpZ2dlcldpdGhWYWx1ZShmaWxlUmVmKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIHNldCB0aGUgaGFuZGxlciBmdW5jdGlvblxuICAgIHRoaXMuX2RieEFjdGlvbkhhbmRsZXJJbnN0YW5jZS5zZXRIYW5kbGVyRnVuY3Rpb24oKGZpbGVSZWYsIGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnRleHQuc3RhcnRXb3JraW5nV2l0aExvYWRpbmdTdGF0ZU9ic2VydmFibGUoXG4gICAgICAgIHRoaXMuc3RvcmFnZUZpbGVEb2N1bWVudFN0b3JlLmluaXRpYWxpemVTdG9yYWdlRmlsZUZyb21VcGxvYWQoe1xuICAgICAgICAgIHBhdGhTdHJpbmc6IGZpbGVSZWYuc3RvcmFnZVBhdGgucGF0aFN0cmluZyxcbiAgICAgICAgICBidWNrZXRJZDogZmlsZVJlZi5zdG9yYWdlUGF0aC5idWNrZXRJZCxcbiAgICAgICAgICBleHBlZGl0ZVByb2Nlc3Npbmc6IHRoaXMuaW5pdGlhbGl6ZVdpdGhFeHBlZGl0ZVByb2Nlc3NpbmcoKSA/PyB1bmRlZmluZWRcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9kYnhBY3Rpb25IYW5kbGVySW5zdGFuY2UuaW5pdCgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLl9kYnhBY3Rpb25IYW5kbGVySW5zdGFuY2UuZGVzdHJveSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { Directive, inject, input } from '@angular/core';
|
|
2
|
-
import { skipAllInitialMaybe, SubscriptionObject } from '@dereekb/rxjs';
|
|
3
|
-
import { DbxFirebaseStorageFileUploadStore } from '../store';
|
|
4
|
-
import { toObservable } from '@angular/core/rxjs-interop';
|
|
5
|
-
import { shareReplay } from 'rxjs';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
/**
|
|
8
|
-
* Directive that provides a DbxFirebaseStorageFileUploadStore, and sync's the inputs to the store.
|
|
9
|
-
*/
|
|
10
|
-
export class DbxFirebaseStorageFileUploadStoreDirective {
|
|
11
|
-
_allowedSub = new SubscriptionObject();
|
|
12
|
-
_multiSub = new SubscriptionObject();
|
|
13
|
-
uploadStore = inject(DbxFirebaseStorageFileUploadStore);
|
|
14
|
-
multipleUpload = input();
|
|
15
|
-
fileTypesAccepted = input();
|
|
16
|
-
fileTypesAccepted$ = toObservable(this.fileTypesAccepted).pipe(skipAllInitialMaybe(), shareReplay(1));
|
|
17
|
-
isMultiUploadAllowed$ = toObservable(this.multipleUpload).pipe(skipAllInitialMaybe(), shareReplay(1));
|
|
18
|
-
constructor() {
|
|
19
|
-
this._allowedSub.subscription = this.fileTypesAccepted$.subscribe((x) => this.uploadStore.setFileTypesAccepted(x));
|
|
20
|
-
this._multiSub.subscription = this.isMultiUploadAllowed$.subscribe((x) => this.uploadStore.setIsMultiUploadAllowed(x));
|
|
21
|
-
}
|
|
22
|
-
ngOnDestroy() {
|
|
23
|
-
this._allowedSub.destroy();
|
|
24
|
-
this._multiSub.destroy();
|
|
25
|
-
}
|
|
26
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseStorageFileUploadStoreDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
27
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: DbxFirebaseStorageFileUploadStoreDirective, isStandalone: true, selector: "[dbxFirebaseStorageFileUploadStore]", inputs: { multipleUpload: { classPropertyName: "multipleUpload", publicName: "multipleUpload", isSignal: true, isRequired: false, transformFunction: null }, fileTypesAccepted: { classPropertyName: "fileTypesAccepted", publicName: "fileTypesAccepted", isSignal: true, isRequired: false, transformFunction: null } }, providers: [DbxFirebaseStorageFileUploadStore], exportAs: ["dbxFirebaseStorageFileUploadStore"], ngImport: i0 });
|
|
28
|
-
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseStorageFileUploadStoreDirective, decorators: [{
|
|
30
|
-
type: Directive,
|
|
31
|
-
args: [{
|
|
32
|
-
selector: '[dbxFirebaseStorageFileUploadStore]',
|
|
33
|
-
exportAs: 'dbxFirebaseStorageFileUploadStore',
|
|
34
|
-
providers: [DbxFirebaseStorageFileUploadStore],
|
|
35
|
-
standalone: true
|
|
36
|
-
}]
|
|
37
|
-
}], ctorParameters: () => [] });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZWZpbGUudXBsb2FkLnN0b3JlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZHVsZXMvc3RvcmFnZWZpbGUvY29udGFpbmVyL3N0b3JhZ2VmaWxlLnVwbG9hZC5zdG9yZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBR25DOztHQUVHO0FBT0gsTUFBTSxPQUFPLDBDQUEwQztJQUNwQyxXQUFXLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO0lBQ3ZDLFNBQVMsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7SUFFN0MsV0FBVyxHQUFHLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBRXhELGNBQWMsR0FBRyxLQUFLLEVBQWtCLENBQUM7SUFDekMsaUJBQWlCLEdBQUcsS0FBSyxFQUFtRCxDQUFDO0lBRTdFLGtCQUFrQixHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RyxxQkFBcUIsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRS9HO1FBQ0UsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25ILElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6SCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMzQixDQUFDO3dHQXBCVSwwQ0FBMEM7NEZBQTFDLDBDQUEwQyw2WUFIMUMsQ0FBQyxpQ0FBaUMsQ0FBQzs7NEZBR25DLDBDQUEwQztrQkFOdEQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUNBQXFDO29CQUMvQyxRQUFRLEVBQUUsbUNBQW1DO29CQUM3QyxTQUFTLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQztvQkFDOUMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QsIGlucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHNraXBBbGxJbml0aWFsTWF5YmUsIFN1YnNjcmlwdGlvbk9iamVjdCB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VTdG9yYWdlRmlsZVVwbG9hZFN0b3JlIH0gZnJvbSAnLi4vc3RvcmUnO1xuaW1wb3J0IHsgQXJyYXlPclZhbHVlLCBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpbGVBY2NlcHRGaWx0ZXJUeXBlU3RyaW5nIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5cbi8qKlxuICogRGlyZWN0aXZlIHRoYXQgcHJvdmlkZXMgYSBEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlVXBsb2FkU3RvcmUsIGFuZCBzeW5jJ3MgdGhlIGlucHV0cyB0byB0aGUgc3RvcmUuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tkYnhGaXJlYmFzZVN0b3JhZ2VGaWxlVXBsb2FkU3RvcmVdJyxcbiAgZXhwb3J0QXM6ICdkYnhGaXJlYmFzZVN0b3JhZ2VGaWxlVXBsb2FkU3RvcmUnLFxuICBwcm92aWRlcnM6IFtEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlVXBsb2FkU3RvcmVdLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlU3RvcmFnZUZpbGVVcGxvYWRTdG9yZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FsbG93ZWRTdWIgPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX211bHRpU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuXG4gIHJlYWRvbmx5IHVwbG9hZFN0b3JlID0gaW5qZWN0KERieEZpcmViYXNlU3RvcmFnZUZpbGVVcGxvYWRTdG9yZSk7XG5cbiAgcmVhZG9ubHkgbXVsdGlwbGVVcGxvYWQgPSBpbnB1dDxNYXliZTxib29sZWFuPj4oKTtcbiAgcmVhZG9ubHkgZmlsZVR5cGVzQWNjZXB0ZWQgPSBpbnB1dDxNYXliZTxBcnJheU9yVmFsdWU8RmlsZUFjY2VwdEZpbHRlclR5cGVTdHJpbmc+Pj4oKTtcblxuICByZWFkb25seSBmaWxlVHlwZXNBY2NlcHRlZCQgPSB0b09ic2VydmFibGUodGhpcy5maWxlVHlwZXNBY2NlcHRlZCkucGlwZShza2lwQWxsSW5pdGlhbE1heWJlKCksIHNoYXJlUmVwbGF5KDEpKTtcbiAgcmVhZG9ubHkgaXNNdWx0aVVwbG9hZEFsbG93ZWQkID0gdG9PYnNlcnZhYmxlKHRoaXMubXVsdGlwbGVVcGxvYWQpLnBpcGUoc2tpcEFsbEluaXRpYWxNYXliZSgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5fYWxsb3dlZFN1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLmZpbGVUeXBlc0FjY2VwdGVkJC5zdWJzY3JpYmUoKHgpID0+IHRoaXMudXBsb2FkU3RvcmUuc2V0RmlsZVR5cGVzQWNjZXB0ZWQoeCkpO1xuICAgIHRoaXMuX211bHRpU3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMuaXNNdWx0aVVwbG9hZEFsbG93ZWQkLnN1YnNjcmliZSgoeCkgPT4gdGhpcy51cGxvYWRTdG9yZS5zZXRJc011bHRpVXBsb2FkQWxsb3dlZCh4KSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9hbGxvd2VkU3ViLmRlc3Ryb3koKTtcbiAgICB0aGlzLl9tdWx0aVN1Yi5kZXN0cm95KCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { Directive, inject } from '@angular/core';
|
|
2
|
-
import { SubscriptionObject } from '@dereekb/rxjs';
|
|
3
|
-
import { DbxFirebaseStorageFileUploadStore } from '../store';
|
|
4
|
-
import { DbxFileUploadComponent } from '@dereekb/dbx-web';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
/**
|
|
7
|
-
* Directive that syncs a DbxFirebaseStorageFileUploadStore's configuration to a DbxFileUploadComponent.
|
|
8
|
-
*/
|
|
9
|
-
export class DbxFirebaseStorageFileUploadSyncDirective {
|
|
10
|
-
_allowedSub = new SubscriptionObject();
|
|
11
|
-
_multiSub = new SubscriptionObject();
|
|
12
|
-
_filesSub = new SubscriptionObject();
|
|
13
|
-
uploadStore = inject(DbxFirebaseStorageFileUploadStore);
|
|
14
|
-
uploadComponent = inject(DbxFileUploadComponent);
|
|
15
|
-
constructor() {
|
|
16
|
-
this._allowedSub.subscription = this.uploadStore.fileTypesAllowed$.subscribe((x) => this.uploadComponent.setAccept(x));
|
|
17
|
-
this._multiSub.subscription = this.uploadStore.isMultiUploadAllowed$.subscribe((x) => this.uploadComponent.setMultiple(x));
|
|
18
|
-
this._filesSub.subscription = this.uploadComponent.filesChanged.subscribe((files) => this.uploadStore.setFiles(files.matchResult.accepted));
|
|
19
|
-
}
|
|
20
|
-
ngOnDestroy() {
|
|
21
|
-
this._allowedSub.destroy();
|
|
22
|
-
this._multiSub.destroy();
|
|
23
|
-
this._filesSub.destroy();
|
|
24
|
-
}
|
|
25
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseStorageFileUploadSyncDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
26
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DbxFirebaseStorageFileUploadSyncDirective, isStandalone: true, selector: "[dbxFirebaseStorageFileUploadSync]", exportAs: ["dbxFirebaseStorageFileUploadSync"], ngImport: i0 });
|
|
27
|
-
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseStorageFileUploadSyncDirective, decorators: [{
|
|
29
|
-
type: Directive,
|
|
30
|
-
args: [{
|
|
31
|
-
selector: '[dbxFirebaseStorageFileUploadSync]',
|
|
32
|
-
exportAs: 'dbxFirebaseStorageFileUploadSync',
|
|
33
|
-
standalone: true
|
|
34
|
-
}]
|
|
35
|
-
}], ctorParameters: () => [] });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZWZpbGUudXBsb2FkLnN5bmMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kdWxlcy9zdG9yYWdlZmlsZS9jb250YWluZXIvc3RvcmFnZWZpbGUudXBsb2FkLnN5bmMuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDN0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRTFEOztHQUVHO0FBTUgsTUFBTSxPQUFPLHlDQUF5QztJQUNuQyxXQUFXLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO0lBQ3ZDLFNBQVMsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7SUFDckMsU0FBUyxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztJQUU3QyxXQUFXLEdBQUcsTUFBTSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7SUFDeEQsZUFBZSxHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBRTFEO1FBQ0UsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkgsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDOUksQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMzQixDQUFDO3dHQWxCVSx5Q0FBeUM7NEZBQXpDLHlDQUF5Qzs7NEZBQXpDLHlDQUF5QztrQkFMckQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0NBQW9DO29CQUM5QyxRQUFRLEVBQUUsa0NBQWtDO29CQUM1QyxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb25PYmplY3QgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IERieEZpcmViYXNlU3RvcmFnZUZpbGVVcGxvYWRTdG9yZSB9IGZyb20gJy4uL3N0b3JlJztcbmltcG9ydCB7IERieEZpbGVVcGxvYWRDb21wb25lbnQgfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViJztcblxuLyoqXG4gKiBEaXJlY3RpdmUgdGhhdCBzeW5jcyBhIERieEZpcmViYXNlU3RvcmFnZUZpbGVVcGxvYWRTdG9yZSdzIGNvbmZpZ3VyYXRpb24gdG8gYSBEYnhGaWxlVXBsb2FkQ29tcG9uZW50LlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGJ4RmlyZWJhc2VTdG9yYWdlRmlsZVVwbG9hZFN5bmNdJyxcbiAgZXhwb3J0QXM6ICdkYnhGaXJlYmFzZVN0b3JhZ2VGaWxlVXBsb2FkU3luYycsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VTdG9yYWdlRmlsZVVwbG9hZFN5bmNEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IF9hbGxvd2VkU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9tdWx0aVN1YiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZmlsZXNTdWIgPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG5cbiAgcmVhZG9ubHkgdXBsb2FkU3RvcmUgPSBpbmplY3QoRGJ4RmlyZWJhc2VTdG9yYWdlRmlsZVVwbG9hZFN0b3JlKTtcbiAgcmVhZG9ubHkgdXBsb2FkQ29tcG9uZW50ID0gaW5qZWN0KERieEZpbGVVcGxvYWRDb21wb25lbnQpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuX2FsbG93ZWRTdWIuc3Vic2NyaXB0aW9uID0gdGhpcy51cGxvYWRTdG9yZS5maWxlVHlwZXNBbGxvd2VkJC5zdWJzY3JpYmUoKHgpID0+IHRoaXMudXBsb2FkQ29tcG9uZW50LnNldEFjY2VwdCh4KSk7XG4gICAgdGhpcy5fbXVsdGlTdWIuc3Vic2NyaXB0aW9uID0gdGhpcy51cGxvYWRTdG9yZS5pc011bHRpVXBsb2FkQWxsb3dlZCQuc3Vic2NyaWJlKCh4KSA9PiB0aGlzLnVwbG9hZENvbXBvbmVudC5zZXRNdWx0aXBsZSh4KSk7XG4gICAgdGhpcy5fZmlsZXNTdWIuc3Vic2NyaXB0aW9uID0gdGhpcy51cGxvYWRDb21wb25lbnQuZmlsZXNDaGFuZ2VkLnN1YnNjcmliZSgoZmlsZXMpID0+IHRoaXMudXBsb2FkU3RvcmUuc2V0RmlsZXMoZmlsZXMubWF0Y2hSZXN1bHQuYWNjZXB0ZWQpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2FsbG93ZWRTdWIuZGVzdHJveSgpO1xuICAgIHRoaXMuX211bHRpU3ViLmRlc3Ryb3koKTtcbiAgICB0aGlzLl9maWxlc1N1Yi5kZXN0cm95KCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export * from './container';
|
|
2
|
-
export * from './store';
|
|
3
|
-
export * from './service';
|
|
4
|
-
export * from './storagefile.upload.module';
|
|
5
|
-
export * from './storagefile.providers';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2R1bGVzL3N0b3JhZ2VmaWxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29udGFpbmVyJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmFnZWZpbGUudXBsb2FkLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JhZ2VmaWxlLnByb3ZpZGVycyc7XG4iXX0=
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './storagefile.download.service';
|
|
2
|
-
export * from './storagefile.download.storage.service';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2R1bGVzL3N0b3JhZ2VmaWxlL3NlcnZpY2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHdDQUF3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zdG9yYWdlZmlsZS5kb3dubG9hZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmFnZWZpbGUuZG93bmxvYWQuc3RvcmFnZS5zZXJ2aWNlJztcbiJdfQ==
|