@axis-backstage/plugin-vacation-calendar 0.6.0 → 0.8.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @axis-backstage/plugin-vacation-calendar
2
2
 
3
+ ## 0.8.0
4
+
5
+ ### Minor Changes
6
+
7
+ - db452c4: Updated to Backstage v1.42.5
8
+
9
+ ## 0.7.0
10
+
11
+ ### Minor Changes
12
+
13
+ - 86c01b7: Bumped to Backstage 1.40
14
+
3
15
  ## 0.6.0
4
16
 
5
17
  ### Minor Changes
@@ -1,4 +1,5 @@
1
- import React, { useState } from 'react';
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { useState } from 'react';
2
3
  import useAsync from 'react-use/lib/useAsync';
3
4
  import Timeline, { TimelineHeaders, SidebarHeader, DateHeader } from 'react-calendar-timeline';
4
5
  import { DateTime } from 'luxon';
@@ -19,7 +20,7 @@ import Stack from '@mui/material/Stack';
19
20
 
20
21
  const DEFAULT_NUM_DAYS = 60;
21
22
  const IntervalDateHeader = (props) => {
22
- return /* @__PURE__ */ React.createElement(
23
+ return /* @__PURE__ */ jsx(
23
24
  MuiLink,
24
25
  {
25
26
  sx: {
@@ -36,9 +37,9 @@ const IntervalDateHeader = (props) => {
36
37
  width: props?.intervalContext.interval.labelWidth,
37
38
  left: props?.intervalContext.interval.left
38
39
  },
39
- onClick: props?.getIntervalProps().onClick
40
- },
41
- props?.intervalContext.intervalText
40
+ onClick: props?.getIntervalProps().onClick,
41
+ children: props?.intervalContext.intervalText
42
+ }
42
43
  );
43
44
  };
44
45
  const CalendarCard = () => {
@@ -66,7 +67,7 @@ const CalendarCard = () => {
66
67
  const groups = getGroups(availablity, isUserEntity, users);
67
68
  const scheduleItems = getScheduleItems(availablity);
68
69
  if (users?.length === 0) {
69
- return /* @__PURE__ */ React.createElement(
70
+ return /* @__PURE__ */ jsx(
70
71
  ErrorPanel,
71
72
  {
72
73
  title: "No users found.",
@@ -76,7 +77,7 @@ const CalendarCard = () => {
76
77
  );
77
78
  }
78
79
  if (error instanceof Error) {
79
- return /* @__PURE__ */ React.createElement(
80
+ return /* @__PURE__ */ jsx(
80
81
  ErrorPanel,
81
82
  {
82
83
  title: "Microsoft Graph Error.",
@@ -85,118 +86,143 @@ const CalendarCard = () => {
85
86
  }
86
87
  );
87
88
  }
88
- return /* @__PURE__ */ React.createElement(Content, null, /* @__PURE__ */ React.createElement(ContentHeader, { title: "Out of Office Calendar" }, /* @__PURE__ */ React.createElement(SupportButton, { title: "Backstage Out Of Office Calendar" }, /* @__PURE__ */ React.createElement(Box, null, /* @__PURE__ */ React.createElement(Typography, { variant: "h6" }, "How it works"), /* @__PURE__ */ React.createElement(Typography, null, 'The "Out of Office"-calendar shows Away events. If you want your calendar events to be seen in the "Out of Office"-calendar, be sure to mark your presence as "Away" in outlook.'), /* @__PURE__ */ React.createElement(Typography, { variant: "h6" }, "Limitations"), /* @__PURE__ */ React.createElement(Typography, null, "Due to limitations in the Microsoft Graph API the maximum range of the dates is ", DEFAULT_NUM_DAYS, " days.")))), /* @__PURE__ */ React.createElement(Box, null, /* @__PURE__ */ React.createElement(Stack, { direction: "row", gap: 3, alignItems: "center" }, /* @__PURE__ */ React.createElement(Box, null, /* @__PURE__ */ React.createElement(
89
- DateSelector,
90
- {
91
- onDateChange: (d) => {
92
- if (d instanceof DateTime) {
93
- const { days } = endDate.diff(d, "days").toObject();
94
- if (days && Math.abs(days) > DEFAULT_NUM_DAYS) {
95
- setEndDate(d.endOf("day").plus({ days: DEFAULT_NUM_DAYS }));
96
- }
97
- setStartDate(d);
98
- }
99
- },
100
- initalDate: startDate,
101
- label: "Start Date"
102
- }
103
- )), /* @__PURE__ */ React.createElement(Box, null, /* @__PURE__ */ React.createElement(
104
- DateSelector,
105
- {
106
- onDateChange: (d) => {
107
- if (d instanceof DateTime) {
108
- const { days } = startDate.diff(d, "days").toObject();
109
- if (days && Math.abs(days) > DEFAULT_NUM_DAYS) {
110
- setStartDate(
111
- d.endOf("day").minus({ days: DEFAULT_NUM_DAYS })
112
- );
89
+ return /* @__PURE__ */ jsxs(Content, { children: [
90
+ /* @__PURE__ */ jsx(ContentHeader, { title: "Out of Office Calendar", children: /* @__PURE__ */ jsx(SupportButton, { title: "Backstage Out Of Office Calendar", children: /* @__PURE__ */ jsxs(Box, { children: [
91
+ /* @__PURE__ */ jsx(Typography, { variant: "h6", children: "How it works" }),
92
+ /* @__PURE__ */ jsx(Typography, { children: 'The "Out of Office"-calendar shows Away events. If you want your calendar events to be seen in the "Out of Office"-calendar, be sure to mark your presence as "Away" in outlook.' }),
93
+ /* @__PURE__ */ jsx(Typography, { variant: "h6", children: "Limitations" }),
94
+ /* @__PURE__ */ jsxs(Typography, { children: [
95
+ "Due to limitations in the Microsoft Graph API the maximum range of the dates is ",
96
+ DEFAULT_NUM_DAYS,
97
+ " days."
98
+ ] })
99
+ ] }) }) }),
100
+ /* @__PURE__ */ jsxs(Box, { children: [
101
+ /* @__PURE__ */ jsxs(Stack, { direction: "row", gap: 3, alignItems: "center", children: [
102
+ /* @__PURE__ */ jsx(Box, { children: /* @__PURE__ */ jsx(
103
+ DateSelector,
104
+ {
105
+ onDateChange: (d) => {
106
+ if (d instanceof DateTime) {
107
+ const { days } = endDate.diff(d, "days").toObject();
108
+ if (days && Math.abs(days) > DEFAULT_NUM_DAYS) {
109
+ setEndDate(d.endOf("day").plus({ days: DEFAULT_NUM_DAYS }));
110
+ }
111
+ setStartDate(d);
112
+ }
113
+ },
114
+ initalDate: startDate,
115
+ label: "Start Date"
113
116
  }
114
- setEndDate(d);
115
- }
116
- },
117
- initalDate: endDate,
118
- label: "End Date"
119
- }
120
- )), /* @__PURE__ */ React.createElement(Box, null, /* @__PURE__ */ React.createElement(
121
- Button,
122
- {
123
- onClick: () => {
124
- fetchNextPage();
125
- },
126
- disabled: showLoader || !hasNextPage,
127
- variant: "contained",
128
- color: "primary"
129
- },
130
- "Show more Users"
131
- ))), showLoader && /* @__PURE__ */ React.createElement(Box, { py: 2 }, /* @__PURE__ */ React.createElement(Progress, { variant: "query" })), !isSignedIn && isInitialized && /* @__PURE__ */ React.createElement(Box, { p: 1, pb: 0, minHeight: 200, maxHeight: 602, overflow: "auto" }, /* @__PURE__ */ React.createElement(SignInContent, { handleAuthClick: () => signIn(false) })), !isAvailabilityLoading && isSignedIn && /* @__PURE__ */ React.createElement(Box, { mt: 3, pb: 0, minHeight: 200, overflow: "auto" }, /* @__PURE__ */ React.createElement(
132
- Timeline,
133
- {
134
- groups,
135
- sidebarWidth: 250,
136
- groupRenderer: ({ group }) => {
137
- return /* @__PURE__ */ React.createElement(
138
- Link,
117
+ ) }),
118
+ /* @__PURE__ */ jsx(Box, { children: /* @__PURE__ */ jsx(
119
+ DateSelector,
139
120
  {
140
- to: `/catalog/default/user/${group.entity?.metadata.name}`
141
- },
142
- /* @__PURE__ */ React.createElement(
143
- "div",
144
- {
145
- className: "custom-group",
146
- style: {
147
- background: group.highlight ? "linear-gradient(90deg, #FFCC33A0, transparent 100%)" : "",
148
- marginLeft: "-4px",
149
- paddingLeft: "4px",
150
- display: "flex",
151
- whiteSpace: "nowrap",
152
- flexWrap: "nowrap",
153
- flexDirection: "row",
154
- gap: "5px"
121
+ onDateChange: (d) => {
122
+ if (d instanceof DateTime) {
123
+ const { days } = startDate.diff(d, "days").toObject();
124
+ if (days && Math.abs(days) > DEFAULT_NUM_DAYS) {
125
+ setStartDate(
126
+ d.endOf("day").minus({ days: DEFAULT_NUM_DAYS })
127
+ );
128
+ }
129
+ setEndDate(d);
155
130
  }
156
131
  },
157
- /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement(
158
- Avatar,
132
+ initalDate: endDate,
133
+ label: "End Date"
134
+ }
135
+ ) }),
136
+ /* @__PURE__ */ jsx(Box, { children: /* @__PURE__ */ jsx(
137
+ Button,
138
+ {
139
+ onClick: () => {
140
+ fetchNextPage();
141
+ },
142
+ disabled: showLoader || !hasNextPage,
143
+ variant: "contained",
144
+ color: "primary",
145
+ children: "Show more Users"
146
+ }
147
+ ) })
148
+ ] }),
149
+ showLoader && /* @__PURE__ */ jsx(Box, { py: 2, children: /* @__PURE__ */ jsx(Progress, { variant: "query" }) }),
150
+ !isSignedIn && isInitialized && /* @__PURE__ */ jsx(Box, { p: 1, pb: 0, minHeight: 200, maxHeight: 602, overflow: "auto", children: /* @__PURE__ */ jsx(SignInContent, { handleAuthClick: () => signIn(false) }) }),
151
+ !isAvailabilityLoading && isSignedIn && /* @__PURE__ */ jsx(Box, { mt: 3, pb: 0, minHeight: 200, overflow: "auto", children: /* @__PURE__ */ jsx(
152
+ Timeline,
153
+ {
154
+ groups,
155
+ sidebarWidth: 250,
156
+ groupRenderer: ({ group }) => {
157
+ return /* @__PURE__ */ jsx(
158
+ Link,
159
159
  {
160
- displayName: group.entity?.metadata.displayName,
161
- picture: group.entity?.spec.profile?.picture,
162
- customStyles: {
163
- width: 30,
164
- height: 30
165
- }
160
+ to: `/catalog/default/user/${group.entity?.metadata.name}`,
161
+ children: /* @__PURE__ */ jsxs(
162
+ "div",
163
+ {
164
+ className: "custom-group",
165
+ style: {
166
+ background: group.highlight ? "linear-gradient(90deg, #FFCC33A0, transparent 100%)" : "",
167
+ marginLeft: "-4px",
168
+ paddingLeft: "4px",
169
+ display: "flex",
170
+ whiteSpace: "nowrap",
171
+ flexWrap: "nowrap",
172
+ flexDirection: "row",
173
+ gap: "5px"
174
+ },
175
+ children: [
176
+ /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
177
+ Avatar,
178
+ {
179
+ displayName: group.entity?.metadata.displayName,
180
+ picture: group.entity?.spec.profile?.picture,
181
+ customStyles: {
182
+ width: 30,
183
+ height: 30
184
+ }
185
+ }
186
+ ) }),
187
+ /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("span", { className: "title", children: group.title }) })
188
+ ]
189
+ }
190
+ )
166
191
  }
167
- )),
168
- /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("span", { className: "title" }, group.title))
192
+ );
193
+ },
194
+ items: scheduleItems,
195
+ itemTouchSendsClick: false,
196
+ defaultTimeStart: startDate.toJSDate(),
197
+ defaultTimeEnd: endDate.toJSDate(),
198
+ children: /* @__PURE__ */ jsxs(
199
+ TimelineHeaders,
200
+ {
201
+ style: {
202
+ backgroundColor: "transparent",
203
+ color: "black",
204
+ position: "sticky",
205
+ top: "-6px"
206
+ },
207
+ children: [
208
+ /* @__PURE__ */ jsx(SidebarHeader, { children: ({ getRootProps }) => {
209
+ return /* @__PURE__ */ jsx("div", { ...getRootProps() });
210
+ } }),
211
+ /* @__PURE__ */ jsx(
212
+ DateHeader,
213
+ {
214
+ unit: "primaryHeader",
215
+ intervalRenderer: IntervalDateHeader
216
+ }
217
+ ),
218
+ /* @__PURE__ */ jsx(DateHeader, { intervalRenderer: IntervalDateHeader })
219
+ ]
220
+ }
169
221
  )
170
- );
171
- },
172
- items: scheduleItems,
173
- itemTouchSendsClick: false,
174
- defaultTimeStart: startDate.toJSDate(),
175
- defaultTimeEnd: endDate.toJSDate()
176
- },
177
- /* @__PURE__ */ React.createElement(
178
- TimelineHeaders,
179
- {
180
- style: {
181
- backgroundColor: "transparent",
182
- color: "black",
183
- position: "sticky",
184
- top: "-6px"
185
- }
186
- },
187
- /* @__PURE__ */ React.createElement(SidebarHeader, null, ({ getRootProps }) => {
188
- return /* @__PURE__ */ React.createElement("div", { ...getRootProps() });
189
- }),
190
- /* @__PURE__ */ React.createElement(
191
- DateHeader,
192
- {
193
- unit: "primaryHeader",
194
- intervalRenderer: IntervalDateHeader
195
222
  }
196
- ),
197
- /* @__PURE__ */ React.createElement(DateHeader, { intervalRenderer: IntervalDateHeader })
198
- )
199
- ))));
223
+ ) })
224
+ ] })
225
+ ] });
200
226
  };
201
227
 
202
228
  export { CalendarCard };
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarCard.esm.js","sources":["../../../src/components/CalendarCard/CalendarCard.tsx"],"sourcesContent":["import React, { ReactNode, useState } from 'react';\nimport useAsync from 'react-use/lib/useAsync';\nimport Timeline, {\n TimelineHeaders,\n SidebarHeader,\n DateHeader,\n IntervalRenderer,\n} from 'react-calendar-timeline';\nimport { DateTime } from 'luxon';\nimport { useApi } from '@backstage/core-plugin-api';\nimport { useEntity, catalogApiRef } from '@backstage/plugin-catalog-react';\nimport {\n Content,\n ContentHeader,\n SupportButton,\n Link,\n ErrorPanel,\n Progress,\n Avatar,\n} from '@backstage/core-components';\nimport { DateSelector } from '../DateSelector';\nimport { getGroups, getScheduleItems } from './lib';\nimport { fetchGroupEntities, fetchUserEntities } from './fetch';\nimport { useAvailability } from '../../hooks/useAvailibility';\nimport { useSignIn } from '../../hooks';\nimport { SignInContent } from '../SignInContent';\nimport MuiLink from '@mui/material/Link';\nimport Button from '@mui/material/Button';\nimport Box from '@mui/material/Box';\nimport Typography from '@mui/material/Typography';\nimport Stack from '@mui/material/Stack';\n\nimport { Theme } from '@mui/material/styles';\n\nconst DEFAULT_NUM_DAYS = 60;\n\nconst IntervalDateHeader = (props?: IntervalRenderer<object>): ReactNode => {\n return (\n <MuiLink\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: '100%',\n borderBottom: '1px solid #bbb',\n cursor: 'pointer',\n fontSize: '14px',\n borderLeft: '2px solid #bbb',\n color: (theme: Theme) => theme.palette.text.primary,\n position: 'absolute',\n width: props?.intervalContext.interval.labelWidth,\n left: props?.intervalContext.interval.left,\n }}\n onClick={props?.getIntervalProps().onClick}\n >\n {props?.intervalContext.intervalText}\n </MuiLink>\n );\n};\n\nexport const CalendarCard = () => {\n const { entity } = useEntity();\n const catalogApi = useApi(catalogApiRef);\n\n const [startDate, setStartDate] = useState(DateTime.now());\n const [endDate, setEndDate] = useState(\n DateTime.now().endOf('day').plus({ days: DEFAULT_NUM_DAYS }),\n );\n\n const { isSignedIn, isInitialized, signIn } = useSignIn();\n\n useAsync(async () => signIn(true), [signIn]);\n\n const isUserEntity =\n entity.kind.toLowerCase() === 'user' && entity.metadata.name;\n\n const { value: users } = useAsync(async () => {\n return isUserEntity\n ? fetchUserEntities(catalogApi, entity)\n : fetchGroupEntities(catalogApi, entity);\n }, [catalogApi, entity]);\n\n const {\n availablity,\n error,\n isLoading: isAvailabilityLoading,\n isFetching: isAvailabilityFetching,\n hasNextPage,\n fetchNextPage,\n } = useAvailability(users, startDate, endDate, isSignedIn);\n\n const showLoader =\n isAvailabilityLoading || isAvailabilityFetching || !isInitialized;\n\n const groups = getGroups(availablity, isUserEntity, users);\n const scheduleItems = getScheduleItems(availablity);\n\n if (users?.length === 0) {\n return (\n <ErrorPanel\n title=\"No users found.\"\n defaultExpanded\n error={Error('No users found for current entity.')}\n />\n );\n }\n if (error instanceof Error) {\n return (\n <ErrorPanel\n title=\"Microsoft Graph Error.\"\n defaultExpanded\n error={error as any}\n />\n );\n }\n\n return (\n <Content>\n <ContentHeader title=\"Out of Office Calendar\">\n <SupportButton title=\"Backstage Out Of Office Calendar\">\n <Box>\n <Typography variant=\"h6\">How it works</Typography>\n <Typography>\n The \"Out of Office\"-calendar shows Away events. If you want your\n calendar events to be seen in the \"Out of Office\"-calendar, be\n sure to mark your presence as \"Away\" in outlook.\n </Typography>\n <Typography variant=\"h6\">Limitations</Typography>\n <Typography>\n Due to limitations in the Microsoft Graph API the maximum range of\n the dates is {DEFAULT_NUM_DAYS} days.\n </Typography>\n </Box>\n </SupportButton>\n </ContentHeader>\n\n <Box>\n <Stack direction=\"row\" gap={3} alignItems=\"center\">\n <Box>\n <DateSelector\n onDateChange={d => {\n if (d instanceof DateTime) {\n const { days } = endDate.diff(d, 'days').toObject();\n if (days && Math.abs(days) > DEFAULT_NUM_DAYS) {\n setEndDate(d.endOf('day').plus({ days: DEFAULT_NUM_DAYS }));\n }\n setStartDate(d);\n }\n }}\n initalDate={startDate}\n label=\"Start Date\"\n />\n </Box>\n <Box>\n <DateSelector\n onDateChange={d => {\n if (d instanceof DateTime) {\n const { days } = startDate.diff(d, 'days').toObject();\n if (days && Math.abs(days) > DEFAULT_NUM_DAYS) {\n setStartDate(\n d.endOf('day').minus({ days: DEFAULT_NUM_DAYS }),\n );\n }\n setEndDate(d as DateTime);\n }\n }}\n initalDate={endDate}\n label=\"End Date\"\n />\n </Box>\n <Box>\n <Button\n onClick={() => {\n fetchNextPage();\n }}\n disabled={showLoader || !hasNextPage}\n variant=\"contained\"\n color=\"primary\"\n >\n Show more Users\n </Button>\n </Box>\n </Stack>\n\n {showLoader && (\n <Box py={2}>\n <Progress variant=\"query\" />\n </Box>\n )}\n {!isSignedIn && isInitialized && (\n <Box p={1} pb={0} minHeight={200} maxHeight={602} overflow=\"auto\">\n <SignInContent handleAuthClick={() => signIn(false)} />\n </Box>\n )}\n {!isAvailabilityLoading && isSignedIn && (\n <Box mt={3} pb={0} minHeight={200} overflow=\"auto\">\n <Timeline\n groups={groups}\n sidebarWidth={250}\n groupRenderer={({ group }) => {\n return (\n <Link\n to={`/catalog/default/user/${group.entity?.metadata.name}`}\n >\n <div\n className=\"custom-group\"\n style={{\n background: group.highlight\n ? 'linear-gradient(90deg, #FFCC33A0, transparent 100%)'\n : '',\n marginLeft: '-4px',\n paddingLeft: '4px',\n display: 'flex',\n whiteSpace: 'nowrap',\n flexWrap: 'nowrap',\n flexDirection: 'row',\n gap: '5px',\n }}\n >\n <div>\n <Avatar\n displayName={\n group.entity?.metadata.displayName as string\n }\n picture={group.entity?.spec.profile?.picture}\n customStyles={{\n width: 30,\n height: 30,\n }}\n />\n </div>\n <div>\n <span className=\"title\">{group.title}</span>\n </div>\n </div>\n </Link>\n );\n }}\n items={scheduleItems as any}\n itemTouchSendsClick={false}\n defaultTimeStart={startDate.toJSDate()}\n defaultTimeEnd={endDate.toJSDate()}\n >\n <TimelineHeaders\n style={{\n backgroundColor: 'transparent',\n color: 'black',\n position: 'sticky',\n top: '-6px',\n }}\n >\n <SidebarHeader>\n {({ getRootProps }) => {\n return <div {...getRootProps()} />;\n }}\n </SidebarHeader>\n <DateHeader\n unit=\"primaryHeader\"\n intervalRenderer={IntervalDateHeader}\n />\n <DateHeader intervalRenderer={IntervalDateHeader} />\n </TimelineHeaders>\n </Timeline>\n </Box>\n )}\n </Box>\n </Content>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CalendarCard.esm.js","sources":["../../../src/components/CalendarCard/CalendarCard.tsx"],"sourcesContent":["import { ReactNode, useState } from 'react';\nimport useAsync from 'react-use/lib/useAsync';\nimport Timeline, {\n TimelineHeaders,\n SidebarHeader,\n DateHeader,\n IntervalRenderer,\n} from 'react-calendar-timeline';\nimport { DateTime } from 'luxon';\nimport { useApi } from '@backstage/core-plugin-api';\nimport { useEntity, catalogApiRef } from '@backstage/plugin-catalog-react';\nimport {\n Content,\n ContentHeader,\n SupportButton,\n Link,\n ErrorPanel,\n Progress,\n Avatar,\n} from '@backstage/core-components';\nimport { DateSelector } from '../DateSelector';\nimport { getGroups, getScheduleItems } from './lib';\nimport { fetchGroupEntities, fetchUserEntities } from './fetch';\nimport { useAvailability } from '../../hooks/useAvailibility';\nimport { useSignIn } from '../../hooks';\nimport { SignInContent } from '../SignInContent';\nimport MuiLink from '@mui/material/Link';\nimport Button from '@mui/material/Button';\nimport Box from '@mui/material/Box';\nimport Typography from '@mui/material/Typography';\nimport Stack from '@mui/material/Stack';\n\nimport { Theme } from '@mui/material/styles';\n\nconst DEFAULT_NUM_DAYS = 60;\n\nconst IntervalDateHeader = (props?: IntervalRenderer<object>): ReactNode => {\n return (\n <MuiLink\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: '100%',\n borderBottom: '1px solid #bbb',\n cursor: 'pointer',\n fontSize: '14px',\n borderLeft: '2px solid #bbb',\n color: (theme: Theme) => theme.palette.text.primary,\n position: 'absolute',\n width: props?.intervalContext.interval.labelWidth,\n left: props?.intervalContext.interval.left,\n }}\n onClick={props?.getIntervalProps().onClick}\n >\n {props?.intervalContext.intervalText}\n </MuiLink>\n );\n};\n\nexport const CalendarCard = () => {\n const { entity } = useEntity();\n const catalogApi = useApi(catalogApiRef);\n\n const [startDate, setStartDate] = useState(DateTime.now());\n const [endDate, setEndDate] = useState(\n DateTime.now().endOf('day').plus({ days: DEFAULT_NUM_DAYS }),\n );\n\n const { isSignedIn, isInitialized, signIn } = useSignIn();\n\n useAsync(async () => signIn(true), [signIn]);\n\n const isUserEntity =\n entity.kind.toLowerCase() === 'user' && entity.metadata.name;\n\n const { value: users } = useAsync(async () => {\n return isUserEntity\n ? fetchUserEntities(catalogApi, entity)\n : fetchGroupEntities(catalogApi, entity);\n }, [catalogApi, entity]);\n\n const {\n availablity,\n error,\n isLoading: isAvailabilityLoading,\n isFetching: isAvailabilityFetching,\n hasNextPage,\n fetchNextPage,\n } = useAvailability(users, startDate, endDate, isSignedIn);\n\n const showLoader =\n isAvailabilityLoading || isAvailabilityFetching || !isInitialized;\n\n const groups = getGroups(availablity, isUserEntity, users);\n const scheduleItems = getScheduleItems(availablity);\n\n if (users?.length === 0) {\n return (\n <ErrorPanel\n title=\"No users found.\"\n defaultExpanded\n error={Error('No users found for current entity.')}\n />\n );\n }\n if (error instanceof Error) {\n return (\n <ErrorPanel\n title=\"Microsoft Graph Error.\"\n defaultExpanded\n error={error as any}\n />\n );\n }\n\n return (\n <Content>\n <ContentHeader title=\"Out of Office Calendar\">\n <SupportButton title=\"Backstage Out Of Office Calendar\">\n <Box>\n <Typography variant=\"h6\">How it works</Typography>\n <Typography>\n The \"Out of Office\"-calendar shows Away events. If you want your\n calendar events to be seen in the \"Out of Office\"-calendar, be\n sure to mark your presence as \"Away\" in outlook.\n </Typography>\n <Typography variant=\"h6\">Limitations</Typography>\n <Typography>\n Due to limitations in the Microsoft Graph API the maximum range of\n the dates is {DEFAULT_NUM_DAYS} days.\n </Typography>\n </Box>\n </SupportButton>\n </ContentHeader>\n\n <Box>\n <Stack direction=\"row\" gap={3} alignItems=\"center\">\n <Box>\n <DateSelector\n onDateChange={d => {\n if (d instanceof DateTime) {\n const { days } = endDate.diff(d, 'days').toObject();\n if (days && Math.abs(days) > DEFAULT_NUM_DAYS) {\n setEndDate(d.endOf('day').plus({ days: DEFAULT_NUM_DAYS }));\n }\n setStartDate(d);\n }\n }}\n initalDate={startDate}\n label=\"Start Date\"\n />\n </Box>\n <Box>\n <DateSelector\n onDateChange={d => {\n if (d instanceof DateTime) {\n const { days } = startDate.diff(d, 'days').toObject();\n if (days && Math.abs(days) > DEFAULT_NUM_DAYS) {\n setStartDate(\n d.endOf('day').minus({ days: DEFAULT_NUM_DAYS }),\n );\n }\n setEndDate(d as DateTime);\n }\n }}\n initalDate={endDate}\n label=\"End Date\"\n />\n </Box>\n <Box>\n <Button\n onClick={() => {\n fetchNextPage();\n }}\n disabled={showLoader || !hasNextPage}\n variant=\"contained\"\n color=\"primary\"\n >\n Show more Users\n </Button>\n </Box>\n </Stack>\n\n {showLoader && (\n <Box py={2}>\n <Progress variant=\"query\" />\n </Box>\n )}\n {!isSignedIn && isInitialized && (\n <Box p={1} pb={0} minHeight={200} maxHeight={602} overflow=\"auto\">\n <SignInContent handleAuthClick={() => signIn(false)} />\n </Box>\n )}\n {!isAvailabilityLoading && isSignedIn && (\n <Box mt={3} pb={0} minHeight={200} overflow=\"auto\">\n <Timeline\n groups={groups}\n sidebarWidth={250}\n groupRenderer={({ group }) => {\n return (\n <Link\n to={`/catalog/default/user/${group.entity?.metadata.name}`}\n >\n <div\n className=\"custom-group\"\n style={{\n background: group.highlight\n ? 'linear-gradient(90deg, #FFCC33A0, transparent 100%)'\n : '',\n marginLeft: '-4px',\n paddingLeft: '4px',\n display: 'flex',\n whiteSpace: 'nowrap',\n flexWrap: 'nowrap',\n flexDirection: 'row',\n gap: '5px',\n }}\n >\n <div>\n <Avatar\n displayName={\n group.entity?.metadata.displayName as string\n }\n picture={group.entity?.spec.profile?.picture}\n customStyles={{\n width: 30,\n height: 30,\n }}\n />\n </div>\n <div>\n <span className=\"title\">{group.title}</span>\n </div>\n </div>\n </Link>\n );\n }}\n items={scheduleItems as any}\n itemTouchSendsClick={false}\n defaultTimeStart={startDate.toJSDate()}\n defaultTimeEnd={endDate.toJSDate()}\n >\n <TimelineHeaders\n style={{\n backgroundColor: 'transparent',\n color: 'black',\n position: 'sticky',\n top: '-6px',\n }}\n >\n <SidebarHeader>\n {({ getRootProps }) => {\n return <div {...getRootProps()} />;\n }}\n </SidebarHeader>\n <DateHeader\n unit=\"primaryHeader\"\n intervalRenderer={IntervalDateHeader}\n />\n <DateHeader intervalRenderer={IntervalDateHeader} />\n </TimelineHeaders>\n </Timeline>\n </Box>\n )}\n </Box>\n </Content>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import { jsx } from 'react/jsx-runtime';
2
2
  import { AdapterLuxon } from '@mui/x-date-pickers/AdapterLuxon';
3
3
  import FormControl from '@mui/material/FormControl';
4
4
  import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';
@@ -9,7 +9,7 @@ const DateSelector = ({
9
9
  initalDate,
10
10
  onDateChange
11
11
  }) => {
12
- return /* @__PURE__ */ React.createElement(FormControl, { variant: "standard" }, /* @__PURE__ */ React.createElement(LocalizationProvider, { dateAdapter: AdapterLuxon }, /* @__PURE__ */ React.createElement(
12
+ return /* @__PURE__ */ jsx(FormControl, { variant: "standard", children: /* @__PURE__ */ jsx(LocalizationProvider, { dateAdapter: AdapterLuxon, children: /* @__PURE__ */ jsx(
13
13
  DesktopDatePicker,
14
14
  {
15
15
  format: "yyyy-MM-dd",
@@ -18,7 +18,7 @@ const DateSelector = ({
18
18
  defaultValue: initalDate,
19
19
  onChange: onDateChange
20
20
  }
21
- )));
21
+ ) }) });
22
22
  };
23
23
 
24
24
  export { DateSelector };
@@ -1 +1 @@
1
- {"version":3,"file":"DateSelector.esm.js","sources":["../../../src/components/DateSelector/DateSelector.tsx"],"sourcesContent":["import React from 'react';\nimport { DateTime } from 'luxon/src/datetime';\nimport { AdapterLuxon } from '@mui/x-date-pickers/AdapterLuxon';\nimport FormControl from '@mui/material/FormControl';\nimport { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';\nimport { DesktopDatePicker } from '@mui/x-date-pickers/DesktopDatePicker';\n\ntype DateSelectorProps = {\n label: string;\n initalDate: DateTime;\n onDateChange: (date: DateTime | null | string | undefined) => void;\n};\n\nexport const DateSelector = ({\n label,\n initalDate,\n onDateChange,\n}: DateSelectorProps) => {\n return (\n <FormControl variant=\"standard\">\n <LocalizationProvider dateAdapter={AdapterLuxon}>\n <DesktopDatePicker\n format=\"yyyy-MM-dd\"\n label={label}\n value={initalDate}\n defaultValue={initalDate}\n onChange={onDateChange}\n />\n </LocalizationProvider>\n </FormControl>\n );\n};\n"],"names":[],"mappings":";;;;;;AAaO,MAAM,eAAe,CAAC;AAAA,EAC3B,KAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAyB,KAAA;AACvB,EAAA,2CACG,WAAY,EAAA,EAAA,OAAA,EAAQ,8BAClB,KAAA,CAAA,aAAA,CAAA,oBAAA,EAAA,EAAqB,aAAa,YACjC,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,iBAAA;AAAA,IAAA;AAAA,MACC,MAAO,EAAA,YAAA;AAAA,MACP,KAAA;AAAA,MACA,KAAO,EAAA,UAAA;AAAA,MACP,YAAc,EAAA,UAAA;AAAA,MACd,QAAU,EAAA;AAAA;AAAA,GAEd,CACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"DateSelector.esm.js","sources":["../../../src/components/DateSelector/DateSelector.tsx"],"sourcesContent":["import { DateTime } from 'luxon/src/datetime';\nimport { AdapterLuxon } from '@mui/x-date-pickers/AdapterLuxon';\nimport FormControl from '@mui/material/FormControl';\nimport { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';\nimport { DesktopDatePicker } from '@mui/x-date-pickers/DesktopDatePicker';\n\ntype DateSelectorProps = {\n label: string;\n initalDate: DateTime;\n onDateChange: (date: DateTime | null | string | undefined) => void;\n};\n\nexport const DateSelector = ({\n label,\n initalDate,\n onDateChange,\n}: DateSelectorProps) => {\n return (\n <FormControl variant=\"standard\">\n <LocalizationProvider dateAdapter={AdapterLuxon}>\n <DesktopDatePicker\n format=\"yyyy-MM-dd\"\n label={label}\n value={initalDate}\n defaultValue={initalDate}\n onChange={onDateChange}\n />\n </LocalizationProvider>\n </FormControl>\n );\n};\n"],"names":[],"mappings":";;;;;;AAYO,MAAM,eAAe,CAAC;AAAA,EAC3B,KAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAyB,KAAA;AACvB,EAAA,2BACG,WAAY,EAAA,EAAA,OAAA,EAAQ,YACnB,QAAC,kBAAA,GAAA,CAAA,oBAAA,EAAA,EAAqB,aAAa,YACjC,EAAA,QAAA,kBAAA,GAAA;AAAA,IAAC,iBAAA;AAAA,IAAA;AAAA,MACC,MAAO,EAAA,YAAA;AAAA,MACP,KAAA;AAAA,MACA,KAAO,EAAA,UAAA;AAAA,MACP,YAAc,EAAA,UAAA;AAAA,MACd,QAAU,EAAA;AAAA;AAAA,KAEd,CACF,EAAA,CAAA;AAEJ;;;;"}
@@ -1,9 +1,9 @@
1
- import React from 'react';
1
+ import { jsx } from 'react/jsx-runtime';
2
2
  import Box from '@mui/material/Box';
3
3
  import Button from '@mui/material/Button';
4
4
 
5
5
  const SignInContent = ({ handleAuthClick }) => {
6
- return /* @__PURE__ */ React.createElement(Box, { position: "relative", height: "100%", width: "100%" }, /* @__PURE__ */ React.createElement(
6
+ return /* @__PURE__ */ jsx(Box, { position: "relative", height: "100%", width: "100%", children: /* @__PURE__ */ jsx(
7
7
  Box,
8
8
  {
9
9
  height: "100%",
@@ -14,19 +14,19 @@ const SignInContent = ({ handleAuthClick }) => {
14
14
  position: "absolute",
15
15
  p: 10,
16
16
  left: 0,
17
- top: 0
18
- },
19
- /* @__PURE__ */ React.createElement(
20
- Button,
21
- {
22
- variant: "contained",
23
- color: "primary",
24
- onClick: handleAuthClick,
25
- size: "large"
26
- },
27
- "Sign in"
28
- )
29
- ));
17
+ top: 0,
18
+ children: /* @__PURE__ */ jsx(
19
+ Button,
20
+ {
21
+ variant: "contained",
22
+ color: "primary",
23
+ onClick: handleAuthClick,
24
+ size: "large",
25
+ children: "Sign in"
26
+ }
27
+ )
28
+ }
29
+ ) });
30
30
  };
31
31
 
32
32
  export { SignInContent };
@@ -1 +1 @@
1
- {"version":3,"file":"SignInContent.esm.js","sources":["../../../src/components/SignInContent/SignInContent.tsx"],"sourcesContent":["import React from 'react';\nimport Box from '@mui/material/Box';\nimport Button from '@mui/material/Button';\n\ntype Props = {\n handleAuthClick: React.MouseEventHandler<HTMLElement>;\n};\n\nexport const SignInContent = ({ handleAuthClick }: Props) => {\n return (\n <Box position=\"relative\" height=\"100%\" width=\"100%\">\n <Box\n height=\"100%\"\n width=\"80%\"\n display=\"flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n position=\"absolute\"\n p={10}\n left={0}\n top={0}\n >\n <Button\n variant=\"contained\"\n color=\"primary\"\n onClick={handleAuthClick}\n size=\"large\"\n >\n Sign in\n </Button>\n </Box>\n </Box>\n );\n};\n"],"names":[],"mappings":";;;;AAQO,MAAM,aAAgB,GAAA,CAAC,EAAE,eAAA,EAA6B,KAAA;AAC3D,EAAA,2CACG,GAAI,EAAA,EAAA,QAAA,EAAS,YAAW,MAAO,EAAA,MAAA,EAAO,OAAM,MAC3C,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,MAAO,EAAA,MAAA;AAAA,MACP,KAAM,EAAA,KAAA;AAAA,MACN,OAAQ,EAAA,MAAA;AAAA,MACR,cAAe,EAAA,QAAA;AAAA,MACf,UAAW,EAAA,QAAA;AAAA,MACX,QAAS,EAAA,UAAA;AAAA,MACT,CAAG,EAAA,EAAA;AAAA,MACH,IAAM,EAAA,CAAA;AAAA,MACN,GAAK,EAAA;AAAA,KAAA;AAAA,oBAEL,KAAA,CAAA,aAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,OAAQ,EAAA,WAAA;AAAA,QACR,KAAM,EAAA,SAAA;AAAA,QACN,OAAS,EAAA,eAAA;AAAA,QACT,IAAK,EAAA;AAAA,OAAA;AAAA,MACN;AAAA;AAED,GAEJ,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"SignInContent.esm.js","sources":["../../../src/components/SignInContent/SignInContent.tsx"],"sourcesContent":["import Box from '@mui/material/Box';\nimport Button from '@mui/material/Button';\n\ntype Props = {\n handleAuthClick: React.MouseEventHandler<HTMLElement>;\n};\n\nexport const SignInContent = ({ handleAuthClick }: Props) => {\n return (\n <Box position=\"relative\" height=\"100%\" width=\"100%\">\n <Box\n height=\"100%\"\n width=\"80%\"\n display=\"flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n position=\"absolute\"\n p={10}\n left={0}\n top={0}\n >\n <Button\n variant=\"contained\"\n color=\"primary\"\n onClick={handleAuthClick}\n size=\"large\"\n >\n Sign in\n </Button>\n </Box>\n </Box>\n );\n};\n"],"names":[],"mappings":";;;;AAOO,MAAM,aAAgB,GAAA,CAAC,EAAE,eAAA,EAA6B,KAAA;AAC3D,EAAA,2BACG,GAAI,EAAA,EAAA,QAAA,EAAS,YAAW,MAAO,EAAA,MAAA,EAAO,OAAM,MAC3C,EAAA,QAAA,kBAAA,GAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,MAAO,EAAA,MAAA;AAAA,MACP,KAAM,EAAA,KAAA;AAAA,MACN,OAAQ,EAAA,MAAA;AAAA,MACR,cAAe,EAAA,QAAA;AAAA,MACf,UAAW,EAAA,QAAA;AAAA,MACX,QAAS,EAAA,UAAA;AAAA,MACT,CAAG,EAAA,EAAA;AAAA,MACH,IAAM,EAAA,CAAA;AAAA,MACN,GAAK,EAAA,CAAA;AAAA,MAEL,QAAA,kBAAA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,OAAQ,EAAA,WAAA;AAAA,UACR,KAAM,EAAA,SAAA;AAAA,UACN,OAAS,EAAA,eAAA;AAAA,UACT,IAAK,EAAA,OAAA;AAAA,UACN,QAAA,EAAA;AAAA;AAAA;AAED;AAAA,GAEJ,EAAA,CAAA;AAEJ;;;;"}
@@ -1,10 +1,10 @@
1
- import React from 'react';
1
+ import { jsx } from 'react/jsx-runtime';
2
2
  import { QueryClientProvider, QueryClient } from '@tanstack/react-query';
3
3
  import { CalendarCard } from './CalendarCard/CalendarCard.esm.js';
4
4
 
5
5
  const queryClient = new QueryClient();
6
6
  const VacationCalendar = () => {
7
- return /* @__PURE__ */ React.createElement(QueryClientProvider, { client: queryClient }, /* @__PURE__ */ React.createElement(CalendarCard, null));
7
+ return /* @__PURE__ */ jsx(QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ jsx(CalendarCard, {}) });
8
8
  };
9
9
 
10
10
  export { VacationCalendar };
@@ -1 +1 @@
1
- {"version":3,"file":"VacationCalendar.esm.js","sources":["../../src/components/VacationCalendar.tsx"],"sourcesContent":["import React from 'react';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport { CalendarCard } from './CalendarCard';\n\nconst queryClient = new QueryClient();\n\nexport const VacationCalendar = () => {\n return (\n <QueryClientProvider client={queryClient}>\n <CalendarCard />\n </QueryClientProvider>\n );\n};\n"],"names":[],"mappings":";;;;AAIA,MAAM,WAAA,GAAc,IAAI,WAAY,EAAA;AAE7B,MAAM,mBAAmB,MAAM;AACpC,EAAA,2CACG,mBAAoB,EAAA,EAAA,MAAA,EAAQ,WAC3B,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,kBAAa,CAChB,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"VacationCalendar.esm.js","sources":["../../src/components/VacationCalendar.tsx"],"sourcesContent":["import { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport { CalendarCard } from './CalendarCard';\n\nconst queryClient = new QueryClient();\n\nexport const VacationCalendar = () => {\n return (\n <QueryClientProvider client={queryClient}>\n <CalendarCard />\n </QueryClientProvider>\n );\n};\n"],"names":[],"mappings":";;;;AAGA,MAAM,WAAA,GAAc,IAAI,WAAY,EAAA;AAE7B,MAAM,mBAAmB,MAAM;AACpC,EAAA,2BACG,mBAAoB,EAAA,EAAA,MAAA,EAAQ,WAC3B,EAAA,QAAA,kBAAA,GAAA,CAAC,gBAAa,CAChB,EAAA,CAAA;AAEJ;;;;"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,4 @@
1
- /// <reference types="react" />
2
- import * as react from 'react';
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
3
2
  import * as _backstage_core_plugin_api from '@backstage/core-plugin-api';
4
3
  import { OAuthApi, FetchApi } from '@backstage/core-plugin-api';
5
4
  import { Calendar, ScheduleInformation } from '@microsoft/microsoft-graph-types';
@@ -14,7 +13,7 @@ declare const vacationCalendarPlugin: _backstage_core_plugin_api.BackstagePlugin
14
13
  * Routable extension for VacationCalendarPage
15
14
  * @public
16
15
  */
17
- declare const VacationCalendarPage: () => react.JSX.Element;
16
+ declare const VacationCalendarPage: () => react_jsx_runtime.JSX.Element;
18
17
 
19
18
  /**
20
19
  * The apiref for the VacationCalendar plugin.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axis-backstage/plugin-vacation-calendar",
3
- "version": "0.6.0",
3
+ "version": "0.8.0",
4
4
  "main": "dist/index.esm.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "license": "Apache-2.0",
@@ -28,13 +28,14 @@
28
28
  "postpack": "backstage-cli package postpack"
29
29
  },
30
30
  "dependencies": {
31
- "@backstage/catalog-model": "^1.7.3",
32
- "@backstage/core-components": "^0.16.4",
33
- "@backstage/core-plugin-api": "^1.10.4",
31
+ "@backstage/catalog-model": "^1.7.5",
32
+ "@backstage/core-components": "^0.17.5",
33
+ "@backstage/core-plugin-api": "^1.10.9",
34
34
  "@backstage/errors": "^1.2.7",
35
- "@backstage/plugin-catalog-react": "^1.15.2",
36
- "@backstage/theme": "^0.6.4",
35
+ "@backstage/plugin-catalog-react": "^1.20.1",
36
+ "@backstage/theme": "^0.6.8",
37
37
  "@date-io/luxon": "3.0.0",
38
+ "@material-ui/core": "^4.12.4",
38
39
  "@material-ui/pickers": "^3.3.11",
39
40
  "@microsoft/microsoft-graph-types": "^2.40.0",
40
41
  "@mui/lab": "^5.0.0-alpha.170",
@@ -45,19 +46,24 @@
45
46
  "lodash": "^4.17.21",
46
47
  "luxon": "^3.4.4",
47
48
  "moment": "^2.30.1",
49
+ "prop-types": "^15.8.1",
48
50
  "react-calendar-timeline": "^0.28.0",
49
51
  "react-use": "^17.5.0"
50
52
  },
51
53
  "peerDependencies": {
52
- "react": "^16.13.1 || ^17.0.0 || ^18.0.0"
54
+ "@types/react": "^17.0.0 || ^18.0.0",
55
+ "react": "^17.0.0 || ^18.0.0",
56
+ "react-dom": "^17.0.0 || ^18.0.0",
57
+ "react-router-dom": "^6.3.0"
53
58
  },
54
59
  "devDependencies": {
55
- "@backstage/catalog-client": "^1.9.1",
56
- "@backstage/cli": "^0.30.0",
57
- "@backstage/core-app-api": "^1.15.5",
58
- "@backstage/dev-utils": "^1.1.7",
59
- "@backstage/test-utils": "^1.7.5",
60
- "@testing-library/jest-dom": "^5.10.1",
60
+ "@backstage/catalog-client": "^1.11.0",
61
+ "@backstage/cli": "^0.34.1",
62
+ "@backstage/core-app-api": "^1.18.0",
63
+ "@backstage/dev-utils": "^1.1.13",
64
+ "@backstage/test-utils": "^1.7.11",
65
+ "@testing-library/dom": "^10.0.0",
66
+ "@testing-library/jest-dom": "^6.0.0",
61
67
  "@testing-library/react": "^16.0.0",
62
68
  "@testing-library/user-event": "^14.5.2",
63
69
  "@types/lodash": "^4.17.5",
@@ -69,8 +75,8 @@
69
75
  ],
70
76
  "typesVersions": {
71
77
  "*": {
72
- "index": [
73
- "dist/index.d.ts"
78
+ "package.json": [
79
+ "package.json"
74
80
  ]
75
81
  }
76
82
  },