@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,114 +0,0 @@
|
|
|
1
|
-
import { Directive, forwardRef, model } from '@angular/core';
|
|
2
|
-
import { FirestoreAccessorStreamMode } from '@dereekb/firebase';
|
|
3
|
-
import { BehaviorSubject, shareReplay, switchMap } from 'rxjs';
|
|
4
|
-
import { filterMaybe, skipInitialMaybe, SubscriptionObject } from '@dereekb/rxjs';
|
|
5
|
-
import { provideDbxRouteModelIdDirectiveDelegate, provideDbxRouteModelKeyDirectiveDelegate } from '@dereekb/dbx-core';
|
|
6
|
-
import { toObservable } from '@angular/core/rxjs-interop';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
/**
|
|
9
|
-
* Abstract directive that contains a DbxFirebaseDocumentStore and provides an interface for communicating with other directives.
|
|
10
|
-
*/
|
|
11
|
-
export class DbxFirebaseDocumentStoreDirective {
|
|
12
|
-
storeName = model(undefined);
|
|
13
|
-
documentId = model(undefined);
|
|
14
|
-
key = model(undefined);
|
|
15
|
-
flatKey = model(undefined);
|
|
16
|
-
ref = model(undefined);
|
|
17
|
-
streamMode = model(FirestoreAccessorStreamMode.STREAM);
|
|
18
|
-
_storeName$ = toObservable(this.storeName).pipe(skipInitialMaybe());
|
|
19
|
-
_documentId$ = toObservable(this.documentId).pipe(skipInitialMaybe());
|
|
20
|
-
_key$ = toObservable(this.key).pipe(skipInitialMaybe());
|
|
21
|
-
_flatKey$ = toObservable(this.flatKey).pipe(skipInitialMaybe());
|
|
22
|
-
_ref$ = toObservable(this.ref).pipe(skipInitialMaybe());
|
|
23
|
-
_streamMode$ = toObservable(this.streamMode).pipe(skipInitialMaybe());
|
|
24
|
-
_store = new BehaviorSubject(undefined);
|
|
25
|
-
_storeSub = new SubscriptionObject();
|
|
26
|
-
store$ = this._store.pipe(filterMaybe(), shareReplay(1));
|
|
27
|
-
exists$ = this.store$.pipe(switchMap((x) => x.exists$));
|
|
28
|
-
document$ = this.store$.pipe(switchMap((x) => x.document$));
|
|
29
|
-
documentLoadingState$ = this.store$.pipe(switchMap((x) => x.documentLoadingState$));
|
|
30
|
-
id$ = this.store$.pipe(switchMap((x) => x.id$));
|
|
31
|
-
key$ = this.store$.pipe(switchMap((x) => x.key$));
|
|
32
|
-
twoWayFlatKey$ = this.store$.pipe(switchMap((x) => x.twoWayFlatKey$));
|
|
33
|
-
ref$ = this.store$.pipe(switchMap((x) => x.ref$));
|
|
34
|
-
snapshot$ = this.store$.pipe(switchMap((x) => x.snapshot$));
|
|
35
|
-
snapshotLoadingState$ = this.store$.pipe(switchMap((x) => x.snapshotLoadingState$));
|
|
36
|
-
modelIdentity$ = this.store$.pipe(switchMap((x) => x.modelIdentity$));
|
|
37
|
-
data$ = this.store$.pipe(switchMap((x) => x.data$));
|
|
38
|
-
loadingState$ = this.store$.pipe(switchMap((x) => x.dataLoadingState$));
|
|
39
|
-
constructor(store) {
|
|
40
|
-
this.replaceStore(store);
|
|
41
|
-
// sync inputs to store any time the store changes
|
|
42
|
-
this._storeSub.subscription = this._store.subscribe((x) => {
|
|
43
|
-
if (x) {
|
|
44
|
-
x.setStoreName(this._storeName$);
|
|
45
|
-
x.setId(this._documentId$);
|
|
46
|
-
x.setKey(this._key$);
|
|
47
|
-
x.setFlatKey(this._flatKey$);
|
|
48
|
-
x.setRef(this._ref$);
|
|
49
|
-
x.setStreamMode(this._streamMode$);
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
ngOnDestroy() {
|
|
54
|
-
this._store.complete();
|
|
55
|
-
this._storeSub.destroy();
|
|
56
|
-
}
|
|
57
|
-
get store() {
|
|
58
|
-
return this._store.value;
|
|
59
|
-
}
|
|
60
|
-
// MARK: Setters
|
|
61
|
-
setStoreName(storeName) {
|
|
62
|
-
this.storeName.set(storeName);
|
|
63
|
-
}
|
|
64
|
-
setDocumentId(documentId) {
|
|
65
|
-
this.documentId.set(documentId);
|
|
66
|
-
}
|
|
67
|
-
setKey(key) {
|
|
68
|
-
this.key.set(key);
|
|
69
|
-
}
|
|
70
|
-
setFlatKey(flatKey) {
|
|
71
|
-
this.flatKey.set(flatKey);
|
|
72
|
-
}
|
|
73
|
-
setRef(ref) {
|
|
74
|
-
this.ref.set(ref);
|
|
75
|
-
}
|
|
76
|
-
setStreamMode(streamMode) {
|
|
77
|
-
this.streamMode.set(streamMode);
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Replaces the internal store.
|
|
81
|
-
*/
|
|
82
|
-
replaceStore(store) {
|
|
83
|
-
this._store.next(store);
|
|
84
|
-
}
|
|
85
|
-
// MARK: DbxRouteModelIdDirectiveDelegate
|
|
86
|
-
useRouteModelIdParamsObservable(idFromParams) {
|
|
87
|
-
return idFromParams.subscribe((x) => this.setDocumentId(x));
|
|
88
|
-
}
|
|
89
|
-
// MARK: DbxRouteModelKeyDirectiveDelegate
|
|
90
|
-
useRouteModelKeyParamsObservable(keyFromParams) {
|
|
91
|
-
// we assume that the input model key is a TwoWayFlatFirestoreModelKey, since the TwoWayFlatFirestoreModelKey is safe to encode in the url
|
|
92
|
-
return keyFromParams.subscribe((x) => this.setFlatKey(x));
|
|
93
|
-
}
|
|
94
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseDocumentStoreDirective, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
|
|
95
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: DbxFirebaseDocumentStoreDirective, inputs: { storeName: { classPropertyName: "storeName", publicName: "storeName", isSignal: true, isRequired: false, transformFunction: null }, documentId: { classPropertyName: "documentId", publicName: "documentId", isSignal: true, isRequired: false, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: false, transformFunction: null }, flatKey: { classPropertyName: "flatKey", publicName: "flatKey", isSignal: true, isRequired: false, transformFunction: null }, ref: { classPropertyName: "ref", publicName: "ref", isSignal: true, isRequired: false, transformFunction: null }, streamMode: { classPropertyName: "streamMode", publicName: "streamMode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { storeName: "storeNameChange", documentId: "documentIdChange", key: "keyChange", flatKey: "flatKeyChange", ref: "refChange", streamMode: "streamModeChange" }, ngImport: i0 });
|
|
96
|
-
}
|
|
97
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseDocumentStoreDirective, decorators: [{
|
|
98
|
-
type: Directive
|
|
99
|
-
}], ctorParameters: () => [{ type: undefined }] });
|
|
100
|
-
export function provideDbxFirebaseDocumentStoreDirective(sourceType, storeType) {
|
|
101
|
-
const providers = [
|
|
102
|
-
{
|
|
103
|
-
provide: DbxFirebaseDocumentStoreDirective,
|
|
104
|
-
useExisting: forwardRef(() => sourceType)
|
|
105
|
-
},
|
|
106
|
-
...provideDbxRouteModelIdDirectiveDelegate(sourceType),
|
|
107
|
-
...provideDbxRouteModelKeyDirectiveDelegate(sourceType)
|
|
108
|
-
];
|
|
109
|
-
if (storeType != null) {
|
|
110
|
-
providers.push(storeType);
|
|
111
|
-
}
|
|
112
|
-
return providers;
|
|
113
|
-
}
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZG9jdW1lbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9zdG9yZS9zdG9yZS5kb2N1bWVudC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUE2QixNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQXFCLDJCQUEyQixFQUF1RixNQUFNLG1CQUFtQixDQUFDO0FBR3hLLE9BQU8sRUFBRSxlQUFlLEVBQWMsV0FBVyxFQUFnQixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekYsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQXVFLHVDQUF1QyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFM0wsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUUxRDs7R0FFRztBQUVILE1BQU0sT0FBZ0IsaUNBQWlDO0lBQzVDLFNBQVMsR0FBRyxLQUFLLENBQWdCLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLFVBQVUsR0FBRyxLQUFLLENBQTBCLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZELEdBQUcsR0FBRyxLQUFLLENBQTJCLFNBQVMsQ0FBQyxDQUFDO0lBQ2pELE9BQU8sR0FBRyxLQUFLLENBQXFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9ELEdBQUcsR0FBRyxLQUFLLENBQThCLFNBQVMsQ0FBQyxDQUFDO0lBQ3BELFVBQVUsR0FBRyxLQUFLLENBQThCLDJCQUEyQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRTVFLFdBQVcsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFDcEUsWUFBWSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUN0RSxLQUFLLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELFNBQVMsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFDaEUsS0FBSyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUN4RCxZQUFZLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBRXRFLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBVyxTQUFTLENBQUMsQ0FBQztJQUNsRCxTQUFTLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO0lBRTdDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV6RCxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN4RCxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUM1RCxxQkFBcUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7SUFFcEYsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDaEQsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDbEQsY0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDdEUsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFFbEQsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDNUQscUJBQXFCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDO0lBRXBGLGNBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVB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QUFpQztrQkFEdEQsU0FBUzs7QUFzSFYsTUFBTSxVQUFVLHdDQUF3QyxDQUEwSixVQUFtQixFQUFFLFNBQW1CO0lBQ3hQLE1BQU0sU0FBUyxHQUFlO1FBQzVCO1lBQ0UsT0FBTyxFQUFFLGlDQUFpQztZQUMxQyxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQztTQUMxQztRQUNELEdBQUcsdUNBQXVDLENBQUMsVUFBVSxDQUFDO1FBQ3RELEdBQUcsd0NBQXdDLENBQUMsVUFBVSxDQUFDO0tBQ3hELENBQUM7SUFFRixJQUFJLFNBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN0QixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBmb3J3YXJkUmVmLCBtb2RlbCwgT25EZXN0cm95LCBQcm92aWRlciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9jdW1lbnRSZWZlcmVuY2UsIEZpcmVzdG9yZUFjY2Vzc29yU3RyZWFtTW9kZSwgRmlyZXN0b3JlRG9jdW1lbnQsIEZpcmVzdG9yZU1vZGVsS2V5LCBGaXJlc3RvcmVNb2RlbElkLCBUd29XYXlGbGF0RmlyZXN0b3JlTW9kZWxLZXkgfSBmcm9tICdAZGVyZWVrYi9maXJlYmFzZSc7XG5pbXBvcnQgeyBNb2RlbEtleSwgdHlwZSBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlIH0gZnJvbSAnLi9zdG9yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBTdWJzY3JpcHRpb24sIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyTWF5YmUsIHNraXBJbml0aWFsTWF5YmUsIFN1YnNjcmlwdGlvbk9iamVjdCB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgRGJ4Um91dGVNb2RlbElkRGlyZWN0aXZlRGVsZWdhdGUsIERieFJvdXRlTW9kZWxLZXlEaXJlY3RpdmVEZWxlZ2F0ZSwgcHJvdmlkZURieFJvdXRlTW9kZWxJZERpcmVjdGl2ZURlbGVnYXRlLCBwcm92aWRlRGJ4Um91dGVNb2RlbEtleURpcmVjdGl2ZURlbGVnYXRlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlVHdvV2F5S2V5UHJvdmlkZXIgfSBmcm9tICcuL3N0b3JlLmRvY3VtZW50LnR3b3dheS5rZXkuc291cmNlJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuLyoqXG4gKiBBYnN0cmFjdCBkaXJlY3RpdmUgdGhhdCBjb250YWlucyBhIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZSBhbmQgcHJvdmlkZXMgYW4gaW50ZXJmYWNlIGZvciBjb21tdW5pY2F0aW5nIHdpdGggb3RoZXIgZGlyZWN0aXZlcy5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlPFQgPSB1bmtub3duLCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgUyBleHRlbmRzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZTxULCBEPiA9IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZTxULCBEPj4gaW1wbGVtZW50cyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVUd29XYXlLZXlQcm92aWRlciwgRGJ4Um91dGVNb2RlbElkRGlyZWN0aXZlRGVsZWdhdGUsIERieFJvdXRlTW9kZWxLZXlEaXJlY3RpdmVEZWxlZ2F0ZSwgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgc3RvcmVOYW1lID0gbW9kZWw8TWF5YmU8c3RyaW5nPj4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgZG9jdW1lbnRJZCA9IG1vZGVsPE1heWJlPEZpcmVzdG9yZU1vZGVsSWQ+Pih1bmRlZmluZWQpO1xuICByZWFkb25seSBrZXkgPSBtb2RlbDxNYXliZTxGaXJlc3RvcmVNb2RlbEtleT4+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGZsYXRLZXkgPSBtb2RlbDxNYXliZTxUd29XYXlGbGF0RmlyZXN0b3JlTW9kZWxLZXk+Pih1bmRlZmluZWQpO1xuICByZWFkb25seSByZWYgPSBtb2RlbDxNYXliZTxEb2N1bWVudFJlZmVyZW5jZTxUPj4+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IHN0cmVhbU1vZGUgPSBtb2RlbDxGaXJlc3RvcmVBY2Nlc3NvclN0cmVhbU1vZGU+KEZpcmVzdG9yZUFjY2Vzc29yU3RyZWFtTW9kZS5TVFJFQU0pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0b3JlTmFtZSQgPSB0b09ic2VydmFibGUodGhpcy5zdG9yZU5hbWUpLnBpcGUoc2tpcEluaXRpYWxNYXliZSgpKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZG9jdW1lbnRJZCQgPSB0b09ic2VydmFibGUodGhpcy5kb2N1bWVudElkKS5waXBlKHNraXBJbml0aWFsTWF5YmUoKSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2tleSQgPSB0b09ic2VydmFibGUodGhpcy5rZXkpLnBpcGUoc2tpcEluaXRpYWxNYXliZSgpKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZmxhdEtleSQgPSB0b09ic2VydmFibGUodGhpcy5mbGF0S2V5KS5waXBlKHNraXBJbml0aWFsTWF5YmUoKSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3JlZiQgPSB0b09ic2VydmFibGUodGhpcy5yZWYpLnBpcGUoc2tpcEluaXRpYWxNYXliZSgpKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RyZWFtTW9kZSQgPSB0b09ic2VydmFibGUodGhpcy5zdHJlYW1Nb2RlKS5waXBlKHNraXBJbml0aWFsTWF5YmUoKSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc3RvcmUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPFM+Pih1bmRlZmluZWQpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yZVN1YiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcblxuICByZWFkb25seSBzdG9yZSQgPSB0aGlzLl9zdG9yZS5waXBlKGZpbHRlck1heWJlKCksIHNoYXJlUmVwbGF5KDEpKTtcblxuICByZWFkb25seSBleGlzdHMkID0gdGhpcy5zdG9yZSQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHguZXhpc3RzJCkpO1xuICByZWFkb25seSBkb2N1bWVudCQgPSB0aGlzLnN0b3JlJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5kb2N1bWVudCQpKTtcbiAgcmVhZG9ubHkgZG9jdW1lbnRMb2FkaW5nU3RhdGUkID0gdGhpcy5zdG9yZSQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHguZG9jdW1lbnRMb2FkaW5nU3RhdGUkKSk7XG5cbiAgcmVhZG9ubHkgaWQkID0gdGhpcy5zdG9yZSQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHguaWQkKSk7XG4gIHJlYWRvbmx5IGtleSQgPSB0aGlzLnN0b3JlJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5rZXkkKSk7XG4gIHJlYWRvbmx5IHR3b1dheUZsYXRLZXkkID0gdGhpcy5zdG9yZSQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHgudHdvV2F5RmxhdEtleSQpKTtcbiAgcmVhZG9ubHkgcmVmJCA9IHRoaXMuc3RvcmUkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB4LnJlZiQpKTtcblxuICByZWFkb25seSBzbmFwc2hvdCQgPSB0aGlzLnN0b3JlJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5zbmFwc2hvdCQpKTtcbiAgcmVhZG9ubHkgc25hcHNob3RMb2FkaW5nU3RhdGUkID0gdGhpcy5zdG9yZSQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHguc25hcHNob3RMb2FkaW5nU3RhdGUkKSk7XG5cbiAgcmVhZG9ubHkgbW9kZWxJZGVudGl0eSQgPSB0aGlzLnN0b3JlJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5tb2RlbElkZW50aXR5JCkpO1xuICByZWFkb25seSBkYXRhJCA9IHRoaXMuc3RvcmUkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB4LmRhdGEkKSk7XG4gIHJlYWRvbmx5IGxvYWRpbmdTdGF0ZSQgPSB0aGlzLnN0b3JlJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5kYXRhTG9hZGluZ1N0YXRlJCkpO1xuXG4gIGNvbnN0cnVjdG9yKHN0b3JlOiBTKSB7XG4gICAgdGhpcy5yZXBsYWNlU3RvcmUoc3RvcmUpO1xuXG4gICAgLy8gc3luYyBpbnB1dHMgdG8gc3RvcmUgYW55IHRpbWUgdGhlIHN0b3JlIGNoYW5nZXNcbiAgICB0aGlzLl9zdG9yZVN1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLl9zdG9yZS5zdWJzY3JpYmUoKHgpID0+IHtcbiAgICAgIGlmICh4KSB7XG4gICAgICAgIHguc2V0U3RvcmVOYW1lKHRoaXMuX3N0b3JlTmFtZSQpO1xuICAgICAgICB4LnNldElkKHRoaXMuX2RvY3VtZW50SWQkKTtcbiAgICAgICAgeC5zZXRLZXkodGhpcy5fa2V5JCk7XG4gICAgICAgIHguc2V0RmxhdEtleSh0aGlzLl9mbGF0S2V5JCk7XG4gICAgICAgIHguc2V0UmVmKHRoaXMuX3JlZiQpO1xuICAgICAgICB4LnNldFN0cmVhbU1vZGUodGhpcy5fc3RyZWFtTW9kZSQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3RvcmUuY29tcGxldGUoKTtcbiAgICB0aGlzLl9zdG9yZVN1Yi5kZXN0cm95KCk7XG4gIH1cblxuICBnZXQgc3RvcmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0b3JlLnZhbHVlIGFzIFM7XG4gIH1cblxuICAvLyBNQVJLOiBTZXR0ZXJzXG4gIHNldFN0b3JlTmFtZShzdG9yZU5hbWU6IE1heWJlPHN0cmluZz4pIHtcbiAgICB0aGlzLnN0b3JlTmFtZS5zZXQoc3RvcmVOYW1lKTtcbiAgfVxuXG4gIHNldERvY3VtZW50SWQoZG9jdW1lbnRJZDogTWF5YmU8RmlyZXN0b3JlTW9kZWxJZD4pIHtcbiAgICB0aGlzLmRvY3VtZW50SWQuc2V0KGRvY3VtZW50SWQpO1xuICB9XG5cbiAgc2V0S2V5KGtleTogTWF5YmU8RmlyZXN0b3JlTW9kZWxLZXk+KSB7XG4gICAgdGhpcy5rZXkuc2V0KGtleSk7XG4gIH1cblxuICBzZXRGbGF0S2V5KGZsYXRLZXk6IE1heWJlPFR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleT4pIHtcbiAgICB0aGlzLmZsYXRLZXkuc2V0KGZsYXRLZXkpO1xuICB9XG5cbiAgc2V0UmVmKHJlZjogTWF5YmU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+KSB7XG4gICAgdGhpcy5yZWYuc2V0KHJlZik7XG4gIH1cblxuICBzZXRTdHJlYW1Nb2RlKHN0cmVhbU1vZGU6IEZpcmVzdG9yZUFjY2Vzc29yU3RyZWFtTW9kZSkge1xuICAgIHRoaXMuc3RyZWFtTW9kZS5zZXQoc3RyZWFtTW9kZSk7XG4gIH1cblxuICAvKipcbiAgICogUmVwbGFjZXMgdGhlIGludGVybmFsIHN0b3JlLlxuICAgKi9cbiAgcmVwbGFjZVN0b3JlKHN0b3JlOiBTKSB7XG4gICAgdGhpcy5fc3RvcmUubmV4dChzdG9yZSk7XG4gIH1cblxuICAvLyBNQVJLOiBEYnhSb3V0ZU1vZGVsSWREaXJlY3RpdmVEZWxlZ2F0ZVxuICB1c2VSb3V0ZU1vZGVsSWRQYXJhbXNPYnNlcnZhYmxlKGlkRnJvbVBhcmFtczogT2JzZXJ2YWJsZTxNYXliZTxNb2RlbEtleT4+KTogU3Vic2NyaXB0aW9uIHtcbiAgICByZXR1cm4gaWRGcm9tUGFyYW1zLnN1YnNjcmliZSgoeCkgPT4gdGhpcy5zZXREb2N1bWVudElkKHgpKTtcbiAgfVxuXG4gIC8vIE1BUks6IERieFJvdXRlTW9kZWxLZXlEaXJlY3RpdmVEZWxlZ2F0ZVxuICB1c2VSb3V0ZU1vZGVsS2V5UGFyYW1zT2JzZXJ2YWJsZShrZXlGcm9tUGFyYW1zOiBPYnNlcnZhYmxlPE1heWJlPFR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleT4+KTogU3Vic2NyaXB0aW9uIHtcbiAgICAvLyB3ZSBhc3N1bWUgdGhhdCB0aGUgaW5wdXQgbW9kZWwga2V5IGlzIGEgVHdvV2F5RmxhdEZpcmVzdG9yZU1vZGVsS2V5LCBzaW5jZSB0aGUgVHdvV2F5RmxhdEZpcmVzdG9yZU1vZGVsS2V5IGlzIHNhZmUgdG8gZW5jb2RlIGluIHRoZSB1cmxcbiAgICByZXR1cm4ga2V5RnJvbVBhcmFtcy5zdWJzY3JpYmUoKHgpID0+IHRoaXMuc2V0RmxhdEtleSh4KSk7XG4gIH1cbn1cblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLy8gVGhlIHVzZSBvZiBhbnkgaGVyZSBkb2VzIG5vdCBkZWdyYWRlIHRoZSB0eXBlLXNhZmV0eTsgd2Ugd2FudCB0byBzaW1wbHkgbWF0Y2ggdGhhdCB0aGUgU3RvcmUgdHlwZSBTIGlzIHVzZWQgaW4gdGhlIERpcmVjdGl2ZSB0eXBlIEMgdG8gcHJvdmlkZSBpdC5cblxuLyoqXG4gKiBDb25maWd1cmVzIHByb3ZpZGVycyBmb3IgYSBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmUuXG4gKlxuICogQ2FuIG9wdGlvbmFsbHkgYWxzbyBwcm92aWRlIHRoZSBhY3R1YWwgc3RvcmUgdHlwZSB0byBpbmNsdWRlIGluIHRoZSBwcm92aWRlcnMgYXJyYXkgc28gaXQgaXMgaW5zdGFudGlhdGVkIGJ5IEFuZ3VsYXIuXG4gKlxuICogQHBhcmFtIHNvdXJjZVR5cGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmU8UyBleHRlbmRzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZTxhbnksIGFueSwgYW55Pj4oc291cmNlVHlwZTogVHlwZTxTPik6IFByb3ZpZGVyW107XG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZURieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZTxTIGV4dGVuZHMgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlPGFueSwgYW55PiwgQyBleHRlbmRzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZTxhbnksIGFueSwgUz4gPSBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmU8YW55LCBhbnksIFM+Pihzb3VyY2VUeXBlOiBUeXBlPEM+LCBzdG9yZVR5cGU6IFR5cGU8Uz4pOiBQcm92aWRlcltdO1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmU8UyBleHRlbmRzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZTxhbnksIGFueT4sIEMgZXh0ZW5kcyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmU8YW55LCBhbnksIFM+ID0gRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlPGFueSwgYW55LCBTPj4oc291cmNlVHlwZTogVHlwZTxDPiwgc3RvcmVUeXBlPzogVHlwZTxTPik6IFByb3ZpZGVyW10ge1xuICBjb25zdCBwcm92aWRlcnM6IFByb3ZpZGVyW10gPSBbXG4gICAge1xuICAgICAgcHJvdmlkZTogRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gc291cmNlVHlwZSlcbiAgICB9LFxuICAgIC4uLnByb3ZpZGVEYnhSb3V0ZU1vZGVsSWREaXJlY3RpdmVEZWxlZ2F0ZShzb3VyY2VUeXBlKSxcbiAgICAuLi5wcm92aWRlRGJ4Um91dGVNb2RlbEtleURpcmVjdGl2ZURlbGVnYXRlKHNvdXJjZVR5cGUpXG4gIF07XG5cbiAgaWYgKHN0b3JlVHlwZSAhPSBudWxsKSB7XG4gICAgcHJvdmlkZXJzLnB1c2goc3RvcmVUeXBlKTtcbiAgfVxuXG4gIHJldHVybiBwcm92aWRlcnM7XG59XG4iXX0=
|
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
import { __decorate, __metadata, __param } from "tslib";
|
|
2
|
-
import { Inject, Injectable, Optional } from '@angular/core';
|
|
3
|
-
import { shareReplay, distinctUntilChanged, map, switchMap, combineLatest, of, catchError } from 'rxjs';
|
|
4
|
-
import { firestoreModelIdsFromKey, firestoreModelKeyPartPairs, firestoreModelKeyPairObject, documentDataWithIdAndKey, FirestoreAccessorStreamMode, inferKeyFromTwoWayFlatFirestoreModelKey, flatFirestoreModelKey, twoWayFlatFirestoreModelKey, FIRESTORE_PERMISSION_DENIED_ERROR_CODE, isClientFirebaseError } from '@dereekb/firebase';
|
|
5
|
-
import { filterMaybe, beginLoading, successResult, loadingStateFromObs, errorResult, isLoadingStateLoading, tapLog } from '@dereekb/rxjs';
|
|
6
|
-
import { isMaybeSo } from '@dereekb/util';
|
|
7
|
-
import { LockSetComponentStore } from '@dereekb/dbx-core';
|
|
8
|
-
import { modelDoesNotExistError } from '../../error';
|
|
9
|
-
import { linkDocumentStoreToParentContextStores } from './store.document.context.store.link';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
export class AbstractDbxFirebaseDocumentStore extends LockSetComponentStore {
|
|
12
|
-
constructor(initialState) {
|
|
13
|
-
super(initialState);
|
|
14
|
-
linkDocumentStoreToParentContextStores(this);
|
|
15
|
-
}
|
|
16
|
-
// MARK: Effects
|
|
17
|
-
// MARK: Accessors
|
|
18
|
-
storeName$ = this.state$.pipe(map((x) => x.storeName), distinctUntilChanged(), shareReplay(1));
|
|
19
|
-
currentFirestoreCollectionLike$ = this.state$.pipe(map((x) => x.firestoreCollection ?? x.firestoreCollectionLike), distinctUntilChanged(), shareReplay(1));
|
|
20
|
-
currentFirestoreCollection$ = this.state$.pipe(map((x) => x.firestoreCollection), distinctUntilChanged(), shareReplay(1));
|
|
21
|
-
firestoreCollectionLike$ = this.currentFirestoreCollectionLike$.pipe(filterMaybe());
|
|
22
|
-
firestoreCollection$ = this.currentFirestoreCollection$.pipe(filterMaybe());
|
|
23
|
-
currentInputId$ = this.state$.pipe(map((x) => x.id), distinctUntilChanged(), shareReplay(1));
|
|
24
|
-
inputId$ = this.currentInputId$.pipe(filterMaybe(), distinctUntilChanged(), shareReplay(1));
|
|
25
|
-
currentInputKey$ = this.state$.pipe(map((x) => x.key), distinctUntilChanged(), shareReplay(1));
|
|
26
|
-
inputKey$ = this.currentInputKey$.pipe(filterMaybe(), distinctUntilChanged(), shareReplay(1));
|
|
27
|
-
currentInputRef$ = this.state$.pipe(map((x) => x.ref), distinctUntilChanged(), shareReplay(1));
|
|
28
|
-
inputRef$ = this.currentInputRef$.pipe(filterMaybe(), distinctUntilChanged(), shareReplay(1));
|
|
29
|
-
streamMode$ = this.state$.pipe(map((x) => x.streamMode ?? FirestoreAccessorStreamMode.STREAM), distinctUntilChanged(), shareReplay(1));
|
|
30
|
-
currentDocument$ = combineLatest([this.currentInputId$, this.currentInputKey$, this.currentInputRef$]).pipe(switchMap(([id, key, ref]) => {
|
|
31
|
-
let document;
|
|
32
|
-
if (ref) {
|
|
33
|
-
document = this.firestoreCollectionLike$.pipe(map((x) => x.documentAccessor().loadDocument(ref)));
|
|
34
|
-
}
|
|
35
|
-
else if (key) {
|
|
36
|
-
document = this.firestoreCollectionLike$.pipe(map((x) => x.documentAccessor().loadDocumentForKey(key)));
|
|
37
|
-
}
|
|
38
|
-
else if (id) {
|
|
39
|
-
document = this.firestoreCollection$.pipe(map((x) => x.documentAccessor().loadDocumentForId(id)));
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
document = of(undefined);
|
|
43
|
-
}
|
|
44
|
-
return document;
|
|
45
|
-
}), distinctUntilChanged(), shareReplay(1));
|
|
46
|
-
/**
|
|
47
|
-
* Whether or not an id/ref/key has been input and currentDocument is not null.
|
|
48
|
-
*/
|
|
49
|
-
hasRef$ = this.currentDocument$.pipe(map((x) => x?.documentRef != null), distinctUntilChanged(), shareReplay(1));
|
|
50
|
-
document$ = this.currentDocument$.pipe(filterMaybe(), distinctUntilChanged(), shareReplay(1));
|
|
51
|
-
documentLoadingState$ = this.currentDocument$.pipe(map((x) => (x ? successResult(x) : beginLoading())), tapLog('documentLoadingState$'), shareReplay(1));
|
|
52
|
-
currentId$ = this.currentDocument$.pipe(map((x) => x?.id), shareReplay(1));
|
|
53
|
-
currentKey$ = this.currentDocument$.pipe(map((x) => x?.key), shareReplay(1));
|
|
54
|
-
id$ = this.document$.pipe(map((x) => x.id), shareReplay(1));
|
|
55
|
-
key$ = this.document$.pipe(map((x) => x.key), shareReplay(1));
|
|
56
|
-
keyModelIds$ = this.key$.pipe(map(firestoreModelIdsFromKey), shareReplay(1));
|
|
57
|
-
keyPairs$ = this.key$.pipe(map(firestoreModelKeyPartPairs), filterMaybe(), shareReplay(1));
|
|
58
|
-
keyPairObject$ = this.key$.pipe(map(firestoreModelKeyPairObject), filterMaybe(), shareReplay(1));
|
|
59
|
-
ref$ = this.document$.pipe(map((x) => x.documentRef), shareReplay(1));
|
|
60
|
-
flatKey$ = this.key$.pipe(map((x) => flatFirestoreModelKey(x)), shareReplay(1));
|
|
61
|
-
twoWayFlatKey$ = this.key$.pipe(map((x) => twoWayFlatFirestoreModelKey(x)), shareReplay(1));
|
|
62
|
-
snapshot$ = combineLatest([this.document$, this.streamMode$]).pipe(switchMap(([x, mode]) => x.snapshotStream(mode)), shareReplay(1));
|
|
63
|
-
snapshotLoadingState$ = this.currentDocument$.pipe(switchMap(() => loadingStateFromObs(this.snapshot$).pipe(catchError((error) => of(errorResult(error))))), shareReplay(1));
|
|
64
|
-
dataLoadingState$ = this.snapshotLoadingState$.pipe(map((x) => {
|
|
65
|
-
let result;
|
|
66
|
-
if (x.value) {
|
|
67
|
-
const data = documentDataWithIdAndKey(x.value);
|
|
68
|
-
if (data) {
|
|
69
|
-
result = successResult(data);
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
result = errorResult(modelDoesNotExistError());
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
result = {
|
|
77
|
-
...x,
|
|
78
|
-
value: undefined
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
return result;
|
|
82
|
-
}), shareReplay(1));
|
|
83
|
-
currentData$ = this.dataLoadingState$.pipe(map((x) => x.value), shareReplay(1));
|
|
84
|
-
data$ = this.currentDocument$.pipe(switchMap(() => this.currentData$.pipe(filterMaybe())), shareReplay(1));
|
|
85
|
-
isLoadingData$ = this.dataLoadingState$.pipe(map(isLoadingStateLoading), distinctUntilChanged(), shareReplay(1));
|
|
86
|
-
/**
|
|
87
|
-
* Returns false while hasRef$ is false, and then returns exists$.
|
|
88
|
-
*/
|
|
89
|
-
currentExists$ = this.hasRef$.pipe(switchMap((hasRef) => {
|
|
90
|
-
if (hasRef) {
|
|
91
|
-
return this.exists$;
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
return of(false);
|
|
95
|
-
}
|
|
96
|
-
}), shareReplay(1));
|
|
97
|
-
exists$ = this.currentData$.pipe(map((x) => isMaybeSo(x)), catchError((e) => {
|
|
98
|
-
let result;
|
|
99
|
-
if (isClientFirebaseError(e)) {
|
|
100
|
-
switch (e.code) {
|
|
101
|
-
case FIRESTORE_PERMISSION_DENIED_ERROR_CODE:
|
|
102
|
-
result = false; // does not exist if permission is denied
|
|
103
|
-
break;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
if (result == null) {
|
|
107
|
-
throw e;
|
|
108
|
-
}
|
|
109
|
-
return of(result);
|
|
110
|
-
}), shareReplay(1));
|
|
111
|
-
doesNotExist$ = this.exists$.pipe(map((x) => !x), shareReplay(1));
|
|
112
|
-
modelIdentity$ = this.firestoreCollectionLike$.pipe(map((x) => x.modelIdentity), shareReplay(1));
|
|
113
|
-
// MARK: State Changes
|
|
114
|
-
setStoreName = this.updater((state, storeName) => ({ ...state, storeName }));
|
|
115
|
-
setId = this.updater((state, id) => (id ? { ...state, id, key: undefined, ref: undefined } : { ...state, id }));
|
|
116
|
-
setKey = this.updater((state, key) => (key ? { ...state, key, id: undefined, ref: undefined } : { ...state, key }));
|
|
117
|
-
setFlatKey = this.updater((state, key) => (key ? { ...state, key: inferKeyFromTwoWayFlatFirestoreModelKey(key), id: undefined, ref: undefined } : { ...state, key }));
|
|
118
|
-
setRef = this.updater((state, ref) => (ref ? { ...state, key: undefined, id: undefined, ref } : { ...state, ref }));
|
|
119
|
-
setStreamMode = this.updater((state, streamMode) => ({ ...state, streamMode }));
|
|
120
|
-
clearRefs = this.updater((state) => ({ ...state, id: undefined, key: undefined, ref: undefined }));
|
|
121
|
-
setFirestoreCollection = this.updater((state, firestoreCollection) => ({ ...state, firestoreCollection }));
|
|
122
|
-
setFirestoreCollectionLike = this.updater((state, firestoreCollectionLike) => ({ ...state, firestoreCollectionLike }));
|
|
123
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractDbxFirebaseDocumentStore, deps: [{ token: null, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
124
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractDbxFirebaseDocumentStore });
|
|
125
|
-
}
|
|
126
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractDbxFirebaseDocumentStore, decorators: [{
|
|
127
|
-
type: Injectable
|
|
128
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
129
|
-
type: Inject,
|
|
130
|
-
args: [null]
|
|
131
|
-
}, {
|
|
132
|
-
type: Optional
|
|
133
|
-
}] }] });
|
|
134
|
-
function injectSingleItemIdIntoState(state) {
|
|
135
|
-
const id = state?.firestoreCollection?.singleItemIdentifier;
|
|
136
|
-
if (state && id != null) {
|
|
137
|
-
return { ...state, id };
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
return state;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* AbstractDbxFirebaseDocumentWithParentStore extension for use with RootSingleItemFirestoreCollection.
|
|
145
|
-
*/
|
|
146
|
-
let AbstractRootSingleItemDbxFirebaseDocument = class AbstractRootSingleItemDbxFirebaseDocument extends AbstractDbxFirebaseDocumentStore {
|
|
147
|
-
constructor(initialState) {
|
|
148
|
-
super(injectSingleItemIdIntoState(initialState));
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Sets the SingleItemFirestoreCollection to use.
|
|
152
|
-
*/
|
|
153
|
-
setFirestoreCollection = this.updater((state, firestoreCollection) => {
|
|
154
|
-
if (firestoreCollection != null) {
|
|
155
|
-
const id = firestoreCollection.singleItemIdentifier;
|
|
156
|
-
if (id != null) {
|
|
157
|
-
return { ...state, firestoreCollection, id };
|
|
158
|
-
}
|
|
159
|
-
else {
|
|
160
|
-
throw new Error('AbstractRootSingleItemDbxFirebaseDocument only accepts RootSingleItemFirestoreCollection values with a singleItemIdentifier set for setFirestoreCollection.');
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
else {
|
|
164
|
-
return { ...state, firestoreCollection: null };
|
|
165
|
-
}
|
|
166
|
-
});
|
|
167
|
-
/**
|
|
168
|
-
* Does nothing on a AbstractRootSingleItemDbxFirebaseDocument.
|
|
169
|
-
*
|
|
170
|
-
* Ref is set with the FirestoreCollection
|
|
171
|
-
*/
|
|
172
|
-
setId = this.updater((state, id) => state);
|
|
173
|
-
/**
|
|
174
|
-
* Does nothing on a AbstractRootSingleItemDbxFirebaseDocument.
|
|
175
|
-
*
|
|
176
|
-
* Ref is set with the FirestoreCollection
|
|
177
|
-
*/
|
|
178
|
-
setKey = this.updater((state, key) => state);
|
|
179
|
-
/**
|
|
180
|
-
* Does nothing on a AbstractRootSingleItemDbxFirebaseDocument.
|
|
181
|
-
*
|
|
182
|
-
* Ref is set with the FirestoreCollection
|
|
183
|
-
*/
|
|
184
|
-
setRef = this.updater((state, ref) => state);
|
|
185
|
-
clearRefs = this.updater((state) => state);
|
|
186
|
-
};
|
|
187
|
-
AbstractRootSingleItemDbxFirebaseDocument = __decorate([
|
|
188
|
-
__param(0, Inject(null)),
|
|
189
|
-
__param(0, Optional()),
|
|
190
|
-
__metadata("design:paramtypes", [Object])
|
|
191
|
-
], AbstractRootSingleItemDbxFirebaseDocument);
|
|
192
|
-
export { AbstractRootSingleItemDbxFirebaseDocument };
|
|
193
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZG9jdW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL3N0b3JlL3N0b3JlLmRvY3VtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFjLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBZ0IsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsSSxPQUFPLEVBVUwsd0JBQXdCLEVBQ3hCLDBCQUEwQixFQUUxQiwyQkFBMkIsRUFFM0Isd0JBQXdCLEVBQ3hCLDJCQUEyQixFQUUzQix1Q0FBdUMsRUFHdkMscUJBQXFCLEVBQ3JCLDJCQUEyQixFQUMzQixzQ0FBc0MsRUFDdEMscUJBQXFCLEVBQ3RCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLFdBQVcsRUFBZ0IsWUFBWSxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hKLE9BQU8sRUFBUyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXJELE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOztBQUc3RixNQUFNLE9BQU8sZ0NBQThMLFNBQVEscUJBQXdCO0lBQ3pPLFlBQWdELFlBQWdCO1FBQzlELEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwQixzQ0FBc0MsQ0FBQyxJQUFJ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LENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQTZCLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFtRixDQUFDO0lBQ2hPLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQXVDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSx1Q0FBdUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFtRixDQUFDO0lBQzVSLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQWdDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUErRyxDQUFDO0lBRS9QLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLFVBQXVDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFN0csU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVuRyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLG1CQUFxRCxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDN0ksMEJBQTBCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSx1QkFBNkQsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLHVCQUF1QixFQUFFLENBQUMsQ0FBQyxDQUFDO3dHQWhQM0osZ0NBQWdDLGtCQUNiLElBQUk7NEdBRHZCLGdDQUFnQzs7NEZBQWhDLGdDQUFnQztrQkFENUMsVUFBVTs7MEJBRWMsTUFBTTsyQkFBQyxJQUFJOzswQkFBRyxRQUFROztBQWtQL0MsU0FBUywyQkFBMkIsQ0FBOEosS0FBcUI7SUFDck4sTUFBTSxFQUFFLEdBQUksS0FBSyxFQUFFLG1CQUErRCxFQUFFLG9CQUFvQixDQUFDO0lBRXpHLElBQUksS0FBSyxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN4QixPQUFPLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDMUIsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7QUFDSCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxJQUFhLHlDQUF5QyxHQUF0RCxNQUFhLHlDQUF1TSxTQUFRLGdDQUF5QztJQUNuUSxZQUFnRCxZQUFnQjtRQUM5RCxLQUFLLENBQUMsMkJBQTJCLENBQVUsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7O09BRUc7SUFDZSxzQkFBc0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLG1CQUFxRCxFQUFFLEVBQUU7UUFDdkgsSUFBSSxtQkFBbUIsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNoQyxNQUFNLEVBQUUsR0FBSSxtQkFBK0QsQ0FBQyxvQkFBb0IsQ0FBQztZQUVqRyxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDZixPQUFPLEVBQUUsR0FBRyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDL0MsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsNkpBQTZKLENBQUMsQ0FBQztZQUNqTCxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLEVBQUUsR0FBRyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDakQsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUg7Ozs7T0FJRztJQUNlLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQTJCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBbUYsQ0FBQztJQUV4Szs7OztPQUlHO0lBQ2UsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBNkIsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFtRixDQUFDO0lBRTNLOzs7O09BSUc7SUFDZSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFnQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQStHLENBQUM7SUFFeEwsU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0NBQzlELENBQUE7QUE1Q1kseUNBQXlDO0lBQzdCLFdBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQUUsV0FBQSxRQUFRLEVBQUUsQ0FBQTs7R0FEcEMseUNBQXlDLENBNENyRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzd2l0Y2hNYXAsIGNvbWJpbmVMYXRlc3QsIFN1YnNjcmlwdGlvbiwgb2YsIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIERvY3VtZW50U25hcHNob3QsXG4gIERvY3VtZW50UmVmZXJlbmNlLFxuICBGaXJlc3RvcmVDb2xsZWN0aW9uLFxuICBGaXJlc3RvcmVEb2N1bWVudCxcbiAgRG9jdW1lbnREYXRhV2l0aElkQW5kS2V5LFxuICBGaXJlc3RvcmVNb2RlbElkLFxuICBGaXJlc3RvcmVNb2RlbEtleSxcbiAgRmlyZXN0b3JlQ29sbGVjdGlvbkxpa2UsXG4gIEZpcmVzdG9yZU1vZGVsSWRlbnRpdHksXG4gIGZpcmVzdG9yZU1vZGVsSWRzRnJvbUtleSxcbiAgZmlyZXN0b3JlTW9kZWxLZXlQYXJ0UGFpcnMsXG4gIEZpcmVzdG9yZU1vZGVsQ29sbGVjdGlvbkFuZElkUGFpcixcbiAgZmlyZXN0b3JlTW9kZWxLZXlQYWlyT2JqZWN0LFxuICBGaXJlc3RvcmVNb2RlbENvbGxlY3Rpb25BbmRJZFBhaXJPYmplY3QsXG4gIGRvY3VtZW50RGF0YVdpdGhJZEFuZEtleSxcbiAgRmlyZXN0b3JlQWNjZXNzb3JTdHJlYW1Nb2RlLFxuICBUd29XYXlGbGF0RmlyZXN0b3JlTW9kZWxLZXksXG4gIGluZmVyS2V5RnJvbVR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleSxcbiAgUm9vdFNpbmdsZUl0ZW1GaXJlc3RvcmVDb2xsZWN0aW9uLFxuICBGbGF0RmlyZXN0b3JlTW9kZWxLZXksXG4gIGZsYXRGaXJlc3RvcmVNb2RlbEtleSxcbiAgdHdvV2F5RmxhdEZpcmVzdG9yZU1vZGVsS2V5LFxuICBGSVJFU1RPUkVfUEVSTUlTU0lPTl9ERU5JRURfRVJST1JfQ09ERSxcbiAgaXNDbGllbnRGaXJlYmFzZUVycm9yXG59IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcbmltcG9ydCB7IGZpbHRlck1heWJlLCBMb2FkaW5nU3RhdGUsIGJlZ2luTG9hZGluZywgc3VjY2Vzc1Jlc3VsdCwgbG9hZGluZ1N0YXRlRnJvbU9icywgZXJyb3JSZXN1bHQsIGlzTG9hZGluZ1N0YXRlTG9hZGluZywgdGFwTG9nIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBNYXliZSwgaXNNYXliZVNvIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBMb2NrU2V0Q29tcG9uZW50U3RvcmUgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBtb2RlbERvZXNOb3RFeGlzdEVycm9yIH0gZnJvbSAnLi4vLi4vZXJyb3InO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlIH0gZnJvbSAnLi9zdG9yZSc7XG5pbXBvcnQgeyBsaW5rRG9jdW1lbnRTdG9yZVRvUGFyZW50Q29udGV4dFN0b3JlcyB9IGZyb20gJy4vc3RvcmUuZG9jdW1lbnQuY29udGV4dC5zdG9yZS5saW5rJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFic3RyYWN0RGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlPFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+LCBDIGV4dGVuZHMgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlQ29udGV4dFN0YXRlPFQsIEQ+ID0gRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlQ29udGV4dFN0YXRlPFQsIEQ+PiBleHRlbmRzIExvY2tTZXRDb21wb25lbnRTdG9yZTxDPiBpbXBsZW1lbnRzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZTxULCBEPiB7XG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihASW5qZWN0KG51bGwpIEBPcHRpb25hbCgpIGluaXRpYWxTdGF0ZT86IEMpIHtcbiAgICBzdXBlcihpbml0aWFsU3RhdGUpO1xuICAgIGxpbmtEb2N1bWVudFN0b3JlVG9QYXJlbnRDb250ZXh0U3RvcmVzKHRoaXMpO1xuICB9XG5cbiAgLy8gTUFSSzogRWZmZWN0c1xuXG4gIC8vIE1BUks6IEFjY2Vzc29yc1xuICByZWFkb25seSBzdG9yZU5hbWUkOiBPYnNlcnZhYmxlPE1heWJlPHN0cmluZz4+ID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHguc3RvcmVOYW1lKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgY3VycmVudEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlJDogT2JzZXJ2YWJsZTxNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZTxULCBEPj4+ID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHguZmlyZXN0b3JlQ29sbGVjdGlvbiA/PyB4LmZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgY3VycmVudEZpcmVzdG9yZUNvbGxlY3Rpb24kOiBPYnNlcnZhYmxlPE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb248VCwgRD4+PiA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmZpcmVzdG9yZUNvbGxlY3Rpb24pLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBmaXJlc3RvcmVDb2xsZWN0aW9uTGlrZSQ6IE9ic2VydmFibGU8RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U8VCwgRD4+ID0gdGhpcy5jdXJyZW50RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2UkLnBpcGUoZmlsdGVyTWF5YmUoKSk7XG4gIHJlYWRvbmx5IGZpcmVzdG9yZUNvbGxlY3Rpb24kOiBPYnNlcnZhYmxlPEZpcmVzdG9yZUNvbGxlY3Rpb248VCwgRD4+ID0gdGhpcy5jdXJyZW50RmlyZXN0b3JlQ29sbGVjdGlvbiQucGlwZShmaWx0ZXJNYXliZSgpKTtcblxuICByZWFkb25seSBjdXJyZW50SW5wdXRJZCQ6IE9ic2VydmFibGU8TWF5YmU8RmlyZXN0b3JlTW9kZWxJZD4+ID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHguaWQpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBpbnB1dElkJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbElkPiA9IHRoaXMuY3VycmVudElucHV0SWQkLnBpcGUoZmlsdGVyTWF5YmUoKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRJbnB1dEtleSQ6IE9ic2VydmFibGU8TWF5YmU8RmlyZXN0b3JlTW9kZWxLZXk+PiA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmtleSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGlucHV0S2V5JDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbEtleT4gPSB0aGlzLmN1cnJlbnRJbnB1dEtleSQucGlwZShmaWx0ZXJNYXliZSgpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgY3VycmVudElucHV0UmVmJDogT2JzZXJ2YWJsZTxNYXliZTxEb2N1bWVudFJlZmVyZW5jZTxUPj4+ID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHgucmVmKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgaW5wdXRSZWYkOiBPYnNlcnZhYmxlPERvY3VtZW50UmVmZXJlbmNlPFQ+PiA9IHRoaXMuY3VycmVudElucHV0UmVmJC5waXBlKGZpbHRlck1heWJlKCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHNoYXJlUmVwbGF5KDEpKTtcblxuICByZWFkb25seSBzdHJlYW1Nb2RlJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVBY2Nlc3NvclN0cmVhbU1vZGU+ID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHguc3RyZWFtTW9kZSA/PyBGaXJlc3RvcmVBY2Nlc3NvclN0cmVhbU1vZGUuU1RSRUFNKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgY3VycmVudERvY3VtZW50JDogT2JzZXJ2YWJsZTxNYXliZTxEPj4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmN1cnJlbnRJbnB1dElkJCwgdGhpcy5jdXJyZW50SW5wdXRLZXkkLCB0aGlzLmN1cnJlbnRJbnB1dFJlZiRdKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoW2lkLCBrZXksIHJlZl0pID0+IHtcbiAgICAgIGxldCBkb2N1bWVudDogT2JzZXJ2YWJsZTxNYXliZTxEPj47XG5cbiAgICAgIGlmIChyZWYpIHtcbiAgICAgICAgZG9jdW1lbnQgPSB0aGlzLmZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlJC5waXBlKG1hcCgoeCkgPT4geC5kb2N1bWVudEFjY2Vzc29yKCkubG9hZERvY3VtZW50KHJlZikpKTtcbiAgICAgIH0gZWxzZSBpZiAoa2V5KSB7XG4gICAgICAgIGRvY3VtZW50ID0gdGhpcy5maXJlc3RvcmVDb2xsZWN0aW9uTGlrZSQucGlwZShtYXAoKHgpID0+IHguZG9jdW1lbnRBY2Nlc3NvcigpLmxvYWREb2N1bWVudEZvcktleShrZXkpKSk7XG4gICAgICB9IGVsc2UgaWYgKGlkKSB7XG4gICAgICAgIGRvY3VtZW50ID0gdGhpcy5maXJlc3RvcmVDb2xsZWN0aW9uJC5waXBlKG1hcCgoeCkgPT4geC5kb2N1bWVudEFjY2Vzc29yKCkubG9hZERvY3VtZW50Rm9ySWQoaWQpKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkb2N1bWVudCA9IG9mKHVuZGVmaW5lZCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkb2N1bWVudDtcbiAgICB9KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IGFuIGlkL3JlZi9rZXkgaGFzIGJlZW4gaW5wdXQgYW5kIGN1cnJlbnREb2N1bWVudCBpcyBub3QgbnVsbC5cbiAgICovXG4gIHJlYWRvbmx5IGhhc1JlZiQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmN1cnJlbnREb2N1bWVudCQucGlwZShcbiAgICBtYXAoKHgpID0+IHg/LmRvY3VtZW50UmVmICE9IG51bGwpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBkb2N1bWVudCQ6IE9ic2VydmFibGU8RD4gPSB0aGlzLmN1cnJlbnREb2N1bWVudCQucGlwZShmaWx0ZXJNYXliZSgpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgZG9jdW1lbnRMb2FkaW5nU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEPj4gPSB0aGlzLmN1cnJlbnREb2N1bWVudCQucGlwZShcbiAgICBtYXAoKHgpID0+ICh4ID8gc3VjY2Vzc1Jlc3VsdCh4KSA6IGJlZ2luTG9hZGluZzxEPigpKSksXG4gICAgdGFwTG9nKCdkb2N1bWVudExvYWRpbmdTdGF0ZSQnKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRJZCQ6IE9ic2VydmFibGU8TWF5YmU8RmlyZXN0b3JlTW9kZWxJZD4+ID0gdGhpcy5jdXJyZW50RG9jdW1lbnQkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4Py5pZCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBjdXJyZW50S2V5JDogT2JzZXJ2YWJsZTxNYXliZTxGaXJlc3RvcmVNb2RlbEtleT4+ID0gdGhpcy5jdXJyZW50RG9jdW1lbnQkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4Py5rZXkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgaWQkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZU1vZGVsSWQ+ID0gdGhpcy5kb2N1bWVudCQucGlwZShcbiAgICBtYXAoKHgpID0+IHguaWQpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkga2V5JDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbEtleT4gPSB0aGlzLmRvY3VtZW50JC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5rZXkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkga2V5TW9kZWxJZHMkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZU1vZGVsSWRbXT4gPSB0aGlzLmtleSQucGlwZShtYXAoZmlyZXN0b3JlTW9kZWxJZHNGcm9tS2V5KSwgc2hhcmVSZXBsYXkoMSkpO1xuICByZWFkb25seSBrZXlQYWlycyQ6IE9ic2VydmFibGU8RmlyZXN0b3JlTW9kZWxDb2xsZWN0aW9uQW5kSWRQYWlyW10+ID0gdGhpcy5rZXkkLnBpcGUobWFwKGZpcmVzdG9yZU1vZGVsS2V5UGFydFBhaXJzKSwgZmlsdGVyTWF5YmUoKSwgc2hhcmVSZXBsYXkoMSkpO1xuICByZWFkb25seSBrZXlQYWlyT2JqZWN0JDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbENvbGxlY3Rpb25BbmRJZFBhaXJPYmplY3Q+ID0gdGhpcy5rZXkkLnBpcGUobWFwKGZpcmVzdG9yZU1vZGVsS2V5UGFpck9iamVjdCksIGZpbHRlck1heWJlKCksIHNoYXJlUmVwbGF5KDEpKTtcblxuICByZWFkb25seSByZWYkOiBPYnNlcnZhYmxlPERvY3VtZW50UmVmZXJlbmNlPFQ+PiA9IHRoaXMuZG9jdW1lbnQkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmRvY3VtZW50UmVmKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGZsYXRLZXkkOiBPYnNlcnZhYmxlPEZsYXRGaXJlc3RvcmVNb2RlbEtleT4gPSB0aGlzLmtleSQucGlwZShcbiAgICBtYXAoKHgpID0+IGZsYXRGaXJlc3RvcmVNb2RlbEtleSh4KSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSB0d29XYXlGbGF0S2V5JDogT2JzZXJ2YWJsZTxGbGF0RmlyZXN0b3JlTW9kZWxLZXk+ID0gdGhpcy5rZXkkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB0d29XYXlGbGF0RmlyZXN0b3JlTW9kZWxLZXkoeCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgc25hcHNob3QkOiBPYnNlcnZhYmxlPERvY3VtZW50U25hcHNob3Q8VD4+ID0gY29tYmluZUxhdGVzdChbdGhpcy5kb2N1bWVudCQsIHRoaXMuc3RyZWFtTW9kZSRdKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoW3gsIG1vZGVdKSA9PiB4LnNuYXBzaG90U3RyZWFtKG1vZGUpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHNuYXBzaG90TG9hZGluZ1N0YXRlJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8RG9jdW1lbnRTbmFwc2hvdDxUPj4+ID0gdGhpcy5jdXJyZW50RG9jdW1lbnQkLnBpcGUoXG4gICAgc3dpdGNoTWFwKCgpID0+IGxvYWRpbmdTdGF0ZUZyb21PYnModGhpcy5zbmFwc2hvdCQpLnBpcGUoY2F0Y2hFcnJvcigoZXJyb3IpID0+IG9mKGVycm9yUmVzdWx0KGVycm9yKSBhcyBMb2FkaW5nU3RhdGU8RG9jdW1lbnRTbmFwc2hvdDxUPj4pKSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZGF0YUxvYWRpbmdTdGF0ZSQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPERvY3VtZW50RGF0YVdpdGhJZEFuZEtleTxUPj4+ID0gdGhpcy5zbmFwc2hvdExvYWRpbmdTdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHtcbiAgICAgIGxldCByZXN1bHQ6IExvYWRpbmdTdGF0ZTxEb2N1bWVudERhdGFXaXRoSWRBbmRLZXk8VD4+O1xuXG4gICAgICBpZiAoeC52YWx1ZSkge1xuICAgICAgICBjb25zdCBkYXRhID0gZG9jdW1lbnREYXRhV2l0aElkQW5kS2V5KHgudmFsdWUpO1xuXG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgcmVzdWx0ID0gc3VjY2Vzc1Jlc3VsdChkYXRhKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXN1bHQgPSBlcnJvclJlc3VsdChtb2RlbERvZXNOb3RFeGlzdEVycm9yKCkpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgLi4ueCxcbiAgICAgICAgICB2YWx1ZTogdW5kZWZpbmVkXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBjdXJyZW50RGF0YSQ6IE9ic2VydmFibGU8TWF5YmU8RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+Pj4gPSB0aGlzLmRhdGFMb2FkaW5nU3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LnZhbHVlKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGRhdGEkOiBPYnNlcnZhYmxlPERvY3VtZW50RGF0YVdpdGhJZEFuZEtleTxUPj4gPSB0aGlzLmN1cnJlbnREb2N1bWVudCQucGlwZShcbiAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5jdXJyZW50RGF0YSQucGlwZShmaWx0ZXJNYXliZSgpKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBpc0xvYWRpbmdEYXRhJCA9IHRoaXMuZGF0YUxvYWRpbmdTdGF0ZSQucGlwZShtYXAoaXNMb2FkaW5nU3RhdGVMb2FkaW5nKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGZhbHNlIHdoaWxlIGhhc1JlZiQgaXMgZmFsc2UsIGFuZCB0aGVuIHJldHVybnMgZXhpc3RzJC5cbiAgICovXG4gIHJlYWRvbmx5IGN1cnJlbnRFeGlzdHMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5oYXNSZWYkLnBpcGUoXG4gICAgc3dpdGNoTWFwKChoYXNSZWYpID0+IHtcbiAgICAgIGlmIChoYXNSZWYpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhpc3RzJDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBvZihmYWxzZSk7XG4gICAgICB9XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBleGlzdHMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5jdXJyZW50RGF0YSQucGlwZShcbiAgICBtYXAoKHgpID0+IGlzTWF5YmVTbyh4KSksXG4gICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xuICAgICAgbGV0IHJlc3VsdDogTWF5YmU8Ym9vbGVhbj47XG5cbiAgICAgIGlmIChpc0NsaWVudEZpcmViYXNlRXJyb3IoZSkpIHtcbiAgICAgICAgc3dpdGNoIChlLmNvZGUpIHtcbiAgICAgICAgICBjYXNlIEZJUkVTVE9SRV9QRVJNSVNTSU9OX0RFTklFRF9FUlJPUl9DT0RFOlxuICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7IC8vIGRvZXMgbm90IGV4aXN0IGlmIHBlcm1pc3Npb24gaXMgZGVuaWVkXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAocmVzdWx0ID09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG9mKHJlc3VsdCk7XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBkb2VzTm90RXhpc3QkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5leGlzdHMkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiAheCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBtb2RlbElkZW50aXR5JDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbElkZW50aXR5PiA9IHRoaXMuZmlyZXN0b3JlQ29sbGVjdGlvbkxpa2UkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4Lm1vZGVsSWRlbnRpdHkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgLy8gTUFSSzogU3RhdGUgQ2hhbmdlc1xuICByZWFkb25seSBzZXRTdG9yZU5hbWUgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBzdG9yZU5hbWU6IE1heWJlPHN0cmluZz4pID0+ICh7IC4uLnN0YXRlLCBzdG9yZU5hbWUgfSkpIGFzIChvYnNlcnZhYmxlT3JWYWx1ZTogTWF5YmU8c3RyaW5nPiB8IE9ic2VydmFibGU8TWF5YmU8c3RyaW5nPj4pID0+IFN1YnNjcmlwdGlvbjtcbiAgcmVhZG9ubHkgc2V0SWQgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBpZDogTWF5YmU8RmlyZXN0b3JlTW9kZWxJZD4pID0+IChpZCA/IHsgLi4uc3RhdGUsIGlkLCBrZXk6IHVuZGVmaW5lZCwgcmVmOiB1bmRlZmluZWQgfSA6IHsgLi4uc3RhdGUsIGlkIH0pKSBhcyAob2JzZXJ2YWJsZU9yVmFsdWU6IE1heWJlPHN0cmluZz4gfCBPYnNlcnZhYmxlPE1heWJlPHN0cmluZz4+KSA9PiBTdWJzY3JpcHRpb247XG4gIHJlYWRvbmx5IHNldEtleSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGtleTogTWF5YmU8RmlyZXN0b3JlTW9kZWxLZXk+KSA9PiAoa2V5ID8geyAuLi5zdGF0ZSwga2V5LCBpZDogdW5kZWZpbmVkLCByZWY6IHVuZGVmaW5lZCB9IDogeyAuLi5zdGF0ZSwga2V5IH0pKSBhcyAob2JzZXJ2YWJsZU9yVmFsdWU6IE1heWJlPHN0cmluZz4gfCBPYnNlcnZhYmxlPE1heWJlPHN0cmluZz4+KSA9PiBTdWJzY3JpcHRpb247XG4gIHJlYWRvbmx5IHNldEZsYXRLZXkgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBrZXk6IE1heWJlPFR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleT4pID0+IChrZXkgPyB7IC4uLnN0YXRlLCBrZXk6IGluZmVyS2V5RnJvbVR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleShrZXkpLCBpZDogdW5kZWZpbmVkLCByZWY6IHVuZGVmaW5lZCB9IDogeyAuLi5zdGF0ZSwga2V5IH0pKSBhcyAob2JzZXJ2YWJsZU9yVmFsdWU6IE1heWJlPHN0cmluZz4gfCBPYnNlcnZhYmxlPE1heWJlPHN0cmluZz4+KSA9PiBTdWJzY3JpcHRpb247XG4gIHJlYWRvbmx5IHNldFJlZiA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHJlZjogTWF5YmU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+KSA9PiAocmVmID8geyAuLi5zdGF0ZSwga2V5OiB1bmRlZmluZWQsIGlkOiB1bmRlZmluZWQsIHJlZiB9IDogeyAuLi5zdGF0ZSwgcmVmIH0pKSBhcyAob2JzZXJ2YWJsZU9yVmFsdWU6IE1heWJlPERvY3VtZW50UmVmZXJlbmNlPFQ+PiB8IE9ic2VydmFibGU8TWF5YmU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+PikgPT4gU3Vic2NyaXB0aW9uO1xuXG4gIHJlYWRvbmx5IHNldFN0cmVhbU1vZGUgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBzdHJlYW1Nb2RlOiBGaXJlc3RvcmVBY2Nlc3NvclN0cmVhbU1vZGUpID0+ICh7IC4uLnN0YXRlLCBzdHJlYW1Nb2RlIH0pKTtcblxuICByZWFkb25seSBjbGVhclJlZnMgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlKSA9PiAoeyAuLi5zdGF0ZSwgaWQ6IHVuZGVmaW5lZCwga2V5OiB1bmRlZmluZWQsIHJlZjogdW5kZWZpbmVkIH0pKTtcblxuICByZWFkb25seSBzZXRGaXJlc3RvcmVDb2xsZWN0aW9uID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgZmlyZXN0b3JlQ29sbGVjdGlvbjogTWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbjxULCBEPj4pID0+ICh7IC4uLnN0YXRlLCBmaXJlc3RvcmVDb2xsZWN0aW9uIH0pKTtcbiAgcmVhZG9ubHkgc2V0RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2UgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBmaXJlc3RvcmVDb2xsZWN0aW9uTGlrZTogTWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U8VCwgRD4+KSA9PiAoeyAuLi5zdGF0ZSwgZmlyZXN0b3JlQ29sbGVjdGlvbkxpa2UgfSkpO1xufVxuXG5mdW5jdGlvbiBpbmplY3RTaW5nbGVJdGVtSWRJbnRvU3RhdGU8VCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIEMgZXh0ZW5kcyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVDb250ZXh0U3RhdGU8VCwgRD4gPSBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVDb250ZXh0U3RhdGU8VCwgRD4+KHN0YXRlPzogQyB8IHVuZGVmaW5lZCk6IEMgfCB1bmRlZmluZWQge1xuICBjb25zdCBpZCA9IChzdGF0ZT8uZmlyZXN0b3JlQ29sbGVjdGlvbiBhcyBSb290U2luZ2xlSXRlbUZpcmVzdG9yZUNvbGxlY3Rpb248VCwgRD4pPy5zaW5nbGVJdGVtSWRlbnRpZmllcjtcblxuICBpZiAoc3RhdGUgJiYgaWQgIT0gbnVsbCkge1xuICAgIHJldHVybiB7IC4uLnN0YXRlLCBpZCB9O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufVxuXG4vKipcbiAqIEFic3RyYWN0RGJ4RmlyZWJhc2VEb2N1bWVudFdpdGhQYXJlbnRTdG9yZSBleHRlbnNpb24gZm9yIHVzZSB3aXRoIFJvb3RTaW5nbGVJdGVtRmlyZXN0b3JlQ29sbGVjdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIEFic3RyYWN0Um9vdFNpbmdsZUl0ZW1EYnhGaXJlYmFzZURvY3VtZW50PFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+LCBDIGV4dGVuZHMgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlQ29udGV4dFN0YXRlPFQsIEQ+ID0gRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlQ29udGV4dFN0YXRlPFQsIEQ+PiBleHRlbmRzIEFic3RyYWN0RGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlPFQsIEQsIEM+IHtcbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKEBJbmplY3QobnVsbCkgQE9wdGlvbmFsKCkgaW5pdGlhbFN0YXRlPzogQykge1xuICAgIHN1cGVyKGluamVjdFNpbmdsZUl0ZW1JZEludG9TdGF0ZTxULCBELCBDPihpbml0aWFsU3RhdGUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBTaW5nbGVJdGVtRmlyZXN0b3JlQ29sbGVjdGlvbiB0byB1c2UuXG4gICAqL1xuICBvdmVycmlkZSByZWFkb25seSBzZXRGaXJlc3RvcmVDb2xsZWN0aW9uID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgZmlyZXN0b3JlQ29sbGVjdGlvbjogTWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbjxULCBEPj4pID0+IHtcbiAgICBpZiAoZmlyZXN0b3JlQ29sbGVjdGlvbiAhPSBudWxsKSB7XG4gICAgICBjb25zdCBpZCA9IChmaXJlc3RvcmVDb2xsZWN0aW9uIGFzIFJvb3RTaW5nbGVJdGVtRmlyZXN0b3JlQ29sbGVjdGlvbjxULCBEPikuc2luZ2xlSXRlbUlkZW50aWZpZXI7XG5cbiAgICAgIGlmIChpZCAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybiB7IC4uLnN0YXRlLCBmaXJlc3RvcmVDb2xsZWN0aW9uLCBpZCB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBYnN0cmFjdFJvb3RTaW5nbGVJdGVtRGJ4RmlyZWJhc2VEb2N1bWVudCBvbmx5IGFjY2VwdHMgUm9vdFNpbmdsZUl0ZW1GaXJlc3RvcmVDb2xsZWN0aW9uIHZhbHVlcyB3aXRoIGEgc2luZ2xlSXRlbUlkZW50aWZpZXIgc2V0IGZvciBzZXRGaXJlc3RvcmVDb2xsZWN0aW9uLicpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4geyAuLi5zdGF0ZSwgZmlyZXN0b3JlQ29sbGVjdGlvbjogbnVsbCB9O1xuICAgIH1cbiAgfSk7XG5cbiAgLyoqXG4gICAqIERvZXMgbm90aGluZyBvbiBhIEFic3RyYWN0Um9vdFNpbmdsZUl0ZW1EYnhGaXJlYmFzZURvY3VtZW50LlxuICAgKlxuICAgKiBSZWYgaXMgc2V0IHdpdGggdGhlIEZpcmVzdG9yZUNvbGxlY3Rpb25cbiAgICovXG4gIG92ZXJyaWRlIHJlYWRvbmx5IHNldElkID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgaWQ6IE1heWJlPEZpcmVzdG9yZU1vZGVsSWQ+KSA9PiBzdGF0ZSkgYXMgKG9ic2VydmFibGVPclZhbHVlOiBNYXliZTxzdHJpbmc+IHwgT2JzZXJ2YWJsZTxNYXliZTxzdHJpbmc+PikgPT4gU3Vic2NyaXB0aW9uO1xuXG4gIC8qKlxuICAgKiBEb2VzIG5vdGhpbmcgb24gYSBBYnN0cmFjdFJvb3RTaW5nbGVJdGVtRGJ4RmlyZWJhc2VEb2N1bWVudC5cbiAgICpcbiAgICogUmVmIGlzIHNldCB3aXRoIHRoZSBGaXJlc3RvcmVDb2xsZWN0aW9uXG4gICAqL1xuICBvdmVycmlkZSByZWFkb25seSBzZXRLZXkgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBrZXk6IE1heWJlPEZpcmVzdG9yZU1vZGVsS2V5PikgPT4gc3RhdGUpIGFzIChvYnNlcnZhYmxlT3JWYWx1ZTogTWF5YmU8c3RyaW5nPiB8IE9ic2VydmFibGU8TWF5YmU8c3RyaW5nPj4pID0+IFN1YnNjcmlwdGlvbjtcblxuICAvKipcbiAgICogRG9lcyBub3RoaW5nIG9uIGEgQWJzdHJhY3RSb290U2luZ2xlSXRlbURieEZpcmViYXNlRG9jdW1lbnQuXG4gICAqXG4gICAqIFJlZiBpcyBzZXQgd2l0aCB0aGUgRmlyZXN0b3JlQ29sbGVjdGlvblxuICAgKi9cbiAgb3ZlcnJpZGUgcmVhZG9ubHkgc2V0UmVmID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgcmVmOiBNYXliZTxEb2N1bWVudFJlZmVyZW5jZTxUPj4pID0+IHN0YXRlKSBhcyAob2JzZXJ2YWJsZU9yVmFsdWU6IE1heWJlPERvY3VtZW50UmVmZXJlbmNlPFQ+PiB8IE9ic2VydmFibGU8TWF5YmU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+PikgPT4gU3Vic2NyaXB0aW9uO1xuXG4gIG92ZXJyaWRlIHJlYWRvbmx5IGNsZWFyUmVmcyA9IHRoaXMudXBkYXRlcigoc3RhdGUpID0+IHN0YXRlKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVDb250ZXh0U3RhdGU8VCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4+IHtcbiAgcmVhZG9ubHkgc3RvcmVOYW1lPzogTWF5YmU8c3RyaW5nPjtcbiAgcmVhZG9ubHkgZmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U/OiBNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZTxULCBEPj47XG4gIHJlYWRvbmx5IGZpcmVzdG9yZUNvbGxlY3Rpb24/OiBNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uPFQsIEQ+PjtcbiAgcmVhZG9ubHkgc3RyZWFtTW9kZT86IEZpcmVzdG9yZUFjY2Vzc29yU3RyZWFtTW9kZTtcbiAgcmVhZG9ubHkgaWQ/OiBNYXliZTxGaXJlc3RvcmVNb2RlbElkPjtcbiAgcmVhZG9ubHkga2V5PzogTWF5YmU8RmlyZXN0b3JlTW9kZWxLZXk+O1xuICByZWFkb25seSByZWY/OiBNYXliZTxEb2N1bWVudFJlZmVyZW5jZTxUPj47XG59XG4iXX0=
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { Directive, inject } from '@angular/core';
|
|
2
|
-
import { DbxFirebaseDocumentStoreDirective } from './store.document.directive';
|
|
3
|
-
import { DbxFirebaseDocumentStoreTwoWayKeyProvider } from './store.document.twoway.key.source';
|
|
4
|
-
import { AbstractSubscriptionDirective } from '@dereekb/dbx-core';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
/**
|
|
7
|
-
* Used for providing an id from the twoWayFlatKey$ from a DbxFirebaseDocumentStoreTwoWayKeyProvider.
|
|
8
|
-
*/
|
|
9
|
-
export class DbxFirebaseDocumentStoreIdFromTwoWayModelKeyDirective extends AbstractSubscriptionDirective {
|
|
10
|
-
dbxFirebaseDocumentStoreDirective = inject(DbxFirebaseDocumentStoreDirective, { host: true });
|
|
11
|
-
dbxFirebaseDocumentStoreTwoWayKeyProvider = inject(DbxFirebaseDocumentStoreTwoWayKeyProvider, { skipSelf: true, host: false });
|
|
12
|
-
constructor() {
|
|
13
|
-
super();
|
|
14
|
-
this.sub = this.dbxFirebaseDocumentStoreDirective.store.setId(this.dbxFirebaseDocumentStoreTwoWayKeyProvider.twoWayFlatKey$);
|
|
15
|
-
}
|
|
16
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseDocumentStoreIdFromTwoWayModelKeyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
17
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DbxFirebaseDocumentStoreIdFromTwoWayModelKeyDirective, isStandalone: true, selector: "[dbxFirebaseDocumentStoreIdFromTwoWayModelKey]", usesInheritance: true, ngImport: i0 });
|
|
18
|
-
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseDocumentStoreIdFromTwoWayModelKeyDirective, decorators: [{
|
|
20
|
-
type: Directive,
|
|
21
|
-
args: [{
|
|
22
|
-
selector: '[dbxFirebaseDocumentStoreIdFromTwoWayModelKey]',
|
|
23
|
-
standalone: true
|
|
24
|
-
}]
|
|
25
|
-
}], ctorParameters: () => [] });
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZG9jdW1lbnQudHdvd2F5LmtleS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL3N0b3JlL3N0b3JlLmRvY3VtZW50LnR3b3dheS5rZXkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9FLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQy9GLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUVsRTs7R0FFRztBQUtILE1BQU0sT0FBTyxxREFBc0QsU0FBUSw2QkFBNkI7SUFDN0YsaUNBQWlDLEdBQUcsTUFBTSxDQUFDLGlDQUFpQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUYseUNBQXlDLEdBQUcsTUFBTSxDQUFDLHlDQUF5QyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUV4STtRQUNFLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsaUNBQWlDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMseUNBQXlDLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDL0gsQ0FBQzt3R0FQVSxxREFBcUQ7NEZBQXJELHFEQUFxRDs7NEZBQXJELHFEQUFxRDtrQkFKakUsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0RBQWdEO29CQUMxRCxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlIH0gZnJvbSAnLi9zdG9yZS5kb2N1bWVudC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlVHdvV2F5S2V5UHJvdmlkZXIgfSBmcm9tICcuL3N0b3JlLmRvY3VtZW50LnR3b3dheS5rZXkuc291cmNlJztcbmltcG9ydCB7IEFic3RyYWN0U3Vic2NyaXB0aW9uRGlyZWN0aXZlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuXG4vKipcbiAqIFVzZWQgZm9yIHByb3ZpZGluZyBhbiBpZCBmcm9tIHRoZSB0d29XYXlGbGF0S2V5JCBmcm9tIGEgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlVHdvV2F5S2V5UHJvdmlkZXIuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tkYnhGaXJlYmFzZURvY3VtZW50U3RvcmVJZEZyb21Ud29XYXlNb2RlbEtleV0nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZUlkRnJvbVR3b1dheU1vZGVsS2V5RGlyZWN0aXZlIGV4dGVuZHMgQWJzdHJhY3RTdWJzY3JpcHRpb25EaXJlY3RpdmUge1xuICByZWFkb25seSBkYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmUgPSBpbmplY3QoRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlLCB7IGhvc3Q6IHRydWUgfSk7XG4gIHJlYWRvbmx5IGRieEZpcmViYXNlRG9jdW1lbnRTdG9yZVR3b1dheUtleVByb3ZpZGVyID0gaW5qZWN0KERieEZpcmViYXNlRG9jdW1lbnRTdG9yZVR3b1dheUtleVByb3ZpZGVyLCB7IHNraXBTZWxmOiB0cnVlLCBob3N0OiBmYWxzZSB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc3ViID0gdGhpcy5kYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmUuc3RvcmUuc2V0SWQodGhpcy5kYnhGaXJlYmFzZURvY3VtZW50U3RvcmVUd29XYXlLZXlQcm92aWRlci50d29XYXlGbGF0S2V5JCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Directive, inject } from '@angular/core';
|
|
2
|
-
import { DbxFirebaseDocumentStoreDirective } from './store.document.directive';
|
|
3
|
-
import { provideDbxFirebaseDocumentStoreTwoWayKeyProvider } from './store.document.twoway.key.source';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
/**
|
|
6
|
-
* Directive that implements DbxFirebaseDocumentStoreTwoWayKeyProvider and passes the twoWayFlatKey from a host DbxFirebaseDocumentStoreDirective.
|
|
7
|
-
*/
|
|
8
|
-
export class DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective {
|
|
9
|
-
dbxFirebaseDocumentStoreDirective = inject(DbxFirebaseDocumentStoreDirective, { host: true });
|
|
10
|
-
twoWayFlatKey$ = this.dbxFirebaseDocumentStoreDirective.twoWayFlatKey$;
|
|
11
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
12
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective, isStandalone: true, selector: "[dbxFirebaseDocumentStoreTwoWayModelKeySource]", providers: provideDbxFirebaseDocumentStoreTwoWayKeyProvider(DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective), ngImport: i0 });
|
|
13
|
-
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective, decorators: [{
|
|
15
|
-
type: Directive,
|
|
16
|
-
args: [{
|
|
17
|
-
selector: '[dbxFirebaseDocumentStoreTwoWayModelKeySource]',
|
|
18
|
-
providers: provideDbxFirebaseDocumentStoreTwoWayKeyProvider(DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective),
|
|
19
|
-
standalone: true
|
|
20
|
-
}]
|
|
21
|
-
}] });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZG9jdW1lbnQudHdvd2F5LmtleS5zb3VyY2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9zdG9yZS9zdG9yZS5kb2N1bWVudC50d293YXkua2V5LnNvdXJjZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0UsT0FBTyxFQUE2QyxnREFBZ0QsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQUVqSjs7R0FFRztBQU1ILE1BQU0sT0FBTyxxREFBcUQ7SUFDdkQsaUNBQWlDLEdBQUcsTUFBTSxDQUFDLGlDQUFpQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUYsY0FBYyxHQUF1QixJQUFJLENBQUMsaUNBQWlDLENBQUMsY0FBYyxDQUFDO3dHQUZ6RixxREFBcUQ7NEZBQXJELHFEQUFxRCw2RkFIckQsZ0RBQWdELENBQUMscURBQXFELENBQUM7OzRGQUd2RyxxREFBcUQ7a0JBTGpFLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdEQUFnRDtvQkFDMUQsU0FBUyxFQUFFLGdEQUFnRCx1REFBdUQ7b0JBQ2xILFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmUgfSBmcm9tICcuL3N0b3JlLmRvY3VtZW50LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVUd29XYXlLZXlQcm92aWRlciwgcHJvdmlkZURieEZpcmViYXNlRG9jdW1lbnRTdG9yZVR3b1dheUtleVByb3ZpZGVyIH0gZnJvbSAnLi9zdG9yZS5kb2N1bWVudC50d293YXkua2V5LnNvdXJjZSc7XG5cbi8qKlxuICogRGlyZWN0aXZlIHRoYXQgaW1wbGVtZW50cyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVUd29XYXlLZXlQcm92aWRlciBhbmQgcGFzc2VzIHRoZSB0d29XYXlGbGF0S2V5IGZyb20gYSBob3N0IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2RieEZpcmViYXNlRG9jdW1lbnRTdG9yZVR3b1dheU1vZGVsS2V5U291cmNlXScsXG4gIHByb3ZpZGVyczogcHJvdmlkZURieEZpcmViYXNlRG9jdW1lbnRTdG9yZVR3b1dheUtleVByb3ZpZGVyKERieEZpcmViYXNlRG9jdW1lbnRTdG9yZVR3b1dheU1vZGVsS2V5U291cmNlRGlyZWN0aXZlKSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVUd29XYXlNb2RlbEtleVNvdXJjZURpcmVjdGl2ZSBpbXBsZW1lbnRzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZVR3b1dheUtleVByb3ZpZGVyIHtcbiAgcmVhZG9ubHkgZGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlID0gaW5qZWN0KERieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZSwgeyBob3N0OiB0cnVlIH0pO1xuICByZWFkb25seSB0d29XYXlGbGF0S2V5JDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5kYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmUudHdvV2F5RmxhdEtleSQ7XG59XG4iXX0=
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { forwardRef } from '@angular/core';
|
|
2
|
-
export class DbxFirebaseDocumentStoreTwoWayKeyProvider {
|
|
3
|
-
}
|
|
4
|
-
/**
|
|
5
|
-
* Configures Providers for a DbxFirebaseDocumentStoreTwoWayKeyProvider.
|
|
6
|
-
*/
|
|
7
|
-
export function provideDbxFirebaseDocumentStoreTwoWayKeyProvider(sourceType) {
|
|
8
|
-
const providers = [
|
|
9
|
-
{
|
|
10
|
-
provide: DbxFirebaseDocumentStoreTwoWayKeyProvider,
|
|
11
|
-
useExisting: forwardRef(() => sourceType)
|
|
12
|
-
}
|
|
13
|
-
];
|
|
14
|
-
return providers;
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZG9jdW1lbnQudHdvd2F5LmtleS5zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL3N0b3JlL3N0b3JlLmRvY3VtZW50LnR3b3dheS5rZXkuc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNEIsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXJFLE1BQU0sT0FBZ0IseUNBQXlDO0NBRTlEO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsZ0RBQWdELENBQXNELFVBQW1CO0lBQ3ZJLE1BQU0sU0FBUyxHQUFlO1FBQzVCO1lBQ0UsT0FBTyxFQUFFLHlDQUF5QztZQUNsRCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQztTQUMxQztLQUNGLENBQUM7SUFFRixPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBUeXBlLCB0eXBlIFByb3ZpZGVyLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0eXBlIFR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleSB9IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcbmltcG9ydCB7IHR5cGUgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlVHdvV2F5S2V5UHJvdmlkZXIge1xuICBhYnN0cmFjdCByZWFkb25seSB0d29XYXlGbGF0S2V5JDogT2JzZXJ2YWJsZTxUd29XYXlGbGF0RmlyZXN0b3JlTW9kZWxLZXk+O1xufVxuXG4vKipcbiAqIENvbmZpZ3VyZXMgUHJvdmlkZXJzIGZvciBhIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZVR3b1dheUtleVByb3ZpZGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZURieEZpcmViYXNlRG9jdW1lbnRTdG9yZVR3b1dheUtleVByb3ZpZGVyPFMgZXh0ZW5kcyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVUd29XYXlLZXlQcm92aWRlcj4oc291cmNlVHlwZTogVHlwZTxTPik6IFByb3ZpZGVyW10ge1xuICBjb25zdCBwcm92aWRlcnM6IFByb3ZpZGVyW10gPSBbXG4gICAge1xuICAgICAgcHJvdmlkZTogRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlVHdvV2F5S2V5UHJvdmlkZXIsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBzb3VyY2VUeXBlKVxuICAgIH1cbiAgXTtcblxuICByZXR1cm4gcHJvdmlkZXJzO1xufVxuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL3N0b3JlL3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIExvY2tTZXRDb21wb25lbnQgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyB0eXBlIEZpcmVzdG9yZURvY3VtZW50LCB0eXBlIEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlLCB0eXBlIEZpcmVzdG9yZUNvbGxlY3Rpb24sIHR5cGUgRmlyZXN0b3JlTW9kZWxJZCwgdHlwZSBGaXJlc3RvcmVNb2RlbEtleSwgdHlwZSBEb2N1bWVudFJlZmVyZW5jZSwgdHlwZSBGaXJlc3RvcmVBY2Nlc3NvclN0cmVhbU1vZGUsIHR5cGUgRmxhdEZpcmVzdG9yZU1vZGVsS2V5LCB0eXBlIFR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleSwgdHlwZSBGaXJlc3RvcmVNb2RlbENvbGxlY3Rpb25BbmRJZFBhaXIsIHR5cGUgRmlyZXN0b3JlTW9kZWxDb2xsZWN0aW9uQW5kSWRQYWlyT2JqZWN0LCB0eXBlIERvY3VtZW50U25hcHNob3QsIHR5cGUgRG9jdW1lbnREYXRhV2l0aElkQW5kS2V5LCB0eXBlIEZpcmVzdG9yZU1vZGVsSWRlbnRpdHkgfSBmcm9tICdAZGVyZWVrYi9maXJlYmFzZSc7XG5pbXBvcnQgeyB0eXBlIExvYWRpbmdTdGF0ZSwgdHlwZSBPYnNlcnZhYmxlT3JWYWx1ZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgdHlwZSBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgdHlwZSBPYnNlcnZhYmxlLCB0eXBlIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIFByb3ZpZGVzIHJlYWQtb25seSBhY2Nlc3NvcnMgdG8gYSBzaW5nbGUgbW9kZWwvZG9jdW1lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VEb2N1bWVudFJlYWRPbmx5U3RvcmU8VCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4+IHtcbiAgLyoqXG4gICAqIFN0cmluZyB1c2VkIHRvIGlkZW50aWZ5IHRoZSBzdG9yZS4gVHlwaWNhbGx5IG9ubHkgZm9yIGRlYnVnZ2luZyBVSSBwdXJwb3Nlcy5cbiAgICovXG4gIHJlYWRvbmx5IHN0b3JlTmFtZSQ6IE9ic2VydmFibGU8TWF5YmU8c3RyaW5nPj47XG5cbiAgcmVhZG9ubHkgZmlyZXN0b3JlQ29sbGVjdGlvbkxpa2UkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlPFQsIEQ+PjtcbiAgcmVhZG9ubHkgZmlyZXN0b3JlQ29sbGVjdGlvbiQ6IE9ic2VydmFibGU8RmlyZXN0b3JlQ29sbGVjdGlvbjxULCBEPj47XG5cbiAgcmVhZG9ubHkgY3VycmVudElucHV0SWQkOiBPYnNlcnZhYmxlPE1heWJlPEZpcmVzdG9yZU1vZGVsSWQ+PjtcbiAgcmVhZG9ubHkgaW5wdXRJZCQ6IE9ic2VydmFibGU8RmlyZXN0b3JlTW9kZWxJZD47XG4gIHJlYWRvbmx5IGN1cnJlbnRJbnB1dEtleSQ6IE9ic2VydmFibGU8TWF5YmU8RmlyZXN0b3JlTW9kZWxLZXk+PjtcbiAgcmVhZG9ubHkgaW5wdXRLZXkkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZU1vZGVsS2V5PjtcbiAgcmVhZG9ubHkgY3VycmVudElucHV0UmVmJDogT2JzZXJ2YWJsZTxNYXliZTxEb2N1bWVudFJlZmVyZW5jZTxUPj4+O1xuICByZWFkb25seSBpbnB1dFJlZiQ6IE9ic2VydmFibGU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+O1xuXG4gIHJlYWRvbmx5IHN0cmVhbU1vZGUkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZUFjY2Vzc29yU3RyZWFtTW9kZT47XG5cbiAgcmVhZG9ubHkgY3VycmVudERvY3VtZW50JDogT2JzZXJ2YWJsZTxNYXliZTxEPj47XG4gIHJlYWRvbmx5IGRvY3VtZW50JDogT2JzZXJ2YWJsZTxEPjtcbiAgcmVhZG9ubHkgY3VycmVudElkJDogT2JzZXJ2YWJsZTxNYXliZTxGaXJlc3RvcmVNb2RlbElkPj47XG4gIHJlYWRvbmx5IGN1cnJlbnRLZXkkOiBPYnNlcnZhYmxlPE1heWJlPEZpcmVzdG9yZU1vZGVsS2V5Pj47XG4gIHJlYWRvbmx5IGlkJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbElkPjtcbiAgcmVhZG9ubHkga2V5JDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbEtleT47XG4gIHJlYWRvbmx5IHJlZiQ6IE9ic2VydmFibGU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+O1xuICByZWFkb25seSBoYXNSZWYkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICByZWFkb25seSBmbGF0S2V5JDogT2JzZXJ2YWJsZTxGbGF0RmlyZXN0b3JlTW9kZWxLZXk+O1xuICByZWFkb25seSB0d29XYXlGbGF0S2V5JDogT2JzZXJ2YWJsZTxUd29XYXlGbGF0RmlyZXN0b3JlTW9kZWxLZXk+O1xuXG4gIHJlYWRvbmx5IGtleU1vZGVsSWRzJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbElkW10+O1xuICByZWFkb25seSBrZXlQYWlycyQ6IE9ic2VydmFibGU8RmlyZXN0b3JlTW9kZWxDb2xsZWN0aW9uQW5kSWRQYWlyW10+O1xuICByZWFkb25seSBrZXlQYWlyT2JqZWN0JDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbENvbGxlY3Rpb25BbmRJZFBhaXJPYmplY3Q+O1xuXG4gIHJlYWRvbmx5IGRvY3VtZW50TG9hZGluZ1N0YXRlJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8RD4+O1xuICByZWFkb25seSBzbmFwc2hvdCQ6IE9ic2VydmFibGU8RG9jdW1lbnRTbmFwc2hvdDxUPj47XG4gIHJlYWRvbmx5IHNuYXBzaG90TG9hZGluZ1N0YXRlJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8RG9jdW1lbnRTbmFwc2hvdDxUPj4+O1xuICByZWFkb25seSBjdXJyZW50RGF0YSQ6IE9ic2VydmFibGU8TWF5YmU8RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+Pj47XG4gIHJlYWRvbmx5IGRhdGEkOiBPYnNlcnZhYmxlPERvY3VtZW50RGF0YVdpdGhJZEFuZEtleTxUPj47XG4gIHJlYWRvbmx5IGRhdGFMb2FkaW5nU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEb2N1bWVudERhdGFXaXRoSWRBbmRLZXk8VD4+PjtcbiAgcmVhZG9ubHkgaXNMb2FkaW5nRGF0YSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHJlYWRvbmx5IGN1cnJlbnRFeGlzdHMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICByZWFkb25seSBleGlzdHMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICByZWFkb25seSBtb2RlbElkZW50aXR5JDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbElkZW50aXR5Pjtcbn1cblxuLyoqXG4gKiBQcm92aWRlcyBhY2Nlc3NvcnMgdG8gYSBzaW5nbGUgbW9kZWwvZG9jdW1lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlPFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+PiBleHRlbmRzIERieEZpcmViYXNlRG9jdW1lbnRSZWFkT25seVN0b3JlPFQsIEQ+LCBMb2NrU2V0Q29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFNldHMgdGhlIG5hbWUgb2YgdGhlIHN0b3JlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2V0U3RvcmVOYW1lOiAob2JzZXJ2YWJsZU9yVmFsdWU6IE9ic2VydmFibGVPclZhbHVlPE1heWJlPHN0cmluZz4+KSA9PiBTdWJzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGlkIG9mIHRoZSBkb2N1bWVudCB0byBsb2FkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2V0SWQ6IChvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8TWF5YmU8RmlyZXN0b3JlTW9kZWxJZD4+KSA9PiBTdWJzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGtleSBvZiB0aGUgZG9jdW1lbnQgdG8gbG9hZC5cbiAgICovXG4gIHJlYWRvbmx5IHNldEtleTogKG9ic2VydmFibGVPclZhbHVlOiBPYnNlcnZhYmxlT3JWYWx1ZTxNYXliZTxGaXJlc3RvcmVNb2RlbEtleT4+KSA9PiBTdWJzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGtleSBvZiB0aGUgZG9jdW1lbnQgdG8gbG9hZCB1c2luZyBhIFR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleS5cbiAgICovXG4gIHJlYWRvbmx5IHNldEZsYXRLZXk6IChvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8TWF5YmU8VHdvV2F5RmxhdEZpcmVzdG9yZU1vZGVsS2V5Pj4pID0+IFN1YnNjcmlwdGlvbjtcblxuICAvKipcbiAgICogU2V0cyB0aGUgcmVmIG9mIHRoZSBkb2N1bWVudCB0byBsb2FkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2V0UmVmOiAob2JzZXJ2YWJsZU9yVmFsdWU6IE9ic2VydmFibGVPclZhbHVlPE1heWJlPERvY3VtZW50UmVmZXJlbmNlPFQ+Pj4pID0+IFN1YnNjcmlwdGlvbjtcblxuICAvKipcbiAgICogQ2xlYXJzIHRoZSBrZXkvaWQvcmVmIGFuZCBjdXJyZW50IGRvY3VtZW50IGZyb20gdGhlIHN0b3JlLlxuICAgKi9cbiAgcmVhZG9ubHkgY2xlYXJSZWZzOiAoKSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBzdHJlYW0gbW9kZS5cbiAgICovXG4gIHJlYWRvbmx5IHNldFN0cmVhbU1vZGU6IChvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8RmlyZXN0b3JlQWNjZXNzb3JTdHJlYW1Nb2RlPikgPT4gU3Vic2NyaXB0aW9uO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBGaXJlc3RvcmVDb2xsZWN0aW9uIHRvIHJldHJpZXZlIGRvY3VtZW50cyBmcm9tLlxuICAgKi9cbiAgcmVhZG9ubHkgc2V0RmlyZXN0b3JlQ29sbGVjdGlvbjogKCgpID0+IHZvaWQpIHwgKChvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8TWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbjxULCBEPj4+KSA9PiBTdWJzY3JpcHRpb24pO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZSB0byByZXRyaWV2ZSBkb2N1bWVudHMgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IHNldEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlOiAoKCkgPT4gdm9pZCkgfCAoKG9ic2VydmFibGVPclZhbHVlOiBPYnNlcnZhYmxlT3JWYWx1ZTxNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZTxULCBEPj4+KSA9PiBTdWJzY3JpcHRpb24pO1xufVxuIl19
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { Directive, forwardRef, model } from '@angular/core';
|
|
2
|
-
import { DbxFirebaseCollectionStoreDirective, provideDbxFirebaseCollectionStoreDirective } from './store.collection.directive';
|
|
3
|
-
import { toObservable } from '@angular/core/rxjs-interop';
|
|
4
|
-
import { skipInitialMaybe, SubscriptionObject } from '@dereekb/rxjs';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
/**
|
|
7
|
-
* Abstract directive that contains a DbxFirebaseCollectionWithParentStore and provides an interface for communicating with other directives.
|
|
8
|
-
*/
|
|
9
|
-
export class DbxFirebaseCollectionWithParentStoreDirective extends DbxFirebaseCollectionStoreDirective {
|
|
10
|
-
sourceMode = model(undefined);
|
|
11
|
-
_sourceMode$ = toObservable(this.sourceMode).pipe(skipInitialMaybe());
|
|
12
|
-
_parentSourceModeSub = new SubscriptionObject();
|
|
13
|
-
constructor(store) {
|
|
14
|
-
super(store);
|
|
15
|
-
// sync inputs to store any time the store changes
|
|
16
|
-
this._parentSourceModeSub.subscription = this.store$.subscribe((x) => {
|
|
17
|
-
x.setSourceMode(this._sourceMode$);
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
ngOnDestroy() {
|
|
21
|
-
super.ngOnDestroy();
|
|
22
|
-
this._parentSourceModeSub.destroy();
|
|
23
|
-
}
|
|
24
|
-
// MARK: Inputs
|
|
25
|
-
setSourceMode(sourceMode) {
|
|
26
|
-
this.sourceMode.set(sourceMode);
|
|
27
|
-
}
|
|
28
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseCollectionWithParentStoreDirective, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
|
|
29
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: DbxFirebaseCollectionWithParentStoreDirective, inputs: { sourceMode: { classPropertyName: "sourceMode", publicName: "sourceMode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sourceMode: "sourceModeChange" }, usesInheritance: true, ngImport: i0 });
|
|
30
|
-
}
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseCollectionWithParentStoreDirective, decorators: [{
|
|
32
|
-
type: Directive
|
|
33
|
-
}], ctorParameters: () => [{ type: undefined }] });
|
|
34
|
-
export function provideDbxFirebaseCollectionWithParentStoreDirective(sourceType, storeType) {
|
|
35
|
-
const providers = [
|
|
36
|
-
...provideDbxFirebaseCollectionStoreDirective(sourceType, storeType),
|
|
37
|
-
{
|
|
38
|
-
provide: DbxFirebaseCollectionWithParentStoreDirective,
|
|
39
|
-
useExisting: forwardRef(() => sourceType)
|
|
40
|
-
}
|
|
41
|
-
];
|
|
42
|
-
return providers;
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuc3ViY29sbGVjdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL3N0b3JlL3N0b3JlLnN1YmNvbGxlY3Rpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBNkIsTUFBTSxlQUFlLENBQUM7QUFHeEYsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLDBDQUEwQyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFL0gsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFckU7O0dBRUc7QUFFSCxNQUFNLE9BQWdCLDZDQUF5UixTQUFRLG1DQUE0QztJQUN4VixVQUFVLEdBQUcsS0FBSyxDQUF1RCxTQUFTLENBQUMsQ0FBQztJQUU1RSxZQUFZLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBRXRFLG9CQUFvQixHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztJQUVqRSxZQUFZLEtBQVE7UUFDbEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWIsa0RBQWtEO1FBQ2xELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNuRSxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUSxXQUFXO1FBQ2xCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELGVBQWU7SUFDZixhQUFhLENBQUMsVUFBZ0U7UUFDNUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEMsQ0FBQzt3R0F4Qm1CLDZDQUE2Qzs0RkFBN0MsNkNBQTZDOzs0RkFBN0MsNkNBQTZDO2tCQURsRSxTQUFTOztBQXdDVixNQUFNLFVBQVUsb0RBQW9ELENBQTROLFVBQW1CLEVBQUUsU0FBbUI7SUFDdFUsTUFBTSxTQUFTLEdBQWU7UUFDNUIsR0FBRywwQ0FBMEMsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDO1FBQ3BFO1lBQ0UsT0FBTyxFQUFFLDZDQUE2QztZQUN0RCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQztTQUMxQztLQUNGLENBQUM7SUFFRixPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBmb3J3YXJkUmVmLCBtb2RlbCwgUHJvdmlkZXIsIFR5cGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmlyZXN0b3JlRG9jdW1lbnQgfSBmcm9tICdAZGVyZWVrYi9maXJlYmFzZSc7XG5pbXBvcnQgeyB0eXBlIE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZSwgcHJvdmlkZURieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlRGlyZWN0aXZlIH0gZnJvbSAnLi9zdG9yZS5jb2xsZWN0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmUsIERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50U291cmNlTW9kZSB9IGZyb20gJy4vc3RvcmUuc3ViY29sbGVjdGlvbic7XG5pbXBvcnQgeyB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBza2lwSW5pdGlhbE1heWJlLCBTdWJzY3JpcHRpb25PYmplY3QgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcblxuLyoqXG4gKiBBYnN0cmFjdCBkaXJlY3RpdmUgdGhhdCBjb250YWlucyBhIERieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZSBhbmQgcHJvdmlkZXMgYW4gaW50ZXJmYWNlIGZvciBjb21tdW5pY2F0aW5nIHdpdGggb3RoZXIgZGlyZWN0aXZlcy5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlRGlyZWN0aXZlPFQsIFBULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgUEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxQVD4gPSBGaXJlc3RvcmVEb2N1bWVudDxQVD4sIFMgZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmU8VCwgUFQsIEQsIFBEPiA9IERieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZTxULCBQVCwgRCwgUEQ+PiBleHRlbmRzIERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlRGlyZWN0aXZlPFQsIEQsIFM+IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgc291cmNlTW9kZSA9IG1vZGVsPE1heWJlPERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50U291cmNlTW9kZT4+KHVuZGVmaW5lZCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc291cmNlTW9kZSQgPSB0b09ic2VydmFibGUodGhpcy5zb3VyY2VNb2RlKS5waXBlKHNraXBJbml0aWFsTWF5YmUoKSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcGFyZW50U291cmNlTW9kZVN1YiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcblxuICBjb25zdHJ1Y3RvcihzdG9yZTogUykge1xuICAgIHN1cGVyKHN0b3JlKTtcblxuICAgIC8vIHN5bmMgaW5wdXRzIHRvIHN0b3JlIGFueSB0aW1lIHRoZSBzdG9yZSBjaGFuZ2VzXG4gICAgdGhpcy5fcGFyZW50U291cmNlTW9kZVN1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLnN0b3JlJC5zdWJzY3JpYmUoKHgpID0+IHtcbiAgICAgIHguc2V0U291cmNlTW9kZSh0aGlzLl9zb3VyY2VNb2RlJCk7XG4gICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuX3BhcmVudFNvdXJjZU1vZGVTdWIuZGVzdHJveSgpO1xuICB9XG5cbiAgLy8gTUFSSzogSW5wdXRzXG4gIHNldFNvdXJjZU1vZGUoc291cmNlTW9kZTogTWF5YmU8RGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnRTb3VyY2VNb2RlPikge1xuICAgIHRoaXMuc291cmNlTW9kZS5zZXQoc291cmNlTW9kZSk7XG4gIH1cbn1cblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLy8gVGhlIHVzZSBvZiBhbnkgaGVyZSBkb2VzIG5vdCBkZWdyYWRlIHRoZSB0eXBlLXNhZmV0eTsgd2Ugd2FudCB0byBzaW1wbHkgbWF0Y2ggdGhhdCB0aGUgU3RvcmUgdHlwZSBTIGlzIHVzZWQgaW4gdGhlIERpcmVjdGl2ZSB0eXBlIEMgdG8gcHJvdmlkZSBpdC5cblxuLyoqXG4gKiBDb25maWd1cmVzIHByb3ZpZGVycyBmb3IgYSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmVEaXJlY3RpdmUuXG4gKlxuICogQ2FuIG9wdGlvbmFsbHkgYWxzbyBwcm92aWRlIHRoZSBhY3R1YWwgc3RvcmUgdHlwZSB0byBpbmNsdWRlIGluIHRoZSBwcm92aWRlcnMgYXJyYXkgc28gaXQgaXMgaW5zdGFudGlhdGVkIGJ5IEFuZ3VsYXIuXG4gKlxuICogQHBhcmFtIHNvdXJjZVR5cGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmVEaXJlY3RpdmU8UyBleHRlbmRzIERieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZURpcmVjdGl2ZTxhbnksIGFueSwgYW55LCBhbnksIGFueT4+KHNvdXJjZVR5cGU6IFR5cGU8Uz4pOiBQcm92aWRlcltdO1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmVEaXJlY3RpdmU8UyBleHRlbmRzIERieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZTxhbnksIGFueSwgYW55LCBhbnk+LCBDIGV4dGVuZHMgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlRGlyZWN0aXZlPGFueSwgYW55LCBhbnksIGFueSwgUz4gPSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmVEaXJlY3RpdmU8YW55LCBhbnksIGFueSwgYW55LCBTPj4oc291cmNlVHlwZTogVHlwZTxDPiwgc3RvcmVUeXBlPzogVHlwZTxTPik6IFByb3ZpZGVyW107XG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZURieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZURpcmVjdGl2ZTxTIGV4dGVuZHMgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlPGFueSwgYW55LCBhbnksIGFueT4sIEMgZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmVEaXJlY3RpdmU8YW55LCBhbnksIGFueSwgYW55LCBTPiA9IERieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZURpcmVjdGl2ZTxhbnksIGFueSwgYW55LCBhbnksIFM+Pihzb3VyY2VUeXBlOiBUeXBlPEM+LCBzdG9yZVR5cGU/OiBUeXBlPFM+KTogUHJvdmlkZXJbXSB7XG4gIGNvbnN0IHByb3ZpZGVyczogUHJvdmlkZXJbXSA9IFtcbiAgICAuLi5wcm92aWRlRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmVEaXJlY3RpdmUoc291cmNlVHlwZSwgc3RvcmVUeXBlKSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmVEaXJlY3RpdmUsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBzb3VyY2VUeXBlKVxuICAgIH1cbiAgXTtcblxuICByZXR1cm4gcHJvdmlkZXJzO1xufVxuIl19
|