@universityofmaryland/web-feeds-library 1.0.8 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +1 -1
- 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 +1 -1
- 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,89 @@
|
|
|
1
|
+
import { Composite } from "@universityofmaryland/web-elements-library";
|
|
2
|
+
import { standard } from "../../elements/asset.mjs";
|
|
3
|
+
import { gridGap } from "../../elements/layout.mjs";
|
|
4
|
+
import "@universityofmaryland/web-styles-library";
|
|
5
|
+
import loader from "../../macros/loader.mjs";
|
|
6
|
+
import "../../macros/slider.mjs";
|
|
7
|
+
import { start } from "./common/fetch.mjs";
|
|
8
|
+
import { noResults, resultStart, resultLoad, setShadowStyles } from "./common/display.mjs";
|
|
9
|
+
import { display } from "./common/data.mjs";
|
|
10
|
+
const grid = (props) => (() => {
|
|
11
|
+
const { isThemeDark, isTransparent, numberOfColumnsToShow } = props;
|
|
12
|
+
const loader$1 = loader.create({ isThemeDark });
|
|
13
|
+
const container = document.createElement("div");
|
|
14
|
+
const setTotalEntries = (count) => totalEntries = count;
|
|
15
|
+
const setOffset = (count) => offset = offset + count;
|
|
16
|
+
const setStyles = (additonalStyles) => styles += additonalStyles;
|
|
17
|
+
const getContainer = () => container;
|
|
18
|
+
const getTotalEntries = () => totalEntries;
|
|
19
|
+
const getOffset = () => offset;
|
|
20
|
+
const getStyles = () => styles;
|
|
21
|
+
const getShadowRoot = () => shadowRoot;
|
|
22
|
+
let totalEntries = 0;
|
|
23
|
+
let offset = 0;
|
|
24
|
+
let styles = `
|
|
25
|
+
${loader$1.styles}
|
|
26
|
+
`;
|
|
27
|
+
let shadowRoot = null;
|
|
28
|
+
const helperFunctions = {
|
|
29
|
+
setTotalEntries,
|
|
30
|
+
setOffset,
|
|
31
|
+
setStyles,
|
|
32
|
+
getContainer,
|
|
33
|
+
getOffset,
|
|
34
|
+
getTotalEntries,
|
|
35
|
+
getStyles,
|
|
36
|
+
getShadowRoot
|
|
37
|
+
};
|
|
38
|
+
const callback = (shadow) => {
|
|
39
|
+
shadowRoot = shadow;
|
|
40
|
+
};
|
|
41
|
+
const displayResults = async ({ feedData }) => {
|
|
42
|
+
await resultLoad({
|
|
43
|
+
...props,
|
|
44
|
+
...helperFunctions,
|
|
45
|
+
displayResults,
|
|
46
|
+
entries: feedData.map(
|
|
47
|
+
(entry) => Composite.card.block({
|
|
48
|
+
...display({ entry, isThemeDark }),
|
|
49
|
+
image: standard({
|
|
50
|
+
images: entry.image,
|
|
51
|
+
url: entry.url
|
|
52
|
+
}),
|
|
53
|
+
isAligned: false,
|
|
54
|
+
isTransparent
|
|
55
|
+
})
|
|
56
|
+
)
|
|
57
|
+
});
|
|
58
|
+
if (shadowRoot) {
|
|
59
|
+
setShadowStyles({
|
|
60
|
+
shadowRoot,
|
|
61
|
+
styles
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
const layoutElement = gridGap({
|
|
66
|
+
count: numberOfColumnsToShow
|
|
67
|
+
});
|
|
68
|
+
container.appendChild(loader$1.element);
|
|
69
|
+
start({
|
|
70
|
+
...props,
|
|
71
|
+
...helperFunctions,
|
|
72
|
+
displayResults,
|
|
73
|
+
displayResultStart: resultStart,
|
|
74
|
+
displayNoResults: noResults,
|
|
75
|
+
layoutElement,
|
|
76
|
+
isThemeDark
|
|
77
|
+
});
|
|
78
|
+
return {
|
|
79
|
+
element: container,
|
|
80
|
+
styles,
|
|
81
|
+
events: {
|
|
82
|
+
callback
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
})();
|
|
86
|
+
export {
|
|
87
|
+
grid as default
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=grid.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grid.mjs","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","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,WAAuB;AAAA,MAC3B,GAAG;AAAA,MACH,GAAG;AAAA,MACH;AAAA,MACA,SAAS,SAAS;AAAA,QAAI,CAAC,UACrB,UAAU,KAAK,MAAM;AAAA,UACnB,GAAGC,QAAqB,EAAE,OAAO,aAAa;AAAA,UAC9C,OAAOC,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,sBAA4B;AAAA,QAC1B;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IACH;AAAA,EACF;AAEA,QAAM,gBAAgBC,QAA4B;AAAA,IAChD,OAAO;AAAA,EAAA,CACR;AACD,YAAU,YAAYN,SAAO,OAAO;AAEpCO,QAAgB;AAAA,IACd,GAAG;AAAA,IACH,GAAG;AAAA,IACH;AAAA,IACA,oBAAoBC;AAAAA,IACpB,kBAAkBC;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;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { ListProps } from './_types';
|
|
2
|
+
import { ElementModel } from '../../_types';
|
|
3
3
|
declare const _default: (props: ListProps) => ElementModel;
|
|
4
4
|
export default _default;
|
|
5
5
|
//# sourceMappingURL=grouped.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grouped.d.ts","sourceRoot":"","sources":["../../../source/composite/events/grouped.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,SAAS,EAAoC,MAAM,UAAU,CAAC;AAC5E,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"grouped.d.ts","sourceRoot":"","sources":["../../../source/composite/events/grouped.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,SAAS,EAAoC,MAAM,UAAU,CAAC;AAC5E,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;yBAuGjC,OAAO,SAAS,KAAG,YAAY;AAA/C,wBA0IO"}
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const Styles = require("@universityofmaryland/web-styles-library");
|
|
3
|
+
const webElementsLibrary = require("@universityofmaryland/web-elements-library");
|
|
4
|
+
const asset = require("../../elements/asset.js");
|
|
5
|
+
const loader = require("../../macros/loader.js");
|
|
6
|
+
require("../../macros/slider.js");
|
|
7
|
+
const fetch = require("./common/fetch.js");
|
|
8
|
+
const display = require("./common/display.js");
|
|
9
|
+
const data = require("./common/data.js");
|
|
10
|
+
function _interopNamespaceDefault(e) {
|
|
11
|
+
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
|
12
|
+
if (e) {
|
|
13
|
+
for (const k in e) {
|
|
14
|
+
if (k !== "default") {
|
|
15
|
+
const d = Object.getOwnPropertyDescriptor(e, k);
|
|
16
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
get: () => e[k]
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
n.default = e;
|
|
24
|
+
return Object.freeze(n);
|
|
25
|
+
}
|
|
26
|
+
const Styles__namespace = /* @__PURE__ */ _interopNamespaceDefault(Styles);
|
|
27
|
+
const getDateBanner = (dateStamp) => {
|
|
28
|
+
const dateParts = dateStamp.split("T")[0].split("-");
|
|
29
|
+
const year = parseInt(dateParts[0], 10);
|
|
30
|
+
const month = parseInt(dateParts[1], 10) - 1;
|
|
31
|
+
const day = parseInt(dateParts[2], 10);
|
|
32
|
+
const eventDate = new Date(year, month, day);
|
|
33
|
+
const currentDate = /* @__PURE__ */ new Date();
|
|
34
|
+
currentDate.setHours(0, 0, 0, 0);
|
|
35
|
+
const weekFromNow = /* @__PURE__ */ new Date();
|
|
36
|
+
weekFromNow.setDate(currentDate.getDate() + 7);
|
|
37
|
+
weekFromNow.setHours(0, 0, 0, 0);
|
|
38
|
+
if (eventDate.getFullYear() === currentDate.getFullYear() && eventDate.getMonth() === currentDate.getMonth() && eventDate.getDate() === currentDate.getDate()) {
|
|
39
|
+
return "Today";
|
|
40
|
+
}
|
|
41
|
+
if (eventDate.getTime() > currentDate.getTime() && eventDate.getTime() <= weekFromNow.getTime()) {
|
|
42
|
+
const days2 = [
|
|
43
|
+
"Sunday",
|
|
44
|
+
"Monday",
|
|
45
|
+
"Tuesday",
|
|
46
|
+
"Wednesday",
|
|
47
|
+
"Thursday",
|
|
48
|
+
"Friday",
|
|
49
|
+
"Saturday"
|
|
50
|
+
];
|
|
51
|
+
return days2[eventDate.getDay()];
|
|
52
|
+
}
|
|
53
|
+
const days = [
|
|
54
|
+
"Sunday",
|
|
55
|
+
"Monday",
|
|
56
|
+
"Tuesday",
|
|
57
|
+
"Wednesday",
|
|
58
|
+
"Thursday",
|
|
59
|
+
"Friday",
|
|
60
|
+
"Saturday"
|
|
61
|
+
];
|
|
62
|
+
const months = [
|
|
63
|
+
"Jan",
|
|
64
|
+
"Feb",
|
|
65
|
+
"Mar",
|
|
66
|
+
"Apr",
|
|
67
|
+
"May",
|
|
68
|
+
"Jun",
|
|
69
|
+
"Jul",
|
|
70
|
+
"Aug",
|
|
71
|
+
"Sep",
|
|
72
|
+
"Oct",
|
|
73
|
+
"Nov",
|
|
74
|
+
"Dec"
|
|
75
|
+
];
|
|
76
|
+
return `${days[eventDate.getDay()]}, ${months[eventDate.getMonth()]} ${eventDate.getDate()}`;
|
|
77
|
+
};
|
|
78
|
+
const groupEventsByDate = (events) => {
|
|
79
|
+
const grouped2 = events.reduce((acc, event) => {
|
|
80
|
+
const dateKey = event.startStamp;
|
|
81
|
+
if (!acc[dateKey]) {
|
|
82
|
+
acc[dateKey] = {
|
|
83
|
+
date: getDateBanner(event.startStamp),
|
|
84
|
+
events: []
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
acc[dateKey].events.push(event);
|
|
88
|
+
return acc;
|
|
89
|
+
}, {});
|
|
90
|
+
return Object.values(grouped2).sort((a, b) => {
|
|
91
|
+
const dateA = new Date(
|
|
92
|
+
Object.keys(grouped2).find((key) => grouped2[key] === a) || ""
|
|
93
|
+
);
|
|
94
|
+
const dateB = new Date(
|
|
95
|
+
Object.keys(grouped2).find((key) => grouped2[key] === b) || ""
|
|
96
|
+
);
|
|
97
|
+
return dateA.getTime() - dateB.getTime();
|
|
98
|
+
});
|
|
99
|
+
};
|
|
100
|
+
const grouped = (props) => (() => {
|
|
101
|
+
const { isThemeDark } = props;
|
|
102
|
+
const loader$1 = loader.create({ isThemeDark });
|
|
103
|
+
const container = document.createElement("div");
|
|
104
|
+
const setTotalEntries = (count) => totalEntries = count;
|
|
105
|
+
const setOffset = (count) => offset = offset + count;
|
|
106
|
+
const setStyles = (additonalStyles) => styles += additonalStyles;
|
|
107
|
+
const getContainer = () => container;
|
|
108
|
+
const getTotalEntries = () => totalEntries;
|
|
109
|
+
const getOffset = () => offset;
|
|
110
|
+
const getStyles = () => styles;
|
|
111
|
+
const getShadowRoot = () => shadowRoot;
|
|
112
|
+
let totalEntries = 0;
|
|
113
|
+
let offset = 0;
|
|
114
|
+
let styles = `
|
|
115
|
+
${loader$1.styles}
|
|
116
|
+
`;
|
|
117
|
+
let shadowRoot = null;
|
|
118
|
+
const helperFunctions = {
|
|
119
|
+
setTotalEntries,
|
|
120
|
+
setOffset,
|
|
121
|
+
setStyles,
|
|
122
|
+
getContainer,
|
|
123
|
+
getOffset,
|
|
124
|
+
getTotalEntries,
|
|
125
|
+
getStyles,
|
|
126
|
+
getShadowRoot
|
|
127
|
+
};
|
|
128
|
+
const callback = (shadow) => {
|
|
129
|
+
shadowRoot = shadow;
|
|
130
|
+
};
|
|
131
|
+
const groupLayout = () => {
|
|
132
|
+
return webElementsLibrary.Model.ElementModel.createDiv({
|
|
133
|
+
className: "umd-feed-events-grouped",
|
|
134
|
+
elementStyles: {
|
|
135
|
+
element: {}
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
};
|
|
139
|
+
const displayResults = async ({ feedData }) => {
|
|
140
|
+
const groupedEvents = groupEventsByDate(feedData);
|
|
141
|
+
const entries = [];
|
|
142
|
+
let actualEventCount = 0;
|
|
143
|
+
groupedEvents.forEach((group) => {
|
|
144
|
+
const dateHeadline = document.createElement("p");
|
|
145
|
+
dateHeadline.textContent = group.date;
|
|
146
|
+
entries.push(
|
|
147
|
+
webElementsLibrary.Model.ElementModel.text.ribbon({
|
|
148
|
+
element: dateHeadline,
|
|
149
|
+
elementStyles: {
|
|
150
|
+
element: {
|
|
151
|
+
margin: `${Styles__namespace.token.spacing.lg} 0`
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
})
|
|
155
|
+
);
|
|
156
|
+
const dateEntries = group.events.map(
|
|
157
|
+
(entry) => webElementsLibrary.Composite.card.list({
|
|
158
|
+
...data.display({ entry, isThemeDark }),
|
|
159
|
+
dateSign: webElementsLibrary.Atomic.events.sign({
|
|
160
|
+
...entry,
|
|
161
|
+
isThemeDark,
|
|
162
|
+
isLargeSize: false
|
|
163
|
+
}),
|
|
164
|
+
image: asset.standard({
|
|
165
|
+
images: entry.image,
|
|
166
|
+
url: entry.url
|
|
167
|
+
}),
|
|
168
|
+
isAligned: false
|
|
169
|
+
})
|
|
170
|
+
);
|
|
171
|
+
actualEventCount += group.events.length;
|
|
172
|
+
entries.push(
|
|
173
|
+
webElementsLibrary.Model.ElementModel.createDiv({
|
|
174
|
+
className: "umd-feed-events-grouped-entries",
|
|
175
|
+
children: [...dateEntries],
|
|
176
|
+
elementStyles: {
|
|
177
|
+
element: {
|
|
178
|
+
[` > *:not(:last-child)`]: {
|
|
179
|
+
paddingBottom: Styles__namespace.token.spacing.lg,
|
|
180
|
+
marginBottom: Styles__namespace.token.spacing.lg
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
})
|
|
185
|
+
);
|
|
186
|
+
});
|
|
187
|
+
const originalSetOffset = helperFunctions.setOffset;
|
|
188
|
+
helperFunctions.setOffset = () => originalSetOffset(actualEventCount);
|
|
189
|
+
await display.resultLoad({
|
|
190
|
+
...props,
|
|
191
|
+
...helperFunctions,
|
|
192
|
+
displayResults,
|
|
193
|
+
entries
|
|
194
|
+
});
|
|
195
|
+
helperFunctions.setOffset = originalSetOffset;
|
|
196
|
+
if (shadowRoot) {
|
|
197
|
+
display.setShadowStyles({
|
|
198
|
+
shadowRoot,
|
|
199
|
+
styles
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
};
|
|
203
|
+
container.appendChild(loader$1.element);
|
|
204
|
+
fetch.start({
|
|
205
|
+
...props,
|
|
206
|
+
...helperFunctions,
|
|
207
|
+
displayResults,
|
|
208
|
+
displayResultStart: display.resultStart,
|
|
209
|
+
displayNoResults: display.noResults,
|
|
210
|
+
layoutElement: groupLayout()
|
|
211
|
+
});
|
|
212
|
+
return {
|
|
213
|
+
element: container,
|
|
214
|
+
styles,
|
|
215
|
+
events: {
|
|
216
|
+
callback
|
|
217
|
+
}
|
|
218
|
+
};
|
|
219
|
+
})();
|
|
220
|
+
module.exports = grouped;
|
|
221
|
+
//# sourceMappingURL=grouped.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grouped.js","sources":["../../../source/composite/events/grouped.ts"],"sourcesContent":["import * as Styles from '@universityofmaryland/web-styles-library';\nimport {\n Atomic,\n Composite,\n Model,\n} 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 ListProps, type FeedDisplay, type EventType } from './_types';\nimport { type ElementModel } from '../../_types';\n\ninterface GroupedEvent {\n date: string;\n events: EventType[];\n}\n\nconst getDateBanner = (dateStamp: string): string => {\n // Parse the date string more reliably\n // Handle both \"YYYY-MM-DD\" and ISO format strings\n const dateParts = dateStamp.split('T')[0].split('-');\n const year = parseInt(dateParts[0], 10);\n const month = parseInt(dateParts[1], 10) - 1; // Month is 0-indexed\n const day = parseInt(dateParts[2], 10);\n\n // Create dates using local timezone to avoid timezone shifts\n const eventDate = new Date(year, month, day);\n const currentDate = new Date();\n currentDate.setHours(0, 0, 0, 0);\n\n const weekFromNow = new Date();\n weekFromNow.setDate(currentDate.getDate() + 7);\n weekFromNow.setHours(0, 0, 0, 0);\n\n // Check if it's today\n if (\n eventDate.getFullYear() === currentDate.getFullYear() &&\n eventDate.getMonth() === currentDate.getMonth() &&\n eventDate.getDate() === currentDate.getDate()\n ) {\n return 'Today';\n }\n\n // Check if it's within the next 7 days\n if (\n eventDate.getTime() > currentDate.getTime() &&\n eventDate.getTime() <= weekFromNow.getTime()\n ) {\n const days = [\n 'Sunday',\n 'Monday',\n 'Tuesday',\n 'Wednesday',\n 'Thursday',\n 'Friday',\n 'Saturday',\n ];\n return days[eventDate.getDay()];\n }\n\n // Otherwise return day of week, month and day\n const days = [\n 'Sunday',\n 'Monday',\n 'Tuesday',\n 'Wednesday',\n 'Thursday',\n 'Friday',\n 'Saturday',\n ];\n const months = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec',\n ];\n return `${days[eventDate.getDay()]}, ${\n months[eventDate.getMonth()]\n } ${eventDate.getDate()}`;\n};\n\nconst groupEventsByDate = (events: EventType[]): GroupedEvent[] => {\n const grouped = events.reduce((acc, event) => {\n const dateKey = event.startStamp;\n if (!acc[dateKey]) {\n acc[dateKey] = {\n date: getDateBanner(event.startStamp),\n events: [],\n };\n }\n acc[dateKey].events.push(event);\n return acc;\n }, {} as Record<string, GroupedEvent>);\n\n return Object.values(grouped).sort((a, b) => {\n const dateA = new Date(\n Object.keys(grouped).find((key) => grouped[key] === a) || '',\n );\n const dateB = new Date(\n Object.keys(grouped).find((key) => grouped[key] === b) || '',\n );\n return dateA.getTime() - dateB.getTime();\n });\n};\n\nexport default (props: ListProps): ElementModel =>\n (() => {\n const { isThemeDark } = 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 groupLayout = (): { element: HTMLElement; styles: string } => {\n return Model.ElementModel.createDiv({\n className: 'umd-feed-events-grouped',\n elementStyles: {\n element: {},\n },\n });\n };\n\n const displayResults = async ({ feedData }: FeedDisplay) => {\n const groupedEvents = groupEventsByDate(feedData);\n const entries: { element: HTMLElement; styles: string }[] = [];\n let actualEventCount = 0;\n\n groupedEvents.forEach((group) => {\n const dateHeadline = document.createElement('p');\n dateHeadline.textContent = group.date;\n\n entries.push(\n Model.ElementModel.text.ribbon({\n element: dateHeadline,\n elementStyles: {\n element: {\n margin: `${Styles.token.spacing.lg} 0`,\n },\n },\n }),\n );\n\n const dateEntries = group.events.map((entry) =>\n Composite.card.list({\n ...dataComposed.display({ entry, isThemeDark }),\n dateSign: Atomic.events.sign({\n ...entry,\n isThemeDark,\n isLargeSize: false,\n }),\n image: feedElements.asset.standard({\n images: entry.image,\n url: entry.url,\n }),\n isAligned: false,\n }),\n );\n\n actualEventCount += group.events.length;\n\n entries.push(\n Model.ElementModel.createDiv({\n className: 'umd-feed-events-grouped-entries',\n children: [...dateEntries],\n elementStyles: {\n element: {\n [` > *:not(:last-child)`]: {\n paddingBottom: Styles.token.spacing.lg,\n marginBottom: Styles.token.spacing.lg,\n },\n },\n },\n }),\n );\n });\n\n // Override the offset with actual event count to fix lazy load\n const originalSetOffset = helperFunctions.setOffset;\n helperFunctions.setOffset = () => originalSetOffset(actualEventCount);\n\n await feedDisplay.resultLoad({\n ...props,\n ...helperFunctions,\n displayResults,\n entries,\n });\n\n // Restore original setOffset\n helperFunctions.setOffset = originalSetOffset;\n\n if (shadowRoot) {\n feedDisplay.setShadowStyles({\n shadowRoot,\n styles,\n });\n }\n };\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: groupLayout(),\n });\n\n return {\n element: container,\n styles,\n events: {\n callback,\n },\n };\n })();\n"],"names":["days","grouped","loader","feedMacros.loader","Model","Styles","Composite","dataComposed.display","Atomic","feedElements.asset.standard","feedDisplay.resultLoad","feedDisplay.setShadowStyles","feedFetch.start","feedDisplay.resultStart","feedDisplay.noResults"],"mappings":"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"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import * as Styles from "@universityofmaryland/web-styles-library";
|
|
2
|
+
import { Model, Composite, Atomic } from "@universityofmaryland/web-elements-library";
|
|
3
|
+
import { standard } from "../../elements/asset.mjs";
|
|
4
|
+
import loader from "../../macros/loader.mjs";
|
|
5
|
+
import "../../macros/slider.mjs";
|
|
6
|
+
import { start } from "./common/fetch.mjs";
|
|
7
|
+
import { noResults, resultStart, resultLoad, setShadowStyles } from "./common/display.mjs";
|
|
8
|
+
import { display } from "./common/data.mjs";
|
|
9
|
+
const getDateBanner = (dateStamp) => {
|
|
10
|
+
const dateParts = dateStamp.split("T")[0].split("-");
|
|
11
|
+
const year = parseInt(dateParts[0], 10);
|
|
12
|
+
const month = parseInt(dateParts[1], 10) - 1;
|
|
13
|
+
const day = parseInt(dateParts[2], 10);
|
|
14
|
+
const eventDate = new Date(year, month, day);
|
|
15
|
+
const currentDate = /* @__PURE__ */ new Date();
|
|
16
|
+
currentDate.setHours(0, 0, 0, 0);
|
|
17
|
+
const weekFromNow = /* @__PURE__ */ new Date();
|
|
18
|
+
weekFromNow.setDate(currentDate.getDate() + 7);
|
|
19
|
+
weekFromNow.setHours(0, 0, 0, 0);
|
|
20
|
+
if (eventDate.getFullYear() === currentDate.getFullYear() && eventDate.getMonth() === currentDate.getMonth() && eventDate.getDate() === currentDate.getDate()) {
|
|
21
|
+
return "Today";
|
|
22
|
+
}
|
|
23
|
+
if (eventDate.getTime() > currentDate.getTime() && eventDate.getTime() <= weekFromNow.getTime()) {
|
|
24
|
+
const days2 = [
|
|
25
|
+
"Sunday",
|
|
26
|
+
"Monday",
|
|
27
|
+
"Tuesday",
|
|
28
|
+
"Wednesday",
|
|
29
|
+
"Thursday",
|
|
30
|
+
"Friday",
|
|
31
|
+
"Saturday"
|
|
32
|
+
];
|
|
33
|
+
return days2[eventDate.getDay()];
|
|
34
|
+
}
|
|
35
|
+
const days = [
|
|
36
|
+
"Sunday",
|
|
37
|
+
"Monday",
|
|
38
|
+
"Tuesday",
|
|
39
|
+
"Wednesday",
|
|
40
|
+
"Thursday",
|
|
41
|
+
"Friday",
|
|
42
|
+
"Saturday"
|
|
43
|
+
];
|
|
44
|
+
const months = [
|
|
45
|
+
"Jan",
|
|
46
|
+
"Feb",
|
|
47
|
+
"Mar",
|
|
48
|
+
"Apr",
|
|
49
|
+
"May",
|
|
50
|
+
"Jun",
|
|
51
|
+
"Jul",
|
|
52
|
+
"Aug",
|
|
53
|
+
"Sep",
|
|
54
|
+
"Oct",
|
|
55
|
+
"Nov",
|
|
56
|
+
"Dec"
|
|
57
|
+
];
|
|
58
|
+
return `${days[eventDate.getDay()]}, ${months[eventDate.getMonth()]} ${eventDate.getDate()}`;
|
|
59
|
+
};
|
|
60
|
+
const groupEventsByDate = (events) => {
|
|
61
|
+
const grouped2 = events.reduce((acc, event) => {
|
|
62
|
+
const dateKey = event.startStamp;
|
|
63
|
+
if (!acc[dateKey]) {
|
|
64
|
+
acc[dateKey] = {
|
|
65
|
+
date: getDateBanner(event.startStamp),
|
|
66
|
+
events: []
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
acc[dateKey].events.push(event);
|
|
70
|
+
return acc;
|
|
71
|
+
}, {});
|
|
72
|
+
return Object.values(grouped2).sort((a, b) => {
|
|
73
|
+
const dateA = new Date(
|
|
74
|
+
Object.keys(grouped2).find((key) => grouped2[key] === a) || ""
|
|
75
|
+
);
|
|
76
|
+
const dateB = new Date(
|
|
77
|
+
Object.keys(grouped2).find((key) => grouped2[key] === b) || ""
|
|
78
|
+
);
|
|
79
|
+
return dateA.getTime() - dateB.getTime();
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
const grouped = (props) => (() => {
|
|
83
|
+
const { isThemeDark } = props;
|
|
84
|
+
const loader$1 = loader.create({ isThemeDark });
|
|
85
|
+
const container = document.createElement("div");
|
|
86
|
+
const setTotalEntries = (count) => totalEntries = count;
|
|
87
|
+
const setOffset = (count) => offset = offset + count;
|
|
88
|
+
const setStyles = (additonalStyles) => styles += additonalStyles;
|
|
89
|
+
const getContainer = () => container;
|
|
90
|
+
const getTotalEntries = () => totalEntries;
|
|
91
|
+
const getOffset = () => offset;
|
|
92
|
+
const getStyles = () => styles;
|
|
93
|
+
const getShadowRoot = () => shadowRoot;
|
|
94
|
+
let totalEntries = 0;
|
|
95
|
+
let offset = 0;
|
|
96
|
+
let styles = `
|
|
97
|
+
${loader$1.styles}
|
|
98
|
+
`;
|
|
99
|
+
let shadowRoot = null;
|
|
100
|
+
const helperFunctions = {
|
|
101
|
+
setTotalEntries,
|
|
102
|
+
setOffset,
|
|
103
|
+
setStyles,
|
|
104
|
+
getContainer,
|
|
105
|
+
getOffset,
|
|
106
|
+
getTotalEntries,
|
|
107
|
+
getStyles,
|
|
108
|
+
getShadowRoot
|
|
109
|
+
};
|
|
110
|
+
const callback = (shadow) => {
|
|
111
|
+
shadowRoot = shadow;
|
|
112
|
+
};
|
|
113
|
+
const groupLayout = () => {
|
|
114
|
+
return Model.ElementModel.createDiv({
|
|
115
|
+
className: "umd-feed-events-grouped",
|
|
116
|
+
elementStyles: {
|
|
117
|
+
element: {}
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
};
|
|
121
|
+
const displayResults = async ({ feedData }) => {
|
|
122
|
+
const groupedEvents = groupEventsByDate(feedData);
|
|
123
|
+
const entries = [];
|
|
124
|
+
let actualEventCount = 0;
|
|
125
|
+
groupedEvents.forEach((group) => {
|
|
126
|
+
const dateHeadline = document.createElement("p");
|
|
127
|
+
dateHeadline.textContent = group.date;
|
|
128
|
+
entries.push(
|
|
129
|
+
Model.ElementModel.text.ribbon({
|
|
130
|
+
element: dateHeadline,
|
|
131
|
+
elementStyles: {
|
|
132
|
+
element: {
|
|
133
|
+
margin: `${Styles.token.spacing.lg} 0`
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
})
|
|
137
|
+
);
|
|
138
|
+
const dateEntries = group.events.map(
|
|
139
|
+
(entry) => Composite.card.list({
|
|
140
|
+
...display({ entry, isThemeDark }),
|
|
141
|
+
dateSign: Atomic.events.sign({
|
|
142
|
+
...entry,
|
|
143
|
+
isThemeDark,
|
|
144
|
+
isLargeSize: false
|
|
145
|
+
}),
|
|
146
|
+
image: standard({
|
|
147
|
+
images: entry.image,
|
|
148
|
+
url: entry.url
|
|
149
|
+
}),
|
|
150
|
+
isAligned: false
|
|
151
|
+
})
|
|
152
|
+
);
|
|
153
|
+
actualEventCount += group.events.length;
|
|
154
|
+
entries.push(
|
|
155
|
+
Model.ElementModel.createDiv({
|
|
156
|
+
className: "umd-feed-events-grouped-entries",
|
|
157
|
+
children: [...dateEntries],
|
|
158
|
+
elementStyles: {
|
|
159
|
+
element: {
|
|
160
|
+
[` > *:not(:last-child)`]: {
|
|
161
|
+
paddingBottom: Styles.token.spacing.lg,
|
|
162
|
+
marginBottom: Styles.token.spacing.lg
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
})
|
|
167
|
+
);
|
|
168
|
+
});
|
|
169
|
+
const originalSetOffset = helperFunctions.setOffset;
|
|
170
|
+
helperFunctions.setOffset = () => originalSetOffset(actualEventCount);
|
|
171
|
+
await resultLoad({
|
|
172
|
+
...props,
|
|
173
|
+
...helperFunctions,
|
|
174
|
+
displayResults,
|
|
175
|
+
entries
|
|
176
|
+
});
|
|
177
|
+
helperFunctions.setOffset = originalSetOffset;
|
|
178
|
+
if (shadowRoot) {
|
|
179
|
+
setShadowStyles({
|
|
180
|
+
shadowRoot,
|
|
181
|
+
styles
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
};
|
|
185
|
+
container.appendChild(loader$1.element);
|
|
186
|
+
start({
|
|
187
|
+
...props,
|
|
188
|
+
...helperFunctions,
|
|
189
|
+
displayResults,
|
|
190
|
+
displayResultStart: resultStart,
|
|
191
|
+
displayNoResults: noResults,
|
|
192
|
+
layoutElement: groupLayout()
|
|
193
|
+
});
|
|
194
|
+
return {
|
|
195
|
+
element: container,
|
|
196
|
+
styles,
|
|
197
|
+
events: {
|
|
198
|
+
callback
|
|
199
|
+
}
|
|
200
|
+
};
|
|
201
|
+
})();
|
|
202
|
+
export {
|
|
203
|
+
grouped as default
|
|
204
|
+
};
|
|
205
|
+
//# sourceMappingURL=grouped.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grouped.mjs","sources":["../../../source/composite/events/grouped.ts"],"sourcesContent":["import * as Styles from '@universityofmaryland/web-styles-library';\nimport {\n Atomic,\n Composite,\n Model,\n} 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 ListProps, type FeedDisplay, type EventType } from './_types';\nimport { type ElementModel } from '../../_types';\n\ninterface GroupedEvent {\n date: string;\n events: EventType[];\n}\n\nconst getDateBanner = (dateStamp: string): string => {\n // Parse the date string more reliably\n // Handle both \"YYYY-MM-DD\" and ISO format strings\n const dateParts = dateStamp.split('T')[0].split('-');\n const year = parseInt(dateParts[0], 10);\n const month = parseInt(dateParts[1], 10) - 1; // Month is 0-indexed\n const day = parseInt(dateParts[2], 10);\n\n // Create dates using local timezone to avoid timezone shifts\n const eventDate = new Date(year, month, day);\n const currentDate = new Date();\n currentDate.setHours(0, 0, 0, 0);\n\n const weekFromNow = new Date();\n weekFromNow.setDate(currentDate.getDate() + 7);\n weekFromNow.setHours(0, 0, 0, 0);\n\n // Check if it's today\n if (\n eventDate.getFullYear() === currentDate.getFullYear() &&\n eventDate.getMonth() === currentDate.getMonth() &&\n eventDate.getDate() === currentDate.getDate()\n ) {\n return 'Today';\n }\n\n // Check if it's within the next 7 days\n if (\n eventDate.getTime() > currentDate.getTime() &&\n eventDate.getTime() <= weekFromNow.getTime()\n ) {\n const days = [\n 'Sunday',\n 'Monday',\n 'Tuesday',\n 'Wednesday',\n 'Thursday',\n 'Friday',\n 'Saturday',\n ];\n return days[eventDate.getDay()];\n }\n\n // Otherwise return day of week, month and day\n const days = [\n 'Sunday',\n 'Monday',\n 'Tuesday',\n 'Wednesday',\n 'Thursday',\n 'Friday',\n 'Saturday',\n ];\n const months = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec',\n ];\n return `${days[eventDate.getDay()]}, ${\n months[eventDate.getMonth()]\n } ${eventDate.getDate()}`;\n};\n\nconst groupEventsByDate = (events: EventType[]): GroupedEvent[] => {\n const grouped = events.reduce((acc, event) => {\n const dateKey = event.startStamp;\n if (!acc[dateKey]) {\n acc[dateKey] = {\n date: getDateBanner(event.startStamp),\n events: [],\n };\n }\n acc[dateKey].events.push(event);\n return acc;\n }, {} as Record<string, GroupedEvent>);\n\n return Object.values(grouped).sort((a, b) => {\n const dateA = new Date(\n Object.keys(grouped).find((key) => grouped[key] === a) || '',\n );\n const dateB = new Date(\n Object.keys(grouped).find((key) => grouped[key] === b) || '',\n );\n return dateA.getTime() - dateB.getTime();\n });\n};\n\nexport default (props: ListProps): ElementModel =>\n (() => {\n const { isThemeDark } = 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 groupLayout = (): { element: HTMLElement; styles: string } => {\n return Model.ElementModel.createDiv({\n className: 'umd-feed-events-grouped',\n elementStyles: {\n element: {},\n },\n });\n };\n\n const displayResults = async ({ feedData }: FeedDisplay) => {\n const groupedEvents = groupEventsByDate(feedData);\n const entries: { element: HTMLElement; styles: string }[] = [];\n let actualEventCount = 0;\n\n groupedEvents.forEach((group) => {\n const dateHeadline = document.createElement('p');\n dateHeadline.textContent = group.date;\n\n entries.push(\n Model.ElementModel.text.ribbon({\n element: dateHeadline,\n elementStyles: {\n element: {\n margin: `${Styles.token.spacing.lg} 0`,\n },\n },\n }),\n );\n\n const dateEntries = group.events.map((entry) =>\n Composite.card.list({\n ...dataComposed.display({ entry, isThemeDark }),\n dateSign: Atomic.events.sign({\n ...entry,\n isThemeDark,\n isLargeSize: false,\n }),\n image: feedElements.asset.standard({\n images: entry.image,\n url: entry.url,\n }),\n isAligned: false,\n }),\n );\n\n actualEventCount += group.events.length;\n\n entries.push(\n Model.ElementModel.createDiv({\n className: 'umd-feed-events-grouped-entries',\n children: [...dateEntries],\n elementStyles: {\n element: {\n [` > *:not(:last-child)`]: {\n paddingBottom: Styles.token.spacing.lg,\n marginBottom: Styles.token.spacing.lg,\n },\n },\n },\n }),\n );\n });\n\n // Override the offset with actual event count to fix lazy load\n const originalSetOffset = helperFunctions.setOffset;\n helperFunctions.setOffset = () => originalSetOffset(actualEventCount);\n\n await feedDisplay.resultLoad({\n ...props,\n ...helperFunctions,\n displayResults,\n entries,\n });\n\n // Restore original setOffset\n helperFunctions.setOffset = originalSetOffset;\n\n if (shadowRoot) {\n feedDisplay.setShadowStyles({\n shadowRoot,\n styles,\n });\n }\n };\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: groupLayout(),\n });\n\n return {\n element: container,\n styles,\n events: {\n callback,\n },\n };\n })();\n"],"names":["days","grouped","loader","feedMacros.loader","dataComposed.display","feedElements.asset.standard","feedDisplay.resultLoad","feedDisplay.setShadowStyles","feedFetch.start","feedDisplay.resultStart","feedDisplay.noResults"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { ListProps } from './_types';
|
|
2
|
+
import { ElementModel } from '../../_types';
|
|
3
3
|
declare const _default: (props: ListProps) => ElementModel;
|
|
4
4
|
export default _default;
|
|
5
5
|
//# sourceMappingURL=list.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../source/composite/events/list.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../source/composite/events/list.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;yBAEjC,OAAO,SAAS,KAAG,YAAY;AAA/C,wBAmFO"}
|