@xyo-network/react-embed 2.27.30 → 2.28.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 (202) hide show
  1. package/dist/cjs/components/XyoEmbedPlugin.d.ts.map +1 -1
  2. package/dist/cjs/components/XyoEmbedPlugin.js +9 -2
  3. package/dist/cjs/components/XyoEmbedPlugin.js.map +1 -1
  4. package/dist/cjs/components/embed-card/EmbedCardHeader.d.ts.map +1 -1
  5. package/dist/cjs/components/embed-card/EmbedCardHeader.js +3 -2
  6. package/dist/cjs/components/embed-card/EmbedCardHeader.js.map +1 -1
  7. package/dist/cjs/components/embed-card/EmbedCardResolver.d.ts +5 -0
  8. package/dist/cjs/components/embed-card/EmbedCardResolver.d.ts.map +1 -0
  9. package/dist/cjs/components/embed-card/EmbedCardResolver.js +19 -0
  10. package/dist/cjs/components/embed-card/EmbedCardResolver.js.map +1 -0
  11. package/dist/cjs/components/embed-card/EmbedPluginCard.d.ts +4 -0
  12. package/dist/cjs/components/embed-card/EmbedPluginCard.d.ts.map +1 -0
  13. package/dist/cjs/components/embed-card/{EmbedPluginContainer.js → EmbedPluginCard.js} +6 -5
  14. package/dist/cjs/components/embed-card/EmbedPluginCard.js.map +1 -0
  15. package/dist/cjs/components/embed-card/ValidatePlugins.d.ts.map +1 -1
  16. package/dist/cjs/components/embed-card/ValidatePlugins.js +2 -1
  17. package/dist/cjs/components/embed-card/ValidatePlugins.js.map +1 -1
  18. package/dist/cjs/components/embed-card/index.d.ts +2 -1
  19. package/dist/cjs/components/embed-card/index.d.ts.map +1 -1
  20. package/dist/cjs/components/embed-card/index.js +2 -1
  21. package/dist/cjs/components/embed-card/index.js.map +1 -1
  22. package/dist/cjs/components/embed-card/menu/JsonMenuItem.js +1 -1
  23. package/dist/cjs/components/embed-card/menu/JsonMenuItem.js.map +1 -1
  24. package/dist/cjs/contexts/RefreshPayloadContext/Context.d.ts +4 -0
  25. package/dist/cjs/contexts/RefreshPayloadContext/Context.d.ts.map +1 -0
  26. package/dist/cjs/contexts/RefreshPayloadContext/Context.js +6 -0
  27. package/dist/cjs/contexts/RefreshPayloadContext/Context.js.map +1 -0
  28. package/dist/cjs/contexts/RefreshPayloadContext/Provider.d.ts +8 -0
  29. package/dist/cjs/contexts/RefreshPayloadContext/Provider.d.ts.map +1 -0
  30. package/dist/cjs/contexts/RefreshPayloadContext/Provider.js +12 -0
  31. package/dist/cjs/contexts/RefreshPayloadContext/Provider.js.map +1 -0
  32. package/dist/cjs/contexts/RefreshPayloadContext/State.d.ts +8 -0
  33. package/dist/cjs/contexts/RefreshPayloadContext/State.d.ts.map +1 -0
  34. package/dist/cjs/{components/XyoEmbedPluginProps.js → contexts/RefreshPayloadContext/State.js} +1 -1
  35. package/dist/cjs/contexts/RefreshPayloadContext/State.js.map +1 -0
  36. package/dist/cjs/contexts/RefreshPayloadContext/index.d.ts +3 -0
  37. package/dist/cjs/contexts/RefreshPayloadContext/index.d.ts.map +1 -0
  38. package/dist/cjs/contexts/RefreshPayloadContext/index.js +6 -0
  39. package/dist/cjs/contexts/RefreshPayloadContext/index.js.map +1 -0
  40. package/dist/cjs/contexts/RefreshPayloadContext/use.d.ts +2 -0
  41. package/dist/cjs/contexts/RefreshPayloadContext/use.d.ts.map +1 -0
  42. package/dist/cjs/contexts/RefreshPayloadContext/use.js +8 -0
  43. package/dist/cjs/contexts/RefreshPayloadContext/use.js.map +1 -0
  44. package/dist/cjs/contexts/ResolvePayloadContext/Context.d.ts +4 -0
  45. package/dist/cjs/contexts/ResolvePayloadContext/Context.d.ts.map +1 -0
  46. package/dist/cjs/contexts/ResolvePayloadContext/Context.js +6 -0
  47. package/dist/cjs/contexts/ResolvePayloadContext/Context.js.map +1 -0
  48. package/dist/cjs/contexts/ResolvePayloadContext/Provider.d.ts +6 -0
  49. package/dist/cjs/contexts/ResolvePayloadContext/Provider.d.ts.map +1 -0
  50. package/dist/cjs/contexts/ResolvePayloadContext/Provider.js +54 -0
  51. package/dist/cjs/contexts/ResolvePayloadContext/Provider.js.map +1 -0
  52. package/dist/cjs/contexts/ResolvePayloadContext/State.d.ts +14 -0
  53. package/dist/cjs/contexts/ResolvePayloadContext/State.d.ts.map +1 -0
  54. package/dist/cjs/contexts/ResolvePayloadContext/State.js +3 -0
  55. package/dist/cjs/contexts/ResolvePayloadContext/State.js.map +1 -0
  56. package/dist/cjs/contexts/ResolvePayloadContext/index.d.ts +4 -0
  57. package/dist/cjs/contexts/ResolvePayloadContext/index.d.ts.map +1 -0
  58. package/dist/cjs/contexts/ResolvePayloadContext/index.js +7 -0
  59. package/dist/cjs/contexts/ResolvePayloadContext/index.js.map +1 -0
  60. package/dist/cjs/contexts/ResolvePayloadContext/use.d.ts +2 -0
  61. package/dist/cjs/contexts/ResolvePayloadContext/use.d.ts.map +1 -0
  62. package/dist/cjs/contexts/ResolvePayloadContext/use.js +8 -0
  63. package/dist/cjs/contexts/ResolvePayloadContext/use.js.map +1 -0
  64. package/dist/cjs/contexts/ValidatePayloadContext/Provider.js +2 -2
  65. package/dist/cjs/contexts/ValidatePayloadContext/Provider.js.map +1 -1
  66. package/dist/cjs/contexts/XyoEmbedPluginContext/Provider.d.ts +2 -3
  67. package/dist/cjs/contexts/XyoEmbedPluginContext/Provider.d.ts.map +1 -1
  68. package/dist/cjs/contexts/XyoEmbedPluginContext/Provider.js +3 -40
  69. package/dist/cjs/contexts/XyoEmbedPluginContext/Provider.js.map +1 -1
  70. package/dist/cjs/contexts/XyoEmbedPluginContext/State.d.ts +1 -3
  71. package/dist/cjs/contexts/XyoEmbedPluginContext/State.d.ts.map +1 -1
  72. package/dist/cjs/contexts/index.d.ts +2 -0
  73. package/dist/cjs/contexts/index.d.ts.map +1 -1
  74. package/dist/cjs/contexts/index.js +2 -0
  75. package/dist/cjs/contexts/index.js.map +1 -1
  76. package/dist/cjs/types/XyoEmbedPluginProps.d.ts +6 -2
  77. package/dist/cjs/types/XyoEmbedPluginProps.d.ts.map +1 -1
  78. package/dist/docs.json +3 -3
  79. package/dist/esm/components/XyoEmbedPlugin.d.ts.map +1 -1
  80. package/dist/esm/components/XyoEmbedPlugin.js +10 -4
  81. package/dist/esm/components/XyoEmbedPlugin.js.map +1 -1
  82. package/dist/esm/components/embed-card/EmbedCardHeader.d.ts.map +1 -1
  83. package/dist/esm/components/embed-card/EmbedCardHeader.js +4 -3
  84. package/dist/esm/components/embed-card/EmbedCardHeader.js.map +1 -1
  85. package/dist/esm/components/embed-card/EmbedCardResolver.d.ts +5 -0
  86. package/dist/esm/components/embed-card/EmbedCardResolver.d.ts.map +1 -0
  87. package/dist/esm/components/embed-card/EmbedCardResolver.js +13 -0
  88. package/dist/esm/components/embed-card/EmbedCardResolver.js.map +1 -0
  89. package/dist/esm/components/embed-card/EmbedPluginCard.d.ts +4 -0
  90. package/dist/esm/components/embed-card/EmbedPluginCard.d.ts.map +1 -0
  91. package/dist/esm/components/embed-card/{EmbedPluginContainer.js → EmbedPluginCard.js} +5 -4
  92. package/dist/esm/components/embed-card/EmbedPluginCard.js.map +1 -0
  93. package/dist/esm/components/embed-card/ValidatePlugins.d.ts.map +1 -1
  94. package/dist/esm/components/embed-card/ValidatePlugins.js +3 -2
  95. package/dist/esm/components/embed-card/ValidatePlugins.js.map +1 -1
  96. package/dist/esm/components/embed-card/index.d.ts +2 -1
  97. package/dist/esm/components/embed-card/index.d.ts.map +1 -1
  98. package/dist/esm/components/embed-card/index.js +2 -1
  99. package/dist/esm/components/embed-card/index.js.map +1 -1
  100. package/dist/esm/components/embed-card/menu/JsonMenuItem.js +2 -2
  101. package/dist/esm/components/embed-card/menu/JsonMenuItem.js.map +1 -1
  102. package/dist/esm/contexts/RefreshPayloadContext/Context.d.ts +4 -0
  103. package/dist/esm/contexts/RefreshPayloadContext/Context.d.ts.map +1 -0
  104. package/dist/esm/contexts/RefreshPayloadContext/Context.js +3 -0
  105. package/dist/esm/contexts/RefreshPayloadContext/Context.js.map +1 -0
  106. package/dist/esm/contexts/RefreshPayloadContext/Provider.d.ts +8 -0
  107. package/dist/esm/contexts/RefreshPayloadContext/Provider.d.ts.map +1 -0
  108. package/dist/esm/contexts/RefreshPayloadContext/Provider.js +8 -0
  109. package/dist/esm/contexts/RefreshPayloadContext/Provider.js.map +1 -0
  110. package/dist/esm/contexts/RefreshPayloadContext/State.d.ts +8 -0
  111. package/dist/esm/contexts/RefreshPayloadContext/State.d.ts.map +1 -0
  112. package/dist/esm/contexts/RefreshPayloadContext/State.js +2 -0
  113. package/dist/esm/contexts/RefreshPayloadContext/State.js.map +1 -0
  114. package/dist/esm/contexts/RefreshPayloadContext/index.d.ts +3 -0
  115. package/dist/esm/contexts/RefreshPayloadContext/index.d.ts.map +1 -0
  116. package/dist/esm/contexts/RefreshPayloadContext/index.js +3 -0
  117. package/dist/esm/contexts/RefreshPayloadContext/index.js.map +1 -0
  118. package/dist/esm/contexts/RefreshPayloadContext/use.d.ts +2 -0
  119. package/dist/esm/contexts/RefreshPayloadContext/use.d.ts.map +1 -0
  120. package/dist/esm/contexts/RefreshPayloadContext/use.js +4 -0
  121. package/dist/esm/contexts/RefreshPayloadContext/use.js.map +1 -0
  122. package/dist/esm/contexts/ResolvePayloadContext/Context.d.ts +4 -0
  123. package/dist/esm/contexts/ResolvePayloadContext/Context.d.ts.map +1 -0
  124. package/dist/esm/contexts/ResolvePayloadContext/Context.js +3 -0
  125. package/dist/esm/contexts/ResolvePayloadContext/Context.js.map +1 -0
  126. package/dist/esm/contexts/ResolvePayloadContext/Provider.d.ts +6 -0
  127. package/dist/esm/contexts/ResolvePayloadContext/Provider.d.ts.map +1 -0
  128. package/dist/esm/contexts/ResolvePayloadContext/Provider.js +49 -0
  129. package/dist/esm/contexts/ResolvePayloadContext/Provider.js.map +1 -0
  130. package/dist/esm/contexts/ResolvePayloadContext/State.d.ts +14 -0
  131. package/dist/esm/contexts/ResolvePayloadContext/State.d.ts.map +1 -0
  132. package/dist/esm/contexts/ResolvePayloadContext/State.js +2 -0
  133. package/dist/esm/contexts/ResolvePayloadContext/State.js.map +1 -0
  134. package/dist/esm/contexts/ResolvePayloadContext/index.d.ts +4 -0
  135. package/dist/esm/contexts/ResolvePayloadContext/index.d.ts.map +1 -0
  136. package/dist/esm/contexts/ResolvePayloadContext/index.js +4 -0
  137. package/dist/esm/contexts/ResolvePayloadContext/index.js.map +1 -0
  138. package/dist/esm/contexts/ResolvePayloadContext/use.d.ts +2 -0
  139. package/dist/esm/contexts/ResolvePayloadContext/use.d.ts.map +1 -0
  140. package/dist/esm/contexts/ResolvePayloadContext/use.js +4 -0
  141. package/dist/esm/contexts/ResolvePayloadContext/use.js.map +1 -0
  142. package/dist/esm/contexts/ValidatePayloadContext/Provider.js +2 -2
  143. package/dist/esm/contexts/ValidatePayloadContext/Provider.js.map +1 -1
  144. package/dist/esm/contexts/XyoEmbedPluginContext/Provider.d.ts +2 -3
  145. package/dist/esm/contexts/XyoEmbedPluginContext/Provider.d.ts.map +1 -1
  146. package/dist/esm/contexts/XyoEmbedPluginContext/Provider.js +3 -38
  147. package/dist/esm/contexts/XyoEmbedPluginContext/Provider.js.map +1 -1
  148. package/dist/esm/contexts/XyoEmbedPluginContext/State.d.ts +1 -3
  149. package/dist/esm/contexts/XyoEmbedPluginContext/State.d.ts.map +1 -1
  150. package/dist/esm/contexts/index.d.ts +2 -0
  151. package/dist/esm/contexts/index.d.ts.map +1 -1
  152. package/dist/esm/contexts/index.js +2 -0
  153. package/dist/esm/contexts/index.js.map +1 -1
  154. package/dist/esm/types/XyoEmbedPluginProps.d.ts +6 -2
  155. package/dist/esm/types/XyoEmbedPluginProps.d.ts.map +1 -1
  156. package/package.json +12 -12
  157. package/src/components/XyoEmbedPlugin.stories.tsx +26 -9
  158. package/src/components/XyoEmbedPlugin.tsx +36 -14
  159. package/src/components/embed-card/EmbedCardHeader.tsx +6 -4
  160. package/src/components/embed-card/EmbedCardResolver.tsx +27 -0
  161. package/src/components/embed-card/{EmbedPluginContainer.tsx → EmbedPluginCard.tsx} +4 -3
  162. package/src/components/embed-card/ValidatePlugins.tsx +3 -2
  163. package/src/components/embed-card/index.ts +2 -1
  164. package/src/components/embed-card/menu/JsonMenuItem.tsx +2 -2
  165. package/src/components/payload.stories.ts +21 -0
  166. package/src/contexts/RefreshPayloadContext/Context.tsx +5 -0
  167. package/src/contexts/RefreshPayloadContext/Provider.tsx +19 -0
  168. package/src/contexts/RefreshPayloadContext/State.ts +8 -0
  169. package/src/contexts/RefreshPayloadContext/index.ts +2 -0
  170. package/src/contexts/RefreshPayloadContext/use.tsx +5 -0
  171. package/src/contexts/ResolvePayloadContext/Context.ts +5 -0
  172. package/src/contexts/ResolvePayloadContext/Provider.tsx +64 -0
  173. package/src/contexts/ResolvePayloadContext/State.ts +14 -0
  174. package/src/contexts/ResolvePayloadContext/index.ts +3 -0
  175. package/src/contexts/ResolvePayloadContext/use.tsx +5 -0
  176. package/src/contexts/ValidatePayloadContext/Provider.stories.tsx +19 -7
  177. package/src/contexts/ValidatePayloadContext/Provider.tsx +2 -2
  178. package/src/contexts/XyoEmbedPluginContext/Provider.tsx +4 -51
  179. package/src/contexts/XyoEmbedPluginContext/State.ts +1 -3
  180. package/src/contexts/index.ts +2 -0
  181. package/src/types/XyoEmbedPluginProps.ts +6 -2
  182. package/dist/cjs/components/RenderComponent.d.ts +0 -10
  183. package/dist/cjs/components/RenderComponent.d.ts.map +0 -1
  184. package/dist/cjs/components/RenderComponent.js +0 -11
  185. package/dist/cjs/components/RenderComponent.js.map +0 -1
  186. package/dist/cjs/components/XyoEmbedPluginProps.d.ts +0 -19
  187. package/dist/cjs/components/XyoEmbedPluginProps.d.ts.map +0 -1
  188. package/dist/cjs/components/XyoEmbedPluginProps.js.map +0 -1
  189. package/dist/cjs/components/embed-card/EmbedPluginContainer.d.ts +0 -4
  190. package/dist/cjs/components/embed-card/EmbedPluginContainer.d.ts.map +0 -1
  191. package/dist/cjs/components/embed-card/EmbedPluginContainer.js.map +0 -1
  192. package/dist/esm/components/RenderComponent.d.ts +0 -10
  193. package/dist/esm/components/RenderComponent.d.ts.map +0 -1
  194. package/dist/esm/components/RenderComponent.js +0 -7
  195. package/dist/esm/components/RenderComponent.js.map +0 -1
  196. package/dist/esm/components/XyoEmbedPluginProps.d.ts +0 -19
  197. package/dist/esm/components/XyoEmbedPluginProps.d.ts.map +0 -1
  198. package/dist/esm/components/XyoEmbedPluginProps.js +0 -2
  199. package/dist/esm/components/XyoEmbedPluginProps.js.map +0 -1
  200. package/dist/esm/components/embed-card/EmbedPluginContainer.d.ts +0 -4
  201. package/dist/esm/components/embed-card/EmbedPluginContainer.d.ts.map +0 -1
  202. package/dist/esm/components/embed-card/EmbedPluginContainer.js.map +0 -1
@@ -0,0 +1,5 @@
1
+ import { createContextEx } from '@xyo-network/react-shared'
2
+
3
+ import { ResolvePayloadState } from './State'
4
+
5
+ export const ResolvePayloadContext = createContextEx<ResolvePayloadState>()
@@ -0,0 +1,64 @@
1
+ import { useAsyncEffect, WithChildren } from '@xylabs/react-shared'
2
+ import { delay } from '@xylabs/sdk-js'
3
+ import { XyoApiError } from '@xyo-network/api'
4
+ import { Huri, XyoPayload } from '@xyo-network/payload'
5
+ import { useEffect, useState } from 'react'
6
+
7
+ import { useRefreshPayload } from '../RefreshPayloadContext'
8
+ import { ResolvePayloadContext } from './Context'
9
+ import { ResolvePayloadState } from './State'
10
+
11
+ export type ResolvePayloadProviderProps = Omit<ResolvePayloadState, 'provided'>
12
+
13
+ export const ResolvePayloadProvider: React.FC<WithChildren<ResolvePayloadProviderProps>> = ({ children, huriPayload }) => {
14
+ const [payload, setPayload] = useState<XyoPayload>()
15
+ const [huri, setHuri] = useState<string>()
16
+ const { refreshPayload, setRefreshPayload, onRefresh } = useRefreshPayload()
17
+
18
+ useEffect(() => {
19
+ typeof huriPayload === 'string' ? setHuri(huriPayload) : undefined
20
+ if (typeof huriPayload === 'object') {
21
+ setPayload(huriPayload)
22
+ setRefreshPayload?.(true)
23
+ }
24
+ }, [huriPayload, setRefreshPayload])
25
+
26
+ const [notFound, setNotFound] = useState<boolean>()
27
+ const [huriApiError, setHuriApiError] = useState<XyoApiError>()
28
+
29
+ useAsyncEffect(
30
+ // eslint-disable-next-line react-hooks/exhaustive-deps
31
+ async (mounted) => {
32
+ if (huri && !refreshPayload) {
33
+ try {
34
+ const huriInstance = new Huri(huri)
35
+ const result = await huriInstance.fetch()
36
+ // ensure the busy state can stay for a moment to avoid flashing too quickly
37
+ await delay(500)
38
+
39
+ if (mounted()) {
40
+ setNotFound(result === null)
41
+ setPayload(result)
42
+ setRefreshPayload?.(true)
43
+ }
44
+ } catch (e) {
45
+ setHuriApiError(e as XyoApiError)
46
+ }
47
+ }
48
+ },
49
+ [huri, payload, refreshPayload, setRefreshPayload],
50
+ )
51
+
52
+ const refreshHuri = () => {
53
+ onRefresh?.()
54
+ if (huri) {
55
+ setRefreshPayload?.(false)
56
+ }
57
+ }
58
+
59
+ return (
60
+ <ResolvePayloadContext.Provider value={{ huri, huriApiError, notFound, payload, provided: true, refreshHuri, setPayload }}>
61
+ {children}
62
+ </ResolvePayloadContext.Provider>
63
+ )
64
+ }
@@ -0,0 +1,14 @@
1
+ import { XyoApiError } from '@xyo-network/api'
2
+ import { XyoPayload } from '@xyo-network/payload'
3
+ import { ContextExState } from '@xyo-network/react-shared'
4
+ import { Dispatch, SetStateAction } from 'react'
5
+
6
+ export interface ResolvePayloadState extends ContextExState {
7
+ huri?: string
8
+ huriApiError?: XyoApiError
9
+ huriPayload?: string | XyoPayload
10
+ notFound?: boolean
11
+ payload?: XyoPayload
12
+ refreshHuri?: () => void
13
+ setPayload?: Dispatch<SetStateAction<XyoPayload | undefined>>
14
+ }
@@ -0,0 +1,3 @@
1
+ export * from './Provider'
2
+ export * from './State'
3
+ export * from './use'
@@ -0,0 +1,5 @@
1
+ import { useContextEx } from '@xyo-network/react-shared'
2
+
3
+ import { ResolvePayloadContext } from './Context'
4
+
5
+ export const useResolvePayload = () => useContextEx(ResolvePayloadContext, 'ResolvePayload', true)
@@ -1,6 +1,7 @@
1
1
  import { Typography } from '@mui/material'
2
2
  import { ComponentStory, DecoratorFn, Meta } from '@storybook/react'
3
3
 
4
+ import { ResolvePayloadProvider, ResolvePayloadState } from '../ResolvePayloadContext'
4
5
  import { XyoEmbedPluginContext, XyoEmbedPluginState } from '../XyoEmbedPluginContext'
5
6
  import { ValidatePayloadProvider, ValidatePayloadProviderProps } from './Provider'
6
7
  import { useValidatePayload } from './use'
@@ -8,9 +9,11 @@ import { useValidatePayload } from './use'
8
9
  const EmbedDecorator: DecoratorFn = (Story, { args }) => {
9
10
  const { xyoEmbedPluginContext, ...props } = args
10
11
  return (
11
- <XyoEmbedPluginContext.Provider value={xyoEmbedPluginContext}>
12
- <Story {...props} />
13
- </XyoEmbedPluginContext.Provider>
12
+ <ResolvePayloadProvider>
13
+ <XyoEmbedPluginContext.Provider value={xyoEmbedPluginContext}>
14
+ <Story {...props} />
15
+ </XyoEmbedPluginContext.Provider>
16
+ </ResolvePayloadProvider>
14
17
  )
15
18
  }
16
19
 
@@ -27,6 +30,7 @@ const ValidatePayloadState = () => {
27
30
 
28
31
  interface ValidatePayloadProviderPropsEx extends ValidatePayloadProviderProps {
29
32
  xyoEmbedPluginContext: XyoEmbedPluginState
33
+ resolvePayloadContext: ResolvePayloadState
30
34
  }
31
35
 
32
36
  const Template: ComponentStory<React.FC<ValidatePayloadProviderPropsEx>> = (props) => {
@@ -41,16 +45,24 @@ const Template: ComponentStory<React.FC<ValidatePayloadProviderPropsEx>> = (prop
41
45
 
42
46
  const InvalidPayload = { schema: 'network.xyo.schema' }
43
47
  const ValidPayload = { definition: { $id: 'test.schema' }, schema: 'network.xyo.schema' }
44
- const XyoEmbedPluginProviderDefaultValue = { provided: true }
48
+ const stubProviderDefaultValue = { provided: true }
45
49
 
46
50
  const Default = Template.bind({})
47
- Default.args = { xyoEmbedPluginContext: XyoEmbedPluginProviderDefaultValue }
51
+ Default.args = { xyoEmbedPluginContext: stubProviderDefaultValue }
48
52
 
49
53
  const ValidationSucceeded = Template.bind({})
50
- ValidationSucceeded.args = { enabled: true, xyoEmbedPluginContext: { payload: ValidPayload, ...XyoEmbedPluginProviderDefaultValue } }
54
+ ValidationSucceeded.args = {
55
+ enabled: true,
56
+ resolvePayloadContext: { payload: ValidPayload, ...stubProviderDefaultValue },
57
+ xyoEmbedPluginContext: stubProviderDefaultValue,
58
+ }
51
59
 
52
60
  const ValidationFailed = Template.bind({})
53
- ValidationFailed.args = { enabled: true, xyoEmbedPluginContext: { payload: InvalidPayload, ...XyoEmbedPluginProviderDefaultValue } }
61
+ ValidationFailed.args = {
62
+ enabled: true,
63
+ resolvePayloadContext: { payload: InvalidPayload, ...stubProviderDefaultValue },
64
+ xyoEmbedPluginContext: stubProviderDefaultValue,
65
+ }
54
66
 
55
67
  export { Default, ValidationFailed, ValidationSucceeded }
56
68
 
@@ -3,7 +3,7 @@ import { useAsyncEffect, WithChildren } from '@xylabs/react-shared'
3
3
  import { XyoSchemaCache, XyoSchemaNameToValidatorMap } from '@xyo-network/utils'
4
4
  import { useState } from 'react'
5
5
 
6
- import { useXyoEmbedPluginState } from '../XyoEmbedPluginContext'
6
+ import { useResolvePayload } from '../ResolvePayloadContext'
7
7
  import { ValidatePayloadContext } from './Context'
8
8
 
9
9
  export interface ValidatePayloadProviderProps {
@@ -12,7 +12,7 @@ export interface ValidatePayloadProviderProps {
12
12
  }
13
13
 
14
14
  export const ValidatePayloadProvider: React.FC<WithChildren<ValidatePayloadProviderProps>> = ({ children, enabled = false }) => {
15
- const { payload } = useXyoEmbedPluginState()
15
+ const { payload } = useResolvePayload()
16
16
  const [initialized, setInitialized] = useState(false)
17
17
  const [valid, setValid] = useState<boolean>()
18
18
 
@@ -1,60 +1,22 @@
1
- import { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'
2
- import { useAsyncEffect, WithChildren } from '@xylabs/react-shared'
3
- import { delay } from '@xylabs/sdk-js'
4
- import { XyoApiError } from '@xyo-network/api'
5
- import { Huri, XyoPayload } from '@xyo-network/payload'
6
- import { XyoApiErrorRender } from '@xyo-network/react-auth-service'
1
+ import { WithChildren } from '@xylabs/react-shared'
7
2
  import { XyoPayloadRenderPlugin } from '@xyo-network/react-payload-plugin'
8
- import { ResultLoader } from '@xyo-network/react-webapp'
9
3
  import { useState } from 'react'
10
4
 
11
5
  import { XyoEmbedPluginContext } from './Context'
12
6
  import { XyoEmbedPluginBase } from './State'
13
7
 
14
- export interface XyoEmbedPluginProviderProps extends XyoEmbedPluginBase, FlexBoxProps {}
8
+ export type XyoEmbedPluginProviderProps = XyoEmbedPluginBase
15
9
 
10
+ /** Expose passed embed plugin props via context */
16
11
  export const XyoEmbedPluginProvider: React.FC<WithChildren<XyoEmbedPluginProviderProps>> = ({
17
12
  children,
18
13
  refreshTitle,
19
14
  timestampLabel,
20
15
  hideElementsConfig,
21
- huri,
22
16
  plugins,
23
17
  embedPluginConfig,
24
- ...props
25
18
  }) => {
26
- const [payload, setPayload] = useState<XyoPayload>()
27
- const [notFound, setNotFound] = useState<boolean>()
28
- const [huriApiError, setHuriApiError] = useState<XyoApiError>()
29
19
  const [activePlugin, setActivePlugin] = useState<XyoPayloadRenderPlugin | undefined>(plugins ? plugins[0] : undefined)
30
- const [refreshPayload, setRefreshPayload] = useState(0)
31
-
32
- useAsyncEffect(
33
- // eslint-disable-next-line react-hooks/exhaustive-deps
34
- async (mounted) => {
35
- if (huri && !refreshPayload) {
36
- try {
37
- const huriInstance = new Huri(huri)
38
- const result = await huriInstance.fetch()
39
- // ensure the busy state can stay for a moment to avoid flashing too quickly
40
- await delay(500)
41
-
42
- if (mounted()) {
43
- setNotFound(result === null)
44
- setPayload(result)
45
- setRefreshPayload(1)
46
- }
47
- } catch (e) {
48
- setHuriApiError(e as XyoApiError)
49
- }
50
- }
51
- },
52
- [huri, payload, refreshPayload],
53
- )
54
-
55
- const refreshHuri = () => {
56
- setRefreshPayload(0)
57
- }
58
20
 
59
21
  return (
60
22
  <XyoEmbedPluginContext.Provider
@@ -62,22 +24,13 @@ export const XyoEmbedPluginProvider: React.FC<WithChildren<XyoEmbedPluginProvide
62
24
  activePlugin,
63
25
  embedPluginConfig,
64
26
  hideElementsConfig,
65
- huri,
66
- payload,
67
27
  provided: true,
68
- refreshHuri,
69
28
  refreshTitle,
70
29
  setActivePlugin,
71
30
  timestampLabel,
72
31
  }}
73
32
  >
74
- <ResultLoader searchResult={payload} notFound={!!notFound} apiError={huriApiError}>
75
- <XyoApiErrorRender apiError={huriApiError}>
76
- <FlexCol busy={Boolean(!refreshPayload && payload)} {...props}>
77
- {children}
78
- </FlexCol>
79
- </XyoApiErrorRender>
80
- </ResultLoader>
33
+ {children}
81
34
  </XyoEmbedPluginContext.Provider>
82
35
  )
83
36
  }
@@ -1,4 +1,3 @@
1
- import { XyoPayload } from '@xyo-network/payload'
2
1
  import { XyoPayloadRenderPlugin } from '@xyo-network/react-payload-plugin'
3
2
  import { ContextExState, ListMode } from '@xyo-network/react-shared'
4
3
  import { Dispatch, SetStateAction } from 'react'
@@ -23,6 +22,7 @@ export interface XyoEmbedPluginBase {
23
22
  plugins?: XyoPayloadRenderPlugin[]
24
23
  /** XyoEmbedPlugin component configuration */
25
24
  embedPluginConfig?: XyoPluginConfig
25
+ /** @deprecated use huriPayload */
26
26
  huri?: string
27
27
  refreshTitle?: string
28
28
  timestampLabel?: string
@@ -32,6 +32,4 @@ export interface XyoEmbedPluginBase {
32
32
  export interface XyoEmbedPluginState extends XyoEmbedPluginBase, ContextExState {
33
33
  activePlugin?: XyoPayloadRenderPlugin
34
34
  setActivePlugin?: Dispatch<SetStateAction<XyoPayloadRenderPlugin | undefined>>
35
- payload?: XyoPayload
36
- refreshHuri?: () => void
37
35
  }
@@ -1,2 +1,4 @@
1
+ export * from './RefreshPayloadContext'
2
+ export * from './ResolvePayloadContext'
1
3
  export * from './ValidatePayloadContext'
2
4
  export * from './XyoEmbedPluginContext'
@@ -1,8 +1,12 @@
1
- import { CardProps } from '@mui/material'
1
+ import { FlexBoxProps } from '@xylabs/react-flexbox'
2
+ import { XyoPayload } from '@xyo-network/payload'
2
3
 
3
4
  import { EmbedPluginVisibilityConfig, XyoEmbedPluginBase } from '../contexts'
4
5
 
5
- export interface XyoEmbedPluginProps extends XyoEmbedPluginBase, CardProps {
6
+ export interface XyoEmbedPluginProps extends XyoEmbedPluginBase, FlexBoxProps {
7
+ /** string for huri to resolve and payload for bypassing huri resolution */
8
+ onRefresh?: () => void
9
+ huriPayload?: string | XyoPayload
6
10
  validateSchema?: boolean
7
11
  hideElementsConfig?: EmbedPluginVisibilityConfig
8
12
  }
@@ -1,10 +0,0 @@
1
- /// <reference types="react" />
2
- import { XyoPayload } from '@xyo-network/payload';
3
- import { XyoPayloadRenderPlugin } from '@xyo-network/react-payload-plugin';
4
- interface RenderComponentProps {
5
- ActivePlugin?: XyoPayloadRenderPlugin;
6
- payload?: XyoPayload;
7
- }
8
- export declare const RenderComponent: React.FC<RenderComponentProps>;
9
- export {};
10
- //# sourceMappingURL=RenderComponent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RenderComponent.d.ts","sourceRoot":"","sources":["../../../src/components/RenderComponent.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA;AAG1E,UAAU,oBAAoB;IAC5B,YAAY,CAAC,EAAE,sBAAsB,CAAA;IACrC,OAAO,CAAC,EAAE,UAAU,CAAA;CACrB;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAG1D,CAAA"}
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RenderComponent = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const react_shared_1 = require("@xyo-network/react-shared");
6
- const RenderComponent = ({ ActivePlugin, payload }) => {
7
- const { listMode } = (0, react_shared_1.useListMode)();
8
- return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: ActivePlugin ? (0, jsx_runtime_1.jsx)(ActivePlugin.components.box.details, { payload: payload, listMode: listMode }) : null });
9
- };
10
- exports.RenderComponent = RenderComponent;
11
- //# sourceMappingURL=RenderComponent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RenderComponent.js","sourceRoot":"","sources":["../../../src/components/RenderComponent.tsx"],"names":[],"mappings":";;;;AAEA,4DAAuD;AAOhD,MAAM,eAAe,GAAmC,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;IAC3F,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,0BAAW,GAAE,CAAA;IAClC,OAAO,2DAAG,YAAY,CAAC,CAAC,CAAC,uBAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,IAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAAC,CAAC,CAAC,IAAI,GAAI,CAAA;AACnH,CAAC,CAAA;AAHY,QAAA,eAAe,mBAG3B"}
@@ -1,19 +0,0 @@
1
- import { CardProps } from '@mui/material';
2
- import { XyoPayloadRenderPlugin } from '@xyo-network/react-payload-plugin';
3
- export interface EmbedPluginVisibilityConfig {
4
- hideAvatar?: boolean;
5
- hideTitle?: boolean;
6
- hideRefreshButton?: boolean;
7
- hideTimestamp?: boolean;
8
- hideCardActions?: boolean;
9
- hideCardHeader?: boolean;
10
- }
11
- export interface XyoEmbedPluginProps extends CardProps {
12
- plugins?: XyoPayloadRenderPlugin[];
13
- huri?: string;
14
- refreshTitle?: string;
15
- timestampLabel?: string;
16
- validateSchema?: boolean;
17
- hideElementsConfig?: EmbedPluginVisibilityConfig;
18
- }
19
- //# sourceMappingURL=XyoEmbedPluginProps.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"XyoEmbedPluginProps.d.ts","sourceRoot":"","sources":["../../../src/components/XyoEmbedPluginProps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA;AAE1E,MAAM,WAAW,2BAA2B;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,MAAM,WAAW,mBAAoB,SAAQ,SAAS;IACpD,OAAO,CAAC,EAAE,sBAAsB,EAAE,CAAA;IAClC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,kBAAkB,CAAC,EAAE,2BAA2B,CAAA;CACjD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"XyoEmbedPluginProps.js","sourceRoot":"","sources":["../../../src/components/XyoEmbedPluginProps.ts"],"names":[],"mappings":""}
@@ -1,4 +0,0 @@
1
- /// <reference types="react" />
2
- import { CardProps } from '@mui/material';
3
- export declare const EmbedPluginContainer: React.FC<CardProps>;
4
- //# sourceMappingURL=EmbedPluginContainer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EmbedPluginContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/embed-card/EmbedPluginContainer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAqB,SAAS,EAAE,MAAM,eAAe,CAAA;AAQ5D,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAcpD,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"EmbedPluginContainer.js","sourceRoot":"","sources":["../../../../src/components/embed-card/EmbedPluginContainer.tsx"],"names":[],"mappings":";;;;AAAA,4CAA4D;AAC5D,yDAAmD;AACnD,4DAAuD;AAEvD,6CAAuD;AACvD,0CAA0E;AAC1E,uDAAmD;AAE5C,MAAM,oBAAoB,GAAwB,CAAC,KAAK,EAAE,EAAE;;IACjE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,GAAG,IAAA,iCAAsB,GAAE,CAAA;IACrG,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,0BAAW,GAAE,CAAA;IAElC,OAAO,CACL,wBAAC,eAAI,kBAAC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAC,WAAW,IAAK,KAAK,eAC9C,CAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,cAAc,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAC,iCAAe,KAAG,EAChE,wBAAC,2BAAW,kBAAC,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAC,MAAM,EAAC,cAAc,EAAC,QAAQ,EAAC,EAAE,EAAE,CAAC,iBAChF,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAC,4BAAiB,KAAG,CAAC,CAAC,CAAC,IAAI,EAC5D,CAAC,MAAA,MAAA,MAAA,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,UAAU,0CAAE,GAAG,0CAAE,SAAS,0CAAE,MAAM,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAC,oCAAyB,KAAG,CAAC,CAAC,CAAC,IAAI,KACvF,EACd,uBAAC,sBAAW,cAAE,YAAY,CAAC,CAAC,CAAC,uBAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,IAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAAC,CAAC,CAAC,IAAI,GAAe,KAC3H,CACR,CAAA;AACH,CAAC,CAAA;AAdY,QAAA,oBAAoB,wBAchC"}
@@ -1,10 +0,0 @@
1
- /// <reference types="react" />
2
- import { XyoPayload } from '@xyo-network/payload';
3
- import { XyoPayloadRenderPlugin } from '@xyo-network/react-payload-plugin';
4
- interface RenderComponentProps {
5
- ActivePlugin?: XyoPayloadRenderPlugin;
6
- payload?: XyoPayload;
7
- }
8
- export declare const RenderComponent: React.FC<RenderComponentProps>;
9
- export {};
10
- //# sourceMappingURL=RenderComponent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RenderComponent.d.ts","sourceRoot":"","sources":["../../../src/components/RenderComponent.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA;AAG1E,UAAU,oBAAoB;IAC5B,YAAY,CAAC,EAAE,sBAAsB,CAAA;IACrC,OAAO,CAAC,EAAE,UAAU,CAAA;CACrB;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAG1D,CAAA"}
@@ -1,7 +0,0 @@
1
- import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { useListMode } from '@xyo-network/react-shared';
3
- export const RenderComponent = ({ ActivePlugin, payload }) => {
4
- const { listMode } = useListMode();
5
- return _jsx(_Fragment, { children: ActivePlugin ? _jsx(ActivePlugin.components.box.details, { payload: payload, listMode: listMode }) : null });
6
- };
7
- //# sourceMappingURL=RenderComponent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RenderComponent.js","sourceRoot":"","sources":["../../../src/components/RenderComponent.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAOvD,MAAM,CAAC,MAAM,eAAe,GAAmC,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;IAC3F,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAA;IAClC,OAAO,4BAAG,YAAY,CAAC,CAAC,CAAC,KAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,IAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAAC,CAAC,CAAC,IAAI,GAAI,CAAA;AACnH,CAAC,CAAA"}
@@ -1,19 +0,0 @@
1
- import { CardProps } from '@mui/material';
2
- import { XyoPayloadRenderPlugin } from '@xyo-network/react-payload-plugin';
3
- export interface EmbedPluginVisibilityConfig {
4
- hideAvatar?: boolean;
5
- hideTitle?: boolean;
6
- hideRefreshButton?: boolean;
7
- hideTimestamp?: boolean;
8
- hideCardActions?: boolean;
9
- hideCardHeader?: boolean;
10
- }
11
- export interface XyoEmbedPluginProps extends CardProps {
12
- plugins?: XyoPayloadRenderPlugin[];
13
- huri?: string;
14
- refreshTitle?: string;
15
- timestampLabel?: string;
16
- validateSchema?: boolean;
17
- hideElementsConfig?: EmbedPluginVisibilityConfig;
18
- }
19
- //# sourceMappingURL=XyoEmbedPluginProps.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"XyoEmbedPluginProps.d.ts","sourceRoot":"","sources":["../../../src/components/XyoEmbedPluginProps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA;AAE1E,MAAM,WAAW,2BAA2B;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,MAAM,WAAW,mBAAoB,SAAQ,SAAS;IACpD,OAAO,CAAC,EAAE,sBAAsB,EAAE,CAAA;IAClC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,kBAAkB,CAAC,EAAE,2BAA2B,CAAA;CACjD"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=XyoEmbedPluginProps.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"XyoEmbedPluginProps.js","sourceRoot":"","sources":["../../../src/components/XyoEmbedPluginProps.ts"],"names":[],"mappings":""}
@@ -1,4 +0,0 @@
1
- /// <reference types="react" />
2
- import { CardProps } from '@mui/material';
3
- export declare const EmbedPluginContainer: React.FC<CardProps>;
4
- //# sourceMappingURL=EmbedPluginContainer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EmbedPluginContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/embed-card/EmbedPluginContainer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAqB,SAAS,EAAE,MAAM,eAAe,CAAA;AAQ5D,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAcpD,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"EmbedPluginContainer.js","sourceRoot":"","sources":["../../../../src/components/embed-card/EmbedPluginContainer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAa,MAAM,eAAe,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAEvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,MAAM,CAAC,MAAM,oBAAoB,GAAwB,CAAC,KAAK,EAAE,EAAE;IACjE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,GAAG,sBAAsB,EAAE,CAAA;IACrG,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAA;IAElC,OAAO,CACL,MAAC,IAAI,IAAC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAC,WAAW,KAAK,KAAK,aAC9C,kBAAkB,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAC,eAAe,KAAG,EAChE,MAAC,WAAW,IAAC,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAC,MAAM,EAAC,cAAc,EAAC,QAAQ,EAAC,EAAE,EAAE,CAAC,aAChF,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAC,iBAAiB,KAAG,CAAC,CAAC,CAAC,IAAI,EAC5D,CAAC,YAAY,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAC,yBAAyB,KAAG,CAAC,CAAC,CAAC,IAAI,IACvF,EACd,KAAC,WAAW,cAAE,YAAY,CAAC,CAAC,CAAC,KAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,IAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAAC,CAAC,CAAC,IAAI,GAAe,IAC3H,CACR,CAAA;AACH,CAAC,CAAA"}