@universityofmaryland/web-feeds-library 1.2.2 → 1.2.6

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 (96) hide show
  1. package/README.md +1 -1
  2. package/dist/composite/academic/slider.js +2 -0
  3. package/dist/composite/academic/slider.js.map +1 -1
  4. package/dist/composite/academic/slider.mjs +2 -0
  5. package/dist/composite/academic/slider.mjs.map +1 -1
  6. package/dist/composite/events/common/data.d.ts +1 -5
  7. package/dist/composite/events/common/data.d.ts.map +1 -1
  8. package/dist/composite/events/common/data.js +1 -0
  9. package/dist/composite/events/common/data.js.map +1 -1
  10. package/dist/composite/events/common/data.mjs +1 -0
  11. package/dist/composite/events/common/data.mjs.map +1 -1
  12. package/dist/composite/events/common/display.d.ts +1 -0
  13. package/dist/composite/events/common/display.d.ts.map +1 -1
  14. package/dist/composite/events/common/display.js +2 -1
  15. package/dist/composite/events/common/display.js.map +1 -1
  16. package/dist/composite/events/common/display.mjs +2 -1
  17. package/dist/composite/events/common/display.mjs.map +1 -1
  18. package/dist/composite/events/common/fetch.d.ts +3 -0
  19. package/dist/composite/events/common/fetch.d.ts.map +1 -1
  20. package/dist/composite/events/common/fetch.js +20 -8
  21. package/dist/composite/events/common/fetch.js.map +1 -1
  22. package/dist/composite/events/common/fetch.mjs +20 -8
  23. package/dist/composite/events/common/fetch.mjs.map +1 -1
  24. package/dist/composite/events/common/queries.d.ts +4 -2
  25. package/dist/composite/events/common/queries.d.ts.map +1 -1
  26. package/dist/composite/events/common/queries.js +10 -4
  27. package/dist/composite/events/common/queries.js.map +1 -1
  28. package/dist/composite/events/common/queries.mjs +11 -5
  29. package/dist/composite/events/common/queries.mjs.map +1 -1
  30. package/dist/composite/events/grid.js +2 -0
  31. package/dist/composite/events/grid.js.map +1 -1
  32. package/dist/composite/events/grid.mjs +2 -0
  33. package/dist/composite/events/grid.mjs.map +1 -1
  34. package/dist/composite/events/grouped.d.ts.map +1 -1
  35. package/dist/composite/events/grouped.js +94 -37
  36. package/dist/composite/events/grouped.js.map +1 -1
  37. package/dist/composite/events/grouped.mjs +95 -38
  38. package/dist/composite/events/grouped.mjs.map +1 -1
  39. package/dist/composite/events/list.js +2 -0
  40. package/dist/composite/events/list.js.map +1 -1
  41. package/dist/composite/events/list.mjs +2 -0
  42. package/dist/composite/events/list.mjs.map +1 -1
  43. package/dist/composite/events/slider.js +2 -0
  44. package/dist/composite/events/slider.js.map +1 -1
  45. package/dist/composite/events/slider.mjs +2 -0
  46. package/dist/composite/events/slider.mjs.map +1 -1
  47. package/dist/composite/news/common/data.js +1 -0
  48. package/dist/composite/news/common/data.js.map +1 -1
  49. package/dist/composite/news/common/data.mjs +1 -0
  50. package/dist/composite/news/common/data.mjs.map +1 -1
  51. package/dist/composite/news/common/fetch.js +3 -1
  52. package/dist/composite/news/common/fetch.js.map +1 -1
  53. package/dist/composite/news/common/fetch.mjs +3 -1
  54. package/dist/composite/news/common/fetch.mjs.map +1 -1
  55. package/dist/composite/news/featured.js +2 -0
  56. package/dist/composite/news/featured.js.map +1 -1
  57. package/dist/composite/news/featured.mjs +2 -0
  58. package/dist/composite/news/featured.mjs.map +1 -1
  59. package/dist/composite/news/grid.js +2 -0
  60. package/dist/composite/news/grid.js.map +1 -1
  61. package/dist/composite/news/grid.mjs +2 -0
  62. package/dist/composite/news/grid.mjs.map +1 -1
  63. package/dist/composite/news/list.js +2 -0
  64. package/dist/composite/news/list.js.map +1 -1
  65. package/dist/composite/news/list.mjs +2 -0
  66. package/dist/composite/news/list.mjs.map +1 -1
  67. package/dist/elements/layout.d.ts +5 -17
  68. package/dist/elements/layout.d.ts.map +1 -1
  69. package/dist/elements/layout.js +36 -44
  70. package/dist/elements/layout.js.map +1 -1
  71. package/dist/elements/layout.mjs +37 -45
  72. package/dist/elements/layout.mjs.map +1 -1
  73. package/dist/macros/lazy-load.d.ts +2 -5
  74. package/dist/macros/lazy-load.d.ts.map +1 -1
  75. package/dist/macros/lazy-load.js +9 -18
  76. package/dist/macros/lazy-load.js.map +1 -1
  77. package/dist/macros/lazy-load.mjs +9 -18
  78. package/dist/macros/lazy-load.mjs.map +1 -1
  79. package/dist/macros/loader.d.ts +2 -5
  80. package/dist/macros/loader.d.ts.map +1 -1
  81. package/dist/macros/loader.js +39 -59
  82. package/dist/macros/loader.js.map +1 -1
  83. package/dist/macros/loader.mjs +39 -59
  84. package/dist/macros/loader.mjs.map +1 -1
  85. package/dist/macros/no-results.d.ts +2 -5
  86. package/dist/macros/no-results.d.ts.map +1 -1
  87. package/dist/macros/no-results.js +21 -26
  88. package/dist/macros/no-results.js.map +1 -1
  89. package/dist/macros/no-results.mjs +21 -26
  90. package/dist/macros/no-results.mjs.map +1 -1
  91. package/dist/macros/slider.d.ts.map +1 -1
  92. package/dist/macros/slider.js +2 -4
  93. package/dist/macros/slider.js.map +1 -1
  94. package/dist/macros/slider.mjs +2 -4
  95. package/dist/macros/slider.mjs.map +1 -1
  96. package/package.json +12 -3
@@ -1 +1 @@
1
- {"version":3,"file":"grouped.mjs","sources":["../../../source/composite/events/grouped.ts"],"sourcesContent":["import * as Styles from '@universityofmaryland/web-styles-library';\nimport {\n Atomic,\n Composite,\n Model,\n} from '@universityofmaryland/web-elements-library';\nimport * as feedElements from 'elements';\nimport * as feedMacros from 'macros';\nimport * as feedFetch from './common/fetch';\nimport * as feedDisplay from './common/display';\nimport * as dataComposed from './common/data';\nimport { type ListProps, type FeedDisplay, type EventType } from './_types';\nimport { type ElementModel } from '../../_types';\n\ninterface GroupedEvent {\n date: string;\n events: EventType[];\n}\n\nconst getDateBanner = (dateStamp: string): string => {\n // Parse the date string more reliably\n // Handle both \"YYYY-MM-DD\" and ISO format strings\n const dateParts = dateStamp.split('T')[0].split('-');\n const year = parseInt(dateParts[0], 10);\n const month = parseInt(dateParts[1], 10) - 1; // Month is 0-indexed\n const day = parseInt(dateParts[2], 10);\n\n // Create dates using local timezone to avoid timezone shifts\n const eventDate = new Date(year, month, day);\n const currentDate = new Date();\n currentDate.setHours(0, 0, 0, 0);\n\n const weekFromNow = new Date();\n weekFromNow.setDate(currentDate.getDate() + 7);\n weekFromNow.setHours(0, 0, 0, 0);\n\n // Check if it's today\n if (\n eventDate.getFullYear() === currentDate.getFullYear() &&\n eventDate.getMonth() === currentDate.getMonth() &&\n eventDate.getDate() === currentDate.getDate()\n ) {\n return 'Today';\n }\n\n // Check if it's within the next 7 days\n if (\n eventDate.getTime() > currentDate.getTime() &&\n eventDate.getTime() <= weekFromNow.getTime()\n ) {\n const days = [\n 'Sunday',\n 'Monday',\n 'Tuesday',\n 'Wednesday',\n 'Thursday',\n 'Friday',\n 'Saturday',\n ];\n return days[eventDate.getDay()];\n }\n\n // Otherwise return day of week, month and day\n const days = [\n 'Sunday',\n 'Monday',\n 'Tuesday',\n 'Wednesday',\n 'Thursday',\n 'Friday',\n 'Saturday',\n ];\n const months = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec',\n ];\n return `${days[eventDate.getDay()]}, ${\n months[eventDate.getMonth()]\n } ${eventDate.getDate()}`;\n};\n\nconst groupEventsByDate = (events: EventType[]): GroupedEvent[] => {\n const grouped = events.reduce((acc, event) => {\n const dateKey = event.startStamp;\n if (!acc[dateKey]) {\n acc[dateKey] = {\n date: getDateBanner(event.startStamp),\n events: [],\n };\n }\n acc[dateKey].events.push(event);\n return acc;\n }, {} as Record<string, GroupedEvent>);\n\n return Object.values(grouped).sort((a, b) => {\n const dateA = new Date(\n Object.keys(grouped).find((key) => grouped[key] === a) || '',\n );\n const dateB = new Date(\n Object.keys(grouped).find((key) => grouped[key] === b) || '',\n );\n return dateA.getTime() - dateB.getTime();\n });\n};\n\nexport default (props: ListProps): ElementModel =>\n (() => {\n const { isThemeDark } = props;\n const loader = feedMacros.loader.create({ isThemeDark });\n const container = document.createElement('div');\n const setTotalEntries = (count: number) => (totalEntries = count);\n const setOffset = (count: number) => (offset = offset + count);\n const setStyles = (additonalStyles: string) => (styles += additonalStyles);\n const getContainer = () => container;\n const getTotalEntries = () => totalEntries;\n const getOffset = () => offset;\n const getStyles = () => styles;\n const getShadowRoot = () => shadowRoot;\n let totalEntries = 0;\n let offset = 0;\n let styles = `\n ${loader.styles}\n `;\n let shadowRoot: ShadowRoot | null = null;\n let lastDateHeadline: string | null = null;\n\n const helperFunctions = {\n setTotalEntries,\n setOffset,\n setStyles,\n getContainer,\n getOffset,\n getTotalEntries,\n getStyles,\n getShadowRoot,\n };\n\n const callback = (shadow: ShadowRoot) => {\n shadowRoot = shadow;\n };\n\n const groupLayout = (): { element: HTMLElement; styles: string } => {\n return Model.ElementModel.createDiv({\n className: 'umd-feed-events-grouped',\n elementStyles: {\n element: {},\n },\n });\n };\n\n const displayResults = async ({ feedData }: FeedDisplay) => {\n const groupedEvents = groupEventsByDate(feedData);\n const entries: { element: HTMLElement; styles: string }[] = [];\n let actualEventCount = 0;\n\n groupedEvents.forEach((group) => {\n if (group.date !== lastDateHeadline) {\n const dateHeadline = document.createElement('p');\n dateHeadline.textContent = group.date;\n\n entries.push(\n Model.ElementModel.text.ribbon({\n element: dateHeadline,\n elementStyles: {\n element: {\n margin: `${Styles.token.spacing.lg} 0`,\n },\n },\n }),\n );\n\n lastDateHeadline = group.date;\n }\n\n const dateEntries = group.events.map((entry) =>\n Composite.card.list({\n ...dataComposed.display({ entry, isThemeDark }),\n dateSign: Atomic.events.sign({\n ...entry,\n isThemeDark,\n isLargeSize: false,\n }),\n image: feedElements.asset.standard({\n images: entry.image,\n url: entry.url,\n }),\n isAligned: false,\n }),\n );\n\n actualEventCount += group.events.length;\n\n entries.push(\n Model.ElementModel.createDiv({\n className: 'umd-feed-events-grouped-entries',\n children: [...dateEntries],\n elementStyles: {\n element: {\n [` > *:not(:last-child)`]: {\n paddingBottom: Styles.token.spacing.md,\n marginBottom: Styles.token.spacing.md,\n borderBottom: `1px solid ${\n isThemeDark\n ? Styles.token.color.gray.dark\n : Styles.token.color.gray.light\n }`,\n },\n\n [`+ .umd-feed-events-grouped-entries`]: {\n paddingTop: Styles.token.spacing.md,\n marginTop: Styles.token.spacing.md,\n borderTop: `1px solid ${\n isThemeDark\n ? Styles.token.color.gray.dark\n : Styles.token.color.gray.light\n }`,\n },\n },\n },\n }),\n );\n });\n\n // Override the offset with actual event count to fix lazy load\n const originalSetOffset = helperFunctions.setOffset;\n helperFunctions.setOffset = () => originalSetOffset(actualEventCount);\n\n await feedDisplay.resultLoad({\n ...props,\n ...helperFunctions,\n displayResults,\n entries,\n });\n\n // Restore original setOffset\n helperFunctions.setOffset = originalSetOffset;\n\n if (shadowRoot) {\n feedDisplay.setShadowStyles({\n shadowRoot,\n styles,\n });\n }\n };\n\n container.appendChild(loader.element);\n\n feedFetch.start({\n ...props,\n ...helperFunctions,\n displayResults,\n displayResultStart: feedDisplay.resultStart,\n displayNoResults: feedDisplay.noResults,\n layoutElement: groupLayout(),\n });\n\n return {\n element: container,\n styles,\n events: {\n callback,\n },\n };\n })();\n"],"names":["days","grouped","loader","feedMacros.loader","dataComposed.display","feedElements.asset.standard","feedDisplay.resultLoad","feedDisplay.setShadowStyles","feedFetch.start","feedDisplay.resultStart","feedDisplay.noResults"],"mappings":"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"}
1
+ {"version":3,"file":"grouped.mjs","sources":["../../../source/composite/events/grouped.ts"],"sourcesContent":["import * as Styles from '@universityofmaryland/web-styles-library';\nimport { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport { Atomic, 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 { EVENTS_RANGE_QUERY, EVENTS_COUNT_RANGE_QUERY } from './common/queries';\nimport { type ListProps, type FeedDisplay, type EventType } from './_types';\nimport { type ElementModel } from '../../_types';\n\ninterface GroupedEvent {\n date: string;\n events: EventType[];\n}\n\nconst getDateBanner = (dateStamp: string): string => {\n // Parse the date string more reliably\n // Handle both \"YYYY-MM-DD\" and ISO format strings\n const dateParts = dateStamp.split('T')[0].split('-');\n const year = parseInt(dateParts[0], 10);\n const month = parseInt(dateParts[1], 10) - 1; // Month is 0-indexed\n const day = parseInt(dateParts[2], 10);\n\n // Create dates using local timezone to avoid timezone shifts\n const eventDate = new Date(year, month, day);\n const currentDate = new Date();\n currentDate.setHours(0, 0, 0, 0);\n\n const weekFromNow = new Date();\n weekFromNow.setDate(currentDate.getDate() + 7);\n weekFromNow.setHours(0, 0, 0, 0);\n\n // Check if it's today\n if (\n eventDate.getFullYear() === currentDate.getFullYear() &&\n eventDate.getMonth() === currentDate.getMonth() &&\n eventDate.getDate() === currentDate.getDate()\n ) {\n return 'Today';\n }\n\n // Check if it's within the next 7 days\n if (\n eventDate.getTime() > currentDate.getTime() &&\n eventDate.getTime() <= weekFromNow.getTime()\n ) {\n const days = [\n 'Sunday',\n 'Monday',\n 'Tuesday',\n 'Wednesday',\n 'Thursday',\n 'Friday',\n 'Saturday',\n ];\n return days[eventDate.getDay()];\n }\n\n // Otherwise return day of week, month and day\n const days = [\n 'Sunday',\n 'Monday',\n 'Tuesday',\n 'Wednesday',\n 'Thursday',\n 'Friday',\n 'Saturday',\n ];\n const months = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec',\n ];\n return `${days[eventDate.getDay()]}, ${\n months[eventDate.getMonth()]\n } ${eventDate.getDate()}`;\n};\n\nconst MONTH_MAP: Record<string, string> = {\n Jan: '01',\n Feb: '02',\n Mar: '03',\n Apr: '04',\n May: '05',\n Jun: '06',\n Jul: '07',\n Aug: '08',\n Sep: '09',\n Oct: '10',\n Nov: '11',\n Dec: '12',\n};\n\nconst parseLocalDate = (dateString: string): Date => {\n const parts = dateString.split('-');\n const date = new Date(\n parseInt(parts[0], 10),\n parseInt(parts[1], 10) - 1,\n parseInt(parts[2], 10),\n );\n date.setHours(0, 0, 0, 0);\n return date;\n};\n\nconst getEventStartDate = (event: EventType): Date => {\n return parseLocalDate(event.startStamp.split('T')[0]);\n};\n\nconst isMultiDayEvent = (event: EventType): boolean => {\n const startParts = event.startStamp.split('T')[0].split('-');\n const startMonth = startParts[1];\n const startDay = startParts[2];\n const endMonth = MONTH_MAP[event.endMonth];\n const endDay = event.endDay.padStart(2, '0');\n\n return !(startMonth === endMonth && startDay === endDay);\n};\n\nconst eventStartsOnDate = (event: EventType, targetDate: Date): boolean => {\n const eventStartDate = getEventStartDate(event);\n return eventStartDate.getTime() === targetDate.getTime();\n};\n\nconst getEventPriority = (event: EventType, groupDate: Date): number => {\n const isMulti = isMultiDayEvent(event);\n const startsOnDate = eventStartsOnDate(event, groupDate);\n\n if (isMulti && startsOnDate) return 1;\n if (!isMulti) return 2;\n return 3;\n};\n\nconst sortEventsByPriority = (\n events: EventType[],\n groupDate: Date,\n): EventType[] => {\n return [...events].sort((a, b) => {\n const aPriority = getEventPriority(a, groupDate);\n const bPriority = getEventPriority(b, groupDate);\n return aPriority - bPriority;\n });\n};\n\nconst groupEventsByDate = (events: EventType[]): GroupedEvent[] => {\n const currentDate = new Date();\n currentDate.setHours(0, 0, 0, 0);\n\n const grouped = events.reduce((acc, event) => {\n const eventDate = getEventStartDate(event);\n const dateKey =\n eventDate < currentDate\n ? currentDate.toISOString().split('T')[0]\n : event.startStamp;\n\n if (!acc[dateKey]) {\n acc[dateKey] = {\n date: getDateBanner(dateKey),\n events: [],\n };\n }\n acc[dateKey].events.push(event);\n return acc;\n }, {} as Record<string, GroupedEvent>);\n\n Object.keys(grouped).forEach((dateKey) => {\n const groupDate = parseLocalDate(dateKey);\n grouped[dateKey].events = sortEventsByPriority(\n grouped[dateKey].events,\n groupDate,\n );\n });\n\n return Object.values(grouped).sort((a, b) => {\n const dateA = new Date(\n Object.keys(grouped).find((key) => grouped[key] === a) || '',\n );\n const dateB = new Date(\n Object.keys(grouped).find((key) => grouped[key] === b) || '',\n );\n return dateA.getTime() - dateB.getTime();\n });\n};\n\nexport default (props: ListProps): ElementModel =>\n (() => {\n const { isThemeDark } = props;\n const loader = feedMacros.loader.create({ isThemeDark });\n const container = document.createElement('div');\n const setTotalEntries = (count: number) => (totalEntries = count);\n const setOffset = (count: number) => (offset = offset + count);\n const setStyles = (additonalStyles: string) => (styles += additonalStyles);\n const getContainer = () => container;\n const getTotalEntries = () => totalEntries;\n const getOffset = () => offset;\n const getStyles = () => styles;\n const getShadowRoot = () => shadowRoot;\n let totalEntries = 0;\n let offset = 0;\n let styles = `\n ${loader.styles}\n `;\n let shadowRoot: ShadowRoot | null = null;\n let lastDateHeadline: string | null = null;\n\n const helperFunctions = {\n setTotalEntries,\n setOffset,\n setStyles,\n getContainer,\n getOffset,\n getTotalEntries,\n getStyles,\n getShadowRoot,\n };\n\n const callback = (shadow: ShadowRoot) => {\n shadowRoot = shadow;\n };\n\n const groupLayout = (): ElementModel => {\n return new ElementBuilder()\n .withClassName('umd-feed-events-grouped')\n .build();\n };\n\n const displayResults = async ({ feedData }: FeedDisplay) => {\n const groupedEvents = groupEventsByDate(feedData);\n const entries: ElementModel[] = [];\n let actualEventCount = 0;\n\n groupedEvents.forEach((group) => {\n if (group.date !== lastDateHeadline) {\n const dateHeadline = document.createElement('p');\n dateHeadline.textContent = group.date;\n\n entries.push(\n new ElementBuilder(dateHeadline)\n .styled(Styles.element.text.decoration.ribbon)\n .withStyles({\n element: {\n margin: `${Styles.token.spacing.lg} 0`,\n },\n })\n .build(),\n );\n\n lastDateHeadline = group.date;\n }\n\n const dateEntries = group.events.map((entry) =>\n Composite.card.list({\n ...dataComposed.display({ entry, isThemeDark }),\n dateSign: Atomic.events.sign({\n ...entry,\n isThemeDark,\n isLargeSize: true,\n }),\n image: feedElements.asset.standard({\n images: entry.image,\n url: entry.url,\n }),\n isAligned: false,\n }),\n );\n\n actualEventCount += group.events.length;\n\n const entriesBuilder = new ElementBuilder()\n .withClassName('umd-feed-events-grouped-entries')\n .withStyles({\n element: {\n [` > *:not(:last-child)`]: {\n paddingBottom: Styles.token.spacing.md,\n marginBottom: Styles.token.spacing.md,\n borderBottom: `1px solid ${\n isThemeDark\n ? Styles.token.color.gray.dark\n : Styles.token.color.gray.light\n }`,\n },\n\n [`+ .umd-feed-events-grouped-entries`]: {\n paddingTop: Styles.token.spacing.md,\n marginTop: Styles.token.spacing.md,\n borderTop: `1px solid ${\n isThemeDark\n ? Styles.token.color.gray.dark\n : Styles.token.color.gray.light\n }`,\n },\n },\n });\n\n dateEntries.forEach((entry) => entriesBuilder.withChild(entry));\n\n entries.push(entriesBuilder.build());\n });\n\n // Override the offset with actual event count to fix lazy load\n const originalSetOffset = helperFunctions.setOffset;\n helperFunctions.setOffset = () => originalSetOffset(actualEventCount);\n\n await feedDisplay.resultLoad({\n ...props,\n ...helperFunctions,\n displayResults,\n entries,\n query: EVENTS_RANGE_QUERY,\n });\n\n // Restore original setOffset\n helperFunctions.setOffset = originalSetOffset;\n\n if (shadowRoot) {\n feedDisplay.setShadowStyles({\n shadowRoot,\n styles,\n });\n }\n };\n\n container.appendChild(loader.element);\n\n feedFetch.start({\n ...props,\n ...helperFunctions,\n displayResults,\n displayResultStart: feedDisplay.resultStart,\n displayNoResults: feedDisplay.noResults,\n layoutElement: groupLayout(),\n query: EVENTS_RANGE_QUERY,\n countQuery: EVENTS_COUNT_RANGE_QUERY,\n });\n\n return {\n element: container,\n styles,\n events: {\n callback,\n },\n };\n })();\n"],"names":["days","grouped","loader","feedMacros.loader","dataComposed.display","feedElements.asset.standard","feedDisplay.resultLoad","feedDisplay.setShadowStyles","feedFetch.start","feedDisplay.resultStart","feedDisplay.noResults"],"mappings":"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"}
@@ -3,7 +3,9 @@ const webElementsLibrary = require("@universityofmaryland/web-elements-library")
3
3
  const asset = require("../../elements/asset.js");
4
4
  const layout = require("../../elements/layout.js");
5
5
  require("@universityofmaryland/web-styles-library");
6
+ require("@universityofmaryland/web-builder-library");
6
7
  const loader = require("../../macros/loader.js");
8
+ require("@universityofmaryland/web-utilities-library/theme");
7
9
  require("@universityofmaryland/web-utilities-library/network");
8
10
  require("@universityofmaryland/web-elements-library/composite");
9
11
  require("@universityofmaryland/web-elements-library/atomic");
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sources":["../../../source/composite/events/list.ts"],"sourcesContent":["import { Atomic, 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 dateSign: Atomic.events.sign({\n ...entry,\n isThemeDark,\n isLargeSize: true,\n }),\n image: feedElements.asset.standard({\n images: entry.image,\n url: entry.url,\n }),\n isAligned: false,\n }),\n ),\n });\n\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","Atomic","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,UAAUC,mBAAAA,OAAO,OAAO,KAAK;AAAA,YAC3B,GAAG;AAAA,YACH;AAAA,YACA,aAAa;AAAA,UAAA,CACd;AAAA,UACD,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,YAAYP,SAAO,OAAO;AAEpCQ,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;;"}
1
+ {"version":3,"file":"list.js","sources":["../../../source/composite/events/list.ts"],"sourcesContent":["import { Atomic, 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 dateSign: Atomic.events.sign({\n ...entry,\n isThemeDark,\n isLargeSize: true,\n }),\n image: feedElements.asset.standard({\n images: entry.image,\n url: entry.url,\n }),\n isAligned: false,\n }),\n ),\n });\n\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","Atomic","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,UAAUC,mBAAAA,OAAO,OAAO,KAAK;AAAA,YAC3B,GAAG;AAAA,YACH;AAAA,YACA,aAAa;AAAA,UAAA,CACd;AAAA,UACD,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,YAAYP,SAAO,OAAO;AAEpCQ,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;;"}
@@ -2,7 +2,9 @@ import { Composite, Atomic } from "@universityofmaryland/web-elements-library";
2
2
  import { standard } from "../../elements/asset.mjs";
3
3
  import { stacked } from "../../elements/layout.mjs";
4
4
  import "@universityofmaryland/web-styles-library";
5
+ import "@universityofmaryland/web-builder-library";
5
6
  import loader from "../../macros/loader.mjs";
7
+ import "@universityofmaryland/web-utilities-library/theme";
6
8
  import "@universityofmaryland/web-utilities-library/network";
7
9
  import "@universityofmaryland/web-elements-library/composite";
8
10
  import "@universityofmaryland/web-elements-library/atomic";
@@ -1 +1 @@
1
- {"version":3,"file":"list.mjs","sources":["../../../source/composite/events/list.ts"],"sourcesContent":["import { Atomic, 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 dateSign: Atomic.events.sign({\n ...entry,\n isThemeDark,\n isLargeSize: true,\n }),\n image: feedElements.asset.standard({\n images: entry.image,\n url: entry.url,\n }),\n isAligned: false,\n }),\n ),\n });\n\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,UAAU,OAAO,OAAO,KAAK;AAAA,YAC3B,GAAG;AAAA,YACH;AAAA,YACA,aAAa;AAAA,UAAA,CACd;AAAA,UACD,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;"}
1
+ {"version":3,"file":"list.mjs","sources":["../../../source/composite/events/list.ts"],"sourcesContent":["import { Atomic, 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 dateSign: Atomic.events.sign({\n ...entry,\n isThemeDark,\n isLargeSize: true,\n }),\n image: feedElements.asset.standard({\n images: entry.image,\n url: entry.url,\n }),\n isAligned: false,\n }),\n ),\n });\n\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,UAAU,OAAO,OAAO,KAAK;AAAA,YAC3B,GAAG;AAAA,YACH;AAAA,YACA,aAAa;AAAA,UAAA,CACd;AAAA,UACD,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;"}
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  require("@universityofmaryland/web-styles-library");
3
+ require("@universityofmaryland/web-builder-library");
3
4
  require("@universityofmaryland/web-elements-library");
5
+ require("@universityofmaryland/web-utilities-library/theme");
4
6
  const slider$1 = require("../../macros/slider.js");
5
7
  const QUERY_DATA = `
6
8
  title
@@ -1 +1 @@
1
- {"version":3,"file":"slider.js","sources":["../../../source/composite/events/slider.ts"],"sourcesContent":["import * as feedMacros from 'macros';\nimport { type SliderProps } from './_types';\nimport { type ElementModel } from '../../_types';\n\nconst QUERY_DATA = `\n title\n url\n startMonth: startDate @formatDateTime(format: \"M\")\n startDay: startDate @formatDateTime(format: \"d\")\n endMonth: endDate @formatDateTime(format: \"M\")\n endDay: endDate @formatDateTime(format: \"d\")\n`;\n\nconst query = `\n query getEvents($startDate: String!, $related: [QueryArgument]) {\n entries: solspace_calendar {\n events(\n relatedTo: $related\n loadOccurrences: true\n startsAfterOrAt: $startDate\n limit: 12\n ) {\n ... on submission_Event {\n ${QUERY_DATA}\n }\n }\n }\n }\n`;\n\nexport default (props: SliderProps): ElementModel =>\n feedMacros.slider({\n ...props,\n query,\n url: 'https://calendar.umd.edu/graphql',\n });\n"],"names":["feedMacros.slider"],"mappings":";;;;AAIA,MAAM,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASnB,MAAM,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAUF,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAOtB,MAAA,SAAe,CAAC,UACdA,SAAkB;AAAA,EAChB,GAAG;AAAA,EACH;AAAA,EACA,KAAK;AACP,CAAC;;"}
1
+ {"version":3,"file":"slider.js","sources":["../../../source/composite/events/slider.ts"],"sourcesContent":["import * as feedMacros from 'macros';\nimport { type SliderProps } from './_types';\nimport { type ElementModel } from '../../_types';\n\nconst QUERY_DATA = `\n title\n url\n startMonth: startDate @formatDateTime(format: \"M\")\n startDay: startDate @formatDateTime(format: \"d\")\n endMonth: endDate @formatDateTime(format: \"M\")\n endDay: endDate @formatDateTime(format: \"d\")\n`;\n\nconst query = `\n query getEvents($startDate: String!, $related: [QueryArgument]) {\n entries: solspace_calendar {\n events(\n relatedTo: $related\n loadOccurrences: true\n startsAfterOrAt: $startDate\n limit: 12\n ) {\n ... on submission_Event {\n ${QUERY_DATA}\n }\n }\n }\n }\n`;\n\nexport default (props: SliderProps): ElementModel =>\n feedMacros.slider({\n ...props,\n query,\n url: 'https://calendar.umd.edu/graphql',\n });\n"],"names":["feedMacros.slider"],"mappings":";;;;;;AAIA,MAAM,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASnB,MAAM,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAUF,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAOtB,MAAA,SAAe,CAAC,UACdA,SAAkB;AAAA,EAChB,GAAG;AAAA,EACH;AAAA,EACA,KAAK;AACP,CAAC;;"}
@@ -1,5 +1,7 @@
1
1
  import "@universityofmaryland/web-styles-library";
2
+ import "@universityofmaryland/web-builder-library";
2
3
  import "@universityofmaryland/web-elements-library";
4
+ import "@universityofmaryland/web-utilities-library/theme";
3
5
  import slider$1 from "../../macros/slider.mjs";
4
6
  const QUERY_DATA = `
5
7
  title
@@ -1 +1 @@
1
- {"version":3,"file":"slider.mjs","sources":["../../../source/composite/events/slider.ts"],"sourcesContent":["import * as feedMacros from 'macros';\nimport { type SliderProps } from './_types';\nimport { type ElementModel } from '../../_types';\n\nconst QUERY_DATA = `\n title\n url\n startMonth: startDate @formatDateTime(format: \"M\")\n startDay: startDate @formatDateTime(format: \"d\")\n endMonth: endDate @formatDateTime(format: \"M\")\n endDay: endDate @formatDateTime(format: \"d\")\n`;\n\nconst query = `\n query getEvents($startDate: String!, $related: [QueryArgument]) {\n entries: solspace_calendar {\n events(\n relatedTo: $related\n loadOccurrences: true\n startsAfterOrAt: $startDate\n limit: 12\n ) {\n ... on submission_Event {\n ${QUERY_DATA}\n }\n }\n }\n }\n`;\n\nexport default (props: SliderProps): ElementModel =>\n feedMacros.slider({\n ...props,\n query,\n url: 'https://calendar.umd.edu/graphql',\n });\n"],"names":["feedMacros.slider"],"mappings":";;;AAIA,MAAM,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASnB,MAAM,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAUF,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAOtB,MAAA,SAAe,CAAC,UACdA,SAAkB;AAAA,EAChB,GAAG;AAAA,EACH;AAAA,EACA,KAAK;AACP,CAAC;"}
1
+ {"version":3,"file":"slider.mjs","sources":["../../../source/composite/events/slider.ts"],"sourcesContent":["import * as feedMacros from 'macros';\nimport { type SliderProps } from './_types';\nimport { type ElementModel } from '../../_types';\n\nconst QUERY_DATA = `\n title\n url\n startMonth: startDate @formatDateTime(format: \"M\")\n startDay: startDate @formatDateTime(format: \"d\")\n endMonth: endDate @formatDateTime(format: \"M\")\n endDay: endDate @formatDateTime(format: \"d\")\n`;\n\nconst query = `\n query getEvents($startDate: String!, $related: [QueryArgument]) {\n entries: solspace_calendar {\n events(\n relatedTo: $related\n loadOccurrences: true\n startsAfterOrAt: $startDate\n limit: 12\n ) {\n ... on submission_Event {\n ${QUERY_DATA}\n }\n }\n }\n }\n`;\n\nexport default (props: SliderProps): ElementModel =>\n feedMacros.slider({\n ...props,\n query,\n url: 'https://calendar.umd.edu/graphql',\n });\n"],"names":["feedMacros.slider"],"mappings":";;;;;AAIA,MAAM,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASnB,MAAM,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAUF,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAOtB,MAAA,SAAe,CAAC,UACdA,SAAkB;AAAA,EAChB,GAAG;AAAA,EACH;AAAA,EACA,KAAK;AACP,CAAC;"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  require("@universityofmaryland/web-styles-library");
4
+ require("@universityofmaryland/web-builder-library");
4
5
  require("@universityofmaryland/web-elements-library");
5
6
  const text = require("../../../elements/text.js");
6
7
  const fetch = require("./fetch.js");
@@ -1 +1 @@
1
- {"version":3,"file":"data.js","sources":["../../../../source/composite/news/common/data.ts"],"sourcesContent":["import * as feedElements from 'elements';\nimport * as feedFetch from './fetch';\nimport {\n CommonProps,\n DisplayStartProps,\n DisplayProps,\n EntryType,\n FeedDisplay,\n} from '../_types';\n\ninterface LazyLoadProps extends DisplayProps {\n callback: (props: DisplayStartProps) => Promise<void>;\n}\n\ninterface DataApiProps extends CommonProps {}\n\nexport const lazyLoadVariables = (props: LazyLoadProps) => ({\n ...props,\n totalEntries: props.getTotalEntries(),\n offset: props.getOffset(),\n container: props.getContainer(),\n callback: () => feedFetch.load(props),\n});\n\nexport const apiVariables = (\n props: DataApiProps,\n): feedFetch.TypeAPIFeedVariables => {\n const {\n isUnion,\n categories,\n getOffset,\n token,\n numberOfRowsToStart,\n numberOfColumnsToShow = 1,\n entriesToRemove,\n } = props;\n const obj: feedFetch.TypeAPIFeedVariables = {\n offset: getOffset(),\n token,\n limit: numberOfRowsToStart,\n };\n\n if (numberOfColumnsToShow) {\n obj.limit = numberOfColumnsToShow * numberOfRowsToStart;\n }\n\n if (!isUnion && categories) {\n obj.relatedToAll = categories;\n }\n\n if (isUnion && categories) {\n obj.related = categories;\n }\n\n if (entriesToRemove) {\n obj.not = ['not', ...entriesToRemove];\n }\n\n return obj;\n};\n\nexport const display = ({\n entry,\n isThemeDark,\n}: {\n entry: EntryType;\n isThemeDark?: boolean;\n isTransparent?: boolean;\n}) => ({\n newsId: entry.id.toString(),\n headline: feedElements.text.headline({\n text: entry.title,\n url: entry.url,\n }),\n text: feedElements.text.summary({ text: entry.summary }),\n date: feedElements.text.date({\n date: entry.date,\n dateFormatted: entry.dateFormatted,\n }),\n isThemeDark,\n});\n"],"names":["feedFetch.load","feedElements.text.headline","feedElements.text.summary","feedElements.text.date"],"mappings":";;;;;;AAgBO,MAAM,oBAAoB,CAAC,WAA0B;AAAA,EAC1D,GAAG;AAAA,EACH,cAAc,MAAM,gBAAA;AAAA,EACpB,QAAQ,MAAM,UAAA;AAAA,EACd,WAAW,MAAM,aAAA;AAAA,EACjB,UAAU,MAAMA,MAAAA,KAAe,KAAK;AACtC;AAEO,MAAM,eAAe,CAC1B,UACmC;AACnC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,wBAAwB;AAAA,IACxB;AAAA,EAAA,IACE;AACJ,QAAM,MAAsC;AAAA,IAC1C,QAAQ,UAAA;AAAA,IACR;AAAA,IACA,OAAO;AAAA,EAAA;AAGT,MAAI,uBAAuB;AACzB,QAAI,QAAQ,wBAAwB;AAAA,EACtC;AAEA,MAAI,CAAC,WAAW,YAAY;AAC1B,QAAI,eAAe;AAAA,EACrB;AAEA,MAAI,WAAW,YAAY;AACzB,QAAI,UAAU;AAAA,EAChB;AAEA,MAAI,iBAAiB;AACnB,QAAI,MAAM,CAAC,OAAO,GAAG,eAAe;AAAA,EACtC;AAEA,SAAO;AACT;AAEO,MAAM,UAAU,CAAC;AAAA,EACtB;AAAA,EACA;AACF,OAIO;AAAA,EACL,QAAQ,MAAM,GAAG,SAAA;AAAA,EACjB,UAAUC,KAAAA,SAA2B;AAAA,IACnC,MAAM,MAAM;AAAA,IACZ,KAAK,MAAM;AAAA,EAAA,CACZ;AAAA,EACD,MAAMC,KAAAA,QAA0B,EAAE,MAAM,MAAM,SAAS;AAAA,EACvD,MAAMC,KAAAA,KAAuB;AAAA,IAC3B,MAAM,MAAM;AAAA,IACZ,eAAe,MAAM;AAAA,EAAA,CACtB;AAAA,EACD;AACF;;;;"}
1
+ {"version":3,"file":"data.js","sources":["../../../../source/composite/news/common/data.ts"],"sourcesContent":["import * as feedElements from 'elements';\nimport * as feedFetch from './fetch';\nimport {\n CommonProps,\n DisplayStartProps,\n DisplayProps,\n EntryType,\n FeedDisplay,\n} from '../_types';\n\ninterface LazyLoadProps extends DisplayProps {\n callback: (props: DisplayStartProps) => Promise<void>;\n}\n\ninterface DataApiProps extends CommonProps {}\n\nexport const lazyLoadVariables = (props: LazyLoadProps) => ({\n ...props,\n totalEntries: props.getTotalEntries(),\n offset: props.getOffset(),\n container: props.getContainer(),\n callback: () => feedFetch.load(props),\n});\n\nexport const apiVariables = (\n props: DataApiProps,\n): feedFetch.TypeAPIFeedVariables => {\n const {\n isUnion,\n categories,\n getOffset,\n token,\n numberOfRowsToStart,\n numberOfColumnsToShow = 1,\n entriesToRemove,\n } = props;\n const obj: feedFetch.TypeAPIFeedVariables = {\n offset: getOffset(),\n token,\n limit: numberOfRowsToStart,\n };\n\n if (numberOfColumnsToShow) {\n obj.limit = numberOfColumnsToShow * numberOfRowsToStart;\n }\n\n if (!isUnion && categories) {\n obj.relatedToAll = categories;\n }\n\n if (isUnion && categories) {\n obj.related = categories;\n }\n\n if (entriesToRemove) {\n obj.not = ['not', ...entriesToRemove];\n }\n\n return obj;\n};\n\nexport const display = ({\n entry,\n isThemeDark,\n}: {\n entry: EntryType;\n isThemeDark?: boolean;\n isTransparent?: boolean;\n}) => ({\n newsId: entry.id.toString(),\n headline: feedElements.text.headline({\n text: entry.title,\n url: entry.url,\n }),\n text: feedElements.text.summary({ text: entry.summary }),\n date: feedElements.text.date({\n date: entry.date,\n dateFormatted: entry.dateFormatted,\n }),\n isThemeDark,\n});\n"],"names":["feedFetch.load","feedElements.text.headline","feedElements.text.summary","feedElements.text.date"],"mappings":";;;;;;;AAgBO,MAAM,oBAAoB,CAAC,WAA0B;AAAA,EAC1D,GAAG;AAAA,EACH,cAAc,MAAM,gBAAA;AAAA,EACpB,QAAQ,MAAM,UAAA;AAAA,EACd,WAAW,MAAM,aAAA;AAAA,EACjB,UAAU,MAAMA,MAAAA,KAAe,KAAK;AACtC;AAEO,MAAM,eAAe,CAC1B,UACmC;AACnC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,wBAAwB;AAAA,IACxB;AAAA,EAAA,IACE;AACJ,QAAM,MAAsC;AAAA,IAC1C,QAAQ,UAAA;AAAA,IACR;AAAA,IACA,OAAO;AAAA,EAAA;AAGT,MAAI,uBAAuB;AACzB,QAAI,QAAQ,wBAAwB;AAAA,EACtC;AAEA,MAAI,CAAC,WAAW,YAAY;AAC1B,QAAI,eAAe;AAAA,EACrB;AAEA,MAAI,WAAW,YAAY;AACzB,QAAI,UAAU;AAAA,EAChB;AAEA,MAAI,iBAAiB;AACnB,QAAI,MAAM,CAAC,OAAO,GAAG,eAAe;AAAA,EACtC;AAEA,SAAO;AACT;AAEO,MAAM,UAAU,CAAC;AAAA,EACtB;AAAA,EACA;AACF,OAIO;AAAA,EACL,QAAQ,MAAM,GAAG,SAAA;AAAA,EACjB,UAAUC,KAAAA,SAA2B;AAAA,IACnC,MAAM,MAAM;AAAA,IACZ,KAAK,MAAM;AAAA,EAAA,CACZ;AAAA,EACD,MAAMC,KAAAA,QAA0B,EAAE,MAAM,MAAM,SAAS;AAAA,EACvD,MAAMC,KAAAA,KAAuB;AAAA,IAC3B,MAAM,MAAM;AAAA,IACZ,eAAe,MAAM;AAAA,EAAA,CACtB;AAAA,EACD;AACF;;;;"}
@@ -1,4 +1,5 @@
1
1
  import "@universityofmaryland/web-styles-library";
2
+ import "@universityofmaryland/web-builder-library";
2
3
  import "@universityofmaryland/web-elements-library";
3
4
  import { date, summary, headline } from "../../../elements/text.mjs";
4
5
  import { load } from "./fetch.mjs";
@@ -1 +1 @@
1
- {"version":3,"file":"data.mjs","sources":["../../../../source/composite/news/common/data.ts"],"sourcesContent":["import * as feedElements from 'elements';\nimport * as feedFetch from './fetch';\nimport {\n CommonProps,\n DisplayStartProps,\n DisplayProps,\n EntryType,\n FeedDisplay,\n} from '../_types';\n\ninterface LazyLoadProps extends DisplayProps {\n callback: (props: DisplayStartProps) => Promise<void>;\n}\n\ninterface DataApiProps extends CommonProps {}\n\nexport const lazyLoadVariables = (props: LazyLoadProps) => ({\n ...props,\n totalEntries: props.getTotalEntries(),\n offset: props.getOffset(),\n container: props.getContainer(),\n callback: () => feedFetch.load(props),\n});\n\nexport const apiVariables = (\n props: DataApiProps,\n): feedFetch.TypeAPIFeedVariables => {\n const {\n isUnion,\n categories,\n getOffset,\n token,\n numberOfRowsToStart,\n numberOfColumnsToShow = 1,\n entriesToRemove,\n } = props;\n const obj: feedFetch.TypeAPIFeedVariables = {\n offset: getOffset(),\n token,\n limit: numberOfRowsToStart,\n };\n\n if (numberOfColumnsToShow) {\n obj.limit = numberOfColumnsToShow * numberOfRowsToStart;\n }\n\n if (!isUnion && categories) {\n obj.relatedToAll = categories;\n }\n\n if (isUnion && categories) {\n obj.related = categories;\n }\n\n if (entriesToRemove) {\n obj.not = ['not', ...entriesToRemove];\n }\n\n return obj;\n};\n\nexport const display = ({\n entry,\n isThemeDark,\n}: {\n entry: EntryType;\n isThemeDark?: boolean;\n isTransparent?: boolean;\n}) => ({\n newsId: entry.id.toString(),\n headline: feedElements.text.headline({\n text: entry.title,\n url: entry.url,\n }),\n text: feedElements.text.summary({ text: entry.summary }),\n date: feedElements.text.date({\n date: entry.date,\n dateFormatted: entry.dateFormatted,\n }),\n isThemeDark,\n});\n"],"names":["feedFetch.load","feedElements.text.headline","feedElements.text.summary","feedElements.text.date"],"mappings":";;;;AAgBO,MAAM,oBAAoB,CAAC,WAA0B;AAAA,EAC1D,GAAG;AAAA,EACH,cAAc,MAAM,gBAAA;AAAA,EACpB,QAAQ,MAAM,UAAA;AAAA,EACd,WAAW,MAAM,aAAA;AAAA,EACjB,UAAU,MAAMA,KAAe,KAAK;AACtC;AAEO,MAAM,eAAe,CAC1B,UACmC;AACnC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,wBAAwB;AAAA,IACxB;AAAA,EAAA,IACE;AACJ,QAAM,MAAsC;AAAA,IAC1C,QAAQ,UAAA;AAAA,IACR;AAAA,IACA,OAAO;AAAA,EAAA;AAGT,MAAI,uBAAuB;AACzB,QAAI,QAAQ,wBAAwB;AAAA,EACtC;AAEA,MAAI,CAAC,WAAW,YAAY;AAC1B,QAAI,eAAe;AAAA,EACrB;AAEA,MAAI,WAAW,YAAY;AACzB,QAAI,UAAU;AAAA,EAChB;AAEA,MAAI,iBAAiB;AACnB,QAAI,MAAM,CAAC,OAAO,GAAG,eAAe;AAAA,EACtC;AAEA,SAAO;AACT;AAEO,MAAM,UAAU,CAAC;AAAA,EACtB;AAAA,EACA;AACF,OAIO;AAAA,EACL,QAAQ,MAAM,GAAG,SAAA;AAAA,EACjB,UAAUC,SAA2B;AAAA,IACnC,MAAM,MAAM;AAAA,IACZ,KAAK,MAAM;AAAA,EAAA,CACZ;AAAA,EACD,MAAMC,QAA0B,EAAE,MAAM,MAAM,SAAS;AAAA,EACvD,MAAMC,KAAuB;AAAA,IAC3B,MAAM,MAAM;AAAA,IACZ,eAAe,MAAM;AAAA,EAAA,CACtB;AAAA,EACD;AACF;"}
1
+ {"version":3,"file":"data.mjs","sources":["../../../../source/composite/news/common/data.ts"],"sourcesContent":["import * as feedElements from 'elements';\nimport * as feedFetch from './fetch';\nimport {\n CommonProps,\n DisplayStartProps,\n DisplayProps,\n EntryType,\n FeedDisplay,\n} from '../_types';\n\ninterface LazyLoadProps extends DisplayProps {\n callback: (props: DisplayStartProps) => Promise<void>;\n}\n\ninterface DataApiProps extends CommonProps {}\n\nexport const lazyLoadVariables = (props: LazyLoadProps) => ({\n ...props,\n totalEntries: props.getTotalEntries(),\n offset: props.getOffset(),\n container: props.getContainer(),\n callback: () => feedFetch.load(props),\n});\n\nexport const apiVariables = (\n props: DataApiProps,\n): feedFetch.TypeAPIFeedVariables => {\n const {\n isUnion,\n categories,\n getOffset,\n token,\n numberOfRowsToStart,\n numberOfColumnsToShow = 1,\n entriesToRemove,\n } = props;\n const obj: feedFetch.TypeAPIFeedVariables = {\n offset: getOffset(),\n token,\n limit: numberOfRowsToStart,\n };\n\n if (numberOfColumnsToShow) {\n obj.limit = numberOfColumnsToShow * numberOfRowsToStart;\n }\n\n if (!isUnion && categories) {\n obj.relatedToAll = categories;\n }\n\n if (isUnion && categories) {\n obj.related = categories;\n }\n\n if (entriesToRemove) {\n obj.not = ['not', ...entriesToRemove];\n }\n\n return obj;\n};\n\nexport const display = ({\n entry,\n isThemeDark,\n}: {\n entry: EntryType;\n isThemeDark?: boolean;\n isTransparent?: boolean;\n}) => ({\n newsId: entry.id.toString(),\n headline: feedElements.text.headline({\n text: entry.title,\n url: entry.url,\n }),\n text: feedElements.text.summary({ text: entry.summary }),\n date: feedElements.text.date({\n date: entry.date,\n dateFormatted: entry.dateFormatted,\n }),\n isThemeDark,\n});\n"],"names":["feedFetch.load","feedElements.text.headline","feedElements.text.summary","feedElements.text.date"],"mappings":";;;;;AAgBO,MAAM,oBAAoB,CAAC,WAA0B;AAAA,EAC1D,GAAG;AAAA,EACH,cAAc,MAAM,gBAAA;AAAA,EACpB,QAAQ,MAAM,UAAA;AAAA,EACd,WAAW,MAAM,aAAA;AAAA,EACjB,UAAU,MAAMA,KAAe,KAAK;AACtC;AAEO,MAAM,eAAe,CAC1B,UACmC;AACnC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,wBAAwB;AAAA,IACxB;AAAA,EAAA,IACE;AACJ,QAAM,MAAsC;AAAA,IAC1C,QAAQ,UAAA;AAAA,IACR;AAAA,IACA,OAAO;AAAA,EAAA;AAGT,MAAI,uBAAuB;AACzB,QAAI,QAAQ,wBAAwB;AAAA,EACtC;AAEA,MAAI,CAAC,WAAW,YAAY;AAC1B,QAAI,eAAe;AAAA,EACrB;AAEA,MAAI,WAAW,YAAY;AACzB,QAAI,UAAU;AAAA,EAChB;AAEA,MAAI,iBAAiB;AACnB,QAAI,MAAM,CAAC,OAAO,GAAG,eAAe;AAAA,EACtC;AAEA,SAAO;AACT;AAEO,MAAM,UAAU,CAAC;AAAA,EACtB;AAAA,EACA;AACF,OAIO;AAAA,EACL,QAAQ,MAAM,GAAG,SAAA;AAAA,EACjB,UAAUC,SAA2B;AAAA,IACnC,MAAM,MAAM;AAAA,IACZ,KAAK,MAAM;AAAA,EAAA,CACZ;AAAA,EACD,MAAMC,QAA0B,EAAE,MAAM,MAAM,SAAS;AAAA,EACvD,MAAMC,KAAuB;AAAA,IAC3B,MAAM,MAAM;AAAA,IACZ,eAAe,MAAM;AAAA,EAAA,CACtB;AAAA,EACD;AACF;"}
@@ -4,8 +4,10 @@ const network = require("@universityofmaryland/web-utilities-library/network");
4
4
  const ariaLive = require("../../../macros/aria-live.js");
5
5
  const lazyLoad = require("../../../macros/lazy-load.js");
6
6
  const loader = require("../../../macros/loader.js");
7
- require("@universityofmaryland/web-styles-library");
7
+ require("@universityofmaryland/web-builder-library");
8
8
  require("@universityofmaryland/web-elements-library");
9
+ require("@universityofmaryland/web-styles-library");
10
+ require("@universityofmaryland/web-utilities-library/theme");
9
11
  require("@universityofmaryland/web-elements-library/composite");
10
12
  require("@universityofmaryland/web-elements-library/atomic");
11
13
  const queries = require("./queries.js");
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.js","sources":["../../../../source/composite/news/common/fetch.ts"],"sourcesContent":["import { fetchGraphQL } from '@universityofmaryland/web-utilities-library/network';\nimport * as feedMacros from 'macros';\nimport { ARTICLES_QUERY } from './queries';\nimport * as dataComposed from './data';\nimport {\n NoResultsProps,\n DisplayStartProps,\n DisplayStartResultsProps,\n DisplayProps,\n} from '../_types';\n\ninterface LoadMoreProps extends DisplayProps {}\n\ninterface CreateProps extends DisplayStartProps {\n displayResultStart: (props: DisplayStartResultsProps) => void;\n displayNoResults: (props: NoResultsProps) => void;\n}\n\nexport interface TypeFetchVariables {\n related?: string[];\n relatedToAll?: string[];\n limit?: number;\n offset?: number;\n not?: Array<string | number>;\n}\n\nexport interface TypeAPIFeedVariables extends TypeFetchVariables {\n token: string | null;\n}\n\nexport const ID_GRID_LAYOUT_CONTAINER = 'umd-grid-gap-layout-container';\n\nconst getEntries = async ({\n limit,\n not,\n offset,\n related,\n relatedToAll,\n token,\n}: TypeAPIFeedVariables) => {\n if (!token) throw new Error('Token not found');\n const graceFail = ({ message }: { message: string }) => {\n console.error(message);\n };\n\n const variables: TypeFetchVariables = {\n limit,\n related,\n relatedToAll,\n offset,\n not,\n };\n\n const feedData = await fetchGraphQL({\n query: ARTICLES_QUERY,\n url: 'https://today.umd.edu/graphql',\n token: token,\n variables,\n });\n\n if (\n !feedData ||\n !feedData.data ||\n !feedData.data.entries ||\n feedData.message\n ) {\n if (!feedData) graceFail({ message: 'Feed not found' });\n if (feedData?.message)\n graceFail({ message: `Feed data errors: ${feedData.message}` });\n\n return null;\n }\n\n return {\n entries: feedData.data.entries,\n count: feedData.data.entryCount,\n };\n};\n\nexport const load = async (props: LoadMoreProps) => {\n const { getContainer, getOffset, displayResults, getTotalEntries } = props;\n const container = getContainer();\n const currentCount = getOffset();\n const totalEntries = getTotalEntries();\n\n feedMacros.buttonLazyLoad.remove({ container });\n feedMacros.loader.display({ container });\n\n getEntries(dataComposed.apiVariables(props)).then((feedData) => {\n if (feedData) {\n displayResults({ feedData: feedData.entries });\n\n feedMacros.ariaLive.update({\n container,\n message: `Showing ${\n currentCount + feedData.entries.length\n } of ${totalEntries} articles`,\n });\n }\n });\n};\n\nexport const start = async (props: CreateProps) => {\n const { displayNoResults, displayResultStart, setTotalEntries } = props;\n\n getEntries(dataComposed.apiVariables(props)).then((feedData) => {\n if (!feedData || !feedData.entries) {\n displayNoResults({\n ...props,\n message: 'An error occurred while fetching the data.',\n });\n return;\n }\n\n const totalEntries = feedData.count;\n\n if (totalEntries === 0) {\n displayNoResults({ ...props });\n return;\n }\n\n setTotalEntries(totalEntries);\n\n return displayResultStart({ ...props, feedData: feedData.entries });\n });\n};\n"],"names":["fetchGraphQL","ARTICLES_QUERY","feedMacros.buttonLazyLoad","feedMacros.loader","dataComposed.apiVariables","feedMacros.ariaLive"],"mappings":";;;;;;;;;;;;AAgCA,MAAM,aAAa,OAAO;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA4B;AAC1B,MAAI,CAAC,MAAO,OAAM,IAAI,MAAM,iBAAiB;AAC7C,QAAM,YAAY,CAAC,EAAE,cAAmC;AACtD,YAAQ,MAAM,OAAO;AAAA,EACvB;AAEA,QAAM,YAAgC;AAAA,IACpC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAGF,QAAM,WAAW,MAAMA,qBAAa;AAAA,IAClC,OAAOC,QAAAA;AAAAA,IACP,KAAK;AAAA,IACL;AAAA,IACA;AAAA,EAAA,CACD;AAED,MACE,CAAC,YACD,CAAC,SAAS,QACV,CAAC,SAAS,KAAK,WACf,SAAS,SACT;AACA,QAAI,CAAC,SAAU,WAAU,EAAE,SAAS,kBAAkB;AACtD,QAAI,UAAU;AACZ,gBAAU,EAAE,SAAS,qBAAqB,SAAS,OAAO,IAAI;AAEhE,WAAO;AAAA,EACT;AAEA,SAAO;AAAA,IACL,SAAS,SAAS,KAAK;AAAA,IACvB,OAAO,SAAS,KAAK;AAAA,EAAA;AAEzB;AAEO,MAAM,OAAO,OAAO,UAAyB;AAClD,QAAM,EAAE,cAAc,WAAW,gBAAgB,oBAAoB;AACrE,QAAM,YAAY,aAAA;AAClB,QAAM,eAAe,UAAA;AACrB,QAAM,eAAe,gBAAA;AAErBC,WAA0B,OAAO,EAAE,WAAW;AAC9CC,SAAkB,QAAQ,EAAE,WAAW;AAEvC,aAAWC,KAAAA,aAA0B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa;AAC9D,QAAI,UAAU;AACZ,qBAAe,EAAE,UAAU,SAAS,QAAA,CAAS;AAE7CC,eAAoB,OAAO;AAAA,QACzB;AAAA,QACA,SAAS,WACP,eAAe,SAAS,QAAQ,MAClC,OAAO,YAAY;AAAA,MAAA,CACpB;AAAA,IACH;AAAA,EACF,CAAC;AACH;AAEO,MAAM,QAAQ,OAAO,UAAuB;AACjD,QAAM,EAAE,kBAAkB,oBAAoB,gBAAA,IAAoB;AAElE,aAAWD,KAAAA,aAA0B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa;AAC9D,QAAI,CAAC,YAAY,CAAC,SAAS,SAAS;AAClC,uBAAiB;AAAA,QACf,GAAG;AAAA,QACH,SAAS;AAAA,MAAA,CACV;AACD;AAAA,IACF;AAEA,UAAM,eAAe,SAAS;AAE9B,QAAI,iBAAiB,GAAG;AACtB,uBAAiB,EAAE,GAAG,OAAO;AAC7B;AAAA,IACF;AAEA,oBAAgB,YAAY;AAE5B,WAAO,mBAAmB,EAAE,GAAG,OAAO,UAAU,SAAS,SAAS;AAAA,EACpE,CAAC;AACH;;;"}
1
+ {"version":3,"file":"fetch.js","sources":["../../../../source/composite/news/common/fetch.ts"],"sourcesContent":["import { fetchGraphQL } from '@universityofmaryland/web-utilities-library/network';\nimport * as feedMacros from 'macros';\nimport { ARTICLES_QUERY } from './queries';\nimport * as dataComposed from './data';\nimport {\n NoResultsProps,\n DisplayStartProps,\n DisplayStartResultsProps,\n DisplayProps,\n} from '../_types';\n\ninterface LoadMoreProps extends DisplayProps {}\n\ninterface CreateProps extends DisplayStartProps {\n displayResultStart: (props: DisplayStartResultsProps) => void;\n displayNoResults: (props: NoResultsProps) => void;\n}\n\nexport interface TypeFetchVariables {\n related?: string[];\n relatedToAll?: string[];\n limit?: number;\n offset?: number;\n not?: Array<string | number>;\n}\n\nexport interface TypeAPIFeedVariables extends TypeFetchVariables {\n token: string | null;\n}\n\nexport const ID_GRID_LAYOUT_CONTAINER = 'umd-grid-gap-layout-container';\n\nconst getEntries = async ({\n limit,\n not,\n offset,\n related,\n relatedToAll,\n token,\n}: TypeAPIFeedVariables) => {\n if (!token) throw new Error('Token not found');\n const graceFail = ({ message }: { message: string }) => {\n console.error(message);\n };\n\n const variables: TypeFetchVariables = {\n limit,\n related,\n relatedToAll,\n offset,\n not,\n };\n\n const feedData = await fetchGraphQL({\n query: ARTICLES_QUERY,\n url: 'https://today.umd.edu/graphql',\n token: token,\n variables,\n });\n\n if (\n !feedData ||\n !feedData.data ||\n !feedData.data.entries ||\n feedData.message\n ) {\n if (!feedData) graceFail({ message: 'Feed not found' });\n if (feedData?.message)\n graceFail({ message: `Feed data errors: ${feedData.message}` });\n\n return null;\n }\n\n return {\n entries: feedData.data.entries,\n count: feedData.data.entryCount,\n };\n};\n\nexport const load = async (props: LoadMoreProps) => {\n const { getContainer, getOffset, displayResults, getTotalEntries } = props;\n const container = getContainer();\n const currentCount = getOffset();\n const totalEntries = getTotalEntries();\n\n feedMacros.buttonLazyLoad.remove({ container });\n feedMacros.loader.display({ container });\n\n getEntries(dataComposed.apiVariables(props)).then((feedData) => {\n if (feedData) {\n displayResults({ feedData: feedData.entries });\n\n feedMacros.ariaLive.update({\n container,\n message: `Showing ${\n currentCount + feedData.entries.length\n } of ${totalEntries} articles`,\n });\n }\n });\n};\n\nexport const start = async (props: CreateProps) => {\n const { displayNoResults, displayResultStart, setTotalEntries } = props;\n\n getEntries(dataComposed.apiVariables(props)).then((feedData) => {\n if (!feedData || !feedData.entries) {\n displayNoResults({\n ...props,\n message: 'An error occurred while fetching the data.',\n });\n return;\n }\n\n const totalEntries = feedData.count;\n\n if (totalEntries === 0) {\n displayNoResults({ ...props });\n return;\n }\n\n setTotalEntries(totalEntries);\n\n return displayResultStart({ ...props, feedData: feedData.entries });\n });\n};\n"],"names":["fetchGraphQL","ARTICLES_QUERY","feedMacros.buttonLazyLoad","feedMacros.loader","dataComposed.apiVariables","feedMacros.ariaLive"],"mappings":";;;;;;;;;;;;;;AAgCA,MAAM,aAAa,OAAO;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA4B;AAC1B,MAAI,CAAC,MAAO,OAAM,IAAI,MAAM,iBAAiB;AAC7C,QAAM,YAAY,CAAC,EAAE,cAAmC;AACtD,YAAQ,MAAM,OAAO;AAAA,EACvB;AAEA,QAAM,YAAgC;AAAA,IACpC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAGF,QAAM,WAAW,MAAMA,qBAAa;AAAA,IAClC,OAAOC,QAAAA;AAAAA,IACP,KAAK;AAAA,IACL;AAAA,IACA;AAAA,EAAA,CACD;AAED,MACE,CAAC,YACD,CAAC,SAAS,QACV,CAAC,SAAS,KAAK,WACf,SAAS,SACT;AACA,QAAI,CAAC,SAAU,WAAU,EAAE,SAAS,kBAAkB;AACtD,QAAI,UAAU;AACZ,gBAAU,EAAE,SAAS,qBAAqB,SAAS,OAAO,IAAI;AAEhE,WAAO;AAAA,EACT;AAEA,SAAO;AAAA,IACL,SAAS,SAAS,KAAK;AAAA,IACvB,OAAO,SAAS,KAAK;AAAA,EAAA;AAEzB;AAEO,MAAM,OAAO,OAAO,UAAyB;AAClD,QAAM,EAAE,cAAc,WAAW,gBAAgB,oBAAoB;AACrE,QAAM,YAAY,aAAA;AAClB,QAAM,eAAe,UAAA;AACrB,QAAM,eAAe,gBAAA;AAErBC,WAA0B,OAAO,EAAE,WAAW;AAC9CC,SAAkB,QAAQ,EAAE,WAAW;AAEvC,aAAWC,KAAAA,aAA0B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa;AAC9D,QAAI,UAAU;AACZ,qBAAe,EAAE,UAAU,SAAS,QAAA,CAAS;AAE7CC,eAAoB,OAAO;AAAA,QACzB;AAAA,QACA,SAAS,WACP,eAAe,SAAS,QAAQ,MAClC,OAAO,YAAY;AAAA,MAAA,CACpB;AAAA,IACH;AAAA,EACF,CAAC;AACH;AAEO,MAAM,QAAQ,OAAO,UAAuB;AACjD,QAAM,EAAE,kBAAkB,oBAAoB,gBAAA,IAAoB;AAElE,aAAWD,KAAAA,aAA0B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa;AAC9D,QAAI,CAAC,YAAY,CAAC,SAAS,SAAS;AAClC,uBAAiB;AAAA,QACf,GAAG;AAAA,QACH,SAAS;AAAA,MAAA,CACV;AACD;AAAA,IACF;AAEA,UAAM,eAAe,SAAS;AAE9B,QAAI,iBAAiB,GAAG;AACtB,uBAAiB,EAAE,GAAG,OAAO;AAC7B;AAAA,IACF;AAEA,oBAAgB,YAAY;AAE5B,WAAO,mBAAmB,EAAE,GAAG,OAAO,UAAU,SAAS,SAAS;AAAA,EACpE,CAAC;AACH;;;"}
@@ -2,8 +2,10 @@ import { fetchGraphQL } from "@universityofmaryland/web-utilities-library/networ
2
2
  import ariaLive from "../../../macros/aria-live.mjs";
3
3
  import lazyLoad from "../../../macros/lazy-load.mjs";
4
4
  import loader from "../../../macros/loader.mjs";
5
- import "@universityofmaryland/web-styles-library";
5
+ import "@universityofmaryland/web-builder-library";
6
6
  import "@universityofmaryland/web-elements-library";
7
+ import "@universityofmaryland/web-styles-library";
8
+ import "@universityofmaryland/web-utilities-library/theme";
7
9
  import "@universityofmaryland/web-elements-library/composite";
8
10
  import "@universityofmaryland/web-elements-library/atomic";
9
11
  import { ARTICLES_QUERY } from "./queries.mjs";
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.mjs","sources":["../../../../source/composite/news/common/fetch.ts"],"sourcesContent":["import { fetchGraphQL } from '@universityofmaryland/web-utilities-library/network';\nimport * as feedMacros from 'macros';\nimport { ARTICLES_QUERY } from './queries';\nimport * as dataComposed from './data';\nimport {\n NoResultsProps,\n DisplayStartProps,\n DisplayStartResultsProps,\n DisplayProps,\n} from '../_types';\n\ninterface LoadMoreProps extends DisplayProps {}\n\ninterface CreateProps extends DisplayStartProps {\n displayResultStart: (props: DisplayStartResultsProps) => void;\n displayNoResults: (props: NoResultsProps) => void;\n}\n\nexport interface TypeFetchVariables {\n related?: string[];\n relatedToAll?: string[];\n limit?: number;\n offset?: number;\n not?: Array<string | number>;\n}\n\nexport interface TypeAPIFeedVariables extends TypeFetchVariables {\n token: string | null;\n}\n\nexport const ID_GRID_LAYOUT_CONTAINER = 'umd-grid-gap-layout-container';\n\nconst getEntries = async ({\n limit,\n not,\n offset,\n related,\n relatedToAll,\n token,\n}: TypeAPIFeedVariables) => {\n if (!token) throw new Error('Token not found');\n const graceFail = ({ message }: { message: string }) => {\n console.error(message);\n };\n\n const variables: TypeFetchVariables = {\n limit,\n related,\n relatedToAll,\n offset,\n not,\n };\n\n const feedData = await fetchGraphQL({\n query: ARTICLES_QUERY,\n url: 'https://today.umd.edu/graphql',\n token: token,\n variables,\n });\n\n if (\n !feedData ||\n !feedData.data ||\n !feedData.data.entries ||\n feedData.message\n ) {\n if (!feedData) graceFail({ message: 'Feed not found' });\n if (feedData?.message)\n graceFail({ message: `Feed data errors: ${feedData.message}` });\n\n return null;\n }\n\n return {\n entries: feedData.data.entries,\n count: feedData.data.entryCount,\n };\n};\n\nexport const load = async (props: LoadMoreProps) => {\n const { getContainer, getOffset, displayResults, getTotalEntries } = props;\n const container = getContainer();\n const currentCount = getOffset();\n const totalEntries = getTotalEntries();\n\n feedMacros.buttonLazyLoad.remove({ container });\n feedMacros.loader.display({ container });\n\n getEntries(dataComposed.apiVariables(props)).then((feedData) => {\n if (feedData) {\n displayResults({ feedData: feedData.entries });\n\n feedMacros.ariaLive.update({\n container,\n message: `Showing ${\n currentCount + feedData.entries.length\n } of ${totalEntries} articles`,\n });\n }\n });\n};\n\nexport const start = async (props: CreateProps) => {\n const { displayNoResults, displayResultStart, setTotalEntries } = props;\n\n getEntries(dataComposed.apiVariables(props)).then((feedData) => {\n if (!feedData || !feedData.entries) {\n displayNoResults({\n ...props,\n message: 'An error occurred while fetching the data.',\n });\n return;\n }\n\n const totalEntries = feedData.count;\n\n if (totalEntries === 0) {\n displayNoResults({ ...props });\n return;\n }\n\n setTotalEntries(totalEntries);\n\n return displayResultStart({ ...props, feedData: feedData.entries });\n });\n};\n"],"names":["feedMacros.buttonLazyLoad","feedMacros.loader","dataComposed.apiVariables","feedMacros.ariaLive"],"mappings":";;;;;;;;;;AAgCA,MAAM,aAAa,OAAO;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA4B;AAC1B,MAAI,CAAC,MAAO,OAAM,IAAI,MAAM,iBAAiB;AAC7C,QAAM,YAAY,CAAC,EAAE,cAAmC;AACtD,YAAQ,MAAM,OAAO;AAAA,EACvB;AAEA,QAAM,YAAgC;AAAA,IACpC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAGF,QAAM,WAAW,MAAM,aAAa;AAAA,IAClC,OAAO;AAAA,IACP,KAAK;AAAA,IACL;AAAA,IACA;AAAA,EAAA,CACD;AAED,MACE,CAAC,YACD,CAAC,SAAS,QACV,CAAC,SAAS,KAAK,WACf,SAAS,SACT;AACA,QAAI,CAAC,SAAU,WAAU,EAAE,SAAS,kBAAkB;AACtD,QAAI,UAAU;AACZ,gBAAU,EAAE,SAAS,qBAAqB,SAAS,OAAO,IAAI;AAEhE,WAAO;AAAA,EACT;AAEA,SAAO;AAAA,IACL,SAAS,SAAS,KAAK;AAAA,IACvB,OAAO,SAAS,KAAK;AAAA,EAAA;AAEzB;AAEO,MAAM,OAAO,OAAO,UAAyB;AAClD,QAAM,EAAE,cAAc,WAAW,gBAAgB,oBAAoB;AACrE,QAAM,YAAY,aAAA;AAClB,QAAM,eAAe,UAAA;AACrB,QAAM,eAAe,gBAAA;AAErBA,WAA0B,OAAO,EAAE,WAAW;AAC9CC,SAAkB,QAAQ,EAAE,WAAW;AAEvC,aAAWC,aAA0B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa;AAC9D,QAAI,UAAU;AACZ,qBAAe,EAAE,UAAU,SAAS,QAAA,CAAS;AAE7CC,eAAoB,OAAO;AAAA,QACzB;AAAA,QACA,SAAS,WACP,eAAe,SAAS,QAAQ,MAClC,OAAO,YAAY;AAAA,MAAA,CACpB;AAAA,IACH;AAAA,EACF,CAAC;AACH;AAEO,MAAM,QAAQ,OAAO,UAAuB;AACjD,QAAM,EAAE,kBAAkB,oBAAoB,gBAAA,IAAoB;AAElE,aAAWD,aAA0B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa;AAC9D,QAAI,CAAC,YAAY,CAAC,SAAS,SAAS;AAClC,uBAAiB;AAAA,QACf,GAAG;AAAA,QACH,SAAS;AAAA,MAAA,CACV;AACD;AAAA,IACF;AAEA,UAAM,eAAe,SAAS;AAE9B,QAAI,iBAAiB,GAAG;AACtB,uBAAiB,EAAE,GAAG,OAAO;AAC7B;AAAA,IACF;AAEA,oBAAgB,YAAY;AAE5B,WAAO,mBAAmB,EAAE,GAAG,OAAO,UAAU,SAAS,SAAS;AAAA,EACpE,CAAC;AACH;"}
1
+ {"version":3,"file":"fetch.mjs","sources":["../../../../source/composite/news/common/fetch.ts"],"sourcesContent":["import { fetchGraphQL } from '@universityofmaryland/web-utilities-library/network';\nimport * as feedMacros from 'macros';\nimport { ARTICLES_QUERY } from './queries';\nimport * as dataComposed from './data';\nimport {\n NoResultsProps,\n DisplayStartProps,\n DisplayStartResultsProps,\n DisplayProps,\n} from '../_types';\n\ninterface LoadMoreProps extends DisplayProps {}\n\ninterface CreateProps extends DisplayStartProps {\n displayResultStart: (props: DisplayStartResultsProps) => void;\n displayNoResults: (props: NoResultsProps) => void;\n}\n\nexport interface TypeFetchVariables {\n related?: string[];\n relatedToAll?: string[];\n limit?: number;\n offset?: number;\n not?: Array<string | number>;\n}\n\nexport interface TypeAPIFeedVariables extends TypeFetchVariables {\n token: string | null;\n}\n\nexport const ID_GRID_LAYOUT_CONTAINER = 'umd-grid-gap-layout-container';\n\nconst getEntries = async ({\n limit,\n not,\n offset,\n related,\n relatedToAll,\n token,\n}: TypeAPIFeedVariables) => {\n if (!token) throw new Error('Token not found');\n const graceFail = ({ message }: { message: string }) => {\n console.error(message);\n };\n\n const variables: TypeFetchVariables = {\n limit,\n related,\n relatedToAll,\n offset,\n not,\n };\n\n const feedData = await fetchGraphQL({\n query: ARTICLES_QUERY,\n url: 'https://today.umd.edu/graphql',\n token: token,\n variables,\n });\n\n if (\n !feedData ||\n !feedData.data ||\n !feedData.data.entries ||\n feedData.message\n ) {\n if (!feedData) graceFail({ message: 'Feed not found' });\n if (feedData?.message)\n graceFail({ message: `Feed data errors: ${feedData.message}` });\n\n return null;\n }\n\n return {\n entries: feedData.data.entries,\n count: feedData.data.entryCount,\n };\n};\n\nexport const load = async (props: LoadMoreProps) => {\n const { getContainer, getOffset, displayResults, getTotalEntries } = props;\n const container = getContainer();\n const currentCount = getOffset();\n const totalEntries = getTotalEntries();\n\n feedMacros.buttonLazyLoad.remove({ container });\n feedMacros.loader.display({ container });\n\n getEntries(dataComposed.apiVariables(props)).then((feedData) => {\n if (feedData) {\n displayResults({ feedData: feedData.entries });\n\n feedMacros.ariaLive.update({\n container,\n message: `Showing ${\n currentCount + feedData.entries.length\n } of ${totalEntries} articles`,\n });\n }\n });\n};\n\nexport const start = async (props: CreateProps) => {\n const { displayNoResults, displayResultStart, setTotalEntries } = props;\n\n getEntries(dataComposed.apiVariables(props)).then((feedData) => {\n if (!feedData || !feedData.entries) {\n displayNoResults({\n ...props,\n message: 'An error occurred while fetching the data.',\n });\n return;\n }\n\n const totalEntries = feedData.count;\n\n if (totalEntries === 0) {\n displayNoResults({ ...props });\n return;\n }\n\n setTotalEntries(totalEntries);\n\n return displayResultStart({ ...props, feedData: feedData.entries });\n });\n};\n"],"names":["feedMacros.buttonLazyLoad","feedMacros.loader","dataComposed.apiVariables","feedMacros.ariaLive"],"mappings":";;;;;;;;;;;;AAgCA,MAAM,aAAa,OAAO;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA4B;AAC1B,MAAI,CAAC,MAAO,OAAM,IAAI,MAAM,iBAAiB;AAC7C,QAAM,YAAY,CAAC,EAAE,cAAmC;AACtD,YAAQ,MAAM,OAAO;AAAA,EACvB;AAEA,QAAM,YAAgC;AAAA,IACpC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAGF,QAAM,WAAW,MAAM,aAAa;AAAA,IAClC,OAAO;AAAA,IACP,KAAK;AAAA,IACL;AAAA,IACA;AAAA,EAAA,CACD;AAED,MACE,CAAC,YACD,CAAC,SAAS,QACV,CAAC,SAAS,KAAK,WACf,SAAS,SACT;AACA,QAAI,CAAC,SAAU,WAAU,EAAE,SAAS,kBAAkB;AACtD,QAAI,UAAU;AACZ,gBAAU,EAAE,SAAS,qBAAqB,SAAS,OAAO,IAAI;AAEhE,WAAO;AAAA,EACT;AAEA,SAAO;AAAA,IACL,SAAS,SAAS,KAAK;AAAA,IACvB,OAAO,SAAS,KAAK;AAAA,EAAA;AAEzB;AAEO,MAAM,OAAO,OAAO,UAAyB;AAClD,QAAM,EAAE,cAAc,WAAW,gBAAgB,oBAAoB;AACrE,QAAM,YAAY,aAAA;AAClB,QAAM,eAAe,UAAA;AACrB,QAAM,eAAe,gBAAA;AAErBA,WAA0B,OAAO,EAAE,WAAW;AAC9CC,SAAkB,QAAQ,EAAE,WAAW;AAEvC,aAAWC,aAA0B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa;AAC9D,QAAI,UAAU;AACZ,qBAAe,EAAE,UAAU,SAAS,QAAA,CAAS;AAE7CC,eAAoB,OAAO;AAAA,QACzB;AAAA,QACA,SAAS,WACP,eAAe,SAAS,QAAQ,MAClC,OAAO,YAAY;AAAA,MAAA,CACpB;AAAA,IACH;AAAA,EACF,CAAC;AACH;AAEO,MAAM,QAAQ,OAAO,UAAuB;AACjD,QAAM,EAAE,kBAAkB,oBAAoB,gBAAA,IAAoB;AAElE,aAAWD,aAA0B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa;AAC9D,QAAI,CAAC,YAAY,CAAC,SAAS,SAAS;AAClC,uBAAiB;AAAA,QACf,GAAG;AAAA,QACH,SAAS;AAAA,MAAA,CACV;AACD;AAAA,IACF;AAEA,UAAM,eAAe,SAAS;AAE9B,QAAI,iBAAiB,GAAG;AACtB,uBAAiB,EAAE,GAAG,OAAO;AAC7B;AAAA,IACF;AAEA,oBAAgB,YAAY;AAE5B,WAAO,mBAAmB,EAAE,GAAG,OAAO,UAAU,SAAS,SAAS;AAAA,EACpE,CAAC;AACH;"}
@@ -4,7 +4,9 @@ const asset = require("../../elements/asset.js");
4
4
  const layout = require("../../elements/layout.js");
5
5
  const ariaLive = require("../../macros/aria-live.js");
6
6
  require("@universityofmaryland/web-styles-library");
7
+ require("@universityofmaryland/web-builder-library");
7
8
  const loader = require("../../macros/loader.js");
9
+ require("@universityofmaryland/web-utilities-library/theme");
8
10
  require("@universityofmaryland/web-utilities-library/network");
9
11
  require("@universityofmaryland/web-elements-library/composite");
10
12
  require("@universityofmaryland/web-elements-library/atomic");
@@ -1 +1 @@
1
- {"version":3,"file":"featured.js","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","Composite","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
+ {"version":3,"file":"featured.js","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","Composite","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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"}
@@ -3,7 +3,9 @@ import { standard } from "../../elements/asset.mjs";
3
3
  import { gridGap, gridOffsetGap } from "../../elements/layout.mjs";
4
4
  import ariaLive from "../../macros/aria-live.mjs";
5
5
  import "@universityofmaryland/web-styles-library";
6
+ import "@universityofmaryland/web-builder-library";
6
7
  import loader from "../../macros/loader.mjs";
8
+ import "@universityofmaryland/web-utilities-library/theme";
7
9
  import "@universityofmaryland/web-utilities-library/network";
8
10
  import "@universityofmaryland/web-elements-library/composite";
9
11
  import "@universityofmaryland/web-elements-library/atomic";
@@ -1 +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
+ {"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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"}
@@ -3,7 +3,9 @@ const webElementsLibrary = require("@universityofmaryland/web-elements-library")
3
3
  const asset = require("../../elements/asset.js");
4
4
  const layout = require("../../elements/layout.js");
5
5
  require("@universityofmaryland/web-styles-library");
6
+ require("@universityofmaryland/web-builder-library");
6
7
  const loader = require("../../macros/loader.js");
8
+ require("@universityofmaryland/web-utilities-library/theme");
7
9
  require("@universityofmaryland/web-utilities-library/network");
8
10
  require("@universityofmaryland/web-elements-library/composite");
9
11
  require("@universityofmaryland/web-elements-library/atomic");
@@ -1 +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;;"}
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;;"}
@@ -2,7 +2,9 @@ import { Composite } from "@universityofmaryland/web-elements-library";
2
2
  import { standard } from "../../elements/asset.mjs";
3
3
  import { grid as grid$1, gridGap } from "../../elements/layout.mjs";
4
4
  import "@universityofmaryland/web-styles-library";
5
+ import "@universityofmaryland/web-builder-library";
5
6
  import loader from "../../macros/loader.mjs";
7
+ import "@universityofmaryland/web-utilities-library/theme";
6
8
  import "@universityofmaryland/web-utilities-library/network";
7
9
  import "@universityofmaryland/web-elements-library/composite";
8
10
  import "@universityofmaryland/web-elements-library/atomic";
@@ -1 +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
+ {"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;"}
@@ -3,7 +3,9 @@ const webElementsLibrary = require("@universityofmaryland/web-elements-library")
3
3
  const asset = require("../../elements/asset.js");
4
4
  const layout = require("../../elements/layout.js");
5
5
  require("@universityofmaryland/web-styles-library");
6
+ require("@universityofmaryland/web-builder-library");
6
7
  const loader = require("../../macros/loader.js");
8
+ require("@universityofmaryland/web-utilities-library/theme");
7
9
  require("@universityofmaryland/web-utilities-library/network");
8
10
  require("@universityofmaryland/web-elements-library/composite");
9
11
  require("@universityofmaryland/web-elements-library/atomic");
@@ -1 +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;;"}
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;;"}
@@ -2,7 +2,9 @@ import { Composite } from "@universityofmaryland/web-elements-library";
2
2
  import { standard } from "../../elements/asset.mjs";
3
3
  import { stacked } from "../../elements/layout.mjs";
4
4
  import "@universityofmaryland/web-styles-library";
5
+ import "@universityofmaryland/web-builder-library";
5
6
  import loader from "../../macros/loader.mjs";
7
+ import "@universityofmaryland/web-utilities-library/theme";
6
8
  import "@universityofmaryland/web-utilities-library/network";
7
9
  import "@universityofmaryland/web-elements-library/composite";
8
10
  import "@universityofmaryland/web-elements-library/atomic";