@cohesivesystems/presentation-react-shadcn 0.1.0-alpha.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 (262) hide show
  1. package/LICENSE +55 -0
  2. package/dist/document-workspace-surface-slot-renderers.d.ts +58 -0
  3. package/dist/document-workspace-surface-slot-renderers.d.ts.map +1 -0
  4. package/dist/document-workspace-surface-slot-renderers.js +206 -0
  5. package/dist/document-workspace-surface-slot-renderers.js.map +1 -0
  6. package/dist/index.d.ts +53 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +53 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/navigation-shell-frame-renderer-registry.d.ts +8 -0
  11. package/dist/navigation-shell-frame-renderer-registry.d.ts.map +1 -0
  12. package/dist/navigation-shell-frame-renderer-registry.js +2 -0
  13. package/dist/navigation-shell-frame-renderer-registry.js.map +1 -0
  14. package/dist/navigation-shell-slot-renderer-registry.d.ts +9 -0
  15. package/dist/navigation-shell-slot-renderer-registry.d.ts.map +1 -0
  16. package/dist/navigation-shell-slot-renderer-registry.js +2 -0
  17. package/dist/navigation-shell-slot-renderer-registry.js.map +1 -0
  18. package/dist/page-host-unavailable-renderer.d.ts +10 -0
  19. package/dist/page-host-unavailable-renderer.d.ts.map +1 -0
  20. package/dist/page-host-unavailable-renderer.js +27 -0
  21. package/dist/page-host-unavailable-renderer.js.map +1 -0
  22. package/dist/presentation-action-group.d.ts +99 -0
  23. package/dist/presentation-action-group.d.ts.map +1 -0
  24. package/dist/presentation-action-group.js +214 -0
  25. package/dist/presentation-action-group.js.map +1 -0
  26. package/dist/presentation-badge-target-interpreter.d.ts +26 -0
  27. package/dist/presentation-badge-target-interpreter.d.ts.map +1 -0
  28. package/dist/presentation-badge-target-interpreter.js +17 -0
  29. package/dist/presentation-badge-target-interpreter.js.map +1 -0
  30. package/dist/presentation-component-groups.d.ts +968 -0
  31. package/dist/presentation-component-groups.d.ts.map +1 -0
  32. package/dist/presentation-component-groups.js +505 -0
  33. package/dist/presentation-component-groups.js.map +1 -0
  34. package/dist/presentation-component-system-diagnostics.d.ts +27 -0
  35. package/dist/presentation-component-system-diagnostics.d.ts.map +1 -0
  36. package/dist/presentation-component-system-diagnostics.js +399 -0
  37. package/dist/presentation-component-system-diagnostics.js.map +1 -0
  38. package/dist/presentation-component-system.d.ts +31 -0
  39. package/dist/presentation-component-system.d.ts.map +1 -0
  40. package/dist/presentation-component-system.js +61 -0
  41. package/dist/presentation-component-system.js.map +1 -0
  42. package/dist/presentation-icon-diagnostics.d.ts +12 -0
  43. package/dist/presentation-icon-diagnostics.d.ts.map +1 -0
  44. package/dist/presentation-icon-diagnostics.js +17 -0
  45. package/dist/presentation-icon-diagnostics.js.map +1 -0
  46. package/dist/presentation-icon-registry.d.ts +28 -0
  47. package/dist/presentation-icon-registry.d.ts.map +1 -0
  48. package/dist/presentation-icon-registry.js +80 -0
  49. package/dist/presentation-icon-registry.js.map +1 -0
  50. package/dist/presentation-projection-trace-panel.d.ts +10 -0
  51. package/dist/presentation-projection-trace-panel.d.ts.map +1 -0
  52. package/dist/presentation-projection-trace-panel.js +48 -0
  53. package/dist/presentation-projection-trace-panel.js.map +1 -0
  54. package/dist/presentation-routed-surface-host.d.ts +19 -0
  55. package/dist/presentation-routed-surface-host.d.ts.map +1 -0
  56. package/dist/presentation-routed-surface-host.js +12 -0
  57. package/dist/presentation-routed-surface-host.js.map +1 -0
  58. package/dist/presentation-shadcn-component-system.d.ts +22 -0
  59. package/dist/presentation-shadcn-component-system.d.ts.map +1 -0
  60. package/dist/presentation-shadcn-component-system.js +2 -0
  61. package/dist/presentation-shadcn-component-system.js.map +1 -0
  62. package/dist/presentation-standard-renderers.d.ts +168 -0
  63. package/dist/presentation-standard-renderers.d.ts.map +1 -0
  64. package/dist/presentation-standard-renderers.js +440 -0
  65. package/dist/presentation-standard-renderers.js.map +1 -0
  66. package/dist/presentation-surface-renderer.d.ts +23 -0
  67. package/dist/presentation-surface-renderer.d.ts.map +1 -0
  68. package/dist/presentation-surface-renderer.js +119 -0
  69. package/dist/presentation-surface-renderer.js.map +1 -0
  70. package/dist/presentation-value-renderers.d.ts +10 -0
  71. package/dist/presentation-value-renderers.d.ts.map +1 -0
  72. package/dist/presentation-value-renderers.js +14 -0
  73. package/dist/presentation-value-renderers.js.map +1 -0
  74. package/dist/process-task-icons.d.ts +49 -0
  75. package/dist/process-task-icons.d.ts.map +1 -0
  76. package/dist/process-task-icons.js +154 -0
  77. package/dist/process-task-icons.js.map +1 -0
  78. package/dist/projected-activity-state.d.ts +17 -0
  79. package/dist/projected-activity-state.d.ts.map +1 -0
  80. package/dist/projected-activity-state.js +22 -0
  81. package/dist/projected-activity-state.js.map +1 -0
  82. package/dist/projected-collection-action-runtime-diagnostics.d.ts +4 -0
  83. package/dist/projected-collection-action-runtime-diagnostics.d.ts.map +1 -0
  84. package/dist/projected-collection-action-runtime-diagnostics.js +9 -0
  85. package/dist/projected-collection-action-runtime-diagnostics.js.map +1 -0
  86. package/dist/projected-collection-view.d.ts +90 -0
  87. package/dist/projected-collection-view.d.ts.map +1 -0
  88. package/dist/projected-collection-view.js +532 -0
  89. package/dist/projected-collection-view.js.map +1 -0
  90. package/dist/projected-document-action-status-notices.d.ts +15 -0
  91. package/dist/projected-document-action-status-notices.d.ts.map +1 -0
  92. package/dist/projected-document-action-status-notices.js +33 -0
  93. package/dist/projected-document-action-status-notices.js.map +1 -0
  94. package/dist/projected-document-badges.d.ts +24 -0
  95. package/dist/projected-document-badges.d.ts.map +1 -0
  96. package/dist/projected-document-badges.js +53 -0
  97. package/dist/projected-document-badges.js.map +1 -0
  98. package/dist/projected-document-editor-surface.d.ts +46 -0
  99. package/dist/projected-document-editor-surface.d.ts.map +1 -0
  100. package/dist/projected-document-editor-surface.js +399 -0
  101. package/dist/projected-document-editor-surface.js.map +1 -0
  102. package/dist/projected-document-workspace-notices.d.ts +24 -0
  103. package/dist/projected-document-workspace-notices.d.ts.map +1 -0
  104. package/dist/projected-document-workspace-notices.js +14 -0
  105. package/dist/projected-document-workspace-notices.js.map +1 -0
  106. package/dist/projected-document-workspace-prompt-child-view-registry.d.ts +25 -0
  107. package/dist/projected-document-workspace-prompt-child-view-registry.d.ts.map +1 -0
  108. package/dist/projected-document-workspace-prompt-child-view-registry.js +41 -0
  109. package/dist/projected-document-workspace-prompt-child-view-registry.js.map +1 -0
  110. package/dist/projected-document-workspace-prompt-child-view-renderers.d.ts +32 -0
  111. package/dist/projected-document-workspace-prompt-child-view-renderers.d.ts.map +1 -0
  112. package/dist/projected-document-workspace-prompt-child-view-renderers.js +77 -0
  113. package/dist/projected-document-workspace-prompt-child-view-renderers.js.map +1 -0
  114. package/dist/projected-document-workspace-shell.d.ts +100 -0
  115. package/dist/projected-document-workspace-shell.d.ts.map +1 -0
  116. package/dist/projected-document-workspace-shell.js +153 -0
  117. package/dist/projected-document-workspace-shell.js.map +1 -0
  118. package/dist/projected-document-workspace.d.ts +39 -0
  119. package/dist/projected-document-workspace.d.ts.map +1 -0
  120. package/dist/projected-document-workspace.js +63 -0
  121. package/dist/projected-document-workspace.js.map +1 -0
  122. package/dist/projected-field-value-rendering.d.ts +94 -0
  123. package/dist/projected-field-value-rendering.d.ts.map +1 -0
  124. package/dist/projected-field-value-rendering.js +377 -0
  125. package/dist/projected-field-value-rendering.js.map +1 -0
  126. package/dist/projected-inline-list.d.ts +20 -0
  127. package/dist/projected-inline-list.d.ts.map +1 -0
  128. package/dist/projected-inline-list.js +149 -0
  129. package/dist/projected-inline-list.js.map +1 -0
  130. package/dist/projected-input-form.d.ts +143 -0
  131. package/dist/projected-input-form.d.ts.map +1 -0
  132. package/dist/projected-input-form.js +612 -0
  133. package/dist/projected-input-form.js.map +1 -0
  134. package/dist/projected-metric-dashboard.d.ts +26 -0
  135. package/dist/projected-metric-dashboard.d.ts.map +1 -0
  136. package/dist/projected-metric-dashboard.js +20 -0
  137. package/dist/projected-metric-dashboard.js.map +1 -0
  138. package/dist/projected-metric-strip.d.ts +20 -0
  139. package/dist/projected-metric-strip.d.ts.map +1 -0
  140. package/dist/projected-metric-strip.js +131 -0
  141. package/dist/projected-metric-strip.js.map +1 -0
  142. package/dist/projected-navigation-shell-view-host.d.ts +34 -0
  143. package/dist/projected-navigation-shell-view-host.d.ts.map +1 -0
  144. package/dist/projected-navigation-shell-view-host.js +75 -0
  145. package/dist/projected-navigation-shell-view-host.js.map +1 -0
  146. package/dist/projected-navigation-shell.d.ts +33 -0
  147. package/dist/projected-navigation-shell.d.ts.map +1 -0
  148. package/dist/projected-navigation-shell.js +112 -0
  149. package/dist/projected-navigation-shell.js.map +1 -0
  150. package/dist/projected-presentation-badges.d.ts +34 -0
  151. package/dist/projected-presentation-badges.d.ts.map +1 -0
  152. package/dist/projected-presentation-badges.js +22 -0
  153. package/dist/projected-presentation-badges.js.map +1 -0
  154. package/dist/projected-presentation-diagnostics.d.ts +10 -0
  155. package/dist/projected-presentation-diagnostics.d.ts.map +1 -0
  156. package/dist/projected-presentation-diagnostics.js +40 -0
  157. package/dist/projected-presentation-diagnostics.js.map +1 -0
  158. package/dist/projected-presentation-flow-layer.d.ts +33 -0
  159. package/dist/projected-presentation-flow-layer.d.ts.map +1 -0
  160. package/dist/projected-presentation-flow-layer.js +71 -0
  161. package/dist/projected-presentation-flow-layer.js.map +1 -0
  162. package/dist/projected-process-task-notices.d.ts +37 -0
  163. package/dist/projected-process-task-notices.d.ts.map +1 -0
  164. package/dist/projected-process-task-notices.js +225 -0
  165. package/dist/projected-process-task-notices.js.map +1 -0
  166. package/dist/projected-prompt-child-view-renderer.d.ts +101 -0
  167. package/dist/projected-prompt-child-view-renderer.d.ts.map +1 -0
  168. package/dist/projected-prompt-child-view-renderer.js +442 -0
  169. package/dist/projected-prompt-child-view-renderer.js.map +1 -0
  170. package/dist/projected-prompt-document-preview.d.ts +39 -0
  171. package/dist/projected-prompt-document-preview.d.ts.map +1 -0
  172. package/dist/projected-prompt-document-preview.js +50 -0
  173. package/dist/projected-prompt-document-preview.js.map +1 -0
  174. package/dist/projected-prompt-view.d.ts +35 -0
  175. package/dist/projected-prompt-view.d.ts.map +1 -0
  176. package/dist/projected-prompt-view.js +292 -0
  177. package/dist/projected-prompt-view.js.map +1 -0
  178. package/dist/projected-query-form.d.ts +56 -0
  179. package/dist/projected-query-form.d.ts.map +1 -0
  180. package/dist/projected-query-form.js +100 -0
  181. package/dist/projected-query-form.js.map +1 -0
  182. package/dist/projected-record-details.d.ts +20 -0
  183. package/dist/projected-record-details.d.ts.map +1 -0
  184. package/dist/projected-record-details.js +60 -0
  185. package/dist/projected-record-details.js.map +1 -0
  186. package/dist/projected-routed-surface-runtime.d.ts +86 -0
  187. package/dist/projected-routed-surface-runtime.d.ts.map +1 -0
  188. package/dist/projected-routed-surface-runtime.js +332 -0
  189. package/dist/projected-routed-surface-runtime.js.map +1 -0
  190. package/dist/projected-tabs-view.d.ts +21 -0
  191. package/dist/projected-tabs-view.d.ts.map +1 -0
  192. package/dist/projected-tabs-view.js +140 -0
  193. package/dist/projected-tabs-view.js.map +1 -0
  194. package/dist/projected-view-chrome.d.ts +15 -0
  195. package/dist/projected-view-chrome.d.ts.map +1 -0
  196. package/dist/projected-view-chrome.js +67 -0
  197. package/dist/projected-view-chrome.js.map +1 -0
  198. package/dist/projected-view-surface.d.ts +34 -0
  199. package/dist/projected-view-surface.d.ts.map +1 -0
  200. package/dist/projected-view-surface.js +40 -0
  201. package/dist/projected-view-surface.js.map +1 -0
  202. package/dist/standard-collection-chrome-slot-renderers.d.ts +26 -0
  203. package/dist/standard-collection-chrome-slot-renderers.d.ts.map +1 -0
  204. package/dist/standard-collection-chrome-slot-renderers.js +250 -0
  205. package/dist/standard-collection-chrome-slot-renderers.js.map +1 -0
  206. package/dist/standard-view-chrome-slot-renderers.d.ts +57 -0
  207. package/dist/standard-view-chrome-slot-renderers.d.ts.map +1 -0
  208. package/dist/standard-view-chrome-slot-renderers.js +614 -0
  209. package/dist/standard-view-chrome-slot-renderers.js.map +1 -0
  210. package/package.json +68 -0
  211. package/src/document-workspace-surface-slot-renderers.tsx +395 -0
  212. package/src/index.ts +53 -0
  213. package/src/navigation-shell-frame-renderer-registry.ts +29 -0
  214. package/src/navigation-shell-slot-renderer-registry.ts +46 -0
  215. package/src/page-host-unavailable-renderer.tsx +79 -0
  216. package/src/presentation-action-group.tsx +475 -0
  217. package/src/presentation-badge-target-interpreter.ts +54 -0
  218. package/src/presentation-component-groups.ts +2505 -0
  219. package/src/presentation-component-system-diagnostics.ts +848 -0
  220. package/src/presentation-component-system.ts +365 -0
  221. package/src/presentation-icon-diagnostics.ts +53 -0
  222. package/src/presentation-icon-registry.tsx +181 -0
  223. package/src/presentation-projection-trace-panel.tsx +140 -0
  224. package/src/presentation-routed-surface-host.tsx +48 -0
  225. package/src/presentation-shadcn-component-system.ts +102 -0
  226. package/src/presentation-standard-renderers.tsx +1290 -0
  227. package/src/presentation-surface-renderer.tsx +263 -0
  228. package/src/presentation-value-renderers.tsx +40 -0
  229. package/src/process-task-icons.tsx +258 -0
  230. package/src/projected-activity-state.tsx +63 -0
  231. package/src/projected-collection-action-runtime-diagnostics.ts +22 -0
  232. package/src/projected-collection-view.tsx +1273 -0
  233. package/src/projected-document-action-status-notices.tsx +66 -0
  234. package/src/projected-document-badges.tsx +134 -0
  235. package/src/projected-document-editor-surface.tsx +808 -0
  236. package/src/projected-document-workspace-notices.tsx +77 -0
  237. package/src/projected-document-workspace-prompt-child-view-registry.ts +99 -0
  238. package/src/projected-document-workspace-prompt-child-view-renderers.tsx +205 -0
  239. package/src/projected-document-workspace-shell.tsx +427 -0
  240. package/src/projected-document-workspace.tsx +216 -0
  241. package/src/projected-field-value-rendering.tsx +704 -0
  242. package/src/projected-inline-list.tsx +434 -0
  243. package/src/projected-input-form.tsx +1218 -0
  244. package/src/projected-metric-dashboard.tsx +106 -0
  245. package/src/projected-metric-strip.tsx +244 -0
  246. package/src/projected-navigation-shell-view-host.tsx +177 -0
  247. package/src/projected-navigation-shell.tsx +219 -0
  248. package/src/projected-presentation-badges.tsx +95 -0
  249. package/src/projected-presentation-diagnostics.tsx +120 -0
  250. package/src/projected-presentation-flow-layer.tsx +186 -0
  251. package/src/projected-process-task-notices.tsx +501 -0
  252. package/src/projected-prompt-child-view-renderer.tsx +698 -0
  253. package/src/projected-prompt-document-preview.tsx +197 -0
  254. package/src/projected-prompt-view.tsx +592 -0
  255. package/src/projected-query-form.tsx +286 -0
  256. package/src/projected-record-details.tsx +133 -0
  257. package/src/projected-routed-surface-runtime.tsx +713 -0
  258. package/src/projected-tabs-view.tsx +308 -0
  259. package/src/projected-view-chrome.tsx +148 -0
  260. package/src/projected-view-surface.tsx +131 -0
  261. package/src/standard-collection-chrome-slot-renderers.tsx +391 -0
  262. package/src/standard-view-chrome-slot-renderers.tsx +1064 -0
@@ -0,0 +1,612 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Fragment, useMemo } from 'react';
3
+ import { createDefaultDateTimeFilter, createPresentationEnumDiscriminator, createPresentationProjectionDiagnostic, defaultPresentationComponentSet, findPresentationAction, findPresentationField, isViewChromeSlotKind, matchesPresentationEnum, normalizeDateTimeFilter, readObjectPath, resolvePresentationFieldValueLabel, resolvePresentationFieldValueTone, } from '@cohesivesystems/presentation-core';
4
+ import { projectPresentationActionIconDiagnostics, } from './presentation-icon-diagnostics.js';
5
+ import { renderPresentationIcon, } from './presentation-icon-registry.js';
6
+ import { ProjectedStatusBlock } from './projected-activity-state.js';
7
+ import { ProjectedViewSurface, } from './projected-view-surface.js';
8
+ import { useRegisterPresentationProjectionDiagnostics, } from '@cohesivesystems/presentation-react';
9
+ import { inputFormChoiceDefaultSelections, inputFormFieldControlKinds, inputFormFieldKinds, viewChromeSlotKinds, } from '@cohesivesystems/presentation-contracts';
10
+ /**
11
+ * Projects a semantic input-form definition into concrete React form controls.
12
+ *
13
+ * Generic input kinds are handled locally; domain-specific fields, choice tones,
14
+ * styling, and action behavior stay injectable through renderer props and runtime.
15
+ */
16
+ export function ProjectedInputForm({ choiceToggleClassName, choiceTone, className, chromeAfterContentClassName, chromeBeforeContentClassName, chromeFooterClassName, chromeHeaderClassName, componentSet = defaultPresentationComponentSet, componentSystem, contentClassName, dataSourceResolver, designSystem, fieldRenderers, inputForm, module, renderChromeSlot, runtime, target, view, }) {
17
+ const actionIconPlacements = useMemo(() => resolveInputFormActionIconPlacements(inputForm, view), [inputForm, view]);
18
+ const actionIconDiagnostics = useMemo(() => projectPresentationActionIconDiagnostics({
19
+ actionPlacements: actionIconPlacements,
20
+ componentSet,
21
+ module,
22
+ source: `projected-input-form-icons:${view.Id}:${inputForm?.Id ?? 'missing'}`,
23
+ surfaceId: view.Id,
24
+ surfaceName: inputForm?.Name ?? view.Name,
25
+ }), [
26
+ actionIconPlacements,
27
+ componentSet,
28
+ inputForm?.Id,
29
+ inputForm?.Name,
30
+ module,
31
+ view.Id,
32
+ view.Name,
33
+ ]);
34
+ useRegisterPresentationProjectionDiagnostics(`projected-input-form-icons:${view.Id}:${inputForm?.Id ?? 'missing'}`, actionIconDiagnostics);
35
+ const runtimeDiagnosticsSource = `projected-input-form-runtime:${view.Id}:${inputForm?.Id ?? 'missing'}`;
36
+ const runtimeDiagnostics = useMemo(() => createInputFormRuntimeDiagnostics({
37
+ hasRuntime: runtime !== null,
38
+ inputForm,
39
+ source: runtimeDiagnosticsSource,
40
+ view,
41
+ }), [inputForm, runtime, runtimeDiagnosticsSource, view]);
42
+ useRegisterPresentationProjectionDiagnostics(runtimeDiagnosticsSource, runtimeDiagnostics);
43
+ if (!inputForm) {
44
+ return _jsx(ProjectedStatusBlock, { label: `Presentation view '${view.Name}' has no input form binding.` });
45
+ }
46
+ if (!runtime) {
47
+ return null;
48
+ }
49
+ const formTarget = target ?? createDefaultInputFormTarget(inputForm);
50
+ const projectedFields = projectInputFormFields(inputForm, formTarget.queryDefinition ?? null);
51
+ const projectedFieldsById = new Map(projectedFields.map((field) => [field.inputField.Id, field]));
52
+ const choiceValuesByFieldId = Object.fromEntries(projectedFields.map(({ inputField, queryField }) => [
53
+ inputField.Id,
54
+ readInputFormChoices(dataSourceResolver, inputField, queryField, findPresentationField(module, queryField?.FieldId ?? inputField.FieldId) ?? null).map((choice) => choice.value),
55
+ ]));
56
+ const renderFormChromeSlot = (slot, chromeView) => {
57
+ if (isViewChromeSlotKind(slot, viewChromeSlotKinds.actions)) {
58
+ return renderInputFormActionRow({
59
+ choiceValuesByFieldId,
60
+ componentSet,
61
+ componentSystem,
62
+ designSystem,
63
+ inputForm,
64
+ module,
65
+ placements: slot.Actions.length > 0 ? slot.Actions : inputForm.Actions,
66
+ runtime,
67
+ target: formTarget,
68
+ });
69
+ }
70
+ return renderChromeSlot?.(slot, chromeView) ?? null;
71
+ };
72
+ return (_jsx(ProjectedViewSurface, { className: className, chromeAfterContentClassName: chromeAfterContentClassName, chromeBeforeContentClassName: chromeBeforeContentClassName, chromeFooterClassName: chromeFooterClassName, chromeHeaderClassName: chromeHeaderClassName, componentSystem: componentSystem, contentClassName: cn(designSystem.classNames.formSurface.content({}), contentClassName), collapsible: true, renderChromeSlot: renderFormChromeSlot, title: view.Name, view: view, children: componentSystem.forms.InputForm({
73
+ form: inputForm,
74
+ viewId: view.Id,
75
+ children: (_jsxs(_Fragment, { children: [componentSystem.forms.InputFormGroups({
76
+ className: designSystem.classNames.formSurface.groups({}),
77
+ form: inputForm,
78
+ children: inputForm.Groups.map((group) => {
79
+ const groupFields = group.FieldIds.flatMap((fieldId) => {
80
+ const field = projectedFieldsById.get(fieldId);
81
+ return field ? [field] : [];
82
+ });
83
+ if (groupFields.length === 0) {
84
+ return null;
85
+ }
86
+ return (_jsx(Fragment, { children: componentSystem.forms.InputFormGroup({
87
+ className: designSystem.classNames.formSurface.group({ group }),
88
+ group,
89
+ children: groupFields.map((field) => (_jsx(Fragment, { children: renderInputFormField({
90
+ choiceToggleClassName,
91
+ choiceTone,
92
+ componentSystem,
93
+ dataSourceResolver,
94
+ designSystem,
95
+ fieldRenderers,
96
+ choiceValuesByFieldId,
97
+ inputField: field.inputField,
98
+ inputForm,
99
+ module,
100
+ queryField: field.queryField,
101
+ runtime,
102
+ target: formTarget,
103
+ }) }, field.inputField.Id))),
104
+ }) }, group.Id));
105
+ }),
106
+ }), hasActionsChromeSlot(view) ? null : renderInputFormActionRow({
107
+ choiceValuesByFieldId,
108
+ componentSet,
109
+ componentSystem,
110
+ designSystem,
111
+ inputForm,
112
+ module,
113
+ placements: inputForm.Actions,
114
+ runtime,
115
+ target: formTarget,
116
+ })] })),
117
+ }) }));
118
+ }
119
+ function createInputFormRuntimeDiagnostics({ hasRuntime, inputForm, source, view, }) {
120
+ if (!inputForm || hasRuntime) {
121
+ return [];
122
+ }
123
+ return [
124
+ createPresentationProjectionDiagnostic({
125
+ category: 'missing-binding',
126
+ id: `input-form.${inputForm.Id}.runtime.missing-binding`,
127
+ interpretation: {
128
+ status: 'unbound',
129
+ target: 'input-form-runtime-binding',
130
+ },
131
+ message: `Input form '${inputForm.Name}' has no runtime binding.`,
132
+ severity: 'warning',
133
+ source,
134
+ subject: {
135
+ id: inputForm.Id,
136
+ kind: 'input-form',
137
+ name: inputForm.Name,
138
+ },
139
+ suggestedNextStep: `Bind input form '${inputForm.Id}' to a frontend runtime adapter or remove it from view '${view.Id}'.`,
140
+ }),
141
+ ];
142
+ }
143
+ function renderInputFormField({ choiceToggleClassName, choiceTone, componentSystem, dataSourceResolver, designSystem, fieldRenderers, choiceValuesByFieldId, inputField, inputForm, module, queryField, runtime, target, }) {
144
+ const fieldId = queryField?.FieldId ?? inputField.FieldId;
145
+ const valuePath = queryField?.ValuePath ?? inputField.ValuePath;
146
+ const presentationField = findPresentationField(module, fieldId) ?? null;
147
+ const value = readFormValue(runtime.value, valuePath);
148
+ const choices = readInputFormChoices(dataSourceResolver, inputField, queryField, presentationField);
149
+ const setFieldValue = (nextValue) => {
150
+ runtime.setValue((current) => setFormValue(current, valuePath, nextValue), {
151
+ choiceValuesByFieldId,
152
+ inputForm,
153
+ target,
154
+ value: runtime.value,
155
+ });
156
+ };
157
+ const renderOverride = findInputFieldRenderer(fieldRenderers, inputField, queryField);
158
+ const fieldContext = {
159
+ choiceToggleClassName,
160
+ choiceTone,
161
+ choices,
162
+ componentSystem,
163
+ designSystem,
164
+ field: inputField,
165
+ inputForm,
166
+ presentationField,
167
+ queryField,
168
+ queryForm: target.queryForm ?? null,
169
+ setFieldValue,
170
+ stateId: target.stateId,
171
+ target,
172
+ value,
173
+ };
174
+ const control = renderOverride
175
+ ? renderOverride(fieldContext)
176
+ : renderDefaultFieldControl({
177
+ ...fieldContext,
178
+ label: presentationField?.Label ?? queryField?.Name ?? inputField.Name,
179
+ });
180
+ const label = presentationField?.Label ?? queryField?.Name ?? inputField.Name;
181
+ return componentSystem.forms.InputFormField({
182
+ className: designSystem.classNames.formSurface.field({}),
183
+ control: componentSystem.forms.InputFormControlSlot({
184
+ field: inputField,
185
+ children: control,
186
+ }),
187
+ field: inputField,
188
+ label: componentSystem.forms.FormFieldLabel({
189
+ children: label,
190
+ }),
191
+ });
192
+ }
193
+ function renderDefaultFieldControl({ choiceToggleClassName, choiceTone, choices, componentSystem, designSystem, field, inputForm, label, presentationField, queryField, queryForm, setFieldValue, stateId, target, value, }) {
194
+ if (isMultiSelectInputField(field, queryField)) {
195
+ const selected = readSelectedChoiceValues(field, queryField, choices, value);
196
+ return choices.length > 0 ? (componentSystem.forms.ChoiceToggleGroup({
197
+ 'aria-label': label,
198
+ onValueChange: setFieldValue,
199
+ value: selected,
200
+ children: choices.map((choice) => (_jsx(Fragment, { children: componentSystem.forms.ChoiceToggleItem({
201
+ 'aria-label': choice.label,
202
+ className: resolveChoiceToggleClassName({
203
+ choice,
204
+ choiceToggleClassName,
205
+ choiceTone,
206
+ field,
207
+ inputForm,
208
+ presentationField,
209
+ queryField,
210
+ queryForm,
211
+ stateId,
212
+ target,
213
+ }),
214
+ value: choice.value,
215
+ children: choice.label,
216
+ }) }, choice.value))),
217
+ })) : (componentSystem.forms.InputFormFieldMessage({
218
+ field,
219
+ children: `No ${label.toLocaleLowerCase()} choices are available.`,
220
+ }));
221
+ }
222
+ if (isInputFormFieldKind(field, 'select', 'Select')) {
223
+ return componentSystem.forms.SelectControl({
224
+ 'aria-label': label,
225
+ onValueChange: setFieldValue,
226
+ options: [
227
+ { label: 'Any', value: '' },
228
+ ...choices.map((choice) => ({
229
+ label: choice.label,
230
+ value: choice.value,
231
+ })),
232
+ ],
233
+ value: typeof value === 'string' ? value : '',
234
+ });
235
+ }
236
+ if (isInputFormFieldKind(field, 'dateTimeRange', 'DateTimeRange')) {
237
+ if (isDateTimeFilterControl(field)) {
238
+ return componentSystem.forms.DateTimeFilterControl({
239
+ emptyLabel: field.Display?.EmptyValueLabel ?? undefined,
240
+ incrementMinutes: field.Display?.IncrementMinutes ?? undefined,
241
+ label,
242
+ onValueChange: setFieldValue,
243
+ showTimezone: field.Display?.ShowTimezone ?? undefined,
244
+ value: coerceDateTimeFilterValue(value),
245
+ });
246
+ }
247
+ const range = value && typeof value === 'object'
248
+ ? value
249
+ : {};
250
+ return componentSystem.forms.InputFormControlGroup({
251
+ className: designSystem.classNames.formSurface.rangeGroup({}),
252
+ field,
253
+ children: (_jsxs(_Fragment, { children: [componentSystem.forms.TextInputControl({
254
+ 'aria-label': `${label} after`,
255
+ onValueChange: (nextValue) => setFieldValue({ ...range, after: localDateTimeToIso(nextValue) }),
256
+ type: 'datetime-local',
257
+ value: isoToLocalDateTime(readOptionalString(range.after)),
258
+ }), componentSystem.forms.TextInputControl({
259
+ 'aria-label': `${label} before`,
260
+ onValueChange: (nextValue) => setFieldValue({ ...range, before: localDateTimeToIso(nextValue) }),
261
+ type: 'datetime-local',
262
+ value: isoToLocalDateTime(readOptionalString(range.before)),
263
+ })] })),
264
+ });
265
+ }
266
+ if (isInputFormFieldKind(field, 'dateTime', 'DateTime')) {
267
+ return componentSystem.forms.TextInputControl({
268
+ 'aria-label': label,
269
+ onValueChange: (nextValue) => setFieldValue(localDateTimeToIso(nextValue)),
270
+ type: 'datetime-local',
271
+ value: isoToLocalDateTime(readOptionalString(value)),
272
+ });
273
+ }
274
+ if (isInputFormFieldKind(field, 'date', 'Date')) {
275
+ return componentSystem.forms.TextInputControl({
276
+ 'aria-label': label,
277
+ onValueChange: (nextValue) => setFieldValue(nextValue || null),
278
+ type: 'date',
279
+ value: typeof value === 'string' ? value.slice(0, 10) : '',
280
+ });
281
+ }
282
+ if (isInputFormFieldKind(field, 'number', 'Number')) {
283
+ return componentSystem.forms.TextInputControl({
284
+ 'aria-label': label,
285
+ onValueChange: (nextValue) => setFieldValue(nextValue === '' ? null : Number.parseFloat(nextValue)),
286
+ type: 'number',
287
+ value: typeof value === 'number' && Number.isFinite(value) ? String(value) : '',
288
+ });
289
+ }
290
+ if (isInputFormFieldKind(field, 'numberRange', 'NumberRange')) {
291
+ const range = value && typeof value === 'object'
292
+ ? value
293
+ : {};
294
+ return componentSystem.forms.InputFormControlGroup({
295
+ className: designSystem.classNames.formSurface.rangeGroup({}),
296
+ field,
297
+ children: (_jsxs(_Fragment, { children: [componentSystem.forms.TextInputControl({
298
+ 'aria-label': `${label} minimum`,
299
+ onValueChange: (nextValue) => setFieldValue({ ...range, minimum: readOptionalNumber(nextValue) }),
300
+ type: 'number',
301
+ value: typeof range.minimum === 'number' ? String(range.minimum) : '',
302
+ }), componentSystem.forms.TextInputControl({
303
+ 'aria-label': `${label} maximum`,
304
+ onValueChange: (nextValue) => setFieldValue({ ...range, maximum: readOptionalNumber(nextValue) }),
305
+ type: 'number',
306
+ value: typeof range.maximum === 'number' ? String(range.maximum) : '',
307
+ })] })),
308
+ });
309
+ }
310
+ if (isInputFormFieldKind(field, 'boolean', 'Boolean')) {
311
+ return componentSystem.forms.CheckboxControl({
312
+ 'aria-label': label,
313
+ checked: value === true,
314
+ onCheckedChange: setFieldValue,
315
+ });
316
+ }
317
+ return componentSystem.forms.TextInputControl({
318
+ 'aria-label': label,
319
+ onValueChange: setFieldValue,
320
+ placeholder: field.Placeholder ?? undefined,
321
+ value: typeof value === 'string' ? value : '',
322
+ });
323
+ }
324
+ function renderInputFormActionRow({ choiceValuesByFieldId, componentSet, componentSystem, designSystem, inputForm, module, placements, runtime, target, }) {
325
+ if (placements.length === 0) {
326
+ return null;
327
+ }
328
+ return componentSystem.forms.InputFormActionRow({
329
+ className: designSystem.classNames.formSurface.actionRow({}),
330
+ form: inputForm,
331
+ children: placements.map((placement) => (_jsx(Fragment, { children: renderInputFormAction({
332
+ choiceValuesByFieldId,
333
+ componentSet,
334
+ componentSystem,
335
+ inputForm,
336
+ module,
337
+ placement,
338
+ runtime,
339
+ target,
340
+ }) }, `${placement.Region}:${placement.ActionId}`))),
341
+ });
342
+ }
343
+ function renderInputFormAction({ choiceValuesByFieldId, componentSystem, componentSet, inputForm, module, placement, runtime, target, }) {
344
+ const action = findPresentationAction(module, placement.ActionId);
345
+ const label = placement.Label ?? action?.Name ?? placement.ActionId;
346
+ return componentSystem.forms.FormActionButton({
347
+ 'data-presentation-action-id': placement.ActionId,
348
+ 'data-presentation-view-id': target.queryForm?.Id ?? inputForm.Id,
349
+ onClick: () => runtime.invokeAction({
350
+ action,
351
+ choiceValuesByFieldId,
352
+ inputForm,
353
+ placement,
354
+ target,
355
+ value: runtime.value,
356
+ }),
357
+ size: 'sm',
358
+ type: 'button',
359
+ variant: placement.Intent === 'primary' ? 'default' : 'outline',
360
+ children: (_jsxs(_Fragment, { children: [renderPresentationIcon({
361
+ componentSet,
362
+ icon: placement.Icon,
363
+ module,
364
+ subject: placement,
365
+ }), label] })),
366
+ });
367
+ }
368
+ function hasActionsChromeSlot(view) {
369
+ return view.Chrome?.Slots.some((slot) => isViewChromeSlotKind(slot, viewChromeSlotKinds.actions)) ?? false;
370
+ }
371
+ function resolveInputFormActionIconPlacements(inputForm, view) {
372
+ if (!inputForm) {
373
+ return [];
374
+ }
375
+ const actionSlots = view.Chrome?.Slots.filter((slot) => isViewChromeSlotKind(slot, viewChromeSlotKinds.actions)) ?? [];
376
+ if (actionSlots.length === 0) {
377
+ return inputForm.Actions;
378
+ }
379
+ return actionSlots.flatMap((slot) => slot.Actions.length > 0 ? slot.Actions : inputForm.Actions);
380
+ }
381
+ function createDefaultInputFormTarget(inputForm) {
382
+ return {
383
+ queryDefinition: null,
384
+ queryForm: null,
385
+ stateId: inputForm.SharedStateId ?? inputForm.Target.Id ?? inputForm.StateDataSourceId,
386
+ };
387
+ }
388
+ function projectInputFormFields(inputForm, query) {
389
+ if (!query) {
390
+ return inputForm.Fields.map((field) => ({
391
+ inputField: field,
392
+ queryField: null,
393
+ }));
394
+ }
395
+ const queryFieldsById = new Map(query.Fields.map((field) => [field.Id, field]));
396
+ const queryFieldsByFieldId = new Map(query.Fields.flatMap((field) => field.FieldId ? [[field.FieldId, field]] : []));
397
+ const queryFieldsByValuePath = new Map(query.Fields.flatMap((field) => field.ValuePath ? [[field.ValuePath, field]] : []));
398
+ return inputForm.Fields.map((field) => {
399
+ const queryField = queryFieldsById.get(field.Id) ??
400
+ queryFieldsByFieldId.get(field.FieldId) ??
401
+ queryFieldsByValuePath.get(field.ValuePath);
402
+ return {
403
+ inputField: field,
404
+ queryField: queryField ?? null,
405
+ };
406
+ });
407
+ }
408
+ function findInputFieldRenderer(renderers, field, queryField) {
409
+ if (!renderers) {
410
+ return undefined;
411
+ }
412
+ return ((queryField?.Id ? renderers[queryField.Id] : undefined) ??
413
+ renderers[field.Id] ??
414
+ (queryField?.FieldId ? renderers[queryField.FieldId] : undefined) ??
415
+ renderers[field.FieldId] ??
416
+ (queryField?.ValuePath ? renderers[queryField.ValuePath] : undefined) ??
417
+ renderers[field.ValuePath]);
418
+ }
419
+ function readInputFormChoices(dataSourceResolver, field, queryField, presentationField) {
420
+ if (queryField?.ChoiceDataSourceId) {
421
+ const value = dataSourceResolver.readPath(queryField.ChoiceDataSourceId, queryField.ChoiceItemsPath);
422
+ return readChoiceItems(value, {
423
+ labelPath: 'Label',
424
+ presentationField,
425
+ tonePath: 'Tone',
426
+ valuePath: 'Id',
427
+ });
428
+ }
429
+ const source = field.ChoiceSource;
430
+ if (!source) {
431
+ return [];
432
+ }
433
+ const sourcePath = source.CollectionPath ?? source.FactsPath;
434
+ const value = source.DataSourceId
435
+ ? dataSourceResolver.readPath(source.DataSourceId, sourcePath)
436
+ : [];
437
+ if (!Array.isArray(value)) {
438
+ return [];
439
+ }
440
+ return readChoiceItems(value, {
441
+ labelPath: source.LabelPath,
442
+ presentationField,
443
+ tonePath: source.TonePath,
444
+ valuePath: source.ValuePath,
445
+ });
446
+ }
447
+ function readChoiceItems(value, paths) {
448
+ if (!Array.isArray(value)) {
449
+ return [];
450
+ }
451
+ return value.flatMap((item) => {
452
+ const choiceValue = readObjectPath(item, paths.valuePath);
453
+ if (choiceValue === null || choiceValue === undefined || choiceValue === '') {
454
+ return [];
455
+ }
456
+ const label = readObjectPath(item, paths.labelPath);
457
+ const tone = paths.tonePath
458
+ ? readObjectPath(item, paths.tonePath)
459
+ : null;
460
+ const resolvedLabel = label === null || label === undefined || label === ''
461
+ ? resolvePresentationFieldValueLabel(paths.presentationField, choiceValue)
462
+ : String(label);
463
+ return [{
464
+ label: resolvedLabel ?? String(choiceValue),
465
+ tone: tone === null || tone === undefined
466
+ ? resolvePresentationFieldValueTone(paths.presentationField, choiceValue)
467
+ : String(tone),
468
+ value: String(choiceValue),
469
+ }];
470
+ });
471
+ }
472
+ function readSelectedChoiceValues(field, queryField, choices, value) {
473
+ if (Array.isArray(value) && value.length > 0) {
474
+ return value.map(String);
475
+ }
476
+ if (isInputFormChoiceDefaultSelection(field, 'all', 'All')) {
477
+ return choices.map((choice) => choice.value);
478
+ }
479
+ if (isInputFormChoiceDefaultSelection(field, 'first', 'First')) {
480
+ return choices[0] ? [choices[0].value] : [];
481
+ }
482
+ if (queryField?.ChoiceDataSourceId && isMultiSelectInputField(field, queryField)) {
483
+ return choices.map((choice) => choice.value);
484
+ }
485
+ return [];
486
+ }
487
+ function resolveChoiceToggleClassName({ choice, choiceToggleClassName, choiceTone, field, inputForm, presentationField, queryField, queryForm, stateId, target, }) {
488
+ const choiceContext = {
489
+ choice,
490
+ field,
491
+ inputForm,
492
+ presentationField,
493
+ queryField,
494
+ queryForm,
495
+ stateId,
496
+ target,
497
+ };
498
+ const tone = choiceTone?.(choiceContext) ??
499
+ choice.tone ??
500
+ resolvePresentationFieldValueTone(presentationField, choice.value) ??
501
+ null;
502
+ return choiceToggleClassName?.({ ...choiceContext, tone }) ??
503
+ getDefaultChoiceClassName(tone);
504
+ }
505
+ function readFormValue(value, path) {
506
+ return readObjectPath(value, path);
507
+ }
508
+ function setFormValue(value, path, nextValue) {
509
+ const segments = path.split('.').filter(Boolean);
510
+ if (segments.length === 0) {
511
+ return value;
512
+ }
513
+ return setObjectPath(value, segments, nextValue);
514
+ }
515
+ function setObjectPath(value, segments, nextValue) {
516
+ const [head, ...tail] = segments;
517
+ if (!head) {
518
+ return nextValue;
519
+ }
520
+ const record = value && typeof value === 'object'
521
+ ? value
522
+ : {};
523
+ return {
524
+ ...record,
525
+ [head]: tail.length === 0
526
+ ? nextValue
527
+ : setObjectPath(record[head], tail, nextValue),
528
+ };
529
+ }
530
+ function isMultiSelectInputField(field, queryField) {
531
+ return isInputFormFieldKind(field, 'multiSelect', 'MultiSelect') ||
532
+ queryField?.Operators.some((operator) => operator.toLocaleLowerCase() === 'in') === true;
533
+ }
534
+ function isInputFormFieldKind(field, kind, label) {
535
+ return matchesPresentationEnum(field.Kind, createPresentationEnumDiscriminator(inputFormFieldKinds, kind, label));
536
+ }
537
+ function isInputFormChoiceDefaultSelection(field, selection, label) {
538
+ const defaultSelection = field.ChoiceSource?.DefaultSelection;
539
+ return defaultSelection !== null &&
540
+ defaultSelection !== undefined &&
541
+ matchesPresentationEnum(defaultSelection, createPresentationEnumDiscriminator(inputFormChoiceDefaultSelections, selection, label));
542
+ }
543
+ function getDefaultChoiceClassName(tone) {
544
+ if (tone === 'success') {
545
+ return 'data-[state=off]:border-teal-700/15 data-[state=off]:bg-white data-[state=off]:text-slate-500 data-[state=on]:border-teal-700/15 data-[state=on]:bg-teal-50 data-[state=on]:text-teal-700';
546
+ }
547
+ if (tone === 'danger') {
548
+ return 'data-[state=off]:border-red-700/15 data-[state=off]:bg-white data-[state=off]:text-slate-500 data-[state=on]:border-red-700/15 data-[state=on]:bg-red-50 data-[state=on]:text-red-700';
549
+ }
550
+ if (tone === 'warning') {
551
+ return 'data-[state=off]:border-amber-700/15 data-[state=off]:bg-white data-[state=off]:text-slate-500 data-[state=on]:border-amber-700/15 data-[state=on]:bg-amber-50 data-[state=on]:text-amber-700';
552
+ }
553
+ if (tone === 'accent') {
554
+ return 'data-[state=off]:border-fuchsia-700/15 data-[state=off]:bg-white data-[state=off]:text-slate-500 data-[state=on]:border-fuchsia-700/15 data-[state=on]:bg-fuchsia-50 data-[state=on]:text-fuchsia-700';
555
+ }
556
+ return 'data-[state=off]:border-sky-700/15 data-[state=off]:bg-white data-[state=off]:text-slate-500 data-[state=on]:border-sky-700/15 data-[state=on]:bg-sky-50 data-[state=on]:text-sky-700';
557
+ }
558
+ function isDateTimeFilterControl(field) {
559
+ const control = field.Display?.Control;
560
+ return control === inputFormFieldControlKinds.dateTimeFilter ||
561
+ control?.toString().toLocaleLowerCase() === 'datetimefilter';
562
+ }
563
+ function coerceDateTimeFilterValue(value) {
564
+ const fallback = createDefaultDateTimeFilter();
565
+ if (!value || typeof value !== 'object') {
566
+ return fallback;
567
+ }
568
+ const record = value;
569
+ return normalizeDateTimeFilter({
570
+ afterLocal: readOptionalString(record.afterLocal) || fallback.afterLocal,
571
+ beforeLocal: readOptionalString(record.beforeLocal) || fallback.beforeLocal,
572
+ mode: record.mode === 'range' ? 'range' : 'preset',
573
+ preset: readOptionalString(record.preset),
574
+ timezone: readOptionalString(record.timezone) || fallback.timezone,
575
+ });
576
+ }
577
+ function readOptionalString(value) {
578
+ return typeof value === 'string' ? value : '';
579
+ }
580
+ function readOptionalNumber(value) {
581
+ if (!value) {
582
+ return null;
583
+ }
584
+ const numberValue = Number(value);
585
+ return Number.isFinite(numberValue) ? numberValue : null;
586
+ }
587
+ function isoToLocalDateTime(value) {
588
+ if (!value) {
589
+ return '';
590
+ }
591
+ const parsed = new Date(value);
592
+ if (Number.isNaN(parsed.getTime())) {
593
+ return '';
594
+ }
595
+ const year = parsed.getFullYear();
596
+ const month = `${parsed.getMonth() + 1}`.padStart(2, '0');
597
+ const day = `${parsed.getDate()}`.padStart(2, '0');
598
+ const hours = `${parsed.getHours()}`.padStart(2, '0');
599
+ const minutes = `${parsed.getMinutes()}`.padStart(2, '0');
600
+ return `${year}-${month}-${day}T${hours}:${minutes}`;
601
+ }
602
+ function localDateTimeToIso(value) {
603
+ if (!value) {
604
+ return null;
605
+ }
606
+ const parsed = new Date(value);
607
+ return Number.isNaN(parsed.getTime()) ? null : parsed.toISOString();
608
+ }
609
+ function cn(...values) {
610
+ return values.filter(Boolean).join(' ');
611
+ }
612
+ //# sourceMappingURL=projected-input-form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projected-input-form.js","sourceRoot":"","sources":["../src/projected-input-form.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAkB,MAAM,OAAO,CAAA;AAEzD,OAAO,EACL,2BAA2B,EAC3B,mCAAmC,EACnC,sCAAsC,EACtC,+BAA+B,EAC/B,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,cAAc,EACd,kCAAkC,EAClC,iCAAiC,GAgBlC,MAAM,oCAAoC,CAAA;AAK3C,OAAO,EACL,wCAAwC,GACzC,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACL,sBAAsB,GACvB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EACL,oBAAoB,GAErB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,4CAA4C,GAC7C,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EACL,gCAAgC,EAChC,0BAA0B,EAC1B,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,yCAAyC,CAAA;AAsMhD;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAiC,EACjE,qBAAqB,EACrB,UAAU,EACV,SAAS,EACT,2BAA2B,EAC3B,4BAA4B,EAC5B,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,GAAG,+BAA+B,EAC9C,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,SAAS,EACT,MAAM,EACN,gBAAgB,EAChB,OAAO,EACP,MAAM,EACN,IAAI,GAC4B;IAChC,MAAM,oBAAoB,GAAG,OAAO,CAClC,GAAG,EAAE,CAAC,oCAAoC,CAAC,SAAS,EAAE,IAAI,CAAC,EAC3D,CAAC,SAAS,EAAE,IAAI,CAAC,CAClB,CAAA;IACD,MAAM,qBAAqB,GAAG,OAAO,CACnC,GAAG,EAAE,CAAC,wCAAwC,CAAC;QAC7C,gBAAgB,EAAE,oBAAoB;QACtC,YAAY;QACZ,MAAM;QACN,MAAM,EAAE,8BAA8B,IAAI,CAAC,EAAE,IAAI,SAAS,EAAE,EAAE,IAAI,SAAS,EAAE;QAC7E,SAAS,EAAE,IAAI,CAAC,EAAE;QAClB,WAAW,EAAE,SAAS,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;KAC1C,CAAC,EACF;QACE,oBAAoB;QACpB,YAAY;QACZ,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,IAAI;QACf,MAAM;QACN,IAAI,CAAC,EAAE;QACP,IAAI,CAAC,IAAI;KACV,CACF,CAAA;IACD,4CAA4C,CAC1C,8BAA8B,IAAI,CAAC,EAAE,IAAI,SAAS,EAAE,EAAE,IAAI,SAAS,EAAE,EACrE,qBAAqB,CACtB,CAAA;IACD,MAAM,wBAAwB,GAC5B,gCAAgC,IAAI,CAAC,EAAE,IAAI,SAAS,EAAE,EAAE,IAAI,SAAS,EAAE,CAAA;IACzE,MAAM,kBAAkB,GAAG,OAAO,CAChC,GAAG,EAAE,CAAC,iCAAiC,CAAC;QACtC,UAAU,EAAE,OAAO,KAAK,IAAI;QAC5B,SAAS;QACT,MAAM,EAAE,wBAAwB;QAChC,IAAI;KACL,CAAC,EACF,CAAC,SAAS,EAAE,OAAO,EAAE,wBAAwB,EAAE,IAAI,CAAC,CACrD,CAAA;IACD,4CAA4C,CAC1C,wBAAwB,EACxB,kBAAkB,CACnB,CAAA;IAED,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,KAAC,oBAAoB,IAAC,KAAK,EAAE,sBAAsB,IAAI,CAAC,IAAI,8BAA8B,GAAI,CAAA;IACvG,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,IAAI,4BAA4B,CAAC,SAAS,CAAC,CAAA;IACpE,MAAM,eAAe,GAAG,sBAAsB,CAAC,SAAS,EAAE,UAAU,CAAC,eAAe,IAAI,IAAI,CAAC,CAAA;IAC7F,MAAM,mBAAmB,GAAG,IAAI,GAAG,CACjC,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,CAAU,CAAC,CACtE,CAAA;IACD,MAAM,qBAAqB,GAAG,MAAM,CAAC,WAAW,CAC9C,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;QAClD,UAAU,CAAC,EAAE;QACb,oBAAoB,CAClB,kBAAkB,EAClB,UAAU,EACV,UAAU,EACV,qBAAqB,CACnB,MAAM,EACN,UAAU,EAAE,OAAO,IAAI,UAAU,CAAC,OAAO,CAC1C,IAAI,IAAI,CACV,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;KAChC,CAAC,CACH,CAAA;IACD,MAAM,oBAAoB,GAAG,CAAC,IAA8B,EAAE,UAAiC,EAAE,EAAE;QACjG,IAAI,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5D,OAAO,wBAAwB,CAAC;gBAC9B,qBAAqB;gBACrB,YAAY;gBACZ,eAAe;gBACf,YAAY;gBACZ,SAAS;gBACT,MAAM;gBACN,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO;gBACtE,OAAO;gBACP,MAAM,EAAE,UAAU;aACnB,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,gBAAgB,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,CAAA;IACrD,CAAC,CAAA;IAED,OAAO,CACL,KAAC,oBAAoB,IACnB,SAAS,EAAE,SAAS,EACpB,2BAA2B,EAAE,2BAA2B,EACxD,4BAA4B,EAAE,4BAA4B,EAC1D,qBAAqB,EAAE,qBAAqB,EAC5C,qBAAqB,EAAE,qBAAqB,EAC5C,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,gBAAgB,CAAC,EACvF,WAAW,QACX,gBAAgB,EAAE,oBAAoB,EACtC,KAAK,EAAE,IAAI,CAAC,IAAI,EAChB,IAAI,EAAE,IAAI,YAET,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC;YAC/B,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,QAAQ,EAAE,CACR,8BACG,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC;wBACrC,SAAS,EAAE,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;wBACzD,IAAI,EAAE,SAAS;wBACf,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;4BACvC,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gCACrD,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;gCAC9C,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;4BAC7B,CAAC,CAAC,CAAA;4BACF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gCAC7B,OAAO,IAAI,CAAA;4BACb,CAAC;4BAED,OAAO,CACL,KAAC,QAAQ,cACN,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC;oCACpC,SAAS,EAAE,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;oCAC/D,KAAK;oCACL,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACnC,KAAC,QAAQ,cACN,oBAAoB,CAAC;4CACpB,qBAAqB;4CACrB,UAAU;4CACV,eAAe;4CACf,kBAAkB;4CAClB,YAAY;4CACZ,cAAc;4CACd,qBAAqB;4CACrB,UAAU,EAAE,KAAK,CAAC,UAAU;4CAC5B,SAAS;4CACT,MAAM;4CACN,UAAU,EAAE,KAAK,CAAC,UAAU;4CAC5B,OAAO;4CACP,MAAM,EAAE,UAAU;yCACnB,CAAC,IAfW,KAAK,CAAC,UAAU,CAAC,EAAE,CAgBvB,CACZ,CAAC;iCACH,CAAC,IAvBW,KAAK,CAAC,EAAE,CAwBZ,CACZ,CAAA;wBACH,CAAC,CAAC;qBACH,CAAC,EAED,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,wBAAwB,CAAC;wBAC5D,qBAAqB;wBACrB,YAAY;wBACZ,eAAe;wBACf,YAAY;wBACZ,SAAS;wBACT,MAAM;wBACN,UAAU,EAAE,SAAS,CAAC,OAAO;wBAC7B,OAAO;wBACP,MAAM,EAAE,UAAU;qBACnB,CAAC,IACD,CACJ;SACF,CAAC,GACmB,CACxB,CAAA;AACH,CAAC;AAED,SAAS,iCAAiC,CAAC,EACzC,UAAU,EACV,SAAS,EACT,MAAM,EACN,IAAI,GAML;IACC,IAAI,CAAC,SAAS,IAAI,UAAU,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAA;IACX,CAAC;IAED,OAAO;QACL,sCAAsC,CAAC;YACrC,QAAQ,EAAE,iBAAiB;YAC3B,EAAE,EAAE,cAAc,SAAS,CAAC,EAAE,0BAA0B;YACxD,cAAc,EAAE;gBACd,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,4BAA4B;aACrC;YACD,OAAO,EAAE,eAAe,SAAS,CAAC,IAAI,2BAA2B;YACjE,QAAQ,EAAE,SAAS;YACnB,MAAM;YACN,OAAO,EAAE;gBACP,EAAE,EAAE,SAAS,CAAC,EAAE;gBAChB,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,SAAS,CAAC,IAAI;aACrB;YACD,iBAAiB,EACf,oBAAoB,SAAS,CAAC,EAAE,2DAA2D,IAAI,CAAC,EAAE,IAAI;SACzG,CAAC;KACH,CAAA;AACH,CAAC;AAED,SAAS,oBAAoB,CAAwB,EACnD,qBAAqB,EACrB,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,qBAAqB,EACrB,UAAU,EACV,SAAS,EACT,MAAM,EACN,UAAU,EACV,OAAO,EACP,MAAM,GAeP;IACC,MAAM,OAAO,GAAG,UAAU,EAAE,OAAO,IAAI,UAAU,CAAC,OAAO,CAAA;IACzD,MAAM,SAAS,GAAG,UAAU,EAAE,SAAS,IAAI,UAAU,CAAC,SAAS,CAAA;IAC/D,MAAM,iBAAiB,GAAG,qBAAqB,CAA8B,MAAM,EAAE,OAAO,CAAC,IAAI,IAAI,CAAA;IACrG,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IACrD,MAAM,OAAO,GAAG,oBAAoB,CAAC,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAA;IACnG,MAAM,aAAa,GAAG,CAAC,SAAkB,EAAE,EAAE;QAC3C,OAAO,CAAC,QAAQ,CACd,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,EACxD;YACE,qBAAqB;YACrB,SAAS;YACT,MAAM;YACN,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CACF,CAAA;IACH,CAAC,CAAA;IACD,MAAM,cAAc,GAAG,sBAAsB,CAAC,cAAc,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;IACrF,MAAM,YAAY,GAAG;QACnB,qBAAqB;QACrB,UAAU;QACV,OAAO;QACP,eAAe;QACf,YAAY;QACZ,KAAK,EAAE,UAAU;QACjB,SAAS;QACT,iBAAiB;QACjB,UAAU;QACV,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI;QACnC,aAAa;QACb,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM;QACN,KAAK;KACyC,CAAA;IAChD,MAAM,OAAO,GAAG,cAAc;QAC5B,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC;QAC9B,CAAC,CAAC,yBAAyB,CAAC;YACxB,GAAG,YAAY;YACf,KAAK,EAAE,iBAAiB,EAAE,KAAK,IAAI,UAAU,EAAE,IAAI,IAAI,UAAU,CAAC,IAAI;SACvE,CAAC,CAAA;IACN,MAAM,KAAK,GAAG,iBAAiB,EAAE,KAAK,IAAI,UAAU,EAAE,IAAI,IAAI,UAAU,CAAC,IAAI,CAAA;IAE7E,OAAO,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC;QAC1C,SAAS,EAAE,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACxD,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,oBAAoB,CAAC;YAClD,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE,OAAO;SAClB,CAAC;QACF,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC;YAC1C,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,EACjC,qBAAqB,EACrB,UAAU,EACV,OAAO,EACP,eAAe,EACf,YAAY,EACZ,KAAK,EACL,SAAS,EACT,KAAK,EACL,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,aAAa,EACb,OAAO,EACP,MAAM,EACN,KAAK,GAC6D;IAClE,IAAI,uBAAuB,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,wBAAwB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;QAC5E,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAC1B,eAAe,CAAC,KAAK,CAAC,iBAAiB,CAAC;YACtC,YAAY,EAAE,KAAK;YACnB,aAAa,EAAE,aAAa;YAC5B,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAChC,KAAC,QAAQ,cACN,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAAC;oBACtC,YAAY,EAAE,MAAM,CAAC,KAAK;oBAC1B,SAAS,EAAE,4BAA4B,CAAC;wBACtC,MAAM;wBACN,qBAAqB;wBACrB,UAAU;wBACV,KAAK;wBACL,SAAS;wBACT,iBAAiB;wBACjB,UAAU;wBACV,SAAS;wBACT,OAAO;wBACP,MAAM;qBACP,CAAC;oBACF,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,QAAQ,EAAE,MAAM,CAAC,KAAK;iBACvB,CAAC,IAjBW,MAAM,CAAC,KAAK,CAkBhB,CACZ,CAAC;SACH,CAAC,CACH,CAAC,CAAC,CAAC,CACF,eAAe,CAAC,KAAK,CAAC,qBAAqB,CAAC;YAC1C,KAAK;YACL,QAAQ,EAAE,MAAM,KAAK,CAAC,iBAAiB,EAAE,yBAAyB;SACnE,CAAC,CACH,CAAA;IACH,CAAC;IAED,IAAI,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;QACpD,OAAO,eAAe,CAAC,KAAK,CAAC,aAAa,CAAC;YACzC,YAAY,EAAE,KAAK;YACnB,aAAa,EAAE,aAAa;YAC5B,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC3B,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;oBAC1B,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,KAAK,EAAE,MAAM,CAAC,KAAK;iBACpB,CAAC,CAAC;aACJ;YACD,KAAK,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;SAC9C,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,oBAAoB,CAAC,KAAK,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,CAAC;QAClE,IAAI,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,eAAe,CAAC,KAAK,CAAC,qBAAqB,CAAC;gBACjD,UAAU,EAAE,KAAK,CAAC,OAAO,EAAE,eAAe,IAAI,SAAS;gBACvD,gBAAgB,EAAE,KAAK,CAAC,OAAO,EAAE,gBAAgB,IAAI,SAAS;gBAC9D,KAAK;gBACL,aAAa,EAAE,aAAa;gBAC5B,YAAY,EAAE,KAAK,CAAC,OAAO,EAAE,YAAY,IAAI,SAAS;gBACtD,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC;aACxC,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAC9C,CAAC,CAAC,KAAgC;YAClC,CAAC,CAAC,EAAE,CAAA;QACN,OAAO,eAAe,CAAC,KAAK,CAAC,qBAAqB,CAAC;YACjD,SAAS,EAAE,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7D,KAAK;YACL,QAAQ,EAAE,CACR,8BACC,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAAC;wBACtC,YAAY,EAAE,GAAG,KAAK,QAAQ;wBAC9B,aAAa,EAAE,CAAC,SAAS,EAAE,EAAE,CAC3B,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;wBACnE,IAAI,EAAE,gBAAgB;wBACtB,KAAK,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;qBAC3D,CAAC,EACD,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAAC;wBACtC,YAAY,EAAE,GAAG,KAAK,SAAS;wBAC/B,aAAa,EAAE,CAAC,SAAS,EAAE,EAAE,CAC3B,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;wBACpE,IAAI,EAAE,gBAAgB;wBACtB,KAAK,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;qBAC5D,CAAC,IACC,CACJ;SACF,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,oBAAoB,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC;QACxD,OAAO,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAAC;YAC5C,YAAY,EAAE,KAAK;YACnB,aAAa,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;YAC1E,IAAI,EAAE,gBAAgB;YACtB,KAAK,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;SACrD,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QAChD,OAAO,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAAC;YAC5C,YAAY,EAAE,KAAK;YACnB,aAAa,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,IAAI,IAAI,CAAC;YAC9D,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;SAC3D,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;QACpD,OAAO,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAAC;YAC5C,YAAY,EAAE,KAAK;YACnB,aAAa,EAAE,CAAC,SAAS,EAAE,EAAE,CAC3B,aAAa,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YACvE,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;SAChF,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,oBAAoB,CAAC,KAAK,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE,CAAC;QAC9D,MAAM,KAAK,GAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAC9C,CAAC,CAAC,KAAgC;YAClC,CAAC,CAAC,EAAE,CAAA;QACN,OAAO,eAAe,CAAC,KAAK,CAAC,qBAAqB,CAAC;YACjD,SAAS,EAAE,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7D,KAAK;YACL,QAAQ,EAAE,CACR,8BACC,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAAC;wBACtC,YAAY,EAAE,GAAG,KAAK,UAAU;wBAChC,aAAa,EAAE,CAAC,SAAS,EAAE,EAAE,CAC3B,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;wBACrE,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;qBACtE,CAAC,EACD,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAAC;wBACtC,YAAY,EAAE,GAAG,KAAK,UAAU;wBAChC,aAAa,EAAE,CAAC,SAAS,EAAE,EAAE,CAC3B,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;wBACrE,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;qBACtE,CAAC,IACC,CACJ;SACF,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,oBAAoB,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;QACtD,OAAO,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC;YAC3C,YAAY,EAAE,KAAK;YACnB,OAAO,EAAE,KAAK,KAAK,IAAI;YACvB,eAAe,EAAE,aAAa;SAC/B,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAAC;QAC5C,YAAY,EAAE,KAAK;QACnB,aAAa,EAAE,aAAa;QAC5B,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,SAAS;QAC3C,KAAK,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;KAC9C,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAwB,EACvD,qBAAqB,EACrB,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,SAAS,EACT,MAAM,EACN,UAAU,EACV,OAAO,EACP,MAAM,GAWP;IACC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,eAAe,CAAC,KAAK,CAAC,kBAAkB,CAAC;QAC9C,SAAS,EAAE,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5D,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CACtC,KAAC,QAAQ,cACN,qBAAqB,CAAC;gBACrB,qBAAqB;gBACrB,YAAY;gBACZ,eAAe;gBACf,SAAS;gBACT,MAAM;gBACN,SAAS;gBACT,OAAO;gBACP,MAAM;aACP,CAAC,IAVW,GAAG,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,QAAQ,EAAE,CAW/C,CACZ,CAAC;KACH,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAwB,EACpD,qBAAqB,EACrB,eAAe,EACf,YAAY,EACZ,SAAS,EACT,MAAM,EACN,SAAS,EACT,OAAO,EACP,MAAM,GAUP;IACC,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAA;IACjE,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,MAAM,EAAE,IAAI,IAAI,SAAS,CAAC,QAAQ,CAAA;IACnE,OAAO,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAAC;QAC5C,6BAA6B,EAAE,SAAS,CAAC,QAAQ;QACjD,2BAA2B,EAAE,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,SAAS,CAAC,EAAE;QACjE,OAAO,EAAE,GAAG,EAAE,CACZ,OAAO,CAAC,YAAY,CAAC;YACnB,MAAM;YACN,qBAAqB;YACrB,SAAS;YACT,SAAS;YACT,MAAM;YACN,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC;QACJ,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,SAAS,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAC/D,QAAQ,EAAE,CACR,8BACG,sBAAsB,CAAC;oBACtB,YAAY;oBACZ,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,MAAM;oBACN,OAAO,EAAE,SAAS;iBACnB,CAAC,EACD,KAAK,IACL,CACJ;KACF,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAoB;IAChD,OAAO,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACtC,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAA;AACrE,CAAC;AAED,SAAS,oCAAoC,CAC3C,SAAqC,EACrC,IAAoB;IAEpB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACrD,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;IAChE,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC,OAAO,CAAA;IAC1B,CAAC;IAED,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAClC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;AAC/D,CAAC;AAED,SAAS,4BAA4B,CAAC,SAA8B;IAClE,OAAO;QACL,eAAe,EAAE,IAAI;QACrB,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,SAAS,CAAC,aAAa,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,SAAS,CAAC,iBAAiB;KACvF,CAAA;AACH,CAAC;AAED,SAAS,sBAAsB,CAC7B,SAA8B,EAC9B,KAAuC;IAEvC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAqC,EAAE,CAAC,CAAC;YACzE,UAAU,EAAE,KAAK;YACjB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC,CAAA;IACL,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;IAC/E,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAClC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAC/E,CAAA;IACD,MAAM,sBAAsB,GAAG,IAAI,GAAG,CACpC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CACnF,CAAA;IAED,OAAO,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAqC,EAAE;QACvE,MAAM,UAAU,GACd,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;YACvC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QAC7C,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,UAAU,EAAE,UAAU,IAAI,IAAI;SAC/B,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,SAAgF,EAChF,KAA+B,EAC/B,UAAiD;IAEjD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO,CACL,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvD,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACnB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACjE,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;QACxB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrE,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAC3B,CAAA;AACH,CAAC;AAED,SAAS,oBAAoB,CAC3B,kBAAkD,EAClD,KAA+B,EAC/B,UAAiD,EACjD,iBAAqD;IAErD,IAAI,UAAU,EAAE,kBAAkB,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CACvC,UAAU,CAAC,kBAAkB,EAC7B,UAAU,CAAC,eAAe,CAC3B,CAAA;QACD,OAAO,eAAe,CAAC,KAAK,EAAE;YAC5B,SAAS,EAAE,OAAO;YAClB,iBAAiB;YACjB,QAAQ,EAAE,MAAM;YAChB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAA;IACjC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,SAAS,CAAA;IAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY;QAC/B,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC;QAC9D,CAAC,CAAC,EAAE,CAAA;IACN,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAA;IACX,CAAC;IAED,OAAO,eAAe,CAAC,KAAK,EAAE;QAC5B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,iBAAiB;QACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,KAAc,EACd,KAKC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAA;IACX,CAAC;IAED,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAA8B,EAAE;QACxD,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;QACzD,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,EAAE,EAAE,CAAC;YAC5E,OAAO,EAAE,CAAA;QACX,CAAC;QAED,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;QACnD,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ;YACzB,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC;YACtC,CAAC,CAAC,IAAI,CAAA;QACR,MAAM,aAAa,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;YACzE,CAAC,CAAC,kCAAkC,CAAC,KAAK,CAAC,iBAAiB,EAAE,WAAW,CAAC;YAC1E,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACjB,OAAO,CAAC;gBACN,KAAK,EAAE,aAAa,IAAI,MAAM,CAAC,WAAW,CAAC;gBAC3C,IAAI,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS;oBACvC,CAAC,CAAC,iCAAiC,CAAC,KAAK,CAAC,iBAAiB,EAAE,WAAW,CAAC;oBACzE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;gBAChB,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC;aAC3B,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,wBAAwB,CAC/B,KAA+B,EAC/B,UAAiD,EACjD,OAA4C,EAC5C,KAAc;IAEd,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7C,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B,CAAC;IAED,IAAI,iCAAiC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;QAC3D,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC9C,CAAC;IAED,IAAI,iCAAiC,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;QAC/D,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC7C,CAAC;IAED,IAAI,UAAU,EAAE,kBAAkB,IAAI,uBAAuB,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;QACjF,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC9C,CAAC;IAED,OAAO,EAAE,CAAA;AACX,CAAC;AAED,SAAS,4BAA4B,CAAC,EACpC,MAAM,EACN,qBAAqB,EACrB,UAAU,EACV,KAAK,EACL,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,OAAO,EACP,MAAM,GAYP;IACC,MAAM,aAAa,GAAG;QACpB,MAAM;QACN,KAAK;QACL,SAAS;QACT,iBAAiB;QACjB,UAAU;QACV,SAAS;QACT,OAAO;QACP,MAAM;KACyC,CAAA;IACjD,MAAM,IAAI,GACR,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,MAAM,CAAC,IAAI;QACX,iCAAiC,CAAC,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC;QAClE,IAAI,CAAA;IACN,OAAO,qBAAqB,EAAE,CAAC,EAAE,GAAG,aAAa,EAAE,IAAI,EAAE,CAAC;QACxD,yBAAyB,CAAC,IAAI,CAAC,CAAA;AACnC,CAAC;AAED,SAAS,aAAa,CAAC,KAAa,EAAE,IAAY;IAChD,OAAO,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AACpC,CAAC;AAED,SAAS,YAAY,CACnB,KAAa,EACb,IAAY,EACZ,SAAkB;IAElB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAChD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAW,CAAA;AAC5D,CAAC;AAED,SAAS,aAAa,CAAC,KAAc,EAAE,QAA2B,EAAE,SAAkB;IACpF,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,QAAQ,CAAA;IAChC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAC/C,CAAC,CAAC,KAAgC;QAClC,CAAC,CAAC,EAAE,CAAA;IAEN,OAAO;QACL,GAAG,MAAM;QACT,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,KAAK,CAAC;YACvB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC;KACjD,CAAA;AACH,CAAC;AAED,SAAS,uBAAuB,CAC9B,KAA+B,EAC/B,UAAiD;IAEjD,OAAO,oBAAoB,CAAC,KAAK,EAAE,aAAa,EAAE,aAAa,CAAC;QAC9D,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,iBAAiB,EAAE,KAAK,IAAI,CAAC,KAAK,IAAI,CAAA;AAC5F,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAA+B,EAC/B,IAAsC,EACtC,KAAa;IAEb,OAAO,uBAAuB,CAC5B,KAAK,CAAC,IAAI,EACV,mCAAmC,CAAC,mBAAmB,EAAE,IAAI,EAAE,KAAK,CAAC,CACtE,CAAA;AACH,CAAC;AAED,SAAS,iCAAiC,CACxC,KAA+B,EAC/B,SAAwD,EACxD,KAAa;IAEb,MAAM,gBAAgB,GAAG,KAAK,CAAC,YAAY,EAAE,gBAAgB,CAAA;IAC7D,OAAO,gBAAgB,KAAK,IAAI;QAC9B,gBAAgB,KAAK,SAAS;QAC9B,uBAAuB,CACrB,gBAAgB,EAChB,mCAAmC,CAAC,gCAAgC,EAAE,SAAS,EAAE,KAAK,CAAC,CACxF,CAAA;AACL,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAmB;IACpD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,2LAA2L,CAAA;IACpM,CAAC;IAED,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO,uLAAuL,CAAA;IAChM,CAAC;IAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,+LAA+L,CAAA;IACxM,CAAC;IAED,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO,uMAAuM,CAAA;IAChN,CAAC;IAED,OAAO,uLAAuL,CAAA;AAChM,CAAC;AAED,SAAS,uBAAuB,CAAC,KAA+B;IAC9D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,OAAO,CAAA;IACtC,OAAO,OAAO,KAAK,0BAA0B,CAAC,cAAc;QAC1D,OAAO,EAAE,QAAQ,EAAE,CAAC,iBAAiB,EAAE,KAAK,gBAAgB,CAAA;AAChE,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAc;IAC/C,MAAM,QAAQ,GAAG,2BAA2B,EAAE,CAAA;IAC9C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,KAAgC,CAAA;IAC/C,OAAO,uBAAuB,CAAC;QAC7B,UAAU,EAAE,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,UAAU;QACxE,WAAW,EAAE,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,WAAW;QAC3E,IAAI,EAAE,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ;QAClD,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAkC;QAC1E,QAAQ,EAAE,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ;KACnE,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;AAC/C,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IACjC,OAAO,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAA;AAC1D,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;IAC9B,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,EAAE,CAAA;IACjC,MAAM,KAAK,GAAG,GAAG,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACzD,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAClD,MAAM,KAAK,GAAG,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACrD,MAAM,OAAO,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACzD,OAAO,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI,OAAO,EAAE,CAAA;AACtD,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;IAC9B,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAA;AACrE,CAAC;AAED,SAAS,EAAE,CAAC,GAAG,MAAsD;IACnE,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACzC,CAAC"}