@universityofmaryland/web-feeds-library 1.0.8 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. package/README.md +1 -1
  2. package/dist/academic.d.ts +2 -0
  3. package/dist/academic.js +5 -0
  4. package/dist/academic.js.map +1 -0
  5. package/dist/academic.mjs +5 -0
  6. package/dist/academic.mjs.map +1 -0
  7. package/dist/composite/academic/slider.d.ts +2 -2
  8. package/dist/composite/academic/slider.d.ts.map +1 -1
  9. package/dist/composite/academic/slider.js +34 -0
  10. package/dist/composite/academic/slider.js.map +1 -0
  11. package/dist/composite/academic/slider.mjs +35 -0
  12. package/dist/composite/academic/slider.mjs.map +1 -0
  13. package/dist/composite/events/common/data.d.ts +1 -1
  14. package/dist/composite/events/common/data.d.ts.map +1 -1
  15. package/dist/composite/events/common/data.js +53 -0
  16. package/dist/composite/events/common/data.js.map +1 -0
  17. package/dist/composite/events/common/data.mjs +53 -0
  18. package/dist/composite/events/common/data.mjs.map +1 -0
  19. package/dist/composite/events/common/display.d.ts.map +1 -1
  20. package/dist/composite/events/common/display.js +144 -0
  21. package/dist/composite/events/common/display.js.map +1 -0
  22. package/dist/composite/events/common/display.mjs +127 -0
  23. package/dist/composite/events/common/display.mjs.map +1 -0
  24. package/dist/composite/events/common/fetch.d.ts.map +1 -1
  25. package/dist/composite/events/common/fetch.js +105 -0
  26. package/dist/composite/events/common/fetch.js.map +1 -0
  27. package/dist/composite/events/common/fetch.mjs +105 -0
  28. package/dist/composite/events/common/fetch.mjs.map +1 -0
  29. package/dist/composite/events/common/queries.js +107 -0
  30. package/dist/composite/events/common/queries.js.map +1 -0
  31. package/dist/composite/events/common/queries.mjs +107 -0
  32. package/dist/composite/events/common/queries.mjs.map +1 -0
  33. package/dist/composite/events/grid.d.ts +2 -2
  34. package/dist/composite/events/grid.d.ts.map +1 -1
  35. package/dist/composite/events/grid.js +88 -0
  36. package/dist/composite/events/grid.js.map +1 -0
  37. package/dist/composite/events/grid.mjs +89 -0
  38. package/dist/composite/events/grid.mjs.map +1 -0
  39. package/dist/composite/events/grouped.d.ts +2 -2
  40. package/dist/composite/events/grouped.d.ts.map +1 -1
  41. package/dist/composite/events/grouped.js +221 -0
  42. package/dist/composite/events/grouped.js.map +1 -0
  43. package/dist/composite/events/grouped.mjs +205 -0
  44. package/dist/composite/events/grouped.mjs.map +1 -0
  45. package/dist/composite/events/list.d.ts +2 -2
  46. package/dist/composite/events/list.d.ts.map +1 -1
  47. package/dist/composite/events/list.js +88 -0
  48. package/dist/composite/events/list.js.map +1 -0
  49. package/dist/composite/events/list.mjs +89 -0
  50. package/dist/composite/events/list.mjs.map +1 -0
  51. package/dist/composite/events/slider.d.ts +2 -2
  52. package/dist/composite/events/slider.d.ts.map +1 -1
  53. package/dist/composite/events/slider.js +35 -0
  54. package/dist/composite/events/slider.js.map +1 -0
  55. package/dist/composite/events/slider.mjs +36 -0
  56. package/dist/composite/events/slider.mjs.map +1 -0
  57. package/dist/composite/news/common/data.d.ts +1 -1
  58. package/dist/composite/news/common/data.d.ts.map +1 -1
  59. package/dist/composite/news/common/data.js +62 -0
  60. package/dist/composite/news/common/data.js.map +1 -0
  61. package/dist/composite/news/common/data.mjs +62 -0
  62. package/dist/composite/news/common/data.mjs.map +1 -0
  63. package/dist/composite/news/common/display.d.ts.map +1 -1
  64. package/dist/composite/news/common/display.js +145 -0
  65. package/dist/composite/news/common/display.js.map +1 -0
  66. package/dist/composite/news/common/display.mjs +128 -0
  67. package/dist/composite/news/common/display.mjs.map +1 -0
  68. package/dist/composite/news/common/fetch.d.ts.map +1 -1
  69. package/dist/composite/news/common/fetch.js +85 -0
  70. package/dist/composite/news/common/fetch.js.map +1 -0
  71. package/dist/composite/news/common/fetch.mjs +85 -0
  72. package/dist/composite/news/common/fetch.mjs.map +1 -0
  73. package/dist/composite/news/common/queries.js +37 -0
  74. package/dist/composite/news/common/queries.js.map +1 -0
  75. package/dist/composite/news/common/queries.mjs +37 -0
  76. package/dist/composite/news/common/queries.mjs.map +1 -0
  77. package/dist/composite/news/featured.d.ts +2 -2
  78. package/dist/composite/news/featured.d.ts.map +1 -1
  79. package/dist/composite/news/featured.js +180 -0
  80. package/dist/composite/news/featured.js.map +1 -0
  81. package/dist/composite/news/featured.mjs +181 -0
  82. package/dist/composite/news/featured.mjs.map +1 -0
  83. package/dist/composite/news/grid.d.ts +2 -2
  84. package/dist/composite/news/grid.d.ts.map +1 -1
  85. package/dist/composite/news/grid.js +96 -0
  86. package/dist/composite/news/grid.js.map +1 -0
  87. package/dist/composite/news/grid.mjs +97 -0
  88. package/dist/composite/news/grid.mjs.map +1 -0
  89. package/dist/composite/news/list.d.ts +2 -2
  90. package/dist/composite/news/list.d.ts.map +1 -1
  91. package/dist/composite/news/list.js +83 -0
  92. package/dist/composite/news/list.js.map +1 -0
  93. package/dist/composite/news/list.mjs +84 -0
  94. package/dist/composite/news/list.mjs.map +1 -0
  95. package/dist/elements/asset.d.ts +1 -1
  96. package/dist/elements/asset.d.ts.map +1 -1
  97. package/dist/elements/asset.js +27 -0
  98. package/dist/elements/asset.js.map +1 -0
  99. package/dist/elements/asset.mjs +27 -0
  100. package/dist/elements/asset.mjs.map +1 -0
  101. package/dist/elements/layout.d.ts +1 -1
  102. package/dist/elements/layout.d.ts.map +1 -1
  103. package/dist/elements/layout.js +121 -0
  104. package/dist/elements/layout.js.map +1 -0
  105. package/dist/elements/layout.mjs +104 -0
  106. package/dist/elements/layout.mjs.map +1 -0
  107. package/dist/elements/text.d.ts.map +1 -1
  108. package/dist/elements/text.js +41 -0
  109. package/dist/elements/text.js.map +1 -0
  110. package/dist/elements/text.mjs +41 -0
  111. package/dist/elements/text.mjs.map +1 -0
  112. package/dist/events.d.ts +2 -0
  113. package/dist/events.js +11 -0
  114. package/dist/events.js.map +1 -0
  115. package/dist/events.mjs +11 -0
  116. package/dist/events.mjs.map +1 -0
  117. package/dist/index.js +9 -1
  118. package/dist/index.js.map +1 -0
  119. package/dist/index.mjs +9 -0
  120. package/dist/index.mjs.map +1 -0
  121. package/dist/macros/aria-live.js +25 -0
  122. package/dist/macros/aria-live.js.map +1 -0
  123. package/dist/macros/aria-live.mjs +26 -0
  124. package/dist/macros/aria-live.mjs.map +1 -0
  125. package/dist/macros/lazy-load.js +63 -0
  126. package/dist/macros/lazy-load.js.map +1 -0
  127. package/dist/macros/lazy-load.mjs +47 -0
  128. package/dist/macros/lazy-load.mjs.map +1 -0
  129. package/dist/macros/loader.js +148 -0
  130. package/dist/macros/loader.js.map +1 -0
  131. package/dist/macros/loader.mjs +132 -0
  132. package/dist/macros/loader.mjs.map +1 -0
  133. package/dist/macros/no-results.d.ts.map +1 -1
  134. package/dist/macros/no-results.js +71 -0
  135. package/dist/macros/no-results.js.map +1 -0
  136. package/dist/macros/no-results.mjs +55 -0
  137. package/dist/macros/no-results.mjs.map +1 -0
  138. package/dist/macros/slider.d.ts.map +1 -1
  139. package/dist/macros/slider.js +104 -0
  140. package/dist/macros/slider.js.map +1 -0
  141. package/dist/macros/slider.mjs +88 -0
  142. package/dist/macros/slider.mjs.map +1 -0
  143. package/dist/news.d.ts +2 -0
  144. package/dist/news.js +9 -0
  145. package/dist/news.js.map +1 -0
  146. package/dist/news.mjs +9 -0
  147. package/dist/news.mjs.map +1 -0
  148. package/dist/utilities/events/index.d.ts.map +1 -1
  149. package/dist/utilities/events/index.js +19 -0
  150. package/dist/utilities/events/index.js.map +1 -0
  151. package/dist/utilities/events/index.mjs +19 -0
  152. package/dist/utilities/events/index.mjs.map +1 -0
  153. package/dist/utilities/network/fetch.d.ts.map +1 -1
  154. package/package.json +31 -5
  155. package/dist/composite/academic/__tests__/index.test.d.ts +0 -2
  156. package/dist/composite/academic/__tests__/index.test.d.ts.map +0 -1
  157. package/dist/composite/academic/__tests__/slider.test.d.ts +0 -2
  158. package/dist/composite/academic/__tests__/slider.test.d.ts.map +0 -1
  159. package/dist/composite/events/__tests__/fetch.test.d.ts +0 -2
  160. package/dist/composite/events/__tests__/fetch.test.d.ts.map +0 -1
  161. package/dist/composite/events/__tests__/grid.test.d.ts +0 -2
  162. package/dist/composite/events/__tests__/grid.test.d.ts.map +0 -1
  163. package/dist/composite/events/__tests__/grouped.test.d.ts +0 -2
  164. package/dist/composite/events/__tests__/grouped.test.d.ts.map +0 -1
  165. package/dist/composite/events/__tests__/list.test.d.ts +0 -2
  166. package/dist/composite/events/__tests__/list.test.d.ts.map +0 -1
  167. package/dist/composite/events/__tests__/slider.test.d.ts +0 -2
  168. package/dist/composite/events/__tests__/slider.test.d.ts.map +0 -1
  169. package/dist/composite/news/__tests__/featured.test.d.ts +0 -2
  170. package/dist/composite/news/__tests__/featured.test.d.ts.map +0 -1
  171. package/dist/composite/news/__tests__/grid.test.d.ts +0 -2
  172. package/dist/composite/news/__tests__/grid.test.d.ts.map +0 -1
  173. package/dist/composite/news/__tests__/list.test.d.ts +0 -2
  174. package/dist/composite/news/__tests__/list.test.d.ts.map +0 -1
  175. package/dist/elements/__tests__/asset.test.d.ts +0 -2
  176. package/dist/elements/__tests__/asset.test.d.ts.map +0 -1
  177. package/dist/elements/__tests__/layout.test.d.ts +0 -2
  178. package/dist/elements/__tests__/layout.test.d.ts.map +0 -1
  179. package/dist/elements/__tests__/text.test.d.ts +0 -2
  180. package/dist/elements/__tests__/text.test.d.ts.map +0 -1
  181. package/dist/index.js.LICENSE.txt +0 -143
  182. package/dist/macros/__tests__/aria-live.test.d.ts +0 -2
  183. package/dist/macros/__tests__/aria-live.test.d.ts.map +0 -1
  184. package/dist/macros/__tests__/lazy-load.test.d.ts +0 -2
  185. package/dist/macros/__tests__/lazy-load.test.d.ts.map +0 -1
  186. package/dist/macros/__tests__/loader.test.d.ts +0 -2
  187. package/dist/macros/__tests__/loader.test.d.ts.map +0 -1
  188. package/dist/macros/__tests__/no-results.test.d.ts +0 -2
  189. package/dist/macros/__tests__/no-results.test.d.ts.map +0 -1
  190. package/dist/macros/__tests__/slider.test.d.ts +0 -2
  191. package/dist/macros/__tests__/slider.test.d.ts.map +0 -1
  192. package/dist/utilities/events/__tests__/events.test.d.ts +0 -2
  193. package/dist/utilities/events/__tests__/events.test.d.ts.map +0 -1
  194. package/dist/utilities/network/__tests__/fetch.test.d.ts +0 -2
  195. package/dist/utilities/network/__tests__/fetch.test.d.ts.map +0 -1
@@ -0,0 +1,181 @@
1
+ import { Composite } from "@universityofmaryland/web-elements-library";
2
+ import { standard } from "../../elements/asset.mjs";
3
+ import { gridGap, gridOffsetGap } from "../../elements/layout.mjs";
4
+ import ariaLive from "../../macros/aria-live.mjs";
5
+ import "@universityofmaryland/web-styles-library";
6
+ import loader from "../../macros/loader.mjs";
7
+ import "../../macros/slider.mjs";
8
+ import { start } from "./common/fetch.mjs";
9
+ import { noResults, ID_GRID_LAYOUT_CONTAINER, resultLoad, setShadowStyles } from "./common/display.mjs";
10
+ import { display } from "./common/data.mjs";
11
+ const featured = (props) => (() => {
12
+ const {
13
+ isThemeDark,
14
+ isLazyLoad,
15
+ isLayoutReversed,
16
+ isTransparent,
17
+ overwriteStickyPosition
18
+ } = props;
19
+ const loader$1 = loader.create({ isThemeDark });
20
+ const container = document.createElement("div");
21
+ const setTotalEntries = (count) => totalEntries = count;
22
+ const setOffset = (count) => offset = offset + count;
23
+ const setStyles = (additonalStyles) => styles += additonalStyles;
24
+ const getContainer = () => container;
25
+ const getTotalEntries = () => totalEntries;
26
+ const getOffset = () => offset;
27
+ const getStyles = () => styles;
28
+ const getShadowRoot = () => shadowRoot;
29
+ let numberOfColumnsToShow = 3;
30
+ let totalEntries = 0;
31
+ let offset = 0;
32
+ let styles = `
33
+ ${loader$1.styles}
34
+ `;
35
+ let shadowRoot = null;
36
+ const helperFunctions = {
37
+ setTotalEntries,
38
+ setOffset,
39
+ setStyles,
40
+ getContainer,
41
+ getOffset,
42
+ getTotalEntries,
43
+ getStyles,
44
+ getShadowRoot
45
+ };
46
+ const callback = (shadow) => {
47
+ shadowRoot = shadow;
48
+ };
49
+ const setPosition = (position) => {
50
+ const overlayElement = container.querySelector(
51
+ `.${Composite.card.overlay.imageClassRef}`
52
+ );
53
+ if (overlayElement) overlayElement.style.top = `${position}px`;
54
+ };
55
+ const layoutElement = gridGap({ count: 2 });
56
+ const displayGridOffsetResults = async ({ feedData }) => {
57
+ let entries = [];
58
+ if (feedData.length >= 2) {
59
+ const offsetLayout = gridOffsetGap({
60
+ count: 2,
61
+ isLayoutReversed,
62
+ overwriteStickyPosition
63
+ });
64
+ const firstEntry = feedData[0];
65
+ const overlayCard = Composite.card.overlay.image({
66
+ ...display({ entry: firstEntry }),
67
+ backgroundImage: standard({
68
+ images: firstEntry.image,
69
+ url: firstEntry.url
70
+ })
71
+ });
72
+ offsetLayout.element.appendChild(overlayCard.element);
73
+ offsetLayout.element.appendChild(layoutElement.element);
74
+ container.appendChild(offsetLayout.element);
75
+ setStyles(offsetLayout.styles);
76
+ setStyles(overlayCard.styles);
77
+ entries = feedData.slice(1, 3).map(
78
+ (entry) => Composite.card.block({
79
+ ...display({ entry, isThemeDark }),
80
+ image: standard({
81
+ images: entry.image,
82
+ url: entry.url
83
+ }),
84
+ isAligned: true,
85
+ isTransparent
86
+ })
87
+ );
88
+ } else {
89
+ entries = feedData.map(
90
+ (entry) => Composite.card.overlay.image({
91
+ ...display({ entry, isThemeDark }),
92
+ backgroundImage: standard({
93
+ images: entry.image,
94
+ url: entry.url
95
+ })
96
+ })
97
+ );
98
+ container.appendChild(layoutElement.element);
99
+ }
100
+ await resultLoad({
101
+ ...props,
102
+ ...helperFunctions,
103
+ numberOfColumnsToShow: 2,
104
+ displayResults,
105
+ entries
106
+ });
107
+ if (shadowRoot) {
108
+ setShadowStyles({
109
+ shadowRoot,
110
+ styles
111
+ });
112
+ }
113
+ };
114
+ const displayResults = async ({ feedData }) => {
115
+ const entries = feedData.map(
116
+ (entry) => Composite.card.block({
117
+ ...display({ entry, isThemeDark }),
118
+ image: standard({
119
+ images: entry.image,
120
+ url: entry.url
121
+ }),
122
+ isAligned: true,
123
+ isTransparent
124
+ })
125
+ );
126
+ await resultLoad({
127
+ ...props,
128
+ ...helperFunctions,
129
+ numberOfColumnsToShow: 2,
130
+ displayResults,
131
+ entries
132
+ });
133
+ if (shadowRoot) {
134
+ setShadowStyles({
135
+ shadowRoot,
136
+ styles
137
+ });
138
+ }
139
+ };
140
+ const resultStart = (props2) => {
141
+ const { feedData, setOffset: setOffset2, getOffset: getOffset2 } = props2;
142
+ const totalEntries2 = getTotalEntries();
143
+ const showAmount = 3;
144
+ const message = isLazyLoad ? `Showing ${showAmount} of ${totalEntries2} articles` : `Showing ${showAmount} articles`;
145
+ setOffset2(getOffset2() + 1);
146
+ if (totalEntries2) setTotalEntries(totalEntries2);
147
+ layoutElement.element.setAttribute(
148
+ "id",
149
+ ID_GRID_LAYOUT_CONTAINER
150
+ );
151
+ setStyles(layoutElement.styles);
152
+ displayGridOffsetResults({ feedData });
153
+ container.appendChild(
154
+ ariaLive.create({
155
+ message
156
+ })
157
+ );
158
+ };
159
+ container.appendChild(loader$1.element);
160
+ start({
161
+ ...props,
162
+ ...helperFunctions,
163
+ numberOfColumnsToShow,
164
+ displayResults,
165
+ displayResultStart: resultStart,
166
+ displayNoResults: noResults,
167
+ layoutElement
168
+ });
169
+ return {
170
+ element: container,
171
+ styles,
172
+ events: {
173
+ callback,
174
+ setPosition
175
+ }
176
+ };
177
+ })();
178
+ export {
179
+ featured as default
180
+ };
181
+ //# sourceMappingURL=featured.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"featured.mjs","sources":["../../../source/composite/news/featured.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 {\n type DisplayStartResultsProps,\n type FeaturedProps,\n type FeedDisplay,\n} from './_types';\nimport { type ElementModel } from '../../_types';\n\nexport default (props: FeaturedProps): ElementModel =>\n (() => {\n const {\n isThemeDark,\n isLazyLoad,\n isLayoutReversed,\n isTransparent,\n overwriteStickyPosition,\n } = 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 numberOfColumnsToShow = 3;\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 const setPosition = (position: number) => {\n const overlayElement = container.querySelector(\n `.${Composite.card.overlay.imageClassRef}`,\n ) as HTMLElement;\n if (overlayElement) overlayElement.style.top = `${position}px`;\n };\n\n const layoutElement = feedElements.layout.gridGap({ count: 2 });\n\n const displayGridOffsetResults = async ({ feedData }: FeedDisplay) => {\n let entries = [];\n\n if (feedData.length >= 2) {\n const offsetLayout = feedElements.layout.gridOffsetGap({\n count: 2,\n isLayoutReversed,\n overwriteStickyPosition,\n });\n const firstEntry = feedData[0];\n const overlayCard = Composite.card.overlay.image({\n ...dataComposed.display({ entry: firstEntry }),\n backgroundImage: feedElements.asset.standard({\n images: firstEntry.image,\n url: firstEntry.url,\n }),\n });\n\n offsetLayout.element.appendChild(overlayCard.element);\n offsetLayout.element.appendChild(layoutElement.element);\n container.appendChild(offsetLayout.element);\n setStyles(offsetLayout.styles);\n setStyles(overlayCard.styles);\n\n entries = feedData.slice(1, 3).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: true,\n isTransparent,\n }),\n );\n } else {\n entries = feedData.map((entry) =>\n Composite.card.overlay.image({\n ...dataComposed.display({ entry, isThemeDark }),\n backgroundImage: feedElements.asset.standard({\n images: entry.image,\n url: entry.url,\n }),\n }),\n );\n\n container.appendChild(layoutElement.element);\n }\n\n await feedDisplay.resultLoad({\n ...props,\n ...helperFunctions,\n numberOfColumnsToShow: 2,\n displayResults,\n entries,\n });\n\n if (shadowRoot) {\n feedDisplay.setShadowStyles({\n shadowRoot,\n styles,\n });\n }\n };\n\n const displayResults = async ({ feedData }: FeedDisplay) => {\n const 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: true,\n isTransparent,\n }),\n );\n\n await feedDisplay.resultLoad({\n ...props,\n ...helperFunctions,\n numberOfColumnsToShow: 2,\n displayResults,\n entries,\n });\n\n if (shadowRoot) {\n feedDisplay.setShadowStyles({\n shadowRoot,\n styles,\n });\n }\n };\n\n const resultStart = (props: DisplayStartResultsProps) => {\n const { feedData, setOffset, getOffset } = props;\n const totalEntries = getTotalEntries();\n const showAmount = 3;\n const message = isLazyLoad\n ? `Showing ${showAmount} of ${totalEntries} articles`\n : `Showing ${showAmount} articles`;\n\n setOffset(getOffset() + 1);\n\n if (totalEntries) setTotalEntries(totalEntries);\n\n layoutElement.element.setAttribute(\n 'id',\n feedDisplay.ID_GRID_LAYOUT_CONTAINER,\n );\n\n setStyles(layoutElement.styles);\n\n displayGridOffsetResults({ feedData });\n\n container.appendChild(\n feedMacros.ariaLive.create({\n message,\n }),\n );\n };\n\n container.appendChild(loader.element);\n\n feedFetch.start({\n ...props,\n ...helperFunctions,\n numberOfColumnsToShow,\n displayResults,\n displayResultStart: resultStart,\n displayNoResults: feedDisplay.noResults,\n layoutElement,\n });\n\n return {\n element: container,\n styles,\n events: {\n callback,\n setPosition,\n },\n };\n })();\n"],"names":["loader","feedMacros.loader","feedElements.layout.gridGap","feedElements.layout.gridOffsetGap","dataComposed.display","feedElements.asset.standard","feedDisplay.resultLoad","feedDisplay.setShadowStyles","props","setOffset","getOffset","totalEntries","feedDisplay.ID_GRID_LAYOUT_CONTAINER","feedMacros.ariaLive","feedFetch.start","feedDisplay.noResults"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { type BlockProps } from './_types';
2
- import { type ElementModel } from '../../_types';
1
+ import { BlockProps } from './_types';
2
+ import { ElementModel } from '../../_types';
3
3
  declare const _default: (props: BlockProps) => ElementModel;
4
4
  export default _default;
5
5
  //# sourceMappingURL=grid.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../source/composite/news/grid.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,UAAU,EAAoB,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;gCAE1B,UAAU,KAAG,YAAY;AAAhD,wBAiGO"}
1
+ {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../source/composite/news/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,wBAiGO"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ const webElementsLibrary = require("@universityofmaryland/web-elements-library");
3
+ const asset = require("../../elements/asset.js");
4
+ const layout = require("../../elements/layout.js");
5
+ require("@universityofmaryland/web-styles-library");
6
+ const loader = require("../../macros/loader.js");
7
+ require("../../macros/slider.js");
8
+ const fetch = require("./common/fetch.js");
9
+ const display = require("./common/display.js");
10
+ const data = require("./common/data.js");
11
+ const grid = (props) => (() => {
12
+ const { isThemeDark, isTransparent, numberOfColumnsToShow, isTypeOverlay } = props;
13
+ const loader$1 = loader.create({ isThemeDark });
14
+ const container = document.createElement("div");
15
+ const setTotalEntries = (count) => totalEntries = count;
16
+ const setOffset = (count) => offset = offset + count;
17
+ const setStyles = (additonalStyles) => styles += additonalStyles;
18
+ const getContainer = () => container;
19
+ const getTotalEntries = () => totalEntries;
20
+ const getOffset = () => offset;
21
+ const getStyles = () => styles;
22
+ const getShadowRoot = () => shadowRoot;
23
+ let totalEntries = 0;
24
+ let offset = 0;
25
+ let styles = `
26
+ ${loader$1.styles}
27
+ `;
28
+ let shadowRoot = null;
29
+ const helperFunctions = {
30
+ setTotalEntries,
31
+ setOffset,
32
+ setStyles,
33
+ getContainer,
34
+ getOffset,
35
+ getTotalEntries,
36
+ getStyles,
37
+ getShadowRoot
38
+ };
39
+ const callback = (shadow) => {
40
+ shadowRoot = shadow;
41
+ };
42
+ const displayResults = async ({ feedData }) => {
43
+ const entries = feedData.map((entry) => {
44
+ if (isTypeOverlay) {
45
+ return webElementsLibrary.Composite.card.overlay.image({
46
+ ...data.display({ entry }),
47
+ backgroundImage: asset.standard({
48
+ images: entry.image,
49
+ url: entry.url
50
+ })
51
+ });
52
+ }
53
+ return webElementsLibrary.Composite.card.block({
54
+ ...data.display({ entry, isThemeDark }),
55
+ image: asset.standard({
56
+ images: entry.image,
57
+ url: entry.url
58
+ }),
59
+ isAligned: true,
60
+ isTransparent
61
+ });
62
+ });
63
+ await display.resultLoad({
64
+ ...props,
65
+ ...helperFunctions,
66
+ displayResults,
67
+ entries
68
+ });
69
+ if (shadowRoot) {
70
+ display.setShadowStyles({
71
+ shadowRoot,
72
+ styles
73
+ });
74
+ }
75
+ };
76
+ const layoutElement = isTypeOverlay ? layout.grid({ count: numberOfColumnsToShow }) : layout.gridGap({ count: numberOfColumnsToShow });
77
+ container.appendChild(loader$1.element);
78
+ fetch.start({
79
+ ...props,
80
+ ...helperFunctions,
81
+ displayResults,
82
+ displayResultStart: display.resultStart,
83
+ displayNoResults: display.noResults,
84
+ layoutElement,
85
+ isThemeDark
86
+ });
87
+ return {
88
+ element: container,
89
+ styles,
90
+ events: {
91
+ callback
92
+ }
93
+ };
94
+ })();
95
+ module.exports = grid;
96
+ //# sourceMappingURL=grid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid.js","sources":["../../../source/composite/news/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, isTypeOverlay } =\n 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 const entries = feedData.map((entry) => {\n if (isTypeOverlay) {\n return Composite.card.overlay.image({\n ...dataComposed.display({ entry }),\n backgroundImage: feedElements.asset.standard({\n images: entry.image,\n url: entry.url,\n }),\n });\n }\n\n return Composite.card.block({\n ...dataComposed.display({ entry, isThemeDark }),\n image: feedElements.asset.standard({\n images: entry.image,\n url: entry.url,\n }),\n isAligned: true,\n isTransparent,\n });\n });\n\n await feedDisplay.resultLoad({\n ...props,\n ...helperFunctions,\n displayResults,\n entries,\n });\n\n if (shadowRoot) {\n feedDisplay.setShadowStyles({\n shadowRoot,\n styles,\n });\n }\n };\n\n const layoutElement = isTypeOverlay\n ? feedElements.layout.grid({ count: numberOfColumnsToShow })\n : feedElements.layout.gridGap({ 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","Composite","dataComposed.display","feedElements.asset.standard","feedDisplay.resultLoad","feedDisplay.setShadowStyles","feedElements.layout.grid","feedElements.layout.gridGap","feedFetch.start","feedDisplay.resultStart","feedDisplay.noResults"],"mappings":";;;;;;;;;;AASA,MAAA,OAAe,CAAC,WACb,MAAM;AACL,QAAM,EAAE,aAAa,eAAe,uBAAuB,kBACzD;AACF,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,UAAM,UAAU,SAAS,IAAI,CAAC,UAAU;AACtC,UAAI,eAAe;AACjB,eAAOE,6BAAU,KAAK,QAAQ,MAAM;AAAA,UAClC,GAAGC,KAAAA,QAAqB,EAAE,OAAO;AAAA,UACjC,iBAAiBC,MAAAA,SAA4B;AAAA,YAC3C,QAAQ,MAAM;AAAA,YACd,KAAK,MAAM;AAAA,UAAA,CACZ;AAAA,QAAA,CACF;AAAA,MACH;AAEA,aAAOF,mBAAAA,UAAU,KAAK,MAAM;AAAA,QAC1B,GAAGC,aAAqB,EAAE,OAAO,aAAa;AAAA,QAC9C,OAAOC,MAAAA,SAA4B;AAAA,UACjC,QAAQ,MAAM;AAAA,UACd,KAAK,MAAM;AAAA,QAAA,CACZ;AAAA,QACD,WAAW;AAAA,QACX;AAAA,MAAA,CACD;AAAA,IACH,CAAC;AAED,UAAMC,mBAAuB;AAAA,MAC3B,GAAG;AAAA,MACH,GAAG;AAAA,MACH;AAAA,MACA;AAAA,IAAA,CACD;AAED,QAAI,YAAY;AACdC,8BAA4B;AAAA,QAC1B;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IACH;AAAA,EACF;AAEA,QAAM,gBAAgB,gBAClBC,OAAAA,KAAyB,EAAE,OAAO,sBAAA,CAAuB,IACzDC,OAAAA,QAA4B,EAAE,OAAO,uBAAuB;AAEhE,YAAU,YAAYR,SAAO,OAAO;AAEpCS,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;;"}
@@ -0,0 +1,97 @@
1
+ import { Composite } from "@universityofmaryland/web-elements-library";
2
+ import { standard } from "../../elements/asset.mjs";
3
+ import { grid as grid$1, gridGap } from "../../elements/layout.mjs";
4
+ import "@universityofmaryland/web-styles-library";
5
+ import loader from "../../macros/loader.mjs";
6
+ import "../../macros/slider.mjs";
7
+ import { start } from "./common/fetch.mjs";
8
+ import { noResults, resultStart, resultLoad, setShadowStyles } from "./common/display.mjs";
9
+ import { display } from "./common/data.mjs";
10
+ const grid = (props) => (() => {
11
+ const { isThemeDark, isTransparent, numberOfColumnsToShow, isTypeOverlay } = props;
12
+ const loader$1 = loader.create({ isThemeDark });
13
+ const container = document.createElement("div");
14
+ const setTotalEntries = (count) => totalEntries = count;
15
+ const setOffset = (count) => offset = offset + count;
16
+ const setStyles = (additonalStyles) => styles += additonalStyles;
17
+ const getContainer = () => container;
18
+ const getTotalEntries = () => totalEntries;
19
+ const getOffset = () => offset;
20
+ const getStyles = () => styles;
21
+ const getShadowRoot = () => shadowRoot;
22
+ let totalEntries = 0;
23
+ let offset = 0;
24
+ let styles = `
25
+ ${loader$1.styles}
26
+ `;
27
+ let shadowRoot = null;
28
+ const helperFunctions = {
29
+ setTotalEntries,
30
+ setOffset,
31
+ setStyles,
32
+ getContainer,
33
+ getOffset,
34
+ getTotalEntries,
35
+ getStyles,
36
+ getShadowRoot
37
+ };
38
+ const callback = (shadow) => {
39
+ shadowRoot = shadow;
40
+ };
41
+ const displayResults = async ({ feedData }) => {
42
+ const entries = feedData.map((entry) => {
43
+ if (isTypeOverlay) {
44
+ return Composite.card.overlay.image({
45
+ ...display({ entry }),
46
+ backgroundImage: standard({
47
+ images: entry.image,
48
+ url: entry.url
49
+ })
50
+ });
51
+ }
52
+ return Composite.card.block({
53
+ ...display({ entry, isThemeDark }),
54
+ image: standard({
55
+ images: entry.image,
56
+ url: entry.url
57
+ }),
58
+ isAligned: true,
59
+ isTransparent
60
+ });
61
+ });
62
+ await resultLoad({
63
+ ...props,
64
+ ...helperFunctions,
65
+ displayResults,
66
+ entries
67
+ });
68
+ if (shadowRoot) {
69
+ setShadowStyles({
70
+ shadowRoot,
71
+ styles
72
+ });
73
+ }
74
+ };
75
+ const layoutElement = isTypeOverlay ? grid$1({ count: numberOfColumnsToShow }) : gridGap({ count: numberOfColumnsToShow });
76
+ container.appendChild(loader$1.element);
77
+ start({
78
+ ...props,
79
+ ...helperFunctions,
80
+ displayResults,
81
+ displayResultStart: resultStart,
82
+ displayNoResults: noResults,
83
+ layoutElement,
84
+ isThemeDark
85
+ });
86
+ return {
87
+ element: container,
88
+ styles,
89
+ events: {
90
+ callback
91
+ }
92
+ };
93
+ })();
94
+ export {
95
+ grid as default
96
+ };
97
+ //# sourceMappingURL=grid.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid.mjs","sources":["../../../source/composite/news/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, isTypeOverlay } =\n 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 const entries = feedData.map((entry) => {\n if (isTypeOverlay) {\n return Composite.card.overlay.image({\n ...dataComposed.display({ entry }),\n backgroundImage: feedElements.asset.standard({\n images: entry.image,\n url: entry.url,\n }),\n });\n }\n\n return Composite.card.block({\n ...dataComposed.display({ entry, isThemeDark }),\n image: feedElements.asset.standard({\n images: entry.image,\n url: entry.url,\n }),\n isAligned: true,\n isTransparent,\n });\n });\n\n await feedDisplay.resultLoad({\n ...props,\n ...helperFunctions,\n displayResults,\n entries,\n });\n\n if (shadowRoot) {\n feedDisplay.setShadowStyles({\n shadowRoot,\n styles,\n });\n }\n };\n\n const layoutElement = isTypeOverlay\n ? feedElements.layout.grid({ count: numberOfColumnsToShow })\n : feedElements.layout.gridGap({ 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","dataComposed.display","feedElements.asset.standard","feedDisplay.resultLoad","feedDisplay.setShadowStyles","feedElements.layout.grid","feedElements.layout.gridGap","feedFetch.start","feedDisplay.resultStart","feedDisplay.noResults"],"mappings":";;;;;;;;;AASA,MAAA,OAAe,CAAC,WACb,MAAM;AACL,QAAM,EAAE,aAAa,eAAe,uBAAuB,kBACzD;AACF,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,UAAM,UAAU,SAAS,IAAI,CAAC,UAAU;AACtC,UAAI,eAAe;AACjB,eAAO,UAAU,KAAK,QAAQ,MAAM;AAAA,UAClC,GAAGE,QAAqB,EAAE,OAAO;AAAA,UACjC,iBAAiBC,SAA4B;AAAA,YAC3C,QAAQ,MAAM;AAAA,YACd,KAAK,MAAM;AAAA,UAAA,CACZ;AAAA,QAAA,CACF;AAAA,MACH;AAEA,aAAO,UAAU,KAAK,MAAM;AAAA,QAC1B,GAAGD,QAAqB,EAAE,OAAO,aAAa;AAAA,QAC9C,OAAOC,SAA4B;AAAA,UACjC,QAAQ,MAAM;AAAA,UACd,KAAK,MAAM;AAAA,QAAA,CACZ;AAAA,QACD,WAAW;AAAA,QACX;AAAA,MAAA,CACD;AAAA,IACH,CAAC;AAED,UAAMC,WAAuB;AAAA,MAC3B,GAAG;AAAA,MACH,GAAG;AAAA,MACH;AAAA,MACA;AAAA,IAAA,CACD;AAED,QAAI,YAAY;AACdC,sBAA4B;AAAA,QAC1B;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IACH;AAAA,EACF;AAEA,QAAM,gBAAgB,gBAClBC,OAAyB,EAAE,OAAO,sBAAA,CAAuB,IACzDC,QAA4B,EAAE,OAAO,uBAAuB;AAEhE,YAAU,YAAYP,SAAO,OAAO;AAEpCQ,QAAgB;AAAA,IACd,GAAG;AAAA,IACH,GAAG;AAAA,IACH;AAAA,IACA,oBAAoBC;AAAAA,IACpB,kBAAkBC;AAAAA,IAClB;AAAA,IACA;AAAA,EAAA,CACD;AAED,SAAO;AAAA,IACL,SAAS;AAAA,IACT;AAAA,IACA,QAAQ;AAAA,MACN;AAAA,IAAA;AAAA,EACF;AAEJ,GAAA;"}
@@ -1,5 +1,5 @@
1
- import { type ListProps } from './_types';
2
- import { type ElementModel } from '../../_types';
1
+ import { ListProps } from './_types';
2
+ import { ElementModel } from '../../_types';
3
3
  declare const _default: (props: ListProps) => ElementModel;
4
4
  export default _default;
5
5
  //# sourceMappingURL=list.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../source/composite/news/list.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;gCAE1B,SAAS,KAAG,YAAY;AAA/C,wBA8EO"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../source/composite/news/list.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;yBAEjC,OAAO,SAAS,KAAG,YAAY;AAA/C,wBA8EO"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ const webElementsLibrary = require("@universityofmaryland/web-elements-library");
3
+ const asset = require("../../elements/asset.js");
4
+ const layout = require("../../elements/layout.js");
5
+ require("@universityofmaryland/web-styles-library");
6
+ const loader = require("../../macros/loader.js");
7
+ require("../../macros/slider.js");
8
+ const fetch = require("./common/fetch.js");
9
+ const display = require("./common/display.js");
10
+ const data = require("./common/data.js");
11
+ const list = (props) => (() => {
12
+ const { isThemeDark } = props;
13
+ const loader$1 = loader.create({ isThemeDark });
14
+ const container = document.createElement("div");
15
+ const setTotalEntries = (count) => totalEntries = count;
16
+ const setOffset = (count) => offset = offset + count;
17
+ const setStyles = (additonalStyles) => styles += additonalStyles;
18
+ const getContainer = () => container;
19
+ const getTotalEntries = () => totalEntries;
20
+ const getOffset = () => offset;
21
+ const getStyles = () => styles;
22
+ const getShadowRoot = () => shadowRoot;
23
+ let totalEntries = 0;
24
+ let offset = 0;
25
+ let styles = `
26
+ ${loader$1.styles}
27
+ `;
28
+ let shadowRoot = null;
29
+ const helperFunctions = {
30
+ setTotalEntries,
31
+ setOffset,
32
+ setStyles,
33
+ getContainer,
34
+ getOffset,
35
+ getTotalEntries,
36
+ getStyles,
37
+ getShadowRoot
38
+ };
39
+ const callback = (shadow) => {
40
+ shadowRoot = shadow;
41
+ };
42
+ const displayResults = async ({ feedData }) => {
43
+ await display.resultLoad({
44
+ ...props,
45
+ ...helperFunctions,
46
+ displayResults,
47
+ entries: feedData.map(
48
+ (entry) => webElementsLibrary.Composite.card.list({
49
+ ...data.display({ entry, isThemeDark }),
50
+ image: asset.standard({
51
+ images: entry.image,
52
+ url: entry.url
53
+ }),
54
+ isAligned: false
55
+ })
56
+ )
57
+ });
58
+ if (shadowRoot) {
59
+ display.setShadowStyles({
60
+ shadowRoot,
61
+ styles
62
+ });
63
+ }
64
+ };
65
+ container.appendChild(loader$1.element);
66
+ fetch.start({
67
+ ...props,
68
+ ...helperFunctions,
69
+ displayResults,
70
+ displayResultStart: display.resultStart,
71
+ displayNoResults: display.noResults,
72
+ layoutElement: layout.stacked(isThemeDark)
73
+ });
74
+ return {
75
+ element: container,
76
+ styles,
77
+ events: {
78
+ callback
79
+ }
80
+ };
81
+ })();
82
+ module.exports = list;
83
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sources":["../../../source/composite/news/list.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 ListProps, type FeedDisplay } from './_types';\nimport { type ElementModel } from '../../_types';\n\nexport default (props: ListProps): ElementModel =>\n (() => {\n const { isThemeDark } = props;\n const loader = feedMacros.loader.create({ isThemeDark });\n const container = document.createElement('div');\n const setTotalEntries = (count: number) => (totalEntries = count);\n const setOffset = (count: number) => (offset = offset + count);\n const setStyles = (additonalStyles: string) => (styles += additonalStyles);\n const getContainer = () => container;\n const getTotalEntries = () => totalEntries;\n const getOffset = () => offset;\n const getStyles = () => styles;\n const getShadowRoot = () => shadowRoot;\n let totalEntries = 0;\n let offset = 0;\n let styles = `\n ${loader.styles}\n `;\n let shadowRoot: ShadowRoot | null = null;\n\n const helperFunctions = {\n setTotalEntries,\n setOffset,\n setStyles,\n getContainer,\n getOffset,\n getTotalEntries,\n getStyles,\n getShadowRoot,\n };\n\n const callback = (shadow: ShadowRoot) => {\n shadowRoot = shadow;\n };\n\n const displayResults = async ({ feedData }: FeedDisplay) => {\n await feedDisplay.resultLoad({\n ...props,\n ...helperFunctions,\n displayResults,\n entries: feedData.map((entry) =>\n Composite.card.list({\n ...dataComposed.display({ entry, isThemeDark }),\n image: feedElements.asset.standard({\n images: entry.image,\n url: entry.url,\n }),\n isAligned: false,\n }),\n ),\n });\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: feedElements.layout.stacked(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","feedFetch.start","feedDisplay.resultStart","feedDisplay.noResults","feedElements.layout.stacked"],"mappings":";;;;;;;;;;AASA,MAAA,OAAe,CAAC,WACb,MAAM;AACL,QAAM,EAAE,gBAAgB;AACxB,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,KAAK;AAAA,UAClB,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,QAAA,CACZ;AAAA,MAAA;AAAA,IACH,CACD;AAED,QAAI,YAAY;AACdC,8BAA4B;AAAA,QAC1B;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IACH;AAAA,EACF;AAEA,YAAU,YAAYN,SAAO,OAAO;AAEpCO,cAAgB;AAAA,IACd,GAAG;AAAA,IACH,GAAG;AAAA,IACH;AAAA,IACA,oBAAoBC,QAAAA;AAAAA,IACpB,kBAAkBC,QAAAA;AAAAA,IAClB,eAAeC,OAAAA,QAA4B,WAAW;AAAA,EAAA,CACvD;AAED,SAAO;AAAA,IACL,SAAS;AAAA,IACT;AAAA,IACA,QAAQ;AAAA,MACN;AAAA,IAAA;AAAA,EACF;AAEJ,GAAA;;"}
@@ -0,0 +1,84 @@
1
+ import { Composite } from "@universityofmaryland/web-elements-library";
2
+ import { standard } from "../../elements/asset.mjs";
3
+ import { stacked } from "../../elements/layout.mjs";
4
+ import "@universityofmaryland/web-styles-library";
5
+ import loader from "../../macros/loader.mjs";
6
+ import "../../macros/slider.mjs";
7
+ import { start } from "./common/fetch.mjs";
8
+ import { noResults, resultStart, resultLoad, setShadowStyles } from "./common/display.mjs";
9
+ import { display } from "./common/data.mjs";
10
+ const list = (props) => (() => {
11
+ const { isThemeDark } = props;
12
+ const loader$1 = loader.create({ isThemeDark });
13
+ const container = document.createElement("div");
14
+ const setTotalEntries = (count) => totalEntries = count;
15
+ const setOffset = (count) => offset = offset + count;
16
+ const setStyles = (additonalStyles) => styles += additonalStyles;
17
+ const getContainer = () => container;
18
+ const getTotalEntries = () => totalEntries;
19
+ const getOffset = () => offset;
20
+ const getStyles = () => styles;
21
+ const getShadowRoot = () => shadowRoot;
22
+ let totalEntries = 0;
23
+ let offset = 0;
24
+ let styles = `
25
+ ${loader$1.styles}
26
+ `;
27
+ let shadowRoot = null;
28
+ const helperFunctions = {
29
+ setTotalEntries,
30
+ setOffset,
31
+ setStyles,
32
+ getContainer,
33
+ getOffset,
34
+ getTotalEntries,
35
+ getStyles,
36
+ getShadowRoot
37
+ };
38
+ const callback = (shadow) => {
39
+ shadowRoot = shadow;
40
+ };
41
+ const displayResults = async ({ feedData }) => {
42
+ await resultLoad({
43
+ ...props,
44
+ ...helperFunctions,
45
+ displayResults,
46
+ entries: feedData.map(
47
+ (entry) => Composite.card.list({
48
+ ...display({ entry, isThemeDark }),
49
+ image: standard({
50
+ images: entry.image,
51
+ url: entry.url
52
+ }),
53
+ isAligned: false
54
+ })
55
+ )
56
+ });
57
+ if (shadowRoot) {
58
+ setShadowStyles({
59
+ shadowRoot,
60
+ styles
61
+ });
62
+ }
63
+ };
64
+ container.appendChild(loader$1.element);
65
+ start({
66
+ ...props,
67
+ ...helperFunctions,
68
+ displayResults,
69
+ displayResultStart: resultStart,
70
+ displayNoResults: noResults,
71
+ layoutElement: stacked(isThemeDark)
72
+ });
73
+ return {
74
+ element: container,
75
+ styles,
76
+ events: {
77
+ callback
78
+ }
79
+ };
80
+ })();
81
+ export {
82
+ list as default
83
+ };
84
+ //# sourceMappingURL=list.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.mjs","sources":["../../../source/composite/news/list.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 ListProps, type FeedDisplay } from './_types';\nimport { type ElementModel } from '../../_types';\n\nexport default (props: ListProps): ElementModel =>\n (() => {\n const { isThemeDark } = props;\n const loader = feedMacros.loader.create({ isThemeDark });\n const container = document.createElement('div');\n const setTotalEntries = (count: number) => (totalEntries = count);\n const setOffset = (count: number) => (offset = offset + count);\n const setStyles = (additonalStyles: string) => (styles += additonalStyles);\n const getContainer = () => container;\n const getTotalEntries = () => totalEntries;\n const getOffset = () => offset;\n const getStyles = () => styles;\n const getShadowRoot = () => shadowRoot;\n let totalEntries = 0;\n let offset = 0;\n let styles = `\n ${loader.styles}\n `;\n let shadowRoot: ShadowRoot | null = null;\n\n const helperFunctions = {\n setTotalEntries,\n setOffset,\n setStyles,\n getContainer,\n getOffset,\n getTotalEntries,\n getStyles,\n getShadowRoot,\n };\n\n const callback = (shadow: ShadowRoot) => {\n shadowRoot = shadow;\n };\n\n const displayResults = async ({ feedData }: FeedDisplay) => {\n await feedDisplay.resultLoad({\n ...props,\n ...helperFunctions,\n displayResults,\n entries: feedData.map((entry) =>\n Composite.card.list({\n ...dataComposed.display({ entry, isThemeDark }),\n image: feedElements.asset.standard({\n images: entry.image,\n url: entry.url,\n }),\n isAligned: false,\n }),\n ),\n });\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: feedElements.layout.stacked(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","feedFetch.start","feedDisplay.resultStart","feedDisplay.noResults","feedElements.layout.stacked"],"mappings":";;;;;;;;;AASA,MAAA,OAAe,CAAC,WACb,MAAM;AACL,QAAM,EAAE,gBAAgB;AACxB,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,KAAK;AAAA,UAClB,GAAGC,QAAqB,EAAE,OAAO,aAAa;AAAA,UAC9C,OAAOC,SAA4B;AAAA,YACjC,QAAQ,MAAM;AAAA,YACd,KAAK,MAAM;AAAA,UAAA,CACZ;AAAA,UACD,WAAW;AAAA,QAAA,CACZ;AAAA,MAAA;AAAA,IACH,CACD;AAED,QAAI,YAAY;AACdC,sBAA4B;AAAA,QAC1B;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IACH;AAAA,EACF;AAEA,YAAU,YAAYL,SAAO,OAAO;AAEpCM,QAAgB;AAAA,IACd,GAAG;AAAA,IACH,GAAG;AAAA,IACH;AAAA,IACA,oBAAoBC;AAAAA,IACpB,kBAAkBC;AAAAA,IAClB,eAAeC,QAA4B,WAAW;AAAA,EAAA,CACvD;AAED,SAAO;AAAA,IACL,SAAS;AAAA,IACT;AAAA,IACA,QAAQ;AAAA,MACN;AAAA,IAAA;AAAA,EACF;AAEJ,GAAA;"}
@@ -5,6 +5,6 @@ type ImageType = {
5
5
  export declare const standard: ({ images, url, }: {
6
6
  images: ImageType;
7
7
  url?: string;
8
- }) => HTMLImageElement | HTMLAnchorElement;
8
+ }) => HTMLAnchorElement | HTMLImageElement | undefined;
9
9
  export {};
10
10
  //# sourceMappingURL=asset.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../source/elements/asset.ts"],"names":[],"mappings":"AAAA,KAAK,SAAS,GAAG;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB,EAAE,CAAC;AAEJ,eAAO,MAAM,QAAQ,qBAGlB;IACD,MAAM,EAAE,SAAS,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,KAAG,gBAAgB,GAAG,iBAqBtB,CAAC"}
1
+ {"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../source/elements/asset.ts"],"names":[],"mappings":"AAAA,KAAK,SAAS,GAAG;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB,EAAE,CAAC;AAEJ,eAAO,MAAM,QAAQ,GAAI,kBAGtB;IACD,MAAM,EAAE,SAAS,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,qDAuBA,CAAC"}