@progress/kendo-react-animation 13.3.0-develop.9 → 13.4.0-develop.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/Animation.d.ts ADDED
@@ -0,0 +1,118 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { default as PropTypes } from 'prop-types';
9
+ import { AnimationsClassStructure } from '@progress/kendo-react-common';
10
+ import { AnimationInterface } from './AnimationInterface.js';
11
+ import * as React from 'react';
12
+ /**
13
+ * Represents the props of the [KendoReact Animation component](https://www.telerik.com/kendo-react-ui/components/animation).
14
+ */
15
+ export interface AnimationProps extends AnimationInterface {
16
+ /**
17
+ * A function for customizing the rendering of child elements.
18
+ *
19
+ * @example
20
+ * <Animation childFactory={(child) => React.cloneElement(child, { ariaHidden: true })} />
21
+ */
22
+ childFactory?: any;
23
+ /**
24
+ * Specifies the CSS class names to be applied to the Animation container.
25
+ *
26
+ * @example
27
+ * <Animation className="animation-container" />
28
+ */
29
+ className?: string;
30
+ /**
31
+ * Specifies the HTML tag of the parent Animation container.
32
+ *
33
+ * @default "div"
34
+ * @example
35
+ * <Animation component="main" />
36
+ */
37
+ component?: React.ReactNode;
38
+ /**
39
+ * Specifies the `id` attribute of the Animation container.
40
+ *
41
+ * @example
42
+ * <Animation id="animation-container" />
43
+ */
44
+ id?: string;
45
+ /**
46
+ * Specifies the inline styles to be applied to the Animation container.
47
+ *
48
+ * @example
49
+ * <Animation style={{ width: "100%" }} />
50
+ */
51
+ style?: any;
52
+ /**
53
+ * Determines whether child elements will stack on top of each other during the animation.
54
+ *
55
+ * @example
56
+ * <Animation stackChildren={true} />
57
+ */
58
+ stackChildren?: boolean;
59
+ /**
60
+ * Specifies the base class name for the transition.
61
+ *
62
+ * @example
63
+ * <Animation transitionName="fade" />
64
+ */
65
+ transitionName: string;
66
+ /**
67
+ * Specifies the inline styles applied when the Animation is entering.
68
+ *
69
+ * @example
70
+ * <Animation animationEnteringStyle={{ opacity: 0.5 }} />
71
+ */
72
+ animationEnteringStyle?: any;
73
+ /**
74
+ * Specifies the inline styles applied when the Animation has entered.
75
+ *
76
+ * @example
77
+ * <Animation animationEnteredStyle={{ opacity: 1 }} />
78
+ */
79
+ animationEnteredStyle?: any;
80
+ /**
81
+ * Specifies the inline styles applied when the Animation is exiting.
82
+ *
83
+ * @example
84
+ * <Animation animationExitingStyle={{ opacity: 0.5 }} />
85
+ */
86
+ animationExitingStyle?: any;
87
+ /**
88
+ * Specifies the inline styles applied when the Animation has exited.
89
+ *
90
+ * @example
91
+ * <Animation animationExitedStyle={{ opacity: 0 }} />
92
+ */
93
+ animationExitedStyle?: any;
94
+ /**
95
+ * Provides unstyled options for the Animation.
96
+ *
97
+ * @example
98
+ * <Animation unstyled={{ appear: "unstyled-appear" }} />
99
+ */
100
+ unstyled?: AnimationsClassStructure;
101
+ }
102
+ export declare const Animation: {
103
+ (props: AnimationProps): React.JSX.Element;
104
+ propTypes: {
105
+ children: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
106
+ childFactory: PropTypes.Requireable<any>;
107
+ className: PropTypes.Requireable<string>;
108
+ component: PropTypes.Requireable<PropTypes.ReactNodeLike>;
109
+ id: PropTypes.Requireable<string>;
110
+ style: PropTypes.Requireable<any>;
111
+ transitionName: PropTypes.Validator<string>;
112
+ appear: PropTypes.Validator<boolean>;
113
+ enter: PropTypes.Validator<boolean>;
114
+ exit: PropTypes.Validator<boolean>;
115
+ transitionEnterDuration: PropTypes.Validator<number>;
116
+ transitionExitDuration: PropTypes.Validator<number>;
117
+ };
118
+ };
@@ -0,0 +1,91 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { AnimationsClassStructure } from '@progress/kendo-react-common';
9
+ import { AnimationInterface } from './AnimationInterface.js';
10
+ import * as React from 'react';
11
+ /**
12
+ * Represents the AnimationChild handle.
13
+ */
14
+ export interface AnimationChildHandle {
15
+ /**
16
+ * Gets the element.
17
+ */
18
+ element: HTMLDivElement | null;
19
+ /**
20
+ * Gets the props.
21
+ */
22
+ props: AnimationChildProps;
23
+ }
24
+ /**
25
+ * Represents the props of the child Animation elements.
26
+ */
27
+ export interface AnimationChildProps extends AnimationInterface {
28
+ /**
29
+ * Controlled by `TransitionGroup` if present. Otherwise, sets the state of the enter or exit animations.
30
+ */
31
+ in?: boolean;
32
+ /**
33
+ * Custom inline styles to apply to the Animation container.
34
+ *
35
+ * @example
36
+ * <AnimationChild style={{ backgroundColor: "red" }} />
37
+ */
38
+ style?: any;
39
+ /**
40
+ * Custom CSS class to apply to the Animation container.
41
+ *
42
+ * @example
43
+ * <AnimationChild className="custom-animation-class" />
44
+ */
45
+ className?: string;
46
+ /**
47
+ * Specifies the base class name for the transition. This class generates
48
+ * the `appear`, `enter`, and `exit` transition classes.
49
+ *
50
+ * @example
51
+ * <AnimationChild transitionName="fade" />
52
+ */
53
+ transitionName: string;
54
+ /**
55
+ * Specifies the style that applies when the Animation reaches its entering state.
56
+ *
57
+ * @example
58
+ * <AnimationChild animationEnteringStyle={{ opacity: 0.5 }} />
59
+ */
60
+ animationEnteringStyle?: any;
61
+ /**
62
+ * Inline styles that apply when the Animation has entered.
63
+ *
64
+ * @example
65
+ * <AnimationChild animationEnteredStyle={{ opacity: 1 }} />
66
+ */
67
+ animationEnteredStyle?: any;
68
+ /**
69
+ * Specifies the style that applies when the Animation reaches its exiting state.
70
+ *
71
+ * @example
72
+ * <AnimationChild animationExitingStyle={{ opacity: 0.5 }} />
73
+ */
74
+ animationExitingStyle?: any;
75
+ /**
76
+ * Inline styles that apply when the Animation has exited.
77
+ *
78
+ * @example
79
+ * <AnimationChild animationExitedStyle={{ opacity: 0 }} />
80
+ */
81
+ animationExitedStyle?: any;
82
+ /**
83
+ * Provides unstyled options for the Animation. Accepts an object
84
+ * that implements the `AnimationsClassStructure` interface.
85
+ *
86
+ * @example
87
+ * <AnimationChild unstyled={{ appear: "custom-appear-class" }} />
88
+ */
89
+ unstyled?: AnimationsClassStructure;
90
+ }
91
+ export declare const AnimationChild: React.ForwardRefExoticComponent<AnimationChildProps & React.RefAttributes<AnimationChildHandle | null>>;
@@ -7,7 +7,7 @@
7
7
  */
8
8
  import * as a from "react";
9
9
  import t from "prop-types";
10
- import { classNames as l, uAnimation as m, noop as c } from "@progress/kendo-react-common";
10
+ import { noop as l, classNames as m, uAnimation as c } from "@progress/kendo-react-common";
11
11
  import { CSSTransition as J } from "react-transition-group";
12
12
  const R = a.forwardRef(
13
13
  (E, O) => {
@@ -39,7 +39,7 @@ const R = a.forwardRef(
39
39
  } = E, k = {
40
40
  transitionDelay: "0ms",
41
41
  ...P
42
- }, o = A && A.uAnimation, z = l(w, m.childContainer({ c: o })), r = a.useRef({
42
+ }, o = A && A.uAnimation, z = m(w, c.childContainer({ c: o })), r = a.useRef({
43
43
  element: e.current,
44
44
  props: E
45
45
  }), i = a.useRef(null);
@@ -107,12 +107,12 @@ const R = a.forwardRef(
107
107
  });
108
108
  },
109
109
  classNames: {
110
- appear: l(m.appear({ c: o, transitionName: u })),
111
- appearActive: l(m.appearActive({ c: o, transitionName: u })),
112
- enter: l(m.enter({ c: o, transitionName: u })),
113
- enterActive: l(m.enterActive({ c: o, transitionName: u })),
114
- exit: l(m.exit({ c: o, transitionName: u })),
115
- exitActive: l(m.exitActive({ c: o, transitionName: u }))
110
+ appear: m(c.appear({ c: o, transitionName: u })),
111
+ appearActive: m(c.appearActive({ c: o, transitionName: u })),
112
+ enter: m(c.enter({ c: o, transitionName: u })),
113
+ enterActive: m(c.enterActive({ c: o, transitionName: u })),
114
+ exit: m(c.exit({ c: o, transitionName: u })),
115
+ exitActive: m(c.exitActive({ c: o, transitionName: u }))
116
116
  }
117
117
  };
118
118
  return /* @__PURE__ */ a.createElement(J, { ...F, ...K, nodeRef: e }, (G) => /* @__PURE__ */ a.createElement(
@@ -133,13 +133,13 @@ const R = a.forwardRef(
133
133
  ), n = {
134
134
  mountOnEnter: !0,
135
135
  unmountOnExit: !1,
136
- onEnter: c,
137
- onEntering: c,
138
- onEntered: c,
139
- onExit: c,
140
- onExiting: c,
141
- onExited: c,
142
- onAfterExited: c,
136
+ onEnter: l,
137
+ onEntering: l,
138
+ onEntered: l,
139
+ onExit: l,
140
+ onExiting: l,
141
+ onExited: l,
142
+ onAfterExited: l,
143
143
  animationEnteringStyle: {},
144
144
  animationEnteredStyle: {},
145
145
  animationExitingStyle: {},
@@ -0,0 +1,109 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { AnimationChildHandle } from './AnimationChild.js';
9
+ /**
10
+ * The arguments that are passed to the life-cycle hooks.
11
+ */
12
+ export interface AnimationEventArguments {
13
+ /**
14
+ * The element that is currently being animated.
15
+ */
16
+ animatedElement: HTMLElement;
17
+ /**
18
+ * The AnimationChild component which controls the animation.
19
+ */
20
+ target: AnimationChildHandle;
21
+ }
22
+ /**
23
+ * Inherited by all animations. Represents the properties you can set to an Animation.
24
+ */
25
+ export interface AnimationInterface {
26
+ /**
27
+ * @hidden
28
+ */
29
+ children?: React.ReactNode;
30
+ /**
31
+ * Specifies the CSS class names that are set to each of the animated children elements.
32
+ */
33
+ componentChildClassName?: string;
34
+ /**
35
+ * Specifies the styles that are set to each of the animated children elements.
36
+ */
37
+ componentChildStyle?: any;
38
+ /**
39
+ * Called when you add a component to an existing Animation component and the Animation has not started yet ([more information and example](https://www.telerik.com/kendo-react-ui/components/animation/hooks#toc-adding-child-elements)).
40
+ */
41
+ onEnter?: (event: AnimationEventArguments) => void;
42
+ /**
43
+ * Called when you add a component to an existing Animation component and the Animation is now happening ([more information and example](https://www.telerik.com/kendo-react-ui/components/animation/hooks#toc-adding-child-elements)).
44
+ */
45
+ onEntering?: (event: AnimationEventArguments) => void;
46
+ /**
47
+ * Called when you add a component to an existing Animation component and the Animation is now finished ([more information and example](https://www.telerik.com/kendo-react-ui/components/animation/hooks#toc-adding-child-elements)).
48
+ */
49
+ onEntered?: (event: AnimationEventArguments) => void;
50
+ /**
51
+ * An event called after the Animation has reached its exit state ([more information and example](https://www.telerik.com/kendo-react-ui/components/animation/hooks#toc-removing-child-elements)).
52
+ */
53
+ onExit?: (event: AnimationEventArguments) => void;
54
+ /**
55
+ * An event called after the Animation has reached its exiting state ([more information and example](https://www.telerik.com/kendo-react-ui/components/animation/hooks#toc-removing-child-elements)).
56
+ */
57
+ onExiting?: (event: AnimationEventArguments) => void;
58
+ /**
59
+ * An event called after the Animation has reached its exited state ([more information and example](https://www.telerik.com/kendo-react-ui/components/animation/hooks#toc-removing-child-elements)).
60
+ */
61
+ onExited?: (event: AnimationEventArguments) => void;
62
+ /**
63
+ * @hidden
64
+ * This event is always triggered in contrast to `onExited` which TransitionGroup prevents when target element is not removed from DOM.
65
+ */
66
+ onAfterExited?: (event: AnimationEventArguments) => void;
67
+ /**
68
+ * Defines whether a transition should happen on the first mount.
69
+ *
70
+ * @default false
71
+ */
72
+ appear?: boolean;
73
+ /**
74
+ * Specifies whether to animate the entering (showing) element ([see example](https://www.telerik.com/kendo-react-ui/components/animation/disabled-state)).
75
+ *
76
+ * @default true
77
+ */
78
+ enter?: boolean;
79
+ /**
80
+ * Specifies whether to animate a leaving (disappearing) element ([see example](https://www.telerik.com/kendo-react-ui/components/animation/disabled-state)).
81
+ *
82
+ * @default true
83
+ */
84
+ exit?: boolean;
85
+ /**
86
+ * Specifies the duration of the transition for the entering (`animation in`) Animation ([see example](https://www.telerik.com/kendo-react-ui/components/animation/duration)). After the time runs out, the Animation is terminated.
87
+ *
88
+ * @default 300
89
+ */
90
+ transitionEnterDuration?: number;
91
+ /**
92
+ * Specifies the duration of the transition for the exiting (`animation out`) Animation ([see example](https://www.telerik.com/kendo-react-ui/components/animation/duration)). After the time runs out, the Animation is terminated.
93
+ *
94
+ * @default 300
95
+ */
96
+ transitionExitDuration?: number;
97
+ /**
98
+ * Specifies if the Animation uses lazy-mounting on the first `in={true}`.
99
+ *
100
+ * @default false
101
+ */
102
+ mountOnEnter?: boolean;
103
+ /**
104
+ * Specifies if the Animation unmounts after it reaches its exited state.
105
+ *
106
+ * @default false
107
+ */
108
+ unmountOnExit?: boolean;
109
+ }
package/Expand.d.ts ADDED
@@ -0,0 +1,79 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { default as PropTypes } from 'prop-types';
9
+ import { AnimationInterface } from './AnimationInterface.js';
10
+ import * as React from 'react';
11
+ /**
12
+ * Specifies the direction of the Expand Animation ([see example](https://www.telerik.com/kendo-react-ui/components/animation/direction#toc-expand)).
13
+ *
14
+ * The supported directions are:
15
+ * * (Default) `vertical`&mdash;Expands the content from center to top and bottom, and vice-versa.
16
+ * * `horizontal`&mdash;Expands the content from center to left and right, and vice-versa.
17
+ */
18
+ export type ExpandDirection = 'horizontal' | 'vertical';
19
+ /**
20
+ * Represents the props of the [KendoReact Expand Animation component](https://www.telerik.com/kendo-react-ui/components/animation/types#toc-expand).
21
+ */
22
+ export interface ExpandProps extends AnimationInterface {
23
+ /**
24
+ * A function for customizing the rendering of child elements.
25
+ *
26
+ * @example
27
+ * <Expand childFactory={(child) => React.cloneElement(child, { role: "button" })} />
28
+ */
29
+ childFactory?: any;
30
+ /**
31
+ * Specifies the CSS class names to be applied to the Animation container.
32
+ *
33
+ * @example
34
+ * <Expand className="expand-animation" />
35
+ */
36
+ className?: string;
37
+ /**
38
+ * Specifies the direction of the Expand Animation.
39
+ *
40
+ * @default "vertical"
41
+ * @example
42
+ * <Expand direction="horizontal" />
43
+ */
44
+ direction?: ExpandDirection;
45
+ /**
46
+ * Specifies the HTML tag of the parent Animation container.
47
+ *
48
+ * @default "div"
49
+ * @example
50
+ * <Expand component="nav" />
51
+ */
52
+ component?: React.ReactNode;
53
+ /**
54
+ * Specifies the `id` attribute of the Animation container.
55
+ *
56
+ * @example
57
+ * <Expand id="expand-animation-container" />
58
+ */
59
+ id?: string;
60
+ /**
61
+ * Specifies the inline styles to be applied to the Animation container.
62
+ *
63
+ * @example
64
+ * <Expand style={{ display: "flex" }} />
65
+ */
66
+ style?: any;
67
+ }
68
+ export declare const Expand: {
69
+ (props: ExpandProps): React.JSX.Element;
70
+ propTypes: {
71
+ children: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
72
+ childFactory: PropTypes.Requireable<any>;
73
+ className: PropTypes.Requireable<string>;
74
+ direction: PropTypes.Requireable<string>;
75
+ component: PropTypes.Requireable<PropTypes.ReactNodeLike>;
76
+ id: PropTypes.Requireable<string>;
77
+ style: PropTypes.Requireable<any>;
78
+ };
79
+ };
package/Fade.d.ts ADDED
@@ -0,0 +1,62 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { default as PropTypes } from 'prop-types';
9
+ import { AnimationInterface } from './AnimationInterface.js';
10
+ import * as React from 'react';
11
+ /**
12
+ * Represents the props of the [KendoReact Fade Animation component](https://www.telerik.com/kendo-react-ui/components/animation/types#toc-fade).
13
+ */
14
+ export interface FadeProps extends AnimationInterface {
15
+ /**
16
+ * A function for customizing the rendering of child elements.
17
+ *
18
+ * @example
19
+ * <Fade childFactory={(child) => React.cloneElement(child, { draggable: true })} />
20
+ */
21
+ childFactory?: any;
22
+ /**
23
+ * Specifies the CSS class names to be applied to the Animation container.
24
+ *
25
+ * @example
26
+ * <Fade className="fade-animation" />
27
+ */
28
+ className?: string;
29
+ /**
30
+ * Specifies the HTML tag of the parent Animation container.
31
+ *
32
+ * @default "div"
33
+ * @example
34
+ * <Fade component="header" />
35
+ */
36
+ component?: React.ReactNode;
37
+ /**
38
+ * Specifies the `id` attribute of the Animation container.
39
+ *
40
+ * @example
41
+ * <Fade id="fade-animation-container" />
42
+ */
43
+ id?: string;
44
+ /**
45
+ * Specifies the inline styles to be applied to the Animation container.
46
+ *
47
+ * @example
48
+ * <Fade style={{ color: "blue" }} />
49
+ */
50
+ style?: any;
51
+ }
52
+ export declare const Fade: {
53
+ (props: FadeProps): React.JSX.Element;
54
+ propTypes: {
55
+ children: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
56
+ childFactory: PropTypes.Requireable<any>;
57
+ className: PropTypes.Requireable<string>;
58
+ component: PropTypes.Requireable<PropTypes.ReactNodeLike>;
59
+ id: PropTypes.Requireable<string>;
60
+ style: PropTypes.Requireable<any>;
61
+ };
62
+ };
package/Push.d.ts ADDED
@@ -0,0 +1,90 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { default as PropTypes } from 'prop-types';
9
+ import { AnimationInterface } from './AnimationInterface.js';
10
+ import * as React from 'react';
11
+ /**
12
+ * Specifies the direction of the Push Animation ([see example](https://www.telerik.com/kendo-react-ui/components/animation/direction#toc-push)).
13
+ *
14
+ * The supported directions are:
15
+ * * (Default) `right`&mdash;Pushes the content from left to right.
16
+ * * `up`&mdash;Pushes the content from bottom to top.
17
+ * * `down`&mdash;Pushes the content from top to bottom.
18
+ * * `left`&mdash;Pushes the content from right to left.
19
+ */
20
+ export type PushDirection = 'up' | 'down' | 'left' | 'right';
21
+ /**
22
+ * Represents the props of the [KendoReact Push Animation component](https://www.telerik.com/kendo-react-ui/components/animation/types#toc-push).
23
+ */
24
+ export interface PushProps extends AnimationInterface {
25
+ /**
26
+ * A function for customizing the rendering of child elements.
27
+ *
28
+ * @example
29
+ * <Push childFactory={(child) => React.cloneElement(child, { tabIndex: 0 })} />
30
+ */
31
+ childFactory?: any;
32
+ /**
33
+ * Specifies the CSS class names to be applied to the Animation container.
34
+ *
35
+ * @example
36
+ * <Push className="push-animation" />
37
+ */
38
+ className?: string;
39
+ /**
40
+ * Specifies the direction of the Push Animation.
41
+ *
42
+ * @default "right"
43
+ * @example
44
+ * <Push direction="up" />
45
+ */
46
+ direction?: PushDirection;
47
+ /**
48
+ * Specifies the HTML tag of the parent Animation container.
49
+ *
50
+ * @default "div"
51
+ * @example
52
+ * <Push component="footer" />
53
+ */
54
+ component?: React.ReactNode;
55
+ /**
56
+ * Specifies the `id` attribute of the Animation container.
57
+ *
58
+ * @example
59
+ * <Push id="push-animation-container" />
60
+ */
61
+ id?: string;
62
+ /**
63
+ * Specifies the inline styles to be applied to the Animation container.
64
+ *
65
+ * @example
66
+ * <Push style={{ border: "1px solid black" }} />
67
+ */
68
+ style?: any;
69
+ /**
70
+ * Determines whether child elements will stack on top of each other during the animation.
71
+ *
72
+ * @default false
73
+ * @example
74
+ * <Push stackChildren={true} />
75
+ */
76
+ stackChildren?: boolean;
77
+ }
78
+ export declare const Push: {
79
+ (props: PushProps): React.JSX.Element;
80
+ propTypes: {
81
+ children: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
82
+ childFactory: PropTypes.Requireable<any>;
83
+ className: PropTypes.Requireable<string>;
84
+ direction: PropTypes.Requireable<string>;
85
+ component: PropTypes.Requireable<PropTypes.ReactNodeLike>;
86
+ id: PropTypes.Requireable<string>;
87
+ style: PropTypes.Requireable<any>;
88
+ stackChildren: PropTypes.Requireable<boolean>;
89
+ };
90
+ };