@universityofmaryland/web-feeds-library 1.2.6 → 1.3.0-beta.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 +1 -1
- package/dist/academic.js +4 -4
- package/dist/academic.js.map +1 -1
- package/dist/events.d.ts +1 -1
- package/dist/events.js +10 -10
- package/dist/events.js.map +1 -1
- package/dist/experts.d.ts +2 -0
- package/dist/experts.js +9 -0
- package/dist/experts.js.map +1 -0
- package/dist/factory/core/createBaseFeed.d.ts +3 -0
- package/dist/factory/core/createBaseFeed.d.ts.map +1 -0
- package/dist/factory/core/createBaseFeed.js +116 -0
- package/dist/factory/core/createBaseFeed.js.map +1 -0
- package/dist/factory/core/index.d.ts +3 -0
- package/dist/factory/core/index.d.ts.map +1 -0
- package/dist/factory/core/types.d.ts +92 -0
- package/dist/factory/core/types.d.ts.map +1 -0
- package/dist/factory/helpers/displayHandler.d.ts +29 -0
- package/dist/factory/helpers/displayHandler.d.ts.map +1 -0
- package/dist/factory/helpers/displayHandler.js +169 -0
- package/dist/factory/helpers/displayHandler.js.map +1 -0
- package/dist/factory/helpers/feedHelpers.d.ts +10 -0
- package/dist/factory/helpers/feedHelpers.d.ts.map +1 -0
- package/dist/factory/helpers/feedHelpers.js +32 -0
- package/dist/factory/helpers/feedHelpers.js.map +1 -0
- package/dist/factory/helpers/fetchHandler.d.ts +22 -0
- package/dist/factory/helpers/fetchHandler.d.ts.map +1 -0
- package/dist/factory/helpers/fetchHandler.js +123 -0
- package/dist/factory/helpers/fetchHandler.js.map +1 -0
- package/dist/factory/helpers/index.d.ts +4 -0
- package/dist/factory/helpers/index.d.ts.map +1 -0
- package/dist/factory/index.d.ts +4 -0
- package/dist/factory/index.d.ts.map +1 -0
- package/dist/feeds/academic/_types.d.ts.map +1 -0
- package/dist/feeds/academic/index.d.ts +2 -0
- package/dist/feeds/academic/index.d.ts.map +1 -0
- package/dist/feeds/academic/slider.d.ts +4 -0
- package/dist/feeds/academic/slider.d.ts.map +1 -0
- package/dist/feeds/academic/slider.js +11 -0
- package/dist/feeds/academic/slider.js.map +1 -0
- package/dist/feeds/events/_types.d.ts.map +1 -0
- package/dist/feeds/events/grid.d.ts +4 -0
- package/dist/feeds/events/grid.d.ts.map +1 -0
- package/dist/feeds/events/grid.js +32 -0
- package/dist/feeds/events/grid.js.map +1 -0
- package/dist/feeds/events/grouped.d.ts +4 -0
- package/dist/feeds/events/grouped.d.ts.map +1 -0
- package/dist/feeds/events/grouped.js +337 -0
- package/dist/feeds/events/grouped.js.map +1 -0
- package/dist/feeds/events/index.d.ts +5 -0
- package/dist/feeds/events/index.d.ts.map +1 -0
- package/dist/feeds/events/list.d.ts +4 -0
- package/dist/feeds/events/list.d.ts.map +1 -0
- package/dist/feeds/events/list.js +33 -0
- package/dist/feeds/events/list.js.map +1 -0
- package/dist/feeds/events/slider.d.ts +4 -0
- package/dist/feeds/events/slider.d.ts.map +1 -0
- package/dist/feeds/events/slider.js +11 -0
- package/dist/feeds/events/slider.js.map +1 -0
- package/dist/feeds/experts/_types.d.ts +23 -0
- package/dist/feeds/experts/_types.d.ts.map +1 -0
- package/dist/feeds/experts/bio.d.ts +4 -0
- package/dist/feeds/experts/bio.d.ts.map +1 -0
- package/dist/feeds/experts/bio.js +147 -0
- package/dist/feeds/experts/bio.js.map +1 -0
- package/dist/feeds/experts/grid.d.ts +4 -0
- package/dist/feeds/experts/grid.d.ts.map +1 -0
- package/dist/feeds/experts/grid.js +37 -0
- package/dist/feeds/experts/grid.js.map +1 -0
- package/dist/feeds/experts/index.d.ts +4 -0
- package/dist/feeds/experts/index.d.ts.map +1 -0
- package/dist/feeds/experts/list.d.ts +4 -0
- package/dist/feeds/experts/list.d.ts.map +1 -0
- package/dist/feeds/experts/list.js +26 -0
- package/dist/feeds/experts/list.js.map +1 -0
- package/dist/feeds/news/_types.d.ts.map +1 -0
- package/dist/feeds/news/featured.d.ts +4 -0
- package/dist/feeds/news/featured.d.ts.map +1 -0
- package/dist/feeds/news/featured.js +379 -0
- package/dist/feeds/news/featured.js.map +1 -0
- package/dist/feeds/news/grid.d.ts +4 -0
- package/dist/feeds/news/grid.d.ts.map +1 -0
- package/dist/feeds/news/grid.js +37 -0
- package/dist/feeds/news/grid.js.map +1 -0
- package/dist/feeds/news/index.d.ts +4 -0
- package/dist/feeds/news/index.d.ts.map +1 -0
- package/dist/feeds/news/list.d.ts +4 -0
- package/dist/feeds/news/list.d.ts.map +1 -0
- package/dist/feeds/news/list.js +34 -0
- package/dist/feeds/news/list.js.map +1 -0
- package/dist/{utilities → helpers}/events/index.d.ts +1 -0
- package/dist/helpers/events/index.d.ts.map +1 -0
- package/dist/{utilities/events/index.mjs → helpers/events/index.js} +3 -1
- package/dist/helpers/events/index.js.map +1 -0
- package/dist/helpers/grouping/events.d.ts +14 -0
- package/dist/helpers/grouping/events.d.ts.map +1 -0
- package/dist/helpers/grouping/events.js +147 -0
- package/dist/helpers/grouping/events.js.map +1 -0
- package/dist/helpers/grouping/index.d.ts +2 -0
- package/dist/helpers/grouping/index.d.ts.map +1 -0
- package/dist/helpers/index.d.ts +5 -0
- package/dist/helpers/index.d.ts.map +1 -0
- package/dist/helpers/network/fetch.d.ts.map +1 -0
- package/dist/helpers/network/index.d.ts.map +1 -0
- package/dist/helpers/styles/index.d.ts +2 -0
- package/dist/helpers/styles/index.d.ts.map +1 -0
- package/dist/helpers/styles/shadow.d.ts +10 -0
- package/dist/helpers/styles/shadow.d.ts.map +1 -0
- package/dist/helpers/styles/shadow.js +16 -0
- package/dist/helpers/styles/shadow.js.map +1 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -8
- package/dist/index.js.map +1 -1
- package/dist/news.d.ts +1 -1
- package/dist/news.js +8 -8
- package/dist/news.js.map +1 -1
- package/dist/states/_types.d.ts +36 -0
- package/dist/states/_types.d.ts.map +1 -0
- package/dist/states/_types.js +12 -0
- package/dist/states/_types.js.map +1 -0
- package/dist/states/announcer.d.ts +14 -0
- package/dist/states/announcer.d.ts.map +1 -0
- package/dist/states/announcer.js +62 -0
- package/dist/states/announcer.js.map +1 -0
- package/dist/states/empty.d.ts +15 -0
- package/dist/states/empty.d.ts.map +1 -0
- package/dist/states/empty.js +104 -0
- package/dist/states/empty.js.map +1 -0
- package/dist/states/index.d.ts +6 -0
- package/dist/states/index.d.ts.map +1 -0
- package/dist/states/loading.d.ts +15 -0
- package/dist/states/loading.d.ts.map +1 -0
- package/dist/{macros/loader.mjs → states/loading.js} +71 -28
- package/dist/states/loading.js.map +1 -0
- package/dist/states/pagination.d.ts +17 -0
- package/dist/states/pagination.d.ts.map +1 -0
- package/dist/states/pagination.js +102 -0
- package/dist/states/pagination.js.map +1 -0
- package/dist/strategies/display/events.d.ts +4 -0
- package/dist/strategies/display/events.d.ts.map +1 -0
- package/dist/strategies/display/events.js +60 -0
- package/dist/strategies/display/events.js.map +1 -0
- package/dist/strategies/display/experts.d.ts +19 -0
- package/dist/strategies/display/experts.d.ts.map +1 -0
- package/dist/strategies/display/experts.js +266 -0
- package/dist/strategies/display/experts.js.map +1 -0
- package/dist/strategies/display/index.d.ts +5 -0
- package/dist/strategies/display/index.d.ts.map +1 -0
- package/dist/strategies/display/news.d.ts +4 -0
- package/dist/strategies/display/news.d.ts.map +1 -0
- package/dist/strategies/display/news.js +58 -0
- package/dist/strategies/display/news.js.map +1 -0
- package/dist/strategies/fetch/academic.d.ts +2 -0
- package/dist/strategies/fetch/academic.d.ts.map +1 -0
- package/dist/strategies/fetch/academic.js +30 -0
- package/dist/strategies/fetch/academic.js.map +1 -0
- package/dist/strategies/fetch/events.d.ts +20 -0
- package/dist/strategies/fetch/events.d.ts.map +1 -0
- package/dist/strategies/fetch/events.js +223 -0
- package/dist/strategies/fetch/events.js.map +1 -0
- package/dist/strategies/fetch/experts.d.ts +4 -0
- package/dist/strategies/fetch/experts.d.ts.map +1 -0
- package/dist/strategies/fetch/experts.js +194 -0
- package/dist/strategies/fetch/experts.js.map +1 -0
- package/dist/strategies/fetch/graphql.d.ts +13 -0
- package/dist/strategies/fetch/graphql.d.ts.map +1 -0
- package/dist/strategies/fetch/graphql.js +104 -0
- package/dist/strategies/fetch/graphql.js.map +1 -0
- package/dist/strategies/fetch/index.d.ts +10 -0
- package/dist/strategies/fetch/index.d.ts.map +1 -0
- package/dist/strategies/fetch/news.d.ts +4 -0
- package/dist/strategies/fetch/news.d.ts.map +1 -0
- package/dist/strategies/fetch/news.js +95 -0
- package/dist/strategies/fetch/news.js.map +1 -0
- package/dist/strategies/index.d.ts +7 -0
- package/dist/strategies/index.d.ts.map +1 -0
- package/dist/strategies/layout/featured.d.ts +8 -0
- package/dist/strategies/layout/featured.d.ts.map +1 -0
- package/dist/strategies/layout/grid.d.ts +7 -0
- package/dist/strategies/layout/grid.d.ts.map +1 -0
- package/dist/strategies/layout/grid.js +36 -0
- package/dist/strategies/layout/grid.js.map +1 -0
- package/dist/strategies/layout/index.d.ts +4 -0
- package/dist/strategies/layout/index.d.ts.map +1 -0
- package/dist/types/api.d.ts +34 -0
- package/dist/types/api.d.ts.map +1 -0
- package/dist/types/core.d.ts +40 -0
- package/dist/types/core.d.ts.map +1 -0
- package/dist/types/data/academic.d.ts +6 -0
- package/dist/types/data/academic.d.ts.map +1 -0
- package/dist/types/data/events.d.ts +21 -0
- package/dist/types/data/events.d.ts.map +1 -0
- package/dist/types/data/experts.d.ts +53 -0
- package/dist/types/data/experts.d.ts.map +1 -0
- package/dist/types/data/index.d.ts +5 -0
- package/dist/types/data/index.d.ts.map +1 -0
- package/dist/types/data/news.d.ts +6 -0
- package/dist/types/data/news.d.ts.map +1 -0
- package/dist/types/feeds.d.ts +35 -0
- package/dist/types/feeds.d.ts.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/widgets/index.d.ts +2 -0
- package/dist/widgets/index.d.ts.map +1 -0
- package/dist/{macros → widgets}/slider.d.ts +1 -2
- package/dist/widgets/slider.d.ts.map +1 -0
- package/dist/{macros/slider.mjs → widgets/slider.js} +10 -10
- package/dist/widgets/slider.js.map +1 -0
- package/package.json +18 -12
- package/dist/academic.mjs +0 -5
- package/dist/academic.mjs.map +0 -1
- package/dist/composite/academic/_types.d.ts.map +0 -1
- package/dist/composite/academic/index.d.ts +0 -2
- package/dist/composite/academic/index.d.ts.map +0 -1
- package/dist/composite/academic/slider.d.ts +0 -5
- package/dist/composite/academic/slider.d.ts.map +0 -1
- package/dist/composite/academic/slider.js +0 -36
- package/dist/composite/academic/slider.js.map +0 -1
- package/dist/composite/academic/slider.mjs +0 -37
- package/dist/composite/academic/slider.mjs.map +0 -1
- package/dist/composite/events/_types.d.ts.map +0 -1
- package/dist/composite/events/common/data.d.ts +0 -44
- package/dist/composite/events/common/data.d.ts.map +0 -1
- package/dist/composite/events/common/data.js +0 -54
- package/dist/composite/events/common/data.js.map +0 -1
- package/dist/composite/events/common/data.mjs +0 -54
- package/dist/composite/events/common/data.mjs.map +0 -1
- package/dist/composite/events/common/display.d.ts +0 -18
- package/dist/composite/events/common/display.d.ts.map +0 -1
- package/dist/composite/events/common/display.js +0 -147
- package/dist/composite/events/common/display.js.map +0 -1
- package/dist/composite/events/common/display.mjs +0 -130
- package/dist/composite/events/common/display.mjs.map +0 -1
- package/dist/composite/events/common/fetch.d.ts +0 -24
- package/dist/composite/events/common/fetch.d.ts.map +0 -1
- package/dist/composite/events/common/fetch.js +0 -119
- package/dist/composite/events/common/fetch.js.map +0 -1
- package/dist/composite/events/common/fetch.mjs +0 -119
- package/dist/composite/events/common/fetch.mjs.map +0 -1
- package/dist/composite/events/common/queries.d.ts +0 -5
- package/dist/composite/events/common/queries.d.ts.map +0 -1
- package/dist/composite/events/common/queries.js +0 -113
- package/dist/composite/events/common/queries.js.map +0 -1
- package/dist/composite/events/common/queries.mjs +0 -113
- package/dist/composite/events/common/queries.mjs.map +0 -1
- package/dist/composite/events/grid.d.ts +0 -5
- package/dist/composite/events/grid.d.ts.map +0 -1
- package/dist/composite/events/grid.js +0 -92
- package/dist/composite/events/grid.js.map +0 -1
- package/dist/composite/events/grid.mjs +0 -93
- package/dist/composite/events/grid.mjs.map +0 -1
- package/dist/composite/events/grouped.d.ts +0 -5
- package/dist/composite/events/grouped.d.ts.map +0 -1
- package/dist/composite/events/grouped.js +0 -290
- package/dist/composite/events/grouped.js.map +0 -1
- package/dist/composite/events/grouped.mjs +0 -274
- package/dist/composite/events/grouped.mjs.map +0 -1
- package/dist/composite/events/index.d.ts +0 -5
- package/dist/composite/events/index.d.ts.map +0 -1
- package/dist/composite/events/list.d.ts +0 -5
- package/dist/composite/events/list.d.ts.map +0 -1
- package/dist/composite/events/list.js +0 -92
- package/dist/composite/events/list.js.map +0 -1
- package/dist/composite/events/list.mjs +0 -93
- package/dist/composite/events/list.mjs.map +0 -1
- package/dist/composite/events/slider.d.ts +0 -5
- package/dist/composite/events/slider.d.ts.map +0 -1
- package/dist/composite/events/slider.js +0 -37
- package/dist/composite/events/slider.js.map +0 -1
- package/dist/composite/events/slider.mjs +0 -38
- package/dist/composite/events/slider.mjs.map +0 -1
- package/dist/composite/news/_types.d.ts.map +0 -1
- package/dist/composite/news/common/data.d.ts +0 -47
- package/dist/composite/news/common/data.d.ts.map +0 -1
- package/dist/composite/news/common/data.js +0 -63
- package/dist/composite/news/common/data.js.map +0 -1
- package/dist/composite/news/common/data.mjs +0 -63
- package/dist/composite/news/common/data.mjs.map +0 -1
- package/dist/composite/news/common/display.d.ts +0 -17
- package/dist/composite/news/common/display.d.ts.map +0 -1
- package/dist/composite/news/common/display.js +0 -147
- package/dist/composite/news/common/display.js.map +0 -1
- package/dist/composite/news/common/display.mjs +0 -130
- package/dist/composite/news/common/display.mjs.map +0 -1
- package/dist/composite/news/common/fetch.d.ts +0 -22
- package/dist/composite/news/common/fetch.d.ts.map +0 -1
- package/dist/composite/news/common/fetch.js +0 -89
- package/dist/composite/news/common/fetch.js.map +0 -1
- package/dist/composite/news/common/fetch.mjs +0 -89
- package/dist/composite/news/common/fetch.mjs.map +0 -1
- package/dist/composite/news/common/queries.d.ts +0 -2
- package/dist/composite/news/common/queries.d.ts.map +0 -1
- package/dist/composite/news/common/queries.js +0 -37
- package/dist/composite/news/common/queries.js.map +0 -1
- package/dist/composite/news/common/queries.mjs +0 -37
- package/dist/composite/news/common/queries.mjs.map +0 -1
- package/dist/composite/news/featured.d.ts +0 -5
- package/dist/composite/news/featured.d.ts.map +0 -1
- package/dist/composite/news/featured.js +0 -184
- package/dist/composite/news/featured.js.map +0 -1
- package/dist/composite/news/featured.mjs +0 -185
- package/dist/composite/news/featured.mjs.map +0 -1
- package/dist/composite/news/grid.d.ts +0 -5
- package/dist/composite/news/grid.d.ts.map +0 -1
- package/dist/composite/news/grid.js +0 -100
- package/dist/composite/news/grid.js.map +0 -1
- package/dist/composite/news/grid.mjs +0 -101
- package/dist/composite/news/grid.mjs.map +0 -1
- package/dist/composite/news/index.d.ts +0 -4
- package/dist/composite/news/index.d.ts.map +0 -1
- package/dist/composite/news/list.d.ts +0 -5
- package/dist/composite/news/list.d.ts.map +0 -1
- package/dist/composite/news/list.js +0 -87
- package/dist/composite/news/list.js.map +0 -1
- package/dist/composite/news/list.mjs +0 -88
- package/dist/composite/news/list.mjs.map +0 -1
- package/dist/elements/asset.d.ts +0 -10
- package/dist/elements/asset.d.ts.map +0 -1
- package/dist/elements/asset.js +0 -27
- package/dist/elements/asset.js.map +0 -1
- package/dist/elements/asset.mjs +0 -27
- package/dist/elements/asset.mjs.map +0 -1
- package/dist/elements/index.d.ts +0 -4
- package/dist/elements/index.d.ts.map +0 -1
- package/dist/elements/layout.d.ts +0 -15
- package/dist/elements/layout.d.ts.map +0 -1
- package/dist/elements/layout.js +0 -113
- package/dist/elements/layout.js.map +0 -1
- package/dist/elements/layout.mjs +0 -96
- package/dist/elements/layout.mjs.map +0 -1
- package/dist/elements/text.d.ts +0 -12
- package/dist/elements/text.d.ts.map +0 -1
- package/dist/elements/text.js +0 -41
- package/dist/elements/text.js.map +0 -1
- package/dist/elements/text.mjs +0 -41
- package/dist/elements/text.mjs.map +0 -1
- package/dist/events.mjs +0 -11
- package/dist/events.mjs.map +0 -1
- package/dist/index.mjs +0 -9
- package/dist/index.mjs.map +0 -1
- package/dist/macros/aria-live.d.ts +0 -11
- package/dist/macros/aria-live.d.ts.map +0 -1
- package/dist/macros/aria-live.js +0 -25
- package/dist/macros/aria-live.js.map +0 -1
- package/dist/macros/aria-live.mjs +0 -26
- package/dist/macros/aria-live.mjs.map +0 -1
- package/dist/macros/index.d.ts +0 -6
- package/dist/macros/index.d.ts.map +0 -1
- package/dist/macros/lazy-load.d.ts +0 -16
- package/dist/macros/lazy-load.d.ts.map +0 -1
- package/dist/macros/lazy-load.js +0 -54
- package/dist/macros/lazy-load.js.map +0 -1
- package/dist/macros/lazy-load.mjs +0 -38
- package/dist/macros/lazy-load.mjs.map +0 -1
- package/dist/macros/loader.d.ts +0 -15
- package/dist/macros/loader.d.ts.map +0 -1
- package/dist/macros/loader.js +0 -128
- package/dist/macros/loader.js.map +0 -1
- package/dist/macros/loader.mjs.map +0 -1
- package/dist/macros/no-results.d.ts +0 -12
- package/dist/macros/no-results.d.ts.map +0 -1
- package/dist/macros/no-results.js +0 -66
- package/dist/macros/no-results.js.map +0 -1
- package/dist/macros/no-results.mjs +0 -50
- package/dist/macros/no-results.mjs.map +0 -1
- package/dist/macros/slider.d.ts.map +0 -1
- package/dist/macros/slider.js +0 -103
- package/dist/macros/slider.js.map +0 -1
- package/dist/macros/slider.mjs.map +0 -1
- package/dist/news.mjs +0 -9
- package/dist/news.mjs.map +0 -1
- package/dist/utilities/events/index.d.ts.map +0 -1
- package/dist/utilities/events/index.js +0 -19
- package/dist/utilities/events/index.js.map +0 -1
- package/dist/utilities/events/index.mjs.map +0 -1
- package/dist/utilities/index.d.ts +0 -3
- package/dist/utilities/index.d.ts.map +0 -1
- package/dist/utilities/network/fetch.d.ts.map +0 -1
- package/dist/utilities/network/index.d.ts.map +0 -1
- /package/dist/{composite → feeds}/academic/_types.d.ts +0 -0
- /package/dist/{composite → feeds}/events/_types.d.ts +0 -0
- /package/dist/{composite → feeds}/news/_types.d.ts +0 -0
- /package/dist/{utilities → helpers}/network/fetch.d.ts +0 -0
- /package/dist/{utilities → helpers}/network/index.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchHandler.d.ts","sourceRoot":"","sources":["../../../source/factory/helpers/fetchHandler.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAK3D,UAAU,kBAAkB,CAAC,KAAK,EAAE,UAAU;IAE5C,aAAa,EAAE,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAEhD,OAAO,EAAE,WAAW,CAAC;IAErB,SAAS,EAAE,GAAG,CAAC;IAEf,eAAe,EAAE;QACf,kBAAkB,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAClD,cAAc,EAAE,CAAC,KAAK,EAAE;YAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;SAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAChE,gBAAgB,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;KACxC,CAAC;IAEF,aAAa,EAAE,GAAG,CAAC;IAEnB,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AA8BD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,EACnD,MAAM,EAAE,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC;iBAoErB,OAAO,CAAC,IAAI,CAAC;oBArDV,OAAO,CAAC,IAAI,CAAC;EA6IzC"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import * as Styles from "@universityofmaryland/web-styles-library";
|
|
2
|
+
import { LoadingState } from "../../states/loading.js";
|
|
3
|
+
import "@universityofmaryland/web-builder-library";
|
|
4
|
+
import "@universityofmaryland/web-elements-library";
|
|
5
|
+
import "@universityofmaryland/web-utilities-library/theme";
|
|
6
|
+
import { Announcer } from "../../states/announcer.js";
|
|
7
|
+
function createFetchHandlers(config) {
|
|
8
|
+
const {
|
|
9
|
+
fetchStrategy,
|
|
10
|
+
helpers,
|
|
11
|
+
baseProps,
|
|
12
|
+
displayHandlers,
|
|
13
|
+
layoutElement,
|
|
14
|
+
isThemeDark,
|
|
15
|
+
enableCategoryFallback = false
|
|
16
|
+
} = config;
|
|
17
|
+
const loadMore = async () => {
|
|
18
|
+
const container = helpers.getContainer();
|
|
19
|
+
const currentCount = helpers.getOffset();
|
|
20
|
+
const totalEntries = helpers.getTotalEntries();
|
|
21
|
+
const existingPagination = container.querySelector(
|
|
22
|
+
`.${Styles.layout.alignment.block.center.className}`
|
|
23
|
+
);
|
|
24
|
+
existingPagination?.remove();
|
|
25
|
+
const loading = new LoadingState({ isThemeDark });
|
|
26
|
+
loading.show(container);
|
|
27
|
+
const variables = fetchStrategy.composeApiVariables({
|
|
28
|
+
...baseProps,
|
|
29
|
+
getOffset: helpers.getOffset
|
|
30
|
+
});
|
|
31
|
+
const feedData = await fetchStrategy.fetchEntries(variables);
|
|
32
|
+
if (feedData) {
|
|
33
|
+
loading.hide();
|
|
34
|
+
await displayHandlers.displayResults({ feedData });
|
|
35
|
+
const message = `Showing ${currentCount + feedData.length} of ${totalEntries} articles`;
|
|
36
|
+
const existingAnnouncer = container.querySelector(
|
|
37
|
+
'[role="status"]'
|
|
38
|
+
);
|
|
39
|
+
if (existingAnnouncer) {
|
|
40
|
+
existingAnnouncer.textContent = message;
|
|
41
|
+
} else {
|
|
42
|
+
const announcer = new Announcer({ message });
|
|
43
|
+
container.appendChild(announcer.getElement());
|
|
44
|
+
}
|
|
45
|
+
} else {
|
|
46
|
+
loading.hide();
|
|
47
|
+
displayHandlers.displayNoResults({
|
|
48
|
+
message: "An error occurred while loading more results."
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
const start = async () => {
|
|
53
|
+
const variables = fetchStrategy.composeApiVariables({
|
|
54
|
+
...baseProps,
|
|
55
|
+
getOffset: helpers.getOffset
|
|
56
|
+
});
|
|
57
|
+
const count = await fetchStrategy.fetchCount(variables);
|
|
58
|
+
if (count === 0) {
|
|
59
|
+
if (enableCategoryFallback && baseProps.categories && baseProps.categories.length > 0) {
|
|
60
|
+
const fallbackVariables = fetchStrategy.composeApiVariables({
|
|
61
|
+
...baseProps,
|
|
62
|
+
categories: void 0,
|
|
63
|
+
getOffset: helpers.getOffset
|
|
64
|
+
});
|
|
65
|
+
const fallbackCount = await fetchStrategy.fetchCount(fallbackVariables);
|
|
66
|
+
if (fallbackCount && fallbackCount > 0) {
|
|
67
|
+
helpers.setTotalEntries(fallbackCount);
|
|
68
|
+
const fallbackData = await fetchStrategy.fetchEntries(
|
|
69
|
+
fallbackVariables
|
|
70
|
+
);
|
|
71
|
+
if (fallbackData && fallbackData.length > 0) {
|
|
72
|
+
let categoryNames = await fetchStrategy.fetchCategoryNames?.(
|
|
73
|
+
baseProps.categories,
|
|
74
|
+
baseProps.token
|
|
75
|
+
);
|
|
76
|
+
if (!categoryNames || categoryNames.length === 0) {
|
|
77
|
+
categoryNames = baseProps.categories.map(
|
|
78
|
+
(id) => id.split("-").map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ")
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
await displayHandlers.displayResultStart({
|
|
82
|
+
feedData: fallbackData,
|
|
83
|
+
layoutElement,
|
|
84
|
+
isFallback: true,
|
|
85
|
+
categoryNames
|
|
86
|
+
});
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
displayHandlers.displayNoResults({});
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if (count === null) {
|
|
95
|
+
displayHandlers.displayNoResults({
|
|
96
|
+
message: "An error occurred while fetching the data."
|
|
97
|
+
});
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
if (count) {
|
|
101
|
+
helpers.setTotalEntries(count);
|
|
102
|
+
}
|
|
103
|
+
const feedData = await fetchStrategy.fetchEntries(variables);
|
|
104
|
+
if (feedData && feedData.length > 0) {
|
|
105
|
+
await displayHandlers.displayResultStart({
|
|
106
|
+
feedData,
|
|
107
|
+
layoutElement
|
|
108
|
+
});
|
|
109
|
+
} else {
|
|
110
|
+
displayHandlers.displayNoResults({
|
|
111
|
+
message: "An error occurred while fetching the data."
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
return {
|
|
116
|
+
start,
|
|
117
|
+
loadMore
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
export {
|
|
121
|
+
createFetchHandlers
|
|
122
|
+
};
|
|
123
|
+
//# sourceMappingURL=fetchHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchHandler.js","sources":["../../../source/factory/helpers/fetchHandler.ts"],"sourcesContent":["/**\n * Fetch Handler Utilities\n *\n * Creates handlers for fetching feed data using a fetch strategy.\n * Handles both initial fetch and lazy-loaded fetches.\n *\n * @module factory/helpers/fetchHandler\n */\n\nimport * as Styles from '@universityofmaryland/web-styles-library';\nimport { LoadingState, Announcer } from '../../states';\nimport { FetchStrategy, FeedHelpers } from '../core/types';\n\n/**\n * Configuration for creating fetch handlers\n */\ninterface FetchHandlerConfig<TData, TVariables> {\n /** Strategy for fetching data */\n fetchStrategy: FetchStrategy<TData, TVariables>;\n /** Feed helper functions */\n helpers: FeedHelpers;\n /** Base props for composing API variables */\n baseProps: any;\n /** Display handlers */\n displayHandlers: {\n displayResultStart: (props: any) => Promise<void>;\n displayResults: (props: { feedData: TData[] }) => Promise<void>;\n displayNoResults: (props: any) => void;\n };\n /** Layout element */\n layoutElement: any;\n /** Whether theme is dark */\n isThemeDark?: boolean;\n /** Whether to enable category fallback (show all results when no category results found) */\n enableCategoryFallback?: boolean;\n}\n\n/**\n * Create fetch handlers for a feed\n *\n * Returns handlers for:\n * - Initial data fetch (with count)\n * - Lazy load fetch (pagination)\n *\n * @param config - Configuration for the fetch handlers\n * @returns Fetch handler functions\n *\n * @example\n * ```typescript\n * const fetchHandlers = createFetchHandlers({\n * fetchStrategy: eventsFetchStrategy,\n * helpers: feedHelpers,\n * baseProps: { token, categories },\n * displayHandlers,\n * layoutElement,\n * isThemeDark: false,\n * });\n *\n * // Start initial fetch\n * await fetchHandlers.start();\n *\n * // Fetch more results\n * await fetchHandlers.loadMore();\n * ```\n */\nexport function createFetchHandlers<TData, TVariables>(\n config: FetchHandlerConfig<TData, TVariables>,\n) {\n const {\n fetchStrategy,\n helpers,\n baseProps,\n displayHandlers,\n layoutElement,\n isThemeDark,\n enableCategoryFallback = false,\n } = config;\n\n /**\n * Handle lazy loading more results\n */\n const loadMore = async (): Promise<void> => {\n const container = helpers.getContainer();\n const currentCount = helpers.getOffset();\n const totalEntries = helpers.getTotalEntries();\n\n // Remove existing pagination\n const existingPagination = container.querySelector(\n `.${Styles.layout.alignment.block.center.className}`,\n );\n existingPagination?.remove();\n\n // Show loading state\n const loading = new LoadingState({ isThemeDark });\n loading.show(container);\n\n // Compose API variables\n const variables = fetchStrategy.composeApiVariables({\n ...baseProps,\n getOffset: helpers.getOffset,\n });\n\n // Fetch entries\n const feedData = await fetchStrategy.fetchEntries(variables);\n\n if (feedData) {\n loading.hide();\n await displayHandlers.displayResults({ feedData });\n\n // Update announcer with new count\n const message = `Showing ${\n currentCount + feedData.length\n } of ${totalEntries} articles`;\n\n const existingAnnouncer = container.querySelector(\n '[role=\"status\"]',\n ) as HTMLElement;\n if (existingAnnouncer) {\n existingAnnouncer.textContent = message;\n } else {\n const announcer = new Announcer({ message });\n container.appendChild(announcer.getElement());\n }\n } else {\n loading.hide();\n displayHandlers.displayNoResults({\n message: 'An error occurred while loading more results.',\n });\n }\n };\n\n /**\n * Handle initial fetch (with count)\n */\n const start = async (): Promise<void> => {\n const variables = fetchStrategy.composeApiVariables({\n ...baseProps,\n getOffset: helpers.getOffset,\n });\n\n const count = await fetchStrategy.fetchCount(variables);\n\n if (count === 0) {\n // Only attempt category fallback if explicitly enabled (for events feeds)\n if (enableCategoryFallback && baseProps.categories && baseProps.categories.length > 0) {\n const fallbackVariables = fetchStrategy.composeApiVariables({\n ...baseProps,\n categories: undefined,\n getOffset: helpers.getOffset,\n });\n\n const fallbackCount = await fetchStrategy.fetchCount(fallbackVariables);\n\n if (fallbackCount && fallbackCount > 0) {\n helpers.setTotalEntries(fallbackCount);\n\n const fallbackData = await fetchStrategy.fetchEntries(\n fallbackVariables,\n );\n\n if (fallbackData && fallbackData.length > 0) {\n // Fetch category names from API\n let categoryNames = await fetchStrategy.fetchCategoryNames?.(\n baseProps.categories,\n baseProps.token,\n );\n\n // If fetch fails, format IDs as fallback\n if (!categoryNames || categoryNames.length === 0) {\n categoryNames = baseProps.categories.map((id: string) =>\n id\n .split('-')\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' '),\n );\n }\n\n await displayHandlers.displayResultStart({\n feedData: fallbackData,\n layoutElement,\n isFallback: true,\n categoryNames,\n });\n return;\n }\n }\n }\n\n displayHandlers.displayNoResults({});\n return;\n }\n\n if (count === null) {\n displayHandlers.displayNoResults({\n message: 'An error occurred while fetching the data.',\n });\n return;\n }\n\n if (count) {\n helpers.setTotalEntries(count);\n }\n\n // Fetch entries\n const feedData = await fetchStrategy.fetchEntries(variables);\n\n if (feedData && feedData.length > 0) {\n await displayHandlers.displayResultStart({\n feedData,\n layoutElement,\n });\n } else {\n displayHandlers.displayNoResults({\n message: 'An error occurred while fetching the data.',\n });\n }\n };\n\n return {\n start,\n loadMore,\n };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../source/factory/helpers/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { createBaseFeed } from './core';
|
|
2
|
+
export type { BaseFeedConfig, FeedHelpers, FetchStrategy, DisplayStrategy, LayoutStrategy, CardMappingOptions, ImageConfig, DisplayResultsProps, NoResultsConfig, FeedLifecycle, FeedEvents, FeedFactoryResult, LayoutOptions, } from './core/types';
|
|
3
|
+
export { createFeedHelpers, createDisplayHandlers, createFetchHandlers, setShadowStyles, } from './helpers';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/factory/index.ts"],"names":[],"mappings":"AA6BA,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAGxC,YAAY,EACV,cAAc,EACd,WAAW,EACX,aAAa,EACb,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,aAAa,GACd,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,GAChB,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_types.d.ts","sourceRoot":"","sources":["../../../source/feeds/academic/_types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../source/feeds/academic/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,cAAc,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../../source/feeds/academic/slider.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAiBjD,eAAO,MAAM,cAAc,GAAI,OAAO,mBAAmB,KAAG,YAKxD,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createSliderWidget } from "../../widgets/slider.js";
|
|
2
|
+
import { ACADEMIC_SLIDER_QUERY } from "../../strategies/fetch/academic.js";
|
|
3
|
+
const academicSlider = (props) => createSliderWidget({
|
|
4
|
+
...props,
|
|
5
|
+
query: ACADEMIC_SLIDER_QUERY,
|
|
6
|
+
url: "https://provost.umd.edu/graphql"
|
|
7
|
+
});
|
|
8
|
+
export {
|
|
9
|
+
academicSlider
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=slider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider.js","sources":["../../../source/feeds/academic/slider.ts"],"sourcesContent":["/**\n * Academic Slider Feed (Migrated)\n *\n * Displays academic events in a horizontal carousel layout.\n * Uses strategy pattern for GraphQL queries.\n *\n * @module composite/academic/slider-new\n */\n\nimport { slider } from '../../widgets';\nimport { ACADEMIC_SLIDER_QUERY } from '../../strategies/fetch/academic';\nimport { type AcademicSliderProps } from './_types';\nimport { type ElementModel } from '../../_types';\n\n/**\n * Creates an academic events slider feed\n *\n * @param props - Slider configuration options\n * @returns ElementModel with slider element and styles\n *\n * @example\n * ```typescript\n * const academicSlider = slider({\n * token: 'your-token',\n * categories: 'engineering,science',\n * isThemeDark: false,\n * });\n * ```\n */\nexport const academicSlider = (props: AcademicSliderProps): ElementModel =>\n slider({\n ...props,\n query: ACADEMIC_SLIDER_QUERY,\n url: 'https://provost.umd.edu/graphql',\n });\n"],"names":["slider"],"mappings":";;AA6BO,MAAM,iBAAiB,CAAC,UAC7BA,mBAAO;AAAA,EACL,GAAG;AAAA,EACH,OAAO;AAAA,EACP,KAAK;AACP,CAAC;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_types.d.ts","sourceRoot":"","sources":["../../../source/feeds/events/_types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../source/feeds/events/grid.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAqBjD,eAAO,MAAM,UAAU,GAAI,OAAO,UAAU,KAAG,YAa3C,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { createBaseFeed } from "../../factory/core/createBaseFeed.js";
|
|
2
|
+
import "@universityofmaryland/web-builder-library";
|
|
3
|
+
import "@universityofmaryland/web-styles-library";
|
|
4
|
+
import "@universityofmaryland/web-styles-library/typography";
|
|
5
|
+
import "@universityofmaryland/web-utilities-library/theme";
|
|
6
|
+
import "@universityofmaryland/web-elements-library";
|
|
7
|
+
import { eventsDisplayStrategy } from "../../strategies/display/events.js";
|
|
8
|
+
import "@universityofmaryland/web-elements-library/composite";
|
|
9
|
+
import "@universityofmaryland/web-utilities-library/elements";
|
|
10
|
+
import "@universityofmaryland/web-utilities-library/network";
|
|
11
|
+
import { eventsFetchStrategy } from "../../strategies/fetch/events.js";
|
|
12
|
+
import "../../strategies/fetch/news.js";
|
|
13
|
+
import "../../strategies/fetch/experts.js";
|
|
14
|
+
import { gridGapLayout } from "../../strategies/layout/grid.js";
|
|
15
|
+
import "@universityofmaryland/web-elements-library/layout";
|
|
16
|
+
const eventsGrid = (props) => createBaseFeed({
|
|
17
|
+
...props,
|
|
18
|
+
enableCategoryFallback: true,
|
|
19
|
+
fetchStrategy: eventsFetchStrategy,
|
|
20
|
+
displayStrategy: eventsDisplayStrategy,
|
|
21
|
+
layoutStrategy: gridGapLayout,
|
|
22
|
+
imageConfig: (entry) => ({
|
|
23
|
+
imageUrl: entry.image[0].url,
|
|
24
|
+
altText: entry.image[0].altText || "Event Image",
|
|
25
|
+
linkUrl: entry.url,
|
|
26
|
+
linkLabel: "University of Maryland Event"
|
|
27
|
+
})
|
|
28
|
+
});
|
|
29
|
+
export {
|
|
30
|
+
eventsGrid
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=grid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grid.js","sources":["../../../source/feeds/events/grid.ts"],"sourcesContent":["/**\n * Events Grid Feed (Factory Pattern)\n *\n * Grid layout for event entries using the feed factory pattern.\n * This is the NEW implementation using factory + strategies.\n *\n * @module composite/events/grid-new\n */\n\nimport { createBaseFeed } from 'factory';\nimport {\n eventsFetchStrategy,\n eventsDisplayStrategy,\n gridGapLayout,\n} from 'strategies';\nimport { type BlockProps } from './_types';\nimport { type ElementModel } from '../../_types';\n\n/**\n * Create an events grid feed\n *\n * @param props - Feed configuration\n * @returns ElementModel with feed element and styles\n *\n * @example\n * ```typescript\n * const feed = eventsGrid({\n * token: 'my-token',\n * numberOfColumnsToShow: 3,\n * numberOfRowsToStart: 2,\n * isLazyLoad: true,\n * categories: ['sports', 'arts'],\n * });\n *\n * document.body.appendChild(feed.element);\n * ```\n */\nexport const eventsGrid = (props: BlockProps): ElementModel =>\n createBaseFeed({\n ...props,\n enableCategoryFallback: true,\n fetchStrategy: eventsFetchStrategy,\n displayStrategy: eventsDisplayStrategy,\n layoutStrategy: gridGapLayout,\n imageConfig: (entry) => ({\n imageUrl: entry.image[0].url,\n altText: entry.image[0].altText || 'Event Image',\n linkUrl: entry.url,\n linkLabel: 'University of Maryland Event',\n }),\n });\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAqCO,MAAM,aAAa,CAAC,UACzB,eAAe;AAAA,EACb,GAAG;AAAA,EACH,wBAAwB;AAAA,EACxB,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,aAAa,CAAC,WAAW;AAAA,IACvB,UAAU,MAAM,MAAM,CAAC,EAAE;AAAA,IACzB,SAAS,MAAM,MAAM,CAAC,EAAE,WAAW;AAAA,IACnC,SAAS,MAAM;AAAA,IACf,WAAW;AAAA,EAAA;AAEf,CAAC;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grouped.d.ts","sourceRoot":"","sources":["../../../source/feeds/events/grouped.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAibjD,eAAO,MAAM,aAAa,GAAI,OAAO,SAAS,KAAG,YA+HhD,CAAC"}
|
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
import * as Styles from "@universityofmaryland/web-styles-library";
|
|
2
|
+
import { ElementBuilder } from "@universityofmaryland/web-builder-library";
|
|
3
|
+
import { card } from "@universityofmaryland/web-elements-library/composite";
|
|
4
|
+
import { events } from "@universityofmaryland/web-elements-library/atomic";
|
|
5
|
+
import { createImageOrLinkedImage, createTextContainer, createTextWithLink } from "@universityofmaryland/web-utilities-library/elements";
|
|
6
|
+
import { LoadingState } from "../../states/loading.js";
|
|
7
|
+
import { EmptyState } from "../../states/empty.js";
|
|
8
|
+
import { PaginationState } from "../../states/pagination.js";
|
|
9
|
+
import { Announcer } from "../../states/announcer.js";
|
|
10
|
+
import "@universityofmaryland/web-utilities-library/network";
|
|
11
|
+
import { eventsFetchStrategyRange } from "../../strategies/fetch/events.js";
|
|
12
|
+
import "../../strategies/fetch/news.js";
|
|
13
|
+
import "../../strategies/fetch/experts.js";
|
|
14
|
+
import "@universityofmaryland/web-elements-library/layout";
|
|
15
|
+
import { dispatch, eventNames } from "../../helpers/events/index.js";
|
|
16
|
+
import { groupEventsByDate } from "../../helpers/grouping/events.js";
|
|
17
|
+
import { setShadowStyles } from "../../helpers/styles/shadow.js";
|
|
18
|
+
const createFetchProps = (props, offset) => ({
|
|
19
|
+
token: props.token,
|
|
20
|
+
categories: props.categories,
|
|
21
|
+
numberOfColumnsToShow: 1,
|
|
22
|
+
numberOfRowsToStart: props.numberOfRowsToStart,
|
|
23
|
+
getOffset: () => offset
|
|
24
|
+
});
|
|
25
|
+
const createImageConfig = (entry) => ({
|
|
26
|
+
imageUrl: entry.image[0].url,
|
|
27
|
+
altText: entry.image[0].altText || "Event Image",
|
|
28
|
+
linkUrl: entry.url,
|
|
29
|
+
linkLabel: "University of Maryland Event"
|
|
30
|
+
});
|
|
31
|
+
const createAnnouncerMessage = (count, total, isLazyLoad) => {
|
|
32
|
+
return isLazyLoad ? `Showing ${count} of ${total} events` : `Showing ${count} events`;
|
|
33
|
+
};
|
|
34
|
+
class GroupedFeedState {
|
|
35
|
+
/**
|
|
36
|
+
* Initialize state with initial styles
|
|
37
|
+
*
|
|
38
|
+
* @param initialStyles - Initial CSS styles
|
|
39
|
+
*/
|
|
40
|
+
constructor(initialStyles) {
|
|
41
|
+
this.stylesArray = [];
|
|
42
|
+
this.shadowRoot = null;
|
|
43
|
+
this.totalEntries = 0;
|
|
44
|
+
this.offset = 0;
|
|
45
|
+
this.lastDateHeadline = null;
|
|
46
|
+
this.stylesArray.push(initialStyles);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Add styles to the accumulated styles
|
|
50
|
+
*
|
|
51
|
+
* @param styles - CSS styles to add
|
|
52
|
+
*/
|
|
53
|
+
addStyles(styles) {
|
|
54
|
+
this.stylesArray.push(styles);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Set shadow root reference for style updates
|
|
58
|
+
*
|
|
59
|
+
* @param shadow - Shadow root element
|
|
60
|
+
*/
|
|
61
|
+
setShadowRoot(shadow) {
|
|
62
|
+
this.shadowRoot = shadow;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Update shadow DOM styles
|
|
66
|
+
*
|
|
67
|
+
* @returns Promise that resolves when styles are updated
|
|
68
|
+
*/
|
|
69
|
+
async updateShadowStyles() {
|
|
70
|
+
if (!this.shadowRoot) return;
|
|
71
|
+
await setShadowStyles({
|
|
72
|
+
shadowRoot: this.shadowRoot,
|
|
73
|
+
styles: this.getStyles()
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Get accumulated styles as single string
|
|
78
|
+
*
|
|
79
|
+
* @returns Combined CSS styles
|
|
80
|
+
*/
|
|
81
|
+
getStyles() {
|
|
82
|
+
return this.stylesArray.join("\n");
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Get shadow root callback for events
|
|
86
|
+
*
|
|
87
|
+
* @returns Callback function for shadow root
|
|
88
|
+
*/
|
|
89
|
+
getShadowCallback() {
|
|
90
|
+
return (shadow) => this.setShadowRoot(shadow);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Get current offset
|
|
94
|
+
*
|
|
95
|
+
* @returns Current offset
|
|
96
|
+
*/
|
|
97
|
+
getOffset() {
|
|
98
|
+
return this.offset;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Increment offset by count
|
|
102
|
+
*
|
|
103
|
+
* @param count - Number to increment by
|
|
104
|
+
*/
|
|
105
|
+
incrementOffset(count) {
|
|
106
|
+
this.offset += count;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Get total entries
|
|
110
|
+
*
|
|
111
|
+
* @returns Total entries
|
|
112
|
+
*/
|
|
113
|
+
getTotalEntries() {
|
|
114
|
+
return this.totalEntries;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Set total entries
|
|
118
|
+
*
|
|
119
|
+
* @param total - Total entries
|
|
120
|
+
*/
|
|
121
|
+
setTotalEntries(total) {
|
|
122
|
+
this.totalEntries = total;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Get last date headline
|
|
126
|
+
*
|
|
127
|
+
* @returns Last date headline or null
|
|
128
|
+
*/
|
|
129
|
+
getLastDateHeadline() {
|
|
130
|
+
return this.lastDateHeadline;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Set last date headline
|
|
134
|
+
*
|
|
135
|
+
* @param headline - Date headline
|
|
136
|
+
*/
|
|
137
|
+
setLastDateHeadline(headline) {
|
|
138
|
+
this.lastDateHeadline = headline;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
const createDateHeader = (date, state) => {
|
|
142
|
+
const dateHeadline = document.createElement("p");
|
|
143
|
+
dateHeadline.textContent = date;
|
|
144
|
+
const headerElement = new ElementBuilder(dateHeadline).styled(Styles.element.text.decoration.ribbon).withStyles({
|
|
145
|
+
element: {
|
|
146
|
+
margin: `${Styles.token.spacing.lg} 0`
|
|
147
|
+
}
|
|
148
|
+
}).build();
|
|
149
|
+
state.addStyles(headerElement.styles);
|
|
150
|
+
return headerElement;
|
|
151
|
+
};
|
|
152
|
+
const createEventCard = (entry, isThemeDark) => {
|
|
153
|
+
return card.list({
|
|
154
|
+
headline: createTextWithLink({ text: entry.title, url: entry.url }),
|
|
155
|
+
text: createTextContainer({ text: entry.summary, allowHTML: true }),
|
|
156
|
+
dateSign: events.sign({
|
|
157
|
+
startMonth: entry.startMonth,
|
|
158
|
+
startDay: entry.startDay,
|
|
159
|
+
endMonth: entry.endMonth,
|
|
160
|
+
endDay: entry.endDay,
|
|
161
|
+
isThemeDark,
|
|
162
|
+
isLargeSize: true
|
|
163
|
+
}),
|
|
164
|
+
eventMeta: events.meta({
|
|
165
|
+
...entry,
|
|
166
|
+
isThemeDark
|
|
167
|
+
}),
|
|
168
|
+
image: createImageOrLinkedImage(createImageConfig(entry)),
|
|
169
|
+
isAligned: false,
|
|
170
|
+
isThemeDark
|
|
171
|
+
});
|
|
172
|
+
};
|
|
173
|
+
const createGroupContainer = (events2, state, isThemeDark) => {
|
|
174
|
+
const entriesBuilder = new ElementBuilder("div").withClassName("umd-feed-events-grouped-entries").withStyles({
|
|
175
|
+
element: {
|
|
176
|
+
[` > *:not(:last-child)`]: {
|
|
177
|
+
paddingBottom: Styles.token.spacing.md,
|
|
178
|
+
marginBottom: Styles.token.spacing.md,
|
|
179
|
+
borderBottom: `1px solid ${isThemeDark ? Styles.token.color.gray.dark : Styles.token.color.gray.light}`
|
|
180
|
+
},
|
|
181
|
+
[`+ .umd-feed-events-grouped-entries`]: {
|
|
182
|
+
paddingTop: Styles.token.spacing.md,
|
|
183
|
+
marginTop: Styles.token.spacing.md,
|
|
184
|
+
borderTop: `1px solid ${isThemeDark ? Styles.token.color.gray.dark : Styles.token.color.gray.light}`
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
events2.forEach((entry) => {
|
|
189
|
+
const eventCard = createEventCard(entry, isThemeDark);
|
|
190
|
+
entriesBuilder.withChild(eventCard);
|
|
191
|
+
state.addStyles(eventCard.styles);
|
|
192
|
+
});
|
|
193
|
+
const groupElement = entriesBuilder.build();
|
|
194
|
+
state.addStyles(groupElement.styles);
|
|
195
|
+
return groupElement;
|
|
196
|
+
};
|
|
197
|
+
const renderGroupedEvents = async (container, events2, state, isThemeDark, isLazyLoad, loadMore) => {
|
|
198
|
+
const grid = container.querySelector(
|
|
199
|
+
"#umd-feed-events-grouped-container"
|
|
200
|
+
);
|
|
201
|
+
if (!grid) return;
|
|
202
|
+
container.querySelector(".umd-loader-container")?.remove();
|
|
203
|
+
container.querySelector(`.${Styles.layout.alignment.block.center.className}`)?.remove();
|
|
204
|
+
const groupedEvents = groupEventsByDate(events2);
|
|
205
|
+
let actualEventCount = 0;
|
|
206
|
+
groupedEvents.forEach((group) => {
|
|
207
|
+
if (group.date !== state.getLastDateHeadline()) {
|
|
208
|
+
const headerElement = createDateHeader(group.date, state);
|
|
209
|
+
grid.appendChild(headerElement.element);
|
|
210
|
+
state.setLastDateHeadline(group.date);
|
|
211
|
+
}
|
|
212
|
+
const groupElement = createGroupContainer(group.events, state, isThemeDark);
|
|
213
|
+
grid.appendChild(groupElement.element);
|
|
214
|
+
actualEventCount += group.events.length;
|
|
215
|
+
});
|
|
216
|
+
state.incrementOffset(actualEventCount);
|
|
217
|
+
if (isLazyLoad && state.getTotalEntries() > state.getOffset()) {
|
|
218
|
+
const pagination = new PaginationState({
|
|
219
|
+
totalEntries: state.getTotalEntries(),
|
|
220
|
+
offset: state.getOffset(),
|
|
221
|
+
isLazyLoad: true,
|
|
222
|
+
callback: loadMore
|
|
223
|
+
});
|
|
224
|
+
const paginationElement = pagination.render(container);
|
|
225
|
+
if (paginationElement) {
|
|
226
|
+
state.addStyles(paginationElement.styles);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
await state.updateShadowStyles();
|
|
230
|
+
};
|
|
231
|
+
const renderError = async (container, state, isThemeDark) => {
|
|
232
|
+
const emptyState = new EmptyState({
|
|
233
|
+
message: "No events found",
|
|
234
|
+
isThemeDark
|
|
235
|
+
});
|
|
236
|
+
emptyState.render(container);
|
|
237
|
+
state.addStyles(emptyState.styles);
|
|
238
|
+
const announcer = new Announcer({ message: "No events found" });
|
|
239
|
+
container.appendChild(announcer.getElement());
|
|
240
|
+
dispatch(container, eventNames.FEED_ERROR, {
|
|
241
|
+
error: "No results found"
|
|
242
|
+
});
|
|
243
|
+
await state.updateShadowStyles();
|
|
244
|
+
};
|
|
245
|
+
const eventsGrouped = (props) => {
|
|
246
|
+
const {
|
|
247
|
+
token,
|
|
248
|
+
isThemeDark = false,
|
|
249
|
+
isLazyLoad = false,
|
|
250
|
+
numberOfRowsToStart,
|
|
251
|
+
categories
|
|
252
|
+
} = props;
|
|
253
|
+
const containerBuilder = new ElementBuilder("div").withClassName(
|
|
254
|
+
"events-grouped-feed"
|
|
255
|
+
);
|
|
256
|
+
const container = containerBuilder.getElement();
|
|
257
|
+
const loading = new LoadingState({ isThemeDark });
|
|
258
|
+
const state = new GroupedFeedState(loading.styles);
|
|
259
|
+
const layoutElement = new ElementBuilder("div").withClassName("umd-feed-events-grouped").build();
|
|
260
|
+
state.addStyles(layoutElement.styles);
|
|
261
|
+
const loadMore = async () => {
|
|
262
|
+
const fetchProps = createFetchProps(
|
|
263
|
+
{ token, categories, numberOfRowsToStart },
|
|
264
|
+
state.getOffset()
|
|
265
|
+
);
|
|
266
|
+
const variables = eventsFetchStrategyRange.composeApiVariables(fetchProps);
|
|
267
|
+
const entries = await eventsFetchStrategyRange.fetchEntries(variables);
|
|
268
|
+
if (entries && entries.length > 0) {
|
|
269
|
+
await renderGroupedEvents(
|
|
270
|
+
container,
|
|
271
|
+
entries,
|
|
272
|
+
state,
|
|
273
|
+
isThemeDark,
|
|
274
|
+
isLazyLoad,
|
|
275
|
+
loadMore
|
|
276
|
+
);
|
|
277
|
+
}
|
|
278
|
+
};
|
|
279
|
+
const initialize = async () => {
|
|
280
|
+
loading.show(container);
|
|
281
|
+
const fetchProps = createFetchProps(
|
|
282
|
+
{ token, categories, numberOfRowsToStart },
|
|
283
|
+
0
|
|
284
|
+
);
|
|
285
|
+
const variables = eventsFetchStrategyRange.composeApiVariables(fetchProps);
|
|
286
|
+
const [count, entries] = await Promise.all([
|
|
287
|
+
eventsFetchStrategyRange.fetchCount(variables),
|
|
288
|
+
eventsFetchStrategyRange.fetchEntries(variables)
|
|
289
|
+
]);
|
|
290
|
+
loading.hide();
|
|
291
|
+
if (!entries || entries.length === 0) {
|
|
292
|
+
await renderError(container, state, isThemeDark);
|
|
293
|
+
return;
|
|
294
|
+
}
|
|
295
|
+
state.setTotalEntries(count || entries.length);
|
|
296
|
+
layoutElement.element.setAttribute(
|
|
297
|
+
"id",
|
|
298
|
+
"umd-feed-events-grouped-container"
|
|
299
|
+
);
|
|
300
|
+
container.appendChild(layoutElement.element);
|
|
301
|
+
dispatch(container, eventNames.FEED_LOADED, {
|
|
302
|
+
items: entries,
|
|
303
|
+
count: entries.length,
|
|
304
|
+
total: state.getTotalEntries()
|
|
305
|
+
});
|
|
306
|
+
await renderGroupedEvents(
|
|
307
|
+
container,
|
|
308
|
+
entries,
|
|
309
|
+
state,
|
|
310
|
+
isThemeDark,
|
|
311
|
+
isLazyLoad,
|
|
312
|
+
loadMore
|
|
313
|
+
);
|
|
314
|
+
const message = createAnnouncerMessage(
|
|
315
|
+
entries.length,
|
|
316
|
+
state.getTotalEntries(),
|
|
317
|
+
isLazyLoad
|
|
318
|
+
);
|
|
319
|
+
const announcer = new Announcer({ message });
|
|
320
|
+
container.appendChild(announcer.getElement());
|
|
321
|
+
};
|
|
322
|
+
initialize();
|
|
323
|
+
const model = containerBuilder.build();
|
|
324
|
+
return {
|
|
325
|
+
element: model.element,
|
|
326
|
+
get styles() {
|
|
327
|
+
return state.getStyles();
|
|
328
|
+
},
|
|
329
|
+
events: {
|
|
330
|
+
callback: state.getShadowCallback()
|
|
331
|
+
}
|
|
332
|
+
};
|
|
333
|
+
};
|
|
334
|
+
export {
|
|
335
|
+
eventsGrouped
|
|
336
|
+
};
|
|
337
|
+
//# sourceMappingURL=grouped.js.map
|