@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,122 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, computed, inject, input, signal } from '@angular/core';
|
|
2
|
-
import { MatAccordion } from '@angular/material/expansion';
|
|
3
|
-
import { DbxIconButtonComponent, DbxListEmptyContentComponent, DbxLoadingComponent } from '@dereekb/dbx-web';
|
|
4
|
-
import { DbxFirebaseModelEntitiesEntityComponent } from './model.entities.entity.component';
|
|
5
|
-
import { toObservable, toSignal } from '@angular/core/rxjs-interop';
|
|
6
|
-
import { combineLatest, combineLatestWith, defaultIfEmpty, distinctUntilChanged, map, shareReplay, switchMap } from 'rxjs';
|
|
7
|
-
import { filterUniqueValues, reverseCompareFn, separateValues, sortByNumberFunction } from '@dereekb/util';
|
|
8
|
-
import { beginLoading, filterMaybeArray, loadingStateContext, mapLoadingStateValueWithOperator, switchMapMaybe, valueFromFinishedLoadingState } from '@dereekb/rxjs';
|
|
9
|
-
import { DbxFirebaseModelEntitiesWidgetService } from './model.entities.widget.service';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
export class DbxFirebaseModelEntitiesComponent {
|
|
12
|
-
entitiesWidgetService = inject(DbxFirebaseModelEntitiesWidgetService);
|
|
13
|
-
/**
|
|
14
|
-
* Whether the accordion should allow multiple expanded panels.
|
|
15
|
-
*/
|
|
16
|
-
multi = input(true);
|
|
17
|
-
/**
|
|
18
|
-
* If true, will only show entities that have a registered widget entry.
|
|
19
|
-
*
|
|
20
|
-
* Defaults to true.
|
|
21
|
-
*/
|
|
22
|
-
onlyShowRegisteredTypes = input(true);
|
|
23
|
-
/**
|
|
24
|
-
* If true, will show unregistered entities, even if onlyShowRegisteredTypes is true.
|
|
25
|
-
*/
|
|
26
|
-
showUnregisteredTypesSignal = signal(undefined);
|
|
27
|
-
onlyShowRegisteredTypesSignal = computed(() => {
|
|
28
|
-
const onlyShowRegisteredTypes = this.onlyShowRegisteredTypes();
|
|
29
|
-
const showUnregisteredTypes = this.showUnregisteredTypesSignal();
|
|
30
|
-
return !showUnregisteredTypes && onlyShowRegisteredTypes;
|
|
31
|
-
});
|
|
32
|
-
onlyShowRegisteredTypes$ = toObservable(this.onlyShowRegisteredTypesSignal).pipe(distinctUntilChanged(), shareReplay(1));
|
|
33
|
-
entities = input();
|
|
34
|
-
entities$ = toObservable(this.entities).pipe(switchMapMaybe(), map((x) => x ?? beginLoading()), shareReplay(1));
|
|
35
|
-
allEntitiesState$ = this.entities$.pipe(mapLoadingStateValueWithOperator(switchMap((entities) => {
|
|
36
|
-
const sortPriorityMap = this.entitiesWidgetService.getSortPriorityMap();
|
|
37
|
-
const entitiesWithStore = (entities ?? []).filter((x) => Boolean(x.store));
|
|
38
|
-
const entitiesWithKeys = combineLatest(entitiesWithStore.map((x) => {
|
|
39
|
-
const sortPriorityMapEntry = sortPriorityMap.get(x.modelIdentity);
|
|
40
|
-
const isRegisteredType = sortPriorityMapEntry != null;
|
|
41
|
-
const sortPriority = sortPriorityMapEntry ?? -2;
|
|
42
|
-
const obs = x.store.currentKey$.pipe(map((key) => (key ? { key, ...x, sortPriority, isRegisteredType } : null)));
|
|
43
|
-
return obs;
|
|
44
|
-
}));
|
|
45
|
-
return entitiesWithKeys.pipe(filterMaybeArray(), defaultIfEmpty([]), combineLatestWith(this.onlyShowRegisteredTypes$), map(([entities, onlyShowRegisteredTypes]) => {
|
|
46
|
-
const filteredEntities = filterUniqueValues(entities, (x) => x.key).sort(reverseCompareFn(sortByNumberFunction((x) => x.sortPriority)));
|
|
47
|
-
const { included: registeredEntities, excluded: unregisteredEntities } = separateValues(filteredEntities, (x) => x.isRegisteredType);
|
|
48
|
-
const result = {
|
|
49
|
-
entities: onlyShowRegisteredTypes ? registeredEntities : filteredEntities,
|
|
50
|
-
onlyShowRegisteredTypes,
|
|
51
|
-
registeredEntities,
|
|
52
|
-
unregisteredEntities
|
|
53
|
-
};
|
|
54
|
-
return result;
|
|
55
|
-
}));
|
|
56
|
-
})), shareReplay(1));
|
|
57
|
-
allEntities$ = this.allEntitiesState$.pipe(valueFromFinishedLoadingState(), shareReplay(1));
|
|
58
|
-
allEntitiesSignal = toSignal(this.allEntities$, { initialValue: { entities: [], registeredEntities: [], unregisteredEntities: [], onlyShowRegisteredTypes: false } });
|
|
59
|
-
entitiesWithKeysSignal = computed(() => this.allEntitiesSignal()?.entities);
|
|
60
|
-
unregisteredEntitiesCountSignal = computed(() => this.allEntitiesSignal()?.unregisteredEntities?.length ?? 0);
|
|
61
|
-
showViewUnregisteredEntitiesButtonSignal = computed(() => {
|
|
62
|
-
const { onlyShowRegisteredTypes, unregisteredEntities } = this.allEntitiesSignal() ?? {};
|
|
63
|
-
return onlyShowRegisteredTypes && Boolean(unregisteredEntities?.length);
|
|
64
|
-
});
|
|
65
|
-
hasNoEntitiesSignal = computed(() => !this.entitiesWithKeysSignal()?.length);
|
|
66
|
-
context = loadingStateContext({ obs: this.allEntitiesState$ });
|
|
67
|
-
ngOnDestroy() {
|
|
68
|
-
this.context.destroy();
|
|
69
|
-
}
|
|
70
|
-
clickShowUnregisteredEntities() {
|
|
71
|
-
this.showUnregisteredTypesSignal.set(true);
|
|
72
|
-
}
|
|
73
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelEntitiesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
74
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxFirebaseModelEntitiesComponent, isStandalone: true, selector: "dbx-firebase-model-entities", inputs: { multi: { classPropertyName: "multi", publicName: "multi", isSignal: true, isRequired: false, transformFunction: null }, onlyShowRegisteredTypes: { classPropertyName: "onlyShowRegisteredTypes", publicName: "onlyShowRegisteredTypes", isSignal: true, isRequired: false, transformFunction: null }, entities: { classPropertyName: "entities", publicName: "entities", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
75
|
-
<dbx-loading [linear]="true" [context]="context">
|
|
76
|
-
<mat-accordion class="dbx-firebase-model-entities-accordion" [multi]="multi()">
|
|
77
|
-
@for (entity of entitiesWithKeysSignal(); track entity.key) {
|
|
78
|
-
<dbx-firebase-model-entities-entity [entity]="entity"></dbx-firebase-model-entities-entity>
|
|
79
|
-
}
|
|
80
|
-
</mat-accordion>
|
|
81
|
-
@if (hasNoEntitiesSignal()) {
|
|
82
|
-
<dbx-list-empty-content>
|
|
83
|
-
<ng-content select="[empty]"></ng-content>
|
|
84
|
-
</dbx-list-empty-content>
|
|
85
|
-
}
|
|
86
|
-
@if (showViewUnregisteredEntitiesButtonSignal()) {
|
|
87
|
-
<div class="dbx-pt3 text-center">
|
|
88
|
-
<dbx-icon-button icon="visibility" [text]="'View ' + unregisteredEntitiesCountSignal() + ' Hidden Entities'" (buttonClick)="clickShowUnregisteredEntities()"></dbx-icon-button>
|
|
89
|
-
</div>
|
|
90
|
-
}
|
|
91
|
-
</dbx-loading>
|
|
92
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }, { kind: "component", type: DbxFirebaseModelEntitiesEntityComponent, selector: "dbx-firebase-model-entities-entity", inputs: ["entity"] }, { kind: "component", type: DbxListEmptyContentComponent, selector: "dbx-list-empty-content" }, { kind: "component", type: DbxIconButtonComponent, selector: "dbx-icon-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
93
|
-
}
|
|
94
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelEntitiesComponent, decorators: [{
|
|
95
|
-
type: Component,
|
|
96
|
-
args: [{
|
|
97
|
-
selector: 'dbx-firebase-model-entities',
|
|
98
|
-
template: `
|
|
99
|
-
<dbx-loading [linear]="true" [context]="context">
|
|
100
|
-
<mat-accordion class="dbx-firebase-model-entities-accordion" [multi]="multi()">
|
|
101
|
-
@for (entity of entitiesWithKeysSignal(); track entity.key) {
|
|
102
|
-
<dbx-firebase-model-entities-entity [entity]="entity"></dbx-firebase-model-entities-entity>
|
|
103
|
-
}
|
|
104
|
-
</mat-accordion>
|
|
105
|
-
@if (hasNoEntitiesSignal()) {
|
|
106
|
-
<dbx-list-empty-content>
|
|
107
|
-
<ng-content select="[empty]"></ng-content>
|
|
108
|
-
</dbx-list-empty-content>
|
|
109
|
-
}
|
|
110
|
-
@if (showViewUnregisteredEntitiesButtonSignal()) {
|
|
111
|
-
<div class="dbx-pt3 text-center">
|
|
112
|
-
<dbx-icon-button icon="visibility" [text]="'View ' + unregisteredEntitiesCountSignal() + ' Hidden Entities'" (buttonClick)="clickShowUnregisteredEntities()"></dbx-icon-button>
|
|
113
|
-
</div>
|
|
114
|
-
}
|
|
115
|
-
</dbx-loading>
|
|
116
|
-
`,
|
|
117
|
-
imports: [MatAccordion, DbxLoadingComponent, DbxFirebaseModelEntitiesEntityComponent, DbxListEmptyContentComponent, DbxIconButtonComponent],
|
|
118
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
119
|
-
standalone: true
|
|
120
|
-
}]
|
|
121
|
-
}] });
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9tb2RlbC9lbnRpdGllcy9tb2RlbC5lbnRpdGllcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSw0QkFBNEIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdHLE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFjLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkksT0FBTyxFQUFFLGtCQUFrQixFQUFTLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFnQixtQkFBbUIsRUFBRSxnQ0FBZ0MsRUFBRSxjQUFjLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkwsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBa0N4RixNQUFNLE9BQU8saUNBQWlDO0lBQ25DLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxx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dCwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQsIE9uRGVzdHJveSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsRW50aXR5LCBEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aEtleUFuZFN0b3JlLCBEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aFN0b3JlIH0gZnJvbSAnLi9tb2RlbC5lbnRpdGllcyc7XG5pbXBvcnQgeyBNYXRBY2NvcmRpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xuaW1wb3J0IHsgRGJ4SWNvbkJ1dHRvbkNvbXBvbmVudCwgRGJ4TGlzdEVtcHR5Q29udGVudENvbXBvbmVudCwgRGJ4TG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWInO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzRW50aXR5Q29tcG9uZW50IH0gZnJvbSAnLi9tb2RlbC5lbnRpdGllcy5lbnRpdHkuY29tcG9uZW50JztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBjb21iaW5lTGF0ZXN0V2l0aCwgZGVmYXVsdElmRW1wdHksIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlclVuaXF1ZVZhbHVlcywgTWF5YmUsIHJldmVyc2VDb21wYXJlRm4sIHNlcGFyYXRlVmFsdWVzLCBzb3J0QnlOdW1iZXJGdW5jdGlvbiB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgYmVnaW5Mb2FkaW5nLCBmaWx0ZXJNYXliZUFycmF5LCBMb2FkaW5nU3RhdGUsIGxvYWRpbmdTdGF0ZUNvbnRleHQsIG1hcExvYWRpbmdTdGF0ZVZhbHVlV2l0aE9wZXJhdG9yLCBzd2l0Y2hNYXBNYXliZSwgdmFsdWVGcm9tRmluaXNoZWRMb2FkaW5nU3RhdGUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IERieEZpcmViYXNlTW9kZWxFbnRpdGllc1dpZGdldFNlcnZpY2UgfSBmcm9tICcuL21vZGVsLmVudGl0aWVzLndpZGdldC5zZXJ2aWNlJztcblxuaW50ZXJmYWNlIERieEZpcmViYXNlTW9kZWxFbnRpdGllc0NvbXBvbmVudEFsbEVudGl0aWVzIHtcbiAgcmVhZG9ubHkgZW50aXRpZXM6IERieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoS2V5QW5kU3RvcmVbXTtcbiAgcmVhZG9ubHkgcmVnaXN0ZXJlZEVudGl0aWVzOiBEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aEtleUFuZFN0b3JlW107XG4gIHJlYWRvbmx5IHVucmVnaXN0ZXJlZEVudGl0aWVzOiBEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aEtleUFuZFN0b3JlW107XG4gIHJlYWRvbmx5IG9ubHlTaG93UmVnaXN0ZXJlZFR5cGVzPzogTWF5YmU8Ym9vbGVhbj47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1maXJlYmFzZS1tb2RlbC1lbnRpdGllcycsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRieC1sb2FkaW5nIFtsaW5lYXJdPVwidHJ1ZVwiIFtjb250ZXh0XT1cImNvbnRleHRcIj5cbiAgICAgIDxtYXQtYWNjb3JkaW9uIGNsYXNzPVwiZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWFjY29yZGlvblwiIFttdWx0aV09XCJtdWx0aSgpXCI+XG4gICAgICAgIEBmb3IgKGVudGl0eSBvZiBlbnRpdGllc1dpdGhLZXlzU2lnbmFsKCk7IHRyYWNrIGVudGl0eS5rZXkpIHtcbiAgICAgICAgICA8ZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWVudGl0eSBbZW50aXR5XT1cImVudGl0eVwiPjwvZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWVudGl0eT5cbiAgICAgICAgfVxuICAgICAgPC9tYXQtYWNjb3JkaW9uPlxuICAgICAgQGlmIChoYXNOb0VudGl0aWVzU2lnbmFsKCkpIHtcbiAgICAgICAgPGRieC1saXN0LWVtcHR5LWNvbnRlbnQ+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2VtcHR5XVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kYngtbGlzdC1lbXB0eS1jb250ZW50PlxuICAgICAgfVxuICAgICAgQGlmIChzaG93Vmlld1VucmVnaXN0ZXJlZEVudGl0aWVzQnV0dG9uU2lnbmFsKCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImRieC1wdDMgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICA8ZGJ4LWljb24tYnV0dG9uIGljb249XCJ2aXNpYmlsaXR5XCIgW3RleHRdPVwiJ1ZpZXcgJyArIHVucmVnaXN0ZXJlZEVudGl0aWVzQ291bnRTaWduYWwoKSArICcgSGlkZGVuIEVudGl0aWVzJ1wiIChidXR0b25DbGljayk9XCJjbGlja1Nob3dVbnJlZ2lzdGVyZWRFbnRpdGllcygpXCI+PC9kYngtaWNvbi1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGJ4LWxvYWRpbmc+XG4gIGAsXG4gIGltcG9ydHM6IFtNYXRBY2NvcmRpb24sIERieExvYWRpbmdDb21wb25lbnQsIERieEZpcmViYXNlTW9kZWxFbnRpdGllc0VudGl0eUNvbXBvbmVudCwgRGJ4TGlzdEVtcHR5Q29udGVudENvbXBvbmVudCwgRGJ4SWNvbkJ1dHRvbkNvbXBvbmVudF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlTW9kZWxFbnRpdGllc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHJlYWRvbmx5IGVudGl0aWVzV2lkZ2V0U2VydmljZSA9IGluamVjdChEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNXaWRnZXRTZXJ2aWNlKTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgYWNjb3JkaW9uIHNob3VsZCBhbGxvdyBtdWx0aXBsZSBleHBhbmRlZCBwYW5lbHMuXG4gICAqL1xuICByZWFkb25seSBtdWx0aSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuXG4gIC8qKlxuICAgKiBJZiB0cnVlLCB3aWxsIG9ubHkgc2hvdyBlbnRpdGllcyB0aGF0IGhhdmUgYSByZWdpc3RlcmVkIHdpZGdldCBlbnRyeS5cbiAgICpcbiAgICogRGVmYXVsdHMgdG8gdHJ1ZS5cbiAgICovXG4gIHJlYWRvbmx5IG9ubHlTaG93UmVnaXN0ZXJlZFR5cGVzID0gaW5wdXQ8TWF5YmU8Ym9vbGVhbj4+KHRydWUpO1xuXG4gIC8qKlxuICAgKiBJZiB0cnVlLCB3aWxsIHNob3cgdW5yZWdpc3RlcmVkIGVudGl0aWVzLCBldmVuIGlmIG9ubHlTaG93UmVnaXN0ZXJlZFR5cGVzIGlzIHRydWUuXG4gICAqL1xuICByZWFkb25seSBzaG93VW5yZWdpc3RlcmVkVHlwZXNTaWduYWwgPSBzaWduYWw8TWF5YmU8Ym9vbGVhbj4+KHVuZGVmaW5lZCk7XG5cbiAgcmVhZG9ubHkgb25seVNob3dSZWdpc3RlcmVkVHlwZXNTaWduYWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgb25seVNob3dSZWdpc3RlcmVkVHlwZXMgPSB0aGlzLm9ubHlTaG93UmVnaXN0ZXJlZFR5cGVzKCk7XG4gICAgY29uc3Qgc2hvd1VucmVnaXN0ZXJlZFR5cGVzID0gdGhpcy5zaG93VW5yZWdpc3RlcmVkVHlwZXNTaWduYWwoKTtcblxuICAgIHJldHVybiAhc2hvd1VucmVnaXN0ZXJlZFR5cGVzICYmIG9ubHlTaG93UmVnaXN0ZXJlZFR5cGVzO1xuICB9KTtcblxuICByZWFkb25seSBvbmx5U2hvd1JlZ2lzdGVyZWRUeXBlcyQgPSB0b09ic2VydmFibGUodGhpcy5vbmx5U2hvd1JlZ2lzdGVyZWRUeXBlc1NpZ25hbCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgZW50aXRpZXMgPSBpbnB1dDxPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEYnhGaXJlYmFzZU1vZGVsRW50aXR5W10+Pj4oKTtcbiAgcmVhZG9ubHkgZW50aXRpZXMkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEYnhGaXJlYmFzZU1vZGVsRW50aXR5W10+PiA9IHRvT2JzZXJ2YWJsZSh0aGlzLmVudGl0aWVzKS5waXBlKFxuICAgIHN3aXRjaE1hcE1heWJlKCksXG4gICAgbWFwKCh4KSA9PiB4ID8/IGJlZ2luTG9hZGluZzxEYnhGaXJlYmFzZU1vZGVsRW50aXR5W10+KCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgYWxsRW50aXRpZXNTdGF0ZSQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPERieEZpcmViYXNlTW9kZWxFbnRpdGllc0NvbXBvbmVudEFsbEVudGl0aWVzPj4gPSB0aGlzLmVudGl0aWVzJC5waXBlKFxuICAgIG1hcExvYWRpbmdTdGF0ZVZhbHVlV2l0aE9wZXJhdG9yKFxuICAgICAgc3dpdGNoTWFwKChlbnRpdGllcykgPT4ge1xuICAgICAgICBjb25zdCBzb3J0UHJpb3JpdHlNYXAgPSB0aGlzLmVudGl0aWVzV2lkZ2V0U2VydmljZS5nZXRTb3J0UHJpb3JpdHlNYXAoKTtcbiAgICAgICAgY29uc3QgZW50aXRpZXNXaXRoU3RvcmUgPSAoZW50aXRpZXMgPz8gW10pLmZpbHRlcigoeCkgPT4gQm9vbGVhbih4LnN0b3JlKSkgYXMgRGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhTdG9yZVtdO1xuXG4gICAgICAgIGludGVyZmFjZSBEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aEtleUFuZFN0b3JlQW5kU29ydFByaW9yaXR5IGV4dGVuZHMgRGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhLZXlBbmRTdG9yZSB7XG4gICAgICAgICAgcmVhZG9ubHkgc29ydFByaW9yaXR5OiBudW1iZXI7XG4gICAgICAgICAgcmVhZG9ubHkgaXNSZWdpc3RlcmVkVHlwZTogYm9vbGVhbjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVudGl0aWVzV2l0aEtleXM6IE9ic2VydmFibGU8TWF5YmU8RGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhLZXlBbmRTdG9yZUFuZFNvcnRQcmlvcml0eT5bXT4gPSBjb21iaW5lTGF0ZXN0KFxuICAgICAgICAgIGVudGl0aWVzV2l0aFN0b3JlLm1hcCgoeCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc29ydFByaW9yaXR5TWFwRW50cnkgPSBzb3J0UHJpb3JpdHlNYXAuZ2V0KHgubW9kZWxJZGVudGl0eSk7XG4gICAgICAgICAgICBjb25zdCBpc1JlZ2lzdGVyZWRUeXBlID0gc29ydFByaW9yaXR5TWFwRW50cnkgIT0gbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IHNvcnRQcmlvcml0eSA9IHNvcnRQcmlvcml0eU1hcEVudHJ5ID8/IC0yO1xuXG4gICAgICAgICAgICBjb25zdCBvYnM6IE9ic2VydmFibGU8TWF5YmU8RGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhLZXlBbmRTdG9yZUFuZFNvcnRQcmlvcml0eT4+ID0geC5zdG9yZS5jdXJyZW50S2V5JC5waXBlKG1hcCgoa2V5KSA9PiAoa2V5ID8geyBrZXksIC4uLngsIHNvcnRQcmlvcml0eSwgaXNSZWdpc3RlcmVkVHlwZSB9IDogbnVsbCkpKTtcbiAgICAgICAgICAgIHJldHVybiBvYnM7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gZW50aXRpZXNXaXRoS2V5cy5waXBlKFxuICAgICAgICAgIGZpbHRlck1heWJlQXJyYXkoKSxcbiAgICAgICAgICBkZWZhdWx0SWZFbXB0eShbXSksXG4gICAgICAgICAgY29tYmluZUxhdGVzdFdpdGgodGhpcy5vbmx5U2hvd1JlZ2lzdGVyZWRUeXBlcyQpLFxuICAgICAgICAgIG1hcCgoW2VudGl0aWVzLCBvbmx5U2hvd1JlZ2lzdGVyZWRUeXBlc10pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkRW50aXRpZXMgPSBmaWx0ZXJVbmlxdWVWYWx1ZXMoZW50aXRpZXMsICh4KSA9PiB4LmtleSkuc29ydChyZXZlcnNlQ29tcGFyZUZuKHNvcnRCeU51bWJlckZ1bmN0aW9uKCh4KSA9PiB4LnNvcnRQcmlvcml0eSkpKTtcblxuICAgICAgICAgICAgY29uc3QgeyBpbmNsdWRlZDogcmVnaXN0ZXJlZEVudGl0aWVzLCBleGNsdWRlZDogdW5yZWdpc3RlcmVkRW50aXRpZXMgfSA9IHNlcGFyYXRlVmFsdWVzKGZpbHRlcmVkRW50aXRpZXMsICh4KSA9PiB4LmlzUmVnaXN0ZXJlZFR5cGUpO1xuXG4gICAgICAgICAgICBjb25zdCByZXN1bHQ6IERieEZpcmViYXNlTW9kZWxFbnRpdGllc0NvbXBvbmVudEFsbEVudGl0aWVzID0ge1xuICAgICAgICAgICAgICBlbnRpdGllczogb25seVNob3dSZWdpc3RlcmVkVHlwZXMgPyByZWdpc3RlcmVkRW50aXRpZXMgOiBmaWx0ZXJlZEVudGl0aWVzLFxuICAgICAgICAgICAgICBvbmx5U2hvd1JlZ2lzdGVyZWRUeXBlcyxcbiAgICAgICAgICAgICAgcmVnaXN0ZXJlZEVudGl0aWVzLFxuICAgICAgICAgICAgICB1bnJlZ2lzdGVyZWRFbnRpdGllc1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgYWxsRW50aXRpZXMkID0gdGhpcy5hbGxFbnRpdGllc1N0YXRlJC5waXBlKHZhbHVlRnJvbUZpbmlzaGVkTG9hZGluZ1N0YXRlKCksIHNoYXJlUmVwbGF5KDEpKTtcbiAgcmVhZG9ubHkgYWxsRW50aXRpZXNTaWduYWwgPSB0b1NpZ25hbCh0aGlzLmFsbEVudGl0aWVzJCwgeyBpbml0aWFsVmFsdWU6IHsgZW50aXRpZXM6IFtdLCByZWdpc3RlcmVkRW50aXRpZXM6IFtdLCB1bnJlZ2lzdGVyZWRFbnRpdGllczogW10sIG9ubHlTaG93UmVnaXN0ZXJlZFR5cGVzOiBmYWxzZSB9IH0pO1xuXG4gIHJlYWRvbmx5IGVudGl0aWVzV2l0aEtleXNTaWduYWwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmFsbEVudGl0aWVzU2lnbmFsKCk/LmVudGl0aWVzKTtcbiAgcmVhZG9ubHkgdW5yZWdpc3RlcmVkRW50aXRpZXNDb3VudFNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuYWxsRW50aXRpZXNTaWduYWwoKT8udW5yZWdpc3RlcmVkRW50aXRpZXM/Lmxlbmd0aCA/PyAwKTtcblxuICByZWFkb25seSBzaG93Vmlld1VucmVnaXN0ZXJlZEVudGl0aWVzQnV0dG9uU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHsgb25seVNob3dSZWdpc3RlcmVkVHlwZXMsIHVucmVnaXN0ZXJlZEVudGl0aWVzIH0gPSB0aGlzLmFsbEVudGl0aWVzU2lnbmFsKCkgPz8ge307XG4gICAgcmV0dXJuIG9ubHlTaG93UmVnaXN0ZXJlZFR5cGVzICYmIEJvb2xlYW4odW5yZWdpc3RlcmVkRW50aXRpZXM/Lmxlbmd0aCk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGhhc05vRW50aXRpZXNTaWduYWwgPSBjb21wdXRlZCgoKSA9PiAhdGhpcy5lbnRpdGllc1dpdGhLZXlzU2lnbmFsKCk/Lmxlbmd0aCk7XG5cbiAgcmVhZG9ubHkgY29udGV4dCA9IGxvYWRpbmdTdGF0ZUNvbnRleHQoeyBvYnM6IHRoaXMuYWxsRW50aXRpZXNTdGF0ZSQgfSk7XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jb250ZXh0LmRlc3Ryb3koKTtcbiAgfVxuXG4gIGNsaWNrU2hvd1VucmVnaXN0ZXJlZEVudGl0aWVzKCkge1xuICAgIHRoaXMuc2hvd1VucmVnaXN0ZXJlZFR5cGVzU2lnbmFsLnNldCh0cnVlKTtcbiAgfVxufVxuIl19
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';
|
|
2
|
-
import { isDbxFirebaseModelEntityWithStore } from './model.entities';
|
|
3
|
-
import { DbxInjectionComponent } from '@dereekb/dbx-core';
|
|
4
|
-
import { MatExpansionPanel, MatExpansionPanelHeader, MatExpansionPanelTitle, MatExpansionPanelDescription, MatExpansionPanelContent } from '@angular/material/expansion';
|
|
5
|
-
import { MatIcon } from '@angular/material/icon';
|
|
6
|
-
import { toObservable, toSignal } from '@angular/core/rxjs-interop';
|
|
7
|
-
import { combineLatest, distinctUntilChanged, map, shareReplay, switchMap } from 'rxjs';
|
|
8
|
-
import { filterMaybe, loadingStateContext } from '@dereekb/rxjs';
|
|
9
|
-
import { DbxFirebaseModelEntitiesWidgetService } from './model.entities.widget.service';
|
|
10
|
-
import { DbxFirebaseModelTypesService } from '../model.types.service';
|
|
11
|
-
import { AsyncPipe } from '@angular/common';
|
|
12
|
-
import { DbxLoadingComponent } from '@dereekb/dbx-web';
|
|
13
|
-
import { dbxFirebaseModelEntityWidgetInjectionConfigFactory } from './model.entities.widget';
|
|
14
|
-
import * as i0 from "@angular/core";
|
|
15
|
-
export class DbxFirebaseModelEntitiesEntityComponent {
|
|
16
|
-
widgetInjectionConfigFactory = dbxFirebaseModelEntityWidgetInjectionConfigFactory();
|
|
17
|
-
entitiesWidgetService = inject(DbxFirebaseModelEntitiesWidgetService);
|
|
18
|
-
dbxFirebaseModelTypesService = inject(DbxFirebaseModelTypesService);
|
|
19
|
-
entity = input.required();
|
|
20
|
-
entity$ = toObservable(this.entity);
|
|
21
|
-
currentEntityWithStore$ = this.entity$.pipe(map((x) => {
|
|
22
|
-
let result;
|
|
23
|
-
if (isDbxFirebaseModelEntityWithStore(x)) {
|
|
24
|
-
result = x;
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
result = null;
|
|
28
|
-
}
|
|
29
|
-
return result;
|
|
30
|
-
}), distinctUntilChanged(), shareReplay(1));
|
|
31
|
-
modelIdentity$ = this.entity$.pipe(map((x) => x.modelIdentity), distinctUntilChanged(), shareReplay(1));
|
|
32
|
-
store$ = this.entity$.pipe(map((x) => x.store), filterMaybe(), distinctUntilChanged(), shareReplay(1));
|
|
33
|
-
storeName$ = this.store$.pipe(switchMap((x) => x.storeName$), shareReplay(1));
|
|
34
|
-
displayName$ = combineLatest([this.storeName$, this.entity$]).pipe(map(([storeName, entity]) => entity.name ?? storeName), distinctUntilChanged(), shareReplay(1));
|
|
35
|
-
loadingState$ = this.store$.pipe(switchMap((x) => x.dataLoadingState$));
|
|
36
|
-
currentData$ = this.store$.pipe(switchMap((x) => x.currentData$), shareReplay(1));
|
|
37
|
-
currentWidgetEntry$ = this.modelIdentity$.pipe(map((modelIdentity) => this.entitiesWidgetService.getWidgetEntry(modelIdentity)), distinctUntilChanged(), shareReplay(1));
|
|
38
|
-
currentTypeInfo$ = this.modelIdentity$.pipe(switchMap((modelIdentity) => this.dbxFirebaseModelTypesService.currentInfoForType(modelIdentity.modelType)), shareReplay(1));
|
|
39
|
-
hasTypeInfo$ = this.currentTypeInfo$.pipe(map((x) => !!x), distinctUntilChanged(), shareReplay(1));
|
|
40
|
-
displayInfo$ = combineLatest([this.modelIdentity$, this.currentTypeInfo$, this.currentData$]).pipe(map(([modelIdentity, typeInfo, currentData]) => {
|
|
41
|
-
let result;
|
|
42
|
-
if (typeInfo) {
|
|
43
|
-
if (currentData) {
|
|
44
|
-
result = typeInfo.displayInfoFactory(currentData);
|
|
45
|
-
if (!result.title) {
|
|
46
|
-
result = { ...result, title: `No Name - <${modelIdentity.modelType}>` };
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
result = { icon: typeInfo.icon, title: `No Data - <${modelIdentity.modelType}>` };
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
result = { icon: 'warning', title: `No Type Info - <${modelIdentity.modelType}>` };
|
|
55
|
-
}
|
|
56
|
-
return result;
|
|
57
|
-
}), shareReplay(1));
|
|
58
|
-
widgetInjectionConfig$ = combineLatest([this.currentWidgetEntry$, this.currentEntityWithStore$]).pipe(map(([entry, entity]) => (entity ? this.widgetInjectionConfigFactory(entry, entity) : null)), shareReplay(1));
|
|
59
|
-
hasTypeInfoSignal = toSignal(this.hasTypeInfo$);
|
|
60
|
-
displayNameSignal = toSignal(this.displayName$);
|
|
61
|
-
displayInfoSignal = toSignal(this.displayInfo$);
|
|
62
|
-
modelIdentitySignal = toSignal(this.modelIdentity$);
|
|
63
|
-
modelTypeSignal = computed(() => this.modelIdentitySignal()?.modelType);
|
|
64
|
-
widgetInjectionConfigSignal = toSignal(this.widgetInjectionConfig$);
|
|
65
|
-
entityWidgetConfigSignal = computed(() => this.widgetInjectionConfigSignal()?.entityComponentConfig);
|
|
66
|
-
commonWidgetConfigSignal = computed(() => this.widgetInjectionConfigSignal()?.commonComponentConfig);
|
|
67
|
-
debugWidgetConfigSignal = computed(() => this.widgetInjectionConfigSignal()?.debugComponentConfig);
|
|
68
|
-
loadingContext = loadingStateContext({ obs: this.loadingState$ });
|
|
69
|
-
ngOnDestroy() {
|
|
70
|
-
this.loadingContext.destroy();
|
|
71
|
-
}
|
|
72
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelEntitiesEntityComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
73
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxFirebaseModelEntitiesEntityComponent, isStandalone: true, selector: "dbx-firebase-model-entities-entity", inputs: { entity: { classPropertyName: "entity", publicName: "entity", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<mat-expansion-panel>\n <mat-expansion-panel-header>\n <mat-panel-title>\n @if (displayInfoSignal(); as displayInfo) {\n <div class=\"dbx-list-two-line-item\">\n <div class=\"item-left\">\n <span class=\"dbx-pb2 dbx-flex-bar\">\n @if (displayInfo.icon) {\n <mat-icon class=\"dbx-button-spacer\">{{ displayInfo.icon }}</mat-icon>\n }\n <span>{{ displayInfo.title }}</span>\n </span>\n <span>\n <span class=\"dbx-hint dbx-small\">{{ modelTypeSignal() }}</span>\n @if (displayNameSignal(); as displayName) {\n <span class=\"dbx-small dbx-u dbx-pl2\">{{ displayName }}</span>\n }\n </span>\n </div>\n </div>\n }\n </mat-panel-title>\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <div class=\"dbx-firebase-model-entities-entity-panel-content\">\n <dbx-loading [context]=\"loadingContext\">\n @if (entityWidgetConfigSignal(); as config) {\n <div class=\"dbx-pb3 dbx-firebase-model-entities-entity-content\">\n <dbx-injection [config]=\"config\"></dbx-injection>\n </div>\n }\n @if (commonWidgetConfigSignal(); as config) {\n <div class=\"dbx-pb3 dbx-firebase-model-entities-common-content\">\n <dbx-injection [config]=\"config\"></dbx-injection>\n </div>\n }\n @if (debugWidgetConfigSignal(); as config) {\n <div class=\"dbx-pb3 dbx-firebase-model-entities-debug-content\">\n <dbx-injection [config]=\"config\"></dbx-injection>\n </div>\n }\n </dbx-loading>\n </div>\n </ng-template>\n</mat-expansion-panel>\n", dependencies: [{ kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }, { kind: "component", type: MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: MatExpansionPanelContent, selector: "ng-template[matExpansionPanelContent]" }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
74
|
-
}
|
|
75
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelEntitiesEntityComponent, decorators: [{
|
|
76
|
-
type: Component,
|
|
77
|
-
args: [{ selector: 'dbx-firebase-model-entities-entity', imports: [DbxInjectionComponent, DbxLoadingComponent, MatExpansionPanel, MatExpansionPanelHeader, MatExpansionPanelTitle, MatExpansionPanelDescription, MatExpansionPanelContent, MatIcon, AsyncPipe], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<mat-expansion-panel>\n <mat-expansion-panel-header>\n <mat-panel-title>\n @if (displayInfoSignal(); as displayInfo) {\n <div class=\"dbx-list-two-line-item\">\n <div class=\"item-left\">\n <span class=\"dbx-pb2 dbx-flex-bar\">\n @if (displayInfo.icon) {\n <mat-icon class=\"dbx-button-spacer\">{{ displayInfo.icon }}</mat-icon>\n }\n <span>{{ displayInfo.title }}</span>\n </span>\n <span>\n <span class=\"dbx-hint dbx-small\">{{ modelTypeSignal() }}</span>\n @if (displayNameSignal(); as displayName) {\n <span class=\"dbx-small dbx-u dbx-pl2\">{{ displayName }}</span>\n }\n </span>\n </div>\n </div>\n }\n </mat-panel-title>\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <div class=\"dbx-firebase-model-entities-entity-panel-content\">\n <dbx-loading [context]=\"loadingContext\">\n @if (entityWidgetConfigSignal(); as config) {\n <div class=\"dbx-pb3 dbx-firebase-model-entities-entity-content\">\n <dbx-injection [config]=\"config\"></dbx-injection>\n </div>\n }\n @if (commonWidgetConfigSignal(); as config) {\n <div class=\"dbx-pb3 dbx-firebase-model-entities-common-content\">\n <dbx-injection [config]=\"config\"></dbx-injection>\n </div>\n }\n @if (debugWidgetConfigSignal(); as config) {\n <div class=\"dbx-pb3 dbx-firebase-model-entities-debug-content\">\n <dbx-injection [config]=\"config\"></dbx-injection>\n </div>\n }\n </dbx-loading>\n </div>\n </ng-template>\n</mat-expansion-panel>\n" }]
|
|
78
|
-
}] });
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMuZW50aXR5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvbW9kZWwvZW50aXRpZXMvbW9kZWwuZW50aXRpZXMuZW50aXR5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvbW9kZWwvZW50aXRpZXMvbW9kZWwuZW50aXRpZXMuZW50aXR5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUEyRCxpQ0FBaUMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxzQkFBc0IsRUFBRSw0QkFBNEIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pLLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFjLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztB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LFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3JHLHdCQUF3QixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3JHLHVCQUF1QixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0lBRW5HLGNBQWMsR0FBRyxtQkFBbUIsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUUzRSxXQUFXO1FBQ1QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNoQyxDQUFDO3dHQXJIVSx1Q0FBdUM7NEZBQXZDLHVDQUF1QyxvT0N0QnBELHV2REE2Q0EsNENEM0JZLHFCQUFxQiwySEFBRSxtQkFBbUIsbUtBQUUsaUJBQWlCLHNMQUFFLHVCQUF1QixrSUFBRSxzQkFBc0IsNERBQWdDLHdCQUF3QixrRkFBRSxPQUFPOzs0RkFJOUssdUNBQXVDO2tCQVBuRCxTQUFTOytCQUNFLG9DQUFvQyxXQUVyQyxDQUFDLHFCQUFxQixFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLHNCQUFzQixFQUFFLDRCQUE0QixFQUFFLHdCQUF3QixFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsbUJBQ3BMLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIGlucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERieEZpcmViYXNlTW9kZWxFbnRpdHksIERieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoU3RvcmUsIGlzRGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhTdG9yZSB9IGZyb20gJy4vbW9kZWwuZW50aXRpZXMnO1xuaW1wb3J0IHsgRGJ4SW5qZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgTWF0RXhwYW5zaW9uUGFuZWwsIE1hdEV4cGFuc2lvblBhbmVsSGVhZGVyLCBNYXRFeHBhbnNpb25QYW5lbFRpdGxlLCBNYXRFeHBhbnNpb25QYW5lbERlc2NyaXB0aW9uLCBNYXRFeHBhbnNpb25QYW5lbENvbnRlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlck1heWJlLCBsb2FkaW5nU3RhdGVDb250ZXh0IH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNXaWRnZXRTZXJ2aWNlIH0gZnJvbSAnLi9tb2RlbC5lbnRpdGllcy53aWRnZXQuc2VydmljZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlLCB0eXBlIERieEZpcmViYXNlTW9kZWxEaXNwbGF5SW5mbywgdHlwZSBEYnhGaXJlYmFzZU1vZGVsVHlwZUluZm8gfSBmcm9tICcuLi9tb2RlbC50eXBlcy5zZXJ2aWNlJztcbmltcG9ydCB7IHR5cGUgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEYnhMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBkYnhGaXJlYmFzZU1vZGVsRW50aXR5V2lkZ2V0SW5qZWN0aW9uQ29uZmlnRmFjdG9yeSB9IGZyb20gJy4vbW9kZWwuZW50aXRpZXMud2lkZ2V0JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWVudGl0eScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RlbC5lbnRpdGllcy5lbnRpdHkuY29tcG9uZW50Lmh0bWwnLFxuICBpbXBvcnRzOiBbRGJ4SW5qZWN0aW9uQ29tcG9uZW50LCBEYnhMb2FkaW5nQ29tcG9uZW50LCBNYXRFeHBhbnNpb25QYW5lbCwgTWF0RXhwYW5zaW9uUGFuZWxIZWFkZXIsIE1hdEV4cGFuc2lvblBhbmVsVGl0bGUsIE1hdEV4cGFuc2lvblBhbmVsRGVzY3JpcHRpb24sIE1hdEV4cGFuc2lvblBhbmVsQ29udGVudCwgTWF0SWNvbiwgQXN5bmNQaXBlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzRW50aXR5Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgd2lkZ2V0SW5qZWN0aW9uQ29uZmlnRmFjdG9yeSA9IGRieEZpcmViYXNlTW9kZWxFbnRpdHlXaWRnZXRJbmplY3Rpb25Db25maWdGYWN0b3J5KCk7XG5cbiAgcmVhZG9ubHkgZW50aXRpZXNXaWRnZXRTZXJ2aWNlID0gaW5qZWN0KERieEZpcmViYXNlTW9kZWxFbnRpdGllc1dpZGdldFNlcnZpY2UpO1xuICByZWFkb25seSBkYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlID0gaW5qZWN0KERieEZpcmViYXNlTW9kZWxUeXBlc1NlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IGVudGl0eSA9IGlucHV0LnJlcXVpcmVkPERieEZpcmViYXNlTW9kZWxFbnRpdHk+KCk7XG5cbiAgcmVhZG9ubHkgZW50aXR5JCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmVudGl0eSk7XG5cbiAgcmVhZG9ubHkgY3VycmVudEVudGl0eVdpdGhTdG9yZSQgPSB0aGlzLmVudGl0eSQucGlwZShcbiAgICBtYXAoKHgpID0+IHtcbiAgICAgIGxldCByZXN1bHQ6IE1heWJlPERieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoU3RvcmU+O1xuXG4gICAgICBpZiAoaXNEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aFN0b3JlKHgpKSB7XG4gICAgICAgIHJlc3VsdCA9IHg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBtb2RlbElkZW50aXR5JCA9IHRoaXMuZW50aXR5JC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5tb2RlbElkZW50aXR5KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgc3RvcmUkID0gdGhpcy5lbnRpdHkkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LnN0b3JlKSxcbiAgICBmaWx0ZXJNYXliZSgpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBzdG9yZU5hbWUkID0gdGhpcy5zdG9yZSQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHgpID0+IHguc3RvcmVOYW1lJCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBkaXNwbGF5TmFtZSQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnN0b3JlTmFtZSQsIHRoaXMuZW50aXR5JF0pLnBpcGUoXG4gICAgbWFwKChbc3RvcmVOYW1lLCBlbnRpdHldKSA9PiBlbnRpdHkubmFtZSA/PyBzdG9yZU5hbWUpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBsb2FkaW5nU3RhdGUkID0gdGhpcy5zdG9yZSQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHguZGF0YUxvYWRpbmdTdGF0ZSQpKTtcbiAgcmVhZG9ubHkgY3VycmVudERhdGEkID0gdGhpcy5zdG9yZSQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHgpID0+IHguY3VycmVudERhdGEkKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRXaWRnZXRFbnRyeSQgPSB0aGlzLm1vZGVsSWRlbnRpdHkkLnBpcGUoXG4gICAgbWFwKChtb2RlbElkZW50aXR5KSA9PiB0aGlzLmVudGl0aWVzV2lkZ2V0U2VydmljZS5nZXRXaWRnZXRFbnRyeShtb2RlbElkZW50aXR5KSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRUeXBlSW5mbyQ6IE9ic2VydmFibGU8TWF5YmU8RGJ4RmlyZWJhc2VNb2RlbFR5cGVJbmZvPj4gPSB0aGlzLm1vZGVsSWRlbnRpdHkkLnBpcGUoXG4gICAgc3dpdGNoTWFwKChtb2RlbElkZW50aXR5KSA9PiB0aGlzLmRieEZpcmViYXNlTW9kZWxUeXBlc1NlcnZpY2UuY3VycmVudEluZm9Gb3JUeXBlKG1vZGVsSWRlbnRpdHkubW9kZWxUeXBlKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBoYXNUeXBlSW5mbyQgPSB0aGlzLmN1cnJlbnRUeXBlSW5mbyQucGlwZShcbiAgICBtYXAoKHgpID0+ICEheCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGRpc3BsYXlJbmZvJDogT2JzZXJ2YWJsZTxEYnhGaXJlYmFzZU1vZGVsRGlzcGxheUluZm8+ID0gY29tYmluZUxhdGVzdChbdGhpcy5tb2RlbElkZW50aXR5JCwgdGhpcy5jdXJyZW50VHlwZUluZm8kLCB0aGlzLmN1cnJlbnREYXRhJF0pLnBpcGUoXG4gICAgbWFwKChbbW9kZWxJZGVudGl0eSwgdHlwZUluZm8sIGN1cnJlbnREYXRhXSkgPT4ge1xuICAgICAgbGV0IHJlc3VsdDogRGJ4RmlyZWJhc2VNb2RlbERpc3BsYXlJbmZvO1xuXG4gICAgICBpZiAodHlwZUluZm8pIHtcbiAgICAgICAgaWYgKGN1cnJlbnREYXRhKSB7XG4gICAgICAgICAgcmVzdWx0ID0gdHlwZUluZm8uZGlzcGxheUluZm9GYWN0b3J5KGN1cnJlbnREYXRhKTtcblxuICAgICAgICAgIGlmICghcmVzdWx0LnRpdGxlKSB7XG4gICAgICAgICAgICByZXN1bHQgPSB7IC4uLnJlc3VsdCwgdGl0bGU6IGBObyBOYW1lIC0gPCR7bW9kZWxJZGVudGl0eS5tb2RlbFR5cGV9PmAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0ID0geyBpY29uOiB0eXBlSW5mby5pY29uLCB0aXRsZTogYE5vIERhdGEgLSA8JHttb2RlbElkZW50aXR5Lm1vZGVsVHlwZX0+YCB9O1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSB7IGljb246ICd3YXJuaW5nJywgdGl0bGU6IGBObyBUeXBlIEluZm8gLSA8JHttb2RlbElkZW50aXR5Lm1vZGVsVHlwZX0+YCB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgd2lkZ2V0SW5qZWN0aW9uQ29uZmlnJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuY3VycmVudFdpZGdldEVudHJ5JCwgdGhpcy5jdXJyZW50RW50aXR5V2l0aFN0b3JlJF0pLnBpcGUoXG4gICAgbWFwKChbZW50cnksIGVudGl0eV0pID0+IChlbnRpdHkgPyB0aGlzLndpZGdldEluamVjdGlvbkNvbmZpZ0ZhY3RvcnkoZW50cnksIGVudGl0eSkgOiBudWxsKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBoYXNUeXBlSW5mb1NpZ25hbCA9IHRvU2lnbmFsKHRoaXMuaGFzVHlwZUluZm8kKTtcbiAgcmVhZG9ubHkgZGlzcGxheU5hbWVTaWduYWwgPSB0b1NpZ25hbCh0aGlzLmRpc3BsYXlOYW1lJCk7XG4gIHJlYWRvbmx5IGRpc3BsYXlJbmZvU2lnbmFsID0gdG9TaWduYWwodGhpcy5kaXNwbGF5SW5mbyQpO1xuICByZWFkb25seSBtb2RlbElkZW50aXR5U2lnbmFsID0gdG9TaWduYWwodGhpcy5tb2RlbElkZW50aXR5JCk7XG4gIHJlYWRvbmx5IG1vZGVsVHlwZVNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMubW9kZWxJZGVudGl0eVNpZ25hbCgpPy5tb2RlbFR5cGUpO1xuXG4gIHJlYWRvbmx5IHdpZGdldEluamVjdGlvbkNvbmZpZ1NpZ25hbCA9IHRvU2lnbmFsKHRoaXMud2lkZ2V0SW5qZWN0aW9uQ29uZmlnJCk7XG5cbiAgcmVhZG9ubHkgZW50aXR5V2lkZ2V0Q29uZmlnU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy53aWRnZXRJbmplY3Rpb25Db25maWdTaWduYWwoKT8uZW50aXR5Q29tcG9uZW50Q29uZmlnKTtcbiAgcmVhZG9ubHkgY29tbW9uV2lkZ2V0Q29uZmlnU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy53aWRnZXRJbmplY3Rpb25Db25maWdTaWduYWwoKT8uY29tbW9uQ29tcG9uZW50Q29uZmlnKTtcbiAgcmVhZG9ubHkgZGVidWdXaWRnZXRDb25maWdTaWduYWwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLndpZGdldEluamVjdGlvbkNvbmZpZ1NpZ25hbCgpPy5kZWJ1Z0NvbXBvbmVudENvbmZpZyk7XG5cbiAgcmVhZG9ubHkgbG9hZGluZ0NvbnRleHQgPSBsb2FkaW5nU3RhdGVDb250ZXh0KHsgb2JzOiB0aGlzLmxvYWRpbmdTdGF0ZSQgfSk7XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkaW5nQ29udGV4dC5kZXN0cm95KCk7XG4gIH1cbn1cbiIsIjxtYXQtZXhwYW5zaW9uLXBhbmVsPlxuICA8bWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG4gICAgPG1hdC1wYW5lbC10aXRsZT5cbiAgICAgIEBpZiAoZGlzcGxheUluZm9TaWduYWwoKTsgYXMgZGlzcGxheUluZm8pIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImRieC1saXN0LXR3by1saW5lLWl0ZW1cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1sZWZ0XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRieC1wYjIgZGJ4LWZsZXgtYmFyXCI+XG4gICAgICAgICAgICAgIEBpZiAoZGlzcGxheUluZm8uaWNvbikge1xuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImRieC1idXR0b24tc3BhY2VyXCI+e3sgZGlzcGxheUluZm8uaWNvbiB9fTwvbWF0LWljb24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPHNwYW4+e3sgZGlzcGxheUluZm8udGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkYngtaGludCBkYngtc21hbGxcIj57eyBtb2RlbFR5cGVTaWduYWwoKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgQGlmIChkaXNwbGF5TmFtZVNpZ25hbCgpOyBhcyBkaXNwbGF5TmFtZSkge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGJ4LXNtYWxsIGRieC11IGRieC1wbDJcIj57eyBkaXNwbGF5TmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L21hdC1wYW5lbC10aXRsZT5cbiAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cbiAgPG5nLXRlbXBsYXRlIG1hdEV4cGFuc2lvblBhbmVsQ29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWVudGl0eS1wYW5lbC1jb250ZW50XCI+XG4gICAgICA8ZGJ4LWxvYWRpbmcgW2NvbnRleHRdPVwibG9hZGluZ0NvbnRleHRcIj5cbiAgICAgICAgQGlmIChlbnRpdHlXaWRnZXRDb25maWdTaWduYWwoKTsgYXMgY29uZmlnKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRieC1wYjMgZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWVudGl0eS1jb250ZW50XCI+XG4gICAgICAgICAgICA8ZGJ4LWluamVjdGlvbiBbY29uZmlnXT1cImNvbmZpZ1wiPjwvZGJ4LWluamVjdGlvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGNvbW1vbldpZGdldENvbmZpZ1NpZ25hbCgpOyBhcyBjb25maWcpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGJ4LXBiMyBkYngtZmlyZWJhc2UtbW9kZWwtZW50aXRpZXMtY29tbW9uLWNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxkYngtaW5qZWN0aW9uIFtjb25maWddPVwiY29uZmlnXCI+PC9kYngtaW5qZWN0aW9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoZGVidWdXaWRnZXRDb25maWdTaWduYWwoKTsgYXMgY29uZmlnKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRieC1wYjMgZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWRlYnVnLWNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxkYngtaW5qZWN0aW9uIFtjb25maWddPVwiY29uZmlnXCI+PC9kYngtaW5qZWN0aW9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2RieC1sb2FkaW5nPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9tYXQtZXhwYW5zaW9uLXBhbmVsPlxuIl19
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Provides a source of entities.
|
|
3
|
-
*/
|
|
4
|
-
export class DbxFirebaseModelEntitiesSource {
|
|
5
|
-
}
|
|
6
|
-
/**
|
|
7
|
-
* Returns true if the input entity has a defined store.
|
|
8
|
-
*
|
|
9
|
-
* @param entity
|
|
10
|
-
* @returns
|
|
11
|
-
*/
|
|
12
|
-
export function isDbxFirebaseModelEntityWithStore(entity) {
|
|
13
|
-
return entity.modelIdentity != null && entity.store != null;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL21vZGVsL2VudGl0aWVzL21vZGVsLmVudGl0aWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BOztHQUVHO0FBQ0gsTUFBTSxPQUFnQiw4QkFBOEI7Q0FLbkQ7QUE2QkQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsaUNBQWlDLENBQWlFLE1BQThCO0lBQzlJLE9BQU8sTUFBTSxDQUFDLGFBQWEsSUFBSSxJQUFJLElBQUksTUFBTSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUM7QUFDOUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRmlyZXN0b3JlRG9jdW1lbnQsIHR5cGUgRmlyZXN0b3JlTW9kZWxJZGVudGl0eSB9IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcbmltcG9ydCB7IHR5cGUgTWF5YmUsIHR5cGUgTW9kZWxLZXkgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IHR5cGUgRGJ4RmlyZWJhc2VEb2N1bWVudFJlYWRPbmx5U3RvcmUgfSBmcm9tICcuLi8uLi9zdG9yZS9zdG9yZSc7XG5pbXBvcnQgeyB0eXBlIExvYWRpbmdTdGF0ZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgdHlwZSBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogUHJvdmlkZXMgYSBzb3VyY2Ugb2YgZW50aXRpZXMuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNTb3VyY2Uge1xuICAvKipcbiAgICogT2JzZXJ2YWJsZSBvZiBhIExvYWRpbmdTdGF0ZSBvZiBlbnRpdHkgdmFsdWVzLlxuICAgKi9cbiAgYWJzdHJhY3QgcmVhZG9ubHkgZW50aXRpZXMkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEYnhGaXJlYmFzZU1vZGVsRW50aXR5W10+Pjtcbn1cblxuLyoqXG4gKiBBIG1vZGVsIGVudGl0eS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZU1vZGVsRW50aXR5IHtcbiAgLyoqXG4gICAqIE1vZGVsIGlkZW50aXR5IGZvciB0aGUgZW50aXR5LlxuICAgKlxuICAgKiBVc2VkIGZvciBzb3J0aW5nL2dyb3VwaW5nIGJ5IGV4cGVjdGVkIGVudGl0eSB0eXBlLlxuICAgKi9cbiAgcmVhZG9ubHkgbW9kZWxJZGVudGl0eTogRmlyZXN0b3JlTW9kZWxJZGVudGl0eTtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIG5hbWUgZm9yXG4gICAqL1xuICByZWFkb25seSBuYW1lPzogTWF5YmU8c3RyaW5nPjtcbiAgLyoqXG4gICAqIEFuIGFzc29jaWF0ZWQgc3RvcmUgZm9yIHRoZSBkb2N1bWVudCwgaWYgaXQgaXMgYXZhaWxhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RvcmU/OiBNYXliZTxEYnhGaXJlYmFzZURvY3VtZW50UmVhZE9ubHlTdG9yZTxhbnksIGFueT4+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoU3RvcmU8VCA9IGFueSwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4+IGV4dGVuZHMgRGJ4RmlyZWJhc2VNb2RlbEVudGl0eSB7XG4gIC8qKlxuICAgKiBBbiBhc3NvY2lhdGVkIHN0b3JlIGZvciB0aGUgZG9jdW1lbnQsIGlmIGl0IGlzIGF2YWlsYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IHN0b3JlOiBEYnhGaXJlYmFzZURvY3VtZW50UmVhZE9ubHlTdG9yZTxULCBEPjtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIGlucHV0IGVudGl0eSBoYXMgYSBkZWZpbmVkIHN0b3JlLlxuICpcbiAqIEBwYXJhbSBlbnRpdHlcbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0RieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoU3RvcmU8VCA9IGFueSwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4+KGVudGl0eTogRGJ4RmlyZWJhc2VNb2RlbEVudGl0eSk6IGVudGl0eSBpcyBEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aFN0b3JlPFQsIEQ+IHtcbiAgcmV0dXJuIGVudGl0eS5tb2RlbElkZW50aXR5ICE9IG51bGwgJiYgZW50aXR5LnN0b3JlICE9IG51bGw7XG59XG5cbi8qKlxuICogQW4gZW50aXR5IHRoYXQgaGFzIGEga2V5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoS2V5IGV4dGVuZHMgRGJ4RmlyZWJhc2VNb2RlbEVudGl0eSB7XG4gIC8qKlxuICAgKiBUaGUga2V5IG9mIHRoZSB0YXJnZXQgZG9jdW1lbnQuXG4gICAqL1xuICByZWFkb25seSBrZXk6IE1vZGVsS2V5O1xufVxuXG4vKipcbiAqIEFuIGVudGl0eSB0aGF0IGhhcyBhIGtleSBhbmQgYSBzdG9yZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aEtleUFuZFN0b3JlPFQgPSBhbnksIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+PiBleHRlbmRzIE9taXQ8RGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhLZXksICdzdG9yZSc+LCBEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aFN0b3JlPFQsIEQ+IHt9XG4iXX0=
|
package/esm2022/lib/model/modules/model/entities/model.entities.popover.button.component.mjs
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, computed, ElementRef, inject, input, viewChild } from '@angular/core';
|
|
2
|
-
import { AbstractPopoverRefDirective, DbxButtonComponent, DbxPopoverService } from '@dereekb/dbx-web';
|
|
3
|
-
import { DbxFirebaseModelEntitiesPopoverComponent } from './model.entities.popover.component';
|
|
4
|
-
import { DbxFirebaseModelEntitiesSource } from './model.entities';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class DbxFirebaseModelEntitiesPopoverButtonComponent extends AbstractPopoverRefDirective {
|
|
7
|
-
_dbxPopoverService = inject(DbxPopoverService);
|
|
8
|
-
entitiesSource = inject(DbxFirebaseModelEntitiesSource);
|
|
9
|
-
buttonElement = viewChild.required('button', { read: ElementRef });
|
|
10
|
-
config = input();
|
|
11
|
-
buttonDisplaySignal = computed(() => {
|
|
12
|
-
const config = this.config();
|
|
13
|
-
return config?.buttonDisplay ?? { icon: config?.icon ?? 'data_object' };
|
|
14
|
-
});
|
|
15
|
-
buttonStyleSignal = computed(() => this.config()?.buttonStyle);
|
|
16
|
-
_makePopoverRef(origin) {
|
|
17
|
-
if (!origin) {
|
|
18
|
-
throw new Error('Missing origin.');
|
|
19
|
-
}
|
|
20
|
-
const config = this.config();
|
|
21
|
-
const entities$ = this.entitiesSource.entities$;
|
|
22
|
-
return DbxFirebaseModelEntitiesPopoverComponent.openPopover(this._dbxPopoverService, {
|
|
23
|
-
origin,
|
|
24
|
-
...config,
|
|
25
|
-
entities$
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
showEntitiesPopover() {
|
|
29
|
-
const origin = this.buttonElement();
|
|
30
|
-
this.showPopover(origin);
|
|
31
|
-
}
|
|
32
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelEntitiesPopoverButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
33
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.13", type: DbxFirebaseModelEntitiesPopoverButtonComponent, isStandalone: true, selector: "dbx-firebase-model-entities-popover-button", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["button"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
|
|
34
|
-
<dbx-button #button (buttonClick)="showEntitiesPopover()" [buttonStyle]="buttonStyleSignal()" [buttonDisplay]="buttonDisplaySignal()"></dbx-button>
|
|
35
|
-
`, isInline: true, dependencies: [{ kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab", "mode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
36
|
-
}
|
|
37
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelEntitiesPopoverButtonComponent, decorators: [{
|
|
38
|
-
type: Component,
|
|
39
|
-
args: [{
|
|
40
|
-
selector: 'dbx-firebase-model-entities-popover-button',
|
|
41
|
-
template: `
|
|
42
|
-
<dbx-button #button (buttonClick)="showEntitiesPopover()" [buttonStyle]="buttonStyleSignal()" [buttonDisplay]="buttonDisplaySignal()"></dbx-button>
|
|
43
|
-
`,
|
|
44
|
-
standalone: true,
|
|
45
|
-
imports: [DbxButtonComponent],
|
|
46
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
47
|
-
}]
|
|
48
|
-
}] });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMucG9wb3Zlci5idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9tb2RlbC9lbnRpdGllcy9tb2RlbC5lbnRpdGllcy5wb3BvdmVyLmJ1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxrQkFBa0IsRUFBa0IsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV0SCxPQUFPLEVBQUUsd0NBQXdDLEVBQXNELE1BQU0sb0NBQW9DLENBQUM7QUFFbEosT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBdUJsRSxNQUFNLE9BQU8sOENBQStDLFNBQVEsMkJBQTZDO0lBQzlGLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRXZELGNBQWMsR0FBRyxNQUFNLENBQUMsOEJBQThCLENBQUMsQ0FBQztJQUV4RCxhQUFhLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBcUIsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDdkYsTUFBTSxHQUFHLEtBQUssRUFBK0MsQ0FBQztJQUU5RCxtQkFBbUIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQzNDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM3QixPQUFPLE1BQU0sRUFBRSxhQUFhLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUMxRSxDQUFDLENBQUMsQ0FBQztJQUVNLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFFckQsZUFBZSxDQUFDLE1BQTBCO1FBQzNELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNyQyxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzdCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO1FBRWhELE9BQU8sd0NBQXdDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUNuRixNQUFNO1lBQ04sR0FBRyxNQUFNO1lBQ1QsU0FBUztTQUNWLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0IsQ0FBQzt3R0FqQ1UsOENBQThDOzRGQUE5Qyw4Q0FBOEMsaVVBS3lCLFVBQVUsb0VBWmxGOztHQUVULDREQUVTLGtCQUFrQjs7NEZBR2pCLDhDQUE4QztrQkFUMUQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNENBQTRDO29CQUN0RCxRQUFRLEVBQUU7O0dBRVQ7b0JBQ0QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixDQUFDO29CQUM3QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgRWxlbWVudFJlZiwgaW5qZWN0LCBpbnB1dCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdFBvcG92ZXJSZWZEaXJlY3RpdmUsIERieEJ1dHRvbkNvbXBvbmVudCwgRGJ4QnV0dG9uU3R5bGUsIERieFBvcG92ZXJTZXJ2aWNlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBOZ1BvcG92ZXJSZWYgfSBmcm9tICduZy1vdmVybGF5LWNvbnRhaW5lcic7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNQb3BvdmVyQ29tcG9uZW50LCBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNQb3BvdmVyQ29uZmlnV2l0aG91dE9yaWdpbiB9IGZyb20gJy4vbW9kZWwuZW50aXRpZXMucG9wb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IERieEZpcmViYXNlTW9kZWxFbnRpdGllc1NvdXJjZSB9IGZyb20gJy4vbW9kZWwuZW50aXRpZXMnO1xuaW1wb3J0IHsgRGJ4QnV0dG9uRGlzcGxheSB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNQb3BvdmVyQnV0dG9uQ29uZmlnIGV4dGVuZHMgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzUG9wb3ZlckNvbmZpZ1dpdGhvdXRPcmlnaW4ge1xuICAvKipcbiAgICogVGhlIGRpc3BsYXkgY29uZmlndXJhdGlvbiBmb3IgdGhlIGJ1dHRvbi5cbiAgICovXG4gIHJlYWRvbmx5IGJ1dHRvbkRpc3BsYXk/OiBNYXliZTxEYnhCdXR0b25EaXNwbGF5PjtcbiAgLyoqXG4gICAqIFRoZSBzdHlsZSBjb25maWd1cmF0aW9uIGZvciB0aGUgYnV0dG9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYnV0dG9uU3R5bGU/OiBNYXliZTxEYnhCdXR0b25TdHlsZT47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1maXJlYmFzZS1tb2RlbC1lbnRpdGllcy1wb3BvdmVyLWJ1dHRvbicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRieC1idXR0b24gI2J1dHRvbiAoYnV0dG9uQ2xpY2spPVwic2hvd0VudGl0aWVzUG9wb3ZlcigpXCIgW2J1dHRvblN0eWxlXT1cImJ1dHRvblN0eWxlU2lnbmFsKClcIiBbYnV0dG9uRGlzcGxheV09XCJidXR0b25EaXNwbGF5U2lnbmFsKClcIj48L2RieC1idXR0b24+XG4gIGAsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtEYnhCdXR0b25Db21wb25lbnRdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNQb3BvdmVyQnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RQb3BvdmVyUmVmRGlyZWN0aXZlPHVua25vd24sIHVua25vd24+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGJ4UG9wb3ZlclNlcnZpY2UgPSBpbmplY3QoRGJ4UG9wb3ZlclNlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IGVudGl0aWVzU291cmNlID0gaW5qZWN0KERieEZpcmViYXNlTW9kZWxFbnRpdGllc1NvdXJjZSk7XG5cbiAgcmVhZG9ubHkgYnV0dG9uRWxlbWVudCA9IHZpZXdDaGlsZC5yZXF1aXJlZDxzdHJpbmcsIEVsZW1lbnRSZWY+KCdidXR0b24nLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSk7XG4gIHJlYWRvbmx5IGNvbmZpZyA9IGlucHV0PERieEZpcmViYXNlTW9kZWxFbnRpdGllc1BvcG92ZXJCdXR0b25Db25maWc+KCk7XG5cbiAgcmVhZG9ubHkgYnV0dG9uRGlzcGxheVNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZygpO1xuICAgIHJldHVybiBjb25maWc/LmJ1dHRvbkRpc3BsYXkgPz8geyBpY29uOiBjb25maWc/Lmljb24gPz8gJ2RhdGFfb2JqZWN0JyB9O1xuICB9KTtcblxuICByZWFkb25seSBidXR0b25TdHlsZVNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnKCk/LmJ1dHRvblN0eWxlKTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgX21ha2VQb3BvdmVyUmVmKG9yaWdpbj86IE1heWJlPEVsZW1lbnRSZWY+KTogTmdQb3BvdmVyUmVmPHVua25vd24sIHVua25vd24+IHtcbiAgICBpZiAoIW9yaWdpbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIG9yaWdpbi4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZygpO1xuICAgIGNvbnN0IGVudGl0aWVzJCA9IHRoaXMuZW50aXRpZXNTb3VyY2UuZW50aXRpZXMkO1xuXG4gICAgcmV0dXJuIERieEZpcmViYXNlTW9kZWxFbnRpdGllc1BvcG92ZXJDb21wb25lbnQub3BlblBvcG92ZXIodGhpcy5fZGJ4UG9wb3ZlclNlcnZpY2UsIHtcbiAgICAgIG9yaWdpbixcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIGVudGl0aWVzJFxuICAgIH0pO1xuICB9XG5cbiAgc2hvd0VudGl0aWVzUG9wb3ZlcigpOiB2b2lkIHtcbiAgICBjb25zdCBvcmlnaW4gPSB0aGlzLmJ1dHRvbkVsZW1lbnQoKTtcbiAgICB0aGlzLnNob3dQb3BvdmVyKG9yaWdpbik7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
-
import { AbstractPopoverDirective, DbxListEmptyContentComponent, DbxPopoverContentComponent, DbxPopoverHeaderComponent, DbxPopoverScrollContentDirective } from '@dereekb/dbx-web';
|
|
3
|
-
import { DbxFirebaseModelEntitiesComponent } from './model.entities.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export const DEFAULT_DBX_FIREBASE_MODEL_ENTITIES_COMPONENT_POPOVER_KEY = 'entities';
|
|
6
|
-
export class DbxFirebaseModelEntitiesPopoverComponent extends AbstractPopoverDirective {
|
|
7
|
-
entities$ = this.popover.data?.entities$;
|
|
8
|
-
static openPopover(popupService, config, popoverKey) {
|
|
9
|
-
const { origin, header, icon, emptyText, entities$, onlyShowRegisteredTypes, popoverSizingConfig, injector } = config;
|
|
10
|
-
return popupService.open({
|
|
11
|
-
height: '600px',
|
|
12
|
-
width: '800px',
|
|
13
|
-
injector: injector ?? undefined,
|
|
14
|
-
isResizable: true,
|
|
15
|
-
...popoverSizingConfig,
|
|
16
|
-
key: popoverKey ?? DEFAULT_DBX_FIREBASE_MODEL_ENTITIES_COMPONENT_POPOVER_KEY,
|
|
17
|
-
origin,
|
|
18
|
-
componentClass: DbxFirebaseModelEntitiesPopoverComponent,
|
|
19
|
-
data: {
|
|
20
|
-
header,
|
|
21
|
-
icon,
|
|
22
|
-
emptyText,
|
|
23
|
-
entities$,
|
|
24
|
-
onlyShowRegisteredTypes
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
get config() {
|
|
29
|
-
return this.popover.data;
|
|
30
|
-
}
|
|
31
|
-
icon = this.config.icon ?? 'data_object';
|
|
32
|
-
header = this.config.header ?? 'Entities';
|
|
33
|
-
emptyText = this.config.emptyText ?? 'No entities found in current context.';
|
|
34
|
-
onlyShowRegisteredTypes = this.config.onlyShowRegisteredTypes;
|
|
35
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelEntitiesPopoverComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
36
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DbxFirebaseModelEntitiesPopoverComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\"></dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-firebase-model-entities [entities]=\"entities$\" [onlyShowRegisteredTypes]=\"onlyShowRegisteredTypes\">\n <p empty>{{ emptyText }}</p>\n </dbx-firebase-model-entities>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n", dependencies: [{ kind: "component", type: DbxPopoverContentComponent, selector: "dbx-popover-content" }, { kind: "component", type: DbxPopoverHeaderComponent, selector: "dbx-popover-header", inputs: ["header", "icon"] }, { kind: "directive", type: DbxPopoverScrollContentDirective, selector: "dbx-popover-scroll-content,[dbxPopoverScrollContent],.dbx-popover-scroll-content" }, { kind: "component", type: DbxFirebaseModelEntitiesComponent, selector: "dbx-firebase-model-entities", inputs: ["multi", "onlyShowRegisteredTypes", "entities"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
37
|
-
}
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelEntitiesPopoverComponent, decorators: [{
|
|
39
|
-
type: Component,
|
|
40
|
-
args: [{ imports: [DbxPopoverContentComponent, DbxPopoverHeaderComponent, DbxPopoverScrollContentDirective, DbxFirebaseModelEntitiesComponent, DbxListEmptyContentComponent], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\"></dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-firebase-model-entities [entities]=\"entities$\" [onlyShowRegisteredTypes]=\"onlyShowRegisteredTypes\">\n <p empty>{{ emptyText }}</p>\n </dbx-firebase-model-entities>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n" }]
|
|
41
|
-
}] });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMucG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL21vZGVsL2VudGl0aWVzL21vZGVsLmVudGl0aWVzLnBvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9tb2RlbC9lbnRpdGllcy9tb2RlbC5lbnRpdGllcy5wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQXdCLE1BQU0sZUFBZSxDQUFDO0FBRXpGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSw0QkFBNEIsRUFBMEIsMEJBQTBCLEVBQUUseUJBQXlCLEVBQWlCLGdDQUFnQyxFQUFxQixNQUFNLGtCQUFrQixDQUFDO0FBQzdPLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQXNEL0UsTUFBTSxDQUFDLE1BQU0seURBQXlELEdBQUcsVUFBVSxDQUFDO0FBUXBGLE1BQU0sT0FBTyx3Q0FBeUMsU0FBUSx3QkFBd0U7SUFDM0gsU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQztJQUVsRCxNQUFNLENBQUMsV0FBVyxDQUFDLFlBQStCLEVBQUUsTUFBNkMsRUFBRSxVQUEwQjtRQUMzSCxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFFdEgsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDO1lBQ3ZCLE1BQU0sRUFBRSxPQUFPO1lBQ2YsS0FBSyxFQUFFLE9BQU87WUFDZCxRQUFRLEVBQUUsUUFBUSxJQUFJLFNBQVM7WUFDL0IsV0FBVyxFQUFFLElBQUk7WUFDakIsR0FBRyxtQkFBbUI7WUFDdEIsR0FBRyxFQUFFLFVBQVUsSUFBSSx5REFBeUQ7WUFDNUUsTUFBTTtZQUNOLGNBQWMsRUFBRSx3Q0FBd0M7WUFDeEQsSUFBSSxFQUFFO2dCQUNKLE1BQU07Z0JBQ04sSUFBSTtnQkFDSixTQUFTO2dCQUNULFNBQVM7Z0JBQ1QsdUJBQXVCO2FBQ3hCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUE2QyxDQUFDO0lBQ3BFLENBQUM7SUFFUSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksYUFBYSxDQUFDO0lBQ3pDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxVQUFVLENBQUM7SUFDMUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLHVDQUF1QyxDQUFDO0lBQzdFLHVCQUF1QixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsdUJBQXVCLENBQUM7d0dBaEM1RCx3Q0FBd0M7NEZBQXhDLHdDQUF3QywrRkNqRXJELG9hQVVBLDRDRG1EWSwwQkFBMEIsZ0VBQUUseUJBQXlCLDJGQUFFLGdDQUFnQyw2SEFBRSxpQ0FBaUM7OzRGQUl6SCx3Q0FBd0M7a0JBTnBELFNBQVM7OEJBRUMsQ0FBQywwQkFBMEIsRUFBRSx5QkFBeUIsRUFBRSxnQ0FBZ0MsRUFBRSxpQ0FBaUMsRUFBRSw0QkFBNEIsQ0FBQyxtQkFDbEosdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nUG9wb3ZlclJlZiB9IGZyb20gJ25nLW92ZXJsYXktY29udGFpbmVyJztcbmltcG9ydCB7IEFic3RyYWN0UG9wb3ZlckRpcmVjdGl2ZSwgRGJ4TGlzdEVtcHR5Q29udGVudENvbXBvbmVudCwgRGJ4UG9wb3ZlckNvbmZpZ1NpemluZywgRGJ4UG9wb3ZlckNvbnRlbnRDb21wb25lbnQsIERieFBvcG92ZXJIZWFkZXJDb21wb25lbnQsIERieFBvcG92ZXJLZXksIERieFBvcG92ZXJTY3JvbGxDb250ZW50RGlyZWN0aXZlLCBEYnhQb3BvdmVyU2VydmljZSB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWInO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzQ29tcG9uZW50IH0gZnJvbSAnLi9tb2RlbC5lbnRpdGllcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTG9hZGluZ1N0YXRlIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsRW50aXR5IH0gZnJvbSAnLi9tb2RlbC5lbnRpdGllcyc7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieEZpcmViYXNlTW9kZWxFbnRpdGllc1BvcG92ZXJDb25maWcge1xuICAvKipcbiAgICogQ3VzdG9tIGljb25cbiAgICpcbiAgICogRGVmYXVsdHMgdG8gXCJoaXN0b3J5XCJcbiAgICovXG4gIHJlYWRvbmx5IGljb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBoZWFkZXIgdGV4dFxuICAgKlxuICAgKiBEZWZhdWx0cyB0byBcIkVudGl0aWVzXCJcbiAgICovXG4gIHJlYWRvbmx5IGhlYWRlcj86IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIGVtcHR5IHRleHQgd2hlbiBubyBlbnRpdGllcyBleGlzdC5cbiAgICovXG4gIHJlYWRvbmx5IGVtcHR5VGV4dD86IHN0cmluZztcblxuICAvKipcbiAgICogT3JpZ2luIHRvIGFkZCB0aGUgcG9wb3ZlciB0by5cbiAgICovXG4gIHJlYWRvbmx5IG9yaWdpbjogRWxlbWVudFJlZjtcblxuICAvKipcbiAgICogT2JzZXJ2YWJsZSBvZiBlbnRpdGllcyB0byBkaXNwbGF5LlxuICAgKi9cbiAgcmVhZG9ubHkgZW50aXRpZXMkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEYnhGaXJlYmFzZU1vZGVsRW50aXR5W10+PjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gb25seSBzaG93IGVudGl0aWVzIHRoYXQgaGF2ZSBhIHJlZ2lzdGVyZWQgd2lkZ2V0IGVudHJ5LlxuICAgKi9cbiAgcmVhZG9ubHkgb25seVNob3dSZWdpc3RlcmVkVHlwZXM/OiBNYXliZTxib29sZWFuPjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBwb3BvdmVyIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBwb3BvdmVyU2l6aW5nQ29uZmlnPzogTWF5YmU8RGJ4UG9wb3ZlckNvbmZpZ1NpemluZz47XG5cbiAgLyoqXG4gICAqIEluamVjdG9yIHRvIHVzZSBmb3IgdGhlIHBvcG92ZXIuXG4gICAqL1xuICByZWFkb25seSBpbmplY3Rvcj86IE1heWJlPEluamVjdG9yPjtcbn1cblxuZXhwb3J0IHR5cGUgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzUG9wb3ZlckNvbmZpZ1dpdGhvdXRPcmlnaW4gPSBPbWl0PERieEZpcmViYXNlTW9kZWxFbnRpdGllc1BvcG92ZXJDb25maWcsICdvcmlnaW4nIHwgJ2VudGl0aWVzJCc+O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9EQlhfRklSRUJBU0VfTU9ERUxfRU5USVRJRVNfQ09NUE9ORU5UX1BPUE9WRVJfS0VZID0gJ2VudGl0aWVzJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RlbC5lbnRpdGllcy5wb3BvdmVyLmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW0RieFBvcG92ZXJDb250ZW50Q29tcG9uZW50LCBEYnhQb3BvdmVySGVhZGVyQ29tcG9uZW50LCBEYnhQb3BvdmVyU2Nyb2xsQ29udGVudERpcmVjdGl2ZSwgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzQ29tcG9uZW50LCBEYnhMaXN0RW1wdHlDb250ZW50Q29tcG9uZW50XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzUG9wb3ZlckNvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0UG9wb3ZlckRpcmVjdGl2ZTx1bmtub3duLCBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNQb3BvdmVyQ29uZmlnPiB7XG4gIHJlYWRvbmx5IGVudGl0aWVzJCA9IHRoaXMucG9wb3Zlci5kYXRhPy5lbnRpdGllcyQ7XG5cbiAgc3RhdGljIG9wZW5Qb3BvdmVyKHBvcHVwU2VydmljZTogRGJ4UG9wb3ZlclNlcnZpY2UsIGNvbmZpZzogRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzUG9wb3ZlckNvbmZpZywgcG9wb3ZlcktleT86IERieFBvcG92ZXJLZXkpOiBOZ1BvcG92ZXJSZWYge1xuICAgIGNvbnN0IHsgb3JpZ2luLCBoZWFkZXIsIGljb24sIGVtcHR5VGV4dCwgZW50aXRpZXMkLCBvbmx5U2hvd1JlZ2lzdGVyZWRUeXBlcywgcG9wb3ZlclNpemluZ0NvbmZpZywgaW5qZWN0b3IgfSA9IGNvbmZpZztcblxuICAgIHJldHVybiBwb3B1cFNlcnZpY2Uub3Blbih7XG4gICAgICBoZWlnaHQ6ICc2MDBweCcsXG4gICAgICB3aWR0aDogJzgwMHB4JyxcbiAgICAgIGluamVjdG9yOiBpbmplY3RvciA/PyB1bmRlZmluZWQsXG4gICAgICBpc1Jlc2l6YWJsZTogdHJ1ZSxcbiAgICAgIC4uLnBvcG92ZXJTaXppbmdDb25maWcsXG4gICAgICBrZXk6IHBvcG92ZXJLZXkgPz8gREVGQVVMVF9EQlhfRklSRUJBU0VfTU9ERUxfRU5USVRJRVNfQ09NUE9ORU5UX1BPUE9WRVJfS0VZLFxuICAgICAgb3JpZ2luLFxuICAgICAgY29tcG9uZW50Q2xhc3M6IERieEZpcmViYXNlTW9kZWxFbnRpdGllc1BvcG92ZXJDb21wb25lbnQsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGhlYWRlcixcbiAgICAgICAgaWNvbixcbiAgICAgICAgZW1wdHlUZXh0LFxuICAgICAgICBlbnRpdGllcyQsXG4gICAgICAgIG9ubHlTaG93UmVnaXN0ZXJlZFR5cGVzXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBnZXQgY29uZmlnKCk6IERieEZpcmViYXNlTW9kZWxFbnRpdGllc1BvcG92ZXJDb25maWcge1xuICAgIHJldHVybiB0aGlzLnBvcG92ZXIuZGF0YSBhcyBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNQb3BvdmVyQ29uZmlnO1xuICB9XG5cbiAgcmVhZG9ubHkgaWNvbiA9IHRoaXMuY29uZmlnLmljb24gPz8gJ2RhdGFfb2JqZWN0JztcbiAgcmVhZG9ubHkgaGVhZGVyID0gdGhpcy5jb25maWcuaGVhZGVyID8/ICdFbnRpdGllcyc7XG4gIHJlYWRvbmx5IGVtcHR5VGV4dCA9IHRoaXMuY29uZmlnLmVtcHR5VGV4dCA/PyAnTm8gZW50aXRpZXMgZm91bmQgaW4gY3VycmVudCBjb250ZXh0Lic7XG4gIHJlYWRvbmx5IG9ubHlTaG93UmVnaXN0ZXJlZFR5cGVzID0gdGhpcy5jb25maWcub25seVNob3dSZWdpc3RlcmVkVHlwZXM7XG59XG4iLCI8ZGJ4LXBvcG92ZXItY29udGVudD5cbiAgPCEtLSBIZWFkZXIgLS0+XG4gIDxkYngtcG9wb3Zlci1oZWFkZXIgW2ljb25dPVwiaWNvblwiIFtoZWFkZXJdPVwiaGVhZGVyXCI+PC9kYngtcG9wb3Zlci1oZWFkZXI+XG4gIDwhLS0gQ29udGVudCAtLT5cbiAgPGRieC1wb3BvdmVyLXNjcm9sbC1jb250ZW50PlxuICAgIDxkYngtZmlyZWJhc2UtbW9kZWwtZW50aXRpZXMgW2VudGl0aWVzXT1cImVudGl0aWVzJFwiIFtvbmx5U2hvd1JlZ2lzdGVyZWRUeXBlc109XCJvbmx5U2hvd1JlZ2lzdGVyZWRUeXBlc1wiPlxuICAgICAgPHAgZW1wdHk+e3sgZW1wdHlUZXh0IH19PC9wPlxuICAgIDwvZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzPlxuICA8L2RieC1wb3BvdmVyLXNjcm9sbC1jb250ZW50PlxuPC9kYngtcG9wb3Zlci1jb250ZW50PlxuIl19
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { makeEnvironmentProviders } from '@angular/core';
|
|
2
|
-
import { DbxFirebaseModelEntitiesWidgetService, DbxFirebaseModelEntitiesWidgetServiceConfig } from './model.entities.widget.service';
|
|
3
|
-
/**
|
|
4
|
-
* Creates EnvironmentProviders for DbxFirebaseModelEntitiesWidgetService.
|
|
5
|
-
*
|
|
6
|
-
* @param config Configuration
|
|
7
|
-
* @returns EnvironmentProviders
|
|
8
|
-
*/
|
|
9
|
-
export function provideDbxFirebaseModelEntitiesWidgetService(config) {
|
|
10
|
-
const { dbxFirebaseModelEntitiesWidgetServiceConfigFactory } = config;
|
|
11
|
-
const providers = [
|
|
12
|
-
{
|
|
13
|
-
provide: DbxFirebaseModelEntitiesWidgetServiceConfig,
|
|
14
|
-
useFactory: dbxFirebaseModelEntitiesWidgetServiceConfigFactory
|
|
15
|
-
},
|
|
16
|
-
DbxFirebaseModelEntitiesWidgetService
|
|
17
|
-
];
|
|
18
|
-
return makeEnvironmentProviders(providers);
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMucHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9tb2RlbC9lbnRpdGllcy9tb2RlbC5lbnRpdGllcy5wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUEyRCx3QkFBd0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUscUNBQXFDLEVBQUUsMkNBQTJDLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQWlCckk7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsNENBQTRDLENBQUMsTUFBMEQ7SUFDckgsTUFBTSxFQUFFLGtEQUFrRCxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBRXRFLE1BQU0sU0FBUyxHQUFlO1FBQzVCO1lBQ0UsT0FBTyxFQUFFLDJDQUEyQztZQUNwRCxVQUFVLEVBQUUsa0RBQWtEO1NBQy9EO1FBQ0QscUNBQXFDO0tBQ3RDLENBQUM7SUFFRixPQUFPLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIEVudmlyb25tZW50UHJvdmlkZXJzLCB0eXBlIEluamVjdG9yLCB0eXBlIFByb3ZpZGVyLCBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERieEZpcmViYXNlTW9kZWxFbnRpdGllc1dpZGdldFNlcnZpY2UsIERieEZpcmViYXNlTW9kZWxFbnRpdGllc1dpZGdldFNlcnZpY2VDb25maWcgfSBmcm9tICcuL21vZGVsLmVudGl0aWVzLndpZGdldC5zZXJ2aWNlJztcblxuLyoqXG4gKiBGYWN0b3J5IGZvciBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNXaWRnZXRTZXJ2aWNlQ29uZmlnLlxuICovXG5leHBvcnQgdHlwZSBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNXaWRnZXRTZXJ2aWNlQ29uZmlnRmFjdG9yeSA9IChpbmplY3RvcjogSW5qZWN0b3IpID0+IERieEZpcmViYXNlTW9kZWxFbnRpdGllc1dpZGdldFNlcnZpY2VDb25maWc7XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgcHJvdmlkZURieEZpcmViYXNlTW9kZWxFbnRpdGllc1dpZGdldFNlcnZpY2UoKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm92aWRlRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzV2lkZ2V0U2VydmljZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBGYWN0b3J5IGZvciBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNXaWRnZXRTZXJ2aWNlQ29uZmlnLlxuICAgKi9cbiAgcmVhZG9ubHkgZGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzV2lkZ2V0U2VydmljZUNvbmZpZ0ZhY3Rvcnk6IERieEZpcmViYXNlTW9kZWxFbnRpdGllc1dpZGdldFNlcnZpY2VDb25maWdGYWN0b3J5O1xufVxuXG4vKipcbiAqIENyZWF0ZXMgRW52aXJvbm1lbnRQcm92aWRlcnMgZm9yIERieEZpcmViYXNlTW9kZWxFbnRpdGllc1dpZGdldFNlcnZpY2UuXG4gKlxuICogQHBhcmFtIGNvbmZpZyBDb25maWd1cmF0aW9uXG4gKiBAcmV0dXJucyBFbnZpcm9ubWVudFByb3ZpZGVyc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZURieEZpcmViYXNlTW9kZWxFbnRpdGllc1dpZGdldFNlcnZpY2UoY29uZmlnOiBQcm92aWRlRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzV2lkZ2V0U2VydmljZUNvbmZpZyk6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgY29uc3QgeyBkYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNXaWRnZXRTZXJ2aWNlQ29uZmlnRmFjdG9yeSB9ID0gY29uZmlnO1xuXG4gIGNvbnN0IHByb3ZpZGVyczogUHJvdmlkZXJbXSA9IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNXaWRnZXRTZXJ2aWNlQ29uZmlnLFxuICAgICAgdXNlRmFjdG9yeTogZGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzV2lkZ2V0U2VydmljZUNvbmZpZ0ZhY3RvcnlcbiAgICB9LFxuICAgIERieEZpcmViYXNlTW9kZWxFbnRpdGllc1dpZGdldFNlcnZpY2VcbiAgXTtcblxuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKHByb3ZpZGVycyk7XG59XG4iXX0=
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { Directive } from '@angular/core';
|
|
2
|
-
import { DbxFirebaseModelEntitiesSource } from './model.entities';
|
|
3
|
-
import { DbxFirebaseDocumentStoreContextStore } from '../../store/store.document.context.store';
|
|
4
|
-
import { map } from 'rxjs';
|
|
5
|
-
import { loadingStateFromObs } from '@dereekb/rxjs';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export const dbxFirebaseDocumentStoreContextModelEntitiesSourceFactory = (storeContextStore) => {
|
|
8
|
-
const entities$ = storeContextStore.entriesGroupedByIdentity$.pipe(map((entries) => entries.map((entry) => ({ store: entry.store, modelIdentity: entry.modelIdentity }))));
|
|
9
|
-
const source = {
|
|
10
|
-
entities$: loadingStateFromObs(entities$)
|
|
11
|
-
};
|
|
12
|
-
return source;
|
|
13
|
-
};
|
|
14
|
-
export class DbxFirebaseDocumentStoreContextModelEntitiesSourceDirective {
|
|
15
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseDocumentStoreContextModelEntitiesSourceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
16
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DbxFirebaseDocumentStoreContextModelEntitiesSourceDirective, isStandalone: true, selector: "[dbxFirebaseDocumentStoreContextModelEntitiesSource]", providers: [
|
|
17
|
-
{
|
|
18
|
-
provide: DbxFirebaseModelEntitiesSource,
|
|
19
|
-
useFactory: dbxFirebaseDocumentStoreContextModelEntitiesSourceFactory,
|
|
20
|
-
deps: [DbxFirebaseDocumentStoreContextStore]
|
|
21
|
-
}
|
|
22
|
-
], ngImport: i0 });
|
|
23
|
-
}
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseDocumentStoreContextModelEntitiesSourceDirective, decorators: [{
|
|
25
|
-
type: Directive,
|
|
26
|
-
args: [{
|
|
27
|
-
selector: '[dbxFirebaseDocumentStoreContextModelEntitiesSource]',
|
|
28
|
-
providers: [
|
|
29
|
-
{
|
|
30
|
-
provide: DbxFirebaseModelEntitiesSource,
|
|
31
|
-
useFactory: dbxFirebaseDocumentStoreContextModelEntitiesSourceFactory,
|
|
32
|
-
deps: [DbxFirebaseDocumentStoreContextStore]
|
|
33
|
-
}
|
|
34
|
-
],
|
|
35
|
-
standalone: true
|
|
36
|
-
}]
|
|
37
|
-
}] });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMuc291cmNlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvbW9kZWwvZW50aXRpZXMvbW9kZWwuZW50aXRpZXMuc291cmNlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSw4QkFBOEIsRUFBMEIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRixPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNoRyxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFcEQsTUFBTSxDQUFDLE1BQU0seURBQXlELEdBQUcsQ0FBQyxpQkFBdUQsRUFBa0MsRUFBRTtJQUNuSyxNQUFNLFNBQVMsR0FBeUMsaUJBQWlCLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVqTixNQUFNLE1BQU0sR0FBbUM7UUFDN0MsU0FBUyxFQUFFLG1CQUFtQixDQUFDLFNBQVMsQ0FBQztLQUMxQyxDQUFDO0lBRUYsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBYUYsTUFBTSxPQUFPLDJEQUEyRDt3R0FBM0QsMkRBQTJEOzRGQUEzRCwyREFBMkQsbUdBVDNEO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLDhCQUE4QjtnQkFDdkMsVUFBVSxFQUFFLHlEQUF5RDtnQkFDckUsSUFBSSxFQUFFLENBQUMsb0NBQW9DLENBQUM7YUFDN0M7U0FDRjs7NEZBR1UsMkRBQTJEO2tCQVh2RSxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzREFBc0Q7b0JBQ2hFLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsOEJBQThCOzRCQUN2QyxVQUFVLEVBQUUseURBQXlEOzRCQUNyRSxJQUFJLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQzt5QkFDN0M7cUJBQ0Y7b0JBQ0QsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNTb3VyY2UsIERieEZpcmViYXNlTW9kZWxFbnRpdHkgfSBmcm9tICcuL21vZGVsLmVudGl0aWVzJztcbmltcG9ydCB7IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZUNvbnRleHRTdG9yZSB9IGZyb20gJy4uLy4uL3N0b3JlL3N0b3JlLmRvY3VtZW50LmNvbnRleHQuc3RvcmUnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBsb2FkaW5nU3RhdGVGcm9tT2JzIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5cbmV4cG9ydCBjb25zdCBkYnhGaXJlYmFzZURvY3VtZW50U3RvcmVDb250ZXh0TW9kZWxFbnRpdGllc1NvdXJjZUZhY3RvcnkgPSAoc3RvcmVDb250ZXh0U3RvcmU6IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZUNvbnRleHRTdG9yZSk6IERieEZpcmViYXNlTW9kZWxFbnRpdGllc1NvdXJjZSA9PiB7XG4gIGNvbnN0IGVudGl0aWVzJDogT2JzZXJ2YWJsZTxEYnhGaXJlYmFzZU1vZGVsRW50aXR5W10+ID0gc3RvcmVDb250ZXh0U3RvcmUuZW50cmllc0dyb3VwZWRCeUlkZW50aXR5JC5waXBlKG1hcCgoZW50cmllcykgPT4gZW50cmllcy5tYXAoKGVudHJ5KSA9PiAoeyBzdG9yZTogZW50cnkuc3RvcmUsIG1vZGVsSWRlbnRpdHk6IGVudHJ5Lm1vZGVsSWRlbnRpdHkgfSkpKSk7XG5cbiAgY29uc3Qgc291cmNlOiBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNTb3VyY2UgPSB7XG4gICAgZW50aXRpZXMkOiBsb2FkaW5nU3RhdGVGcm9tT2JzKGVudGl0aWVzJClcbiAgfTtcblxuICByZXR1cm4gc291cmNlO1xufTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2RieEZpcmViYXNlRG9jdW1lbnRTdG9yZUNvbnRleHRNb2RlbEVudGl0aWVzU291cmNlXScsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IERieEZpcmViYXNlTW9kZWxFbnRpdGllc1NvdXJjZSxcbiAgICAgIHVzZUZhY3Rvcnk6IGRieEZpcmViYXNlRG9jdW1lbnRTdG9yZUNvbnRleHRNb2RlbEVudGl0aWVzU291cmNlRmFjdG9yeSxcbiAgICAgIGRlcHM6IFtEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVDb250ZXh0U3RvcmVdXG4gICAgfVxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZUNvbnRleHRNb2RlbEVudGl0aWVzU291cmNlRGlyZWN0aXZlIHt9XG4iXX0=
|
package/esm2022/lib/model/modules/model/entities/model.entities.widget.entity.abstract.directive.mjs
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Directive, inject } from '@angular/core';
|
|
2
|
-
import { DBX_FIREBASE_MODEL_ENTITY_WITH_STORE_TOKEN } from './model.entities.widget';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
/**
|
|
5
|
-
* An abstract DbxFirebase widget component that injects the entity data and provides some common accessors.
|
|
6
|
-
*/
|
|
7
|
-
export class AbstractDbxFirebaseModelEntityWidgetDirective {
|
|
8
|
-
entityData = inject(DBX_FIREBASE_MODEL_ENTITY_WITH_STORE_TOKEN);
|
|
9
|
-
store = this.entityData.store;
|
|
10
|
-
data$ = this.store.data$;
|
|
11
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractDbxFirebaseModelEntityWidgetDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
12
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: AbstractDbxFirebaseModelEntityWidgetDirective, ngImport: i0 });
|
|
13
|
-
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractDbxFirebaseModelEntityWidgetDirective, decorators: [{
|
|
15
|
-
type: Directive,
|
|
16
|
-
args: [{}]
|
|
17
|
-
}] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMud2lkZ2V0LmVudGl0eS5hYnN0cmFjdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL21vZGVsL2VudGl0aWVzL21vZGVsLmVudGl0aWVzLndpZGdldC5lbnRpdHkuYWJzdHJhY3QuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSwwQ0FBMEMsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUlyRjs7R0FFRztBQUVILE1BQU0sT0FBZ0IsNkNBQTZDO0lBQ3hELFVBQVUsR0FBMEMsTUFBTSxDQUFDLDBDQUEwQyxDQUFDLENBQUM7SUFFdkcsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO0lBQzlCLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQzt3R0FKZCw2Q0FBNkM7NEZBQTdDLDZDQUE2Qzs7NEZBQTdDLDZDQUE2QztrQkFEbEUsU0FBUzttQkFBQyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERCWF9GSVJFQkFTRV9NT0RFTF9FTlRJVFlfV0lUSF9TVE9SRV9UT0tFTiB9IGZyb20gJy4vbW9kZWwuZW50aXRpZXMud2lkZ2V0JztcbmltcG9ydCB7IERieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoU3RvcmUgfSBmcm9tICcuL21vZGVsLmVudGl0aWVzJztcbmltcG9ydCB7IHR5cGUgRmlyZXN0b3JlRG9jdW1lbnQgfSBmcm9tICdAZGVyZWVrYi9maXJlYmFzZSc7XG5cbi8qKlxuICogQW4gYWJzdHJhY3QgRGJ4RmlyZWJhc2Ugd2lkZ2V0IGNvbXBvbmVudCB0aGF0IGluamVjdHMgdGhlIGVudGl0eSBkYXRhIGFuZCBwcm92aWRlcyBzb21lIGNvbW1vbiBhY2Nlc3NvcnMuXG4gKi9cbkBEaXJlY3RpdmUoe30pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3REYnhGaXJlYmFzZU1vZGVsRW50aXR5V2lkZ2V0RGlyZWN0aXZlPFQgPSBhbnksIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+PiB7XG4gIHJlYWRvbmx5IGVudGl0eURhdGE6IERieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoU3RvcmU8VCwgRD4gPSBpbmplY3QoREJYX0ZJUkVCQVNFX01PREVMX0VOVElUWV9XSVRIX1NUT1JFX1RPS0VOKTtcblxuICByZWFkb25seSBzdG9yZSA9IHRoaXMuZW50aXR5RGF0YS5zdG9yZTtcbiAgcmVhZG9ubHkgZGF0YSQgPSB0aGlzLnN0b3JlLmRhdGEkO1xufVxuIl19
|
package/esm2022/lib/model/modules/model/entities/model.entities.widget.entity.debug.component.mjs
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { Component, computed } from '@angular/core';
|
|
2
|
-
import { AbstractDbxFirebaseModelEntityWidgetDirective } from './model.entities.widget.entity.abstract.directive';
|
|
3
|
-
import { toSignal } from '@angular/core/rxjs-interop';
|
|
4
|
-
import { JsonPipe } from '@angular/common';
|
|
5
|
-
import { DbxFirebaseModelKeyComponent } from '../model.key.component';
|
|
6
|
-
import { DbxClickToCopyTextComponent, DbxContentPitDirective, DbxDownloadTextViewComponent, DbxLoadingComponent } from '@dereekb/dbx-web';
|
|
7
|
-
import { loadingStateContext } from '@dereekb/rxjs';
|
|
8
|
-
import { twoWayFlatFirestoreModelKey } from '@dereekb/firebase';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
/**
|
|
11
|
-
* A debug widget component that displays entity data and metadata.
|
|
12
|
-
*/
|
|
13
|
-
export class DbxFirebaseModelEntitiesDebugWidgetComponent extends AbstractDbxFirebaseModelEntityWidgetDirective {
|
|
14
|
-
// Convert store observables to signals for template usage
|
|
15
|
-
currentKey = toSignal(this.store.currentKey$);
|
|
16
|
-
currentData = toSignal(this.data$);
|
|
17
|
-
contentSignal = computed(() => {
|
|
18
|
-
const key = this.currentKey();
|
|
19
|
-
const data = this.currentData();
|
|
20
|
-
let content;
|
|
21
|
-
if (key && data) {
|
|
22
|
-
const flattenKey = twoWayFlatFirestoreModelKey(key);
|
|
23
|
-
content = {
|
|
24
|
-
content: JSON.stringify(data, null, 2),
|
|
25
|
-
name: `${flattenKey}.json`
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
return content;
|
|
29
|
-
});
|
|
30
|
-
context = loadingStateContext(this.store.dataLoadingState$);
|
|
31
|
-
ngOnDestroy() {
|
|
32
|
-
this.context.destroy();
|
|
33
|
-
}
|
|
34
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelEntitiesDebugWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxFirebaseModelEntitiesDebugWidgetComponent, isStandalone: true, selector: "dbx-firebase-model-entities-debug-widget", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-firebase-model-entities-debug-widget\">\n <!-- Model Key Section -->\n <div class=\"dbx-debug-section\">\n <h4>Model Key Information</h4>\n @if (currentKey(); as key) {\n <dbx-firebase-model-key [modelKey]=\"key\"></dbx-firebase-model-key>\n }\n </div>\n\n <!-- Document Data Section -->\n <div class=\"dbx-debug-section\">\n <h4>Document Data</h4>\n <dbx-loading [context]=\"context\">\n @if (currentData(); as data) {\n <dbx-download-text-view [showTitle]=\"false\" [content]=\"contentSignal()\"></dbx-download-text-view>\n } @else {\n <p class=\"dbx-empty\">No data available</p>\n }\n </dbx-loading>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: DbxFirebaseModelKeyComponent, selector: "dbx-firebase-model-key", inputs: ["modelKey"] }, { kind: "component", type: DbxDownloadTextViewComponent, selector: "dbx-download-text-view", inputs: ["showDownloadButton", "loadingText", "linear", "showTitle", "showPreview", "showExpandPreviewButton", "expandPreview", "content", "contentState"], outputs: ["expandPreviewChange"] }, { kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }] });
|
|
36
|
-
}
|
|
37
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelEntitiesDebugWidgetComponent, decorators: [{
|
|
38
|
-
type: Component,
|
|
39
|
-
args: [{ selector: 'dbx-firebase-model-entities-debug-widget', standalone: true, imports: [DbxFirebaseModelKeyComponent, DbxClickToCopyTextComponent, DbxContentPitDirective, DbxDownloadTextViewComponent, DbxLoadingComponent, JsonPipe], template: "<div class=\"dbx-firebase-model-entities-debug-widget\">\n <!-- Model Key Section -->\n <div class=\"dbx-debug-section\">\n <h4>Model Key Information</h4>\n @if (currentKey(); as key) {\n <dbx-firebase-model-key [modelKey]=\"key\"></dbx-firebase-model-key>\n }\n </div>\n\n <!-- Document Data Section -->\n <div class=\"dbx-debug-section\">\n <h4>Document Data</h4>\n <dbx-loading [context]=\"context\">\n @if (currentData(); as data) {\n <dbx-download-text-view [showTitle]=\"false\" [content]=\"contentSignal()\"></dbx-download-text-view>\n } @else {\n <p class=\"dbx-empty\">No data available</p>\n }\n </dbx-loading>\n </div>\n</div>\n" }]
|
|
40
|
-
}] });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMud2lkZ2V0LmVudGl0eS5kZWJ1Zy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL21vZGVsL2VudGl0aWVzL21vZGVsLmVudGl0aWVzLndpZGdldC5lbnRpdHkuZGVidWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9tb2RlbC9lbnRpdGllcy9tb2RlbC5lbnRpdGllcy53aWRnZXQuZW50aXR5LmRlYnVnLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsNkNBQTZDLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNsSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxzQkFBc0IsRUFBRSw0QkFBNEIsRUFBRSxtQkFBbUIsRUFBdUIsTUFBTSxrQkFBa0IsQ0FBQztBQUMvSixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBRWhFOztHQUVHO0FBT0gsTUFBTSxPQUFPLDRDQUE2QyxTQUFRLDZDQUE2QztJQUM3RywwREFBMEQ7SUFDakQsVUFBVSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlDLFdBQVcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRW5DLGFBQWEsR0FBdUMsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUN6RSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDOUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRWhDLElBQUksT0FBbUMsQ0FBQztRQUV4QyxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNoQixNQUFNLFVBQVUsR0FBRywyQkFBMkIsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUVwRCxPQUFPLEdBQUc7Z0JBQ1IsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQ3RDLElBQUksRUFBRSxHQUFHLFVBQVUsT0FBTzthQUMzQixDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBRU0sT0FBTyxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUVyRSxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN6QixDQUFDO3dHQTNCVSw0Q0FBNEM7NEZBQTVDLDRDQUE0QywySENuQnpELDJyQkFxQkEsNENESlksNEJBQTRCLHlGQUF1RCw0QkFBNEIsaVFBQUUsbUJBQW1COzs0RkFFbkksNENBQTRDO2tCQU54RCxTQUFTOytCQUNFLDBDQUEwQyxjQUV4QyxJQUFJLFdBQ1AsQ0FBQyw0QkFBNEIsRUFBRSwyQkFBMkIsRUFBRSxzQkFBc0IsRUFBRSw0QkFBNEIsRUFBRSxtQkFBbUIsRUFBRSxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBPbkRlc3Ryb3ksIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3REYnhGaXJlYmFzZU1vZGVsRW50aXR5V2lkZ2V0RGlyZWN0aXZlIH0gZnJvbSAnLi9tb2RlbC5lbnRpdGllcy53aWRnZXQuZW50aXR5LmFic3RyYWN0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEpzb25QaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERieEZpcmViYXNlTW9kZWxLZXlDb21wb25lbnQgfSBmcm9tICcuLi9tb2RlbC5rZXkuY29tcG9uZW50JztcbmltcG9ydCB7IERieENsaWNrVG9Db3B5VGV4dENvbXBvbmVudCwgRGJ4Q29udGVudFBpdERpcmVjdGl2ZSwgRGJ4RG93bmxvYWRUZXh0Vmlld0NvbXBvbmVudCwgRGJ4TG9hZGluZ0NvbXBvbmVudCwgRG93bmxvYWRUZXh0Q29udGVudCB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWInO1xuaW1wb3J0IHsgbG9hZGluZ1N0YXRlQ29udGV4dCB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IHR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleSB9IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcblxuLyoqXG4gKiBBIGRlYnVnIHdpZGdldCBjb21wb25lbnQgdGhhdCBkaXNwbGF5cyBlbnRpdHkgZGF0YSBhbmQgbWV0YWRhdGEuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1maXJlYmFzZS1tb2RlbC1lbnRpdGllcy1kZWJ1Zy13aWRnZXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kZWwuZW50aXRpZXMud2lkZ2V0LmVudGl0eS5kZWJ1Zy5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtEYnhGaXJlYmFzZU1vZGVsS2V5Q29tcG9uZW50LCBEYnhDbGlja1RvQ29weVRleHRDb21wb25lbnQsIERieENvbnRlbnRQaXREaXJlY3RpdmUsIERieERvd25sb2FkVGV4dFZpZXdDb21wb25lbnQsIERieExvYWRpbmdDb21wb25lbnQsIEpzb25QaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNEZWJ1Z1dpZGdldENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpZGdldERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8vIENvbnZlcnQgc3RvcmUgb2JzZXJ2YWJsZXMgdG8gc2lnbmFscyBmb3IgdGVtcGxhdGUgdXNhZ2VcbiAgcmVhZG9ubHkgY3VycmVudEtleSA9IHRvU2lnbmFsKHRoaXMuc3RvcmUuY3VycmVudEtleSQpO1xuICByZWFkb25seSBjdXJyZW50RGF0YSA9IHRvU2lnbmFsKHRoaXMuZGF0YSQpO1xuXG4gIHJlYWRvbmx5IGNvbnRlbnRTaWduYWw6IFNpZ25hbDxNYXliZTxEb3dubG9hZFRleHRDb250ZW50Pj4gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qga2V5ID0gdGhpcy5jdXJyZW50S2V5KCk7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMuY3VycmVudERhdGEoKTtcblxuICAgIGxldCBjb250ZW50OiBNYXliZTxEb3dubG9hZFRleHRDb250ZW50PjtcblxuICAgIGlmIChrZXkgJiYgZGF0YSkge1xuICAgICAgY29uc3QgZmxhdHRlbktleSA9IHR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleShrZXkpO1xuXG4gICAgICBjb250ZW50ID0ge1xuICAgICAgICBjb250ZW50OiBKU09OLnN0cmluZ2lmeShkYXRhLCBudWxsLCAyKSxcbiAgICAgICAgbmFtZTogYCR7ZmxhdHRlbktleX0uanNvbmBcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGNvbnRleHQgPSBsb2FkaW5nU3RhdGVDb250ZXh0KHRoaXMuc3RvcmUuZGF0YUxvYWRpbmdTdGF0ZSQpO1xuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY29udGV4dC5kZXN0cm95KCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkYngtZmlyZWJhc2UtbW9kZWwtZW50aXRpZXMtZGVidWctd2lkZ2V0XCI+XG4gIDwhLS0gTW9kZWwgS2V5IFNlY3Rpb24gLS0+XG4gIDxkaXYgY2xhc3M9XCJkYngtZGVidWctc2VjdGlvblwiPlxuICAgIDxoND5Nb2RlbCBLZXkgSW5mb3JtYXRpb248L2g0PlxuICAgIEBpZiAoY3VycmVudEtleSgpOyBhcyBrZXkpIHtcbiAgICAgIDxkYngtZmlyZWJhc2UtbW9kZWwta2V5IFttb2RlbEtleV09XCJrZXlcIj48L2RieC1maXJlYmFzZS1tb2RlbC1rZXk+XG4gICAgfVxuICA8L2Rpdj5cblxuICA8IS0tIERvY3VtZW50IERhdGEgU2VjdGlvbiAtLT5cbiAgPGRpdiBjbGFzcz1cImRieC1kZWJ1Zy1zZWN0aW9uXCI+XG4gICAgPGg0PkRvY3VtZW50IERhdGE8L2g0PlxuICAgIDxkYngtbG9hZGluZyBbY29udGV4dF09XCJjb250ZXh0XCI+XG4gICAgICBAaWYgKGN1cnJlbnREYXRhKCk7IGFzIGRhdGEpIHtcbiAgICAgICAgPGRieC1kb3dubG9hZC10ZXh0LXZpZXcgW3Nob3dUaXRsZV09XCJmYWxzZVwiIFtjb250ZW50XT1cImNvbnRlbnRTaWduYWwoKVwiPjwvZGJ4LWRvd25sb2FkLXRleHQtdmlldz5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8cCBjbGFzcz1cImRieC1lbXB0eVwiPk5vIGRhdGEgYXZhaWxhYmxlPC9wPlxuICAgICAgfVxuICAgIDwvZGJ4LWxvYWRpbmc+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|