@universityofmaryland/web-feeds-library 1.2.3 → 1.3.0-beta.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 +1 -1
- package/dist/academic.js +1 -1
- package/dist/academic.mjs +1 -1
- package/dist/events.d.ts +1 -1
- package/dist/events.js +4 -4
- package/dist/events.mjs +4 -4
- package/dist/experts.d.ts +2 -0
- package/dist/experts.js +9 -0
- package/dist/experts.js.map +1 -0
- package/dist/experts.mjs +9 -0
- package/dist/experts.mjs.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 +114 -0
- package/dist/factory/core/createBaseFeed.js.map +1 -0
- package/dist/factory/core/createBaseFeed.mjs +114 -0
- package/dist/factory/core/createBaseFeed.mjs.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 +91 -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 +187 -0
- package/dist/factory/helpers/displayHandler.js.map +1 -0
- package/dist/factory/helpers/displayHandler.mjs +169 -0
- package/dist/factory/helpers/displayHandler.mjs.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/feedHelpers.mjs +32 -0
- package/dist/factory/helpers/feedHelpers.mjs.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 +140 -0
- package/dist/factory/helpers/fetchHandler.js.map +1 -0
- package/dist/factory/helpers/fetchHandler.mjs +123 -0
- package/dist/factory/helpers/fetchHandler.mjs.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.map +1 -0
- package/dist/feeds/academic/slider.d.ts.map +1 -0
- package/dist/feeds/academic/slider.js +10 -0
- package/dist/feeds/academic/slider.js.map +1 -0
- package/dist/feeds/academic/slider.mjs +11 -0
- package/dist/feeds/academic/slider.mjs.map +1 -0
- package/dist/feeds/events/_types.d.ts.map +1 -0
- package/dist/feeds/events/grid.d.ts.map +1 -0
- package/dist/feeds/events/grid.js +31 -0
- package/dist/feeds/events/grid.js.map +1 -0
- package/dist/feeds/events/grid.mjs +32 -0
- package/dist/feeds/events/grid.mjs.map +1 -0
- package/dist/feeds/events/grouped.d.ts.map +1 -0
- package/dist/feeds/events/grouped.js +353 -0
- package/dist/feeds/events/grouped.js.map +1 -0
- package/dist/feeds/events/grouped.mjs +337 -0
- package/dist/feeds/events/grouped.mjs.map +1 -0
- package/dist/feeds/events/index.d.ts.map +1 -0
- package/dist/feeds/events/list.d.ts.map +1 -0
- package/dist/feeds/events/list.js +32 -0
- package/dist/feeds/events/list.js.map +1 -0
- package/dist/feeds/events/list.mjs +33 -0
- package/dist/feeds/events/list.mjs.map +1 -0
- package/dist/feeds/events/slider.d.ts.map +1 -0
- package/dist/feeds/events/slider.js +10 -0
- package/dist/feeds/events/slider.js.map +1 -0
- package/dist/feeds/events/slider.mjs +11 -0
- package/dist/feeds/events/slider.mjs.map +1 -0
- package/dist/feeds/experts/_types.d.ts +22 -0
- package/dist/feeds/experts/_types.d.ts.map +1 -0
- package/dist/feeds/experts/bio.d.ts +5 -0
- package/dist/feeds/experts/bio.d.ts.map +1 -0
- package/dist/feeds/experts/bio.js +146 -0
- package/dist/feeds/experts/bio.js.map +1 -0
- package/dist/feeds/experts/bio.mjs +147 -0
- package/dist/feeds/experts/bio.mjs.map +1 -0
- package/dist/feeds/experts/grid.d.ts +5 -0
- package/dist/feeds/experts/grid.d.ts.map +1 -0
- package/dist/feeds/experts/grid.js +36 -0
- package/dist/feeds/experts/grid.js.map +1 -0
- package/dist/feeds/experts/grid.mjs +37 -0
- package/dist/feeds/experts/grid.mjs.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.map +1 -0
- package/dist/feeds/experts/list.js +25 -0
- package/dist/feeds/experts/list.js.map +1 -0
- package/dist/feeds/experts/list.mjs +26 -0
- package/dist/feeds/experts/list.mjs.map +1 -0
- package/dist/feeds/news/_types.d.ts.map +1 -0
- package/dist/feeds/news/featured.d.ts.map +1 -0
- package/dist/feeds/news/featured.js +378 -0
- package/dist/feeds/news/featured.js.map +1 -0
- package/dist/feeds/news/featured.mjs +379 -0
- package/dist/feeds/news/featured.mjs.map +1 -0
- package/dist/feeds/news/grid.d.ts.map +1 -0
- package/dist/feeds/news/grid.js +36 -0
- package/dist/feeds/news/grid.js.map +1 -0
- package/dist/feeds/news/grid.mjs +37 -0
- package/dist/feeds/news/grid.mjs.map +1 -0
- package/dist/feeds/news/index.d.ts.map +1 -0
- package/dist/feeds/news/list.d.ts +5 -0
- package/dist/feeds/news/list.d.ts.map +1 -0
- package/dist/feeds/news/list.js +33 -0
- package/dist/feeds/news/list.js.map +1 -0
- package/dist/feeds/news/list.mjs +34 -0
- package/dist/feeds/news/list.mjs.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 → helpers}/events/index.js +2 -0
- package/dist/helpers/events/index.js.map +1 -0
- package/dist/{utilities → helpers}/events/index.mjs +2 -0
- package/dist/helpers/events/index.mjs.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/events.mjs +147 -0
- package/dist/helpers/grouping/events.mjs.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 +33 -0
- package/dist/helpers/styles/shadow.js.map +1 -0
- package/dist/helpers/styles/shadow.mjs +16 -0
- package/dist/helpers/styles/shadow.mjs.map +1 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -0
- package/dist/index.mjs.map +1 -1
- package/dist/news.d.ts +1 -1
- package/dist/news.js +3 -3
- package/dist/news.mjs +3 -3
- package/dist/states/_types.d.ts +60 -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/_types.mjs +12 -0
- package/dist/states/_types.mjs.map +1 -0
- package/dist/states/announcer.d.ts +16 -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/announcer.mjs +62 -0
- package/dist/states/announcer.mjs.map +1 -0
- package/dist/states/empty.d.ts +17 -0
- package/dist/states/empty.d.ts.map +1 -0
- package/dist/states/empty.js +121 -0
- package/dist/states/empty.js.map +1 -0
- package/dist/states/empty.mjs +104 -0
- package/dist/states/empty.mjs.map +1 -0
- package/dist/states/index.d.ts +10 -0
- package/dist/states/index.d.ts.map +1 -0
- package/dist/states/loading.d.ts +17 -0
- package/dist/states/loading.d.ts.map +1 -0
- package/dist/states/loading.js +155 -0
- package/dist/states/loading.js.map +1 -0
- package/dist/states/loading.mjs +155 -0
- package/dist/states/loading.mjs.map +1 -0
- package/dist/states/pagination.d.ts +19 -0
- package/dist/states/pagination.d.ts.map +1 -0
- package/dist/states/pagination.js +119 -0
- package/dist/states/pagination.js.map +1 -0
- package/dist/states/pagination.mjs +102 -0
- package/dist/states/pagination.mjs.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/events.mjs +60 -0
- package/dist/strategies/display/events.mjs.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/experts.mjs +266 -0
- package/dist/strategies/display/experts.mjs.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/display/news.mjs +58 -0
- package/dist/strategies/display/news.mjs.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/academic.mjs +30 -0
- package/dist/strategies/fetch/academic.mjs.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/events.mjs +223 -0
- package/dist/strategies/fetch/events.mjs.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 +189 -0
- package/dist/strategies/fetch/experts.js.map +1 -0
- package/dist/strategies/fetch/experts.mjs +189 -0
- package/dist/strategies/fetch/experts.mjs.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 +100 -0
- package/dist/strategies/fetch/graphql.js.map +1 -0
- package/dist/strategies/fetch/graphql.mjs +100 -0
- package/dist/strategies/fetch/graphql.mjs.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/fetch/news.mjs +95 -0
- package/dist/strategies/fetch/news.mjs.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/grid.mjs +36 -0
- package/dist/strategies/layout/grid.mjs.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/widgets/slider.d.ts.map +1 -0
- package/dist/{macros → widgets}/slider.js +2 -4
- package/dist/{macros/slider.mjs.map → widgets/slider.js.map} +1 -1
- package/dist/{macros → widgets}/slider.mjs +2 -4
- package/dist/widgets/slider.mjs.map +1 -0
- package/package.json +17 -3
- package/dist/composite/academic/_types.d.ts.map +0 -1
- package/dist/composite/academic/index.d.ts.map +0 -1
- package/dist/composite/academic/slider.d.ts.map +0 -1
- package/dist/composite/academic/slider.js +0 -34
- package/dist/composite/academic/slider.js.map +0 -1
- package/dist/composite/academic/slider.mjs +0 -35
- 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 -48
- package/dist/composite/events/common/data.d.ts.map +0 -1
- package/dist/composite/events/common/data.js +0 -53
- package/dist/composite/events/common/data.js.map +0 -1
- package/dist/composite/events/common/data.mjs +0 -53
- 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 -117
- package/dist/composite/events/common/fetch.js.map +0 -1
- package/dist/composite/events/common/fetch.mjs +0 -117
- 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.map +0 -1
- package/dist/composite/events/grid.js +0 -90
- package/dist/composite/events/grid.js.map +0 -1
- package/dist/composite/events/grid.mjs +0 -91
- package/dist/composite/events/grid.mjs.map +0 -1
- package/dist/composite/events/grouped.d.ts.map +0 -1
- package/dist/composite/events/grouped.js +0 -300
- package/dist/composite/events/grouped.js.map +0 -1
- package/dist/composite/events/grouped.mjs +0 -284
- package/dist/composite/events/grouped.mjs.map +0 -1
- package/dist/composite/events/index.d.ts.map +0 -1
- package/dist/composite/events/list.d.ts.map +0 -1
- package/dist/composite/events/list.js +0 -90
- package/dist/composite/events/list.js.map +0 -1
- package/dist/composite/events/list.mjs +0 -91
- package/dist/composite/events/list.mjs.map +0 -1
- package/dist/composite/events/slider.d.ts.map +0 -1
- package/dist/composite/events/slider.js +0 -35
- package/dist/composite/events/slider.js.map +0 -1
- package/dist/composite/events/slider.mjs +0 -36
- 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 -62
- package/dist/composite/news/common/data.js.map +0 -1
- package/dist/composite/news/common/data.mjs +0 -62
- 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 -87
- package/dist/composite/news/common/fetch.js.map +0 -1
- package/dist/composite/news/common/fetch.mjs +0 -87
- 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.map +0 -1
- package/dist/composite/news/featured.js +0 -182
- package/dist/composite/news/featured.js.map +0 -1
- package/dist/composite/news/featured.mjs +0 -183
- package/dist/composite/news/featured.mjs.map +0 -1
- package/dist/composite/news/grid.d.ts.map +0 -1
- package/dist/composite/news/grid.js +0 -98
- package/dist/composite/news/grid.js.map +0 -1
- package/dist/composite/news/grid.mjs +0 -99
- package/dist/composite/news/grid.mjs.map +0 -1
- package/dist/composite/news/index.d.ts.map +0 -1
- package/dist/composite/news/list.d.ts.map +0 -1
- package/dist/composite/news/list.js +0 -85
- package/dist/composite/news/list.js.map +0 -1
- package/dist/composite/news/list.mjs +0 -86
- 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 -27
- package/dist/elements/layout.d.ts.map +0 -1
- package/dist/elements/layout.js +0 -121
- package/dist/elements/layout.js.map +0 -1
- package/dist/elements/layout.mjs +0 -104
- 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/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 -19
- package/dist/macros/lazy-load.d.ts.map +0 -1
- package/dist/macros/lazy-load.js +0 -63
- package/dist/macros/lazy-load.js.map +0 -1
- package/dist/macros/lazy-load.mjs +0 -47
- package/dist/macros/lazy-load.mjs.map +0 -1
- package/dist/macros/loader.d.ts +0 -18
- package/dist/macros/loader.d.ts.map +0 -1
- package/dist/macros/loader.js +0 -148
- package/dist/macros/loader.js.map +0 -1
- package/dist/macros/loader.mjs +0 -132
- package/dist/macros/loader.mjs.map +0 -1
- package/dist/macros/no-results.d.ts +0 -15
- package/dist/macros/no-results.d.ts.map +0 -1
- package/dist/macros/no-results.js +0 -71
- package/dist/macros/no-results.js.map +0 -1
- package/dist/macros/no-results.mjs +0 -55
- package/dist/macros/no-results.mjs.map +0 -1
- package/dist/macros/slider.d.ts.map +0 -1
- package/dist/macros/slider.js.map +0 -1
- package/dist/utilities/events/index.d.ts.map +0 -1
- 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}/academic/index.d.ts +0 -0
- /package/dist/{composite → feeds}/academic/slider.d.ts +0 -0
- /package/dist/{composite → feeds}/events/_types.d.ts +0 -0
- /package/dist/{composite → feeds}/events/grid.d.ts +0 -0
- /package/dist/{composite → feeds}/events/grouped.d.ts +0 -0
- /package/dist/{composite → feeds}/events/index.d.ts +0 -0
- /package/dist/{composite → feeds}/events/list.d.ts +0 -0
- /package/dist/{composite → feeds}/events/slider.d.ts +0 -0
- /package/dist/{composite/news → feeds/experts}/list.d.ts +0 -0
- /package/dist/{composite → feeds}/news/_types.d.ts +0 -0
- /package/dist/{composite → feeds}/news/featured.d.ts +0 -0
- /package/dist/{composite → feeds}/news/grid.d.ts +0 -0
- /package/dist/{composite → feeds}/news/index.d.ts +0 -0
- /package/dist/{utilities → helpers}/network/fetch.d.ts +0 -0
- /package/dist/{utilities → helpers}/network/index.d.ts +0 -0
- /package/dist/{macros → widgets}/slider.d.ts +0 -0
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
const buildEventsCountQuery = (dateFilter = "startsAfterOrAt") => `
|
|
2
|
-
query getEventsCount($startDate: String!, $related: [QueryArgument]) {
|
|
3
|
-
count: solspace_calendar {
|
|
4
|
-
events(relatedTo: $related, loadOccurrences: true, ${dateFilter}: $startDate) {
|
|
5
|
-
... on communications_Event {
|
|
6
|
-
id
|
|
7
|
-
}
|
|
8
|
-
... on submission_Event {
|
|
9
|
-
id
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
`;
|
|
15
|
-
const buildEventsQuery = (dateFilter = "startsAfterOrAt") => `
|
|
16
|
-
query getEvents($startDate: String!, $related: [QueryArgument], $limit: Int, $offset: Int) {
|
|
17
|
-
entries: solspace_calendar {
|
|
18
|
-
events(
|
|
19
|
-
relatedTo: $related
|
|
20
|
-
loadOccurrences: true
|
|
21
|
-
${dateFilter}: $startDate
|
|
22
|
-
limit: $limit
|
|
23
|
-
offset: $offset
|
|
24
|
-
) {
|
|
25
|
-
... on communications_Event {
|
|
26
|
-
id
|
|
27
|
-
title
|
|
28
|
-
url
|
|
29
|
-
startDayOfWeek: startDate @formatDateTime(format: "D")
|
|
30
|
-
startMonth: startDate @formatDateTime(format: "M")
|
|
31
|
-
startDay: startDate @formatDateTime(format: "d")
|
|
32
|
-
startStamp: startDate @formatDateTime(format: "Y-m-d")
|
|
33
|
-
startTime: startDate @formatDateTime(format: "g:ia")
|
|
34
|
-
endDayOfWeek: endDate @formatDateTime(format: "D")
|
|
35
|
-
endMonth: endDate @formatDateTime(format: "M")
|
|
36
|
-
endDay: endDate @formatDateTime(format: "d")
|
|
37
|
-
endTime: endDate @formatDateTime(format: "g:ia")
|
|
38
|
-
allDay
|
|
39
|
-
desciption: commonRichText
|
|
40
|
-
summary: commonRichTextTwo
|
|
41
|
-
image: commonAssetHeroImageSingle {
|
|
42
|
-
title
|
|
43
|
-
commonPlainTextTwo: alt
|
|
44
|
-
url
|
|
45
|
-
}
|
|
46
|
-
location: categoriesCampusBuildingSingle {
|
|
47
|
-
title
|
|
48
|
-
}
|
|
49
|
-
link: commonEntriesLinkSingle {
|
|
50
|
-
... on links_links_Entry {
|
|
51
|
-
type: linksDropdownSelector
|
|
52
|
-
externalUrl: commonPlainTextThree
|
|
53
|
-
altTitle: commonPlainTextTwo
|
|
54
|
-
title
|
|
55
|
-
internalLinks: calendarEntriesEvent {
|
|
56
|
-
id
|
|
57
|
-
url
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
... on submission_Event {
|
|
63
|
-
id
|
|
64
|
-
title
|
|
65
|
-
url
|
|
66
|
-
startDayOfWeek: startDate @formatDateTime(format: "D")
|
|
67
|
-
startMonth: startDate @formatDateTime(format: "M")
|
|
68
|
-
startDay: startDate @formatDateTime(format: "d")
|
|
69
|
-
startStamp: startDate @formatDateTime(format: "Y-m-d")
|
|
70
|
-
startTime: startDate @formatDateTime(format: "g:ia")
|
|
71
|
-
endDayOfWeek: endDate @formatDateTime(format: "D")
|
|
72
|
-
endMonth: endDate @formatDateTime(format: "M")
|
|
73
|
-
endDay: endDate @formatDateTime(format: "d")
|
|
74
|
-
endTime: endDate @formatDateTime(format: "g:ia")
|
|
75
|
-
allDay
|
|
76
|
-
desciption: commonRichText
|
|
77
|
-
summary: commonRichTextTwo
|
|
78
|
-
image: commonAssetHeroImageSingle {
|
|
79
|
-
title
|
|
80
|
-
commonPlainTextTwo: alt
|
|
81
|
-
url
|
|
82
|
-
}
|
|
83
|
-
location: categoriesCampusBuildingSingle {
|
|
84
|
-
title
|
|
85
|
-
}
|
|
86
|
-
link: commonEntriesLinkSingle {
|
|
87
|
-
... on links_links_Entry {
|
|
88
|
-
type: linksDropdownSelector
|
|
89
|
-
externalUrl: commonPlainTextThree
|
|
90
|
-
altTitle: commonPlainTextTwo
|
|
91
|
-
title
|
|
92
|
-
internalLinks: calendarEntriesEvent {
|
|
93
|
-
id
|
|
94
|
-
url
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
`;
|
|
103
|
-
const EVENTS_COUNT_QUERY = buildEventsCountQuery();
|
|
104
|
-
const EVENTS_COUNT_RANGE_QUERY = buildEventsCountQuery("rangeStart");
|
|
105
|
-
const EVENTS_QUERY = buildEventsQuery();
|
|
106
|
-
const EVENTS_RANGE_QUERY = buildEventsQuery("rangeStart");
|
|
107
|
-
export {
|
|
108
|
-
EVENTS_COUNT_QUERY,
|
|
109
|
-
EVENTS_COUNT_RANGE_QUERY,
|
|
110
|
-
EVENTS_QUERY,
|
|
111
|
-
EVENTS_RANGE_QUERY
|
|
112
|
-
};
|
|
113
|
-
//# sourceMappingURL=queries.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queries.mjs","sources":["../../../../source/composite/events/common/queries.ts"],"sourcesContent":["type DateFilterType = 'startsAfterOrAt' | 'rangeStart';\n\nconst buildEventsCountQuery = (\n dateFilter: DateFilterType = 'startsAfterOrAt',\n) => `\nquery getEventsCount($startDate: String!, $related: [QueryArgument]) {\n count: solspace_calendar {\n events(relatedTo: $related, loadOccurrences: true, ${dateFilter}: $startDate) {\n ... on communications_Event {\n id\n }\n ... on submission_Event {\n id\n }\n }\n }\n}\n`;\n\nconst buildEventsQuery = (dateFilter: DateFilterType = 'startsAfterOrAt') => `\nquery getEvents($startDate: String!, $related: [QueryArgument], $limit: Int, $offset: Int) {\n entries: solspace_calendar {\n events(\n relatedTo: $related\n loadOccurrences: true\n ${dateFilter}: $startDate\n limit: $limit\n offset: $offset\n ) {\n ... on communications_Event {\n id\n title\n url\n startDayOfWeek: startDate @formatDateTime(format: \"D\")\n startMonth: startDate @formatDateTime(format: \"M\")\n startDay: startDate @formatDateTime(format: \"d\")\n startStamp: startDate @formatDateTime(format: \"Y-m-d\")\n startTime: startDate @formatDateTime(format: \"g:ia\")\n endDayOfWeek: endDate @formatDateTime(format: \"D\")\n endMonth: endDate @formatDateTime(format: \"M\")\n endDay: endDate @formatDateTime(format: \"d\")\n endTime: endDate @formatDateTime(format: \"g:ia\")\n allDay\n desciption: commonRichText\n summary: commonRichTextTwo\n image: commonAssetHeroImageSingle {\n title\n commonPlainTextTwo: alt\n url\n }\n location: categoriesCampusBuildingSingle {\n title\n }\n link: commonEntriesLinkSingle {\n ... on links_links_Entry {\n type: linksDropdownSelector\n externalUrl: commonPlainTextThree\n altTitle: commonPlainTextTwo\n title\n internalLinks: calendarEntriesEvent {\n id\n url\n }\n }\n }\n }\n ... on submission_Event {\n id\n title\n url\n startDayOfWeek: startDate @formatDateTime(format: \"D\")\n startMonth: startDate @formatDateTime(format: \"M\")\n startDay: startDate @formatDateTime(format: \"d\")\n startStamp: startDate @formatDateTime(format: \"Y-m-d\")\n startTime: startDate @formatDateTime(format: \"g:ia\")\n endDayOfWeek: endDate @formatDateTime(format: \"D\")\n endMonth: endDate @formatDateTime(format: \"M\")\n endDay: endDate @formatDateTime(format: \"d\")\n endTime: endDate @formatDateTime(format: \"g:ia\")\n allDay\n desciption: commonRichText\n summary: commonRichTextTwo\n image: commonAssetHeroImageSingle {\n title\n commonPlainTextTwo: alt\n url\n }\n location: categoriesCampusBuildingSingle {\n title\n }\n link: commonEntriesLinkSingle {\n ... on links_links_Entry {\n type: linksDropdownSelector\n externalUrl: commonPlainTextThree\n altTitle: commonPlainTextTwo\n title\n internalLinks: calendarEntriesEvent {\n id\n url\n }\n }\n }\n }\n }\n }\n}\n`;\n\nexport const EVENTS_COUNT_QUERY = buildEventsCountQuery();\nexport const EVENTS_COUNT_RANGE_QUERY = buildEventsCountQuery('rangeStart');\n\nexport const EVENTS_QUERY = buildEventsQuery();\nexport const EVENTS_RANGE_QUERY = buildEventsQuery('rangeStart');\n"],"names":[],"mappings":"AAEA,MAAM,wBAAwB,CAC5B,aAA6B,sBAC1B;AAAA;AAAA;AAAA,yDAGoD,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYnE,MAAM,mBAAmB,CAAC,aAA6B,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAMrE,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmFX,MAAM,qBAAqB,sBAAA;AAC3B,MAAM,2BAA2B,sBAAsB,YAAY;AAEnE,MAAM,eAAe,iBAAA;AACrB,MAAM,qBAAqB,iBAAiB,YAAY;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../source/composite/events/grid.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,UAAU,EAAoB,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;yBAEjC,OAAO,UAAU,KAAG,YAAY;AAAhD,wBAmFO"}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
const webElementsLibrary = require("@universityofmaryland/web-elements-library");
|
|
3
|
-
const asset = require("../../elements/asset.js");
|
|
4
|
-
const layout = require("../../elements/layout.js");
|
|
5
|
-
require("@universityofmaryland/web-styles-library");
|
|
6
|
-
const loader = require("../../macros/loader.js");
|
|
7
|
-
require("@universityofmaryland/web-utilities-library/network");
|
|
8
|
-
require("@universityofmaryland/web-elements-library/composite");
|
|
9
|
-
require("@universityofmaryland/web-elements-library/atomic");
|
|
10
|
-
const fetch = require("./common/fetch.js");
|
|
11
|
-
const display = require("./common/display.js");
|
|
12
|
-
const data = require("./common/data.js");
|
|
13
|
-
const grid = (props) => (() => {
|
|
14
|
-
const { isThemeDark, isTransparent, numberOfColumnsToShow } = props;
|
|
15
|
-
const loader$1 = loader.create({ isThemeDark });
|
|
16
|
-
const container = document.createElement("div");
|
|
17
|
-
const setTotalEntries = (count) => totalEntries = count;
|
|
18
|
-
const setOffset = (count) => offset = offset + count;
|
|
19
|
-
const setStyles = (additonalStyles) => styles += additonalStyles;
|
|
20
|
-
const getContainer = () => container;
|
|
21
|
-
const getTotalEntries = () => totalEntries;
|
|
22
|
-
const getOffset = () => offset;
|
|
23
|
-
const getStyles = () => styles;
|
|
24
|
-
const getShadowRoot = () => shadowRoot;
|
|
25
|
-
let totalEntries = 0;
|
|
26
|
-
let offset = 0;
|
|
27
|
-
let styles = `
|
|
28
|
-
${loader$1.styles}
|
|
29
|
-
`;
|
|
30
|
-
let shadowRoot = null;
|
|
31
|
-
const helperFunctions = {
|
|
32
|
-
setTotalEntries,
|
|
33
|
-
setOffset,
|
|
34
|
-
setStyles,
|
|
35
|
-
getContainer,
|
|
36
|
-
getOffset,
|
|
37
|
-
getTotalEntries,
|
|
38
|
-
getStyles,
|
|
39
|
-
getShadowRoot
|
|
40
|
-
};
|
|
41
|
-
const callback = (shadow) => {
|
|
42
|
-
shadowRoot = shadow;
|
|
43
|
-
};
|
|
44
|
-
const displayResults = async ({ feedData }) => {
|
|
45
|
-
await display.resultLoad({
|
|
46
|
-
...props,
|
|
47
|
-
...helperFunctions,
|
|
48
|
-
displayResults,
|
|
49
|
-
entries: feedData.map(
|
|
50
|
-
(entry) => webElementsLibrary.Composite.card.block({
|
|
51
|
-
...data.display({ entry, isThemeDark }),
|
|
52
|
-
image: asset.standard({
|
|
53
|
-
images: entry.image,
|
|
54
|
-
url: entry.url
|
|
55
|
-
}),
|
|
56
|
-
isAligned: false,
|
|
57
|
-
isTransparent
|
|
58
|
-
})
|
|
59
|
-
)
|
|
60
|
-
});
|
|
61
|
-
if (shadowRoot) {
|
|
62
|
-
display.setShadowStyles({
|
|
63
|
-
shadowRoot,
|
|
64
|
-
styles
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
const layoutElement = layout.gridGap({
|
|
69
|
-
count: numberOfColumnsToShow
|
|
70
|
-
});
|
|
71
|
-
container.appendChild(loader$1.element);
|
|
72
|
-
fetch.start({
|
|
73
|
-
...props,
|
|
74
|
-
...helperFunctions,
|
|
75
|
-
displayResults,
|
|
76
|
-
displayResultStart: display.resultStart,
|
|
77
|
-
displayNoResults: display.noResults,
|
|
78
|
-
layoutElement,
|
|
79
|
-
isThemeDark
|
|
80
|
-
});
|
|
81
|
-
return {
|
|
82
|
-
element: container,
|
|
83
|
-
styles,
|
|
84
|
-
events: {
|
|
85
|
-
callback
|
|
86
|
-
}
|
|
87
|
-
};
|
|
88
|
-
})();
|
|
89
|
-
module.exports = grid;
|
|
90
|
-
//# sourceMappingURL=grid.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"grid.js","sources":["../../../source/composite/events/grid.ts"],"sourcesContent":["import { Composite } from '@universityofmaryland/web-elements-library';\nimport * as feedElements from 'elements';\nimport * as feedMacros from 'macros';\nimport * as feedFetch from './common/fetch';\nimport * as feedDisplay from './common/display';\nimport * as dataComposed from './common/data';\nimport { type BlockProps, type FeedDisplay } from './_types';\nimport { type ElementModel } from '../../_types';\n\nexport default (props: BlockProps): ElementModel =>\n (() => {\n const { isThemeDark, isTransparent, numberOfColumnsToShow } = props;\n const loader = feedMacros.loader.create({ isThemeDark });\n const container = document.createElement('div');\n const setTotalEntries = (count: number) => (totalEntries = count);\n const setOffset = (count: number) => (offset = offset + count);\n const setStyles = (additonalStyles: string) => (styles += additonalStyles);\n const getContainer = () => container;\n const getTotalEntries = () => totalEntries;\n const getOffset = () => offset;\n const getStyles = () => styles;\n const getShadowRoot = () => shadowRoot;\n let totalEntries = 0;\n let offset = 0;\n let styles = `\n ${loader.styles}\n `;\n let shadowRoot: ShadowRoot | null = null;\n\n const helperFunctions = {\n setTotalEntries,\n setOffset,\n setStyles,\n getContainer,\n getOffset,\n getTotalEntries,\n getStyles,\n getShadowRoot,\n };\n\n const callback = (shadow: ShadowRoot) => {\n shadowRoot = shadow;\n };\n\n const displayResults = async ({ feedData }: FeedDisplay) => {\n await feedDisplay.resultLoad({\n ...props,\n ...helperFunctions,\n displayResults,\n entries: feedData.map((entry) =>\n Composite.card.block({\n ...dataComposed.display({ entry, isThemeDark }),\n image: feedElements.asset.standard({\n images: entry.image,\n url: entry.url,\n }),\n isAligned: false,\n isTransparent,\n }),\n ),\n });\n\n if (shadowRoot) {\n feedDisplay.setShadowStyles({\n shadowRoot,\n styles,\n });\n }\n };\n\n const layoutElement = feedElements.layout.gridGap({\n count: numberOfColumnsToShow,\n });\n container.appendChild(loader.element);\n\n feedFetch.start({\n ...props,\n ...helperFunctions,\n displayResults,\n displayResultStart: feedDisplay.resultStart,\n displayNoResults: feedDisplay.noResults,\n layoutElement,\n isThemeDark,\n });\n\n return {\n element: container,\n styles,\n events: {\n callback,\n },\n };\n })();\n"],"names":["loader","feedMacros.loader","feedDisplay.resultLoad","Composite","dataComposed.display","feedElements.asset.standard","feedDisplay.setShadowStyles","feedElements.layout.gridGap","feedFetch.start","feedDisplay.resultStart","feedDisplay.noResults"],"mappings":";;;;;;;;;;;;AASA,MAAA,OAAe,CAAC,WACb,MAAM;AACL,QAAM,EAAE,aAAa,eAAe,sBAAA,IAA0B;AAC9D,QAAMA,WAASC,OAAkB,OAAO,EAAE,aAAa;AACvD,QAAM,YAAY,SAAS,cAAc,KAAK;AAC9C,QAAM,kBAAkB,CAAC,UAAmB,eAAe;AAC3D,QAAM,YAAY,CAAC,UAAmB,SAAS,SAAS;AACxD,QAAM,YAAY,CAAC,oBAA6B,UAAU;AAC1D,QAAM,eAAe,MAAM;AAC3B,QAAM,kBAAkB,MAAM;AAC9B,QAAM,YAAY,MAAM;AACxB,QAAM,YAAY,MAAM;AACxB,QAAM,gBAAgB,MAAM;AAC5B,MAAI,eAAe;AACnB,MAAI,SAAS;AACb,MAAI,SAAS;AAAA,QACTD,SAAO,MAAM;AAAA;AAEjB,MAAI,aAAgC;AAEpC,QAAM,kBAAkB;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAGF,QAAM,WAAW,CAAC,WAAuB;AACvC,iBAAa;AAAA,EACf;AAEA,QAAM,iBAAiB,OAAO,EAAE,eAA4B;AAC1D,UAAME,mBAAuB;AAAA,MAC3B,GAAG;AAAA,MACH,GAAG;AAAA,MACH;AAAA,MACA,SAAS,SAAS;AAAA,QAAI,CAAC,UACrBC,mBAAAA,UAAU,KAAK,MAAM;AAAA,UACnB,GAAGC,aAAqB,EAAE,OAAO,aAAa;AAAA,UAC9C,OAAOC,MAAAA,SAA4B;AAAA,YACjC,QAAQ,MAAM;AAAA,YACd,KAAK,MAAM;AAAA,UAAA,CACZ;AAAA,UACD,WAAW;AAAA,UACX;AAAA,QAAA,CACD;AAAA,MAAA;AAAA,IACH,CACD;AAED,QAAI,YAAY;AACdC,8BAA4B;AAAA,QAC1B;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IACH;AAAA,EACF;AAEA,QAAM,gBAAgBC,OAAAA,QAA4B;AAAA,IAChD,OAAO;AAAA,EAAA,CACR;AACD,YAAU,YAAYP,SAAO,OAAO;AAEpCQ,cAAgB;AAAA,IACd,GAAG;AAAA,IACH,GAAG;AAAA,IACH;AAAA,IACA,oBAAoBC,QAAAA;AAAAA,IACpB,kBAAkBC,QAAAA;AAAAA,IAClB;AAAA,IACA;AAAA,EAAA,CACD;AAED,SAAO;AAAA,IACL,SAAS;AAAA,IACT;AAAA,IACA,QAAQ;AAAA,MACN;AAAA,IAAA;AAAA,EACF;AAEJ,GAAA;;"}
|
|
@@ -1,91 +0,0 @@
|
|
|
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 "@universityofmaryland/web-utilities-library/network";
|
|
7
|
-
import "@universityofmaryland/web-elements-library/composite";
|
|
8
|
-
import "@universityofmaryland/web-elements-library/atomic";
|
|
9
|
-
import { start } from "./common/fetch.mjs";
|
|
10
|
-
import { noResults, resultStart, resultLoad, setShadowStyles } from "./common/display.mjs";
|
|
11
|
-
import { display } from "./common/data.mjs";
|
|
12
|
-
const grid = (props) => (() => {
|
|
13
|
-
const { isThemeDark, isTransparent, numberOfColumnsToShow } = props;
|
|
14
|
-
const loader$1 = loader.create({ isThemeDark });
|
|
15
|
-
const container = document.createElement("div");
|
|
16
|
-
const setTotalEntries = (count) => totalEntries = count;
|
|
17
|
-
const setOffset = (count) => offset = offset + count;
|
|
18
|
-
const setStyles = (additonalStyles) => styles += additonalStyles;
|
|
19
|
-
const getContainer = () => container;
|
|
20
|
-
const getTotalEntries = () => totalEntries;
|
|
21
|
-
const getOffset = () => offset;
|
|
22
|
-
const getStyles = () => styles;
|
|
23
|
-
const getShadowRoot = () => shadowRoot;
|
|
24
|
-
let totalEntries = 0;
|
|
25
|
-
let offset = 0;
|
|
26
|
-
let styles = `
|
|
27
|
-
${loader$1.styles}
|
|
28
|
-
`;
|
|
29
|
-
let shadowRoot = null;
|
|
30
|
-
const helperFunctions = {
|
|
31
|
-
setTotalEntries,
|
|
32
|
-
setOffset,
|
|
33
|
-
setStyles,
|
|
34
|
-
getContainer,
|
|
35
|
-
getOffset,
|
|
36
|
-
getTotalEntries,
|
|
37
|
-
getStyles,
|
|
38
|
-
getShadowRoot
|
|
39
|
-
};
|
|
40
|
-
const callback = (shadow) => {
|
|
41
|
-
shadowRoot = shadow;
|
|
42
|
-
};
|
|
43
|
-
const displayResults = async ({ feedData }) => {
|
|
44
|
-
await resultLoad({
|
|
45
|
-
...props,
|
|
46
|
-
...helperFunctions,
|
|
47
|
-
displayResults,
|
|
48
|
-
entries: feedData.map(
|
|
49
|
-
(entry) => Composite.card.block({
|
|
50
|
-
...display({ entry, isThemeDark }),
|
|
51
|
-
image: standard({
|
|
52
|
-
images: entry.image,
|
|
53
|
-
url: entry.url
|
|
54
|
-
}),
|
|
55
|
-
isAligned: false,
|
|
56
|
-
isTransparent
|
|
57
|
-
})
|
|
58
|
-
)
|
|
59
|
-
});
|
|
60
|
-
if (shadowRoot) {
|
|
61
|
-
setShadowStyles({
|
|
62
|
-
shadowRoot,
|
|
63
|
-
styles
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
const layoutElement = gridGap({
|
|
68
|
-
count: numberOfColumnsToShow
|
|
69
|
-
});
|
|
70
|
-
container.appendChild(loader$1.element);
|
|
71
|
-
start({
|
|
72
|
-
...props,
|
|
73
|
-
...helperFunctions,
|
|
74
|
-
displayResults,
|
|
75
|
-
displayResultStart: resultStart,
|
|
76
|
-
displayNoResults: noResults,
|
|
77
|
-
layoutElement,
|
|
78
|
-
isThemeDark
|
|
79
|
-
});
|
|
80
|
-
return {
|
|
81
|
-
element: container,
|
|
82
|
-
styles,
|
|
83
|
-
events: {
|
|
84
|
-
callback
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
})();
|
|
88
|
-
export {
|
|
89
|
-
grid as default
|
|
90
|
-
};
|
|
91
|
-
//# sourceMappingURL=grid.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"grouped.d.ts","sourceRoot":"","sources":["../../../source/composite/events/grouped.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,SAAS,EAAoC,MAAM,UAAU,CAAC;AAC5E,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;yBAwLjC,OAAO,SAAS,KAAG,YAAY;AAA/C,wBAiKO"}
|
|
@@ -1,300 +0,0 @@
|
|
|
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("@universityofmaryland/web-utilities-library/network");
|
|
7
|
-
require("@universityofmaryland/web-elements-library/composite");
|
|
8
|
-
require("@universityofmaryland/web-elements-library/atomic");
|
|
9
|
-
const fetch = require("./common/fetch.js");
|
|
10
|
-
const display = require("./common/display.js");
|
|
11
|
-
const data = require("./common/data.js");
|
|
12
|
-
const queries = require("./common/queries.js");
|
|
13
|
-
function _interopNamespaceDefault(e) {
|
|
14
|
-
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
|
15
|
-
if (e) {
|
|
16
|
-
for (const k in e) {
|
|
17
|
-
if (k !== "default") {
|
|
18
|
-
const d = Object.getOwnPropertyDescriptor(e, k);
|
|
19
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
20
|
-
enumerable: true,
|
|
21
|
-
get: () => e[k]
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
n.default = e;
|
|
27
|
-
return Object.freeze(n);
|
|
28
|
-
}
|
|
29
|
-
const Styles__namespace = /* @__PURE__ */ _interopNamespaceDefault(Styles);
|
|
30
|
-
const getDateBanner = (dateStamp) => {
|
|
31
|
-
const dateParts = dateStamp.split("T")[0].split("-");
|
|
32
|
-
const year = parseInt(dateParts[0], 10);
|
|
33
|
-
const month = parseInt(dateParts[1], 10) - 1;
|
|
34
|
-
const day = parseInt(dateParts[2], 10);
|
|
35
|
-
const eventDate = new Date(year, month, day);
|
|
36
|
-
const currentDate = /* @__PURE__ */ new Date();
|
|
37
|
-
currentDate.setHours(0, 0, 0, 0);
|
|
38
|
-
const weekFromNow = /* @__PURE__ */ new Date();
|
|
39
|
-
weekFromNow.setDate(currentDate.getDate() + 7);
|
|
40
|
-
weekFromNow.setHours(0, 0, 0, 0);
|
|
41
|
-
if (eventDate.getFullYear() === currentDate.getFullYear() && eventDate.getMonth() === currentDate.getMonth() && eventDate.getDate() === currentDate.getDate()) {
|
|
42
|
-
return "Today";
|
|
43
|
-
}
|
|
44
|
-
if (eventDate.getTime() > currentDate.getTime() && eventDate.getTime() <= weekFromNow.getTime()) {
|
|
45
|
-
const days2 = [
|
|
46
|
-
"Sunday",
|
|
47
|
-
"Monday",
|
|
48
|
-
"Tuesday",
|
|
49
|
-
"Wednesday",
|
|
50
|
-
"Thursday",
|
|
51
|
-
"Friday",
|
|
52
|
-
"Saturday"
|
|
53
|
-
];
|
|
54
|
-
return days2[eventDate.getDay()];
|
|
55
|
-
}
|
|
56
|
-
const days = [
|
|
57
|
-
"Sunday",
|
|
58
|
-
"Monday",
|
|
59
|
-
"Tuesday",
|
|
60
|
-
"Wednesday",
|
|
61
|
-
"Thursday",
|
|
62
|
-
"Friday",
|
|
63
|
-
"Saturday"
|
|
64
|
-
];
|
|
65
|
-
const months = [
|
|
66
|
-
"Jan",
|
|
67
|
-
"Feb",
|
|
68
|
-
"Mar",
|
|
69
|
-
"Apr",
|
|
70
|
-
"May",
|
|
71
|
-
"Jun",
|
|
72
|
-
"Jul",
|
|
73
|
-
"Aug",
|
|
74
|
-
"Sep",
|
|
75
|
-
"Oct",
|
|
76
|
-
"Nov",
|
|
77
|
-
"Dec"
|
|
78
|
-
];
|
|
79
|
-
return `${days[eventDate.getDay()]}, ${months[eventDate.getMonth()]} ${eventDate.getDate()}`;
|
|
80
|
-
};
|
|
81
|
-
const MONTH_MAP = {
|
|
82
|
-
Jan: "01",
|
|
83
|
-
Feb: "02",
|
|
84
|
-
Mar: "03",
|
|
85
|
-
Apr: "04",
|
|
86
|
-
May: "05",
|
|
87
|
-
Jun: "06",
|
|
88
|
-
Jul: "07",
|
|
89
|
-
Aug: "08",
|
|
90
|
-
Sep: "09",
|
|
91
|
-
Oct: "10",
|
|
92
|
-
Nov: "11",
|
|
93
|
-
Dec: "12"
|
|
94
|
-
};
|
|
95
|
-
const parseLocalDate = (dateString) => {
|
|
96
|
-
const parts = dateString.split("-");
|
|
97
|
-
const date = new Date(
|
|
98
|
-
parseInt(parts[0], 10),
|
|
99
|
-
parseInt(parts[1], 10) - 1,
|
|
100
|
-
parseInt(parts[2], 10)
|
|
101
|
-
);
|
|
102
|
-
date.setHours(0, 0, 0, 0);
|
|
103
|
-
return date;
|
|
104
|
-
};
|
|
105
|
-
const getEventStartDate = (event) => {
|
|
106
|
-
return parseLocalDate(event.startStamp.split("T")[0]);
|
|
107
|
-
};
|
|
108
|
-
const isMultiDayEvent = (event) => {
|
|
109
|
-
const startParts = event.startStamp.split("T")[0].split("-");
|
|
110
|
-
const startMonth = startParts[1];
|
|
111
|
-
const startDay = startParts[2];
|
|
112
|
-
const endMonth = MONTH_MAP[event.endMonth];
|
|
113
|
-
const endDay = event.endDay.padStart(2, "0");
|
|
114
|
-
return !(startMonth === endMonth && startDay === endDay);
|
|
115
|
-
};
|
|
116
|
-
const eventStartsOnDate = (event, targetDate) => {
|
|
117
|
-
const eventStartDate = getEventStartDate(event);
|
|
118
|
-
return eventStartDate.getTime() === targetDate.getTime();
|
|
119
|
-
};
|
|
120
|
-
const getEventPriority = (event, groupDate) => {
|
|
121
|
-
const isMulti = isMultiDayEvent(event);
|
|
122
|
-
const startsOnDate = eventStartsOnDate(event, groupDate);
|
|
123
|
-
if (isMulti && startsOnDate) return 1;
|
|
124
|
-
if (!isMulti) return 2;
|
|
125
|
-
return 3;
|
|
126
|
-
};
|
|
127
|
-
const sortEventsByPriority = (events, groupDate) => {
|
|
128
|
-
return [...events].sort((a, b) => {
|
|
129
|
-
const aPriority = getEventPriority(a, groupDate);
|
|
130
|
-
const bPriority = getEventPriority(b, groupDate);
|
|
131
|
-
return aPriority - bPriority;
|
|
132
|
-
});
|
|
133
|
-
};
|
|
134
|
-
const groupEventsByDate = (events) => {
|
|
135
|
-
const currentDate = /* @__PURE__ */ new Date();
|
|
136
|
-
currentDate.setHours(0, 0, 0, 0);
|
|
137
|
-
const grouped2 = events.reduce((acc, event) => {
|
|
138
|
-
const eventDate = getEventStartDate(event);
|
|
139
|
-
const dateKey = eventDate < currentDate ? currentDate.toISOString().split("T")[0] : event.startStamp;
|
|
140
|
-
if (!acc[dateKey]) {
|
|
141
|
-
acc[dateKey] = {
|
|
142
|
-
date: getDateBanner(dateKey),
|
|
143
|
-
events: []
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
|
-
acc[dateKey].events.push(event);
|
|
147
|
-
return acc;
|
|
148
|
-
}, {});
|
|
149
|
-
Object.keys(grouped2).forEach((dateKey) => {
|
|
150
|
-
const groupDate = parseLocalDate(dateKey);
|
|
151
|
-
grouped2[dateKey].events = sortEventsByPriority(
|
|
152
|
-
grouped2[dateKey].events,
|
|
153
|
-
groupDate
|
|
154
|
-
);
|
|
155
|
-
});
|
|
156
|
-
return Object.values(grouped2).sort((a, b) => {
|
|
157
|
-
const dateA = new Date(
|
|
158
|
-
Object.keys(grouped2).find((key) => grouped2[key] === a) || ""
|
|
159
|
-
);
|
|
160
|
-
const dateB = new Date(
|
|
161
|
-
Object.keys(grouped2).find((key) => grouped2[key] === b) || ""
|
|
162
|
-
);
|
|
163
|
-
return dateA.getTime() - dateB.getTime();
|
|
164
|
-
});
|
|
165
|
-
};
|
|
166
|
-
const grouped = (props) => (() => {
|
|
167
|
-
const { isThemeDark } = props;
|
|
168
|
-
const loader$1 = loader.create({ isThemeDark });
|
|
169
|
-
const container = document.createElement("div");
|
|
170
|
-
const setTotalEntries = (count) => totalEntries = count;
|
|
171
|
-
const setOffset = (count) => offset = offset + count;
|
|
172
|
-
const setStyles = (additonalStyles) => styles += additonalStyles;
|
|
173
|
-
const getContainer = () => container;
|
|
174
|
-
const getTotalEntries = () => totalEntries;
|
|
175
|
-
const getOffset = () => offset;
|
|
176
|
-
const getStyles = () => styles;
|
|
177
|
-
const getShadowRoot = () => shadowRoot;
|
|
178
|
-
let totalEntries = 0;
|
|
179
|
-
let offset = 0;
|
|
180
|
-
let styles = `
|
|
181
|
-
${loader$1.styles}
|
|
182
|
-
`;
|
|
183
|
-
let shadowRoot = null;
|
|
184
|
-
let lastDateHeadline = null;
|
|
185
|
-
const helperFunctions = {
|
|
186
|
-
setTotalEntries,
|
|
187
|
-
setOffset,
|
|
188
|
-
setStyles,
|
|
189
|
-
getContainer,
|
|
190
|
-
getOffset,
|
|
191
|
-
getTotalEntries,
|
|
192
|
-
getStyles,
|
|
193
|
-
getShadowRoot
|
|
194
|
-
};
|
|
195
|
-
const callback = (shadow) => {
|
|
196
|
-
shadowRoot = shadow;
|
|
197
|
-
};
|
|
198
|
-
const groupLayout = () => {
|
|
199
|
-
return webElementsLibrary.Model.ElementModel.createDiv({
|
|
200
|
-
className: "umd-feed-events-grouped",
|
|
201
|
-
elementStyles: {
|
|
202
|
-
element: {}
|
|
203
|
-
}
|
|
204
|
-
});
|
|
205
|
-
};
|
|
206
|
-
const displayResults = async ({ feedData }) => {
|
|
207
|
-
const groupedEvents = groupEventsByDate(feedData);
|
|
208
|
-
const entries = [];
|
|
209
|
-
let actualEventCount = 0;
|
|
210
|
-
groupedEvents.forEach((group) => {
|
|
211
|
-
if (group.date !== lastDateHeadline) {
|
|
212
|
-
const dateHeadline = document.createElement("p");
|
|
213
|
-
dateHeadline.textContent = group.date;
|
|
214
|
-
entries.push(
|
|
215
|
-
webElementsLibrary.Model.ElementModel.text.ribbon({
|
|
216
|
-
element: dateHeadline,
|
|
217
|
-
elementStyles: {
|
|
218
|
-
element: {
|
|
219
|
-
margin: `${Styles__namespace.token.spacing.lg} 0`
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
})
|
|
223
|
-
);
|
|
224
|
-
lastDateHeadline = group.date;
|
|
225
|
-
}
|
|
226
|
-
const dateEntries = group.events.map(
|
|
227
|
-
(entry) => webElementsLibrary.Composite.card.list({
|
|
228
|
-
...data.display({ entry, isThemeDark }),
|
|
229
|
-
dateSign: webElementsLibrary.Atomic.events.sign({
|
|
230
|
-
...entry,
|
|
231
|
-
isThemeDark,
|
|
232
|
-
isLargeSize: true
|
|
233
|
-
}),
|
|
234
|
-
image: asset.standard({
|
|
235
|
-
images: entry.image,
|
|
236
|
-
url: entry.url
|
|
237
|
-
}),
|
|
238
|
-
isAligned: false
|
|
239
|
-
})
|
|
240
|
-
);
|
|
241
|
-
actualEventCount += group.events.length;
|
|
242
|
-
entries.push(
|
|
243
|
-
webElementsLibrary.Model.ElementModel.createDiv({
|
|
244
|
-
className: "umd-feed-events-grouped-entries",
|
|
245
|
-
children: [...dateEntries],
|
|
246
|
-
elementStyles: {
|
|
247
|
-
element: {
|
|
248
|
-
[` > *:not(:last-child)`]: {
|
|
249
|
-
paddingBottom: Styles__namespace.token.spacing.md,
|
|
250
|
-
marginBottom: Styles__namespace.token.spacing.md,
|
|
251
|
-
borderBottom: `1px solid ${isThemeDark ? Styles__namespace.token.color.gray.dark : Styles__namespace.token.color.gray.light}`
|
|
252
|
-
},
|
|
253
|
-
[`+ .umd-feed-events-grouped-entries`]: {
|
|
254
|
-
paddingTop: Styles__namespace.token.spacing.md,
|
|
255
|
-
marginTop: Styles__namespace.token.spacing.md,
|
|
256
|
-
borderTop: `1px solid ${isThemeDark ? Styles__namespace.token.color.gray.dark : Styles__namespace.token.color.gray.light}`
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
})
|
|
261
|
-
);
|
|
262
|
-
});
|
|
263
|
-
const originalSetOffset = helperFunctions.setOffset;
|
|
264
|
-
helperFunctions.setOffset = () => originalSetOffset(actualEventCount);
|
|
265
|
-
await display.resultLoad({
|
|
266
|
-
...props,
|
|
267
|
-
...helperFunctions,
|
|
268
|
-
displayResults,
|
|
269
|
-
entries,
|
|
270
|
-
query: queries.EVENTS_RANGE_QUERY
|
|
271
|
-
});
|
|
272
|
-
helperFunctions.setOffset = originalSetOffset;
|
|
273
|
-
if (shadowRoot) {
|
|
274
|
-
display.setShadowStyles({
|
|
275
|
-
shadowRoot,
|
|
276
|
-
styles
|
|
277
|
-
});
|
|
278
|
-
}
|
|
279
|
-
};
|
|
280
|
-
container.appendChild(loader$1.element);
|
|
281
|
-
fetch.start({
|
|
282
|
-
...props,
|
|
283
|
-
...helperFunctions,
|
|
284
|
-
displayResults,
|
|
285
|
-
displayResultStart: display.resultStart,
|
|
286
|
-
displayNoResults: display.noResults,
|
|
287
|
-
layoutElement: groupLayout(),
|
|
288
|
-
query: queries.EVENTS_RANGE_QUERY,
|
|
289
|
-
countQuery: queries.EVENTS_COUNT_RANGE_QUERY
|
|
290
|
-
});
|
|
291
|
-
return {
|
|
292
|
-
element: container,
|
|
293
|
-
styles,
|
|
294
|
-
events: {
|
|
295
|
-
callback
|
|
296
|
-
}
|
|
297
|
-
};
|
|
298
|
-
})();
|
|
299
|
-
module.exports = grouped;
|
|
300
|
-
//# sourceMappingURL=grouped.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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 { EVENTS_RANGE_QUERY, EVENTS_COUNT_RANGE_QUERY } from './common/queries';\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 MONTH_MAP: Record<string, string> = {\n Jan: '01',\n Feb: '02',\n Mar: '03',\n Apr: '04',\n May: '05',\n Jun: '06',\n Jul: '07',\n Aug: '08',\n Sep: '09',\n Oct: '10',\n Nov: '11',\n Dec: '12',\n};\n\nconst parseLocalDate = (dateString: string): Date => {\n const parts = dateString.split('-');\n const date = new Date(\n parseInt(parts[0], 10),\n parseInt(parts[1], 10) - 1,\n parseInt(parts[2], 10),\n );\n date.setHours(0, 0, 0, 0);\n return date;\n};\n\nconst getEventStartDate = (event: EventType): Date => {\n return parseLocalDate(event.startStamp.split('T')[0]);\n};\n\nconst isMultiDayEvent = (event: EventType): boolean => {\n const startParts = event.startStamp.split('T')[0].split('-');\n const startMonth = startParts[1];\n const startDay = startParts[2];\n const endMonth = MONTH_MAP[event.endMonth];\n const endDay = event.endDay.padStart(2, '0');\n\n return !(startMonth === endMonth && startDay === endDay);\n};\n\nconst eventStartsOnDate = (event: EventType, targetDate: Date): boolean => {\n const eventStartDate = getEventStartDate(event);\n return eventStartDate.getTime() === targetDate.getTime();\n};\n\nconst getEventPriority = (event: EventType, groupDate: Date): number => {\n const isMulti = isMultiDayEvent(event);\n const startsOnDate = eventStartsOnDate(event, groupDate);\n\n if (isMulti && startsOnDate) return 1;\n if (!isMulti) return 2;\n return 3;\n};\n\nconst sortEventsByPriority = (\n events: EventType[],\n groupDate: Date,\n): EventType[] => {\n return [...events].sort((a, b) => {\n const aPriority = getEventPriority(a, groupDate);\n const bPriority = getEventPriority(b, groupDate);\n return aPriority - bPriority;\n });\n};\n\nconst groupEventsByDate = (events: EventType[]): GroupedEvent[] => {\n const currentDate = new Date();\n currentDate.setHours(0, 0, 0, 0);\n\n const grouped = events.reduce((acc, event) => {\n const eventDate = getEventStartDate(event);\n const dateKey =\n eventDate < currentDate\n ? currentDate.toISOString().split('T')[0]\n : event.startStamp;\n\n if (!acc[dateKey]) {\n acc[dateKey] = {\n date: getDateBanner(dateKey),\n events: [],\n };\n }\n acc[dateKey].events.push(event);\n return acc;\n }, {} as Record<string, GroupedEvent>);\n\n Object.keys(grouped).forEach((dateKey) => {\n const groupDate = parseLocalDate(dateKey);\n grouped[dateKey].events = sortEventsByPriority(\n grouped[dateKey].events,\n groupDate,\n );\n });\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 let lastDateHeadline: string | 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 if (group.date !== lastDateHeadline) {\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 lastDateHeadline = group.date;\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: true,\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.md,\n marginBottom: Styles.token.spacing.md,\n borderBottom: `1px solid ${\n isThemeDark\n ? Styles.token.color.gray.dark\n : Styles.token.color.gray.light\n }`,\n },\n\n [`+ .umd-feed-events-grouped-entries`]: {\n paddingTop: Styles.token.spacing.md,\n marginTop: Styles.token.spacing.md,\n borderTop: `1px solid ${\n isThemeDark\n ? Styles.token.color.gray.dark\n : Styles.token.color.gray.light\n }`,\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 query: EVENTS_RANGE_QUERY,\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 query: EVENTS_RANGE_QUERY,\n countQuery: EVENTS_COUNT_RANGE_QUERY,\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","EVENTS_RANGE_QUERY","feedDisplay.setShadowStyles","feedFetch.start","feedDisplay.resultStart","feedDisplay.noResults","EVENTS_COUNT_RANGE_QUERY"],"mappings":"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"}
|