@universityofmaryland/web-feeds-library 1.0.9 → 1.1.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.
Files changed (193) hide show
  1. package/README.md +1 -1
  2. package/dist/academic.d.ts +2 -0
  3. package/dist/academic.js +5 -0
  4. package/dist/academic.js.map +1 -0
  5. package/dist/academic.mjs +5 -0
  6. package/dist/academic.mjs.map +1 -0
  7. package/dist/composite/academic/slider.d.ts +2 -2
  8. package/dist/composite/academic/slider.d.ts.map +1 -1
  9. package/dist/composite/academic/slider.js +34 -0
  10. package/dist/composite/academic/slider.js.map +1 -0
  11. package/dist/composite/academic/slider.mjs +35 -0
  12. package/dist/composite/academic/slider.mjs.map +1 -0
  13. package/dist/composite/events/common/data.d.ts +1 -1
  14. package/dist/composite/events/common/data.d.ts.map +1 -1
  15. package/dist/composite/events/common/data.js +53 -0
  16. package/dist/composite/events/common/data.js.map +1 -0
  17. package/dist/composite/events/common/data.mjs +53 -0
  18. package/dist/composite/events/common/data.mjs.map +1 -0
  19. package/dist/composite/events/common/display.d.ts.map +1 -1
  20. package/dist/composite/events/common/display.js +144 -0
  21. package/dist/composite/events/common/display.js.map +1 -0
  22. package/dist/composite/events/common/display.mjs +127 -0
  23. package/dist/composite/events/common/display.mjs.map +1 -0
  24. package/dist/composite/events/common/fetch.d.ts.map +1 -1
  25. package/dist/composite/events/common/fetch.js +105 -0
  26. package/dist/composite/events/common/fetch.js.map +1 -0
  27. package/dist/composite/events/common/fetch.mjs +105 -0
  28. package/dist/composite/events/common/fetch.mjs.map +1 -0
  29. package/dist/composite/events/common/queries.js +107 -0
  30. package/dist/composite/events/common/queries.js.map +1 -0
  31. package/dist/composite/events/common/queries.mjs +107 -0
  32. package/dist/composite/events/common/queries.mjs.map +1 -0
  33. package/dist/composite/events/grid.d.ts +2 -2
  34. package/dist/composite/events/grid.d.ts.map +1 -1
  35. package/dist/composite/events/grid.js +88 -0
  36. package/dist/composite/events/grid.js.map +1 -0
  37. package/dist/composite/events/grid.mjs +89 -0
  38. package/dist/composite/events/grid.mjs.map +1 -0
  39. package/dist/composite/events/grouped.d.ts +2 -2
  40. package/dist/composite/events/grouped.d.ts.map +1 -1
  41. package/dist/composite/events/grouped.js +221 -0
  42. package/dist/composite/events/grouped.js.map +1 -0
  43. package/dist/composite/events/grouped.mjs +205 -0
  44. package/dist/composite/events/grouped.mjs.map +1 -0
  45. package/dist/composite/events/list.d.ts +2 -2
  46. package/dist/composite/events/list.d.ts.map +1 -1
  47. package/dist/composite/events/list.js +88 -0
  48. package/dist/composite/events/list.js.map +1 -0
  49. package/dist/composite/events/list.mjs +89 -0
  50. package/dist/composite/events/list.mjs.map +1 -0
  51. package/dist/composite/events/slider.d.ts +2 -2
  52. package/dist/composite/events/slider.d.ts.map +1 -1
  53. package/dist/composite/events/slider.js +35 -0
  54. package/dist/composite/events/slider.js.map +1 -0
  55. package/dist/composite/events/slider.mjs +36 -0
  56. package/dist/composite/events/slider.mjs.map +1 -0
  57. package/dist/composite/news/common/data.d.ts +1 -1
  58. package/dist/composite/news/common/data.d.ts.map +1 -1
  59. package/dist/composite/news/common/data.js +62 -0
  60. package/dist/composite/news/common/data.js.map +1 -0
  61. package/dist/composite/news/common/data.mjs +62 -0
  62. package/dist/composite/news/common/data.mjs.map +1 -0
  63. package/dist/composite/news/common/display.d.ts.map +1 -1
  64. package/dist/composite/news/common/display.js +145 -0
  65. package/dist/composite/news/common/display.js.map +1 -0
  66. package/dist/composite/news/common/display.mjs +128 -0
  67. package/dist/composite/news/common/display.mjs.map +1 -0
  68. package/dist/composite/news/common/fetch.d.ts.map +1 -1
  69. package/dist/composite/news/common/fetch.js +85 -0
  70. package/dist/composite/news/common/fetch.js.map +1 -0
  71. package/dist/composite/news/common/fetch.mjs +85 -0
  72. package/dist/composite/news/common/fetch.mjs.map +1 -0
  73. package/dist/composite/news/common/queries.js +37 -0
  74. package/dist/composite/news/common/queries.js.map +1 -0
  75. package/dist/composite/news/common/queries.mjs +37 -0
  76. package/dist/composite/news/common/queries.mjs.map +1 -0
  77. package/dist/composite/news/featured.d.ts +2 -2
  78. package/dist/composite/news/featured.d.ts.map +1 -1
  79. package/dist/composite/news/featured.js +180 -0
  80. package/dist/composite/news/featured.js.map +1 -0
  81. package/dist/composite/news/featured.mjs +181 -0
  82. package/dist/composite/news/featured.mjs.map +1 -0
  83. package/dist/composite/news/grid.d.ts +2 -2
  84. package/dist/composite/news/grid.d.ts.map +1 -1
  85. package/dist/composite/news/grid.js +96 -0
  86. package/dist/composite/news/grid.js.map +1 -0
  87. package/dist/composite/news/grid.mjs +97 -0
  88. package/dist/composite/news/grid.mjs.map +1 -0
  89. package/dist/composite/news/list.d.ts +2 -2
  90. package/dist/composite/news/list.d.ts.map +1 -1
  91. package/dist/composite/news/list.js +83 -0
  92. package/dist/composite/news/list.js.map +1 -0
  93. package/dist/composite/news/list.mjs +84 -0
  94. package/dist/composite/news/list.mjs.map +1 -0
  95. package/dist/elements/asset.d.ts.map +1 -1
  96. package/dist/elements/asset.js +27 -0
  97. package/dist/elements/asset.js.map +1 -0
  98. package/dist/elements/asset.mjs +27 -0
  99. package/dist/elements/asset.mjs.map +1 -0
  100. package/dist/elements/layout.d.ts.map +1 -1
  101. package/dist/elements/layout.js +121 -0
  102. package/dist/elements/layout.js.map +1 -0
  103. package/dist/elements/layout.mjs +104 -0
  104. package/dist/elements/layout.mjs.map +1 -0
  105. package/dist/elements/text.d.ts.map +1 -1
  106. package/dist/elements/text.js +41 -0
  107. package/dist/elements/text.js.map +1 -0
  108. package/dist/elements/text.mjs +41 -0
  109. package/dist/elements/text.mjs.map +1 -0
  110. package/dist/events.d.ts +2 -0
  111. package/dist/events.js +11 -0
  112. package/dist/events.js.map +1 -0
  113. package/dist/events.mjs +11 -0
  114. package/dist/events.mjs.map +1 -0
  115. package/dist/index.js +9 -1
  116. package/dist/index.js.map +1 -0
  117. package/dist/index.mjs +9 -0
  118. package/dist/index.mjs.map +1 -0
  119. package/dist/macros/aria-live.js +25 -0
  120. package/dist/macros/aria-live.js.map +1 -0
  121. package/dist/macros/aria-live.mjs +26 -0
  122. package/dist/macros/aria-live.mjs.map +1 -0
  123. package/dist/macros/lazy-load.js +63 -0
  124. package/dist/macros/lazy-load.js.map +1 -0
  125. package/dist/macros/lazy-load.mjs +47 -0
  126. package/dist/macros/lazy-load.mjs.map +1 -0
  127. package/dist/macros/loader.js +148 -0
  128. package/dist/macros/loader.js.map +1 -0
  129. package/dist/macros/loader.mjs +132 -0
  130. package/dist/macros/loader.mjs.map +1 -0
  131. package/dist/macros/no-results.d.ts.map +1 -1
  132. package/dist/macros/no-results.js +71 -0
  133. package/dist/macros/no-results.js.map +1 -0
  134. package/dist/macros/no-results.mjs +55 -0
  135. package/dist/macros/no-results.mjs.map +1 -0
  136. package/dist/macros/slider.d.ts.map +1 -1
  137. package/dist/macros/slider.js +104 -0
  138. package/dist/macros/slider.js.map +1 -0
  139. package/dist/macros/slider.mjs +88 -0
  140. package/dist/macros/slider.mjs.map +1 -0
  141. package/dist/news.d.ts +2 -0
  142. package/dist/news.js +9 -0
  143. package/dist/news.js.map +1 -0
  144. package/dist/news.mjs +9 -0
  145. package/dist/news.mjs.map +1 -0
  146. package/dist/utilities/events/index.d.ts.map +1 -1
  147. package/dist/utilities/events/index.js +19 -0
  148. package/dist/utilities/events/index.js.map +1 -0
  149. package/dist/utilities/events/index.mjs +19 -0
  150. package/dist/utilities/events/index.mjs.map +1 -0
  151. package/dist/utilities/network/fetch.d.ts.map +1 -1
  152. package/package.json +31 -5
  153. package/dist/composite/academic/__tests__/index.test.d.ts +0 -2
  154. package/dist/composite/academic/__tests__/index.test.d.ts.map +0 -1
  155. package/dist/composite/academic/__tests__/slider.test.d.ts +0 -2
  156. package/dist/composite/academic/__tests__/slider.test.d.ts.map +0 -1
  157. package/dist/composite/events/__tests__/fetch.test.d.ts +0 -2
  158. package/dist/composite/events/__tests__/fetch.test.d.ts.map +0 -1
  159. package/dist/composite/events/__tests__/grid.test.d.ts +0 -2
  160. package/dist/composite/events/__tests__/grid.test.d.ts.map +0 -1
  161. package/dist/composite/events/__tests__/grouped.test.d.ts +0 -2
  162. package/dist/composite/events/__tests__/grouped.test.d.ts.map +0 -1
  163. package/dist/composite/events/__tests__/list.test.d.ts +0 -2
  164. package/dist/composite/events/__tests__/list.test.d.ts.map +0 -1
  165. package/dist/composite/events/__tests__/slider.test.d.ts +0 -2
  166. package/dist/composite/events/__tests__/slider.test.d.ts.map +0 -1
  167. package/dist/composite/news/__tests__/featured.test.d.ts +0 -2
  168. package/dist/composite/news/__tests__/featured.test.d.ts.map +0 -1
  169. package/dist/composite/news/__tests__/grid.test.d.ts +0 -2
  170. package/dist/composite/news/__tests__/grid.test.d.ts.map +0 -1
  171. package/dist/composite/news/__tests__/list.test.d.ts +0 -2
  172. package/dist/composite/news/__tests__/list.test.d.ts.map +0 -1
  173. package/dist/elements/__tests__/asset.test.d.ts +0 -2
  174. package/dist/elements/__tests__/asset.test.d.ts.map +0 -1
  175. package/dist/elements/__tests__/layout.test.d.ts +0 -2
  176. package/dist/elements/__tests__/layout.test.d.ts.map +0 -1
  177. package/dist/elements/__tests__/text.test.d.ts +0 -2
  178. package/dist/elements/__tests__/text.test.d.ts.map +0 -1
  179. package/dist/index.js.LICENSE.txt +0 -143
  180. package/dist/macros/__tests__/aria-live.test.d.ts +0 -2
  181. package/dist/macros/__tests__/aria-live.test.d.ts.map +0 -1
  182. package/dist/macros/__tests__/lazy-load.test.d.ts +0 -2
  183. package/dist/macros/__tests__/lazy-load.test.d.ts.map +0 -1
  184. package/dist/macros/__tests__/loader.test.d.ts +0 -2
  185. package/dist/macros/__tests__/loader.test.d.ts.map +0 -1
  186. package/dist/macros/__tests__/no-results.test.d.ts +0 -2
  187. package/dist/macros/__tests__/no-results.test.d.ts.map +0 -1
  188. package/dist/macros/__tests__/slider.test.d.ts +0 -2
  189. package/dist/macros/__tests__/slider.test.d.ts.map +0 -1
  190. package/dist/utilities/events/__tests__/events.test.d.ts +0 -2
  191. package/dist/utilities/events/__tests__/events.test.d.ts.map +0 -1
  192. package/dist/utilities/network/__tests__/fetch.test.d.ts +0 -2
  193. package/dist/utilities/network/__tests__/fetch.test.d.ts.map +0 -1
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const webElementsLibrary = require("@universityofmaryland/web-elements-library");
4
+ const ariaLive = require("../../../macros/aria-live.js");
5
+ const lazyLoad = require("../../../macros/lazy-load.js");
6
+ const loader = require("../../../macros/loader.js");
7
+ require("@universityofmaryland/web-styles-library");
8
+ require("../../../macros/slider.js");
9
+ const queries = require("./queries.js");
10
+ const data = require("./data.js");
11
+ const fetchFeed = async ({
12
+ limit,
13
+ related,
14
+ offset,
15
+ token,
16
+ query
17
+ }) => {
18
+ if (!token) throw new Error("Token not found");
19
+ const variables = {
20
+ startDate: (/* @__PURE__ */ new Date()).toDateString(),
21
+ limit,
22
+ related,
23
+ offset
24
+ };
25
+ return await webElementsLibrary.Utilities.network.FetchGraphQL({
26
+ query,
27
+ url: "https://calendar.umd.edu/graphql",
28
+ token,
29
+ variables
30
+ });
31
+ };
32
+ const getCount = async ({ variables }) => {
33
+ const feedData = await fetchFeed({
34
+ ...variables,
35
+ query: queries.EVENTS_COUNT_QUERY
36
+ });
37
+ if (!feedData || !feedData.data || feedData.message) {
38
+ if (feedData.message) console.error(feedData.message);
39
+ return null;
40
+ }
41
+ return feedData?.data?.count?.events?.length || 0;
42
+ };
43
+ const getEntries = async ({
44
+ variables
45
+ }) => {
46
+ const feedData = await fetchFeed({ ...variables, query: queries.EVENTS_QUERY });
47
+ const graceFail = ({ message }) => {
48
+ throw new Error(message);
49
+ };
50
+ if (!feedData || !feedData.data || !feedData.data.entries || feedData.message) {
51
+ if (!feedData) graceFail({ message: "Feed not found" });
52
+ if (!feedData.data) graceFail({ message: "Feed data not found" });
53
+ if (!feedData.data.entries)
54
+ graceFail({ message: "Feed entries not found" });
55
+ if (!feedData.data.entries.events)
56
+ graceFail({ message: "Feed events not found" });
57
+ if (!feedData.message)
58
+ graceFail({ message: `Feed data errors: ${feedData.message}` });
59
+ }
60
+ return feedData.data.entries.events;
61
+ };
62
+ const load = async (props) => {
63
+ const { getContainer, getOffset, displayResults, getTotalEntries } = props;
64
+ const container = getContainer();
65
+ const currentCount = getOffset();
66
+ const totalEntries = getTotalEntries();
67
+ lazyLoad.remove({ container });
68
+ loader.display({ container });
69
+ getEntries({
70
+ variables: data.apiVariables(props)
71
+ }).then((feedData) => {
72
+ displayResults({ feedData });
73
+ ariaLive.update({
74
+ container,
75
+ message: `Showing ${currentCount + feedData.length} of ${totalEntries} articles`
76
+ });
77
+ });
78
+ };
79
+ const start = async (props) => {
80
+ const { displayNoResults, displayResultStart, setTotalEntries } = props;
81
+ await getCount({
82
+ variables: data.apiVariables(props)
83
+ }).then((count) => {
84
+ if (count === 0) {
85
+ displayNoResults({ ...props });
86
+ return;
87
+ }
88
+ if (count) {
89
+ setTotalEntries(count);
90
+ }
91
+ if (count === null) {
92
+ displayNoResults({
93
+ ...props,
94
+ message: "An error occurred while fetching the data."
95
+ });
96
+ return;
97
+ }
98
+ });
99
+ getEntries({
100
+ variables: data.apiVariables(props)
101
+ }).then((feedData) => displayResultStart({ ...props, feedData }));
102
+ };
103
+ exports.load = load;
104
+ exports.start = start;
105
+ //# sourceMappingURL=fetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.js","sources":["../../../../source/composite/events/common/fetch.ts"],"sourcesContent":["import { Utilities } from '@universityofmaryland/web-elements-library';\nimport * as feedMacros from 'macros';\nimport { EVENTS_COUNT_QUERY, EVENTS_QUERY } from './queries';\nimport * as dataComposed from './data';\nimport {\n NoResultsProps,\n DisplayStartProps,\n DisplayStartResultsProps,\n DisplayProps,\n} from '../_types';\n\ninterface LoadMoreProps extends DisplayProps {}\n\ninterface CreateProps extends DisplayStartProps {\n displayResultStart: (props: DisplayStartResultsProps) => void;\n displayNoResults: (props: NoResultsProps) => void;\n}\n\nexport const ID_GRID_LAYOUT_CONTAINER = 'umd-grid-gap-layout-container';\n\ntype TypeFetchVariables = {\n startDate?: string;\n related?: string[];\n limit?: number;\n offset?: number;\n};\n\nexport type TypeAPIFeedVariables = TypeFetchVariables & {\n token: string | null;\n};\n\ntype TypeFetchObject = TypeAPIFeedVariables & {\n query: string;\n};\n\nconst fetchFeed = async ({\n limit,\n related,\n offset,\n token,\n query,\n}: TypeFetchObject) => {\n if (!token) throw new Error('Token not found');\n\n const variables: TypeFetchVariables = {\n startDate: new Date().toDateString(),\n limit,\n related,\n offset,\n };\n\n return await Utilities.network.FetchGraphQL({\n query,\n url: 'https://calendar.umd.edu/graphql',\n token: token,\n variables,\n });\n};\n\nconst getCount = async ({ variables }: { variables: TypeAPIFeedVariables }) => {\n const feedData = await fetchFeed({\n ...variables,\n query: EVENTS_COUNT_QUERY,\n });\n\n if (!feedData || !feedData.data || feedData.message) {\n if (feedData.message) console.error(feedData.message);\n return null;\n }\n\n return feedData?.data?.count?.events?.length || 0;\n};\n\nconst getEntries = async ({\n variables,\n}: {\n variables: TypeAPIFeedVariables;\n}) => {\n const feedData = await fetchFeed({ ...variables, query: EVENTS_QUERY });\n const graceFail = ({ message }: { message: string }) => {\n throw new Error(message);\n };\n\n if (\n !feedData ||\n !feedData.data ||\n !feedData.data.entries ||\n feedData.message\n ) {\n if (!feedData) graceFail({ message: 'Feed not found' });\n if (!feedData.data) graceFail({ message: 'Feed data not found' });\n if (!feedData.data.entries)\n graceFail({ message: 'Feed entries not found' });\n if (!feedData.data.entries.events)\n graceFail({ message: 'Feed events not found' });\n if (!feedData.message)\n graceFail({ message: `Feed data errors: ${feedData.message}` });\n }\n\n return feedData.data.entries.events;\n};\n\nexport const load = async (props: LoadMoreProps) => {\n const { getContainer, getOffset, displayResults, getTotalEntries } = props;\n const container = getContainer();\n const currentCount = getOffset();\n const totalEntries = getTotalEntries();\n\n feedMacros.buttonLazyLoad.remove({ container });\n feedMacros.loader.display({ container });\n\n getEntries({\n variables: dataComposed.apiVariables(props),\n }).then((feedData) => {\n displayResults({ feedData });\n\n feedMacros.ariaLive.update({\n container,\n message: `Showing ${\n currentCount + feedData.length\n } of ${totalEntries} articles`,\n });\n });\n};\n\nexport const start = async (props: CreateProps) => {\n const { displayNoResults, displayResultStart, setTotalEntries } = props;\n\n await getCount({\n variables: dataComposed.apiVariables(props),\n }).then((count) => {\n if (count === 0) {\n displayNoResults({ ...props });\n return;\n }\n\n if (count) {\n setTotalEntries(count);\n }\n\n if (count === null) {\n displayNoResults({\n ...props,\n message: 'An error occurred while fetching the data.',\n });\n return;\n }\n });\n\n getEntries({\n variables: dataComposed.apiVariables(props),\n }).then((feedData) => displayResultStart({ ...props, feedData }));\n};\n"],"names":["Utilities","EVENTS_COUNT_QUERY","EVENTS_QUERY","feedMacros.buttonLazyLoad","feedMacros.loader","dataComposed.apiVariables","feedMacros.ariaLive"],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ import { Utilities } from "@universityofmaryland/web-elements-library";
2
+ import ariaLive from "../../../macros/aria-live.mjs";
3
+ import lazyLoad from "../../../macros/lazy-load.mjs";
4
+ import loader from "../../../macros/loader.mjs";
5
+ import "@universityofmaryland/web-styles-library";
6
+ import "../../../macros/slider.mjs";
7
+ import { EVENTS_COUNT_QUERY, EVENTS_QUERY } from "./queries.mjs";
8
+ import { apiVariables } from "./data.mjs";
9
+ const fetchFeed = async ({
10
+ limit,
11
+ related,
12
+ offset,
13
+ token,
14
+ query
15
+ }) => {
16
+ if (!token) throw new Error("Token not found");
17
+ const variables = {
18
+ startDate: (/* @__PURE__ */ new Date()).toDateString(),
19
+ limit,
20
+ related,
21
+ offset
22
+ };
23
+ return await Utilities.network.FetchGraphQL({
24
+ query,
25
+ url: "https://calendar.umd.edu/graphql",
26
+ token,
27
+ variables
28
+ });
29
+ };
30
+ const getCount = async ({ variables }) => {
31
+ const feedData = await fetchFeed({
32
+ ...variables,
33
+ query: EVENTS_COUNT_QUERY
34
+ });
35
+ if (!feedData || !feedData.data || feedData.message) {
36
+ if (feedData.message) console.error(feedData.message);
37
+ return null;
38
+ }
39
+ return feedData?.data?.count?.events?.length || 0;
40
+ };
41
+ const getEntries = async ({
42
+ variables
43
+ }) => {
44
+ const feedData = await fetchFeed({ ...variables, query: EVENTS_QUERY });
45
+ const graceFail = ({ message }) => {
46
+ throw new Error(message);
47
+ };
48
+ if (!feedData || !feedData.data || !feedData.data.entries || feedData.message) {
49
+ if (!feedData) graceFail({ message: "Feed not found" });
50
+ if (!feedData.data) graceFail({ message: "Feed data not found" });
51
+ if (!feedData.data.entries)
52
+ graceFail({ message: "Feed entries not found" });
53
+ if (!feedData.data.entries.events)
54
+ graceFail({ message: "Feed events not found" });
55
+ if (!feedData.message)
56
+ graceFail({ message: `Feed data errors: ${feedData.message}` });
57
+ }
58
+ return feedData.data.entries.events;
59
+ };
60
+ const load = async (props) => {
61
+ const { getContainer, getOffset, displayResults, getTotalEntries } = props;
62
+ const container = getContainer();
63
+ const currentCount = getOffset();
64
+ const totalEntries = getTotalEntries();
65
+ lazyLoad.remove({ container });
66
+ loader.display({ container });
67
+ getEntries({
68
+ variables: apiVariables(props)
69
+ }).then((feedData) => {
70
+ displayResults({ feedData });
71
+ ariaLive.update({
72
+ container,
73
+ message: `Showing ${currentCount + feedData.length} of ${totalEntries} articles`
74
+ });
75
+ });
76
+ };
77
+ const start = async (props) => {
78
+ const { displayNoResults, displayResultStart, setTotalEntries } = props;
79
+ await getCount({
80
+ variables: apiVariables(props)
81
+ }).then((count) => {
82
+ if (count === 0) {
83
+ displayNoResults({ ...props });
84
+ return;
85
+ }
86
+ if (count) {
87
+ setTotalEntries(count);
88
+ }
89
+ if (count === null) {
90
+ displayNoResults({
91
+ ...props,
92
+ message: "An error occurred while fetching the data."
93
+ });
94
+ return;
95
+ }
96
+ });
97
+ getEntries({
98
+ variables: apiVariables(props)
99
+ }).then((feedData) => displayResultStart({ ...props, feedData }));
100
+ };
101
+ export {
102
+ load,
103
+ start
104
+ };
105
+ //# sourceMappingURL=fetch.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.mjs","sources":["../../../../source/composite/events/common/fetch.ts"],"sourcesContent":["import { Utilities } from '@universityofmaryland/web-elements-library';\nimport * as feedMacros from 'macros';\nimport { EVENTS_COUNT_QUERY, EVENTS_QUERY } from './queries';\nimport * as dataComposed from './data';\nimport {\n NoResultsProps,\n DisplayStartProps,\n DisplayStartResultsProps,\n DisplayProps,\n} from '../_types';\n\ninterface LoadMoreProps extends DisplayProps {}\n\ninterface CreateProps extends DisplayStartProps {\n displayResultStart: (props: DisplayStartResultsProps) => void;\n displayNoResults: (props: NoResultsProps) => void;\n}\n\nexport const ID_GRID_LAYOUT_CONTAINER = 'umd-grid-gap-layout-container';\n\ntype TypeFetchVariables = {\n startDate?: string;\n related?: string[];\n limit?: number;\n offset?: number;\n};\n\nexport type TypeAPIFeedVariables = TypeFetchVariables & {\n token: string | null;\n};\n\ntype TypeFetchObject = TypeAPIFeedVariables & {\n query: string;\n};\n\nconst fetchFeed = async ({\n limit,\n related,\n offset,\n token,\n query,\n}: TypeFetchObject) => {\n if (!token) throw new Error('Token not found');\n\n const variables: TypeFetchVariables = {\n startDate: new Date().toDateString(),\n limit,\n related,\n offset,\n };\n\n return await Utilities.network.FetchGraphQL({\n query,\n url: 'https://calendar.umd.edu/graphql',\n token: token,\n variables,\n });\n};\n\nconst getCount = async ({ variables }: { variables: TypeAPIFeedVariables }) => {\n const feedData = await fetchFeed({\n ...variables,\n query: EVENTS_COUNT_QUERY,\n });\n\n if (!feedData || !feedData.data || feedData.message) {\n if (feedData.message) console.error(feedData.message);\n return null;\n }\n\n return feedData?.data?.count?.events?.length || 0;\n};\n\nconst getEntries = async ({\n variables,\n}: {\n variables: TypeAPIFeedVariables;\n}) => {\n const feedData = await fetchFeed({ ...variables, query: EVENTS_QUERY });\n const graceFail = ({ message }: { message: string }) => {\n throw new Error(message);\n };\n\n if (\n !feedData ||\n !feedData.data ||\n !feedData.data.entries ||\n feedData.message\n ) {\n if (!feedData) graceFail({ message: 'Feed not found' });\n if (!feedData.data) graceFail({ message: 'Feed data not found' });\n if (!feedData.data.entries)\n graceFail({ message: 'Feed entries not found' });\n if (!feedData.data.entries.events)\n graceFail({ message: 'Feed events not found' });\n if (!feedData.message)\n graceFail({ message: `Feed data errors: ${feedData.message}` });\n }\n\n return feedData.data.entries.events;\n};\n\nexport const load = async (props: LoadMoreProps) => {\n const { getContainer, getOffset, displayResults, getTotalEntries } = props;\n const container = getContainer();\n const currentCount = getOffset();\n const totalEntries = getTotalEntries();\n\n feedMacros.buttonLazyLoad.remove({ container });\n feedMacros.loader.display({ container });\n\n getEntries({\n variables: dataComposed.apiVariables(props),\n }).then((feedData) => {\n displayResults({ feedData });\n\n feedMacros.ariaLive.update({\n container,\n message: `Showing ${\n currentCount + feedData.length\n } of ${totalEntries} articles`,\n });\n });\n};\n\nexport const start = async (props: CreateProps) => {\n const { displayNoResults, displayResultStart, setTotalEntries } = props;\n\n await getCount({\n variables: dataComposed.apiVariables(props),\n }).then((count) => {\n if (count === 0) {\n displayNoResults({ ...props });\n return;\n }\n\n if (count) {\n setTotalEntries(count);\n }\n\n if (count === null) {\n displayNoResults({\n ...props,\n message: 'An error occurred while fetching the data.',\n });\n return;\n }\n });\n\n getEntries({\n variables: dataComposed.apiVariables(props),\n }).then((feedData) => displayResultStart({ ...props, feedData }));\n};\n"],"names":["feedMacros.buttonLazyLoad","feedMacros.loader","dataComposed.apiVariables","feedMacros.ariaLive"],"mappings":";;;;;;;;AAmCA,MAAM,YAAY,OAAO;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAuB;AACrB,MAAI,CAAC,MAAO,OAAM,IAAI,MAAM,iBAAiB;AAE7C,QAAM,YAAgC;AAAA,IACpC,YAAW,oBAAI,KAAA,GAAO,aAAA;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAGF,SAAO,MAAM,UAAU,QAAQ,aAAa;AAAA,IAC1C;AAAA,IACA,KAAK;AAAA,IACL;AAAA,IACA;AAAA,EAAA,CACD;AACH;AAEA,MAAM,WAAW,OAAO,EAAE,gBAAqD;AAC7E,QAAM,WAAW,MAAM,UAAU;AAAA,IAC/B,GAAG;AAAA,IACH,OAAO;AAAA,EAAA,CACR;AAED,MAAI,CAAC,YAAY,CAAC,SAAS,QAAQ,SAAS,SAAS;AACnD,QAAI,SAAS,QAAS,SAAQ,MAAM,SAAS,OAAO;AACpD,WAAO;AAAA,EACT;AAEA,SAAO,UAAU,MAAM,OAAO,QAAQ,UAAU;AAClD;AAEA,MAAM,aAAa,OAAO;AAAA,EACxB;AACF,MAEM;AACJ,QAAM,WAAW,MAAM,UAAU,EAAE,GAAG,WAAW,OAAO,cAAc;AACtE,QAAM,YAAY,CAAC,EAAE,cAAmC;AACtD,UAAM,IAAI,MAAM,OAAO;AAAA,EACzB;AAEA,MACE,CAAC,YACD,CAAC,SAAS,QACV,CAAC,SAAS,KAAK,WACf,SAAS,SACT;AACA,QAAI,CAAC,SAAU,WAAU,EAAE,SAAS,kBAAkB;AACtD,QAAI,CAAC,SAAS,gBAAgB,EAAE,SAAS,uBAAuB;AAChE,QAAI,CAAC,SAAS,KAAK;AACjB,gBAAU,EAAE,SAAS,0BAA0B;AACjD,QAAI,CAAC,SAAS,KAAK,QAAQ;AACzB,gBAAU,EAAE,SAAS,yBAAyB;AAChD,QAAI,CAAC,SAAS;AACZ,gBAAU,EAAE,SAAS,qBAAqB,SAAS,OAAO,IAAI;AAAA,EAClE;AAEA,SAAO,SAAS,KAAK,QAAQ;AAC/B;AAEO,MAAM,OAAO,OAAO,UAAyB;AAClD,QAAM,EAAE,cAAc,WAAW,gBAAgB,oBAAoB;AACrE,QAAM,YAAY,aAAA;AAClB,QAAM,eAAe,UAAA;AACrB,QAAM,eAAe,gBAAA;AAErBA,WAA0B,OAAO,EAAE,WAAW;AAC9CC,SAAkB,QAAQ,EAAE,WAAW;AAEvC,aAAW;AAAA,IACT,WAAWC,aAA0B,KAAK;AAAA,EAAA,CAC3C,EAAE,KAAK,CAAC,aAAa;AACpB,mBAAe,EAAE,UAAU;AAE3BC,aAAoB,OAAO;AAAA,MACzB;AAAA,MACA,SAAS,WACP,eAAe,SAAS,MAC1B,OAAO,YAAY;AAAA,IAAA,CACpB;AAAA,EACH,CAAC;AACH;AAEO,MAAM,QAAQ,OAAO,UAAuB;AACjD,QAAM,EAAE,kBAAkB,oBAAoB,gBAAA,IAAoB;AAElE,QAAM,SAAS;AAAA,IACb,WAAWD,aAA0B,KAAK;AAAA,EAAA,CAC3C,EAAE,KAAK,CAAC,UAAU;AACjB,QAAI,UAAU,GAAG;AACf,uBAAiB,EAAE,GAAG,OAAO;AAC7B;AAAA,IACF;AAEA,QAAI,OAAO;AACT,sBAAgB,KAAK;AAAA,IACvB;AAEA,QAAI,UAAU,MAAM;AAClB,uBAAiB;AAAA,QACf,GAAG;AAAA,QACH,SAAS;AAAA,MAAA,CACV;AACD;AAAA,IACF;AAAA,EACF,CAAC;AAED,aAAW;AAAA,IACT,WAAWA,aAA0B,KAAK;AAAA,EAAA,CAC3C,EAAE,KAAK,CAAC,aAAa,mBAAmB,EAAE,GAAG,OAAO,SAAA,CAAU,CAAC;AAClE;"}
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const EVENTS_COUNT_QUERY = `
4
+ query getEventsCount($startDate: String!, $related: [QueryArgument]) {
5
+ count: solspace_calendar {
6
+ events(relatedTo: $related, loadOccurrences: true, startsAfterOrAt: $startDate) {
7
+ ... on communications_Event {
8
+ id
9
+ }
10
+ ... on submission_Event {
11
+ id
12
+ }
13
+ }
14
+ }
15
+ }
16
+ `;
17
+ const EVENTS_QUERY = `
18
+ query getEvents($startDate: String!, $related: [QueryArgument], $limit: Int, $offset: Int) {
19
+ entries: solspace_calendar {
20
+ events(
21
+ relatedTo: $related
22
+ loadOccurrences: true
23
+ startsAfterOrAt: $startDate
24
+ limit: $limit
25
+ offset: $offset
26
+ ) {
27
+ ... on communications_Event {
28
+ id
29
+ title
30
+ url
31
+ startDayOfWeek: startDate @formatDateTime(format: "D")
32
+ startMonth: startDate @formatDateTime(format: "M")
33
+ startDay: startDate @formatDateTime(format: "d")
34
+ startStamp: startDate @formatDateTime(format: "Y-m-d")
35
+ startTime: startDate @formatDateTime(format: "g:ia")
36
+ endDayOfWeek: endDate @formatDateTime(format: "D")
37
+ endMonth: endDate @formatDateTime(format: "M")
38
+ endDay: endDate @formatDateTime(format: "d")
39
+ endTime: endDate @formatDateTime(format: "g:ia")
40
+ allDay
41
+ desciption: commonRichText
42
+ summary: commonRichTextTwo
43
+ image: commonAssetHeroImageSingle {
44
+ title
45
+ commonPlainTextTwo: alt
46
+ url
47
+ }
48
+ location: categoriesCampusBuildingSingle {
49
+ title
50
+ }
51
+ link: commonEntriesLinkSingle {
52
+ ... on links_links_Entry {
53
+ type: linksDropdownSelector
54
+ externalUrl: commonPlainTextThree
55
+ altTitle: commonPlainTextTwo
56
+ title
57
+ internalLinks: calendarEntriesEvent {
58
+ id
59
+ url
60
+ }
61
+ }
62
+ }
63
+ }
64
+ ... on submission_Event {
65
+ id
66
+ title
67
+ url
68
+ startDayOfWeek: startDate @formatDateTime(format: "D")
69
+ startMonth: startDate @formatDateTime(format: "M")
70
+ startDay: startDate @formatDateTime(format: "d")
71
+ startStamp: startDate @formatDateTime(format: "Y-m-d")
72
+ startTime: startDate @formatDateTime(format: "g:ia")
73
+ endDayOfWeek: endDate @formatDateTime(format: "D")
74
+ endMonth: endDate @formatDateTime(format: "M")
75
+ endDay: endDate @formatDateTime(format: "d")
76
+ endTime: endDate @formatDateTime(format: "g:ia")
77
+ allDay
78
+ desciption: commonRichText
79
+ summary: commonRichTextTwo
80
+ image: commonAssetHeroImageSingle {
81
+ title
82
+ commonPlainTextTwo: alt
83
+ url
84
+ }
85
+ location: categoriesCampusBuildingSingle {
86
+ title
87
+ }
88
+ link: commonEntriesLinkSingle {
89
+ ... on links_links_Entry {
90
+ type: linksDropdownSelector
91
+ externalUrl: commonPlainTextThree
92
+ altTitle: commonPlainTextTwo
93
+ title
94
+ internalLinks: calendarEntriesEvent {
95
+ id
96
+ url
97
+ }
98
+ }
99
+ }
100
+ }
101
+ }
102
+ }
103
+ }
104
+ `;
105
+ exports.EVENTS_COUNT_QUERY = EVENTS_COUNT_QUERY;
106
+ exports.EVENTS_QUERY = EVENTS_QUERY;
107
+ //# sourceMappingURL=queries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries.js","sources":["../../../../source/composite/events/common/queries.ts"],"sourcesContent":["export const EVENTS_COUNT_QUERY = `\nquery getEventsCount($startDate: String!, $related: [QueryArgument]) {\n count: solspace_calendar {\n events(relatedTo: $related, loadOccurrences: true, startsAfterOrAt: $startDate) {\n ... on communications_Event {\n id\n }\n ... on submission_Event {\n id\n }\n }\n }\n}\n`;\n\nexport const EVENTS_QUERY = `\nquery getEvents($startDate: String!, $related: [QueryArgument], $limit: Int, $offset: Int) {\n entries: solspace_calendar {\n events(\n relatedTo: $related\n loadOccurrences: true\n startsAfterOrAt: $startDate\n limit: $limit\n offset: $offset\n ) {\n ... on communications_Event {\n id\n title\n url\n startDayOfWeek: startDate @formatDateTime(format: \"D\")\n startMonth: startDate @formatDateTime(format: \"M\")\n startDay: startDate @formatDateTime(format: \"d\")\n startStamp: startDate @formatDateTime(format: \"Y-m-d\")\n startTime: startDate @formatDateTime(format: \"g:ia\")\n endDayOfWeek: endDate @formatDateTime(format: \"D\")\n endMonth: endDate @formatDateTime(format: \"M\")\n endDay: endDate @formatDateTime(format: \"d\")\n endTime: endDate @formatDateTime(format: \"g:ia\")\n allDay\n desciption: commonRichText\n summary: commonRichTextTwo\n image: commonAssetHeroImageSingle {\n title\n commonPlainTextTwo: alt\n url\n }\n location: categoriesCampusBuildingSingle {\n title\n }\n link: commonEntriesLinkSingle {\n ... on links_links_Entry {\n type: linksDropdownSelector\n externalUrl: commonPlainTextThree\n altTitle: commonPlainTextTwo\n title\n internalLinks: calendarEntriesEvent {\n id\n url\n }\n }\n }\n }\n ... on submission_Event {\n id\n title\n url\n startDayOfWeek: startDate @formatDateTime(format: \"D\")\n startMonth: startDate @formatDateTime(format: \"M\")\n startDay: startDate @formatDateTime(format: \"d\")\n startStamp: startDate @formatDateTime(format: \"Y-m-d\")\n startTime: startDate @formatDateTime(format: \"g:ia\")\n endDayOfWeek: endDate @formatDateTime(format: \"D\")\n endMonth: endDate @formatDateTime(format: \"M\")\n endDay: endDate @formatDateTime(format: \"d\")\n endTime: endDate @formatDateTime(format: \"g:ia\")\n allDay\n desciption: commonRichText\n summary: commonRichTextTwo\n image: commonAssetHeroImageSingle {\n title\n commonPlainTextTwo: alt\n url\n }\n location: categoriesCampusBuildingSingle {\n title\n }\n link: commonEntriesLinkSingle {\n ... on links_links_Entry {\n type: linksDropdownSelector\n externalUrl: commonPlainTextThree\n altTitle: commonPlainTextTwo\n title\n internalLinks: calendarEntriesEvent {\n id\n url\n }\n }\n }\n }\n }\n }\n}\n`;\n"],"names":[],"mappings":";;AAAO,MAAM,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAe3B,MAAM,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;"}
@@ -0,0 +1,107 @@
1
+ const EVENTS_COUNT_QUERY = `
2
+ query getEventsCount($startDate: String!, $related: [QueryArgument]) {
3
+ count: solspace_calendar {
4
+ events(relatedTo: $related, loadOccurrences: true, startsAfterOrAt: $startDate) {
5
+ ... on communications_Event {
6
+ id
7
+ }
8
+ ... on submission_Event {
9
+ id
10
+ }
11
+ }
12
+ }
13
+ }
14
+ `;
15
+ const EVENTS_QUERY = `
16
+ query getEvents($startDate: String!, $related: [QueryArgument], $limit: Int, $offset: Int) {
17
+ entries: solspace_calendar {
18
+ events(
19
+ relatedTo: $related
20
+ loadOccurrences: true
21
+ startsAfterOrAt: $startDate
22
+ limit: $limit
23
+ offset: $offset
24
+ ) {
25
+ ... on communications_Event {
26
+ id
27
+ title
28
+ url
29
+ startDayOfWeek: startDate @formatDateTime(format: "D")
30
+ startMonth: startDate @formatDateTime(format: "M")
31
+ startDay: startDate @formatDateTime(format: "d")
32
+ startStamp: startDate @formatDateTime(format: "Y-m-d")
33
+ startTime: startDate @formatDateTime(format: "g:ia")
34
+ endDayOfWeek: endDate @formatDateTime(format: "D")
35
+ endMonth: endDate @formatDateTime(format: "M")
36
+ endDay: endDate @formatDateTime(format: "d")
37
+ endTime: endDate @formatDateTime(format: "g:ia")
38
+ allDay
39
+ desciption: commonRichText
40
+ summary: commonRichTextTwo
41
+ image: commonAssetHeroImageSingle {
42
+ title
43
+ commonPlainTextTwo: alt
44
+ url
45
+ }
46
+ location: categoriesCampusBuildingSingle {
47
+ title
48
+ }
49
+ link: commonEntriesLinkSingle {
50
+ ... on links_links_Entry {
51
+ type: linksDropdownSelector
52
+ externalUrl: commonPlainTextThree
53
+ altTitle: commonPlainTextTwo
54
+ title
55
+ internalLinks: calendarEntriesEvent {
56
+ id
57
+ url
58
+ }
59
+ }
60
+ }
61
+ }
62
+ ... on submission_Event {
63
+ id
64
+ title
65
+ url
66
+ startDayOfWeek: startDate @formatDateTime(format: "D")
67
+ startMonth: startDate @formatDateTime(format: "M")
68
+ startDay: startDate @formatDateTime(format: "d")
69
+ startStamp: startDate @formatDateTime(format: "Y-m-d")
70
+ startTime: startDate @formatDateTime(format: "g:ia")
71
+ endDayOfWeek: endDate @formatDateTime(format: "D")
72
+ endMonth: endDate @formatDateTime(format: "M")
73
+ endDay: endDate @formatDateTime(format: "d")
74
+ endTime: endDate @formatDateTime(format: "g:ia")
75
+ allDay
76
+ desciption: commonRichText
77
+ summary: commonRichTextTwo
78
+ image: commonAssetHeroImageSingle {
79
+ title
80
+ commonPlainTextTwo: alt
81
+ url
82
+ }
83
+ location: categoriesCampusBuildingSingle {
84
+ title
85
+ }
86
+ link: commonEntriesLinkSingle {
87
+ ... on links_links_Entry {
88
+ type: linksDropdownSelector
89
+ externalUrl: commonPlainTextThree
90
+ altTitle: commonPlainTextTwo
91
+ title
92
+ internalLinks: calendarEntriesEvent {
93
+ id
94
+ url
95
+ }
96
+ }
97
+ }
98
+ }
99
+ }
100
+ }
101
+ }
102
+ `;
103
+ export {
104
+ EVENTS_COUNT_QUERY,
105
+ EVENTS_QUERY
106
+ };
107
+ //# sourceMappingURL=queries.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries.mjs","sources":["../../../../source/composite/events/common/queries.ts"],"sourcesContent":["export const EVENTS_COUNT_QUERY = `\nquery getEventsCount($startDate: String!, $related: [QueryArgument]) {\n count: solspace_calendar {\n events(relatedTo: $related, loadOccurrences: true, startsAfterOrAt: $startDate) {\n ... on communications_Event {\n id\n }\n ... on submission_Event {\n id\n }\n }\n }\n}\n`;\n\nexport const EVENTS_QUERY = `\nquery getEvents($startDate: String!, $related: [QueryArgument], $limit: Int, $offset: Int) {\n entries: solspace_calendar {\n events(\n relatedTo: $related\n loadOccurrences: true\n startsAfterOrAt: $startDate\n limit: $limit\n offset: $offset\n ) {\n ... on communications_Event {\n id\n title\n url\n startDayOfWeek: startDate @formatDateTime(format: \"D\")\n startMonth: startDate @formatDateTime(format: \"M\")\n startDay: startDate @formatDateTime(format: \"d\")\n startStamp: startDate @formatDateTime(format: \"Y-m-d\")\n startTime: startDate @formatDateTime(format: \"g:ia\")\n endDayOfWeek: endDate @formatDateTime(format: \"D\")\n endMonth: endDate @formatDateTime(format: \"M\")\n endDay: endDate @formatDateTime(format: \"d\")\n endTime: endDate @formatDateTime(format: \"g:ia\")\n allDay\n desciption: commonRichText\n summary: commonRichTextTwo\n image: commonAssetHeroImageSingle {\n title\n commonPlainTextTwo: alt\n url\n }\n location: categoriesCampusBuildingSingle {\n title\n }\n link: commonEntriesLinkSingle {\n ... on links_links_Entry {\n type: linksDropdownSelector\n externalUrl: commonPlainTextThree\n altTitle: commonPlainTextTwo\n title\n internalLinks: calendarEntriesEvent {\n id\n url\n }\n }\n }\n }\n ... on submission_Event {\n id\n title\n url\n startDayOfWeek: startDate @formatDateTime(format: \"D\")\n startMonth: startDate @formatDateTime(format: \"M\")\n startDay: startDate @formatDateTime(format: \"d\")\n startStamp: startDate @formatDateTime(format: \"Y-m-d\")\n startTime: startDate @formatDateTime(format: \"g:ia\")\n endDayOfWeek: endDate @formatDateTime(format: \"D\")\n endMonth: endDate @formatDateTime(format: \"M\")\n endDay: endDate @formatDateTime(format: \"d\")\n endTime: endDate @formatDateTime(format: \"g:ia\")\n allDay\n desciption: commonRichText\n summary: commonRichTextTwo\n image: commonAssetHeroImageSingle {\n title\n commonPlainTextTwo: alt\n url\n }\n location: categoriesCampusBuildingSingle {\n title\n }\n link: commonEntriesLinkSingle {\n ... on links_links_Entry {\n type: linksDropdownSelector\n externalUrl: commonPlainTextThree\n altTitle: commonPlainTextTwo\n title\n internalLinks: calendarEntriesEvent {\n id\n url\n }\n }\n }\n }\n }\n }\n}\n`;\n"],"names":[],"mappings":"AAAO,MAAM,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAe3B,MAAM,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
@@ -1,5 +1,5 @@
1
- import { type BlockProps } from './_types';
2
- import { type ElementModel } from '../../_types';
1
+ import { BlockProps } from './_types';
2
+ import { ElementModel } from '../../_types';
3
3
  declare const _default: (props: BlockProps) => ElementModel;
4
4
  export default _default;
5
5
  //# sourceMappingURL=grid.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../source/composite/events/grid.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,UAAU,EAAoB,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;gCAE1B,UAAU,KAAG,YAAY;AAAhD,wBAmFO"}
1
+ {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../source/composite/events/grid.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,UAAU,EAAoB,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;yBAEjC,OAAO,UAAU,KAAG,YAAY;AAAhD,wBAmFO"}
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ const webElementsLibrary = require("@universityofmaryland/web-elements-library");
3
+ const asset = require("../../elements/asset.js");
4
+ const layout = require("../../elements/layout.js");
5
+ require("@universityofmaryland/web-styles-library");
6
+ const loader = require("../../macros/loader.js");
7
+ require("../../macros/slider.js");
8
+ const fetch = require("./common/fetch.js");
9
+ const display = require("./common/display.js");
10
+ const data = require("./common/data.js");
11
+ const grid = (props) => (() => {
12
+ const { isThemeDark, isTransparent, numberOfColumnsToShow } = props;
13
+ const loader$1 = loader.create({ isThemeDark });
14
+ const container = document.createElement("div");
15
+ const setTotalEntries = (count) => totalEntries = count;
16
+ const setOffset = (count) => offset = offset + count;
17
+ const setStyles = (additonalStyles) => styles += additonalStyles;
18
+ const getContainer = () => container;
19
+ const getTotalEntries = () => totalEntries;
20
+ const getOffset = () => offset;
21
+ const getStyles = () => styles;
22
+ const getShadowRoot = () => shadowRoot;
23
+ let totalEntries = 0;
24
+ let offset = 0;
25
+ let styles = `
26
+ ${loader$1.styles}
27
+ `;
28
+ let shadowRoot = null;
29
+ const helperFunctions = {
30
+ setTotalEntries,
31
+ setOffset,
32
+ setStyles,
33
+ getContainer,
34
+ getOffset,
35
+ getTotalEntries,
36
+ getStyles,
37
+ getShadowRoot
38
+ };
39
+ const callback = (shadow) => {
40
+ shadowRoot = shadow;
41
+ };
42
+ const displayResults = async ({ feedData }) => {
43
+ await display.resultLoad({
44
+ ...props,
45
+ ...helperFunctions,
46
+ displayResults,
47
+ entries: feedData.map(
48
+ (entry) => webElementsLibrary.Composite.card.block({
49
+ ...data.display({ entry, isThemeDark }),
50
+ image: asset.standard({
51
+ images: entry.image,
52
+ url: entry.url
53
+ }),
54
+ isAligned: false,
55
+ isTransparent
56
+ })
57
+ )
58
+ });
59
+ if (shadowRoot) {
60
+ display.setShadowStyles({
61
+ shadowRoot,
62
+ styles
63
+ });
64
+ }
65
+ };
66
+ const layoutElement = layout.gridGap({
67
+ count: numberOfColumnsToShow
68
+ });
69
+ container.appendChild(loader$1.element);
70
+ fetch.start({
71
+ ...props,
72
+ ...helperFunctions,
73
+ displayResults,
74
+ displayResultStart: display.resultStart,
75
+ displayNoResults: display.noResults,
76
+ layoutElement,
77
+ isThemeDark
78
+ });
79
+ return {
80
+ element: container,
81
+ styles,
82
+ events: {
83
+ callback
84
+ }
85
+ };
86
+ })();
87
+ module.exports = grid;
88
+ //# sourceMappingURL=grid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid.js","sources":["../../../source/composite/events/grid.ts"],"sourcesContent":["import { Composite } from '@universityofmaryland/web-elements-library';\nimport * as feedElements from 'elements';\nimport * as feedMacros from 'macros';\nimport * as feedFetch from './common/fetch';\nimport * as feedDisplay from './common/display';\nimport * as dataComposed from './common/data';\nimport { type BlockProps, type FeedDisplay } from './_types';\nimport { type ElementModel } from '../../_types';\n\nexport default (props: BlockProps): ElementModel =>\n (() => {\n const { isThemeDark, isTransparent, numberOfColumnsToShow } = props;\n const loader = feedMacros.loader.create({ isThemeDark });\n const container = document.createElement('div');\n const setTotalEntries = (count: number) => (totalEntries = count);\n const setOffset = (count: number) => (offset = offset + count);\n const setStyles = (additonalStyles: string) => (styles += additonalStyles);\n const getContainer = () => container;\n const getTotalEntries = () => totalEntries;\n const getOffset = () => offset;\n const getStyles = () => styles;\n const getShadowRoot = () => shadowRoot;\n let totalEntries = 0;\n let offset = 0;\n let styles = `\n ${loader.styles}\n `;\n let shadowRoot: ShadowRoot | null = null;\n\n const helperFunctions = {\n setTotalEntries,\n setOffset,\n setStyles,\n getContainer,\n getOffset,\n getTotalEntries,\n getStyles,\n getShadowRoot,\n };\n\n const callback = (shadow: ShadowRoot) => {\n shadowRoot = shadow;\n };\n\n const displayResults = async ({ feedData }: FeedDisplay) => {\n await feedDisplay.resultLoad({\n ...props,\n ...helperFunctions,\n displayResults,\n entries: feedData.map((entry) =>\n Composite.card.block({\n ...dataComposed.display({ entry, isThemeDark }),\n image: feedElements.asset.standard({\n images: entry.image,\n url: entry.url,\n }),\n isAligned: false,\n isTransparent,\n }),\n ),\n });\n\n if (shadowRoot) {\n feedDisplay.setShadowStyles({\n shadowRoot,\n styles,\n });\n }\n };\n\n const layoutElement = feedElements.layout.gridGap({\n count: numberOfColumnsToShow,\n });\n container.appendChild(loader.element);\n\n feedFetch.start({\n ...props,\n ...helperFunctions,\n displayResults,\n displayResultStart: feedDisplay.resultStart,\n displayNoResults: feedDisplay.noResults,\n layoutElement,\n isThemeDark,\n });\n\n return {\n element: container,\n styles,\n events: {\n callback,\n },\n };\n })();\n"],"names":["loader","feedMacros.loader","feedDisplay.resultLoad","Composite","dataComposed.display","feedElements.asset.standard","feedDisplay.setShadowStyles","feedElements.layout.gridGap","feedFetch.start","feedDisplay.resultStart","feedDisplay.noResults"],"mappings":";;;;;;;;;;AASA,MAAA,OAAe,CAAC,WACb,MAAM;AACL,QAAM,EAAE,aAAa,eAAe,sBAAA,IAA0B;AAC9D,QAAMA,WAASC,OAAkB,OAAO,EAAE,aAAa;AACvD,QAAM,YAAY,SAAS,cAAc,KAAK;AAC9C,QAAM,kBAAkB,CAAC,UAAmB,eAAe;AAC3D,QAAM,YAAY,CAAC,UAAmB,SAAS,SAAS;AACxD,QAAM,YAAY,CAAC,oBAA6B,UAAU;AAC1D,QAAM,eAAe,MAAM;AAC3B,QAAM,kBAAkB,MAAM;AAC9B,QAAM,YAAY,MAAM;AACxB,QAAM,YAAY,MAAM;AACxB,QAAM,gBAAgB,MAAM;AAC5B,MAAI,eAAe;AACnB,MAAI,SAAS;AACb,MAAI,SAAS;AAAA,QACTD,SAAO,MAAM;AAAA;AAEjB,MAAI,aAAgC;AAEpC,QAAM,kBAAkB;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAGF,QAAM,WAAW,CAAC,WAAuB;AACvC,iBAAa;AAAA,EACf;AAEA,QAAM,iBAAiB,OAAO,EAAE,eAA4B;AAC1D,UAAME,mBAAuB;AAAA,MAC3B,GAAG;AAAA,MACH,GAAG;AAAA,MACH;AAAA,MACA,SAAS,SAAS;AAAA,QAAI,CAAC,UACrBC,mBAAAA,UAAU,KAAK,MAAM;AAAA,UACnB,GAAGC,aAAqB,EAAE,OAAO,aAAa;AAAA,UAC9C,OAAOC,MAAAA,SAA4B;AAAA,YACjC,QAAQ,MAAM;AAAA,YACd,KAAK,MAAM;AAAA,UAAA,CACZ;AAAA,UACD,WAAW;AAAA,UACX;AAAA,QAAA,CACD;AAAA,MAAA;AAAA,IACH,CACD;AAED,QAAI,YAAY;AACdC,8BAA4B;AAAA,QAC1B;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IACH;AAAA,EACF;AAEA,QAAM,gBAAgBC,OAAAA,QAA4B;AAAA,IAChD,OAAO;AAAA,EAAA,CACR;AACD,YAAU,YAAYP,SAAO,OAAO;AAEpCQ,cAAgB;AAAA,IACd,GAAG;AAAA,IACH,GAAG;AAAA,IACH;AAAA,IACA,oBAAoBC,QAAAA;AAAAA,IACpB,kBAAkBC,QAAAA;AAAAA,IAClB;AAAA,IACA;AAAA,EAAA,CACD;AAED,SAAO;AAAA,IACL,SAAS;AAAA,IACT;AAAA,IACA,QAAQ;AAAA,MACN;AAAA,IAAA;AAAA,EACF;AAEJ,GAAA;;"}