# Breaking Changes in 11.0.0

The Kendo UI for Vue 11.0.0 release removes the non-working `exportAsPdf()` method of the Grid, narrows the type of the Badge `position` property, and enables the Scheduler event overview and quick create popovers by default. The migration requires reviewing your code; the Scheduler recurrence template prop can be renamed automatically, but its changed behavior may require additional updates.

## Grid

* `GridHandle`—The `exportAsPdf()` method is removed from the `GridHandle` type, which is the type of the Grid template ref. The method did not export the Grid.

  * Before: The Grid template ref exposed `exportAsPdf()`, which did not export the Grid.
  * After: `GridHandle` no longer has `exportAsPdf()`. Calling it throws a `TypeError` or fails type checking.
  * To migrate, wrap the Grid in the `GridPdfExport` component from `@progress/kendo-vue-pdf` and call the `save()` method of its template ref instead of `exportAsPdf()`. Remove the declarations of `exportAsPdf()` from your `GridHandle` types and update the tests that mock it. For more information, see [PDF Export of the Grid](https://www.telerik.com/kendo-vue-ui-develop/components/grid/pdf) and [`GridPDFExportProps`](https://www.telerik.com/kendo-vue-ui-develop/components/pdf-processing/api/gridpdfexportprops).

## Indicators

* `Badge`, `BadgeContainer`—The `position` property no longer accepts any string. Its type in `BadgeProps` and `BadgeContainerProps` is now `'edge' | 'outside' | 'inside' | 'inline'`, the same as the `BadgePosition` type.

  * Before: The `position` property was typed as `'edge' | 'outside' | 'inside' | string`, so a value typed as `string` passed type checking. The runtime validator still warned for unsupported values. Setting `position` to `'inline'` rendered the `k-badge-inline` class and the alignment class, such as `k-top-end`.
  * After: A value typed as `string` or an unsupported value, such as `'top'`, fails type checking in TypeScript and `vue-tsc`. The new `'inline'` value renders the Badge inline without the `k-badge-<position>` class and without the alignment classes.
  * To migrate, type the values that you bind to `position` as `BadgePosition`, or narrow them to one of the supported values, for example with `as const`. Replace the unsupported values with a supported one. If your code relied on `'inline'` rendering the `k-badge-inline` or an alignment class, update the related CSS selectors and tests. For more information, see [`BadgePosition`](https://www.telerik.com/kendo-vue-ui-develop/components/indicators/api/badgeposition) and [`BadgeProps`](https://www.telerik.com/kendo-vue-ui-develop/components/indicators/api/badgeprops).

## Scheduler

* `SchedulerFormEditor`—The `recurrenceButtonTextTemplate` property is deprecated and ignored. Use `recurrenceSummaryTemplate` to customize the recurrence summary.

  * Before: `recurrenceButtonTextTemplate` customized the content of the recurrence button.
  * After: The recurrence button always displays the localized **Make recurring** or **Edit recurrence** label. `recurrenceSummaryTemplate` customizes the separate summary below the button and inside the recurrence dialog. It receives non-null `recurrenceRule`, `text`, and `parsedRule` values and is rendered only when a recurrence rule exists.
  * To migrate, use `recurrenceSummaryTemplate` and `RecurrenceSummaryTemplateProps` instead of `recurrenceButtonTextTemplate` and `RecurrenceButtonTextTemplateProps`. The Scheduler v11 codemod renames the prop and type automatically. Review templates that customized the button label or handled nullable payload values; customize the `scheduler.editorRecurrenceMakeRecurring` and `scheduler.editorRecurrenceEdit` localization messages if you need different button labels. For more information, see [Custom Edit Form](https://www.telerik.com/kendo-vue-ui-develop/components/scheduler/editing/custom-form) and [`SchedulerFormEditorProps`](https://www.telerik.com/kendo-vue-ui-develop/components/scheduler/api/schedulerformeditorprops).

* `Scheduler`—The new `eventOverview` and `quickCreate` properties are enabled by default.

  * Before: Clicking an event or an empty slot did not open a popover. Pressing <kbd>Enter</kbd> on a focused event or on a focused empty slot, which allows adding, opened the full editor directly.
  * After: The `eventOverview` property (default `true`) opens an overview popover with edit and delete actions when an event is clicked or <kbd>Enter</kbd> is pressed on it. The `quickCreate` property (default `true`, requires `editable.add`, not available in the Agenda view) opens a title popover when an empty slot is clicked or <kbd>Enter</kbd> is pressed on a focused slot. The popovers open about 200 ms after a click so that a double click can still open the full editor, which also opens through the edit action of the overview popover and the more options action of the quick create popover. While the popovers are enabled, <kbd>Enter</kbd> no longer opens the full editor directly.
  * To migrate, update the tests and the code that rely on a click or <kbd>Enter</kbd> on an event or on an empty slot, or on the full editor opening directly. Tests that click and assert immediately have to wait for the popover. To keep the previous behavior, set `:event-overview="false"` and `:quick-create="false"` on the `Scheduler`. For more information, see [Scheduler Editing](https://www.telerik.com/kendo-vue-ui-develop/components/scheduler/editing) and [`SchedulerProps`](https://www.telerik.com/kendo-vue-ui-develop/components/scheduler/api/schedulerprops).

* `Scheduler`—Editing or removing the master event of a recurring series with custom exceptions now handles the exceptions of the series.

  * Before: Changing or removing the master event of a recurring series kept its exceptions untouched.
  * After: The Scheduler shows the `KeepResetCustomEventsDialog`. When the series is edited, resetting removes the exceptions and reports them in the deleted collection of the data change event, while keeping them leaves them linked to the series and does not report them. When the series or its recurrence is removed, resetting reports the exceptions in the deleted collection, and keeping converts them to standalone events that are reported in the updated collection.
  * To migrate, update the handlers of the `datachange` event that do not expect extra deleted or updated exception items, and the tests that edit or remove the master event of a recurring series. For more information, see [Scheduler Editing](https://www.telerik.com/kendo-vue-ui-develop/components/scheduler/editing).

* `Scheduler`—The `k-scheduler-mobile` class is no longer rendered on the root element on mobile devices.

  * Before: The root element rendered the `k-scheduler-mobile` class on mobile devices.
  * After: The class is not rendered.
  * To migrate, remove or update the CSS selectors and the tests that use `k-scheduler-mobile`.

* `SchedulerView`—The callback that the `Scheduler` passes to its views is renamed from `onDataaction` to `onDataAction`.

  * Before: The `Scheduler` passed the data action callback to the active view as the `onDataaction` prop. A custom view could read it from its props, or emit the `dataaction` event, which the `Scheduler` received through the same name.
  * After: The `Scheduler` passes the callback as the `onDataAction` prop. A custom view that still reads `onDataaction` receives `undefined`, and a custom view that only emits `dataaction` no longer reaches the `Scheduler`, so its data actions are not applied. The built-in views, items, slots, and tasks still emit the `dataaction` event, so the listeners that you attach to them, such as `@dataaction`, keep working.
  * To migrate, read the callback from the `onDataAction` prop in your custom views and call it with the data action. Rename `onDataaction` to `onDataAction` in the related types and tests. If your code only attaches an `onDataaction` or `@dataaction` listener to a built-in component, no change is required.

For the changes in the generated markup and the CSS classes, see [Rendering Changes in 11.0.0](https://www.telerik.com/kendo-vue-ui-develop/components/updates/rendering-changes/11-0-0).
