@uva-glass/component-library 3.56.0 → 3.57.0

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 (389) hide show
  1. package/dist/{Accordion-DaCqVof1.js → Accordion-DQNoRsg_.js} +2 -2
  2. package/dist/{Accordion-DaCqVof1.js.map → Accordion-DQNoRsg_.js.map} +1 -1
  3. package/dist/{AccordionCard-CD5H9gR1.js → AccordionCard-C4k8EI39.js} +2 -2
  4. package/dist/{AccordionCard-CD5H9gR1.js.map → AccordionCard-C4k8EI39.js.map} +1 -1
  5. package/dist/{ActionList-C0hD9noC.js → ActionList-D2GC2qPX.js} +2 -2
  6. package/dist/{ActionList-C0hD9noC.js.map → ActionList-D2GC2qPX.js.map} +1 -1
  7. package/dist/{AddCatalogueLinkForm-DNv2tEdF.js → AddCatalogueLinkForm-Di0xm7Ep.js} +5 -5
  8. package/dist/{AddCatalogueLinkForm-DNv2tEdF.js.map → AddCatalogueLinkForm-Di0xm7Ep.js.map} +1 -1
  9. package/dist/{AppStatusBar-BK0yaC4G.js → AppStatusBar-DW-w7Nzp.js} +2 -2
  10. package/dist/{AppStatusBar-BK0yaC4G.js.map → AppStatusBar-DW-w7Nzp.js.map} +1 -1
  11. package/dist/{ButtonGroup-ZqGGZ1rz.js → ButtonGroup-D2z5UWTR.js} +2 -2
  12. package/dist/{ButtonGroup-ZqGGZ1rz.js.map → ButtonGroup-D2z5UWTR.js.map} +1 -1
  13. package/dist/{Card-BH1ySOiP.js → Card-DENYj3eR.js} +3 -3
  14. package/dist/{Card-BH1ySOiP.js.map → Card-DENYj3eR.js.map} +1 -1
  15. package/dist/{CheckboxButtonBar-DpNnwLzI.js → CheckboxButtonBar-OrJSqUTN.js} +5 -5
  16. package/dist/{CheckboxButtonBar-DpNnwLzI.js.map → CheckboxButtonBar-OrJSqUTN.js.map} +1 -1
  17. package/dist/{Column-BwCVSZrG.js → Column-jJBZgP8m.js} +2 -2
  18. package/dist/{Column-BwCVSZrG.js.map → Column-jJBZgP8m.js.map} +1 -1
  19. package/dist/{Container-DK25h_-f.js → Container-DOcrVe7u.js} +2 -2
  20. package/dist/{Container-DK25h_-f.js.map → Container-DOcrVe7u.js.map} +1 -1
  21. package/dist/{ControlsButton-9uR_zW_F.js → ControlsButton-Byx4XQtB.js} +2 -2
  22. package/dist/{ControlsButton-9uR_zW_F.js.map → ControlsButton-Byx4XQtB.js.map} +1 -1
  23. package/dist/{CopyableText-hSqhyUWx.js → CopyableText-BKsM-TuS.js} +2 -2
  24. package/dist/{CopyableText-hSqhyUWx.js.map → CopyableText-BKsM-TuS.js.map} +1 -1
  25. package/dist/{DataTable-C46IkAmF.js → DataTable-Cgn_RKTA.js} +2 -2
  26. package/dist/{DataTable-C46IkAmF.js.map → DataTable-Cgn_RKTA.js.map} +1 -1
  27. package/dist/{Drawer-BbVJqFQI.js → Drawer-fUw0LEuj.js} +3 -3
  28. package/dist/{Drawer-BbVJqFQI.js.map → Drawer-fUw0LEuj.js.map} +1 -1
  29. package/dist/{EmptyStateDataDisplay-IT2P3ius.js → EmptyStateDataDisplay-FBDAGO88.js} +2 -2
  30. package/dist/{EmptyStateDataDisplay-IT2P3ius.js.map → EmptyStateDataDisplay-FBDAGO88.js.map} +1 -1
  31. package/dist/{ExpandableInfoPanel-DMfcJFP3.js → ExpandableInfoPanel-BmbgbAjf.js} +2 -2
  32. package/dist/{ExpandableInfoPanel-DMfcJFP3.js.map → ExpandableInfoPanel-BmbgbAjf.js.map} +1 -1
  33. package/dist/{FeedbackBar-DRbJVniP.js → FeedbackBar-DEDpoNy7.js} +3 -3
  34. package/dist/{FeedbackBar-DRbJVniP.js.map → FeedbackBar-DEDpoNy7.js.map} +1 -1
  35. package/dist/{FeedbackBox-CaSxB4uc.js → FeedbackBox-BpOf_dxg.js} +2 -2
  36. package/dist/{FeedbackBox-CaSxB4uc.js.map → FeedbackBox-BpOf_dxg.js.map} +1 -1
  37. package/dist/{Fieldset-D01_rj_p.js → Fieldset-CgnLyAyS.js} +2 -2
  38. package/dist/{Fieldset-D01_rj_p.js.map → Fieldset-CgnLyAyS.js.map} +1 -1
  39. package/dist/{FormField-CcV84TfI.js → FormField-ByjTkKKq.js} +2 -2
  40. package/dist/{FormField-CcV84TfI.js.map → FormField-ByjTkKKq.js.map} +1 -1
  41. package/dist/{IconButton-CSNMVEG1.js → IconButton-BZVNomru.js} +2 -2
  42. package/dist/{IconButton-CSNMVEG1.js.map → IconButton-BZVNomru.js.map} +1 -1
  43. package/dist/{InfoMessage-COywXu4O.js → InfoMessage-CCEg222m.js} +2 -2
  44. package/dist/{InfoMessage-COywXu4O.js.map → InfoMessage-CCEg222m.js.map} +1 -1
  45. package/dist/{Input-BzKvzbzP.js → Input-CF3dxqTC.js} +2 -2
  46. package/dist/{Input-BzKvzbzP.js.map → Input-CF3dxqTC.js.map} +1 -1
  47. package/dist/{InputField-T01uazlI.js → InputField-asFsxHvx.js} +2 -2
  48. package/dist/{InputField-T01uazlI.js.map → InputField-asFsxHvx.js.map} +1 -1
  49. package/dist/{Label-D0ACrYG3.js → Label-52ny6d06.js} +2 -2
  50. package/dist/{Label-D0ACrYG3.js.map → Label-52ny6d06.js.map} +1 -1
  51. package/dist/{Lexical.prod-8zZnpGo4.js → Lexical.prod-DApSVwEN.js} +2 -2
  52. package/dist/Lexical.prod-DApSVwEN.js.map +1 -0
  53. package/dist/{LexicalClipboard.prod-hbxbsROy.js → LexicalClipboard.prod--xxt8Vi4.js} +6 -6
  54. package/dist/LexicalClipboard.prod--xxt8Vi4.js.map +1 -0
  55. package/dist/{LexicalComposerContext.prod-y_BRxu3Z.js → LexicalComposerContext.prod-o3ynMZsi.js} +2 -2
  56. package/dist/LexicalComposerContext.prod-o3ynMZsi.js.map +1 -0
  57. package/dist/{LexicalExtension.prod-v8IpET5E.js → LexicalExtension.prod-efmFsltb.js} +4 -4
  58. package/dist/LexicalExtension.prod-efmFsltb.js.map +1 -0
  59. package/dist/{LexicalLink.prod-BVUv9-sZ.js → LexicalLink.prod-DCBvBDd1.js} +5 -5
  60. package/dist/LexicalLink.prod-DCBvBDd1.js.map +1 -0
  61. package/dist/{LexicalList.prod-CCPDDafy.js → LexicalList.prod-DA6gHLh6.js} +5 -5
  62. package/dist/LexicalList.prod-DA6gHLh6.js.map +1 -0
  63. package/dist/{LexicalTable.prod-D_9Dr3kL.js → LexicalTable.prod-Dw8vTvL0.js} +6 -6
  64. package/dist/LexicalTable.prod-Dw8vTvL0.js.map +1 -0
  65. package/dist/{LexicalUtils.prod-BWhWP8es.js → LexicalUtils.prod-DRNc5TMZ.js} +4 -4
  66. package/dist/LexicalUtils.prod-DRNc5TMZ.js.map +1 -0
  67. package/dist/{LinkContextMenu-CTu2nP2j.js → LinkContextMenu-Jna2w4Ob.js} +2 -2
  68. package/dist/{LinkContextMenu-CTu2nP2j.js.map → LinkContextMenu-Jna2w4Ob.js.map} +1 -1
  69. package/dist/{MenuLink-La_3ANEL.js → MenuLink-sK2_W2zs.js} +2 -2
  70. package/dist/{MenuLink-La_3ANEL.js.map → MenuLink-sK2_W2zs.js.map} +1 -1
  71. package/dist/{ModalDialog-J7xcPcnS.js → ModalDialog-4V70sxK_.js} +3 -3
  72. package/dist/{ModalDialog-J7xcPcnS.js.map → ModalDialog-4V70sxK_.js.map} +1 -1
  73. package/dist/{MultiSelectBox-BmBxa6PH.js → MultiSelectBox-D34qAgzc.js} +2 -2
  74. package/dist/{MultiSelectBox-BmBxa6PH.js.map → MultiSelectBox-D34qAgzc.js.map} +1 -1
  75. package/dist/{MultiSelectItem-6d8kQgFs.js → MultiSelectItem-hx3Y4Lmk.js} +2 -2
  76. package/dist/{MultiSelectItem-6d8kQgFs.js.map → MultiSelectItem-hx3Y4Lmk.js.map} +1 -1
  77. package/dist/{Notification-BAqCenxt.js → Notification-BhqWENfu.js} +2 -2
  78. package/dist/{Notification-BAqCenxt.js.map → Notification-BhqWENfu.js.map} +1 -1
  79. package/dist/{OverlayCloseButton-j-7mC4Zz.js → OverlayCloseButton-Dt6Yec8G.js} +2 -2
  80. package/dist/{OverlayCloseButton-j-7mC4Zz.js.map → OverlayCloseButton-Dt6Yec8G.js.map} +1 -1
  81. package/dist/{OverlayStepBar-Cj_-0waE.js → OverlayStepBar-BiC06Itd.js} +2 -2
  82. package/dist/{OverlayStepBar-Cj_-0waE.js.map → OverlayStepBar-BiC06Itd.js.map} +1 -1
  83. package/dist/{PageOverlay-DqwdG5ve.js → PageOverlay-BR9ypiar.js} +3 -3
  84. package/dist/{PageOverlay-DqwdG5ve.js.map → PageOverlay-BR9ypiar.js.map} +1 -1
  85. package/dist/{PasteHandlerPlugin-Bc6n-G35.js → PasteHandlerPlugin-IsbHaMUu.js} +6 -6
  86. package/dist/{PasteHandlerPlugin-Bc6n-G35.js.map → PasteHandlerPlugin-IsbHaMUu.js.map} +1 -1
  87. package/dist/{Periods-C5cxLlWt.js → Periods-B4ms3N24.js} +2 -2
  88. package/dist/{Periods-C5cxLlWt.js.map → Periods-B4ms3N24.js.map} +1 -1
  89. package/dist/{ProgrammeCard-CAAOSWKa.js → ProgrammeCard-DdCFNx0d.js} +2 -2
  90. package/dist/{ProgrammeCard-CAAOSWKa.js.map → ProgrammeCard-DdCFNx0d.js.map} +1 -1
  91. package/dist/{RadioButton-CKALsbBb.js → RadioButton-DmBpXwIS.js} +2 -2
  92. package/dist/{RadioButton-CKALsbBb.js.map → RadioButton-DmBpXwIS.js.map} +1 -1
  93. package/dist/{RadioGroup-DhnnBRJu.js → RadioGroup-DlQjMmpa.js} +3 -3
  94. package/dist/{RadioGroup-DhnnBRJu.js.map → RadioGroup-DlQjMmpa.js.map} +1 -1
  95. package/dist/{Repeater-Bnoqqz0X.js → Repeater-BAEfOMZI.js} +2 -2
  96. package/dist/{Repeater-Bnoqqz0X.js.map → Repeater-BAEfOMZI.js.map} +1 -1
  97. package/dist/{SectionNotification-BT0Z2edJ.js → SectionNotification-CN-NdGL8.js} +2 -2
  98. package/dist/{SectionNotification-BT0Z2edJ.js.map → SectionNotification-CN-NdGL8.js.map} +1 -1
  99. package/dist/{Slider-dCmT0VM2.js → Slider-Czd2xAGf.js} +2 -2
  100. package/dist/{Slider-dCmT0VM2.js.map → Slider-Czd2xAGf.js.map} +1 -1
  101. package/dist/{SortableProvider-DV6gWmq_.js → SortableProvider-D-6Ttz0h.js} +2 -2
  102. package/dist/{SortableProvider-DV6gWmq_.js.map → SortableProvider-D-6Ttz0h.js.map} +1 -1
  103. package/dist/{StatusBage-CfEIuIPa.js → StatusBage-hJmNPqtk.js} +2 -2
  104. package/dist/{StatusBage-CfEIuIPa.js.map → StatusBage-hJmNPqtk.js.map} +1 -1
  105. package/dist/{StatusPill-CbJV4t-V.js → StatusPill-vdqU92pW.js} +2 -2
  106. package/dist/{StatusPill-CbJV4t-V.js.map → StatusPill-vdqU92pW.js.map} +1 -1
  107. package/dist/{TableCellContextMenu-9V8mnPmU.js → TableCellContextMenu-Dm-UNfH8.js} +3 -3
  108. package/dist/{TableCellContextMenu-9V8mnPmU.js.map → TableCellContextMenu-Dm-UNfH8.js.map} +1 -1
  109. package/dist/{TableCellResizerPlugin-Djym940U.js → TableCellResizerPlugin-OgsG5jSq.js} +6 -6
  110. package/dist/TableCellResizerPlugin-OgsG5jSq.js.map +1 -0
  111. package/dist/{TextArea-GR2ZWwLh.js → TextArea-D_VoyGIO.js} +2 -2
  112. package/dist/{TextArea-GR2ZWwLh.js.map → TextArea-D_VoyGIO.js.map} +1 -1
  113. package/dist/{ToggleSwitch-b54K58vY.js → ToggleSwitch-ev4Jh4y-.js} +2 -2
  114. package/dist/{ToggleSwitch-b54K58vY.js.map → ToggleSwitch-ev4Jh4y-.js.map} +1 -1
  115. package/dist/{VarIndicator-DoMWwSUm.js → VarIndicator-D0cnlcIf.js} +2 -2
  116. package/dist/{VarIndicator-DoMWwSUm.js.map → VarIndicator-D0cnlcIf.js.map} +1 -1
  117. package/dist/{chunk-FON5IJBZ-BBb6rYhU.js → chunk-5WKL7XVT-3IraU-Ja.js} +19 -24
  118. package/dist/chunk-5WKL7XVT-3IraU-Ja.js.map +1 -0
  119. package/dist/{client-DJaPTT6C.js → client-BcEWjSJP.js} +2 -2
  120. package/dist/client-BcEWjSJP.js.map +1 -0
  121. package/dist/{clsx-BWCAbrjV.js → clsx-C67XSbzZ.js} +2 -2
  122. package/dist/clsx-C67XSbzZ.js.map +1 -0
  123. package/dist/components/Accordion/Accordion.js +1 -1
  124. package/dist/components/Accordion/Accordion.stories.js +2 -2
  125. package/dist/components/Accordion/Accordion.test.js +4 -4
  126. package/dist/components/Accordion/index.js +1 -1
  127. package/dist/components/AccordionCard/AccordionCard.js +1 -1
  128. package/dist/components/AccordionCard/AccordionCard.stories.js +2 -2
  129. package/dist/components/AccordionCard/AccordionCard.test.js +4 -4
  130. package/dist/components/AccordionCard/index.js +1 -1
  131. package/dist/components/ActionList/ActionList.js +1 -1
  132. package/dist/components/ActionList/ActionList.stories.js +1 -1
  133. package/dist/components/ActionList/ActionList.test.js +4 -4
  134. package/dist/components/ActionList/index.js +1 -1
  135. package/dist/components/AppStatusBar/AppStatusBar.js +1 -1
  136. package/dist/components/AppStatusBar/AppStatusBar.stories.js +1 -1
  137. package/dist/components/AppStatusBar/AppStatusBar.test.js +3 -3
  138. package/dist/components/AppStatusBar/index.js +1 -1
  139. package/dist/components/Attention/Attention.test.js +2 -2
  140. package/dist/components/Backdrop/Backdrop.stories.js +1 -1
  141. package/dist/components/Backdrop/Backdrop.test.js +2 -2
  142. package/dist/components/ButtonGroup/ButtonGroup.js +1 -1
  143. package/dist/components/ButtonGroup/ButtonGroup.stories.js +2 -2
  144. package/dist/components/ButtonGroup/index.js +1 -1
  145. package/dist/components/Buttons/Button.js +1 -1
  146. package/dist/components/Buttons/Button.stories.js +1 -1
  147. package/dist/components/Buttons/Button.test.js +2 -2
  148. package/dist/components/Buttons/LinkButton.js +1 -1
  149. package/dist/components/Buttons/LinkButton.stories.js +1 -1
  150. package/dist/components/Buttons/LinkButton.test.js +2 -2
  151. package/dist/components/Buttons/MenuButton.js +1 -1
  152. package/dist/components/Buttons/MenuButton.stories.js +1 -1
  153. package/dist/components/Buttons/MenuButton.test.js +2 -2
  154. package/dist/components/Card/Card.js +1 -1
  155. package/dist/components/Card/Card.stories.js +1 -1
  156. package/dist/components/Card/Card.test.js +3 -3
  157. package/dist/components/Card/index.js +1 -1
  158. package/dist/components/Checkbox/Checkbox.stories.js +3 -3
  159. package/dist/components/Checkbox/Checkbox.test.js +3 -3
  160. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.js +1 -1
  161. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.stories.js +3 -3
  162. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.test.js +3 -3
  163. package/dist/components/CheckboxButtonBar/index.js +1 -1
  164. package/dist/components/CheckboxTree/CheckboxTree.js +1 -1
  165. package/dist/components/CheckboxTree/CheckboxTree.stories.js +3 -3
  166. package/dist/components/CheckboxTree/index.js +1 -1
  167. package/dist/components/Chip/Chip.stories.js +1 -1
  168. package/dist/components/ControlsButton/ControlsButton.js +1 -1
  169. package/dist/components/ControlsButton/ControlsButton.stories.js +3 -3
  170. package/dist/components/ControlsButton/index.js +1 -1
  171. package/dist/components/CopyableText/CopyableText.js +1 -1
  172. package/dist/components/CopyableText/CopyableText.stories.js +1 -1
  173. package/dist/components/CopyableText/index.js +1 -1
  174. package/dist/components/DataTable/DataTable.js +1 -1
  175. package/dist/components/DataTable/DataTable.stories.js +1 -1
  176. package/dist/components/DataTable/index.js +1 -1
  177. package/dist/components/Drawer/Drawer.js +1 -1
  178. package/dist/components/Drawer/Drawer.stories.js +3 -3
  179. package/dist/components/Drawer/index.js +1 -1
  180. package/dist/components/EmptyStateDataDisplay/EmptyStateDataDisplay.js +1 -1
  181. package/dist/components/EmptyStateDataDisplay/EmptyStateDataDisplay.stories.js +1 -1
  182. package/dist/components/EmptyStateDataDisplay/index.js +1 -1
  183. package/dist/components/ExpandableInfoPanel/ExpandableInfoPanel.js +1 -1
  184. package/dist/components/ExpandableInfoPanel/ExpandableInfoPanel.stories.js +2 -2
  185. package/dist/components/ExpandableInfoPanel/index.js +1 -1
  186. package/dist/components/FeedbackBar/FeedbackBar.js +1 -1
  187. package/dist/components/FeedbackBar/FeedbackBar.stories.js +3 -3
  188. package/dist/components/FeedbackBar/FeedbackBar.test.js +3 -3
  189. package/dist/components/FeedbackBar/index.js +1 -1
  190. package/dist/components/FeedbackBox/FeedbackBox.js +1 -1
  191. package/dist/components/FeedbackBox/FeedbackBox.stories.js +3 -3
  192. package/dist/components/FeedbackBox/index.js +1 -1
  193. package/dist/components/Fieldset/Fieldset.js +1 -1
  194. package/dist/components/Fieldset/Fieldset.stories.js +5 -5
  195. package/dist/components/Fieldset/index.js +1 -1
  196. package/dist/components/FormField/FormField.js +1 -1
  197. package/dist/components/FormField/FormField.stories.js +4 -4
  198. package/dist/components/FormField/index.js +1 -1
  199. package/dist/components/FormInput/FormInput.js +1 -1
  200. package/dist/components/FormInput/FormInput.stories.js +2 -2
  201. package/dist/components/FormInput/index.js +1 -1
  202. package/dist/components/GridRow/Column/Column.js +1 -1
  203. package/dist/components/GridRow/Column/index.js +1 -1
  204. package/dist/components/GridRow/GridRow.js +2 -2
  205. package/dist/components/IconButton/IconButton.js +1 -1
  206. package/dist/components/IconButton/IconButton.stories.js +2 -2
  207. package/dist/components/IconButton/index.js +1 -1
  208. package/dist/components/InfoMessage/InfoMessage.js +1 -1
  209. package/dist/components/InfoMessage/InfoMessage.stories.js +1 -1
  210. package/dist/components/InfoMessage/index.js +1 -1
  211. package/dist/components/Input/Input.js +1 -1
  212. package/dist/components/Input/Input.stories.js +1 -1
  213. package/dist/components/Input/index.js +1 -1
  214. package/dist/components/InputField/InputField.js +1 -1
  215. package/dist/components/InputField/InputField.stories.js +3 -3
  216. package/dist/components/InputField/index.js +1 -1
  217. package/dist/components/Label/Label.js +1 -1
  218. package/dist/components/Label/Label.stories.js +1 -1
  219. package/dist/components/Label/Label.test.js +3 -3
  220. package/dist/components/Label/index.js +1 -1
  221. package/dist/components/MenuLink/MenuLink.js +1 -1
  222. package/dist/components/MenuLink/MenuLink.stories.js +1 -1
  223. package/dist/components/MenuLink/index.js +1 -1
  224. package/dist/components/MetaDataBar/MetaDataBar.test.js +1 -1
  225. package/dist/components/MetaDataList/MetaDataList.stories.js +1 -1
  226. package/dist/components/ModalDialog/ModalDialog.js +1 -1
  227. package/dist/components/ModalDialog/ModalDialog.stories.js +6 -6
  228. package/dist/components/ModalDialog/index.js +1 -1
  229. package/dist/components/MultiSelect/MultiSelect.js +1 -1
  230. package/dist/components/MultiSelect/MultiSelect.stories.js +3 -3
  231. package/dist/components/MultiSelect/components/MultiSelectHeader.js +1 -1
  232. package/dist/components/MultiSelect/components/MultiSelectItem.js +1 -1
  233. package/dist/components/MultiSelect/index.js +1 -1
  234. package/dist/components/MultiSelectBox/MultiSelectBox.js +1 -1
  235. package/dist/components/MultiSelectBox/MultiSelectBox.stories.js +2 -2
  236. package/dist/components/MultiSelectBox/MultiSelectBox.test.js +3 -3
  237. package/dist/components/MultiSelectBox/index.js +1 -1
  238. package/dist/components/Notification/Notification.js +1 -1
  239. package/dist/components/Notification/Notification.stories.js +2 -2
  240. package/dist/components/Notification/Notification.test.js +3 -3
  241. package/dist/components/Notification/index.js +1 -1
  242. package/dist/components/OverlayCloseButton/OverlayCloseButton.js +1 -1
  243. package/dist/components/OverlayCloseButton/OverlayCloseButton.stories.js +3 -3
  244. package/dist/components/OverlayCloseButton/index.js +1 -1
  245. package/dist/components/OverlayStepBar/OverlayStepBar.js +1 -1
  246. package/dist/components/OverlayStepBar/OverlayStepBar.stories.js +1 -1
  247. package/dist/components/OverlayStepBar/index.js +1 -1
  248. package/dist/components/PageOverlay/PageOverlay.js +1 -1
  249. package/dist/components/PageOverlay/PageOverlay.stories.js +6 -6
  250. package/dist/components/PageOverlay/PageOverlay.stories.js.map +1 -1
  251. package/dist/components/PageOverlay/index.js +1 -1
  252. package/dist/components/PeriodSelector/PeriodSelector.js +1 -1
  253. package/dist/components/PeriodSelector/PeriodSelector.stories.js +2 -2
  254. package/dist/components/PeriodSelector/index.js +1 -1
  255. package/dist/components/Periods/Periods.js +1 -1
  256. package/dist/components/Periods/Periods.stories.js +1 -1
  257. package/dist/components/Periods/index.js +1 -1
  258. package/dist/components/ProgrammeCard/ProgrammeCard.js +1 -1
  259. package/dist/components/ProgrammeCard/ProgrammeCard.stories.js +3 -3
  260. package/dist/components/ProgrammeCard/index.js +1 -1
  261. package/dist/components/RadioButton/RadioButton.js +1 -1
  262. package/dist/components/RadioButton/RadioButton.stories.js +1 -1
  263. package/dist/components/RadioButton/index.js +1 -1
  264. package/dist/components/RadioGroup/RadioGroup.js +1 -1
  265. package/dist/components/RadioGroup/RadioGroup.stories.js +2 -2
  266. package/dist/components/RadioGroup/Radiogroup.test.js +3 -3
  267. package/dist/components/RadioGroup/index.js +1 -1
  268. package/dist/components/RadioTabSelector/RadioTabSelector.js +1 -1
  269. package/dist/components/RadioTabSelector/RadioTabSelector.stories.js +2 -2
  270. package/dist/components/RadioTabSelector/index.js +1 -1
  271. package/dist/components/Repeater/Repeater.js +1 -1
  272. package/dist/components/Repeater/Repeater.stories.js +2 -2
  273. package/dist/components/Repeater/index.js +1 -1
  274. package/dist/components/RteEditor/EditorHeader/EditorHeader.js +1 -1
  275. package/dist/components/RteEditor/EditorHeader/index.js +1 -1
  276. package/dist/components/RteEditor/Plugins/BlockFormatPlugin/BlockFormatPlugin.js +3 -3
  277. package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/AddCatalogueLinkForm/AddCatalogueLinkForm.js +1 -1
  278. package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/AddCatalogueLinkForm/index.js +1 -1
  279. package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/CourseCataloguePlugin.js +5 -5
  280. package/dist/components/RteEditor/Plugins/HistoryPlugin/HistoryPlugin.js +1 -1
  281. package/dist/components/RteEditor/Plugins/HistoryPlugin/index.js +1 -1
  282. package/dist/components/RteEditor/Plugins/LinkPlugin/AddLinkForm/AddLinkFrom.js +1 -1
  283. package/dist/components/RteEditor/Plugins/LinkPlugin/LinkContextMenu/LinkContextMenu.js +1 -1
  284. package/dist/components/RteEditor/Plugins/LinkPlugin/LinkPlugin.js +1 -1
  285. package/dist/components/RteEditor/Plugins/LinkPlugin/helpers.js +1 -1
  286. package/dist/components/RteEditor/Plugins/LinkPlugin/index.js +1 -1
  287. package/dist/components/RteEditor/Plugins/ListPlugin/ListPlugin.js +5 -5
  288. package/dist/components/RteEditor/Plugins/PasteHandlerPlugin/PasteHandlerPlugin.js +1 -1
  289. package/dist/components/RteEditor/Plugins/PasteHandlerPlugin/index.js +1 -1
  290. package/dist/components/RteEditor/Plugins/TableCellResizerPlugin/TableCellResizerPlugin.js +1 -1
  291. package/dist/components/RteEditor/Plugins/TableCellResizerPlugin/index.js +1 -1
  292. package/dist/components/RteEditor/Plugins/TablePlugin/AddTableFrom.js +1 -1
  293. package/dist/components/RteEditor/Plugins/TablePlugin/TableCellContextMenu/TableCellContextMenu.js +1 -1
  294. package/dist/components/RteEditor/Plugins/TablePlugin/TableCellContextMenu/index.js +1 -1
  295. package/dist/components/RteEditor/Plugins/TablePlugin/TablePlugin.js +1 -1
  296. package/dist/components/RteEditor/Plugins/TablePlugin/helpers.js +2 -2
  297. package/dist/components/RteEditor/Plugins/TablePlugin/index.js +2 -2
  298. package/dist/components/RteEditor/Plugins/ToolbarPlugin/ToolbarPlugin.js +1 -1
  299. package/dist/components/RteEditor/Plugins/ToolbarPlugin/index.js +1 -1
  300. package/dist/components/RteEditor/Plugins/index.js +4 -4
  301. package/dist/components/RteEditor/RteEditor.js +1 -1
  302. package/dist/components/RteEditor/RteEditor.stories.js +2 -2
  303. package/dist/components/RteEditor/helpers.js +4 -4
  304. package/dist/components/RteEditor/index.js +1 -1
  305. package/dist/components/RteEditor/nodes/CourseCatalogueNode/CourseCatalogueNode.js +3 -3
  306. package/dist/components/RteEditor/nodes/TableWrapperNode/TableWrapperNode.js +3 -3
  307. package/dist/components/SearchField/SearchField.js +1 -1
  308. package/dist/components/SectionNotification/SectionNotification.js +1 -1
  309. package/dist/components/SectionNotification/SectionNotification.stories.js +1 -1
  310. package/dist/components/SectionNotification/index.js +1 -1
  311. package/dist/components/SelectListbox/SelectListBox.stories.js +1 -1
  312. package/dist/components/SelectListbox/components/SelectButton.js +1 -1
  313. package/dist/components/SelectListbox/components/SelectOption.js +1 -1
  314. package/dist/components/Slider/Slider.js +1 -1
  315. package/dist/components/Slider/Slider.stories.js +1 -1
  316. package/dist/components/Slider/index.js +1 -1
  317. package/dist/components/Sortable/Sortable.js +1 -1
  318. package/dist/components/Sortable/Sortable.stories.js +2 -2
  319. package/dist/components/Sortable/SortableProvider.js +1 -1
  320. package/dist/components/Sortable/components/SortableContainer.js +1 -1
  321. package/dist/components/Sortable/components/SortableItem.js +2 -2
  322. package/dist/components/StatusBadge/StatusBadge.stories.js +1 -1
  323. package/dist/components/StatusBadge/StatusBadge.test.js +3 -3
  324. package/dist/components/StatusBadge/StatusBage.js +1 -1
  325. package/dist/components/StatusBadge/index.js +1 -1
  326. package/dist/components/StatusPill/StatusPill.js +1 -1
  327. package/dist/components/StatusPill/StatusPill.stories.js +2 -2
  328. package/dist/components/StatusPill/index.js +1 -1
  329. package/dist/components/TextArea/TextArea.js +1 -1
  330. package/dist/components/TextArea/TextArea.stories.js +2 -2
  331. package/dist/components/TextArea/TextArea.test.js +4 -4
  332. package/dist/components/TextArea/index.js +1 -1
  333. package/dist/components/ToggleSwitch/ToggleSwitch.js +1 -1
  334. package/dist/components/ToggleSwitch/ToggleSwitch.stories.js +2 -2
  335. package/dist/components/ToggleSwitch/index.js +1 -1
  336. package/dist/components/Tooltip/Tooltip.stories.js +1 -1
  337. package/dist/components/VarIndicator/VarIndicator.js +1 -1
  338. package/dist/components/VarIndicator/VarIndicator.stories.js +2 -2
  339. package/dist/components/VarIndicator/VarIndicator.test.js +4 -4
  340. package/dist/components/VarIndicator/index.js +1 -1
  341. package/dist/components/WeekSelector/components/WeekSelectorOption.js +1 -1
  342. package/dist/components/index.js +42 -42
  343. package/dist/{components-D6_Sx8Hs.js → components-DHB1OMJ8.js} +38 -38
  344. package/dist/components-DHB1OMJ8.js.map +1 -0
  345. package/dist/{lib-Do6N-CJR.js → dist-C6Ar8a59.js} +2799 -714
  346. package/dist/dist-C6Ar8a59.js.map +1 -0
  347. package/dist/{esm-BJhEQquH.js → esm-B6Pg-v2v.js} +89 -89
  348. package/dist/esm-B6Pg-v2v.js.map +1 -0
  349. package/dist/{helpers-z8cqBNoz.js → helpers-C3IJbMVf.js} +4 -4
  350. package/dist/helpers-C3IJbMVf.js.map +1 -0
  351. package/dist/index.js +42 -42
  352. package/dist/{react-18-BAudFSEM.js → react-18-DbbN8Pdb.js} +3 -3
  353. package/dist/react-18-DbbN8Pdb.js.map +1 -0
  354. package/dist/react.esm-56DGmlLk.js +8884 -0
  355. package/dist/react.esm-56DGmlLk.js.map +1 -0
  356. package/dist/setupTests.js +6 -1196
  357. package/dist/setupTests.js.map +1 -1
  358. package/dist/storyComponents/Container/Container.js +1 -1
  359. package/dist/storyComponents/Container/index.js +1 -1
  360. package/dist/storybook__react.d.js +17 -17
  361. package/dist/storybook__react.d.js.map +1 -1
  362. package/dist/{test-Bd7kXF_B.js → test-WxLxsxwA.js} +56 -57
  363. package/dist/test-WxLxsxwA.js.map +1 -0
  364. package/dist/{test-utils-DcI4ZXle.js → test-utils-CMrZ33U0.js} +2 -2
  365. package/dist/test-utils-CMrZ33U0.js.map +1 -0
  366. package/package.json +30 -17
  367. package/dist/Lexical.prod-8zZnpGo4.js.map +0 -1
  368. package/dist/LexicalClipboard.prod-hbxbsROy.js.map +0 -1
  369. package/dist/LexicalComposerContext.prod-y_BRxu3Z.js.map +0 -1
  370. package/dist/LexicalExtension.prod-v8IpET5E.js.map +0 -1
  371. package/dist/LexicalLink.prod-BVUv9-sZ.js.map +0 -1
  372. package/dist/LexicalList.prod-CCPDDafy.js.map +0 -1
  373. package/dist/LexicalTable.prod-D_9Dr3kL.js.map +0 -1
  374. package/dist/LexicalUtils.prod-BWhWP8es.js.map +0 -1
  375. package/dist/TableCellResizerPlugin-Djym940U.js.map +0 -1
  376. package/dist/chunk-FON5IJBZ-BBb6rYhU.js.map +0 -1
  377. package/dist/client-DJaPTT6C.js.map +0 -1
  378. package/dist/clsx-BWCAbrjV.js.map +0 -1
  379. package/dist/components-D6_Sx8Hs.js.map +0 -1
  380. package/dist/dist-Dlg0QxSO.js +0 -2225
  381. package/dist/dist-Dlg0QxSO.js.map +0 -1
  382. package/dist/esm-BJhEQquH.js.map +0 -1
  383. package/dist/helpers-z8cqBNoz.js.map +0 -1
  384. package/dist/lib-Do6N-CJR.js.map +0 -1
  385. package/dist/react-18-BAudFSEM.js.map +0 -1
  386. package/dist/react.esm-GvSawg5E.js +0 -3297
  387. package/dist/react.esm-GvSawg5E.js.map +0 -1
  388. package/dist/test-Bd7kXF_B.js.map +0 -1
  389. package/dist/test-utils-DcI4ZXle.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components-DHB1OMJ8.js","names":["m","c","l","p","a","f","d","e","o","n","i","r","s","t","r","e","s","t","f","c","e","n","r","i","g","i","a","r","n","t","o","e","C","mt","g","p","ft","vt","Ct","f","q","Q","l","y","x","D","N","w","T","E","F","O","P","A","d","S","M","I","b","K","k","J","m","L","W","R","z","gt","X","a","c","u","Y","B","pt","h","G","V","j","H","U","Z","$","e","et","n","r","o","nt","rt","ot","it","i","st","at","ct","ut","t","lt","dt","v","s","n","i","w","c","a","d","l","u","v","t","o","p","r","x","h","E","f","m","b","e","m","t","i","r","n","o","l","b","a","s","E","e","d","c","u","l","m","y","C","d","n","o","r","o","i","e","l","i","s","e","o","n","r","t","o","i","t","e","r","r","i","o","e","k","x","v","S","o","d","p","h","u","c","f","i","e","a","t","s","r","t","e","o","r","r","l","t","u","e","c","a","n","s","i","t"],"sources":["../src/components/CheckboxTree/CheckboxTree.module.css","../src/components/CheckboxTree/CheckboxTree.tsx","../src/components/FormInput/FormInput.module.css","../src/components/FormInput/FormInput.tsx","../src/components/MultiSelect/components/MultiSelectHeader.tsx","../src/components/MultiSelect/MultiSelect.tsx","../src/components/PeriodSelector/PeriodSelector.module.css","../src/components/PeriodSelector/PeriodSelector.tsx","../src/components/RadioTabSelector/RadioTabSelector.module.css","../src/components/RadioTabSelector/RadioTabSelector.tsx","../node_modules/.pnpm/@lexical+react@0.44.0_react-dom@19.2.7_react@19.2.7__react@19.2.7_yjs@13.6.31/node_modules/@lexical/react/LexicalComposer.prod.mjs","../node_modules/.pnpm/@lexical+react@0.44.0_react-dom@19.2.7_react@19.2.7__react@19.2.7_yjs@13.6.31/node_modules/@lexical/react/LexicalReactProviderExtension.prod.mjs","../node_modules/.pnpm/@lexical+text@0.44.0/node_modules/@lexical/text/LexicalText.prod.mjs","../node_modules/.pnpm/@lexical+dragon@0.44.0/node_modules/@lexical/dragon/LexicalDragon.prod.mjs","../node_modules/.pnpm/@lexical+rich-text@0.44.0/node_modules/@lexical/rich-text/LexicalRichText.prod.mjs","../node_modules/.pnpm/@lexical+react@0.44.0_react-dom@19.2.7_react@19.2.7__react@19.2.7_yjs@13.6.31/node_modules/@lexical/react/LexicalRichTextPlugin.prod.mjs","../node_modules/.pnpm/@lexical+react@0.44.0_react-dom@19.2.7_react@19.2.7__react@19.2.7_yjs@13.6.31/node_modules/@lexical/react/LexicalContentEditable.prod.mjs","../node_modules/.pnpm/react-error-boundary@6.1.2_react@19.2.7/node_modules/react-error-boundary/dist/react-error-boundary.js","../node_modules/.pnpm/@lexical+react@0.44.0_react-dom@19.2.7_react@19.2.7__react@19.2.7_yjs@13.6.31/node_modules/@lexical/react/LexicalErrorBoundary.prod.mjs","../node_modules/.pnpm/@lexical+react@0.44.0_react-dom@19.2.7_react@19.2.7__react@19.2.7_yjs@13.6.31/node_modules/@lexical/react/LexicalOnChangePlugin.prod.mjs","../node_modules/.pnpm/@lexical+react@0.44.0_react-dom@19.2.7_react@19.2.7__react@19.2.7_yjs@13.6.31/node_modules/@lexical/react/LexicalListPlugin.prod.mjs","../node_modules/.pnpm/@lexical+react@0.44.0_react-dom@19.2.7_react@19.2.7__react@19.2.7_yjs@13.6.31/node_modules/@lexical/react/LexicalLinkPlugin.prod.mjs","../node_modules/.pnpm/@lexical+react@0.44.0_react-dom@19.2.7_react@19.2.7__react@19.2.7_yjs@13.6.31/node_modules/@lexical/react/LexicalClickableLinkPlugin.prod.mjs","../node_modules/.pnpm/@lexical+history@0.44.0/node_modules/@lexical/history/LexicalHistory.prod.mjs","../node_modules/.pnpm/@lexical+react@0.44.0_react-dom@19.2.7_react@19.2.7__react@19.2.7_yjs@13.6.31/node_modules/@lexical/react/LexicalHistoryPlugin.prod.mjs","../node_modules/.pnpm/@lexical+react@0.44.0_react-dom@19.2.7_react@19.2.7__react@19.2.7_yjs@13.6.31/node_modules/@lexical/react/LexicalTablePlugin.prod.mjs","../node_modules/.pnpm/@lexical+react@0.44.0_react-dom@19.2.7_react@19.2.7__react@19.2.7_yjs@13.6.31/node_modules/@lexical/react/LexicalEditorRefPlugin.prod.mjs","../src/components/RteEditor/Plugins/ToolbarPlugin/ToolbarPlugin.tsx","../src/components/RteEditor/Plugins/LinkPlugin/AddLinkForm/AddLinkForm.module.css","../src/components/RteEditor/Plugins/LinkPlugin/AddLinkForm/AddLinkFrom.tsx","../src/components/RteEditor/Plugins/LinkPlugin/LinkPlugin.tsx","../src/components/RteEditor/Plugins/HistoryPlugin/HistoryPlugin.tsx","../src/components/RteEditor/Plugins/TablePlugin/AddTableFrom.module.css","../src/components/RteEditor/Plugins/TablePlugin/AddTableFrom.tsx","../src/components/RteEditor/Plugins/TablePlugin/TablePlugin.tsx","../src/components/RteEditor/EditorHeader/EditorHeader.module.css","../src/components/RteEditor/EditorHeader/EditorHeader.tsx","../src/components/RteEditor/RteEditor.tsx"],"sourcesContent":[".checkbox-tree__header {\n display: block;\n font-weight: var(--semibold);\n margin-bottom: 0.25rem;\n text-align: left;\n}\n\n.checkbox-tree__branch {\n list-style: none;\n user-select: none;\n}\n\n.checkbox-tree__branch[aria-expanded=\"false\"] {\n margin-bottom: 0.5rem;\n}\n\n.checkbox-tree__branch input[type=\"checkbox\"]:disabled + label {\n color: var(--color-grey-500);\n}\n\n.checkbox-tree__branch--icon {\n pointer-events: none;\n transform: rotate(0deg);\n transition: transform 300ms ease-out;\n}\n\n.checkbox-tree__branch--icon--expanded {\n transform: rotate(90deg);\n transition: transform 300ms ease-in;\n}\n\n.checkbox-tree__branch--formfield {\n align-items: center;\n display: flex;\n flex-direction: row;\n gap: 0.5rem;\n}\n\n.checkbox-tree__leaves {\n display: none;\n flex-direction: column;\n gap: 0.5rem;\n list-style: none;\n margin: 0.5rem 0 0.5rem 1rem;\n user-select: none;\n}\n\n.checkbox-tree__leaves--expanded {\n display: flex;\n}\n\n.checkbox-tree__leaf {\n align-items: center;\n display: flex;\n flex-direction: row;\n gap: 0 0.5rem;\n margin-left: 1.5rem;\n user-select: none;\n}\n\n.checkbox-tree__leaf input[type=\"checkbox\"]:disabled + label {\n color: var(--color-grey-500);\n}\n","import { createRef, useEffect, useRef, useState } from 'react';\nimport { clsx } from 'clsx';\n\nimport type { MouseEventHandler, RefObject } from 'react';\n\nimport styles from './CheckboxTree.module.css';\n\nimport { Button, Checkbox, FormField, Icon, Label } from 'components';\nimport { useResponsive } from 'components/hooks/useResponsive';\n\n// TODO: Currently the checkbox tree shows odd behavior when a disabled checkbox is checked.\n// When deselecting the parent checkbox, the disabled checkbox is deselected, and will never\n// be checked again. We'll leave this for now, until we run into a real world\n// example where this is necessary.\n\nexport type CheckboxLeaf = {\n itemName: string;\n itemValue: string;\n disabled?: boolean;\n};\n\nexport type CheckboxBranch = {\n itemName: string;\n children: CheckboxLeaf[];\n};\n\nexport interface CheckboxTreeProps {\n /** The title of the component. */\n title?: string;\n /** Array of checkbox groups with a label and array of children (itemName, itemValue and disabled boolean). */\n checkboxTree: CheckboxBranch[];\n /** Array of selected values. */\n selectedValues?: string[];\n /** `true` if the font-weight needs to be unset; otherwise, `false`. The default is `false`. */\n noLabelFrontWeight?: boolean;\n /** Returns array of selected values. */\n onChange?: (value: string[]) => void;\n}\n\n/** Represents a component to render a tree of checkboxes. */\nexport const CheckboxTree = ({\n title,\n checkboxTree,\n selectedValues,\n noLabelFrontWeight = false,\n onChange,\n}: CheckboxTreeProps) => {\n const checkboxRefs = useRef<Record<string, RefObject<HTMLInputElement | null>>>({});\n const [values, setValues] = useState<string[]>([]);\n const { lessThan } = useResponsive();\n\n const valuesAreEqual = (values1: string[], values2: string[]): boolean => {\n if (values1.length !== values2.length) return false;\n\n const countElements = (list: string[]) =>\n list.reduce((acc: Record<string, number>, val) => {\n acc[val] = (acc[val] || 0) + 1;\n return acc;\n }, {});\n\n const numberOfValues1 = countElements(values1);\n const numberOfValues2 = countElements(values2);\n\n return !Object.keys(numberOfValues1).some((key) => numberOfValues1[key] !== numberOfValues2[key]);\n };\n\n const createRefForKey = (key: string) => {\n if (!checkboxRefs.current[key]) {\n checkboxRefs.current[key] = createRef();\n }\n return checkboxRefs.current[key];\n };\n\n const setValue = () => {\n const newValues: string[] = [];\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n const chkBox = checkboxRefs.current[key].current;\n if (chkBox && chkBox.name.indexOf('Group') === -1 && chkBox.checked) {\n newValues.push(chkBox.value);\n }\n });\n setValues(newValues);\n if (onChange) onChange(newValues);\n };\n\n const setCheckboxesState = (checkGroupName: string) => {\n if (checkGroupName === '') return;\n\n const groupStatus: boolean[] = [];\n\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n const chkBox = checkboxRefs.current[key].current;\n if (!chkBox) return;\n if (chkBox?.getAttribute('data-groupname') === checkGroupName) {\n groupStatus.push(chkBox.checked);\n }\n });\n\n const every = groupStatus.every(Boolean);\n const some = groupStatus.some(Boolean);\n\n if (checkboxRefs.current[checkGroupName].current) {\n checkboxRefs.current[checkGroupName].current.checked = every;\n checkboxRefs.current[checkGroupName].current.indeterminate = !every && every !== some;\n checkboxRefs.current[checkGroupName].current.checked = every && every === some;\n }\n };\n\n const setExpandedAttributes = (trigger: HTMLButtonElement, container: Element | null) => {\n const children = container?.querySelector('[data-ul]');\n\n (trigger.childNodes[0] as Element).classList.toggle(styles['checkbox-tree__branch--icon--expanded']);\n container\n ?.closest('[data-li]')\n ?.setAttribute(\n 'aria-expanded',\n container?.closest('[data-li]')?.getAttribute('aria-expanded') === 'false' ? 'true' : 'false'\n );\n\n if (children) {\n children.classList.toggle(styles['checkbox-tree__leaves--expanded']);\n }\n };\n\n const handleChange: MouseEventHandler<HTMLDivElement> = (event) => {\n const check = event.target as HTMLInputElement;\n\n if (check.type !== 'checkbox' && check.type !== 'button') return;\n\n if (\n lessThan.md &&\n check.name.indexOf('Group') !== -1 &&\n check.parentNode &&\n (check.parentNode.parentNode as HTMLElement).getAttribute('aria-expanded') === 'false'\n ) {\n event.preventDefault();\n setExpandedAttributes(check.parentNode as HTMLButtonElement, check.parentNode.parentNode as HTMLElement);\n return;\n }\n\n if (check.name.indexOf('Group') !== -1) {\n const childPrefix = check.name;\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n if (key.indexOf(`${childPrefix}_`) !== -1) {\n const chkBox = checkboxRefs.current[key].current;\n const parentCheckbox = checkboxRefs.current[childPrefix].current;\n if (!chkBox || !parentCheckbox) return;\n chkBox.checked = parentCheckbox.checked ? true : false;\n }\n });\n setCheckboxesState(childPrefix);\n setValue();\n return;\n }\n setCheckboxesState(check.getAttribute('data-groupname') || '');\n setValue();\n };\n\n const handleExpanded: MouseEventHandler<HTMLButtonElement> = (event) => {\n const target = event.target as HTMLButtonElement;\n const parent = target.closest('[data-li]');\n setExpandedAttributes(target, parent);\n };\n\n useEffect(() => {\n if (selectedValues && !valuesAreEqual(selectedValues, values)) {\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n const chkBox = checkboxRefs.current[key].current;\n if (!chkBox) return;\n if (selectedValues?.includes(chkBox.value)) {\n chkBox.checked = true;\n } else {\n chkBox.checked = false;\n }\n if (chkBox.name.indexOf('Group') !== -1) {\n setValues(selectedValues || []);\n }\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedValues]);\n\n useEffect(() => {\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n const chkBox = checkboxRefs.current[key].current;\n if (!chkBox) return;\n if (chkBox.name.indexOf('Group') !== -1) {\n setCheckboxesState(chkBox.name);\n }\n });\n }, [values]);\n\n return (\n <div>\n {title && <span className={styles['checkbox-tree__header']}>{title}</span>}\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events */}\n <div onClick={handleChange} data-ul role=\"tree\" tabIndex={0}>\n {checkboxTree.map(({ itemName, children }, index) => (\n <div\n key={itemName}\n className={styles['checkbox-tree__branch']}\n data-li\n aria-expanded={lessThan.md ? 'false' : 'true'}\n >\n <FormField inline className={styles['checkbox-tree__branch--formfield']}>\n <Button variant=\"blank\" onClick={handleExpanded}>\n <Icon\n name=\"CheveronRight\"\n size={16}\n className={clsx(styles['checkbox-tree__branch--icon'], {\n [styles['checkbox-tree__branch--icon--expanded']]: !lessThan.md,\n })}\n />\n </Button>\n <Checkbox\n id={itemName}\n name={`Group${index}`}\n disabled={children.every((checkbox) => checkbox.disabled)}\n ref={createRefForKey(`Group${index}`)}\n />\n <Label htmlFor={itemName} noFontWeight={noLabelFrontWeight}>\n {itemName}\n </Label>\n </FormField>\n <div\n className={clsx(styles['checkbox-tree__leaves'], {\n [styles['checkbox-tree__leaves--expanded']]: !lessThan.md,\n })}\n data-ul\n >\n {children.map(({ itemName, itemValue, disabled }) => (\n <div key={itemName} className={styles['checkbox-tree__leaf']} data-li>\n <FormField inline className={styles['checkbox-tree__branch--formfield']}>\n <Checkbox\n id={itemName}\n name={itemName}\n value={itemValue}\n disabled={disabled}\n data-groupname={`Group${index}`}\n ref={createRefForKey(`Group${index}_${itemName}`)}\n />\n <Label htmlFor={itemName} noFontWeight={noLabelFrontWeight}>\n {itemName}\n </Label>\n </FormField>\n </div>\n ))}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n};\n",".form-input__container {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n}\n\n.form-input__container--label-left {\n align-items: flex-start;\n flex-direction: row;\n gap: 1rem;\n line-height: 2.5rem;\n}\n\n.form-input__container--label-left > label::after {\n line-height: 3.6;\n}\n\n.form-input__container--label-top {\n align-items: flex-start;\n flex-direction: column;\n gap: 0.5rem;\n line-height: normal;\n}\n\n.form-input__input-feedback-container {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: 0.5rem;\n line-height: 1.5;\n position: relative;\n width: 100%;\n}\n\n.form-input__input-container {\n display: flex;\n flex: 1;\n}\n\n.form-input__input {\n appearance: none;\n background-color: transparent;\n border: 1px solid;\n border-radius: 0.5rem;\n color: var(--color-uva-black);\n flex: 1;\n font-family: inherit;\n font-size: inherit;\n height: 2.75rem;\n min-height: 2.5rem;\n padding: 0 1rem;\n text-align: inherit;\n}\n\n.form-input__input::-webkit-outer-spin-button,\n.form-input__input::-webkit-inner-spin-button {\n margin: 0;\n}\n\n.form-input__input.not-valid {\n border-color: var(--color-red-600);\n}\n","import { clsx } from 'clsx';\n\nimport type { ReactNode } from 'react';\n\nimport styles from './FormInput.module.css';\n\nimport { FeedbackBox, Label } from 'components';\n\nexport interface FormInputProps {\n /** The id of the input element. */\n id: string;\n /** label text if empthy the label is not renderd */\n label: string;\n /** label position `top` or `left`. The default is `top`. */\n labelPosition?: 'top' | 'left';\n /** The type of the input element. */\n type?: 'text' | 'password' | 'email' | 'number';\n /** Shows red * */\n required?: boolean;\n /** `true` to color border red to show not valid; otherwise, `false`. */\n notValid?: boolean;\n /** error text to display if set */\n notValidatedText?: string;\n /** Returns array of selected values as number */\n onChange?: (value: string) => void;\n /** Sets max length for the standard input */\n maxLength?: number;\n /** Determines if the container wrapper is rendered. */\n noContainer?: boolean;\n /** Optional custom input that will replace the default input */\n customInput?: ReactNode;\n}\n\nexport const FormInput = ({\n id,\n label,\n labelPosition = 'top',\n type = 'text',\n required = false,\n notValid = false,\n notValidatedText = '',\n onChange,\n maxLength,\n noContainer = false,\n customInput,\n}: FormInputProps) => {\n const blockInvalidChar = (event: React.KeyboardEvent<HTMLInputElement>) =>\n ['e', 'E', '+', '-'].includes(event.key) && event.preventDefault();\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (typeof onChange === 'function') {\n onChange(event.target.value);\n }\n };\n\n const componentContent = (\n <>\n {label && (\n <Label htmlFor={id} required={required} alignRight>\n {label}\n </Label>\n )}\n\n <div className={styles['form-input__input-feedback-container']}>\n {customInput ? (\n customInput\n ) : (\n <div className={styles['form-input__input-container']}>\n <input\n id={id}\n type={type}\n {...(type === 'number' && { onKeyDown: blockInvalidChar })}\n onChange={handleChange}\n className={clsx(styles['form-input__input'], {\n [styles['not-valid']]: notValid,\n })}\n {...(maxLength ? { maxLength } : {})}\n />\n </div>\n )}\n {notValidatedText !== '' && <FeedbackBox level=\"error\" feedback={notValidatedText} />}\n </div>\n </>\n );\n\n return noContainer ? (\n componentContent\n ) : (\n <div className={clsx(styles['form-input__container'], styles[`form-input__container--label-${labelPosition}`])}>\n {componentContent}\n </div>\n );\n};\n","import styles from 'components/MultiSelect/MultiSelect.module.css';\nimport { Label } from 'components/Label';\nimport { Button } from 'components';\n\nexport interface MultiSelectHeaderProps {\n label: string;\n clearTrigger?: string;\n onClear?: () => void;\n}\n\nexport function MultiSelectHeader({ label, clearTrigger, onClear }: MultiSelectHeaderProps) {\n return (\n <header className={styles['multi-select__header']}>\n <Label htmlFor=\"multi-select-list\">{label}</Label>\n {clearTrigger && (\n <Button variant={'blank'} onClick={onClear}>\n {clearTrigger}\n </Button>\n )}\n </header>\n );\n}\n","import { clsx } from 'clsx';\n\nimport type { PropsWithChildren, ReactNode } from 'react';\n\nimport styles from './MultiSelect.module.css';\n\nimport { MultiSelectItem } from 'components/MultiSelect/components/MultiSelectItem';\nimport { MultiSelectHeader } from 'components/MultiSelect/components/MultiSelectHeader';\n\nexport interface MultiSelectProps {\n /** `true` if the container should scroll on overflow; otherwise, `false` to resize the container to its contents. The default is `true`. */\n scrollable?: boolean;\n /** `true` to disable the border around the container; otherwise, `false`. The default is `false`. */\n noBorder?: boolean;\n /** The header contents. */\n header?: ReactNode;\n}\n\n/** Represents a component to list a number of checkboxes. */\nexport const MultiSelect = ({ scrollable = true, noBorder, header, children }: PropsWithChildren<MultiSelectProps>) => (\n <>\n {header}\n <div\n className={clsx(styles['multi-select'], {\n [styles['multi-select--no-border']]: noBorder,\n })}\n >\n <ul\n className={clsx(styles['multi-select__list'], {\n [styles['multi-select__list--scrollable']]: scrollable,\n })}\n id=\"multi-select-list\"\n >\n {children}\n </ul>\n </div>\n </>\n);\n\nMultiSelect.MultiSelectHeader = MultiSelectHeader;\nMultiSelect.MultiSelectItem = MultiSelectItem;\n",".period-selector__container {\n display: flex;\n flex-wrap: wrap;\n}\n\n.period-selector__container--label-left {\n flex-direction: row;\n gap: 1rem;\n align-items: baseline;\n}\n\n.period-selector__container--label-top {\n align-items: flex-start;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.period-selector__selector-container {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.period-selector__selector-row {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n}\n","import { clsx } from 'clsx';\nimport { useEffect, useRef, useState } from 'react';\n\nimport styles from './PeriodSelector.module.css';\n\nimport { Label, CheckboxButtonBar, FeedbackBox } from 'components';\n\nexport interface PeriodSelectorProps {\n /** Indicates how many periods are shown. */\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers\n maxPeriods: 6 | 7;\n /** array of period values [3, 5 ...] */\n defaultValues?: number[];\n label?: string;\n labelPosition?: 'top' | 'left';\n /** Shows red * */\n required?: boolean;\n /** error text to display if set */\n notValidatedText?: string;\n /** Returns array of selected values as number */\n onChange: (values: number[]) => void;\n}\n\nconst SEMESTER_1 = 0;\nconst SEMESTER_2 = 1;\nconst SEMESTER_3 = 2;\n\nconst PERIODS_PER_SEMESTER = 3;\nconst MAX_PERIODS = 7;\n\nconst chunkPeriods = (array: number[]): number[][] => {\n const result: number[][] = [];\n for (let count = 0; count < array.length; count += PERIODS_PER_SEMESTER) {\n result.push(array.slice(count, count + PERIODS_PER_SEMESTER));\n }\n return result;\n};\n\n/** Checkbox group for selecting periods */\nexport const PeriodSelector = ({\n maxPeriods = MAX_PERIODS,\n defaultValues,\n label,\n labelPosition = 'top',\n required = false,\n notValidatedText = '',\n onChange,\n}: PeriodSelectorProps) => {\n const maxPeriodsList = Array.from({ length: maxPeriods }, (_, index) => index + 1);\n const chunkedPeriods = chunkPeriods(maxPeriodsList);\n\n const checkboxItems = chunkedPeriods.map((periods, _) => {\n return periods.map((period) => ({\n label: period.toString(),\n value: period.toString(),\n }));\n });\n\n const returnValues = useRef<number[][]>(\n chunkedPeriods.map((semester) =>\n semester.reduce((periods, period) => {\n if (defaultValues?.includes(period)) periods.push(period);\n return periods;\n }, [] as number[])\n )\n );\n const [disableSemesters, setDisableSemesters] = useState<number[]>([]);\n\n const disableGroups = (selects: number[][]) => {\n if (selects[SEMESTER_1].length !== 0 || selects[SEMESTER_2].length !== 0) return [SEMESTER_3];\n if (selects[SEMESTER_3].length !== 0) return [SEMESTER_1, SEMESTER_2];\n return [];\n };\n\n const handleChange = (values: string[], index: number) => {\n returnValues.current[index] = values.map((num) => Number(num));\n setDisableSemesters(disableGroups(returnValues.current));\n onChange([...returnValues.current.flat()].sort());\n };\n\n useEffect(() => {\n setDisableSemesters(disableGroups(returnValues.current));\n }, []);\n\n return (\n <div\n className={clsx(\n styles['period-selector__container'],\n styles[`period-selector__container--label-${labelPosition}`]\n )}\n >\n {label && (\n <Label htmlFor=\"\" required={required}>\n {label}\n </Label>\n )}\n <div className={styles['period-selector__selector-container']}>\n <div className={styles['period-selector__selector-row']}>\n {checkboxItems.map((checkboxes, semester) => (\n <CheckboxButtonBar\n key={`group_${semester}`}\n checkboxes={checkboxes}\n defaultValues={returnValues.current[semester].map((num) => num.toString())}\n disableGroup={disableSemesters.includes(semester)}\n required={required}\n onSetValues={(event) => handleChange(event, semester)}\n notValid={notValidatedText !== ''}\n />\n ))}\n </div>\n {notValidatedText !== '' && <FeedbackBox level=\"error\" feedback={notValidatedText} />}\n </div>\n </div>\n );\n};\n",".radio-tab-selector-button-bar__container {\n display: flex;\n flex-wrap: wrap;\n}\n\n.radio-tab-selector-button-bar__container--label-left {\n align-items: baseline;\n flex-direction: row;\n gap: 1rem;\n}\n\n.radio-tab-selector-button-bar__container--label-top {\n align-items: flex-start;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.radio-tab-selector-button-bar__row-container {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.radio-tab-selector-button-bar__row {\n align-items: center;\n background-color: var(--color-uva-white);\n border: 1px solid var(--color-grey-700);\n border-radius: 0.5rem;\n display: flex;\n flex-wrap: nowrap;\n gap: 0.25rem;\n padding: 0.25rem;\n}\n\n.radio-tab-selector-button-bar__row--not-validated {\n border-color: var(--color-red-600);\n}\n","import { clsx } from 'clsx';\r\nimport { useState } from 'react';\r\n\r\nimport type { ChangeEvent } from 'react';\r\nimport type { IconProps } from 'components';\r\n\r\nimport styles from './RadioTabSelector.module.css';\r\n\r\nimport { ControlsButton, FeedbackBox, Label } from 'components';\r\n\r\ntype ButtonProps = {\r\n label: string;\r\n value: string;\r\n iconName?: IconProps['name'];\r\n disabled?: boolean;\r\n};\r\n\r\nexport interface RadioTabSelectorProps {\r\n /** array with button objects with label, value and optional iconName or disabled-state */\r\n buttons: ButtonProps[];\r\n /** name of the radiogroup */\r\n radioGroupName: string;\r\n /** innitial value */\r\n defaultValue?: string;\r\n /** label takst */\r\n label?: string;\r\n /** 'top' | 'left' */\r\n labelPosition?: 'top' | 'left';\r\n /** show red star */\r\n required?: boolean;\r\n /** error text to display if set */\r\n notValidatedText?: string;\r\n /** The callback function that is invoked when the radio tab selector changes value. */\r\n onSetValue: (value: string | null) => void;\r\n}\r\n\r\nexport const RadioTabSelector = ({\r\n buttons,\r\n radioGroupName,\r\n defaultValue,\r\n label,\r\n labelPosition = 'top',\r\n required = false,\r\n notValidatedText = '',\r\n onSetValue,\r\n}: RadioTabSelectorProps) => {\r\n const [currentValue, setCurrentValue] = useState<string | null>(defaultValue || null);\r\n\r\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\r\n setCurrentValue(event.target.value);\r\n onSetValue(event.target.value);\r\n };\r\n\r\n return (\r\n <div\r\n className={clsx(\r\n styles['radio-tab-selector-button-bar__container'],\r\n styles[`radio-tab-selector-button-bar__container--label-${labelPosition}`]\r\n )}\r\n >\r\n {label && (\r\n <Label htmlFor=\"\" required={required}>\r\n {label}\r\n </Label>\r\n )}\r\n <div className={styles['radio-tab-selector-button-bar__row-container']}>\r\n <div\r\n className={clsx(styles['radio-tab-selector-button-bar__row'], {\r\n [styles['radio-tab-selector-button-bar__row--not-validated']]: notValidatedText,\r\n })}\r\n >\r\n {buttons.map(({ label, value, iconName, disabled }) => (\r\n <ControlsButton\r\n type=\"radio\"\r\n name={radioGroupName}\r\n key={`${value}`}\r\n label={label}\r\n value={value}\r\n iconName={iconName}\r\n checked={currentValue === value}\r\n disabled={disabled}\r\n onSetValue={handleChange}\r\n />\r\n ))}\r\n </div>\r\n {notValidatedText !== '' && <FeedbackBox level=\"error\" feedback={notValidatedText} />}\r\n </div>\r\n </div>\r\n );\r\n};\r\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{createLexicalComposerContext as e,LexicalComposerContext as t}from\"@lexical/react/LexicalComposerContext\";import{createEditor as o,$getRoot as n,$createParagraphNode as i,$getSelection as r,HISTORY_MERGE_TAG as a}from\"lexical\";import{useLayoutEffect as c,useEffect as l,useMemo as d}from\"react\";import{jsx as s}from\"react/jsx-runtime\";const m=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,u=m?c:l,p={tag:a};function f({initialConfig:a,children:c}){const l=d(()=>{const{theme:t,namespace:c,nodes:l,onError:d,editorState:s,html:u}=a,f=e(null,t),E=o({editable:a.editable,html:u,namespace:c,nodes:l,onError:e=>d(e,E),theme:t});return function(e,t){if(null===t)return;if(void 0===t)e.update(()=>{const t=n();if(t.isEmpty()){const o=i();t.append(o);const n=m?document.activeElement:null;(null!==r()||null!==n&&n===e.getRootElement())&&o.select()}},p);else if(null!==t)switch(typeof t){case\"string\":{const o=e.parseEditorState(t);e.setEditorState(o,p);break}case\"object\":e.setEditorState(t,p);break;case\"function\":e.update(()=>{n().isEmpty()&&t(e)},p)}}(E,s),[E,f]},[]);return u(()=>{const e=a.editable,[t]=l;t.setEditable(void 0===e||e)},[]),s(t.Provider,{value:l,children:c})}export{f as LexicalComposer};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{defineExtension as e}from\"lexical\";const r=e({name:\"@lexical/react/ReactProvider\"});export{r as ReactProviderExtension};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{$getRoot as t,$isDecoratorNode as e,$isElementNode as n,$isParagraphNode as r,$isTextNode as i,TextNode as o,$createTextNode as l}from\"lexical\";function s(){return t().getTextContent()}function f(t,e=!0){if(t)return!1;let n=s();return e&&(n=n.trim()),\"\"===n}function u(t,e){return()=>f(t,e)}function c(o){if(!f(o,!1))return!1;const l=t().getChildren(),s=l.length;if(s>1)return!1;for(let t=0;t<s;t++){const o=l[t];if(e(o))return!1;if(n(o)){if(!r(o))return!1;if(0!==o.__indent)return!1;const e=o.getChildren(),n=e.length;for(let r=0;r<n;r++){const n=e[t];if(!i(n))return!1}}}return!0}function g(t){return()=>c(t)}function a(t,e){let r=t.getFirstChild(),o=0;t:for(;null!==r;){if(n(r)){const t=r.getFirstChild();if(null!==t){r=t;continue}}else if(i(r)){const t=r.getTextContentSize();if(o+t>e)return{node:r,offset:e-o};o+=t}const t=r.getNextSibling();if(null!==t){r=t;continue}let l=r.getParent();for(;null!==l;){const t=l.getNextSibling();if(null!==t){r=t;continue t}l=l.getParent()}break}return null}function d(t,...e){const n=new URL(\"https://lexical.dev/docs/error\"),r=new URLSearchParams;r.append(\"code\",t);for(const t of e)r.append(\"v\",t);throw n.search=r.toString(),Error(`Minified Lexical error #${t}; visit ${n.toString()} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}function x(t,e,n,r){const s=t=>t instanceof n,f=t=>{const e=l(t.getTextContent());e.setFormat(t.getFormat()),t.replace(e)};return[t.registerNodeTransform(o,t=>{if(!t.isSimpleText())return;let n,o=t.getPreviousSibling(),l=t.getTextContent(),u=t;if(i(o)){const n=o.getTextContent(),r=e(n+l);if(s(o)){if(null===r||0!==(t=>t.getLatest().__mode)(o))return void f(o);{const e=r.end-n.length;if(e>0){const r=n+l.slice(0,e);if(o.select(),o.setTextContent(r),e===l.length)t.remove();else{const n=l.slice(e);t.setTextContent(n)}return}}}else if(null===r||r.start<n.length)return}let c=0;for(;;){n=e(l);let t,g=null===n?\"\":l.slice(n.end);if(l=g,\"\"===g){const t=u.getNextSibling();if(i(t)){g=u.getTextContent()+t.getTextContent();const n=e(g);if(null===n)return void(s(t)?f(t):t.markDirty());if(0!==n.start)return}}if(null===n)return;if(0===n.start&&i(o)&&o.isTextEntity()){c+=n.end;continue}0===n.start?[t,u]=u.splitText(n.end):[,t,u]=u.splitText(n.start+c,n.end+c),void 0===t&&d(165,\"nodeToReplace\");const a=r(t);if(a.setFormat(t.getFormat()),t.replace(a),null==u)return;c=0,o=a}}),t.registerNodeTransform(n,t=>{const n=t.getTextContent(),r=e(n);if(null===r||0!==r.start)return void f(t);if(n.length>r.end)return void t.splitText(r.end);const o=t.getPreviousSibling();i(o)&&o.isTextEntity()&&(f(o),f(t));const l=t.getNextSibling();i(l)&&l.isTextEntity()&&(f(l),s(t)&&f(t))})]}export{c as $canShowPlaceholder,g as $canShowPlaceholderCurry,a as $findTextIntersectionFromCharacters,f as $isRootTextContentEmpty,u as $isRootTextContentEmptyCurry,s as $rootTextContent,x as registerLexicalTextEntity};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{effect as e,namedSignals as t}from\"@lexical/extension\";import{defineExtension as n,safeCast as o,$getSelection as i,$isRangeSelection as a,$isTextNode as r}from\"lexical\";function s(e){const t=window.location.origin,n=n=>{if(n.origin!==t)return;const o=e.getRootElement();if(document.activeElement!==o)return;const s=n.data;if(\"string\"==typeof s){let t;try{t=JSON.parse(s)}catch(e){return}if(t&&\"nuanria_messaging\"===t.protocol&&\"request\"===t.type){const o=t.payload;if(o&&\"makeChanges\"===o.functionId){const t=o.args;if(t){const[o,s,d,c,g]=t;e.update(()=>{const e=i();if(a(e)){const t=e.anchor;let i=t.getNode(),a=0,l=0;if(r(i)&&o>=0&&s>=0&&(a=o,l=o+s,e.setTextNodeRange(i,a,i,l)),a===l&&\"\"===d||(e.insertRawText(d),i=t.getNode()),r(i)){a=c,l=c+g;const t=i.getTextContentSize();a=a>t?t:a,l=l>t?t:l,e.setTextNodeRange(i,a,i,l)}n.stopImmediatePropagation()}})}}}}};return window.addEventListener(\"message\",n,!0),()=>{window.removeEventListener(\"message\",n,!0)}}const d=n({build:(e,n,o)=>t(n),config:o({disabled:\"undefined\"==typeof window}),name:\"@lexical/dragon\",register:(t,n,o)=>e(()=>o.getOutput().disabled.value?void 0:s(t))});export{d as DragonExtension,s as registerDragonSupport};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{$insertDataTransferForRichText as t,$handleRichTextDrop as e,setLexicalClipboardDataTransfer as n,$getClipboardDataFromSelection as r,$writeDragSourceToDataTransfer as o,copyToClipboard as i}from\"@lexical/clipboard\";import{DragonExtension as s}from\"@lexical/dragon\";import{$isParentRTL as a,$shouldOverrideDefaultCharacterSelection as c,$moveCharacter as u}from\"@lexical/selection\";import{mergeRegister as l,$findMatchingParent as d,$handleIndentAndOutdent as m,objectKlassEquals as f,addClassNamesToElement as g,isHTMLElement as p,$getNearestBlockElementAncestorOrThrow as h}from\"@lexical/utils\";import{createCommand as C,defineExtension as v,CLICK_COMMAND as y,$getSelection as x,$isNodeSelection as D,COMMAND_PRIORITY_EDITOR as _,DELETE_CHARACTER_COMMAND as N,$isRangeSelection as w,DELETE_WORD_COMMAND as T,DELETE_LINE_COMMAND as E,CONTROLLED_TEXT_INSERTION_COMMAND as F,REMOVE_TEXT_COMMAND as O,FORMAT_TEXT_COMMAND as P,FORMAT_ELEMENT_COMMAND as A,$isElementNode as S,INSERT_LINE_BREAK_COMMAND as M,INSERT_PARAGRAPH_COMMAND as I,INSERT_TAB_COMMAND as b,$createTabNode as K,$insertNodes as k,INDENT_CONTENT_COMMAND as J,OUTDENT_CONTENT_COMMAND as L,KEY_ARROW_UP_COMMAND as W,$getAdjacentNode as R,$isDecoratorNode as q,KEY_ARROW_DOWN_COMMAND as z,KEY_ARROW_LEFT_COMMAND as X,KEY_ARROW_RIGHT_COMMAND as Y,KEY_BACKSPACE_COMMAND as B,KEY_DELETE_COMMAND as G,KEY_ENTER_COMMAND as V,KEY_ESCAPE_COMMAND as j,DROP_COMMAND as H,$getNearestNodeFromDOMNode as Q,$createRangeSelection as U,$isTextNode as Z,$normalizeSelection__EXPERIMENTAL as $,$setSelection as tt,DRAGSTART_COMMAND as et,DRAGOVER_COMMAND as nt,SELECT_ALL_COMMAND as rt,$selectAll as ot,COPY_COMMAND as it,CUT_COMMAND as st,PASTE_COMMAND as at,isDOMNode as ct,isSelectionCapturedInDecoratorInput as ut,KEY_SPACE_COMMAND as lt,KEY_TAB_COMMAND as dt,ElementNode as mt,$createParagraphNode as ft,$getRoot as gt,$isRootNode as pt,PASTE_TAG as ht,setNodeIndentFromDOM as Ct,$applyNodeReplacement as vt}from\"lexical\";function yt(t,e){if(void 0!==document.caretRangeFromPoint){const n=document.caretRangeFromPoint(t,e);return null===n?null:{node:n.startContainer,offset:n.startOffset}}if(\"undefined\"!==document.caretPositionFromPoint){const n=document.caretPositionFromPoint(t,e);return null===n?null:{node:n.offsetNode,offset:n.offset}}return null}const xt=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,Dt=xt&&\"documentMode\"in document?document.documentMode:null,_t=xt&&/Mac|iPod|iPhone|iPad/.test(navigator.platform),Nt=!(!xt||!(\"InputEvent\"in window)||Dt)&&\"getTargetRanges\"in new window.InputEvent(\"input\"),wt=xt&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,Tt=xt&&/Android/.test(navigator.userAgent),Et=xt&&/Version\\/[\\d.]+.*Safari/.test(navigator.userAgent)&&!Tt,Ft=xt&&/^(?=.*Chrome).*/i.test(navigator.userAgent),Ot=xt&&/AppleWebKit\\/[\\d.]+/.test(navigator.userAgent)&&_t&&!Ft,Pt=C(\"DRAG_DROP_PASTE_FILE\");class At extends mt{static getType(){return\"quote\"}static clone(t){return new At(t.__key)}createDOM(t){const e=document.createElement(\"blockquote\");return g(e,t.theme.quote),e}updateDOM(t,e){return!1}static importDOM(){return{blockquote:t=>({conversion:kt,priority:0})}}exportDOM(t){const{element:e}=super.exportDOM(t);if(p(e)){this.isEmpty()&&e.append(document.createElement(\"br\"));const t=this.getFormatType();t&&(e.style.textAlign=t);const n=this.getDirection();n&&(e.dir=n)}return{element:e}}static importJSON(t){return St().updateFromJSON(t)}insertNewAfter(t,e){const n=ft(),r=this.getDirection();return n.setDirection(r),this.insertAfter(n,e),n}collapseAtStart(){const t=ft();return this.getChildren().forEach(e=>t.append(e)),this.replace(t),!0}canMergeWhenEmpty(){return!0}}function St(){return vt(new At)}function Mt(t){return t instanceof At}class It extends mt{__tag;static getType(){return\"heading\"}static clone(t){return new It(t.__tag,t.__key)}afterCloneFrom(t){super.afterCloneFrom(t),this.__tag=t.__tag}constructor(t=\"h1\",e){super(e),this.__tag=t}getTag(){return this.getLatest().__tag}setTag(t){const e=this.getWritable();return e.__tag=t,e}createDOM(t){const e=this.__tag,n=document.createElement(e),r=t.theme.heading;if(void 0!==r){const t=r[e];g(n,t)}return n}updateDOM(t,e,n){return t.__tag!==this.__tag}static importDOM(){return{h1:t=>({conversion:Kt,priority:0}),h2:t=>({conversion:Kt,priority:0}),h3:t=>({conversion:Kt,priority:0}),h4:t=>({conversion:Kt,priority:0}),h5:t=>({conversion:Kt,priority:0}),h6:t=>({conversion:Kt,priority:0}),p:t=>{const e=t.firstChild;return null!==e&&bt(e)?{conversion:()=>({node:null}),priority:3}:null},span:t=>bt(t)?{conversion:t=>({node:Jt(\"h1\")}),priority:3}:null}}exportDOM(t){const{element:e}=super.exportDOM(t);if(p(e)){this.isEmpty()&&e.append(document.createElement(\"br\"));const t=this.getFormatType();t&&(e.style.textAlign=t);const n=this.getDirection();n&&(e.dir=n)}return{element:e}}static importJSON(t){return Jt(t.tag).updateFromJSON(t)}updateFromJSON(t){return super.updateFromJSON(t).setTag(t.tag)}exportJSON(){return{...super.exportJSON(),tag:this.getTag()}}insertNewAfter(t,e=!0){const n=t?t.anchor.offset:0,r=this.getLastDescendant(),o=!r||t&&t.anchor.key===r.getKey()&&n===r.getTextContentSize()||!t?ft():Jt(this.getTag()),i=this.getDirection();if(o.setDirection(i),this.insertAfter(o,e),0===n&&!this.isEmpty()&&t){const t=ft();t.select(),this.replace(t,!0)}return o}collapseAtStart(){const t=this.isEmpty()?ft():Jt(this.getTag());return this.getChildren().forEach(e=>t.append(e)),this.replace(t),!0}extractWithChild(){return!0}}function bt(t){return\"span\"===t.nodeName.toLowerCase()&&\"26pt\"===t.style.fontSize}function Kt(t){const e=t.nodeName.toLowerCase();let n=null;return\"h1\"!==e&&\"h2\"!==e&&\"h3\"!==e&&\"h4\"!==e&&\"h5\"!==e&&\"h6\"!==e||(n=Jt(e),null!==t.style&&(Ct(t,n),n.setFormat(t.style.textAlign))),{node:n}}function kt(t){const e=St();return null!==t.style&&(e.setFormat(t.style.textAlign),Ct(t,e)),{node:e}}function Jt(t=\"h1\"){return vt(new It(t))}function Lt(t){return t instanceof It}function Wt(t){let e=null;if(f(t,DragEvent)?e=t.dataTransfer:f(t,ClipboardEvent)&&(e=t.clipboardData),null===e)return[!1,[],!1];const n=e.types,r=n.includes(\"Files\"),o=n.includes(\"text/html\")||n.includes(\"text/plain\");return[r,Array.from(e.files),o]}function Rt(t){const e=Q(t);return q(e)}function qt(t){for(const e of[\"lowercase\",\"uppercase\",\"capitalize\"])t.hasFormat(e)&&t.toggleFormat(e)}function zt(s){return l(s.registerCommand(y,t=>{const e=x();return!!D(e)&&(e.clear(),!0)},_),s.registerCommand(N,t=>{const e=x();return w(e)?(e.deleteCharacter(t),!0):!!D(e)&&(e.deleteNodes(),!0)},_),s.registerCommand(T,t=>{const e=x();return!!w(e)&&(e.deleteWord(t),!0)},_),s.registerCommand(E,t=>{const e=x();return!!w(e)&&(e.deleteLine(t),!0)},_),s.registerCommand(F,e=>{const n=x();if(\"string\"==typeof e)null!==n&&n.insertText(e);else{if(null===n)return!1;const r=e.dataTransfer;if(null!=r)t(r,n,s);else if(w(n)){const t=e.data;return t&&n.insertText(t),!0}}return!0},_),s.registerCommand(O,()=>{const t=x();return!!w(t)&&(t.removeText(),!0)},_),s.registerCommand(P,t=>{const e=x();return!!w(e)&&(e.formatText(t),!0)},_),s.registerCommand(A,t=>{const e=x();if(!w(e)&&!D(e))return!1;const n=e.getNodes();for(const e of n){const n=d(e,t=>S(t)&&!t.isInline());null!==n&&n.setFormat(t)}return!0},_),s.registerCommand(M,t=>{const e=x();return!!w(e)&&(e.insertLineBreak(t),!0)},_),s.registerCommand(I,()=>{const t=x();return!!w(t)&&(t.insertParagraph(),!0)},_),s.registerCommand(b,()=>{const t=K(),e=x();return w(e)&&(t.setFormat(e.format),t.setStyle(e.style)),k([t]),!0},_),s.registerCommand(J,()=>m(t=>{const e=t.getIndent();t.setIndent(e+1)}),_),s.registerCommand(L,()=>m(t=>{const e=t.getIndent();e>0&&t.setIndent(Math.max(0,e-1))}),_),s.registerCommand(W,t=>{const e=x();if(D(e)){const n=e.getNodes();if(n.length>0)return t.preventDefault(),n[0].selectPrevious(),!0}else if(w(e)){const n=R(e.focus,!0);if(!t.shiftKey&&q(n)&&!n.isIsolated()&&!n.isInline())return n.selectPrevious(),t.preventDefault(),!0}return!1},_),s.registerCommand(z,t=>{const e=x();if(D(e)){const n=e.getNodes();if(n.length>0)return t.preventDefault(),n[0].selectNext(0,0),!0}else if(w(e)){if(function(t){const e=t.focus;return\"root\"===e.key&&e.offset===gt().getChildrenSize()}(e))return t.preventDefault(),!0;const n=R(e.focus,!1);if(!t.shiftKey&&q(n)&&!n.isIsolated()&&!n.isInline())return n.selectNext(),t.preventDefault(),!0}return!1},_),s.registerCommand(X,t=>{const e=x();if(D(e)){const n=e.getNodes();if(n.length>0)return t.preventDefault(),a(n[0])?n[0].selectNext(0,0):n[0].selectPrevious(),!0}if(!w(e))return!1;if(c(e,!0)){const n=t.shiftKey;return t.preventDefault(),u(e,n,!0),!0}return!1},_),s.registerCommand(Y,t=>{const e=x();if(D(e)){const n=e.getNodes();if(n.length>0)return t.preventDefault(),a(n[0])?n[0].selectPrevious():n[0].selectNext(0,0),!0}if(!w(e))return!1;const n=t.shiftKey;return!!c(e,!1)&&(t.preventDefault(),u(e,n,!1),!0)},_),s.registerCommand(B,t=>{if(Rt(t.target))return!1;const e=x();if(w(e)){if(function(t){if(!t.isCollapsed())return!1;const{anchor:e}=t;if(0!==e.offset)return!1;const n=e.getNode();if(pt(n))return!1;const r=h(n);return r.getIndent()>0&&(r.is(n)||n.is(r.getFirstDescendant()))}(e))return t.preventDefault(),s.dispatchCommand(L,void 0);if(wt&&\"ko-KR\"===navigator.language)return!1}else if(!D(e))return!1;return t.preventDefault(),s.dispatchCommand(N,!0)},_),s.registerCommand(G,t=>{if(Rt(t.target))return!1;const e=x();return!(!w(e)&&!D(e))&&(t.preventDefault(),s.dispatchCommand(N,!1))},_),s.registerCommand(V,t=>{const e=x();if(!w(e))return!1;if(qt(e),null!==t){if((wt||Et||Ot)&&Nt)return!1;if(t.preventDefault(),t.shiftKey)return s.dispatchCommand(M,!1)}return s.dispatchCommand(I,void 0)},_),s.registerCommand(j,()=>{const t=x();return!!w(t)&&(s.blur(),!0)},_),s.registerCommand(H,t=>{const[,n]=Wt(t);if(n.length>0){const e=yt(t.clientX,t.clientY);if(null!==e){const{offset:t,node:r}=e,o=Q(r);if(null!==o){const e=U();if(Z(o))e.anchor.set(o.getKey(),t,\"text\"),e.focus.set(o.getKey(),t,\"text\");else{const t=o.getParentOrThrow().getKey(),n=o.getIndexWithinParent()+1;e.anchor.set(t,n,\"element\"),e.focus.set(t,n,\"element\")}const n=$(e);tt(n)}s.dispatchCommand(Pt,n)}return t.preventDefault(),!0}return e(t,s)},_),s.registerCommand(et,t=>{const[e]=Wt(t),i=x();return!(e&&!w(i))&&(w(i)&&!i.isCollapsed()&&null!==t.dataTransfer&&(n(t.dataTransfer,r(i)),o(t.dataTransfer,s)),!0)},_),s.registerCommand(nt,t=>{const[e]=Wt(t),n=x();if(e&&!w(n))return!1;const r=yt(t.clientX,t.clientY);if(null!==r){const e=Q(r.node);q(e)&&t.preventDefault()}return!0},_),s.registerCommand(rt,()=>(ot(),!0),_),s.registerCommand(it,t=>(i(s,f(t,ClipboardEvent)?t:null),!0),_),s.registerCommand(st,t=>(async function(t,e){await i(e,f(t,ClipboardEvent)?t:null),e.update(()=>{const t=x();w(t)?t.removeText():D(t)&&t.getNodes().forEach(t=>t.remove())})}(t,s),!0),_),s.registerCommand(at,e=>{const[,n,r]=Wt(e);if(n.length>0&&!r)return s.dispatchCommand(Pt,n),!0;if(ct(e.target)&&ut(e.target))return!1;return null!==x()&&(function(e,n){e.preventDefault(),n.update(()=>{const r=x(),o=f(e,InputEvent)||f(e,KeyboardEvent)?null:e.clipboardData;null!=o&&null!==r&&t(o,r,n)},{tag:ht})}(e,s),!0)},_),s.registerCommand(lt,t=>{const e=x();return w(e)&&qt(e),!1},_),s.registerCommand(dt,t=>{const e=x();return w(e)&&qt(e),!1},_))}const Xt=v({conflictsWith:[\"@lexical/plain-text\"],dependencies:[s],name:\"@lexical/rich-text\",nodes:()=>[It,At],register:zt});export{Jt as $createHeadingNode,St as $createQuoteNode,Lt as $isHeadingNode,Mt as $isQuoteNode,Pt as DRAG_DROP_PASTE,It as HeadingNode,At as QuoteNode,Xt as RichTextExtension,Wt as eventFiles,zt as registerRichText};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{useLexicalComposerContext as r}from\"@lexical/react/LexicalComposerContext\";import{useLexicalEditable as e}from\"@lexical/react/useLexicalEditable\";import{LexicalBuilder as t}from\"@lexical/extension\";import{ReactProviderExtension as o}from\"@lexical/react/ReactProviderExtension\";import{useLayoutEffect as n,useEffect as i,useState as c,useMemo as a,Suspense as l}from\"react\";import{flushSync as s,createPortal as u}from\"react-dom\";import{jsx as d,jsxs as f,Fragment as m}from\"react/jsx-runtime\";import{$canShowPlaceholderCurry as p}from\"@lexical/text\";import{mergeRegister as x}from\"@lexical/utils\";import{registerDragonSupport as E}from\"@lexical/dragon\";import{registerRichText as h}from\"@lexical/rich-text\";function g(r,...e){const t=new URL(\"https://lexical.dev/docs/error\"),o=new URLSearchParams;o.append(\"code\",r);for(const r of e)o.append(\"v\",r);throw t.search=o.toString(),Error(`Minified Lexical error #${r}; visit ${t.toString()} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}const y=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?n:i;function w({editor:r,ErrorBoundary:e}){return function(r,e){const[t,o]=c(()=>r.getDecorators());return y(()=>r.registerDecoratorListener(r=>{s(()=>{o(r)})}),[r]),i(()=>{o(r.getDecorators())},[r]),a(()=>{const o=[],n=Object.keys(t);for(let i=0;i<n.length;i++){const c=n[i],a=d(e,{onError:e=>r._onError(e),children:d(l,{fallback:null,children:t[c]})}),s=r.getElementByKey(c);null!==s&&o.push(u(a,s,c))}return o},[e,t,r])}(r,e)}function v({editor:r,ErrorBoundary:e}){return function(r){const e=t.maybeFromEditor(r);if(e&&e.hasExtensionByName(o.name)){for(const r of[\"@lexical/plain-text\",\"@lexical/rich-text\"])e.hasExtensionByName(r)&&g(320,r);return!0}return!1}(r)?null:d(w,{editor:r,ErrorBoundary:e})}function B(r){return r.getEditorState().read(p(r.isComposing()))}function L({contentEditable:e,placeholder:t=null,ErrorBoundary:o}){const[n]=r();return function(r){y(()=>x(h(r),E(r)),[r])}(n),f(m,{children:[e,d(b,{content:t}),d(v,{editor:n,ErrorBoundary:o})]})}function b({content:t}){const[o]=r(),n=function(r){const[e,t]=c(()=>B(r));return y(()=>{function e(){const e=B(r);t(e)}return e(),x(r.registerUpdateListener(()=>{e()}),r.registerEditableListener(()=>{e()}))},[r]),e}(o),i=e();return n?\"function\"==typeof t?t(i):t:null}export{L as RichTextPlugin};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{useLexicalComposerContext as e}from\"@lexical/react/LexicalComposerContext\";import{useLayoutEffect as t,useEffect as i,forwardRef as a,useState as r,useCallback as n,useMemo as o}from\"react\";import{jsx as l,jsxs as d,Fragment as c}from\"react/jsx-runtime\";import{$canShowPlaceholderCurry as s}from\"@lexical/text\";import{mergeRegister as u}from\"@lexical/utils\";const m=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?t:i;function f({editor:e,ariaActiveDescendant:t,ariaAutoComplete:i,ariaControls:a,ariaDescribedBy:d,ariaErrorMessage:c,ariaExpanded:s,ariaInvalid:u,ariaLabel:f,ariaLabelledBy:b,ariaMultiline:p,ariaOwns:x,ariaRequired:E,autoCapitalize:v,className:w,id:y,role:C=\"textbox\",spellCheck:g=!0,style:L,tabIndex:h,\"data-testid\":D,...I},R){const[k,q]=r(e.isEditable()),z=n(t=>{t&&t.ownerDocument&&t.ownerDocument.defaultView?e.setRootElement(t):e.setRootElement(null)},[e]),A=o(()=>function(...e){return t=>{for(const i of e)\"function\"==typeof i?i(t):null!=i&&(i.current=t)}}(R,z),[z,R]);return m(()=>(q(e.isEditable()),e.registerEditableListener(e=>{q(e)})),[e]),l(\"div\",{\"aria-activedescendant\":k?t:void 0,\"aria-autocomplete\":k?i:\"none\",\"aria-controls\":k?a:void 0,\"aria-describedby\":d,...null!=c?{\"aria-errormessage\":c}:{},\"aria-expanded\":k&&\"combobox\"===C?!!s:void 0,...null!=u?{\"aria-invalid\":u}:{},\"aria-label\":f,\"aria-labelledby\":b,\"aria-multiline\":p,\"aria-owns\":k?x:void 0,\"aria-readonly\":!k||void 0,\"aria-required\":E,autoCapitalize:v,className:w,contentEditable:k,\"data-testid\":D,id:y,ref:A,role:C,spellCheck:g,style:L,tabIndex:h,...I})}const b=a(f);function p(e){return e.getEditorState().read(s(e.isComposing()))}const x=a(E);function E(t,i){const{placeholder:a,...r}=t,[n]=e();return d(c,{children:[l(b,{editor:n,...r,ref:i}),null!=a&&l(v,{editor:n,content:a})]})}function v({content:e,editor:i}){const a=function(e){const[t,i]=r(()=>p(e));return m(()=>{function t(){const t=p(e);i(t)}return t(),u(e.registerUpdateListener(()=>{t()}),e.registerEditableListener(()=>{t()}))},[e]),t}(i),[n,o]=r(i.isEditable());if(t(()=>(o(i.isEditable()),i.registerEditableListener(e=>{o(e)})),[i]),!a)return null;let d=null;return\"function\"==typeof e?d=e(n):null!==e&&(d=e),null===d?null:l(\"div\",{\"aria-hidden\":!0,children:d})}export{x as ContentEditable,b as ContentEditableElement};\n","\"use client\";\nimport { createContext as l, Component as y, createElement as d, useContext as f, useState as p, useMemo as E, forwardRef as B } from \"react\";\nconst h = l(null), c = {\n didCatch: !1,\n error: null\n};\nclass m extends y {\n constructor(e) {\n super(e), this.resetErrorBoundary = this.resetErrorBoundary.bind(this), this.state = c;\n }\n static getDerivedStateFromError(e) {\n return { didCatch: !0, error: e };\n }\n resetErrorBoundary(...e) {\n const { error: t } = this.state;\n t !== null && (this.props.onReset?.({\n args: e,\n reason: \"imperative-api\"\n }), this.setState(c));\n }\n componentDidCatch(e, t) {\n this.props.onError?.(e, t);\n }\n componentDidUpdate(e, t) {\n const { didCatch: o } = this.state, { resetKeys: s } = this.props;\n o && t.error !== null && C(e.resetKeys, s) && (this.props.onReset?.({\n next: s,\n prev: e.resetKeys,\n reason: \"keys\"\n }), this.setState(c));\n }\n render() {\n const { children: e, fallbackRender: t, FallbackComponent: o, fallback: s } = this.props, { didCatch: n, error: a } = this.state;\n let i = e;\n if (n) {\n const u = {\n error: a,\n resetErrorBoundary: this.resetErrorBoundary\n };\n if (typeof t == \"function\")\n i = t(u);\n else if (o)\n i = d(o, u);\n else if (s !== void 0)\n i = s;\n else\n throw a;\n }\n return d(\n h.Provider,\n {\n value: {\n didCatch: n,\n error: a,\n resetErrorBoundary: this.resetErrorBoundary\n }\n },\n i\n );\n }\n}\nfunction C(r = [], e = []) {\n return r.length !== e.length || r.some((t, o) => !Object.is(t, e[o]));\n}\nfunction g(r) {\n return r !== null && typeof r == \"object\" && \"didCatch\" in r && typeof r.didCatch == \"boolean\" && \"error\" in r && \"resetErrorBoundary\" in r && typeof r.resetErrorBoundary == \"function\";\n}\nfunction x(r) {\n if (!g(r))\n throw new Error(\"ErrorBoundaryContext not found\");\n}\nfunction k() {\n const r = f(h);\n x(r);\n const { error: e, resetErrorBoundary: t } = r, [o, s] = p({\n error: null,\n hasError: !1\n }), n = E(\n () => ({\n error: e,\n resetBoundary: () => {\n t(), s({ error: null, hasError: !1 });\n },\n showBoundary: (a) => s({\n error: a,\n hasError: !0\n })\n }),\n [e, t]\n );\n if (o.hasError)\n throw o.error;\n return n;\n}\nfunction S(r) {\n switch (typeof r) {\n case \"object\": {\n if (r !== null && \"message\" in r && typeof r.message == \"string\")\n return r.message;\n break;\n }\n case \"string\":\n return r;\n }\n}\nfunction w(r, e) {\n const t = B(\n (s, n) => d(\n m,\n e,\n d(r, { ...s, ref: n })\n )\n ), o = r.displayName || r.name || \"Unknown\";\n return t.displayName = `withErrorBoundary(${o})`, t;\n}\nexport {\n m as ErrorBoundary,\n h as ErrorBoundaryContext,\n S as getErrorMessage,\n k as useErrorBoundary,\n w as withErrorBoundary\n};\n//# sourceMappingURL=react-error-boundary.js.map\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{ErrorBoundary as r}from\"react-error-boundary\";import{jsx as o}from\"react/jsx-runtime\";function n({children:n,onError:e}){return o(r,{fallback:o(\"div\",{style:{border:\"1px solid #f00\",color:\"#f00\",padding:\"8px\"},children:\"An error was thrown.\"}),onError:e,children:n})}export{n as LexicalErrorBoundary};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{useLexicalComposerContext as e}from\"@lexical/react/LexicalComposerContext\";import{HISTORY_MERGE_TAG as t}from\"lexical\";import{useLayoutEffect as o,useEffect as i}from\"react\";const r=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?o:i;function n({ignoreHistoryMergeTagChange:o=!0,ignoreSelectionChange:i=!1,onChange:n}){const[a]=e();return r(()=>{if(n)return a.registerUpdateListener(({editorState:e,dirtyElements:r,dirtyLeaves:d,prevEditorState:s,tags:c})=>{i&&0===r.size&&0===d.size||o&&c.has(t)||s.isEmpty()||n(e,a,c)})},[a,o,i,n]),null}export{n as OnChangePlugin};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{registerList as r,ListNode as e,ListItemNode as o,registerListStrictIndentTransform as t}from\"@lexical/list\";import{useLexicalComposerContext as i}from\"@lexical/react/LexicalComposerContext\";import{mergeRegister as n}from\"lexical\";import{useEffect as s}from\"react\";function l({hasStrictIndent:l=!1,shouldPreserveNumbering:m=!1}){const[c]=i();return s(()=>{if(!c.hasNodes([e,o]))throw new Error(\"ListPlugin: ListNode and/or ListItemNode not registered on editor\")},[c]),s(()=>n(r(c,{restoreNumbering:m}),l?t(c):()=>{}),[c,l,m]),function(e){s(()=>r(e),[e])}(c),null}export{l as ListPlugin};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{namedSignals as r}from\"@lexical/extension\";import{LinkNode as t,registerLink as e}from\"@lexical/link\";import{useLexicalComposerContext as o}from\"@lexical/react/LexicalComposerContext\";import{useEffect as i}from\"react\";function l({validateUrl:l,attributes:n}){const[a]=o();return i(()=>{if(!a.hasNodes([t]))throw new Error(\"LinkPlugin: LinkNode not registered on editor\")}),i(()=>e(a,r({attributes:n,validateUrl:l})),[a,l,n]),null}export{l as LinkPlugin};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{namedSignals as e}from\"@lexical/extension\";import{registerClickableLink as o}from\"@lexical/link\";import{useLexicalComposerContext as r}from\"@lexical/react/LexicalComposerContext\";import{useEffect as i}from\"react\";function t({newTab:t=!0,disabled:l=!1}){const[n]=r();return i(()=>o(n,e({disabled:l,newTab:t})),[n,t,l]),null}export{t as ClickableLinkPlugin};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{effect as t,namedSignals as e,batch as n,getPeerDependencyFromEditor as r}from\"@lexical/extension\";import{mergeRegister as o}from\"@lexical/utils\";import{defineExtension as i,safeCast as a,configExtension as s,UNDO_COMMAND as d,COMMAND_PRIORITY_EDITOR as l,REDO_COMMAND as u,CLEAR_EDITOR_COMMAND as c,CLEAR_HISTORY_COMMAND as f,CAN_REDO_COMMAND as p,CAN_UNDO_COMMAND as h,COMPOSITION_START_TAG as m,HISTORIC_TAG as g,COMPOSITION_END_TAG as y,HISTORY_PUSH_TAG as S,HISTORY_MERGE_TAG as _,$isRangeSelection as k,$isTextNode as v,$isRootNode as x}from\"lexical\";function C(t,e,n,r,o){if(null===t||0===n.size&&0===r.size&&!o)return 0;const i=e._selection,a=t._selection;if(o)return 1;if(!(k(i)&&k(a)&&a.isCollapsed()&&i.isCollapsed()))return 0;const s=function(t,e,n){const r=t._nodeMap,o=[];for(const t of e){const e=r.get(t);void 0!==e&&o.push(e)}for(const[t,e]of n){if(!e)continue;const n=r.get(t);void 0===n||x(n)||o.push(n)}return o}(e,n,r);if(0===s.length)return 0;if(s.length>1){const n=e._nodeMap,r=n.get(i.anchor.key),o=n.get(a.anchor.key);return r&&o&&!t._nodeMap.has(r.__key)&&v(r)&&1===r.__text.length&&1===i.anchor.offset?2:0}const d=s[0],l=t._nodeMap.get(d.__key);if(!v(l)||!v(d)||l.__mode!==d.__mode)return 0;const u=l.__text,c=d.__text;if(u===c)return 0;const f=i.anchor,p=a.anchor;if(f.key!==p.key||\"text\"!==f.type)return 0;const h=f.offset,m=p.offset,g=c.length-u.length;return 1===g&&m===h-1?2:-1===g&&m===h+1?3:-1===g&&m===h?4:0}function b(t,e,n){let r=n(),o=0,i=r,a=0,s=null;return(d,l,u,c,f,p)=>{const h=n();if(p.has(m)&&(i=r,a=o,s=d),p.has(g))return o=0,r=h,2;p.has(y)&&s&&(r=i,o=a,d=s);const x=C(d,l,c,f,t.isComposing()),b=(()=>{const n=null===u||u.editor===t,i=p.has(S);if(!i&&n&&p.has(_))return 0;if(1===x)return 2;if(null===d)return 1;const a=l._selection;if(!(c.size>0||f.size>0))return null!==a?0:2;const s=\"number\"==typeof e?e:e.peek();if(!1===i&&0!==x&&x===o&&h<r+s&&n)return 0;if(1===c.size){if(function(t,e,n){const r=e._nodeMap.get(t),o=n._nodeMap.get(t),i=e._selection,a=n._selection;return!(k(i)&&k(a)&&\"element\"===i.anchor.type&&\"element\"===i.focus.type&&\"text\"===a.anchor.type&&\"text\"===a.focus.type||!v(r)||!v(o)||r.__parent!==o.__parent)&&JSON.stringify(e.read(()=>r.exportJSON()))===JSON.stringify(n.read(()=>o.exportJSON()))}(Array.from(c)[0],d,l))return 0}return 1})();return r=h,o=x,b}}function w(t){t.undoStack=[],t.redoStack=[],t.current=null}function E(t,e,n,r=Date.now){const i=b(t,n,r);return o(t.registerCommand(d,()=>(function(t,e){const n=e.redoStack,r=e.undoStack;if(0!==r.length){const o=e.current,i=r.pop();null!==o&&(n.push(o),t.dispatchCommand(p,!0)),0===r.length&&t.dispatchCommand(h,!1),e.current=i||null,i&&i.editor.setEditorState(i.editorState,{tag:g})}}(t,e),!0),l),t.registerCommand(u,()=>(function(t,e){const n=e.redoStack,r=e.undoStack;if(0!==n.length){const o=e.current;null!==o&&(r.push(o),t.dispatchCommand(h,!0));const i=n.pop();0===n.length&&t.dispatchCommand(p,!1),e.current=i||null,i&&i.editor.setEditorState(i.editorState,{tag:g})}}(t,e),!0),l),t.registerCommand(c,()=>(w(e),!1),l),t.registerCommand(f,()=>(w(e),t.dispatchCommand(p,!1),t.dispatchCommand(h,!1),!0),l),t.registerUpdateListener(({editorState:n,prevEditorState:r,dirtyLeaves:o,dirtyElements:a,tags:s})=>{const d=e.current,l=e.redoStack,u=e.undoStack,c=null===d?null:d.editorState;if(null!==d&&n===c)return;const f=i(r,n,d,o,a,s);if(1===f)0!==l.length&&(e.redoStack=[],t.dispatchCommand(p,!1)),null!==d&&(u.push({...d}),t.dispatchCommand(h,!0));else if(2===f)return;e.current={editor:t,editorState:n}}))}function M(){return{current:null,redoStack:[],undoStack:[]}}const O=i({build:(t,{delay:n,createInitialHistoryState:r,disabled:o,now:i})=>e({delay:n,disabled:o,historyState:r(t),now:i}),config:a({createInitialHistoryState:M,delay:300,disabled:\"undefined\"==typeof window,now:Date.now}),name:\"@lexical/history/History\",register:(e,n,r)=>{const o=r.getOutput();return t(()=>o.disabled.value?void 0:E(e,o.historyState.value,o.delay,()=>o.now.peek()()))}});const z=i({build:(t,{disabled:n,parentEditor:r})=>e({disabled:n,parentEditor:r||t._parentEditor}),config:a({disabled:!1,parentEditor:null}),dependencies:[s(O,{disabled:!0})],name:\"@lexical/history/SharedHistory\",register:(e,o,i)=>t(()=>{const{disabled:t,parentEditor:e}=i.getOutput();if(!t.value){const{output:t}=i.getDependency(O),o=function(t){return t?r(t,O.name):null}(e.value);if(!o)return;const a=o.output;n(()=>{t.delay.value=a.delay.value,t.historyState.value=a.historyState.value,t.now.value=a.now.value,t.disabled.value=a.disabled.value})}})});export{O as HistoryExtension,z as SharedHistoryExtension,M as createEmptyHistoryState,E as registerHistory};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{useLexicalComposerContext as t}from\"@lexical/react/LexicalComposerContext\";import{createEmptyHistoryState as o,registerHistory as r}from\"@lexical/history\";export{createEmptyHistoryState}from\"@lexical/history\";import{useMemo as e,useEffect as i}from\"react\";function a({delay:a,externalHistoryState:c}){const[l]=t();return function(t,a,c=1e3){const l=e(()=>a||o(),[a]);i(()=>r(t,l,c),[c,t,l])}(l,c,a),null}export{a as HistoryPlugin};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{signal as e}from\"@lexical/extension\";import{useLexicalComposerContext as r}from\"@lexical/react/LexicalComposerContext\";import{$isScrollableTablesActive as o,setScrollableTablesActive as l,TableNode as t,registerTablePlugin as a,registerTableSelectionObserver as n,registerTableCellUnmergeTransform as s,TableCellNode as i}from\"@lexical/table\";import{useEffect as c,useState as u}from\"react\";function m({hasCellMerge:m=!0,hasCellBackgroundColor:f=!0,hasTabHandler:d=!0,hasHorizontalScroll:g=!1,hasNestedTables:p=!1}){const[x]=r();c(()=>{o(x)!==g&&(l(x,g),x.registerNodeTransform(t,()=>{})())},[x,g]);const C=function(r){const[o]=u(()=>e(r));o.peek()!==r&&(o.value=r);return o}(p);return c(()=>a(x,{hasNestedTables:C}),[x,C]),c(()=>n(x,d),[x,d]),c(()=>{if(!m)return s(x)},[x,m]),c(()=>{if(!f)return x.registerNodeTransform(i,e=>{null!==e.getBackgroundColor()&&e.setBackgroundColor(null)})},[x,f,m]),null}export{m as TablePlugin};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{useLexicalComposerContext as t}from\"@lexical/react/LexicalComposerContext\";import*as e from\"react\";function o({editorRef:o}){const[r]=t();return e.useEffect(()=>{\"function\"==typeof o?o(r):\"object\"==typeof o&&null!==o&&(o.current=r)},[r]),null}export{o as EditorRefPlugin};\n","import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';\nimport { $getSelection, $isRangeSelection, $setSelection, KEY_DOWN_COMMAND, COMMAND_PRIORITY_LOW } from 'lexical';\nimport { mergeRegister } from '@lexical/utils';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { $getTableCellNodeFromLexicalNode } from '@lexical/table';\n\nimport type { JSX } from 'react';\nimport type { Actions } from 'components/RteEditor/Plugins/TablePlugin/TableCellContextMenu/TableCellContextMenu';\nimport type { TableMutation } from 'components/RteEditor/Plugins/TablePlugin/TablePlugin';\nimport type { SearchResponse } from 'components/RteEditor/Plugins/CourseCataloguePlugin/AddCatalogueLinkForm';\n\nimport { CourseCataloguePlugin } from 'components/RteEditor/Plugins/CourseCataloguePlugin';\nimport {\n LinkPlugin,\n BlockFormatPlugin,\n ListPlugin,\n HistoryPlugin,\n TablePlugin,\n TableCellContextMenu,\n} from 'components/RteEditor/Plugins';\nimport styles from 'components/RteEditor/RteEditor.module.css';\nimport { removeScrollableContainers, setScrollableContainers } from 'components/RteEditor/helpers';\n\nexport type Position = {\n xPos: number;\n yPos: number;\n height: number;\n};\n\ninterface ToolBarProps {\n editorScrollPosition: number;\n onCatalogueLinkSearch?: (query: string, linkType: 'course' | 'programme') => void;\n catalogueSearchResponse?: SearchResponse;\n}\n\nexport const ToolBarPlugin = ({\n editorScrollPosition,\n onCatalogueLinkSearch,\n catalogueSearchResponse,\n}: ToolBarProps): JSX.Element => {\n const [editor] = useLexicalComposerContext();\n const [position, setPosition] = useState<Position | null>(null);\n const tableref = useRef<TableMutation>(null);\n\n const updateToolbar = useCallback(() => {\n const selection = $getSelection();\n if (!$isRangeSelection(selection)) {\n setPosition(null);\n return;\n }\n\n const anchorNode = selection.anchor.getNode();\n const tableCell = $getTableCellNodeFromLexicalNode(anchorNode);\n if (!tableCell) {\n setPosition(null);\n return;\n }\n\n const domNode = editor.getElementByKey(tableCell.getKey());\n if (!domNode) return;\n\n const rect = domNode.getBoundingClientRect();\n setPosition({\n xPos: rect.right,\n yPos: rect.bottom,\n height: rect.height,\n });\n }, [editor]);\n\n const handleTableAction = (action: Actions) => {\n tableref.current?.mutateTable(action);\n };\n\n const handleResizeScroll = useCallback(() => {\n editor.update(() => {\n const selection = $getSelection();\n\n if ($isRangeSelection(selection)) {\n const anchor = selection.anchor;\n const anchorNode = anchor.getNode();\n\n const tableCell = $getTableCellNodeFromLexicalNode(anchorNode);\n if (tableCell) {\n $setSelection(null);\n setPosition(null);\n }\n }\n });\n }, [editor]);\n\n useEffect(() => {\n return mergeRegister(\n editor.registerUpdateListener(({ editorState }) => {\n editorState.read(updateToolbar);\n }),\n\n editor.registerCommand(\n KEY_DOWN_COMMAND,\n () => {\n setScrollableContainers(handleResizeScroll);\n return false;\n },\n COMMAND_PRIORITY_LOW\n ),\n\n editor.registerRootListener((rootElement, prevRootElement) => {\n if (prevRootElement) {\n removeScrollableContainers(handleResizeScroll);\n }\n\n if (rootElement) {\n setScrollableContainers(handleResizeScroll);\n }\n })\n );\n }, [editor, updateToolbar, handleResizeScroll]);\n\n return (\n <div className={styles['editor__toolbar']}>\n <BlockFormatPlugin />\n <ListPlugin />\n <TablePlugin isActive={Boolean(position)} ref={tableref} />\n {position && (\n <TableCellContextMenu\n position={position}\n parentScrollPosition={editorScrollPosition}\n onAction={handleTableAction}\n />\n )}\n <LinkPlugin parentScrollPosition={editorScrollPosition} />\n {onCatalogueLinkSearch && catalogueSearchResponse && (\n <CourseCataloguePlugin\n parentScrollPosition={editorScrollPosition}\n onSearch={onCatalogueLinkSearch}\n searchResponse={catalogueSearchResponse}\n />\n )}\n <HistoryPlugin />\n </div>\n );\n};\n",".linkform {\n width: 26rem;\n}\n\n.linkform__input-field {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n margin-bottom: 0.75rem;\n}\n\n.linkform__footer {\n display: flex;\n gap: 0.5rem;\n justify-content: flex-end;\n margin-top: 1rem;\n}\n\n.linkform__input-url-wrapper {\n align-items: center;\n display: flex;\n gap: 0.5rem;\n justify-content: flex-start;\n width: 100%;\n}\n\n.linkform__input-url-wrapper div {\n width: 100%;\n}\n\n.linkform__open-url-button {\n align-items: center;\n aspect-ratio: 1/1;\n background-color: var(--color-uva-white);\n border: none;\n border-radius: 0.5rem;\n cursor: pointer;\n display: flex;\n height: 2.75rem;\n justify-content: center;\n width: 2.75rem;\n}\n\n.linkform__open-url-button:hover {\n background-color: var(--color-grey-400);\n border: 1px solid var(--color-grey-700);\n}\n\n.linkform__open-url-button:active {\n background-color: var(--color-uva-black);\n border: 1px solid var(--color-uva-black);\n color: var(--color-uva-white);\n}\n\n.editor__toolbar-button:active:hover {\n color: var(--color-uva-white);\n}\n","import { useState, forwardRef, useImperativeHandle, useRef, useId } from 'react';\n\nimport type { ChangeEvent, JSX } from 'react';\nimport type { LinkType } from 'components/RteEditor/Plugins/LinkPlugin';\n\nimport styles from './AddLinkForm.module.css';\n\nimport { ensureHttps, validateUrlWithProtocol } from 'components/RteEditor/Plugins/LinkPlugin/helpers';\nimport { Button, FeedbackBox, FormField, Icon, InputField, Label } from 'components';\nimport { useTranslation } from 'components/RteEditor/hooks/useTranslation';\n\ninterface AddLinkFormProps {\n onCloseHandler: () => void;\n onSaveHandler: (url: string, linktext: string) => void;\n isLink: LinkType;\n}\n\nexport interface addLinkFormMethods {\n clearForm: () => void;\n focusFirstField: () => void;\n setDefaults: (url: string, linktext: string) => void;\n}\n\nexport const AddLinkForm = forwardRef(\n (\n { onCloseHandler, onSaveHandler, isLink = { active: false, url: '', linktext: '' } }: AddLinkFormProps,\n ref\n ): JSX.Element => {\n const t = useTranslation();\n const [url, setUrl] = useState<string>(isLink.url || '');\n const [linkText, setLinkText] = useState<string>(isLink.linktext || '');\n const [showLinktextField, setShowLinktextField] = useState<boolean>(false);\n const [urlError, setUrlError] = useState<string | null>(null);\n const [linkTextError, setLinkTextError] = useState<string | null>(null);\n const firstField = useRef<HTMLInputElement>(null);\n const linkId = `link_${useId()}`;\n const textId = `text_${useId()}`;\n\n const handleOpenUrl = () => {\n window.open(ensureHttps(url), '_blank');\n };\n\n const handleUrl = (event: ChangeEvent<HTMLInputElement>) => {\n setUrl(event.target.value);\n };\n\n const handleLinkText = (event: ChangeEvent<HTMLInputElement>) => {\n setLinkText(event.target.value);\n };\n\n const validateUrl = (url: string): boolean => {\n if (validateUrlWithProtocol(url) === false || url.trim() === '') {\n setUrlError(t.errortext.urlNotValid);\n return false;\n }\n setUrlError(null);\n return true;\n };\n\n const validateLinkText = (linkText: string): boolean => {\n if (linkText.trim() === '') {\n setLinkTextError(t.errortext.linkTextNotValid);\n return false;\n }\n setLinkTextError(null);\n return true;\n };\n\n const handleSave = () => {\n if (!validateUrl(url) || (showLinktextField && !validateLinkText(linkText))) {\n return;\n }\n\n onSaveHandler(url, linkText);\n resetForm();\n };\n\n const handleClose = () => {\n onCloseHandler();\n resetForm();\n };\n\n const resetForm = () => {\n setUrl('');\n setShowLinktextField(false);\n setUrlError(null);\n setLinkTextError(null);\n };\n\n const setDefaults = (url: string, linktext: string) => {\n setUrl(url);\n if (!linktext && !url) {\n setShowLinktextField(true);\n }\n };\n\n const focusFirstField = () => {\n if (firstField.current) {\n firstField.current.focus();\n }\n };\n\n useImperativeHandle(ref, () => ({\n clearForm: resetForm,\n focusFirstField,\n setDefaults,\n }));\n\n return (\n <div className={styles['linkform']}>\n <FormField className={styles['linkform__input-field']}>\n <Label htmlFor={linkId}>{t.links.linkLabel}</Label>\n <div className={styles['linkform__input-url-wrapper']}>\n <InputField\n id={linkId}\n placeholder={t.links.linkPlaceholder}\n value={url}\n onChange={(event) => handleUrl(event)}\n onFocus={() => setUrlError(null)}\n ref={firstField}\n aria-label={t.aria.labels.linkField}\n />\n {url && (\n <button type=\"button\" onClick={handleOpenUrl} className={styles['linkform__open-url-button']}>\n <Icon name=\"ArrowTopRightOnSquare\" size={20} />\n </button>\n )}\n </div>\n {urlError && <FeedbackBox level=\"error\" feedback={urlError} />}\n </FormField>\n {showLinktextField && (\n <FormField className={styles['linkform__input-field']}>\n <Label htmlFor={textId}>{t.links.linkText}</Label>\n <InputField\n id={textId}\n value={linkText}\n onChange={(event) => handleLinkText(event)}\n onFocus={() => setLinkTextError(null)}\n aria-label={t.aria.labels.linkTextfield}\n />\n {linkTextError && <FeedbackBox level=\"error\" feedback={linkTextError} />}\n </FormField>\n )}\n <div className={styles['linkform__footer']}>\n <Button variant={'secondary'} onClick={handleClose} aria-label={t.common.cancel} type=\"button\">\n {t.common.cancel}\n </Button>\n <Button variant={'primary'} onClick={handleSave} aria-label={t.aria.labels.linkOkButton} type=\"button\">\n {t.links.addLink}\n </Button>\n </div>\n </div>\n );\n }\n);\n","import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';\nimport { clsx } from 'clsx';\nimport { $toggleLink, TOGGLE_LINK_COMMAND, LinkNode } from '@lexical/link';\nimport { useEffect, useRef, useState } from 'react';\nimport {\n $createTextNode,\n $getSelection,\n $isRangeSelection,\n $setSelection,\n CLICK_COMMAND,\n COMMAND_PRIORITY_CRITICAL,\n COMMAND_PRIORITY_LOW,\n KEY_DOWN_COMMAND,\n mergeRegister,\n SELECTION_CHANGE_COMMAND,\n} from 'lexical';\nimport { $getNearestNodeOfType } from '@lexical/utils';\n\nimport type { ElementNode, BaseSelection } from 'lexical';\nimport type { addLinkFormMethods } from './AddLinkForm/AddLinkFrom';\nimport type { linkFormMethods } from './LinkContextMenu/LinkContextMenu';\n\nimport { AddLinkForm } from './AddLinkForm/AddLinkFrom';\nimport { ensureHttps } from './helpers';\nimport { LinkContextMenu } from './LinkContextMenu/LinkContextMenu';\n\nimport { useFlyout } from 'components/RteEditor/hooks/useFlyout';\nimport { Icon } from 'components';\nimport styles from 'components/RteEditor/RteEditor.module.css';\nimport { useTranslation } from 'components/RteEditor/hooks/useTranslation';\n\nconst PREVENT_OPEN_DELAY = 200;\n\nexport interface LinkType {\n active: boolean;\n url: string;\n linktext: string;\n}\n\ntype Position = {\n top: number;\n left: number;\n};\n\ninterface LinkPluginProps {\n parentScrollPosition: number;\n}\n\nexport const LinkPlugin = ({ parentScrollPosition }: LinkPluginProps) => {\n const t = useTranslation();\n const [editor] = useLexicalComposerContext();\n const { flyout, showFlyout, hideFlyout, isVisible } = useFlyout();\n const addLinkForm = useRef<addLinkFormMethods>(undefined);\n const preventOpen = useRef(false);\n const previousLinkText = useRef('');\n const selectedText = useRef('');\n const [isLink, setIsLink] = useState<LinkType>({ active: false, url: '', linktext: '' });\n const isVisibleRef = useRef(isVisible);\n const storedSelection = useRef<BaseSelection | null>(null);\n const linkButtonRef = useRef<HTMLButtonElement>(null);\n const editLinkForm = useRef<linkFormMethods>(undefined);\n\n const storeCursorPosition = () => {\n editor.update(() => {\n const selection = $getSelection();\n storedSelection.current = selection;\n });\n };\n\n const rePositionCursor = () => {\n editor.update(() => {\n if (storedSelection.current) {\n $setSelection(storedSelection.current);\n }\n });\n };\n\n const openContextMenu = (url: string, position: Position) => {\n showFlyout({\n position,\n children: (\n <LinkContextMenu\n url={url}\n onSave={(url) => insertLink(url, '')}\n onDelete={() => removeLink()}\n onClose={closeContextMenu}\n ref={editLinkForm}\n />\n ),\n });\n };\n\n const closeContextMenu = () => {\n editLinkForm.current?.clearForm();\n hideFlyout();\n rePositionCursor();\n };\n\n const openFlyout = () => {\n const rect = linkButtonRef.current?.getBoundingClientRect();\n if (!preventOpen.current && rect) {\n storeCursorPosition();\n showFlyout({ position: { top: rect.bottom, left: rect.left }, ...flyoutOptions });\n setTimeout(() => addLinkForm.current?.setDefaults('', selectedText.current), 0);\n }\n };\n\n const closeFlyout = () => {\n hideFlyout();\n rePositionCursor();\n };\n\n const insertLink = (url: string, linktext: string) => {\n editor.update(() => {\n const selection = $getSelection();\n\n if ($isRangeSelection(selection)) {\n const anchorNode = selection.anchor.getNode();\n const linkNode = $getNearestNodeOfType(anchorNode, LinkNode);\n\n if (linktext && linktext !== '') {\n if (linkNode) {\n const newTextNode = $createTextNode(linktext);\n linkNode.replace(newTextNode);\n newTextNode.select();\n }\n if (linktext !== previousLinkText.current && previousLinkText.current === '') {\n const { anchor, focus } = selection;\n selection.insertText(linktext);\n anchor.offset -= linktext.length;\n focus.offset = anchor.offset + linktext.length;\n }\n }\n $toggleLink(ensureHttps(url), { target: '_blank' });\n }\n\n closeFlyout();\n });\n };\n\n const removeLink = (): void => {\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, null);\n closeContextMenu();\n };\n\n const flyoutOptions = {\n children: (\n <AddLinkForm\n isLink={isLink}\n onCloseHandler={closeFlyout}\n onSaveHandler={(url, linktext) => insertLink(url, linktext)}\n ref={addLinkForm}\n />\n ),\n };\n\n useEffect(() => {\n if (!isVisible) {\n addLinkForm.current?.clearForm();\n previousLinkText.current = selectedText.current = '';\n setTimeout(() => (preventOpen.current = false), PREVENT_OPEN_DELAY);\n } else {\n preventOpen.current = true;\n addLinkForm.current?.focusFirstField();\n }\n }, [addLinkForm, isVisible]);\n\n useEffect(() => {\n const handleSelectionClickOrChange = (selection: BaseSelection | null) => {\n if ($isRangeSelection(selection) && selection.isCollapsed()) {\n const anchorNode = selection.anchor.getNode() as ElementNode;\n const node = $getNearestNodeOfType(anchorNode, LinkNode);\n\n if (node) {\n const domNode = editor.getElementByKey(selection.anchor.getNode().getKey());\n const position = domNode\n ? { top: domNode.getBoundingClientRect().bottom, left: domNode.getBoundingClientRect().left }\n : { top: 0, left: 0 };\n openContextMenu(node.getURL(), position);\n return true;\n }\n }\n return false;\n };\n\n const unregisterSelect = editor.registerCommand(\n SELECTION_CHANGE_COMMAND,\n () => {\n const selection = $getSelection();\n selectedText.current = selection?.getTextContent() ?? '';\n handleSelectionClickOrChange(selection);\n return false;\n },\n 0\n );\n\n const unregisterClick = editor.registerCommand(\n CLICK_COMMAND,\n (event) => {\n const selection = $getSelection();\n storeCursorPosition();\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n handleSelectionClickOrChange(selection);\n return false;\n },\n 0\n );\n\n return () => {\n unregisterClick();\n unregisterSelect();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [editor]);\n\n useEffect(() => {\n const removeKeyboardShortcut = editor.registerCommand(\n KEY_DOWN_COMMAND,\n (event: KeyboardEvent) => {\n if (event.ctrlKey && event.shiftKey && event.key === 'U') {\n const selection = $getSelection();\n storeCursorPosition();\n\n if (!$isRangeSelection(selection)) {\n return false;\n }\n\n const anchorNode = selection.anchor.getNode() as ElementNode;\n const node = $getNearestNodeOfType(anchorNode, LinkNode);\n\n const openFlyoutWithDefaults = (url = '', linkText = '') => {\n openFlyout();\n setTimeout(() => addLinkForm.current?.setDefaults(url, linkText), 0);\n };\n\n if (node) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n\n previousLinkText.current = node.getTextContent();\n openFlyoutWithDefaults(node.getURL(), node.getTextContent());\n\n return true;\n }\n\n const selectedTextContent = selection.getTextContent();\n if (selectedTextContent !== '') {\n selectedText.current = selectedTextContent;\n openFlyoutWithDefaults('', selectedText.current);\n\n return true;\n }\n\n openFlyout();\n return true;\n }\n\n return false;\n },\n COMMAND_PRIORITY_CRITICAL\n );\n\n const removeStatusListener = editor.registerUpdateListener(({ editorState }) => {\n setIsLink(\n editorState.read(() => {\n const selection = $getSelection();\n storeCursorPosition();\n\n if ($isRangeSelection(selection)) {\n const anchorNode = selection.anchor.getNode() as ElementNode;\n const node = $getNearestNodeOfType(anchorNode, LinkNode);\n\n if (node) {\n return {\n active: true,\n url: node.getURL(),\n linktext: node.getTextContent(),\n };\n }\n }\n\n return {\n active: false,\n url: '',\n linktext: '',\n };\n })\n );\n });\n\n return () => {\n removeKeyboardShortcut();\n removeStatusListener();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [editor]);\n\n useEffect(() => {\n isVisibleRef.current = isVisible;\n if (!isVisible) editLinkForm.current?.clearForm();\n }, [isVisible]);\n\n useEffect(() => {\n if (isVisible) {\n closeFlyout();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [parentScrollPosition]);\n\n useEffect(() => {\n if (!isLink.active) {\n hideFlyout();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isLink]);\n\n const handleOnScroll = () => {\n hideFlyout();\n };\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n KEY_DOWN_COMMAND,\n (event: KeyboardEvent) => {\n if (event.key === 'Escape' && isVisibleRef.current) {\n event.preventDefault();\n closeFlyout();\n return true;\n }\n return false;\n },\n COMMAND_PRIORITY_LOW\n ),\n\n editor.registerRootListener((rootElement, prevRootElement) => {\n if (prevRootElement) {\n prevRootElement.removeEventListener('scroll', handleOnScroll);\n }\n\n if (rootElement) {\n rootElement.addEventListener('scroll', handleOnScroll);\n }\n })\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [editor]);\n\n return (\n <div className={styles['editor__toolbar-button-group']}>\n <div className={styles['editor__toolbar-button-flyoutwrapper']}>\n <button\n onClick={openFlyout}\n title={t.links.linkTooltip}\n className={clsx(\n styles['editor__toolbar-button'],\n styles[`editor__toolbar-button--link`],\n isLink.active && styles['editor__toolbar-button--active']\n )}\n aria-label={t.aria.labels.link}\n aria-keyshortcuts={t.aria.keyshortcuts.link}\n type=\"button\"\n ref={linkButtonRef}\n >\n <Icon name=\"Link\" size={20} />\n </button>\n {flyout}\n </div>\n </div>\n );\n};\n","import { clsx } from 'clsx';\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';\nimport { CAN_UNDO_COMMAND, CAN_REDO_COMMAND, UNDO_COMMAND, REDO_COMMAND } from 'lexical';\nimport { useEffect, useState } from 'react';\n\nimport { Icon } from 'components';\nimport styles from 'components/RteEditor/RteEditor.module.css';\nimport { useTranslation } from 'components/RteEditor/hooks/useTranslation';\n\nexport const HistoryPlugin = () => {\n const t = useTranslation();\n const [editor] = useLexicalComposerContext();\n const [canUndo, setCanUndo] = useState(false);\n const [canRedo, setCanRedo] = useState(false);\n\n const handleUndo = () => {\n editor.dispatchCommand(UNDO_COMMAND, undefined);\n };\n\n const handleRedo = () => {\n editor.dispatchCommand(REDO_COMMAND, undefined);\n };\n\n useEffect(() => {\n return editor.registerCommand<boolean>(\n CAN_UNDO_COMMAND,\n (payload) => {\n setCanUndo(payload);\n return false;\n },\n 1\n );\n }, [editor]);\n\n useEffect(() => {\n return editor.registerCommand<boolean>(\n CAN_REDO_COMMAND,\n (payload) => {\n setCanRedo(payload);\n return false;\n },\n 1\n );\n }, [editor]);\n\n return (\n <div className={styles['editor__toolbar-button-group']}>\n <button\n onClick={handleUndo}\n className={clsx(styles['editor__toolbar-button'], styles[`editor__toolbar-button--undo`])}\n aria-label={t.aria.labels.undo}\n aria-keyshortcuts={t.aria.keyshortcuts.undo}\n disabled={!canUndo}\n title={t.format.undoTooltip}\n type=\"button\"\n >\n <Icon name=\"StepBack\" size={24} />\n </button>\n <button\n onClick={handleRedo}\n className={clsx(styles['editor__toolbar-button'], styles[`editor__toolbar-button--redo`])}\n aria-label={t.aria.labels.redo}\n aria-keyshortcuts={t.aria.keyshortcuts.redo}\n disabled={!canRedo}\n title={t.format.redoTooltip}\n type=\"button\"\n >\n <Icon name=\"StepForwards\" size={24} />\n </button>\n </div>\n );\n};\n",".tableform {\n width: 18rem;\n}\n\n.tableform__input-field {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n margin-bottom: 0.75rem;\n}\n\n.tableform__footer {\n display: flex;\n gap: 0.5rem;\n justify-content: flex-end;\n margin-top: 1rem;\n}\n","import { useState, forwardRef, useImperativeHandle, useRef, useId, useEffect } from 'react';\n\nimport type { ChangeEvent } from 'react';\n\nimport styles from './AddTableFrom.module.css';\n\nimport { Button, FormField, InputField, Label } from 'components';\nimport { useTranslation } from 'components/RteEditor/hooks/useTranslation';\nimport { removeScrollableContainers, setScrollableContainers } from 'components/RteEditor/helpers';\n\ninterface AddTableFormProps {\n onCloseHandler: () => void;\n onSaveHandler: (nrfOfRows: number, nrOfColumns: number) => void;\n}\n\nexport interface addTableForm {\n clearForm: () => void;\n focusFirstField: () => void;\n}\n\nexport const AddTableForm = forwardRef(({ onCloseHandler, onSaveHandler }: AddTableFormProps, ref) => {\n const t = useTranslation();\n const [rowCount, setRowCount] = useState<number>();\n const [columnCount, setColumnCount] = useState<number>();\n const firstField = useRef<HTMLInputElement>(null);\n const rowId = `row_${useId()}`;\n const columnId = `column_${useId()}`;\n\n const handleDimentionChange = (event: ChangeEvent<HTMLInputElement>, type: string) => {\n const value = event.target.value;\n type === 'row' ? setRowCount(parseInt(value)) : setColumnCount(parseInt(value));\n };\n\n const handleSave = () => {\n if (rowCount !== undefined && columnCount !== undefined) {\n onSaveHandler(rowCount, columnCount);\n resetForm();\n }\n };\n\n const handleClose = () => {\n onCloseHandler();\n resetForm();\n };\n\n const resetForm = () => {\n setRowCount(undefined);\n setColumnCount(undefined);\n };\n\n useImperativeHandle(ref, () => ({\n clearForm: resetForm,\n focusFirstField: () => firstField.current?.focus(),\n }));\n\n useEffect(() => {\n const handleResizeScroll = () => {\n handleClose();\n };\n\n setScrollableContainers(handleResizeScroll);\n\n window.addEventListener('scroll', handleResizeScroll);\n window.addEventListener('resize', handleResizeScroll);\n\n return () => {\n window.removeEventListener('scroll', handleResizeScroll);\n window.removeEventListener('resize', handleResizeScroll);\n removeScrollableContainers(handleResizeScroll);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <div className={styles['tableform']}>\n <FormField className={styles['tableform__input-field']}>\n <Label htmlFor={rowId}>{t.table.nrofRows}</Label>\n <InputField\n id={rowId}\n placeholder={t.table.nrofRowsPlaceholder}\n value={rowCount ? rowCount : ''}\n onChange={(event) => handleDimentionChange(event, 'row')}\n aria-label={t.aria.labels.tableRowfield}\n ref={firstField}\n />\n </FormField>\n <FormField className={styles['tableform__input-field']}>\n <Label htmlFor={columnId}>{t.table.nrofColumns}</Label>\n <InputField\n id={columnId}\n placeholder={t.table.nrofColumnsPlaceholder}\n value={columnCount ? columnCount : ''}\n onChange={(event) => handleDimentionChange(event, 'column')}\n aria-label={t.aria.labels.tableColumnfield}\n />\n </FormField>\n <div className={styles['tableform__footer']}>\n <Button variant={'secondary'} onClick={handleClose} aria-label={t.common.cancel}>\n {t.common.cancel}\n </Button>\n <Button\n variant={'primary'}\n onClick={handleSave}\n disabled={!rowCount || !columnCount}\n aria-label={t.aria.labels.tableOkButton}\n >\n {t.common.add}\n </Button>\n </div>\n </div>\n );\n});\n","import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';\nimport { clsx } from 'clsx';\nimport { $getTableCellNodeFromLexicalNode, $isTableCellNode, TableCellNode } from '@lexical/table';\nimport {\n $getSelection,\n $isRangeSelection,\n $getRoot,\n KEY_DOWN_COMMAND,\n $isNodeSelection,\n COMMAND_PRIORITY_CRITICAL,\n} from 'lexical';\nimport { $getNearestNodeOfType } from '@lexical/utils';\nimport { useRef, useEffect, useImperativeHandle, forwardRef } from 'react';\n\nimport type { TableNode } from '@lexical/table';\nimport type { JSX } from 'react';\nimport type { TextNode } from 'lexical';\nimport type { addTableForm } from './AddTableFrom';\nimport type { Actions } from './TableCellContextMenu';\n\nimport { AddTableForm } from './AddTableFrom';\nimport {\n createTable,\n DEFAULT_COL_WIDTH,\n DEFAULT_EDITOR_WIDTH,\n deleteColumn,\n deleteRow,\n deleteTable,\n getEditorContentWidth,\n getEditorParrentCellWidth,\n insertColumn,\n insertRow,\n PREVENT_OPEN_DELAY,\n} from './helpers';\n\nimport { $createTableWrapperNode } from 'components/RteEditor/nodes';\nimport { useFlyout } from 'components/RteEditor/hooks/useFlyout';\nimport { Icon } from 'components';\nimport styles from 'components/RteEditor/RteEditor.module.css';\nimport { useTranslation } from 'components/RteEditor/hooks/useTranslation';\n\ninterface TablePluginProps {\n isActive: boolean;\n}\nexport interface TableMutation {\n mutateTable: (type: Actions) => void;\n}\n\nexport const TablePlugin = forwardRef(({ isActive }: TablePluginProps, ref): JSX.Element => {\n const t = useTranslation();\n const [editor] = useLexicalComposerContext();\n const { flyout, showFlyout, hideFlyout, isVisible } = useFlyout();\n const addTableForm = useRef<addTableForm>(undefined);\n const buttonRef = useRef<HTMLButtonElement>(null);\n const preventOpen = useRef(false);\n const isVisibleRef = useRef(isVisible);\n\n const openFlyout = () => {\n const rect = buttonRef.current?.getBoundingClientRect();\n if (!preventOpen.current && rect) {\n showFlyout({ position: { top: rect.bottom, left: rect.left }, ...flyoutOptions });\n }\n };\n\n const closeFlyout = () => {\n hideFlyout();\n };\n\n const insertTable = (nrOfRows: number, nrOfColumns: number) => {\n editor.update(() => {\n const selection = $getSelection();\n const tableNode = createTable(nrOfRows, nrOfColumns);\n\n const anchorNode =\n ($isRangeSelection(selection) && selection.anchor.getNode()) ||\n ($isNodeSelection(selection) && selection.getNodes()[0]) ||\n null;\n\n const willBeNested = anchorNode ? $getNearestNodeOfType(anchorNode, TableCellNode) : null;\n\n const availibleWidth = willBeNested\n ? getEditorParrentCellWidth(willBeNested, nrOfColumns, editor)\n : getEditorContentWidth(editor) || DEFAULT_EDITOR_WIDTH;\n\n const perCol = Math.max(DEFAULT_COL_WIDTH, Math.floor(availibleWidth / Math.max(1, nrOfColumns)));\n\n const colWidths = Array.from({ length: nrOfColumns }, () => perCol);\n\n (tableNode as TableNode).setColWidths(colWidths);\n\n const tableWrapper = $createTableWrapperNode();\n tableWrapper.append(tableNode);\n if ($isRangeSelection(selection)) {\n selection.insertNodes([tableWrapper]);\n } else {\n $getRoot().append(tableWrapper);\n }\n const firstDescendant = tableWrapper.getFirstDescendant();\n if (firstDescendant) {\n (firstDescendant as TextNode).select();\n }\n });\n\n closeFlyout();\n };\n\n const mutateTable = (action: Actions) => {\n editor.update(() => {\n const selection = $getSelection();\n if ($isRangeSelection(selection)) {\n const anchorNode = selection.anchor.getNode();\n const currentNode = $getTableCellNodeFromLexicalNode(anchorNode);\n\n if ($isTableCellNode(currentNode)) {\n switch (action) {\n case 'insertRowAbove':\n case 'insertRowBelow':\n insertRow(currentNode, action);\n break;\n case 'deleteRow':\n deleteRow(currentNode);\n break;\n case 'insertColumnLeft':\n case 'insertColumnRight':\n insertColumn(currentNode, action);\n break;\n case 'deleteColumn':\n deleteColumn(currentNode);\n break;\n case 'deleteTable':\n deleteTable(currentNode);\n break;\n }\n }\n }\n });\n };\n\n const flyoutOptions = {\n children: (\n <AddTableForm\n onCloseHandler={closeFlyout}\n onSaveHandler={(rows, columns) => insertTable(rows, columns)}\n ref={addTableForm}\n />\n ),\n };\n\n useEffect(() => {\n if (!isVisible) {\n addTableForm.current?.clearForm();\n setTimeout(() => (preventOpen.current = false), PREVENT_OPEN_DELAY);\n } else {\n preventOpen.current = true;\n addTableForm.current?.focusFirstField();\n }\n }, [addTableForm, isVisible]);\n\n useEffect(() => {\n const removeKeyboardShortcut = editor.registerCommand(\n KEY_DOWN_COMMAND,\n (event: KeyboardEvent) => {\n if (event.ctrlKey && event.shiftKey && event.code === 'Digit9') {\n event.preventDefault();\n openFlyout();\n return true;\n }\n return false;\n },\n COMMAND_PRIORITY_CRITICAL\n );\n\n return () => {\n removeKeyboardShortcut();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [editor]);\n\n useEffect(() => {\n isVisibleRef.current = isVisible;\n }, [isVisible]);\n\n useEffect(() => {\n const removeKeydown = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && isVisibleRef.current) {\n event.preventDefault();\n event.stopPropagation();\n closeFlyout();\n }\n };\n\n document.addEventListener('keydown', removeKeydown, { capture: true });\n\n return () => {\n document.removeEventListener('keydown', removeKeydown);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useImperativeHandle(ref, () => ({\n mutateTable,\n }));\n\n return (\n <div className={styles['editor__toolbar-button-group']}>\n <div className={styles['editor__toolbar-button-flyoutwrapper']}>\n <button\n onClick={openFlyout}\n title={t.table.tableTooltip}\n className={clsx(styles['editor__toolbar-button'], isActive && styles[`editor__toolbar-button--active`])}\n aria-label={t.aria.labels.table}\n aria-keyshortcuts={t.aria.keyshortcuts.table}\n ref={buttonRef}\n type=\"button\"\n >\n <Icon name=\"Table\" size={24} />\n </button>\n {flyout}\n </div>\n </div>\n );\n});\n",".editor-header__container {\n align-items: flex-start;\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: flex-start;\n max-width: calc(100% - 5rem);\n}\n\n.editor-header__info {\n color: var(--color-grey-700);\n font-size: var(--font-size-text-non-essential);\n}\n","import { useId } from 'react';\n\nimport styles from './EditorHeader.module.css';\n\nimport { Label } from 'components';\n\ninterface EditorHeaderProps {\n label: string;\n info?: string;\n required?: boolean;\n}\n\nexport const EditorHeader = ({ label, info = '', required = false }: EditorHeaderProps) => {\n const infoId = `info_${useId()}`;\n\n return (\n <div className={styles['editor-header__container']}>\n {label !== '' && (\n <div>\n <Label htmlFor={infoId} required={required}>\n {label}\n </Label>\n </div>\n )}\n {info !== '' && <div className={styles['editor-header__info']} dangerouslySetInnerHTML={{ __html: info }} />}\n </div>\n );\n};\n","import { LexicalComposer } from '@lexical/react/LexicalComposer';\nimport { RichTextPlugin } from '@lexical/react/LexicalRichTextPlugin';\nimport { ContentEditable } from '@lexical/react/LexicalContentEditable';\nimport { LexicalErrorBoundary } from '@lexical/react/LexicalErrorBoundary';\nimport { OnChangePlugin } from '@lexical/react/LexicalOnChangePlugin';\nimport { $generateHtmlFromNodes, $generateNodesFromDOM } from '@lexical/html';\nimport { $getRoot, $insertNodes, $setSelection, createEditor } from 'lexical';\nimport { ListItemNode, ListNode } from '@lexical/list';\nimport { ListPlugin } from '@lexical/react/LexicalListPlugin';\nimport { LinkPlugin } from '@lexical/react/LexicalLinkPlugin';\nimport { AutoLinkNode, LinkNode } from '@lexical/link';\nimport { TableCellNode, TableNode, TableRowNode } from '@lexical/table';\nimport { AutoLinkPlugin } from '@lexical/react/LexicalAutoLinkPlugin';\nimport { ClickableLinkPlugin } from '@lexical/react/LexicalClickableLinkPlugin';\nimport { HistoryPlugin } from '@lexical/react/LexicalHistoryPlugin';\nimport { TablePlugin } from '@lexical/react/LexicalTablePlugin';\nimport { useEffect, useId, useState } from 'react';\nimport { clsx } from 'clsx';\nimport { EditorRefPlugin } from '@lexical/react/LexicalEditorRefPlugin';\n\nimport type { RefObject } from 'react';\nimport type { EditorState, LexicalEditor } from 'lexical';\nimport type { SearchResponse } from './Plugins/CourseCataloguePlugin/AddCatalogueLinkForm';\n\nimport { exportMap, mergeBoldStrongTags, cleanUpTable } from './helpers';\nimport { MATCHERS, validateUrl } from './Plugins/LinkPlugin/helpers';\nimport styles from './RteEditor.module.css';\nimport { ToolBarPlugin, PasteHandlerPlugin, TableCellResizerPlugin } from './Plugins';\nimport { UvaTheme } from './UvaTheme';\nimport { EditorHeader } from './EditorHeader';\nimport { LanguageProvider, useLanguage } from './Providers/LanguageProvider';\nimport { useTranslation } from './hooks/useTranslation';\nimport { TableWrapperNode, CourseCatalogueNode, CourseCatalogueLinkPlugin } from './nodes';\n\nimport { FeedbackBox } from 'components/FeedbackBox';\n\nexport interface RteEditorProps {\n /** current language setting for the editor labels NOT title ans label */\n currentLanguage?: 'NL' | 'EN' | 'nl' | 'en';\n /** unique id mandatory for the rte */\n editorId: string;\n /** imported content to edit */\n initialValue?: string;\n /** placeholder text in current Language */\n placeholder?: string;\n /** label/title of the RTE in current Language */\n label?: string;\n /** explanation of the text to be filled in, in current Language */\n info?: string;\n /** 'true' the rte field mandatory */\n required?: boolean;\n /** `true` to color border red to show not valid; otherwise, `false`. */\n notValid?: boolean;\n /** error text to display if required and field is empty */\n notValidatedText?: string;\n /** max height in rem default = 20rem*/\n maxHeightInRem?: `${number}rem`;\n /** max number of words 'allowed' but not enforced */\n maxWords?: number;\n /** Ref to the Lexical editor instance */\n rteRef?: RefObject<LexicalEditor> | null;\n /** updated output */\n onChange: (content: string) => void;\n /** callback for catalogue link search */\n onCatalogueLinkSearch?: (query: string, type: 'course' | 'programme') => void;\n /** updated catalogue search results */\n catalogueSearchResponse?: SearchResponse;\n}\n\nexport const Rte = ({\n currentLanguage = 'NL',\n editorId,\n initialValue = '',\n placeholder = '',\n label = '',\n info = '',\n required = false,\n notValid = false,\n notValidatedText = '',\n maxHeightInRem = '20rem',\n maxWords,\n rteRef = null,\n onChange,\n onCatalogueLinkSearch,\n catalogueSearchResponse = { state: 'idle', results: [] },\n}: RteEditorProps) => {\n const { switchLanguage } = useLanguage();\n const t = useTranslation();\n const [editor] = useState(() => createEditor());\n const [wordCount, setWordCount] = useState(0);\n const [scrollTopPosition, setScrollTopPosition] = useState(0);\n const rteId = useId();\n\n const initialConfig = {\n html: {\n export: exportMap,\n },\n namespace: `UvaRte-${editorId.replace(/\\s+/g, '-').toLowerCase()}`,\n editor,\n theme: UvaTheme,\n onError(error: Error) {\n throw error;\n },\n nodes: [\n ListNode,\n ListItemNode,\n LinkNode,\n AutoLinkNode,\n TableCellNode,\n TableRowNode,\n TableNode,\n TableWrapperNode,\n CourseCatalogueNode,\n ],\n editorState: (editor: LexicalEditor) => {\n const parser = new DOMParser();\n const dom = parser.parseFromString(initialValue, 'text/html');\n const nodes = $generateNodesFromDOM(editor, dom);\n const root = $getRoot();\n root.clear();\n $insertNodes(nodes);\n $setSelection(null);\n },\n };\n\n const getWordCount = (plainText: string): number => {\n if (plainText.trim().length === 0) {\n return 0;\n } else {\n return plainText.split(' ').length;\n }\n };\n\n const handleOnChange = (editorState: EditorState, editor: LexicalEditor): void => {\n editorState.read(() => {\n let htmlContent = '';\n setWordCount(getWordCount($getRoot().getTextContent().replace(/\\s+/g, ' ').trim()));\n htmlContent = mergeBoldStrongTags($generateHtmlFromNodes(editor));\n htmlContent = cleanUpTable(htmlContent);\n onChange(htmlContent);\n });\n };\n\n useEffect(() => {\n switchLanguage(currentLanguage.toUpperCase() as 'NL' | 'EN');\n }, [currentLanguage, switchLanguage]);\n\n useEffect(() => {\n const strippedInitialValue = initialValue\n .replace(/<br\\s*\\/?>|&nbsp;/gi, ' ')\n .replace(/<\\/?[^>]+(>|$)|&[a-z]+;/g, '')\n .replace(/\\s+/g, ' ')\n .trim();\n setWordCount(getWordCount(strippedInitialValue));\n }, [initialValue]);\n\n return (\n <div className={styles['editor__container']}>\n {(label || info || maxWords) && (\n <div className={styles['editor__header']}>\n <EditorHeader label={label} info={info} required={required} />\n {maxWords && maxWords > 0 && (\n <div className={styles['editor__header-word-count']}>\n <span className={clsx({ [styles['editor__header-word-count--alert']]: wordCount > maxWords })}>\n {wordCount}\n </span>\n &nbsp;/&nbsp;{maxWords}\n </div>\n )}\n </div>\n )}\n <div\n className={clsx(styles['editor'], {\n [styles['not-valid']]: notValid,\n })}\n >\n <LexicalComposer initialConfig={initialConfig}>\n <ToolBarPlugin\n editorScrollPosition={scrollTopPosition}\n onCatalogueLinkSearch={onCatalogueLinkSearch}\n catalogueSearchResponse={catalogueSearchResponse}\n />\n <div className={styles['editor__field-wrapper']}>\n <RichTextPlugin\n contentEditable={\n <ContentEditable\n className={styles['editor__field']}\n aria-label={t.common.rteAriaLabel}\n aria-placeholder={placeholder}\n title={t.common.rteTitle}\n placeholder={<div className={styles['editor__placeholder']}>{placeholder}</div>}\n spellCheck={false}\n id={`${rteId}_rteEditor`}\n style={{ height: `${maxHeightInRem}`, maxHeight: `${maxHeightInRem}` }}\n onScroll={(event) => setScrollTopPosition(event.currentTarget.scrollTop)}\n />\n }\n placeholder={<div className={styles['editor__placeholder']}>{placeholder}</div>}\n ErrorBoundary={LexicalErrorBoundary}\n />\n <TablePlugin />\n <TableCellResizerPlugin />\n <HistoryPlugin />\n <ListPlugin />\n <LinkPlugin validateUrl={validateUrl} />\n <AutoLinkPlugin matchers={MATCHERS} />\n <ClickableLinkPlugin />\n <OnChangePlugin onChange={handleOnChange} />\n <PasteHandlerPlugin />\n <CourseCatalogueLinkPlugin />\n {rteRef && <EditorRefPlugin editorRef={rteRef} />}\n </div>\n </LexicalComposer>\n </div>\n {notValidatedText !== '' && <FeedbackBox level=\"error\" feedback={notValidatedText} />}\n </div>\n );\n};\n\nexport const RteEditor = ({\n currentLanguage = 'NL',\n editorId,\n initialValue = '',\n placeholder = '',\n label = '',\n info = '',\n required = false,\n notValid = false,\n notValidatedText = '',\n maxWords,\n rteRef,\n onChange,\n onCatalogueLinkSearch,\n catalogueSearchResponse = { state: 'idle', results: [] },\n}: RteEditorProps) => (\n <LanguageProvider>\n <Rte\n currentLanguage={currentLanguage.toUpperCase() as 'NL' | 'EN'}\n editorId={editorId}\n initialValue={initialValue}\n placeholder={placeholder}\n label={label}\n info={info}\n required={required}\n notValid={notValid}\n notValidatedText={notValidatedText}\n maxWords={maxWords}\n rteRef={rteRef}\n onChange={onChange}\n onCatalogueLinkSearch={onCatalogueLinkSearch}\n catalogueSearchResponse={catalogueSearchResponse}\n />\n </LanguageProvider>\n);\n"],"x_google_ignoreList":[10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GCwCa,MAAgB,EAC3B,UACA,iBACA,mBACA,wBAAqB,IACrB,kBACuB;CACvB,IAAM,IAAe,EAA2D,CAAC,CAAC,GAC5E,CAAC,GAAQ,KAAa,EAAmB,CAAC,CAAC,GAC3C,EAAE,gBAAa,EAAc,GAE7B,KAAkB,GAAmB,MAA+B;EACxE,IAAI,EAAQ,WAAW,EAAQ,QAAQ,OAAO;EAE9C,IAAM,KAAiB,MACrB,EAAK,QAAQ,GAA6B,OACxC,EAAI,MAAQ,EAAI,MAAQ,KAAK,GACtB,IACN,CAAC,CAAC,GAED,IAAkB,EAAc,CAAO,GACvC,IAAkB,EAAc,CAAO;EAE7C,OAAO,CAAC,OAAO,KAAK,CAAe,EAAE,MAAM,MAAQ,EAAgB,OAAS,EAAgB,EAAI;CAClG,GAEM,KAAmB,OAClB,EAAa,QAAQ,OACxB,EAAa,QAAQ,KAAO,GAAU,IAEjC,EAAa,QAAQ,KAGxB,UAAiB;EACrB,IAAM,IAAsB,CAAC;EAQ7B,AAPA,OAAO,QAAQ,EAAa,OAAO,EAAE,SAAS,CAAC,OAAS;GACtD,IAAM,IAAS,EAAa,QAAQ,GAAK;GACzC,AAAI,KAAU,EAAO,KAAK,QAAQ,OAAO,MAAM,MAAM,EAAO,WAC1D,EAAU,KAAK,EAAO,KAAK;EAE/B,CAAC,GACD,EAAU,CAAS,GACf,KAAU,EAAS,CAAS;CAClC,GAEM,KAAsB,MAA2B;EACrD,IAAI,MAAmB,IAAI;EAE3B,IAAM,IAAyB,CAAC;EAEhC,OAAO,QAAQ,EAAa,OAAO,EAAE,SAAS,CAAC,OAAS;GACtD,IAAM,IAAS,EAAa,QAAQ,GAAK;GACpC,KACD,GAAQ,aAAa,gBAAgB,MAAM,KAC7C,EAAY,KAAK,EAAO,OAAO;EAEnC,CAAC;EAED,IAAM,IAAQ,EAAY,MAAM,OAAO,GACjC,IAAO,EAAY,KAAK,OAAO;EAErC,AAAI,EAAa,QAAQ,GAAgB,YACvC,EAAa,QAAQ,GAAgB,QAAQ,UAAU,GACvD,EAAa,QAAQ,GAAgB,QAAQ,gBAAgB,CAAC,KAAS,MAAU,GACjF,EAAa,QAAQ,GAAgB,QAAQ,UAAU,KAAS,MAAU;CAE9E,GAEM,KAAyB,GAA4B,MAA8B;EACvF,IAAM,IAAW,GAAW,cAAc,WAAW;EAUrD,AARA,EAAS,WAAW,GAAe,UAAU,OAAO,EAAO,wCAAwC,GACnG,GACI,QAAQ,WAAW,GACnB,aACA,iBACA,GAAW,QAAQ,WAAW,GAAG,aAAa,eAAe,MAAM,UAAU,SAAS,OACxF,GAEE,KACF,EAAS,UAAU,OAAO,EAAO,kCAAkC;CAEvE,GAEM,KAAmD,MAAU;EACjE,IAAM,IAAQ,EAAM;EAEhB,QAAM,SAAS,cAAc,EAAM,SAAS,WAEhD;OACE,EAAS,MACT,EAAM,KAAK,QAAQ,OAAO,MAAM,MAChC,EAAM,cACL,EAAM,WAAW,WAA2B,aAAa,eAAe,MAAM,SAC/E;IAEA,AADA,EAAM,eAAe,GACrB,EAAsB,EAAM,YAAiC,EAAM,WAAW,UAAyB;IACvG;GACF;GAEA,IAAI,EAAM,KAAK,QAAQ,OAAO,MAAM,IAAI;IACtC,IAAM,IAAc,EAAM;IAU1B,AATA,OAAO,QAAQ,EAAa,OAAO,EAAE,SAAS,CAAC,OAAS;KACtD,IAAI,EAAI,QAAQ,GAAG,EAAY,EAAE,MAAM,IAAI;MACzC,IAAM,IAAS,EAAa,QAAQ,GAAK,SACnC,IAAiB,EAAa,QAAQ,GAAa;MACzD,IAAI,CAAC,KAAU,CAAC,GAAgB;MAChC,EAAO,UAAU,IAAe;KAClC;IACF,CAAC,GACD,EAAmB,CAAW,GAC9B,EAAS;IACT;GACF;GAEA,AADA,EAAmB,EAAM,aAAa,gBAAgB,KAAK,EAAE,GAC7D,EAAS;EAjBT;CAkBF,GAEM,KAAwD,MAAU;EACtE,IAAM,IAAS,EAAM;EAErB,EAAsB,GADP,EAAO,QAAQ,WACA,CAAM;CACtC;CA8BA,OA5BA,QAAgB;EACd,AAAI,KAAkB,CAAC,EAAe,GAAgB,CAAM,KAC1D,OAAO,QAAQ,EAAa,OAAO,EAAE,SAAS,CAAC,OAAS;GACtD,IAAM,IAAS,EAAa,QAAQ,GAAK;GACpC,MACD,GAAgB,SAAS,EAAO,KAAK,IACvC,EAAO,UAAU,KAEjB,EAAO,UAAU,IAEf,EAAO,KAAK,QAAQ,OAAO,MAAM,MACnC,EAAU,KAAkB,CAAC,CAAC;EAElC,CAAC;CAGL,GAAG,CAAC,CAAc,CAAC,GAEnB,QAAgB;EACd,OAAO,QAAQ,EAAa,OAAO,EAAE,SAAS,CAAC,OAAS;GACtD,IAAM,IAAS,EAAa,QAAQ,GAAK;GACpC,KACD,EAAO,KAAK,QAAQ,OAAO,MAAM,MACnC,EAAmB,EAAO,IAAI;EAElC,CAAC;CACH,GAAG,CAAC,CAAM,CAAC,GAGT,kBAAC,OAAD,EAAA,UAAA,CACG,KAAS,kBAAC,QAAD;EAAM,WAAW,EAAO;YAA2B;CAAY,CAAA,GAEzE,kBAAC,OAAD;EAAK,SAAS;EAAc,WAAA;EAAQ,MAAK;EAAO,UAAU;YACvD,EAAa,KAAK,EAAE,aAAU,eAAY,MACzC,kBAAC,OAAD;GAEE,WAAW,EAAO;GAClB,WAAA;GACA,iBAAe,EAAS,KAAK,UAAU;aAJzC,CAME,kBAAC,GAAD;IAAW,QAAA;IAAO,WAAW,EAAO;cAApC;KACE,kBAAC,GAAD;MAAQ,SAAQ;MAAQ,SAAS;gBAC/B,kBAAC,GAAD;OACE,MAAK;OACL,MAAM;OACN,WAAW,EAAK,EAAO,gCAAgC,GACpD,EAAO,2CAA2C,CAAC,EAAS,GAC/D,CAAC;MACF,CAAA;KACK,CAAA;KACR,kBAAC,GAAD;MACE,IAAI;MACJ,MAAM,QAAQ;MACd,UAAU,EAAS,OAAO,MAAa,EAAS,QAAQ;MACxD,KAAK,EAAgB,QAAQ,GAAO;KACrC,CAAA;KACD,kBAAC,GAAD;MAAO,SAAS;MAAU,cAAc;gBACrC;KACI,CAAA;IACE;OACX,kBAAC,OAAD;IACE,WAAW,EAAK,EAAO,0BAA0B,GAC9C,EAAO,qCAAqC,CAAC,EAAS,GACzD,CAAC;IACD,WAAA;cAEC,EAAS,KAAK,EAAE,aAAU,cAAW,kBACpC,kBAAC,OAAD;KAAoB,WAAW,EAAO;KAAwB,WAAA;eAC5D,kBAAC,GAAD;MAAW,QAAA;MAAO,WAAW,EAAO;gBAApC,CACE,kBAAC,GAAD;OACE,IAAI;OACJ,MAAM;OACN,OAAO;OACG;OACV,kBAAgB,QAAQ;OACxB,KAAK,EAAgB,QAAQ,EAAM,GAAG,GAAU;MACjD,CAAA,GACD,kBAAC,GAAD;OAAO,SAAS;OAAU,cAAc;iBACrC;MACI,CAAA,CACE;;IACR,GAdK,CAcL,CACN;GACE,CAAA,CACF;KAjDE,CAiDF,CACN;CACE,CAAA,CACF,EAAA,CAAA;AAET;;;;;;;;GE5Na,MAAa,EACxB,OACA,UACA,mBAAgB,OAChB,UAAO,QACP,cAAW,IACX,cAAW,IACX,sBAAmB,IACnB,aACA,cACA,iBAAc,IACd,qBACoB;CACpB,IAAM,KAAoB,MACxB;EAAC;EAAK;EAAK;EAAK;CAAG,EAAE,SAAS,EAAM,GAAG,KAAK,EAAM,eAAe,GAE7D,KAAgB,MAA+C;EACnE,AAAI,OAAO,KAAa,cACtB,EAAS,EAAM,OAAO,KAAK;CAE/B,GAEM,IACJ,kBAAA,IAAA,EAAA,UAAA,CACG,KACC,kBAAC,GAAD;EAAO,SAAS;EAAc;EAAU,YAAA;YACrC;CACI,CAAA,GAGT,kBAAC,OAAD;EAAK,WAAW,EAAO;YAAvB,CACG,KAGC,kBAAC,OAAD;GAAK,WAAW,EAAO;aACrB,kBAAC,SAAD;IACM;IACE;IACN,GAAK,MAAS,YAAY,EAAE,WAAW,EAAiB;IACxD,UAAU;IACV,WAAW,EAAK,EAAO,sBAAsB,GAC1C,EAAO,eAAe,EACzB,CAAC;IACD,GAAK,IAAY,EAAE,aAAU,IAAI,CAAC;GACnC,CAAA;EACE,CAAA,GAEN,MAAqB,MAAM,kBAAC,GAAD;GAAa,OAAM;GAAQ,UAAU;EAAmB,CAAA,CACjF;GACL,EAAA,CAAA;CAGJ,OAAO,IACL,IAEA,kBAAC,OAAD;EAAK,WAAW,EAAK,EAAO,0BAA0B,EAAO,gCAAgC,IAAgB;YAC1G;CACE,CAAA;AAET;;;AClFA,SAAgB,GAAkB,EAAE,UAAO,iBAAc,cAAmC;CAC1F,OACE,kBAAC,UAAD;EAAQ,WAAW,EAAO;YAA1B,CACE,kBAAC,GAAD;GAAO,SAAQ;aAAqB;EAAa,CAAA,GAChD,KACC,kBAAC,GAAD;GAAQ,SAAS;GAAS,SAAS;aAChC;EACK,CAAA,CAEJ;;AAEZ;;;ACFA,IAAa,MAAe,EAAE,gBAAa,IAAM,aAAU,WAAQ,kBACjE,kBAAA,IAAA,EAAA,UAAA,CACG,GACD,kBAAC,OAAD;CACE,WAAW,EAAK,EAAO,iBAAiB,GACrC,EAAO,6BAA6B,EACvC,CAAC;WAED,kBAAC,MAAD;EACE,WAAW,EAAK,EAAO,uBAAuB,GAC3C,EAAO,oCAAoC,EAC9C,CAAC;EACD,IAAG;EAEF;CACC,CAAA;AACD,CAAA,CACL,EAAA,CAAA;AAGJ,GAAY,oBAAoB,IAChC,GAAY,kBAAkB;;;;;;;;;GEjBxB,KAAa,GACb,KAAa,GACb,KAAa,GAEb,KAAuB,GACvB,KAAc,GAEd,MAAgB,MAAgC;CACpD,IAAM,IAAqB,CAAC;CAC5B,KAAK,IAAI,IAAQ,GAAG,IAAQ,EAAM,QAAQ,KAAS,IACjD,EAAO,KAAK,EAAM,MAAM,GAAO,IAAQ,EAAoB,CAAC;CAE9D,OAAO;AACT,GAGa,MAAkB,EAC7B,gBAAa,IACb,kBACA,UACA,mBAAgB,OAChB,cAAW,IACX,sBAAmB,IACnB,kBACyB;CAEzB,IAAM,IAAiB,GADA,MAAM,KAAK,EAAE,QAAQ,EAAW,IAAI,GAAG,MAAU,IAAQ,CAC5C,CAAc,GAE5C,IAAgB,EAAe,KAAK,GAAS,MAC1C,EAAQ,KAAK,OAAY;EAC9B,OAAO,EAAO,SAAS;EACvB,OAAO,EAAO,SAAS;CACzB,EAAE,CACH,GAEK,IAAe,EACnB,EAAe,KAAK,MAClB,EAAS,QAAQ,GAAS,OACpB,GAAe,SAAS,CAAM,KAAG,EAAQ,KAAK,CAAM,GACjD,IACN,CAAC,CAAa,CACnB,CACF,GACM,CAAC,GAAkB,KAAuB,EAAmB,CAAC,CAAC,GAE/D,KAAiB,MACjB,EAAQ,IAAY,WAAW,KAAK,EAAQ,IAAY,WAAW,IAAU,CAAC,EAAU,IACxF,EAAQ,IAAY,WAAW,IAC5B,CAAC,IADqC,CAAC,IAAY,EAAU,GAIhE,KAAgB,GAAkB,MAAkB;EAGxD,AAFA,EAAa,QAAQ,KAAS,EAAO,KAAK,MAAQ,OAAO,CAAG,CAAC,GAC7D,EAAoB,EAAc,EAAa,OAAO,CAAC,GACvD,EAAS,CAAC,GAAG,EAAa,QAAQ,KAAK,CAAC,EAAE,KAAK,CAAC;CAClD;CAMA,OAJA,QAAgB;EACd,EAAoB,EAAc,EAAa,OAAO,CAAC;CACzD,GAAG,CAAC,CAAC,GAGH,kBAAC,OAAD;EACE,WAAW,EACT,GAAO,+BACP,GAAO,qCAAqC,IAC9C;YAJF,CAMG,KACC,kBAAC,GAAD;GAAO,SAAQ;GAAa;aACzB;EACI,CAAA,GAET,kBAAC,OAAD;GAAK,WAAW,GAAO;aAAvB,CACE,kBAAC,OAAD;IAAK,WAAW,GAAO;cACpB,EAAc,KAAK,GAAY,MAC9B,kBAAC,GAAD;KAEc;KACZ,eAAe,EAAa,QAAQ,GAAU,KAAK,MAAQ,EAAI,SAAS,CAAC;KACzE,cAAc,EAAiB,SAAS,CAAQ;KACtC;KACV,cAAc,MAAU,EAAa,GAAO,CAAQ;KACpD,UAAU,MAAqB;IAChC,GAPM,SAAS,GAOf,CACF;GACE,CAAA,GACJ,MAAqB,MAAM,kBAAC,GAAD;IAAa,OAAM;IAAQ,UAAU;GAAmB,CAAA,CACjF;IACF;;AAET;;;;;;;GE9Ea,MAAoB,EAC/B,YACA,mBACA,iBACA,UACA,mBAAgB,OAChB,cAAW,IACX,sBAAmB,IACnB,oBAC2B;CAC3B,IAAM,CAAC,GAAc,KAAmB,EAAwB,KAAgB,IAAI,GAE9E,KAAgB,MAAyC;EAE7D,AADA,EAAgB,EAAM,OAAO,KAAK,GAClC,EAAW,EAAM,OAAO,KAAK;CAC/B;CAEA,OACE,kBAAC,OAAD;EACE,WAAW,EACT,GAAO,6CACP,GAAO,mDAAmD,IAC5D;YAJF,CAMG,KACC,kBAAC,GAAD;GAAO,SAAQ;GAAa;aACzB;EACI,CAAA,GAET,kBAAC,OAAD;GAAK,WAAW,GAAO;aAAvB,CACE,kBAAC,OAAD;IACE,WAAW,EAAK,GAAO,uCAAuC,GAC3D,GAAO,uDAAuD,EACjE,CAAC;cAEA,EAAQ,KAAK,EAAE,UAAO,UAAO,aAAU,kBACtC,kBAAC,GAAD;KACE,MAAK;KACL,MAAM;KAEC;KACA;KACG;KACV,SAAS,MAAiB;KAChB;KACV,YAAY;IACb,GAPM,GAAG,GAOT,CACF;GACE,CAAA,GACJ,MAAqB,MAAM,kBAAC,GAAD;IAAa,OAAM;IAAQ,UAAU;GAAmB,CAAA,CACjF;IACF;;AAET,GCjF4VA,KAAe,OAAO,SAApB,OAAqC,OAAO,aAAhB,KAAK,KAA8B,OAAO,SAAS,kBAAzB,KAAK,GAAkC,KAAEA,KAAEC,IAAEC,GAAEC,KAAE,EAAC,KAAIC,EAAC;AAAE,SAASC,GAAE,EAAC,eAAc,GAAE,UAAS,KAAG;CAAC,IAAM,IAAEC,SAAM;EAAC,IAAK,EAAC,OAAM,GAAE,WAAU,GAAE,OAAM,GAAE,SAAQ,GAAE,aAAY,GAAE,MAAK,MAAG,GAAE,IAAEC,EAAE,MAAK,CAAC,GAAE,IAAEC,EAAE;GAAC,UAAS,EAAE;GAAS,MAAK;GAAE,WAAU;GAAE,OAAM;GAAE,UAAQ,MAAG,EAAE,GAAE,CAAC;GAAE,OAAM;EAAC,CAAC;EAAE,OAAO,SAAS,GAAE,GAAE;GAAI,IAAO,MAAP,MAAgB;QAAY,MAAT,KAAK,GAAM,EAAE,aAAW;KAAC,IAAM,IAAEC,EAAE;KAAE,IAAG,EAAE,QAAQ,GAAE;MAAC,IAAM,IAAEC,EAAE;MAAE,EAAE,OAAO,CAAC;MAAE,IAAM,IAAEV,KAAE,SAAS,gBAAc;MAAK,CAAQW,EAAE,MAAT,QAAmB,MAAP,QAAU,MAAI,EAAE,eAAe,MAAI,EAAE,OAAO;KAAC;IAAC,GAAER,EAAC;SAAO,IAAU,MAAP,MAAS,QAAO,OAAO,GAAd;KAAiB,KAAI,UAAS;MAAC,IAAM,IAAE,EAAE,iBAAiB,CAAC;MAAE,EAAE,eAAe,GAAEA,EAAC;MAAE;KAAK;KAAC,KAAI;MAAS,EAAE,eAAe,GAAEA,EAAC;MAAE;KAAM,KAAI,YAAW,EAAE,aAAW;MAAC,EAAE,EAAE,QAAQ,KAAG,EAAE,CAAC;KAAC,GAAEA,EAAC;IAAC;;EAAC,EAAE,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC;CAAC,GAAE,CAAC,CAAC;CAAE,OAAO,SAAM;EAAC,IAAM,IAAE,EAAE,UAAS,CAAC,KAAG;EAAE,EAAE,YAAqB,MAAT,KAAK,KAAO,CAAC;CAAC,GAAE,CAAC,CAAC,GAAES,EAAEC,EAAE,UAAS;EAAC,OAAM;EAAE,UAAS;CAAC,CAAC;AAAC;;;ACA9pC,IAAMC,KAAEC,EAAE,EAAC,MAAK,+BAA8B,CAAC;;;ACA8D,SAASC,KAAG;CAAC,OAAOC,EAAE,EAAE,eAAe;AAAC;AAAC,SAASC,GAAE,GAAE,IAAE,CAAC,GAAE;CAAC,IAAG,GAAE,OAAM,CAAC;CAAE,IAAI,IAAEF,GAAE;CAAE,OAAO,MAAI,IAAE,EAAE,KAAK,IAAQ,MAAL;AAAM;AAAkC,SAASG,GAAE,GAAE;CAAC,IAAG,CAACD,GAAE,GAAE,CAAC,CAAC,GAAE,OAAM,CAAC;CAAE,IAAM,IAAED,EAAE,EAAE,YAAY,GAAE,IAAE,EAAE;CAAO,IAAG,IAAE,GAAE,OAAM,CAAC;CAAE,KAAI,IAAI,IAAE,GAAE,IAAE,GAAE,KAAI;EAAC,IAAM,IAAE,EAAE;EAAG,IAAGG,GAAE,CAAC,GAAE,OAAM,CAAC;EAAE,IAAGC,GAAE,CAAC,GAAE;GAAmB,IAAf,CAACC,GAAE,CAAC,KAAkB,EAAE,aAAN,GAAe,OAAM,CAAC;GAAE,IAAM,IAAE,EAAE,YAAY,GAAE,IAAE,EAAE;GAAO,KAAI,IAAI,IAAE,GAAE,IAAE,GAAE,KAAI;IAAC,IAAM,IAAE,EAAE;IAAG,IAAG,CAACC,EAAE,CAAC,GAAE,OAAM,CAAC;GAAC;EAAC;CAAC;CAAC,OAAM,CAAC;AAAC;AAAC,SAASC,GAAE,GAAE;CAAC,aAAUL,GAAE,CAAC;AAAC;;;ACAxb,SAAS,GAAE,GAAE;CAAC,IAAM,IAAE,OAAO,SAAS,QAAO,KAAE,MAAG;EAAC,IAAG,EAAE,WAAS,GAAE;EAAO,IAAM,IAAE,EAAE,eAAe;EAAE,IAAG,SAAS,kBAAgB,GAAE;EAAO,IAAM,IAAE,EAAE;EAAK,IAAa,OAAO,KAAjB,UAAmB;GAAC,IAAI;GAAE,IAAG;IAAC,IAAE,KAAK,MAAM,CAAC;GAAC,QAAS;IAAC;GAAM;GAAC,IAAG,KAAyB,EAAE,aAAxB,uBAA8C,EAAE,SAAd,WAAmB;IAAC,IAAM,IAAE,EAAE;IAAQ,IAAG,KAAmB,EAAE,eAAlB,eAA6B;KAAC,IAAM,IAAE,EAAE;KAAK,IAAG,GAAE;MAAC,IAAK,CAAC,GAAE,GAAE,GAAE,GAAE,KAAG;MAAE,EAAE,aAAW;OAAC,IAAM,IAAEM,EAAE;OAAE,IAAGC,EAAE,CAAC,GAAE;QAAC,IAAM,IAAE,EAAE,QAAW,IAAE,EAAE,QAAQ,GAAE,IAAE,GAAE,IAAE;QAAE,IAAGC,EAAE,CAAC,KAAG,KAAG,KAAG,KAAG,MAAI,IAAE,GAAE,IAAE,IAAE,GAAE,EAAE,iBAAiB,GAAE,GAAE,GAAE,CAAC,IAAG,MAAI,KAAQ,MAAL,OAAS,EAAE,cAAc,CAAC,GAAE,IAAE,EAAE,QAAQ,IAAGA,EAAE,CAAC,GAAE;SAAC,IAAE,GAAE,IAAE,IAAE;SAAE,IAAM,IAAE,EAAE,mBAAmB;SAAE,IAAE,IAAE,IAAE,IAAE,GAAE,IAAE,IAAE,IAAE,IAAE,GAAE,EAAE,iBAAiB,GAAE,GAAE,GAAE,CAAC;QAAC;QAAC,EAAE,yBAAyB;OAAC;MAAC,CAAC;KAAC;IAAC;GAAC;EAAC;CAAC;CAAE,OAAO,OAAO,iBAAiB,WAAU,GAAE,CAAC,CAAC,SAAM;EAAC,OAAO,oBAAoB,WAAU,GAAE,CAAC,CAAC;CAAC;AAAC;AAAC,IAAM,KAAEC,EAAE;CAAC,QAAO,GAAE,GAAE,MAAIC,EAAE,CAAC;CAAE,QAAOC,GAAE,EAAC,UAAsB,OAAO,SAApB,IAA0B,CAAC;CAAE,MAAK;CAAkB,WAAU,GAAE,GAAE,MAAIC,SAAM,EAAE,UAAU,EAAE,SAAS,QAAM,KAAK,IAAE,GAAE,CAAC,CAAC;AAAC,CAAC;;;ACA60B,SAAS,GAAG,GAAE,GAAE;CAAC,IAAY,SAAS,wBAAlB,KAAK,GAAiC;EAAC,IAAM,IAAE,SAAS,oBAAoB,GAAE,CAAC;EAAE,OAAc,MAAP,OAAS,OAAK;GAAC,MAAK,EAAE;GAAe,QAAO,EAAE;EAAW;CAAC;CAAC,IAAiB,SAAS,2BAAvB,aAA8C;EAAC,IAAM,IAAE,SAAS,uBAAuB,GAAE,CAAC;EAAE,OAAc,MAAP,OAAS,OAAK;GAAC,MAAK,EAAE;GAAW,QAAO,EAAE;EAAM;CAAC;CAAC,OAAO;AAAI;AAAC,IAAM,IAAgB,OAAO,SAApB,OAAqC,OAAO,aAAhB,KAAK,KAA8B,OAAO,SAAS,kBAAzB,KAAK,GAAkC,KAAG,KAAI,kBAAiB,WAAS,SAAS,eAAa,MAAK,KAAG,KAAI,uBAAuB,KAAK,UAAU,QAAQ,GAAE,KAAG,EAAE,CAAC,KAAI,EAAE,gBAAe,WAAS,OAAK,qBAAoB,IAAI,OAAO,WAAW,OAAO,GAAE,KAAG,KAAI,mBAAmB,KAAK,UAAU,SAAS,KAAG,CAAC,OAAO,UAAS,KAAG,KAAI,UAAU,KAAK,UAAU,SAAS,GAAE,KAAG,KAAI,0BAA0B,KAAK,UAAU,SAAS,KAAG,CAAC,IAAG,KAAG,KAAI,mBAAmB,KAAK,UAAU,SAAS,GAAE,KAAG,KAAI,sBAAsB,KAAK,UAAU,SAAS,KAAG,MAAI,CAAC,IAAG,KAAGC,EAAE,sBAAsB,GAAQ,KAAN,MAAM,UAAWC,GAAE;CAAC,OAAO,UAAS;EAAC,OAAM;CAAO;CAAC,OAAO,MAAM,GAAE;EAAC,OAAO,IAAI,EAAG,EAAE,KAAK;CAAC;CAAC,UAAU,GAAE;EAAC,IAAM,IAAE,SAAS,cAAc,YAAY;EAAE,OAAOC,GAAE,GAAE,EAAE,MAAM,KAAK,GAAE;CAAC;CAAC,UAAU,GAAE,GAAE;EAAC,OAAM,CAAC;CAAC;CAAC,OAAO,YAAW;EAAC,OAAM,EAAC,aAAW,OAAI;GAAC,YAAW;GAAG,UAAS;EAAC,GAAE;CAAC;CAAC,UAAU,GAAE;EAAC,IAAK,EAAC,SAAQ,MAAG,MAAM,UAAU,CAAC;EAAE,IAAGC,EAAE,CAAC,GAAE;GAAC,KAAK,QAAQ,KAAG,EAAE,OAAO,SAAS,cAAc,IAAI,CAAC;GAAE,IAAM,IAAE,KAAK,cAAc;GAAE,MAAI,EAAE,MAAM,YAAU;GAAG,IAAM,IAAE,KAAK,aAAa;GAAE,MAAI,EAAE,MAAI;EAAE;EAAC,OAAM,EAAC,SAAQ,EAAC;CAAC;CAAC,OAAO,WAAW,GAAE;EAAC,OAAO,GAAG,EAAE,eAAe,CAAC;CAAC;CAAC,eAAe,GAAE,GAAE;EAAC,IAAM,IAAEC,EAAG,GAAE,IAAE,KAAK,aAAa;EAAE,OAAO,EAAE,aAAa,CAAC,GAAE,KAAK,YAAY,GAAE,CAAC,GAAE;CAAC;CAAC,kBAAiB;EAAC,IAAM,IAAEA,EAAG;EAAE,OAAO,KAAK,YAAY,EAAE,SAAQ,MAAG,EAAE,OAAO,CAAC,CAAC,GAAE,KAAK,QAAQ,CAAC,GAAE,CAAC;CAAC;CAAC,oBAAmB;EAAC,OAAM,CAAC;CAAC;AAAC;AAAC,SAAS,KAAI;CAAC,OAAOC,GAAG,IAAI,GAAC,CAAC;AAAC;AAAuC,IAAM,KAAN,MAAM,UAAWJ,GAAE;CAAC;CAAM,OAAO,UAAS;EAAC,OAAM;CAAS;CAAC,OAAO,MAAM,GAAE;EAAC,OAAO,IAAI,EAAG,EAAE,OAAM,EAAE,KAAK;CAAC;CAAC,eAAe,GAAE;EAAC,MAAM,eAAe,CAAC,GAAE,KAAK,QAAM,EAAE;CAAK;CAAC,YAAY,IAAE,MAAK,GAAE;EAAC,MAAM,CAAC,GAAE,KAAK,QAAM;CAAC;CAAC,SAAQ;EAAC,OAAO,KAAK,UAAU,EAAE;CAAK;CAAC,OAAO,GAAE;EAAC,IAAM,IAAE,KAAK,YAAY;EAAE,OAAO,EAAE,QAAM,GAAE;CAAC;CAAC,UAAU,GAAE;EAAC,IAAM,IAAE,KAAK,OAAM,IAAE,SAAS,cAAc,CAAC,GAAE,IAAE,EAAE,MAAM;EAAQ,IAAY,MAAT,KAAK,GAAM;GAAC,IAAM,IAAE,EAAE;GAAG,GAAE,GAAE,CAAC;EAAC;EAAC,OAAO;CAAC;CAAC,UAAU,GAAE,GAAE,GAAE;EAAC,OAAO,EAAE,UAAQ,KAAK;CAAK;CAAC,OAAO,YAAW;EAAC,OAAM;GAAC,KAAG,OAAI;IAAC,YAAW;IAAG,UAAS;GAAC;GAAG,KAAG,OAAI;IAAC,YAAW;IAAG,UAAS;GAAC;GAAG,KAAG,OAAI;IAAC,YAAW;IAAG,UAAS;GAAC;GAAG,KAAG,OAAI;IAAC,YAAW;IAAG,UAAS;GAAC;GAAG,KAAG,OAAI;IAAC,YAAW;IAAG,UAAS;GAAC;GAAG,KAAG,OAAI;IAAC,YAAW;IAAG,UAAS;GAAC;GAAG,IAAE,MAAG;IAAC,IAAM,IAAE,EAAE;IAAW,OAAc,MAAP,QAAU,GAAG,CAAC,IAAE;KAAC,mBAAgB,EAAC,MAAK,KAAI;KAAG,UAAS;IAAC,IAAE;GAAI;GAAE,OAAK,MAAG,GAAG,CAAC,IAAE;IAAC,aAAW,OAAI,EAAC,MAAK,GAAG,IAAI,EAAC;IAAG,UAAS;GAAC,IAAE;EAAI;CAAC;CAAC,UAAU,GAAE;EAAC,IAAK,EAAC,SAAQ,MAAG,MAAM,UAAU,CAAC;EAAE,IAAGE,EAAE,CAAC,GAAE;GAAC,KAAK,QAAQ,KAAG,EAAE,OAAO,SAAS,cAAc,IAAI,CAAC;GAAE,IAAM,IAAE,KAAK,cAAc;GAAE,MAAI,EAAE,MAAM,YAAU;GAAG,IAAM,IAAE,KAAK,aAAa;GAAE,MAAI,EAAE,MAAI;EAAE;EAAC,OAAM,EAAC,SAAQ,EAAC;CAAC;CAAC,OAAO,WAAW,GAAE;EAAC,OAAO,GAAG,EAAE,GAAG,EAAE,eAAe,CAAC;CAAC;CAAC,eAAe,GAAE;EAAC,OAAO,MAAM,eAAe,CAAC,EAAE,OAAO,EAAE,GAAG;CAAC;CAAC,aAAY;EAAC,OAAM;GAAC,GAAG,MAAM,WAAW;GAAE,KAAI,KAAK,OAAO;EAAC;CAAC;CAAC,eAAe,GAAE,IAAE,CAAC,GAAE;EAAC,IAAM,IAAE,IAAE,EAAE,OAAO,SAAO,GAAE,IAAE,KAAK,kBAAkB,GAAE,IAAE,CAAC,KAAG,KAAG,EAAE,OAAO,QAAM,EAAE,OAAO,KAAG,MAAI,EAAE,mBAAmB,KAAG,CAAC,IAAEC,EAAG,IAAE,GAAG,KAAK,OAAO,CAAC,GAAE,IAAE,KAAK,aAAa;EAAE,IAAG,EAAE,aAAa,CAAC,GAAE,KAAK,YAAY,GAAE,CAAC,GAAM,MAAJ,KAAO,CAAC,KAAK,QAAQ,KAAG,GAAE;GAAC,IAAM,IAAEA,EAAG;GAAE,EAAE,OAAO,GAAE,KAAK,QAAQ,GAAE,CAAC,CAAC;EAAC;EAAC,OAAO;CAAC;CAAC,kBAAiB;EAAC,IAAM,IAAE,KAAK,QAAQ,IAAEA,EAAG,IAAE,GAAG,KAAK,OAAO,CAAC;EAAE,OAAO,KAAK,YAAY,EAAE,SAAQ,MAAG,EAAE,OAAO,CAAC,CAAC,GAAE,KAAK,QAAQ,CAAC,GAAE,CAAC;CAAC;CAAC,mBAAkB;EAAC,OAAM,CAAC;CAAC;AAAC;AAAC,SAAS,GAAG,GAAE;CAAC,OAAe,EAAE,SAAS,YAAY,MAAhC,UAA4C,EAAE,MAAM,aAAjB;AAAyB;AAAC,SAAS,EAAG,GAAE;CAAC,IAAM,IAAE,EAAE,SAAS,YAAY,GAAM,IAAE;CAAK,OAAa,MAAP,QAAiB,MAAP,QAAiB,MAAP,QAAiB,MAAP,QAAiB,MAAP,QAAiB,MAAP,SAAW,IAAE,GAAG,CAAC,GAAS,EAAE,UAAT,SAAiBE,GAAG,GAAE,CAAC,GAAE,EAAE,UAAU,EAAE,MAAM,SAAS,KAAI,EAAC,MAAK,EAAC;AAAC;AAAC,SAAS,GAAG,GAAE;CAAC,IAAM,IAAE,GAAG;CAAE,OAAc,EAAE,UAAT,SAAiB,EAAE,UAAU,EAAE,MAAM,SAAS,GAAEA,GAAG,GAAE,CAAC,IAAG,EAAC,MAAK,EAAC;AAAC;AAAC,SAAS,GAAG,IAAE,MAAK;CAAC,OAAOD,GAAG,IAAI,GAAG,CAAC,CAAC;AAAC;AAAuC,SAAS,GAAG,GAAE;CAAC,IAAI,IAAE;CAAK,IAAGE,EAAE,GAAE,SAAS,IAAE,IAAE,EAAE,eAAaA,EAAE,GAAE,cAAc,MAAI,IAAE,EAAE,gBAAsB,MAAP,MAAS,OAAM;EAAC,CAAC;EAAE,CAAC;EAAE,CAAC;CAAC;CAAE,IAAM,IAAE,EAAE,OAAM,IAAE,EAAE,SAAS,OAAO,GAAE,IAAE,EAAE,SAAS,WAAW,KAAG,EAAE,SAAS,YAAY;CAAE,OAAM;EAAC;EAAE,MAAM,KAAK,EAAE,KAAK;EAAE;CAAC;AAAC;AAAC,SAAS,GAAG,GAAE;CAAc,OAAOC,GAAZC,GAAE,CAAY,CAAC;AAAC;AAAC,SAAS,GAAG,GAAE;CAAC,KAAI,IAAM,KAAI;EAAC;EAAY;EAAY;CAAY,GAAE,EAAE,UAAU,CAAC,KAAG,EAAE,aAAa,CAAC;AAAC;AAAC,SAAS,GAAG,GAAE;CAAC,OAAOC,EAAE,EAAE,gBAAgBC,KAAE,MAAG;EAAC,IAAM,IAAEC,EAAE;EAAE,OAAM,CAAC,CAACC,EAAE,CAAC,MAAI,EAAE,MAAM,GAAE,CAAC;CAAE,GAAA,CAAG,GAAE,EAAE,gBAAgBC,KAAE,MAAG;EAAC,IAAM,IAAEF,EAAE;EAAE,OAAOG,EAAE,CAAC,KAAG,EAAE,gBAAgB,CAAC,GAAE,CAAC,KAAG,CAAC,CAACF,EAAE,CAAC,MAAI,EAAE,YAAY,GAAE,CAAC;CAAE,GAAA,CAAG,GAAE,EAAE,gBAAgBG,KAAE,MAAG;EAAC,IAAM,IAAEJ,EAAE;EAAE,OAAM,CAAC,CAACG,EAAE,CAAC,MAAI,EAAE,WAAW,CAAC,GAAE,CAAC;CAAE,GAAA,CAAG,GAAE,EAAE,gBAAgBE,KAAE,MAAG;EAAC,IAAM,IAAEL,EAAE;EAAE,OAAM,CAAC,CAACG,EAAE,CAAC,MAAI,EAAE,WAAW,CAAC,GAAE,CAAC;CAAE,GAAA,CAAG,GAAE,EAAE,gBAAgBG,KAAE,MAAG;EAAC,IAAM,IAAEN,EAAE;EAAE,IAAa,OAAO,KAAjB,UAAmB,AAAO,MAAP,QAAU,EAAE,WAAW,CAAC;OAAM;GAAC,IAAU,MAAP,MAAS,OAAM,CAAC;GAAE,IAAM,IAAE,EAAE;GAAa,IAAS,KAAN,MAAQ,GAAE,GAAE,GAAE,CAAC;QAAO,IAAGG,EAAE,CAAC,GAAE;IAAC,IAAM,IAAE,EAAE;IAAK,OAAO,KAAG,EAAE,WAAW,CAAC,GAAE,CAAC;GAAC;EAAC;EAAC,OAAM,CAAC;CAAC,GAAA,CAAG,GAAE,EAAE,gBAAgBI,UAAM;EAAC,IAAM,IAAEP,EAAE;EAAE,OAAM,CAAC,CAACG,EAAE,CAAC,MAAI,EAAE,WAAW,GAAE,CAAC;CAAE,GAAA,CAAG,GAAE,EAAE,gBAAgBK,IAAE,MAAG;EAAC,IAAM,IAAER,EAAE;EAAE,OAAM,CAAC,CAACG,EAAE,CAAC,MAAI,EAAE,WAAW,CAAC,GAAE,CAAC;CAAE,GAAA,CAAG,GAAE,EAAE,gBAAgBM,KAAE,MAAG;EAAC,IAAM,IAAET,EAAE;EAAE,IAAG,CAACG,EAAE,CAAC,KAAG,CAACF,EAAE,CAAC,GAAE,OAAM,CAAC;EAAE,IAAM,IAAE,EAAE,SAAS;EAAE,KAAI,IAAM,KAAK,GAAE;GAAC,IAAM,IAAES,GAAE,IAAE,MAAGC,GAAE,CAAC,KAAG,CAAC,EAAE,SAAS,CAAC;GAAE,AAAO,MAAP,QAAU,EAAE,UAAU,CAAC;EAAC;EAAC,OAAM,CAAC;CAAC,GAAA,CAAG,GAAE,EAAE,gBAAgBC,KAAE,MAAG;EAAC,IAAM,IAAEZ,EAAE;EAAE,OAAM,CAAC,CAACG,EAAE,CAAC,MAAI,EAAE,gBAAgB,CAAC,GAAE,CAAC;CAAE,GAAA,CAAG,GAAE,EAAE,gBAAgBU,SAAM;EAAC,IAAM,IAAEb,EAAE;EAAE,OAAM,CAAC,CAACG,EAAE,CAAC,MAAI,EAAE,gBAAgB,GAAE,CAAC;CAAE,GAAA,CAAG,GAAE,EAAE,gBAAgBW,UAAM;EAAC,IAAM,IAAEC,GAAE,GAAE,IAAEf,EAAE;EAAE,OAAOG,EAAE,CAAC,MAAI,EAAE,UAAU,EAAE,MAAM,GAAE,EAAE,SAAS,EAAE,KAAK,IAAGa,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC;CAAC,GAAA,CAAG,GAAE,EAAE,gBAAgBC,UAAMC,IAAE,MAAG;EAAC,IAAM,IAAE,EAAE,UAAU;EAAE,EAAE,UAAU,IAAE,CAAC;CAAC,CAAC,GAAA,CAAG,GAAE,EAAE,gBAAgBC,SAAMD,IAAE,MAAG;EAAC,IAAM,IAAE,EAAE,UAAU;EAAE,IAAE,KAAG,EAAE,UAAU,KAAK,IAAI,GAAE,IAAE,CAAC,CAAC;CAAC,CAAC,GAAA,CAAG,GAAE,EAAE,gBAAgBE,KAAE,MAAG;EAAC,IAAM,IAAEpB,EAAE;EAAE,IAAGC,EAAE,CAAC,GAAE;GAAC,IAAM,IAAE,EAAE,SAAS;GAAE,IAAG,EAAE,SAAO,GAAE,OAAO,EAAE,eAAe,GAAE,EAAE,GAAG,eAAe,GAAE,CAAC;EAAC,OAAM,IAAGE,EAAE,CAAC,GAAE;GAAC,IAAM,IAAEkB,GAAE,EAAE,OAAM,CAAC,CAAC;GAAE,IAAG,CAAC,EAAE,YAAUzB,GAAE,CAAC,KAAG,CAAC,EAAE,WAAW,KAAG,CAAC,EAAE,SAAS,GAAE,OAAO,EAAE,eAAe,GAAE,EAAE,eAAe,GAAE,CAAC;EAAC;EAAC,OAAM,CAAC;CAAC,GAAA,CAAG,GAAE,EAAE,gBAAgB0B,KAAE,MAAG;EAAC,IAAM,IAAEtB,EAAE;EAAE,IAAGC,EAAE,CAAC,GAAE;GAAC,IAAM,IAAE,EAAE,SAAS;GAAE,IAAG,EAAE,SAAO,GAAE,OAAO,EAAE,eAAe,GAAE,EAAE,GAAG,WAAW,GAAE,CAAC,GAAE,CAAC;EAAC,OAAM,IAAGE,EAAE,CAAC,GAAE;GAAC,IAAG,SAAS,GAAE;IAAC,IAAM,IAAE,EAAE;IAAM,OAAe,EAAE,QAAX,UAAgB,EAAE,WAASoB,EAAG,EAAE,gBAAgB;GAAC,EAAE,CAAC,GAAE,OAAO,EAAE,eAAe,GAAE,CAAC;GAAE,IAAM,IAAEF,GAAE,EAAE,OAAM,CAAC,CAAC;GAAE,IAAG,CAAC,EAAE,YAAUzB,GAAE,CAAC,KAAG,CAAC,EAAE,WAAW,KAAG,CAAC,EAAE,SAAS,GAAE,OAAO,EAAE,WAAW,GAAE,EAAE,eAAe,GAAE,CAAC;EAAC;EAAC,OAAM,CAAC;CAAC,GAAA,CAAG,GAAE,EAAE,gBAAgB4B,KAAE,MAAG;EAAC,IAAM,IAAExB,EAAE;EAAE,IAAGC,EAAE,CAAC,GAAE;GAAC,IAAM,IAAE,EAAE,SAAS;GAAE,IAAG,EAAE,SAAO,GAAE,OAAO,EAAE,eAAe,GAAEwB,GAAE,EAAE,EAAE,IAAE,EAAE,GAAG,WAAW,GAAE,CAAC,IAAE,EAAE,GAAG,eAAe,GAAE,CAAC;EAAC;EAAC,IAAG,CAACtB,EAAE,CAAC,GAAE,OAAM,CAAC;EAAE,IAAGuB,GAAE,GAAE,CAAC,CAAC,GAAE;GAAC,IAAM,IAAE,EAAE;GAAS,OAAO,EAAE,eAAe,GAAEC,GAAE,GAAE,GAAE,CAAC,CAAC,GAAE,CAAC;EAAC;EAAC,OAAM,CAAC;CAAC,GAAA,CAAG,GAAE,EAAE,gBAAgBC,KAAE,MAAG;EAAC,IAAM,IAAE5B,EAAE;EAAE,IAAGC,EAAE,CAAC,GAAE;GAAC,IAAM,IAAE,EAAE,SAAS;GAAE,IAAG,EAAE,SAAO,GAAE,OAAO,EAAE,eAAe,GAAEwB,GAAE,EAAE,EAAE,IAAE,EAAE,GAAG,eAAe,IAAE,EAAE,GAAG,WAAW,GAAE,CAAC,GAAE,CAAC;EAAC;EAAC,IAAG,CAACtB,EAAE,CAAC,GAAE,OAAM,CAAC;EAAE,IAAM,IAAE,EAAE;EAAS,OAAM,CAAC,CAACuB,GAAE,GAAE,CAAC,CAAC,MAAI,EAAE,eAAe,GAAEC,GAAE,GAAE,GAAE,CAAC,CAAC,GAAE,CAAC;CAAE,GAAA,CAAG,GAAE,EAAE,gBAAgBE,KAAE,MAAG;EAAC,IAAG,GAAG,EAAE,MAAM,GAAE,OAAM,CAAC;EAAE,IAAM,IAAE7B,EAAE;EAAE,IAAGG,EAAE,CAAC,GAAE;GAAC,IAAG,SAAS,GAAE;IAAC,IAAG,CAAC,EAAE,YAAY,GAAE,OAAM,CAAC;IAAE,IAAK,EAAC,QAAO,MAAG;IAAE,IAAO,EAAE,WAAN,GAAa,OAAM,CAAC;IAAE,IAAM,IAAE,EAAE,QAAQ;IAAE,IAAG2B,GAAG,CAAC,GAAE,OAAM,CAAC;IAAE,IAAM,IAAEC,GAAE,CAAC;IAAE,OAAO,EAAE,UAAU,IAAE,MAAI,EAAE,GAAG,CAAC,KAAG,EAAE,GAAG,EAAE,mBAAmB,CAAC;GAAE,EAAE,CAAC,GAAE,OAAO,EAAE,eAAe,GAAE,EAAE,gBAAgBZ,GAAE,KAAK,CAAC;GAAE,IAAG,MAAc,UAAU,aAApB,SAA6B,OAAM,CAAC;EAAC,OAAM,IAAG,CAAClB,EAAE,CAAC,GAAE,OAAM,CAAC;EAAE,OAAO,EAAE,eAAe,GAAE,EAAE,gBAAgBC,IAAE,CAAC,CAAC;CAAC,GAAA,CAAG,GAAE,EAAE,gBAAgB8B,KAAE,MAAG;EAAC,IAAG,GAAG,EAAE,MAAM,GAAE,OAAM,CAAC;EAAE,IAAM,IAAEhC,EAAE;EAAE,OAAM,EAAE,CAACG,EAAE,CAAC,KAAG,CAACF,EAAE,CAAC,OAAK,EAAE,eAAe,GAAE,EAAE,gBAAgBC,IAAE,CAAC,CAAC;CAAE,GAAA,CAAG,GAAE,EAAE,gBAAgB+B,KAAE,MAAG;EAAC,IAAM,IAAEjC,EAAE;EAAE,IAAG,CAACG,EAAE,CAAC,GAAE,OAAM,CAAC;EAAE,IAAG,GAAG,CAAC,GAAS,MAAP,MAAS;GAAC,KAAI,MAAI,MAAI,OAAK,IAAG,OAAM,CAAC;GAAE,IAAG,EAAE,eAAe,GAAE,EAAE,UAAS,OAAO,EAAE,gBAAgBS,IAAE,CAAC,CAAC;EAAC;EAAC,OAAO,EAAE,gBAAgBC,GAAE,KAAK,CAAC;CAAC,GAAA,CAAG,GAAE,EAAE,gBAAgBqB,UAAyB,CAAC,CAAC/B,EAAZH,EAAc,CAAC,MAAI,EAAE,KAAK,GAAE,CAAC,IAAE,CAAG,GAAE,EAAE,gBAAgBmC,KAAE,MAAG;EAAC,IAAK,GAAE,KAAG,GAAG,CAAC;EAAE,IAAG,EAAE,SAAO,GAAE;GAAC,IAAM,IAAE,GAAG,EAAE,SAAQ,EAAE,OAAO;GAAE,IAAU,MAAP,MAAS;IAAC,IAAK,EAAC,QAAO,GAAE,MAAK,MAAG,GAAE,IAAEtC,GAAE,CAAC;IAAE,IAAU,MAAP,MAAS;KAAC,IAAM,IAAEuC,EAAE;KAAE,IAAGC,EAAE,CAAC,GAAE,EAAE,OAAO,IAAI,EAAE,OAAO,GAAE,GAAE,MAAM,GAAE,EAAE,MAAM,IAAI,EAAE,OAAO,GAAE,GAAE,MAAM;UAAM;MAAC,IAAM,IAAE,EAAE,iBAAiB,EAAE,OAAO,GAAE,IAAE,EAAE,qBAAqB,IAAE;MAAE,EAAE,OAAO,IAAI,GAAE,GAAE,SAAS,GAAE,EAAE,MAAM,IAAI,GAAE,GAAE,SAAS;KAAC;KAAc,EAALC,GAAE,CAAM,CAAC;IAAC;IAAC,EAAE,gBAAgB,IAAG,CAAC;GAAC;GAAC,OAAO,EAAE,eAAe,GAAE,CAAC;EAAC;EAAC,OAAOC,GAAE,GAAE,CAAC;CAAC,GAAA,CAAG,GAAE,EAAE,gBAAgBC,KAAG,MAAG;EAAC,IAAK,CAAC,KAAG,GAAG,CAAC,GAAE,IAAExC,EAAE;EAAE,OAAM,EAAE,KAAG,CAACG,EAAE,CAAC,OAAKA,EAAE,CAAC,KAAG,CAAC,EAAE,YAAY,KAAU,EAAE,iBAAT,SAAwBsC,GAAE,EAAE,cAAaC,GAAE,CAAC,CAAC,GAAEC,GAAE,EAAE,cAAa,CAAC,IAAG,CAAC;CAAE,GAAA,CAAG,GAAE,EAAE,gBAAgBC,KAAG,MAAG;EAAC,IAAK,CAAC,KAAG,GAAG,CAAC,GAAE,IAAE5C,EAAE;EAAE,IAAG,KAAG,CAACG,EAAE,CAAC,GAAE,OAAM,CAAC;EAAE,IAAM,IAAE,GAAG,EAAE,SAAQ,EAAE,OAAO;EAA0D,OAA9C,MAAP,QAA4B,GAAVN,GAAE,EAAE,IAAQ,CAAC,KAAG,EAAE,eAAe,GAAQ,CAAC;CAAC,GAAA,CAAG,GAAE,EAAE,gBAAgBgD,WAAQC,GAAG,GAAE,CAAC,IAAA,CAAI,GAAE,EAAE,gBAAgBC,KAAG,OAAIC,GAAE,GAAErD,EAAE,GAAE,cAAc,IAAE,IAAE,IAAI,GAAE,CAAC,IAAA,CAAI,GAAE,EAAE,gBAAgBsD,KAAG,OAAI,eAAe,GAAE,GAAE;EAAC,MAAMD,GAAE,GAAErD,EAAE,GAAE,cAAc,IAAE,IAAE,IAAI,GAAE,EAAE,aAAW;GAAC,IAAM,IAAEK,EAAE;GAAE,EAAE,CAAC,IAAE,EAAE,WAAW,IAAEC,EAAE,CAAC,KAAG,EAAE,SAAS,EAAE,SAAQ,MAAG,EAAE,OAAO,CAAC;EAAC,CAAC;CAAC,EAAE,GAAE,CAAC,GAAE,CAAC,IAAA,CAAI,GAAE,EAAE,gBAAgBiD,KAAG,MAAG;EAAC,IAAK,GAAE,GAAE,KAAG,GAAG,CAAC;EAA6F,OAAxF,EAAE,SAAO,KAAG,CAAC,KAAS,EAAE,gBAAgB,IAAG,CAAC,GAAE,CAAC,KAAKC,GAAG,EAAE,MAAM,KAAGC,GAAG,EAAE,MAAM,IAAQ,CAAC,IAAgBpD,EAAE,MAAT,SAAa,SAAS,GAAE,GAAE;GAAC,EAAE,eAAe,GAAE,EAAE,aAAW;IAAC,IAAM,IAAEA,EAAE,GAAE,IAAEL,EAAE,GAAE,UAAU,KAAGA,EAAE,GAAE,aAAa,IAAE,OAAK,EAAE;IAAc,AAAM,KAAN,QAAgB,MAAP,QAAU0D,GAAE,GAAE,GAAE,CAAC;GAAC,GAAE,EAAC,KAAA,QAAM,CAAC;EAAC,EAAE,GAAE,CAAC,GAAE,CAAC;CAAE,GAAA,CAAG,GAAE,EAAE,gBAAgBC,KAAG,MAAG;EAAC,IAAM,IAAEtD,EAAE;EAAE,OAAOG,EAAE,CAAC,KAAG,GAAG,CAAC,GAAE,CAAC;CAAC,GAAA,CAAG,GAAE,EAAE,gBAAgBoD,KAAG,MAAG;EAAC,IAAM,IAAEvD,EAAE;EAAE,OAAOG,EAAE,CAAC,KAAG,GAAG,CAAC,GAAE,CAAC;CAAC,GAAA,CAAG,CAAC;AAAC;AAAUqD,EAAE;CAAC,eAAc,CAAC,qBAAqB;CAAE,cAAa,CAACC,EAAC;CAAE,MAAK;CAAqB,aAAU,CAAC,IAAG,EAAE;CAAE,UAAS;AAAE,CAAC;;;ACA99U,SAAS,GAAE,GAAE,GAAG,GAAE;CAAC,IAAM,IAAE,IAAI,IAAI,gCAAgC,GAAE,IAAE,IAAI,gBAAc;CAAE,EAAE,OAAO,QAAO,CAAC;CAAE,KAAI,IAAM,KAAK,GAAE,EAAE,OAAO,KAAI,CAAC;CAAE,MAAM,EAAE,SAAO,EAAE,SAAS,GAAE,MAAM,2BAA2B,EAAE,UAAU,EAAE,SAAS,EAAE,+GAA+G;AAAC;AAAC,IAAM,KAAe,OAAO,SAApB,OAAqC,OAAO,aAAhB,KAAK,KAA8B,OAAO,SAAS,kBAAzB,KAAK,IAAkCC,IAAEC;AAAE,SAASC,GAAE,EAAC,QAAO,GAAE,eAAc,KAAG;CAAC,OAAO,SAAS,GAAE,GAAE;EAAC,IAAK,CAAC,GAAE,KAAGC,QAAM,EAAE,cAAc,CAAC;EAAE,OAAO,SAAM,EAAE,2BAA0B,MAAG;GAAC,SAAM;IAAC,EAAE,CAAC;GAAC,CAAC;EAAC,CAAC,GAAE,CAAC,CAAC,CAAC,GAAEF,QAAM;GAAC,EAAE,EAAE,cAAc,CAAC;EAAC,GAAE,CAAC,CAAC,CAAC,GAAEG,SAAM;GAAC,IAAM,IAAE,CAAC,GAAE,IAAE,OAAO,KAAK,CAAC;GAAE,KAAI,IAAI,IAAE,GAAE,IAAE,EAAE,QAAO,KAAI;IAAC,IAAM,IAAE,EAAE,IAAG,IAAEC,EAAE,GAAE;KAAC,UAAQ,MAAG,EAAE,SAAS,CAAC;KAAE,UAASA,EAAEC,IAAE;MAAC,UAAS;MAAK,UAAS,EAAE;KAAE,CAAC;IAAC,CAAC,GAAE,IAAE,EAAE,gBAAgB,CAAC;IAAE,AAAO,MAAP,QAAU,EAAE,KAAKC,GAAE,GAAE,GAAE,CAAC,CAAC;GAAC;GAAC,OAAO;EAAC,GAAE;GAAC;GAAE;GAAE;EAAC,CAAC;CAAC,EAAE,GAAE,CAAC;AAAC;AAAC,SAASC,GAAE,EAAC,QAAO,GAAE,eAAc,KAAG;CAAC,OAAO,SAAS,GAAE;EAAC,IAAM,IAAEC,GAAE,gBAAgB,CAAC;EAAE,IAAG,KAAG,EAAE,mBAAmBC,GAAE,IAAI,GAAE;GAAC,KAAI,IAAM,KAAI,CAAC,uBAAsB,oBAAoB,GAAE,EAAE,mBAAmB,CAAC,KAAG,GAAE,KAAI,CAAC;GAAE,OAAM,CAAC;EAAC;EAAC,OAAM,CAAC;CAAC,EAAE,CAAC,IAAE,OAAKL,EAAEH,IAAE;EAAC,QAAO;EAAE,eAAc;CAAC,CAAC;AAAC;AAAC,SAAS,GAAE,GAAE;CAAC,OAAO,EAAE,eAAe,EAAE,KAAKS,GAAE,EAAE,YAAY,CAAC,CAAC;AAAC;AAAC,SAAS,GAAE,EAAC,iBAAgB,GAAE,aAAY,IAAE,MAAK,eAAc,KAAG;CAAC,IAAK,CAAC,KAAGC,EAAE;CAAE,OAAO,SAAS,GAAE;EAAC,SAAMC,EAAEC,GAAE,CAAC,GAAEC,GAAE,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC;CAAC,EAAE,CAAC,GAAEC,EAAEC,IAAE,EAAC,UAAS;EAAC;EAAEZ,EAAEa,IAAE,EAAC,SAAQ,EAAC,CAAC;EAAEb,EAAEG,IAAE;GAAC,QAAO;GAAE,eAAc;EAAC,CAAC;CAAC,EAAC,CAAC;AAAC;AAAC,SAASU,GAAE,EAAC,SAAQ,KAAG;CAAC,IAAK,CAAC,KAAGN,EAAE,GAAE,IAAE,SAAS,GAAE;EAAC,IAAK,CAAC,GAAE,KAAGT,QAAM,GAAE,CAAC,CAAC;EAAE,OAAO,SAAM;GAAC,SAAS,IAAG;IAAc,EAAL,GAAE,CAAK,CAAC;GAAC;GAAC,OAAO,EAAE,GAAEU,EAAE,EAAE,6BAA2B;IAAC,EAAE;GAAC,CAAC,GAAE,EAAE,+BAA6B;IAAC,EAAE;GAAC,CAAC,CAAC;EAAC,GAAE,CAAC,CAAC,CAAC,GAAE;CAAC,EAAE,CAAC,GAAE,IAAEM,GAAE;CAAE,OAAO,IAAc,OAAO,KAAnB,aAAqB,EAAE,CAAC,IAAE,IAAE;AAAI;;;ACAv+D,IAAMC,KAAe,OAAO,SAApB,OAAqC,OAAO,aAAhB,KAAK,KAA8B,OAAO,SAAS,kBAAzB,KAAK,IAAkCC,IAAEC;AAAE,SAAS,GAAE,EAAC,QAAO,GAAE,sBAAqB,GAAE,kBAAiB,GAAE,cAAa,GAAE,iBAAgB,GAAE,kBAAiB,GAAE,cAAa,GAAE,aAAY,GAAE,WAAU,GAAE,gBAAe,GAAE,eAAc,GAAE,UAAS,GAAE,cAAa,GAAE,gBAAe,GAAE,WAAU,GAAE,IAAG,GAAE,MAAK,IAAE,WAAU,YAAW,IAAE,CAAC,GAAE,OAAM,GAAE,UAAS,GAAE,eAAc,GAAE,GAAG,KAAG,GAAE;CAAC,IAAK,CAAC,GAAE,KAAGC,EAAE,EAAE,WAAW,CAAC,GAAE,IAAEC,IAAE,MAAG;EAAC,KAAG,EAAE,iBAAe,EAAE,cAAc,cAAY,EAAE,eAAe,CAAC,IAAE,EAAE,eAAe,IAAI;CAAC,GAAE,CAAC,CAAC,CAAC,GAAE,IAAEC,SAAM,SAAS,GAAG,GAAE;EAAC,QAAO,MAAG;GAAC,KAAI,IAAM,KAAK,GAAE,AAAY,OAAO,KAAnB,aAAqB,EAAE,CAAC,IAAQ,KAAN,SAAU,EAAE,UAAQ;EAAE;CAAC,EAAE,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,CAAC;CAAE,OAAOL,UAAO,EAAE,EAAE,WAAW,CAAC,GAAE,EAAE,0BAAyB,MAAG;EAAC,EAAE,CAAC;CAAC,CAAC,IAAG,CAAC,CAAC,CAAC,GAAEM,EAAE,OAAM;EAAC,yBAAwB,IAAE,IAAE,KAAK;EAAE,qBAAoB,IAAE,IAAE;EAAO,iBAAgB,IAAE,IAAE,KAAK;EAAE,oBAAmB;EAAE,GAAS,KAAN,OAAgC,CAAC,IAAzB,EAAC,qBAAoB,EAAC;EAAK,iBAAgB,KAAgB,MAAb,aAAe,CAAC,CAAC,IAAE,KAAK;EAAE,GAAS,KAAN,OAA2B,CAAC,IAApB,EAAC,gBAAe,EAAC;EAAK,cAAa;EAAE,mBAAkB;EAAE,kBAAiB;EAAE,aAAY,IAAE,IAAE,KAAK;EAAE,iBAAgB,CAAC,KAAG,KAAK;EAAE,iBAAgB;EAAE,gBAAe;EAAE,WAAU;EAAE,iBAAgB;EAAE,eAAc;EAAE,IAAG;EAAE,KAAI;EAAE,MAAK;EAAE,YAAW;EAAE,OAAM;EAAE,UAAS;EAAE,GAAG;CAAC,CAAC;AAAC;AAAC,IAAMC,KAAEC,EAAE,EAAC;AAAE,SAAS,GAAE,GAAE;CAAC,OAAO,EAAE,eAAe,EAAE,KAAKC,GAAE,EAAE,YAAY,CAAC,CAAC;AAAC;AAAC,IAAM,KAAED,EAAEE,EAAC;AAAE,SAASA,GAAE,GAAE,GAAE;CAAC,IAAK,EAAC,aAAY,GAAE,GAAG,MAAG,GAAE,CAAC,KAAGC,EAAE;CAAE,OAAOC,EAAEC,IAAE,EAAC,UAAS,CAACP,EAAEC,IAAE;EAAC,QAAO;EAAE,GAAG;EAAE,KAAI;CAAC,CAAC,GAAQ,KAAN,QAASD,EAAE,IAAE;EAAC,QAAO;EAAE,SAAQ;CAAC,CAAC,CAAC,EAAC,CAAC;AAAC;AAAC,SAAS,GAAE,EAAC,SAAQ,GAAE,QAAO,KAAG;CAAC,IAAM,IAAE,SAAS,GAAE;EAAC,IAAK,CAAC,GAAE,KAAGH,QAAM,GAAE,CAAC,CAAC;EAAE,OAAOH,SAAM;GAAC,SAAS,IAAG;IAAc,EAAL,GAAE,CAAK,CAAC;GAAC;GAAC,OAAO,EAAE,GAAEc,EAAE,EAAE,6BAA2B;IAAC,EAAE;GAAC,CAAC,GAAE,EAAE,+BAA6B;IAAC,EAAE;GAAC,CAAC,CAAC;EAAC,GAAE,CAAC,CAAC,CAAC,GAAE;CAAC,EAAE,CAAC,GAAE,CAAC,GAAE,KAAGX,EAAE,EAAE,WAAW,CAAC;CAAE,IAAGF,SAAO,EAAE,EAAE,WAAW,CAAC,GAAE,EAAE,0BAAyB,MAAG;EAAC,EAAE,CAAC;CAAC,CAAC,IAAG,CAAC,CAAC,CAAC,GAAE,CAAC,GAAE,OAAO;CAAK,IAAI,IAAE;CAAK,OAAkB,OAAO,KAAnB,aAAqB,IAAE,EAAE,CAAC,IAAS,MAAP,SAAW,IAAE,IAAU,MAAP,OAAS,OAAKK,EAAE,OAAM;EAAC,eAAc,CAAC;EAAE,UAAS;CAAC,CAAC;AAAC;;;ACNpuE,IAAM,KAAIS,GAAE,IAAI,GAAG,KAAI;CACrB,UAAU,CAAC;CACX,OAAO;AACT,GACMC,KAAN,cAAgBC,GAAE;CAChB,YAAY,GAAG;EACb,MAAM,CAAC,GAAG,KAAK,qBAAqB,KAAK,mBAAmB,KAAK,IAAI,GAAG,KAAK,QAAQ;CACvF;CACA,OAAO,yBAAyB,GAAG;EACjC,OAAO;GAAE,UAAU,CAAC;GAAG,OAAO;EAAE;CAClC;CACA,mBAAmB,GAAG,GAAG;EACvB,IAAM,EAAE,OAAO,MAAM,KAAK;EAC1B,MAAM,SAAS,KAAK,MAAM,UAAU;GAClC,MAAM;GACN,QAAQ;EACV,CAAC,GAAG,KAAK,SAAS,EAAC;CACrB;CACA,kBAAkB,GAAG,GAAG;EACtB,KAAK,MAAM,UAAU,GAAG,CAAC;CAC3B;CACA,mBAAmB,GAAG,GAAG;EACvB,IAAM,EAAE,UAAU,MAAM,KAAK,OAAO,EAAE,WAAW,MAAM,KAAK;EAC5D,KAAK,EAAE,UAAU,QAAQC,GAAE,EAAE,WAAW,CAAC,MAAM,KAAK,MAAM,UAAU;GAClE,MAAM;GACN,MAAM,EAAE;GACR,QAAQ;EACV,CAAC,GAAG,KAAK,SAAS,EAAC;CACrB;CACA,SAAS;EACP,IAAM,EAAE,UAAU,GAAG,gBAAgB,GAAG,mBAAmB,GAAG,UAAU,MAAM,KAAK,OAAO,EAAE,UAAU,GAAG,OAAO,MAAM,KAAK,OACvH,IAAI;EACR,IAAI,GAAG;GACL,IAAM,IAAI;IACR,OAAO;IACP,oBAAoB,KAAK;GAC3B;GACA,IAAI,OAAO,KAAK,YACd,IAAI,EAAE,CAAC;QACJ,IAAI,GACP,IAAIC,GAAE,GAAG,CAAC;QACP,IAAI,MAAM,KAAK,GAClB,IAAI;QAEJ,MAAM;EACV;EACA,OAAOA,GACL,GAAE,UACF,EACE,OAAO;GACL,UAAU;GACV,OAAO;GACP,oBAAoB,KAAK;EAC3B,EACF,GACA,CACF;CACF;AACF;AACA,SAASD,GAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG;CACzB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE,EAAE,CAAC;AACtE;;;ACvD6F,SAASE,GAAE,EAAC,UAAS,GAAE,SAAQ,KAAG;CAAC,OAAOC,EAAEC,IAAE;EAAC,UAASD,EAAE,OAAM;GAAC,OAAM;IAAC,QAAO;IAAiB,OAAM;IAAO,SAAQ;GAAK;GAAE,UAAS;EAAsB,CAAC;EAAE,SAAQ;EAAE,UAAS;CAAC,CAAC;AAAC;;;ACA5F,IAAM,KAAe,OAAO,SAApB,OAAqC,OAAO,aAAhB,KAAK,KAA8B,OAAO,SAAS,kBAAzB,KAAK,IAAkCE,IAAEC;AAAE,SAAS,GAAE,EAAC,6BAA4B,IAAE,CAAC,GAAE,uBAAsB,IAAE,CAAC,GAAE,UAAS,KAAG;CAAC,IAAK,CAAC,KAAGC,EAAE;CAAE,OAAO,SAAM;EAAC,IAAG,GAAE,OAAO,EAAE,wBAAwB,EAAC,aAAY,GAAE,eAAc,GAAE,aAAY,GAAE,iBAAgB,GAAE,MAAK,QAAK;GAAC,KAAO,EAAE,SAAN,KAAgB,EAAE,SAAN,KAAY,KAAG,EAAE,IAAA,eAAK,KAAG,EAAE,QAAQ,KAAG,EAAE,GAAE,GAAE,CAAC;EAAC,CAAC;CAAC,GAAE;EAAC;EAAE;EAAE;EAAE;CAAC,CAAC,GAAE;AAAI;;;ACA9T,SAASC,GAAE,EAAC,iBAAgB,IAAE,CAAC,GAAE,yBAAwB,IAAE,CAAC,KAAG;CAAC,IAAK,CAAC,KAAGC,EAAE;CAAE,OAAOC,QAAM;EAAC,IAAG,CAAC,EAAE,SAAS,CAACC,IAAEC,EAAC,CAAC,GAAE,MAAU,MAAM,mEAAmE;CAAC,GAAE,CAAC,CAAC,CAAC,GAAEF,QAAMG,EAAEC,GAAE,GAAE,EAAC,kBAAiB,EAAC,CAAC,GAAE,IAAEC,GAAE,CAAC,UAAM,CAAC,CAAC,GAAE;EAAC;EAAE;EAAE;CAAC,CAAC,GAAE,SAAS,GAAE;EAAC,QAAMD,GAAE,CAAC,GAAE,CAAC,CAAC,CAAC;CAAC,EAAE,CAAC,GAAE;AAAI;;;ACAzV,SAAS,GAAE,EAAC,aAAY,GAAE,YAAW,KAAG;CAAC,IAAK,CAAC,KAAGE,EAAE;CAAE,OAAOC,QAAM;EAAC,IAAG,CAAC,EAAE,SAAS,CAACC,CAAC,CAAC,GAAE,MAAU,MAAM,+CAA+C;CAAC,CAAC,GAAED,QAAME,GAAE,GAAEC,EAAE;EAAC,YAAW;EAAE,aAAY;CAAC,CAAC,CAAC,GAAE;EAAC;EAAE;EAAE;CAAC,CAAC,GAAE;AAAI;;;ACAxN,SAAS,GAAE,EAAC,QAAO,IAAE,CAAC,GAAE,UAAS,IAAE,CAAC,KAAG;CAAC,IAAK,CAAC,KAAGC,EAAE;CAAE,OAAOC,QAAMC,GAAE,GAAEC,EAAE;EAAC,UAAS;EAAE,QAAO;CAAC,CAAC,CAAC,GAAE;EAAC;EAAE;EAAE;CAAC,CAAC,GAAE;AAAI;;;ACA2O,SAAS,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE;CAAC,IAAU,MAAP,QAAc,EAAE,SAAN,KAAgB,EAAE,SAAN,KAAY,CAAC,GAAE,OAAO;CAAE,IAAM,IAAE,EAAE,YAAW,IAAE,EAAE;CAAW,IAAG,GAAE,OAAO;CAAE,IAAG,EAAEC,EAAE,CAAC,KAAGA,EAAE,CAAC,KAAG,EAAE,YAAY,KAAG,EAAE,YAAY,IAAG,OAAO;CAAE,IAAM,IAAE,SAAS,GAAE,GAAE,GAAE;EAAC,IAAM,IAAE,EAAE,UAAS,IAAE,CAAC;EAAE,KAAI,IAAM,KAAK,GAAE;GAAC,IAAM,IAAE,EAAE,IAAI,CAAC;GAAE,AAAS,MAAT,KAAK,KAAO,EAAE,KAAK,CAAC;EAAC;EAAC,KAAI,IAAK,CAAC,GAAE,MAAK,GAAE;GAAC,IAAG,CAAC,GAAE;GAAS,IAAM,IAAE,EAAE,IAAI,CAAC;GAAE,AAAS,MAAT,KAAK,KAAOC,GAAE,CAAC,KAAG,EAAE,KAAK,CAAC;EAAC;EAAC,OAAO;CAAC,EAAE,GAAE,GAAE,CAAC;CAAE,IAAO,EAAE,WAAN,GAAa,OAAO;CAAE,IAAG,EAAE,SAAO,GAAE;EAAC,IAAM,IAAE,EAAE,UAAS,IAAE,EAAE,IAAI,EAAE,OAAO,GAAG,GAAE,IAAE,EAAE,IAAI,EAAE,OAAO,GAAG;EAAE,OAAO,KAAG,KAAG,CAAC,EAAE,SAAS,IAAI,EAAE,KAAK,KAAGC,EAAE,CAAC,KAAO,EAAE,OAAO,WAAb,KAAyB,EAAE,OAAO,WAAb,IAAoB,IAAE;CAAC;CAAC,IAAM,IAAE,EAAE,IAAG,IAAE,EAAE,SAAS,IAAI,EAAE,KAAK;CAAE,IAAG,CAACA,EAAE,CAAC,KAAG,CAACA,EAAE,CAAC,KAAG,EAAE,WAAS,EAAE,QAAO,OAAO;CAAE,IAAM,IAAE,EAAE,QAAO,IAAE,EAAE;CAAO,IAAG,MAAI,GAAE,OAAO;CAAE,IAAM,IAAE,EAAE,QAAO,IAAE,EAAE;CAAO,IAAG,EAAE,QAAM,EAAE,OAAc,EAAE,SAAX,QAAgB,OAAO;CAAE,IAAM,IAAE,EAAE,QAAO,IAAE,EAAE,QAAO,IAAE,EAAE,SAAO,EAAE;CAAO,OAAW,MAAJ,KAAO,MAAI,IAAE,IAAE,IAAO,MAAL,MAAQ,MAAI,IAAE,IAAE,IAAO,MAAL,MAAQ,MAAI,IAAE,IAAE;AAAC;AAAC,SAAS,GAAE,GAAE,GAAE,GAAE;CAAC,IAAI,IAAE,EAAE,GAAE,IAAE,GAAE,IAAE,GAAE,IAAE,GAAE,IAAE;CAAK,QAAO,GAAE,GAAE,GAAE,GAAE,GAAE,MAAI;EAAC,IAAM,IAAE,EAAE;EAAE,IAAG,EAAE,IAAA,mBAAK,MAAI,IAAE,GAAE,IAAE,GAAE,IAAE,IAAG,EAAE,IAAA,UAAK,GAAE,OAAO,IAAE,GAAE,IAAE,GAAE;EAAE,EAAE,IAAA,iBAAK,KAAG,MAAI,IAAE,GAAE,IAAE,GAAE,IAAE;EAAG,IAAM,IAAE,GAAE,GAAE,GAAE,GAAE,GAAE,EAAE,YAAY,CAAC,GAAE,WAAO;GAAC,IAAM,IAAS,MAAP,QAAU,EAAE,WAAS,GAAE,IAAE,EAAE,IAAIC,EAAC;GAAE,IAAG,CAAC,KAAG,KAAG,EAAE,IAAA,eAAK,GAAE,OAAO;GAAE,IAAO,MAAJ,GAAM,OAAO;GAAE,IAAU,MAAP,MAAS,OAAO;GAAE,IAAM,IAAE,EAAE;GAAW,IAAG,EAAE,EAAE,OAAK,KAAG,EAAE,OAAK,IAAG,OAAc,MAAP,OAAW,IAAF;GAAI,IAAM,IAAY,OAAO,KAAjB,WAAmB,IAAE,EAAE,KAAK;GAAmb,OAA9a,CAAC,MAAI,KAAO,MAAJ,KAAO,MAAI,KAAG,IAAE,IAAE,KAAG,KAAkB,EAAE,SAAN,KAAe,SAAS,GAAE,GAAE,GAAE;IAAC,IAAM,IAAE,EAAE,SAAS,IAAI,CAAC,GAAE,IAAE,EAAE,SAAS,IAAI,CAAC,GAAE,IAAE,EAAE,YAAW,IAAE,EAAE;IAAW,OAAM,EAAEH,EAAE,CAAC,KAAGA,EAAE,CAAC,KAAe,EAAE,OAAO,SAArB,aAAuC,EAAE,MAAM,SAApB,aAAmC,EAAE,OAAO,SAAlB,UAAiC,EAAE,MAAM,SAAjB,UAAuB,CAACE,EAAE,CAAC,KAAG,CAACA,EAAE,CAAC,KAAG,EAAE,aAAW,EAAE,aAAW,KAAK,UAAU,EAAE,WAAS,EAAE,WAAW,CAAC,CAAC,MAAI,KAAK,UAAU,EAAE,WAAS,EAAE,WAAW,CAAC,CAAC;GAAC,EAAE,MAAM,KAAK,CAAC,EAAE,IAAG,GAAE,CAAC,IAAS,IAAS;EAAC,GAAG;EAAE,OAAO,IAAE,GAAE,IAAE,GAAE;CAAC;AAAC;AAAC,SAAS,GAAE,GAAE;CAAC,EAAE,YAAU,CAAC,GAAE,EAAE,YAAU,CAAC,GAAE,EAAE,UAAQ;AAAI;AAAC,SAAS,GAAE,GAAE,GAAE,GAAE,IAAE,KAAK,KAAI;CAAC,IAAM,IAAE,GAAE,GAAE,GAAE,CAAC;CAAE,OAAOE,EAAE,EAAE,gBAAgBC,WAAO,SAAS,GAAE,GAAE;EAAC,IAAM,IAAE,EAAE,WAAU,IAAE,EAAE;EAAU,IAAO,EAAE,WAAN,GAAa;GAAC,IAAM,IAAE,EAAE,SAAQ,IAAE,EAAE,IAAI;GAAE,AAAO,MAAP,SAAW,EAAE,KAAK,CAAC,GAAE,EAAE,gBAAgBC,GAAE,CAAC,CAAC,IAAO,EAAE,WAAN,KAAc,EAAE,gBAAgBC,GAAE,CAAC,CAAC,GAAE,EAAE,UAAQ,KAAG,MAAK,KAAG,EAAE,OAAO,eAAe,EAAE,aAAY,EAAC,KAAA,WAAK,CAAC;EAAC;CAAC,EAAE,GAAE,CAAC,GAAE,CAAC,IAAA,CAAI,GAAE,EAAE,gBAAgBC,WAAO,SAAS,GAAE,GAAE;EAAC,IAAM,IAAE,EAAE,WAAU,IAAE,EAAE;EAAU,IAAO,EAAE,WAAN,GAAa;GAAC,IAAM,IAAE,EAAE;GAAQ,AAAO,MAAP,SAAW,EAAE,KAAK,CAAC,GAAE,EAAE,gBAAgBD,GAAE,CAAC,CAAC;GAAG,IAAM,IAAE,EAAE,IAAI;GAAE,AAAI,EAAE,WAAN,KAAc,EAAE,gBAAgBD,GAAE,CAAC,CAAC,GAAE,EAAE,UAAQ,KAAG,MAAK,KAAG,EAAE,OAAO,eAAe,EAAE,aAAY,EAAC,KAAA,WAAK,CAAC;EAAC;CAAC,EAAE,GAAE,CAAC,GAAE,CAAC,IAAA,CAAI,GAAE,EAAE,gBAAgBG,WAAO,GAAE,CAAC,GAAE,CAAC,IAAA,CAAI,GAAE,EAAE,gBAAgBC,WAAO,GAAE,CAAC,GAAE,EAAE,gBAAgBJ,GAAE,CAAC,CAAC,GAAE,EAAE,gBAAgBC,GAAE,CAAC,CAAC,GAAE,CAAC,IAAA,CAAI,GAAE,EAAE,wBAAwB,EAAC,aAAY,GAAE,iBAAgB,GAAE,aAAY,GAAE,eAAc,GAAE,MAAK,QAAK;EAAC,IAAM,IAAE,EAAE,SAAQ,IAAE,EAAE,WAAU,IAAE,EAAE,WAAU,IAAS,MAAP,OAAS,OAAK,EAAE;EAAY,IAAU,MAAP,QAAU,MAAI,GAAE;EAAO,IAAM,IAAE,EAAE,GAAE,GAAE,GAAE,GAAE,GAAE,CAAC;EAAE,IAAO,MAAJ,GAAM,AAAI,EAAE,WAAN,MAAe,EAAE,YAAU,CAAC,GAAE,EAAE,gBAAgBD,GAAE,CAAC,CAAC,IAAU,MAAP,SAAW,EAAE,KAAK,EAAC,GAAG,EAAC,CAAC,GAAE,EAAE,gBAAgBC,GAAE,CAAC,CAAC;OAAQ,IAAO,MAAJ,GAAM;EAAO,EAAE,UAAQ;GAAC,QAAO;GAAE,aAAY;EAAC;CAAC,CAAC,CAAC;AAAC;AAAC,SAAS,KAAG;CAAC,OAAM;EAAC,SAAQ;EAAK,WAAU,CAAC;EAAE,WAAU,CAAC;CAAC;AAAC;AAAC,IAAM,KAAEI,EAAE;CAAC,QAAO,GAAE,EAAC,OAAM,GAAE,2BAA0B,GAAE,UAAS,GAAE,KAAI,QAAKC,EAAE;EAAC,OAAM;EAAE,UAAS;EAAE,cAAa,EAAE,CAAC;EAAE,KAAI;CAAC,CAAC;CAAE,QAAOC,GAAE;EAAC,2BAA0B;EAAE,OAAM;EAAI,UAAsB,OAAO,SAApB;EAA2B,KAAI,KAAK;CAAG,CAAC;CAAE,MAAK;CAA2B,WAAU,GAAE,GAAE,MAAI;EAAC,IAAM,IAAE,EAAE,UAAU;EAAE,OAAOC,SAAM,EAAE,SAAS,QAAM,KAAK,IAAE,GAAE,GAAE,EAAE,aAAa,OAAM,EAAE,aAAU,EAAE,IAAI,KAAK,EAAE,CAAC,CAAC;CAAC;AAAC,CAAC;AAAUH,EAAE;CAAC,QAAO,GAAE,EAAC,UAAS,GAAE,cAAa,QAAKC,EAAE;EAAC,UAAS;EAAE,cAAa,KAAG,EAAE;CAAa,CAAC;CAAE,QAAOC,GAAE;EAAC,UAAS,CAAC;EAAE,cAAa;CAAI,CAAC;CAAE,cAAa,CAACE,GAAE,IAAE,EAAC,UAAS,CAAC,EAAC,CAAC,CAAC;CAAE,MAAK;CAAiC,WAAU,GAAE,GAAE,MAAID,SAAM;EAAC,IAAK,EAAC,UAAS,GAAE,cAAa,MAAG,EAAE,UAAU;EAAE,IAAG,CAAC,EAAE,OAAM;GAAC,IAAK,EAAC,QAAO,MAAG,EAAE,cAAc,EAAC,GAAE,IAAE,SAAS,GAAE;IAAC,OAAO,IAAEE,GAAE,GAAE,GAAE,IAAI,IAAE;GAAI,EAAE,EAAE,KAAK;GAAE,IAAG,CAAC,GAAE;GAAO,IAAM,IAAE,EAAE;GAAO,SAAM;IAAC,EAAE,MAAM,QAAM,EAAE,MAAM,OAAM,EAAE,aAAa,QAAM,EAAE,aAAa,OAAM,EAAE,IAAI,QAAM,EAAE,IAAI,OAAM,EAAE,SAAS,QAAM,EAAE,SAAS;GAAK,CAAC;EAAC;CAAC,CAAC;AAAC,CAAC;;;ACAxrI,SAAS,GAAE,EAAC,OAAM,GAAE,sBAAqB,KAAG;CAAC,IAAK,CAAC,KAAGC,EAAE;CAAE,OAAO,SAAS,GAAE,GAAE,IAAE,KAAI;EAAC,IAAM,IAAEC,SAAM,KAAGC,GAAE,GAAE,CAAC,CAAC,CAAC;EAAE,QAAMC,GAAE,GAAE,GAAE,CAAC,GAAE;GAAC;GAAE;GAAE;EAAC,CAAC;CAAC,EAAE,GAAE,GAAE,CAAC,GAAE;AAAI;;;ACAZ,SAAS,GAAE,EAAC,cAAa,IAAE,CAAC,GAAE,wBAAuB,IAAE,CAAC,GAAE,eAAc,IAAE,CAAC,GAAE,qBAAoB,IAAE,CAAC,GAAE,iBAAgB,IAAE,CAAC,KAAG;CAAC,IAAK,CAAC,KAAGC,EAAE;CAAE,QAAM;EAAC,GAAE,CAAC,MAAI,MAAIC,GAAE,GAAE,CAAC,GAAE,EAAE,sBAAsBC,UAAM,CAAC,CAAC,EAAE;CAAE,GAAE,CAAC,GAAE,CAAC,CAAC;CAAE,IAAM,IAAE,SAAS,GAAE;EAAC,IAAK,CAAC,KAAGC,QAAMC,GAAE,CAAC,CAAC;EAA4B,OAA1B,EAAE,KAAK,MAAI,MAAI,EAAE,QAAM,IAAU;CAAC,EAAE,CAAC;CAAE,OAAOC,QAAMC,GAAE,GAAE,EAAC,iBAAgB,EAAC,CAAC,GAAE,CAAC,GAAE,CAAC,CAAC,GAAED,QAAME,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,CAAC,GAAEF,QAAM;EAAC,IAAG,CAAC,GAAE,OAAOG,GAAE,CAAC;CAAC,GAAE,CAAC,GAAE,CAAC,CAAC,GAAEH,QAAM;EAAC,IAAG,CAAC,GAAE,OAAO,EAAE,sBAAsBI,KAAE,MAAG;GAAC,AAAO,EAAE,mBAAmB,MAA5B,QAA+B,EAAE,mBAAmB,IAAI;EAAC,CAAC;CAAC,GAAE;EAAC;EAAE;EAAE;CAAC,CAAC,GAAE;AAAI;;;ACAlyB,SAAS,GAAE,EAAC,WAAU,KAAG;CAAC,IAAK,CAAC,KAAGC,EAAE;CAAE,OAAO,GAAE,gBAAc;EAAC,AAAY,OAAO,KAAnB,aAAqB,EAAE,CAAC,IAAY,OAAO,KAAjB,YAA2B,MAAI,EAAE,UAAQ;CAAE,GAAE,CAAC,CAAC,CAAC,GAAE;AAAI;;;AC2BzP,IAAa,MAAiB,EAC5B,yBACA,0BACA,iCAC+B;CAC/B,IAAM,CAAC,KAAU,EAA0B,GACrC,CAAC,GAAU,KAAe,EAA0B,IAAI,GACxD,IAAW,EAAsB,IAAI,GAErC,IAAgB,SAAkB;EACtC,IAAM,IAAY,EAAc;EAChC,IAAI,CAAC,EAAkB,CAAS,GAAG;GACjC,EAAY,IAAI;GAChB;EACF;EAGA,IAAM,IAAY,GADC,EAAU,OAAO,QACe,CAAU;EAC7D,IAAI,CAAC,GAAW;GACd,EAAY,IAAI;GAChB;EACF;EAEA,IAAM,IAAU,EAAO,gBAAgB,EAAU,OAAO,CAAC;EACzD,IAAI,CAAC,GAAS;EAEd,IAAM,IAAO,EAAQ,sBAAsB;EAC3C,EAAY;GACV,MAAM,EAAK;GACX,MAAM,EAAK;GACX,QAAQ,EAAK;EACf,CAAC;CACH,GAAG,CAAC,CAAM,CAAC,GAEL,KAAqB,MAAoB;EAC7C,EAAS,SAAS,YAAY,CAAM;CACtC,GAEM,IAAqB,SAAkB;EAC3C,EAAO,aAAa;GAClB,IAAM,IAAY,EAAc;GAEhC,AAAI,EAAkB,CAAS,KAIX,GAHH,EAAU,OACC,QAEyB,CAC/C,MACF,EAAc,IAAI,GAClB,EAAY,IAAI;EAGtB,CAAC;CACH,GAAG,CAAC,CAAM,CAAC;CA6BX,OA3BA,QACS,EACL,EAAO,wBAAwB,EAAE,qBAAkB;EACjD,EAAY,KAAK,CAAa;CAChC,CAAC,GAED,EAAO,gBACL,WAEE,GAAwB,CAAkB,GACnC,KACT,CAEF,GAEA,EAAO,sBAAsB,GAAa,MAAoB;EAK5D,AAJI,KACF,GAA2B,CAAkB,GAG3C,KACF,GAAwB,CAAkB;CAE9C,CAAC,CACH,GACC;EAAC;EAAQ;EAAe;CAAkB,CAAC,GAG5C,kBAAC,OAAD;EAAK,WAAW,EAAO;YAAvB;GACE,kBAAC,IAAD,CAAoB,CAAA;GACpB,kBAAC,IAAD,CAAa,CAAA;GACb,kBAAC,IAAD;IAAa,UAAU,EAAQ;IAAW,KAAK;GAAW,CAAA;GACzD,KACC,kBAAC,IAAD;IACY;IACV,sBAAsB;IACtB,UAAU;GACX,CAAA;GAEH,kBAAC,IAAD,EAAY,sBAAsB,EAAuB,CAAA;GACxD,KAAyB,KACxB,kBAAC,IAAD;IACE,sBAAsB;IACtB,UAAU;IACV,gBAAgB;GACjB,CAAA;GAEH,kBAAC,IAAD,CAAgB,CAAA;EACb;;AAET;;;;;;;GErHa,KAAc,GAEvB,EAAE,mBAAgB,kBAAe,YAAS;CAAE,QAAQ;CAAO,KAAK;CAAI,UAAU;AAAG,KACjF,MACgB;CAChB,IAAM,IAAI,EAAe,GACnB,CAAC,GAAK,KAAU,EAAiB,EAAO,OAAO,EAAE,GACjD,CAAC,GAAU,KAAe,EAAiB,EAAO,YAAY,EAAE,GAChE,CAAC,GAAmB,KAAwB,EAAkB,EAAK,GACnE,CAAC,GAAU,KAAe,EAAwB,IAAI,GACtD,CAAC,GAAe,KAAoB,EAAwB,IAAI,GAChE,IAAa,EAAyB,IAAI,GAC1C,IAAS,QAAQ,EAAM,KACvB,IAAS,QAAQ,EAAM,KAEvB,UAAsB;EAC1B,OAAO,KAAK,GAAY,CAAG,GAAG,QAAQ;CACxC,GAEM,KAAa,MAAyC;EAC1D,EAAO,EAAM,OAAO,KAAK;CAC3B,GAEM,KAAkB,MAAyC;EAC/D,EAAY,EAAM,OAAO,KAAK;CAChC,GAEM,MAAe,MACf,GAAwB,CAAG,MAAM,MAAS,EAAI,KAAK,MAAM,MAC3D,EAAY,EAAE,UAAU,WAAW,GAC5B,OAET,EAAY,IAAI,GACT,KAGH,KAAoB,MACpB,EAAS,KAAK,MAAM,MACtB,EAAiB,EAAE,UAAU,gBAAgB,GACtC,OAET,EAAiB,IAAI,GACd,KAGH,UAAmB;EACnB,CAAC,GAAY,CAAG,KAAM,KAAqB,CAAC,EAAiB,CAAQ,MAIzE,EAAc,GAAK,CAAQ,GAC3B,GAAU;CACZ,GAEM,WAAoB;EAExB,AADA,EAAe,GACf,GAAU;CACZ,GAEM,WAAkB;EAItB,AAHA,EAAO,EAAE,GACT,EAAqB,EAAK,GAC1B,EAAY,IAAI,GAChB,EAAiB,IAAI;CACvB,GAEM,KAAe,GAAa,MAAqB;EAErD,AADA,EAAO,CAAG,GACN,CAAC,KAAY,CAAC,KAChB,EAAqB,EAAI;CAE7B,GAEM,WAAwB;EAC5B,AAAI,EAAW,WACb,EAAW,QAAQ,MAAM;CAE7B;CAQA,OANA,GAAoB,UAAY;EAC9B,WAAW;EACX;EACA;CACF,EAAE,GAGA,kBAAC,OAAD;EAAK,WAAW,EAAO;YAAvB;GACE,kBAAC,GAAD;IAAW,WAAW,EAAO;cAA7B;KACE,kBAAC,GAAD;MAAO,SAAS;gBAAS,EAAE,MAAM;KAAiB,CAAA;KAClD,kBAAC,OAAD;MAAK,WAAW,EAAO;gBAAvB,CACE,kBAAC,GAAD;OACE,IAAI;OACJ,aAAa,EAAE,MAAM;OACrB,OAAO;OACP,WAAW,MAAU,EAAU,CAAK;OACpC,eAAe,EAAY,IAAI;OAC/B,KAAK;OACL,cAAY,EAAE,KAAK,OAAO;MAC3B,CAAA,GACA,KACC,kBAAC,UAAD;OAAQ,MAAK;OAAS,SAAS;OAAe,WAAW,EAAO;iBAC9D,kBAAC,GAAD;QAAM,MAAK;QAAwB,MAAM;OAAK,CAAA;MACxC,CAAA,CAEP;;KACJ,KAAY,kBAAC,GAAD;MAAa,OAAM;MAAQ,UAAU;KAAW,CAAA;IACpD;;GACV,KACC,kBAAC,GAAD;IAAW,WAAW,EAAO;cAA7B;KACE,kBAAC,GAAD;MAAO,SAAS;gBAAS,EAAE,MAAM;KAAgB,CAAA;KACjD,kBAAC,GAAD;MACE,IAAI;MACJ,OAAO;MACP,WAAW,MAAU,EAAe,CAAK;MACzC,eAAe,EAAiB,IAAI;MACpC,cAAY,EAAE,KAAK,OAAO;KAC3B,CAAA;KACA,KAAiB,kBAAC,GAAD;MAAa,OAAM;MAAQ,UAAU;KAAgB,CAAA;IAC9D;;GAEb,kBAAC,OAAD;IAAK,WAAW,EAAO;cAAvB,CACE,kBAAC,GAAD;KAAQ,SAAS;KAAa,SAAS;KAAa,cAAY,EAAE,OAAO;KAAQ,MAAK;eACnF,EAAE,OAAO;IACJ,CAAA,GACR,kBAAC,GAAD;KAAQ,SAAS;KAAW,SAAS;KAAY,cAAY,EAAE,KAAK,OAAO;KAAc,MAAK;eAC3F,EAAE,MAAM;IACH,CAAA,CACL;;EACF;;AAET,CACF,GC3HM,KAAqB,KAiBd,MAAc,EAAE,8BAA4C;CACvE,IAAM,IAAI,EAAe,GACnB,CAAC,KAAU,EAA0B,GACrC,EAAE,WAAQ,eAAY,eAAY,iBAAc,GAAU,GAC1D,IAAc,EAA2B,KAAA,CAAS,GAClD,IAAc,EAAO,EAAK,GAC1B,IAAmB,EAAO,EAAE,GAC5B,IAAe,EAAO,EAAE,GACxB,CAAC,GAAQ,KAAa,EAAmB;EAAE,QAAQ;EAAO,KAAK;EAAI,UAAU;CAAG,CAAC,GACjF,IAAe,EAAO,CAAS,GAC/B,IAAkB,EAA6B,IAAI,GACnD,IAAgB,EAA0B,IAAI,GAC9C,IAAe,EAAwB,KAAA,CAAS,GAEhD,UAA4B;EAChC,EAAO,aAAa;GAElB,EAAgB,UADE,EACQ;EAC5B,CAAC;CACH,GAEM,UAAyB;EAC7B,EAAO,aAAa;GAClB,AAAI,EAAgB,WAClB,EAAc,EAAgB,OAAO;EAEzC,CAAC;CACH,GAEM,KAAmB,GAAa,MAAuB;EAC3D,EAAW;GACT;GACA,UACE,kBAAC,IAAD;IACO;IACL,SAAS,MAAQ,EAAW,GAAK,EAAE;IACnC,gBAAgB,GAAW;IAC3B,SAAS;IACT,KAAK;GACN,CAAA;EAEL,CAAC;CACH,GAEM,UAAyB;EAG7B,AAFA,EAAa,SAAS,UAAU,GAChC,EAAW,GACX,EAAiB;CACnB,GAEM,UAAmB;EACvB,IAAM,IAAO,EAAc,SAAS,sBAAsB;EAC1D,AAAI,CAAC,EAAY,WAAW,MAC1B,EAAoB,GACpB,EAAW;GAAE,UAAU;IAAE,KAAK,EAAK;IAAQ,MAAM,EAAK;GAAK;GAAG,GAAG;EAAc,CAAC,GAChF,iBAAiB,EAAY,SAAS,YAAY,IAAI,EAAa,OAAO,GAAG,CAAC;CAElF,GAEM,UAAoB;EAExB,AADA,EAAW,GACX,EAAiB;CACnB,GAEM,KAAc,GAAa,MAAqB;EACpD,EAAO,aAAa;GAClB,IAAM,IAAY,EAAc;GAEhC,IAAI,EAAkB,CAAS,GAAG;IAEhC,IAAM,IAAW,EADE,EAAU,OAAO,QACG,GAAY,CAAQ;IAE3D,IAAI,KAAY,MAAa,IAAI;KAC/B,IAAI,GAAU;MACZ,IAAM,IAAc,GAAgB,CAAQ;MAE5C,AADA,EAAS,QAAQ,CAAW,GAC5B,EAAY,OAAO;KACrB;KACA,IAAI,MAAa,EAAiB,WAAW,EAAiB,YAAY,IAAI;MAC5E,IAAM,EAAE,WAAQ,aAAU;MAG1B,AAFA,EAAU,WAAW,CAAQ,GAC7B,EAAO,UAAU,EAAS,QAC1B,EAAM,SAAS,EAAO,SAAS,EAAS;KAC1C;IACF;IACA,GAAY,GAAY,CAAG,GAAG,EAAE,QAAQ,SAAS,CAAC;GACpD;GAEA,EAAY;EACd,CAAC;CACH,GAEM,WAAyB;EAE7B,AADA,EAAO,gBAAgB,IAAqB,IAAI,GAChD,EAAiB;CACnB,GAEM,IAAgB,EACpB,UACE,kBAAC,IAAD;EACU;EACR,gBAAgB;EAChB,gBAAgB,GAAK,MAAa,EAAW,GAAK,CAAQ;EAC1D,KAAK;CACN,CAAA,EAEL;CA8JA,AA5JA,QAAgB;EACd,AAAK,KAKH,EAAY,UAAU,IACtB,EAAY,SAAS,gBAAgB,MALrC,EAAY,SAAS,UAAU,GAC/B,EAAiB,UAAU,EAAa,UAAU,IAClD,iBAAkB,EAAY,UAAU,IAAQ,EAAkB;CAKtE,GAAG,CAAC,GAAa,CAAS,CAAC,GAE3B,QAAgB;EACd,IAAM,KAAgC,MAAoC;GACxE,IAAI,EAAkB,CAAS,KAAK,EAAU,YAAY,GAAG;IAE3D,IAAM,IAAO,EADM,EAAU,OAAO,QACD,GAAY,CAAQ;IAEvD,IAAI,GAAM;KACR,IAAM,IAAU,EAAO,gBAAgB,EAAU,OAAO,QAAQ,EAAE,OAAO,CAAC,GACpE,IAAW,IACb;MAAE,KAAK,EAAQ,sBAAsB,EAAE;MAAQ,MAAM,EAAQ,sBAAsB,EAAE;KAAK,IAC1F;MAAE,KAAK;MAAG,MAAM;KAAE;KAEtB,OADA,EAAgB,EAAK,OAAO,GAAG,CAAQ,GAChC;IACT;GACF;GACA,OAAO;EACT,GAEM,IAAmB,EAAO,gBAC9B,UACM;GACJ,IAAM,IAAY,EAAc;GAGhC,OAFA,EAAa,UAAU,GAAW,eAAe,KAAK,IACtD,EAA6B,CAAS,GAC/B;EACT,GACA,CACF,GAEM,IAAkB,EAAO,gBAC7B,KACC,MAAU;GACT,IAAM,IAAY,EAAc;GAMhC,OALA,EAAoB,GACpB,EAAM,eAAe,GACrB,EAAM,gBAAgB,GACtB,EAAM,yBAAyB,GAC/B,EAA6B,CAAS,GAC/B;EACT,GACA,CACF;EAEA,aAAa;GAEX,AADA,EAAgB,GAChB,EAAiB;EACnB;CAEF,GAAG,CAAC,CAAM,CAAC,GAEX,QAAgB;EACd,IAAM,IAAyB,EAAO,gBACpC,KACC,MAAyB;GACxB,IAAI,EAAM,WAAW,EAAM,YAAY,EAAM,QAAQ,KAAK;IACxD,IAAM,IAAY,EAAc;IAGhC,IAFA,EAAoB,GAEhB,CAAC,EAAkB,CAAS,GAC9B,OAAO;IAIT,IAAM,IAAO,EADM,EAAU,OAAO,QACD,GAAY,CAAQ,GAEjD,KAA0B,IAAM,IAAI,IAAW,OAAO;KAE1D,AADA,EAAW,GACX,iBAAiB,EAAY,SAAS,YAAY,GAAK,CAAQ,GAAG,CAAC;IACrE;IAEA,IAAI,GAQF,OAPA,EAAM,eAAe,GACrB,EAAM,gBAAgB,GACtB,EAAM,yBAAyB,GAE/B,EAAiB,UAAU,EAAK,eAAe,GAC/C,EAAuB,EAAK,OAAO,GAAG,EAAK,eAAe,CAAC,GAEpD;IAGT,IAAM,IAAsB,EAAU,eAAe;IASrD,OARI,MAAwB,MAO5B,EAAW,GACJ,OAPL,EAAa,UAAU,GACvB,EAAuB,IAAI,EAAa,OAAO,GAExC;GAKX;GAEA,OAAO;EACT,GAAA,CAEF,GAEM,IAAuB,EAAO,wBAAwB,EAAE,qBAAkB;GAC9E,EACE,EAAY,WAAW;IACrB,IAAM,IAAY,EAAc;IAGhC,IAFA,EAAoB,GAEhB,EAAkB,CAAS,GAAG;KAEhC,IAAM,IAAO,EADM,EAAU,OAAO,QACD,GAAY,CAAQ;KAEvD,IAAI,GACF,OAAO;MACL,QAAQ;MACR,KAAK,EAAK,OAAO;MACjB,UAAU,EAAK,eAAe;KAChC;IAEJ;IAEA,OAAO;KACL,QAAQ;KACR,KAAK;KACL,UAAU;IACZ;GACF,CAAC,CACH;EACF,CAAC;EAED,aAAa;GAEX,AADA,EAAuB,GACvB,EAAqB;EACvB;CAEF,GAAG,CAAC,CAAM,CAAC,GAEX,QAAgB;EAEd,AADA,EAAa,UAAU,GAClB,KAAW,EAAa,SAAS,UAAU;CAClD,GAAG,CAAC,CAAS,CAAC,GAEd,QAAgB;EACd,AAAI,KACF,EAAY;CAGhB,GAAG,CAAC,CAAoB,CAAC,GAEzB,QAAgB;EACd,AAAK,EAAO,UACV,EAAW;CAGf,GAAG,CAAC,CAAM,CAAC;CAEX,IAAM,UAAuB;EAC3B,EAAW;CACb;CA8BA,OA5BA,QACS,EACL,EAAO,gBACL,KACC,MACK,EAAM,QAAQ,YAAY,EAAa,WACzC,EAAM,eAAe,GACrB,EAAY,GACL,MAEF,IACT,CAEF,GAEA,EAAO,sBAAsB,GAAa,MAAoB;EAK5D,AAJI,KACF,EAAgB,oBAAoB,UAAU,CAAc,GAG1D,KACF,EAAY,iBAAiB,UAAU,CAAc;CAEzD,CAAC,CACH,GAEC,CAAC,CAAM,CAAC,GAGT,kBAAC,OAAD;EAAK,WAAW,EAAO;YACrB,kBAAC,OAAD;GAAK,WAAW,EAAO;aAAvB,CACE,kBAAC,UAAD;IACE,SAAS;IACT,OAAO,EAAE,MAAM;IACf,WAAW,EACT,EAAO,2BACP,EAAO,iCACP,EAAO,UAAU,EAAO,iCAC1B;IACA,cAAY,EAAE,KAAK,OAAO;IAC1B,qBAAmB,EAAE,KAAK,aAAa;IACvC,MAAK;IACL,KAAK;cAEL,kBAAC,GAAD;KAAM,MAAK;KAAO,MAAM;IAAK,CAAA;GACvB,CAAA,GACP,CACE;;CACF,CAAA;AAET,GC5Wa,WAAsB;CACjC,IAAM,IAAI,EAAe,GACnB,CAAC,KAAU,EAA0B,GACrC,CAAC,GAAS,KAAc,EAAS,EAAK,GACtC,CAAC,GAAS,KAAc,EAAS,EAAK;CAgC5C,OAtBA,QACS,EAAO,gBACZ,IACC,OACC,EAAW,CAAO,GACX,KAET,CACF,GACC,CAAC,CAAM,CAAC,GAEX,QACS,EAAO,gBACZ,IACC,OACC,EAAW,CAAO,GACX,KAET,CACF,GACC,CAAC,CAAM,CAAC,GAGT,kBAAC,OAAD;EAAK,WAAW,EAAO;YAAvB,CACE,kBAAC,UAAD;GACE,eAjCmB;IACvB,EAAO,gBAAgB,IAAc,KAAA,CAAS;GAChD;GAgCM,WAAW,EAAK,EAAO,2BAA2B,EAAO,+BAA+B;GACxF,cAAY,EAAE,KAAK,OAAO;GAC1B,qBAAmB,EAAE,KAAK,aAAa;GACvC,UAAU,CAAC;GACX,OAAO,EAAE,OAAO;GAChB,MAAK;aAEL,kBAAC,GAAD;IAAM,MAAK;IAAW,MAAM;GAAK,CAAA;EAC3B,CAAA,GACR,kBAAC,UAAD;GACE,eAxCmB;IACvB,EAAO,gBAAgB,IAAc,KAAA,CAAS;GAChD;GAuCM,WAAW,EAAK,EAAO,2BAA2B,EAAO,+BAA+B;GACxF,cAAY,EAAE,KAAK,OAAO;GAC1B,qBAAmB,EAAE,KAAK,aAAa;GACvC,UAAU,CAAC;GACX,OAAO,EAAE,OAAO;GAChB,MAAK;aAEL,kBAAC,GAAD;IAAM,MAAK;IAAe,MAAM;GAAK,CAAA;EAC/B,CAAA,CACL;;AAET;;;;GEnDa,KAAe,GAAY,EAAE,mBAAgB,oBAAoC,MAAQ;CACpG,IAAM,IAAI,EAAe,GACnB,CAAC,GAAU,KAAe,EAAiB,GAC3C,CAAC,GAAa,KAAkB,EAAiB,GACjD,IAAa,EAAyB,IAAI,GAC1C,IAAQ,OAAO,EAAM,KACrB,IAAW,UAAU,EAAM,KAE3B,KAAyB,GAAsC,MAAiB;EACpF,IAAM,IAAQ,EAAM,OAAO;EAC3B,MAAS,QAAQ,EAAY,SAAS,CAAK,CAAC,IAAI,EAAe,SAAS,CAAK,CAAC;CAChF,GAEM,UAAmB;EACvB,AAAI,MAAa,KAAA,KAAa,MAAgB,KAAA,MAC5C,EAAc,GAAU,CAAW,GACnC,EAAU;CAEd,GAEM,UAAoB;EAExB,AADA,EAAe,GACf,EAAU;CACZ,GAEM,UAAkB;EAEtB,AADA,EAAY,KAAA,CAAS,GACrB,EAAe,KAAA,CAAS;CAC1B;CAyBA,OAvBA,GAAoB,UAAY;EAC9B,WAAW;EACX,uBAAuB,EAAW,SAAS,MAAM;CACnD,EAAE,GAEF,QAAgB;EACd,IAAM,UAA2B;GAC/B,EAAY;EACd;EAOA,OALA,GAAwB,CAAkB,GAE1C,OAAO,iBAAiB,UAAU,CAAkB,GACpD,OAAO,iBAAiB,UAAU,CAAkB,SAEvC;GAGX,AAFA,OAAO,oBAAoB,UAAU,CAAkB,GACvD,OAAO,oBAAoB,UAAU,CAAkB,GACvD,GAA2B,CAAkB;EAC/C;CAEF,GAAG,CAAC,CAAC,GAGH,kBAAC,OAAD;EAAK,WAAW,GAAO;YAAvB;GACE,kBAAC,GAAD;IAAW,WAAW,GAAO;cAA7B,CACE,kBAAC,GAAD;KAAO,SAAS;eAAQ,EAAE,MAAM;IAAgB,CAAA,GAChD,kBAAC,GAAD;KACE,IAAI;KACJ,aAAa,EAAE,MAAM;KACrB,OAAO,KAAsB;KAC7B,WAAW,MAAU,EAAsB,GAAO,KAAK;KACvD,cAAY,EAAE,KAAK,OAAO;KAC1B,KAAK;IACN,CAAA,CACQ;;GACX,kBAAC,GAAD;IAAW,WAAW,GAAO;cAA7B,CACE,kBAAC,GAAD;KAAO,SAAS;eAAW,EAAE,MAAM;IAAmB,CAAA,GACtD,kBAAC,GAAD;KACE,IAAI;KACJ,aAAa,EAAE,MAAM;KACrB,OAAO,KAA4B;KACnC,WAAW,MAAU,EAAsB,GAAO,QAAQ;KAC1D,cAAY,EAAE,KAAK,OAAO;IAC3B,CAAA,CACQ;;GACX,kBAAC,OAAD;IAAK,WAAW,GAAO;cAAvB,CACE,kBAAC,GAAD;KAAQ,SAAS;KAAa,SAAS;KAAa,cAAY,EAAE,OAAO;eACtE,EAAE,OAAO;IACJ,CAAA,GACR,kBAAC,GAAD;KACE,SAAS;KACT,SAAS;KACT,UAAU,CAAC,KAAY,CAAC;KACxB,cAAY,EAAE,KAAK,OAAO;eAEzB,EAAE,OAAO;IACJ,CAAA,CACL;;EACF;;AAET,CAAC,GC/DY,KAAc,GAAY,EAAE,eAA8B,MAAqB;CAC1F,IAAM,IAAI,EAAe,GACnB,CAAC,KAAU,EAA0B,GACrC,EAAE,WAAQ,eAAY,eAAY,iBAAc,GAAU,GAC1D,IAAe,EAAqB,KAAA,CAAS,GAC7C,IAAY,EAA0B,IAAI,GAC1C,IAAc,EAAO,EAAK,GAC1B,IAAe,EAAO,CAAS,GAE/B,UAAmB;EACvB,IAAM,IAAO,EAAU,SAAS,sBAAsB;EACtD,AAAI,CAAC,EAAY,WAAW,KAC1B,EAAW;GAAE,UAAU;IAAE,KAAK,EAAK;IAAQ,MAAM,EAAK;GAAK;GAAG,GAAG;EAAc,CAAC;CAEpF,GAEM,UAAoB;EACxB,EAAW;CACb,GAEM,KAAe,GAAkB,MAAwB;EAmC7D,AAlCA,EAAO,aAAa;GAClB,IAAM,IAAY,EAAc,GAC1B,IAAY,GAAY,GAAU,CAAW,GAE7C,IACH,EAAkB,CAAS,KAAK,EAAU,OAAO,QAAQ,KACzD,EAAiB,CAAS,KAAK,EAAU,SAAS,EAAE,MACrD,MAEI,IAAe,IAAa,EAAsB,GAAY,EAAa,IAAI,MAE/E,IAAiB,IACnB,GAA0B,GAAc,GAAa,CAAM,IAC3D,GAAsB,CAAM,KAAA,KAE1B,IAAS,KAAK,IAAA,IAAuB,KAAK,MAAM,IAAiB,KAAK,IAAI,GAAG,CAAW,CAAC,CAAC,GAE1F,IAAY,MAAM,KAAK,EAAE,QAAQ,EAAY,SAAS,CAAM;GAElE,EAAyB,aAAa,CAAS;GAE/C,IAAM,IAAe,GAAwB;GAE7C,AADA,EAAa,OAAO,CAAS,GACzB,EAAkB,CAAS,IAC7B,EAAU,YAAY,CAAC,CAAY,CAAC,IAEpC,EAAS,EAAE,OAAO,CAAY;GAEhC,IAAM,IAAkB,EAAa,mBAAmB;GACxD,AAAI,KACF,EAA8B,OAAO;EAEzC,CAAC,GAED,EAAY;CACd,GAEM,KAAe,MAAoB;EACvC,EAAO,aAAa;GAClB,IAAM,IAAY,EAAc;GAChC,IAAI,EAAkB,CAAS,GAAG;IAEhC,IAAM,IAAc,GADD,EAAU,OAAO,QACiB,CAAU;IAE/D,IAAI,GAAiB,CAAW,GAC9B,QAAQ,GAAR;KACE,KAAK;KACL,KAAK;MACH,GAAU,GAAa,CAAM;MAC7B;KACF,KAAK;MACH,GAAU,CAAW;MACrB;KACF,KAAK;KACL,KAAK;MACH,GAAa,GAAa,CAAM;MAChC;KACF,KAAK;MACH,GAAa,CAAW;MACxB;KACF,KAAK;MACH,GAAY,CAAW;MACvB;IACJ;GAEJ;EACF,CAAC;CACH,GAEM,IAAgB,EACpB,UACE,kBAAC,IAAD;EACE,gBAAgB;EAChB,gBAAgB,GAAM,MAAY,EAAY,GAAM,CAAO;EAC3D,KAAK;CACN,CAAA,EAEL;CAyDA,OAvDA,QAAgB;EACd,AAAK,KAIH,EAAY,UAAU,IACtB,EAAa,SAAS,gBAAgB,MAJtC,EAAa,SAAS,UAAU,GAChC,iBAAkB,EAAY,UAAU,IAAA,GAA0B;CAKtE,GAAG,CAAC,GAAc,CAAS,CAAC,GAE5B,QAAgB;EACd,IAAM,IAAyB,EAAO,gBACpC,KACC,MACK,EAAM,WAAW,EAAM,YAAY,EAAM,SAAS,YACpD,EAAM,eAAe,GACrB,EAAW,GACJ,MAEF,IACT,CAEF;EAEA,aAAa;GACX,EAAuB;EACzB;CAEF,GAAG,CAAC,CAAM,CAAC,GAEX,QAAgB;EACd,EAAa,UAAU;CACzB,GAAG,CAAC,CAAS,CAAC,GAEd,QAAgB;EACd,IAAM,KAAiB,MAAyB;GAC9C,AAAI,EAAM,QAAQ,YAAY,EAAa,YACzC,EAAM,eAAe,GACrB,EAAM,gBAAgB,GACtB,EAAY;EAEhB;EAIA,OAFA,SAAS,iBAAiB,WAAW,GAAe,EAAE,SAAS,GAAK,CAAC,SAExD;GACX,SAAS,oBAAoB,WAAW,CAAa;EACvD;CAEF,GAAG,CAAC,CAAC,GAEL,GAAoB,UAAY,EAC9B,eACF,EAAE,GAGA,kBAAC,OAAD;EAAK,WAAW,EAAO;YACrB,kBAAC,OAAD;GAAK,WAAW,EAAO;aAAvB,CACE,kBAAC,UAAD;IACE,SAAS;IACT,OAAO,EAAE,MAAM;IACf,WAAW,EAAK,EAAO,2BAA2B,KAAY,EAAO,iCAAiC;IACtG,cAAY,EAAE,KAAK,OAAO;IAC1B,qBAAmB,EAAE,KAAK,aAAa;IACvC,KAAK;IACL,MAAK;cAEL,kBAAC,GAAD;KAAM,MAAK;KAAQ,MAAM;IAAK,CAAA;GACxB,CAAA,GACP,CACE;;CACF,CAAA;AAET,CAAC;;;GEjNY,MAAgB,EAAE,UAAO,UAAO,IAAI,cAAW,SAA+B;CACzF,IAAM,IAAS,QAAQ,EAAM;CAE7B,OACE,kBAAC,OAAD;EAAK,WAAW,GAAO;YAAvB,CACG,MAAU,MACT,kBAAC,OAAD,EAAA,UACE,kBAAC,GAAD;GAAO,SAAS;GAAkB;aAC/B;EACI,CAAA,EACJ,CAAA,GAEN,MAAS,MAAM,kBAAC,OAAD;GAAK,WAAW,GAAO;GAAwB,yBAAyB,EAAE,QAAQ,EAAK;EAAI,CAAA,CACxG;;AAET,GC0Ca,MAAO,EAClB,qBAAkB,MAClB,aACA,kBAAe,IACf,iBAAc,IACd,WAAQ,IACR,UAAO,IACP,cAAW,IACX,cAAW,IACX,sBAAmB,IACnB,oBAAiB,SACjB,aACA,YAAS,MACT,aACA,0BACA,6BAA0B;CAAE,OAAO;CAAQ,SAAS,CAAC;AAAE,QACnC;CACpB,IAAM,EAAE,sBAAmB,GAAY,GACjC,IAAI,EAAe,GACnB,CAAC,KAAU,QAAe,EAAa,CAAC,GACxC,CAAC,GAAW,KAAgB,EAAS,CAAC,GACtC,CAAC,GAAmB,KAAwB,EAAS,CAAC,GACtD,IAAQ,EAAM,GAEd,IAAgB;EACpB,MAAM,EACJ,QAAQ,GACV;EACA,WAAW,UAAU,EAAS,QAAQ,QAAQ,GAAG,EAAE,YAAY;EAC/D;EACA,OAAO;EACP,QAAQ,GAAc;GACpB,MAAM;EACR;EACA,OAAO;GACL;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF;EACA,cAAc,MAA0B;GAGtC,IAAM,IAAQ,GAAsB,GADxB,IADO,UACP,EAAO,gBAAgB,GAAc,WACL,CAAG;GAI/C,AAFA,EAAA,EAAK,MAAM,GACX,GAAa,CAAK,GAClB,EAAc,IAAI;EACpB;CACF,GAEM,KAAgB,MAChB,EAAU,KAAK,EAAE,WAAW,IACvB,IAEA,EAAU,MAAM,GAAG,EAAE,QAI1B,MAAkB,GAA0B,MAAgC;EAChF,EAAY,WAAW;GACrB,IAAI,IAAc;GAIlB,AAHA,EAAa,EAAa,EAAS,EAAE,eAAe,EAAE,QAAQ,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAC,GAClF,IAAc,GAAoB,GAAuB,CAAM,CAAC,GAChE,IAAc,GAAa,CAAW,GACtC,EAAS,CAAW;EACtB,CAAC;CACH;CAeA,OAbA,QAAgB;EACd,EAAe,EAAgB,YAAY,CAAgB;CAC7D,GAAG,CAAC,GAAiB,CAAc,CAAC,GAEpC,QAAgB;EAMd,EAAa,EALgB,EAC1B,QAAQ,uBAAuB,GAAG,EAClC,QAAQ,4BAA4B,EAAE,EACtC,QAAQ,QAAQ,GAAG,EACnB,KACuB,CAAoB,CAAC;CACjD,GAAG,CAAC,CAAY,CAAC,GAGf,kBAAC,OAAD;EAAK,WAAW,EAAO;YAAvB;IACI,KAAS,KAAQ,MACjB,kBAAC,OAAD;IAAK,WAAW,EAAO;cAAvB,CACE,kBAAC,IAAD;KAAqB;KAAa;KAAgB;IAAW,CAAA,GAC5D,KAAY,IAAW,KACtB,kBAAC,OAAD;KAAK,WAAW,EAAO;eAAvB;MACE,kBAAC,QAAD;OAAM,WAAW,EAAK,GAAG,EAAO,sCAAsC,IAAY,EAAS,CAAC;iBACzF;MACG,CAAA;MAAC;MACO;KACX;MAEJ;;GAEP,kBAAC,OAAD;IACE,WAAW,EAAK,EAAO,QAAW,GAC/B,EAAO,eAAe,EACzB,CAAC;cAED,kBAAC,IAAD;KAAgC;eAAhC,CACE,kBAAC,IAAD;MACE,sBAAsB;MACC;MACE;KAC1B,CAAA,GACD,kBAAC,OAAD;MAAK,WAAW,EAAO;gBAAvB;OACE,kBAAC,IAAD;QACE,iBACE,kBAAC,IAAD;SACE,WAAW,EAAO;SAClB,cAAY,EAAE,OAAO;SACrB,oBAAkB;SAClB,OAAO,EAAE,OAAO;SAChB,aAAa,kBAAC,OAAD;UAAK,WAAW,EAAO;oBAAyB;SAAiB,CAAA;SAC9E,YAAY;SACZ,IAAI,GAAG,EAAM;SACb,OAAO;UAAE,QAAQ,GAAG;UAAkB,WAAW,GAAG;SAAiB;SACrE,WAAW,MAAU,EAAqB,EAAM,cAAc,SAAS;QACxE,CAAA;QAEH,aAAa,kBAAC,OAAD;SAAK,WAAW,EAAO;mBAAyB;QAAiB,CAAA;QAC9E,eAAe;OAChB,CAAA;OACD,kBAAC,IAAD,CAAc,CAAA;OACd,kBAAC,IAAD,CAAyB,CAAA;OACzB,kBAAC,IAAD,CAAgB,CAAA;OAChB,kBAAC,IAAD,CAAa,CAAA;OACb,kBAAC,IAAD,EAAyB,gBAAc,CAAA;OACvC,kBAAC,IAAD,EAAgB,UAAU,GAAW,CAAA;OACrC,kBAAC,IAAD,CAAsB,CAAA;OACtB,kBAAC,IAAD,EAAgB,UAAU,GAAiB,CAAA;OAC3C,kBAAC,IAAD,CAAqB,CAAA;OACrB,kBAAC,IAAD,CAA4B,CAAA;OAC3B,KAAU,kBAAC,IAAD,EAAiB,WAAW,EAAS,CAAA;MAC7C;OACU;;GACd,CAAA;GACJ,MAAqB,MAAM,kBAAC,GAAD;IAAa,OAAM;IAAQ,UAAU;GAAmB,CAAA;EACjF;;AAET,GAEa,MAAa,EACxB,qBAAkB,MAClB,aACA,kBAAe,IACf,iBAAc,IACd,WAAQ,IACR,UAAO,IACP,cAAW,IACX,cAAW,IACX,sBAAmB,IACnB,aACA,WACA,aACA,0BACA,6BAA0B;CAAE,OAAO;CAAQ,SAAS,CAAC;AAAE,QAEvD,kBAAC,IAAD,EAAA,UACE,kBAAC,IAAD;CACE,iBAAiB,EAAgB,YAAY;CACnC;CACI;CACD;CACN;CACD;CACI;CACA;CACQ;CACR;CACF;CACE;CACa;CACE;AAC1B,CAAA,EACe,CAAA"}