@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,227 +0,0 @@
|
|
|
1
|
-
import { cleanupDestroyable, filterMaybe, useFirst, SubscriptionObject, accumulatorFlattenPageListLoadingState, itemAccumulatorNextPageUntilResultsCount, iteratorNextPageUntilPage, iteratorNextPageUntilMaxPageLoadLimit, pageItemAccumulatorCurrentPage, iterationHasNextAndCanLoadMore, distinctUntilKeysChange } from '@dereekb/rxjs';
|
|
2
|
-
import { BehaviorSubject, combineLatest, map, shareReplay, distinctUntilChanged, Subject, throttleTime, switchMap, tap, startWith, NEVER, of } from 'rxjs';
|
|
3
|
-
import { firebaseQueryItemAccumulator, firebaseQuerySnapshotAccumulator, iterationQueryDocChangeWatcher } from '@dereekb/firebase';
|
|
4
|
-
import { countAllInNestedArray } from '@dereekb/util';
|
|
5
|
-
/**
|
|
6
|
-
* DbxFirebaseModelLoader implementation within an instance.
|
|
7
|
-
*/
|
|
8
|
-
export class DbxFirebaseCollectionLoaderInstance {
|
|
9
|
-
_maxPagesSub = new SubscriptionObject();
|
|
10
|
-
_collection = new BehaviorSubject(undefined);
|
|
11
|
-
_collectionMode = new BehaviorSubject('query');
|
|
12
|
-
_collectionRefs = new BehaviorSubject(undefined);
|
|
13
|
-
_maxPages = new BehaviorSubject(undefined);
|
|
14
|
-
_itemsPerPage = new BehaviorSubject(undefined);
|
|
15
|
-
_constraints = new BehaviorSubject(undefined);
|
|
16
|
-
_waitForNonNullConstraints = new BehaviorSubject(undefined);
|
|
17
|
-
_restart = new Subject();
|
|
18
|
-
collection$ = this._collection.pipe(distinctUntilChanged());
|
|
19
|
-
collectionMode$ = this._collectionMode.pipe(distinctUntilChanged(), shareReplay(1));
|
|
20
|
-
currentCollectionRefs$ = this._collectionRefs.pipe(distinctUntilChanged(), shareReplay(1));
|
|
21
|
-
collectionRefs$ = this.currentCollectionRefs$.pipe(filterMaybe(), distinctUntilKeysChange((x) => x.path), shareReplay(1));
|
|
22
|
-
collectionKeys$ = this.collectionRefs$.pipe(map((x) => x.map((y) => y.path)), shareReplay(1));
|
|
23
|
-
currentConstraints$ = this._constraints.pipe(distinctUntilChanged());
|
|
24
|
-
constraints$ = this._waitForNonNullConstraints.pipe(switchMap((waitForNonNullConstraints) => {
|
|
25
|
-
let obs = this.currentConstraints$;
|
|
26
|
-
// defaults to true
|
|
27
|
-
if (waitForNonNullConstraints !== false) {
|
|
28
|
-
obs = this.currentConstraints$.pipe(filterMaybe());
|
|
29
|
-
}
|
|
30
|
-
return obs;
|
|
31
|
-
}), shareReplay(1));
|
|
32
|
-
iteratorFilter$ = combineLatest([this._itemsPerPage.pipe(distinctUntilChanged()), this.constraints$]).pipe(map(([limit, constraints]) => ({ limit, constraints, maxPageLoadLimit: this.maxPages })), shareReplay(1));
|
|
33
|
-
firestoreIteration$ = this.collection$.pipe(switchMap((collection) => {
|
|
34
|
-
if (collection) {
|
|
35
|
-
return combineLatest([this.collectionMode$, this.iteratorFilter$, this._restart.pipe(startWith(undefined))]).pipe(throttleTime(100, undefined, { trailing: true }), // prevent rapid changes and executing filters too quickly.
|
|
36
|
-
switchMap(([mode, filter]) => {
|
|
37
|
-
if (mode === 'query') {
|
|
38
|
-
return of(collection.firestoreIteration(filter));
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
return this.collectionRefs$.pipe(map((refs) => collection.firestoreFixedIteration(refs, filter)));
|
|
42
|
-
}
|
|
43
|
-
}), cleanupDestroyable(), // cleanup the iteration
|
|
44
|
-
shareReplay(1));
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
return NEVER; // don't emit anything until collection is provided.
|
|
48
|
-
}
|
|
49
|
-
}), cleanupDestroyable(), // cleanup the iteration
|
|
50
|
-
shareReplay(1));
|
|
51
|
-
queryChangeWatcher$ = this.firestoreIteration$.pipe(map((instance) => iterationQueryDocChangeWatcher({ instance })), shareReplay(1));
|
|
52
|
-
snapshotAccumulator$ = this.firestoreIteration$.pipe(map((x) => firebaseQuerySnapshotAccumulator(x)), cleanupDestroyable(), shareReplay(1));
|
|
53
|
-
hasNext$ = this.firestoreIteration$.pipe(switchMap((x) => x.hasNext$), shareReplay(1));
|
|
54
|
-
canLoadMore$ = this.firestoreIteration$.pipe(switchMap((x) => x.canLoadMore$), shareReplay(1));
|
|
55
|
-
hasNextAndCanLoadMore$ = this.firestoreIteration$.pipe(switchMap((x) => iterationHasNextAndCanLoadMore(x)), shareReplay(1));
|
|
56
|
-
snapshotAccumulatorDocumentRefs$ = this.snapshotAccumulator$.pipe(switchMap((x) => x.allItems$.pipe(map((y) => y.map((z) => z.map((zz) => zz.ref))))), shareReplay(1));
|
|
57
|
-
snapshotAccumulatorDocuments$ = combineLatest([this.collection$.pipe(filterMaybe()), this.snapshotAccumulatorDocumentRefs$]).pipe(map(([collection, documentRefs]) => {
|
|
58
|
-
const accessor = collection.documentAccessor();
|
|
59
|
-
return documentRefs.map((y) => y.map((z) => accessor.loadDocument(z)));
|
|
60
|
-
}), shareReplay(1));
|
|
61
|
-
accumulator$ = this.firestoreIteration$.pipe(map((x) => firebaseQueryItemAccumulator(x)), cleanupDestroyable(), shareReplay(1));
|
|
62
|
-
accumulatorPage$ = this.accumulator$.pipe(switchMap((x) => pageItemAccumulatorCurrentPage(x)), shareReplay(1));
|
|
63
|
-
/**
|
|
64
|
-
* Passthrough for currentAllItems$ from the accumulator.
|
|
65
|
-
*/
|
|
66
|
-
currentAccumulatorItems$ = this.accumulator$.pipe(switchMap((x) => x.currentAllItems$), shareReplay(1));
|
|
67
|
-
/**
|
|
68
|
-
* Passthrough for allItems$ from the accumulator.
|
|
69
|
-
*/
|
|
70
|
-
accumulatorItems$ = this.accumulator$.pipe(switchMap((x) => x.allItems$), shareReplay(1));
|
|
71
|
-
/**
|
|
72
|
-
* Returns true if the first page result has one or more documents.
|
|
73
|
-
*/
|
|
74
|
-
hasDocuments$ = this.firestoreIteration$.pipe(switchMap((x) => x.firstState$.pipe(map((x) => Boolean(x.value?.length)))), shareReplay(1));
|
|
75
|
-
allDocumentRefs$ = this.snapshotAccumulatorDocumentRefs$.pipe(map((x) => x.flat()), shareReplay(1));
|
|
76
|
-
allDocuments$ = this.snapshotAccumulatorDocuments$.pipe(map((x) => x.flat()), shareReplay(1));
|
|
77
|
-
allDocumentData$ = this.accumulatorItems$.pipe(map((x) => x.flat()), shareReplay(1));
|
|
78
|
-
pageLoadingState$ = this.accumulator$.pipe(switchMap((x) => accumulatorFlattenPageListLoadingState(x)), shareReplay(1));
|
|
79
|
-
constructor(initConfig) {
|
|
80
|
-
this._collectionMode.next(initConfig?.collectionMode ?? 'query');
|
|
81
|
-
if (initConfig?.collectionKeys) {
|
|
82
|
-
this.collectionKeys = initConfig?.collectionKeys;
|
|
83
|
-
}
|
|
84
|
-
else if (initConfig?.collectionRefs) {
|
|
85
|
-
this.collectionRefs = initConfig?.collectionRefs;
|
|
86
|
-
}
|
|
87
|
-
this._collection.next(initConfig?.collection);
|
|
88
|
-
this._maxPages.next(initConfig?.maxPages);
|
|
89
|
-
this._itemsPerPage.next(initConfig?.itemsPerPage);
|
|
90
|
-
this._constraints.next(initConfig?.constraints);
|
|
91
|
-
}
|
|
92
|
-
init() {
|
|
93
|
-
// When max pages changes, update the iteration's max page limit.
|
|
94
|
-
this._maxPagesSub.subscription = this._maxPages
|
|
95
|
-
.pipe(distinctUntilChanged(), filterMaybe(), // do not pass null/undefined values
|
|
96
|
-
switchMap((maxPageLoadLimit) => this.firestoreIteration$.pipe(tap((iteration) => {
|
|
97
|
-
iteration.setMaxPageLoadLimit(maxPageLoadLimit);
|
|
98
|
-
}))))
|
|
99
|
-
.subscribe();
|
|
100
|
-
}
|
|
101
|
-
destroy() {
|
|
102
|
-
this._collectionMode.complete();
|
|
103
|
-
this._collectionRefs.complete();
|
|
104
|
-
this._maxPages.complete();
|
|
105
|
-
this._collection.complete();
|
|
106
|
-
this._constraints.complete();
|
|
107
|
-
this._itemsPerPage.complete();
|
|
108
|
-
this._restart.complete();
|
|
109
|
-
this._maxPagesSub.destroy();
|
|
110
|
-
}
|
|
111
|
-
// MARK: Inputs
|
|
112
|
-
get collectionMode() {
|
|
113
|
-
return this._collectionMode.value;
|
|
114
|
-
}
|
|
115
|
-
set collectionMode(mode) {
|
|
116
|
-
if (this.collectionMode != mode) {
|
|
117
|
-
this._collectionMode.next(mode);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
get collectionKeys() {
|
|
121
|
-
const refs = this.collectionRefs;
|
|
122
|
-
return refs?.map((x) => x.path);
|
|
123
|
-
}
|
|
124
|
-
set collectionKeys(keys) {
|
|
125
|
-
let refs = undefined;
|
|
126
|
-
const { collection } = this;
|
|
127
|
-
if (keys && collection) {
|
|
128
|
-
const accessor = collection.documentAccessor();
|
|
129
|
-
refs = keys.map((x) => accessor.documentRefForKey(x));
|
|
130
|
-
}
|
|
131
|
-
this.collectionRefs = refs;
|
|
132
|
-
}
|
|
133
|
-
get collectionRefs() {
|
|
134
|
-
return this._collectionRefs.value;
|
|
135
|
-
}
|
|
136
|
-
set collectionRefs(refs) {
|
|
137
|
-
this._collectionRefs.next(refs);
|
|
138
|
-
}
|
|
139
|
-
get maxPages() {
|
|
140
|
-
return this._maxPages.value;
|
|
141
|
-
}
|
|
142
|
-
set maxPages(maxPages) {
|
|
143
|
-
if (this.maxPages != maxPages) {
|
|
144
|
-
this._maxPages.next(maxPages);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
get itemsPerPage() {
|
|
148
|
-
return this._itemsPerPage.value;
|
|
149
|
-
}
|
|
150
|
-
set itemsPerPage(itemsPerPage) {
|
|
151
|
-
if (this.itemsPerPage != itemsPerPage) {
|
|
152
|
-
this._itemsPerPage.next(itemsPerPage);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
get constraints() {
|
|
156
|
-
return this._constraints.value;
|
|
157
|
-
}
|
|
158
|
-
set constraints(constraints) {
|
|
159
|
-
this._constraints.next(constraints);
|
|
160
|
-
}
|
|
161
|
-
get waitForNonNullConstraints() {
|
|
162
|
-
return this._waitForNonNullConstraints.value;
|
|
163
|
-
}
|
|
164
|
-
set waitForNonNullConstraints(waitForNonNullConstraints) {
|
|
165
|
-
this._waitForNonNullConstraints.next(waitForNonNullConstraints);
|
|
166
|
-
}
|
|
167
|
-
get collection() {
|
|
168
|
-
return this._collection.value;
|
|
169
|
-
}
|
|
170
|
-
set collection(collection) {
|
|
171
|
-
this._collection.next(collection);
|
|
172
|
-
}
|
|
173
|
-
// MARK: DbxFirebaseCollectionLoader
|
|
174
|
-
next() {
|
|
175
|
-
useFirst(this.firestoreIteration$, (x) => x.next());
|
|
176
|
-
}
|
|
177
|
-
restart() {
|
|
178
|
-
this._restart.next();
|
|
179
|
-
}
|
|
180
|
-
setCollectionMode(mode) {
|
|
181
|
-
this.collectionMode = mode;
|
|
182
|
-
}
|
|
183
|
-
// References Mode
|
|
184
|
-
setCollectionKeys(keys) {
|
|
185
|
-
this.collectionKeys = keys;
|
|
186
|
-
}
|
|
187
|
-
setCollectionRefs(refs) {
|
|
188
|
-
this.collectionRefs = refs;
|
|
189
|
-
}
|
|
190
|
-
// Query Mode
|
|
191
|
-
setMaxPages(maxPages) {
|
|
192
|
-
this.maxPages = maxPages;
|
|
193
|
-
}
|
|
194
|
-
setItemsPerPage(itemsPerPage) {
|
|
195
|
-
this.itemsPerPage = itemsPerPage;
|
|
196
|
-
}
|
|
197
|
-
setConstraints(constraints) {
|
|
198
|
-
this.constraints = constraints;
|
|
199
|
-
}
|
|
200
|
-
setWaitForNonNullConstraints(waitForNonNullConstraints) {
|
|
201
|
-
this.waitForNonNullConstraints = waitForNonNullConstraints;
|
|
202
|
-
}
|
|
203
|
-
setCollection(firestoreCollection) {
|
|
204
|
-
this.collection = firestoreCollection;
|
|
205
|
-
}
|
|
206
|
-
loadPagesUntilResultsCount(maxResultsLimit, countResultsFunction) {
|
|
207
|
-
const defaultFn = countAllInNestedArray;
|
|
208
|
-
return this.accumulator$.pipe(switchMap((accumulator) => itemAccumulatorNextPageUntilResultsCount({
|
|
209
|
-
accumulator,
|
|
210
|
-
maxResultsLimit,
|
|
211
|
-
countResultsFunction: countResultsFunction ?? defaultFn
|
|
212
|
-
})));
|
|
213
|
-
}
|
|
214
|
-
loadToPage(page) {
|
|
215
|
-
return this.accumulator$.pipe(switchMap((accumulator) => iteratorNextPageUntilPage(accumulator.itemIteration, page)));
|
|
216
|
-
}
|
|
217
|
-
loadAllResults() {
|
|
218
|
-
return this.accumulator$.pipe(switchMap((accumulator) => iteratorNextPageUntilMaxPageLoadLimit(accumulator.itemIteration)));
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
export function dbxFirebaseCollectionLoaderInstance(config) {
|
|
222
|
-
return new DbxFirebaseCollectionLoaderInstance(config);
|
|
223
|
-
}
|
|
224
|
-
export function dbxFirebaseCollectionLoaderInstanceWithCollection(collection) {
|
|
225
|
-
return new DbxFirebaseCollectionLoaderInstance({ collection });
|
|
226
|
-
}
|
|
227
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5sb2FkZXIuaW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9sb2FkZXIvY29sbGVjdGlvbi5sb2FkZXIuaW5zdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE2QixrQkFBa0IsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLHNDQUFzQyxFQUF5RCx3Q0FBd0MsRUFBRSx5QkFBeUIsRUFBRSxxQ0FBcUMsRUFBRSw4QkFBOEIsRUFBdUQsOEJBQThCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbGQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBbUIsR0FBRyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVLLE9BQU8sRUFJTCw0QkFBNEIsRUFHNUIsZ0NBQWdDLEVBUWhDLDhCQUE4QixFQUMvQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBMEcscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUE2QjlKOztHQUVHO0FBQ0gsTUFBTSxPQUFPLG1DQUFtQztJQUM3QixZQUFZLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO0lBRXRDLFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBdUMsU0FBUyxDQUFDLENBQUM7SUFFbkYsZUFBZSxHQUFHLElBQUksZUFBZSxDQUE0QixPQUFPLENBQUMsQ0FBQztJQUMxRSxlQUFlLEdBQUcsSUFBSSxlQUFlLENBQWdDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hGLFNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsU0FBUyxDQUFDLENBQUM7SUFDMUQsYUFB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LENBQUM7SUFDeEMsQ0FBQztJQUVELDBCQUEwQixDQUFDLGVBQXNDLEVBQUUsb0JBQW1HO1FBQ3BLLE1BQU0sU0FBUyxHQUFvRixxQkFBcUIsQ0FBQztRQUN6SCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUMzQixTQUFTLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUN4Qix3Q0FBd0MsQ0FBQztZQUN2QyxXQUFXO1lBQ1gsZUFBZTtZQUNmLG9CQUFvQixFQUFFLG9CQUFvQixJQUFJLFNBQVM7U0FDeEQsQ0FBQyxDQUNILENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBZ0I7UUFDekIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLHlCQUF5QixDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hILENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLHFDQUFxQyxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUgsQ0FBQztDQUNGO0FBRUQsTUFBTSxVQUFVLG1DQUFtQyxDQUEyRCxNQUEyRDtJQUN2SyxPQUFPLElBQUksbUNBQW1DLENBQU8sTUFBTSxDQUFDLENBQUM7QUFDL0QsQ0FBQztBQUVELE1BQU0sVUFBVSxpREFBaUQsQ0FBMkQsVUFBZ0Q7SUFDMUssT0FBTyxJQUFJLG1DQUFtQyxDQUFPLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztBQUN2RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBQYWdlTGlzdExvYWRpbmdTdGF0ZSwgY2xlYW51cERlc3Ryb3lhYmxlLCBmaWx0ZXJNYXliZSwgdXNlRmlyc3QsIFN1YnNjcmlwdGlvbk9iamVjdCwgYWNjdW11bGF0b3JGbGF0dGVuUGFnZUxpc3RMb2FkaW5nU3RhdGUsIHR5cGUgSXRlbUFjY3VtdWxhdG9yTmV4dFBhZ2VVbnRpbFJlc3VsdHNDb3VudEZ1bmN0aW9uLCBpdGVtQWNjdW11bGF0b3JOZXh0UGFnZVVudGlsUmVzdWx0c0NvdW50LCBpdGVyYXRvck5leHRQYWdlVW50aWxQYWdlLCBpdGVyYXRvck5leHRQYWdlVW50aWxNYXhQYWdlTG9hZExpbWl0LCBwYWdlSXRlbUFjY3VtdWxhdG9yQ3VycmVudFBhZ2UsIHR5cGUgSXRlbUFjY3VtdWxhdG9yTmV4dFBhZ2VVbnRpbFJlc3VsdHNDb3VudFJlc3VsdCwgaXRlcmF0aW9uSGFzTmV4dEFuZENhbkxvYWRNb3JlLCBkaXN0aW5jdFVudGlsS2V5c0NoYW5nZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIHNoYXJlUmVwbGF5LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgU3ViamVjdCwgdGhyb3R0bGVUaW1lLCBzd2l0Y2hNYXAsIHR5cGUgT2JzZXJ2YWJsZSwgdGFwLCBzdGFydFdpdGgsIE5FVkVSLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgdHlwZSBEb2N1bWVudERhdGFXaXRoSWRBbmRLZXksXG4gIHR5cGUgRG9jdW1lbnRSZWZlcmVuY2UsXG4gIHR5cGUgRmlyZWJhc2VRdWVyeUl0ZW1BY2N1bXVsYXRvcixcbiAgZmlyZWJhc2VRdWVyeUl0ZW1BY2N1bXVsYXRvcixcbiAgdHlwZSBGaXJlYmFzZVF1ZXJ5SXRlbUFjY3VtdWxhdG9yTmV4dFBhZ2VVbnRpbFJlc3VsdHNDb3VudEZ1bmN0aW9uLFxuICB0eXBlIEZpcmViYXNlUXVlcnlTbmFwc2hvdEFjY3VtdWxhdG9yLFxuICBmaXJlYmFzZVF1ZXJ5U25hcHNob3RBY2N1bXVsYXRvcixcbiAgdHlwZSBGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZSxcbiAgdHlwZSBGaXJlc3RvcmVEb2N1bWVudCxcbiAgdHlwZSBGaXJlc3RvcmVJdGVtUGFnZUl0ZXJhdGlvbkluc3RhbmNlLFxuICB0eXBlIEZpcmVzdG9yZUl0ZW1QYWdlSXRlcmF0b3JGaWx0ZXIsXG4gIHR5cGUgRmlyZXN0b3JlTW9kZWxLZXksXG4gIHR5cGUgRmlyZXN0b3JlUXVlcnlDb25zdHJhaW50LFxuICB0eXBlIEl0ZXJhdGlvblF1ZXJ5RG9jQ2hhbmdlV2F0Y2hlcixcbiAgaXRlcmF0aW9uUXVlcnlEb2NDaGFuZ2VXYXRjaGVyXG59IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcbmltcG9ydCB7IHR5cGUgQXJyYXlPclZhbHVlLCB0eXBlIERlc3Ryb3lhYmxlLCB0eXBlIEdldHRlck9yVmFsdWUsIHR5cGUgSW5pdGlhbGl6ZWQsIHR5cGUgTWF5YmUsIHR5cGUgUGFnZU51bWJlciwgY291bnRBbGxJbk5lc3RlZEFycmF5IH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyB0eXBlIERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckFjY2Vzc29yLCB0eXBlIERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlcldpdGhBY2N1bXVsYXRvciB9IGZyb20gJy4vY29sbGVjdGlvbi5sb2FkZXInO1xuXG4vKipcbiAqIFRoZSBzdG9yZSBtb2RlLlxuICpcbiAqIC0gcXVlcnk6IFRoZSBzdG9yZSB3aWxsIGxvYWQgZG9jdW1lbnRzIGZyb20gYSBxdWVyeSwgdXNpbmcgdGhlIGdpdmVuIGNvbGxlY3Rpb24uXG4gKiAtIHJlZmVyZW5jZXM6IFRoZSBzdG9yZSB3aWxsIGxvYWQgZG9jdW1lbnRzIGZyb20gdGhlIGlucHV0IHJlZmVyZW5jZXMgKGtleXMsIHJlZnMsIGV0Yy4pLlxuICovXG5leHBvcnQgdHlwZSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Nb2RlID0gJ3F1ZXJ5JyB8ICdyZWZlcmVuY2VzJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJJbnN0YW5jZUluaXRDb25maWc8VCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4+IHtcbiAgcmVhZG9ubHkgY29sbGVjdGlvbj86IE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlPFQsIEQ+PjtcbiAgcmVhZG9ubHkgY29sbGVjdGlvbk1vZGU/OiBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Nb2RlO1xuICByZWFkb25seSBjb2xsZWN0aW9uS2V5cz86IE1heWJlPEZpcmVzdG9yZU1vZGVsS2V5W10+O1xuICByZWFkb25seSBjb2xsZWN0aW9uUmVmcz86IE1heWJlPERvY3VtZW50UmVmZXJlbmNlPFQ+W10+O1xuICByZWFkb25seSBtYXhQYWdlcz86IE1heWJlPG51bWJlcj47XG4gIHJlYWRvbmx5IGl0ZW1zUGVyUGFnZT86IE1heWJlPG51bWJlcj47XG4gIHJlYWRvbmx5IGNvbnN0cmFpbnRzPzogTWF5YmU8QXJyYXlPclZhbHVlPEZpcmVzdG9yZVF1ZXJ5Q29uc3RyYWludD4+O1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gd2FpdCBmb3Igbm9uLW51bGwgY29uc3RyYWludHMgYmVmb3JlIGJlZ2lubmluZyB0aGUgaXRlcmF0aW9uLlxuICAgKlxuICAgKiBEZWZhdWx0cyB0byB0cnVlLlxuICAgKi9cbiAgcmVhZG9ubHkgd2FpdEZvck5vbk51bGxDb25zdHJhaW50cz86IE1heWJlPGJvb2xlYW4+O1xufVxuXG5leHBvcnQgdHlwZSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJJbnN0YW5jZURhdGE8VCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4+ID0gRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVyQWNjZXNzb3I8VD47XG5cbi8qKlxuICogRGJ4RmlyZWJhc2VNb2RlbExvYWRlciBpbXBsZW1lbnRhdGlvbiB3aXRoaW4gYW4gaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJJbnN0YW5jZTxUID0gdW5rbm93biwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4+IGltcGxlbWVudHMgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVyV2l0aEFjY3VtdWxhdG9yPFQ+LCBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJJbnN0YW5jZURhdGE8VCwgRD4sIEluaXRpYWxpemVkLCBEZXN0cm95YWJsZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX21heFBhZ2VzU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBfY29sbGVjdGlvbiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U8VCwgRD4+Pih1bmRlZmluZWQpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBfY29sbGVjdGlvbk1vZGUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERieEZpcmViYXNlQ29sbGVjdGlvbk1vZGU+KCdxdWVyeScpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2NvbGxlY3Rpb25SZWZzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxEb2N1bWVudFJlZmVyZW5jZTxUPltdPj4odW5kZWZpbmVkKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9tYXhQYWdlcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8bnVtYmVyPj4odW5kZWZpbmVkKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9pdGVtc1BlclBhZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPG51bWJlcj4+KHVuZGVmaW5lZCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBfY29uc3RyYWludHMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPEFycmF5T3JWYWx1ZTxGaXJlc3RvcmVRdWVyeUNvbnN0cmFpbnQ+Pj4odW5kZWZpbmVkKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF93YWl0Rm9yTm9uTnVsbENvbnN0cmFpbnRzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxib29sZWFuPj4odW5kZWZpbmVkKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9yZXN0YXJ0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICByZWFkb25seSBjb2xsZWN0aW9uJCA9IHRoaXMuX2NvbGxlY3Rpb24ucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcblxuICByZWFkb25seSBjb2xsZWN0aW9uTW9kZSQgPSB0aGlzLl9jb2xsZWN0aW9uTW9kZS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHNoYXJlUmVwbGF5KDEpKTtcbiAgcmVhZG9ubHkgY3VycmVudENvbGxlY3Rpb25SZWZzJCA9IHRoaXMuX2NvbGxlY3Rpb25SZWZzLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgc2hhcmVSZXBsYXkoMSkpO1xuICByZWFkb25seSBjb2xsZWN0aW9uUmVmcyQgPSB0aGlzLmN1cnJlbnRDb2xsZWN0aW9uUmVmcyQucGlwZShcbiAgICBmaWx0ZXJNYXliZSgpLFxuICAgIGRpc3RpbmN0VW50aWxLZXlzQ2hhbmdlKCh4KSA9PiB4LnBhdGgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG4gIHJlYWRvbmx5IGNvbGxlY3Rpb25LZXlzJCA9IHRoaXMuY29sbGVjdGlvblJlZnMkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4Lm1hcCgoeSkgPT4geS5wYXRoKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBjdXJyZW50Q29uc3RyYWludHMkID0gdGhpcy5fY29uc3RyYWludHMucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcblxuICByZWFkb25seSBjb25zdHJhaW50cyQgPSB0aGlzLl93YWl0Rm9yTm9uTnVsbENvbnN0cmFpbnRzLnBpcGUoXG4gICAgc3dpdGNoTWFwKCh3YWl0Rm9yTm9uTnVsbENvbnN0cmFpbnRzKSA9PiB7XG4gICAgICBsZXQgb2JzOiBPYnNlcnZhYmxlPE1heWJlPEFycmF5T3JWYWx1ZTxGaXJlc3RvcmVRdWVyeUNvbnN0cmFpbnQ+Pj4gPSB0aGlzLmN1cnJlbnRDb25zdHJhaW50cyQ7XG5cbiAgICAgIC8vIGRlZmF1bHRzIHRvIHRydWVcbiAgICAgIGlmICh3YWl0Rm9yTm9uTnVsbENvbnN0cmFpbnRzICE9PSBmYWxzZSkge1xuICAgICAgICBvYnMgPSB0aGlzLmN1cnJlbnRDb25zdHJhaW50cyQucGlwZShmaWx0ZXJNYXliZSgpKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG9icztcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGl0ZXJhdG9yRmlsdGVyJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVJdGVtUGFnZUl0ZXJhdG9yRmlsdGVyPiA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX2l0ZW1zUGVyUGFnZS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLCB0aGlzLmNvbnN0cmFpbnRzJF0pLnBpcGUoXG4gICAgbWFwKChbbGltaXQsIGNvbnN0cmFpbnRzXSkgPT4gKHsgbGltaXQsIGNvbnN0cmFpbnRzLCBtYXhQYWdlTG9hZExpbWl0OiB0aGlzLm1heFBhZ2VzIH0pIGFzIEZpcmVzdG9yZUl0ZW1QYWdlSXRlcmF0b3JGaWx0ZXIpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZmlyZXN0b3JlSXRlcmF0aW9uJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVJdGVtUGFnZUl0ZXJhdGlvbkluc3RhbmNlPFQ+PiA9IHRoaXMuY29sbGVjdGlvbiQucGlwZShcbiAgICBzd2l0Y2hNYXAoKGNvbGxlY3Rpb24pID0+IHtcbiAgICAgIGlmIChjb2xsZWN0aW9uKSB7XG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFt0aGlzLmNvbGxlY3Rpb25Nb2RlJCwgdGhpcy5pdGVyYXRvckZpbHRlciQsIHRoaXMuX3Jlc3RhcnQucGlwZShzdGFydFdpdGgodW5kZWZpbmVkKSldKS5waXBlKFxuICAgICAgICAgIHRocm90dGxlVGltZSgxMDAsIHVuZGVmaW5lZCwgeyB0cmFpbGluZzogdHJ1ZSB9KSwgLy8gcHJldmVudCByYXBpZCBjaGFuZ2VzIGFuZCBleGVjdXRpbmcgZmlsdGVycyB0b28gcXVpY2tseS5cbiAgICAgICAgICBzd2l0Y2hNYXAoKFttb2RlLCBmaWx0ZXJdKSA9PiB7XG4gICAgICAgICAgICBpZiAobW9kZSA9PT0gJ3F1ZXJ5Jykge1xuICAgICAgICAgICAgICByZXR1cm4gb2YoY29sbGVjdGlvbi5maXJlc3RvcmVJdGVyYXRpb24oZmlsdGVyKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jb2xsZWN0aW9uUmVmcyQucGlwZShtYXAoKHJlZnMpID0+IGNvbGxlY3Rpb24uZmlyZXN0b3JlRml4ZWRJdGVyYXRpb24ocmVmcywgZmlsdGVyKSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGNsZWFudXBEZXN0cm95YWJsZSgpLCAvLyBjbGVhbnVwIHRoZSBpdGVyYXRpb25cbiAgICAgICAgICBzaGFyZVJlcGxheSgxKVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIE5FVkVSOyAvLyBkb24ndCBlbWl0IGFueXRoaW5nIHVudGlsIGNvbGxlY3Rpb24gaXMgcHJvdmlkZWQuXG4gICAgICB9XG4gICAgfSksXG4gICAgY2xlYW51cERlc3Ryb3lhYmxlKCksIC8vIGNsZWFudXAgdGhlIGl0ZXJhdGlvblxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgcXVlcnlDaGFuZ2VXYXRjaGVyJDogT2JzZXJ2YWJsZTxJdGVyYXRpb25RdWVyeURvY0NoYW5nZVdhdGNoZXI8VD4+ID0gdGhpcy5maXJlc3RvcmVJdGVyYXRpb24kLnBpcGUoXG4gICAgbWFwKChpbnN0YW5jZSkgPT4gaXRlcmF0aW9uUXVlcnlEb2NDaGFuZ2VXYXRjaGVyKHsgaW5zdGFuY2UgfSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgc25hcHNob3RBY2N1bXVsYXRvciQ6IE9ic2VydmFibGU8RmlyZWJhc2VRdWVyeVNuYXBzaG90QWNjdW11bGF0b3I8VD4+ID0gdGhpcy5maXJlc3RvcmVJdGVyYXRpb24kLnBpcGUoXG4gICAgbWFwKCh4KSA9PiBmaXJlYmFzZVF1ZXJ5U25hcHNob3RBY2N1bXVsYXRvcjxUPih4KSksXG4gICAgY2xlYW51cERlc3Ryb3lhYmxlKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBoYXNOZXh0JDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuZmlyZXN0b3JlSXRlcmF0aW9uJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoeCkgPT4geC5oYXNOZXh0JCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBjYW5Mb2FkTW9yZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmZpcmVzdG9yZUl0ZXJhdGlvbiQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHgpID0+IHguY2FuTG9hZE1vcmUkKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGhhc05leHRBbmRDYW5Mb2FkTW9yZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmZpcmVzdG9yZUl0ZXJhdGlvbiQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHgpID0+IGl0ZXJhdGlvbkhhc05leHRBbmRDYW5Mb2FkTW9yZSh4KSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBzbmFwc2hvdEFjY3VtdWxhdG9yRG9jdW1lbnRSZWZzJDogT2JzZXJ2YWJsZTxEb2N1bWVudFJlZmVyZW5jZTxUPltdW10+ID0gdGhpcy5zbmFwc2hvdEFjY3VtdWxhdG9yJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoeCkgPT4geC5hbGxJdGVtcyQucGlwZShtYXAoKHkpID0+IHkubWFwKCh6KSA9PiB6Lm1hcCgoenopID0+IHp6LnJlZikpKSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgc25hcHNob3RBY2N1bXVsYXRvckRvY3VtZW50cyQ6IE9ic2VydmFibGU8RFtdW10+ID0gY29tYmluZUxhdGVzdChbdGhpcy5jb2xsZWN0aW9uJC5waXBlKGZpbHRlck1heWJlKCkpLCB0aGlzLnNuYXBzaG90QWNjdW11bGF0b3JEb2N1bWVudFJlZnMkXSkucGlwZShcbiAgICBtYXAoKFtjb2xsZWN0aW9uLCBkb2N1bWVudFJlZnNdKSA9PiB7XG4gICAgICBjb25zdCBhY2Nlc3NvciA9IGNvbGxlY3Rpb24uZG9jdW1lbnRBY2Nlc3NvcigpO1xuICAgICAgcmV0dXJuIGRvY3VtZW50UmVmcy5tYXAoKHkpID0+IHkubWFwKCh6KSA9PiBhY2Nlc3Nvci5sb2FkRG9jdW1lbnQoeikpKTtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGFjY3VtdWxhdG9yJDogT2JzZXJ2YWJsZTxGaXJlYmFzZVF1ZXJ5SXRlbUFjY3VtdWxhdG9yPFQ+PiA9IHRoaXMuZmlyZXN0b3JlSXRlcmF0aW9uJC5waXBlKFxuICAgIG1hcCgoeCkgPT4gZmlyZWJhc2VRdWVyeUl0ZW1BY2N1bXVsYXRvcjxUPih4KSksXG4gICAgY2xlYW51cERlc3Ryb3lhYmxlKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBhY2N1bXVsYXRvclBhZ2UkOiBPYnNlcnZhYmxlPFBhZ2VOdW1iZXI+ID0gdGhpcy5hY2N1bXVsYXRvciQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHgpID0+IHBhZ2VJdGVtQWNjdW11bGF0b3JDdXJyZW50UGFnZSh4KSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICAvKipcbiAgICogUGFzc3Rocm91Z2ggZm9yIGN1cnJlbnRBbGxJdGVtcyQgZnJvbSB0aGUgYWNjdW11bGF0b3IuXG4gICAqL1xuICByZWFkb25seSBjdXJyZW50QWNjdW11bGF0b3JJdGVtcyQ6IE9ic2VydmFibGU8RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+W11bXT4gPSB0aGlzLmFjY3VtdWxhdG9yJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoeCkgPT4geC5jdXJyZW50QWxsSXRlbXMkKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIC8qKlxuICAgKiBQYXNzdGhyb3VnaCBmb3IgYWxsSXRlbXMkIGZyb20gdGhlIGFjY3VtdWxhdG9yLlxuICAgKi9cbiAgcmVhZG9ubHkgYWNjdW11bGF0b3JJdGVtcyQ6IE9ic2VydmFibGU8RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+W11bXT4gPSB0aGlzLmFjY3VtdWxhdG9yJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoeCkgPT4geC5hbGxJdGVtcyQpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZmlyc3QgcGFnZSByZXN1bHQgaGFzIG9uZSBvciBtb3JlIGRvY3VtZW50cy5cbiAgICovXG4gIHJlYWRvbmx5IGhhc0RvY3VtZW50cyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmZpcmVzdG9yZUl0ZXJhdGlvbiQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHgpID0+IHguZmlyc3RTdGF0ZSQucGlwZShtYXAoKHgpID0+IEJvb2xlYW4oeC52YWx1ZT8ubGVuZ3RoKSkpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGFsbERvY3VtZW50UmVmcyQ6IE9ic2VydmFibGU8RG9jdW1lbnRSZWZlcmVuY2U8VD5bXT4gPSB0aGlzLnNuYXBzaG90QWNjdW11bGF0b3JEb2N1bWVudFJlZnMkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmZsYXQoKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBhbGxEb2N1bWVudHMkOiBPYnNlcnZhYmxlPERbXT4gPSB0aGlzLnNuYXBzaG90QWNjdW11bGF0b3JEb2N1bWVudHMkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmZsYXQoKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBhbGxEb2N1bWVudERhdGEkOiBPYnNlcnZhYmxlPERvY3VtZW50RGF0YVdpdGhJZEFuZEtleTxUPltdPiA9IHRoaXMuYWNjdW11bGF0b3JJdGVtcyQucGlwZShcbiAgICBtYXAoKHgpID0+IHguZmxhdCgpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHBhZ2VMb2FkaW5nU3RhdGUkOiBPYnNlcnZhYmxlPFBhZ2VMaXN0TG9hZGluZ1N0YXRlPERvY3VtZW50RGF0YVdpdGhJZEFuZEtleTxUPj4+ID0gdGhpcy5hY2N1bXVsYXRvciQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHgpID0+IGFjY3VtdWxhdG9yRmxhdHRlblBhZ2VMaXN0TG9hZGluZ1N0YXRlKHgpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKGluaXRDb25maWc/OiBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJJbnN0YW5jZUluaXRDb25maWc8VCwgRD4pIHtcbiAgICB0aGlzLl9jb2xsZWN0aW9uTW9kZS5uZXh0KGluaXRDb25maWc/LmNvbGxlY3Rpb25Nb2RlID8/ICdxdWVyeScpO1xuXG4gICAgaWYgKGluaXRDb25maWc/LmNvbGxlY3Rpb25LZXlzKSB7XG4gICAgICB0aGlzLmNvbGxlY3Rpb25LZXlzID0gaW5pdENvbmZpZz8uY29sbGVjdGlvbktleXM7XG4gICAgfSBlbHNlIGlmIChpbml0Q29uZmlnPy5jb2xsZWN0aW9uUmVmcykge1xuICAgICAgdGhpcy5jb2xsZWN0aW9uUmVmcyA9IGluaXRDb25maWc/LmNvbGxlY3Rpb25SZWZzO1xuICAgIH1cblxuICAgIHRoaXMuX2NvbGxlY3Rpb24ubmV4dChpbml0Q29uZmlnPy5jb2xsZWN0aW9uKTtcbiAgICB0aGlzLl9tYXhQYWdlcy5uZXh0KGluaXRDb25maWc/Lm1heFBhZ2VzKTtcbiAgICB0aGlzLl9pdGVtc1BlclBhZ2UubmV4dChpbml0Q29uZmlnPy5pdGVtc1BlclBhZ2UpO1xuICAgIHRoaXMuX2NvbnN0cmFpbnRzLm5leHQoaW5pdENvbmZpZz8uY29uc3RyYWludHMpO1xuICB9XG5cbiAgaW5pdCgpOiB2b2lkIHtcbiAgICAvLyBXaGVuIG1heCBwYWdlcyBjaGFuZ2VzLCB1cGRhdGUgdGhlIGl0ZXJhdGlvbidzIG1heCBwYWdlIGxpbWl0LlxuICAgIHRoaXMuX21heFBhZ2VzU3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMuX21heFBhZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgZmlsdGVyTWF5YmUoKSwgLy8gZG8gbm90IHBhc3MgbnVsbC91bmRlZmluZWQgdmFsdWVzXG4gICAgICAgIHN3aXRjaE1hcCgobWF4UGFnZUxvYWRMaW1pdCkgPT5cbiAgICAgICAgICB0aGlzLmZpcmVzdG9yZUl0ZXJhdGlvbiQucGlwZShcbiAgICAgICAgICAgIHRhcCgoaXRlcmF0aW9uKSA9PiB7XG4gICAgICAgICAgICAgIGl0ZXJhdGlvbi5zZXRNYXhQYWdlTG9hZExpbWl0KG1heFBhZ2VMb2FkTGltaXQpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fY29sbGVjdGlvbk1vZGUuY29tcGxldGUoKTtcbiAgICB0aGlzLl9jb2xsZWN0aW9uUmVmcy5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX21heFBhZ2VzLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fY29sbGVjdGlvbi5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2NvbnN0cmFpbnRzLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5faXRlbXNQZXJQYWdlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fcmVzdGFydC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX21heFBhZ2VzU3ViLmRlc3Ryb3koKTtcbiAgfVxuXG4gIC8vIE1BUks6IElucHV0c1xuICBnZXQgY29sbGVjdGlvbk1vZGUoKTogRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTW9kZSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbGxlY3Rpb25Nb2RlLnZhbHVlO1xuICB9XG5cbiAgc2V0IGNvbGxlY3Rpb25Nb2RlKG1vZGU6IERieEZpcmViYXNlQ29sbGVjdGlvbk1vZGUpIHtcbiAgICBpZiAodGhpcy5jb2xsZWN0aW9uTW9kZSAhPSBtb2RlKSB7XG4gICAgICB0aGlzLl9jb2xsZWN0aW9uTW9kZS5uZXh0KG1vZGUpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBjb2xsZWN0aW9uS2V5cygpOiBNYXliZTxGaXJlc3RvcmVNb2RlbEtleVtdPiB7XG4gICAgY29uc3QgcmVmcyA9IHRoaXMuY29sbGVjdGlvblJlZnM7XG4gICAgcmV0dXJuIHJlZnM/Lm1hcCgoeCkgPT4geC5wYXRoKTtcbiAgfVxuXG4gIHNldCBjb2xsZWN0aW9uS2V5cyhrZXlzOiBNYXliZTxGaXJlc3RvcmVNb2RlbEtleVtdPikge1xuICAgIGxldCByZWZzOiBNYXliZTxEb2N1bWVudFJlZmVyZW5jZTxUPltdPiA9IHVuZGVmaW5lZDtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24gfSA9IHRoaXM7XG5cbiAgICBpZiAoa2V5cyAmJiBjb2xsZWN0aW9uKSB7XG4gICAgICBjb25zdCBhY2Nlc3NvciA9IGNvbGxlY3Rpb24uZG9jdW1lbnRBY2Nlc3NvcigpO1xuICAgICAgcmVmcyA9IGtleXMubWFwKCh4KSA9PiBhY2Nlc3Nvci5kb2N1bWVudFJlZkZvcktleSh4KSk7XG4gICAgfVxuXG4gICAgdGhpcy5jb2xsZWN0aW9uUmVmcyA9IHJlZnM7XG4gIH1cblxuICBnZXQgY29sbGVjdGlvblJlZnMoKTogTWF5YmU8RG9jdW1lbnRSZWZlcmVuY2U8VD5bXT4ge1xuICAgIHJldHVybiB0aGlzLl9jb2xsZWN0aW9uUmVmcy52YWx1ZTtcbiAgfVxuXG4gIHNldCBjb2xsZWN0aW9uUmVmcyhyZWZzOiBNYXliZTxEb2N1bWVudFJlZmVyZW5jZTxUPltdPikge1xuICAgIHRoaXMuX2NvbGxlY3Rpb25SZWZzLm5leHQocmVmcyk7XG4gIH1cblxuICBnZXQgbWF4UGFnZXMoKTogTWF5YmU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuX21heFBhZ2VzLnZhbHVlO1xuICB9XG5cbiAgc2V0IG1heFBhZ2VzKG1heFBhZ2VzOiBNYXliZTxudW1iZXI+KSB7XG4gICAgaWYgKHRoaXMubWF4UGFnZXMgIT0gbWF4UGFnZXMpIHtcbiAgICAgIHRoaXMuX21heFBhZ2VzLm5leHQobWF4UGFnZXMpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBpdGVtc1BlclBhZ2UoKTogTWF5YmU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuX2l0ZW1zUGVyUGFnZS52YWx1ZTtcbiAgfVxuXG4gIHNldCBpdGVtc1BlclBhZ2UoaXRlbXNQZXJQYWdlOiBNYXliZTxudW1iZXI+KSB7XG4gICAgaWYgKHRoaXMuaXRlbXNQZXJQYWdlICE9IGl0ZW1zUGVyUGFnZSkge1xuICAgICAgdGhpcy5faXRlbXNQZXJQYWdlLm5leHQoaXRlbXNQZXJQYWdlKTtcbiAgICB9XG4gIH1cblxuICBnZXQgY29uc3RyYWludHMoKTogTWF5YmU8QXJyYXlPclZhbHVlPEZpcmVzdG9yZVF1ZXJ5Q29uc3RyYWludD4+IHtcbiAgICByZXR1cm4gdGhpcy5fY29uc3RyYWludHMudmFsdWU7XG4gIH1cblxuICBzZXQgY29uc3RyYWludHMoY29uc3RyYWludHM6IE1heWJlPEFycmF5T3JWYWx1ZTxGaXJlc3RvcmVRdWVyeUNvbnN0cmFpbnQ+Pikge1xuICAgIHRoaXMuX2NvbnN0cmFpbnRzLm5leHQoY29uc3RyYWludHMpO1xuICB9XG5cbiAgZ2V0IHdhaXRGb3JOb25OdWxsQ29uc3RyYWludHMoKTogTWF5YmU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl93YWl0Rm9yTm9uTnVsbENvbnN0cmFpbnRzLnZhbHVlO1xuICB9XG5cbiAgc2V0IHdhaXRGb3JOb25OdWxsQ29uc3RyYWludHMod2FpdEZvck5vbk51bGxDb25zdHJhaW50czogTWF5YmU8Ym9vbGVhbj4pIHtcbiAgICB0aGlzLl93YWl0Rm9yTm9uTnVsbENvbnN0cmFpbnRzLm5leHQod2FpdEZvck5vbk51bGxDb25zdHJhaW50cyk7XG4gIH1cblxuICBnZXQgY29sbGVjdGlvbigpOiBNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZTxULCBEPj4ge1xuICAgIHJldHVybiB0aGlzLl9jb2xsZWN0aW9uLnZhbHVlO1xuICB9XG5cbiAgc2V0IGNvbGxlY3Rpb24oY29sbGVjdGlvbjogTWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U8VCwgRD4+KSB7XG4gICAgdGhpcy5fY29sbGVjdGlvbi5uZXh0KGNvbGxlY3Rpb24pO1xuICB9XG5cbiAgLy8gTUFSSzogRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVyXG4gIG5leHQoKSB7XG4gICAgdXNlRmlyc3QodGhpcy5maXJlc3RvcmVJdGVyYXRpb24kLCAoeCkgPT4geC5uZXh0KCkpO1xuICB9XG5cbiAgcmVzdGFydCgpIHtcbiAgICB0aGlzLl9yZXN0YXJ0Lm5leHQoKTtcbiAgfVxuXG4gIHNldENvbGxlY3Rpb25Nb2RlKG1vZGU6IERieEZpcmViYXNlQ29sbGVjdGlvbk1vZGUpIHtcbiAgICB0aGlzLmNvbGxlY3Rpb25Nb2RlID0gbW9kZTtcbiAgfVxuXG4gIC8vIFJlZmVyZW5jZXMgTW9kZVxuICBzZXRDb2xsZWN0aW9uS2V5cyhrZXlzOiBNYXliZTxGaXJlc3RvcmVNb2RlbEtleVtdPik6IHZvaWQge1xuICAgIHRoaXMuY29sbGVjdGlvbktleXMgPSBrZXlzO1xuICB9XG5cbiAgc2V0Q29sbGVjdGlvblJlZnMocmVmczogTWF5YmU8RG9jdW1lbnRSZWZlcmVuY2U8VD5bXT4pOiB2b2lkIHtcbiAgICB0aGlzLmNvbGxlY3Rpb25SZWZzID0gcmVmcztcbiAgfVxuXG4gIC8vIFF1ZXJ5IE1vZGVcbiAgc2V0TWF4UGFnZXMobWF4UGFnZXM6IE1heWJlPG51bWJlcj4pIHtcbiAgICB0aGlzLm1heFBhZ2VzID0gbWF4UGFnZXM7XG4gIH1cblxuICBzZXRJdGVtc1BlclBhZ2UoaXRlbXNQZXJQYWdlOiBNYXliZTxudW1iZXI+KSB7XG4gICAgdGhpcy5pdGVtc1BlclBhZ2UgPSBpdGVtc1BlclBhZ2U7XG4gIH1cblxuICBzZXRDb25zdHJhaW50cyhjb25zdHJhaW50czogTWF5YmU8QXJyYXlPclZhbHVlPEZpcmVzdG9yZVF1ZXJ5Q29uc3RyYWludD4+KSB7XG4gICAgdGhpcy5jb25zdHJhaW50cyA9IGNvbnN0cmFpbnRzO1xuICB9XG5cbiAgc2V0V2FpdEZvck5vbk51bGxDb25zdHJhaW50cyh3YWl0Rm9yTm9uTnVsbENvbnN0cmFpbnRzOiBNYXliZTxib29sZWFuPikge1xuICAgIHRoaXMud2FpdEZvck5vbk51bGxDb25zdHJhaW50cyA9IHdhaXRGb3JOb25OdWxsQ29uc3RyYWludHM7XG4gIH1cblxuICBzZXRDb2xsZWN0aW9uKGZpcmVzdG9yZUNvbGxlY3Rpb246IE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlPFQsIEQ+Pikge1xuICAgIHRoaXMuY29sbGVjdGlvbiA9IGZpcmVzdG9yZUNvbGxlY3Rpb247XG4gIH1cblxuICBsb2FkUGFnZXNVbnRpbFJlc3VsdHNDb3VudChtYXhSZXN1bHRzTGltaXQ6IEdldHRlck9yVmFsdWU8bnVtYmVyPiwgY291bnRSZXN1bHRzRnVuY3Rpb24/OiBGaXJlYmFzZVF1ZXJ5SXRlbUFjY3VtdWxhdG9yTmV4dFBhZ2VVbnRpbFJlc3VsdHNDb3VudEZ1bmN0aW9uPFQ+IHwgdW5kZWZpbmVkKTogT2JzZXJ2YWJsZTxJdGVtQWNjdW11bGF0b3JOZXh0UGFnZVVudGlsUmVzdWx0c0NvdW50UmVzdWx0PiB7XG4gICAgY29uc3QgZGVmYXVsdEZuOiBJdGVtQWNjdW11bGF0b3JOZXh0UGFnZVVudGlsUmVzdWx0c0NvdW50RnVuY3Rpb248RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+W10+ID0gY291bnRBbGxJbk5lc3RlZEFycmF5O1xuICAgIHJldHVybiB0aGlzLmFjY3VtdWxhdG9yJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKChhY2N1bXVsYXRvcikgPT5cbiAgICAgICAgaXRlbUFjY3VtdWxhdG9yTmV4dFBhZ2VVbnRpbFJlc3VsdHNDb3VudCh7XG4gICAgICAgICAgYWNjdW11bGF0b3IsXG4gICAgICAgICAgbWF4UmVzdWx0c0xpbWl0LFxuICAgICAgICAgIGNvdW50UmVzdWx0c0Z1bmN0aW9uOiBjb3VudFJlc3VsdHNGdW5jdGlvbiA/PyBkZWZhdWx0Rm5cbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgbG9hZFRvUGFnZShwYWdlOiBQYWdlTnVtYmVyKTogT2JzZXJ2YWJsZTxQYWdlTnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuYWNjdW11bGF0b3IkLnBpcGUoc3dpdGNoTWFwKChhY2N1bXVsYXRvcikgPT4gaXRlcmF0b3JOZXh0UGFnZVVudGlsUGFnZShhY2N1bXVsYXRvci5pdGVtSXRlcmF0aW9uLCBwYWdlKSkpO1xuICB9XG5cbiAgbG9hZEFsbFJlc3VsdHMoKTogT2JzZXJ2YWJsZTxQYWdlTnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuYWNjdW11bGF0b3IkLnBpcGUoc3dpdGNoTWFwKChhY2N1bXVsYXRvcikgPT4gaXRlcmF0b3JOZXh0UGFnZVVudGlsTWF4UGFnZUxvYWRMaW1pdChhY2N1bXVsYXRvci5pdGVtSXRlcmF0aW9uKSkpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJJbnN0YW5jZTxULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPj4oY29uZmlnOiBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJJbnN0YW5jZUluaXRDb25maWc8VCwgRD4pOiBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJJbnN0YW5jZTxULCBEPiB7XG4gIHJldHVybiBuZXcgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVySW5zdGFuY2U8VCwgRD4oY29uZmlnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckluc3RhbmNlV2l0aENvbGxlY3Rpb248VCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4+KGNvbGxlY3Rpb246IE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlPFQsIEQ+Pik6IERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckluc3RhbmNlPFQsIEQ+IHtcbiAgcmV0dXJuIG5ldyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJJbnN0YW5jZTxULCBEPih7IGNvbGxlY3Rpb24gfSk7XG59XG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9sb2FkZXIvY29sbGVjdGlvbi5sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRG9jdW1lbnREYXRhV2l0aElkQW5kS2V5LCB0eXBlIEZpcmViYXNlUXVlcnlJdGVtQWNjdW11bGF0b3IsIHR5cGUgRmlyZWJhc2VRdWVyeUl0ZW1BY2N1bXVsYXRvck5leHRQYWdlVW50aWxSZXN1bHRzQ291bnRGdW5jdGlvbiwgdHlwZSBGaXJlYmFzZVF1ZXJ5U25hcHNob3RBY2N1bXVsYXRvciwgdHlwZSBGaXJlc3RvcmVJdGVtUGFnZUl0ZXJhdGlvbkluc3RhbmNlLCB0eXBlIEZpcmVzdG9yZVF1ZXJ5Q29uc3RyYWludCwgdHlwZSBJdGVyYXRpb25RdWVyeURvY0NoYW5nZVdhdGNoZXIgfSBmcm9tICdAZGVyZWVrYi9maXJlYmFzZSc7XG5pbXBvcnQgeyB0eXBlIEl0ZW1BY2N1bXVsYXRvck5leHRQYWdlVW50aWxSZXN1bHRzQ291bnRSZXN1bHQsIHR5cGUgUGFnZUxpc3RMb2FkaW5nU3RhdGUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IHR5cGUgTWF5YmUsIHR5cGUgQXJyYXlPclZhbHVlLCB0eXBlIFBhZ2VOdW1iZXIgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IHR5cGUgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckFjY2Vzc29yPFQgPSB1bmtub3duPiB7XG4gIHJlYWRvbmx5IGNvbnN0cmFpbnRzJDogT2JzZXJ2YWJsZTxNYXliZTxBcnJheU9yVmFsdWU8RmlyZXN0b3JlUXVlcnlDb25zdHJhaW50Pj4+O1xuICByZWFkb25seSBmaXJlc3RvcmVJdGVyYXRpb24kOiBPYnNlcnZhYmxlPEZpcmVzdG9yZUl0ZW1QYWdlSXRlcmF0aW9uSW5zdGFuY2U8VD4+O1xuICByZWFkb25seSBwYWdlTG9hZGluZ1N0YXRlJDogT2JzZXJ2YWJsZTxQYWdlTGlzdExvYWRpbmdTdGF0ZTxEb2N1bWVudERhdGFXaXRoSWRBbmRLZXk8VD4+PjtcbiAgcmVhZG9ubHkgcXVlcnlDaGFuZ2VXYXRjaGVyJDogT2JzZXJ2YWJsZTxJdGVyYXRpb25RdWVyeURvY0NoYW5nZVdhdGNoZXI8VD4+O1xuXG4gIC8qKlxuICAgKiBSZXN0YXJ0cyB0aGUgbG9hZGVyIGFuZCByZWZyZXNoZXMgaXRlbXMgZnJvbSB0aGUgYmVnaW5uaW5nLlxuICAgKi9cbiAgcmVzdGFydCgpOiB2b2lkO1xufVxuXG4vKipcbiAqIEFic3RyYWN0IHR5cGUgdGhhdCBsb2FkcyBtb2RlbHMgZnJvbSBhIGNvbmZpZ3VyZWQgY29sbGVjdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXI8VCA9IHVua25vd24+IGV4dGVuZHMgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVyQWNjZXNzb3I8VD4ge1xuICAvKipcbiAgICogTWF4aW11bSBudW1iZXIgb2YgcGFnZXMgdG8gbG9hZCBmcm9tIHRoZSBpbnRlcmF0aW9uLlxuICAgKlxuICAgKiBDaGFuZ2luZyB0aGlzIHVwZGF0ZXMgdGhlIGl0ZXJhdGlvbiwgYnV0IGRvZXMgbm90IHJlc2V0IGl0LlxuICAgKi9cbiAgbWF4UGFnZXM6IE1heWJlPG51bWJlcj47XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBpdGVtcyB0byBsb2FkIHBlciBwYWdlLlxuICAgKlxuICAgKiBDaGFuZ2luZyB0aGlzIHdpbGwgcmVzZXQgdGhlIGl0ZXJhdGlvbi5cbiAgICovXG4gIGl0ZW1zUGVyUGFnZTogTWF5YmU8bnVtYmVyPjtcblxuICAvKipcbiAgICogU2V0cyB0aGUgY29uc3RyYWludHMgb24gdGhlIG1vZGVsIGxvYWRlci5cbiAgICpcbiAgICogQHBhcmFtIGNvbnN0cmFpbnRzXG4gICAqL1xuICBzZXRDb25zdHJhaW50cyhjb25zdHJhaW50czogTWF5YmU8QXJyYXlPclZhbHVlPEZpcmVzdG9yZVF1ZXJ5Q29uc3RyYWludD4+KTogdm9pZDtcblxuICAvKipcbiAgICogTG9hZHMgbW9yZSBpdGVtcy5cbiAgICovXG4gIG5leHQoKTogdm9pZDtcblxuICAvLyBNQVJLOiBVdGlsaXR5IEZ1bmN0aW9uc1xuICAvKipcbiAgICogUmV0dXJucyBhbiBvYnNlcnZhYmxlIHRoYXQgbG9hZHMgdXAgdG8gdGhlIGdpdmVuIHBhZ2UgdGhlbiBlbWl0cyB0aGUgcGFnZSBudW1iZXIuXG4gICAqXG4gICAqIEBwYXJhbSBwYWdlIFBhZ2UgbnVtYmVyIHRvIGxvYWQgdG8uXG4gICAqL1xuICBsb2FkVG9QYWdlKHBhZ2U6IFBhZ2VOdW1iZXIpOiBPYnNlcnZhYmxlPFBhZ2VOdW1iZXI+O1xuXG4gIC8qKlxuICAgKiBMb2FkcyByZXN1bHRzIHVudGlsIGFsbCByZXN1bHRzIGhhdmUgYmVlbiBsb2FkZWQgb3IgdGhlIG1heCBwYWdlIGxpbWl0IGlzIHJlYWNoZWQuXG4gICAqL1xuICBsb2FkQWxsUmVzdWx0cygpOiBPYnNlcnZhYmxlPFBhZ2VOdW1iZXI+O1xufVxuXG4vLyBNQVJLOiBBY2N1bXVsYXRvclxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJBY2Nlc3NvcldpdGhBY2N1bXVsYXRvcjxUID0gdW5rbm93bj4gZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJBY2Nlc3NvcjxUPiB7XG4gIHJlYWRvbmx5IHNuYXBzaG90QWNjdW11bGF0b3IkOiBPYnNlcnZhYmxlPEZpcmViYXNlUXVlcnlTbmFwc2hvdEFjY3VtdWxhdG9yPFQ+PjtcbiAgcmVhZG9ubHkgYWNjdW11bGF0b3IkOiBPYnNlcnZhYmxlPEZpcmViYXNlUXVlcnlJdGVtQWNjdW11bGF0b3I8VD4+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlcldpdGhBY2N1bXVsYXRvcjxUID0gdW5rbm93bj4gZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXI8VD4sIERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckFjY2Vzc29yV2l0aEFjY3VtdWxhdG9yPFQ+IHtcbiAgLyoqXG4gICAqIExvYWRzIHBhZ2VzIHVudGlsIHRoZSBudW1iZXIgb2YgcmVzdWx0cyBoYXMgYmVlbiByZWFjaGVkLCB0aGVuIGVtaXRzIHRoZSB0b3RhbCBudW1iZXIgb2YgcmVzdWx0cy5cbiAgICovXG4gIGxvYWRQYWdlc1VudGlsUmVzdWx0c0NvdW50KG1heFJlc3VsdHNDb3VudDogbnVtYmVyLCBjb3VudEZ1bmN0aW9uPzogRmlyZWJhc2VRdWVyeUl0ZW1BY2N1bXVsYXRvck5leHRQYWdlVW50aWxSZXN1bHRzQ291bnRGdW5jdGlvbjxUPik6IE9ic2VydmFibGU8SXRlbUFjY3VtdWxhdG9yTmV4dFBhZ2VVbnRpbFJlc3VsdHNDb3VudFJlc3VsdD47XG59XG4iXX0=
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { useAsObservable, filterMaybe, SubscriptionObject, asObservable, pageLoadingStateFromObs } from '@dereekb/rxjs';
|
|
2
|
-
import { BehaviorSubject, map, shareReplay, distinctUntilChanged, Subject, switchMap, startWith, exhaustMap } from 'rxjs';
|
|
3
|
-
import { dataFromDocumentSnapshots, documentReferencesFromDocuments, firestoreModelIdsFromDocuments, firestoreModelKeysFromDocuments, getDataFromDocumentSnapshots, getDocumentSnapshots, latestSnapshotsFromDocuments, loadDocumentsForDocumentReferences, loadDocumentsForIds, loadDocumentsForKeys } from '@dereekb/firebase';
|
|
4
|
-
import { asArray } from '@dereekb/util';
|
|
5
|
-
/**
|
|
6
|
-
* DbxLimitedFirebaseDocumentLoader implementation within an instance.
|
|
7
|
-
*/
|
|
8
|
-
export class DbxLimitedFirebaseDocumentLoaderInstance {
|
|
9
|
-
accessor;
|
|
10
|
-
_documents = new BehaviorSubject(undefined);
|
|
11
|
-
_restart = new Subject();
|
|
12
|
-
_sub = new SubscriptionObject();
|
|
13
|
-
documents$ = this._documents.pipe(filterMaybe(), distinctUntilChanged());
|
|
14
|
-
keys$ = this.documents$.pipe(map(firestoreModelKeysFromDocuments));
|
|
15
|
-
ids$ = this.documents$.pipe(map(firestoreModelIdsFromDocuments));
|
|
16
|
-
refs$ = this.documents$.pipe(map(documentReferencesFromDocuments));
|
|
17
|
-
snapshots$ = this.documents$.pipe(switchMap((docs) => this._restart.pipe(startWith(null), exhaustMap(() => getDocumentSnapshots(docs)))), shareReplay(1));
|
|
18
|
-
data$ = this.snapshots$.pipe(map((snapshots) => getDataFromDocumentSnapshots(snapshots, true)), shareReplay(1));
|
|
19
|
-
/**
|
|
20
|
-
* Snapshot stream of the documents
|
|
21
|
-
*/
|
|
22
|
-
snapshotsStream$ = this.documents$.pipe(switchMap((docs) => latestSnapshotsFromDocuments(docs)), shareReplay(1));
|
|
23
|
-
/**
|
|
24
|
-
* Data streamd of the documents.
|
|
25
|
-
*/
|
|
26
|
-
dataStream$ = this.snapshotsStream$.pipe(dataFromDocumentSnapshots(), shareReplay(1));
|
|
27
|
-
pageLoadingState$ = pageLoadingStateFromObs(this.data$, false);
|
|
28
|
-
pageLoadingStateStream$ = pageLoadingStateFromObs(this.dataStream$, false);
|
|
29
|
-
constructor(initConfig) {
|
|
30
|
-
this.accessor = initConfig.accessor;
|
|
31
|
-
}
|
|
32
|
-
destroy() {
|
|
33
|
-
this._documents.complete();
|
|
34
|
-
this._restart.complete();
|
|
35
|
-
this._sub.destroy();
|
|
36
|
-
}
|
|
37
|
-
restart() {
|
|
38
|
-
this._restart.next();
|
|
39
|
-
}
|
|
40
|
-
setKeys(keys) {
|
|
41
|
-
this.setDocuments(asObservable(keys).pipe(map((x) => loadDocumentsForKeys(this.accessor, asArray(x)))));
|
|
42
|
-
}
|
|
43
|
-
setRefs(refs) {
|
|
44
|
-
this.setDocuments(asObservable(refs).pipe(map((x) => loadDocumentsForDocumentReferences(this.accessor, asArray(x)))));
|
|
45
|
-
}
|
|
46
|
-
setDocuments(docs) {
|
|
47
|
-
this._sub.subscription = useAsObservable(docs, (x) => this._documents.next(asArray(x)));
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
export function dbxLimitedFirebaseDocumentLoaderInstance(config) {
|
|
51
|
-
return new DbxLimitedFirebaseDocumentLoaderInstance(config);
|
|
52
|
-
}
|
|
53
|
-
export function dbxLimitedFirebaseDocumentLoaderInstanceWithAccessor(accessor) {
|
|
54
|
-
return new DbxLimitedFirebaseDocumentLoaderInstance({ accessor });
|
|
55
|
-
}
|
|
56
|
-
// MARK: Full DbxFirebaseDocumentLoaderInstance
|
|
57
|
-
export class DbxFirebaseDocumentLoaderInstance extends DbxLimitedFirebaseDocumentLoaderInstance {
|
|
58
|
-
setIds(ids) {
|
|
59
|
-
this.setDocuments(asObservable(ids).pipe(map((x) => loadDocumentsForIds(this.accessor, asArray(x)))));
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
export function dbxFirebaseDocumentLoaderInstance(config) {
|
|
63
|
-
return new DbxFirebaseDocumentLoaderInstance(config);
|
|
64
|
-
}
|
|
65
|
-
export function dbxFirebaseDocumentLoaderInstanceWithAccessor(accessor) {
|
|
66
|
-
return new DbxFirebaseDocumentLoaderInstance({ accessor });
|
|
67
|
-
}
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQubG9hZGVyLmluc3RhbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbG9hZGVyL2RvY3VtZW50LmxvYWRlci5pbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTBCLGVBQWUsRUFBNkIsV0FBVyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzSyxPQUFPLEVBQUUsZUFBZSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBbUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzSSxPQUFPLEVBQ0wseUJBQXlCLEVBR3pCLCtCQUErQixFQUkvQiw4QkFBOEIsRUFFOUIsK0JBQStCLEVBQy9CLDRCQUE0QixFQUM1QixvQkFBb0IsRUFDcEIsNEJBQTRCLEVBRTVCLGtDQUFrQyxFQUNsQyxtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3JCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFxQixPQUFPLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBT3pGOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHdDQUF3QztJQUMxQyxRQUFRLENBQUk7SUFFRixVQUFVLEdBQUcsSUFBSSxlQUFlLENBQWEsU0FBUyxDQUFDLENBQUM7SUFDeEQsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFDL0IsSUFBSSxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztJQUUxQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0lBQ3pFLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxH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LENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFGLENBQUM7Q0FDRjtBQUVELE1BQU0sVUFBVSx3Q0FBd0MsQ0FBc0osTUFBNEQ7SUFDeFEsT0FBTyxJQUFJLHdDQUF3QyxDQUFVLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZFLENBQUM7QUFFRCxNQUFNLFVBQVUsb0RBQW9ELENBQXNKLFFBQVc7SUFDbk8sT0FBTyxJQUFJLHdDQUF3QyxDQUFVLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztBQUM3RSxDQUFDO0FBRUQsK0NBQStDO0FBQy9DLE1BQU0sT0FBTyxpQ0FBbUwsU0FBUSx3Q0FBaUQ7SUFDdlAsTUFBTSxDQUFDLEdBQThEO1FBQ25FLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEcsQ0FBQztDQUNGO0FBRUQsTUFBTSxVQUFVLGlDQUFpQyxDQUF3SSxNQUE0RDtJQUNuUCxPQUFPLElBQUksaUNBQWlDLENBQVUsTUFBTSxDQUFDLENBQUM7QUFDaEUsQ0FBQztBQUVELE1BQU0sVUFBVSw2Q0FBNkMsQ0FBd0ksUUFBVztJQUM5TSxPQUFPLElBQUksaUNBQWlDLENBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0FBQ3RFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIE9ic2VydmFibGVPclZhbHVlLCB1c2VBc09ic2VydmFibGUsIHR5cGUgUGFnZUxpc3RMb2FkaW5nU3RhdGUsIGZpbHRlck1heWJlLCBTdWJzY3JpcHRpb25PYmplY3QsIGFzT2JzZXJ2YWJsZSwgcGFnZUxvYWRpbmdTdGF0ZUZyb21PYnMgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgbWFwLCBzaGFyZVJlcGxheSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIFN1YmplY3QsIHN3aXRjaE1hcCwgdHlwZSBPYnNlcnZhYmxlLCBzdGFydFdpdGgsIGV4aGF1c3RNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGRhdGFGcm9tRG9jdW1lbnRTbmFwc2hvdHMsXG4gIHR5cGUgRG9jdW1lbnREYXRhV2l0aElkQW5kS2V5LFxuICB0eXBlIERvY3VtZW50UmVmZXJlbmNlLFxuICBkb2N1bWVudFJlZmVyZW5jZXNGcm9tRG9jdW1lbnRzLFxuICB0eXBlIERvY3VtZW50U25hcHNob3QsXG4gIHR5cGUgRmlyZXN0b3JlRG9jdW1lbnQsXG4gIHR5cGUgRmlyZXN0b3JlRG9jdW1lbnRBY2Nlc3NvcixcbiAgZmlyZXN0b3JlTW9kZWxJZHNGcm9tRG9jdW1lbnRzLFxuICB0eXBlIEZpcmVzdG9yZU1vZGVsS2V5LFxuICBmaXJlc3RvcmVNb2RlbEtleXNGcm9tRG9jdW1lbnRzLFxuICBnZXREYXRhRnJvbURvY3VtZW50U25hcHNob3RzLFxuICBnZXREb2N1bWVudFNuYXBzaG90cyxcbiAgbGF0ZXN0U25hcHNob3RzRnJvbURvY3VtZW50cyxcbiAgdHlwZSBMaW1pdGVkRmlyZXN0b3JlRG9jdW1lbnRBY2Nlc3NvcixcbiAgbG9hZERvY3VtZW50c0ZvckRvY3VtZW50UmVmZXJlbmNlcyxcbiAgbG9hZERvY3VtZW50c0ZvcklkcyxcbiAgbG9hZERvY3VtZW50c0ZvcktleXNcbn0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgdHlwZSBBcnJheU9yVmFsdWUsIGFzQXJyYXksIHR5cGUgRGVzdHJveWFibGUsIHR5cGUgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IHR5cGUgRGJ4RmlyZWJhc2VEb2N1bWVudExvYWRlciwgdHlwZSBEYnhMaW1pdGVkRmlyZWJhc2VEb2N1bWVudExvYWRlciB9IGZyb20gJy4vZG9jdW1lbnQubG9hZGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZURvY3VtZW50TG9hZGVySW5zdGFuY2VJbml0Q29uZmlnPFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+LCBBIGV4dGVuZHMgTGltaXRlZEZpcmVzdG9yZURvY3VtZW50QWNjZXNzb3I8VCwgRD4gPSBMaW1pdGVkRmlyZXN0b3JlRG9jdW1lbnRBY2Nlc3NvcjxULCBEPj4ge1xuICByZWFkb25seSBhY2Nlc3NvcjogQTtcbn1cblxuLyoqXG4gKiBEYnhMaW1pdGVkRmlyZWJhc2VEb2N1bWVudExvYWRlciBpbXBsZW1lbnRhdGlvbiB3aXRoaW4gYW4gaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBEYnhMaW1pdGVkRmlyZWJhc2VEb2N1bWVudExvYWRlckluc3RhbmNlPFQgPSB1bmtub3duLCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgQSBleHRlbmRzIExpbWl0ZWRGaXJlc3RvcmVEb2N1bWVudEFjY2Vzc29yPFQsIEQ+ID0gTGltaXRlZEZpcmVzdG9yZURvY3VtZW50QWNjZXNzb3I8VCwgRD4+IGltcGxlbWVudHMgRGJ4TGltaXRlZEZpcmViYXNlRG9jdW1lbnRMb2FkZXI8VD4sIERlc3Ryb3lhYmxlIHtcbiAgcmVhZG9ubHkgYWNjZXNzb3I6IEE7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9kb2N1bWVudHMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPERbXT4+KHVuZGVmaW5lZCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBfcmVzdGFydCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBfc3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuXG4gIHJlYWRvbmx5IGRvY3VtZW50cyQgPSB0aGlzLl9kb2N1bWVudHMucGlwZShmaWx0ZXJNYXliZSgpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgcmVhZG9ubHkga2V5cyQgPSB0aGlzLmRvY3VtZW50cyQucGlwZShtYXAoZmlyZXN0b3JlTW9kZWxLZXlzRnJvbURvY3VtZW50cykpO1xuICByZWFkb25seSBpZHMkID0gdGhpcy5kb2N1bWVudHMkLnBpcGUobWFwKGZpcmVzdG9yZU1vZGVsSWRzRnJvbURvY3VtZW50cykpO1xuICByZWFkb25seSByZWZzJCA9IHRoaXMuZG9jdW1lbnRzJC5waXBlKG1hcChkb2N1bWVudFJlZmVyZW5jZXNGcm9tRG9jdW1lbnRzKSk7XG5cbiAgcmVhZG9ubHkgc25hcHNob3RzJDogT2JzZXJ2YWJsZTxEb2N1bWVudFNuYXBzaG90PFQ+W10+ID0gdGhpcy5kb2N1bWVudHMkLnBpcGUoXG4gICAgc3dpdGNoTWFwKChkb2NzKSA9PlxuICAgICAgdGhpcy5fcmVzdGFydC5waXBlKFxuICAgICAgICBzdGFydFdpdGgobnVsbCksXG4gICAgICAgIGV4aGF1c3RNYXAoKCkgPT4gZ2V0RG9jdW1lbnRTbmFwc2hvdHM8RD4oZG9jcykpXG4gICAgICApXG4gICAgKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGRhdGEkOiBPYnNlcnZhYmxlPERvY3VtZW50RGF0YVdpdGhJZEFuZEtleTxUPltdPiA9IHRoaXMuc25hcHNob3RzJC5waXBlKFxuICAgIG1hcCgoc25hcHNob3RzKSA9PiBnZXREYXRhRnJvbURvY3VtZW50U25hcHNob3RzKHNuYXBzaG90cywgdHJ1ZSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgLyoqXG4gICAqIFNuYXBzaG90IHN0cmVhbSBvZiB0aGUgZG9jdW1lbnRzXG4gICAqL1xuICByZWFkb25seSBzbmFwc2hvdHNTdHJlYW0kOiBPYnNlcnZhYmxlPERvY3VtZW50U25hcHNob3Q8VD5bXT4gPSB0aGlzLmRvY3VtZW50cyQucGlwZShcbiAgICBzd2l0Y2hNYXAoKGRvY3MpID0+IGxhdGVzdFNuYXBzaG90c0Zyb21Eb2N1bWVudHMoZG9jcykpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgLyoqXG4gICAqIERhdGEgc3RyZWFtZCBvZiB0aGUgZG9jdW1lbnRzLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YVN0cmVhbSQ6IE9ic2VydmFibGU8RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+W10+ID0gdGhpcy5zbmFwc2hvdHNTdHJlYW0kLnBpcGUoZGF0YUZyb21Eb2N1bWVudFNuYXBzaG90cygpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgcGFnZUxvYWRpbmdTdGF0ZSQ6IE9ic2VydmFibGU8UGFnZUxpc3RMb2FkaW5nU3RhdGU8RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+Pj4gPSBwYWdlTG9hZGluZ1N0YXRlRnJvbU9icyh0aGlzLmRhdGEkLCBmYWxzZSk7XG4gIHJlYWRvbmx5IHBhZ2VMb2FkaW5nU3RhdGVTdHJlYW0kOiBPYnNlcnZhYmxlPFBhZ2VMaXN0TG9hZGluZ1N0YXRlPERvY3VtZW50RGF0YVdpdGhJZEFuZEtleTxUPj4+ID0gcGFnZUxvYWRpbmdTdGF0ZUZyb21PYnModGhpcy5kYXRhU3RyZWFtJCwgZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKGluaXRDb25maWc6IERieEZpcmViYXNlRG9jdW1lbnRMb2FkZXJJbnN0YW5jZUluaXRDb25maWc8VCwgRCwgQT4pIHtcbiAgICB0aGlzLmFjY2Vzc29yID0gaW5pdENvbmZpZy5hY2Nlc3NvcjtcbiAgfVxuXG4gIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZG9jdW1lbnRzLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fcmVzdGFydC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX3N1Yi5kZXN0cm95KCk7XG4gIH1cblxuICByZXN0YXJ0KCkge1xuICAgIHRoaXMuX3Jlc3RhcnQubmV4dCgpO1xuICB9XG5cbiAgc2V0S2V5cyhrZXlzOiBNYXliZTxPYnNlcnZhYmxlT3JWYWx1ZTxBcnJheU9yVmFsdWU8RmlyZXN0b3JlTW9kZWxLZXk+Pj4pOiB2b2lkIHtcbiAgICB0aGlzLnNldERvY3VtZW50cyhhc09ic2VydmFibGUoa2V5cykucGlwZShtYXAoKHgpID0+IGxvYWREb2N1bWVudHNGb3JLZXlzKHRoaXMuYWNjZXNzb3IsIGFzQXJyYXkoeCkpKSkpO1xuICB9XG5cbiAgc2V0UmVmcyhyZWZzOiBNYXliZTxPYnNlcnZhYmxlT3JWYWx1ZTxBcnJheU9yVmFsdWU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+Pj4pOiB2b2lkIHtcbiAgICB0aGlzLnNldERvY3VtZW50cyhhc09ic2VydmFibGUocmVmcykucGlwZShtYXAoKHgpID0+IGxvYWREb2N1bWVudHNGb3JEb2N1bWVudFJlZmVyZW5jZXModGhpcy5hY2Nlc3NvciwgYXNBcnJheSh4KSkpKSk7XG4gIH1cblxuICBzZXREb2N1bWVudHMoZG9jczogTWF5YmU8T2JzZXJ2YWJsZU9yVmFsdWU8QXJyYXlPclZhbHVlPEQ+Pj4pOiB2b2lkIHtcbiAgICB0aGlzLl9zdWIuc3Vic2NyaXB0aW9uID0gdXNlQXNPYnNlcnZhYmxlKGRvY3MsICh4KSA9PiB0aGlzLl9kb2N1bWVudHMubmV4dChhc0FycmF5KHgpKSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRieExpbWl0ZWRGaXJlYmFzZURvY3VtZW50TG9hZGVySW5zdGFuY2U8VCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIEEgZXh0ZW5kcyBMaW1pdGVkRmlyZXN0b3JlRG9jdW1lbnRBY2Nlc3NvcjxULCBEPiA9IExpbWl0ZWRGaXJlc3RvcmVEb2N1bWVudEFjY2Vzc29yPFQsIEQ+Pihjb25maWc6IERieEZpcmViYXNlRG9jdW1lbnRMb2FkZXJJbnN0YW5jZUluaXRDb25maWc8VCwgRCwgQT4pOiBEYnhMaW1pdGVkRmlyZWJhc2VEb2N1bWVudExvYWRlckluc3RhbmNlPFQsIEQsIEE+IHtcbiAgcmV0dXJuIG5ldyBEYnhMaW1pdGVkRmlyZWJhc2VEb2N1bWVudExvYWRlckluc3RhbmNlPFQsIEQsIEE+KGNvbmZpZyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYnhMaW1pdGVkRmlyZWJhc2VEb2N1bWVudExvYWRlckluc3RhbmNlV2l0aEFjY2Vzc29yPFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+LCBBIGV4dGVuZHMgTGltaXRlZEZpcmVzdG9yZURvY3VtZW50QWNjZXNzb3I8VCwgRD4gPSBMaW1pdGVkRmlyZXN0b3JlRG9jdW1lbnRBY2Nlc3NvcjxULCBEPj4oYWNjZXNzb3I6IEEpOiBEYnhMaW1pdGVkRmlyZWJhc2VEb2N1bWVudExvYWRlckluc3RhbmNlPFQsIEQsIEE+IHtcbiAgcmV0dXJuIG5ldyBEYnhMaW1pdGVkRmlyZWJhc2VEb2N1bWVudExvYWRlckluc3RhbmNlPFQsIEQsIEE+KHsgYWNjZXNzb3IgfSk7XG59XG5cbi8vIE1BUks6IEZ1bGwgRGJ4RmlyZWJhc2VEb2N1bWVudExvYWRlckluc3RhbmNlXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VEb2N1bWVudExvYWRlckluc3RhbmNlPFQgPSB1bmtub3duLCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgQSBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50QWNjZXNzb3I8VCwgRD4gPSBGaXJlc3RvcmVEb2N1bWVudEFjY2Vzc29yPFQsIEQ+PiBleHRlbmRzIERieExpbWl0ZWRGaXJlYmFzZURvY3VtZW50TG9hZGVySW5zdGFuY2U8VCwgRCwgQT4gaW1wbGVtZW50cyBEYnhGaXJlYmFzZURvY3VtZW50TG9hZGVyPFQ+LCBEZXN0cm95YWJsZSB7XG4gIHNldElkcyhpZHM6IE1heWJlPE9ic2VydmFibGVPclZhbHVlPEFycmF5T3JWYWx1ZTxGaXJlc3RvcmVNb2RlbEtleT4+Pik6IHZvaWQge1xuICAgIHRoaXMuc2V0RG9jdW1lbnRzKGFzT2JzZXJ2YWJsZShpZHMpLnBpcGUobWFwKCh4KSA9PiBsb2FkRG9jdW1lbnRzRm9ySWRzKHRoaXMuYWNjZXNzb3IsIGFzQXJyYXkoeCkpKSkpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYnhGaXJlYmFzZURvY3VtZW50TG9hZGVySW5zdGFuY2U8VCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIEEgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudEFjY2Vzc29yPFQsIEQ+ID0gRmlyZXN0b3JlRG9jdW1lbnRBY2Nlc3NvcjxULCBEPj4oY29uZmlnOiBEYnhGaXJlYmFzZURvY3VtZW50TG9hZGVySW5zdGFuY2VJbml0Q29uZmlnPFQsIEQsIEE+KTogRGJ4RmlyZWJhc2VEb2N1bWVudExvYWRlckluc3RhbmNlPFQsIEQsIEE+IHtcbiAgcmV0dXJuIG5ldyBEYnhGaXJlYmFzZURvY3VtZW50TG9hZGVySW5zdGFuY2U8VCwgRCwgQT4oY29uZmlnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRieEZpcmViYXNlRG9jdW1lbnRMb2FkZXJJbnN0YW5jZVdpdGhBY2Nlc3NvcjxULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgQSBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50QWNjZXNzb3I8VCwgRD4gPSBGaXJlc3RvcmVEb2N1bWVudEFjY2Vzc29yPFQsIEQ+PihhY2Nlc3NvcjogQSk6IERieEZpcmViYXNlRG9jdW1lbnRMb2FkZXJJbnN0YW5jZTxULCBELCBBPiB7XG4gIHJldHVybiBuZXcgRGJ4RmlyZWJhc2VEb2N1bWVudExvYWRlckluc3RhbmNlPFQsIEQsIEE+KHsgYWNjZXNzb3IgfSk7XG59XG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQubG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbG9hZGVyL2RvY3VtZW50LmxvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEb2N1bWVudERhdGFXaXRoSWRBbmRLZXksIHR5cGUgRmlyZXN0b3JlTW9kZWxLZXksIHR5cGUgRG9jdW1lbnRSZWZlcmVuY2UsIHR5cGUgRmlyZXN0b3JlRG9jdW1lbnQsIHR5cGUgRmlyZXN0b3JlTW9kZWxJZCwgdHlwZSBEb2N1bWVudFNuYXBzaG90IH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgdHlwZSBPYnNlcnZhYmxlT3JWYWx1ZSwgdHlwZSBQYWdlTGlzdExvYWRpbmdTdGF0ZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgdHlwZSBNYXliZSwgdHlwZSBBcnJheU9yVmFsdWUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IHR5cGUgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIEFic3RyYWN0IHR5cGUgdGhhdCBsb2FkcyBkb2N1bWVudCBzbmFwc2hvdHMgZnJvbSBrZXlzLCByZWZzLCBvciBkb2N1bWVudHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4TGltaXRlZEZpcmViYXNlRG9jdW1lbnRMb2FkZXI8VCA9IHVua25vd24sIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+PiB7XG4gIC8qKlxuICAgKiBLZXlzIG9mIHRoZSBkb2N1bWVudHNcbiAgICovXG4gIHJlYWRvbmx5IGtleXMkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZU1vZGVsS2V5W10+O1xuXG4gIC8qKlxuICAgKiBSZWZzIG9mIHRoZSBkb2N1bWVudHNcbiAgICovXG4gIHJlYWRvbmx5IHJlZnMkOiBPYnNlcnZhYmxlPERvY3VtZW50UmVmZXJlbmNlPFQ+W10+O1xuXG4gIC8qKlxuICAgKiBJZHMgb2YgdGhlIGRvY3VtZW50c1xuICAgKi9cbiAgcmVhZG9ubHkgaWRzJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbElkW10+O1xuXG4gIC8qKlxuICAgKiBEb2N1bWVudHMgdG8gbG9hZC5cbiAgICovXG4gIHJlYWRvbmx5IGRvY3VtZW50cyQ6IE9ic2VydmFibGU8RFtdPjtcblxuICAvKipcbiAgICogU25hcHNob3RzIG9mIHRoZSBkb2N1bWVudHNcbiAgICovXG4gIHJlYWRvbmx5IHNuYXBzaG90cyQ6IE9ic2VydmFibGU8RG9jdW1lbnRTbmFwc2hvdDxUPltdPjtcblxuICAvKipcbiAgICogRGF0YSBmcm9tIHRoZSBkb2N1bWVudHMuXG4gICAqL1xuICByZWFkb25seSBkYXRhJDogT2JzZXJ2YWJsZTxEb2N1bWVudERhdGFXaXRoSWRBbmRLZXk8VD5bXT47XG5cbiAgLyoqXG4gICAqIFNuYXBzaG90IHN0cmVhbSBvZiB0aGUgZG9jdW1lbnRzXG4gICAqL1xuICByZWFkb25seSBzbmFwc2hvdHNTdHJlYW0kOiBPYnNlcnZhYmxlPERvY3VtZW50U25hcHNob3Q8VD5bXT47XG5cbiAgLyoqXG4gICAqIERhdGEgc3RyZWFtIG9mIHRoZSBkb2N1bWVudHMuXG4gICAqL1xuICByZWFkb25seSBkYXRhU3RyZWFtJDogT2JzZXJ2YWJsZTxEb2N1bWVudERhdGFXaXRoSWRBbmRLZXk8VD5bXT47XG5cbiAgLyoqXG4gICAqIExvYWRpbmcgc3RhdGUgZm9yIHRoZSBkb2N1bWVudCBkYXRhLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFnZUxvYWRpbmdTdGF0ZSQ6IE9ic2VydmFibGU8UGFnZUxpc3RMb2FkaW5nU3RhdGU8RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+Pj47XG5cbiAgLyoqXG4gICAqIExvYWRpbmcgc3RhdGUgZm9yIHRoZSBzdHJlYW1lZCBkb2N1bWVudCBkYXRhLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFnZUxvYWRpbmdTdGF0ZVN0cmVhbSQ6IE9ic2VydmFibGU8UGFnZUxpc3RMb2FkaW5nU3RhdGU8RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+Pj47XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGtleXMgb2YgdGhlIG1vZGVscyB0byBsb2FkLlxuICAgKlxuICAgKiBAcGFyYW0gY29uc3RyYWludHNcbiAgICovXG4gIHNldEtleXMoa2V5czogTWF5YmU8T2JzZXJ2YWJsZU9yVmFsdWU8QXJyYXlPclZhbHVlPEZpcmVzdG9yZU1vZGVsS2V5Pj4+KTogdm9pZDtcblxuICAvKipcbiAgICogU2V0cyB0aGUgZG9jdW1lbnQgcmVmZXJlbmNlcyB0byBsb2FkLlxuICAgKlxuICAgKiBAcGFyYW0gY29uc3RyYWludHNcbiAgICovXG4gIHNldFJlZnMocmVmczogTWF5YmU8T2JzZXJ2YWJsZU9yVmFsdWU8QXJyYXlPclZhbHVlPERvY3VtZW50UmVmZXJlbmNlPFQ+Pj4+KTogdm9pZDtcblxuICAvKipcbiAgICogU2V0cyB0aGUgZG9jdW1lbnRzIHRvIGxvYWQgZnJvbS5cbiAgICpcbiAgICogQHBhcmFtIGNvbnN0cmFpbnRzXG4gICAqL1xuICBzZXREb2N1bWVudHMoZG9jczogTWF5YmU8T2JzZXJ2YWJsZU9yVmFsdWU8QXJyYXlPclZhbHVlPEQ+Pj4pOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERieEZpcmViYXNlRG9jdW1lbnRMb2FkZXI8VCA9IHVua25vd24sIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+PiBleHRlbmRzIERieExpbWl0ZWRGaXJlYmFzZURvY3VtZW50TG9hZGVyPFQsIEQ+IHtcbiAgLyoqXG4gICAqIFNldHMgdGhlIGlkcyBvZiB0aGUgbW9kZWxzIHRvIGxvYWQuXG4gICAqXG4gICAqIEBwYXJhbSBjb25zdHJhaW50c1xuICAgKi9cbiAgc2V0SWRzKGlkczogTWF5YmU8T2JzZXJ2YWJsZU9yVmFsdWU8QXJyYXlPclZhbHVlPEZpcmVzdG9yZU1vZGVsSWQ+Pj4pOiB2b2lkO1xufVxuIl19
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export * from './collection.change.watcher';
|
|
2
|
-
export * from './collection.change.trigger';
|
|
3
|
-
export * from './collection.loader.instance';
|
|
4
|
-
export * from './collection.loader';
|
|
5
|
-
export * from './document.loader.instance';
|
|
6
|
-
export * from './document.loader';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9sb2FkZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbGxlY3Rpb24uY2hhbmdlLndhdGNoZXInO1xuZXhwb3J0ICogZnJvbSAnLi9jb2xsZWN0aW9uLmNoYW5nZS50cmlnZ2VyJztcbmV4cG9ydCAqIGZyb20gJy4vY29sbGVjdGlvbi5sb2FkZXIuaW5zdGFuY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jb2xsZWN0aW9uLmxvYWRlcic7XG5leHBvcnQgKiBmcm9tICcuL2RvY3VtZW50LmxvYWRlci5pbnN0YW5jZSc7XG5leHBvcnQgKiBmcm9tICcuL2RvY3VtZW50LmxvYWRlcic7XG4iXX0=
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { DbxFirebaseModelHistoryModule } from './modules/model/history/model.history.module';
|
|
3
|
-
import { DbxFirebaseModelTypesModule } from './modules/model/model.types.module';
|
|
4
|
-
import { DbxFirebaseModelStoreModule } from './modules/store/model.store.module';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class DbxFirebaseModelModule {
|
|
7
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelModule, exports: [DbxFirebaseModelStoreModule, DbxFirebaseModelHistoryModule, DbxFirebaseModelTypesModule] });
|
|
9
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelModule, imports: [DbxFirebaseModelStoreModule, DbxFirebaseModelHistoryModule, DbxFirebaseModelTypesModule] });
|
|
10
|
-
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelModule, decorators: [{
|
|
12
|
-
type: NgModule,
|
|
13
|
-
args: [{
|
|
14
|
-
exports: [DbxFirebaseModelStoreModule, DbxFirebaseModelHistoryModule, DbxFirebaseModelTypesModule]
|
|
15
|
-
}]
|
|
16
|
-
}] });
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kZWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDN0YsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDakYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBS2pGLE1BQU0sT0FBTyxzQkFBc0I7d0dBQXRCLHNCQUFzQjt5R0FBdEIsc0JBQXNCLFlBRnZCLDJCQUEyQixFQUFFLDZCQUE2QixFQUFFLDJCQUEyQjt5R0FFdEYsc0JBQXNCLFlBRnZCLDJCQUEyQixFQUFFLDZCQUE2QixFQUFFLDJCQUEyQjs7NEZBRXRGLHNCQUFzQjtrQkFIbEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQywyQkFBMkIsRUFBRSw2QkFBNkIsRUFBRSwyQkFBMkIsQ0FBQztpQkFDbkciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VNb2RlbEhpc3RvcnlNb2R1bGUgfSBmcm9tICcuL21vZHVsZXMvbW9kZWwvaGlzdG9yeS9tb2RlbC5oaXN0b3J5Lm1vZHVsZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsVHlwZXNNb2R1bGUgfSBmcm9tICcuL21vZHVsZXMvbW9kZWwvbW9kZWwudHlwZXMubW9kdWxlJztcbmltcG9ydCB7IERieEZpcmViYXNlTW9kZWxTdG9yZU1vZHVsZSB9IGZyb20gJy4vbW9kdWxlcy9zdG9yZS9tb2RlbC5zdG9yZS5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBleHBvcnRzOiBbRGJ4RmlyZWJhc2VNb2RlbFN0b3JlTW9kdWxlLCBEYnhGaXJlYmFzZU1vZGVsSGlzdG9yeU1vZHVsZSwgRGJ4RmlyZWJhc2VNb2RlbFR5cGVzTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZU1vZGVsTW9kdWxlIHt9XG4iXX0=
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './model';
|
|
2
|
-
export * from './store';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlJztcbiJdfQ==
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export * from './model.entities.component';
|
|
2
|
-
export * from './model.entities.popover.button.component';
|
|
3
|
-
export * from './model.entities.popover.component';
|
|
4
|
-
export * from './model.entities.providers';
|
|
5
|
-
export * from './model.entities.source.directive';
|
|
6
|
-
export * from './model.entities';
|
|
7
|
-
export * from './model.entities.widget.entity.abstract.directive';
|
|
8
|
-
export * from './model.entities.widget.entity.debug.component';
|
|
9
|
-
export * from './model.entities.widget';
|
|
10
|
-
export * from './model.entities.widget.service';
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL21vZGVsL2VudGl0aWVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsaUNBQWlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL21vZGVsLmVudGl0aWVzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVsLmVudGl0aWVzLnBvcG92ZXIuYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVsLmVudGl0aWVzLnBvcG92ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwuZW50aXRpZXMucHJvdmlkZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwuZW50aXRpZXMuc291cmNlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVsLmVudGl0aWVzJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwuZW50aXRpZXMud2lkZ2V0LmVudGl0eS5hYnN0cmFjdC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC5lbnRpdGllcy53aWRnZXQuZW50aXR5LmRlYnVnLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVsLmVudGl0aWVzLndpZGdldCc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVsLmVudGl0aWVzLndpZGdldC5zZXJ2aWNlJztcbiJdfQ==
|