@dereekb/dbx-core 12.7.0 → 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/fesm2022/dereekb-dbx-core.mjs +659 -976
- package/fesm2022/dereekb-dbx-core.mjs.map +1 -1
- package/package.json +16 -18
- package/types/dereekb-dbx-core.d.ts +3633 -0
- package/esm2022/dereekb-dbx-core.mjs +0 -5
- package/esm2022/index.mjs +0 -2
- package/esm2022/lib/action/action.handler.mjs +0 -22
- package/esm2022/lib/action/action.holder.mjs +0 -76
- package/esm2022/lib/action/action.machine.mjs +0 -71
- package/esm2022/lib/action/action.mjs +0 -95
- package/esm2022/lib/action/action.module.mjs +0 -85
- package/esm2022/lib/action/action.reference.mjs +0 -7
- package/esm2022/lib/action/action.store.mjs +0 -290
- package/esm2022/lib/action/action.store.source.mjs +0 -162
- package/esm2022/lib/action/action.store.source.provide.mjs +0 -36
- package/esm2022/lib/action/directive/auto/action.automodify.directive.mjs +0 -36
- package/esm2022/lib/action/directive/auto/action.autotrigger.directive.mjs +0 -111
- package/esm2022/lib/action/directive/auto/index.mjs +0 -3
- package/esm2022/lib/action/directive/context/action.directive.mjs +0 -32
- package/esm2022/lib/action/directive/context/action.source.directive.mjs +0 -25
- package/esm2022/lib/action/directive/context/index.mjs +0 -3
- package/esm2022/lib/action/directive/debug/action.logger.directive.mjs +0 -25
- package/esm2022/lib/action/directive/debug/index.mjs +0 -2
- package/esm2022/lib/action/directive/index.mjs +0 -6
- package/esm2022/lib/action/directive/map/action.map.directive.mjs +0 -34
- package/esm2022/lib/action/directive/map/action.map.key.directive.mjs +0 -27
- package/esm2022/lib/action/directive/map/action.map.mjs +0 -60
- package/esm2022/lib/action/directive/map/action.map.source.directive.mjs +0 -44
- package/esm2022/lib/action/directive/map/action.map.utility.mjs +0 -37
- package/esm2022/lib/action/directive/map/action.map.working.disable.directive.mjs +0 -34
- package/esm2022/lib/action/directive/map/index.mjs +0 -7
- package/esm2022/lib/action/directive/state/action.disabled.directive.mjs +0 -30
- package/esm2022/lib/action/directive/state/action.disableonsuccess.directive.mjs +0 -31
- package/esm2022/lib/action/directive/state/action.enforce.modified.directive.mjs +0 -34
- package/esm2022/lib/action/directive/state/action.error.handler.directive.mjs +0 -32
- package/esm2022/lib/action/directive/state/action.handler.directive.mjs +0 -57
- package/esm2022/lib/action/directive/state/action.handler.instance.mjs +0 -61
- package/esm2022/lib/action/directive/state/action.idle.directive.mjs +0 -34
- package/esm2022/lib/action/directive/state/action.presuccess.directive.mjs +0 -34
- package/esm2022/lib/action/directive/state/action.success.directive.mjs +0 -34
- package/esm2022/lib/action/directive/state/action.success.handler.directive.mjs +0 -32
- package/esm2022/lib/action/directive/state/action.triggered.directive.mjs +0 -34
- package/esm2022/lib/action/directive/state/action.value.directive.mjs +0 -42
- package/esm2022/lib/action/directive/state/action.value.stream.directive.mjs +0 -59
- package/esm2022/lib/action/directive/state/action.value.trigger.directive.mjs +0 -75
- package/esm2022/lib/action/directive/state/action.value.trigger.instance.mjs +0 -59
- package/esm2022/lib/action/directive/state/action.working.directive.mjs +0 -41
- package/esm2022/lib/action/directive/state/index.mjs +0 -17
- package/esm2022/lib/action/index.mjs +0 -11
- package/esm2022/lib/auth/auth.module.mjs +0 -25
- package/esm2022/lib/auth/auth.providers.mjs +0 -16
- package/esm2022/lib/auth/auth.role.any.directive.mjs +0 -24
- package/esm2022/lib/auth/auth.role.has.directive.mjs +0 -24
- package/esm2022/lib/auth/auth.role.not.directive.mjs +0 -24
- package/esm2022/lib/auth/auth.state.providers.mjs +0 -14
- package/esm2022/lib/auth/auth.state.service.mjs +0 -20
- package/esm2022/lib/auth/auth.user.mjs +0 -11
- package/esm2022/lib/auth/index.mjs +0 -12
- package/esm2022/lib/auth/router/auth.router.mjs +0 -6
- package/esm2022/lib/auth/router/auth.router.providers.mjs +0 -19
- package/esm2022/lib/auth/router/auth.router.service.mjs +0 -73
- package/esm2022/lib/auth/router/index.mjs +0 -6
- package/esm2022/lib/auth/router/provider/uirouter/auth.hook.mjs +0 -23
- package/esm2022/lib/auth/router/provider/uirouter/hook.mjs +0 -71
- package/esm2022/lib/auth/router/provider/uirouter/index.mjs +0 -6
- package/esm2022/lib/auth/router/provider/uirouter/redirect.mjs +0 -29
- package/esm2022/lib/auth/router/provider/uirouter/role.hook.mjs +0 -58
- package/esm2022/lib/auth/router/provider/uirouter/state.hook.mjs +0 -53
- package/esm2022/lib/auth/router/state/auth.router.state.providers.mjs +0 -23
- package/esm2022/lib/auth/router/state/effect/auth.router.state.effect.mjs +0 -37
- package/esm2022/lib/auth/router/state/effect/index.mjs +0 -2
- package/esm2022/lib/auth/router/state/index.mjs +0 -3
- package/esm2022/lib/auth/service/auth.service.mjs +0 -6
- package/esm2022/lib/auth/service/auth.service.rxjs.mjs +0 -30
- package/esm2022/lib/auth/service/index.mjs +0 -3
- package/esm2022/lib/auth/state/action/auth.action.mjs +0 -14
- package/esm2022/lib/auth/state/action/index.mjs +0 -12
- package/esm2022/lib/auth/state/action/user.action.mjs +0 -18
- package/esm2022/lib/auth/state/effect/auth.effect.mjs +0 -33
- package/esm2022/lib/auth/state/index.mjs +0 -13
- package/esm2022/lib/auth/state/reducer/index.mjs +0 -23
- package/esm2022/lib/auth/state/reducer/user.reducer.mjs +0 -12
- package/esm2022/lib/auth/state/state.mjs +0 -2
- package/esm2022/lib/button/action/action.button.directive.mjs +0 -28
- package/esm2022/lib/button/action/action.button.trigger.directive.mjs +0 -30
- package/esm2022/lib/button/action/index.mjs +0 -3
- package/esm2022/lib/button/button.directive.mjs +0 -115
- package/esm2022/lib/button/button.loading.directive.mjs +0 -37
- package/esm2022/lib/button/button.mjs +0 -21
- package/esm2022/lib/button/button.module.mjs +0 -28
- package/esm2022/lib/button/index.mjs +0 -7
- package/esm2022/lib/button/router/button.segue.directive.mjs +0 -29
- package/esm2022/lib/button/router/index.mjs +0 -2
- package/esm2022/lib/context/context.directive.mjs +0 -26
- package/esm2022/lib/context/context.mjs +0 -25
- package/esm2022/lib/context/context.module.mjs +0 -19
- package/esm2022/lib/context/context.providers.mjs +0 -12
- package/esm2022/lib/context/context.service.mjs +0 -26
- package/esm2022/lib/context/index.mjs +0 -7
- package/esm2022/lib/context/state/action/data.action.mjs +0 -10
- package/esm2022/lib/context/state/action/index.mjs +0 -7
- package/esm2022/lib/context/state/effect/index.mjs +0 -33
- package/esm2022/lib/context/state/index.mjs +0 -13
- package/esm2022/lib/context/state/reducer/data.reducer.mjs +0 -16
- package/esm2022/lib/context/state/reducer/index.mjs +0 -25
- package/esm2022/lib/context/state/state.mjs +0 -2
- package/esm2022/lib/environment/environment.mjs +0 -6
- package/esm2022/lib/environment/environment.providers.mjs +0 -19
- package/esm2022/lib/environment/environment.service.mjs +0 -30
- package/esm2022/lib/environment/index.mjs +0 -4
- package/esm2022/lib/filter/filter.abstract.connector.directive.mjs +0 -21
- package/esm2022/lib/filter/filter.abstract.source.directive.mjs +0 -69
- package/esm2022/lib/filter/filter.connect.source.directive.mjs +0 -23
- package/esm2022/lib/filter/filter.connector.directive.mjs +0 -20
- package/esm2022/lib/filter/filter.content.mjs +0 -29
- package/esm2022/lib/filter/filter.map.connector.directive.mjs +0 -33
- package/esm2022/lib/filter/filter.map.directive.mjs +0 -22
- package/esm2022/lib/filter/filter.map.instance.directive.mjs +0 -25
- package/esm2022/lib/filter/filter.map.source.directive.mjs +0 -38
- package/esm2022/lib/filter/filter.module.mjs +0 -22
- package/esm2022/lib/filter/filter.preset.mjs +0 -8
- package/esm2022/lib/filter/filter.source.directive.mjs +0 -19
- package/esm2022/lib/filter/index.mjs +0 -13
- package/esm2022/lib/index.mjs +0 -15
- package/esm2022/lib/injection/index.mjs +0 -14
- package/esm2022/lib/injection/injection.array.component.mjs +0 -31
- package/esm2022/lib/injection/injection.array.mjs +0 -2
- package/esm2022/lib/injection/injection.component.mjs +0 -32
- package/esm2022/lib/injection/injection.component.module.mjs +0 -26
- package/esm2022/lib/injection/injection.context.directive.mjs +0 -130
- package/esm2022/lib/injection/injection.context.forward.directive.mjs +0 -25
- package/esm2022/lib/injection/injection.context.mjs +0 -20
- package/esm2022/lib/injection/injection.directive.mjs +0 -30
- package/esm2022/lib/injection/injection.instance.mjs +0 -121
- package/esm2022/lib/injection/injection.mjs +0 -16
- package/esm2022/lib/injection/injection.rxjs.mjs +0 -24
- package/esm2022/lib/injection/injection.util.mjs +0 -11
- package/esm2022/lib/injection/injector.mjs +0 -13
- package/esm2022/lib/ngrx/index.mjs +0 -2
- package/esm2022/lib/ngrx/store.lockset.mjs +0 -66
- package/esm2022/lib/pipe/async/asobservable.pipe.mjs +0 -21
- package/esm2022/lib/pipe/async/async.pipe.module.mjs +0 -20
- package/esm2022/lib/pipe/async/index.mjs +0 -3
- package/esm2022/lib/pipe/date/date.pipe.module.mjs +0 -108
- package/esm2022/lib/pipe/date/datedayrange.pipe.mjs +0 -24
- package/esm2022/lib/pipe/date/datedaytimerange.pipe.mjs +0 -24
- package/esm2022/lib/pipe/date/datedistance.pipe.mjs +0 -27
- package/esm2022/lib/pipe/date/dateformatdistance.pipe.mjs +0 -36
- package/esm2022/lib/pipe/date/datefromtoformat.pipe.mjs +0 -34
- package/esm2022/lib/pipe/date/daterangedistance.pipe.mjs +0 -24
- package/esm2022/lib/pipe/date/datetimerange.pipe.mjs +0 -24
- package/esm2022/lib/pipe/date/datetimerangeonly.pipe.mjs +0 -24
- package/esm2022/lib/pipe/date/datetimerangeonlydistance.pipe.mjs +0 -24
- package/esm2022/lib/pipe/date/index.mjs +0 -18
- package/esm2022/lib/pipe/date/minutesstring.pipe.mjs +0 -36
- package/esm2022/lib/pipe/date/systemdatetotargetdate.pipe.mjs +0 -27
- package/esm2022/lib/pipe/date/targetdatetosystemdate.pipe.mjs +0 -27
- package/esm2022/lib/pipe/date/timedistance.pipe.mjs +0 -57
- package/esm2022/lib/pipe/date/timezoneabbreviation.pipe.mjs +0 -27
- package/esm2022/lib/pipe/date/tojsdate.pipe.mjs +0 -30
- package/esm2022/lib/pipe/date/tominutes.pipe.mjs +0 -21
- package/esm2022/lib/pipe/index.mjs +0 -6
- package/esm2022/lib/pipe/misc/index.mjs +0 -3
- package/esm2022/lib/pipe/misc/misc.pipe.module.mjs +0 -21
- package/esm2022/lib/pipe/misc/prettyjson.pipe.mjs +0 -30
- package/esm2022/lib/pipe/pipe.module.mjs +0 -25
- package/esm2022/lib/pipe/value/cuttext.pipe.mjs +0 -22
- package/esm2022/lib/pipe/value/dollar.pipe.mjs +0 -24
- package/esm2022/lib/pipe/value/getvalue.pipe.mjs +0 -40
- package/esm2022/lib/pipe/value/index.mjs +0 -5
- package/esm2022/lib/pipe/value/value.pipe.module.mjs +0 -27
- package/esm2022/lib/router/anchor/anchor.directive.mjs +0 -63
- package/esm2022/lib/router/anchor/anchor.mjs +0 -52
- package/esm2022/lib/router/anchor/clickable.mjs +0 -18
- package/esm2022/lib/router/anchor/index.mjs +0 -5
- package/esm2022/lib/router/anchor/mousable.mjs +0 -2
- package/esm2022/lib/router/auth/hook/id.hook.mjs +0 -54
- package/esm2022/lib/router/auth/hook/index.mjs +0 -3
- package/esm2022/lib/router/auth/hook/uid.hook.mjs +0 -19
- package/esm2022/lib/router/auth/index.mjs +0 -2
- package/esm2022/lib/router/index.mjs +0 -6
- package/esm2022/lib/router/model/id.param.redirect.mjs +0 -73
- package/esm2022/lib/router/model/index.mjs +0 -7
- package/esm2022/lib/router/model/model.module.mjs +0 -26
- package/esm2022/lib/router/model/model.router.id.directive.mjs +0 -58
- package/esm2022/lib/router/model/model.router.key.directive.mjs +0 -60
- package/esm2022/lib/router/model/model.router.mjs +0 -38
- package/esm2022/lib/router/model/model.router.uid.directive.mjs +0 -25
- package/esm2022/lib/router/router/index.mjs +0 -5
- package/esm2022/lib/router/router/provider/angular/angular.router.service.mjs +0 -78
- package/esm2022/lib/router/router/provider/angular/angular.router.service.module.mjs +0 -31
- package/esm2022/lib/router/router/provider/angular/index.mjs +0 -3
- package/esm2022/lib/router/router/provider/index.mjs +0 -3
- package/esm2022/lib/router/router/provider/uirouter/index.mjs +0 -4
- package/esm2022/lib/router/router/provider/uirouter/uirouter.router.service.mjs +0 -95
- package/esm2022/lib/router/router/provider/uirouter/uirouter.router.service.module.mjs +0 -34
- package/esm2022/lib/router/router/provider/uirouter/uirouter.router.service.providers.mjs +0 -24
- package/esm2022/lib/router/router/service/index.mjs +0 -6
- package/esm2022/lib/router/router/service/router.go.mjs +0 -14
- package/esm2022/lib/router/router/service/router.service.mjs +0 -7
- package/esm2022/lib/router/router/service/router.service.rxjs.mjs +0 -39
- package/esm2022/lib/router/router/service/router.service.util.mjs +0 -14
- package/esm2022/lib/router/router/service/router.transition.service.mjs +0 -6
- package/esm2022/lib/router/router/transition/index.mjs +0 -5
- package/esm2022/lib/router/router/transition/transition.directive.mjs +0 -19
- package/esm2022/lib/router/router/transition/transition.mjs +0 -12
- package/esm2022/lib/router/router/transition/transition.rxjs.mjs +0 -55
- package/esm2022/lib/router/router/transition/transition.watcher.directive.mjs +0 -28
- package/esm2022/lib/router/router/util/index.mjs +0 -3
- package/esm2022/lib/router/router/util/route.default.mjs +0 -63
- package/esm2022/lib/router/router/util/route.reader.mjs +0 -47
- package/esm2022/lib/router/segue.mjs +0 -35
- package/esm2022/lib/rxjs/clean.mjs +0 -28
- package/esm2022/lib/rxjs/destroy.mjs +0 -13
- package/esm2022/lib/rxjs/index.mjs +0 -7
- package/esm2022/lib/rxjs/loading.mjs +0 -19
- package/esm2022/lib/rxjs/lockset.mjs +0 -56
- package/esm2022/lib/rxjs/rxjs.directive.mjs +0 -42
- package/esm2022/lib/rxjs/subscription.mjs +0 -16
- package/esm2022/lib/storage/index.mjs +0 -9
- package/esm2022/lib/storage/storage.accessor.mjs +0 -16
- package/esm2022/lib/storage/storage.accessor.simple.factory.mjs +0 -26
- package/esm2022/lib/storage/storage.accessor.simple.mjs +0 -172
- package/esm2022/lib/storage/storage.accessor.string.mjs +0 -50
- package/esm2022/lib/storage/storage.di.mjs +0 -4
- package/esm2022/lib/storage/storage.object.localstorage.mjs +0 -47
- package/esm2022/lib/storage/storage.object.memory.mjs +0 -17
- package/esm2022/lib/storage/storage.providers.mjs +0 -41
- package/esm2022/lib/util/index.mjs +0 -3
- package/esm2022/lib/util/input.mjs +0 -7
- package/esm2022/lib/util/view.mjs +0 -81
- package/esm2022/lib/view/if.directive.mjs +0 -28
- package/esm2022/lib/view/index.mjs +0 -2
- package/index.d.ts +0 -1
- package/lib/action/action.d.ts +0 -80
- package/lib/action/action.handler.d.ts +0 -15
- package/lib/action/action.holder.d.ts +0 -38
- package/lib/action/action.machine.d.ts +0 -48
- package/lib/action/action.module.d.ts +0 -30
- package/lib/action/action.reference.d.ts +0 -11
- package/lib/action/action.store.d.ts +0 -208
- package/lib/action/action.store.source.d.ts +0 -77
- package/lib/action/action.store.source.provide.d.ts +0 -7
- package/lib/action/directive/auto/action.automodify.directive.d.ts +0 -11
- package/lib/action/directive/auto/action.autotrigger.directive.d.ts +0 -36
- package/lib/action/directive/auto/index.d.ts +0 -2
- package/lib/action/directive/context/action.directive.d.ts +0 -10
- package/lib/action/directive/context/action.source.directive.d.ts +0 -12
- package/lib/action/directive/context/index.d.ts +0 -2
- package/lib/action/directive/debug/action.logger.directive.d.ts +0 -11
- package/lib/action/directive/debug/index.d.ts +0 -1
- package/lib/action/directive/index.d.ts +0 -5
- package/lib/action/directive/map/action.map.d.ts +0 -43
- package/lib/action/directive/map/action.map.directive.d.ts +0 -12
- package/lib/action/directive/map/action.map.key.directive.d.ts +0 -14
- package/lib/action/directive/map/action.map.source.directive.d.ts +0 -19
- package/lib/action/directive/map/action.map.utility.d.ts +0 -48
- package/lib/action/directive/map/action.map.working.disable.directive.d.ts +0 -16
- package/lib/action/directive/map/index.d.ts +0 -6
- package/lib/action/directive/state/action.disabled.directive.d.ts +0 -15
- package/lib/action/directive/state/action.disableonsuccess.directive.d.ts +0 -15
- package/lib/action/directive/state/action.enforce.modified.directive.d.ts +0 -15
- package/lib/action/directive/state/action.error.handler.directive.d.ts +0 -18
- package/lib/action/directive/state/action.handler.directive.d.ts +0 -33
- package/lib/action/directive/state/action.handler.instance.d.ts +0 -22
- package/lib/action/directive/state/action.idle.directive.d.ts +0 -15
- package/lib/action/directive/state/action.presuccess.directive.d.ts +0 -15
- package/lib/action/directive/state/action.success.directive.d.ts +0 -15
- package/lib/action/directive/state/action.success.handler.directive.d.ts +0 -18
- package/lib/action/directive/state/action.triggered.directive.d.ts +0 -15
- package/lib/action/directive/state/action.value.directive.d.ts +0 -23
- package/lib/action/directive/state/action.value.stream.directive.d.ts +0 -19
- package/lib/action/directive/state/action.value.trigger.directive.d.ts +0 -38
- package/lib/action/directive/state/action.value.trigger.instance.d.ts +0 -45
- package/lib/action/directive/state/action.working.directive.d.ts +0 -17
- package/lib/action/directive/state/index.d.ts +0 -16
- package/lib/action/index.d.ts +0 -10
- package/lib/auth/auth.module.d.ts +0 -16
- package/lib/auth/auth.providers.d.ts +0 -12
- package/lib/auth/auth.role.any.directive.d.ts +0 -15
- package/lib/auth/auth.role.has.directive.d.ts +0 -15
- package/lib/auth/auth.role.not.directive.d.ts +0 -15
- package/lib/auth/auth.state.providers.d.ts +0 -7
- package/lib/auth/auth.state.service.d.ts +0 -11
- package/lib/auth/auth.user.d.ts +0 -28
- package/lib/auth/index.d.ts +0 -11
- package/lib/auth/router/auth.router.d.ts +0 -10
- package/lib/auth/router/auth.router.providers.d.ts +0 -18
- package/lib/auth/router/auth.router.service.d.ts +0 -46
- package/lib/auth/router/index.d.ts +0 -5
- package/lib/auth/router/provider/uirouter/auth.hook.d.ts +0 -18
- package/lib/auth/router/provider/uirouter/hook.d.ts +0 -51
- package/lib/auth/router/provider/uirouter/index.d.ts +0 -5
- package/lib/auth/router/provider/uirouter/redirect.d.ts +0 -9
- package/lib/auth/router/provider/uirouter/role.hook.d.ts +0 -44
- package/lib/auth/router/provider/uirouter/state.hook.d.ts +0 -31
- package/lib/auth/router/state/auth.router.state.providers.d.ts +0 -19
- package/lib/auth/router/state/effect/auth.router.state.effect.d.ts +0 -28
- package/lib/auth/router/state/effect/index.d.ts +0 -1
- package/lib/auth/router/state/index.d.ts +0 -2
- package/lib/auth/service/auth.service.d.ts +0 -46
- package/lib/auth/service/auth.service.rxjs.d.ts +0 -19
- package/lib/auth/service/index.d.ts +0 -2
- package/lib/auth/state/action/auth.action.d.ts +0 -12
- package/lib/auth/state/action/index.d.ts +0 -11
- package/lib/auth/state/action/user.action.d.ts +0 -34
- package/lib/auth/state/effect/auth.effect.d.ts +0 -28
- package/lib/auth/state/index.d.ts +0 -12
- package/lib/auth/state/reducer/index.d.ts +0 -29
- package/lib/auth/state/reducer/user.reducer.d.ts +0 -11
- package/lib/auth/state/state.d.ts +0 -5
- package/lib/button/action/action.button.directive.d.ts +0 -10
- package/lib/button/action/action.button.trigger.directive.d.ts +0 -14
- package/lib/button/action/index.d.ts +0 -2
- package/lib/button/button.d.ts +0 -113
- package/lib/button/button.directive.d.ts +0 -60
- package/lib/button/button.loading.directive.d.ts +0 -18
- package/lib/button/button.module.d.ts +0 -19
- package/lib/button/index.d.ts +0 -6
- package/lib/button/router/button.segue.directive.d.ts +0 -13
- package/lib/button/router/index.d.ts +0 -1
- package/lib/context/context.d.ts +0 -42
- package/lib/context/context.directive.d.ts +0 -13
- package/lib/context/context.module.d.ts +0 -10
- package/lib/context/context.providers.d.ts +0 -7
- package/lib/context/context.service.d.ts +0 -14
- package/lib/context/index.d.ts +0 -6
- package/lib/context/state/action/data.action.d.ts +0 -13
- package/lib/context/state/action/index.d.ts +0 -6
- package/lib/context/state/effect/index.d.ts +0 -24
- package/lib/context/state/index.d.ts +0 -12
- package/lib/context/state/reducer/data.reducer.d.ts +0 -13
- package/lib/context/state/reducer/index.d.ts +0 -34
- package/lib/context/state/state.d.ts +0 -9
- package/lib/environment/environment.d.ts +0 -21
- package/lib/environment/environment.providers.d.ts +0 -8
- package/lib/environment/environment.service.d.ts +0 -17
- package/lib/environment/index.d.ts +0 -3
- package/lib/filter/filter.abstract.connector.directive.d.ts +0 -13
- package/lib/filter/filter.abstract.source.directive.d.ts +0 -37
- package/lib/filter/filter.connect.source.directive.d.ts +0 -13
- package/lib/filter/filter.connector.directive.d.ts +0 -9
- package/lib/filter/filter.content.d.ts +0 -10
- package/lib/filter/filter.map.connector.directive.d.ts +0 -14
- package/lib/filter/filter.map.directive.d.ts +0 -10
- package/lib/filter/filter.map.instance.directive.d.ts +0 -16
- package/lib/filter/filter.map.source.directive.d.ts +0 -23
- package/lib/filter/filter.module.d.ts +0 -12
- package/lib/filter/filter.preset.d.ts +0 -29
- package/lib/filter/filter.source.directive.d.ts +0 -9
- package/lib/filter/index.d.ts +0 -12
- package/lib/index.d.ts +0 -14
- package/lib/injection/index.d.ts +0 -13
- package/lib/injection/injection.array.component.d.ts +0 -11
- package/lib/injection/injection.array.d.ts +0 -12
- package/lib/injection/injection.component.d.ts +0 -19
- package/lib/injection/injection.component.module.d.ts +0 -16
- package/lib/injection/injection.context.d.ts +0 -39
- package/lib/injection/injection.context.directive.d.ts +0 -26
- package/lib/injection/injection.context.forward.directive.d.ts +0 -15
- package/lib/injection/injection.d.ts +0 -53
- package/lib/injection/injection.directive.d.ts +0 -18
- package/lib/injection/injection.instance.d.ts +0 -32
- package/lib/injection/injection.rxjs.d.ts +0 -10
- package/lib/injection/injection.util.d.ts +0 -9
- package/lib/injection/injector.d.ts +0 -10
- package/lib/ngrx/index.d.ts +0 -1
- package/lib/ngrx/store.lockset.d.ts +0 -36
- package/lib/pipe/async/asobservable.pipe.d.ts +0 -12
- package/lib/pipe/async/async.pipe.module.d.ts +0 -10
- package/lib/pipe/async/index.d.ts +0 -2
- package/lib/pipe/date/date.pipe.module.d.ts +0 -43
- package/lib/pipe/date/datedayrange.pipe.d.ts +0 -9
- package/lib/pipe/date/datedaytimerange.pipe.d.ts +0 -9
- package/lib/pipe/date/datedistance.pipe.d.ts +0 -8
- package/lib/pipe/date/dateformatdistance.pipe.d.ts +0 -12
- package/lib/pipe/date/datefromtoformat.pipe.d.ts +0 -13
- package/lib/pipe/date/daterangedistance.pipe.d.ts +0 -9
- package/lib/pipe/date/datetimerange.pipe.d.ts +0 -9
- package/lib/pipe/date/datetimerangeonly.pipe.d.ts +0 -9
- package/lib/pipe/date/datetimerangeonlydistance.pipe.d.ts +0 -9
- package/lib/pipe/date/index.d.ts +0 -17
- package/lib/pipe/date/minutesstring.pipe.d.ts +0 -8
- package/lib/pipe/date/systemdatetotargetdate.pipe.d.ts +0 -12
- package/lib/pipe/date/targetdatetosystemdate.pipe.d.ts +0 -12
- package/lib/pipe/date/timedistance.pipe.d.ts +0 -13
- package/lib/pipe/date/timezoneabbreviation.pipe.d.ts +0 -12
- package/lib/pipe/date/tojsdate.pipe.d.ts +0 -10
- package/lib/pipe/date/tominutes.pipe.d.ts +0 -7
- package/lib/pipe/index.d.ts +0 -5
- package/lib/pipe/misc/index.d.ts +0 -2
- package/lib/pipe/misc/misc.pipe.module.d.ts +0 -12
- package/lib/pipe/misc/prettyjson.pipe.d.ts +0 -9
- package/lib/pipe/pipe.module.d.ts +0 -15
- package/lib/pipe/value/cuttext.pipe.d.ts +0 -11
- package/lib/pipe/value/dollar.pipe.d.ts +0 -13
- package/lib/pipe/value/getvalue.pipe.d.ts +0 -19
- package/lib/pipe/value/index.d.ts +0 -4
- package/lib/pipe/value/value.pipe.module.d.ts +0 -17
- package/lib/router/anchor/anchor.d.ts +0 -71
- package/lib/router/anchor/anchor.directive.d.ts +0 -30
- package/lib/router/anchor/clickable.d.ts +0 -20
- package/lib/router/anchor/index.d.ts +0 -4
- package/lib/router/anchor/mousable.d.ts +0 -9
- package/lib/router/auth/hook/id.hook.d.ts +0 -44
- package/lib/router/auth/hook/index.d.ts +0 -2
- package/lib/router/auth/hook/uid.hook.d.ts +0 -41
- package/lib/router/auth/index.d.ts +0 -1
- package/lib/router/index.d.ts +0 -5
- package/lib/router/model/id.param.redirect.d.ts +0 -51
- package/lib/router/model/index.d.ts +0 -6
- package/lib/router/model/model.module.d.ts +0 -16
- package/lib/router/model/model.router.d.ts +0 -35
- package/lib/router/model/model.router.id.directive.d.ts +0 -27
- package/lib/router/model/model.router.key.directive.d.ts +0 -29
- package/lib/router/model/model.router.uid.directive.d.ts +0 -13
- package/lib/router/router/index.d.ts +0 -4
- package/lib/router/router/provider/angular/angular.router.service.d.ts +0 -24
- package/lib/router/router/provider/angular/angular.router.service.module.d.ts +0 -8
- package/lib/router/router/provider/angular/index.d.ts +0 -2
- package/lib/router/router/provider/index.d.ts +0 -2
- package/lib/router/router/provider/uirouter/index.d.ts +0 -3
- package/lib/router/router/provider/uirouter/uirouter.router.service.d.ts +0 -32
- package/lib/router/router/provider/uirouter/uirouter.router.service.module.d.ts +0 -11
- package/lib/router/router/provider/uirouter/uirouter.router.service.providers.d.ts +0 -7
- package/lib/router/router/service/index.d.ts +0 -5
- package/lib/router/router/service/router.go.d.ts +0 -14
- package/lib/router/router/service/router.service.d.ts +0 -49
- package/lib/router/router/service/router.service.rxjs.d.ts +0 -27
- package/lib/router/router/service/router.service.util.d.ts +0 -26
- package/lib/router/router/service/router.transition.service.d.ts +0 -11
- package/lib/router/router/transition/index.d.ts +0 -4
- package/lib/router/router/transition/transition.d.ts +0 -13
- package/lib/router/router/transition/transition.directive.d.ts +0 -13
- package/lib/router/router/transition/transition.rxjs.d.ts +0 -67
- package/lib/router/router/transition/transition.watcher.directive.d.ts +0 -14
- package/lib/router/router/util/index.d.ts +0 -2
- package/lib/router/router/util/route.default.d.ts +0 -20
- package/lib/router/router/util/route.reader.d.ts +0 -56
- package/lib/router/segue.d.ts +0 -38
- package/lib/rxjs/clean.d.ts +0 -16
- package/lib/rxjs/destroy.d.ts +0 -7
- package/lib/rxjs/index.d.ts +0 -6
- package/lib/rxjs/loading.d.ts +0 -13
- package/lib/rxjs/lockset.d.ts +0 -47
- package/lib/rxjs/rxjs.directive.d.ts +0 -29
- package/lib/rxjs/subscription.d.ts +0 -9
- package/lib/storage/index.d.ts +0 -8
- package/lib/storage/storage.accessor.d.ts +0 -35
- package/lib/storage/storage.accessor.simple.d.ts +0 -80
- package/lib/storage/storage.accessor.simple.factory.d.ts +0 -17
- package/lib/storage/storage.accessor.string.d.ts +0 -16
- package/lib/storage/storage.di.d.ts +0 -3
- package/lib/storage/storage.object.localstorage.d.ts +0 -16
- package/lib/storage/storage.object.memory.d.ts +0 -9
- package/lib/storage/storage.providers.d.ts +0 -13
- package/lib/util/index.d.ts +0 -2
- package/lib/util/input.d.ts +0 -6
- package/lib/util/view.d.ts +0 -61
- package/lib/view/if.directive.d.ts +0 -18
- package/lib/view/index.d.ts +0 -1
|
@@ -1,290 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { ComponentStore } from '@ngrx/component-store';
|
|
3
|
-
import { distinctUntilChanged, filter, map, shareReplay, switchMap, startWith, of } from 'rxjs';
|
|
4
|
-
import { BooleanStringKeyArrayUtility } from '@dereekb/util';
|
|
5
|
-
import { idleLoadingState, errorResult, filterMaybe, scanCount, successResult, beginLoading } from '@dereekb/rxjs';
|
|
6
|
-
import { DbxActionState, DEFAULT_ACTION_DISABLED_KEY, isIdleActionState, loadingStateTypeForActionState } from './action';
|
|
7
|
-
import { cleanLockSet } from '../rxjs';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
export function isActionContextEnabled(state) {
|
|
10
|
-
return BooleanStringKeyArrayUtility.isFalse(state.disabled);
|
|
11
|
-
}
|
|
12
|
-
export function isActionContextDisabled(state) {
|
|
13
|
-
return BooleanStringKeyArrayUtility.isTrue(state.disabled);
|
|
14
|
-
}
|
|
15
|
-
export function isDisabledActionContextState(state) {
|
|
16
|
-
return isIdleActionState(state.actionState) && isActionContextDisabled(state);
|
|
17
|
-
}
|
|
18
|
-
export function isWorkingActionState(actionState) {
|
|
19
|
-
return !isIdleActionState(actionState);
|
|
20
|
-
}
|
|
21
|
-
export function canTriggerActionState(actionState) {
|
|
22
|
-
return actionState !== DbxActionState.DISABLED && isIdleActionState(actionState);
|
|
23
|
-
}
|
|
24
|
-
export function canTriggerAction(state) {
|
|
25
|
-
return isActionContextEnabled(state) && isIdleActionState(state.actionState);
|
|
26
|
-
}
|
|
27
|
-
export function canReadyValue(state) {
|
|
28
|
-
return state.actionState === DbxActionState.TRIGGERED;
|
|
29
|
-
}
|
|
30
|
-
export function actionContextIsModifiedAndCanTrigger(state) {
|
|
31
|
-
// console.log('check: ', state, state.isModified, canTriggerAction(state));
|
|
32
|
-
return state.isModified && canTriggerAction(state);
|
|
33
|
-
}
|
|
34
|
-
export function actionContextHasNoErrorAndIsModifiedAndCanTrigger(state) {
|
|
35
|
-
return !state.error && actionContextIsModifiedAndCanTrigger(state);
|
|
36
|
-
}
|
|
37
|
-
export function loadingStateForActionContextState(state) {
|
|
38
|
-
let loadingState;
|
|
39
|
-
switch (state.actionState) {
|
|
40
|
-
case DbxActionState.RESOLVED:
|
|
41
|
-
loadingState = successResult(state.result);
|
|
42
|
-
break;
|
|
43
|
-
case DbxActionState.REJECTED:
|
|
44
|
-
loadingState = errorResult(state.error);
|
|
45
|
-
break;
|
|
46
|
-
case DbxActionState.IDLE:
|
|
47
|
-
case DbxActionState.DISABLED:
|
|
48
|
-
loadingState = idleLoadingState();
|
|
49
|
-
break;
|
|
50
|
-
default:
|
|
51
|
-
loadingState = beginLoading(state.workProgress != null ? { loadingProgress: state.workProgress } : undefined);
|
|
52
|
-
break;
|
|
53
|
-
}
|
|
54
|
-
return loadingState;
|
|
55
|
-
}
|
|
56
|
-
export function loadingStateTypeForActionContextState(state) {
|
|
57
|
-
return loadingStateTypeForActionState(state.actionState);
|
|
58
|
-
}
|
|
59
|
-
const INITIAL_STATE = {
|
|
60
|
-
isModified: false,
|
|
61
|
-
actionState: DbxActionState.IDLE
|
|
62
|
-
};
|
|
63
|
-
export class ActionContextStore extends ComponentStore {
|
|
64
|
-
lockSet = cleanLockSet({
|
|
65
|
-
onLockSetDestroy: () => super.ngOnDestroy(),
|
|
66
|
-
destroyLocksetTiming: {
|
|
67
|
-
delayTime: 2000
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
constructor() {
|
|
71
|
-
super({ ...INITIAL_STATE });
|
|
72
|
-
this.lockSet.addLock('working', this.isWorking$);
|
|
73
|
-
}
|
|
74
|
-
// MARK: Accessors
|
|
75
|
-
actionState$ = this.state$.pipe(map((x) => (isDisabledActionContextState(x) ? DbxActionState.DISABLED : x.actionState)), shareReplay(1));
|
|
76
|
-
/**
|
|
77
|
-
* Returns the current disabled reasons/keys.
|
|
78
|
-
*/
|
|
79
|
-
disabledKeys$ = this.state$.pipe(map((x) => [...(x.disabled ?? [])]), distinctUntilChanged(), shareReplay(1));
|
|
80
|
-
/**
|
|
81
|
-
* Current value of the state.
|
|
82
|
-
*/
|
|
83
|
-
currentValue$ = this.state$.pipe(map((x) => x.value));
|
|
84
|
-
/**
|
|
85
|
-
* Maps the current state to true or not when the action state changes to/from disabled.
|
|
86
|
-
*/
|
|
87
|
-
isDisabled$ = this.state$.pipe(map(isDisabledActionContextState), distinctUntilChanged(), shareReplay(1));
|
|
88
|
-
/**
|
|
89
|
-
* Pipes when idle but modified.
|
|
90
|
-
*/
|
|
91
|
-
isModified$ = this.afterDistinctBoolean((x) => x.isModified);
|
|
92
|
-
/**
|
|
93
|
-
* Pipes true when idle.
|
|
94
|
-
*/
|
|
95
|
-
idle$ = this.actionState$.pipe(map((x) => x === DbxActionState.IDLE), distinctUntilChanged(), shareReplay(1));
|
|
96
|
-
/**
|
|
97
|
-
* Pipes true when triggered.
|
|
98
|
-
*/
|
|
99
|
-
triggered$ = this.afterDistinctActionState(DbxActionState.TRIGGERED, () => true);
|
|
100
|
-
/**
|
|
101
|
-
* Pipes the readied value on ValueReady.
|
|
102
|
-
*/
|
|
103
|
-
valueReady$ = this.afterDistinctActionState(DbxActionState.VALUE_READY, (x) => x.value);
|
|
104
|
-
/**
|
|
105
|
-
* Pipes the working progress on the working state.
|
|
106
|
-
*/
|
|
107
|
-
workProgress$ = this.state$.pipe(map((x) => x.workProgress), distinctUntilChanged(), shareReplay(1));
|
|
108
|
-
/**
|
|
109
|
-
* Pipes the error on the rejection state.
|
|
110
|
-
*/
|
|
111
|
-
rejected$ = this.afterDistinctActionState(DbxActionState.REJECTED, (x) => x.error);
|
|
112
|
-
/**
|
|
113
|
-
* Pipes the result when the ActionState becomes rejected.
|
|
114
|
-
*/
|
|
115
|
-
rejectedPair$ = this.afterDistinctActionState(DbxActionState.RESOLVED, (x) => ({ value: x.value, error: x.error }));
|
|
116
|
-
/**
|
|
117
|
-
* Pipes the result when the ActionState becomes working.
|
|
118
|
-
*/
|
|
119
|
-
working$ = this.afterDistinctActionState(DbxActionState.WORKING, () => true);
|
|
120
|
-
/**
|
|
121
|
-
* Whether or not it is currently in a working state.
|
|
122
|
-
*/
|
|
123
|
-
isWorking$ = this.afterDistinctBoolean((x) => isWorkingActionState(x.actionState));
|
|
124
|
-
/**
|
|
125
|
-
* Pipes the current work or work progress.
|
|
126
|
-
*/
|
|
127
|
-
isWorkingOrWorkProgress$ = this.isWorking$.pipe(switchMap((x) => {
|
|
128
|
-
let obs;
|
|
129
|
-
if (x) {
|
|
130
|
-
obs = this.workProgress$.pipe(filter((x) => x != null), startWith(x));
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
obs = of(x);
|
|
134
|
-
}
|
|
135
|
-
return obs;
|
|
136
|
-
}), distinctUntilChanged(), shareReplay(1));
|
|
137
|
-
/**
|
|
138
|
-
* Pipes the current error.
|
|
139
|
-
*/
|
|
140
|
-
error$ = this.state$.pipe(map((x) => x.error), distinctUntilChanged(), shareReplay(1));
|
|
141
|
-
/**
|
|
142
|
-
* Pipes the result when the ActionState becomes success.
|
|
143
|
-
*/
|
|
144
|
-
success$ = this.afterDistinctActionState(DbxActionState.RESOLVED, (x) => x.result);
|
|
145
|
-
/**
|
|
146
|
-
* Pipes the result when the ActionState becomes success.
|
|
147
|
-
*/
|
|
148
|
-
successPair$ = this.afterDistinctActionState(DbxActionState.RESOLVED, (x) => ({ value: x.value, result: x.result }));
|
|
149
|
-
/**
|
|
150
|
-
* Whether or not it is currently in a success state.
|
|
151
|
-
*/
|
|
152
|
-
isSuccess$ = this.afterDistinctBoolean((x) => x.actionState === DbxActionState.RESOLVED);
|
|
153
|
-
/**
|
|
154
|
-
* Returns a loading state based on the current state.
|
|
155
|
-
*/
|
|
156
|
-
loadingState$ = this.afterDistinctLoadingStateTypeChange().pipe(switchMap((x) => {
|
|
157
|
-
const base = loadingStateForActionContextState(x);
|
|
158
|
-
let obs;
|
|
159
|
-
if (base.loading === true) {
|
|
160
|
-
obs = this.workProgress$.pipe(filter((x) => x != null), map((loadingProgress) => ({ ...base, loadingProgress })), startWith(base));
|
|
161
|
-
}
|
|
162
|
-
else {
|
|
163
|
-
obs = of(base);
|
|
164
|
-
}
|
|
165
|
-
return obs;
|
|
166
|
-
}), shareReplay(1));
|
|
167
|
-
/**
|
|
168
|
-
* Returns the current LoadingStateType based on the current state.
|
|
169
|
-
*/
|
|
170
|
-
loadingStateType$ = this.state$.pipe(map((x) => loadingStateTypeForActionContextState(x)), distinctUntilChanged(), shareReplay(1));
|
|
171
|
-
/**
|
|
172
|
-
* Number of errors since last success.
|
|
173
|
-
*/
|
|
174
|
-
errorCountSinceLastSuccess$ = this.isSuccess$.pipe(startWith(false), distinctUntilChanged(), switchMap(() => this.error$.pipe(filterMaybe(), scanCount(), startWith(0))), shareReplay(1));
|
|
175
|
-
/**
|
|
176
|
-
* Whether or not the state can be triggered.
|
|
177
|
-
*/
|
|
178
|
-
canTrigger$ = this.state$.pipe(map(canTriggerAction), distinctUntilChanged(), shareReplay(1));
|
|
179
|
-
/**
|
|
180
|
-
* Pipe that maps whether or not this is modified and can be triggered.
|
|
181
|
-
*
|
|
182
|
-
* Updates every state update instead of when the value changes.
|
|
183
|
-
*/
|
|
184
|
-
isModifiedAndCanTriggerUpdates$ = this.state$.pipe(map((x) => actionContextIsModifiedAndCanTrigger(x), shareReplay(1)));
|
|
185
|
-
/**
|
|
186
|
-
* Whether or not it can be triggered and modified.
|
|
187
|
-
*/
|
|
188
|
-
isModifiedAndCanTrigger$ = this.isModifiedAndCanTriggerUpdates$.pipe(distinctUntilChanged());
|
|
189
|
-
hasNoErrorAndIsModifiedAndCanTrigger$ = this.state$.pipe(map((x) => actionContextHasNoErrorAndIsModifiedAndCanTrigger(x)), distinctUntilChanged(), shareReplay(1));
|
|
190
|
-
// MARK: State Changes
|
|
191
|
-
/**
|
|
192
|
-
* Adds a disabled reason.
|
|
193
|
-
*/
|
|
194
|
-
disable = this.updater((state, key) => ({
|
|
195
|
-
...state,
|
|
196
|
-
disabled: BooleanStringKeyArrayUtility.insert(state.disabled, key ?? DEFAULT_ACTION_DISABLED_KEY)
|
|
197
|
-
}));
|
|
198
|
-
/**
|
|
199
|
-
* Removes a disabled reason.
|
|
200
|
-
*/
|
|
201
|
-
enable = this.updater((state, key) => ({
|
|
202
|
-
...state,
|
|
203
|
-
disabled: BooleanStringKeyArrayUtility.remove(state.disabled, key ?? DEFAULT_ACTION_DISABLED_KEY)
|
|
204
|
-
}));
|
|
205
|
-
/**
|
|
206
|
-
* Triggers the modified state, if not disabled.
|
|
207
|
-
*
|
|
208
|
-
* Equivalent to calling setIsModified() with opposite input.
|
|
209
|
-
*/
|
|
210
|
-
setIsSame = this.updater(updateIsSameOnActionContextState);
|
|
211
|
-
/**
|
|
212
|
-
* Triggers the modified state, if not disabled.
|
|
213
|
-
*/
|
|
214
|
-
setIsModified = this.updater(updateIsModifiedOnActionContextState);
|
|
215
|
-
/**
|
|
216
|
-
* Triggers the action if the state is currently not idle. The current state is cleared, but the error is retained (as we may need the error from the previous attempt).
|
|
217
|
-
*
|
|
218
|
-
* Will not fire if the action is disabled.
|
|
219
|
-
*/
|
|
220
|
-
trigger = this.updater((state) => (canTriggerAction(state) ? { isModified: state.isModified, actionState: DbxActionState.TRIGGERED, error: state.error, value: undefined } : state));
|
|
221
|
-
/**
|
|
222
|
-
* Updates the value, setting value ready. The current result is cleared.
|
|
223
|
-
*/
|
|
224
|
-
readyValue = this.updater((state, value) => (canReadyValue(state) ? { ...state, actionState: DbxActionState.VALUE_READY, value, result: undefined } : state));
|
|
225
|
-
/**
|
|
226
|
-
* Notifys the context that the action is in progress.
|
|
227
|
-
*/
|
|
228
|
-
startWorking = this.updater((state) => ({ ...state, actionState: DbxActionState.WORKING, workProgress: null }));
|
|
229
|
-
/**
|
|
230
|
-
* Updates the working progress.
|
|
231
|
-
*/
|
|
232
|
-
setWorkProgress = this.updater((state, workProgress) => ({ ...state, workProgress }));
|
|
233
|
-
/**
|
|
234
|
-
* Triggers rejection of the action. The value is cleared.
|
|
235
|
-
*/
|
|
236
|
-
reject = this.updater((state, error) => ({
|
|
237
|
-
isModified: state.isModified,
|
|
238
|
-
actionState: DbxActionState.REJECTED,
|
|
239
|
-
error,
|
|
240
|
-
errorCount: (state.errorCount ?? 0) + 1,
|
|
241
|
-
disabled: state.disabled
|
|
242
|
-
}));
|
|
243
|
-
/**
|
|
244
|
-
* Updates the state to success, and optionally sets a result.
|
|
245
|
-
*
|
|
246
|
-
* Clears modified state, and any errors.
|
|
247
|
-
*/
|
|
248
|
-
resolve = this.updater((state, result) => ({ isModified: false, actionState: DbxActionState.RESOLVED, value: state.value, result, error: undefined, disabled: state.disabled }));
|
|
249
|
-
/**
|
|
250
|
-
* Completely resets the store.
|
|
251
|
-
*/
|
|
252
|
-
reset = this.updater(() => ({ ...INITIAL_STATE }));
|
|
253
|
-
// MARK: Utility
|
|
254
|
-
afterDistinctBoolean(fromState) {
|
|
255
|
-
return this.state$.pipe(map((x) => fromState(x)), distinctUntilChanged(), shareReplay(1));
|
|
256
|
-
}
|
|
257
|
-
afterDistinctActionState(actionState, fromState) {
|
|
258
|
-
return this.afterDistinctActionStateChange().pipe(filter((x) => x.actionState === actionState), // Only pipe when the new action state matches.
|
|
259
|
-
map((x) => fromState(x)), shareReplay(1));
|
|
260
|
-
}
|
|
261
|
-
afterDistinctActionStateChange() {
|
|
262
|
-
return this.state$.pipe(map((x) => [x, x.actionState]), distinctUntilChanged((a, b) => a?.[1] === b?.[1]), // Filter out when the state remains the same.
|
|
263
|
-
map((x) => x[0]), shareReplay(1));
|
|
264
|
-
}
|
|
265
|
-
afterDistinctLoadingStateTypeChange() {
|
|
266
|
-
return this.state$.pipe(map((x) => [x, loadingStateTypeForActionContextState(x)]), distinctUntilChanged((a, b) => a?.[1] === b?.[1]), // Filter out when the loading state remains the same.
|
|
267
|
-
map((x) => x[0]), shareReplay(1));
|
|
268
|
-
}
|
|
269
|
-
// MARK: Cleanup
|
|
270
|
-
ngOnDestroy() {
|
|
271
|
-
// do not call super.destroy here, to keep the component store from destroying itself.
|
|
272
|
-
// the lockset is configured to cleanup the component store.
|
|
273
|
-
}
|
|
274
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionContextStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
275
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionContextStore });
|
|
276
|
-
}
|
|
277
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionContextStore, decorators: [{
|
|
278
|
-
type: Injectable
|
|
279
|
-
}], ctorParameters: () => [] });
|
|
280
|
-
function updateIsSameOnActionContextState(state, isSame) {
|
|
281
|
-
return updateIsModifiedOnActionContextState(state, isSame == null ? false : !isSame);
|
|
282
|
-
}
|
|
283
|
-
function updateIsModifiedOnActionContextState(state, isModified) {
|
|
284
|
-
return {
|
|
285
|
-
...state,
|
|
286
|
-
actionState: state.actionState === DbxActionState.RESOLVED ? DbxActionState.IDLE : state.actionState, // Set to idle from success.
|
|
287
|
-
isModified: isModified ?? true // if isModified is not input, default it to true
|
|
288
|
-
};
|
|
289
|
-
}
|
|
290
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLnN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWNvcmUvc3JjL2xpYi9hY3Rpb24vYWN0aW9uLnN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBYyxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RyxPQUFPLEVBQXlCLDRCQUE0QixFQUF3QixNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQW9CLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQWdCLFNBQVMsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25KLE9BQU8sRUFBK0MsY0FBYyxFQUE0RSwyQkFBMkIsRUFBRSxpQkFBaUIsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNqUCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDOztBQUV2QyxNQUFNLFVBQVUsc0JBQXNCLENBQUMsS0FBeUI7SUFDOUQsT0FBTyw0QkFBNEIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQzlELENBQUM7QUFFRCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsS0FBeUI7SUFDL0QsT0FBTyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQzdELENBQUM7QUFFRCxNQUFNLFVBQVUsNEJBQTRCLENBQUMsS0FBeUI7SUFDcEUsT0FBTyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksdUJBQXVCLENB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RSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUscUNBQXFDLENBQUMsQ0FBQyxDQUFDLENBQTJDLENBQUMsRUFDbkcsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLHNEQUFzRDtRQUN6RyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQTZCLENBQUMsRUFDNUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFDSixDQUFDO0lBRUQsZ0JBQWdCO0lBQ1AsV0FBVztRQUNsQixzRkFBc0Y7UUFDdEYsNERBQTREO0lBQzlELENBQUM7d0dBM1RVLGtCQUFrQjs0R0FBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVOztBQStUWCxTQUFTLGdDQUFnQyxDQUFPLEtBQStCLEVBQUUsTUFBdUI7SUFDdEcsT0FBTyxvQ0FBb0MsQ0FBQyxLQUFLLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZGLENBQUM7QUFFRCxTQUFTLG9DQUFvQyxDQUFPLEtBQStCLEVBQUUsVUFBMkI7SUFDOUcsT0FBTztRQUNMLEdBQUcsS0FBSztRQUNSLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVyxLQUFLLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsNEJBQTRCO1FBQ2xJLFVBQVUsRUFBRyxVQUFzQixJQUFJLElBQUksQ0FBQyxpREFBaUQ7S0FDOUYsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudFN0b3JlIH0gZnJvbSAnQG5ncngvY29tcG9uZW50LXN0b3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCwgc3RhcnRXaXRoLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQm9vbGVhblN0cmluZ0tleUFycmF5LCBCb29sZWFuU3RyaW5nS2V5QXJyYXlVdGlsaXR5LCBNYXliZSwgUmVhZGFibGVFcnJvciB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgTG9hZGluZ1N0YXRlVHlwZSwgaWRsZUxvYWRpbmdTdGF0ZSwgZXJyb3JSZXN1bHQsIGZpbHRlck1heWJlLCBMb2FkaW5nU3RhdGUsIHNjYW5Db3VudCwgc3VjY2Vzc1Jlc3VsdCwgYmVnaW5Mb2FkaW5nIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBEYnhBY3Rpb25EaXNhYmxlZEtleSwgRGJ4QWN0aW9uUmVqZWN0ZWRQYWlyLCBEYnhBY3Rpb25TdGF0ZSwgRGJ4QWN0aW9uU3VjY2Vzc1BhaXIsIERieEFjdGlvbldvcmtPcldvcmtQcm9ncmVzcywgRGJ4QWN0aW9uV29ya1Byb2dyZXNzLCBERUZBVUxUX0FDVElPTl9ESVNBQkxFRF9LRVksIGlzSWRsZUFjdGlvblN0YXRlLCBsb2FkaW5nU3RhdGVUeXBlRm9yQWN0aW9uU3RhdGUgfSBmcm9tICcuL2FjdGlvbic7XG5pbXBvcnQgeyBjbGVhbkxvY2tTZXQgfSBmcm9tICcuLi9yeGpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzQWN0aW9uQ29udGV4dEVuYWJsZWQoc3RhdGU6IEFjdGlvbkNvbnRleHRTdGF0ZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gQm9vbGVhblN0cmluZ0tleUFycmF5VXRpbGl0eS5pc0ZhbHNlKHN0YXRlLmRpc2FibGVkKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQWN0aW9uQ29udGV4dERpc2FibGVkKHN0YXRlOiBBY3Rpb25Db250ZXh0U3RhdGUpOiBib29sZWFuIHtcbiAgcmV0dXJuIEJvb2xlYW5TdHJpbmdLZXlBcnJheVV0aWxpdHkuaXNUcnVlKHN0YXRlLmRpc2FibGVkKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGlzYWJsZWRBY3Rpb25Db250ZXh0U3RhdGUoc3RhdGU6IEFjdGlvbkNvbnRleHRTdGF0ZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gaXNJZGxlQWN0aW9uU3RhdGUoc3RhdGUuYWN0aW9uU3RhdGUpICYmIGlzQWN0aW9uQ29udGV4dERpc2FibGVkKHN0YXRlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzV29ya2luZ0FjdGlvblN0YXRlKGFjdGlvblN0YXRlOiBEYnhBY3Rpb25TdGF0ZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gIWlzSWRsZUFjdGlvblN0YXRlKGFjdGlvblN0YXRlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhblRyaWdnZXJBY3Rpb25TdGF0ZShhY3Rpb25TdGF0ZTogRGJ4QWN0aW9uU3RhdGUpOiBib29sZWFuIHtcbiAgcmV0dXJuIGFjdGlvblN0YXRlICE9PSBEYnhBY3Rpb25TdGF0ZS5ESVNBQkxFRCAmJiBpc0lkbGVBY3Rpb25TdGF0ZShhY3Rpb25TdGF0ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYW5UcmlnZ2VyQWN0aW9uKHN0YXRlOiBBY3Rpb25Db250ZXh0U3RhdGUpOiBib29sZWFuIHtcbiAgcmV0dXJuIGlzQWN0aW9uQ29udGV4dEVuYWJsZWQoc3RhdGUpICYmIGlzSWRsZUFjdGlvblN0YXRlKHN0YXRlLmFjdGlvblN0YXRlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhblJlYWR5VmFsdWUoc3RhdGU6IEFjdGlvbkNvbnRleHRTdGF0ZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gc3RhdGUuYWN0aW9uU3RhdGUgPT09IERieEFjdGlvblN0YXRlLlRSSUdHRVJFRDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbkNvbnRleHRJc01vZGlmaWVkQW5kQ2FuVHJpZ2dlcihzdGF0ZTogQWN0aW9uQ29udGV4dFN0YXRlKTogYm9vbGVhbiB7XG4gIC8vIGNvbnNvbGUubG9nKCdjaGVjazogJywgc3RhdGUsIHN0YXRlLmlzTW9kaWZpZWQsIGNhblRyaWdnZXJBY3Rpb24oc3RhdGUpKTtcbiAgcmV0dXJuIHN0YXRlLmlzTW9kaWZpZWQgJiYgY2FuVHJpZ2dlckFjdGlvbihzdGF0ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb25Db250ZXh0SGFzTm9FcnJvckFuZElzTW9kaWZpZWRBbmRDYW5UcmlnZ2VyKHN0YXRlOiBBY3Rpb25Db250ZXh0U3RhdGUpOiBib29sZWFuIHtcbiAgcmV0dXJuICFzdGF0ZS5lcnJvciAmJiBhY3Rpb25Db250ZXh0SXNNb2RpZmllZEFuZENhblRyaWdnZXIoc3RhdGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZGluZ1N0YXRlRm9yQWN0aW9uQ29udGV4dFN0YXRlPE8gPSB1bmtub3duPihzdGF0ZTogQWN0aW9uQ29udGV4dFN0YXRlPHVua25vd24sIE8+KTogTG9hZGluZ1N0YXRlPE8+IHtcbiAgbGV0IGxvYWRpbmdTdGF0ZTogTG9hZGluZ1N0YXRlPE8+O1xuXG4gIHN3aXRjaCAoc3RhdGUuYWN0aW9uU3RhdGUpIHtcbiAgICBjYXNlIERieEFjdGlvblN0YXRlLlJFU09MVkVEOlxuICAgICAgbG9hZGluZ1N0YXRlID0gc3VjY2Vzc1Jlc3VsdChzdGF0ZS5yZXN1bHQpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBEYnhBY3Rpb25TdGF0ZS5SRUpFQ1RFRDpcbiAgICAgIGxvYWRpbmdTdGF0ZSA9IGVycm9yUmVzdWx0KHN0YXRlLmVycm9yKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgRGJ4QWN0aW9uU3RhdGUuSURMRTpcbiAgICBjYXNlIERieEFjdGlvblN0YXRlLkRJU0FCTEVEOlxuICAgICAgbG9hZGluZ1N0YXRlID0gaWRsZUxvYWRpbmdTdGF0ZSgpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIGxvYWRpbmdTdGF0ZSA9IGJlZ2luTG9hZGluZyhzdGF0ZS53b3JrUHJvZ3Jlc3MgIT0gbnVsbCA/IHsgbG9hZGluZ1Byb2dyZXNzOiBzdGF0ZS53b3JrUHJvZ3Jlc3MgfSA6IHVuZGVmaW5lZCk7XG4gICAgICBicmVhaztcbiAgfVxuXG4gIHJldHVybiBsb2FkaW5nU3RhdGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkaW5nU3RhdGVUeXBlRm9yQWN0aW9uQ29udGV4dFN0YXRlKHN0YXRlOiBBY3Rpb25Db250ZXh0U3RhdGUpOiBMb2FkaW5nU3RhdGVUeXBlIHtcbiAgcmV0dXJuIGxvYWRpbmdTdGF0ZVR5cGVGb3JBY3Rpb25TdGF0ZShzdGF0ZS5hY3Rpb25TdGF0ZSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uQ29udGV4dFN0YXRlPFQgPSB1bmtub3duLCBPID0gdW5rbm93bj4ge1xuICByZWFkb25seSBhY3Rpb25TdGF0ZTogRGJ4QWN0aW9uU3RhdGU7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGlzIGFjdGlvbiBpcyBmbGFnZ2VkIGFzIGhhdmluZyBiZWVuIG1vZGlmaWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNNb2RpZmllZDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSB3b3JraW5nIHByb2dyZXNzIG9mIHRoZSBhY3Rpb24uXG4gICAqXG4gICAqIElzIHJlc2V0IHRvIG51bGwgd2hlbiB0cmlnZ2VyZWQvcmVhZHkgdmFsdWUgaXMgc2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgd29ya1Byb2dyZXNzPzogTWF5YmU8RGJ4QWN0aW9uV29ya1Byb2dyZXNzPjtcbiAgLyoqXG4gICAqIFZhbHVlIHRoYXQgaXMgc2V0IGFmdGVyIGEgdHJpZ2dlcmVkIGFjdGlvbi4gTm90IHRvIGJlIGNvbmZ1c2VkIHdpdGggcmVzdWx0LlxuICAgKi9cbiAgcmVhZG9ubHkgdmFsdWU/OiBNYXliZTxUPjtcbiAgLyoqXG4gICAqIFJlc29sdmVkIHJlc3VsdCB2YWx1ZS5cbiAgICovXG4gIHJlYWRvbmx5IHJlc3VsdD86IE1heWJlPE8+O1xuICAvKipcbiAgICogUmVqZWN0ZWQgZXJyb3IsIGlmIGF2YWlsYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IGVycm9yPzogTWF5YmU8UmVhZGFibGVFcnJvcj47XG4gIC8qKlxuICAgKiBDdXJyZW50IGRpc2FibGVkIHN0YXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgZGlzYWJsZWQ/OiBCb29sZWFuU3RyaW5nS2V5QXJyYXk7XG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgY29uc2VjdXRpdmUgZXJyb3JzIHRoYXQgaGF2ZSBvY2N1cmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZXJyb3JDb3VudD86IG51bWJlcjtcbn1cblxuY29uc3QgSU5JVElBTF9TVEFURTogQWN0aW9uQ29udGV4dFN0YXRlID0ge1xuICBpc01vZGlmaWVkOiBmYWxzZSxcbiAgYWN0aW9uU3RhdGU6IERieEFjdGlvblN0YXRlLklETEVcbn07XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBY3Rpb25Db250ZXh0U3RvcmU8VCA9IHVua25vd24sIE8gPSB1bmtub3duPiBleHRlbmRzIENvbXBvbmVudFN0b3JlPEFjdGlvbkNvbnRleHRTdGF0ZTxULCBPPj4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICByZWFkb25seSBsb2NrU2V0ID0gY2xlYW5Mb2NrU2V0KHtcbiAgICBvbkxvY2tTZXREZXN0cm95OiAoKSA9PiBzdXBlci5uZ09uRGVzdHJveSgpLFxuICAgIGRlc3Ryb3lMb2Nrc2V0VGltaW5nOiB7XG4gICAgICBkZWxheVRpbWU6IDIwMDBcbiAgICB9XG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKHsgLi4uSU5JVElBTF9TVEFURSB9IGFzIEFjdGlvbkNvbnRleHRTdGF0ZTxULCBPPik7XG4gICAgdGhpcy5sb2NrU2V0LmFkZExvY2soJ3dvcmtpbmcnLCB0aGlzLmlzV29ya2luZyQpO1xuICB9XG5cbiAgLy8gTUFSSzogQWNjZXNzb3JzXG4gIHJlYWRvbmx5IGFjdGlvblN0YXRlJCA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiAoaXNEaXNhYmxlZEFjdGlvbkNvbnRleHRTdGF0ZSh4KSA/IERieEFjdGlvblN0YXRlLkRJU0FCTEVEIDogeC5hY3Rpb25TdGF0ZSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGN1cnJlbnQgZGlzYWJsZWQgcmVhc29ucy9rZXlzLlxuICAgKi9cbiAgcmVhZG9ubHkgZGlzYWJsZWRLZXlzJCA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiBbLi4uKHguZGlzYWJsZWQgPz8gW10pXSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIC8qKlxuICAgKiBDdXJyZW50IHZhbHVlIG9mIHRoZSBzdGF0ZS5cbiAgICovXG4gIHJlYWRvbmx5IGN1cnJlbnRWYWx1ZSQ6IE9ic2VydmFibGU8TWF5YmU8VD4+ID0gdGhpcy5zdGF0ZSQucGlwZShtYXAoKHgpID0+IHgudmFsdWUpKTtcblxuICAvKipcbiAgICogTWFwcyB0aGUgY3VycmVudCBzdGF0ZSB0byB0cnVlIG9yIG5vdCB3aGVuIHRoZSBhY3Rpb24gc3RhdGUgY2hhbmdlcyB0by9mcm9tIGRpc2FibGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNEaXNhYmxlZCQgPSB0aGlzLnN0YXRlJC5waXBlKG1hcChpc0Rpc2FibGVkQWN0aW9uQ29udGV4dFN0YXRlKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIC8qKlxuICAgKiBQaXBlcyB3aGVuIGlkbGUgYnV0IG1vZGlmaWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNNb2RpZmllZCQgPSB0aGlzLmFmdGVyRGlzdGluY3RCb29sZWFuKCh4KSA9PiB4LmlzTW9kaWZpZWQpO1xuXG4gIC8qKlxuICAgKiBQaXBlcyB0cnVlIHdoZW4gaWRsZS5cbiAgICovXG4gIHJlYWRvbmx5IGlkbGUkID0gdGhpcy5hY3Rpb25TdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHggPT09IERieEFjdGlvblN0YXRlLklETEUpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICAvKipcbiAgICogUGlwZXMgdHJ1ZSB3aGVuIHRyaWdnZXJlZC5cbiAgICovXG4gIHJlYWRvbmx5IHRyaWdnZXJlZCQgPSB0aGlzLmFmdGVyRGlzdGluY3RBY3Rpb25TdGF0ZShEYnhBY3Rpb25TdGF0ZS5UUklHR0VSRUQsICgpID0+IHRydWUpO1xuXG4gIC8qKlxuICAgKiBQaXBlcyB0aGUgcmVhZGllZCB2YWx1ZSBvbiBWYWx1ZVJlYWR5LlxuICAgKi9cbiAgcmVhZG9ubHkgdmFsdWVSZWFkeSQ6IE9ic2VydmFibGU8VD4gPSB0aGlzLmFmdGVyRGlzdGluY3RBY3Rpb25TdGF0ZShEYnhBY3Rpb25TdGF0ZS5WQUxVRV9SRUFEWSwgKHgpID0+IHgudmFsdWUgYXMgVCk7XG5cbiAgLyoqXG4gICAqIFBpcGVzIHRoZSB3b3JraW5nIHByb2dyZXNzIG9uIHRoZSB3b3JraW5nIHN0YXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgd29ya1Byb2dyZXNzJCA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LndvcmtQcm9ncmVzcyksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIC8qKlxuICAgKiBQaXBlcyB0aGUgZXJyb3Igb24gdGhlIHJlamVjdGlvbiBzdGF0ZS5cbiAgICovXG4gIHJlYWRvbmx5IHJlamVjdGVkJCA9IHRoaXMuYWZ0ZXJEaXN0aW5jdEFjdGlvblN0YXRlKERieEFjdGlvblN0YXRlLlJFSkVDVEVELCAoeCkgPT4geC5lcnJvcik7XG5cbiAgLyoqXG4gICAqIFBpcGVzIHRoZSByZXN1bHQgd2hlbiB0aGUgQWN0aW9uU3RhdGUgYmVjb21lcyByZWplY3RlZC5cbiAgICovXG4gIHJlYWRvbmx5IHJlamVjdGVkUGFpciQgPSB0aGlzLmFmdGVyRGlzdGluY3RBY3Rpb25TdGF0ZShEYnhBY3Rpb25TdGF0ZS5SRVNPTFZFRCwgKHgpID0+ICh7IHZhbHVlOiB4LnZhbHVlLCBlcnJvcjogeC5lcnJvciB9KSBhcyBEYnhBY3Rpb25SZWplY3RlZFBhaXI8VD4pO1xuXG4gIC8qKlxuICAgKiBQaXBlcyB0aGUgcmVzdWx0IHdoZW4gdGhlIEFjdGlvblN0YXRlIGJlY29tZXMgd29ya2luZy5cbiAgICovXG4gIHJlYWRvbmx5IHdvcmtpbmckID0gdGhpcy5hZnRlckRpc3RpbmN0QWN0aW9uU3RhdGUoRGJ4QWN0aW9uU3RhdGUuV09SS0lORywgKCkgPT4gdHJ1ZSk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IGl0IGlzIGN1cnJlbnRseSBpbiBhIHdvcmtpbmcgc3RhdGUuXG4gICAqL1xuICByZWFkb25seSBpc1dvcmtpbmckID0gdGhpcy5hZnRlckRpc3RpbmN0Qm9vbGVhbigoeCkgPT4gaXNXb3JraW5nQWN0aW9uU3RhdGUoeC5hY3Rpb25TdGF0ZSkpO1xuXG4gIC8qKlxuICAgKiBQaXBlcyB0aGUgY3VycmVudCB3b3JrIG9yIHdvcmsgcHJvZ3Jlc3MuXG4gICAqL1xuICByZWFkb25seSBpc1dvcmtpbmdPcldvcmtQcm9ncmVzcyQgPSB0aGlzLmlzV29ya2luZyQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHgpID0+IHtcbiAgICAgIGxldCBvYnM6IE9ic2VydmFibGU8RGJ4QWN0aW9uV29ya09yV29ya1Byb2dyZXNzPjtcblxuICAgICAgaWYgKHgpIHtcbiAgICAgICAgb2JzID0gdGhpcy53b3JrUHJvZ3Jlc3MkLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKCh4KSA9PiB4ICE9IG51bGwpLFxuICAgICAgICAgIHN0YXJ0V2l0aCh4KVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb2JzID0gb2YoeCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvYnM7XG4gICAgfSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIC8qKlxuICAgKiBQaXBlcyB0aGUgY3VycmVudCBlcnJvci5cbiAgICovXG4gIHJlYWRvbmx5IGVycm9yJCA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmVycm9yKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgLyoqXG4gICAqIFBpcGVzIHRoZSByZXN1bHQgd2hlbiB0aGUgQWN0aW9uU3RhdGUgYmVjb21lcyBzdWNjZXNzLlxuICAgKi9cbiAgcmVhZG9ubHkgc3VjY2VzcyQgPSB0aGlzLmFmdGVyRGlzdGluY3RBY3Rpb25TdGF0ZShEYnhBY3Rpb25TdGF0ZS5SRVNPTFZFRCwgKHgpID0+IHgucmVzdWx0KTtcblxuICAvKipcbiAgICogUGlwZXMgdGhlIHJlc3VsdCB3aGVuIHRoZSBBY3Rpb25TdGF0ZSBiZWNvbWVzIHN1Y2Nlc3MuXG4gICAqL1xuICByZWFkb25seSBzdWNjZXNzUGFpciQgPSB0aGlzLmFmdGVyRGlzdGluY3RBY3Rpb25TdGF0ZShEYnhBY3Rpb25TdGF0ZS5SRVNPTFZFRCwgKHgpID0+ICh7IHZhbHVlOiB4LnZhbHVlLCByZXN1bHQ6IHgucmVzdWx0IH0pIGFzIERieEFjdGlvblN1Y2Nlc3NQYWlyPFQsIE8+KTtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgaXQgaXMgY3VycmVudGx5IGluIGEgc3VjY2VzcyBzdGF0ZS5cbiAgICovXG4gIHJlYWRvbmx5IGlzU3VjY2VzcyQgPSB0aGlzLmFmdGVyRGlzdGluY3RCb29sZWFuKCh4KSA9PiB4LmFjdGlvblN0YXRlID09PSBEYnhBY3Rpb25TdGF0ZS5SRVNPTFZFRCk7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBsb2FkaW5nIHN0YXRlIGJhc2VkIG9uIHRoZSBjdXJyZW50IHN0YXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9hZGluZ1N0YXRlJCA9IHRoaXMuYWZ0ZXJEaXN0aW5jdExvYWRpbmdTdGF0ZVR5cGVDaGFuZ2UoKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoeCkgPT4ge1xuICAgICAgY29uc3QgYmFzZSA9IGxvYWRpbmdTdGF0ZUZvckFjdGlvbkNvbnRleHRTdGF0ZTxPPih4KTtcbiAgICAgIGxldCBvYnM6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPE8+PjtcblxuICAgICAgaWYgKGJhc2UubG9hZGluZyA9PT0gdHJ1ZSkge1xuICAgICAgICBvYnMgPSB0aGlzLndvcmtQcm9ncmVzcyQucGlwZShcbiAgICAgICAgICBmaWx0ZXIoKHgpID0+IHggIT0gbnVsbCksXG4gICAgICAgICAgbWFwKChsb2FkaW5nUHJvZ3Jlc3MpID0+ICh7IC4uLmJhc2UsIGxvYWRpbmdQcm9ncmVzcyB9KSksXG4gICAgICAgICAgc3RhcnRXaXRoKGJhc2UpXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvYnMgPSBvZihiYXNlKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG9icztcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IExvYWRpbmdTdGF0ZVR5cGUgYmFzZWQgb24gdGhlIGN1cnJlbnQgc3RhdGUuXG4gICAqL1xuICByZWFkb25seSBsb2FkaW5nU3RhdGVUeXBlJCA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiBsb2FkaW5nU3RhdGVUeXBlRm9yQWN0aW9uQ29udGV4dFN0YXRlKHgpKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBlcnJvcnMgc2luY2UgbGFzdCBzdWNjZXNzLlxuICAgKi9cbiAgcmVhZG9ubHkgZXJyb3JDb3VudFNpbmNlTGFzdFN1Y2Nlc3MkID0gdGhpcy5pc1N1Y2Nlc3MkLnBpcGUoXG4gICAgc3RhcnRXaXRoKGZhbHNlKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmVycm9yJC5waXBlKGZpbHRlck1heWJlKCksIHNjYW5Db3VudCgpLCBzdGFydFdpdGgoMCkpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgc3RhdGUgY2FuIGJlIHRyaWdnZXJlZC5cbiAgICovXG4gIHJlYWRvbmx5IGNhblRyaWdnZXIkID0gdGhpcy5zdGF0ZSQucGlwZShtYXAoY2FuVHJpZ2dlckFjdGlvbiksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHNoYXJlUmVwbGF5KDEpKTtcblxuICAvKipcbiAgICogUGlwZSB0aGF0IG1hcHMgd2hldGhlciBvciBub3QgdGhpcyBpcyBtb2RpZmllZCBhbmQgY2FuIGJlIHRyaWdnZXJlZC5cbiAgICpcbiAgICogVXBkYXRlcyBldmVyeSBzdGF0ZSB1cGRhdGUgaW5zdGVhZCBvZiB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNNb2RpZmllZEFuZENhblRyaWdnZXJVcGRhdGVzJCA9IHRoaXMuc3RhdGUkLnBpcGUobWFwKCh4KSA9PiBhY3Rpb25Db250ZXh0SXNNb2RpZmllZEFuZENhblRyaWdnZXIoeCksIHNoYXJlUmVwbGF5KDEpKSk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IGl0IGNhbiBiZSB0cmlnZ2VyZWQgYW5kIG1vZGlmaWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNNb2RpZmllZEFuZENhblRyaWdnZXIkID0gdGhpcy5pc01vZGlmaWVkQW5kQ2FuVHJpZ2dlclVwZGF0ZXMkLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG5cbiAgcmVhZG9ubHkgaGFzTm9FcnJvckFuZElzTW9kaWZpZWRBbmRDYW5UcmlnZ2VyJCA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiBhY3Rpb25Db250ZXh0SGFzTm9FcnJvckFuZElzTW9kaWZpZWRBbmRDYW5UcmlnZ2VyKHgpKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgLy8gTUFSSzogU3RhdGUgQ2hhbmdlc1xuICAvKipcbiAgICogQWRkcyBhIGRpc2FibGVkIHJlYXNvbi5cbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGUgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBrZXk/OiB2b2lkIHwgRGJ4QWN0aW9uRGlzYWJsZWRLZXkpID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgZGlzYWJsZWQ6IEJvb2xlYW5TdHJpbmdLZXlBcnJheVV0aWxpdHkuaW5zZXJ0KHN0YXRlLmRpc2FibGVkLCAoa2V5IGFzIHN0cmluZykgPz8gREVGQVVMVF9BQ1RJT05fRElTQUJMRURfS0VZKVxuICB9KSk7XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBkaXNhYmxlZCByZWFzb24uXG4gICAqL1xuICByZWFkb25seSBlbmFibGUgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBrZXk/OiB2b2lkIHwgRGJ4QWN0aW9uRGlzYWJsZWRLZXkpID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgZGlzYWJsZWQ6IEJvb2xlYW5TdHJpbmdLZXlBcnJheVV0aWxpdHkucmVtb3ZlKHN0YXRlLmRpc2FibGVkLCAoa2V5IGFzIHN0cmluZykgPz8gREVGQVVMVF9BQ1RJT05fRElTQUJMRURfS0VZKVxuICB9KSk7XG5cbiAgLyoqXG4gICAqIFRyaWdnZXJzIHRoZSBtb2RpZmllZCBzdGF0ZSwgaWYgbm90IGRpc2FibGVkLlxuICAgKlxuICAgKiBFcXVpdmFsZW50IHRvIGNhbGxpbmcgc2V0SXNNb2RpZmllZCgpIHdpdGggb3Bwb3NpdGUgaW5wdXQuXG4gICAqL1xuICByZWFkb25seSBzZXRJc1NhbWUgPSB0aGlzLnVwZGF0ZXI8dm9pZCwgdm9pZCB8IGJvb2xlYW4+KHVwZGF0ZUlzU2FtZU9uQWN0aW9uQ29udGV4dFN0YXRlKTtcblxuICAvKipcbiAgICogVHJpZ2dlcnMgdGhlIG1vZGlmaWVkIHN0YXRlLCBpZiBub3QgZGlzYWJsZWQuXG4gICAqL1xuICByZWFkb25seSBzZXRJc01vZGlmaWVkID0gdGhpcy51cGRhdGVyPHZvaWQsIHZvaWQgfCBib29sZWFuPih1cGRhdGVJc01vZGlmaWVkT25BY3Rpb25Db250ZXh0U3RhdGUpO1xuXG4gIC8qKlxuICAgKiBUcmlnZ2VycyB0aGUgYWN0aW9uIGlmIHRoZSBzdGF0ZSBpcyBjdXJyZW50bHkgbm90IGlkbGUuIFRoZSBjdXJyZW50IHN0YXRlIGlzIGNsZWFyZWQsIGJ1dCB0aGUgZXJyb3IgaXMgcmV0YWluZWQgKGFzIHdlIG1heSBuZWVkIHRoZSBlcnJvciBmcm9tIHRoZSBwcmV2aW91cyBhdHRlbXB0KS5cbiAgICpcbiAgICogV2lsbCBub3QgZmlyZSBpZiB0aGUgYWN0aW9uIGlzIGRpc2FibGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgdHJpZ2dlciA9IHRoaXMudXBkYXRlcigoc3RhdGUpID0+IChjYW5UcmlnZ2VyQWN0aW9uKHN0YXRlKSA/IHsgaXNNb2RpZmllZDogc3RhdGUuaXNNb2RpZmllZCwgYWN0aW9uU3RhdGU6IERieEFjdGlvblN0YXRlLlRSSUdHRVJFRCwgZXJyb3I6IHN0YXRlLmVycm9yLCB2YWx1ZTogdW5kZWZpbmVkIH0gOiBzdGF0ZSkpO1xuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSB2YWx1ZSwgc2V0dGluZyB2YWx1ZSByZWFkeS4gVGhlIGN1cnJlbnQgcmVzdWx0IGlzIGNsZWFyZWQuXG4gICAqL1xuICByZWFkb25seSByZWFkeVZhbHVlID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgdmFsdWU6IFQpID0+IChjYW5SZWFkeVZhbHVlKHN0YXRlKSA/IHsgLi4uc3RhdGUsIGFjdGlvblN0YXRlOiBEYnhBY3Rpb25TdGF0ZS5WQUxVRV9SRUFEWSwgdmFsdWUsIHJlc3VsdDogdW5kZWZpbmVkIH0gOiBzdGF0ZSkpO1xuXG4gIC8qKlxuICAgKiBOb3RpZnlzIHRoZSBjb250ZXh0IHRoYXQgdGhlIGFjdGlvbiBpcyBpbiBwcm9ncmVzcy5cbiAgICovXG4gIHJlYWRvbmx5IHN0YXJ0V29ya2luZyA9IHRoaXMudXBkYXRlcigoc3RhdGUpID0+ICh7IC4uLnN0YXRlLCBhY3Rpb25TdGF0ZTogRGJ4QWN0aW9uU3RhdGUuV09SS0lORywgd29ya1Byb2dyZXNzOiBudWxsIH0pKTtcblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgd29ya2luZyBwcm9ncmVzcy5cbiAgICovXG4gIHJlYWRvbmx5IHNldFdvcmtQcm9ncmVzcyA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHdvcmtQcm9ncmVzczogTWF5YmU8RGJ4QWN0aW9uV29ya1Byb2dyZXNzPikgPT4gKHsgLi4uc3RhdGUsIHdvcmtQcm9ncmVzcyB9KSk7XG5cbiAgLyoqXG4gICAqIFRyaWdnZXJzIHJlamVjdGlvbiBvZiB0aGUgYWN0aW9uLiBUaGUgdmFsdWUgaXMgY2xlYXJlZC5cbiAgICovXG4gIHJlYWRvbmx5IHJlamVjdCA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGVycm9yPzogTWF5YmU8UmVhZGFibGVFcnJvcj4pID0+ICh7XG4gICAgaXNNb2RpZmllZDogc3RhdGUuaXNNb2RpZmllZCxcbiAgICBhY3Rpb25TdGF0ZTogRGJ4QWN0aW9uU3RhdGUuUkVKRUNURUQsXG4gICAgZXJyb3IsXG4gICAgZXJyb3JDb3VudDogKHN0YXRlLmVycm9yQ291bnQgPz8gMCkgKyAxLFxuICAgIGRpc2FibGVkOiBzdGF0ZS5kaXNhYmxlZFxuICB9KSk7XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIHN0YXRlIHRvIHN1Y2Nlc3MsIGFuZCBvcHRpb25hbGx5IHNldHMgYSByZXN1bHQuXG4gICAqXG4gICAqIENsZWFycyBtb2RpZmllZCBzdGF0ZSwgYW5kIGFueSBlcnJvcnMuXG4gICAqL1xuICByZWFkb25seSByZXNvbHZlID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgcmVzdWx0PzogTWF5YmU8Tz4pID0+ICh7IGlzTW9kaWZpZWQ6IGZhbHNlLCBhY3Rpb25TdGF0ZTogRGJ4QWN0aW9uU3RhdGUuUkVTT0xWRUQsIHZhbHVlOiBzdGF0ZS52YWx1ZSwgcmVzdWx0LCBlcnJvcjogdW5kZWZpbmVkLCBkaXNhYmxlZDogc3RhdGUuZGlzYWJsZWQgfSkpO1xuXG4gIC8qKlxuICAgKiBDb21wbGV0ZWx5IHJlc2V0cyB0aGUgc3RvcmUuXG4gICAqL1xuICByZWFkb25seSByZXNldCA9IHRoaXMudXBkYXRlcigoKSA9PiAoeyAuLi5JTklUSUFMX1NUQVRFIH0pIGFzIEFjdGlvbkNvbnRleHRTdGF0ZTxULCBPPik7XG5cbiAgLy8gTUFSSzogVXRpbGl0eVxuICBhZnRlckRpc3RpbmN0Qm9vbGVhbihmcm9tU3RhdGU6IChzdGF0ZTogQWN0aW9uQ29udGV4dFN0YXRlPFQsIE8+KSA9PiBib29sZWFuKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgICBtYXAoKHgpID0+IGZyb21TdGF0ZSh4KSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuICB9XG5cbiAgYWZ0ZXJEaXN0aW5jdEFjdGlvblN0YXRlPFg+KGFjdGlvblN0YXRlOiBEYnhBY3Rpb25TdGF0ZSwgZnJvbVN0YXRlOiAoc3RhdGU6IEFjdGlvbkNvbnRleHRTdGF0ZTxULCBPPikgPT4gWCk6IE9ic2VydmFibGU8WD4ge1xuICAgIHJldHVybiB0aGlzLmFmdGVyRGlzdGluY3RBY3Rpb25TdGF0ZUNoYW5nZSgpLnBpcGUoXG4gICAgICBmaWx0ZXIoKHgpID0+IHguYWN0aW9uU3RhdGUgPT09IGFjdGlvblN0YXRlKSwgLy8gT25seSBwaXBlIHdoZW4gdGhlIG5ldyBhY3Rpb24gc3RhdGUgbWF0Y2hlcy5cbiAgICAgIG1hcCgoeCkgPT4gZnJvbVN0YXRlKHgpKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKTtcbiAgfVxuXG4gIGFmdGVyRGlzdGluY3RBY3Rpb25TdGF0ZUNoYW5nZSgpOiBPYnNlcnZhYmxlPEFjdGlvbkNvbnRleHRTdGF0ZTxULCBPPj4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlJC5waXBlKFxuICAgICAgbWFwKCh4KSA9PiBbeCwgeC5hY3Rpb25TdGF0ZV0gYXMgW0FjdGlvbkNvbnRleHRTdGF0ZSwgRGJ4QWN0aW9uU3RhdGVdKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBhPy5bMV0gPT09IGI/LlsxXSksIC8vIEZpbHRlciBvdXQgd2hlbiB0aGUgc3RhdGUgcmVtYWlucyB0aGUgc2FtZS5cbiAgICAgIG1hcCgoeCkgPT4geFswXSBhcyBBY3Rpb25Db250ZXh0U3RhdGU8VCwgTz4pLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuICB9XG5cbiAgYWZ0ZXJEaXN0aW5jdExvYWRpbmdTdGF0ZVR5cGVDaGFuZ2UoKTogT2JzZXJ2YWJsZTxBY3Rpb25Db250ZXh0U3RhdGU8VCwgTz4+IHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZSQucGlwZShcbiAgICAgIG1hcCgoeCkgPT4gW3gsIGxvYWRpbmdTdGF0ZVR5cGVGb3JBY3Rpb25Db250ZXh0U3RhdGUoeCldIGFzIFtBY3Rpb25Db250ZXh0U3RhdGUsIExvYWRpbmdTdGF0ZVR5cGVdKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBhPy5bMV0gPT09IGI/LlsxXSksIC8vIEZpbHRlciBvdXQgd2hlbiB0aGUgbG9hZGluZyBzdGF0ZSByZW1haW5zIHRoZSBzYW1lLlxuICAgICAgbWFwKCh4KSA9PiB4WzBdIGFzIEFjdGlvbkNvbnRleHRTdGF0ZTxULCBPPiksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG4gIH1cblxuICAvLyBNQVJLOiBDbGVhbnVwXG4gIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIC8vIGRvIG5vdCBjYWxsIHN1cGVyLmRlc3Ryb3kgaGVyZSwgdG8ga2VlcCB0aGUgY29tcG9uZW50IHN0b3JlIGZyb20gZGVzdHJveWluZyBpdHNlbGYuXG4gICAgLy8gdGhlIGxvY2tzZXQgaXMgY29uZmlndXJlZCB0byBjbGVhbnVwIHRoZSBjb21wb25lbnQgc3RvcmUuXG4gIH1cbn1cblxuZnVuY3Rpb24gdXBkYXRlSXNTYW1lT25BY3Rpb25Db250ZXh0U3RhdGU8VCwgTz4oc3RhdGU6IEFjdGlvbkNvbnRleHRTdGF0ZTxULCBPPiwgaXNTYW1lPzogdm9pZCB8IGJvb2xlYW4pOiBBY3Rpb25Db250ZXh0U3RhdGU8VCwgTz4ge1xuICByZXR1cm4gdXBkYXRlSXNNb2RpZmllZE9uQWN0aW9uQ29udGV4dFN0YXRlKHN0YXRlLCBpc1NhbWUgPT0gbnVsbCA/IGZhbHNlIDogIWlzU2FtZSk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUlzTW9kaWZpZWRPbkFjdGlvbkNvbnRleHRTdGF0ZTxULCBPPihzdGF0ZTogQWN0aW9uQ29udGV4dFN0YXRlPFQsIE8+LCBpc01vZGlmaWVkPzogdm9pZCB8IGJvb2xlYW4pOiBBY3Rpb25Db250ZXh0U3RhdGU8VCwgTz4ge1xuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIGFjdGlvblN0YXRlOiBzdGF0ZS5hY3Rpb25TdGF0ZSA9PT0gRGJ4QWN0aW9uU3RhdGUuUkVTT0xWRUQgPyBEYnhBY3Rpb25TdGF0ZS5JRExFIDogc3RhdGUuYWN0aW9uU3RhdGUsIC8vIFNldCB0byBpZGxlIGZyb20gc3VjY2Vzcy5cbiAgICBpc01vZGlmaWVkOiAoaXNNb2RpZmllZCBhcyBib29sZWFuKSA/PyB0cnVlIC8vIGlmIGlzTW9kaWZpZWQgaXMgbm90IGlucHV0LCBkZWZhdWx0IGl0IHRvIHRydWVcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
import { first, switchMap } from 'rxjs';
|
|
2
|
-
import { LockSet, filterMaybe } from '@dereekb/rxjs';
|
|
3
|
-
/**
|
|
4
|
-
* Source that provides a ActionContextStore observable.
|
|
5
|
-
*/
|
|
6
|
-
export class ActionContextStoreSource {
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* Secondary source. Used by DbxActionContextComponent to find secondary sources.
|
|
10
|
-
*/
|
|
11
|
-
export class SecondaryActionContextStoreSource extends ActionContextStoreSource {
|
|
12
|
-
}
|
|
13
|
-
export function actionContextStoreSourcePipe(obs) {
|
|
14
|
-
return obs.pipe(filterMaybe());
|
|
15
|
-
}
|
|
16
|
-
export function pipeActionStore(source, pipeFn) {
|
|
17
|
-
return source.store$.pipe(switchMap(pipeFn));
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Convenience function for subscribing to the input source once and using the provided store.
|
|
21
|
-
*/
|
|
22
|
-
export function useActionStore(source, useFn) {
|
|
23
|
-
return source.store$.pipe(first()).subscribe(useFn);
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Service that wraps a ActionContextStoreSource.
|
|
27
|
-
*/
|
|
28
|
-
export class DbxActionContextStoreSourceInstance {
|
|
29
|
-
lockSet = new LockSet();
|
|
30
|
-
_source;
|
|
31
|
-
constructor(source) {
|
|
32
|
-
if (!source) {
|
|
33
|
-
throw new Error('Source is required.');
|
|
34
|
-
}
|
|
35
|
-
this._source = source;
|
|
36
|
-
}
|
|
37
|
-
get source() {
|
|
38
|
-
return this._source;
|
|
39
|
-
}
|
|
40
|
-
destroy() {
|
|
41
|
-
this.lockSet.destroyOnNextUnlock();
|
|
42
|
-
}
|
|
43
|
-
// MARK: Store
|
|
44
|
-
get store$() {
|
|
45
|
-
return this.source.store$;
|
|
46
|
-
}
|
|
47
|
-
pipeStore(pipeFn) {
|
|
48
|
-
return pipeActionStore(this.source, pipeFn);
|
|
49
|
-
}
|
|
50
|
-
useStore(useFn) {
|
|
51
|
-
return useActionStore(this.source, useFn);
|
|
52
|
-
}
|
|
53
|
-
get state$() {
|
|
54
|
-
return this.pipeStore((x) => x.state$);
|
|
55
|
-
}
|
|
56
|
-
get idle$() {
|
|
57
|
-
return this.pipeStore((x) => x.idle$);
|
|
58
|
-
}
|
|
59
|
-
get triggered$() {
|
|
60
|
-
return this.pipeStore((x) => x.triggered$);
|
|
61
|
-
}
|
|
62
|
-
get valueReady$() {
|
|
63
|
-
return this.pipeStore((x) => x.valueReady$);
|
|
64
|
-
}
|
|
65
|
-
get success$() {
|
|
66
|
-
return this.pipeStore((x) => x.success$);
|
|
67
|
-
}
|
|
68
|
-
get successPair$() {
|
|
69
|
-
return this.pipeStore((x) => x.successPair$);
|
|
70
|
-
}
|
|
71
|
-
get workProgress$() {
|
|
72
|
-
return this.pipeStore((x) => x.workProgress$);
|
|
73
|
-
}
|
|
74
|
-
get error$() {
|
|
75
|
-
return this.pipeStore((x) => x.error$);
|
|
76
|
-
}
|
|
77
|
-
get rejected$() {
|
|
78
|
-
return this.pipeStore((x) => x.rejected$);
|
|
79
|
-
}
|
|
80
|
-
get rejectedPair$() {
|
|
81
|
-
return this.pipeStore((x) => x.rejectedPair$);
|
|
82
|
-
}
|
|
83
|
-
get isModified$() {
|
|
84
|
-
return this.pipeStore((x) => x.isModified$);
|
|
85
|
-
}
|
|
86
|
-
get canTrigger$() {
|
|
87
|
-
return this.pipeStore((x) => x.canTrigger$);
|
|
88
|
-
}
|
|
89
|
-
get isModifiedAndCanTriggerUpdates$() {
|
|
90
|
-
return this.pipeStore((x) => x.isModifiedAndCanTriggerUpdates$);
|
|
91
|
-
}
|
|
92
|
-
get isModifiedAndCanTrigger$() {
|
|
93
|
-
return this.pipeStore((x) => x.isModifiedAndCanTrigger$);
|
|
94
|
-
}
|
|
95
|
-
get actionState$() {
|
|
96
|
-
return this.pipeStore((x) => x.actionState$);
|
|
97
|
-
}
|
|
98
|
-
get loadingState$() {
|
|
99
|
-
return this.pipeStore((x) => x.loadingState$);
|
|
100
|
-
}
|
|
101
|
-
get loadingStateType$() {
|
|
102
|
-
return this.pipeStore((x) => x.loadingStateType$);
|
|
103
|
-
}
|
|
104
|
-
get isWorking$() {
|
|
105
|
-
return this.pipeStore((x) => x.isWorking$);
|
|
106
|
-
}
|
|
107
|
-
get isWorkingOrWorkProgress$() {
|
|
108
|
-
return this.pipeStore((x) => x.isWorkingOrWorkProgress$);
|
|
109
|
-
}
|
|
110
|
-
get isSuccess$() {
|
|
111
|
-
return this.pipeStore((x) => x.isSuccess$);
|
|
112
|
-
}
|
|
113
|
-
get disabledKeys$() {
|
|
114
|
-
return this.pipeStore((x) => x.disabledKeys$);
|
|
115
|
-
}
|
|
116
|
-
get isDisabled$() {
|
|
117
|
-
return this.pipeStore((x) => x.isDisabled$);
|
|
118
|
-
}
|
|
119
|
-
get errorCountSinceLastSuccess$() {
|
|
120
|
-
return this.pipeStore((x) => x.errorCountSinceLastSuccess$);
|
|
121
|
-
}
|
|
122
|
-
enable(key, enable = true) {
|
|
123
|
-
this.disable(key, !enable);
|
|
124
|
-
}
|
|
125
|
-
disable(key, disable = true) {
|
|
126
|
-
this.useStore((x) => (disable ? x.disable(key) : x.enable(key)));
|
|
127
|
-
}
|
|
128
|
-
setIsSame(isSame) {
|
|
129
|
-
this.useStore((x) => x.setIsSame(isSame));
|
|
130
|
-
}
|
|
131
|
-
setIsModified(isModified) {
|
|
132
|
-
this.useStore((x) => x.setIsModified(isModified));
|
|
133
|
-
}
|
|
134
|
-
setWorkProgress(workProgress) {
|
|
135
|
-
this.useStore((x) => x.setWorkProgress(workProgress));
|
|
136
|
-
}
|
|
137
|
-
trigger() {
|
|
138
|
-
this.useStore((x) => x.trigger());
|
|
139
|
-
}
|
|
140
|
-
triggerWithValue(value) {
|
|
141
|
-
this.useStore((x) => {
|
|
142
|
-
x.trigger();
|
|
143
|
-
x.readyValue(value);
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
readyValue(value) {
|
|
147
|
-
this.useStore((x) => x.readyValue(value));
|
|
148
|
-
}
|
|
149
|
-
startWorking() {
|
|
150
|
-
this.useStore((x) => x.startWorking());
|
|
151
|
-
}
|
|
152
|
-
reject(error) {
|
|
153
|
-
this.useStore((x) => x.reject(error));
|
|
154
|
-
}
|
|
155
|
-
resolve(value) {
|
|
156
|
-
this.useStore((x) => x.resolve(value));
|
|
157
|
-
}
|
|
158
|
-
reset() {
|
|
159
|
-
this.useStore((x) => x.reset());
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLnN0b3JlLnNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvYWN0aW9uL2FjdGlvbi5zdG9yZS5zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQXNDLE1BQU0sTUFBTSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUF5RSxNQUFNLGVBQWUsQ0FBQztBQUs1SDs7R0FFRztBQUNILE1BQU0sT0FBZ0Isd0JBQXdCO0NBTzdDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLGlDQUE0RCxTQUFRLHdCQUE4QjtDQUFHO0FBRTNILE1BQU0sVUFBVSw0QkFBNEIsQ0FBTyxHQUFnRDtJQUNqRyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBSUQsTUFBTSxVQUFVLGVBQWUsQ0FBd0MsTUFBc0MsRUFBRSxNQUF3QztJQUNySixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQy9DLENBQUM7QUFJRDs7R0FFRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQTJCLE1BQXNDLEVBQUUsS0FBbUM7SUFDbEksT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN0RCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sbUNBQW1DO0lBQ3JDLE9BQU8sR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBRWhCLE9BQU8sQ0FBaUM7SUFFekQsWUFBWSxNQUFzQztRQUNoRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixNQUFNLElBQUksS0FBSyxDQUFDLHFC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ZSBPYnNlcnZhYmxlLCB0eXBlIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTG9ja1NldCwgZmlsdGVyTWF5YmUsIHR5cGUgTG9hZGluZ1N0YXRlLCB0eXBlIExvYWRpbmdTdGF0ZVR5cGUsIHR5cGUgTWF5YmVPYnNlcnZhYmxlT3JWYWx1ZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgdHlwZSBEZXN0cm95YWJsZSwgdHlwZSBNYXliZSwgdHlwZSBSZWFkYWJsZUVycm9yIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyB0eXBlIEFjdGlvbkNvbnRleHRTdGF0ZSwgdHlwZSBBY3Rpb25Db250ZXh0U3RvcmUgfSBmcm9tICcuL2FjdGlvbi5zdG9yZSc7XG5pbXBvcnQgeyB0eXBlIERieEFjdGlvbkRpc2FibGVkS2V5LCB0eXBlIERieEFjdGlvblJlamVjdGVkUGFpciwgdHlwZSBEYnhBY3Rpb25TdGF0ZSwgdHlwZSBEYnhBY3Rpb25TdWNjZXNzUGFpciwgdHlwZSBEYnhBY3Rpb25Xb3JrT3JXb3JrUHJvZ3Jlc3MsIHR5cGUgRGJ4QWN0aW9uV29ya1Byb2dyZXNzIH0gZnJvbSAnLi9hY3Rpb24nO1xuXG4vKipcbiAqIFNvdXJjZSB0aGF0IHByb3ZpZGVzIGEgQWN0aW9uQ29udGV4dFN0b3JlIG9ic2VydmFibGUuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2U8VCA9IHVua25vd24sIE8gPSB1bmtub3duPiB7XG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIHJlZmVyZW5jaW5nIHRoZSBBY3Rpb25Db250ZXh0U3RvcmUuXG4gICAqXG4gICAqIFRoaXMgb2JzZXJ2YWJsZSBieSBkZXNpZ24gaXMgcHJlLWZpbHRlcmVkIHRvIG5vdCByZXR1cm4gbnVsbCB2YWx1ZXMuXG4gICAqL1xuICBhYnN0cmFjdCByZWFkb25seSBzdG9yZSQ6IE9ic2VydmFibGU8QWN0aW9uQ29udGV4dFN0b3JlPFQsIE8+Pjtcbn1cblxuLyoqXG4gKiBTZWNvbmRhcnkgc291cmNlLiBVc2VkIGJ5IERieEFjdGlvbkNvbnRleHRDb21wb25lbnQgdG8gZmluZCBzZWNvbmRhcnkgc291cmNlcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNlY29uZGFyeUFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZTxUID0gdW5rbm93biwgTyA9IHVua25vd24+IGV4dGVuZHMgQWN0aW9uQ29udGV4dFN0b3JlU291cmNlPFQsIE8+IHt9XG5cbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb25Db250ZXh0U3RvcmVTb3VyY2VQaXBlPFQsIE8+KG9iczogT2JzZXJ2YWJsZTxNYXliZTxBY3Rpb25Db250ZXh0U3RvcmU8VCwgTz4+Pik6IE9ic2VydmFibGU8QWN0aW9uQ29udGV4dFN0b3JlPFQsIE8+PiB7XG4gIHJldHVybiBvYnMucGlwZShmaWx0ZXJNYXliZSgpKTtcbn1cblxuZXhwb3J0IHR5cGUgUGlwZUFjdGlvblN0b3JlRnVuY3Rpb248UiwgVCwgTz4gPSAoc3RvcmU6IEFjdGlvbkNvbnRleHRTdG9yZTxULCBPPikgPT4gT2JzZXJ2YWJsZTxSPjtcblxuZXhwb3J0IGZ1bmN0aW9uIHBpcGVBY3Rpb25TdG9yZTxSID0gdW5rbm93biwgVCA9IHVua25vd24sIE8gPSB1bmtub3duPihzb3VyY2U6IEFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZTxULCBPPiwgcGlwZUZuOiBQaXBlQWN0aW9uU3RvcmVGdW5jdGlvbjxSLCBULCBPPik6IE9ic2VydmFibGU8Uj4ge1xuICByZXR1cm4gc291cmNlLnN0b3JlJC5waXBlKHN3aXRjaE1hcChwaXBlRm4pKTtcbn1cblxuZXhwb3J0IHR5cGUgVXNlQWN0aW9uU3RvcmVGdW5jdGlvbjxULCBPPiA9IChzdG9yZTogQWN0aW9uQ29udGV4dFN0b3JlPFQsIE8+KSA9PiB2b2lkO1xuXG4vKipcbiAqIENvbnZlbmllbmNlIGZ1bmN0aW9uIGZvciBzdWJzY3JpYmluZyB0byB0aGUgaW5wdXQgc291cmNlIG9uY2UgYW5kIHVzaW5nIHRoZSBwcm92aWRlZCBzdG9yZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUFjdGlvblN0b3JlPFQgPSB1bmtub3duLCBPID0gdW5rbm93bj4oc291cmNlOiBBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2U8VCwgTz4sIHVzZUZuOiBVc2VBY3Rpb25TdG9yZUZ1bmN0aW9uPFQsIE8+KTogU3Vic2NyaXB0aW9uIHtcbiAgcmV0dXJuIHNvdXJjZS5zdG9yZSQucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUodXNlRm4pO1xufVxuXG4vKipcbiAqIFNlcnZpY2UgdGhhdCB3cmFwcyBhIEFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZS5cbiAqL1xuZXhwb3J0IGNsYXNzIERieEFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZUluc3RhbmNlPFQgPSB1bmtub3duLCBPID0gdW5rbm93bj4gaW1wbGVtZW50cyBBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2U8VCwgTz4sIERlc3Ryb3lhYmxlIHtcbiAgcmVhZG9ubHkgbG9ja1NldCA9IG5ldyBMb2NrU2V0KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc291cmNlOiBBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2U8VCwgTz47XG5cbiAgY29uc3RydWN0b3Ioc291cmNlOiBBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2U8VCwgTz4pIHtcbiAgICBpZiAoIXNvdXJjZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTb3VyY2UgaXMgcmVxdWlyZWQuJyk7XG4gICAgfVxuXG4gICAgdGhpcy5fc291cmNlID0gc291cmNlO1xuICB9XG5cbiAgZ2V0IHNvdXJjZSgpOiBBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2U8VCwgTz4ge1xuICAgIHJldHVybiB0aGlzLl9zb3VyY2U7XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmxvY2tTZXQuZGVzdHJveU9uTmV4dFVubG9jaygpO1xuICB9XG5cbiAgLy8gTUFSSzogU3RvcmVcbiAgZ2V0IHN0b3JlJCgpOiBPYnNlcnZhYmxlPEFjdGlvbkNvbnRleHRTdG9yZTxULCBPPj4ge1xuICAgIHJldHVybiB0aGlzLnNvdXJjZS5zdG9yZSQ7XG4gIH1cblxuICBwaXBlU3RvcmU8Uj4ocGlwZUZuOiBQaXBlQWN0aW9uU3RvcmVGdW5jdGlvbjxSLCBULCBPPik6IE9ic2VydmFibGU8Uj4ge1xuICAgIHJldHVybiBwaXBlQWN0aW9uU3RvcmUodGhpcy5zb3VyY2UsIHBpcGVGbik7XG4gIH1cblxuICB1c2VTdG9yZSh1c2VGbjogVXNlQWN0aW9uU3RvcmVGdW5jdGlvbjxULCBPPik6IFN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIHVzZUFjdGlvblN0b3JlKHRoaXMuc291cmNlLCB1c2VGbik7XG4gIH1cblxuICBnZXQgc3RhdGUkKCk6IE9ic2VydmFibGU8QWN0aW9uQ29udGV4dFN0YXRlPFQsIE8+PiB7XG4gICAgcmV0dXJuIHRoaXMucGlwZVN0b3JlKCh4KSA9PiB4LnN0YXRlJCk7XG4gIH1cblxuICBnZXQgaWRsZSQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMucGlwZVN0b3JlKCh4KSA9PiB4LmlkbGUkKTtcbiAgfVxuXG4gIGdldCB0cmlnZ2VyZWQkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnBpcGVTdG9yZSgoeCkgPT4geC50cmlnZ2VyZWQkKTtcbiAgfVxuXG4gIGdldCB2YWx1ZVJlYWR5JCgpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5waXBlU3RvcmUoKHgpID0+IHgudmFsdWVSZWFkeSQpO1xuICB9XG5cbiAgZ2V0IHN1Y2Nlc3MkKCk6IE9ic2VydmFibGU8TWF5YmU8Tz4+IHtcbiAgICByZXR1cm4gdGhpcy5waXBlU3RvcmUoKHgpID0+IHguc3VjY2VzcyQpO1xuICB9XG5cbiAgZ2V0IHN1Y2Nlc3NQYWlyJCgpOiBPYnNlcnZhYmxlPERieEFjdGlvblN1Y2Nlc3NQYWlyPFQsIE8+PiB7XG4gICAgcmV0dXJuIHRoaXMucGlwZVN0b3JlKCh4KSA9PiB4LnN1Y2Nlc3NQYWlyJCk7XG4gIH1cblxuICBnZXQgd29ya1Byb2dyZXNzJCgpOiBPYnNlcnZhYmxlPE1heWJlPERieEFjdGlvbldvcmtQcm9ncmVzcz4+IHtcbiAgICByZXR1cm4gdGhpcy5waXBlU3RvcmUoKHgpID0+IHgud29ya1Byb2dyZXNzJCk7XG4gIH1cblxuICBnZXQgZXJyb3IkKCk6IE9ic2VydmFibGU8TWF5YmU8UmVhZGFibGVFcnJvcj4+IHtcbiAgICByZXR1cm4gdGhpcy5waXBlU3RvcmUoKHgpID0+IHguZXJyb3IkKTtcbiAgfVxuXG4gIGdldCByZWplY3RlZCQoKTogT2JzZXJ2YWJsZTxNYXliZTxSZWFkYWJsZUVycm9yPj4ge1xuICAgIHJldHVybiB0aGlzLnBpcGVTdG9yZSgoeCkgPT4geC5yZWplY3RlZCQpO1xuICB9XG5cbiAgZ2V0IHJlamVjdGVkUGFpciQoKTogT2JzZXJ2YWJsZTxEYnhBY3Rpb25SZWplY3RlZFBhaXI8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5waXBlU3RvcmUoKHgpID0+IHgucmVqZWN0ZWRQYWlyJCk7XG4gIH1cblxuICBnZXQgaXNNb2RpZmllZCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMucGlwZVN0b3JlKCh4KSA9PiB4LmlzTW9kaWZpZWQkKTtcbiAgfVxuXG4gIGdldCBjYW5UcmlnZ2VyJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5waXBlU3RvcmUoKHgpID0+IHguY2FuVHJpZ2dlciQpO1xuICB9XG5cbiAgZ2V0IGlzTW9kaWZpZWRBbmRDYW5UcmlnZ2VyVXBkYXRlcyQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMucGlwZVN0b3JlKCh4KSA9PiB4LmlzTW9kaWZpZWRBbmRDYW5UcmlnZ2VyVXBkYXRlcyQpO1xuICB9XG5cbiAgZ2V0IGlzTW9kaWZpZWRBbmRDYW5UcmlnZ2VyJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5waXBlU3RvcmUoKHgpID0+IHguaXNNb2RpZmllZEFuZENhblRyaWdnZXIkKTtcbiAgfVxuXG4gIGdldCBhY3Rpb25TdGF0ZSQoKTogT2JzZXJ2YWJsZTxEYnhBY3Rpb25TdGF0ZT4ge1xuICAgIHJldHVybiB0aGlzLnBpcGVTdG9yZSgoeCkgPT4geC5hY3Rpb25TdGF0ZSQpO1xuICB9XG5cbiAgZ2V0IGxvYWRpbmdTdGF0ZSQoKTogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8Tz4+IHtcbiAgICByZXR1cm4gdGhpcy5waXBlU3RvcmUoKHgpID0+IHgubG9hZGluZ1N0YXRlJCk7XG4gIH1cblxuICBnZXQgbG9hZGluZ1N0YXRlVHlwZSQoKTogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGVUeXBlPiB7XG4gICAgcmV0dXJuIHRoaXMucGlwZVN0b3JlKCh4KSA9PiB4LmxvYWRpbmdTdGF0ZVR5cGUkKTtcbiAgfVxuXG4gIGdldCBpc1dvcmtpbmckKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnBpcGVTdG9yZSgoeCkgPT4geC5pc1dvcmtpbmckKTtcbiAgfVxuXG4gIGdldCBpc1dvcmtpbmdPcldvcmtQcm9ncmVzcyQoKTogT2JzZXJ2YWJsZTxEYnhBY3Rpb25Xb3JrT3JXb3JrUHJvZ3Jlc3M+IHtcbiAgICByZXR1cm4gdGhpcy5waXBlU3RvcmUoKHgpID0+IHguaXNXb3JraW5nT3JXb3JrUHJvZ3Jlc3MkKTtcbiAgfVxuXG4gIGdldCBpc1N1Y2Nlc3MkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnBpcGVTdG9yZSgoeCkgPT4geC5pc1N1Y2Nlc3MkKTtcbiAgfVxuXG4gIGdldCBkaXNhYmxlZEtleXMkKCk6IE9ic2VydmFibGU8c3RyaW5nW10+IHtcbiAgICByZXR1cm4gdGhpcy5waXBlU3RvcmUoKHgpID0+IHguZGlzYWJsZWRLZXlzJCk7XG4gIH1cblxuICBnZXQgaXNEaXNhYmxlZCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMucGlwZVN0b3JlKCh4KSA9PiB4LmlzRGlzYWJsZWQkKTtcbiAgfVxuXG4gIGdldCBlcnJvckNvdW50U2luY2VMYXN0U3VjY2VzcyQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5waXBlU3RvcmUoKHgpID0+IHguZXJyb3JDb3VudFNpbmNlTGFzdFN1Y2Nlc3MkKTtcbiAgfVxuXG4gIHB1YmxpYyBlbmFibGUoa2V5PzogRGJ4QWN0aW9uRGlzYWJsZWRLZXksIGVuYWJsZSA9IHRydWUpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGUoa2V5LCAhZW5hYmxlKTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNhYmxlKGtleT86IERieEFjdGlvbkRpc2FibGVkS2V5LCBkaXNhYmxlID0gdHJ1ZSk6IHZvaWQge1xuICAgIHRoaXMudXNlU3RvcmUoKHgpID0+IChkaXNhYmxlID8geC5kaXNhYmxlKGtleSkgOiB4LmVuYWJsZShrZXkpKSk7XG4gIH1cblxuICBwdWJsaWMgc2V0SXNTYW1lKGlzU2FtZT86IGJvb2xlYW4gfCBPYnNlcnZhYmxlPGJvb2xlYW4+IHwgT2JzZXJ2YWJsZTx2b2lkPik6IHZvaWQge1xuICAgIHRoaXMudXNlU3RvcmUoKHgpID0+IHguc2V0SXNTYW1lKGlzU2FtZSkpO1xuICB9XG5cbiAgcHVibGljIHNldElzTW9kaWZpZWQoaXNNb2RpZmllZD86IGJvb2xlYW4gfCBPYnNlcnZhYmxlPGJvb2xlYW4+IHwgT2JzZXJ2YWJsZTx2b2lkPik6IHZvaWQge1xuICAgIHRoaXMudXNlU3RvcmUoKHgpID0+IHguc2V0SXNNb2RpZmllZChpc01vZGlmaWVkKSk7XG4gIH1cblxuICBwdWJsaWMgc2V0V29ya1Byb2dyZXNzKHdvcmtQcm9ncmVzczogTWF5YmVPYnNlcnZhYmxlT3JWYWx1ZTxEYnhBY3Rpb25Xb3JrUHJvZ3Jlc3M+KTogdm9pZCB7XG4gICAgdGhpcy51c2VTdG9yZSgoeCkgPT4geC5zZXRXb3JrUHJvZ3Jlc3Mod29ya1Byb2dyZXNzKSk7XG4gIH1cblxuICBwdWJsaWMgdHJpZ2dlcigpOiB2b2lkIHtcbiAgICB0aGlzLnVzZVN0b3JlKCh4KSA9PiB4LnRyaWdnZXIoKSk7XG4gIH1cblxuICBwdWJsaWMgdHJpZ2dlcldpdGhWYWx1ZSh2YWx1ZTogVCB8IE9ic2VydmFibGU8VD4pOiB2b2lkIHtcbiAgICB0aGlzLnVzZVN0b3JlKCh4KSA9PiB7XG4gICAgICB4LnRyaWdnZXIoKTtcbiAgICAgIHgucmVhZHlWYWx1ZSh2YWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVhZHlWYWx1ZSh2YWx1ZTogVCB8IE9ic2VydmFibGU8VD4pOiB2b2lkIHtcbiAgICB0aGlzLnVzZVN0b3JlKCh4KSA9PiB4LnJlYWR5VmFsdWUodmFsdWUpKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGFydFdvcmtpbmcoKTogdm9pZCB7XG4gICAgdGhpcy51c2VTdG9yZSgoeCkgPT4geC5zdGFydFdvcmtpbmcoKSk7XG4gIH1cblxuICBwdWJsaWMgcmVqZWN0KGVycm9yOiBNYXliZTxSZWFkYWJsZUVycm9yIHwgT2JzZXJ2YWJsZTxSZWFkYWJsZUVycm9yPj4pOiB2b2lkIHtcbiAgICB0aGlzLnVzZVN0b3JlKCh4KSA9PiB4LnJlamVjdChlcnJvcikpO1xuICB9XG5cbiAgcHVibGljIHJlc29sdmUodmFsdWU6IE8gfCBPYnNlcnZhYmxlPE8+KTogdm9pZCB7XG4gICAgdGhpcy51c2VTdG9yZSgoeCkgPT4geC5yZXNvbHZlKHZhbHVlKSk7XG4gIH1cblxuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy51c2VTdG9yZSgoeCkgPT4geC5yZXNldCgpKTtcbiAgfVxufVxuIl19
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { forwardRef } from '@angular/core';
|
|
2
|
-
import { ActionContextStoreSource, DbxActionContextStoreSourceInstance, SecondaryActionContextStoreSource } from './action.store.source';
|
|
3
|
-
import { DbxActionContextMachineAsService } from './action.machine';
|
|
4
|
-
import { clean } from '../rxjs/clean';
|
|
5
|
-
/**
|
|
6
|
-
* Provides an ActionContextStoreSource, as well as an DbxActionContextStoreSourceInstance.
|
|
7
|
-
*/
|
|
8
|
-
export function provideActionStoreSource(sourceType) {
|
|
9
|
-
const storeSourceProvider = sourceType != null
|
|
10
|
-
? {
|
|
11
|
-
provide: ActionContextStoreSource,
|
|
12
|
-
useExisting: forwardRef(() => sourceType)
|
|
13
|
-
}
|
|
14
|
-
: {
|
|
15
|
-
provide: ActionContextStoreSource,
|
|
16
|
-
useFactory: () => new DbxActionContextMachineAsService()
|
|
17
|
-
};
|
|
18
|
-
return [
|
|
19
|
-
storeSourceProvider,
|
|
20
|
-
{
|
|
21
|
-
provide: DbxActionContextStoreSourceInstance,
|
|
22
|
-
useFactory: (source) => clean(new DbxActionContextStoreSourceInstance(source)),
|
|
23
|
-
deps: [ActionContextStoreSource]
|
|
24
|
-
}
|
|
25
|
-
];
|
|
26
|
-
}
|
|
27
|
-
export function provideSecondaryActionStoreSource(sourceType) {
|
|
28
|
-
return [
|
|
29
|
-
{
|
|
30
|
-
provide: SecondaryActionContextStoreSource,
|
|
31
|
-
useExisting: forwardRef(() => sourceType)
|
|
32
|
-
},
|
|
33
|
-
...provideActionStoreSource(sourceType)
|
|
34
|
-
];
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLnN0b3JlLnNvdXJjZS5wcm92aWRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWNvcmUvc3JjL2xpYi9hY3Rpb24vYWN0aW9uLnN0b3JlLnNvdXJjZS5wcm92aWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxtQ0FBbUMsRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pJLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEM7O0dBRUc7QUFDSCxNQUFNLFVBQVUsd0JBQXdCLENBQXFDLFVBQTBCO0lBQ3JHLE1BQU0sbUJBQW1CLEdBQ3ZCLFVBQVUsSUFBSSxJQUFJO1FBQ2hCLENBQUMsQ0FBQztZQUNFLE9BQU8sRUFBRSx3QkFBd0I7WUFDakMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUM7U0FDMUM7UUFDSCxDQUFDLENBQUM7WUFDRSxPQUFPLEVBQUUsd0JBQXdCO1lBQ2pDLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLGdDQUFnQyxFQUFFO1NBQ3pELENBQUM7SUFFUixPQUFPO1FBQ0wsbUJBQW1CO1FBQ25CO1lBQ0UsT0FBTyxFQUFFLG1DQUFtQztZQUM1QyxVQUFVLEVBQUUsQ0FBQyxNQUFnQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxtQ0FBbUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN4RyxJQUFJLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztTQUNqQztLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGlDQUFpQyxDQUE4QyxVQUFtQjtJQUNoSCxPQUFPO1FBQ0w7WUFDRSxPQUFPLEVBQUUsaUNBQWlDO1lBQzFDLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDO1NBQzFDO1FBQ0QsR0FBRyx3QkFBd0IsQ0FBQyxVQUFVLENBQUM7S0FDeEMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3J3YXJkUmVmLCB0eXBlIFByb3ZpZGVyLCB0eXBlIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZSwgRGJ4QWN0aW9uQ29udGV4dFN0b3JlU291cmNlSW5zdGFuY2UsIFNlY29uZGFyeUFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZSB9IGZyb20gJy4vYWN0aW9uLnN0b3JlLnNvdXJjZSc7XG5pbXBvcnQgeyBEYnhBY3Rpb25Db250ZXh0TWFjaGluZUFzU2VydmljZSB9IGZyb20gJy4vYWN0aW9uLm1hY2hpbmUnO1xuaW1wb3J0IHsgY2xlYW4gfSBmcm9tICcuLi9yeGpzL2NsZWFuJztcblxuLyoqXG4gKiBQcm92aWRlcyBhbiBBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2UsIGFzIHdlbGwgYXMgYW4gRGJ4QWN0aW9uQ29udGV4dFN0b3JlU291cmNlSW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlQWN0aW9uU3RvcmVTb3VyY2U8UyBleHRlbmRzIEFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZT4oc291cmNlVHlwZTogVHlwZTxTPiB8IG51bGwpOiBQcm92aWRlcltdIHtcbiAgY29uc3Qgc3RvcmVTb3VyY2VQcm92aWRlcjogUHJvdmlkZXIgPVxuICAgIHNvdXJjZVR5cGUgIT0gbnVsbFxuICAgICAgPyB7XG4gICAgICAgICAgcHJvdmlkZTogQWN0aW9uQ29udGV4dFN0b3JlU291cmNlLFxuICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IHNvdXJjZVR5cGUpXG4gICAgICAgIH1cbiAgICAgIDoge1xuICAgICAgICAgIHByb3ZpZGU6IEFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZSxcbiAgICAgICAgICB1c2VGYWN0b3J5OiAoKSA9PiBuZXcgRGJ4QWN0aW9uQ29udGV4dE1hY2hpbmVBc1NlcnZpY2UoKVxuICAgICAgICB9O1xuXG4gIHJldHVybiBbXG4gICAgc3RvcmVTb3VyY2VQcm92aWRlcixcbiAgICB7XG4gICAgICBwcm92aWRlOiBEYnhBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2VJbnN0YW5jZSxcbiAgICAgIHVzZUZhY3Rvcnk6IChzb3VyY2U6IEFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZSkgPT4gY2xlYW4obmV3IERieEFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZUluc3RhbmNlKHNvdXJjZSkpLFxuICAgICAgZGVwczogW0FjdGlvbkNvbnRleHRTdG9yZVNvdXJjZV1cbiAgICB9XG4gIF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlU2Vjb25kYXJ5QWN0aW9uU3RvcmVTb3VyY2U8UyBleHRlbmRzIFNlY29uZGFyeUFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZT4oc291cmNlVHlwZTogVHlwZTxTPik6IFByb3ZpZGVyW10ge1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFNlY29uZGFyeUFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IHNvdXJjZVR5cGUpXG4gICAgfSxcbiAgICAuLi5wcm92aWRlQWN0aW9uU3RvcmVTb3VyY2Uoc291cmNlVHlwZSlcbiAgXTtcbn1cbiJdfQ==
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { Directive, inject, input } from '@angular/core';
|
|
2
|
-
import { cleanSubscription } from '../../../rxjs';
|
|
3
|
-
import { distinctUntilChanged, filter, switchMap, EMPTY } from 'rxjs';
|
|
4
|
-
import { DbxActionContextStoreSourceInstance } from '../../action.store.source';
|
|
5
|
-
import { isNotFalse } from '@dereekb/util';
|
|
6
|
-
import { toObservable } from '@angular/core/rxjs-interop';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export class DbxActionAutoModifyDirective {
|
|
9
|
-
source = inject((DbxActionContextStoreSourceInstance), { host: true });
|
|
10
|
-
autoModifyEnabled = input(true, { alias: 'dbxActionAutoModify', transform: isNotFalse });
|
|
11
|
-
markAsModified$ = toObservable(this.autoModifyEnabled).pipe(distinctUntilChanged(), switchMap((x) => {
|
|
12
|
-
let obs;
|
|
13
|
-
if (x) {
|
|
14
|
-
obs = this.source.isModified$.pipe(filter((x) => !x));
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
obs = EMPTY;
|
|
18
|
-
}
|
|
19
|
-
return obs;
|
|
20
|
-
}));
|
|
21
|
-
constructor() {
|
|
22
|
-
cleanSubscription(this.markAsModified$.subscribe(() => {
|
|
23
|
-
this.source.setIsModified(true);
|
|
24
|
-
}));
|
|
25
|
-
}
|
|
26
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxActionAutoModifyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
27
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: DbxActionAutoModifyDirective, isStandalone: true, selector: "dbxActionAutoModify, [dbxActionAutoModify]", inputs: { autoModifyEnabled: { classPropertyName: "autoModifyEnabled", publicName: "dbxActionAutoModify", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
|
|
28
|
-
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxActionAutoModifyDirective, decorators: [{
|
|
30
|
-
type: Directive,
|
|
31
|
-
args: [{
|
|
32
|
-
selector: 'dbxActionAutoModify, [dbxActionAutoModify]',
|
|
33
|
-
standalone: true
|
|
34
|
-
}]
|
|
35
|
-
}], ctorParameters: () => [] });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmF1dG9tb2RpZnkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWNvcmUvc3JjL2xpYi9hY3Rpb24vZGlyZWN0aXZlL2F1dG8vYWN0aW9uLmF1dG9tb2RpZnkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQU0xRCxNQUFNLE9BQU8sNEJBQTRCO0lBQzlCLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQSxtQ0FBeUMsQ0FBQSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDM0UsaUJBQWlCLEdBQUcsS0FBSyxDQUE0QixJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDcEgsZUFBZSxHQUFxQixZQUFZLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsSUFBSSxDQUNwRixvQkFBb0IsRUFBRSxFQUN0QixTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNkLElBQUksR0FBb0IsQ0FBQztRQUV6QixJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ04sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RCxDQUFDO2FBQU0sQ0FBQztZQUNOLEdBQUcsR0FBRyxLQUFLLENBQUM7UUFDZCxDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBRUY7UUFDRSxpQkFBaUIsQ0FDZixJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7d0dBeEJVLDRCQUE0Qjs0RkFBNUIsNEJBQTRCOzs0RkFBNUIsNEJBQTRCO2tCQUp4QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw0Q0FBNEM7b0JBQ3RELFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xlYW5TdWJzY3JpcHRpb24gfSBmcm9tICcuLi8uLi8uLi9yeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIHN3aXRjaE1hcCwgT2JzZXJ2YWJsZSwgRU1QVFkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERieEFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZUluc3RhbmNlIH0gZnJvbSAnLi4vLi4vYWN0aW9uLnN0b3JlLnNvdXJjZSc7XG5pbXBvcnQgeyBpc05vdEZhbHNlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2RieEFjdGlvbkF1dG9Nb2RpZnksIFtkYnhBY3Rpb25BdXRvTW9kaWZ5XScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRGJ4QWN0aW9uQXV0b01vZGlmeURpcmVjdGl2ZTxULCBPPiB7XG4gIHJlYWRvbmx5IHNvdXJjZSA9IGluamVjdChEYnhBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2VJbnN0YW5jZTxULCBPPiwgeyBob3N0OiB0cnVlIH0pO1xuICByZWFkb25seSBhdXRvTW9kaWZ5RW5hYmxlZCA9IGlucHV0PGJvb2xlYW4sIHN0cmluZyB8IGJvb2xlYW4+KHRydWUsIHsgYWxpYXM6ICdkYnhBY3Rpb25BdXRvTW9kaWZ5JywgdHJhbnNmb3JtOiBpc05vdEZhbHNlIH0pO1xuICByZWFkb25seSBtYXJrQXNNb2RpZmllZCQ6IE9ic2VydmFibGU8dm9pZD4gPSB0b09ic2VydmFibGUodGhpcy5hdXRvTW9kaWZ5RW5hYmxlZCkucGlwZShcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHN3aXRjaE1hcCgoeCkgPT4ge1xuICAgICAgbGV0IG9iczogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gICAgICBpZiAoeCkge1xuICAgICAgICBvYnMgPSB0aGlzLnNvdXJjZS5pc01vZGlmaWVkJC5waXBlKGZpbHRlcigoeCkgPT4gIXgpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9icyA9IEVNUFRZO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gb2JzO1xuICAgIH0pXG4gICk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgY2xlYW5TdWJzY3JpcHRpb24oXG4gICAgICB0aGlzLm1hcmtBc01vZGlmaWVkJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnNvdXJjZS5zZXRJc01vZGlmaWVkKHRydWUpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iXX0=
|