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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (207) hide show
  1. package/dist/academic.js +4 -4
  2. package/dist/academic.js.map +1 -1
  3. package/dist/events.js +10 -10
  4. package/dist/events.js.map +1 -1
  5. package/dist/experts.js +8 -8
  6. package/dist/experts.js.map +1 -1
  7. package/dist/factory/core/createBaseFeed.d.ts.map +1 -1
  8. package/dist/factory/core/createBaseFeed.js +19 -17
  9. package/dist/factory/core/createBaseFeed.js.map +1 -1
  10. package/dist/factory/core/types.d.ts +1 -0
  11. package/dist/factory/core/types.d.ts.map +1 -1
  12. package/dist/factory/helpers/displayHandler.js +29 -47
  13. package/dist/factory/helpers/displayHandler.js.map +1 -1
  14. package/dist/factory/helpers/feedHelpers.js +3 -3
  15. package/dist/factory/helpers/feedHelpers.js.map +1 -1
  16. package/dist/factory/helpers/fetchHandler.js +16 -33
  17. package/dist/factory/helpers/fetchHandler.js.map +1 -1
  18. package/dist/feeds/academic/index.d.ts +1 -1
  19. package/dist/feeds/academic/index.d.ts.map +1 -1
  20. package/dist/feeds/academic/slider.d.ts +1 -2
  21. package/dist/feeds/academic/slider.d.ts.map +1 -1
  22. package/dist/feeds/academic/slider.js +7 -6
  23. package/dist/feeds/academic/slider.js.map +1 -1
  24. package/dist/feeds/events/grid.d.ts +1 -2
  25. package/dist/feeds/events/grid.d.ts.map +1 -1
  26. package/dist/feeds/events/grid.js +22 -21
  27. package/dist/feeds/events/grid.js.map +1 -1
  28. package/dist/feeds/events/grouped.d.ts +1 -2
  29. package/dist/feeds/events/grouped.d.ts.map +1 -1
  30. package/dist/feeds/events/grouped.js +62 -78
  31. package/dist/feeds/events/grouped.js.map +1 -1
  32. package/dist/feeds/events/index.d.ts +4 -4
  33. package/dist/feeds/events/index.d.ts.map +1 -1
  34. package/dist/feeds/events/list.d.ts +1 -2
  35. package/dist/feeds/events/list.d.ts.map +1 -1
  36. package/dist/feeds/events/list.js +22 -21
  37. package/dist/feeds/events/list.js.map +1 -1
  38. package/dist/feeds/events/slider.d.ts +1 -2
  39. package/dist/feeds/events/slider.d.ts.map +1 -1
  40. package/dist/feeds/events/slider.js +7 -6
  41. package/dist/feeds/events/slider.js.map +1 -1
  42. package/dist/feeds/experts/_types.d.ts +2 -1
  43. package/dist/feeds/experts/_types.d.ts.map +1 -1
  44. package/dist/feeds/experts/bio.d.ts +1 -2
  45. package/dist/feeds/experts/bio.d.ts.map +1 -1
  46. package/dist/feeds/experts/bio.js +32 -31
  47. package/dist/feeds/experts/bio.js.map +1 -1
  48. package/dist/feeds/experts/grid.d.ts +1 -2
  49. package/dist/feeds/experts/grid.d.ts.map +1 -1
  50. package/dist/feeds/experts/grid.js +24 -23
  51. package/dist/feeds/experts/grid.js.map +1 -1
  52. package/dist/feeds/experts/index.d.ts +3 -3
  53. package/dist/feeds/experts/index.d.ts.map +1 -1
  54. package/dist/feeds/experts/list.d.ts +1 -2
  55. package/dist/feeds/experts/list.d.ts.map +1 -1
  56. package/dist/feeds/experts/list.js +23 -22
  57. package/dist/feeds/experts/list.js.map +1 -1
  58. package/dist/feeds/news/featured.d.ts +1 -2
  59. package/dist/feeds/news/featured.d.ts.map +1 -1
  60. package/dist/feeds/news/featured.js +56 -55
  61. package/dist/feeds/news/featured.js.map +1 -1
  62. package/dist/feeds/news/grid.d.ts +1 -2
  63. package/dist/feeds/news/grid.d.ts.map +1 -1
  64. package/dist/feeds/news/grid.js +24 -23
  65. package/dist/feeds/news/grid.js.map +1 -1
  66. package/dist/feeds/news/index.d.ts +3 -3
  67. package/dist/feeds/news/index.d.ts.map +1 -1
  68. package/dist/feeds/news/list.d.ts +1 -2
  69. package/dist/feeds/news/list.d.ts.map +1 -1
  70. package/dist/feeds/news/list.js +23 -22
  71. package/dist/feeds/news/list.js.map +1 -1
  72. package/dist/helpers/events/index.js +4 -4
  73. package/dist/helpers/events/index.js.map +1 -1
  74. package/dist/helpers/grouping/events.js +10 -10
  75. package/dist/helpers/grouping/events.js.map +1 -1
  76. package/dist/helpers/styles/shadow.js +5 -22
  77. package/dist/helpers/styles/shadow.js.map +1 -1
  78. package/dist/index.js +10 -10
  79. package/dist/index.js.map +1 -1
  80. package/dist/news.js +8 -8
  81. package/dist/news.js.map +1 -1
  82. package/dist/states/_types.d.ts +0 -24
  83. package/dist/states/_types.d.ts.map +1 -1
  84. package/dist/states/_types.js +3 -3
  85. package/dist/states/_types.js.map +1 -1
  86. package/dist/states/announcer.d.ts +1 -3
  87. package/dist/states/announcer.d.ts.map +1 -1
  88. package/dist/states/announcer.js +5 -5
  89. package/dist/states/announcer.js.map +1 -1
  90. package/dist/states/empty.d.ts +0 -2
  91. package/dist/states/empty.d.ts.map +1 -1
  92. package/dist/states/empty.js +15 -32
  93. package/dist/states/empty.js.map +1 -1
  94. package/dist/states/index.d.ts +4 -8
  95. package/dist/states/index.d.ts.map +1 -1
  96. package/dist/states/loading.d.ts +1 -3
  97. package/dist/states/loading.d.ts.map +1 -1
  98. package/dist/states/loading.js +16 -16
  99. package/dist/states/loading.js.map +1 -1
  100. package/dist/states/pagination.d.ts +1 -3
  101. package/dist/states/pagination.d.ts.map +1 -1
  102. package/dist/states/pagination.js +11 -28
  103. package/dist/states/pagination.js.map +1 -1
  104. package/dist/strategies/display/events.js +13 -13
  105. package/dist/strategies/display/events.js.map +1 -1
  106. package/dist/strategies/display/experts.js +23 -23
  107. package/dist/strategies/display/experts.js.map +1 -1
  108. package/dist/strategies/display/news.js +13 -13
  109. package/dist/strategies/display/news.js.map +1 -1
  110. package/dist/strategies/fetch/academic.js +3 -3
  111. package/dist/strategies/fetch/academic.js.map +1 -1
  112. package/dist/strategies/fetch/events.js +13 -13
  113. package/dist/strategies/fetch/events.js.map +1 -1
  114. package/dist/strategies/fetch/experts.d.ts +1 -1
  115. package/dist/strategies/fetch/experts.d.ts.map +1 -1
  116. package/dist/strategies/fetch/experts.js +13 -8
  117. package/dist/strategies/fetch/experts.js.map +1 -1
  118. package/dist/strategies/fetch/graphql.d.ts.map +1 -1
  119. package/dist/strategies/fetch/graphql.js +11 -7
  120. package/dist/strategies/fetch/graphql.js.map +1 -1
  121. package/dist/strategies/fetch/news.js +6 -6
  122. package/dist/strategies/fetch/news.js.map +1 -1
  123. package/dist/strategies/layout/grid.js +11 -11
  124. package/dist/strategies/layout/grid.js.map +1 -1
  125. package/dist/widgets/index.d.ts +1 -1
  126. package/dist/widgets/index.d.ts.map +1 -1
  127. package/dist/widgets/slider.d.ts +1 -2
  128. package/dist/widgets/slider.d.ts.map +1 -1
  129. package/dist/widgets/slider.js +19 -35
  130. package/dist/widgets/slider.js.map +1 -1
  131. package/package.json +15 -14
  132. package/dist/academic.mjs +0 -5
  133. package/dist/academic.mjs.map +0 -1
  134. package/dist/events.mjs +0 -11
  135. package/dist/events.mjs.map +0 -1
  136. package/dist/experts.mjs +0 -9
  137. package/dist/experts.mjs.map +0 -1
  138. package/dist/factory/core/createBaseFeed.mjs +0 -114
  139. package/dist/factory/core/createBaseFeed.mjs.map +0 -1
  140. package/dist/factory/helpers/displayHandler.mjs +0 -169
  141. package/dist/factory/helpers/displayHandler.mjs.map +0 -1
  142. package/dist/factory/helpers/feedHelpers.mjs +0 -32
  143. package/dist/factory/helpers/feedHelpers.mjs.map +0 -1
  144. package/dist/factory/helpers/fetchHandler.mjs +0 -123
  145. package/dist/factory/helpers/fetchHandler.mjs.map +0 -1
  146. package/dist/feeds/academic/slider.mjs +0 -11
  147. package/dist/feeds/academic/slider.mjs.map +0 -1
  148. package/dist/feeds/events/grid.mjs +0 -32
  149. package/dist/feeds/events/grid.mjs.map +0 -1
  150. package/dist/feeds/events/grouped.mjs +0 -337
  151. package/dist/feeds/events/grouped.mjs.map +0 -1
  152. package/dist/feeds/events/list.mjs +0 -33
  153. package/dist/feeds/events/list.mjs.map +0 -1
  154. package/dist/feeds/events/slider.mjs +0 -11
  155. package/dist/feeds/events/slider.mjs.map +0 -1
  156. package/dist/feeds/experts/bio.mjs +0 -147
  157. package/dist/feeds/experts/bio.mjs.map +0 -1
  158. package/dist/feeds/experts/grid.mjs +0 -37
  159. package/dist/feeds/experts/grid.mjs.map +0 -1
  160. package/dist/feeds/experts/list.mjs +0 -26
  161. package/dist/feeds/experts/list.mjs.map +0 -1
  162. package/dist/feeds/news/featured.mjs +0 -379
  163. package/dist/feeds/news/featured.mjs.map +0 -1
  164. package/dist/feeds/news/grid.mjs +0 -37
  165. package/dist/feeds/news/grid.mjs.map +0 -1
  166. package/dist/feeds/news/list.mjs +0 -34
  167. package/dist/feeds/news/list.mjs.map +0 -1
  168. package/dist/helpers/events/index.mjs +0 -21
  169. package/dist/helpers/events/index.mjs.map +0 -1
  170. package/dist/helpers/grouping/events.mjs +0 -147
  171. package/dist/helpers/grouping/events.mjs.map +0 -1
  172. package/dist/helpers/styles/shadow.mjs +0 -16
  173. package/dist/helpers/styles/shadow.mjs.map +0 -1
  174. package/dist/index.mjs +0 -11
  175. package/dist/index.mjs.map +0 -1
  176. package/dist/news.mjs +0 -9
  177. package/dist/news.mjs.map +0 -1
  178. package/dist/states/_types.mjs +0 -12
  179. package/dist/states/_types.mjs.map +0 -1
  180. package/dist/states/announcer.mjs +0 -62
  181. package/dist/states/announcer.mjs.map +0 -1
  182. package/dist/states/empty.mjs +0 -104
  183. package/dist/states/empty.mjs.map +0 -1
  184. package/dist/states/loading.mjs +0 -155
  185. package/dist/states/loading.mjs.map +0 -1
  186. package/dist/states/pagination.mjs +0 -102
  187. package/dist/states/pagination.mjs.map +0 -1
  188. package/dist/strategies/display/events.mjs +0 -60
  189. package/dist/strategies/display/events.mjs.map +0 -1
  190. package/dist/strategies/display/experts.mjs +0 -266
  191. package/dist/strategies/display/experts.mjs.map +0 -1
  192. package/dist/strategies/display/news.mjs +0 -58
  193. package/dist/strategies/display/news.mjs.map +0 -1
  194. package/dist/strategies/fetch/academic.mjs +0 -30
  195. package/dist/strategies/fetch/academic.mjs.map +0 -1
  196. package/dist/strategies/fetch/events.mjs +0 -223
  197. package/dist/strategies/fetch/events.mjs.map +0 -1
  198. package/dist/strategies/fetch/experts.mjs +0 -189
  199. package/dist/strategies/fetch/experts.mjs.map +0 -1
  200. package/dist/strategies/fetch/graphql.mjs +0 -100
  201. package/dist/strategies/fetch/graphql.mjs.map +0 -1
  202. package/dist/strategies/fetch/news.mjs +0 -95
  203. package/dist/strategies/fetch/news.mjs.map +0 -1
  204. package/dist/strategies/layout/grid.mjs +0 -36
  205. package/dist/strategies/layout/grid.mjs.map +0 -1
  206. package/dist/widgets/slider.mjs +0 -87
  207. package/dist/widgets/slider.mjs.map +0 -1
@@ -1,36 +0,0 @@
1
- import { stacked, gridGap, grid, gridBorder } from "@universityofmaryland/web-elements-library/layout";
2
- const gridLayout = {
3
- create: (options) => {
4
- const { columns = 3 } = options;
5
- return grid({ columns, minHeight: "560px" });
6
- },
7
- getId: () => "umd-grid-layout-container"
8
- };
9
- const gridGapLayout = {
10
- create: (options) => {
11
- const { columns = 3 } = options;
12
- return gridGap({ columns });
13
- },
14
- getId: () => "umd-grid-gap-layout-container"
15
- };
16
- const gridBorderLayout = {
17
- create: (options) => {
18
- const { columns = 3, isThemeDark = false } = options;
19
- return gridBorder({ columns, isThemeDark });
20
- },
21
- getId: () => "umd-grid-border-layout-container"
22
- };
23
- const stackedLayout = {
24
- create: (options) => {
25
- const { isThemeDark, showDividers = true } = options;
26
- return stacked({ isThemeDark, showDividers, gap: "0" });
27
- },
28
- getId: () => "umd-stacked-layout-container"
29
- };
30
- export {
31
- gridBorderLayout,
32
- gridGapLayout,
33
- gridLayout,
34
- stackedLayout
35
- };
36
- //# sourceMappingURL=grid.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grid.mjs","sources":["../../../source/strategies/layout/grid.ts"],"sourcesContent":["/**\n * Grid Layout Strategies\n *\n * Layout strategies for grid-based feed displays.\n *\n * @module strategies/layout/grid\n */\n\nimport {\n grid,\n gridGap,\n gridBorder,\n gridOffset,\n stacked,\n} from '@universityofmaryland/web-elements-library/layout';\nimport { LayoutStrategy, LayoutOptions } from '../../factory/core/types';\n\n/**\n * Standard grid layout strategy\n *\n * Creates a responsive grid layout with specified columns.\n * Uses standard grid spacing.\n */\nexport const gridLayout: LayoutStrategy = {\n create: (options: LayoutOptions) => {\n const { columns = 3 } = options;\n return grid({ columns: columns as 2 | 3 | 4, minHeight: '560px' });\n },\n getId: () => 'umd-grid-layout-container',\n};\n\n/**\n * Grid gap layout strategy\n *\n * Creates a responsive grid layout with visual gaps between items.\n * Provides more pronounced spacing than standard grid.\n */\nexport const gridGapLayout: LayoutStrategy = {\n create: (options: LayoutOptions) => {\n const { columns = 3 } = options;\n return gridGap({ columns: columns as 2 | 3 | 4 });\n },\n getId: () => 'umd-grid-gap-layout-container',\n};\n\n/**\n * Grid border layout strategy\n *\n * Creates a responsive grid layout with borders between items.\n * Supports light and dark theme variants.\n */\nexport const gridBorderLayout: LayoutStrategy = {\n create: (options: LayoutOptions) => {\n const { columns = 3, isThemeDark = false } = options;\n return gridBorder({ columns: columns as 2 | 3 | 4, isThemeDark });\n },\n getId: () => 'umd-grid-border-layout-container',\n};\n\n/**\n * Stacked layout strategy\n *\n * Creates a vertical stack layout with optional dividers.\n * Good for list-style displays.\n */\nexport const stackedLayout: LayoutStrategy = {\n create: (options: LayoutOptions) => {\n const { isThemeDark, showDividers = true } = options;\n return stacked({ isThemeDark, showDividers, gap: '0' });\n },\n getId: () => 'umd-stacked-layout-container',\n};\n\n/**\n * Grid offset layout strategy\n *\n * Creates a grid with sticky offset positioning for the first item.\n * Used for featured layouts where the first item is prominently displayed.\n */\nexport const gridOffsetLayout: LayoutStrategy = {\n create: (options: LayoutOptions) => {\n const {\n columns = 2,\n isLayoutReversed = false,\n stickyTopPosition,\n } = options;\n\n return gridOffset({\n columns: columns as 2 | 3 | 4,\n isLayoutReversed,\n stickyTopPosition,\n });\n },\n getId: () => 'umd-grid-offset-layout-container',\n};\n"],"names":[],"mappings":";AAuBO,MAAM,aAA6B;AAAA,EACxC,QAAQ,CAAC,YAA2B;AAClC,UAAM,EAAE,UAAU,EAAA,IAAM;AACxB,WAAO,KAAK,EAAE,SAA+B,WAAW,SAAS;AAAA,EACnE;AAAA,EACA,OAAO,MAAM;AACf;AAQO,MAAM,gBAAgC;AAAA,EAC3C,QAAQ,CAAC,YAA2B;AAClC,UAAM,EAAE,UAAU,EAAA,IAAM;AACxB,WAAO,QAAQ,EAAE,SAA+B;AAAA,EAClD;AAAA,EACA,OAAO,MAAM;AACf;AAQO,MAAM,mBAAmC;AAAA,EAC9C,QAAQ,CAAC,YAA2B;AAClC,UAAM,EAAE,UAAU,GAAG,cAAc,UAAU;AAC7C,WAAO,WAAW,EAAE,SAA+B,aAAa;AAAA,EAClE;AAAA,EACA,OAAO,MAAM;AACf;AAQO,MAAM,gBAAgC;AAAA,EAC3C,QAAQ,CAAC,YAA2B;AAClC,UAAM,EAAE,aAAa,eAAe,KAAA,IAAS;AAC7C,WAAO,QAAQ,EAAE,aAAa,cAAc,KAAK,KAAK;AAAA,EACxD;AAAA,EACA,OAAO,MAAM;AACf;"}
@@ -1,87 +0,0 @@
1
- import * as Styles from "@universityofmaryland/web-styles-library";
2
- import { fetchGraphQL } from "@universityofmaryland/web-utilities-library/network";
3
- import { slider as slider$1 } from "@universityofmaryland/web-elements-library/composite";
4
- import { events, textLockup } from "@universityofmaryland/web-elements-library/atomic";
5
- const slider = ({
6
- token,
7
- query,
8
- url,
9
- categories,
10
- isThemeDark,
11
- headline,
12
- actions
13
- }) => {
14
- const dataSlider = document.createElement("div");
15
- const slider2 = slider$1.events({
16
- isThemeDark,
17
- dataSlider,
18
- headline,
19
- actions
20
- });
21
- let variables = { startDate: (/* @__PURE__ */ new Date()).toDateString() };
22
- let shadowRoot = null;
23
- const setShadowStyles = async ({
24
- shadowRoot: shadowRoot2,
25
- styles
26
- }) => {
27
- const styleElement = document.createElement("style");
28
- const optimizedCss = await Styles.utilities.transform.css.removeDuplicates(
29
- styles
30
- );
31
- styleElement.textContent = optimizedCss;
32
- shadowRoot2.appendChild(styleElement);
33
- };
34
- const callback = (shadow) => {
35
- shadowRoot = shadow;
36
- };
37
- const loadEvents = async () => {
38
- if (categories) {
39
- const related = categories.split(",");
40
- variables.related = related;
41
- }
42
- const fetchVariables = {
43
- query,
44
- url,
45
- token,
46
- variables
47
- };
48
- const feedData = await fetchGraphQL(fetchVariables);
49
- const slides = feedData?.data?.entries?.events.map(
50
- (data, i) => {
51
- const headline2 = document.createElement("p");
52
- headline2.textContent = data.title;
53
- const dateSign = events.sign({
54
- startMonth: data.startMonth,
55
- startDay: data.startDay,
56
- endDay: data.endDay,
57
- endMonth: data.endMonth,
58
- isThemeDark
59
- });
60
- const textLockup$1 = textLockup.date({
61
- headline: headline2,
62
- isThemeDark,
63
- dateSign
64
- });
65
- slider2.styles += textLockup$1.styles;
66
- slider2.styles += dateSign.styles;
67
- return textLockup$1;
68
- }
69
- );
70
- slides?.forEach((slide) => dataSlider.appendChild(slide.element));
71
- if (shadowRoot) setShadowStyles({ shadowRoot, styles: slider2.styles });
72
- setTimeout(() => {
73
- slider2.events.load();
74
- }, 100);
75
- };
76
- loadEvents();
77
- return {
78
- ...slider2,
79
- events: {
80
- callback
81
- }
82
- };
83
- };
84
- export {
85
- slider as default
86
- };
87
- //# sourceMappingURL=slider.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"slider.mjs","sources":["../../source/widgets/slider.ts"],"sourcesContent":["import * as Styles from '@universityofmaryland/web-styles-library';\nimport { fetchGraphQL } from '@universityofmaryland/web-utilities-library/network';\nimport { slider as elementSlider } from '@universityofmaryland/web-elements-library/composite';\nimport {\n textLockup as elementTextLockup,\n events as elementEvents,\n} from '@universityofmaryland/web-elements-library/atomic';\n\ntype TypeSlideFeedResponse = {\n title: string;\n startMonth: string;\n startDay: string;\n endMonth?: string;\n endDay?: string;\n};\n\nexport default ({\n token,\n query,\n url,\n categories,\n isThemeDark,\n headline,\n actions,\n}: {\n token: string;\n query: string;\n url: string;\n categories?: string | null;\n isThemeDark?: boolean;\n headline?: HTMLElement | null;\n actions?: HTMLElement | null;\n}) => {\n const dataSlider = document.createElement('div');\n const slider = elementSlider.events({\n isThemeDark,\n dataSlider,\n headline,\n actions,\n });\n let variables: any = { startDate: new Date().toDateString() };\n let shadowRoot: ShadowRoot | null = null;\n\n const setShadowStyles = async ({\n shadowRoot,\n styles,\n }: {\n shadowRoot: ShadowRoot;\n styles: string;\n }) => {\n const styleElement = document.createElement('style');\n const optimizedCss = await Styles.utilities.transform.css.removeDuplicates(\n styles,\n );\n styleElement.textContent = optimizedCss;\n shadowRoot.appendChild(styleElement);\n };\n\n const callback = (shadow: ShadowRoot) => {\n shadowRoot = shadow;\n };\n\n const loadEvents = async () => {\n if (categories) {\n const related = categories.split(',');\n variables.related = related;\n }\n\n const fetchVariables = {\n query,\n url,\n token,\n variables,\n };\n\n const feedData = await fetchGraphQL(fetchVariables);\n\n const slides: { element: HTMLElement; styles: string }[] =\n feedData?.data?.entries?.events.map(\n (data: TypeSlideFeedResponse, i: number) => {\n const headline = document.createElement('p');\n headline.textContent = data.title;\n\n const dateSign = elementEvents.sign({\n startMonth: data.startMonth,\n startDay: data.startDay,\n endDay: data.endDay,\n endMonth: data.endMonth,\n isThemeDark,\n });\n\n const textLockup = elementTextLockup.date({\n headline,\n isThemeDark,\n dateSign,\n });\n\n slider.styles += textLockup.styles;\n slider.styles += dateSign.styles;\n\n return textLockup;\n },\n );\n\n slides?.forEach((slide) => dataSlider.appendChild(slide.element));\n\n if (shadowRoot) setShadowStyles({ shadowRoot, styles: slider.styles });\n setTimeout(() => {\n slider.events.load();\n }, 100);\n };\n\n loadEvents();\n\n return {\n ...slider,\n events: {\n callback,\n },\n };\n};\n"],"names":["slider","elementSlider","shadowRoot","headline","elementEvents","textLockup","elementTextLockup"],"mappings":";;;;AAgBA,MAAA,SAAe,CAAC;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAQM;AACJ,QAAM,aAAa,SAAS,cAAc,KAAK;AAC/C,QAAMA,UAASC,SAAc,OAAO;AAAA,IAClC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,CACD;AACD,MAAI,YAAiB,EAAE,gCAAe,KAAA,GAAO,eAAa;AAC1D,MAAI,aAAgC;AAEpC,QAAM,kBAAkB,OAAO;AAAA,IAC7B,YAAAC;AAAAA,IACA;AAAA,EAAA,MAII;AACJ,UAAM,eAAe,SAAS,cAAc,OAAO;AACnD,UAAM,eAAe,MAAM,OAAO,UAAU,UAAU,IAAI;AAAA,MACxD;AAAA,IAAA;AAEF,iBAAa,cAAc;AAC3BA,gBAAW,YAAY,YAAY;AAAA,EACrC;AAEA,QAAM,WAAW,CAAC,WAAuB;AACvC,iBAAa;AAAA,EACf;AAEA,QAAM,aAAa,YAAY;AAC7B,QAAI,YAAY;AACd,YAAM,UAAU,WAAW,MAAM,GAAG;AACpC,gBAAU,UAAU;AAAA,IACtB;AAEA,UAAM,iBAAiB;AAAA,MACrB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAGF,UAAM,WAAW,MAAM,aAAa,cAAc;AAElD,UAAM,SACJ,UAAU,MAAM,SAAS,OAAO;AAAA,MAC9B,CAAC,MAA6B,MAAc;AAC1C,cAAMC,YAAW,SAAS,cAAc,GAAG;AAC3CA,kBAAS,cAAc,KAAK;AAE5B,cAAM,WAAWC,OAAc,KAAK;AAAA,UAClC,YAAY,KAAK;AAAA,UACjB,UAAU,KAAK;AAAA,UACf,QAAQ,KAAK;AAAA,UACb,UAAU,KAAK;AAAA,UACf;AAAA,QAAA,CACD;AAED,cAAMC,eAAaC,WAAkB,KAAK;AAAA,UACxC,UAAAH;AAAAA,UACA;AAAA,UACA;AAAA,QAAA,CACD;AAED,QAAAH,QAAO,UAAUK,aAAW;AAC5B,QAAAL,QAAO,UAAU,SAAS;AAE1B,eAAOK;AAAAA,MACT;AAAA,IAAA;AAGJ,YAAQ,QAAQ,CAAC,UAAU,WAAW,YAAY,MAAM,OAAO,CAAC;AAEhE,QAAI,WAAY,iBAAgB,EAAE,YAAY,QAAQL,QAAO,QAAQ;AACrE,eAAW,MAAM;AACf,MAAAA,QAAO,OAAO,KAAA;AAAA,IAChB,GAAG,GAAG;AAAA,EACR;AAEA,aAAA;AAEA,SAAO;AAAA,IACL,GAAGA;AAAA,IACH,QAAQ;AAAA,MACN;AAAA,IAAA;AAAA,EACF;AAEJ;"}