From 48670970dfcc821a7ed8de1519e76e67da4b563b Mon Sep 17 00:00:00 2001 From: Margarita Loseva Date: Wed, 29 Jul 2026 12:13:16 +0700 Subject: [PATCH 01/11] readme --- README.md | 214 +++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 197 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index e22d355..a99aa88 100644 --- a/README.md +++ b/README.md @@ -1,38 +1,218 @@ -![](https://img.shields.io/endpoint?url=https://codecentral.devexpress.com/api/v1/VersionRange/1223677914/26.1.3%2B) -[![](https://img.shields.io/badge/Open_in_DevExpress_Support_Center-FF7200?style=flat-square&logo=DevExpress&logoColor=white)](https://supportcenter.devexpress.com/ticket/details/T1328040) +![](https://img.shields.io/endpoint?url=https://codecentral.devexpress.com/api/v1/VersionRange/1211416592/25.2.6%2B) +[![](https://img.shields.io/badge/Open_in_DevExpress_Support_Center-FF7200?style=flat-square&logo=DevExpress&logoColor=white)](https://supportcenter.devexpress.com/ticket/details/T1326784) [![](https://img.shields.io/badge/📖_How_to_use_DevExpress_Examples-e9f6fc?style=flat-square)](https://docs.devexpress.com/GeneralInformation/403183) [![](https://img.shields.io/badge/💬_Leave_Feedback-feecdd?style=flat-square)](#does-this-example-address-your-development-requirementsobjectives) -# Product/Platform - Task +# Blazor Scheduler — Custom Context Menu for Scheduler Regions -This is the repository template for creating new examples. Describe the solved task here. +This example demonstrates how to add a DevExpress Blazor [Context Menu](https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxContextMenu) to a DevExpress Blazor [Scheduler](https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxScheduler). When users right-click within a Scheduler region, the application identifies the clicked region and displays a context menu with relevant commands. -Put a screenshot that illustrates the result here. +| Scheduler Region | Menu Commands | Appearance | +|---|---| +| `Appointment` | `Edit` | IMAGE | +| `All Day Area` | `SwitchToDayView` *(only if `ActiveViewType != Day`)*
`GoToToday` | IMAGE | +| `Time Cell` | `GoToToday`
`SwitchToDayView` *(only if `ActiveViewType != Day`)* | IMAGE | +| `Date Header` | `SwitchToDayView` *(only if `ActiveViewType != Day`)*
`GoToToday` | IMAGE | +| `Day of Week Header` | `GoToToday` | IMAGE | +| `Resource Header` | `HideResource` *(only if visible resource count > 1)*
`ShowAllResources` | IMAGE | +| `Time Ruler` | `ToggleWorkTime` | IMAGE | +| `Toolbar` | `SwitchToDayView` *(if not `Day`)*
`SwitchToWeekView` *(if not `Week`)*
`SwitchToWorkWeekView` *(if not `WorkWeek`)*
`SwitchToMonthView` *(if not `Month`)*
`SwitchToTimelineView` *(if not `Timeline`)*
`GoToToday` | IMAGE | -Then, add implementation details (steps, code snippets, and other technical information in a free form), or add a link to an existing document with implementation details. +## Implementation Details + +This section introduces key code blocks used in the example. + +See [Index.razor](CS/Components/Pages/Index.razor). + +### Detect a Clicked Region and Show the Menu + +#### Appointments + +To detect a clicked appointment, `Index.razor` defines a shared [appointmentTemplate](CS/Components/Pages/Index.razor#L9) object. The template is reused in all Scheduler views (Day, Week, Work Week, Month, and Timeline), the same right-click behavior is available everywhere. + +Inside the template, the `context` parameter provides access to the current appointment via `context.Appointment`. The template wires the `@oncontextmenu` event and calls [ShowAppointmentContextMenu(e, context.Appointment)](CS/Components/Pages/Index.razor.cs#L99). + +```Index.razor +@{ + RenderFragment appointmentTemplate = context => @
+
+ @context.Appointment.Subject +
+
; +} +``` + +```Index.razor.cs +private async Task ShowAppointmentContextMenu(MouseEventArgs e, DxSchedulerAppointmentItem appointment) { + if(ContextMenu is null || appointment is null) + return; + + ClickedRegion = "Appointment"; + ContextMenuAppointment = appointment; + await ContextMenu.ShowAsync(e); +} + +``` + +#### Other Regions + +The project uses the [appointmentContextMenu.js](CS/wwwroot/js/appointmentContextMenu.js) module to handle different Scheduler regions: date header, time cell, resource header, all-day cell, and day-of-week header. The module handles the browser `contextmenu` event, determines a region by a CSS class, and calls back into .NET to show the appropriate menu. + +To apply custom CSS classes to the Scheduler regions, the [OnHtmlCellDecoration](CS/Components/Pages/Index.razor.cs#L160) event handler is used. + +```Index.razor.cs +private void OnHtmlCellDecoration(SchedulerHtmlCellDecorationEventArgs e) { + switch(e.CellType) { + case SchedulerCellType.DateHeader: + e.CssClass = "custom-date-header"; + break; + case SchedulerCellType.TimeCell: + e.CssClass = "custom-time-cell"; + break; + case SchedulerCellType.ResourceHeader: + e.CssClass = "custom-resource-header-" + e.Resources.FirstOrDefault()?.Id; + break; + case SchedulerCellType.AllDayTimeCell: + e.CssClass = "custom-all-date-time-cell"; + break; + case SchedulerCellType.DayOfWeekHeader: + e.CssClass = "custom-day-of-week-header"; + break; + case SchedulerCellType.None: + e.CssClass = "custom-none"; + break; + } +} +``` + +The [appointmentContextMenu.js](CS/wwwroot/js/appointmentContextMenu.js) module inspects an event target, matches region classes, and reports a region name (along with an optional resource's `id` and cell's `start_date`) back to the Scheduler component: + +```appointmentContextMenu.js +export function setup(schedulerElement, dotNetRef) { + schedulerElement.addEventListener('contextmenu', (e) => { + e.preventDefault(); + const region = getRegion(e.target, schedulerElement); + if (!region) return; + dotNetRef.invokeMethodAsync('ShowAppointmentContextMenu', + e.clientX, e.clientY, e.pageX, e.pageY, region.name, region.id, region.start_date); + }); +} +``` + +When a region is detected, the module calls the [[JSInvokable] ShowAppointmentContextMenu](CS/Components/Pages/Index.razor.cs#L83) method that sets the `ClickedRegion` value and shows the menu at the cursor position. + +```Index.razor.cs +[JSInvokable] +public async Task ShowAppointmentContextMenu(double clientX, double clientY, double pageX, double pageY, string region, int? id, long? startDate) { + ClickedRegion = region; + ClickedId = id; + DayToGo = startDate.HasValue ? DateTimeOffset.FromUnixTimeMilliseconds(startDate.Value).DateTime : null; + + StateHasChanged(); + + await (ContextMenu?.ShowAsync(new MouseEventArgs { + ClientX = clientX, + ClientY = clientY, + PageX = pageX, + PageY = pageY + }) ?? Task.FromResult(false)); +} +``` + +> [!NOTE] +> The [appointmentContextMenu.js](CS/wwwroot/js/appointmentContextMenu.js) module relies on DevExpress internal CSS classes (`dxbl-sc-*`, `dxbl-v-*`). They may change between versions. Review and update them when you upgrade DevExpress.Blazor. + +### Region-Aware Menu Commands + +[Index.razor](CS/Components/Pages/Index.razor#L83) declares a single [DxContextMenu](https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxContextMenu) that is used for all regions. Its items are generated dynamically based on the `ClickedRegion` value. A `switch` block renders only the [DxContextMenuItem](https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxContextMenuItem) commands that make sense for the clicked region and the current view. For example, "Open this day in Day View" is hidden when the Day View is active. + +```Index.razor + + + + @switch (ClickedRegion) + { + case "Appointment": + + break; + case "All Day Area": + @if (ActiveViewType != SchedulerViewType.Day) { + + } + + break; + case "Time Cell": + + @if (ActiveViewType != SchedulerViewType.Day) { + + } + break; + // other regions + } + + +``` + +### Handle Menu Commands + +The [OnItemClick](CS/Components/Pages/Index.razor.cs#115) handler reacts to each command by its `Name`: + +- **Edit** — opens the appointment edit form using `ShowAppointmentEditFormAsync`. +- **SwitchToDayView / SwitchToWeekView / SwitchToWorkWeekView / SwitchToMonthView** — changes `ActiveViewType` and navigates to the clicked day when available. +- **GoToToday** — resets `StartDate` to `DateTime.Today`. +- **HideResource / ShowAllResources** — updates the `VisibleResources` collection bound to `VisibleResourcesDataSource`. +- **ToggleWorkTime** — toggles the `ShowWorkTimeOnly` option across the views. + +```Index.razor.cs +private async Task OnItemClick(ContextMenuItemClickEventArgs args) { + switch(args.ItemInfo.Name) { + case "Edit": + if(Scheduler is null || ContextMenuAppointment is null) + break; + + await Scheduler.ShowAppointmentEditFormAsync(false, ContextMenuAppointment); + break; + case "GoToToday": + StartDate = DateTime.Today; + break; + case "SwitchToDayView": + ActiveViewType = SchedulerViewType.Day; + if(DayToGo is not null) + StartDate = DayToGo.Value; + break; + // other commands + } + + StateHasChanged(); +} +``` ## Files to Review -- link.cs (VB: link.vb) -- link.js -- ... +- [Index.razor](CS/Components/Pages/Index.razor) +- [Index.razor.cs](CS/Components/Pages/Index.razor.cs) +- [Index.razor.css](CS/Components/Pages/Index.razor.css) +- [appointmentContextMenu.js](CS/wwwroot/js/appointmentContextMenu.js) +- [Program.cs](CS/Program.cs) +- [RecurringAppointmentCollection.cs](CS/Data/RecurringAppointmentCollection.cs) +- [ResourceCollection.cs](CS/Data/ResourceCollection.cs) ## Documentation -- link -- link -- ... +- [DevExpress Blazor Scheduler](https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxScheduler) +- [DevExpress Blazor Scheduler - Appointments](https://docs.devexpress.com/Blazor/403663/scheduler/appointments) +- [DevExpress Blazor Context Menu](https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxContextMenu) +- [Call JavaScript functions from .NET methods (Microsoft)](https://learn.microsoft.com/en-us/aspnet/core/blazor/javascript-interoperability/call-javascript-from-dotnet) + +## Related Examples -## More Examples +- [Blazor Scheduler - Get Started](https://github.com/DevExpress-Examples/blazor-scheduler-get-started) -- link -- link -- ... ## Does This Example Address Your Development Requirements/Objectives? -[](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=draft-Devexpress-Blazor-Scheduler-Context-Menu&~~~was_helpful=yes) [](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=draft-Devexpress-Blazor-Scheduler-Context-Menu&~~~was_helpful=no) +[](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=blazor-scheduler-context-menu&~~~was_helpful=yes) [](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=blazor-scheduler-context-menu&~~~was_helpful=no) (you will be redirected to DevExpress.com to submit your response) From d301f8b595cfbc4ef49a1ed0e65f99886b6d3bb7 Mon Sep 17 00:00:00 2001 From: Margarita Loseva Date: Wed, 29 Jul 2026 12:43:02 +0700 Subject: [PATCH 02/11] changes --- README.md | 30 ++++++++++++++++++------------ resource-header-menu.png | Bin 0 -> 34570 bytes toolbar-menu.png | Bin 0 -> 53058 bytes 3 files changed, 18 insertions(+), 12 deletions(-) create mode 100644 resource-header-menu.png create mode 100644 toolbar-menu.png diff --git a/README.md b/README.md index a99aa88..1319f76 100644 --- a/README.md +++ b/README.md @@ -6,25 +6,31 @@ # Blazor Scheduler — Custom Context Menu for Scheduler Regions -This example demonstrates how to add a DevExpress Blazor [Context Menu](https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxContextMenu) to a DevExpress Blazor [Scheduler](https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxScheduler). When users right-click within a Scheduler region, the application identifies the clicked region and displays a context menu with relevant commands. +This example demonstrates how to add a DevExpress Blazor [Context Menu](https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxContextMenu) to a DevExpress Blazor [Scheduler](https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxScheduler). When users right-click within any Scheduler region, the application detects the clicked region and displays a context menu with relevant commands. -| Scheduler Region | Menu Commands | Appearance | +| Scheduler Region | Menu Commands | |---|---| -| `Appointment` | `Edit` | IMAGE | -| `All Day Area` | `SwitchToDayView` *(only if `ActiveViewType != Day`)*
`GoToToday` | IMAGE | -| `Time Cell` | `GoToToday`
`SwitchToDayView` *(only if `ActiveViewType != Day`)* | IMAGE | -| `Date Header` | `SwitchToDayView` *(only if `ActiveViewType != Day`)*
`GoToToday` | IMAGE | -| `Day of Week Header` | `GoToToday` | IMAGE | -| `Resource Header` | `HideResource` *(only if visible resource count > 1)*
`ShowAllResources` | IMAGE | -| `Time Ruler` | `ToggleWorkTime` | IMAGE | -| `Toolbar` | `SwitchToDayView` *(if not `Day`)*
`SwitchToWeekView` *(if not `Week`)*
`SwitchToWorkWeekView` *(if not `WorkWeek`)*
`SwitchToMonthView` *(if not `Month`)*
`SwitchToTimelineView` *(if not `Timeline`)*
`GoToToday` | IMAGE | +| Appointment | Edit | +| All Day Area | Switch To Day View *(only if `ActiveViewType != Day`)*
GoToToday | +| Time Cell | Go To Today
Switch To Day View *(only if `ActiveViewType != Day`)* | +| Date Header | Switch To Day View *(only if `ActiveViewType != Day`)*
Go To Today | +| Day of Week Header | Go To Today | +| Resource Header | Hide Resource *(only if visible resource count > 1)*
Show All Resources | +| Time Ruler | Toggle Work Time | +| Toolbar | Switch To Day View *(if not `Day`)*
Switch To Week View *(if not `Week`)*
Switch To Work Week View *(if not `WorkWeek`)*
Switch To Month View *(if not `Month`)*
Switch To Timeline View *(if not `Timeline`)*
Go To Today | + +Toolbar Menu: + +![Toolbar Context Menu](toolbar-menu.png) + +Resource Header Menu: + +![Resource Header Context Menu](resource-header-menu.png) ## Implementation Details This section introduces key code blocks used in the example. -See [Index.razor](CS/Components/Pages/Index.razor). - ### Detect a Clicked Region and Show the Menu #### Appointments diff --git a/resource-header-menu.png b/resource-header-menu.png new file mode 100644 index 0000000000000000000000000000000000000000..fa848d7b08e74926124b51ab4f5a179102327a16 GIT binary patch literal 34570 zcmb^YWmHw|A2kYt3JM4aC`c=aG}0ZSfPkcQcXxLP(hbt7bhq^0Al)V1-5nb?Y&aM9 z|9QrEKfUM6Sz|E7#fmF_Iph6>KuX?U-I zf6#2j)f|wJ2qzzYkYA7X9e|Th9VMhipYA>-MS0EL9ZJcIg!BeULPS{6HEn;v%~f$@ z`uSSSja~0?jKNG|0y()!(g$ky9D`&YrnCv}8XJ(=3@k3(qlpgf zX*g7b7fou`6}F8ZIMbJe{%;wK|B-wL|Ic(}R?2!6Q!Q%Hu9vk5xhVBu<;X=Zrl4rc z2Tzgmd-cr%a%kV+2hqWaVUzcoYV3Lh9QIBI&1s9&&NTKkxS`|*{ssE8lfkCg82 z>frPQ^pB^_F@Gwm+x$l?MNdy}$D3ZS z$;5z<@m}HCYxd>XU~z@VzuI(>xD=InE9VYgM~Hp;^ocoH%DX?!TtPQL2`5H@;73+U ze{3e=$MsxMhI32U`Gv!_&Q^j2Q|8~$&%-R2|1j)~3vpJ>(JFEA;#z%m@|ih|a1EYz z**YunTCaq0C}F1)dd76B;VBXmKOx=?Q)kQJO_w3Tdb+ZLqsp+E6|W?+K94Wy>dNih z-wR16g9rnvE!&;`$s|i6^6P!9wwR@ z?iZowKOIZDss3fibnn-hsHRbtC5+b>?WSXEs{J*QvYv>qRLVfRd}f}Dl@&KzeyJxc zn4KVd^rNBSyUxx|$n3uq>F;|*gjP}!h2~14A~M=+7xIIKcP;eEKY8PmHfP$@+Gl+j z*2<4Bmq>=MioX2OG8;(d^pBrGx-LoM^#7GQTy~eX726f~F9o3>fRL9)p2EY4S!PL= zQf0u`WJ63qks|k3&g-4%!^lr1A>Icq%Mb+JoTu($<25fPCsFLSxB)}E+Hj-4NgVs_H`vHsGs z_>RjERcWDGEqm&@$&ubzF!H+&=l7g{*eWYS&Y_<8{ha?6RpB-*{o#haOj)*+U#-a` z%CCy1Jhb`-rm73e6HVkNB{%cKbA0?4A;pn z3u-xhsjdS~XcESoznhLH>t^pNPk&g=_1rsCMaeY%ylW}yC!4c)7q^)kV^OTlbg{V$ zGw~*Ib!ixmJZEIP+wg?KEStvEPUnzr8e9m8F;ea2s6Cax!3Y; z&1d!2tZAtEuJOC|w_WtY|2&kfu^g-){(FVs4+W1Ru!_-tQ&0?2Uis6iDYzb97ZsR) z-8dA=pCZOZP7U9im7+liT%ZjZI( z-xs<>7bj!v28fUp7trlEa$56e^pEwah(_%ZrNJ~BS*Xxt>E!B@c z-LN^0&KVk7pLl9pB(P5K1uNa*-rYtOz4DIn`%rXuQ$3rh7f~@-|FSDc#cH*dFx*E! zdrKl>n1=F#XH!Rk!~H`8!`Fscg={Z6PX5;5x$)zl+<|ZF1pbCbL00#owAV)G0u?V@ zm?+j3(dH3md*x~Z$a6SiHY-VN}TOHm^SH|WzXUNzV` z@!rYTib)$z6>17ZXJM4ee@;!-TDYnoqzdc3J;B3YV)t85dOf@~VZtAFFTbGax|Z@> zcF?g$wG3KVG@NaPVzzX3M0r2X-hAz1|+boy@Kz8TIY33(Tg>~rrI z?uKZgS{vPx&BeCjj2hAo+zMBfP`g7h!^mTE)_sKbxSQ3h?Z%Knwh;dJcW``EdDda$ z#dvlh7ZrLT1x4vn;g5+fYZVa@qDd*?SK=wXu}_Q4=ZOUB%pZMbLT5+$O7l6;)#6B| zK&eD;UyDuR(!$xosAFS-BaP$pVwX>O0lMg~oLeuJwd_4w<$-r)Fw~6?3KHcF_m6j) zb(HXuJD`c04gRo;P{6$g69QZC9|n5=>tPdm?Aqd~aqP@#@q~ zsJ3X5-H~_d{`c<2hjEFs!@VKuB*Nw8SeqNR@s?}Y#e}8hDUQ-iyv*!kQFo$1UmSAY zYNa-3CJ%v}v4M1UJWl&Ef#0@p8qwr^8u4J6Y7E!T8czC9MX_}CsV@^`i;hcUV zBCT3u^5N%WkP>U>6ew>kT^gnyyyFMbUPh7UDYl|eSP1X0l0OtxP$`3%-yZchm&JrE zrbsQTHg7ma@|Yx6;6)Q>IlpZ^ z?W$H-_{LST=X^R|Jj#rD9T<6>FQUa6%3uY4V>qtF$8BSgZcwD3cWVxH0__0+&!N6 zXY>W#va>o5{_??H_el%QAGLm@pityevG&x)Q7TUb*7%1|@@M(!*$dHJCq@-$$}eu7 z!oyaZTJ`UqtzDIDhL_o0^ZPV8p}{p|i`ViNLvgc7-4qnK{DbP*=&h|h3=O$-y`FB^ zY&!l)zTcTLAhq>h!y|?%5yW%xRmX#j$xs%u8b06jIa_?_hK^B|We)Y|u%YJG};4$4nk3i3_ z&*e(kX^wt(vfm|2Q z1aM=E9@~3+FPP*M^fXn=&7zo7c@sUknLEY%Y@S7nBO;P>ozAVKI=CdgFx1;jO+hh{ zB2@6`Gns2bq0%pkweQ!>c&3YkEk_jt8V=lcw1iO}sAC}^WxGm*B@GhD!BnHEZI(Np zRi%poUa{p;h3IZ(&G(h1jWagej(PWug!<-sL=K1NGE@de@XY+R!NQ$#kEdjk#@4$Q z11()_S+N{1Z6_5d7ff(z7dNLfjiYr^y7-jNim;M7LsFcQ(a=JaqAYWKw7-m7Y)yH# zodhaG+ORj_z+iDf?u;bx>Ltpn=igWA&hlg;>IOqYfI;AlFt!l_`yW7 zwhF(vn38f>!zvGJ2FcgKgtCK@#bMUet-FdJ;oyN=Td^nmnBiAe@Q|jHIOdbhBKhxZ zs;lYWjOP{Kr>hbZW&G7#I%gvsAms&xcwS5cSLVFUxSI2kxEMphu7-JfUp7=AesiXG zz`cVHA;r}HO^nrhk(Kq2+t8QY-^8z37;B608-&iba@oHs>?w>+$9V0j%S!u*il{3q zq~4)Az=?2hPNtguX|F3;y+`%C%2GsIU%z4tNmd|xw{}7CCNaJ)(lFO%;^pS>kfC>W zUcFgPw4pKNf{0ISzO~QujSuD5L+E!Zj>Mg_E%jnIbHZ_n{$bd;l|W~M!kLOd>$#Fs zqTO!nD~4u@U&=JZ_WdMq=2kE1D1liAmWmpl+#gL)l)0Zvmz8C>5b2n1TYY~Hw( z=hGfs(LaJ!N@pNAk4Wl&N_^PzV@v&q!X~a|`}Y%zfm#~;iGgfo;JEvYLykbk@RbJ} z4Mk?e2maO^0>`HZ6k#ISO+sUkmrTzHmI`zAssAKX*N}L`3|KY99=l*RbT7V;aYHM{Zc$PO8b*hj$oUeL2V zR!D-jLWkcYtN1}Z@_Xun zBle9MVZmwqpN%*1U7+43tp)6*;$4UkDR>a(>%ZBlOD66PQeP=cziDxiMxYg8BAgpE zL3f%aL+#wu63OEWx{n56l?Iin&(P4?Oxg9>-66xU$qdf(n~v`98C>U$!NIO+i$oLE z!e(^+ck&$WBlX59d`jxMy0Y?eQ}%FFZIPUfw1JCyo_n7cI6Nw}1)TDi{b3T1-~8OE ztAQYUTB;SrXmraSOP&OB5;zRQM1U4(Iwg@?$Nn;@G ztNI^9dwAOJ`awkUY3q$D7Y~3sx;;oQIR`P%>uLSzChEdbjc{=aQ~k^-NhH0ZlcWB* zzBQ(!zsvZvM?CgLJudK3KI-xdkUk%2g*`@@Y@Afueu;xd#(}W%$TWS z#u?dAe23;^6jZ&d){Aj z1S?xL4LyD7MPr+8t0m|7ug_0c*VaHE%P7Zt637?SE<9DHwKLz~(9-WQobQ)aqnuA9 zPTU0XD-RaeHHXuWg}Pd(yi(sYW+wtSB}u&x7o)VUBW_xd(bguL`(xFgBf9=P z*PLQjGgQm+G;9#DvmhP4;; z_V~qWH#7fIM&Jo5rJ$0xDw2O?W=zCf=oSzd7@L+R9LT8s<WdFvg2IOm^>+By)7~@zmZUKTz*JFA?rgct`HS0@jp^WhN?Y|Z7(9c;FK ze+>L?&6eA?X#qe&09q86k~*fp*%|wHrlhSs)aL(`$9X^L==F2d$G?94N^{XBN$2f+ zGA}DEEcg^_{aTRn$ZqP^^AXxPOs`TkI3#4H`E2OS;;$Qc=jGu-*oar7|VPbY}*snP9@;Gk4prXn>KV0Z1u*Sf^n5nfOkjcl(9u-gJw6f(*R|NZ^ ztQ^?Ba%{D9;2f8p-aeWgfCSn2A0kE~;Qli<7Prx9Pt4KLaU^nTr^FDL;It*@lEtDB zX;6DxBq<*aEiH1ZA*&u|svS4U^nr6|SeTb^iSaci>SM5RV3h!()g48?6-53g=I76s z|Ejoh3b!!cP@7O28Rde7l6sE^t^+sH(a}w}cwooJGePBp7p%GXTn=+8Dn0URN^6Ki6_V)Izx^amv!IWRHrmkGde2z+$ z1}*FjJ{LVI4HmZro|YySf%Y4{L|Q>pQ_9+!>D8-OKLP{c6M;M=Sk4Et(xRd$z$9{V z-hKM~8JXMtoTka;=ohfI$4{}MlajWJwH$fVYb>TRG6X!X%#Zr|`*}RCo{1SaMTG!+ z1lvv{mK{@H&kbDGi>nCCZGZln(#XhYeRC5RA74yWRaGu>W)8dVOB9*o{`4rUk;^y! z=g$|oxSzn10#mqX$;|W#uBzHK9$h@uVEE;@mmq#~d4Mc?yaYB)R8*9N+t#E*RFTBk#_1CEh|K75s8bs~mV6DC8$nGP*bH+Q&-v-IPySt;~o7#^462uDvWh}qFePqc=3~c9cA@0^sQc8*exZKN^FKy4aE7gT3 zR%~@^)pus9^B>93|M9wU9x$#hclzF@TX3p9Cas63 zkXE=B;=7CRT3y5YTm+&S$LP;indjK3{@;_5UgP57SuAXm@;Q^#%|%SiGU;L}8ya$p zW#imwf4`OPFaEIj-jKYw!(n(dARnVpr@ zY|UHV#!JB{Qog|cjlbr#ljw!t6P&n7YOLlsm;X>uQnI8n{!C1qn0v|j;t12*OOr{Z z)aSFbfKE(|{KX*%r_4*&=a){5baa1>tMym|t^&?dN|foJVw0WUxNJM}(lQA~j+*9Z zH8~?km0QjI0pVcZnV2(mP=)yUzov{DvK9|mmwu%#XDSO(#6{pl*OLjnVHak9b7kd( z!zGdRlKA-e+&n0Sz3~awM_^zeA&~*ZHf;nvL^z>GeNiUu5MPB|^gl<+*J0d}Ip*vuosoG$Z-(}~!Ll1ht$z+n(rnO)%-&O2iP zBXSrZ9&}sR#U&51uO`#5X*uS_LX9dv2U}YjXTEgm?Dy^!+hxGF z_)~CnXxw%E^Pb#KoYR!K^mK#Q9UK`H9ajpv6Q+l`r?SC z*?*`bcs~UQj|x>Hs1Ofd!3RJ$^(x4{;u(Bt?oTgx$1f=v3NkR&hY!P3&0`)mrp&Lo zkDAYdqoQoiIr*GIe;IVkD2)%TD`;zX0bj42BZc6Yv~Xp{$6riw&K_hSnXv}Ez{d|9 zG`2_}RylgVU|na^_YLm`3K+3&^Jx+|VA!lkxNC>EpK^*A= zsTo-|ZZ10d#k@7w#)foxFZ=7~j=L{E-`^p&CrgRn$Awf?eOvk{qo{M8A ze13F}`g>$VF1!nFv7RzZ{ZfX1F>neS^WtA0r{dlChT%}6i#i3cn607oo!Q!A9mc|O zHNFZB27Dc%sYdhqbeS)uc}@6XC~>_%`ZstB&mQPY>Fg{z3X^8wn>d7oA^jT^LPARf z&41ekyg0(bqCj%;9Gipv8>>AjE)5S2?En@~Jp<~2XZ6~4mHBy7y38YGS{JQCizDjb zC=P6CZobX&kDf5^)Md84y|P|;J=4>F_Pk@f(%>l|%0T8_XmYv1Tzs7I=DHnwjvJI3asslOA;Oj58BGg;fSJ3% zjtH#+3{yL(Er8L2-Msx|qNYX*GHaK09Ud8(Ouh_gyeKICvb=u&^XJd2KJZjHqJ-Y{}u)b(Gc%3+&f#!6FL#1k)vmfU*T&Bngj{p5EKh(NPgm zQ5=G)WDvmQm6gSmCzbz45Q0KRlZgPtifz+jBq^DE{|D6K^b}BsNrRx@`HyH^u%4~6 zkskl4=D>M$9PX`@wgJKJWOh{WEs6au~?KG~ImzQq?ajSQ5 zVGpBmQ8?&#cDC%v0K2xKp<&#R3W${lv$b0zzx*F!b9JaKT;==c5dbsR(k z@;7<8xDvtWZoI_g<&{B|=9&G%!)bdYCN|cdW6J6OY5~4sk@AYj%i}D0!P3j2RW6wk z2WNC(`7RV90He;KZ(!glO#k8Njdfk>Q2N^Tcs>`{mH*1apmH01z;c2{BRC=gg@2H* zRJr&=ma?MavLi33WOKhJGQFdwzQO#h&zZ_|e=GRz-Mg!l0QV`D)WMF<&e1v>oxknv zh(0sURFGw8U-~A+HT^*NsHth9UcgC-S>@j#Pqzi!c;nP#=PAJsS$!YCca|qMG6AOEyy!5PvV+rG&d&K5wIAplxjHywR32Y?rF!01D2v?9R ztU>5+e@K)bdGV*5AIh&EKk+2ncJYdm{r4~CM|D-z2qHB&trQezirEjV4vtbFUikkf zgZK@c`+paP{(pO6>0D#bYXNumY#X<@<^(2ybl?l4744A|9yGXyXS6D$rv5q1>%=RX zY>DTBJ#l*=CRMQ8h`vBOISm*JZLVWyJc zv|>NaZ1ulIut|NJ{nZT%Hy9#z8DAK?9@AG?~%^7qg) zbw~(iDsn6#Ck<~B)vFi>)ffKe?4zTtTQ;%EBlR4oiyA|-ecY?OPs?BaH<(OQRP3*) zM9;F8Y;?VhCe{X1dy7g88W>a6Fh<ef;;qo4K9uas1xQ3ufQV zO0&;o(F67Uao=$#%dr)4Rbtz)bvKv35ttML?#B@WxX?K6>;%-W+J8W=J4LeRnQ`(cc z!i4cRCHzJ8s{upknW0Z!A^0L^g2bpgJWHZG@`j0&J&pT~O?%!fu|gCCQj6!?Q=zG?KW`GF@4V0)cl!%i{3XHz{~nF2+26k`^RN_f z(uVZaRjnt`4tUr+Jtyp3&UwZ_Xi>mKtV3L{Su*0G2v-IrbawSjVQM$ zR~^1R^meAdTpV}3Eax~}qWe1CxNmJ-F240EzdIJ*YRj)d_ttAvprkKgThFEH>I0rc zO`j zad&TDwc-k8phU?~V)b}ml=^zk~WR&6%nRV0X&ofvn z7h_hc?o(yRqWRrey`-HO{&|q7Ts)DStmetToU_aR5<{Z9(6*Szgz|-mAOFFfs}(NT zIV`wrio9p|7zaDskFlZ*3E9KjKK3?VT>UoJ!%uZtAuyeRB%C8!lkCDVe=Y62Uy7WCX_$Op4bW?pG4zxxs14eoN;Bt?Ws?T<@xP-G&u8@bXne$NHp8WCs0% zL*|c*;qQMi8Fs_mK0ZOfC#}ac7$Z9bKgy7~UALkQhTmKkQld}2@)RAC11YtyPjcQ` zKh0&Mi+6=G`**)ILq>~ySns_1;-KNjsy-5*hdr^~aJ~mujDyVC6QwtYeP-eA zW@Hu$D%Cq&F09i}0**dhNJ%)XaidOov{lM~d;a3f7W|YUdYX!`$9VXTfB6SS8k4y_ zR>d4CH_1gr6(fcHA!{llP&g$piS12zyfonZU~(;NgLEOo#RlTH`Jc83gX0SBo?hej z%}-?!QO4t&wZ1-CwQknSZzxjggGbz57TO-!{-AWrIN)*|rl#0RFvckQ5wTi?hEw8Y z0|FjPTw6A*Vz;!E-CB~U=#w!T73TBPKPH*^$ddY>9&lb0a?m&r8fRC1b6^Y!{@1xu zv1YG?OGH#OJK@Ve{*OVn6g^8XbvpX-IZ4+to}a;~Z(9XLgfuayUS@R9WP}|3h_VuH zhgL)Il#NvfB15(v=1F01ZI&Qdr0wscC7>j|xH(ZWE8DIxhVPcLS4 zcZOBQ#v1RF`~eCR^rnTfXn?6a0|ndkfw|i^f+Kd0R8Gs^6-7KY^A&B>e-!+Y{a>S0 zxY5tta8=&DseNRn`RN1FDP&0=#vb6kD!z{e9_Zzinf>=~mzA{05ZNG+qJY8#QgZS2 zoRHA34lXL`c6em-&u6-O#r-qtQ!Q7Q6V0iQJEDvfOU-OWhO_|`m_I%<)(JQOgY8DO zDB*T5ETOoVW74>CK4WqP*XkD)eot z?{`kim*Zt&k55$vUC7LCWDBTDYpS=-@?B|ad1J+*lJ}F_IZV(TGPGqS2FDGDDGxrl zR69=5KKPklN_mv|tNzX@Ru;kZjT^mxIVbFpOi%W;`_m^p)rWdYoA$;!*Y9!C;|S-u zehO$fSLA0s2{yj+3cE&Bbp0C*O%rgerlJ^gY;>N?rSr8Ox;)1th>MPg-+0!0hzJN>zo&J4d#l5}s~F4uQo{S9P0lf~<8w0Y(6 zZHsvY@od!{>wU5%=f=7`E=xiHtSwD+XVCtfVvLu=0Yq3{V=5h@c_T$vzWDGYiVA{#z43gD8Ff?YDwwJJ`Nz>VR%*y04Nq%q|&-3JDjd=w8!eYlhxJL3~ z;om>c4Fm;^8$DoI#T7u?=y?e-|$`36U(g+)8xR7SNNH8*4`KSrUmK>qaz2S!=Z-v%GzQ~x` z@*npbBx{JlAh)}5ulYLtr`XN$?f3SPE6!Xx*N06{!QO_%Ax%z17K#gs%m zarpvSHdeV4N@tFW)moU}#s*Bi$0O2jo#lLzI5!xhPmR*)?7SWi#*}p6X2cKc6%?HL z){_pEYMoV1Oi%#S0>G&$kwBUQ&GhBb((rH5FmY*VqnWDQj_&R{TiS=MPl*B+(m`!- zBd?8EMMA>L59?O($SVs8VZHgAKdPIh@G}`>wY|YyochjH$%QO+HcZ}YHpZ(Uyurq} z`b^I4E16ijHRRgZ`EX!m^b0u^J9|xTm_okJJ$%aZ+6Yz0JGrgVNhdbF#s3w(HYF2N z=TJ|mo7Ccip2j20~Wm?hZeC%)Jaz5$HP0|25sT*&G-cu5hE#4}}Fy-6&+*|V`G zvZ%G)8*XCW8)H)BUf_pkYI)Y>U$MvE?wc^bzS@!X>7$I|4{y`eUF(Vf5OR%U<%4OZ zM1T&h!p((+ev0&6hoSD_D+x_Ed1|JeiO6JwCRcOiaej{Cp zu(6qbNRlf|Xu#+wCUo43#-#S4Uj-CJXlN+6=aubOf-m6NIWs_8 zNIHCdvI2oI$yj#}3WdRn)i{D)+pTT7lv{7*-XCTUXz$duAfv?$5X}WhCZ?JQ&4gu- zIjKkG3p!y|J;{J%>3Chdn$l!T&Jc*(S!{VKgxKk9hVK?DD*h8X{w5)T7KYELzde$9 zg({T7Zif4C_2HXHW+iz&z)ym%>HEZNS=%W#33sq)7(NP#Z{hFXekwX%@iCNNuKV~M zw`E?jdr5;^|RUj*p~KJZo~J(foNc5)63M0HOg!9I$A6UmGC-FlA?7M0H3)TrtS`Wq-I%@ikhbI{@Vll}L0R-BvF;Rl>q>cXj z9b(_Y`ue0~Hj_&01zy0%7))2_J+N|VX(WQT$Dbb_o(nL3$brxK=$CoB?sR}gfy>rb z!#?Bz9<5XZYO*tyo0FG!+DG62npwA%mfS#^-1GP?!0kFWPCaMj)z-d7;q|jyPBR0< zUd-8<^9Y*R)e(XRi1Wf)%TJ#kEi^iHCCb!pJym{8>oml`GUNsb? zUVw)5%rHE8LrYr-J}4QZbxu;xcbX4Omlv1P<7=09NY| z>VpLcQNxwL0a7VH{d(8Y_5tm?b~$IWwUeK@xf^CdVmbQJ_~ zz-e64M4=^bd2;T9M~<{k{7ape-#UcmMy z@m~{d4rd*YJjIc
BXJ)zDutFI5W+iokoT6je+?|d3SAxCpf3+4W0CYC4Cd?k) z#wgZp)jh`k9f4WoBp@iS;J*t1&h4pkow!Mma}*4XjDY&Cr@?X%J3z5GdtNz^5d7Z5`3%26sjAYe9+q6Rg-!0F!r2D)>`H7H!BlfP$pt; ze{5LjY}_{xravpKTU6iD%wEid-d&VOENa`?vE1Ko2>}R_|9V{?sxIu`)>XFnVp6KCVbfek^%1~3v4Q&@0i1a&J4(=ejOA`i=zb;ktC(#s73FKe z+x&-s<8j!Kcs9fr<#RUAhR#Zn-LYx*D*fft{}Lz|n^ zz!YpC(dfFY$w}NNbX}38?OaQq?XV>u@|vnl>wC>R&a*qm4+PrNi9vU)K^x_W;{Qq# z`@V+?NKc4_rqhu9I1FQU%H76cqM!w=x>q^o0a+($A{Ah(+&rC_mX1DbAEVAJws_#+<9A^TS+*M&Lo+R;K`?D@<_EaECxXkSeg$>W z;nu|MK27bPyU@|TX=%~@{d%{-)1aWb3pWWPefCnqJ+yL=WHb9UU zjm#w_BvvZB?*iuzi~;aG@3M5{c2GNI%S+0Cwe0WB5e~+`=E&=IbKv3%es&kiT;vLf zt?M%;idBI99vwsP5m8NtjbV0cT@&b698vwY z-)ne!u>;C{p122HN4qtN9a(Ss<0(Ps;B!r~M<^p;jq2A|DF#@1SSDiMMAQ3v17g&STx>O0p-zdMSs4ddADYtDk2$%r;u!a>BP~;B1dFVhYGM}2B?oF`#ee`h>f(u7| z_KSc@)PCy&p6hPAW<~*ZiF1VY=c#SZT5TIEK-8wzG=r4>u0sS6POf{Ub>iaNvr<(4 zS68lwEif_=r)4r+^;td#J_npK7E;n+M*o#G*FuLEY+-8Ks;jf}1O^rQtiAY{LE{pg zUb$o$dJHPz4XAj8T4xe9%@vy%C-(V{^kC)6Ly;NoO03 z_em@UuJE0Fzi;F84+b6tF9;R?h-eaffoJsI>P*jjT8GG%u)0^_>$a`(aJ74$gp3U8 zGT^l)W}sCd432%fAI<{WtwzV4-6>c#PXr-bVCKCi`^?Nt^Yx|%WHj63d>eUW-Maz= zX1m)JZ0ri-!L8>cu5b4yOV_H01t0U*rhxSZC3_@kvB$>}#Ek$)A+Wh_{S(i&QMrgM zKo8S0Fj(5VwRES(*VZoH)h@FB2nu>|4?DYYNH8c&V-mpEj1#l zI7v6avTerPdW&b_<@l8nbq*x`n_QOJh(lL1H|>>?8m? z+1t~j+n>Nl-SR+M+RYecyzgAxtUWn7(R5vTpbFzarN+JN4uYG@k{5xm-J17Caczxy zHc*M`JxGZ@A2vGOTQHlVj+N^O0jm`j6GJ8DvMzC%d0?*6=HoymH(8=KzV4OYyLq>w z=Y9#N^|@O6^v4EvTk3j469ztZLIaUJM`pobmQ^U1FMUqU)uLVaP@}=0ICFRvM(KlbR3TAnFpkDhJSyY06EE7zR;k-5(EK(0lMva3c9#i zn4f`Of2gFQB`PKLyjZ1tbH*gI^i?y^#C7|j_^ceSveFu%f=HF@1^W%d^7ZU?SH_NwY0^{|d zPzltqPX0b>YS`w7(tI%qy+sW;m3no?0N!of5sY)YN-*KC2~v1OM~BEC>xI6)`0|@c zho*&`e4jptVF8zKnZkgVZMdB61u(~9^BEH>E9>nhi=gxVYv3a}B_(MfVOTexh#_qb z`$X4TOu-p7)YK%vg3AhAoJ+*#ax|G9zp;0*F>Vd;y52giYq-e}V$&UYeRtd)K*GIz zP4T+{s`=1DzuK*!q_~g_MO%yM6_{zxPull4+GnDnF4LkRcrP+m_mw;0#V}0kF&<_8 zUSbIU^$OXNY3q0RpFf;HH8GIF5jHTu@W*oIFQ`t$#l^FLhRPGR;PR4y;H+Ed?t7w+ zb{|k^ASR`yq}JP>ZaH+5x}2Vm4_6rWo}C|fAY07^Ry*w}gN_k|jlL2!Hh<+wLN?>$ zUh18kyt36$`Z8UxT=VXGrH01FmBxcaT@l2xmX-{UQO`}fBP}09jr|*|*gmdE$3Ln; znG%9Y%=v;{)wU?L*}P@zS>Mr5Z?uQR6dQVK{6K=(YJhCFHh^ zUgCX>`doMPcYt^Hdzby`m?gwv-MrJ(0{`W-K{H74=R4y;pw)3$@4+E+)n)nsZ9dNt z3|hL~iNMxDM8zvAl#-%xmD8}BzjkZST(B$3LusM{Auja{bu@q?J ze8_RflnP&loS0}2nge+-y-L|SDCo1n(11EGHYTQRxy}FjxE=d7m$hd49_aiwJWqSO zHN7t04Q#%EATIePOEta#At#8gs5UJZ%Knr?oT9@S0u6WYLSU8|ZktD7pYaF@d&53J zTGyh4#O&=^f$(iLPIipPb{PqXWj8kxbv8jw`KVRD(zYFQ%3&qoF*h(`5H}6_6Qr2x zmpwB)4%O~X6QNhqJ_gLM>rc9fudmjk>fyT*NF^F|kv337BoHf{Z1STw{9i4=w1LlB z1eZ276H}S8nh#=6=WO0#_(3EL^Z~@2mT&0jLREASPocLPA7tTdpl29J=L_OmbWI0M z{x?m{0Z?2$=spMq;3o4v_XwaEyiU-n&_yn9t_lxhY77Pqk>Jff^q~L*O3*X#I)l60 zYig~8$v!^xicbBm6F(^iL{q2leJ0!daAlKVDhyZ2-2Zb#_%>1sFmxd0ZJmVnC=+4*V6lXkXY z{?C?{CW3d|$BwFi4B^?x+68HDx4681Go|-@KUoTZEw8z4UjX>$cTUcwXXxSvwRDOI zIJ*r{qA6{UbQ_tEI6O_y#e)rJN(q?jH4FirwH{sr_m|~?F42&IL=>pQ+Gb<@@1yrc zF^l(bdAeu(QDv{;YUI-5n59uXn+lMS11B;BC?pB5V?pnp(AfYR(9w2)bU5`q7ca(P zl=kTa2*&mcP72)Kx7?siJyL7FLPNzQ>cIHW+;dPjoKs&vT~`9KaVLS!YU5rWP(7*D z+r9-Mll%rK$H9D7nvP_=tK1*>z|qqUo3qKi4`)l~ihryIbwMmo=HKANM_e2+YO(WR zxNhM=_N)3EZVo-v5xQQ0`QqNln$43Y*7iIR1>MAB>!ySIdH{#0{jsEdc*TR;4W@8F zjJRy>5~wp={r1Y55|oO+C4-LKcrc|G444dHAO-*i_!%FcZXN>wydk1J=xm250VWdv z{nk*u8(k`wx1@v_A=jeg7mP%iAwwbXA_6V;9};n852`D2@})6RT$~fIL%aZK0Zp8O z#nr__IR(Tpo@ayam-aHfE@?sbkVJ=s5;_kqO}1KnlAKpmStCAe!I=77lu4n=%UU(PmoA-O`bXf^EI8 zPcz)O6!!bKjCWSmT6fs>{lS8Z=D&-_-6t@XCw9wXI40=U5_UPOeK8Hvg9D>O-bN`2 z32F#Q5aLYDp_WN%%6ZCV9h&t|SMlo_jwjw_zxpEgI6Rf`(8isKX z9o+~P8}{Nh&=N&cYieqqFZ=t0-Yh?Ym@7}i2YzlA@Z(1TX!?r)M2Y+NDZY&_Z9|sLo!H*wL&Q7PNHB#72B60DOA&-!JYa|mGeu27p ztUoT#bgj$Ena^5Eszfs3xMJ=E$-{iUzH;|pVK#7$T;g@GWa4%IPkZkf7FF7H4HhEM zVk2z;6a)-_k|iq{RFE8s0x6hOsz?F_0zzRVgMK!(#~kMUj5XN~&WMrkS8wzz*e{spJ`1|W%Q)MBZm zQSxBVhEJ2gp-%=bByQCh=I-MoT;E02sNsDa56B5qY+efzNj8RHNIBSDsyut_`qP@4 z8kN`Q^T8=UJK1!a{Zt$H#p>DUI*7+Mvk{@25eb6z#vGAn8 zr|~N#eVsB?m6D=P`_m#*C87ruhr+w>yJTNCQOHVsCKUxh7!2#PsiP8ppE58i#Ad&_ z%&7-Fo@m!846A5Z5&1skkSb2d3@hO%Dh@+=lKk%d?#9m;sdmUgAt%y}(laU@wBt%s z;b`3uJ*I6f&bm7JVR3P>`tX2bfD}RkB#qC@yXyS2L`lwnO_%6EUYUH0I)Ae$i~@XU zy_r8o-23<4+Lh*(8xD`%)+rcR_gjx1J!&1J`B{&3q(S+_OPO;Pk1sCz`wZCL7zo+Z zaJBnd^2l2#?!iQvm@C+m9RTLz4f3Nu*4DPQ$jQmU0~Iu@a{qQeAf_p6qCw|p;2r=n zyz*0e*gdrn4020KuC34aC5&Ft{W>L`Cxl%i@EPQ#!}UzrohSmCH0aMKI=HLyXVB@u z!cr5tbo9&(Kao-P(9gDeAN1%+zG^q0D`Yk{&Py&yt*1m{+8RuBWJLrRHD-Lbez&qg z5I1`Guw=1r*CkHSr1#@cM~9A(kkHQlrh8u;VG!YB_i*h8j)31H+gk=0C#M1)onS5N z=2*Ql8=v_lQU~QZXRxlX?+5dceF>VQM<;Wx*Ry}=?@yY0i^?;t67>(DwCw!JG^YHh z0>k;rY2sghIv(!M&a&b5b^=82;Qn-ltQ4o8c%1H_0DP^-XSB^|dHfsEeM%jw6?0WH zsl*Q~PCa>V1}dBhPmi-u#=nL8|M~QZ{#bwJR7(N@jG%BVW3*<}lh9sY|9yiz`;ov^ z5}#SMr@0v`itb(lr3LtkAS^c7>svUB5$v+b2{fj?y&WE2M&02-K+x_&CA8S+1AG*B z?45Dw%6cL9^2pFh2v=a-y>*x7f||eEUWh@BH-nbH7hXM%FZ=nkzoT4-2k_>@sw`iG z=hVMS6q=WrD+rkuyt}#MIR0dYzPfR{{oA*vh9=%t;;h8LZTE8#DnyrIYH>{{&{u9wp&lwe zgF;A>yXe-*hgZOOD_K~!@pGUfHsnw~A#2iFB~uUn0g@p89M5uauOO zsp;u>Yh&aj-T(Ho2||&!wl=KOjxA@{-_Jsdq1uvom@QkmAy(F4Z@uXSQ6`pE!XdUW zh`#LKfB#xvQcwg&)H9RTF{uF)F=QV83Jr2Fpqf+&`*gv_$7i@MCH={hK^n93s1uh; z%=lGSw7!vvi7%Nv1ZVGGNRV_LDFFU5PlS4^{v(;AA#;isjS3P8re-n8N0K%D#N<$+ zk7I^eF{)@?2|R6B%-fU{_6!x4s?!i(UF)_Dp*(;AMd5h$b=1l+C8n!Kz&1R3jrz9X z*a`e8rIR;SfksmReqyWK;{dC^1F--7zQH}zZ8o0@m<#ssI)DNHiHJiyg!`Sv8b1m& z04cE?QbautA|pBRjNF zR|Wop;brjkTv?Zfo*P#}rMR)&e+>2XDcR59X7AG(pBt#>R-)E{=m+XSUt%0;VxRNw z;wr_GtVEMqJG6LWtklh2Md3SEYw>e&iLrTKpB&xZ*%{cp4}rA$BrBhhkx`YjOiNRf z8g1C8l~IMkY;&G$2i>9q-pff~aoDVDgM=5uXnWdIZU-k_F?Z3Z?|yVsY_WCXHrb$X zw6yDfQp_i{g9sDHufJ@k(AhS1@mGWn;&VEJwXPh>ufZu>TSt zo%Pd1WZI*6v{b+N_5K|%2XaTuDl;azqF8Th$^$1peRFvDgV&?DFP7Kxo`$5WC-7a4 zY0A6Yu)%9J%Df;`elzBKU=|O<5&8lrWaa3!pD9U*i0F+9>>12U7VCzF$jEK~@r@HU zYWg^0B|7&r|K^TeuT|U54trG%lhOP%d)quUu7dnoxOXr+ieZ1TH}B2qwvLGJT(AQA z9(5@>-&#oB$8|_aru>Nvay2ImJBq?Q%qkl52s^=@0##L2^Z8@K#sy_Fj+Qzz!m07L zbM7lernQPKdaYzF#x>Ub8i!sn;lYZ4T4do`9tZ31S8J8-2ek3}RF31sH@*bkV1ern zZMFWX>ebRtDz}+fqIA_ong>ohhez>o_dVP0b;-*wZZ-TyAGf}r(O=E#ccbID0BEW0 z4t;n6PTc8T<`qT?wkIy|MzKU+#-(!SP5`}0Vcij2MI2YSsE@%6>#g%%DQkuU2gCxL>@G z?R;^!zz1gt~ySK|c*Cv(Jnk-`1<_@B&y=M~^kH^6w!hQ@) zeJr_Gl=zd4Z<>;mYDSmuQDg4E`bEUSpg3u}8f~FL>2vEFX~RiA$l!UM%Hvw>fZJTv z1UD8>X4BQt0fx1&B`laSf3sDQ@$reZ5!=&TY7?nR8Eu1M<(^YVR+lQ_0puA~UgV3< zQ7eNLVGodWST0@i9P2Vx>k3s}$$hG9sQvc(I}q*o1%BtXrzsRW_7&xuR=MM`L_CGO zidIw%bs*z0KfYG&l+4tLlx182uL^2E6Z-Rq_=uNOBWL2T3^E6%0 zd*_w5weN)?l$p`GuC_$G@KPQC$cv97k&}$qZP%!+me1?TZnm2*BH|=ht^Ljj-|Kel zt?#e^9c>`s;qyzGMR{I|S0EfEESWL1%@~*XzCPGmRgDwEsK_k_Dawx!&-g#A@qTvH zv7^qJb+h$McwHkeT+;kJ4QGp;C{*LsR32=ooRnmZ@tht~YulN2j^jrw)z&b)-!e(HQ*Q+tmKAqg0op2TH87>vqN-q|`oCk7Q)OVry%w)^wSTwBC8w?4zgQ z`n)6=+2Q_c68lUaHFFQ-a|Vy~JK}@Zz6QhFvy+Pl4ZhIHWqxVcaBN78z=`hD)ZVz4 z6WI0YRG`d7a}O5HzW1l;$nV;MqO*QED`D3fDyz?(E*uL>m2gc?Ow3CQP9|U+Loh@< zQM_a`^Cj;u!z0jJgDtmvW7EE83L1Qi`!2{gv)ePO1fa<7?#(sE#pC1S<@dkQBm8(_ zlw<)|FFH%qx_P#4cd`4)G2wg%askPdUmYAT_}nxOZXF$+{exXsyiu`vuT1}^+0G7x zL~2(KLGGubqVhl3?gXM%w(SZ`?t)AKEjgAoWn7XrJ$4%Bwp? zZLWtCWMUyT%D}tggWXSd&ZD*F$PQ9x!rzImcwW$liy#q@bAA8kbq{Ap5(lH>TruF(8IM*D(4a_pyZU*3eNn)KAWFd7#t9PH^WEX@_=KG!L^+P58UyVjm7OiAWc z&|6>)o-S4ED*SM_aIoA|C-QBcwsSyZQ&R<7H=qaH^(nV-Ya}VoUNP73k-O6IWDdd) znKbhd4pw5-M!8WRorKRPRV>>_P4>aHs3o%qpbc3|EN#8nEi)1>Jtoyx(#y6tujh44 z>{#}4-5&k7H2)Q^VS#a0LTXUMp7pJcqMPMb-vakPOoj|pdlb^H`}N%4oya{wP~L9F z9rOk=@yGA&QqKQ0LFY!2+vV8EnX8JJt7(A|0UNI9AJ4M=oo0_a^p%E3zfx1*yAsOu zq|CO%VX{%x^N*!_p%+LQJ#|6pSfWEVg-mE^Y0&^NOxk1m6@q#Jp*w)^!74#H*Osyy zSGPUwh`}51hL>55=A(1P-6t>8A3q+$RaITxJUD0qkQmA(U7w#GCzs9a`xxj#X{CoV zL?DLCj1+99q@=XXY=DOGaVi`f9MM@I6qwceV`RL4|0uclMZ$gZPVN4N0dAQZ73$Pd zgJ+b%lB}~4+(*snN_ei~)is#*%4jX(s#ahy4tLn?WE6eG#0Q<}-zMlVt{#6?kR%;( zCg`%dUSIKmXI&113EqrQ#N1$Ss-TGB@B5Mc?`ky@OU%3@va!Pa74Dx1({~r^oz@!U zl0g43wc0=(=;RUwz_rC`^+wr0)c zHk&OAv6Xjo3_NOFepah9H3!Tc1kho{m%ZHF^qxy@HgUy#);=G_g+Pj0y2|-f<`gpC zxIujBxjt*x(hH})6;Fpgv=(c5$<+XY4ZA_QXn>@KNQmdg6FVG7z za5^ZRjSUT|MMXt;!$KU;pIq=U%vFxYJAit@Dr)sFnB%gc@6Q2hE#87go}T63Uk54O zyLXQ=Qd?W#Hr5r=%e=Qhj^TK=2SilolV?lE&8qyX z`TA(sR8x3a5fLe`#n1NJ!{ob6Ek^IFBOn)H0Ky`1sqaKkTT6IVb^g@wqy7`d zy*as6=R9t5w&JpiSpo$BMmTh(KOG-;oonr%kPcaX#S!w(=UIbBejCYm`>o6OAzj$W z1+-nwOhE>{Wy%%J*e|)>)$^-Y&6O8jII2&2m>qj@jCqD{-q<|VFxbLcw#DQi_<`%} z?`<@auyyu4oO!9_NV|ClQ1fGz*`NW`ZGW)0)Kh38mAqMKR#O31<KXB4nRXX^@|8Ri zdz~ViM?-4YOJ+`4A8sY%RzKa3U|Wyp_`UfAZ&YY@!MgPM_#%h92Y=DmtXttZCA_Cj zx$y5yubZajYRFPfJ@9=Oq0qD?*0LJh# ztwOHef3RRUGW16Pqs=X=j>r3GF>tPN%I*9(8xi;r zB+WgYx;PkVq@Jm&AbjP@mHj_o9(!Jtke0>@*KI}b?NR2&oE;SgI0kc7@UcYu*o7I!s`*RJGKQ1U- z-0U#WV*%l=>Cb*DoO$SkUk9tjN1Zsn5z25)w24uo8VLlI-G$? z8Zb#JPQs@3r)Nk5xRubBmH`s39O>aK!UKVF@KL?s!$V|j0PY%s*mB)CK1?}?lqqrn zz0(tuacol2GfF~6MQ?|O1Qa*{q`~nsg*UhW7qqg1FM!$)MA_i7o!t*^6VGxqlkjlT zk}6$CWEG(Wp^EHw66PHhi9GlYVR?Xgu;cBGZqp+0FN;t{Lqb1(3wxh>EM>l|dvic5x3Ystxskk{S76Mmml4Znw9@%LhOTY@LASL3c<8umL(@`` zN|n5Y&F9PQyem6Q9v6hBDLfrr)=a_MZ>uWA#Zt3dnk=u`9ljYh{IWk+*5E0|v(I3m z^w7fteXe6gI$-fhMurD-z56_9-9JDk7PoFT0bEn~tr}b}eAh~9!Sh=TX>IlkqrwlU zBc(IS`&xk9zXPTOrn5ig&3u282?^g{oy*Krjii93pwa6bVjtqe;O#&#Ml{-Q-))w{ zp9#(`>R$XmyZ|N@c}B$}^b8CbNNfi0lxdzmf9}|mXS)WqOyS`TIPR>HP9NYw7s1Sj zJpXk{HS9Bke0}a!MWy18qD|*NLs66f5rtnsK-0GU?fdJ7K-?vr?xa4DhDiX!ju6g8 zQe^$~4-O9ScSYtujbu$;EAyOlg+V+$`4U?u80i57cKt>bJO}liGvUkt;lQng<(L<+eC<1Bw@BVz%vw zZ~!`P7J$V$KzZ1*Y2j}Thcb^VVc-1jFC$kt%Ltl&(1p4d8V(6m4)#MvCeY+ETVVhM z?L~bEuYr2EnMLq+_A8Z4nC8<~cs1(R0qT+#UKfeO$s*Dp$u}T1R|s|6#fC zSAU}IjF%6;5a^({M?V$;GW1pm&W}!Y=*}o>w~)iXra{E=DsP`fXqXmUq( z(d8St!kWb_;?#~UXl%hh zsKO#-`s0J!-0t(&Y@3gp;{^#|Ynt{CO#}F!tQu(s1ap9RytQOQun@u<1#B{%A&0xq zph5)|mJr|y0TT9I{Lxu7$Ae4q_SNs)`2iP@4cmwB+BMyPjVE@y8_qbXC6k3=Hl&J) zSBYT7Nx7y%F9|w}ay>LUx;r!=h*ZmiAk*s-6o*NC(s+VaSI3 zuxb6dD)*_EkHf+++3HLl3?E=W)BZgxthO_iaGRM*Na41M3ME47fB-?9hL+ahN4nCq zSH8s{%zBysGjY`S3sK>I{bQ_L0QE~GtY)0u_#^nl}# zUz~1$0Kdvy+zze{WSs+I_O5?l8Cxd9zH_FXEQvF{)oovTgh)={XMpk<*( zoe?}Y!sO>0+p}exLzxgZ2bUc`5p+9pKE^_VKqjxx-eH%oFp_$ZF{StMi8;q=T~)ue z(z0uhI)v-o;^3{j&tE@l-Yim)erQ$sSvbvTrrw->#HLow$R%!FpqS5`e5TYjTt0a> z{$nkkpzJ3c{^^Q`!M{ZZrWfu*4 zMV?=bBp*8GBdu(gJJMDTv1IbQ46zAf)MKCPXhX}mhr6HU%2-An`y0VPQ zty`F(RILoAQgjTDR_pxm@bLO%jLs~QS)ld~l(^9}j%eGFimmv~D7U|MHAOxM3(m)K zhu(sGaH;Bo1*EM+CkH+WT%Bt_ZZalSx_Nu|LWjzFi*UFnrH2VhZ6wz1Q1}=6%Tx=o#OPSl(=4pjMgT?u2V}Puf17SgMv@4EKu1PKrl+)U;%_1& zBZ0{Qz1N;DV1I;lWNXGAM~KV%Ls7Y!V0U?K)G5t^M1y3n;_{c%yH}n^eZSVEZmlMm~#7S zT=b|0Z_o#Hvjw!U1%XA7nba3c$_CS#BbbS#Lk>PV^yIzERE;44Ntuuj*QHP>`1*Rq z8dEk9_PM*~>=AwdyD`rw^-%F30z0?X{{TrC3x6{hHl4~Acls3~J`=`G!=cZekMj|% zl|ML*)EWwFdJ!oaYPS;0RhyF-k)>(O+MlcWoslFP`6bs7p=%w<_QF#wn6B6a+qnaw zFi(*CgGhGq2d0&`0FQS)nHeDtq70$_?(eV_&MHL_MCw-Q3?%!-$8*vTuit_)O7EJ~ z%%C;j+cOYNWHy|7K-F?=`#$Qm*K-d!=B`>>rXW?8eBjkGs{k(BW<3~Umr(6PDV|C5 z9ln2NHZ;e1eJo@qzs?oC@Uu+se=CmSJIj4N#SLG)YiI-hz$LqNXm*y+rM>~Jn#>lD zD74K99xH(f6uz=W!|lFw}vpU1vo&;HKs2kBg1p-GmY7Yhe|-p+`YWW;FEp|8!pAAq%gM6 z`&T_(!Rvo4a<$pPM>Gd^sF$x_$3udVm6i1btpgadWH;+ttb7gFTMR*xCp#mV(!AEc z*-F%YuwtRA=8pkrvG2h3n`@FP%C`zmZMczg{bo?cu8_emJiG&N1P^l!q3QXWl(5eB zDa-!SDR3%jR5GGaPmSXjTA?yT{%Fr8;X1%$LRUwykrPbZH>#e3s>qGLhQ>RElsf+z z^4fkIlwmaYmpEh#&C?=+Cp!|c8Gj=F>{(&{o!h5sLr9Tkg(-Zrm ztV>YAZKuR#=#{qA)mY-nQE_L2#k5PQ{~jpFj=j6#(P?|#EWN{RX09K%`W3>vHX|1X z_b;x`$#V_w+%IyW^uAB4_MFWG`p7+S4|T~Tt7kF0XkFcH&(~cr$dKp`&n%XU{YG@1 zurGkp!($01zjX(!z-mDmC6S<(@eT|a^Uw?MV~KQF1g?yr{dJ?cqHHKK7~V|(WO-*( z3M_oZ;N5M8LZ^Lq&bjz^w_cpW8<*vP%{znNC^~t>sL0e9f>`Iy`aBZYfC)Cs>bt}9 zV+FX*qlH7Z4#<>v{p^NVg8~Bu97@nd`Hp=;JJ1$Z?!AD8 z5RNtssoaPajnh+BevDXTYPZHU5JmKcjEqSjRrJb$de^@vlR~!jhz=NFp^a^ATF^Zn z3!pT8b0j&(x+UIm{Od6Qwdm?}HfH7=z&8?hKQ46liDuKT0&F%sRPp%S&~Rn=2HK&8 zfi?_FY_6`5&E5lW)B`A6Y*>;zR(_@N4k-0Yh$9C){5)ETf1;tK=|RyLEh_z5OSuZu z>m}u_QE5LOP5BWC$oW>iGK#w=7J3(+_>v3bcJ0yhHJc*=M%_8Jwq9mW>6=#T&1>Sf z&)0(TAIF6$u&dozj?t0tg^P68Q=cCi9+vQ&)phPKHAeP7=yu@s3G*EL0@m>9&c@TH zPcyNx@q_r`=WioFrN1!HBw@uXfp>9n0U0msJpo`-oI@$(^Ey3J1s2R*l`z*fQ+h3B5T*Iv_y?g!)Ibgwtt zHVR0U(xG6KuahQ^BoknOgqlTsrjbR8lh+eVsN|j=#Q)Mw-(Vle{+BRD>8W`B_U%FK zSRF`zqx&mWpr8;QBy-S6N<>}W@!FQ9ffL0l?Jq5ru12P+IKdb)OmB}V_G?#*c!fGkB!Qy?F#|NrB5>kCH>4Dg;+Z4^+CXps+ zQV|P0q>3j1g4usckG)!)o&_&nzwXVrO;T4s5n!Jiq;?W4e?NczJd%Va!b4+~^(}#J z+C1Yj8^`9@N~>#UTZ;=JW+G()4+S%mt(_f*?G?O?-9PNXQ(CRhUFF|F0TcB6Pce>uqO z&z*n$y#sV1qqBI5us47EQ^tDu{Z8%L^ktlwD{i_qIY(+FM7y|7M*YQ$W2_>xH^BXn zpB_H<17QSUz|u$y-m!nCb=t7LJIXY=YpTani z{aLrS5@JZ#&?F3qnhf}&aD%C}C}3#;_ItYDYMt1of|esFFtERKVWz@;JrmO$&2zA% zvk+;pwf;n;UIBq8$x$B6UIcKw!T`yjfod-Th+v?N8zmnEqdQUtK-SUx5?5SY3~9pD z(gVK(I~j(AB1APu=kVwG^D>@x!n}U!>E)|UHqX=2(!g)%DDsaXC=(cf5QvX-u+oI{ zDzB)hK73FDfk1%QI+&-P!h)apP0^gMrsk{O;?bx~_ng1Sb@ z4E=0%#GD#!)w#wB%K5W&>|Y>Z>>q@?H2S5yc+06Ne>jajEi^ngO6mAp|0 z=0BoSKPPjW#p-8RsddOI6lf)4zD&Yt@*uMG=__>wV5VN5bxTu^Z#A=60O2JM#!*7K zuRBk#Bdexg!E-h$H6-{I6raE=o9L;<53@~q)Ih5F_VUGxPPxrJ89o^24+Bdd0RZ{| z<0`J|=yZ5eU$W-1UNm4~VHpl^o$kiRf{B-!PX2-#_QRjtK+coBz_Y&oJNd??ufRA{ z;cySF?=DzNB9UM;IS_Wj+>V|Ku>N76Q8C79&;1=Qkc_hDHT*%N0trL|n9cM6t#pA$3few>v}Et=3uBYm7qzyth5IlJn%>VgUHR>GYyH3!D!IpW`UKEVIjG> zHy<(3)2p*=WoBj)?|o4@_cyJ_Y7iuf%lI*rRrBbm1$-tM?9JscC>UswW?fyKL+2$$ z*bOZSb)5iJfd=`kLnpDi`eK@K!CeuA$AN1zTKxXkzvOmiGppniz<50p5`yCh5?B88 z=~MOYq78z95ZnwCdqMm`oO?ju^gto&TCe~!JEjnefvNl}o0~={(((IQ$>R2xp!5%G zfd?NX^QyHC4?L5QkdWlMvv#11%F4+xojR2P!EC1GEk555LPC^^5akqc zCfj$9bl+rTAcNvaNXz22l;ELpLmJvB>-B8E`mTa7*>0R znVBcE6Qsaor)BKl?9v9%pxX;bNW%9|7*O(80Icu5*MVWA5`HTLX5vqfVkv#aX&{tj z00KvjG2*O-LGS5cjDg19k)Fw>V(VRrt9ltvAeKCUb$T$psShA?3gRMYEBvyurZHDY ze7rY?4rdfP?BK1jHQt4wWfs6Yw7_G58YWWo22~PCI?>T|x$uxG5L^jr5J4%77TMGX z`@3;bQR(--JQGRaL#69xsxT?WgRhGWQ{8J}64B1V?zaE_dS6eb>H)(qrhooP2d?So z#~nEf>MjOESUni&Y6uYs49xVkhX>-Tc6n7(knEtp01x3i1|o}gntUPHdU>Jr0iDTu z5C5ph9c)b)nur+`-0d_qVfp8uC>J3;fG4YGc%jlzlArGmoC>N$+-isiwfX@T4W?kE zAZ0OQphW=WGM!Ge{B#5a|Lxsf$JJ>q#DxoYor|ms)b`ZW)R4+9l8xLysNI*uCB3$__^rjNG*grr*f*!X%cn@Sa#ka3tVMy~GSU~!}{`#>w+R?{i z(W+*2d=XIFT(?3Oa4QTTE<^{Z@m|meptU|<9Bu&S*z+V>-lc2=mU>ZoI=5G6Kq!-j zbPAkZ55XFKgK$IhHA~a>)2)-iqu@(`kQRreQ<%{(ySp?q52rjfcBpdWjj9R-hJHZ7 zCky04Ca7pa`kf;bPgC|cbD8Ws0#PXUmJ+Z*qX%9zf<=}^*A3MW-7g!?lcevOxOlI* zZhAqJ2bO5nBc_QfDY`EizI&wtTGXm6o|@x*Q1dC2;^M-=4ZjPbMz*%#Jx@|CkUZSA zt?6muN=o3L^1}=33UJuEyO>lj`&R7vXpg`F%-73QsW4?mosp(HalT|^t%8n(GAd>Nb3XOc;7ra%} zr$4TVnk)ulTS@&B~HI(rFL?ca`vs7B7CnEDeR+^A4l-wqj2Q67jLd3>7gzqKQymEel# zFUre+i}^y{k?qF#19h+we-G9YzekN4>|a_ z!M~feogK90V~!Q0EG^(e>cM0Ftb`tw)M9>zSf_xxKssqaCDSq@^{02UBe;zZRbTzP zFDu8wWw$@imzK8Zf!e(n&b?N>$qpVB}g$}_jCpG@2<*Jdo zk~ECUHg^Hw1V)3w%84?sK$K!TSVE!rn5$_*{JC-?^<=<7$Ptv!k;i<$6!n$y&=H@J zQN-fuhWhpTB$LsH*;dz9P>0GeC^0qK&h5&n@$T!Pbzb~}j|ZN2mA5JJ@afS|nOpkNdZ5pj*lob} zF26XesD4!AKkI*i(R#h@<9a7IgS)qPJRl=5mbSmWQJ5_CV5R&m>fx1YKQR?35@~N% zB^w&1jXg0!l_(@U7DDNsfgF^iIhT9uPVLZuWWK96s1B|3!WMN|{6=pl$Mlq;TqDN# z*IWM($C)y#-7^fvoP>w)*K%N9oZ_G{`y16CRr@1hyTXu8L6lo+Jt89F4eV98fZL-z zuX6L=J1fefLWBM>cx2jmHEP;Pp+#*DT{osvWe?b{+Hdt4SCgH1&hh+S<$01qoQs*m zZSKSzuf-u_Xcqy`EvoTp!OhI6((*^53m#W;C%;=ET?B4!O;#xGK}SOmcLuQi!b7LC zymt4Qnxm8<{CGMP=bjlSoo=%(wlL8e&%^`@0=z^Bc{gqo$LnIdNgHm>Gj`y8nSbyX zY{nx>OeLAGaH}}Y98U$Yfh!BEu{`y>R1#Beln2H#!IZRU0gl{~3W3W{MSj>wa$X93 zoRC857WTCWx!z3WpyL|NX);1mLDLXv=%f{;#ZBCZit*Isf zZ}on)wyzZQGHHW5{%Ks{Jqa1DP_clw5FG_5$3pn&09a0nB*(Gx8+8D$*I42bn^DD%6iR-LR!kP^Hh)>3?38 zp%Smz%__zaD~9~F>}}qW<55_HoA_J0G%x8*Xa$<_#SYCK1 z^pi2KaEDmN%tJ}4_5x%2OKrEgkc?2F`^bU5W8#5x ziy3*fS;lM{ll-oKWO7sc@604Pt+#J_hdEGYD#WQOdMEpOb4V4jRH&#Rn8wO!%$V7m za5#AMr)WV=BVX((EVs%&%}ZL7#|{HC=V;p3TF|Mv3aQ&sWB~1 z!@{-~ILzv(43W0CK98jM=3Zn84s)k1&#y$#Izy5P^*cPB-s+~!Be9x>#)AIhDTdd) zEhV_qx8<_b#o;4xzyHR^?z~@D+;+V~%;v<)Iij~skAxOLPls%*UZI1ER%qcua^TIF zk6J4zjlSx7ftER z?;Cn_{qEx+etG>mo&F4ah2$r#-640g>5F7@iM)PZepJ2mW4@?{Qana$|2kp1p7$PR zr_!4|pr}#t;k3hpV|c~R=$K&qp}@AS-;T2rLw--r5yb=8MK_|7vE-p=7`1ap4SAjI zYEOT*GhAGor+XRwn{1GCBBr;p#raNK&^ap9IaqnW3(j}je*39>GHCX{Wzka4mt7~K zA)mUwGR#XA&x%Q(ZQ61jz_QTI@AeZm#OHCQC`D~pf%DBSoE^WPk$WP`DB(EilAID| z(?esAh9OP(VFq6&PknE^wQ%UPc$Ur6j!URU4!9T90-FA}&oI1%C|) zpZH%!TO`QL_&<_SQ>hZp{4`PO|F(NU)Pxq*cmrN^ynikd*C}f98Bg?zUOyR(F4hsu z{DY0G#ZFXmouixllIck%ClW z#kA^|8jmQpL+A^P(n}%gZr~?_Vhw<)R&rL9^dcoI4?F>l=p5CZTYK z=*5N#^+L9MKdT`+UhT&5+;i;n+BbD+7G?YA${d!aP^evaV&3;1EijH$;!-VT*o00= zlv_`}HWzqfn$51&qLX)WZb$GvoM~z^5V>KNknBu_>P60C znd)6F<15ze(hDcm^POpa<^4Xn<1W*|3%y7y$SP9zGZ6H@-xH~MC!UL*I&&MsmJd$= zgJF(rJ~>{mUo z;r_Y9cl0vpFDM+jk|u_-41wE>w3aH!`5kjf=JK)J+YEf6GPhkm-&a~V4!u+G`E(V% zvD4(bex(mIx<6L<_fG0k)w{ua23mFeNHTgy<3#LH15_h|E>QiKORzHL*rRt*w=w2)caHF(&ioC@9`&33u9);e$}_zX zs>w5H>?qxmzwn{dP4o5isK)bDOsMnJN=y$Gj~XIxV}N=n03r5~h~+8NPtJE|Q0HNl zu3F_e(}cdgn0`cYObL3lcuibB{8ffpJo7{sbrlPjbW&x3KQ!ZYC_U=-X(gr))I<4F z?wUH_F rZuS4$*827zf~&;xA6gfB=8%rrLBiJe<=I5!6V+~O-zrkJeEh!vEGvKF literal 0 HcmV?d00001 diff --git a/toolbar-menu.png b/toolbar-menu.png new file mode 100644 index 0000000000000000000000000000000000000000..88dd87df024b1d2c717bde3bf067a8fda64b8c0c GIT binary patch literal 53058 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⋁`Zwe`}SFm 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 Q#lI+;2X)jQs#>4_H!Z^CtpET3 literal 0 HcmV?d00001 From 33943cb6a2da9404f025b6e422a002310156b820 Mon Sep 17 00:00:00 2001 From: Margarita Loseva Date: Wed, 29 Jul 2026 12:48:38 +0700 Subject: [PATCH 03/11] changes --- README.md | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 1319f76..0fd3211 100644 --- a/README.md +++ b/README.md @@ -19,18 +19,16 @@ This example demonstrates how to add a DevExpress Blazor [Context Menu](https:// | Time Ruler | Toggle Work Time | | Toolbar | Switch To Day View *(if not `Day`)*
Switch To Week View *(if not `Week`)*
Switch To Work Week View *(if not `WorkWeek`)*
Switch To Month View *(if not `Month`)*
Switch To Timeline View *(if not `Timeline`)*
Go To Today | -Toolbar Menu: +The following image shows the toolbar menu: ![Toolbar Context Menu](toolbar-menu.png) -Resource Header Menu: +The following image shows the resource header menu: ![Resource Header Context Menu](resource-header-menu.png) ## Implementation Details -This section introduces key code blocks used in the example. - ### Detect a Clicked Region and Show the Menu #### Appointments @@ -164,11 +162,11 @@ public async Task ShowAppointmentContextMenu(double clientX, double clientY, dou The [OnItemClick](CS/Components/Pages/Index.razor.cs#115) handler reacts to each command by its `Name`: -- **Edit** — opens the appointment edit form using `ShowAppointmentEditFormAsync`. -- **SwitchToDayView / SwitchToWeekView / SwitchToWorkWeekView / SwitchToMonthView** — changes `ActiveViewType` and navigates to the clicked day when available. -- **GoToToday** — resets `StartDate` to `DateTime.Today`. -- **HideResource / ShowAllResources** — updates the `VisibleResources` collection bound to `VisibleResourcesDataSource`. -- **ToggleWorkTime** — toggles the `ShowWorkTimeOnly` option across the views. +- `Edit` — opens the appointment edit form using `ShowAppointmentEditFormAsync`. +- `SwitchToDayView` / `SwitchToWeekView` / `SwitchToWorkWeekView` / `SwitchToMonthView` — changes `ActiveViewType` and navigates to the clicked day when available. +- `GoToToday` — resets `StartDate` to `DateTime.Today`. +- `HideResource` / `ShowAllResources` — updates the `VisibleResources` collection bound to `VisibleResourcesDataSource`. +- `ToggleWorkTime` — toggles the `ShowWorkTimeOnly` option across the views. ```Index.razor.cs private async Task OnItemClick(ContextMenuItemClickEventArgs args) { From 932bf8305e6d8a4e39b5d1beff705f463682cd4d Mon Sep 17 00:00:00 2001 From: Margarita Loseva Date: Wed, 29 Jul 2026 17:33:19 +0700 Subject: [PATCH 04/11] changes --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0fd3211..6ad4bdd 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,10 @@ The following image shows the resource header menu: ### Detect a Clicked Region and Show the Menu +The application uses a combination of Blazor and JavaScript to detect the clicked region and show the context menu. For [appointments](#appointments), we use a shared template to identify the clicked appointment. For [other regions and elements](#other-regions), we use a JavaScript module to handle the `contextmenu` event and call back into .NET to show the menu. + +If you need to add a context menu to an element that supports templates, you can use the same approach as for appointments. If you need to add a context menu to an element that does not support templates, you can use the same approach as this application uses for other regions. + #### Appointments To detect a clicked appointment, `Index.razor` defines a shared [appointmentTemplate](CS/Components/Pages/Index.razor#L9) object. The template is reused in all Scheduler views (Day, Week, Work Week, Month, and Timeline), the same right-click behavior is available everywhere. @@ -90,7 +94,7 @@ private void OnHtmlCellDecoration(SchedulerHtmlCellDecorationEventArgs e) { } ``` -The [appointmentContextMenu.js](CS/wwwroot/js/appointmentContextMenu.js) module inspects an event target, matches region classes, and reports a region name (along with an optional resource's `id` and cell's `start_date`) back to the Scheduler component: +The [getRegion](CS/wwwroot/js/appointmentContextMenu.js) method in the [appointmentContextMenu.js](CS/wwwroot/js/appointmentContextMenu.js) module inspects an event target, matches region classes, and reports a region name (along with an optional resource's `id` and cell's `start_date`) back to the Scheduler component: ```appointmentContextMenu.js export function setup(schedulerElement, dotNetRef) { From 3e1248e0ac3bc6b4fa017dacdae1ce1257e8ed6e Mon Sep 17 00:00:00 2001 From: Margarita Loseva Date: Fri, 31 Jul 2026 11:51:40 +0700 Subject: [PATCH 05/11] Apply suggestions from code review Co-authored-by: Elena Khamliuk <80813840+khamlyuk@users.noreply.github.com> --- README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 6ad4bdd..3b5ba59 100644 --- a/README.md +++ b/README.md @@ -6,9 +6,9 @@ # Blazor Scheduler — Custom Context Menu for Scheduler Regions -This example demonstrates how to add a DevExpress Blazor [Context Menu](https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxContextMenu) to a DevExpress Blazor [Scheduler](https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxScheduler). When users right-click within any Scheduler region, the application detects the clicked region and displays a context menu with relevant commands. +This example adds a DevExpress Blazor [Context Menu](https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxContextMenu) to a DevExpress Blazor [Scheduler](https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxScheduler). When users right-click within any Scheduler region, the application detects the clicked region and displays a context menu with relevant commands. -| Scheduler Region | Menu Commands | +| Scheduler Region | Context Menu Commands | |---|---| | Appointment | Edit | | All Day Area | Switch To Day View *(only if `ActiveViewType != Day`)*
GoToToday | @@ -37,7 +37,7 @@ If you need to add a context menu to an element that supports templates, you can #### Appointments -To detect a clicked appointment, `Index.razor` defines a shared [appointmentTemplate](CS/Components/Pages/Index.razor#L9) object. The template is reused in all Scheduler views (Day, Week, Work Week, Month, and Timeline), the same right-click behavior is available everywhere. +To detect a clicked appointment, `Index.razor` defines a shared [appointmentTemplate](CS/Components/Pages/Index.razor#L9) object. The template is reused in all Scheduler views (Day, Week, Work Week, Month, and Timeline). Inside the template, the `context` parameter provides access to the current appointment via `context.Appointment`. The template wires the `@oncontextmenu` event and calls [ShowAppointmentContextMenu(e, context.Appointment)](CS/Components/Pages/Index.razor.cs#L99). @@ -65,7 +65,7 @@ private async Task ShowAppointmentContextMenu(MouseEventArgs e, DxSchedulerAppoi #### Other Regions -The project uses the [appointmentContextMenu.js](CS/wwwroot/js/appointmentContextMenu.js) module to handle different Scheduler regions: date header, time cell, resource header, all-day cell, and day-of-week header. The module handles the browser `contextmenu` event, determines a region by a CSS class, and calls back into .NET to show the appropriate menu. +The example relies on the [appointmentContextMenu.js](CS/wwwroot/js/appointmentContextMenu.js) module to process the following Scheduler regions: date header, time cell, resource header, all-day cell, and day-of-week header. The module handles the browser's `contextmenu` event, determines a region by a CSS class, and shows the appropriate menu on the .NET side of the application. To apply custom CSS classes to the Scheduler regions, the [OnHtmlCellDecoration](CS/Components/Pages/Index.razor.cs#L160) event handler is used. @@ -94,7 +94,7 @@ private void OnHtmlCellDecoration(SchedulerHtmlCellDecorationEventArgs e) { } ``` -The [getRegion](CS/wwwroot/js/appointmentContextMenu.js) method in the [appointmentContextMenu.js](CS/wwwroot/js/appointmentContextMenu.js) module inspects an event target, matches region classes, and reports a region name (along with an optional resource's `id` and cell's `start_date`) back to the Scheduler component: +The [getRegion](CS/wwwroot/js/appointmentContextMenu.js) method determines an event target, matches region CSS classes, and passes a region name (along with an optional resource `id` and cell `start_date`) back to the Scheduler component: ```appointmentContextMenu.js export function setup(schedulerElement, dotNetRef) { @@ -133,7 +133,7 @@ public async Task ShowAppointmentContextMenu(double clientX, double clientY, dou ### Region-Aware Menu Commands -[Index.razor](CS/Components/Pages/Index.razor#L83) declares a single [DxContextMenu](https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxContextMenu) that is used for all regions. Its items are generated dynamically based on the `ClickedRegion` value. A `switch` block renders only the [DxContextMenuItem](https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxContextMenuItem) commands that make sense for the clicked region and the current view. For example, "Open this day in Day View" is hidden when the Day View is active. +[Index.razor](CS/Components/Pages/Index.razor#L83) declares a single [DxContextMenu](https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxContextMenu) used for all regions. Its items are generated dynamically based on the `ClickedRegion` value. A `switch` block renders [DxContextMenuItem](https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxContextMenuItem) items applicable to a clicked region and a current view. For example, "Open this day in Day View" is hidden when the Day View is active. ```Index.razor @@ -164,10 +164,10 @@ public async Task ShowAppointmentContextMenu(double clientX, double clientY, dou ### Handle Menu Commands -The [OnItemClick](CS/Components/Pages/Index.razor.cs#115) handler reacts to each command by its `Name`: +The [OnItemClick](CS/Components/Pages/Index.razor.cs#115) event handler processes item clicks based on command `Name` value: - `Edit` — opens the appointment edit form using `ShowAppointmentEditFormAsync`. -- `SwitchToDayView` / `SwitchToWeekView` / `SwitchToWorkWeekView` / `SwitchToMonthView` — changes `ActiveViewType` and navigates to the clicked day when available. +- `SwitchToDayView` / `SwitchToWeekView` / `SwitchToWorkWeekView` / `SwitchToMonthView` — changes `ActiveViewType` and navigates to the clicked day (if available). - `GoToToday` — resets `StartDate` to `DateTime.Today`. - `HideResource` / `ShowAllResources` — updates the `VisibleResources` collection bound to `VisibleResourcesDataSource`. - `ToggleWorkTime` — toggles the `ShowWorkTimeOnly` option across the views. From d0d2592b47544fd3c4ec1a1aa9f5a442a9385c5d Mon Sep 17 00:00:00 2001 From: Margarita Loseva Date: Mon, 3 Aug 2026 16:19:24 +0700 Subject: [PATCH 06/11] Apply suggestions from code review Co-authored-by: Elena Khamliuk <80813840+khamlyuk@users.noreply.github.com> Co-authored-by: Margarita Loseva --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3b5ba59..18f9104 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ The following image shows the resource header menu: ### Detect a Clicked Region and Show the Menu -The application uses a combination of Blazor and JavaScript to detect the clicked region and show the context menu. For [appointments](#appointments), we use a shared template to identify the clicked appointment. For [other regions and elements](#other-regions), we use a JavaScript module to handle the `contextmenu` event and call back into .NET to show the menu. +The application uses a combination of Blazor and JavaScript to detect the clicked region and show the context menu. For [appointments](#appointments), a shared appointment template identifies the clicked appointment. For [other regions and elements](#other-regions), a JavaScript module handles the `contextmenu` event and calls back into .NET to show the menu. If you need to add a context menu to an element that supports templates, you can use the same approach as for appointments. If you need to add a context menu to an element that does not support templates, you can use the same approach as this application uses for other regions. @@ -162,7 +162,7 @@ public async Task ShowAppointmentContextMenu(double clientX, double clientY, dou ``` -### Handle Menu Commands +### Handle Context Menu Clicks The [OnItemClick](CS/Components/Pages/Index.razor.cs#115) event handler processes item clicks based on command `Name` value: From 90e4aa6031f34b09878cdde8042e0847b9028026 Mon Sep 17 00:00:00 2001 From: Margarita Loseva Date: Mon, 3 Aug 2026 17:21:54 +0700 Subject: [PATCH 07/11] changes --- README.md | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 18f9104..ba755a7 100644 --- a/README.md +++ b/README.md @@ -12,12 +12,12 @@ This example adds a DevExpress Blazor [Context Menu](https://docs.devexpress.com |---|---| | Appointment | Edit | | All Day Area | Switch To Day View *(only if `ActiveViewType != Day`)*
GoToToday | -| Time Cell | Go To Today
Switch To Day View *(only if `ActiveViewType != Day`)* | -| Date Header | Switch To Day View *(only if `ActiveViewType != Day`)*
Go To Today | -| Day of Week Header | Go To Today | +| Time Cell | Switch To Today
Switch To Day View *(only if `ActiveViewType != Day`)* | +| Date Header | Switch To Day View *(only if `ActiveViewType != Day`)*
Switch To Today | +| Day of Week Header | Switch To Today | | Resource Header | Hide Resource *(only if visible resource count > 1)*
Show All Resources | | Time Ruler | Toggle Work Time | -| Toolbar | Switch To Day View *(if not `Day`)*
Switch To Week View *(if not `Week`)*
Switch To Work Week View *(if not `WorkWeek`)*
Switch To Month View *(if not `Month`)*
Switch To Timeline View *(if not `Timeline`)*
Go To Today | +| Toolbar | Switch To Day View *(if not `Day`)*
Switch To Week View *(if not `Week`)*
Switch To Work Week View *(if not `WorkWeek`)*
Switch To Month View *(if not `Month`)*
Switch To Timeline View *(if not `Timeline`)*
Switch To Today | The following image shows the toolbar menu: @@ -39,9 +39,11 @@ If you need to add a context menu to an element that supports templates, you can To detect a clicked appointment, `Index.razor` defines a shared [appointmentTemplate](CS/Components/Pages/Index.razor#L9) object. The template is reused in all Scheduler views (Day, Week, Work Week, Month, and Timeline). -Inside the template, the `context` parameter provides access to the current appointment via `context.Appointment`. The template wires the `@oncontextmenu` event and calls [ShowAppointmentContextMenu(e, context.Appointment)](CS/Components/Pages/Index.razor.cs#L99). +The template's `context` parameter contains the `Appointment` property that gets the current appointment. The template handles right-clicks on the appointment (`@oncontextmenu` event) and calls [ShowAppointmentContextMenu(e, context.Appointment)](CS/Components/Pages/Index.razor.cs#L99). -```Index.razor + +**Index.razor** +```razor @{ RenderFragment appointmentTemplate = context => @
@@ -51,7 +53,8 @@ Inside the template, the `context` parameter provides access to the current appo } ``` -```Index.razor.cs +**Index.razor.cs** +```csharp private async Task ShowAppointmentContextMenu(MouseEventArgs e, DxSchedulerAppointmentItem appointment) { if(ContextMenu is null || appointment is null) return; @@ -69,7 +72,8 @@ The example relies on the [appointmentContextMenu.js](CS/wwwroot/js/appointmentC To apply custom CSS classes to the Scheduler regions, the [OnHtmlCellDecoration](CS/Components/Pages/Index.razor.cs#L160) event handler is used. -```Index.razor.cs +**Index.razor.cs** +```csharp private void OnHtmlCellDecoration(SchedulerHtmlCellDecorationEventArgs e) { switch(e.CellType) { case SchedulerCellType.DateHeader: @@ -96,7 +100,8 @@ private void OnHtmlCellDecoration(SchedulerHtmlCellDecorationEventArgs e) { The [getRegion](CS/wwwroot/js/appointmentContextMenu.js) method determines an event target, matches region CSS classes, and passes a region name (along with an optional resource `id` and cell `start_date`) back to the Scheduler component: -```appointmentContextMenu.js +**appointmentContextMenu.js** +```js export function setup(schedulerElement, dotNetRef) { schedulerElement.addEventListener('contextmenu', (e) => { e.preventDefault(); @@ -110,7 +115,8 @@ export function setup(schedulerElement, dotNetRef) { When a region is detected, the module calls the [[JSInvokable] ShowAppointmentContextMenu](CS/Components/Pages/Index.razor.cs#L83) method that sets the `ClickedRegion` value and shows the menu at the cursor position. -```Index.razor.cs +**Index.razor.cs** +```csharp [JSInvokable] public async Task ShowAppointmentContextMenu(double clientX, double clientY, double pageX, double pageY, string region, int? id, long? startDate) { ClickedRegion = region; @@ -135,7 +141,8 @@ public async Task ShowAppointmentContextMenu(double clientX, double clientY, dou [Index.razor](CS/Components/Pages/Index.razor#L83) declares a single [DxContextMenu](https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxContextMenu) used for all regions. Its items are generated dynamically based on the `ClickedRegion` value. A `switch` block renders [DxContextMenuItem](https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxContextMenuItem) items applicable to a clicked region and a current view. For example, "Open this day in Day View" is hidden when the Day View is active. -```Index.razor +**Index.razor** +```razor @@ -172,7 +179,8 @@ The [OnItemClick](CS/Components/Pages/Index.razor.cs#115) event handler processe - `HideResource` / `ShowAllResources` — updates the `VisibleResources` collection bound to `VisibleResourcesDataSource`. - `ToggleWorkTime` — toggles the `ShowWorkTimeOnly` option across the views. -```Index.razor.cs +**Index.razor.cs** +```csharp private async Task OnItemClick(ContextMenuItemClickEventArgs args) { switch(args.ItemInfo.Name) { case "Edit": From 3090e0e0e7a1741bc75fd087862d556eed3b130f Mon Sep 17 00:00:00 2001 From: Margarita Loseva Date: Mon, 3 Aug 2026 17:25:31 +0700 Subject: [PATCH 08/11] changes --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ba755a7..5e49335 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ This example adds a DevExpress Blazor [Context Menu](https://docs.devexpress.com | Scheduler Region | Context Menu Commands | |---|---| | Appointment | Edit | -| All Day Area | Switch To Day View *(only if `ActiveViewType != Day`)*
GoToToday | +| All Day Area | Switch To Day View *(only if `ActiveViewType != Day`)*
Switch To Today | | Time Cell | Switch To Today
Switch To Day View *(only if `ActiveViewType != Day`)* | | Date Header | Switch To Day View *(only if `ActiveViewType != Day`)*
Switch To Today | | Day of Week Header | Switch To Today | From 36afaa42236c746132191d11c9d99de81fc1ec1f Mon Sep 17 00:00:00 2001 From: Margarita Loseva Date: Mon, 3 Aug 2026 20:04:34 +0700 Subject: [PATCH 09/11] update UI names --- CS/Components/Pages/Index.razor.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CS/Components/Pages/Index.razor.cs b/CS/Components/Pages/Index.razor.cs index 0c67a88..e782008 100644 --- a/CS/Components/Pages/Index.razor.cs +++ b/CS/Components/Pages/Index.razor.cs @@ -33,9 +33,9 @@ public partial class Index { private static string GetMenuIcon(string actionName) => MenuIcons[actionName]; private string GoToTodayText => ActiveViewType switch { - SchedulerViewType.Week or SchedulerViewType.WorkWeek => "Go to the current Week", - SchedulerViewType.Month => "Go to the current Month", - SchedulerViewType.Day or SchedulerViewType.Timeline => "Go to Today", + SchedulerViewType.Week or SchedulerViewType.WorkWeek => "Switch to Current Week", + SchedulerViewType.Month => "Switch to Current Month", + SchedulerViewType.Day or SchedulerViewType.Timeline => "Switch to Today", _ => "Error: Unknown view type" }; From 2703fa6c2b8acd34e56bd5ddf3e36af0a6c4a7e2 Mon Sep 17 00:00:00 2001 From: Margarita Loseva Date: Wed, 5 Aug 2026 16:24:07 +0700 Subject: [PATCH 10/11] apply Ray suggestions --- README.md | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 5e49335..140fc63 100644 --- a/README.md +++ b/README.md @@ -6,40 +6,40 @@ # Blazor Scheduler — Custom Context Menu for Scheduler Regions -This example adds a DevExpress Blazor [Context Menu](https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxContextMenu) to a DevExpress Blazor [Scheduler](https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxScheduler). When users right-click within any Scheduler region, the application detects the clicked region and displays a context menu with relevant commands. +This example adds a DevExpress Blazor [Context Menu](https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxContextMenu) to the DevExpress Blazor [Scheduler](https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxScheduler). When users right-click within any Scheduler region, the application detects the clicked region and displays a context menu with relevant commands. | Scheduler Region | Context Menu Commands | |---|---| | Appointment | Edit | -| All Day Area | Switch To Day View *(only if `ActiveViewType != Day`)*
Switch To Today | -| Time Cell | Switch To Today
Switch To Day View *(only if `ActiveViewType != Day`)* | -| Date Header | Switch To Day View *(only if `ActiveViewType != Day`)*
Switch To Today | -| Day of Week Header | Switch To Today | +| All Day Area | Switch to Day View *(only if `ActiveViewType != Day`)*
Switch to Today | +| Time Cell | Switch to Today
Switch to Day View *(only if `ActiveViewType != Day`)* | +| Date Header | Switch to Day View *(only if `ActiveViewType != Day`)*
Switch to Today | +| Day of Week Header | Switch to Today | | Resource Header | Hide Resource *(only if visible resource count > 1)*
Show All Resources | | Time Ruler | Toggle Work Time | -| Toolbar | Switch To Day View *(if not `Day`)*
Switch To Week View *(if not `Week`)*
Switch To Work Week View *(if not `WorkWeek`)*
Switch To Month View *(if not `Month`)*
Switch To Timeline View *(if not `Timeline`)*
Switch To Today | +| Toolbar | Switch to Day View *(if not `Day`)*
Switch to Week View *(if not `Week`)*
Switch to Work Week View *(if not `WorkWeek`)*
Switch to Month View *(if not `Month`)*
Switch to Timeline View *(if not `Timeline`)*
Switch to Today | -The following image shows the toolbar menu: +Toolbar menu: ![Toolbar Context Menu](toolbar-menu.png) -The following image shows the resource header menu: +Resource header menu: ![Resource Header Context Menu](resource-header-menu.png) ## Implementation Details -### Detect a Clicked Region and Show the Menu +### Detect a Clicked Region and Display the Menu -The application uses a combination of Blazor and JavaScript to detect the clicked region and show the context menu. For [appointments](#appointments), a shared appointment template identifies the clicked appointment. For [other regions and elements](#other-regions), a JavaScript module handles the `contextmenu` event and calls back into .NET to show the menu. +The application uses a combination of Blazor and JavaScript to detect the clicked region and display the context menu. For [appointments](#appointments), a shared appointment template identifies the clicked appointment. For [other regions and elements](#other-regions), a JavaScript module handles the `contextmenu` event and calls back into .NET to display the menu. -If you need to add a context menu to an element that supports templates, you can use the same approach as for appointments. If you need to add a context menu to an element that does not support templates, you can use the same approach as this application uses for other regions. +If you need to add a context menu to an element that supports templates, you can use the approach used for appointments. If you need to add a context menu to an element that does not support templates, you can use the same approach as this application uses for other regions. #### Appointments -To detect a clicked appointment, `Index.razor` defines a shared [appointmentTemplate](CS/Components/Pages/Index.razor#L9) object. The template is reused in all Scheduler views (Day, Week, Work Week, Month, and Timeline). +To detect a clicked appointment, `Index.razor` defines a shared [appointmentTemplate](CS/Components/Pages/Index.razor#L9) object. The template is reused across all Scheduler views (Day, Week, Work Week, Month, and Timeline). -The template's `context` parameter contains the `Appointment` property that gets the current appointment. The template handles right-clicks on the appointment (`@oncontextmenu` event) and calls [ShowAppointmentContextMenu(e, context.Appointment)](CS/Components/Pages/Index.razor.cs#L99). +The template's `context` parameter contains an `Appointment` property that gets the current appointment. The template handles right-clicks on the appointment (`@oncontextmenu` event) and calls [ShowAppointmentContextMenu(e, context.Appointment)](CS/Components/Pages/Index.razor.cs#L99). **Index.razor** @@ -68,9 +68,9 @@ private async Task ShowAppointmentContextMenu(MouseEventArgs e, DxSchedulerAppoi #### Other Regions -The example relies on the [appointmentContextMenu.js](CS/wwwroot/js/appointmentContextMenu.js) module to process the following Scheduler regions: date header, time cell, resource header, all-day cell, and day-of-week header. The module handles the browser's `contextmenu` event, determines a region by a CSS class, and shows the appropriate menu on the .NET side of the application. +The example relies on the [appointmentContextMenu.js](CS/wwwroot/js/appointmentContextMenu.js) module to process the following Scheduler regions: date header, time cell, resource header, all-day cell, and day-of-week header. The module handles the browser's `contextmenu` event, determines region by a CSS class, and displays the appropriate menu on the .NET side of the application. -To apply custom CSS classes to the Scheduler regions, the [OnHtmlCellDecoration](CS/Components/Pages/Index.razor.cs#L160) event handler is used. +The [OnHtmlCellDecoration](CS/Components/Pages/Index.razor.cs#L160) event handler is used to apply custom CSS classes to Scheduler regions. **Index.razor.cs** ```csharp @@ -98,7 +98,7 @@ private void OnHtmlCellDecoration(SchedulerHtmlCellDecorationEventArgs e) { } ``` -The [getRegion](CS/wwwroot/js/appointmentContextMenu.js) method determines an event target, matches region CSS classes, and passes a region name (along with an optional resource `id` and cell `start_date`) back to the Scheduler component: +The [getRegion](CS/wwwroot/js/appointmentContextMenu.js) method determines an event target, matches region CSS classes, and passes region name (along with an optional resource `id` and cell `start_date`) back to the Scheduler component: **appointmentContextMenu.js** ```js @@ -113,7 +113,7 @@ export function setup(schedulerElement, dotNetRef) { } ``` -When a region is detected, the module calls the [[JSInvokable] ShowAppointmentContextMenu](CS/Components/Pages/Index.razor.cs#L83) method that sets the `ClickedRegion` value and shows the menu at the cursor position. +When a region is detected, the module calls the [[JSInvokable] ShowAppointmentContextMenu](CS/Components/Pages/Index.razor.cs#L83) method which then sets the `ClickedRegion` value and displays the menu at the cursor position. **Index.razor.cs** ```csharp @@ -135,11 +135,11 @@ public async Task ShowAppointmentContextMenu(double clientX, double clientY, dou ``` > [!NOTE] -> The [appointmentContextMenu.js](CS/wwwroot/js/appointmentContextMenu.js) module relies on DevExpress internal CSS classes (`dxbl-sc-*`, `dxbl-v-*`). They may change between versions. Review and update them when you upgrade DevExpress.Blazor. +> The [appointmentContextMenu.js](CS/wwwroot/js/appointmentContextMenu.js) module relies on DevExpress internal CSS classes (`dxbl-sc-*`, `dxbl-v-*`). These classes may change between release cycles. Review and update them as necessary when/if you upgrade DevExpress-powered Blazor app. ### Region-Aware Menu Commands -[Index.razor](CS/Components/Pages/Index.razor#L83) declares a single [DxContextMenu](https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxContextMenu) used for all regions. Its items are generated dynamically based on the `ClickedRegion` value. A `switch` block renders [DxContextMenuItem](https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxContextMenuItem) items applicable to a clicked region and a current view. For example, "Open this day in Day View" is hidden when the Day View is active. +[Index.razor](CS/Components/Pages/Index.razor#L83) declares a single [DxContextMenu](https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxContextMenu) used for all regions. Its items are generated dynamically based on the `ClickedRegion` value. A `switch` block renders [DxContextMenuItem](https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxContextMenuItem) items applicable to a clicked region and the current view. For example, "Open this day in Day View" is hidden when the Day View is active. **Index.razor** ```razor @@ -177,7 +177,7 @@ The [OnItemClick](CS/Components/Pages/Index.razor.cs#115) event handler processe - `SwitchToDayView` / `SwitchToWeekView` / `SwitchToWorkWeekView` / `SwitchToMonthView` — changes `ActiveViewType` and navigates to the clicked day (if available). - `GoToToday` — resets `StartDate` to `DateTime.Today`. - `HideResource` / `ShowAllResources` — updates the `VisibleResources` collection bound to `VisibleResourcesDataSource`. -- `ToggleWorkTime` — toggles the `ShowWorkTimeOnly` option across the views. +- `ToggleWorkTime` — toggles the `ShowWorkTimeOnly` option across views. **Index.razor.cs** ```csharp From 7950d26e8744f5b095637bb8e7d3f4c7312a0431 Mon Sep 17 00:00:00 2001 From: Margarita Loseva Date: Wed, 5 Aug 2026 18:04:01 +0700 Subject: [PATCH 11/11] update image --- toolbar-menu.png | Bin 53058 -> 53472 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/toolbar-menu.png b/toolbar-menu.png index 88dd87df024b1d2c717bde3bf067a8fda64b8c0c..49c9c47215eb97c165be130d9b8ff11ca84cc75b 100644 GIT binary patch delta 18977 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 u$#nIRabxFiHQC>eBV8%nu}}QVm13r+D1=6 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