@progress/kendo-react-layout 5.15.0-dev.202307112015 → 5.15.0-dev.202307131533

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.
@@ -10,17 +10,16 @@ var CardSubtitle_1 = require("../card/CardSubtitle");
10
10
  var CardBody_1 = require("../card/CardBody");
11
11
  var CardImage_1 = require("../card/CardImage");
12
12
  var CardActions_1 = require("../card/CardActions");
13
- var kendo_react_buttons_1 = require("@progress/kendo-react-buttons");
14
13
  var kendo_react_common_1 = require("@progress/kendo-react-common");
15
14
  var kendo_react_animation_1 = require("@progress/kendo-react-animation");
16
15
  var kendo_svg_icons_1 = require("@progress/kendo-svg-icons");
17
16
  var TimelineCard = function (props) {
18
- var animationDuration = 400;
17
+ var ANIMATION_DURATION = 400;
19
18
  var _a = props.eventData, title = _a.title, subtitle = _a.subtitle, actions = _a.actions, images = _a.images, description = _a.description;
20
- var _b = React.useState(true), collapse = _b[0], setCollapse = _b[1];
21
- var _c = React.useState(true), collapsed = _c[0], setCollapsed = _c[1];
19
+ var _b = React.useState(props.eventData.opened || false), open = _b[0], setOpen = _b[1];
20
+ var _c = React.useState(props.eventData.opened || !!props.collapsible), opened = _c[0], setOpened = _c[1];
22
21
  var toggleCard = function (event) {
23
- setCollapse(!collapse);
22
+ setOpen(!open);
24
23
  if (props.onChange) {
25
24
  var toggleEvent = {
26
25
  syntheticEvent: event,
@@ -40,22 +39,24 @@ var TimelineCard = function (props) {
40
39
  props.onActionClick.call(undefined, actionClickEvent);
41
40
  }
42
41
  };
43
- var cardBody = function () { return (React.createElement(CardBody_1.CardBody, null,
44
- React.createElement("div", { className: "k-card-description" },
45
- React.createElement("p", null, description),
46
- images && images.map(function (image, index) { return (React.createElement(CardImage_1.CardImage, { key: index, src: image.src })); })),
42
+ var cardBody = function () { return (React.createElement(React.Fragment, null,
43
+ React.createElement(CardBody_1.CardBody, null,
44
+ React.createElement("div", { className: "k-card-description" },
45
+ React.createElement("p", null, description),
46
+ images && images.map(function (image, index) { return (React.createElement(CardImage_1.CardImage, { key: index, src: image.src })); }))),
47
47
  React.createElement(CardActions_1.CardActions, null, actions && actions.map(function (action, index) { return (React.createElement("a", { key: index, href: action.url, className: "k-button k-button-md k-rounded-md k-button-flat k-button-flat-primary", onClick: actionClick }, action.text)); })))); };
48
- return (React.createElement("div", { className: (0, kendo_react_common_1.classNames)('k-timeline-card', { 'k-collapsed': props.collapsible && collapsed }) },
49
- React.createElement(Card_1.Card, { className: "k-card-with-callout" },
50
- React.createElement("span", { className: (0, kendo_react_common_1.classNames)('k-timeline-card-callout', 'k-card-callout', { 'k-callout-e': props.alternated }, { 'k-callout-w': !props.alternated }) }),
51
- React.createElement("div", { className: "k-card-inner" },
48
+ return (React.createElement("div", { className: (0, kendo_react_common_1.classNames)('k-timeline-card', { 'k-collapsed': props.collapsible && opened }) },
49
+ React.createElement(Card_1.Card, { "aria-live": "polite", "aria-describedby": props.id, "aria-atomic": "true", tabIndex: props.tabindex, role: props.horizontal ? 'tabpanel' : 'button', "aria-expanded": props.collapsible && opened },
50
+ React.createElement("span", { style: props.calloutStyle, className: (0, kendo_react_common_1.classNames)('k-timeline-card-callout', 'k-card-callout', { 'k-callout-n': props.horizontal }, { 'k-callout-e': props.alternated && !props.horizontal }, { 'k-callout-w': !props.alternated && !props.horizontal }) }),
51
+ React.createElement("div", { className: 'k-card-inner' },
52
52
  React.createElement(CardHeader_1.CardHeader, null,
53
53
  React.createElement(CardTitle_1.CardTitle, null,
54
54
  React.createElement("span", { className: "k-event-title" }, title),
55
- props.collapsible && React.createElement(kendo_react_buttons_1.Button, { fillMode: 'flat', icon: 'chevron-right', svgIcon: kendo_svg_icons_1.chevronRightIcon, onClick: function (event) { return toggleCard(event); }, className: 'k-event-collapse' })),
55
+ props.collapsible && React.createElement("span", { onClick: function (event) { return toggleCard(event); }, className: "k-event-collapse k-button k-button-md k-rounded-md k-button-flat k-button-flat-base k-icon-button" },
56
+ React.createElement(kendo_react_common_1.SvgIcon, { icon: kendo_svg_icons_1.chevronRightIcon }))),
56
57
  subtitle && React.createElement(CardSubtitle_1.CardSubtitle, null, subtitle)),
57
- props.collapsible ?
58
- React.createElement(kendo_react_animation_1.Reveal, { transitionEnterDuration: animationDuration, transitionExitDuration: animationDuration, onBeforeEnter: function () { return setCollapsed(false); }, onAfterExited: function () { return setCollapsed(true); } }, !collapse ? cardBody() : null)
58
+ props.collapsible
59
+ ? React.createElement(kendo_react_animation_1.Reveal, { transitionEnterDuration: props.transitionDuration || ANIMATION_DURATION, transitionExitDuration: props.transitionDuration || ANIMATION_DURATION, onBeforeEnter: function () { return setOpened(false); }, onAfterExited: function () { return setOpened(true); } }, open ? cardBody() : null)
59
60
  : cardBody()))));
60
61
  };
61
62
  exports.TimelineCard = TimelineCard;
@@ -0,0 +1,3 @@
1
+ import * as React from 'react';
2
+ import { TimelineDirectionsProps } from './Timeline';
3
+ export declare const TimelineHorizontal: React.FunctionComponent<TimelineDirectionsProps>;
@@ -0,0 +1,209 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.TimelineHorizontal = void 0;
15
+ var React = require("react");
16
+ var PropTypes = require("prop-types");
17
+ var TimelineCard_1 = require("./TimelineCard");
18
+ var utils_1 = require("./utils");
19
+ var kendo_svg_icons_1 = require("@progress/kendo-svg-icons");
20
+ var kendo_react_intl_1 = require("@progress/kendo-react-intl");
21
+ var kendo_react_common_1 = require("@progress/kendo-react-common");
22
+ var TimelineHorizontal = function (props) {
23
+ var DEFAULT_EVENT_POINT_WITH = 150;
24
+ var EVENT_CARD_TRANSITION_DURATION = 300;
25
+ var intl = (0, kendo_react_intl_1.useInternationalization)();
26
+ var _a = React.useState(false), arrowLeft = _a[0], setArrowLeft = _a[1];
27
+ var _b = React.useState(true), arrowRight = _b[0], setArrowRight = _b[1];
28
+ var _c = React.useState(), calloutOffset = _c[0], setCalloutOffset = _c[1];
29
+ var _d = React.useState(0), translate = _d[0], setTranslate = _d[1];
30
+ var _e = React.useState(), tabFlexWith = _e[0], setTabFlexWith = _e[1];
31
+ var _f = React.useState(0), visibleTabs = _f[0], setVisibleTabs = _f[1];
32
+ var _g = React.useState(0), firstIndexInView = _g[0], setFirstIndexInView = _g[1];
33
+ var _h = React.useState(1), currentEvent = _h[0], setCurrentEvent = _h[1];
34
+ var _j = React.useState(), eventsToShow = _j[0], setEventsToShow = _j[1];
35
+ var _k = React.useState(), eventsOnTrack = _k[0], setEventsOnTrack = _k[1];
36
+ var _l = React.useState([0, 0, 0]), eventsPositions = _l[0], setEventsPositions = _l[1];
37
+ var _m = React.useState(0), eventsTranslate = _m[0], setEventsTranslate = _m[1];
38
+ var _o = React.useState(1), pivotEvent = _o[0], setPivotEvent = _o[1];
39
+ var trackWrapRef = React.useRef(null);
40
+ var trackRef = React.useRef(null);
41
+ var arrowLeftRef = React.useRef(null);
42
+ var tabWith = tabFlexWith ? "".concat(tabFlexWith, "%") : "".concat(DEFAULT_EVENT_POINT_WITH, "px");
43
+ var eventsData = props.eventsData, dateFormat = props.dateFormat, onActionClick = props.onActionClick;
44
+ React.useEffect(function () {
45
+ var _a;
46
+ var observerResize = kendo_react_common_1.canUseDOM && window.ResizeObserver && new window.ResizeObserver(repositionEvents);
47
+ var trackList = trackRef.current;
48
+ var cardWith = ((_a = trackWrapRef === null || trackWrapRef === void 0 ? void 0 : trackWrapRef.current) === null || _a === void 0 ? void 0 : _a.offsetWidth) || 0;
49
+ if (observerResize && trackList) {
50
+ observerResize.observe(trackList);
51
+ }
52
+ setYearsFlags();
53
+ repositionEvents();
54
+ setEventsPositions([cardWith, 0, -cardWith]);
55
+ return function () {
56
+ observerResize.disconnect();
57
+ };
58
+ }, []);
59
+ React.useEffect(function () {
60
+ var trackList = trackRef.current;
61
+ var currentTab = trackList && trackList.children[currentEvent];
62
+ if (currentTab) {
63
+ var tabWidth = currentTab.offsetWidth;
64
+ var leftArrow = !(translate >= 0);
65
+ setArrowLeft(leftArrow);
66
+ if (eventsOnTrack) {
67
+ var rightArrow = eventsOnTrack.length * tabWidth > (visibleTabs * tabWidth) * (((translate * -1) + 100) / 100);
68
+ setArrowRight(rightArrow);
69
+ }
70
+ if (((trackList === null || trackList === void 0 ? void 0 : trackList.offsetWidth) * -translate) / 100 >= trackList.children.length * tabWidth) {
71
+ // TODO: on resize window reposition
72
+ setYearsFlags();
73
+ repositionEvents();
74
+ setTranslate((((currentTab.offsetLeft - currentTab.offsetWidth) / (visibleTabs * currentTab.offsetWidth)) * 100) * -1);
75
+ }
76
+ positionCallout(currentTab);
77
+ }
78
+ }, [visibleTabs, tabFlexWith, currentEvent]);
79
+ var setYearsFlags = function () {
80
+ var trackData = (0, utils_1.addYearsFlags)(eventsData);
81
+ setEventsOnTrack(trackData);
82
+ setEventsToShow([trackData[currentEvent - 1], trackData[currentEvent], trackData[currentEvent + 1]]);
83
+ };
84
+ var handlePrevClick = function () {
85
+ var _a;
86
+ var trackList = trackRef.current;
87
+ if (trackList && eventsOnTrack) {
88
+ var firstTabToUpdate = firstIndexInView - visibleTabs;
89
+ var lastIndexInView = firstIndexInView - 1;
90
+ var currentEventToUpdate = eventsOnTrack[lastIndexInView] && ((_a = eventsOnTrack[lastIndexInView]) === null || _a === void 0 ? void 0 : _a.yearFlag)
91
+ ? lastIndexInView - 1
92
+ : lastIndexInView;
93
+ var translateUpdate = translate + 100 > 0 ? 0 : translate + 100;
94
+ updatePage(false, currentEventToUpdate);
95
+ repositionEvents();
96
+ setFirstIndexInView(firstTabToUpdate);
97
+ setTranslate(translateUpdate);
98
+ setCurrentEvent(currentEventToUpdate);
99
+ }
100
+ };
101
+ var handleNextClick = function () {
102
+ var trackList = trackRef.current;
103
+ if (trackList && eventsOnTrack) {
104
+ var firstTabToUpdate = firstIndexInView + visibleTabs;
105
+ var currentEventToUpdate = eventsOnTrack[firstTabToUpdate] && eventsOnTrack[firstTabToUpdate].yearFlag
106
+ ? firstTabToUpdate + 1
107
+ : firstTabToUpdate;
108
+ var translateUpdate = translate - 100;
109
+ updatePage(true, currentEventToUpdate);
110
+ repositionEvents();
111
+ setFirstIndexInView(firstTabToUpdate);
112
+ setTranslate(translateUpdate);
113
+ setCurrentEvent(currentEventToUpdate);
114
+ }
115
+ };
116
+ var updatePage = function (forward, current) {
117
+ var _a;
118
+ if (eventsToShow && eventsOnTrack) {
119
+ var pageToUpdateIndex_1 = getPivotIndex(forward, pivotEvent);
120
+ var eventCardsArray_1 = Object.assign([], eventsToShow, (_a = {}, _a[pageToUpdateIndex_1] = eventsOnTrack[current], _a));
121
+ setEventsToShow(eventCardsArray_1);
122
+ setPivotEvent(pageToUpdateIndex_1);
123
+ setEventsTranslate(forward ? -100 : 100);
124
+ setTimeout(function () {
125
+ var _a, _b;
126
+ var _c;
127
+ var cardWith = (_c = trackWrapRef.current) === null || _c === void 0 ? void 0 : _c.offsetWidth;
128
+ var repositionArray = Object.assign([], eventsPositions, (_a = {},
129
+ _a[pageToUpdateIndex_1] = 0,
130
+ _a[getPivotIndex(true, pageToUpdateIndex_1)] = cardWith,
131
+ _a[getPivotIndex(false, pageToUpdateIndex_1)] = cardWith && -cardWith,
132
+ _a));
133
+ var clearEventsArray = Object.assign([], eventCardsArray_1, (_b = {},
134
+ _b[getPivotIndex(true, pageToUpdateIndex_1)] = {},
135
+ _b[getPivotIndex(false, pageToUpdateIndex_1)] = {},
136
+ _b));
137
+ setEventsToShow(clearEventsArray);
138
+ setEventsPositions(repositionArray);
139
+ setEventsTranslate(0);
140
+ }, props.transitionDuration || EVENT_CARD_TRANSITION_DURATION);
141
+ }
142
+ };
143
+ var getPivotIndex = function (forward, index) {
144
+ var pageIndex = forward ? index + 1 : index - 1;
145
+ if (eventsToShow) {
146
+ var validIndex = pageIndex < 0
147
+ ? eventsToShow.length - 1
148
+ : pageIndex % eventsToShow.length;
149
+ return validIndex;
150
+ }
151
+ return 0;
152
+ };
153
+ var positionCallout = function (element) {
154
+ var _a;
155
+ var offsetToSet = ((currentEvent - firstIndexInView) * element.offsetWidth) +
156
+ (element.offsetWidth / 2) +
157
+ (((_a = arrowLeftRef.current) === null || _a === void 0 ? void 0 : _a.offsetWidth) || 0);
158
+ setCalloutOffset(offsetToSet);
159
+ };
160
+ var onPointClick = function (index, event) {
161
+ event.preventDefault();
162
+ if (index > currentEvent) {
163
+ updatePage(true, index);
164
+ }
165
+ else if (index < currentEvent) {
166
+ updatePage(false, index);
167
+ }
168
+ setCurrentEvent(index);
169
+ };
170
+ var repositionEvents = React.useCallback(function () {
171
+ var trackList = trackRef.current;
172
+ var currentTab = trackList && trackList.children[currentEvent];
173
+ if (trackList instanceof HTMLElement && currentTab) {
174
+ var visibleTabsCount = Math.round(trackList.offsetWidth / DEFAULT_EVENT_POINT_WITH);
175
+ positionCallout(currentTab);
176
+ setTabFlexWith(100 / visibleTabsCount);
177
+ setVisibleTabs(visibleTabsCount);
178
+ }
179
+ }, []);
180
+ var eventCardAnimationStyle = function () { return ({
181
+ transitionDuration: "".concat(EVENT_CARD_TRANSITION_DURATION, "ms")
182
+ }); };
183
+ var eventCardReorderStyle = function (translation) { return ({
184
+ transform: "translateX(".concat(translation, "%)"), transformOrigin: 'left top'
185
+ }); };
186
+ return (React.createElement(React.Fragment, null,
187
+ React.createElement("div", { className: "k-timeline-track-wrap", ref: trackWrapRef },
188
+ React.createElement("a", { ref: arrowLeftRef, "aria-hidden": "true", onClick: function () { return arrowLeft && handlePrevClick(); }, className: (0, kendo_react_common_1.classNames)('k-timeline-arrow', 'k-timeline-arrow-left', 'k-button k-button-md k-rounded-md k-button-solid k-button-solid-base k-icon-button', { 'k-disabled': !arrowLeft }) },
189
+ React.createElement(kendo_react_common_1.SvgIcon, { icon: kendo_svg_icons_1.caretAltLeftIcon })),
190
+ React.createElement("a", { "aria-hidden": "true", onClick: function () { return arrowRight && handleNextClick(); }, className: (0, kendo_react_common_1.classNames)('k-timeline-arrow', 'k-timeline-arrow-right', 'k-button k-button-md k-rounded-md k-button-solid k-button-solid-base k-icon-button', { 'k-disabled': !arrowRight }) },
191
+ React.createElement(kendo_react_common_1.SvgIcon, { icon: kendo_svg_icons_1.caretAltRightIcon })),
192
+ React.createElement("div", { className: "k-timeline-track" },
193
+ React.createElement("ul", { ref: trackRef, className: "k-timeline-scrollable-wrap", role: "tablist", tabIndex: 0, style: { transform: "translateX(".concat(translate, "%)") } }, eventsOnTrack && eventsOnTrack.map(function (event, index) { return (event.yearFlag
194
+ ? (React.createElement("li", { role: "none", className: "k-timeline-track-item k-timeline-flag-wrap", style: { flex: "1 0 ".concat(tabWith) }, key: index },
195
+ React.createElement("span", { className: "k-timeline-flag" }, event.yearFlag)))
196
+ : (React.createElement("li", { role: "tab", className: (0, kendo_react_common_1.classNames)('k-timeline-track-item', { 'k-focus': index === currentEvent }), "aria-selected": index === currentEvent, style: { flex: "1 0 ".concat(tabWith) }, key: index },
197
+ React.createElement("div", { className: "k-timeline-date-wrap" },
198
+ React.createElement("span", { className: "k-timeline-date" }, intl.formatDate(event.date, dateFormat))),
199
+ React.createElement("span", { onClick: function (e) { return onPointClick(index, e); }, className: "k-timeline-circle" })))); })))),
200
+ React.createElement("div", { className: "k-timeline-events-list" },
201
+ React.createElement("ul", { className: "k-timeline-scrollable-wrap", style: eventsTranslate === 0
202
+ ? __assign({}, eventCardReorderStyle(eventsTranslate)) : __assign(__assign({}, eventCardReorderStyle(eventsTranslate)), eventCardAnimationStyle()) }, eventsToShow && eventsToShow.map(function (eventData, index) {
203
+ return (React.createElement("li", { key: index, className: "k-timeline-event", style: { transform: "translate3d(".concat(eventsPositions[index], "px, 0px, 0px)") } }, eventData && React.createElement(TimelineCard_1.TimelineCard, { tabindex: eventsPositions[index] === 0 ? 0 : -1, eventData: eventData, onActionClick: onActionClick, horizontal: true, collapsible: false, calloutStyle: { left: "".concat(calloutOffset, "px") } })));
204
+ })))));
205
+ };
206
+ exports.TimelineHorizontal = TimelineHorizontal;
207
+ exports.TimelineHorizontal.propTypes = {
208
+ onActionClick: PropTypes.func
209
+ };
@@ -0,0 +1,12 @@
1
+ import * as React from 'react';
2
+ import { EventDataProps } from './TimelineCard';
3
+ import { TimelineDirectionsProps } from './Timeline';
4
+ /**
5
+ * @hidden
6
+ */
7
+ export interface TimelineVerticalProps extends TimelineDirectionsProps {
8
+ alterMode?: boolean;
9
+ collapsibleEvents?: boolean;
10
+ onChange?: (event: EventDataProps) => void;
11
+ }
12
+ export declare const TimelineVertical: React.FunctionComponent<TimelineVerticalProps>;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TimelineVertical = void 0;
4
+ var React = require("react");
5
+ var PropTypes = require("prop-types");
6
+ var TimelineCard_1 = require("./TimelineCard");
7
+ var utils_1 = require("./utils");
8
+ var kendo_react_common_1 = require("@progress/kendo-react-common");
9
+ var kendo_react_intl_1 = require("@progress/kendo-react-intl");
10
+ var TimelineVertical = function (props) {
11
+ var intl = (0, kendo_react_intl_1.useInternationalization)();
12
+ var _a = React.useState(), eventsList = _a[0], setEventsList = _a[1];
13
+ var collapsibleEvents = props.collapsibleEvents, transitionDuration = props.transitionDuration, eventsData = props.eventsData, dateFormat = props.dateFormat, alterMode = props.alterMode, onChange = props.onChange, onActionClick = props.onActionClick;
14
+ React.useEffect(function () {
15
+ setEventsList((0, utils_1.addYearsFlags)(eventsData));
16
+ }, []);
17
+ return (React.createElement("ul", null, eventsList && eventsList.map(function (event, index) {
18
+ var cardId = (0, kendo_react_common_1.guid)();
19
+ return (React.createElement(React.Fragment, { key: index }, event.yearFlag
20
+ ? (React.createElement("li", { className: "k-timeline-flag-wrap" },
21
+ React.createElement("span", { className: "k-timeline-flag" }, event.yearFlag)))
22
+ : (React.createElement("li", { className: (0, kendo_react_common_1.classNames)('k-timeline-event', { 'k-reverse': index % 2 !== 0 }) },
23
+ React.createElement("div", { className: "k-timeline-date-wrap" },
24
+ React.createElement("span", { className: "k-timeline-date", id: cardId }, intl.formatDate(event.date, dateFormat))),
25
+ React.createElement("a", { className: "k-timeline-circle" }),
26
+ React.createElement(TimelineCard_1.TimelineCard, { id: cardId, tabindex: 0, eventData: event, alternated: alterMode && index % 2 !== 0, collapsible: collapsibleEvents, transitionDuration: transitionDuration, onChange: onChange, onActionClick: onActionClick })))));
27
+ })));
28
+ };
29
+ exports.TimelineVertical = TimelineVertical;
30
+ exports.TimelineVertical.propTypes = {
31
+ onActionClick: PropTypes.func
32
+ };
@@ -3,3 +3,13 @@ import { TimelineEventProps } from './Timeline';
3
3
  * Sort the events list based on event date.
4
4
  */
5
5
  export declare const sortEventList: (eventList: TimelineEventProps[]) => TimelineEventProps[];
6
+ /**
7
+ * @hidden
8
+ */
9
+ export interface yearFlagProps {
10
+ yearFlag?: number;
11
+ }
12
+ /**
13
+ * @hidden
14
+ */
15
+ export declare const addYearsFlags: (eventsData: TimelineEventProps[]) => (TimelineEventProps | yearFlagProps)[];
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sortEventList = void 0;
3
+ exports.addYearsFlags = exports.sortEventList = void 0;
4
4
  /**
5
5
  * Sort the events list based on event date.
6
6
  */
@@ -11,3 +11,21 @@ var sortEventList = function (eventList) {
11
11
  return sortedEvents;
12
12
  };
13
13
  exports.sortEventList = sortEventList;
14
+ /**
15
+ * @hidden
16
+ */
17
+ var addYearsFlags = function (eventsData) {
18
+ var yearFlag;
19
+ var trackData = eventsData.reduce(function (arr, eventData) {
20
+ if (yearFlag !== eventData.date.getFullYear()) {
21
+ yearFlag = eventData.date.getFullYear();
22
+ arr.push({ yearFlag: yearFlag }, eventData);
23
+ }
24
+ else {
25
+ arr.push(eventData);
26
+ }
27
+ return arr;
28
+ }, []);
29
+ return trackData;
30
+ };
31
+ exports.addYearsFlags = addYearsFlags;