/* Ċ Ġ* ĠCopyright Ġ( c ) Ġha ip ham Ġ 2 0 1 9 . ĠAll Ġrights Ġreserved . Ċ Ġ* ĠAny Ġattempt Ġto Ġreproduce Ġthis Ġsource Ġcode Ġin Ġany Ġform Ġshall Ġbe Ġmet Ġwith Ġlegal Ġactions . Ċ Ġ*/ Ċ Ċ package Ġorg . swift en . redux . ui Ċ Ċ import Ġorg . swift en . redux . core . IR ed ux Subscription Ċ Ċ /** ĠCreated Ġby Ġv ie th ai . ph am Ġon Ġ 2 0 1 9 / 0 2 / 2 1 Ġ*/ Ċ /** Ċ Ġ* ĠHandle Ġl ifec yc les Ġfor Ġa Ġtarget Ġof Ġ[ IF ull Prop Injector ]. Ċ Ġ* Ġ@ param ĠL State ĠThe Ġlocal Ġstate Ġtype Ġthat Ġthe Ġglobal Ġstate Ġmust Ġextend Ġfrom . Ċ Ġ* Ġ@ param ĠOut Prop ĠProperty Ġas Ġdefined Ġby Ġa Ġview 's Ġparent . Ċ Ġ*/ Ċ interface ĠI Prop Lifecycle Owner < L State , ĠOut Prop > Ġwhere ĠL State Ġ: ĠAny Ġ{ ĊĠ Ġ/** ĊĠĠ Ġ* ĠThis Ġis Ġcalled Ġbefore Ġ[ IF ull Prop Injector . inject ] Ġis Ġcalled . ĊĠĠ Ġ* Ġ@ param Ġsp ĠA Ġ[ Static Prop ] Ġinstance . ĊĠĠ Ġ*/ ĊĠ Ġfun Ġbefore Prop Injection Starts ( sp : ĠStatic Prop < L State , ĠOut Prop >) ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠThis Ġis Ġcalled Ġafter Ġ[ IR ed ux Subscription . unsubscribe ] Ġis Ġcalled . ĊĠĠ Ġ* Ġ@ param Ġsp ĠA Ġ[ Static Prop ] Ġinstance . ĊĠĠ Ġ*/ ĊĠ Ġfun Ġafter Prop Injection End s ( sp : ĠStatic Prop < L State , ĠOut Prop >) Ċ } Ċ Ċ /** Ċ Ġ* ĠUse Ġthis Ġclass Ġas Ġa Ġdelegate Ġfor Ġ[ I Prop Lifecycle Owner ] Ġif Ġthe Ġtarget Ġdoes Ġnot Ġwant Ġto Ġimplement Ċ Ġ* Ġl ifec yc les . Ċ Ġ* Ġ@ param ĠL State ĠThe Ġlocal Ġstate Ġtype Ġthat Ġthe Ġglobal Ġstate Ġmust Ġextend Ġfrom . Ċ Ġ* Ġ@ param ĠOut Prop ĠProperty Ġas Ġdefined Ġby Ġa Ġview 's Ġparent . Ċ Ġ*/ Ċ class ĠNo op Prop Lifecycle Owner < L State , ĠOut Prop > Ġ: ĠI Prop Lifecycle Owner < L State , ĠOut Prop > Ġwhere ĠL State Ġ: ĠAny Ġ{ ĊĠ Ġoverride Ġfun Ġbefore Prop Injection Starts ( sp : ĠStatic Prop < L State , ĠOut Prop >) Ġ{} ĊĠ Ġoverride Ġfun Ġafter Prop Injection End s ( sp : ĠStatic Prop < L State , ĠOut Prop >) Ġ{} Ċ } Ċ Ċ /** Ċ Ġ* ĠRepresents Ġa Ġcontainer Ġfor Ġ[ Redux Prop ]. Ċ Ġ* Ġ@ param ĠState ĠSee Ġ[ Redux Prop . state ]. Ċ Ġ* Ġ@ param ĠAction ĠSee Ġ[ Redux Prop . action ]. Ċ Ġ*/ Ċ interface ĠI Prop Container < State , ĠAction > Ġwhere ĠState Ġ: ĠAny , ĠAction Ġ: ĠAny Ġ{ ĊĠ Ġvar Ġredux Prop : ĠRedux Prop < State , ĠAction > Ċ } Ċ