package Ġdev . pet us ka . k mdc . core Ċ Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . Disposable Effect Ċ import Ġandroidx . compose . runtime . getValue Ċ import Ġandroidx . compose . runtime . setValue Ċ import Ġorg . jetbrains . compose . web . dom . Element Scope Ċ import Ġorg . w 3 c . dom . Element Ċ import Ġkotlin . reflect . K Mutable Property 1 Ċ Ċ /** Ċ Ġ* ĠA Ġside Ġeffect Ġbased Ġon Ġ[ Disposable Effect ] Ġthat Ġuses Ġ[ mdc Init ] Ġto Ġinitialise Ġthe Ġ[ M DC Component ] Ċ Ġ* Ġonce Ġthe Ġelement Ġent ers Ġthe Ġcomposition Ġand Ġthen Ġdestroy Ġit Ġonce Ġit Ġleaves Ġthe Ġcomposition . Ċ Ġ* Ċ Ġ* Ġ@ receiver Ġelement Ġscope Ġproviding Ġaccess Ġto Ġnative ĠDOM Ġelement Ċ Ġ* Ġ@ param ĠE Ċ Ġ* Ġ@ param ĠM DC Ċ Ġ* Ġ@ param Ġm dc Init Ġcomponent Ġprovider Ċ Ġ* Ġ@ param Ġkeys Ġto Ġcontrol Ġthe Ġeffect Ġlifecycle Ċ Ġ* Ġ@ param Ġon Dispose Ġto Ġfurther Ġcleanup Ġthe Ġremoved Ġcomponent Ċ Ġ*/ Ċ @ Composable Ċ @ KM DC Internal API Ċ @ Deprecated ( message Ġ= Ġ" To Ġbe Ġremoved ") Ċ public Ġfun Ġ< E Ġ: ĠElement , ĠM DC Ġ: ĠM DC Component <* >> ĠElement Scope < E >. M DC Init Effect ( ĊĠ Ġm dc Init : Ġ( E ) Ġ-> ĠM DC , ĊĠ Ġvar arg Ġkeys : ĠAny ?, ĊĠ Ġon Dispose : Ġ( M DC .( E ) Ġ-> ĠUnit )? Ġ= Ġnull , Ċ ) Ġ{ ĊĠ ĠDis posable Effect ( keys Ġ= Ġkeys ) Ġ{ ĊĠĠĠ Ġscope Element . mdc < M DC > Ġ{ Ġdestroy () Ġ} ĊĠĠĠ Ġscope Element . mdc Ġ= Ġm dc Init ( scope Element ) ĊĠĠĠ Ġon Dispose Ġ{ ĊĠĠĠĠĠ Ġscope Element . mdc < M DC > Ġ{ ĊĠĠĠĠĠĠĠ Ġon Dispose ?. invoke ( this , Ġscope Element ) ĊĠĠĠĠĠĠĠ Ġdestroy () ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ @ KM DC Internal API Ċ @ Deprecated ( message Ġ= Ġ" To Ġbe Ġremoved ") Ċ public Ġfun Ġ< M DC Ġ: ĠM DC Component <* >> ĠElement Scope <* >. MD CS ide Effect ( ĊĠ Ġvar arg Ġkeys : ĠAny ?, ĊĠ Ġon Dispose : ĠBuilder < M DC >? Ġ= Ġnull , ĊĠ Ġeffect : ĠBuilder < M DC > Ċ ) Ġ{ ĊĠ Ġvar Ġm dc Ġby Ġremember Mutable State Of < M DC ? >( null ) ĊĠ ĠDis posable Effect ( keys Ġ= Ġkeys Ġ+ Ġm dc ) Ġ{ ĊĠĠĠ Ġm dc Ġ= Ġscope Element . mdc Ġas ĠM DC ? ĊĠĠĠ Ġscope Element . mdc ( effect ) ĊĠĠĠ Ġon Dispose Ġ{ ĊĠĠĠĠĠ Ġscope Element . mdc ( on Dispose ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ @ KM DC Internal API Ċ @ Deprecated ( message Ġ= Ġ" To Ġbe Ġremoved ") Ċ public Ġfun Ġ< V , ĠM DC Ġ: ĠM DC Component <* >> ĠElement Scope <* >. M DC State Effect ( ĊĠ Ġvalue : ĠV , ĊĠ Ġsetter : ĠM DC .( V ) Ġ-> ĠUnit Ċ ): ĠUnit Ġ= ĠMD CS ide Effect < M DC >( value ) Ġ{ Ġsetter ( value ) Ġ} Ċ Ċ @ Composable Ċ @ KM DC Internal API Ċ @ Deprecated ( message Ġ= Ġ" To Ġbe Ġremoved ") Ċ public Ġfun Ġ< V , ĠM DC Ġ: ĠM DC Component <* >> ĠElement Scope <* >. M DC State Effect ( ĊĠ Ġvalue : ĠV , ĊĠ Ġproperty : ĠK Mutable Property 1 < M DC , ĠV > Ċ ): ĠUnit Ġ= ĠM DC State Effect ( value , Ġproperty :: set ) Ċ Ċ @ Composable Ċ @ KM DC Internal API Ċ public Ġinline Ġfun Ġ< re ified ĠM DC Ġ: ĠM DC Component <* >> ĠMD CS ide Effect New ( ĊĠ Ġvar arg Ġkeys : ĠAny ?, ĊĠ Ġno inline Ġon Dispose : ĠBuilder < M DC >? Ġ= Ġnull , ĊĠ Ġcross inline Ġeffect : ĠBuilder < M DC > Ċ ) Ġ{ ĊĠ Ġval Ġm dc Ġ= Ġlocal M DC < M DC >() ĊĠ ĠDis posable Effect ( keys Ġ= Ġkeys Ġ+ Ġm dc ) Ġ{ ĊĠĠĠ Ġm dc ?. effect () ĊĠĠĠ Ġon Dispose Ġ{ ĊĠĠĠĠĠ Ġif Ġ( on Dispose Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm dc ?. on Dispose () ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ @ KM DC Internal API Ċ public Ġinline Ġfun Ġ< re ified ĠM DC Ġ: ĠM DC Component <* >> ĠM DC Provider Scope < M DC >. MD CS ide Effect New ( ĊĠ Ġvar arg Ġkeys : ĠAny ?, ĊĠ Ġno inline Ġon Dispose : ĠBuilder < M DC >? Ġ= Ġnull , ĊĠ Ġcross inline Ġeffect : ĠBuilder < M DC > Ċ ) Ġ{ ĊĠ Ġdev . pet us ka . k mdc . core . MD CS ide Effect New ( keys Ġ= Ġkeys , Ġon Dispose Ġ= Ġon Dispose , Ġeffect Ġ= Ġeffect ) Ċ } Ċ Ċ @ Composable Ċ @ KM DC Internal API Ċ public Ġinline Ġfun Ġ< V , Ġre ified ĠM DC Ġ: ĠM DC Component <* >> ĠM DC State Effect New ( ĊĠ Ġvalue : ĠV , ĊĠ Ġcross inline Ġsetter : ĠM DC .( V ) Ġ-> ĠUnit Ċ ): ĠUnit Ġ= ĠMD CS ide Effect New < M DC >( value ) Ġ{ Ġsetter ( value ) Ġ} Ċ Ċ @ Composable Ċ @ KM DC Internal API Ċ public Ġinline Ġfun Ġ< V , Ġre ified ĠM DC Ġ: ĠM DC Component <* >> ĠM DC Provider Scope < M DC >. M DC State Effect New ( ĊĠ Ġvalue : ĠV , ĊĠ Ġcross inline Ġsetter : ĠM DC .( V ) Ġ-> ĠUnit Ċ ) Ġ{ ĊĠ Ġdev . pet us ka . k mdc . core . M DC State Effect New ( value Ġ= Ġvalue , Ġsetter Ġ= Ġsetter ) Ċ } Ċ Ċ @ Composable Ċ @ KM DC Internal API Ċ public Ġinline Ġfun Ġ< V , Ġre ified ĠM DC Ġ: ĠM DC Component <* >> ĠM DC State Effect New ( ĊĠ Ġvalue : ĠV , ĊĠ Ġproperty : ĠK Mutable Property 1 < M DC , ĠV > Ċ ): ĠUnit Ġ= ĠM DC State Effect New ( value , Ġproperty :: set ) Ċ Ċ /** Ċ Ġ* ĠSynchron ises Ġthe Ġ[ value ] Ġto Ġthe Ġ[ property ] Ġwhenever Ġthe Ġvalue Ġchanges Ġand Ġis Ġnot Ġnull . Ċ Ġ* Ġ@ param ĠV Ċ Ġ* Ġ@ param ĠM DC Ċ Ġ* Ġ@ param Ġvalue Ġto Ġsynchron ise Ċ Ġ* Ġ@ param Ġproperty Ġto Ġmanage Ċ Ġ*/ Ċ @ Composable Ċ @ KM DC Internal API Ċ public Ġinline Ġfun Ġ< V Ġ: ĠAny , Ġre ified ĠM DC Ġ: ĠM DC Component <* >> ĠMD CO ption al State Effect New ( ĊĠ Ġvalue : ĠV ?, ĊĠ Ġproperty : ĠK Mutable Property 1 < M DC , ĠV > Ċ ): ĠUnit Ġ= ĠMD CS ide Effect New < M DC >( value ) Ġ{ ĊĠ Ġvalue ?. let Ġ{ Ġproperty . set ( this , Ġit ) Ġ} Ċ } Ċ