@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.
- package/README.md +1 -1
- package/dist/academic.d.ts +2 -0
- package/dist/academic.js +5 -0
- package/dist/academic.js.map +1 -0
- package/dist/academic.mjs +5 -0
- package/dist/academic.mjs.map +1 -0
- package/dist/composite/academic/slider.d.ts +2 -2
- package/dist/composite/academic/slider.d.ts.map +1 -1
- package/dist/composite/academic/slider.js +34 -0
- package/dist/composite/academic/slider.js.map +1 -0
- package/dist/composite/academic/slider.mjs +35 -0
- package/dist/composite/academic/slider.mjs.map +1 -0
- package/dist/composite/events/common/data.d.ts +1 -1
- package/dist/composite/events/common/data.d.ts.map +1 -1
- package/dist/composite/events/common/data.js +53 -0
- package/dist/composite/events/common/data.js.map +1 -0
- package/dist/composite/events/common/data.mjs +53 -0
- package/dist/composite/events/common/data.mjs.map +1 -0
- package/dist/composite/events/common/display.d.ts.map +1 -1
- package/dist/composite/events/common/display.js +144 -0
- package/dist/composite/events/common/display.js.map +1 -0
- package/dist/composite/events/common/display.mjs +127 -0
- package/dist/composite/events/common/display.mjs.map +1 -0
- package/dist/composite/events/common/fetch.d.ts.map +1 -1
- package/dist/composite/events/common/fetch.js +105 -0
- package/dist/composite/events/common/fetch.js.map +1 -0
- package/dist/composite/events/common/fetch.mjs +105 -0
- package/dist/composite/events/common/fetch.mjs.map +1 -0
- package/dist/composite/events/common/queries.js +107 -0
- package/dist/composite/events/common/queries.js.map +1 -0
- package/dist/composite/events/common/queries.mjs +107 -0
- package/dist/composite/events/common/queries.mjs.map +1 -0
- package/dist/composite/events/grid.d.ts +2 -2
- package/dist/composite/events/grid.d.ts.map +1 -1
- package/dist/composite/events/grid.js +88 -0
- package/dist/composite/events/grid.js.map +1 -0
- package/dist/composite/events/grid.mjs +89 -0
- package/dist/composite/events/grid.mjs.map +1 -0
- package/dist/composite/events/grouped.d.ts +2 -2
- package/dist/composite/events/grouped.d.ts.map +1 -1
- package/dist/composite/events/grouped.js +221 -0
- package/dist/composite/events/grouped.js.map +1 -0
- package/dist/composite/events/grouped.mjs +205 -0
- package/dist/composite/events/grouped.mjs.map +1 -0
- package/dist/composite/events/list.d.ts +2 -2
- package/dist/composite/events/list.d.ts.map +1 -1
- package/dist/composite/events/list.js +88 -0
- package/dist/composite/events/list.js.map +1 -0
- package/dist/composite/events/list.mjs +89 -0
- package/dist/composite/events/list.mjs.map +1 -0
- package/dist/composite/events/slider.d.ts +2 -2
- package/dist/composite/events/slider.d.ts.map +1 -1
- package/dist/composite/events/slider.js +35 -0
- package/dist/composite/events/slider.js.map +1 -0
- package/dist/composite/events/slider.mjs +36 -0
- package/dist/composite/events/slider.mjs.map +1 -0
- package/dist/composite/news/common/data.d.ts +1 -1
- package/dist/composite/news/common/data.d.ts.map +1 -1
- package/dist/composite/news/common/data.js +62 -0
- package/dist/composite/news/common/data.js.map +1 -0
- package/dist/composite/news/common/data.mjs +62 -0
- package/dist/composite/news/common/data.mjs.map +1 -0
- package/dist/composite/news/common/display.d.ts.map +1 -1
- package/dist/composite/news/common/display.js +145 -0
- package/dist/composite/news/common/display.js.map +1 -0
- package/dist/composite/news/common/display.mjs +128 -0
- package/dist/composite/news/common/display.mjs.map +1 -0
- package/dist/composite/news/common/fetch.d.ts.map +1 -1
- package/dist/composite/news/common/fetch.js +85 -0
- package/dist/composite/news/common/fetch.js.map +1 -0
- package/dist/composite/news/common/fetch.mjs +85 -0
- package/dist/composite/news/common/fetch.mjs.map +1 -0
- package/dist/composite/news/common/queries.js +37 -0
- package/dist/composite/news/common/queries.js.map +1 -0
- package/dist/composite/news/common/queries.mjs +37 -0
- package/dist/composite/news/common/queries.mjs.map +1 -0
- package/dist/composite/news/featured.d.ts +2 -2
- package/dist/composite/news/featured.d.ts.map +1 -1
- package/dist/composite/news/featured.js +180 -0
- package/dist/composite/news/featured.js.map +1 -0
- package/dist/composite/news/featured.mjs +181 -0
- package/dist/composite/news/featured.mjs.map +1 -0
- package/dist/composite/news/grid.d.ts +2 -2
- package/dist/composite/news/grid.d.ts.map +1 -1
- package/dist/composite/news/grid.js +96 -0
- package/dist/composite/news/grid.js.map +1 -0
- package/dist/composite/news/grid.mjs +97 -0
- package/dist/composite/news/grid.mjs.map +1 -0
- package/dist/composite/news/list.d.ts +2 -2
- package/dist/composite/news/list.d.ts.map +1 -1
- package/dist/composite/news/list.js +83 -0
- package/dist/composite/news/list.js.map +1 -0
- package/dist/composite/news/list.mjs +84 -0
- package/dist/composite/news/list.mjs.map +1 -0
- package/dist/elements/asset.d.ts.map +1 -1
- package/dist/elements/asset.js +27 -0
- package/dist/elements/asset.js.map +1 -0
- package/dist/elements/asset.mjs +27 -0
- package/dist/elements/asset.mjs.map +1 -0
- package/dist/elements/layout.d.ts.map +1 -1
- package/dist/elements/layout.js +121 -0
- package/dist/elements/layout.js.map +1 -0
- package/dist/elements/layout.mjs +104 -0
- package/dist/elements/layout.mjs.map +1 -0
- package/dist/elements/text.d.ts.map +1 -1
- package/dist/elements/text.js +41 -0
- package/dist/elements/text.js.map +1 -0
- package/dist/elements/text.mjs +41 -0
- package/dist/elements/text.mjs.map +1 -0
- package/dist/events.d.ts +2 -0
- package/dist/events.js +11 -0
- package/dist/events.js.map +1 -0
- package/dist/events.mjs +11 -0
- package/dist/events.mjs.map +1 -0
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +9 -0
- package/dist/index.mjs.map +1 -0
- package/dist/macros/aria-live.js +25 -0
- package/dist/macros/aria-live.js.map +1 -0
- package/dist/macros/aria-live.mjs +26 -0
- package/dist/macros/aria-live.mjs.map +1 -0
- package/dist/macros/lazy-load.js +63 -0
- package/dist/macros/lazy-load.js.map +1 -0
- package/dist/macros/lazy-load.mjs +47 -0
- package/dist/macros/lazy-load.mjs.map +1 -0
- package/dist/macros/loader.js +148 -0
- package/dist/macros/loader.js.map +1 -0
- package/dist/macros/loader.mjs +132 -0
- package/dist/macros/loader.mjs.map +1 -0
- package/dist/macros/no-results.d.ts.map +1 -1
- package/dist/macros/no-results.js +71 -0
- package/dist/macros/no-results.js.map +1 -0
- package/dist/macros/no-results.mjs +55 -0
- package/dist/macros/no-results.mjs.map +1 -0
- package/dist/macros/slider.d.ts.map +1 -1
- package/dist/macros/slider.js +104 -0
- package/dist/macros/slider.js.map +1 -0
- package/dist/macros/slider.mjs +88 -0
- package/dist/macros/slider.mjs.map +1 -0
- package/dist/news.d.ts +2 -0
- package/dist/news.js +9 -0
- package/dist/news.js.map +1 -0
- package/dist/news.mjs +9 -0
- package/dist/news.mjs.map +1 -0
- package/dist/utilities/events/index.d.ts.map +1 -1
- package/dist/utilities/events/index.js +19 -0
- package/dist/utilities/events/index.js.map +1 -0
- package/dist/utilities/events/index.mjs +19 -0
- package/dist/utilities/events/index.mjs.map +1 -0
- package/dist/utilities/network/fetch.d.ts.map +1 -1
- package/package.json +31 -5
- package/dist/composite/academic/__tests__/index.test.d.ts +0 -2
- package/dist/composite/academic/__tests__/index.test.d.ts.map +0 -1
- package/dist/composite/academic/__tests__/slider.test.d.ts +0 -2
- package/dist/composite/academic/__tests__/slider.test.d.ts.map +0 -1
- package/dist/composite/events/__tests__/fetch.test.d.ts +0 -2
- package/dist/composite/events/__tests__/fetch.test.d.ts.map +0 -1
- package/dist/composite/events/__tests__/grid.test.d.ts +0 -2
- package/dist/composite/events/__tests__/grid.test.d.ts.map +0 -1
- package/dist/composite/events/__tests__/grouped.test.d.ts +0 -2
- package/dist/composite/events/__tests__/grouped.test.d.ts.map +0 -1
- package/dist/composite/events/__tests__/list.test.d.ts +0 -2
- package/dist/composite/events/__tests__/list.test.d.ts.map +0 -1
- package/dist/composite/events/__tests__/slider.test.d.ts +0 -2
- package/dist/composite/events/__tests__/slider.test.d.ts.map +0 -1
- package/dist/composite/news/__tests__/featured.test.d.ts +0 -2
- package/dist/composite/news/__tests__/featured.test.d.ts.map +0 -1
- package/dist/composite/news/__tests__/grid.test.d.ts +0 -2
- package/dist/composite/news/__tests__/grid.test.d.ts.map +0 -1
- package/dist/composite/news/__tests__/list.test.d.ts +0 -2
- package/dist/composite/news/__tests__/list.test.d.ts.map +0 -1
- package/dist/elements/__tests__/asset.test.d.ts +0 -2
- package/dist/elements/__tests__/asset.test.d.ts.map +0 -1
- package/dist/elements/__tests__/layout.test.d.ts +0 -2
- package/dist/elements/__tests__/layout.test.d.ts.map +0 -1
- package/dist/elements/__tests__/text.test.d.ts +0 -2
- package/dist/elements/__tests__/text.test.d.ts.map +0 -1
- package/dist/index.js.LICENSE.txt +0 -143
- package/dist/macros/__tests__/aria-live.test.d.ts +0 -2
- package/dist/macros/__tests__/aria-live.test.d.ts.map +0 -1
- package/dist/macros/__tests__/lazy-load.test.d.ts +0 -2
- package/dist/macros/__tests__/lazy-load.test.d.ts.map +0 -1
- package/dist/macros/__tests__/loader.test.d.ts +0 -2
- package/dist/macros/__tests__/loader.test.d.ts.map +0 -1
- package/dist/macros/__tests__/no-results.test.d.ts +0 -2
- package/dist/macros/__tests__/no-results.test.d.ts.map +0 -1
- package/dist/macros/__tests__/slider.test.d.ts +0 -2
- package/dist/macros/__tests__/slider.test.d.ts.map +0 -1
- package/dist/utilities/events/__tests__/events.test.d.ts +0 -2
- package/dist/utilities/events/__tests__/events.test.d.ts.map +0 -1
- package/dist/utilities/network/__tests__/fetch.test.d.ts +0 -2
- 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":";;;;;;;;;;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,MAAMA,mBAAAA,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,OAAOC,QAAAA;AAAAA,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,OAAOC,QAAAA,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;AAErBC,WAA0B,OAAO,EAAE,WAAW;AAC9CC,SAAkB,QAAQ,EAAE,WAAW;AAEvC,aAAW;AAAA,IACT,WAAWC,KAAAA,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,KAAAA,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,KAAAA,aAA0B,KAAK;AAAA,EAAA,CAC3C,EAAE,KAAK,CAAC,aAAa,mBAAmB,EAAE,GAAG,OAAO,SAAA,CAAU,CAAC;AAClE;;;"}
|
|
@@ -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 {
|
|
2
|
-
import {
|
|
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;
|
|
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;;"}
|