@universityofmaryland/web-feeds-library 1.3.0-beta.0 → 1.3.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (207) hide show
  1. package/dist/academic.js +4 -4
  2. package/dist/academic.js.map +1 -1
  3. package/dist/events.js +10 -10
  4. package/dist/events.js.map +1 -1
  5. package/dist/experts.js +8 -8
  6. package/dist/experts.js.map +1 -1
  7. package/dist/factory/core/createBaseFeed.d.ts.map +1 -1
  8. package/dist/factory/core/createBaseFeed.js +19 -17
  9. package/dist/factory/core/createBaseFeed.js.map +1 -1
  10. package/dist/factory/core/types.d.ts +1 -0
  11. package/dist/factory/core/types.d.ts.map +1 -1
  12. package/dist/factory/helpers/displayHandler.js +29 -47
  13. package/dist/factory/helpers/displayHandler.js.map +1 -1
  14. package/dist/factory/helpers/feedHelpers.js +3 -3
  15. package/dist/factory/helpers/feedHelpers.js.map +1 -1
  16. package/dist/factory/helpers/fetchHandler.js +16 -33
  17. package/dist/factory/helpers/fetchHandler.js.map +1 -1
  18. package/dist/feeds/academic/index.d.ts +1 -1
  19. package/dist/feeds/academic/index.d.ts.map +1 -1
  20. package/dist/feeds/academic/slider.d.ts +1 -2
  21. package/dist/feeds/academic/slider.d.ts.map +1 -1
  22. package/dist/feeds/academic/slider.js +7 -6
  23. package/dist/feeds/academic/slider.js.map +1 -1
  24. package/dist/feeds/events/grid.d.ts +1 -2
  25. package/dist/feeds/events/grid.d.ts.map +1 -1
  26. package/dist/feeds/events/grid.js +22 -21
  27. package/dist/feeds/events/grid.js.map +1 -1
  28. package/dist/feeds/events/grouped.d.ts +1 -2
  29. package/dist/feeds/events/grouped.d.ts.map +1 -1
  30. package/dist/feeds/events/grouped.js +62 -78
  31. package/dist/feeds/events/grouped.js.map +1 -1
  32. package/dist/feeds/events/index.d.ts +4 -4
  33. package/dist/feeds/events/index.d.ts.map +1 -1
  34. package/dist/feeds/events/list.d.ts +1 -2
  35. package/dist/feeds/events/list.d.ts.map +1 -1
  36. package/dist/feeds/events/list.js +22 -21
  37. package/dist/feeds/events/list.js.map +1 -1
  38. package/dist/feeds/events/slider.d.ts +1 -2
  39. package/dist/feeds/events/slider.d.ts.map +1 -1
  40. package/dist/feeds/events/slider.js +7 -6
  41. package/dist/feeds/events/slider.js.map +1 -1
  42. package/dist/feeds/experts/_types.d.ts +2 -1
  43. package/dist/feeds/experts/_types.d.ts.map +1 -1
  44. package/dist/feeds/experts/bio.d.ts +1 -2
  45. package/dist/feeds/experts/bio.d.ts.map +1 -1
  46. package/dist/feeds/experts/bio.js +32 -31
  47. package/dist/feeds/experts/bio.js.map +1 -1
  48. package/dist/feeds/experts/grid.d.ts +1 -2
  49. package/dist/feeds/experts/grid.d.ts.map +1 -1
  50. package/dist/feeds/experts/grid.js +24 -23
  51. package/dist/feeds/experts/grid.js.map +1 -1
  52. package/dist/feeds/experts/index.d.ts +3 -3
  53. package/dist/feeds/experts/index.d.ts.map +1 -1
  54. package/dist/feeds/experts/list.d.ts +1 -2
  55. package/dist/feeds/experts/list.d.ts.map +1 -1
  56. package/dist/feeds/experts/list.js +23 -22
  57. package/dist/feeds/experts/list.js.map +1 -1
  58. package/dist/feeds/news/featured.d.ts +1 -2
  59. package/dist/feeds/news/featured.d.ts.map +1 -1
  60. package/dist/feeds/news/featured.js +56 -55
  61. package/dist/feeds/news/featured.js.map +1 -1
  62. package/dist/feeds/news/grid.d.ts +1 -2
  63. package/dist/feeds/news/grid.d.ts.map +1 -1
  64. package/dist/feeds/news/grid.js +24 -23
  65. package/dist/feeds/news/grid.js.map +1 -1
  66. package/dist/feeds/news/index.d.ts +3 -3
  67. package/dist/feeds/news/index.d.ts.map +1 -1
  68. package/dist/feeds/news/list.d.ts +1 -2
  69. package/dist/feeds/news/list.d.ts.map +1 -1
  70. package/dist/feeds/news/list.js +23 -22
  71. package/dist/feeds/news/list.js.map +1 -1
  72. package/dist/helpers/events/index.js +4 -4
  73. package/dist/helpers/events/index.js.map +1 -1
  74. package/dist/helpers/grouping/events.js +10 -10
  75. package/dist/helpers/grouping/events.js.map +1 -1
  76. package/dist/helpers/styles/shadow.js +5 -22
  77. package/dist/helpers/styles/shadow.js.map +1 -1
  78. package/dist/index.js +10 -10
  79. package/dist/index.js.map +1 -1
  80. package/dist/news.js +8 -8
  81. package/dist/news.js.map +1 -1
  82. package/dist/states/_types.d.ts +0 -24
  83. package/dist/states/_types.d.ts.map +1 -1
  84. package/dist/states/_types.js +3 -3
  85. package/dist/states/_types.js.map +1 -1
  86. package/dist/states/announcer.d.ts +1 -3
  87. package/dist/states/announcer.d.ts.map +1 -1
  88. package/dist/states/announcer.js +5 -5
  89. package/dist/states/announcer.js.map +1 -1
  90. package/dist/states/empty.d.ts +0 -2
  91. package/dist/states/empty.d.ts.map +1 -1
  92. package/dist/states/empty.js +15 -32
  93. package/dist/states/empty.js.map +1 -1
  94. package/dist/states/index.d.ts +4 -8
  95. package/dist/states/index.d.ts.map +1 -1
  96. package/dist/states/loading.d.ts +1 -3
  97. package/dist/states/loading.d.ts.map +1 -1
  98. package/dist/states/loading.js +16 -16
  99. package/dist/states/loading.js.map +1 -1
  100. package/dist/states/pagination.d.ts +1 -3
  101. package/dist/states/pagination.d.ts.map +1 -1
  102. package/dist/states/pagination.js +11 -28
  103. package/dist/states/pagination.js.map +1 -1
  104. package/dist/strategies/display/events.js +13 -13
  105. package/dist/strategies/display/events.js.map +1 -1
  106. package/dist/strategies/display/experts.js +23 -23
  107. package/dist/strategies/display/experts.js.map +1 -1
  108. package/dist/strategies/display/news.js +13 -13
  109. package/dist/strategies/display/news.js.map +1 -1
  110. package/dist/strategies/fetch/academic.js +3 -3
  111. package/dist/strategies/fetch/academic.js.map +1 -1
  112. package/dist/strategies/fetch/events.js +13 -13
  113. package/dist/strategies/fetch/events.js.map +1 -1
  114. package/dist/strategies/fetch/experts.d.ts +1 -1
  115. package/dist/strategies/fetch/experts.d.ts.map +1 -1
  116. package/dist/strategies/fetch/experts.js +13 -8
  117. package/dist/strategies/fetch/experts.js.map +1 -1
  118. package/dist/strategies/fetch/graphql.d.ts.map +1 -1
  119. package/dist/strategies/fetch/graphql.js +11 -7
  120. package/dist/strategies/fetch/graphql.js.map +1 -1
  121. package/dist/strategies/fetch/news.js +6 -6
  122. package/dist/strategies/fetch/news.js.map +1 -1
  123. package/dist/strategies/layout/grid.js +11 -11
  124. package/dist/strategies/layout/grid.js.map +1 -1
  125. package/dist/widgets/index.d.ts +1 -1
  126. package/dist/widgets/index.d.ts.map +1 -1
  127. package/dist/widgets/slider.d.ts +1 -2
  128. package/dist/widgets/slider.d.ts.map +1 -1
  129. package/dist/widgets/slider.js +19 -35
  130. package/dist/widgets/slider.js.map +1 -1
  131. package/package.json +15 -14
  132. package/dist/academic.mjs +0 -5
  133. package/dist/academic.mjs.map +0 -1
  134. package/dist/events.mjs +0 -11
  135. package/dist/events.mjs.map +0 -1
  136. package/dist/experts.mjs +0 -9
  137. package/dist/experts.mjs.map +0 -1
  138. package/dist/factory/core/createBaseFeed.mjs +0 -114
  139. package/dist/factory/core/createBaseFeed.mjs.map +0 -1
  140. package/dist/factory/helpers/displayHandler.mjs +0 -169
  141. package/dist/factory/helpers/displayHandler.mjs.map +0 -1
  142. package/dist/factory/helpers/feedHelpers.mjs +0 -32
  143. package/dist/factory/helpers/feedHelpers.mjs.map +0 -1
  144. package/dist/factory/helpers/fetchHandler.mjs +0 -123
  145. package/dist/factory/helpers/fetchHandler.mjs.map +0 -1
  146. package/dist/feeds/academic/slider.mjs +0 -11
  147. package/dist/feeds/academic/slider.mjs.map +0 -1
  148. package/dist/feeds/events/grid.mjs +0 -32
  149. package/dist/feeds/events/grid.mjs.map +0 -1
  150. package/dist/feeds/events/grouped.mjs +0 -337
  151. package/dist/feeds/events/grouped.mjs.map +0 -1
  152. package/dist/feeds/events/list.mjs +0 -33
  153. package/dist/feeds/events/list.mjs.map +0 -1
  154. package/dist/feeds/events/slider.mjs +0 -11
  155. package/dist/feeds/events/slider.mjs.map +0 -1
  156. package/dist/feeds/experts/bio.mjs +0 -147
  157. package/dist/feeds/experts/bio.mjs.map +0 -1
  158. package/dist/feeds/experts/grid.mjs +0 -37
  159. package/dist/feeds/experts/grid.mjs.map +0 -1
  160. package/dist/feeds/experts/list.mjs +0 -26
  161. package/dist/feeds/experts/list.mjs.map +0 -1
  162. package/dist/feeds/news/featured.mjs +0 -379
  163. package/dist/feeds/news/featured.mjs.map +0 -1
  164. package/dist/feeds/news/grid.mjs +0 -37
  165. package/dist/feeds/news/grid.mjs.map +0 -1
  166. package/dist/feeds/news/list.mjs +0 -34
  167. package/dist/feeds/news/list.mjs.map +0 -1
  168. package/dist/helpers/events/index.mjs +0 -21
  169. package/dist/helpers/events/index.mjs.map +0 -1
  170. package/dist/helpers/grouping/events.mjs +0 -147
  171. package/dist/helpers/grouping/events.mjs.map +0 -1
  172. package/dist/helpers/styles/shadow.mjs +0 -16
  173. package/dist/helpers/styles/shadow.mjs.map +0 -1
  174. package/dist/index.mjs +0 -11
  175. package/dist/index.mjs.map +0 -1
  176. package/dist/news.mjs +0 -9
  177. package/dist/news.mjs.map +0 -1
  178. package/dist/states/_types.mjs +0 -12
  179. package/dist/states/_types.mjs.map +0 -1
  180. package/dist/states/announcer.mjs +0 -62
  181. package/dist/states/announcer.mjs.map +0 -1
  182. package/dist/states/empty.mjs +0 -104
  183. package/dist/states/empty.mjs.map +0 -1
  184. package/dist/states/loading.mjs +0 -155
  185. package/dist/states/loading.mjs.map +0 -1
  186. package/dist/states/pagination.mjs +0 -102
  187. package/dist/states/pagination.mjs.map +0 -1
  188. package/dist/strategies/display/events.mjs +0 -60
  189. package/dist/strategies/display/events.mjs.map +0 -1
  190. package/dist/strategies/display/experts.mjs +0 -266
  191. package/dist/strategies/display/experts.mjs.map +0 -1
  192. package/dist/strategies/display/news.mjs +0 -58
  193. package/dist/strategies/display/news.mjs.map +0 -1
  194. package/dist/strategies/fetch/academic.mjs +0 -30
  195. package/dist/strategies/fetch/academic.mjs.map +0 -1
  196. package/dist/strategies/fetch/events.mjs +0 -223
  197. package/dist/strategies/fetch/events.mjs.map +0 -1
  198. package/dist/strategies/fetch/experts.mjs +0 -189
  199. package/dist/strategies/fetch/experts.mjs.map +0 -1
  200. package/dist/strategies/fetch/graphql.mjs +0 -100
  201. package/dist/strategies/fetch/graphql.mjs.map +0 -1
  202. package/dist/strategies/fetch/news.mjs +0 -95
  203. package/dist/strategies/fetch/news.mjs.map +0 -1
  204. package/dist/strategies/layout/grid.mjs +0 -36
  205. package/dist/strategies/layout/grid.mjs.map +0 -1
  206. package/dist/widgets/slider.mjs +0 -87
  207. package/dist/widgets/slider.mjs.map +0 -1
@@ -1,5 +1,4 @@
1
1
  import { SliderProps } from './_types';
2
2
  import { ElementModel } from '../../_types';
3
- declare const _default: (props: SliderProps) => ElementModel;
4
- export default _default;
3
+ export declare const eventsSlider: (props: SliderProps) => ElementModel;
5
4
  //# sourceMappingURL=slider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../../source/feeds/events/slider.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;yBAiBjC,OAAO,WAAW,KAAG,YAAY;AAAjD,wBAKK"}
1
+ {"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../../source/feeds/events/slider.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAiBjD,eAAO,MAAM,YAAY,GAAI,OAAO,WAAW,KAAG,YAK9C,CAAC"}
@@ -1,10 +1,11 @@
1
- "use strict";
2
- const slider$1 = require("../../widgets/slider.js");
3
- const events = require("../../strategies/fetch/events.js");
4
- const slider = (props) => slider$1({
1
+ import { createSliderWidget } from "../../widgets/slider.js";
2
+ import { EVENTS_SLIDER_QUERY } from "../../strategies/fetch/events.js";
3
+ const eventsSlider = (props) => createSliderWidget({
5
4
  ...props,
6
- query: events.EVENTS_SLIDER_QUERY,
5
+ query: EVENTS_SLIDER_QUERY,
7
6
  url: "https://calendar.umd.edu/graphql"
8
7
  });
9
- module.exports = slider;
8
+ export {
9
+ eventsSlider
10
+ };
10
11
  //# sourceMappingURL=slider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slider.js","sources":["../../../source/feeds/events/slider.ts"],"sourcesContent":["/**\n * Events Slider Feed (Migrated)\n *\n * Displays events in a horizontal carousel layout.\n * Uses strategy pattern for GraphQL queries.\n *\n * @module composite/events/slider-new\n */\n\nimport { slider } from '../../widgets';\nimport { EVENTS_SLIDER_QUERY } from '../../strategies/fetch/events';\nimport { type SliderProps } from './_types';\nimport { type ElementModel } from '../../_types';\n\n/**\n * Creates an events slider feed\n *\n * @param props - Slider configuration options\n * @returns ElementModel with slider element and styles\n *\n * @example\n * ```typescript\n * const eventsSlider = slider({\n * token: 'your-token',\n * categories: 'sports,arts',\n * isThemeDark: false,\n * });\n * ```\n */\nexport default (props: SliderProps): ElementModel =>\n slider({\n ...props,\n query: EVENTS_SLIDER_QUERY,\n url: 'https://calendar.umd.edu/graphql',\n });\n"],"names":["slider","EVENTS_SLIDER_QUERY"],"mappings":";;;AA6BA,MAAA,SAAe,CAAC,UACdA,SAAO;AAAA,EACL,GAAG;AAAA,EACH,OAAOC,OAAAA;AAAAA,EACP,KAAK;AACP,CAAC;;"}
1
+ {"version":3,"file":"slider.js","sources":["../../../source/feeds/events/slider.ts"],"sourcesContent":["/**\n * Events Slider Feed (Migrated)\n *\n * Displays events in a horizontal carousel layout.\n * Uses strategy pattern for GraphQL queries.\n *\n * @module composite/events/slider-new\n */\n\nimport { slider } from '../../widgets';\nimport { EVENTS_SLIDER_QUERY } from '../../strategies/fetch/events';\nimport { type SliderProps } from './_types';\nimport { type ElementModel } from '../../_types';\n\n/**\n * Creates an events slider feed\n *\n * @param props - Slider configuration options\n * @returns ElementModel with slider element and styles\n *\n * @example\n * ```typescript\n * const eventsSlider = slider({\n * token: 'your-token',\n * categories: 'sports,arts',\n * isThemeDark: false,\n * });\n * ```\n */\nexport const eventsSlider = (props: SliderProps): ElementModel =>\n slider({\n ...props,\n query: EVENTS_SLIDER_QUERY,\n url: 'https://calendar.umd.edu/graphql',\n });\n"],"names":["slider"],"mappings":";;AA6BO,MAAM,eAAe,CAAC,UAC3BA,mBAAO;AAAA,EACL,GAAG;AAAA,EACH,OAAO;AAAA,EACP,KAAK;AACP,CAAC;"}
@@ -3,6 +3,7 @@ export interface BaseProps {
3
3
  numberOfRowsToStart: number;
4
4
  categories?: string[];
5
5
  isThemeDark?: boolean;
6
+ isMediaTrained?: boolean;
6
7
  isLazyLoad: boolean;
7
8
  entriesToRemove?: string[];
8
9
  styleCallback?: (cssString: string) => void;
@@ -16,7 +17,7 @@ export interface GridProps extends BaseProps {
16
17
  export interface ListProps extends BaseProps {
17
18
  cardType?: 'list' | 'tabular';
18
19
  }
19
- export interface BioProps extends Omit<BaseProps, 'numberOfRowsToStart' | 'isLazyLoad' | 'categories' | 'entriesToRemove'> {
20
+ export interface BioProps extends Omit<BaseProps, 'numberOfRowsToStart' | 'isLazyLoad' | 'categories' | 'entriesToRemove' | 'isMediaTrained'> {
20
21
  expertId: string;
21
22
  }
22
23
  //# sourceMappingURL=_types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"_types.d.ts","sourceRoot":"","sources":["../../../source/feeds/experts/_types.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,SAAS;IAExB,KAAK,EAAE,MAAM,CAAC;IAEd,mBAAmB,EAAE,MAAM,CAAC;IAE5B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,UAAU,EAAE,OAAO,CAAC;IAEpB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAOD,MAAM,WAAW,SAAU,SAAQ,SAAS;IAE1C,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;CACzC;AAOD,MAAM,WAAW,SAAU,SAAQ,SAAS;IAE1C,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAOD,MAAM,WAAW,QAAS,SAAQ,IAAI,CAAC,SAAS,EAAE,qBAAqB,GAAG,YAAY,GAAG,YAAY,GAAG,iBAAiB,CAAC;IAExH,QAAQ,EAAE,MAAM,CAAC;CAClB"}
1
+ {"version":3,"file":"_types.d.ts","sourceRoot":"","sources":["../../../source/feeds/experts/_types.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,SAAS;IAExB,KAAK,EAAE,MAAM,CAAC;IAEd,mBAAmB,EAAE,MAAM,CAAC;IAE5B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,UAAU,EAAE,OAAO,CAAC;IAEpB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAOD,MAAM,WAAW,SAAU,SAAQ,SAAS;IAE1C,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;CACzC;AAOD,MAAM,WAAW,SAAU,SAAQ,SAAS;IAE1C,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAOD,MAAM,WAAW,QACf,SAAQ,IAAI,CACV,SAAS,EACP,qBAAqB,GACrB,YAAY,GACZ,YAAY,GACZ,iBAAiB,GACjB,gBAAgB,CACnB;IAED,QAAQ,EAAE,MAAM,CAAC;CAClB"}
@@ -1,5 +1,4 @@
1
1
  import { BioProps } from './_types';
2
2
  import { ElementModel } from '../../_types';
3
- declare const _default: (props: BioProps) => ElementModel;
4
- export default _default;
3
+ export declare const expertsBio: (props: BioProps) => ElementModel;
5
4
  //# sourceMappingURL=bio.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bio.d.ts","sourceRoot":"","sources":["../../../source/feeds/experts/bio.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;yBA8MjC,OAAO,QAAQ,KAAG,YAAY;AAA9C,wBAuDE"}
1
+ {"version":3,"file":"bio.d.ts","sourceRoot":"","sources":["../../../source/feeds/experts/bio.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AA8MjD,eAAO,MAAM,UAAU,GAAI,OAAO,QAAQ,KAAG,YAuD5C,CAAC"}
@@ -1,14 +1,13 @@
1
- "use strict";
2
- const webBuilderLibrary = require("@universityofmaryland/web-builder-library");
3
- const composite = require("@universityofmaryland/web-elements-library/composite");
4
- const loading = require("../../states/loading.js");
5
- require("@universityofmaryland/web-elements-library");
6
- require("@universityofmaryland/web-styles-library");
7
- require("@universityofmaryland/web-utilities-library/theme");
8
- const announcer = require("../../states/announcer.js");
9
- const experts = require("../../strategies/fetch/experts.js");
10
- const experts$1 = require("../../strategies/display/experts.js");
11
- const shadow = require("../../helpers/styles/shadow.js");
1
+ import { ElementBuilder } from "@universityofmaryland/web-builder-library";
2
+ import { person } from "@universityofmaryland/web-elements-library/composite";
3
+ import { LoadingState } from "../../states/loading.js";
4
+ import "@universityofmaryland/web-elements-library";
5
+ import "@universityofmaryland/web-styles-library";
6
+ import "@universityofmaryland/web-utilities-library/theme";
7
+ import { Announcer } from "../../states/announcer.js";
8
+ import { expertsFetchStrategy } from "../../strategies/fetch/experts.js";
9
+ import { mapExpertToBioProps, buildFullName } from "../../strategies/display/experts.js";
10
+ import { setShadowStyles } from "../../helpers/styles/shadow.js";
12
11
  const createFetchProps = (token, expertId) => ({
13
12
  token,
14
13
  limit: 1,
@@ -16,9 +15,9 @@ const createFetchProps = (token, expertId) => ({
16
15
  id: expertId
17
16
  });
18
17
  const createSuccessAnnouncer = (expert) => {
19
- const fullName = experts$1.buildFullName(expert);
18
+ const fullName = buildFullName(expert);
20
19
  const message = `Loaded profile for ${fullName}`;
21
- return new announcer.Announcer({ message });
20
+ return new Announcer({ message });
22
21
  };
23
22
  class BioFeedState {
24
23
  /**
@@ -44,8 +43,8 @@ class BioFeedState {
44
43
  *
45
44
  * @param shadow - Shadow root element
46
45
  */
47
- setShadowRoot(shadow2) {
48
- this.shadowRoot = shadow2;
46
+ setShadowRoot(shadow) {
47
+ this.shadowRoot = shadow;
49
48
  }
50
49
  /**
51
50
  * Update shadow DOM styles
@@ -54,7 +53,7 @@ class BioFeedState {
54
53
  */
55
54
  async updateShadowStyles() {
56
55
  if (!this.shadowRoot) return;
57
- await shadow.setShadowStyles({
56
+ await setShadowStyles({
58
57
  shadowRoot: this.shadowRoot,
59
58
  styles: this.getStyles()
60
59
  });
@@ -73,14 +72,14 @@ class BioFeedState {
73
72
  * @returns Callback function for shadow root
74
73
  */
75
74
  getShadowCallback() {
76
- return (shadow2) => this.setShadowRoot(shadow2);
75
+ return (shadow) => this.setShadowRoot(shadow);
77
76
  }
78
77
  }
79
78
  const renderSuccess = async (container, expert, state, isThemeDark) => {
80
- const bioProps = experts$1.mapExpertToBioProps(expert, "small", isThemeDark);
81
- const bioElement = composite.person.bio.small(bioProps);
82
- const announcer2 = createSuccessAnnouncer(expert);
83
- const children = [bioElement.element, announcer2.getElement()];
79
+ const bioProps = mapExpertToBioProps(expert, "small", isThemeDark);
80
+ const bioElement = person.bio.small(bioProps);
81
+ const announcer = createSuccessAnnouncer(expert);
82
+ const children = [bioElement.element, announcer.getElement()];
84
83
  children.forEach((child) => container.appendChild(child));
85
84
  state.addStyles(bioElement.styles);
86
85
  await state.updateShadowStyles();
@@ -105,28 +104,28 @@ const logError = (errorType, expertId, error) => {
105
104
  break;
106
105
  }
107
106
  };
108
- const bio = (props) => {
107
+ const expertsBio = (props) => {
109
108
  const { token, expertId, isThemeDark = false } = props;
110
- const containerBuilder = new webBuilderLibrary.ElementBuilder("div").withClassName(
109
+ const containerBuilder = new ElementBuilder("div").withClassName(
111
110
  "expert-bio-feed"
112
111
  );
113
112
  const container = containerBuilder.getElement();
114
- const loading$1 = new loading.LoadingState({ isThemeDark });
115
- const state = new BioFeedState(loading$1.styles);
113
+ const loading = new LoadingState({ isThemeDark });
114
+ const state = new BioFeedState(loading.styles);
116
115
  const initialize = async () => {
117
- loading$1.show(container);
116
+ loading.show(container);
118
117
  try {
119
118
  const fetchProps = createFetchProps(token, expertId);
120
- const variables = experts.expertsFetchStrategy.composeApiVariables(fetchProps);
121
- const entries = await experts.expertsFetchStrategy.fetchEntries(variables);
122
- loading$1.hide();
119
+ const variables = expertsFetchStrategy.composeApiVariables(fetchProps);
120
+ const entries = await expertsFetchStrategy.fetchEntries(variables);
121
+ loading.hide();
123
122
  if (!entries || entries.length === 0) {
124
123
  logError("not_found", expertId);
125
124
  return;
126
125
  }
127
126
  await renderSuccess(container, entries[0], state, isThemeDark);
128
127
  } catch (error) {
129
- loading$1.hide();
128
+ loading.hide();
130
129
  logError("graphql_error", expertId, error);
131
130
  }
132
131
  };
@@ -142,5 +141,7 @@ const bio = (props) => {
142
141
  }
143
142
  };
144
143
  };
145
- module.exports = bio;
144
+ export {
145
+ expertsBio
146
+ };
146
147
  //# sourceMappingURL=bio.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bio.js","sources":["../../../source/feeds/experts/bio.ts"],"sourcesContent":["/**\n * Expert Bio Feed (Refactored with Element Builder)\n *\n * Displays a single expert's profile with summary.\n * Uses element builder pattern for clean, declarative construction.\n *\n * @module feeds/experts/bio\n */\n\nimport { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport { person } from '@universityofmaryland/web-elements-library/composite';\nimport { LoadingState, Announcer } from '../../states';\nimport { expertsFetchStrategy } from '../../strategies/fetch/experts';\nimport {\n mapExpertToBioProps,\n buildFullName,\n} from '../../strategies/display/experts';\nimport { styles as styleUtilities } from '../../helpers';\nimport { type ExpertEntry } from 'types/data';\nimport { type BioProps } from './_types';\nimport { type ElementModel } from '../../_types';\n\n// ============================================================================\n// PURE HELPER FUNCTIONS\n// ============================================================================\n\n/**\n * Create base props for fetch strategy\n *\n * @param token - API authentication token\n * @param expertId - Expert ID to fetch\n * @returns Base props object for strategy's composeApiVariables\n */\nconst createFetchProps = (token: string, expertId: string) => ({\n token,\n limit: 1,\n offset: 0,\n id: expertId,\n});\n\n/**\n * Create accessibility announcer for loaded expert\n *\n * @param expert - Expert entry\n * @returns Announcer element model\n */\nconst createSuccessAnnouncer = (expert: ExpertEntry): Announcer => {\n const fullName = buildFullName(expert);\n const message = `Loaded profile for ${fullName}`;\n return new Announcer({ message });\n};\n\n// ============================================================================\n// STATE MANAGER CLASS\n// ============================================================================\n\n/**\n * Manages bio feed state and shadow DOM synchronization\n *\n * Encapsulates style accumulation and shadow DOM updates.\n * Provides immutable-style API for adding styles.\n */\nclass BioFeedState {\n private stylesArray: string[] = [];\n private shadowRoot: ShadowRoot | null = null;\n\n /**\n * Initialize state with initial styles\n *\n * @param initialStyles - Initial CSS styles\n */\n constructor(initialStyles: string) {\n this.stylesArray.push(initialStyles);\n }\n\n /**\n * Add styles to the accumulated styles\n *\n * @param styles - CSS styles to add\n */\n addStyles(styles: string): void {\n this.stylesArray.push(styles);\n }\n\n /**\n * Set shadow root reference for style updates\n *\n * @param shadow - Shadow root element\n */\n setShadowRoot(shadow: ShadowRoot): void {\n this.shadowRoot = shadow;\n }\n\n /**\n * Update shadow DOM styles\n *\n * @returns Promise that resolves when styles are updated\n */\n async updateShadowStyles(): Promise<void> {\n if (!this.shadowRoot) return;\n await styleUtilities.setShadowStyles({\n shadowRoot: this.shadowRoot,\n styles: this.getStyles(),\n });\n }\n\n /**\n * Get accumulated styles as single string\n *\n * @returns Combined CSS styles\n */\n getStyles(): string {\n return this.stylesArray.join('\\n');\n }\n\n /**\n * Get shadow root callback for events\n *\n * @returns Callback function for shadow root\n */\n getShadowCallback(): (shadow: ShadowRoot) => void {\n return (shadow) => this.setShadowRoot(shadow);\n }\n}\n\n// ============================================================================\n// RENDERING FUNCTIONS\n// ============================================================================\n\n/**\n * Render successful bio with expert data\n *\n * @param container - Container element to render into\n * @param expert - Expert entry data\n * @param state - State manager instance\n * @param isThemeDark - Dark theme flag\n * @returns Promise that resolves when rendering is complete\n */\nconst renderSuccess = async (\n container: HTMLElement,\n expert: ExpertEntry,\n state: BioFeedState,\n isThemeDark: boolean,\n): Promise<void> => {\n const bioProps = mapExpertToBioProps(expert, 'small', isThemeDark);\n const bioElement = person.bio.small(bioProps);\n const announcer = createSuccessAnnouncer(expert);\n const children = [bioElement.element, announcer.getElement()];\n\n children.forEach((child) => container.appendChild(child));\n\n state.addStyles(bioElement.styles);\n await state.updateShadowStyles();\n};\n\n/**\n * Error types for expert bio feed\n */\ntype BioErrorType = 'not_found' | 'graphql_error' | 'invalid_request';\n\n/**\n * Log error to console with specific warning message\n *\n * @param errorType - Type of error that occurred\n * @param expertId - Expert ID that was requested\n * @param error - Optional error object for GraphQL errors\n */\nconst logError = (\n errorType: BioErrorType,\n expertId: string,\n error?: any,\n): void => {\n switch (errorType) {\n case 'not_found':\n console.warn(\n `[Expert Bio Feed] No expert found with ID \"${expertId}\". ` +\n `Please verify the expert ID is correct and the expert exists in the system.`,\n );\n break;\n case 'graphql_error':\n console.warn(\n `[Expert Bio Feed] GraphQL error occurred while fetching expert \"${expertId}\". ` +\n `Check network connection and API availability.`,\n error,\n );\n break;\n case 'invalid_request':\n console.warn(\n `[Expert Bio Feed] Invalid request for expert \"${expertId}\". ` +\n `Ensure both data-token and data-id attributes are provided.`,\n );\n break;\n }\n};\n\n// ============================================================================\n// MAIN EXPORT\n// ============================================================================\n\n/**\n * Create an expert bio feed\n *\n * Fetches and displays a single expert's bio with summary.\n * Uses element builder pattern for clean construction.\n *\n * @param props - Feed configuration\n * @returns ElementModel with bio element, styles, and events\n *\n * @example\n * ```typescript\n * const bio = expertBio({\n * token: 'my-token',\n * expertId: 'john-doe',\n * });\n * ```\n *\n * @example\n * ```typescript\n * // With dark theme\n * const bio = expertBio({\n * token: 'my-token',\n * expertId: 'jane-smith',\n * isThemeDark: true,\n * });\n * ```\n */\nexport default (props: BioProps): ElementModel => {\n const { token, expertId, isThemeDark = false } = props;\n\n // Create container using ElementBuilder\n const containerBuilder = new ElementBuilder('div').withClassName(\n 'expert-bio-feed',\n );\n\n // Get element for manipulation (non-destructive)\n const container = containerBuilder.getElement();\n\n // Initialize state management\n const loading = new LoadingState({ isThemeDark });\n const state = new BioFeedState(loading.styles);\n\n /**\n * Fetch expert data and render\n */\n const initialize = async (): Promise<void> => {\n loading.show(container);\n\n try {\n const fetchProps = createFetchProps(token, expertId);\n const variables = expertsFetchStrategy.composeApiVariables(fetchProps);\n const entries = await expertsFetchStrategy.fetchEntries(variables);\n\n loading.hide();\n\n if (!entries || entries.length === 0) {\n logError('not_found', expertId);\n return;\n }\n\n await renderSuccess(container, entries[0], state, isThemeDark);\n } catch (error) {\n loading.hide();\n logError('graphql_error', expertId, error);\n }\n };\n\n // Start initialization\n initialize();\n\n // Build and return element model\n const model = containerBuilder.build();\n\n return {\n element: model.element,\n get styles() {\n return state.getStyles();\n },\n events: {\n callback: state.getShadowCallback(),\n },\n };\n};\n"],"names":["buildFullName","Announcer","shadow","styleUtilities.setShadowStyles","mapExpertToBioProps","person","announcer","ElementBuilder","loading","LoadingState","expertsFetchStrategy"],"mappings":"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"}
1
+ {"version":3,"file":"bio.js","sources":["../../../source/feeds/experts/bio.ts"],"sourcesContent":["/**\n * Expert Bio Feed (Refactored with Element Builder)\n *\n * Displays a single expert's profile with summary.\n * Uses element builder pattern for clean, declarative construction.\n *\n * @module feeds/experts/bio\n */\n\nimport { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport { person } from '@universityofmaryland/web-elements-library/composite';\nimport { LoadingState, Announcer } from '../../states';\nimport { expertsFetchStrategy } from '../../strategies/fetch/experts';\nimport {\n mapExpertToBioProps,\n buildFullName,\n} from '../../strategies/display/experts';\nimport { styles as styleUtilities } from '../../helpers';\nimport { type ExpertEntry } from 'types/data';\nimport { type BioProps } from './_types';\nimport { type ElementModel } from '../../_types';\n\n// ============================================================================\n// PURE HELPER FUNCTIONS\n// ============================================================================\n\n/**\n * Create base props for fetch strategy\n *\n * @param token - API authentication token\n * @param expertId - Expert ID to fetch\n * @returns Base props object for strategy's composeApiVariables\n */\nconst createFetchProps = (token: string, expertId: string) => ({\n token,\n limit: 1,\n offset: 0,\n id: expertId,\n});\n\n/**\n * Create accessibility announcer for loaded expert\n *\n * @param expert - Expert entry\n * @returns Announcer element model\n */\nconst createSuccessAnnouncer = (expert: ExpertEntry): Announcer => {\n const fullName = buildFullName(expert);\n const message = `Loaded profile for ${fullName}`;\n return new Announcer({ message });\n};\n\n// ============================================================================\n// STATE MANAGER CLASS\n// ============================================================================\n\n/**\n * Manages bio feed state and shadow DOM synchronization\n *\n * Encapsulates style accumulation and shadow DOM updates.\n * Provides immutable-style API for adding styles.\n */\nclass BioFeedState {\n private stylesArray: string[] = [];\n private shadowRoot: ShadowRoot | null = null;\n\n /**\n * Initialize state with initial styles\n *\n * @param initialStyles - Initial CSS styles\n */\n constructor(initialStyles: string) {\n this.stylesArray.push(initialStyles);\n }\n\n /**\n * Add styles to the accumulated styles\n *\n * @param styles - CSS styles to add\n */\n addStyles(styles: string): void {\n this.stylesArray.push(styles);\n }\n\n /**\n * Set shadow root reference for style updates\n *\n * @param shadow - Shadow root element\n */\n setShadowRoot(shadow: ShadowRoot): void {\n this.shadowRoot = shadow;\n }\n\n /**\n * Update shadow DOM styles\n *\n * @returns Promise that resolves when styles are updated\n */\n async updateShadowStyles(): Promise<void> {\n if (!this.shadowRoot) return;\n await styleUtilities.setShadowStyles({\n shadowRoot: this.shadowRoot,\n styles: this.getStyles(),\n });\n }\n\n /**\n * Get accumulated styles as single string\n *\n * @returns Combined CSS styles\n */\n getStyles(): string {\n return this.stylesArray.join('\\n');\n }\n\n /**\n * Get shadow root callback for events\n *\n * @returns Callback function for shadow root\n */\n getShadowCallback(): (shadow: ShadowRoot) => void {\n return (shadow) => this.setShadowRoot(shadow);\n }\n}\n\n// ============================================================================\n// RENDERING FUNCTIONS\n// ============================================================================\n\n/**\n * Render successful bio with expert data\n *\n * @param container - Container element to render into\n * @param expert - Expert entry data\n * @param state - State manager instance\n * @param isThemeDark - Dark theme flag\n * @returns Promise that resolves when rendering is complete\n */\nconst renderSuccess = async (\n container: HTMLElement,\n expert: ExpertEntry,\n state: BioFeedState,\n isThemeDark: boolean,\n): Promise<void> => {\n const bioProps = mapExpertToBioProps(expert, 'small', isThemeDark);\n const bioElement = person.bio.small(bioProps);\n const announcer = createSuccessAnnouncer(expert);\n const children = [bioElement.element, announcer.getElement()];\n\n children.forEach((child) => container.appendChild(child));\n\n state.addStyles(bioElement.styles);\n await state.updateShadowStyles();\n};\n\n/**\n * Error types for expert bio feed\n */\ntype BioErrorType = 'not_found' | 'graphql_error' | 'invalid_request';\n\n/**\n * Log error to console with specific warning message\n *\n * @param errorType - Type of error that occurred\n * @param expertId - Expert ID that was requested\n * @param error - Optional error object for GraphQL errors\n */\nconst logError = (\n errorType: BioErrorType,\n expertId: string,\n error?: any,\n): void => {\n switch (errorType) {\n case 'not_found':\n console.warn(\n `[Expert Bio Feed] No expert found with ID \"${expertId}\". ` +\n `Please verify the expert ID is correct and the expert exists in the system.`,\n );\n break;\n case 'graphql_error':\n console.warn(\n `[Expert Bio Feed] GraphQL error occurred while fetching expert \"${expertId}\". ` +\n `Check network connection and API availability.`,\n error,\n );\n break;\n case 'invalid_request':\n console.warn(\n `[Expert Bio Feed] Invalid request for expert \"${expertId}\". ` +\n `Ensure both data-token and data-id attributes are provided.`,\n );\n break;\n }\n};\n\n// ============================================================================\n// MAIN EXPORT\n// ============================================================================\n\n/**\n * Create an expert bio feed\n *\n * Fetches and displays a single expert's bio with summary.\n * Uses element builder pattern for clean construction.\n *\n * @param props - Feed configuration\n * @returns ElementModel with bio element, styles, and events\n *\n * @example\n * ```typescript\n * const bio = expertBio({\n * token: 'my-token',\n * expertId: 'john-doe',\n * });\n * ```\n *\n * @example\n * ```typescript\n * // With dark theme\n * const bio = expertBio({\n * token: 'my-token',\n * expertId: 'jane-smith',\n * isThemeDark: true,\n * });\n * ```\n */\nexport const expertsBio = (props: BioProps): ElementModel => {\n const { token, expertId, isThemeDark = false } = props;\n\n // Create container using ElementBuilder\n const containerBuilder = new ElementBuilder('div').withClassName(\n 'expert-bio-feed',\n );\n\n // Get element for manipulation (non-destructive)\n const container = containerBuilder.getElement();\n\n // Initialize state management\n const loading = new LoadingState({ isThemeDark });\n const state = new BioFeedState(loading.styles);\n\n /**\n * Fetch expert data and render\n */\n const initialize = async (): Promise<void> => {\n loading.show(container);\n\n try {\n const fetchProps = createFetchProps(token, expertId);\n const variables = expertsFetchStrategy.composeApiVariables(fetchProps);\n const entries = await expertsFetchStrategy.fetchEntries(variables);\n\n loading.hide();\n\n if (!entries || entries.length === 0) {\n logError('not_found', expertId);\n return;\n }\n\n await renderSuccess(container, entries[0], state, isThemeDark);\n } catch (error) {\n loading.hide();\n logError('graphql_error', expertId, error);\n }\n };\n\n // Start initialization\n initialize();\n\n // Build and return element model\n const model = containerBuilder.build();\n\n return {\n element: model.element,\n get styles() {\n return state.getStyles();\n },\n events: {\n callback: state.getShadowCallback(),\n },\n };\n};\n"],"names":["styleUtilities.setShadowStyles"],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import { GridProps } from './_types';
2
2
  import { ElementModel } from '../../_types';
3
- declare const _default: (props: GridProps) => ElementModel;
4
- export default _default;
3
+ export declare const expertsGrid: (props: GridProps) => ElementModel;
5
4
  //# sourceMappingURL=grid.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../source/feeds/experts/grid.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;yBA8BjC,OAAO,SAAS,KAAG,YAAY;AAA/C,wBAmBE"}
1
+ {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../source/feeds/experts/grid.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AA8BjD,eAAO,MAAM,WAAW,GAAI,OAAO,SAAS,KAAG,YAmB9C,CAAC"}
@@ -1,29 +1,28 @@
1
- "use strict";
2
- const createBaseFeed = require("../../factory/core/createBaseFeed.js");
3
- require("@universityofmaryland/web-builder-library");
4
- require("@universityofmaryland/web-styles-library");
5
- require("@universityofmaryland/web-styles-library/typography");
6
- require("@universityofmaryland/web-utilities-library/theme");
7
- require("@universityofmaryland/web-elements-library");
8
- require("@universityofmaryland/web-elements-library/composite");
9
- require("@universityofmaryland/web-elements-library/atomic");
10
- require("@universityofmaryland/web-utilities-library/elements");
11
- const experts$1 = require("../../strategies/display/experts.js");
12
- require("@universityofmaryland/web-utilities-library/network");
13
- require("../../strategies/fetch/events.js");
14
- require("../../strategies/fetch/news.js");
15
- const experts = require("../../strategies/fetch/experts.js");
16
- const grid$1 = require("../../strategies/layout/grid.js");
17
- require("@universityofmaryland/web-elements-library/layout");
18
- const grid = (props) => {
1
+ import { createBaseFeed } from "../../factory/core/createBaseFeed.js";
2
+ import "@universityofmaryland/web-builder-library";
3
+ import "@universityofmaryland/web-styles-library";
4
+ import "@universityofmaryland/web-styles-library/typography";
5
+ import "@universityofmaryland/web-utilities-library/theme";
6
+ import "@universityofmaryland/web-elements-library";
7
+ import "@universityofmaryland/web-elements-library/composite";
8
+ import "@universityofmaryland/web-elements-library/atomic";
9
+ import "@universityofmaryland/web-utilities-library/elements";
10
+ import { expertsDisplayStrategy } from "../../strategies/display/experts.js";
11
+ import "@universityofmaryland/web-utilities-library/network";
12
+ import "../../strategies/fetch/events.js";
13
+ import "../../strategies/fetch/news.js";
14
+ import { expertsFetchStrategy } from "../../strategies/fetch/experts.js";
15
+ import { gridLayout, gridBorderLayout } from "../../strategies/layout/grid.js";
16
+ import "@universityofmaryland/web-elements-library/layout";
17
+ const expertsGrid = (props) => {
19
18
  const { isOverlay = false } = props;
20
- return createBaseFeed.createBaseFeed({
19
+ return createBaseFeed({
21
20
  ...props,
22
21
  isOverlay,
23
22
  isAligned: !isOverlay,
24
- fetchStrategy: experts.expertsFetchStrategy,
25
- displayStrategy: experts$1.expertsDisplayStrategy,
26
- layoutStrategy: isOverlay ? grid$1.gridLayout : grid$1.gridBorderLayout,
23
+ fetchStrategy: expertsFetchStrategy,
24
+ displayStrategy: expertsDisplayStrategy,
25
+ layoutStrategy: isOverlay ? gridLayout : gridBorderLayout,
27
26
  imageConfig: (entry) => ({
28
27
  imageUrl: entry.headshot?.[0]?.url || "",
29
28
  altText: entry.middleName ? `${entry.firstName} ${entry.middleName} ${entry.lastName}` : `${entry.firstName} ${entry.lastName}`,
@@ -32,5 +31,7 @@ const grid = (props) => {
32
31
  })
33
32
  });
34
33
  };
35
- module.exports = grid;
34
+ export {
35
+ expertsGrid
36
+ };
36
37
  //# sourceMappingURL=grid.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"grid.js","sources":["../../../source/feeds/experts/grid.ts"],"sourcesContent":["/**\n * Experts Grid Feed (Factory Pattern)\n *\n * Grid layout for expert profile entries using the feed factory pattern.\n * Uses person elements for displaying expert profiles in a multi-column grid.\n * Supports overlay cards with gridLayout or standard cards with gridGapLayout.\n *\n * @module feeds/experts/grid\n */\n\nimport { createBaseFeed } from 'factory';\nimport {\n expertsFetchStrategy,\n expertsDisplayStrategy,\n gridLayout,\n gridBorderLayout,\n} from 'strategies';\nimport { type GridProps } from './_types';\nimport { type ElementModel } from '../../_types';\n\n/**\n * Create an experts grid feed\n *\n * @param props - Feed configuration\n * @returns ElementModel with feed element and styles\n *\n * @example\n * ```typescript\n * // Standard grid with borders\n * const feed = expertsGrid({\n * token: 'my-token',\n * numberOfColumnsToShow: 3,\n * numberOfRowsToStart: 2,\n * isLazyLoad: true,\n * categories: ['computer-science', 'engineering'],\n * });\n *\n * // Overlay grid\n * const overlayFeed = expertsGrid({\n * token: 'my-token',\n * numberOfColumnsToShow: 4,\n * numberOfRowsToStart: 2,\n * isOverlay: true,\n * });\n *\n * document.body.appendChild(feed.element);\n * ```\n */\nexport default (props: GridProps): ElementModel => {\n const { isOverlay = false } = props;\n\n return createBaseFeed({\n ...props,\n isOverlay,\n isAligned: !isOverlay,\n fetchStrategy: expertsFetchStrategy,\n displayStrategy: expertsDisplayStrategy,\n layoutStrategy: isOverlay ? gridLayout : gridBorderLayout,\n imageConfig: (entry) => ({\n imageUrl: entry.headshot?.[0]?.url || '',\n altText: entry.middleName\n ? `${entry.firstName} ${entry.middleName} ${entry.lastName}`\n : `${entry.firstName} ${entry.lastName}`,\n linkUrl: `https://umdrightnow.umd.edu/expert/${entry.slug}`,\n linkLabel: `View profile for ${entry.firstName} ${entry.lastName}`,\n }),\n });\n};\n"],"names":["createBaseFeed","expertsFetchStrategy","expertsDisplayStrategy","gridLayout","gridBorderLayout"],"mappings":";;;;;;;;;;;;;;;;;AAgDA,MAAA,OAAe,CAAC,UAAmC;AACjD,QAAM,EAAE,YAAY,MAAA,IAAU;AAE9B,SAAOA,8BAAe;AAAA,IACpB,GAAG;AAAA,IACH;AAAA,IACA,WAAW,CAAC;AAAA,IACZ,eAAeC,QAAAA;AAAAA,IACf,iBAAiBC,UAAAA;AAAAA,IACjB,gBAAgB,YAAYC,OAAAA,aAAaC,OAAAA;AAAAA,IACzC,aAAa,CAAC,WAAW;AAAA,MACvB,UAAU,MAAM,WAAW,CAAC,GAAG,OAAO;AAAA,MACtC,SAAS,MAAM,aACX,GAAG,MAAM,SAAS,IAAI,MAAM,UAAU,IAAI,MAAM,QAAQ,KACxD,GAAG,MAAM,SAAS,IAAI,MAAM,QAAQ;AAAA,MACxC,SAAS,sCAAsC,MAAM,IAAI;AAAA,MACzD,WAAW,oBAAoB,MAAM,SAAS,IAAI,MAAM,QAAQ;AAAA,IAAA;AAAA,EAClE,CACD;AACH;;"}
1
+ {"version":3,"file":"grid.js","sources":["../../../source/feeds/experts/grid.ts"],"sourcesContent":["/**\n * Experts Grid Feed (Factory Pattern)\n *\n * Grid layout for expert profile entries using the feed factory pattern.\n * Uses person elements for displaying expert profiles in a multi-column grid.\n * Supports overlay cards with gridLayout or standard cards with gridGapLayout.\n *\n * @module feeds/experts/grid\n */\n\nimport { createBaseFeed } from 'factory';\nimport {\n expertsFetchStrategy,\n expertsDisplayStrategy,\n gridLayout,\n gridBorderLayout,\n} from 'strategies';\nimport { type GridProps } from './_types';\nimport { type ElementModel } from '../../_types';\n\n/**\n * Create an experts grid feed\n *\n * @param props - Feed configuration\n * @returns ElementModel with feed element and styles\n *\n * @example\n * ```typescript\n * // Standard grid with borders\n * const feed = expertsGrid({\n * token: 'my-token',\n * numberOfColumnsToShow: 3,\n * numberOfRowsToStart: 2,\n * isLazyLoad: true,\n * categories: ['computer-science', 'engineering'],\n * });\n *\n * // Overlay grid\n * const overlayFeed = expertsGrid({\n * token: 'my-token',\n * numberOfColumnsToShow: 4,\n * numberOfRowsToStart: 2,\n * isOverlay: true,\n * });\n *\n * document.body.appendChild(feed.element);\n * ```\n */\nexport const expertsGrid = (props: GridProps): ElementModel => {\n const { isOverlay = false } = props;\n\n return createBaseFeed({\n ...props,\n isOverlay,\n isAligned: !isOverlay,\n fetchStrategy: expertsFetchStrategy,\n displayStrategy: expertsDisplayStrategy,\n layoutStrategy: isOverlay ? gridLayout : gridBorderLayout,\n imageConfig: (entry) => ({\n imageUrl: entry.headshot?.[0]?.url || '',\n altText: entry.middleName\n ? `${entry.firstName} ${entry.middleName} ${entry.lastName}`\n : `${entry.firstName} ${entry.lastName}`,\n linkUrl: `https://umdrightnow.umd.edu/expert/${entry.slug}`,\n linkLabel: `View profile for ${entry.firstName} ${entry.lastName}`,\n }),\n });\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAgDO,MAAM,cAAc,CAAC,UAAmC;AAC7D,QAAM,EAAE,YAAY,MAAA,IAAU;AAE9B,SAAO,eAAe;AAAA,IACpB,GAAG;AAAA,IACH;AAAA,IACA,WAAW,CAAC;AAAA,IACZ,eAAe;AAAA,IACf,iBAAiB;AAAA,IACjB,gBAAgB,YAAY,aAAa;AAAA,IACzC,aAAa,CAAC,WAAW;AAAA,MACvB,UAAU,MAAM,WAAW,CAAC,GAAG,OAAO;AAAA,MACtC,SAAS,MAAM,aACX,GAAG,MAAM,SAAS,IAAI,MAAM,UAAU,IAAI,MAAM,QAAQ,KACxD,GAAG,MAAM,SAAS,IAAI,MAAM,QAAQ;AAAA,MACxC,SAAS,sCAAsC,MAAM,IAAI;AAAA,MACzD,WAAW,oBAAoB,MAAM,SAAS,IAAI,MAAM,QAAQ;AAAA,IAAA;AAAA,EAClE,CACD;AACH;"}
@@ -1,4 +1,4 @@
1
- export { default as grid } from './grid';
2
- export { default as list } from './list';
3
- export { default as bio } from './bio';
1
+ export { expertsGrid as grid } from './grid';
2
+ export { expertsList as list } from './list';
3
+ export { expertsBio as bio } from './bio';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../source/feeds/experts/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AAMzC,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AAOzC,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../source/feeds/experts/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,WAAW,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AAM7C,OAAO,EAAE,WAAW,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AAO7C,OAAO,EAAE,UAAU,IAAI,GAAG,EAAE,MAAM,OAAO,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import { ListProps } from './_types';
2
2
  import { ElementModel } from '../../_types';
3
- declare const _default: (props: ListProps) => ElementModel;
4
- export default _default;
3
+ export declare const expertsList: (props: ListProps) => ElementModel;
5
4
  //# sourceMappingURL=list.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../source/feeds/experts/list.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;yBAqBjC,OAAO,SAAS,KAAG,YAAY;AAA/C,wBAMK"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../source/feeds/experts/list.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAqBjD,eAAO,MAAM,WAAW,GAAI,OAAO,SAAS,KAAG,YAM3C,CAAC"}
@@ -1,25 +1,26 @@
1
- "use strict";
2
- const createBaseFeed = require("../../factory/core/createBaseFeed.js");
3
- require("@universityofmaryland/web-builder-library");
4
- require("@universityofmaryland/web-styles-library");
5
- require("@universityofmaryland/web-styles-library/typography");
6
- require("@universityofmaryland/web-utilities-library/theme");
7
- require("@universityofmaryland/web-elements-library");
8
- require("@universityofmaryland/web-elements-library/composite");
9
- require("@universityofmaryland/web-elements-library/atomic");
10
- require("@universityofmaryland/web-utilities-library/elements");
11
- const experts$1 = require("../../strategies/display/experts.js");
12
- require("@universityofmaryland/web-utilities-library/network");
13
- require("../../strategies/fetch/events.js");
14
- require("../../strategies/fetch/news.js");
15
- const experts = require("../../strategies/fetch/experts.js");
16
- const grid = require("../../strategies/layout/grid.js");
17
- require("@universityofmaryland/web-elements-library/layout");
18
- const list = (props) => createBaseFeed.createBaseFeed({
1
+ import { createBaseFeed } from "../../factory/core/createBaseFeed.js";
2
+ import "@universityofmaryland/web-builder-library";
3
+ import "@universityofmaryland/web-styles-library";
4
+ import "@universityofmaryland/web-styles-library/typography";
5
+ import "@universityofmaryland/web-utilities-library/theme";
6
+ import "@universityofmaryland/web-elements-library";
7
+ import "@universityofmaryland/web-elements-library/composite";
8
+ import "@universityofmaryland/web-elements-library/atomic";
9
+ import "@universityofmaryland/web-utilities-library/elements";
10
+ import { expertsDisplayStrategy } from "../../strategies/display/experts.js";
11
+ import "@universityofmaryland/web-utilities-library/network";
12
+ import "../../strategies/fetch/events.js";
13
+ import "../../strategies/fetch/news.js";
14
+ import { expertsFetchStrategy } from "../../strategies/fetch/experts.js";
15
+ import { stackedLayout } from "../../strategies/layout/grid.js";
16
+ import "@universityofmaryland/web-elements-library/layout";
17
+ const expertsList = (props) => createBaseFeed({
19
18
  ...props,
20
- fetchStrategy: experts.expertsFetchStrategy,
21
- displayStrategy: experts$1.expertsDisplayStrategy,
22
- layoutStrategy: grid.stackedLayout
19
+ fetchStrategy: expertsFetchStrategy,
20
+ displayStrategy: expertsDisplayStrategy,
21
+ layoutStrategy: stackedLayout
23
22
  });
24
- module.exports = list;
23
+ export {
24
+ expertsList
25
+ };
25
26
  //# sourceMappingURL=list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sources":["../../../source/feeds/experts/list.ts"],"sourcesContent":["/**\n * Experts List Feed (Factory Pattern)\n *\n * List layout for expert profile entries using the feed factory pattern.\n * Uses person elements for displaying expert profiles in a single-column list.\n *\n * @module feeds/experts/list\n */\n\nimport { createBaseFeed } from 'factory';\nimport {\n expertsFetchStrategy,\n expertsDisplayStrategy,\n stackedLayout,\n} from 'strategies';\nimport { type ListProps } from './_types';\nimport { type ElementModel } from '../../_types';\n\n/**\n * Create an experts list feed\n *\n * @param props - Feed configuration\n * @returns ElementModel with feed element and styles\n *\n * @example\n * ```typescript\n * const feed = expertsList({\n * token: 'my-token',\n * numberOfRowsToStart: 10,\n * cardType: 'list',\n * isLazyLoad: true,\n * categories: ['computer-science', 'engineering'],\n * });\n *\n * document.body.appendChild(feed.element);\n * ```\n */\nexport default (props: ListProps): ElementModel =>\n createBaseFeed({\n ...props,\n fetchStrategy: expertsFetchStrategy,\n displayStrategy: expertsDisplayStrategy,\n layoutStrategy: stackedLayout,\n });\n"],"names":["createBaseFeed","expertsFetchStrategy","expertsDisplayStrategy","stackedLayout"],"mappings":";;;;;;;;;;;;;;;;;AAqCA,MAAA,OAAe,CAAC,UACdA,eAAAA,eAAe;AAAA,EACb,GAAG;AAAA,EACH,eAAeC,QAAAA;AAAAA,EACf,iBAAiBC,UAAAA;AAAAA,EACjB,gBAAgBC,KAAAA;AAClB,CAAC;;"}
1
+ {"version":3,"file":"list.js","sources":["../../../source/feeds/experts/list.ts"],"sourcesContent":["/**\n * Experts List Feed (Factory Pattern)\n *\n * List layout for expert profile entries using the feed factory pattern.\n * Uses person elements for displaying expert profiles in a single-column list.\n *\n * @module feeds/experts/list\n */\n\nimport { createBaseFeed } from 'factory';\nimport {\n expertsFetchStrategy,\n expertsDisplayStrategy,\n stackedLayout,\n} from 'strategies';\nimport { type ListProps } from './_types';\nimport { type ElementModel } from '../../_types';\n\n/**\n * Create an experts list feed\n *\n * @param props - Feed configuration\n * @returns ElementModel with feed element and styles\n *\n * @example\n * ```typescript\n * const feed = expertsList({\n * token: 'my-token',\n * numberOfRowsToStart: 10,\n * cardType: 'list',\n * isLazyLoad: true,\n * categories: ['computer-science', 'engineering'],\n * });\n *\n * document.body.appendChild(feed.element);\n * ```\n */\nexport const expertsList = (props: ListProps): ElementModel =>\n createBaseFeed({\n ...props,\n fetchStrategy: expertsFetchStrategy,\n displayStrategy: expertsDisplayStrategy,\n layoutStrategy: stackedLayout,\n });\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAqCO,MAAM,cAAc,CAAC,UAC1B,eAAe;AAAA,EACb,GAAG;AAAA,EACH,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,gBAAgB;AAClB,CAAC;"}
@@ -1,5 +1,4 @@
1
1
  import { FeaturedProps } from './_types';
2
2
  import { ElementModel } from '../../_types';
3
- declare const _default: (props: FeaturedProps) => ElementModel;
4
- export default _default;
3
+ export declare const newsFeatured: (props: FeaturedProps) => ElementModel;
5
4
  //# sourceMappingURL=featured.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"featured.d.ts","sourceRoot":"","sources":["../../../source/feeds/news/featured.ts"],"names":[],"mappings":"AA+BA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;yBA0djC,OAAO,aAAa,KAAG,YAAY;AAAnD,wBAsJE"}
1
+ {"version":3,"file":"featured.d.ts","sourceRoot":"","sources":["../../../source/feeds/news/featured.ts"],"names":[],"mappings":"AA+BA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AA0djD,eAAO,MAAM,YAAY,GAAI,OAAO,aAAa,KAAG,YAsJnD,CAAC"}