package Ġapp . soft work . bootstrap compose Ċ Ċ import Ġandroidx . compose . runtime .* Ċ import Ġorg . jetbrains . compose . web . attributes .* Ċ import Ġorg . jetbrains . compose . web . dom .* Ċ import Ġorg . w 3 c . dom .* Ċ Ċ /** Ċ Ġ* ĠState Ġfor Ġ[ Off canvas ] Ġcomp osable Ġcomponent . ĠProvides Ġfunctions Ġto Ġcall Ċ Ġ* Ġinto ĠBootstrap 's ĠJavascript Ġto Ġshow / hide Ġthe ĠOff canvas Ġelement . Ċ Ġ* Ċ Ġ* Ġ@ param Ġconfirm StateChange ĠOptional Ġcallback Ġinvoked Ġto Ġsignal Ġa Ġstate Ġchange . Ċ Ġ*/ Ċ public Ġclass ĠOff canvas State ( public Ġval Ġconfirm StateChange : Ġ( Boolean ) Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠ Ġinternal Ġvar Ġbs Off canvas : ĠOff canvas ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġ_ visible Ġby Ġmutable State Of ( false ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġcurrent Ġvisibility Ġstate . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġval Ġvisible : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ_ visible ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠShows Ġthe ĠOff canvas Ġcomponent . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġshow () Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ visible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġconfirm StateChange (_ visible ) ĊĠĠĠĠĠĠĠ Ġbs Off canvas ?. apply Ġ{ Ġshow () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠH ides Ġthe ĠOff canvas Ġcomponent . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġhide () Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ visible Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġconfirm StateChange (_ visible ) ĊĠĠĠĠĠĠĠ Ġbs Off canvas ?. apply Ġ{ Ġhide () Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠCreates Ġan ĠOff canvas Ġcomponent . Ċ Ġ* Ċ Ġ* Ġ@ param Ġplacement ĠThe Ġlocation Ġfor Ġthe ĠOff canvas Ġcomponent . Ċ Ġ* Ġ@ param Ġoff canvas State ĠControl Ġfor Ġshowing / h iding Ġthe ĠOff canvas Ġcomponent . Ċ Ġ* Ġ@ param Ġheader Content ĠComp osable Ġto Ġrender Ġcontent Ġfor Ġthe Ġheader . ĠA Ġclose Ġbutton Ġwill Ġalways Ċ Ġ* Ġbe Ġprovided Ġon Ġthe Ġright . Ċ Ġ* Ġ@ param Ġshow Header Close Button ĠIf Ġtrue Ġthe Ġdefault ĠBootstrap Ġclose Ġbutton Ġwill Ġbe Ġshown Ġon Ġthe Ġright Ġside Ġof Ġthe Ċ Ġ* Ġheader . ĠIf Ġfalse , Ġthe Ġuser Ġshould Ġprovide Ġtheir Ġown Ġcontrol Ġfor Ġclosing Ġthe ĠOff canvas Ġcomponent . Ċ Ġ* Ġ@ param Ġbody Content ĠComp osable Ġto Ġrender Ġcontent Ġfor Ġthe Ġbody Ġof Ġthe ĠOff canvas Ġcomponent . Ċ Ġ*/ Ċ @ Composable Ċ public Ġfun ĠOff canvas ( ĊĠĠĠ Ġplacement : ĠOff canvas Placement , ĊĠĠĠ Ġoff canvas State : ĠOff canvas State Ġ= Ġremember Ġ{ ĠOff canvas State () Ġ}, ĊĠĠĠ Ġheader Content : ĠContent Builder < HTML Div Element >? Ġ= Ġnull , ĊĠĠĠ Ġshow Header Close Button : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġbody Content : ĠContent Builder < HTML Div Element >? Ġ= Ġnull Ċ ) Ġ{ ĊĠĠĠ ĠDiv ( attrs Ġ= Ġ{ ĊĠĠĠĠĠĠĠ Ġclasses (" off canvas ", Ġplacement . toString ()) ĊĠĠĠĠĠĠĠ Ġtab Index (- 1 ) ĊĠĠĠ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠ ĠDis posable Ref Effect Ġ{ Ġhtml Div Element Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoff canvas State . bs Off canvas Ġ= ĠOff canvas ( html Div Element ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġsynchronize Ġstate Ġwith Ġthe Ġoff canvas Ġvisibility ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhtml Div Element . addEventListener (" hidden . bs . off canvas ", Ġcallback Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoff canvas State . hide () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhtml Div Element . addEventListener (" shown . bs . off canvas ", Ġcallback Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoff canvas State . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSet Ġinitial Ġstate ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoff canvas State . bs Off canvas ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( off canvas State . visible ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Dispose Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoff canvas State . bs Off canvas ?. hide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoff canvas State . bs Off canvas Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠDiv ( attrs Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclasses (" off canvas - header ") ĊĠĠĠĠĠĠĠ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader Content ?. invoke ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( show Header Close Button ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠButton ( attrs Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype ( Button Type . Button ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclasses (" btn - close ", Ġ" text - reset ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattr (" aria - label ", Ġ" Close ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoff canvas State . bs Off canvas ?. hide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠDiv ( attrs Ġ= Ġ{ Ġclasses (" off canvas - body ") Ġ}, Ġcontent Ġ= Ġbody Content ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠUsed Ġto Ġspecify Ġthe Ġlocation Ġof Ġthe ĠOff canvas Ġcomponent . Ċ Ġ*/ Ċ public Ġenum Ġclass ĠOff canvas Placement ( private Ġval Ġvalue : ĠString ) Ġ{ ĊĠĠĠ ĠSTART (" start "), ĊĠĠĠ ĠEND (" end "), ĊĠĠĠ ĠTOP (" top "), ĊĠĠĠ ĠBOTTOM (" bottom "); ĊĊĠĠĠ Ġpublic Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" off canvas -$ value " ĊĠĠĠ Ġ} Ċ } Ċ