{"version":3,"file":"static/js/chunk-mix1.a00255aa.chunk.js","mappings":"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E+R,iBACFsH,GAAc,GACdpS,EAASuS,EAAI,EACb9e,SACD8e,GAPIA,SAaX,EC3EJK,EAAmB,CACvB,OACA,KACA,MACA,IACA,IACA,MACA,MACA,MACA,MACA,KACA,KACA,MACA,MACA,SACA,KACA,SACA,KACA,UACA,MACA,SACA,eACA,OACA,OACA,MACA,OACA,MACA,SACA,KACA,SACA,KACA,UACA,OACA,MACA,MACA,QACA,MACA,OACA,MACA,MACA,QACA,MACA,MACA,OACA,QACA,MACA,OACA,OACA,MACA,KACA,aACA,MACA,MACA,MACA,OACA,SACA,KACA,QACA,MACA,OACA,OACA,MACA,WACA,KACA,MACA,WACA,KACA,SACA,MACA,SACA,aACA,KACA,OACA,QACA,QACA,KACA,SACA,SACA,MACA,MACA,MACA,aACA,UACA,MACA,MACA,KACA,OACA,KACA,MACA,OACA,OACA,OACA,OACA,OACA,eACA,WACA,KACA,SACA,MACA,UACA,IACA,KACA,OACA,UACA,UACA,OACA,MACA,KACA,OACA,QACA,SACA,OACA,QACA,UACA,MACA,QACA,aACA,KACA,OACA,QACA,KACA,OACA,OAGF,IAAIxD,EACJ,MAAMyD,EAAOA,KACX,MAAM,EAAE7d,IAAMC,EAAAA,EAAAA,GAAe,cAAe,CAAEC,UAAW,WAEnDqO,EAAO,CACXO,MAAO,aACP6K,OAAQ,CAAC,UACTH,IAAK,GAAGxZ,EAAE,0BAGL8d,EAAMC,IAAW1T,EAAAA,EAAAA,UAAS,CAC/BnM,MAAO,GACPoQ,WAAW,EACXW,SAAU,MAELpN,EAASmc,IAAc3T,EAAAA,EAAAA,WAAS,IAChCoT,EAAMQ,IAAW5T,EAAAA,EAAAA,UAAS,IAC3B6T,GAAWC,EAAAA,EAAAA,QAA4B,OAuB7CtW,EAAAA,EAAAA,YAAU,KACJhG,GAAWqc,EAASE,SACtBF,EAASE,QAAQhD,OACnB,GACC,CAACvZ,IAkCJ,OACEnD,EAAAA,EAAAA,KAAC6b,EAAQ,IAAKhM,EAAM5O,QA3DL6a,IACfJ,EAAUI,EAEV,MAAM,SAAEV,EAAQ,OAAER,G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","sources":["components/BrandUpload/index.tsx","components/HotQuestions/index.tsx","components/Icon/index.tsx","components/InitialLoadingPlaceholder/index.tsx","components/Modal/Modal.tsx","components/Modal/Confirm.tsx","components/Modal/LoginToContinueModal.tsx","components/Modal/BadgeModal.tsx","components/Modal/index.tsx","components/QuestionList/index.tsx","components/SchemaForm/components/Legend.tsx","components/SchemaForm/components/Select.tsx","components/SchemaForm/components/Check.tsx","components/SchemaForm/components/Switch.tsx","components/TimeZonePicker/index.tsx","components/SchemaForm/components/Timezone.tsx","components/SchemaForm/components/Upload.tsx","components/SchemaForm/components/Textarea.tsx","components/SchemaForm/components/Input.tsx","components/SchemaForm/components/Button.tsx","components/SchemaForm/components/InputGroup.tsx","components/SchemaForm/index.tsx","components/Avatar/index.tsx","components/PluginRender/index.tsx","components/Editor/EditorContext.ts","components/Editor/toolItem.tsx","components/Editor/ToolBars/table.tsx","components/Editor/ToolBars/ol.tsx","components/Editor/ToolBars/ul.tsx","components/Editor/ToolBars/indent.tsx","components/Editor/ToolBars/outdent.tsx","components/Editor/ToolBars/hr.tsx","components/Editor/ToolBars/heading.tsx","components/Editor/ToolBars/bold.tsx","components/Editor/ToolBars/italic.tsx","components/Editor/Select/index.tsx","components/Editor/ToolBars/code.tsx","components/Editor/ToolBars/link.tsx","components/Editor/ToolBars/blockquote.tsx","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/TabContent.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/getTabTransitionComponent.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/TabPane.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/Tabs.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/TabContainer.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/Tab.js","components/Editor/ToolBars/image.tsx","components/Editor/ToolBars/help.tsx","components/Editor/ToolBars/file.tsx","components/Editor/utils/extension.ts","components/Editor/utils/index.ts","components/ImgViewer/index.tsx","components/Editor/Viewer.tsx","components/Editor/index.tsx","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/NavbarBrand.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/NavbarCollapse.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/NavbarToggle.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/OffcanvasBody.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/OffcanvasToggling.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/OffcanvasHeader.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/OffcanvasTitle.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/Offcanvas.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/NavbarOffcanvas.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/NavbarText.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/Navbar.js","components/Header/components/NavItems/index.tsx","components/Header/index.tsx","components/Footer/index.tsx","components/Icon/svg.tsx","components/TagSelector/index.tsx","components/Unactivate/index.tsx","components/UploadImg/index.tsx","components/Actions/index.tsx","components/Tag/index.tsx","components/Share/index.tsx","components/Operate/index.tsx","components/UserCard/index.tsx","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/PageItem.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/Pagination.js","components/Pagination/index.tsx","components/Comment/components/Form/index.tsx","components/Comment/components/ActionBar/index.tsx","components/Comment/components/Reply/index.tsx","components/Comment/index.tsx","components/TextArea/index.tsx","components/Mentions/index.tsx","components/FormatTime/index.tsx","components/Toast/index.tsx","components/AccordionNav/index.tsx","components/Empty/index.tsx","components/BaseUserCard/index.tsx","components/FollowingTags/index.tsx","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/types.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/DropdownButton.js","components/QueryGroup/index.tsx","components/DiffContent/index.tsx","components/Customize/index.tsx","components/CustomizeTheme/index.tsx","components/PageTags/index.tsx","components/QuestionListLoader/index.tsx","components/TagsLoader/index.tsx","components/WelcomeTitle/index.tsx","components/Counts/index.tsx","components/HttpErrorContent/index.tsx","components/CustomSidebar/index.tsx","components/SideNav/index.tsx","components/HighlightText/index.tsx","components/CardBadge/index.tsx","components/PinList/index.tsx","pages/Questions/Detail/components/Reactions/index.tsx","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/AbstractModalHeader.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/AccordionContext.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/AccordionCollapse.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/AccordionItemContext.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/AccordionBody.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/AccordionButton.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/AccordionHeader.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/AccordionItem.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/Accordion.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/Badge.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/BootstrapModalManager.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/Button.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/ButtonGroup.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/CardBody.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/CardFooter.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/CardHeader.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/CardImg.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/CardImgOverlay.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/CardLink.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/CardSubtitle.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/CardText.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/CardTitle.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/Card.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/CardHeaderContext.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/CloseButton.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/Col.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/createChainedFunction.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/Collapse.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/Container.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/DropdownDivider.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/DropdownHeader.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/DropdownItem.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/DropdownItemText.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/Dropdown.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/DropdownContext.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/DropdownMenu.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/DropdownToggle.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/ElementChildren.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/Fade.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/Feedback.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/FormFloating.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/FormLabel.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/FormRange.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/FormSelect.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/FormText.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/Switch.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/FloatingLabel.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/Form.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/FormCheckLabel.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/FormCheck.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/FormCheckInput.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/FormContext.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/FormControl.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/FormGroup.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/InputGroupText.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/InputGroup.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/InputGroupContext.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/ListGroup.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/ListGroupItem.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/ModalBody.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/ModalDialog.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/ModalFooter.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/ModalHeader.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/ModalTitle.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/Modal.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/ModalContext.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/Nav.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/NavItem.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/NavLink.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/NavbarContext.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/Overlay.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/useOverlayOffset.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/OverlayTrigger.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/PopoverHeader.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/PopoverBody.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/Popover.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/Spinner.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/createUtilityClasses.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/Stack.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/ThemeProvider.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/ToastFade.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/ToastContext.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/ToastHeader.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/ToastBody.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/Toast.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/Tooltip.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/TransitionWrapper.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/divWithClassName.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/getInitialPopperStyles.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/helpers.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/safeFindDOMNode.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/transitionEndListener.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/triggerBrowserReflow.js","../node_modules/.pnpm/react-bootstrap@2.10.6_@types+react@18.3.16_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-bootstrap/esm/useWrappedRefWithWarning.js"],"sourcesContent":["/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { FC } from 'react';\nimport { ButtonGroup, Button } from 'react-bootstrap';\n\nimport classNames from 'classnames';\n\nimport { Icon, UploadImg } from '@/components';\nimport { UploadType } from '@/common/interface';\n\ninterface Props {\n type: UploadType;\n value: string;\n onChange: (value: string) => void;\n acceptType?: string;\n readOnly?: boolean;\n imgClassNames?: classNames.Argument;\n}\n\nconst Index: FC<Props> = ({\n type = 'post',\n value,\n onChange,\n acceptType,\n readOnly = false,\n imgClassNames = '',\n}) => {\n const onUpload = (imgPath: string) => {\n onChange(imgPath);\n };\n\n const onRemove = () => {\n onChange('');\n };\n return (\n <div className=\"d-flex\">\n <div className=\"bg-gray-300 upload-img-wrap me-2 d-flex align-items-center justify-content-center\">\n <img\n className={classNames(imgClassNames)}\n src={value}\n alt=\"\"\n style={{ maxWidth: '100%', maxHeight: '100%' }}\n />\n </div>\n <ButtonGroup vertical className=\"fit-content\">\n <UploadImg\n type={type}\n uploadCallback={onUpload}\n className=\"mb-0\"\n disabled={readOnly}\n acceptType={acceptType}>\n <Icon name=\"cloud-upload\" />\n </UploadImg>\n\n <Button\n disabled={readOnly}\n variant=\"outline-secondary\"\n onClick={onRemove}>\n <Icon name=\"trash\" />\n </Button>\n </ButtonGroup>\n </div>\n );\n};\n\nexport default Index;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { FC } from 'react';\nimport { Card, ListGroup, ListGroupItem } from 'react-bootstrap';\nimport { Link } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n\nimport { pathFactory } from '@/router/pathFactory';\nimport { Icon } from '@/components';\nimport { useHotQuestions } from '@/services';\n\nconst HotQuestions: FC = () => {\n const { t } = useTranslation('translation', { keyPrefix: 'question' });\n const { data: questionRes } = useHotQuestions();\n if (!questionRes?.list?.length) {\n return null;\n }\n return (\n <Card>\n <Card.Header className=\"text-nowrap text-capitalize\">\n {t('hot_questions')}\n </Card.Header>\n <ListGroup variant=\"flush\">\n {questionRes?.list?.map((li) => {\n return (\n <ListGroupItem\n key={li.id}\n as={Link}\n to={pathFactory.questionLanding(li.id, li.url_title)}\n action>\n <div className=\"link-dark text-truncate-3\">{li.title}</div>\n {li.answer_count > 0 ? (\n <div\n className={`d-flex align-items-center small mt-1 ${\n li.accepted_answer_id > 0\n ? 'link-success'\n : 'link-secondary'\n }`}>\n {li.accepted_answer_id >= 1 ? (\n <Icon name=\"check-circle-fill\" />\n ) : (\n <Icon name=\"chat-square-text-fill\" />\n )}\n <span className=\"ms-1\">\n {t('x_answers', { count: li.answer_count })}\n </span>\n </div>\n ) : null}\n </ListGroupItem>\n );\n })}\n </ListGroup>\n </Card>\n );\n};\nexport default HotQuestions;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { FC } from 'react';\n\nimport classNames from 'classnames';\n\ninterface IProps {\n type?: 'br' | 'bi';\n /** icon name */\n name: string;\n className?: string;\n size?: string;\n title?: string;\n onClick?: () => void;\n}\nconst Icon: FC<IProps> = ({\n type = 'br',\n name,\n className,\n size,\n onClick,\n title,\n}) => {\n return (\n <i\n className={classNames(type, `bi-${name}`, className)}\n style={{ ...(size && { fontSize: size }) }}\n onClick={onClick}\n onKeyDown={onClick}\n title={title}\n />\n );\n};\n\nexport default Icon;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n// Same as spin in `public/index.html`\n\nimport './index.scss';\n\nfunction InitialLoadingPlaceholder() {\n return (\n <div className=\"InitialLoadingPlaceholder\">\n <div className=\"InitialLoadingPlaceholder-spinnerContainer\">\n <div className=\"InitialLoadingPlaceholder-spinner\" />\n </div>\n </div>\n );\n}\n\nexport default InitialLoadingPlaceholder;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React, { FC } from 'react';\nimport { Button, Modal } from 'react-bootstrap';\nimport { useTranslation } from 'react-i18next';\n\nexport interface Props {\n id?: string;\n /** header title */\n title?: string;\n children?: React.ReactNode;\n /** visible */\n visible?: boolean;\n centered?: boolean;\n onCancel?: () => void;\n onConfirm?: (event: any) => void;\n cancelText?: string;\n showCancel?: boolean;\n cancelBtnVariant?: string;\n confirmText?: string;\n showConfirm?: boolean;\n confirmBtnDisabled?: boolean;\n confirmBtnVariant?: string;\n /** body style */\n bodyClass?: string;\n scrollable?: boolean;\n className?: string;\n}\nconst Index: FC<Props> = ({\n id = '',\n title = 'title',\n visible = false,\n centered = true,\n onCancel,\n children,\n onConfirm,\n cancelText = '',\n showCancel = true,\n cancelBtnVariant = 'primary',\n confirmText = '',\n showConfirm = true,\n confirmBtnVariant = 'link',\n confirmBtnDisabled = false,\n bodyClass = '',\n scrollable = false,\n className = '',\n}) => {\n const { t } = useTranslation();\n return (\n <Modal\n id={id}\n className={className}\n scrollable={scrollable}\n show={visible}\n onHide={onCancel}\n centered={centered}\n fullscreen=\"sm-down\">\n <Modal.Header closeButton>\n <Modal.Title as=\"h5\">\n {title || t('title', { keyPrefix: 'modal_confirm' })}\n </Modal.Title>\n </Modal.Header>\n <Modal.Body className={bodyClass}>{children}</Modal.Body>\n {(showCancel || showConfirm) && (\n <Modal.Footer>\n {showCancel && (\n <Button variant={cancelBtnVariant} onClick={onCancel}>\n {cancelText === 'close'\n ? t('btns.close')\n : cancelText || t('btns.cancel')}\n </Button>\n )}\n {showConfirm && (\n <Button\n variant={confirmBtnVariant}\n onClick={(event) => {\n onConfirm?.(event);\n }}\n id=\"ok_button\"\n disabled={confirmBtnDisabled}>\n {confirmText === 'OK'\n ? t('btns.ok')\n : confirmText || t('btns.confirm')}\n </Button>\n )}\n </Modal.Footer>\n )}\n </Modal>\n );\n};\n\nexport default React.memo(Index);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n/* eslint-disable @typescript-eslint/no-use-before-define */\nimport * as React from 'react';\n\nimport ReactDOM from 'react-dom/client';\n\nimport Modal from './Modal';\nimport type { Props } from './Modal';\n\nconst div = document.createElement('div');\n\nconst root = ReactDOM.createRoot(div);\n\nexport interface Config extends Props {\n content: string;\n}\n\nconst Index = ({\n title = '',\n confirmText = '',\n content,\n onCancel: onClose,\n onConfirm,\n cancelBtnVariant = 'link',\n confirmBtnVariant = 'primary',\n ...props\n}: Config) => {\n const onCancel = () => {\n if (typeof onClose === 'function') {\n onClose();\n }\n render({ visible: false });\n div.remove();\n };\n const onOk = (e) => {\n if (typeof onConfirm === 'function') {\n onConfirm(e);\n }\n onCancel();\n };\n function render({ visible }: { visible: boolean }) {\n root.render(\n <Modal\n visible={visible}\n title={title}\n centered={false}\n onCancel={onCancel}\n onConfirm={onOk}\n confirmText={confirmText}\n cancelBtnVariant={cancelBtnVariant}\n confirmBtnVariant={confirmBtnVariant}\n {...props}>\n <p dangerouslySetInnerHTML={{ __html: content }} />\n </Modal>,\n );\n }\n render({ visible: true });\n};\n\nexport default Index;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React from 'react';\nimport { Modal } from 'react-bootstrap';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\n\nimport { loginToContinueStore, siteInfoStore } from '@/stores';\nimport { floppyNavigation } from '@/utils';\nimport { WelcomeTitle } from '@/components';\n\nimport './login.scss';\n\ninterface IProps {\n visible: boolean;\n}\n\nconst Index: React.FC<IProps> = ({ visible = false }) => {\n const { t } = useTranslation('translation', { keyPrefix: 'login' });\n const { update: updateStore } = loginToContinueStore();\n const { siteInfo } = siteInfoStore((_) => _);\n const closeModal = () => {\n updateStore({ show: false });\n };\n const linkClick = (evt) => {\n evt.stopPropagation();\n floppyNavigation.storageLoginRedirect();\n closeModal();\n };\n return (\n <Modal\n show={visible}\n onHide={closeModal}\n centered\n className=\"loginToContinueModal\"\n fullscreen=\"sm-down\">\n <Modal.Header closeButton>\n <Modal.Title as=\"h5\">{t('login_to_continue')}</Modal.Title>\n </Modal.Header>\n <Modal.Body className=\"p-5\">\n <div className=\"d-flex flex-column align-items-center text-center text-body\">\n <WelcomeTitle className=\"mb-2\" />\n <p>{siteInfo.description}</p>\n </div>\n <div className=\"d-grid gap-2\">\n <Link\n to=\"/users/login\"\n className=\"btn btn-primary\"\n onClick={linkClick}>\n {t('login', { keyPrefix: 'btns' })}\n </Link>\n <Link\n to=\"/users/register\"\n className=\"btn btn-link\"\n onClick={linkClick}>\n {t('signup', { keyPrefix: 'btns' })}\n </Link>\n </div>\n </Modal.Body>\n </Modal>\n );\n};\nexport default Index;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { FC, useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useNavigate } from 'react-router-dom';\n\nimport classNames from 'classnames';\n\nimport type * as Type from '@/common/interface';\nimport { loggedUserInfoStore } from '@/stores';\nimport { readNotification, useQueryNotificationStatus } from '@/services';\nimport AnimateGift from '@/utils/animateGift';\nimport Icon from '../Icon';\n\nimport Modal from './Modal';\n\ninterface BadgeModalProps {\n badge?: Type.NotificationBadgeAward | null;\n visible: boolean;\n}\n\nlet bg1: AnimateGift;\nlet bg2: AnimateGift;\nlet timeout: NodeJS.Timeout;\nconst BadgeModal: FC<BadgeModalProps> = ({ badge, visible }) => {\n const { t } = useTranslation('translation', { keyPrefix: 'badges.modal' });\n const { user } = loggedUserInfoStore();\n const navigate = useNavigate();\n const { data, mutate } = useQueryNotificationStatus();\n\n const handle = async () => {\n if (!data) return;\n await readNotification(badge?.notification_id);\n await mutate({\n ...data,\n badge_award: null,\n });\n clearTimeout(timeout);\n bg1?.destroy();\n bg2?.destroy();\n };\n const handleCancel = async () => {\n await handle();\n };\n const handleConfirm = async () => {\n await handle();\n\n const url = `/badges/${badge?.badge_id}?username=${user.username}`;\n navigate(url);\n };\n\n const initAnimation = () => {\n const DURATION = 8000;\n const LENGTH = 200;\n const bgNode = document.documentElement || document.body;\n const badgeModalNode = document.getElementById('badgeModal');\n const parentNode = badgeModalNode?.parentNode;\n\n badgeModalNode?.setAttribute('style', 'z-index: 1');\n\n if (parentNode) {\n bg1 = new AnimateGift({\n elm: parentNode,\n width: bgNode.clientWidth,\n height: bgNode.clientHeight,\n length: LENGTH,\n duration: DURATION,\n isLoop: true,\n });\n\n timeout = setTimeout(() => {\n bg2 = new AnimateGift({\n elm: parentNode,\n width: window.innerWidth,\n height: window.innerHeight,\n length: LENGTH,\n duration: DURATION,\n });\n }, DURATION / 2);\n }\n };\n\n const destroyAnimation = () => {\n clearTimeout(timeout);\n bg1?.destroy();\n bg2?.destroy();\n };\n\n useEffect(() => {\n if (visible) {\n initAnimation();\n } else {\n destroyAnimation();\n }\n\n const handleVisibilityChange = () => {\n if (document.visibilityState === 'visible') {\n initAnimation();\n } else {\n destroyAnimation();\n }\n };\n document.addEventListener('visibilitychange', handleVisibilityChange);\n\n return () => {\n document.removeEventListener('visibilitychange', handleVisibilityChange);\n destroyAnimation();\n };\n }, [visible]);\n\n return (\n <Modal\n id=\"badgeModal\"\n title={t('title')}\n visible={visible}\n onCancel={handleCancel}\n onConfirm={handleConfirm}\n cancelText={t('close')}\n cancelBtnVariant=\"link\"\n confirmText={t('confirm')}\n confirmBtnVariant=\"primary\"\n scrollable={false}>\n {badge && (\n <div className=\"text-center\">\n {badge.icon?.startsWith('http') ? (\n <img src={badge.icon} width={96} height={96} alt={badge.name} />\n ) : (\n <Icon\n name={badge.icon}\n size=\"96px\"\n className={classNames(\n 'lh-1',\n badge.level === 1 && 'bronze',\n badge.level === 2 && 'silver',\n badge.level === 3 && 'gold',\n )}\n />\n )}\n <h5 className=\"mt-3\">{badge?.name}</h5>\n <p>{t('content')}</p>\n </div>\n )}\n </Modal>\n );\n};\n\nexport default BadgeModal;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport DefaultModal from './Modal';\nimport confirm, { Config } from './Confirm';\nimport LoginToContinueModal from './LoginToContinueModal';\nimport BadgeModal from './BadgeModal';\n\ntype ModalType = typeof DefaultModal & {\n confirm: (config: Config) => void;\n};\nconst Modal = DefaultModal as ModalType;\n\nModal.confirm = function (props: Config) {\n return confirm(props);\n};\n\nexport default Modal;\n\nexport { LoginToContinueModal, BadgeModal };\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { FC, useEffect, useState } from 'react';\nimport { ListGroup, Dropdown } from 'react-bootstrap';\nimport { NavLink, useSearchParams, useNavigate } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n\nimport { pathFactory } from '@/router/pathFactory';\nimport {\n Tag,\n Pagination,\n FormatTime,\n Empty,\n BaseUserCard,\n QueryGroup,\n QuestionListLoader,\n Counts,\n PinList,\n Icon,\n} from '@/components';\nimport * as Type from '@/common/interface';\nimport { useSkeletonControl } from '@/hooks';\nimport Storage from '@/utils/storage';\nimport { LIST_VIEW_STORAGE_KEY } from '@/common/constants';\n\nexport const QUESTION_ORDER_KEYS: Type.QuestionOrderBy[] = [\n 'newest',\n 'active',\n 'unanswered',\n 'recommend',\n 'frequent',\n 'score',\n];\ninterface Props {\n source: 'questions' | 'tag' | 'linked';\n order?: Type.QuestionOrderBy;\n data;\n orderList?: Type.QuestionOrderBy[];\n isLoading: boolean;\n}\n\nconst QuestionList: FC<Props> = ({\n source,\n order,\n data,\n orderList,\n isLoading = false,\n}) => {\n const { t } = useTranslation('translation', { keyPrefix: 'question' });\n const navigate = useNavigate();\n const [urlSearchParams] = useSearchParams();\n const { isSkeletonShow } = useSkeletonControl(isLoading);\n const curOrder =\n order || urlSearchParams.get('order') || QUESTION_ORDER_KEYS[0];\n const curPage = Number(urlSearchParams.get('page')) || 1;\n const pageSize = 20;\n const count = data?.count || 0;\n const orderKeys = orderList || QUESTION_ORDER_KEYS;\n const pinData =\n source === 'questions'\n ? data?.list?.filter((v) => v.pin === 2).slice(0, 3)\n : [];\n const renderData = data?.list?.filter(\n (v) => pinData.findIndex((p) => p.id === v.id) === -1,\n );\n\n const [viewType, setViewType] = useState('card');\n\n const handleViewMode = (key) => {\n Storage.set(LIST_VIEW_STORAGE_KEY, key);\n setViewType(key);\n };\n\n const handleNavigate = (href) => {\n navigate(href);\n };\n\n useEffect(() => {\n const type = Storage.get(LIST_VIEW_STORAGE_KEY) || 'card';\n setViewType(type);\n }, []);\n\n return (\n <div>\n <div className=\"mb-3 d-flex flex-wrap justify-content-between\">\n <h5 className=\"fs-5 text-nowrap mb-3 mb-md-0\">\n {source === 'questions'\n ? t('all_questions')\n : t('x_questions', { count })}\n </h5>\n <div className=\"d-flex flex-wrap\">\n <QueryGroup\n data={orderKeys}\n currentSort={curOrder}\n pathname={source === 'questions' ? '/questions' : ''}\n i18nKeyPrefix=\"question\"\n maxBtnCount={source === 'tag' ? 3 : 4}\n wrapClassName=\"me-2\"\n />\n <Dropdown align=\"end\" onSelect={handleViewMode}>\n <Dropdown.Toggle variant=\"outline-secondary\" size=\"sm\">\n <Icon name={viewType === 'card' ? 'view-stacked' : 'list'} />\n </Dropdown.Toggle>\n\n <Dropdown.Menu>\n <Dropdown.Header>\n {t('view', { keyPrefix: 'btns' })}\n </Dropdown.Header>\n <Dropdown.Item eventKey=\"card\" active={viewType === 'card'}>\n {t('card', { keyPrefix: 'btns' })}\n </Dropdown.Item>\n <Dropdown.Item eventKey=\"compact\" active={viewType === 'compact'}>\n {t('compact', { keyPrefix: 'btns' })}\n </Dropdown.Item>\n </Dropdown.Menu>\n </Dropdown>\n </div>\n </div>\n <ListGroup className=\"rounded-0\">\n {isSkeletonShow ? (\n <QuestionListLoader />\n ) : (\n <>\n <PinList data={pinData} />\n {renderData?.map((li) => {\n return (\n <ListGroup.Item\n key={li.id}\n action\n as=\"li\"\n onClick={() =>\n handleNavigate(\n pathFactory.questionLanding(li.id, li.url_title),\n )\n }\n className=\"py-3 px-2 border-start-0 border-end-0 position-relative pointer\">\n <div className=\"d-flex flex-wrap text-secondary small mb-12\">\n <BaseUserCard\n data={li.operator}\n className=\"me-1\"\n avatarClass=\"me-1\"\n />\n •\n <FormatTime\n time={\n curOrder === 'active' ? li.operated_at : li.created_at\n }\n className=\"text-secondary ms-1 flex-shrink-0\"\n preFix={\n curOrder === 'active'\n ? t(li.operation_type)\n : t('asked')\n }\n />\n </div>\n <h5 className=\"text-wrap text-break\">\n <NavLink\n className=\"link-dark d-block\"\n onClick={(e) => e.stopPropagation()}\n to={pathFactory.questionLanding(li.id, li.url_title)}>\n {li.title}\n {li.status === 2 ? ` [${t('closed')}]` : ''}\n </NavLink>\n </h5>\n {viewType === 'card' && (\n <div className=\"text-truncate-2 mb-2\">\n <NavLink\n to={pathFactory.questionLanding(li.id, li.url_title)}\n className=\"d-block small text-body\"\n dangerouslySetInnerHTML={{ __html: li.description }}\n onClick={(e) => e.stopPropagation()}\n />\n </div>\n )}\n\n <div className=\"question-tags mb-12\">\n {Array.isArray(li.tags)\n ? li.tags.map((tag, index) => {\n return (\n <Tag\n key={tag.slug_name}\n className={`${\n li.tags.length - 1 === index ? '' : 'me-1'\n }`}\n data={tag}\n />\n );\n })\n : null}\n </div>\n <div className=\"small text-secondary\">\n <Counts\n data={{\n votes: li.vote_count,\n answers: li.answer_count,\n views: li.view_count,\n }}\n isAccepted={li.accepted_answer_id >= 1}\n className=\"mt-2 mt-md-0\"\n />\n </div>\n </ListGroup.Item>\n );\n })}\n </>\n )}\n </ListGroup>\n {count <= 0 && !isLoading && <Empty />}\n <div className=\"mt-4 mb-2 d-flex justify-content-center\">\n <Pagination\n currentPage={curPage}\n totalSize={count}\n pageSize={pageSize}\n pathname={source === 'questions' ? '/questions' : ''}\n />\n </div>\n </div>\n );\n};\nexport default QuestionList;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { FC } from 'react';\nimport { Form } from 'react-bootstrap';\n\ninterface Props {\n title: string;\n className?: string | undefined;\n}\nconst Index: FC<Props> = ({ title, className }) => {\n return <Form.Label className={className}>{title}</Form.Label>;\n};\n\nexport default Index;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React, { FC } from 'react';\nimport { Form } from 'react-bootstrap';\n\nimport type * as Type from '@/common/interface';\n\ninterface Props {\n desc: string | undefined;\n fieldName: string;\n onChange?: (fd: Type.FormDataType) => void;\n enumValues: (string | boolean | number)[];\n enumNames: string[];\n formData: Type.FormDataType;\n readOnly: boolean;\n}\nconst Index: FC<Props> = ({\n desc,\n fieldName,\n onChange,\n enumValues,\n enumNames,\n formData,\n readOnly = false,\n}) => {\n const fieldObject = formData[fieldName];\n const handleChange = (evt: React.ChangeEvent<HTMLSelectElement>) => {\n const { name, value } = evt.currentTarget;\n const state = {\n ...formData,\n [name]: {\n ...formData[name],\n value,\n isInvalid: false,\n },\n };\n if (typeof onChange === 'function') {\n onChange(state);\n }\n };\n return (\n <Form.Select\n aria-label={desc}\n name={fieldName}\n value={fieldObject?.value || ''}\n onChange={handleChange}\n disabled={readOnly}\n isInvalid={fieldObject?.isInvalid}>\n {enumValues?.map((item, index) => {\n return (\n <option value={String(item)} key={String(item)}>\n {enumNames?.[index]}\n </option>\n );\n })}\n </Form.Select>\n );\n};\n\nexport default Index;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React, { FC } from 'react';\nimport { Form, Stack } from 'react-bootstrap';\n\nimport type * as Type from '@/common/interface';\n\ninterface Props {\n type: 'radio' | 'checkbox';\n fieldName: string;\n onChange?: (fd: Type.FormDataType) => void;\n enumValues: (string | boolean | number)[];\n enumNames: string[];\n formData: Type.FormDataType;\n readOnly?: boolean;\n}\nconst Index: FC<Props> = ({\n type = 'radio',\n fieldName,\n onChange,\n enumValues,\n enumNames,\n formData,\n readOnly = false,\n}) => {\n const fieldObject = formData[fieldName];\n const handleCheck = (\n evt: React.ChangeEvent<HTMLInputElement>,\n index: number,\n ) => {\n const { name, checked } = evt.currentTarget;\n enumValues[index] = checked;\n\n const state = {\n ...formData,\n [name]: {\n ...formData[name],\n value: enumValues,\n isInvalid: false,\n },\n };\n if (typeof onChange === 'function') {\n onChange(state);\n }\n };\n return (\n <Stack direction=\"horizontal\">\n {enumValues?.map((item, index) => {\n return (\n <Form.Check\n key={String(item)}\n inline\n type={type}\n name={fieldName}\n id={`${fieldName}-${enumNames?.[index]}`}\n label={enumNames?.[index]}\n checked={fieldObject?.value?.[index] || false}\n feedback={fieldObject?.errorMsg}\n feedbackType=\"invalid\"\n isInvalid={fieldObject?.isInvalid}\n disabled={readOnly}\n onChange={(evt) => handleCheck(evt, index)}\n />\n );\n })}\n </Stack>\n );\n};\n\nexport default Index;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React, { FC } from 'react';\nimport { Form } from 'react-bootstrap';\n\nimport type * as Type from '@/common/interface';\n\ninterface Props {\n label: string | undefined;\n fieldName: string;\n onChange?: (fd: Type.FormDataType) => void;\n formData: Type.FormDataType;\n readOnly?: boolean;\n}\nconst Index: FC<Props> = ({\n fieldName,\n onChange,\n label,\n formData,\n readOnly = false,\n}) => {\n const fieldObject = formData[fieldName];\n const handleChange = (evt: React.ChangeEvent<HTMLInputElement>) => {\n const { name, checked } = evt.currentTarget;\n const state = {\n ...formData,\n [name]: {\n ...formData[name],\n value: checked,\n isInvalid: false,\n },\n };\n if (typeof onChange === 'function') {\n onChange(state);\n }\n };\n return (\n <Form.Check\n name={fieldName}\n type=\"switch\"\n label={label}\n checked={fieldObject?.value || ''}\n feedback={fieldObject?.errorMsg}\n feedbackType=\"invalid\"\n isInvalid={fieldObject.isInvalid}\n disabled={readOnly}\n onChange={handleChange}\n />\n );\n};\n\nexport default Index;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { Form } from 'react-bootstrap';\n\nimport { TIMEZONES } from '@/common/constants';\n\nconst TimeZonePicker = (props) => {\n return (\n <Form.Select {...props}>\n {TIMEZONES?.map((item) => {\n return (\n <optgroup label={item.label} key={item.label}>\n {item.options.map((option) => {\n return (\n <option value={option.value} key={option.value}>\n {option.label}\n </option>\n );\n })}\n </optgroup>\n );\n })}\n </Form.Select>\n );\n};\n\nexport default TimeZonePicker;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React, { FC } from 'react';\n\nimport type * as Type from '@/common/interface';\nimport TimeZonePicker from '@/components/TimeZonePicker';\n\ninterface Props {\n fieldName: string;\n onChange?: (fd: Type.FormDataType) => void;\n formData: Type.FormDataType;\n readOnly?: boolean;\n}\nconst Index: FC<Props> = ({\n fieldName,\n onChange,\n formData,\n readOnly = false,\n}) => {\n const fieldObject = formData[fieldName];\n const handleChange = (evt: React.ChangeEvent<HTMLSelectElement>) => {\n const { name, value } = evt.currentTarget;\n const state = {\n ...formData,\n [name]: {\n ...formData[name],\n value,\n isInvalid: false,\n },\n };\n if (typeof onChange === 'function') {\n onChange(state);\n }\n };\n return (\n <TimeZonePicker\n value={fieldObject?.value || ''}\n isInvalid={fieldObject?.isInvalid}\n name={fieldName}\n disabled={readOnly}\n onChange={handleChange}\n />\n );\n};\n\nexport default Index;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React, { FC } from 'react';\nimport { Form } from 'react-bootstrap';\n\nimport classNames from 'classnames';\n\nimport type * as Type from '@/common/interface';\nimport BrandUpload from '@/components/BrandUpload';\n\ninterface Props {\n type: Type.UploadType | undefined;\n acceptType: string | undefined;\n fieldName: string;\n onChange?: (fd: Type.FormDataType) => void;\n formData: Type.FormDataType;\n readOnly?: boolean;\n imgClassNames?: classNames.Argument;\n}\nconst Index: FC<Props> = ({\n type = 'avatar',\n acceptType = '',\n fieldName,\n onChange,\n formData,\n readOnly = false,\n imgClassNames = '',\n}) => {\n const fieldObject = formData[fieldName];\n const handleChange = (name: string, value: string) => {\n const state = {\n ...formData,\n [name]: {\n ...formData[name],\n value,\n },\n };\n if (typeof onChange === 'function') {\n onChange(state);\n }\n };\n return (\n <>\n <BrandUpload\n type={type}\n acceptType={acceptType}\n value={fieldObject?.value}\n readOnly={readOnly}\n onChange={(value) => handleChange(fieldName, value)}\n imgClassNames={imgClassNames}\n />\n <Form.Control\n name={fieldName}\n className=\"d-none\"\n isInvalid={fieldObject?.isInvalid}\n />\n </>\n );\n};\n\nexport default Index;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React, { FC } from 'react';\nimport { Form } from 'react-bootstrap';\n\nimport classnames from 'classnames';\n\nimport type * as Type from '@/common/interface';\n\ninterface Props {\n placeholder: string | undefined;\n rows: number | undefined;\n className: classnames.Argument;\n fieldName: string;\n onChange?: (fd: Type.FormDataType) => void;\n formData: Type.FormDataType;\n readOnly: boolean;\n}\nconst Index: FC<Props> = ({\n placeholder = '',\n rows = 3,\n className,\n fieldName,\n onChange,\n formData,\n readOnly = false,\n}) => {\n const fieldObject = formData[fieldName];\n const handleChange = (evt: React.ChangeEvent<HTMLInputElement>) => {\n const { name, value } = evt.currentTarget;\n const state = {\n ...formData,\n [name]: {\n ...formData[name],\n value,\n isInvalid: false,\n },\n };\n if (typeof onChange === 'function') {\n onChange(state);\n }\n };\n\n return (\n <Form.Control\n as=\"textarea\"\n name={fieldName}\n placeholder={placeholder}\n value={fieldObject?.value || ''}\n onChange={handleChange}\n isInvalid={fieldObject?.isInvalid}\n rows={rows}\n disabled={readOnly}\n className={classnames(className)}\n />\n );\n};\n\nexport default Index;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React, { FC } from 'react';\nimport { Form } from 'react-bootstrap';\n\nimport type * as Type from '@/common/interface';\n\ninterface Props {\n type: string | undefined;\n placeholder: string | undefined;\n fieldName: string;\n onChange?: (fd: Type.FormDataType) => void;\n formData: Type.FormDataType;\n readOnly: boolean;\n}\nconst Index: FC<Props> = ({\n type = 'text',\n placeholder = '',\n fieldName,\n onChange,\n formData,\n readOnly = false,\n}) => {\n const fieldObject = formData[fieldName];\n const handleChange = (evt: React.ChangeEvent<HTMLInputElement>) => {\n const { name, value } = evt.currentTarget;\n const state = {\n ...formData,\n [name]: {\n ...formData[name],\n value,\n isInvalid: false,\n },\n };\n if (typeof onChange === 'function') {\n onChange(state);\n }\n };\n\n return (\n <Form.Control\n name={fieldName}\n placeholder={placeholder}\n type={type}\n value={fieldObject?.value || ''}\n onChange={handleChange}\n disabled={readOnly}\n isInvalid={fieldObject?.isInvalid}\n style={type === 'color' ? { width: '100px', flex: 'none' } : {}}\n />\n );\n};\n\nexport default Index;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { FC, useEffect, useState } from 'react';\nimport { Button, ButtonProps, Spinner } from 'react-bootstrap';\n\nimport { request } from '@/utils';\nimport type { UIAction, FormKit } from '../types';\nimport { useToast } from '@/hooks';\nimport { Icon } from '@/components';\n\ninterface Props {\n fieldName: string;\n text: string;\n action: UIAction | undefined;\n actionType?: 'submit' | 'click';\n clickCallback?: () => void;\n formKit: FormKit;\n readOnly: boolean;\n variant?: ButtonProps['variant'];\n size?: ButtonProps['size'];\n iconName?: string;\n nowrap?: boolean;\n title?: string;\n}\nconst Index: FC<Props> = ({\n fieldName,\n action,\n actionType = 'submit',\n formKit,\n text = '',\n readOnly = false,\n variant = 'primary',\n size,\n iconName = '',\n nowrap = false,\n clickCallback,\n title,\n}) => {\n const Toast = useToast();\n const [isLoading, setLoading] = useState(false);\n const handleToast = (msg, type: 'success' | 'danger' = 'success') => {\n const tm = action?.on_complete?.toast_return_message;\n if (tm === false || !msg) {\n return;\n }\n Toast.onShow({\n msg,\n variant: type,\n });\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const handleCallback = (resp) => {\n const callback = action?.on_complete;\n if (callback?.refresh_form_config) {\n formKit.refreshConfig();\n }\n };\n const handleAction = () => {\n if (actionType === 'click') {\n if (typeof clickCallback === 'function') {\n clickCallback();\n }\n return;\n }\n if (!action) {\n return;\n }\n setLoading(true);\n request\n .request({\n method: action.method,\n url: action.url,\n timeout: 0,\n })\n .then((resp) => {\n if ('message' in resp) {\n handleToast(resp.message, 'success');\n }\n handleCallback(resp);\n })\n .catch((ex) => {\n if (ex && 'msg' in ex) {\n handleToast(ex.msg, 'danger');\n }\n })\n .finally(() => {\n setLoading(false);\n });\n };\n useEffect(() => {\n if (action?.loading?.state === 'pending') {\n setLoading(true);\n }\n }, []);\n const loadingText = action?.loading?.text || text;\n const disabled = isLoading || readOnly;\n if (nowrap) {\n return (\n <Button\n name={fieldName}\n onClick={handleAction}\n disabled={disabled}\n size={size}\n title={title}\n variant={variant}>\n {isLoading ? (\n <>\n <Spinner\n className=\"align-middle me-2\"\n animation=\"border\"\n size=\"sm\"\n variant={variant}\n />\n {loadingText}\n </>\n ) : (\n text\n )}\n {iconName && <Icon name={iconName} />}\n </Button>\n );\n }\n\n return (\n <div className=\"d-flex\">\n <Button\n name={fieldName}\n onClick={handleAction}\n disabled={disabled}\n size={size}\n title={title}\n variant={variant}>\n {isLoading ? (\n <>\n <Spinner\n className=\"align-middle me-2\"\n animation=\"border\"\n size=\"sm\"\n variant={variant}\n />\n {loadingText}\n </>\n ) : (\n text\n )}\n {iconName && <Icon name={iconName} />}\n </Button>\n </div>\n );\n};\n\nexport default Index;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { FC } from 'react';\nimport { InputGroup } from 'react-bootstrap';\n\nimport type { FormKit, InputGroupOptions } from '../types';\n\nimport Button from './Button';\n\ninterface Props {\n formKitWithContext: FormKit;\n uiOpt: InputGroupOptions;\n prefixText?: string;\n suffixText?: string;\n children: React.ReactNode;\n}\n\nconst InputGroupBtn = ({\n formKitWithContext,\n uiOpt,\n}: {\n formKitWithContext: FormKit;\n uiOpt:\n | InputGroupOptions['prefixBtnOptions']\n | InputGroupOptions['suffixBtnOptions'];\n}) => {\n return (\n <Button\n fieldName=\"1\"\n text={String(uiOpt?.text)}\n iconName={uiOpt?.iconName ? uiOpt?.iconName : ''}\n action={uiOpt?.action ? uiOpt?.action : undefined}\n actionType=\"click\"\n clickCallback={uiOpt?.clickCallback ? uiOpt?.clickCallback : undefined}\n formKit={formKitWithContext}\n variant={uiOpt?.variant ? uiOpt.variant : undefined}\n size={uiOpt?.size ? uiOpt?.size : undefined}\n title={uiOpt?.title ? uiOpt?.title : ''}\n nowrap\n readOnly={false}\n />\n );\n};\n\nconst Index: FC<Props> = ({\n formKitWithContext,\n uiOpt,\n prefixText = null,\n suffixText = null,\n children,\n}) => {\n return (\n <InputGroup>\n {prefixText && <InputGroup.Text>{prefixText}</InputGroup.Text>}\n {uiOpt && 'prefixBtnOptions' in uiOpt && (\n <InputGroupBtn\n uiOpt={uiOpt.prefixBtnOptions}\n formKitWithContext={formKitWithContext}\n />\n )}\n {children}\n {uiOpt && 'suffixBtnOptions' in uiOpt && (\n <InputGroupBtn\n uiOpt={uiOpt.suffixBtnOptions}\n formKitWithContext={formKitWithContext}\n />\n )}\n {suffixText ? <InputGroup.Text>{suffixText}</InputGroup.Text> : null}\n </InputGroup>\n );\n};\n\nexport default Index;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React, {\n ForwardRefRenderFunction,\n forwardRef,\n useImperativeHandle,\n useEffect,\n} from 'react';\nimport { Form, Button } from 'react-bootstrap';\nimport { useTranslation } from 'react-i18next';\n\nimport isEmpty from 'lodash/isEmpty';\nimport classnames from 'classnames';\n\nimport { scrollElementIntoView } from '@/utils';\nimport type * as Type from '@/common/interface';\n\nimport type {\n JSONSchema,\n FormProps,\n FormRef,\n BaseUIOptions,\n FormKit,\n InputGroupOptions,\n} from './types';\nimport {\n Legend,\n Select,\n Check,\n Switch,\n Timezone,\n Upload,\n Textarea,\n Input,\n Button as SfButton,\n InputGroup,\n} from './components';\n\nexport * from './types';\n\n/**\n * TODO:\n * - [!] Standardised `Admin/Plugins/Config/index.tsx` method for generating dynamic form configurations.\n * - Normalize and document `formData[key].hidden && 'd-none'`\n * - Normalize and document `hiddenSubmit`\n * - Improving field hints for `formData`\n * - Optimise form data updates\n * * Automatic field type conversion\n * * Dynamic field generation\n */\n\n/**\n * json schema form\n * @param schema json schema\n * @param uiSchema ui schema\n * @param formData form data\n * @param onChange change event\n * @param onSubmit submit event\n */\nconst SchemaForm: ForwardRefRenderFunction<FormRef, FormProps> = (\n {\n schema,\n uiSchema = {},\n refreshConfig,\n formData,\n onChange,\n onSubmit,\n hiddenSubmit = false,\n },\n ref,\n) => {\n const { t } = useTranslation('translation', {\n keyPrefix: 'form',\n });\n const { required = [], properties = {} } = schema || {};\n // check required field\n const excludes = required.filter((key) => !properties[key]);\n if (excludes.length > 0) {\n console.error(t('not_found_props', { key: excludes.join(', ') }));\n }\n formData ||= {};\n const keys = Object.keys(properties);\n /**\n * Prevent components such as `select` from having default values,\n * which are not generated on `formData`\n */\n const setDefaultValueAsDomBehaviour = () => {\n keys.forEach((k) => {\n const fieldVal = formData![k]?.value;\n const metaProp = properties[k];\n const uiCtrl = uiSchema[k]?.['ui:widget'];\n if (!metaProp || !uiCtrl || fieldVal !== undefined) {\n return;\n }\n if (uiCtrl === 'select' && metaProp.enum?.[0] !== undefined) {\n formData![k] = {\n errorMsg: '',\n isInvalid: false,\n value: metaProp.enum?.[0],\n };\n }\n });\n };\n useEffect(() => {\n setDefaultValueAsDomBehaviour();\n }, [formData]);\n\n const formKitWithContext: FormKit = {\n refreshConfig() {\n if (typeof refreshConfig === 'function') {\n refreshConfig();\n }\n },\n };\n\n /**\n * Form validation\n * - Currently only dynamic forms are in use, the business form validation has been handed over to the server\n */\n const requiredValidator = () => {\n const errors: string[] = [];\n required.forEach((key) => {\n if (!formData![key] || !formData![key].value) {\n errors.push(key);\n }\n });\n return errors;\n };\n\n const syncValidator = () => {\n const errors: Array<{ key: string; msg: string }> = [];\n const promises: Array<{\n key: string;\n promise;\n }> = [];\n keys.forEach((key) => {\n const { validator } = uiSchema[key]?.['ui:options'] || {};\n if (validator instanceof Function) {\n const value = formData![key]?.value;\n promises.push({\n key,\n promise: validator(value, formData),\n });\n }\n });\n return Promise.allSettled(promises.map((item) => item.promise)).then(\n (results) => {\n results.forEach((result, index) => {\n const { key } = promises[index];\n if (result.status === 'rejected') {\n errors.push({\n key,\n msg: result.reason.message,\n });\n }\n\n if (result.status === 'fulfilled') {\n const msg = result.value;\n if (typeof msg === 'string') {\n errors.push({\n key,\n msg,\n });\n }\n }\n });\n return errors;\n },\n );\n };\n\n const validator = async (): Promise<boolean> => {\n const errors = requiredValidator();\n if (errors.length > 0) {\n formData = errors.reduce((acc, cur) => {\n acc[cur] = {\n ...formData![cur],\n isInvalid: true,\n errorMsg:\n uiSchema[cur]?.['ui:options']?.empty ||\n `${properties[cur]?.title} ${t('empty')}`,\n };\n return acc;\n }, formData || {});\n if (onChange instanceof Function) {\n onChange({ ...formData });\n }\n scrollElementIntoView(document.getElementById(errors[0]));\n return false;\n }\n const syncErrors = await syncValidator();\n if (syncErrors.length > 0) {\n formData = syncErrors.reduce((acc, cur) => {\n acc[cur.key] = {\n ...formData![cur.key],\n isInvalid: true,\n errorMsg: cur.msg || `${properties[cur.key].title} ${t('invalid')}`,\n };\n return acc;\n }, formData || {});\n if (onChange instanceof Function) {\n onChange({ ...formData });\n }\n scrollElementIntoView(document.getElementById(syncErrors[0].key));\n return false;\n }\n return true;\n };\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n const isValid = await validator();\n if (!isValid) {\n return;\n }\n\n Object.keys(formData!).forEach((key) => {\n formData![key].isInvalid = false;\n formData![key].errorMsg = '';\n });\n if (onChange instanceof Function) {\n onChange(formData!);\n }\n if (onSubmit instanceof Function) {\n onSubmit(e);\n }\n };\n\n useImperativeHandle(ref, () => ({\n validator,\n }));\n if (!formData || !schema || isEmpty(schema.properties)) {\n return null;\n }\n\n return (\n <Form noValidate onSubmit={handleSubmit}>\n {keys.map((key) => {\n const {\n title,\n description,\n enum: enumValues = [],\n enumNames = [],\n } = properties[key];\n const { 'ui:widget': widget = 'input', 'ui:options': uiOpt } =\n uiSchema?.[key] || {};\n formData ||= {};\n const fieldState = formData[key];\n if (uiOpt?.class_name) {\n uiOpt.className = uiOpt.class_name;\n }\n\n const uiSimplify = widget === 'legend' || uiOpt?.simplify;\n let groupClassName: BaseUIOptions['field_class_name'] = uiOpt?.simplify\n ? 'mb-2'\n : 'mb-3';\n if (widget === 'legend') {\n groupClassName = 'mb-0';\n }\n if (uiOpt?.field_class_name) {\n groupClassName = uiOpt.field_class_name;\n }\n\n const readOnly = uiOpt?.readOnly || false;\n\n return (\n <Form.Group\n key={`${title}-${key}`}\n controlId={key}\n className={classnames(\n groupClassName,\n formData[key].hidden ? 'd-none' : null,\n )}>\n {/* Uniform processing `label` */}\n {title && !uiSimplify ? <Form.Label>{title}</Form.Label> : null}\n {/* Handling of individual specific controls */}\n {widget === 'legend' ? (\n <Legend title={title} className={String(uiOpt?.className)} />\n ) : null}\n {widget === 'select' ? (\n <Select\n desc={description}\n fieldName={key}\n onChange={onChange}\n enumValues={enumValues}\n enumNames={enumNames}\n formData={formData}\n readOnly={readOnly}\n />\n ) : null}\n {widget === 'radio' || widget === 'checkbox' ? (\n <Check\n type={widget}\n fieldName={key}\n onChange={onChange}\n enumValues={enumValues}\n enumNames={enumNames}\n formData={formData}\n readOnly={readOnly}\n />\n ) : null}\n {widget === 'switch' ? (\n <Switch\n label={uiOpt && 'label' in uiOpt ? uiOpt.label : ''}\n fieldName={key}\n onChange={onChange}\n formData={formData}\n readOnly={readOnly}\n />\n ) : null}\n {widget === 'timezone' ? (\n <Timezone\n fieldName={key}\n onChange={onChange}\n formData={formData}\n readOnly={readOnly}\n />\n ) : null}\n {widget === 'upload' ? (\n <Upload\n type={\n uiOpt && 'imageType' in uiOpt ? uiOpt.imageType : undefined\n }\n acceptType={\n uiOpt && 'acceptType' in uiOpt ? uiOpt.acceptType : ''\n }\n fieldName={key}\n onChange={onChange}\n formData={formData}\n readOnly={readOnly}\n imgClassNames={\n uiOpt && 'className' in uiOpt ? uiOpt.className : ''\n }\n />\n ) : null}\n {widget === 'textarea' ? (\n <Textarea\n placeholder={\n uiOpt && 'placeholder' in uiOpt ? uiOpt.placeholder : ''\n }\n rows={uiOpt && 'rows' in uiOpt ? uiOpt.rows : 3}\n className={uiOpt && 'className' in uiOpt ? uiOpt.className : ''}\n fieldName={key}\n onChange={onChange}\n formData={formData}\n readOnly={readOnly}\n />\n ) : null}\n {widget === 'input' ? (\n <Input\n type={uiOpt && 'inputType' in uiOpt ? uiOpt.inputType : 'text'}\n placeholder={\n uiOpt && 'placeholder' in uiOpt ? uiOpt.placeholder : ''\n }\n fieldName={key}\n onChange={onChange}\n formData={formData}\n readOnly={readOnly}\n />\n ) : null}\n {widget === 'button' ? (\n <SfButton\n fieldName={key}\n text={uiOpt && 'text' in uiOpt ? uiOpt.text : ''}\n action={uiOpt && 'action' in uiOpt ? uiOpt.action : undefined}\n formKit={formKitWithContext}\n readOnly={readOnly}\n variant={\n uiOpt && 'variant' in uiOpt ? uiOpt.variant : undefined\n }\n size={uiOpt && 'size' in uiOpt ? uiOpt.size : undefined}\n title={uiOpt && 'title' in uiOpt ? uiOpt?.title : ''}\n />\n ) : null}\n {widget === 'input_group' ? (\n <InputGroup\n formKitWithContext={formKitWithContext}\n uiOpt={uiOpt as InputGroupOptions}\n prefixText={\n (uiOpt && 'prefixText' in uiOpt && uiOpt.prefixText) || ''\n }\n suffixText={\n (uiOpt && 'suffixText' in uiOpt && uiOpt.suffixText) || ''\n }>\n <Input\n type={\n uiOpt && 'inputType' in uiOpt ? uiOpt.inputType : 'text'\n }\n placeholder={\n uiOpt && 'placeholder' in uiOpt ? uiOpt.placeholder : ''\n }\n fieldName={key}\n onChange={onChange}\n formData={formData}\n readOnly={readOnly}\n />\n </InputGroup>\n ) : null}\n {/* Unified handling of `Feedback` and `Text` */}\n <Form.Control.Feedback type=\"invalid\">\n {fieldState?.errorMsg}\n </Form.Control.Feedback>\n {description ? (\n <Form.Text dangerouslySetInnerHTML={{ __html: description }} />\n ) : null}\n </Form.Group>\n );\n })}\n {!hiddenSubmit && (\n <Button variant=\"primary\" type=\"submit\">\n {t('btn_submit')}\n </Button>\n )}\n </Form>\n );\n};\n\nexport const initFormData = (schema: JSONSchema): Type.FormDataType => {\n const formData: Type.FormDataType = {};\n const props: JSONSchema['properties'] = schema?.properties || {};\n Object.keys(props).forEach((key) => {\n const prop = props[key];\n let defaultVal: any = '';\n if (Array.isArray(prop.default) && prop.enum && prop.enum.length > 0) {\n // for checkbox default values\n defaultVal = prop.enum;\n } else {\n defaultVal = prop?.default;\n }\n formData[key] = {\n value: defaultVal,\n isInvalid: false,\n errorMsg: '',\n };\n });\n return formData;\n};\n\nexport const mergeFormData = (\n target: Type.FormDataType | null,\n origin: Type.FormDataType | null,\n) => {\n if (!target) {\n return origin;\n }\n if (!origin) {\n return target;\n }\n Object.keys(target).forEach((k) => {\n const oi = origin[k];\n if (oi && oi.value !== undefined) {\n target[k] = {\n value: oi.value,\n isInvalid: false,\n errorMsg: '',\n };\n }\n });\n return target;\n};\n\nexport default forwardRef(SchemaForm);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { memo, FC } from 'react';\n\nimport classNames from 'classnames';\n\nimport DefaultAvatar from '@/assets/images/default-avatar.svg';\n\ninterface IProps {\n /** avatar url */\n avatar: string | { type: string; gravatar: string; custom: string };\n /** size 48 96 128 256 */\n size: string;\n searchStr?: string;\n className?: string;\n alt: string;\n}\n\nconst Index: FC<IProps> = ({\n avatar,\n size,\n className,\n searchStr = '',\n alt,\n}) => {\n let url = '';\n if (typeof avatar === 'string') {\n if (avatar.length > 1) {\n url = `${avatar}?${searchStr}${\n avatar?.includes('gravatar') ? '&d=identicon' : ''\n }`;\n }\n } else if (avatar?.type === 'gravatar' && avatar.gravatar) {\n url = `${avatar.gravatar}?${searchStr}&d=identicon`;\n } else if (avatar?.type === 'custom' && avatar.custom) {\n url = `${avatar.custom}?${searchStr}`;\n }\n\n const roundedCls =\n className && className.indexOf('rounded') !== -1 ? '' : 'rounded-circle';\n\n return (\n <img\n src={url || DefaultAvatar}\n width={size}\n height={size}\n className={classNames(roundedCls, className)}\n alt={alt}\n />\n );\n};\n\nexport default memo(Index);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React, { FC, ReactNode } from 'react';\n\nimport PluginKit, { Plugin, PluginType } from '@/utils/pluginKit';\nimport { writeSettingStore } from '@/stores';\n/**\n * Note:Please set at least either of the `slug_name` and `type` attributes, otherwise no plugins will be rendered.\n *\n * @field slug_name: The `slug_name` of the plugin needs to be rendered.\n * If this property is set, `PluginRender` will use it first (regardless of whether `type` is set)\n * to find the corresponding plugin and render it.\n * @field type: Used to formulate the rendering of all plugins of this type.\n * (if the `slug_name` attribute is set, it will be ignored)\n * @field prop: Any attribute you want to configure, e.g. `className`\n */\n\ninterface Props {\n slug_name?: string;\n type: PluginType;\n children?: ReactNode;\n [prop: string]: any;\n}\n\nconst Index: FC<Props> = ({\n slug_name,\n type,\n children = null,\n className,\n ...props\n}) => {\n const pluginSlice: Plugin[] = [];\n const plugins = PluginKit.getPlugins().filter((plugin) => plugin.activated);\n const { authorized_attachment_extensions = [] } = writeSettingStore(\n (state) => state.write,\n );\n\n plugins.forEach((plugin) => {\n if (type && slug_name) {\n if (plugin.info.slug_name === slug_name && plugin.info.type === type) {\n pluginSlice.push(plugin);\n }\n } else if (type) {\n if (plugin.info.type === type) {\n pluginSlice.push(plugin);\n }\n } else if (slug_name) {\n if (plugin.info.slug_name === slug_name) {\n pluginSlice.push(plugin);\n }\n }\n });\n\n /**\n * TODO: Rendering control for non-builtin plug-ins\n * ps: Logic such as version compatibility determination can be placed here\n */\n if (pluginSlice.length === 0) {\n if (type === 'editor') {\n return <div className={className}>{children}</div>;\n }\n return null;\n }\n\n if (type === 'editor') {\n const showAttachFile = authorized_attachment_extensions?.length > 0;\n const pendIndex = showAttachFile ? 16 : 15;\n const nodes = React.Children.map(children, (child, index) => {\n if (index === pendIndex) {\n return (\n <>\n {child}\n {pluginSlice.map((ps) => {\n const PluginFC = ps.component;\n return (\n // @ts-ignore\n <PluginFC key={ps.info.slug_name} {...props} />\n );\n })}\n <div className=\"toolbar-divider\" />\n </>\n );\n }\n return child;\n });\n\n return <div className={className}>{nodes}</div>;\n }\n\n return (\n <>\n {pluginSlice.map((ps) => {\n const PluginFC = ps.component;\n return (\n // @ts-ignore\n <PluginFC key={ps.info.slug_name} className={className} {...props} />\n );\n })}\n </>\n );\n};\n\nexport default Index;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React from 'react';\n\nimport { IEditorContext } from './types';\n\nexport const EditorContext = React.createContext<IEditorContext | any>({});\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { FC, useContext, useEffect } from 'react';\nimport { Dropdown, Button } from 'react-bootstrap';\n\nimport { EditorContext } from './EditorContext';\nimport { IEditorContext } from './types';\n\ninterface IProps {\n keyMap?: string[];\n onClick?: ({\n editor,\n wrapText,\n replaceLines,\n appendBlock,\n }: IEditorContext) => void;\n tip?: string;\n className?: string;\n as?: any;\n children?;\n label?: string;\n disable?: boolean;\n isShow?: boolean;\n onBlur?: ({\n editor,\n wrapText,\n replaceLines,\n appendBlock,\n }: IEditorContext) => void;\n}\nconst ToolItem: FC<IProps> = (props) => {\n const editor = useContext(EditorContext);\n\n const {\n label,\n tip,\n disable = false,\n isShow,\n keyMap,\n onClick,\n className,\n as,\n children,\n onBlur,\n } = props;\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n if (!keyMap) {\n return;\n }\n\n keyMap.forEach((key) => {\n editor?.addKeyMap({\n [key]: () => {\n onClick?.({\n editor,\n wrapText: editor?.wrapText,\n replaceLines: editor?.replaceLines,\n appendBlock: editor?.appendBlock,\n });\n },\n });\n });\n }, [editor]);\n\n const btnRender = () => (\n <Button\n variant=\"link\"\n title={tip}\n className={`p-0 b-0 btn-no-border toolbar text-body ${\n disable ? 'disabled' : ''\n }`}\n disabled={disable}\n tabIndex={-1}\n onClick={(e) => {\n console.log('onClick', e);\n e.preventDefault();\n onClick?.({\n editor,\n wrapText: editor?.wrapText,\n replaceLines: editor?.replaceLines,\n appendBlock: editor?.appendBlock,\n });\n }}\n onBlur={(e) => {\n e.preventDefault();\n onBlur?.({\n editor,\n wrapText: editor?.wrapText,\n replaceLines: editor?.replaceLines,\n appendBlock: editor?.appendBlock,\n });\n }}>\n <i className={`bi bi-${label}`} />\n </Button>\n );\n\n if (!editor) {\n return null;\n }\n return (\n <div className={`toolbar-item-wrap ${className || ''}`}>\n {as === 'dropdown' ? (\n <Dropdown className=\"h-100 w-100\" show={isShow}>\n <Dropdown.Toggle as=\"div\" className=\"h-100\">\n {btnRender()}\n </Dropdown.Toggle>\n {children}\n </Dropdown>\n ) : (\n <>\n {btnRender()}\n {children}\n </>\n )}\n </div>\n );\n};\n\nexport default ToolItem;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { memo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport ToolItem from '../toolItem';\nimport { IEditorContext } from '../types';\n\nlet context: IEditorContext;\nconst Table = () => {\n const { t } = useTranslation('translation', { keyPrefix: 'editor' });\n const item = {\n label: 'table',\n tip: t('table.text'),\n };\n const tableData = [\n [`${t('table.heading')} A`],\n [`${t('table.heading')} B`],\n [`${t('table.cell')} 1`],\n [`${t('table.cell')} 2`],\n [`${t('table.cell')} 3`],\n [`${t('table.cell')} 4`],\n ];\n\n const makeHeader = (col, data) => {\n let header = '|';\n let border = '|';\n let index = 0;\n\n while (col) {\n if (data) {\n header += ` ${data[index]} |`;\n index += 1;\n } else {\n header += ' |';\n }\n\n border += ' ----- |';\n\n col -= 1;\n }\n\n return `${header}\\n${border}\\n`;\n };\n\n const makeBody = (col, row, data) => {\n let body = '';\n let index = col;\n\n for (let irow = 0; irow < row; irow += 1) {\n body += '|';\n\n for (let icol = 0; icol < col; icol += 1) {\n if (data) {\n body += ` ${data[index]} |`;\n index += 1;\n } else {\n body += ' |';\n }\n }\n\n body += '\\n';\n }\n\n body = body.replace(/\\n$/g, '');\n\n return body;\n };\n const handleClick = (ctx) => {\n context = ctx;\n const { editor } = context;\n let table = '\\n';\n\n table += makeHeader(2, tableData);\n table += makeBody(2, 2, tableData);\n editor?.replaceSelection(table);\n editor?.focus();\n };\n\n return <ToolItem {...item} onClick={handleClick} />;\n};\n\nexport default memo(Table);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { memo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport ToolItem from '../toolItem';\nimport { IEditorContext } from '../types';\n\nlet context: IEditorContext;\nconst OL = () => {\n const { t } = useTranslation('translation', { keyPrefix: 'editor' });\n const item = {\n label: 'list-ol',\n keyMap: ['Ctrl-o'],\n tip: `${t('ordered_list.text')} (Ctrl+o)`,\n };\n\n const handleClick = (ctx) => {\n context = ctx;\n const { editor, replaceLines } = context;\n\n replaceLines((line, i) => {\n const FIND_OL_RX = /^(\\s{0,})(\\d+)\\.\\s/;\n\n if (line.match(FIND_OL_RX)) {\n line = line.replace(FIND_OL_RX, '');\n } else {\n line = `${i + 1}. ${line}`;\n }\n return line;\n });\n editor.focus();\n };\n\n return <ToolItem {...item} onClick={handleClick} />;\n};\n\nexport default memo(OL);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { memo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport ToolItem from '../toolItem';\nimport { IEditorContext } from '../types';\n\nlet context: IEditorContext;\nconst UL = () => {\n const { t } = useTranslation('translation', { keyPrefix: 'editor' });\n const item = {\n label: 'list-ul',\n keyMap: ['Ctrl-u'],\n tip: `${t('unordered_list.text')} (Ctrl+u)`,\n };\n\n const handleClick = (ctx) => {\n context = ctx;\n const { editor, replaceLines } = context;\n\n replaceLines((line) => {\n const FIND_UL_RX = /^(\\s{0,})(-|\\*)\\s/;\n\n if (line.match(FIND_UL_RX)) {\n line = line.replace(FIND_UL_RX, '');\n } else {\n line = `* ${line}`;\n }\n return line;\n });\n editor.focus();\n };\n\n return <ToolItem {...item} onClick={handleClick} />;\n};\n\nexport default memo(UL);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { memo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport ToolItem from '../toolItem';\nimport { IEditorContext } from '../types';\n\nlet context: IEditorContext;\nconst Indent = () => {\n const { t } = useTranslation('translation', { keyPrefix: 'editor' });\n const item = {\n label: 'text-indent-left',\n tip: t('indent.text'),\n };\n const handleClick = (ctx) => {\n context = ctx;\n const { editor, replaceLines } = context;\n\n replaceLines((line) => {\n line = ` ${line}`;\n return line;\n });\n editor?.focus();\n };\n\n return <ToolItem {...item} onClick={handleClick} />;\n};\n\nexport default memo(Indent);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { memo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport ToolItem from '../toolItem';\nimport { IEditorContext } from '../types';\n\nlet context: IEditorContext;\nconst Outdent = () => {\n const { t } = useTranslation('translation', { keyPrefix: 'editor' });\n const item = {\n label: 'text-indent-right',\n keyMap: ['Shift-Tab'],\n tip: t('outdent.text'),\n };\n const handleClick = (ctx) => {\n context = ctx;\n const { editor, replaceLines } = context;\n replaceLines((line) => {\n line = line.replace(/^(\\s{0,})/, (_1, $1) => {\n return $1.length > 4 ? $1.substring(4) : '';\n });\n return line;\n });\n editor?.focus();\n };\n\n return <ToolItem {...item} onClick={handleClick} />;\n};\n\nexport default memo(Outdent);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { memo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport ToolItem from '../toolItem';\nimport { IEditorContext } from '../types';\n\nlet context: IEditorContext;\nconst Hr = () => {\n const { t } = useTranslation('translation', { keyPrefix: 'editor' });\n const item = {\n label: 'hr',\n keyMap: ['Ctrl-r'],\n tip: `${t('hr.text')} (Ctrl+r)`,\n };\n const handleClick = (ctx) => {\n context = ctx;\n const { appendBlock, editor } = context;\n appendBlock('----------\\n');\n editor?.focus();\n };\n\n return <ToolItem {...item} onClick={handleClick} />;\n};\n\nexport default memo(Hr);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { useState, memo } from 'react';\nimport { Dropdown } from 'react-bootstrap';\nimport { useTranslation } from 'react-i18next';\n\nimport ToolItem from '../toolItem';\nimport { IEditorContext } from '../types';\n\nlet context: IEditorContext;\nconst Heading = () => {\n const { t } = useTranslation('translation', { keyPrefix: 'editor' });\n const headerList = [\n {\n text: `<h2 class=\"mb-0 h4\">${t('heading.options.h2')}</h2>`,\n level: 2,\n label: t('heading.options.h2'),\n },\n {\n text: `<h3 class=\"mb-0 h5\">${t('heading.options.h3')}</h3>`,\n level: 3,\n label: t('heading.options.h3'),\n },\n {\n text: `<h4 class=\"mb-0 h6\">${t('heading.options.h4')}</h4>`,\n level: 4,\n label: t('heading.options.h4'),\n },\n {\n text: `<h5 class=\"mb-0 small\">${t('heading.options.h5')}</h5>`,\n level: 5,\n label: t('heading.options.h5'),\n },\n {\n text: `<h6 class=\"mb-0 fs-12\">${t('heading.options.h6')}</h6>`,\n level: 6,\n label: t('heading.options.h6'),\n },\n ];\n const item = {\n label: 'type-h2',\n keyMap: ['Ctrl-h'],\n tip: `${t('heading.text')} (Ctrl+h)`,\n };\n const [isShow, setShowState] = useState(false);\n const [isLocked, setLockState] = useState(false);\n\n const handleClick = (level = 2, label = '大标题') => {\n const { replaceLines } = context;\n\n replaceLines((line) => {\n line = line.trim().replace(/^#*/, '').trim();\n line = `${'#'.repeat(level)} ${line || label}`;\n return line;\n }, level + 1);\n setShowState(false);\n };\n const onAddHeader = (ctx) => {\n context = ctx;\n if (isLocked) {\n return;\n }\n setShowState(!isShow);\n };\n\n const handleMouseEnter = () => {\n setLockState(true);\n };\n\n const handleMouseLeave = () => {\n setLockState(false);\n };\n return (\n <ToolItem\n as=\"dropdown\"\n {...item}\n isShow={isShow}\n onClick={onAddHeader}\n onBlur={onAddHeader}>\n <Dropdown.Menu\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}>\n {headerList.map((header) => {\n return (\n <Dropdown.Item\n key={header.text}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleClick(header.level, header.label);\n }}\n dangerouslySetInnerHTML={{ __html: header.text }}\n />\n );\n })}\n </Dropdown.Menu>\n </ToolItem>\n );\n};\n\nexport default memo(Heading);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { memo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport ToolItem from '../toolItem';\nimport { IEditorContext } from '../types';\n\nlet context: IEditorContext;\nconst Bold = () => {\n const { t } = useTranslation('translation', { keyPrefix: 'editor' });\n const item = {\n label: 'type-bold',\n keyMap: ['Ctrl-b'],\n tip: `${t('bold.text')} (Ctrl+b)`,\n };\n const DEFAULTTEXT = t('bold.text');\n\n const handleClick = (ctx) => {\n context = ctx;\n context.wrapText('**', '**', DEFAULTTEXT);\n context.editor?.focus();\n };\n\n return <ToolItem {...item} onClick={handleClick} />;\n};\n\nexport default memo(Bold);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { memo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport ToolItem from '../toolItem';\nimport { IEditorContext } from '../types';\n\nlet context: IEditorContext;\nconst Italic = () => {\n const { t } = useTranslation('translation', { keyPrefix: 'editor' });\n const item = {\n label: 'type-italic',\n keyMap: ['Ctrl-i'],\n tip: `${t('italic.text')} (Ctrl+i)`,\n };\n const DEFAULTTEXT = t('italic.text');\n\n const handleClick = (ctx) => {\n context = ctx;\n const { editor, wrapText } = context;\n wrapText('*', '*', DEFAULTTEXT);\n editor?.focus();\n };\n\n return <ToolItem {...item} onClick={handleClick} />;\n};\n\nexport default memo(Italic);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { FC, useEffect, useState } from 'react';\nimport { Dropdown, FormControl } from 'react-bootstrap';\n\ninterface IProps {\n options;\n value?;\n onChange?;\n placeholder?;\n onSelect?;\n}\nconst Select: FC<IProps> = ({\n options = [],\n value = '',\n onChange,\n placeholder = '',\n onSelect,\n}) => {\n const [isFocus, setFocusState] = useState(false);\n const [cursor, setCursor] = useState(0);\n\n useEffect(() => {\n setCursor(0);\n }, [value]);\n const handleKeyDown = (e) => {\n const { keyCode } = e;\n\n if (keyCode === 38 && cursor > 0) {\n e.preventDefault();\n setCursor(cursor - 1);\n }\n if (keyCode === 40 && cursor < options.length - 1) {\n e.preventDefault();\n\n setCursor(cursor + 1);\n }\n if (keyCode === 13 && cursor > -1 && cursor <= options.length - 1) {\n const lang = options.filter((opt) =>\n value ? opt.indexOf(value) === 0 : true,\n )[cursor];\n\n setFocusState(false);\n onSelect(lang);\n }\n };\n\n const result = options.filter((opt) =>\n value ? opt.indexOf(value) === 0 : true,\n );\n\n return (\n <div className=\"position-relative\" onKeyDown={handleKeyDown}>\n <FormControl\n type=\"search\"\n value={value}\n placeholder={placeholder}\n onChange={(e) => {\n setFocusState(true);\n if (onChange instanceof Function) {\n onChange(e);\n }\n }}\n />\n {result.length > 0 && (\n <Dropdown.Menu\n show={value && isFocus}\n className=\"border py-2 rounded w-100\"\n style={{ overflowY: 'auto', maxHeight: '250px' }}>\n {result.map((opt, index) => {\n return (\n <Dropdown.Item\n key={opt}\n className={`${cursor === index ? 'active' : ''}`}\n onClick={(e) => {\n e.preventDefault();\n setFocusState(false);\n onSelect(opt);\n }}>\n {opt}\n </Dropdown.Item>\n );\n })}\n </Dropdown.Menu>\n )}\n </div>\n );\n};\n\nexport default Select;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { useEffect, useRef, useState, memo } from 'react';\nimport { Button, Form, Modal } from 'react-bootstrap';\nimport { useTranslation } from 'react-i18next';\n\nimport Select from '../Select';\nimport ToolItem from '../toolItem';\nimport { IEditorContext } from '../types';\n\nconst codeLanguageType = [\n 'bash',\n 'sh',\n 'zsh',\n 'c',\n 'h',\n 'cpp',\n 'hpp',\n 'c++',\n 'h++',\n 'cc',\n 'hh',\n 'cxx',\n 'hxx',\n 'c-like',\n 'cs',\n 'csharp',\n 'c#',\n 'clojure',\n 'clj',\n 'coffee',\n 'coffeescript',\n 'cson',\n 'iced',\n 'css',\n 'dart',\n 'erl',\n 'erlang',\n 'go',\n 'golang',\n 'hs',\n 'haskell',\n 'html',\n 'xml',\n 'xsl',\n 'xhtml',\n 'rss',\n 'atom',\n 'xjb',\n 'xsd',\n 'plist',\n 'wsf',\n 'svg',\n 'http',\n 'https',\n 'ini',\n 'toml',\n 'java',\n 'jsp',\n 'js',\n 'javascript',\n 'jsx',\n 'mjs',\n 'cjs',\n 'json',\n 'kotlin',\n 'kt',\n 'latex',\n 'tex',\n 'less',\n 'lisp',\n 'lua',\n 'makefile',\n 'mk',\n 'mak',\n 'markdown',\n 'md',\n 'mkdown',\n 'mkd',\n 'matlab',\n 'objectivec',\n 'mm',\n 'objc',\n 'obj-c',\n 'ocaml',\n 'ml',\n 'pascal',\n 'delphi',\n 'dpr',\n 'dfm',\n 'pas',\n 'freepascal',\n 'lazarus',\n 'lpr',\n 'lfm',\n 'pl',\n 'perl',\n 'pm',\n 'php',\n 'php3',\n 'php4',\n 'php5',\n 'php6',\n 'php7',\n 'php-template',\n 'protobuf',\n 'py',\n 'python',\n 'gyp',\n 'ipython',\n 'r',\n 'rb',\n 'ruby',\n 'gemspec',\n 'podspec',\n 'thor',\n 'irb',\n 'rs',\n 'rust',\n 'scala',\n 'scheme',\n 'scss',\n 'shell',\n 'console',\n 'sql',\n 'swift',\n 'typescript',\n 'ts',\n 'vhdl',\n 'vbnet',\n 'vb',\n 'yaml',\n 'yml',\n];\n\nlet context: IEditorContext;\nconst Code = () => {\n const { t } = useTranslation('translation', { keyPrefix: 'editor' });\n\n const item = {\n label: 'code-slash',\n keyMap: ['Ctrl-k'],\n tip: `${t('code.text')} (Ctrl+k)`,\n };\n\n const [code, setCode] = useState({\n value: '',\n isInvalid: false,\n errorMsg: '',\n });\n const [visible, setVisible] = useState(false);\n const [lang, setLang] = useState('');\n const inputRef = useRef<HTMLTextAreaElement>(null);\n\n const SINGLELINEMAXLENGTH = 40;\n const addCode = (ctx) => {\n context = ctx;\n\n const { wrapText, editor } = context;\n\n const text = context.editor.getSelection();\n\n if (!text) {\n setVisible(true);\n\n return;\n }\n if (text.length > SINGLELINEMAXLENGTH) {\n context.wrapText('```\\n', '\\n```');\n } else {\n wrapText('`', '`');\n }\n editor.focus();\n };\n\n useEffect(() => {\n if (visible && inputRef.current) {\n inputRef.current.focus();\n }\n }, [visible]);\n\n const handleClick = () => {\n if (!code.value.trim()) {\n setCode({\n ...code,\n errorMsg: t('code.form.fields.code.msg.empty'),\n isInvalid: true,\n });\n return;\n }\n\n let value;\n\n if (\n code.value.split('\\n').length > 1 ||\n code.value.length >= SINGLELINEMAXLENGTH\n ) {\n value = `\\n\\`\\`\\`${lang}\\n${code.value}\\n\\`\\`\\`\\n`;\n } else {\n value = `\\`${code.value}\\``;\n }\n context.editor.replaceSelection(value);\n setCode({\n value: '',\n isInvalid: false,\n errorMsg: '',\n });\n setLang('');\n setVisible(false);\n };\n const onHide = () => setVisible(false);\n const onExited = () => context.editor?.focus();\n\n return (\n <ToolItem {...item} onClick={addCode}>\n <Modal\n show={visible}\n onHide={onHide}\n onExited={onExited}\n fullscreen=\"sm-down\">\n <Modal.Header closeButton>\n <h5 className=\"mb-0\">{t('code.add_code')}</h5>\n </Modal.Header>\n <Modal.Body>\n <Form.Group controlId=\"editor.code\" className=\"mb-3\">\n <Form.Label>{t('code.form.fields.code.label')}</Form.Label>\n <Form.Control\n ref={inputRef}\n as=\"textarea\"\n rows={3}\n value={code.value}\n isInvalid={code.isInvalid}\n className=\"font-monospace\"\n style={{ height: '200px' }}\n onChange={(e) => setCode({ ...code, value: e.target.value })}\n />\n {code.isInvalid && (\n <Form.Control.Feedback type=\"invalid\">\n {code.errorMsg}\n </Form.Control.Feedback>\n )}\n </Form.Group>\n <Form.Group controlId=\"editor.codeLanguageType\" className=\"mb-3\">\n <Form.Label>{`${t('code.form.fields.language.label')} ${t(\n 'optional',\n {\n keyPrefix: 'form',\n },\n )}`}</Form.Label>\n <Select\n options={codeLanguageType}\n value={lang}\n onChange={(e) => setLang(e.target.value)}\n onSelect={(val) => setLang(val)}\n placeholder={t('code.form.fields.language.placeholder')}\n />\n </Form.Group>\n </Modal.Body>\n <Modal.Footer>\n <Button\n variant=\"link\"\n onClick={() => {\n setVisible(false);\n setCode({\n value: '',\n isInvalid: false,\n errorMsg: '',\n });\n }}>\n {t('code.btn_cancel')}\n </Button>\n <Button variant=\"primary\" onClick={handleClick}>\n {t('code.btn_confirm')}\n </Button>\n </Modal.Footer>\n </Modal>\n </ToolItem>\n );\n};\n\nexport default memo(Code);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { useEffect, useRef, useState, memo } from 'react';\nimport { Button, Form, Modal } from 'react-bootstrap';\nimport { useTranslation } from 'react-i18next';\n\nimport ToolItem from '../toolItem';\nimport { IEditorContext } from '../types';\n\nlet context: IEditorContext;\nconst Link = () => {\n const { t } = useTranslation('translation', { keyPrefix: 'editor' });\n const item = {\n label: 'link-45deg',\n keyMap: ['Ctrl-l'],\n tip: `${t('link.text')} (Ctrl+l)`,\n };\n const [visible, setVisible] = useState(false);\n const [link, setLink] = useState({\n value: 'https://',\n isInvalid: false,\n errorMsg: '',\n });\n const [name, setName] = useState({\n value: '',\n isInvalid: false,\n errorMsg: '',\n });\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (visible && inputRef.current) {\n inputRef.current.setSelectionRange(0, inputRef.current.value.length);\n inputRef.current.focus();\n }\n }, [visible]);\n\n const addLink = (ctx) => {\n context = ctx;\n const { editor } = context;\n\n const text = editor.getSelection();\n\n setName({ ...name, value: text });\n\n setVisible(true);\n };\n const handleClick = () => {\n const { editor } = context;\n\n if (!link.value) {\n setLink({ ...link, isInvalid: true });\n return;\n }\n const newStr = name.value\n ? `[${name.value}](${link.value})`\n : `<${link.value}>`;\n\n editor.replaceSelection(newStr);\n\n setVisible(false);\n\n editor.focus();\n setLink({ ...link, value: '' });\n setName({ ...name, value: '' });\n };\n const onHide = () => setVisible(false);\n const onExited = () => {\n const { editor } = context;\n editor.focus();\n };\n\n return (\n <>\n <ToolItem {...item} onClick={addLink} />\n <Modal\n show={visible}\n onHide={onHide}\n onExited={onExited}\n fullscreen=\"sm-down\">\n <Modal.Header closeButton>\n <h5 className=\"mb-0\">{t('link.add_link')}</h5>\n </Modal.Header>\n <Modal.Body>\n <Form onSubmit={handleClick}>\n <Form.Group controlId=\"editor.internetSite\" className=\"mb-3\">\n <Form.Label>{t('link.form.fields.url.label')}</Form.Label>\n <Form.Control\n ref={inputRef}\n type=\"text\"\n value={link.value}\n onChange={(e) => setLink({ ...link, value: e.target.value })}\n isInvalid={link.isInvalid}\n />\n </Form.Group>\n\n <Form.Group controlId=\"editor.internetSiteName\" className=\"mb-3\">\n <Form.Label>{`${t('link.form.fields.name.label')} ${t(\n 'optional',\n {\n keyPrefix: 'form',\n },\n )}`}</Form.Label>\n <Form.Control\n type=\"text\"\n value={name.value}\n onChange={(e) => setName({ ...name, value: e.target.value })}\n isInvalid={name.isInvalid}\n />\n </Form.Group>\n </Form>\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"link\" onClick={() => setVisible(false)}>\n {t('link.btn_cancel')}\n </Button>\n <Button variant=\"primary\" onClick={handleClick}>\n {t('link.btn_confirm')}\n </Button>\n </Modal.Footer>\n </Modal>\n </>\n );\n};\n\nexport default memo(Link);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { memo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport ToolItem from '../toolItem';\nimport { IEditorContext } from '../types';\n\nlet context: IEditorContext;\nconst BlockQuote = () => {\n const { t } = useTranslation('translation', { keyPrefix: 'editor' });\n\n const item = {\n label: 'quote',\n keyMap: ['Ctrl-q'],\n tip: `${t('blockquote.text')} (Ctrl+Q)`,\n };\n\n const handleClick = (ctx) => {\n context = ctx;\n context.replaceLines((line) => {\n const FIND_BLOCKQUOTE_RX = /^>\\s+?/g;\n\n if (line === `> ${t('blockquote.text')}`) {\n line = '';\n } else if (line.match(FIND_BLOCKQUOTE_RX)) {\n line = line.replace(FIND_BLOCKQUOTE_RX, '');\n } else {\n line = `> ${line || t('blockquote.text')}`;\n }\n return line;\n }, 2);\n context.editor?.focus();\n };\n\n return <ToolItem {...item} onClick={handleClick} />;\n};\n\nexport default memo(BlockQuote);\n","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst TabContent = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'div',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'tab-content');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nTabContent.displayName = 'TabContent';\nexport default TabContent;","import NoopTransition from '@restart/ui/NoopTransition';\nimport Fade from './Fade';\nexport default function getTabTransitionComponent(transition) {\n if (typeof transition === 'boolean') {\n return transition ? Fade : NoopTransition;\n }\n return transition;\n}","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport SelectableContext from '@restart/ui/SelectableContext';\nimport TabContext from '@restart/ui/TabContext';\nimport { useTabPanel } from '@restart/ui/TabPanel';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport Fade from './Fade';\nimport getTabTransitionComponent from './getTabTransitionComponent';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst TabPane = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n transition,\n ...props\n}, ref) => {\n const [{\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...rest\n }, {\n isActive,\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExiting,\n onExited,\n mountOnEnter,\n unmountOnExit,\n transition: Transition = Fade\n }] = useTabPanel({\n ...props,\n transition: getTabTransitionComponent(transition)\n });\n const prefix = useBootstrapPrefix(bsPrefix, 'tab-pane');\n\n // We provide an empty the TabContext so `<Nav>`s in `<TabPanel>`s don't\n // conflict with the top level one.\n return /*#__PURE__*/_jsx(TabContext.Provider, {\n value: null,\n children: /*#__PURE__*/_jsx(SelectableContext.Provider, {\n value: null,\n children: /*#__PURE__*/_jsx(Transition, {\n in: isActive,\n onEnter: onEnter,\n onEntering: onEntering,\n onEntered: onEntered,\n onExit: onExit,\n onExiting: onExiting,\n onExited: onExited,\n mountOnEnter: mountOnEnter,\n unmountOnExit: unmountOnExit,\n children: /*#__PURE__*/_jsx(Component, {\n ...rest,\n ref: ref,\n className: classNames(className, prefix, isActive && 'active')\n })\n })\n })\n });\n});\nTabPane.displayName = 'TabPane';\nexport default TabPane;","import * as React from 'react';\nimport { useUncontrolled } from 'uncontrollable';\nimport BaseTabs from '@restart/ui/Tabs';\nimport Nav from './Nav';\nimport NavLink from './NavLink';\nimport NavItem from './NavItem';\nimport TabContent from './TabContent';\nimport TabPane from './TabPane';\nimport { forEach, map } from './ElementChildren';\nimport getTabTransitionComponent from './getTabTransitionComponent';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction getDefaultActiveKey(children) {\n let defaultActiveKey;\n forEach(children, child => {\n if (defaultActiveKey == null) {\n defaultActiveKey = child.props.eventKey;\n }\n });\n return defaultActiveKey;\n}\nfunction renderTab(child) {\n const {\n title,\n eventKey,\n disabled,\n tabClassName,\n tabAttrs,\n id\n } = child.props;\n if (title == null) {\n return null;\n }\n return /*#__PURE__*/_jsx(NavItem, {\n as: \"li\",\n role: \"presentation\",\n children: /*#__PURE__*/_jsx(NavLink, {\n as: \"button\",\n type: \"button\",\n eventKey: eventKey,\n disabled: disabled,\n id: id,\n className: tabClassName,\n ...tabAttrs,\n children: title\n })\n });\n}\nconst Tabs = props => {\n const {\n id,\n onSelect,\n transition,\n mountOnEnter = false,\n unmountOnExit = false,\n variant = 'tabs',\n children,\n activeKey = getDefaultActiveKey(children),\n ...controlledProps\n } = useUncontrolled(props, {\n activeKey: 'onSelect'\n });\n return /*#__PURE__*/_jsxs(BaseTabs, {\n id: id,\n activeKey: activeKey,\n onSelect: onSelect,\n transition: getTabTransitionComponent(transition),\n mountOnEnter: mountOnEnter,\n unmountOnExit: unmountOnExit,\n children: [/*#__PURE__*/_jsx(Nav, {\n id: id,\n ...controlledProps,\n role: \"tablist\",\n as: \"ul\",\n variant: variant,\n children: map(children, renderTab)\n }), /*#__PURE__*/_jsx(TabContent, {\n children: map(children, child => {\n const childProps = {\n ...child.props\n };\n delete childProps.title;\n delete childProps.disabled;\n delete childProps.tabClassName;\n delete childProps.tabAttrs;\n return /*#__PURE__*/_jsx(TabPane, {\n ...childProps\n });\n })\n })]\n });\n};\nTabs.displayName = 'Tabs';\nexport default Tabs;","import * as React from 'react';\nimport Tabs from '@restart/ui/Tabs';\nimport getTabTransitionComponent from './getTabTransitionComponent';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst TabContainer = ({\n transition,\n ...props\n}) => /*#__PURE__*/_jsx(Tabs, {\n ...props,\n transition: getTabTransitionComponent(transition)\n});\nTabContainer.displayName = 'TabContainer';\nexport default TabContainer;","import PropTypes from 'prop-types';\nimport TabContainer from './TabContainer';\nimport TabContent from './TabContent';\nimport TabPane from './TabPane';\n/* eslint-disable react/no-unused-prop-types */\nconst propTypes = {\n eventKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n /**\n * Content for the tab title.\n */\n title: PropTypes.node.isRequired,\n /**\n * The disabled state of the tab.\n */\n disabled: PropTypes.bool,\n /**\n * Class to pass to the underlying nav link.\n */\n tabClassName: PropTypes.string,\n /**\n * Object containing attributes to pass to underlying nav link.\n */\n tabAttrs: PropTypes.object\n};\nconst Tab = () => {\n throw new Error('ReactBootstrap: The `Tab` component is not meant to be rendered! ' + \"It's an abstract component that is only valid as a direct Child of the `Tabs` Component. \" + 'For custom tabs components use TabPane and TabsContainer directly');\n};\nTab.propTypes = propTypes;\nexport default Object.assign(Tab, {\n Container: TabContainer,\n Content: TabContent,\n Pane: TabPane\n});","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { useEffect, useState, memo } from 'react';\nimport { Button, Form, Modal, Tab, Tabs } from 'react-bootstrap';\nimport { useTranslation } from 'react-i18next';\n\nimport { Modal as AnswerModal } from '@/components';\nimport ToolItem from '../toolItem';\nimport { IEditorContext, Editor } from '../types';\nimport { uploadImage } from '@/services';\nimport { writeSettingStore } from '@/stores';\n\nlet context: IEditorContext;\nconst Image = ({ editorInstance }) => {\n const [editor, setEditor] = useState<Editor>(editorInstance);\n const { t } = useTranslation('translation', { keyPrefix: 'editor' });\n const {\n max_image_size = 4,\n max_attachment_size = 8,\n authorized_image_extensions = [],\n authorized_attachment_extensions = [],\n } = writeSettingStore((state) => state.write);\n\n const loadingText = `![${t('image.uploading')}...]()`;\n\n const item = {\n label: 'image-fill',\n keyMap: ['Ctrl-g'],\n tip: `${t('image.text')} (Ctrl+G)`,\n };\n const [currentTab, setCurrentTab] = useState('localImage');\n const [visible, setVisible] = useState(false);\n const [link, setLink] = useState({\n value: '',\n isInvalid: false,\n errorMsg: '',\n type: '',\n });\n\n const [imageName, setImageName] = useState({\n value: '',\n isInvalid: false,\n errorMsg: '',\n });\n\n const verifyImageSize = (files: FileList) => {\n if (files.length === 0) {\n return false;\n }\n\n /**\n * When allowing attachments to be uploaded, verification logic for attachment information has been added. In order to avoid abnormal judgment caused by the order of drag and drop upload, the drag and drop upload verification of attachments and the drag and drop upload of images are put together.\n *\n */\n const canUploadAttachment = authorized_attachment_extensions.length > 0;\n const allowedAllType = [\n ...authorized_image_extensions,\n ...authorized_attachment_extensions,\n ];\n const unSupportFiles = Array.from(files).filter((file) => {\n const fileName = file.name.toLowerCase();\n return canUploadAttachment\n ? !allowedAllType.find((v) => fileName.endsWith(v))\n : file.type.indexOf('image') === -1;\n });\n\n if (unSupportFiles.length > 0) {\n AnswerModal.confirm({\n content: canUploadAttachment\n ? t('file.not_supported', { file_type: allowedAllType.join(', ') })\n : t('image.form_image.fields.file.msg.only_image'),\n showCancel: false,\n });\n return false;\n }\n\n const otherFiles = Array.from(files).filter((file) => {\n return file.type.indexOf('image') === -1;\n });\n\n if (canUploadAttachment && otherFiles.length > 0) {\n const attachmentOverSizeFiles = otherFiles.filter(\n (file) => file.size / 1024 / 1024 > max_attachment_size,\n );\n if (attachmentOverSizeFiles.length > 0) {\n AnswerModal.confirm({\n content: t('file.max_size', { size: max_attachment_size }),\n showCancel: false,\n });\n return false;\n }\n }\n\n const imageFiles = Array.from(files).filter(\n (file) => file.type.indexOf('image') > -1,\n );\n const oversizedImages = imageFiles.filter(\n (file) => file.size / 1024 / 1024 > max_image_size,\n );\n if (oversizedImages.length > 0) {\n AnswerModal.confirm({\n content: t('image.form_image.fields.file.msg.max_size', {\n size: max_image_size,\n }),\n showCancel: false,\n });\n return false;\n }\n\n return true;\n };\n\n const upload = (\n files: FileList,\n ): Promise<{ url: string; name: string; type: string }[]> => {\n const promises = Array.from(files).map(async (file) => {\n const type = file.type.indexOf('image') > -1 ? 'post' : 'post_attachment';\n const url = await uploadImage({ file, type });\n\n return {\n name: file.name,\n url,\n type,\n };\n });\n\n return Promise.all(promises);\n };\n function dragenter(e) {\n e.stopPropagation();\n e.preventDefault();\n }\n\n function dragover(e) {\n e.stopPropagation();\n e.preventDefault();\n }\n const drop = async (e) => {\n const fileList = e.dataTransfer.files;\n const bool = verifyImageSize(fileList);\n\n if (!bool) {\n return;\n }\n\n const startPos = editor.getCursor();\n\n const endPos = { ...startPos, ch: startPos.ch + loadingText.length };\n\n editor.replaceSelection(loadingText);\n editor.setReadOnly(true);\n const urls = await upload(fileList)\n .catch(() => {\n editor.replaceRange('', startPos, endPos);\n })\n .finally(() => {\n editor.setReadOnly(false);\n editor.focus();\n });\n\n const text: string[] = [];\n if (Array.isArray(urls)) {\n urls.forEach(({ name, url, type }) => {\n if (name && url) {\n text.push(`${type === 'post' ? '!' : ''}[${name}](${url})`);\n }\n });\n }\n if (text.length) {\n editor.replaceRange(text.join('\\n'), startPos, endPos);\n } else {\n editor.replaceRange('', startPos, endPos);\n }\n };\n\n const paste = async (event) => {\n const clipboard = event.clipboardData;\n\n const bool = verifyImageSize(clipboard.files);\n\n if (bool) {\n event.preventDefault();\n const startPos = editor.getCursor();\n const endPos = { ...startPos, ch: startPos.ch + loadingText.length };\n\n editor.replaceSelection(loadingText);\n editor.setReadOnly(true);\n upload(clipboard.files)\n .then((urls) => {\n const text = urls.map(({ name, url, type }) => {\n return `${type === 'post' ? '!' : ''}[${name}](${url})`;\n });\n\n editor.replaceRange(text.join('\\n'), startPos, endPos);\n })\n .catch(() => {\n editor.replaceRange('', startPos, endPos);\n })\n .finally(() => {\n editor.setReadOnly(false);\n editor.focus();\n });\n\n return;\n }\n\n const htmlStr = clipboard.getData('text/html');\n const imgRegex = /<img([\\s\\S]*?) src\\s*=\\s*(['\"])([\\s\\S]*?)\\2([^>]*)>/;\n\n if (!htmlStr.match(imgRegex)) {\n return;\n }\n event.preventDefault();\n\n let innerText = '';\n const allPTag = new DOMParser()\n .parseFromString(\n htmlStr.replace(\n /<img([\\s\\S]*?) src\\s*=\\s*(['\"])([\\s\\S]*?)\\2([^>]*)>/gi,\n `<p>\\n\\n</p>`,\n ),\n 'text/html',\n )\n .querySelectorAll('body p');\n\n allPTag.forEach((p, index) => {\n const text = p.textContent || '';\n if (text !== '') {\n if (index === allPTag.length - 1) {\n innerText += `${p.textContent}`;\n } else {\n innerText += `${p.textContent}${text.endsWith('\\n') ? '' : '\\n\\n'}`;\n }\n }\n });\n\n editor.replaceSelection(innerText);\n };\n const handleClick = () => {\n if (!link.value) {\n setLink({ ...link, isInvalid: true });\n return;\n }\n setLink({ ...link, type: '' });\n\n const text = ``;\n\n editor.replaceSelection(text);\n\n setVisible(false);\n\n editor.focus();\n setLink({ ...link, value: '' });\n setImageName({ ...imageName, value: '' });\n };\n useEffect(() => {\n editor?.on('dragenter', dragenter);\n editor?.on('dragover', dragover);\n editor?.on('drop', drop);\n editor?.on('paste', paste);\n return () => {\n editor?.off('dragenter', dragenter);\n editor?.off('dragover', dragover);\n editor?.off('drop', drop);\n editor?.off('paste', paste);\n };\n }, [editor]);\n\n useEffect(() => {\n if (link.value && link.type === 'drop') {\n handleClick();\n }\n }, [link.value]);\n\n const addLink = (ctx) => {\n context = ctx;\n setEditor(context.editor);\n const text = context.editor?.getSelection();\n\n setImageName({ ...imageName, value: text });\n\n setVisible(true);\n };\n\n const onUpload = async (e) => {\n if (!editor) {\n return;\n }\n const files = e.target?.files || [];\n const bool = verifyImageSize(files);\n\n if (!bool) {\n return;\n }\n\n uploadImage({ file: e.target.files[0], type: 'post' }).then((url) => {\n setLink({ ...link, value: url });\n setImageName({ ...imageName, value: files[0].name });\n });\n };\n\n const onHide = () => setVisible(false);\n const onExited = () => editor?.focus();\n\n const handleSelect = (tab) => {\n setCurrentTab(tab);\n };\n return (\n <ToolItem {...item} onClick={addLink}>\n <Modal\n show={visible}\n onHide={onHide}\n onExited={onExited}\n fullscreen=\"sm-down\">\n <Modal.Header closeButton>\n <h5 className=\"mb-0\">{t('image.add_image')}</h5>\n </Modal.Header>\n <Modal.Body>\n <Tabs onSelect={handleSelect}>\n <Tab eventKey=\"localImage\" title={t('image.tab_image')}>\n <Form className=\"mt-3\" onSubmit={handleClick}>\n <Form.Group controlId=\"editor.imgLink\" className=\"mb-3\">\n <Form.Label>\n {t('image.form_image.fields.file.label')}\n </Form.Label>\n <Form.Control\n type=\"file\"\n onChange={onUpload}\n isInvalid={currentTab === 'localImage' && link.isInvalid}\n accept=\"image/*\"\n />\n\n <Form.Control.Feedback type=\"invalid\">\n {t('image.form_image.fields.file.msg.empty')}\n </Form.Control.Feedback>\n </Form.Group>\n\n <Form.Group controlId=\"editor.imgDescription\" className=\"mb-3\">\n <Form.Label>\n {`${t('image.form_image.fields.desc.label')} ${t(\n 'optional',\n {\n keyPrefix: 'form',\n },\n )}`}\n </Form.Label>\n <Form.Control\n type=\"text\"\n value={imageName.value}\n onChange={(e) =>\n setImageName({ ...imageName, value: e.target.value })\n }\n isInvalid={imageName.isInvalid}\n />\n </Form.Group>\n </Form>\n </Tab>\n <Tab eventKey=\"remoteImage\" title={t('image.tab_url')}>\n <Form className=\"mt-3\" onSubmit={handleClick}>\n <Form.Group controlId=\"editor.imgUrl\" className=\"mb-3\">\n <Form.Label>\n {t('image.form_url.fields.url.label')}\n </Form.Label>\n <Form.Control\n type=\"text\"\n value={link.value}\n onChange={(e) =>\n setLink({ ...link, value: e.target.value })\n }\n isInvalid={currentTab === 'remoteImage' && link.isInvalid}\n />\n <Form.Control.Feedback type=\"invalid\">\n {t('image.form_url.fields.url.msg.empty')}\n </Form.Control.Feedback>\n </Form.Group>\n\n <Form.Group controlId=\"editor.imgName\" className=\"mb-3\">\n <Form.Label>\n {`${t('image.form_url.fields.name.label')} ${t('optional', {\n keyPrefix: 'form',\n })}`}\n </Form.Label>\n <Form.Control\n type=\"text\"\n value={imageName.value}\n onChange={(e) =>\n setImageName({ ...imageName, value: e.target.value })\n }\n isInvalid={imageName.isInvalid}\n />\n </Form.Group>\n </Form>\n </Tab>\n </Tabs>\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"link\" onClick={() => setVisible(false)}>\n {t('image.btn_cancel')}\n </Button>\n <Button variant=\"primary\" onClick={handleClick}>\n {t('image.btn_confirm')}\n </Button>\n </Modal.Footer>\n </Modal>\n </ToolItem>\n );\n};\n\nexport default memo(Image);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { memo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport ToolItem from '../toolItem';\n\nconst Help = () => {\n const { t } = useTranslation('translation', { keyPrefix: 'editor' });\n\n const item = {\n label: 'question-circle-fill',\n tip: t('help.text'),\n };\n const handleClick = () => {\n window.open('https://commonmark.org/help/');\n };\n\n return <ToolItem {...item} onClick={handleClick} />;\n};\n\nexport default memo(Help);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { useState, memo, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { Modal as AnswerModal } from '@/components';\nimport ToolItem from '../toolItem';\nimport { IEditorContext, Editor } from '../types';\nimport { uploadImage } from '@/services';\nimport { writeSettingStore } from '@/stores';\n\nlet context: IEditorContext;\nconst Image = ({ editorInstance }) => {\n const { t } = useTranslation('translation', { keyPrefix: 'editor' });\n const { max_attachment_size = 8, authorized_attachment_extensions = [] } =\n writeSettingStore((state) => state.write);\n const fileInputRef = useRef<HTMLInputElement>(null);\n const [editor, setEditor] = useState<Editor>(editorInstance);\n\n const item = {\n label: 'paperclip',\n tip: `${t('file.text')}`,\n };\n\n const addLink = (ctx) => {\n context = ctx;\n setEditor(context.editor);\n fileInputRef.current?.click?.();\n };\n\n const verifyFileSize = (files: FileList) => {\n if (files.length === 0) {\n return false;\n }\n const unSupportFiles = Array.from(files).filter((file) => {\n const fileName = file.name.toLowerCase();\n return !authorized_attachment_extensions.find((v) =>\n fileName.endsWith(v),\n );\n });\n\n if (unSupportFiles.length > 0) {\n AnswerModal.confirm({\n content: t('file.not_supported', {\n file_type: authorized_attachment_extensions.join(', '),\n }),\n showCancel: false,\n });\n return false;\n }\n\n const attachmentOverSizeFiles = Array.from(files).filter(\n (file) => file.size / 1024 / 1024 > max_attachment_size,\n );\n if (attachmentOverSizeFiles.length > 0) {\n AnswerModal.confirm({\n content: t('file.max_size', { size: max_attachment_size }),\n showCancel: false,\n });\n return false;\n }\n\n return true;\n };\n\n const onUpload = async (e) => {\n if (!editor) {\n return;\n }\n const files = e.target?.files || [];\n const bool = verifyFileSize(files);\n\n if (!bool) {\n return;\n }\n const fileName = files[0].name;\n const loadingText = `![${t('image.uploading')} ${fileName}...]()`;\n const startPos = editor.getCursor();\n\n const endPos = { ...startPos, ch: startPos.ch + loadingText.length };\n editor.replaceSelection(loadingText);\n editor.setReadOnly(true);\n\n uploadImage({ file: e.target.files[0], type: 'post_attachment' })\n .then((url) => {\n const text = `[${fileName}](${url})`;\n editor.replaceRange('', startPos, endPos);\n editor.replaceSelection(text);\n })\n .catch(() => {\n editor.replaceRange('', startPos, endPos);\n })\n .finally(() => {\n editor.setReadOnly(false);\n editor.focus();\n });\n };\n\n if (!authorized_attachment_extensions?.length) {\n return null;\n }\n\n return (\n <ToolItem {...item} onClick={addLink}>\n <input\n type=\"file\"\n className=\"d-none\"\n accept={`.${authorized_attachment_extensions\n .join(',.')\n .toLocaleLowerCase()}`}\n ref={fileInputRef}\n onChange={onUpload}\n />\n </ToolItem>\n );\n};\n\nexport default memo(Image);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { EditorSelection, StateEffect } from '@codemirror/state';\nimport { EditorView, keymap, KeyBinding } from '@codemirror/view';\n\nimport { Editor, Position } from '../types';\n\nconst createEditorUtils = (editor: Editor) => {\n editor.focus = () => {\n editor.contentDOM.focus();\n };\n\n editor.getCursor = () => {\n const range = editor.state.selection.ranges[0];\n const line = editor.state.doc.lineAt(range.from).number;\n const { from, to } = editor.state.doc.line(line);\n return { from, to, ch: range.from - from, line };\n };\n\n editor.addKeyMap = (keyMap) => {\n const array = Object.entries(keyMap).map(([key, value]) => {\n const keyBinding: KeyBinding = {\n key,\n preventDefault: true,\n run: value,\n };\n return keyBinding;\n });\n\n editor.dispatch({\n effects: StateEffect.appendConfig.of(keymap.of(array)),\n });\n };\n\n editor.getSelection = () => {\n return editor.state.sliceDoc(\n editor.state.selection.main.from,\n editor.state.selection.main.to,\n );\n };\n\n editor.replaceSelection = (value: string) => {\n editor.dispatch({\n changes: [\n {\n from: editor.state.selection.main.from,\n to: editor.state.selection.main.to,\n insert: value,\n },\n ],\n selection: EditorSelection.cursor(\n editor.state.selection.main.from + value.length,\n ),\n });\n };\n\n editor.setSelection = (anchor: Position, head?: Position) => {\n editor.dispatch({\n selection: EditorSelection.create([\n EditorSelection.range(\n editor.state.doc.line(anchor.line).from + anchor.ch,\n head\n ? editor.state.doc.line(head.line).from + head.ch\n : editor.state.doc.line(anchor.line).from + anchor.ch,\n ),\n ]),\n });\n };\n\n editor.on = (event, callback) => {\n if (event === 'change') {\n const change = EditorView.updateListener.of((update) => {\n if (update.docChanged) {\n callback();\n }\n });\n\n editor.dispatch({\n effects: StateEffect.appendConfig.of(change),\n });\n }\n if (event === 'focus') {\n editor.contentDOM.addEventListener('focus', callback);\n }\n if (event === 'blur') {\n editor.contentDOM.addEventListener('blur', callback);\n }\n\n if (event === 'dragenter') {\n editor.contentDOM.addEventListener('dragenter', callback);\n }\n\n if (event === 'dragover') {\n editor.contentDOM.addEventListener('dragover', callback);\n }\n\n if (event === 'drop') {\n editor.contentDOM.addEventListener('drop', callback);\n }\n\n if (event === 'paste') {\n editor.contentDOM.addEventListener('paste', callback);\n }\n };\n\n editor.off = (event, callback) => {\n if (event === 'focus') {\n editor.contentDOM.removeEventListener('focus', callback);\n }\n\n if (event === 'blur') {\n editor.contentDOM.removeEventListener('blur', callback);\n }\n\n if (event === 'dragenter') {\n editor.contentDOM.removeEventListener('dragenter', callback);\n }\n\n if (event === 'dragover') {\n editor.contentDOM.removeEventListener('dragover', callback);\n }\n\n if (event === 'drop') {\n editor.contentDOM.removeEventListener('drop', callback);\n }\n\n if (event === 'paste') {\n editor.contentDOM.removeEventListener('paste', callback);\n }\n };\n\n editor.getValue = () => {\n return editor.state.doc.toString();\n };\n\n editor.setValue = (value: string) => {\n editor.dispatch({\n changes: { from: 0, to: editor.state.doc.length, insert: value },\n });\n };\n\n editor.wrapText = (before: string, after = before, defaultText) => {\n const range = editor.state.selection.ranges[0];\n const selection = editor.state.sliceDoc(range.from, range.to);\n const text = `${before}${selection || defaultText}${after}`;\n\n editor.dispatch({\n changes: [\n {\n from: range.from,\n to: range.to,\n insert: text,\n },\n ],\n selection: EditorSelection.range(\n range.from + before.length,\n range.to + before.length,\n ),\n });\n };\n\n editor.replaceLines = (\n replace: Parameters<Array<string>['map']>[0],\n symbolLen = 0,\n ) => {\n const range = editor.state.selection.ranges[0];\n const line = editor.state.doc.lineAt(range.from).number;\n const { from, to } = editor.state.doc.line(line);\n const lines = editor.state.sliceDoc(from, to).split('\\n');\n\n const insert = lines.map(replace).join('\\n');\n const selectionStart = from;\n const selectionEnd = from + insert.length;\n\n editor.dispatch({\n changes: [\n {\n from,\n to,\n insert,\n },\n ],\n selection: EditorSelection.create([\n EditorSelection.range(selectionStart + symbolLen, selectionEnd),\n ]),\n });\n };\n\n editor.appendBlock = (content: string) => {\n const range = editor.state.selection.ranges[0];\n const line = editor.state.doc.lineAt(range.from).number;\n const { from, to } = editor.state.doc.line(line);\n\n let insert = `\\n\\n${content}`;\n\n let selection = EditorSelection.single(to, to + content.length);\n if (from === to) {\n insert = `${content}\\n`;\n selection = EditorSelection.create([\n EditorSelection.cursor(to + content.length),\n ]);\n }\n\n editor.dispatch({\n changes: [\n {\n from: to,\n insert,\n },\n ],\n selection,\n });\n };\n\n editor.replaceRange = (\n value: string,\n selectionStart: Position,\n selectionEnd: Position,\n ) => {\n const from =\n editor.state.doc.line(selectionStart.line).from + selectionStart.ch;\n const to = editor.state.doc.line(selectionEnd.line).from + selectionEnd.ch;\n editor.dispatch({\n changes: [\n {\n from,\n to,\n insert: value,\n },\n ],\n selection: EditorSelection.cursor(from + value.length),\n });\n };\n\n return editor;\n};\n\nexport default createEditorUtils;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { useEffect, useState } from 'react';\n\nimport { minimalSetup } from 'codemirror';\nimport { EditorState, Compartment } from '@codemirror/state';\nimport { EditorView, placeholder } from '@codemirror/view';\nimport { markdown, markdownLanguage } from '@codemirror/lang-markdown';\nimport { languages } from '@codemirror/language-data';\nimport copy from 'copy-to-clipboard';\nimport Tooltip from 'bootstrap/js/dist/tooltip';\n\nimport { Editor } from '../types';\nimport { isDarkTheme } from '@/utils/common';\n\nimport createEditorUtils from './extension';\n\nconst editableCompartment = new Compartment();\ninterface htmlRenderConfig {\n copyText: string;\n copySuccessText: string;\n}\nexport function htmlRender(el: HTMLElement | null, config?: htmlRenderConfig) {\n if (!el) return;\n const { copyText = '', copySuccessText = '' } = config || {\n copyText: 'Copy to clipboard',\n copySuccessText: 'Copied!',\n };\n // Replace all br tags with newlines\n // Fixed an issue where the BR tag in the editor block formula HTML caused rendering errors.\n el.querySelectorAll('p').forEach((p) => {\n if (p.innerHTML.startsWith('$$') && p.innerHTML.endsWith('$$')) {\n const str = p.innerHTML.replace(/<br>/g, '\\n');\n p.innerHTML = str;\n }\n });\n\n // change table style\n\n el.querySelectorAll('table').forEach((table) => {\n if (\n (table.parentNode as HTMLDivElement)?.classList.contains(\n 'table-responsive',\n )\n ) {\n return;\n }\n\n table.classList.add('table', 'table-bordered');\n const div = document.createElement('div');\n div.className = 'table-responsive';\n table.parentNode?.replaceChild(div, table);\n div.appendChild(table);\n });\n\n // add rel nofollow for link not includes domain\n el.querySelectorAll('a').forEach((a) => {\n const base = window.location.origin;\n const targetUrl = new URL(a.href, base);\n\n if (targetUrl.origin !== base) {\n a.rel = 'nofollow';\n }\n });\n\n // Add copy button to all pre tags\n el.querySelectorAll('pre').forEach((pre) => {\n // Create copy button\n const codeWrap = document.createElement('div');\n codeWrap.className = 'position-relative a-code-wrap';\n const codeTool = document.createElement('div');\n codeTool.className = 'a-code-tool';\n const uniqueId = `a-copy-code-${Date.now().toString().substring(5)}-${Math.floor(Math.random() * 10)}${Math.floor(Math.random() * 10)}${Math.floor(Math.random() * 10)}`;\n const str = `\n <a role=\"button\" class=\"link-secondary a-copy-code\" data-bs-toggle=\"tooltip\" data-bs-placement=\"top\" data-bs-title=\"${copyText}\" id=\"${uniqueId}\">\n <i class=\"br bi-copy\"></i>\n </a>\n `;\n codeTool.innerHTML = str;\n\n // Add copy button to pre tag\n pre.style.position = 'relative';\n\n // 将 codeTool 和 pre 插入到 codeWrap 中, 并且使用 codeWrap 替换 pre\n codeWrap.appendChild(codeTool);\n pre.parentNode?.replaceChild(codeWrap, pre);\n codeWrap.appendChild(pre);\n\n const tooltipTriggerList = el.querySelectorAll('.a-copy-code');\n\n Array.from(tooltipTriggerList)?.map(\n (tooltipTriggerEl) => new Tooltip(tooltipTriggerEl),\n );\n\n // Copy pre content on button click\n const copyBtn = codeTool.querySelector('.a-copy-code');\n copyBtn?.addEventListener('click', () => {\n const textToCopy = pre.textContent || '';\n copy(textToCopy);\n // Change tooltip text on copy success\n const tooltipInstance = Tooltip.getOrCreateInstance(`#${uniqueId}`);\n tooltipInstance?.setContent({ '.tooltip-inner': copySuccessText });\n const myTooltipEl = document.querySelector(`#${uniqueId}`);\n myTooltipEl?.addEventListener('hidden.bs.tooltip', () => {\n console.log('hidden.bs.tooltip');\n tooltipInstance.setContent({ '.tooltip-inner': copyText });\n });\n });\n });\n}\n\nexport const useEditor = ({\n editorRef,\n placeholder: placeholderText,\n autoFocus,\n onChange,\n onFocus,\n onBlur,\n}) => {\n const [editor, setEditor] = useState<Editor | null>(null);\n const [value, setValue] = useState<string>('');\n const init = async () => {\n const isDark = isDarkTheme();\n\n const theme = EditorView.theme({\n '&': {\n height: '100%',\n padding: '.375rem .75rem',\n },\n '&.cm-focused': {\n outline: 'none',\n },\n '.cm-content': {\n width: '100%',\n },\n '.cm-line': {\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word',\n },\n '.ͼ7, .ͼ6': {\n textDecoration: 'none',\n },\n '.cm-cursor': {\n 'border-left-color': isDark ? 'white' : 'black',\n },\n });\n\n const startState = EditorState.create({\n extensions: [\n minimalSetup,\n markdown({\n codeLanguages: languages,\n base: markdownLanguage,\n }),\n theme,\n placeholder(placeholderText),\n EditorView.lineWrapping,\n editableCompartment.of(EditorView.editable.of(true)),\n ],\n });\n\n const view = new EditorView({\n parent: editorRef.current,\n state: startState,\n });\n\n const cm = createEditorUtils(view as Editor);\n\n cm.setReadOnly = (readOnly: boolean) => {\n cm.dispatch({\n effects: editableCompartment.reconfigure(\n EditorView.editable.of(!readOnly),\n ),\n });\n };\n\n if (autoFocus) {\n setTimeout(() => {\n cm.focus();\n }, 10);\n }\n\n cm.on('change', () => {\n const newValue = cm.getValue();\n setValue(newValue);\n });\n\n cm.on('focus', () => {\n onFocus?.();\n });\n\n cm.on('blur', () => {\n onBlur?.();\n });\n\n setEditor(cm);\n\n return cm;\n };\n\n useEffect(() => {\n onChange?.(value);\n }, [value]);\n\n useEffect(() => {\n if (!editorRef.current) {\n return;\n }\n if (editorRef.current.children.length > 0 || editor) {\n return;\n }\n\n init();\n }, [editor]);\n return editor;\n};\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { FC, MouseEvent, ReactNode, useEffect, useState } from 'react';\nimport { Modal } from 'react-bootstrap';\n\nimport './index.css';\nimport classnames from 'classnames';\n\nconst Index: FC<{\n children: ReactNode;\n className?: classnames.Argument;\n}> = ({ children, className }) => {\n const [visible, setVisible] = useState(false);\n const [imgSrc, setImgSrc] = useState('');\n const onClose = () => {\n setVisible(false);\n setImgSrc('');\n };\n\n const checkIfInLink = (target) => {\n let ret = false;\n let el = target.parentElement;\n while (el) {\n if (el.nodeName.toLowerCase() === 'a') {\n ret = true;\n break;\n }\n el = el.parentElement;\n }\n return ret;\n };\n\n const checkClickForImgView = (evt: MouseEvent<HTMLElement>) => {\n const { target } = evt;\n // @ts-ignore\n if (target.nodeName.toLowerCase() !== 'img') {\n return;\n }\n const img = target as HTMLImageElement;\n if (!img.naturalWidth || !img.naturalHeight) {\n img.classList.add('broken');\n return;\n }\n const src = img.currentSrc || img.src;\n if (src && checkIfInLink(img) === false) {\n setImgSrc(src);\n setVisible(true);\n }\n };\n\n useEffect(() => {\n return () => {\n onClose();\n };\n }, []);\n\n return (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\n <div\n className={classnames('img-viewer', className)}\n onClick={checkClickForImgView}>\n {children}\n <Modal\n show={visible}\n fullscreen\n centered\n scrollable\n contentClassName=\"bg-transparent\"\n onHide={onClose}>\n <Modal.Body onClick={onClose} className=\"img-viewer p-0 d-flex\">\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-noninteractive-element-interactions */}\n <img\n className=\"cursor-zoom-out img-fluid m-auto\"\n onClick={(evt) => {\n evt.stopPropagation();\n onClose();\n }}\n src={imgSrc}\n alt={imgSrc}\n />\n </Modal.Body>\n </Modal>\n </div>\n );\n};\n\nexport default Index;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport {\n forwardRef,\n useEffect,\n useRef,\n useState,\n memo,\n useImperativeHandle,\n} from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { markdownToHtml } from '@/services';\nimport ImgViewer from '@/components/ImgViewer';\n\nimport { htmlRender } from './utils';\n\nlet scrollTop = 0;\nlet renderTimer;\n\nconst Index = ({ value }, ref) => {\n const [html, setHtml] = useState('');\n const previewRef = useRef<HTMLDivElement>(null);\n const { t } = useTranslation('translation', { keyPrefix: 'messages' });\n\n const renderMarkdown = (markdown) => {\n clearTimeout(renderTimer);\n const timeout = renderTimer ? 1000 : 0;\n renderTimer = setTimeout(() => {\n markdownToHtml(markdown).then((resp) => {\n scrollTop = previewRef.current?.scrollTop || 0;\n setHtml(resp);\n });\n }, timeout);\n };\n useEffect(() => {\n renderMarkdown(value);\n }, [value]);\n\n useEffect(() => {\n if (!html) {\n return;\n }\n\n previewRef.current?.scrollTo(0, scrollTop);\n\n htmlRender(previewRef.current, {\n copySuccessText: t('copied', { keyPrefix: 'messages' }),\n copyText: t('copy', { keyPrefix: 'messages' }),\n });\n }, [html]);\n\n useImperativeHandle(ref, () => {\n return {\n getHtml: () => html,\n element: previewRef.current,\n };\n });\n\n return (\n <ImgViewer>\n <div\n ref={previewRef}\n className=\"preview-wrap position-relative p-3 bg-light rounded text-break text-wrap mt-2 fmt\"\n dangerouslySetInnerHTML={{ __html: html }}\n />\n </ImgViewer>\n );\n};\n\nexport default memo(forwardRef(Index));\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport {\n useEffect,\n useRef,\n ForwardRefRenderFunction,\n forwardRef,\n useImperativeHandle,\n} from 'react';\n\nimport classNames from 'classnames';\n\nimport { PluginType, useRenderPlugin } from '@/utils/pluginKit';\nimport PluginRender from '../PluginRender';\n\nimport {\n BlockQuote,\n Bold,\n Code,\n Heading,\n Help,\n Hr,\n Image,\n Indent,\n Italice,\n Link as LinkItem,\n OL,\n Outdent,\n Table,\n UL,\n File,\n} from './ToolBars';\nimport { htmlRender, useEditor } from './utils';\nimport Viewer from './Viewer';\nimport { EditorContext } from './EditorContext';\n\nimport './index.scss';\n\nexport interface EditorRef {\n getHtml: () => string;\n}\n\ninterface EventRef {\n onChange?(value: string): void;\n onFocus?(): void;\n onBlur?(): void;\n}\n\ninterface Props extends EventRef {\n editorPlaceholder?;\n className?;\n value;\n autoFocus?: boolean;\n}\n\nconst MDEditor: ForwardRefRenderFunction<EditorRef, Props> = (\n {\n editorPlaceholder = '',\n className = '',\n value,\n onChange,\n onFocus,\n onBlur,\n autoFocus = false,\n },\n ref,\n) => {\n const editorRef = useRef<HTMLDivElement>(null);\n const previewRef = useRef<{ getHtml; element } | null>(null);\n\n useRenderPlugin(previewRef.current?.element);\n\n const editor = useEditor({\n editorRef,\n onChange,\n onFocus,\n onBlur,\n placeholder: editorPlaceholder,\n autoFocus,\n });\n\n const getHtml = () => {\n return previewRef.current?.getHtml();\n };\n\n useImperativeHandle(ref, () => ({\n getHtml,\n }));\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n if (editor.getValue() !== value) {\n editor.setValue(value || '');\n }\n }, [editor, value]);\n\n return (\n <>\n <div className={classNames('md-editor-wrap rounded', className)}>\n <EditorContext.Provider value={editor}>\n {editor && (\n <PluginRender\n type={PluginType.Editor}\n className=\"toolbar-wrap px-3 d-flex align-items-center flex-wrap\"\n editor={editor}\n previewElement={previewRef.current?.element}>\n <Heading />\n <Bold />\n <Italice />\n <div className=\"toolbar-divider\" />\n <Code />\n <LinkItem />\n <BlockQuote />\n <Image editorInstance={editor} />\n <File editorInstance={editor} />\n <Table />\n <div className=\"toolbar-divider\" />\n <OL />\n <UL />\n <Indent />\n <Outdent />\n <Hr />\n <div className=\"toolbar-divider\" />\n <Help />\n </PluginRender>\n )}\n </EditorContext.Provider>\n\n <div className=\"content-wrap\">\n <div\n className=\"md-editor position-relative w-100 h-100\"\n ref={editorRef}\n />\n </div>\n </div>\n <Viewer ref={previewRef} value={value} />\n </>\n );\n};\nexport { htmlRender };\nexport default forwardRef(MDEditor);\n","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst NavbarBrand = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n as,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'navbar-brand');\n const Component = as || (props.href ? 'a' : 'span');\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n ref: ref,\n className: classNames(className, bsPrefix)\n });\n});\nNavbarBrand.displayName = 'NavbarBrand';\nexport default NavbarBrand;","\"use client\";\n\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport Collapse from './Collapse';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport NavbarContext from './NavbarContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst NavbarCollapse = /*#__PURE__*/React.forwardRef(({\n children,\n bsPrefix,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'navbar-collapse');\n const context = useContext(NavbarContext);\n return /*#__PURE__*/_jsx(Collapse, {\n in: !!(context && context.expanded),\n ...props,\n children: /*#__PURE__*/_jsx(\"div\", {\n ref: ref,\n className: bsPrefix,\n children: children\n })\n });\n});\nNavbarCollapse.displayName = 'NavbarCollapse';\nexport default NavbarCollapse;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport NavbarContext from './NavbarContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst NavbarToggle = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n children,\n label = 'Toggle navigation',\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'button',\n onClick,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'navbar-toggler');\n const {\n onToggle,\n expanded\n } = useContext(NavbarContext) || {};\n const handleClick = useEventCallback(e => {\n if (onClick) onClick(e);\n if (onToggle) onToggle();\n });\n if (Component === 'button') {\n props.type = 'button';\n }\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n ref: ref,\n onClick: handleClick,\n \"aria-label\": label,\n className: classNames(className, bsPrefix, !expanded && 'collapsed'),\n children: children || /*#__PURE__*/_jsx(\"span\", {\n className: `${bsPrefix}-icon`\n })\n });\n});\nNavbarToggle.displayName = 'NavbarToggle';\nexport default NavbarToggle;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst OffcanvasBody = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'div',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'offcanvas-body');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nOffcanvasBody.displayName = 'OffcanvasBody';\nexport default OffcanvasBody;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ENTERED, ENTERING, EXITING } from 'react-transition-group/Transition';\nimport { getChildRef } from '@restart/ui/utils';\nimport transitionEndListener from './transitionEndListener';\nimport TransitionWrapper from './TransitionWrapper';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst transitionStyles = {\n [ENTERING]: 'show',\n [ENTERED]: 'show'\n};\nconst OffcanvasToggling = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n children,\n in: inProp = false,\n mountOnEnter = false,\n unmountOnExit = false,\n appear = false,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'offcanvas');\n return /*#__PURE__*/_jsx(TransitionWrapper, {\n ref: ref,\n addEndListener: transitionEndListener,\n in: inProp,\n mountOnEnter: mountOnEnter,\n unmountOnExit: unmountOnExit,\n appear: appear,\n ...props,\n childRef: getChildRef(children),\n children: (status, innerProps) => /*#__PURE__*/React.cloneElement(children, {\n ...innerProps,\n className: classNames(className, children.props.className, (status === ENTERING || status === EXITING) && `${bsPrefix}-toggling`, transitionStyles[status])\n })\n });\n});\nOffcanvasToggling.displayName = 'OffcanvasToggling';\nexport default OffcanvasToggling;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport AbstractModalHeader from './AbstractModalHeader';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst OffcanvasHeader = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n closeLabel = 'Close',\n closeButton = false,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'offcanvas-header');\n return /*#__PURE__*/_jsx(AbstractModalHeader, {\n ref: ref,\n ...props,\n className: classNames(className, bsPrefix),\n closeLabel: closeLabel,\n closeButton: closeButton\n });\n});\nOffcanvasHeader.displayName = 'OffcanvasHeader';\nexport default OffcanvasHeader;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport divWithClassName from './divWithClassName';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DivStyledAsH5 = divWithClassName('h5');\nconst OffcanvasTitle = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = DivStyledAsH5,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'offcanvas-title');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nOffcanvasTitle.displayName = 'OffcanvasTitle';\nexport default OffcanvasTitle;","\"use client\";\n\nimport classNames from 'classnames';\nimport useBreakpoint from '@restart/hooks/useBreakpoint';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport * as React from 'react';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport BaseModal from '@restart/ui/Modal';\nimport Fade from './Fade';\nimport OffcanvasBody from './OffcanvasBody';\nimport OffcanvasToggling from './OffcanvasToggling';\nimport ModalContext from './ModalContext';\nimport OffcanvasHeader from './OffcanvasHeader';\nimport OffcanvasTitle from './OffcanvasTitle';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport BootstrapModalManager, { getSharedManager } from './BootstrapModalManager';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction DialogTransition(props) {\n return /*#__PURE__*/_jsx(OffcanvasToggling, {\n ...props\n });\n}\nfunction BackdropTransition(props) {\n return /*#__PURE__*/_jsx(Fade, {\n ...props\n });\n}\nconst Offcanvas = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n children,\n 'aria-labelledby': ariaLabelledby,\n placement = 'start',\n responsive,\n /* BaseModal props */\n\n show = false,\n backdrop = true,\n keyboard = true,\n scroll = false,\n onEscapeKeyDown,\n onShow,\n onHide,\n container,\n autoFocus = true,\n enforceFocus = true,\n restoreFocus = true,\n restoreFocusOptions,\n onEntered,\n onExit,\n onExiting,\n onEnter,\n onEntering,\n onExited,\n backdropClassName,\n manager: propsManager,\n renderStaticNode = false,\n ...props\n}, ref) => {\n const modalManager = useRef();\n bsPrefix = useBootstrapPrefix(bsPrefix, 'offcanvas');\n const [showOffcanvas, setShowOffcanvas] = useState(false);\n const handleHide = useEventCallback(onHide);\n const hideResponsiveOffcanvas = useBreakpoint(responsive || 'xs', 'up');\n useEffect(() => {\n // Handles the case where screen is resized while the responsive\n // offcanvas is shown. If `responsive` not provided, just use `show`.\n setShowOffcanvas(responsive ? show && !hideResponsiveOffcanvas : show);\n }, [show, responsive, hideResponsiveOffcanvas]);\n const modalContext = useMemo(() => ({\n onHide: handleHide\n }), [handleHide]);\n function getModalManager() {\n if (propsManager) return propsManager;\n if (scroll) {\n // Have to use a different modal manager since the shared\n // one handles overflow.\n if (!modalManager.current) modalManager.current = new BootstrapModalManager({\n handleContainerOverflow: false\n });\n return modalManager.current;\n }\n return getSharedManager();\n }\n const handleEnter = (node, ...args) => {\n if (node) node.style.visibility = 'visible';\n onEnter == null || onEnter(node, ...args);\n };\n const handleExited = (node, ...args) => {\n if (node) node.style.visibility = '';\n onExited == null || onExited(...args);\n };\n const renderBackdrop = useCallback(backdropProps => /*#__PURE__*/_jsx(\"div\", {\n ...backdropProps,\n className: classNames(`${bsPrefix}-backdrop`, backdropClassName)\n }), [backdropClassName, bsPrefix]);\n const renderDialog = dialogProps => /*#__PURE__*/_jsx(\"div\", {\n ...dialogProps,\n ...props,\n className: classNames(className, responsive ? `${bsPrefix}-${responsive}` : bsPrefix, `${bsPrefix}-${placement}`),\n \"aria-labelledby\": ariaLabelledby,\n children: children\n });\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [!showOffcanvas && (responsive || renderStaticNode) && renderDialog({}), /*#__PURE__*/_jsx(ModalContext.Provider, {\n value: modalContext,\n children: /*#__PURE__*/_jsx(BaseModal, {\n show: showOffcanvas,\n ref: ref,\n backdrop: backdrop,\n container: container,\n keyboard: keyboard,\n autoFocus: autoFocus,\n enforceFocus: enforceFocus && !scroll,\n restoreFocus: restoreFocus,\n restoreFocusOptions: restoreFocusOptions,\n onEscapeKeyDown: onEscapeKeyDown,\n onShow: onShow,\n onHide: handleHide,\n onEnter: handleEnter,\n onEntering: onEntering,\n onEntered: onEntered,\n onExit: onExit,\n onExiting: onExiting,\n onExited: handleExited,\n manager: getModalManager(),\n transition: DialogTransition,\n backdropTransition: BackdropTransition,\n renderBackdrop: renderBackdrop,\n renderDialog: renderDialog\n })\n })]\n });\n});\nOffcanvas.displayName = 'Offcanvas';\nexport default Object.assign(Offcanvas, {\n Body: OffcanvasBody,\n Header: OffcanvasHeader,\n Title: OffcanvasTitle\n});","\"use client\";\n\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport Offcanvas from './Offcanvas';\nimport NavbarContext from './NavbarContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst NavbarOffcanvas = /*#__PURE__*/React.forwardRef(({\n onHide,\n ...props\n}, ref) => {\n const context = useContext(NavbarContext);\n const handleHide = useEventCallback(() => {\n context == null || context.onToggle == null || context.onToggle();\n onHide == null || onHide();\n });\n return /*#__PURE__*/_jsx(Offcanvas, {\n ref: ref,\n show: !!(context != null && context.expanded),\n ...props,\n renderStaticNode: true,\n onHide: handleHide\n });\n});\nNavbarOffcanvas.displayName = 'NavbarOffcanvas';\nexport default NavbarOffcanvas;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst NavbarText = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'span',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'navbar-text');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nNavbarText.displayName = 'NavbarText';\nexport default NavbarText;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useCallback, useMemo } from 'react';\nimport SelectableContext from '@restart/ui/SelectableContext';\nimport { useUncontrolled } from 'uncontrollable';\nimport NavbarBrand from './NavbarBrand';\nimport NavbarCollapse from './NavbarCollapse';\nimport NavbarToggle from './NavbarToggle';\nimport NavbarOffcanvas from './NavbarOffcanvas';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport NavbarContext from './NavbarContext';\nimport NavbarText from './NavbarText';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Navbar = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n bsPrefix: initialBsPrefix,\n expand = true,\n variant = 'light',\n bg,\n fixed,\n sticky,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'nav',\n expanded,\n onToggle,\n onSelect,\n collapseOnSelect = false,\n ...controlledProps\n } = useUncontrolled(props, {\n expanded: 'onToggle'\n });\n const bsPrefix = useBootstrapPrefix(initialBsPrefix, 'navbar');\n const handleCollapse = useCallback((...args) => {\n onSelect == null || onSelect(...args);\n if (collapseOnSelect && expanded) {\n onToggle == null || onToggle(false);\n }\n }, [onSelect, collapseOnSelect, expanded, onToggle]);\n\n // will result in some false positives but that seems better\n // than false negatives. strict `undefined` check allows explicit\n // \"nulling\" of the role if the user really doesn't want one\n if (controlledProps.role === undefined && Component !== 'nav') {\n controlledProps.role = 'navigation';\n }\n let expandClass = `${bsPrefix}-expand`;\n if (typeof expand === 'string') expandClass = `${expandClass}-${expand}`;\n const navbarContext = useMemo(() => ({\n onToggle: () => onToggle == null ? void 0 : onToggle(!expanded),\n bsPrefix,\n expanded: !!expanded,\n expand\n }), [bsPrefix, expanded, expand, onToggle]);\n return /*#__PURE__*/_jsx(NavbarContext.Provider, {\n value: navbarContext,\n children: /*#__PURE__*/_jsx(SelectableContext.Provider, {\n value: handleCollapse,\n children: /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...controlledProps,\n className: classNames(className, bsPrefix, expand && expandClass, variant && `${bsPrefix}-${variant}`, bg && `bg-${bg}`, sticky && `sticky-${sticky}`, fixed && `fixed-${fixed}`)\n })\n })\n });\n});\nNavbar.displayName = 'Navbar';\nexport default Object.assign(Navbar, {\n Brand: NavbarBrand,\n Collapse: NavbarCollapse,\n Offcanvas: NavbarOffcanvas,\n Text: NavbarText,\n Toggle: NavbarToggle\n});","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { FC, memo } from 'react';\nimport { Nav, Dropdown } from 'react-bootstrap';\nimport { useTranslation } from 'react-i18next';\nimport { NavLink, useNavigate } from 'react-router-dom';\n\nimport type * as Type from '@/common/interface';\nimport { Avatar, Icon } from '@/components';\nimport { floppyNavigation } from '@/utils';\nimport { userCenterStore } from '@/stores';\nimport { REACT_BASE_PATH } from '@/router/alias';\n\ninterface Props {\n redDot: Type.NotificationStatus | undefined;\n userInfo: Type.UserInfoRes;\n logOut: (e) => void;\n}\n\nconst Index: FC<Props> = ({ redDot, userInfo, logOut }) => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { agent: ucAgent } = userCenterStore();\n const handleLinkClick = (evt) => {\n if (floppyNavigation.shouldProcessLinkClick(evt)) {\n evt.preventDefault();\n const href = evt.currentTarget.getAttribute('href');\n floppyNavigation.navigate(href, {\n handler: navigate,\n });\n }\n };\n return (\n <>\n <Nav className=\"flex-row\">\n <NavLink\n to=\"/users/notifications/inbox\"\n title={t('inbox', { keyPrefix: 'notifications' })}\n className=\"icon-link nav-link d-flex align-items-center justify-content-center p-0 me-3 position-relative\">\n <Icon name=\"bell-fill\" className=\"fs-4\" />\n {(redDot?.inbox || 0) > 0 && (\n <div className=\"unread-dot bg-danger\">\n <span className=\"visually-hidden\">\n {t('new_alerts', { keyPrefix: 'notifications' })}\n </span>\n </div>\n )}\n </NavLink>\n\n <NavLink\n to=\"/users/notifications/achievement\"\n title={t('achievement', { keyPrefix: 'notifications' })}\n className=\"icon-link nav-link d-flex align-items-center justify-content-center p-0 me-3 position-relative\">\n <Icon name=\"trophy-fill\" className=\"fs-4\" />\n {(redDot?.achievement || 0) > 0 && (\n <div className=\"unread-dot bg-danger\">\n <span className=\"visually-hidden\">\n {t('new_alerts', { keyPrefix: 'notifications' })}\n </span>\n </div>\n )}\n </NavLink>\n </Nav>\n\n <Dropdown align=\"end\">\n <Dropdown.Toggle\n variant=\"success\"\n id=\"dropdown-basic\"\n as=\"a\"\n role=\"button\"\n className=\"no-toggle pointer\">\n <Avatar\n size=\"36px\"\n avatar={userInfo?.avatar}\n alt={userInfo?.display_name}\n searchStr=\"s=96\"\n />\n </Dropdown.Toggle>\n\n <Dropdown.Menu>\n <Dropdown.Item\n href={`${REACT_BASE_PATH}/users/${userInfo.username}`}\n onClick={handleLinkClick}>\n {t('header.nav.profile')}\n </Dropdown.Item>\n <Dropdown.Item\n href={`${REACT_BASE_PATH}/users/${userInfo.username}/bookmarks`}\n onClick={handleLinkClick}>\n {t('header.nav.bookmark')}\n </Dropdown.Item>\n <Dropdown.Item\n href={`${REACT_BASE_PATH}/users/settings/profile`}\n onClick={handleLinkClick}>\n {t('header.nav.setting')}\n </Dropdown.Item>\n <Dropdown.Divider />\n <Dropdown.Item\n href={`${REACT_BASE_PATH}/users/logout`}\n onClick={(e) => logOut(e)}>\n {t('header.nav.logout')}\n </Dropdown.Item>\n </Dropdown.Menu>\n </Dropdown>\n {/* Dropdown for user center agent info */}\n {ucAgent?.enabled &&\n (ucAgent?.agent_info?.url ||\n ucAgent?.agent_info?.control_center?.length) ? (\n <Dropdown align=\"end\">\n <Dropdown.Toggle\n variant=\"success\"\n id=\"dropdown-uca\"\n as=\"span\"\n className=\"no-toggle\">\n <Nav>\n <Icon\n name=\"grid-3x3-gap-fill\"\n className=\"nav-link pointer p-0 fs-4 ms-3\"\n />\n </Nav>\n </Dropdown.Toggle>\n\n <Dropdown.Menu>\n {ucAgent.agent_info.url ? (\n <Dropdown.Item href={ucAgent.agent_info.url}>\n {ucAgent.agent_info.name}\n </Dropdown.Item>\n ) : null}\n {ucAgent.agent_info.url &&\n ucAgent.agent_info.control_center?.length ? (\n <Dropdown.Divider />\n ) : null}\n {ucAgent.agent_info.control_center?.map((ctrl) => {\n return (\n <Dropdown.Item key={ctrl.name} href={ctrl.url}>\n {ctrl.label}\n </Dropdown.Item>\n );\n })}\n </Dropdown.Menu>\n </Dropdown>\n ) : null}\n </>\n );\n};\n\nexport default memo(Index);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { FC, memo, useState, useEffect } from 'react';\nimport {\n Navbar,\n Container,\n Nav,\n Form,\n FormControl,\n Col,\n} from 'react-bootstrap';\nimport { useTranslation } from 'react-i18next';\nimport {\n useSearchParams,\n Link,\n useNavigate,\n useLocation,\n useMatch,\n} from 'react-router-dom';\n\nimport classnames from 'classnames';\n\nimport { userCenter, floppyNavigation } from '@/utils';\nimport {\n loggedUserInfoStore,\n siteInfoStore,\n brandingStore,\n loginSettingStore,\n themeSettingStore,\n sideNavStore,\n} from '@/stores';\nimport { logout, useQueryNotificationStatus } from '@/services';\nimport { Icon } from '@/components';\n\nimport NavItems from './components/NavItems';\n\nimport './index.scss';\n\nconst Header: FC = () => {\n const navigate = useNavigate();\n const location = useLocation();\n const [urlSearch] = useSearchParams();\n const q = urlSearch.get('q');\n const { user, clear: clearUserStore } = loggedUserInfoStore();\n const { t } = useTranslation();\n const [searchStr, setSearch] = useState('');\n const siteInfo = siteInfoStore((state) => state.siteInfo);\n const brandingInfo = brandingStore((state) => state.branding);\n const loginSetting = loginSettingStore((state) => state.login);\n const { updateReview, updateVisible } = sideNavStore();\n const { data: redDot } = useQueryNotificationStatus();\n /**\n * Automatically append `tag` information when creating a question\n */\n const tagMatch = useMatch('/tags/:slugName');\n let askUrl = '/questions/ask';\n if (tagMatch && tagMatch.params.slugName) {\n askUrl = `${askUrl}?tags=${encodeURIComponent(tagMatch.params.slugName)}`;\n }\n\n useEffect(() => {\n updateReview({\n can_revision: Boolean(redDot?.can_revision),\n revision: Number(redDot?.revision),\n });\n }, [redDot]);\n\n const handleInput = (val) => {\n setSearch(val);\n };\n const handleSearch = (evt) => {\n evt.preventDefault();\n if (!searchStr) {\n return;\n }\n const searchUrl = `/search?q=${encodeURIComponent(searchStr)}`;\n navigate(searchUrl);\n };\n\n const handleLogout = async (evt) => {\n evt.preventDefault();\n await logout();\n clearUserStore();\n window.location.replace(window.location.href);\n };\n\n useEffect(() => {\n if (q && location.pathname === '/search') {\n handleInput(q);\n }\n }, [q]);\n\n useEffect(() => {\n const collapse = document.querySelector('#navBarContent');\n if (collapse && collapse.classList.contains('show')) {\n const toggle = document.querySelector('#navBarToggle') as HTMLElement;\n if (toggle) {\n toggle?.click();\n }\n }\n\n // clear search input when navigate to other page\n if (location.pathname !== '/search' && searchStr) {\n setSearch('');\n }\n }, [location.pathname]);\n\n let navbarStyle = 'theme-colored';\n const { theme, theme_config } = themeSettingStore((_) => _);\n if (theme_config?.[theme]?.navbar_style) {\n navbarStyle = `theme-${theme_config[theme].navbar_style}`;\n }\n\n return (\n <Navbar\n variant={navbarStyle === 'theme-colored' ? 'dark' : ''}\n expand=\"lg\"\n className={classnames('sticky-top', navbarStyle)}\n id=\"header\">\n <Container className=\"d-flex align-items-center\">\n <Navbar.Toggle\n aria-controls=\"navBarContent\"\n className=\"answer-navBar me-2\"\n id=\"navBarToggle\"\n onClick={() => {\n updateVisible();\n }}\n />\n\n <div className=\"d-flex justify-content-between align-items-center nav-grow flex-nowrap\">\n <Navbar.Brand to=\"/\" as={Link} className=\"lh-1 me-0 me-sm-5 p-0\">\n {brandingInfo.logo ? (\n <>\n <img\n className=\"d-none d-lg-block logo me-0\"\n src={brandingInfo.logo}\n alt={siteInfo.name}\n />\n\n <img\n className=\"lg-none logo me-0\"\n src={brandingInfo.mobile_logo || brandingInfo.logo}\n alt={siteInfo.name}\n />\n </>\n ) : (\n <span>{siteInfo.name}</span>\n )}\n </Navbar.Brand>\n\n {/* mobile nav */}\n <div className=\"d-flex lg-none align-items-center flex-lg-nowrap\">\n {user?.username ? (\n <NavItems\n redDot={redDot}\n userInfo={user}\n logOut={(e) => handleLogout(e)}\n />\n ) : (\n <>\n <Link\n className={classnames('me-2 btn btn-link', {\n 'link-light': navbarStyle === 'theme-colored',\n 'link-primary': navbarStyle !== 'theme-colored',\n })}\n onClick={() => floppyNavigation.storageLoginRedirect()}\n to={userCenter.getLoginUrl()}>\n {t('btns.login')}\n </Link>\n {loginSetting.allow_new_registrations && (\n <Link\n className={classnames(\n 'btn',\n navbarStyle === 'theme-colored'\n ? 'btn-light'\n : 'btn-primary',\n )}\n to={userCenter.getSignUpUrl()}>\n {t('btns.signup')}\n </Link>\n )}\n </>\n )}\n </div>\n </div>\n\n <Navbar.Collapse id=\"navBarContent\" className=\"me-auto\">\n <hr className=\"hr lg-none mb-3\" style={{ marginTop: '12px' }} />\n <Col lg={8} className=\"ps-0\">\n <Form\n action=\"/search\"\n className=\"w-100 maxw-400 position-relative\"\n onSubmit={handleSearch}>\n <div className=\"search-wrap\" onClick={handleSearch}>\n <Icon name=\"search\" className=\"search-icon\" />\n </div>\n <FormControl\n type=\"search\"\n placeholder={t('header.search.placeholder')}\n className=\"placeholder-search\"\n value={searchStr}\n name=\"q\"\n onChange={(e) => handleInput(e.target.value)}\n />\n </Form>\n </Col>\n\n <Nav.Item className=\"lg-none mt-3 pb-1\">\n <Link\n to={askUrl}\n className=\"text-capitalize text-nowrap btn btn-light\">\n {t('btns.add_question')}\n </Link>\n </Nav.Item>\n {/* pc nav */}\n <Col\n lg={4}\n className=\"d-none d-lg-flex justify-content-start justify-content-sm-end\">\n {user?.username ? (\n <Nav className=\"d-flex align-items-center flex-lg-nowrap\">\n <Nav.Item className=\"me-3\">\n <Link\n to={askUrl}\n className={classnames('text-capitalize text-nowrap btn', {\n 'btn-light': navbarStyle !== 'theme-light',\n 'btn-primary': navbarStyle === 'theme-light',\n })}>\n {t('btns.add_question')}\n </Link>\n </Nav.Item>\n\n <NavItems\n redDot={redDot}\n userInfo={user}\n logOut={handleLogout}\n />\n </Nav>\n ) : (\n <>\n <Link\n className={classnames('me-2 btn btn-link', {\n 'link-light': navbarStyle === 'theme-colored',\n 'link-primary': navbarStyle !== 'theme-colored',\n })}\n onClick={() => floppyNavigation.storageLoginRedirect()}\n to={userCenter.getLoginUrl()}>\n {t('btns.login')}\n </Link>\n {loginSetting.allow_new_registrations && (\n <Link\n className={classnames(\n 'btn',\n navbarStyle === 'theme-colored'\n ? 'btn-light'\n : 'btn-primary',\n )}\n to={userCenter.getSignUpUrl()}>\n {t('btns.signup')}\n </Link>\n )}\n </>\n )}\n </Col>\n </Navbar.Collapse>\n </Container>\n </Navbar>\n );\n};\n\nexport default memo(Header);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React from 'react';\nimport { Link } from 'react-router-dom';\nimport { Container } from 'react-bootstrap';\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport dayjs from 'dayjs';\n\nimport { siteInfoStore } from '@/stores';\n\nconst Index = () => {\n const { t } = useTranslation('translation', { keyPrefix: 'footer' }); // Scoped translations for footer\n const fullYear = dayjs().format('YYYY');\n const siteName = siteInfoStore((state) => state.siteInfo.name);\n const cc = `${fullYear} ${siteName}`;\n\n return (\n <footer className=\"py-3 bg-light\">\n <Container>\n <p className=\"text-center mb-0 small\">\n {/* Link to Terms of Service with right margin */}\n <Link to=\"/tos\" className=\"me-3\">\n {t('label', { keyPrefix: 'admin.legal.terms_of_service' })}\n </Link>\n\n {/* Link to Privacy Policy with right margin for spacing */}\n <Link to=\"/privacy\">\n {t('label', { keyPrefix: 'admin.legal.privacy_policy' })}\n </Link>\n </p>\n <p className=\"text-center mb-0 small\">\n <Trans i18nKey=\"footer.build_on\" values={{ cc }}>\n Powered by\n {/* eslint-disable-next-line react/jsx-no-target-blank */}\n <a href=\"https://answer.apache.org\" target=\"_blank\">\n Apache Answer\n </a>\n - the open-source software that powers Q&A communities.\n <br />\n Made with love. © 2022 Answer.\n </Trans>\n </p>\n </Container>\n </footer>\n );\n};\n\nexport default React.memo(Index);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { FC } from 'react';\n\nimport { base64ToSvg } from '@/utils';\n\ninterface IProps {\n svgClassName?: string;\n base64: string | undefined;\n}\nconst Icon: FC<IProps> = ({ base64 = '', svgClassName = '' }) => {\n return base64 ? (\n <span\n dangerouslySetInnerHTML={{\n __html: base64ToSvg(base64, svgClassName),\n }}\n />\n ) : null;\n};\n\nexport default Icon;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n/* eslint-disable no-nested-ternary */\nimport { FC, useState, useEffect, useRef, useCallback } from 'react';\nimport { Dropdown, Button, Form } from 'react-bootstrap';\nimport { useTranslation } from 'react-i18next';\n\nimport debounce from 'lodash/debounce';\nimport { marked } from 'marked';\nimport classNames from 'classnames';\n\nimport { useTagModal, useToast } from '@/hooks';\nimport type * as Type from '@/common/interface';\nimport { queryTags, useUserPermission } from '@/services';\n// import { OutsideClickListener } from '@/components';\n\nimport './index.scss';\n\ninterface IProps {\n value?: Type.Tag[];\n onChange?: (tags: Type.Tag[]) => void;\n hiddenDescription?: boolean;\n hiddenCreateBtn?: boolean;\n maxTagLength?: number;\n showRequiredTag?: boolean;\n autoFocus?: boolean;\n isInvalid?: boolean;\n tagStyleMode?: 'default' | 'simple';\n formText?: string;\n errMsg?: string;\n}\n\nlet timer;\n\nconst TagSelector: FC<IProps> = ({\n value = [],\n onChange,\n hiddenDescription = false,\n hiddenCreateBtn = false,\n maxTagLength = 0,\n showRequiredTag = false,\n autoFocus = false,\n isInvalid = false,\n formText = '',\n tagStyleMode = 'default',\n errMsg = '',\n}) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const [initialized, setInitialized] = useState(false);\n const [focusState, setFocusState] = useState(autoFocus);\n const [showMenu, setShowMenu] = useState(false);\n const [currentIndex, setCurrentIndex] = useState<number>(0);\n const [repeatIndex, setRepeatIndex] = useState(-1);\n const [searchValue, setSearchValue] = useState<string>('');\n const [tags, setTags] = useState<Type.Tag[] | null>([]);\n const [requiredTags, setRequiredTags] = useState<Type.Tag[] | null>(null);\n const { t } = useTranslation('translation', { keyPrefix: 'tag_selector' });\n const { data: userPermission } = useUserPermission('tag.add');\n const canAddTag =\n (maxTagLength > 0 && value?.length < maxTagLength) || maxTagLength === 0;\n const toast = useToast();\n const tagModal = useTagModal({\n onConfirm: (data) => {\n if (!(onChange instanceof Function)) {\n return;\n }\n const findIndex = value.findIndex(\n (item) => item.slug_name.toLowerCase() === data.slug_name.toLowerCase(),\n );\n if (findIndex === -1) {\n onChange([\n ...value,\n {\n ...data,\n parsed_text: marked(data.original_text),\n },\n ]);\n setSearchValue('');\n } else {\n setRepeatIndex(findIndex);\n clearTimeout(timer);\n timer = setTimeout(() => {\n setRepeatIndex(-1);\n }, 2000);\n }\n },\n });\n\n const filterTags = (result) => {\n const tagArray: Type.Tag[] = [];\n result?.forEach((item) => {\n const findIndex = value.findIndex((v) => {\n const tagName1 = v.slug_name.toLowerCase();\n const tagName2 =\n typeof item === 'string'\n ? item.toLowerCase()\n : item.slug_name.toLowerCase();\n\n return tagName1 === tagName2;\n });\n\n if (findIndex === -1) {\n tagArray.push(typeof item === 'string' ? { slug_name: item } : item);\n }\n });\n return tagArray;\n };\n\n const handleMenuShow = (bol: boolean) => {\n setShowMenu(bol);\n const ele = document.getElementById('a-dropdown-menu');\n if (ele) {\n if (bol) {\n ele.classList.add('show');\n } else {\n ele.classList.remove('show');\n }\n }\n };\n\n const handleTagSelectorFocus = () => {\n setFocusState(true);\n inputRef.current?.focus();\n };\n\n const handleTagSelectorBlur = () => {\n setFocusState(false);\n setCurrentIndex(0);\n handleMenuShow(false);\n };\n\n const fetchTags = useCallback(\n debounce((str) => {\n if (!showRequiredTag && !str) {\n setTags([]);\n return;\n }\n queryTags(str).then((res) => {\n const tagArray: Type.Tag[] = filterTags(res || []);\n if (str === '') {\n setRequiredTags(res);\n }\n handleMenuShow(tagArray.length > 0);\n setTags(tagArray);\n });\n }, 400),\n [],\n );\n\n const resetSearch = () => {\n setCurrentIndex(0);\n setSearchValue('');\n if (canAddTag) {\n const tagArray: Type.Tag[] = filterTags(requiredTags);\n setTags(tagArray.length > 0 ? tagArray : []);\n } else {\n setTags([]);\n }\n };\n const handleClick = (val: Type.Tag) => {\n const findIndex = value.findIndex(\n (item) => item.slug_name.toLowerCase() === val.slug_name.toLowerCase(),\n );\n if (onChange instanceof Function && findIndex === -1) {\n onChange([\n ...value,\n {\n original_text: '',\n parsed_text: '',\n ...val,\n },\n ]);\n } else {\n setRepeatIndex(findIndex);\n clearTimeout(timer);\n timer = setTimeout(() => {\n setRepeatIndex(-1);\n }, 2000);\n }\n resetSearch();\n };\n\n const handleRemove = (val: Type.Tag) => {\n if (onChange instanceof Function) {\n onChange(\n value.filter((v) => {\n if (v instanceof Object) {\n return v.slug_name.toLowerCase() !== val.slug_name.toLowerCase();\n }\n return v !== val;\n }),\n );\n }\n };\n\n const handleSearch = async (e: React.ChangeEvent<HTMLInputElement>) => {\n const searchStr = e.currentTarget.value.replace(';', '');\n onChange?.([...value]);\n setSearchValue(searchStr);\n fetchTags(searchStr);\n };\n\n const scrollIntoView = (targetId) => {\n const container = document.getElementById('a-dropdown-menu') as HTMLElement;\n const ele = document.getElementById(targetId) as HTMLElement;\n if (ele?.offsetTop >= 104) {\n container.scrollTo({\n top: ele.offsetTop - 104,\n behavior: 'smooth',\n });\n }\n };\n\n const handleKeyDown = (e) => {\n e.stopPropagation();\n const { keyCode } = e;\n if (keyCode === 9) {\n console.log('tab====9');\n // handleTagSelectorBlur();\n return;\n }\n if (value.length > 0 && keyCode === 8 && !searchValue) {\n handleRemove(value[value.length - 1]);\n }\n\n if (!tags) {\n return;\n }\n\n if (keyCode === 38 && currentIndex > 0) {\n scrollIntoView(tags[currentIndex - 1].slug_name);\n setCurrentIndex(currentIndex - 1);\n }\n if (keyCode === 40 && currentIndex < tags.length - 1) {\n scrollIntoView(tags[currentIndex + 1].slug_name);\n setCurrentIndex(currentIndex + 1);\n }\n\n if (keyCode === 13 && currentIndex > -1) {\n e.preventDefault();\n if (tags.length === 0 && searchValue) {\n tagModal.onShow(searchValue);\n return;\n }\n if (currentIndex <= tags.length - 1) {\n handleClick(tags[currentIndex]);\n // if (currentIndex === tags.length - 1 && currentIndex > 0) {\n // setCurrentIndex(currentIndex - 1);\n // }\n }\n }\n };\n\n const handleCreate = () => {\n const tagAddPermission = userPermission?.['tag.add'];\n if (!tagAddPermission || tagAddPermission?.has_permission) {\n tagModal.onShow(searchValue);\n } else if (tagAddPermission?.no_permission_tip) {\n toast.onShow({\n msg: tagAddPermission.no_permission_tip,\n variant: 'danger',\n });\n }\n };\n\n const handleClickToggle = () => {\n const menuHasContent =\n (tags && tags?.length > 0) ||\n (searchValue && tags?.length === 0) ||\n (searchValue && !hiddenCreateBtn);\n if (canAddTag && menuHasContent) {\n handleMenuShow(true);\n } else {\n handleMenuShow(false);\n }\n };\n\n useEffect(() => {\n if (canAddTag) {\n const tagArray: Type.Tag[] = filterTags(requiredTags);\n setTags(tagArray.length > 0 ? tagArray : []);\n } else {\n setTags([]);\n }\n }, [value]);\n\n useEffect(() => {\n if (focusState && showRequiredTag) {\n fetchTags(searchValue);\n inputRef.current?.focus();\n }\n }, [focusState]);\n\n useEffect(() => {\n setInitialized(true);\n }, []);\n\n useEffect(() => {\n const handleOutsideClick = (event) => {\n if (\n initialized &&\n containerRef.current &&\n !containerRef.current?.contains(event.target)\n ) {\n handleTagSelectorBlur();\n }\n };\n document.addEventListener('click', handleOutsideClick);\n return () => {\n document.removeEventListener('click', handleOutsideClick);\n };\n }, [initialized]);\n\n useEffect(() => {\n // menu show\n const menuHasContent =\n (tags && tags?.length > 0) ||\n (searchValue && tags?.length === 0) ||\n (searchValue && !hiddenCreateBtn);\n if (focusState) {\n if (canAddTag && menuHasContent) {\n handleMenuShow(true);\n } else {\n handleMenuShow(false);\n }\n\n if ((tags && tags?.length < 5) || maxTagLength === 0) {\n inputRef.current?.focus();\n }\n }\n }, [focusState, tags, hiddenCreateBtn, searchValue, maxTagLength]);\n\n useEffect(() => {\n // set width of tag Form.Control\n const ele = document.querySelector('.a-input-width') as HTMLElement;\n const elePlaceholder = document.querySelector(\n '.a-placeholder-width',\n ) as HTMLElement;\n if (ele.offsetWidth > 60) {\n inputRef.current?.setAttribute(\n 'style',\n `width:${ele.offsetWidth + 16}px`,\n );\n } else {\n inputRef.current?.setAttribute(\n 'style',\n `width: ${elePlaceholder.offsetWidth + 7}px`,\n );\n }\n }, [searchValue]);\n\n return (\n <div ref={containerRef} className=\"position-relative\">\n <div\n className={classNames(\n 'tag-selector-wrap form-control position-relative p-0',\n focusState ? 'tag-selector-wrap--focus' : '',\n isInvalid ? 'is-invalid' : '',\n )}\n onClick={handleTagSelectorFocus}\n onKeyDown={handleKeyDown}>\n <div onClick={handleClickToggle}>\n <div\n className=\"d-flex flex-wrap m-n1\"\n style={{ padding: '0.375rem 0.75rem' }}>\n {value?.map((item, index) => {\n return (\n <span\n key={item.slug_name}\n className={classNames(\n 'badge-tag rounded-1 m-1 flex-shrink-0',\n tagStyleMode === 'default' &&\n item.reserved &&\n 'badge-tag-reserved',\n tagStyleMode === 'default' &&\n item.recommend &&\n 'badge-tag-required',\n index === repeatIndex && 'bg-fade-out',\n )}>\n {item.display_name}\n <span\n className=\"ms-1 hover-hand\"\n onMouseUp={() => handleRemove(item)}>\n ×\n </span>\n </span>\n );\n })}\n {canAddTag ? (\n <Form.Control\n // autoFocus\n autoComplete=\"off\"\n style={{ width: '60px' }}\n ref={inputRef}\n className=\"a-input m-1\"\n placeholder={t('add_btn')}\n value={searchValue}\n onChange={handleSearch}\n onFocus={handleTagSelectorFocus}\n />\n ) : (\n <Form.Control\n autoComplete=\"off\"\n className=\"a-input\"\n style={{ width: '60px', position: 'absolute', zIndex: -1 }}\n autoFocus\n />\n )}\n <span className=\"a-input-width\">{searchValue}</span>\n <span className=\"a-placeholder-width\">{t('add_btn')}</span>\n </div>\n </div>\n <Dropdown.Menu id=\"a-dropdown-menu\" className=\"w-100\" show={showMenu}>\n {!searchValue &&\n showRequiredTag &&\n tags &&\n tags.filter((v) => v.recommend)?.length > 0 && (\n <h6 className=\"dropdown-header\">{t('tag_required_text')}</h6>\n )}\n\n {tags?.map((item, index) => {\n return (\n <Dropdown.Item\n key={item.slug_name}\n id={item.slug_name}\n active={index === currentIndex}\n onClick={() => handleClick(item)}>\n {item.display_name}\n </Dropdown.Item>\n );\n })}\n {searchValue && tags?.length === 0 && (\n <Dropdown.Item disabled className=\"text-secondary\">\n {t('no_result')}\n </Dropdown.Item>\n )}\n {!hiddenCreateBtn && searchValue && (\n <Button\n variant=\"link\"\n className=\"px-3 btn-no-border w-100 text-start\"\n onClick={handleCreate}>\n + {t('create_btn')}\n </Button>\n )}\n </Dropdown.Menu>\n </div>\n {!hiddenDescription && <Form.Text>{formText || t('hint')}</Form.Text>}\n <Form.Control.Feedback type=\"invalid\">{errMsg}</Form.Control.Feedback>\n </div>\n );\n};\n\nexport default TagSelector;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React, { useState } from 'react';\nimport { Button, Col } from 'react-bootstrap';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\n\nimport type { ImgCodeReq, FormDataType } from '@/common/interface';\nimport { loggedUserInfoStore } from '@/stores';\nimport { resendEmail } from '@/services';\nimport { handleFormError } from '@/utils';\nimport { useCaptchaPlugin } from '@/utils/pluginKit';\n\ninterface IProps {\n visible?: boolean;\n}\n\nconst Index: React.FC<IProps> = () => {\n const { t } = useTranslation('translation', { keyPrefix: 'inactive' });\n const [isSuccess, setSuccess] = useState(false);\n const { e_mail } = loggedUserInfoStore((state) => state.user);\n const [formData, setFormData] = useState<FormDataType>({\n captcha_code: {\n value: '',\n isInvalid: false,\n errorMsg: '',\n },\n });\n\n const emailCaptcha = useCaptchaPlugin('email');\n\n const submit = () => {\n let req: ImgCodeReq = {};\n const imgCode = emailCaptcha?.getCaptcha();\n if (imgCode?.verify) {\n req = {\n captcha_code: imgCode.captcha_code,\n captcha_id: imgCode.captcha_id,\n };\n }\n resendEmail(req)\n .then(async () => {\n await emailCaptcha?.close();\n setSuccess(true);\n })\n .catch((err) => {\n if (err.isError) {\n emailCaptcha?.handleCaptchaError(err.list);\n const data = handleFormError(err, formData);\n setFormData({ ...data });\n }\n });\n };\n\n const onSentEmail = (evt) => {\n evt.preventDefault();\n if (!emailCaptcha) {\n submit();\n return;\n }\n emailCaptcha.check(() => {\n submit();\n });\n };\n\n return (\n <Col md={6} className=\"mx-auto text-center\">\n {isSuccess ? (\n <p>\n <Trans\n i18nKey=\"inactive.another\"\n values={{ mail: e_mail }}\n components={{ bold: <strong /> }}\n />\n </p>\n ) : (\n <>\n <p>\n <Trans\n i18nKey=\"inactive.first\"\n values={{ mail: e_mail }}\n components={{ bold: <strong /> }}\n />\n </p>\n <p>{t('info')}</p>\n <Button variant=\"link\" onClick={onSentEmail}>\n {t('btn_name')}\n </Button>\n <Link to=\"/users/change-email\" replace className=\"btn btn-link ms-2\">\n {t('change_btn_name')}\n </Link>\n </>\n )}\n </Col>\n );\n};\n\nexport default React.memo(Index);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport classnames from 'classnames';\n\nimport { uploadImage } from '@/services';\nimport * as Type from '@/common/interface';\n\ninterface IProps {\n type: Type.UploadType;\n className?: classnames.Argument;\n children?: React.ReactNode;\n acceptType?: string;\n disabled?: boolean;\n uploadCallback: (img: string) => void;\n}\n\nconst Index: React.FC<IProps> = ({\n type,\n uploadCallback,\n children,\n acceptType = '',\n className,\n disabled = false,\n}) => {\n const { t } = useTranslation();\n const [status, setStatus] = useState(false);\n\n const onChange = (e: any) => {\n if (status) {\n return;\n }\n if (e.target.files[0]) {\n // const fileSize = e.target.files[0].size || 0;\n\n // if (maxSize && fileSize / 1024 / 1024 > 2) {\n // Modal.confirm({\n // content: '请上传小于 2M 的图片',\n // });\n // return;\n // }\n setStatus(true);\n uploadImage({ file: e.target.files[0], type })\n .then((res) => {\n uploadCallback(res);\n })\n .finally(() => {\n setStatus(false);\n });\n }\n };\n\n return (\n <label\n className={classnames('btn btn-outline-secondary', className, {\n disabled: !!disabled,\n })}>\n {children || (status ? t('upload_img.loading') : t('upload_img.name'))}\n <input\n type=\"file\"\n className=\"d-none\"\n disabled={disabled}\n accept={`image/jpeg,image/jpg,image/png,image/webp${acceptType}`}\n onChange={onChange}\n />\n </label>\n );\n};\n\nexport default React.memo(Index);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { memo, FC, useState, useEffect } from 'react';\nimport { Button, ButtonGroup } from 'react-bootstrap';\nimport { useTranslation } from 'react-i18next';\n\nimport classNames from 'classnames';\n\nimport { Icon } from '@/components';\nimport { loggedUserInfoStore } from '@/stores';\nimport { useToast } from '@/hooks';\nimport { useCaptchaPlugin } from '@/utils/pluginKit';\nimport { tryNormalLogged } from '@/utils/guard';\nimport { bookmark, postVote } from '@/services';\nimport * as Types from '@/common/interface';\n\ninterface Props {\n className?: string;\n source: 'question' | 'answer';\n data: {\n id: string;\n votesCount: number;\n isLike: boolean;\n isHate: boolean;\n hideCollect?: boolean;\n collected: boolean;\n collectCount: number;\n username: string;\n };\n}\n\nconst Index: FC<Props> = ({ className, data, source }) => {\n const [votes, setVotes] = useState(0);\n const [like, setLike] = useState(false);\n const [hate, setHated] = useState(false);\n const [bookmarkState, setBookmark] = useState({\n state: data?.collected,\n count: data?.collectCount,\n });\n const { username = '' } = loggedUserInfoStore((state) => state.user);\n const toast = useToast();\n const { t } = useTranslation();\n const vCaptcha = useCaptchaPlugin('vote');\n\n useEffect(() => {\n if (data) {\n setVotes(data.votesCount);\n setLike(data.isLike);\n setHated(data.isHate);\n setBookmark({\n state: data?.collected,\n count: data?.collectCount,\n });\n }\n }, []);\n\n const submitVote = (type) => {\n const isCancel = (type === 'up' && like) || (type === 'down' && hate);\n const imgCode: Types.ImgCodeReq = {\n captcha_id: undefined,\n captcha_code: undefined,\n };\n vCaptcha?.resolveCaptchaReq?.(imgCode);\n\n postVote(\n {\n object_id: data?.id,\n is_cancel: isCancel,\n ...imgCode,\n },\n type,\n )\n .then(async (res) => {\n await vCaptcha?.close();\n setVotes(res.votes);\n setLike(res.vote_status === 'vote_up');\n setHated(res.vote_status === 'vote_down');\n })\n .catch((err) => {\n if (err?.isError) {\n vCaptcha?.handleCaptchaError(err.list);\n }\n const errMsg = err?.value;\n if (errMsg) {\n toast.onShow({\n msg: errMsg,\n variant: 'danger',\n });\n }\n });\n };\n\n const handleVote = (type: 'up' | 'down') => {\n if (!tryNormalLogged(true)) {\n return;\n }\n\n if (data.username === username) {\n toast.onShow({\n msg: t('cannot_vote_for_self'),\n variant: 'danger',\n });\n return;\n }\n\n if (!vCaptcha) {\n submitVote(type);\n return;\n }\n\n vCaptcha.check(() => {\n submitVote(type);\n });\n };\n\n const handleBookmark = () => {\n if (!tryNormalLogged(true)) {\n return;\n }\n bookmark({\n group_id: '0',\n object_id: data?.id,\n bookmark: !bookmarkState.state,\n }).then((res) => {\n setBookmark({\n state: !bookmarkState.state,\n count: res.object_collection_count,\n });\n });\n };\n\n return (\n <div className={classNames(className)}>\n <ButtonGroup>\n <Button\n title={\n source === 'question'\n ? t('question_detail.question_useful')\n : t('question_detail.answer_useful')\n }\n variant=\"outline-secondary\"\n active={like}\n onClick={() => handleVote('up')}>\n <Icon name=\"hand-thumbs-up-fill\" />\n </Button>\n <Button variant=\"outline-secondary\" className=\"opacity-100\" disabled>\n {votes}\n </Button>\n <Button\n title={\n source === 'question'\n ? t('question_detail.question_un_useful')\n : t('question_detail.answer_un_useful')\n }\n variant=\"outline-secondary\"\n active={hate}\n onClick={() => handleVote('down')}>\n <Icon name=\"hand-thumbs-down-fill\" />\n </Button>\n </ButtonGroup>\n {!data?.hideCollect && (\n <Button\n variant=\"outline-secondary ms-3\"\n title={t('question_detail.question_bookmark')}\n active={bookmarkState.state}\n onClick={handleBookmark}>\n <Icon name=\"bookmark-fill\" />\n <span style={{ paddingLeft: '10px' }}>{bookmarkState.count}</span>\n </Button>\n )}\n </div>\n );\n};\n\nexport default memo(Index);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React, { memo, FC } from 'react';\nimport { Link } from 'react-router-dom';\n\nimport classNames from 'classnames';\n\nimport { Tag } from '@/common/interface';\nimport { pathFactory } from '@/router/pathFactory';\n\ninterface IProps {\n data: Tag;\n href?: string;\n className?: string;\n textClassName?: string;\n}\n\nconst Index: FC<IProps> = ({\n data,\n href,\n className = '',\n textClassName = '',\n}) => {\n href ||= pathFactory.tagLanding(data.slug_name);\n\n return (\n <Link\n to={href}\n onClick={(e) => {\n e.stopPropagation();\n }}\n className={classNames(\n 'badge-tag rounded-1',\n data.reserved && 'badge-tag-reserved',\n data.recommend && 'badge-tag-required',\n className,\n )}>\n <span className={textClassName}>\n {data.display_name || data.slug_name}\n </span>\n </Link>\n );\n};\n\nexport default memo(Index);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { memo, FC, useState, useEffect } from 'react';\nimport { Dropdown, OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport { useTranslation } from 'react-i18next';\n\nimport { FacebookShareButton, TwitterShareButton } from 'next-share';\nimport copy from 'copy-to-clipboard';\n\nimport { BASE_ORIGIN } from '@/router/alias';\nimport { loggedUserInfoStore } from '@/stores';\n\ninterface IProps {\n type: 'answer' | 'question';\n qid: any;\n aid?: any;\n title: string;\n // slugTitle: string;\n}\n\nconst Index: FC<IProps> = ({ type, qid, aid, title }) => {\n const user = loggedUserInfoStore((state) => state.user);\n const [show, setShow] = useState(false);\n const [showTip, setShowTip] = useState(false);\n const [canSystemShare, setSystemShareState] = useState(false);\n const { t } = useTranslation();\n let baseUrl =\n type === 'question'\n ? `${BASE_ORIGIN}/questions/${qid}`\n : `${BASE_ORIGIN}/questions/${qid}/${aid}`;\n if (user.id) {\n baseUrl = `${baseUrl}?share=${user.username}`;\n }\n\n const closeShare = () => {\n setShowTip(false);\n setShow(false);\n };\n\n const handleCopy = (evt) => {\n evt.preventDefault();\n evt.stopPropagation();\n let copyText = baseUrl;\n if (title) {\n copyText = `${title} ${baseUrl}`;\n }\n copy(copyText);\n setShowTip(true);\n setTimeout(closeShare, 1000);\n };\n\n const systemShare = () => {\n navigator.share({\n title,\n text: `${title} - Answer:`,\n url: baseUrl,\n });\n };\n useEffect(() => {\n if (window.navigator?.canShare?.({ text: 'can_share' })) {\n setSystemShareState(true);\n }\n }, []);\n return (\n <Dropdown show={show} onToggle={closeShare}>\n <Dropdown.Toggle\n id=\"dropdown-share\"\n as=\"a\"\n className=\"no-toggle small link-secondary pointer d-flex\"\n onClick={() => setShow(true)}\n style={{ lineHeight: '23px' }}>\n {t('share.name')}\n </Dropdown.Toggle>\n <Dropdown.Menu style={{ minWidth: '195px' }}>\n <OverlayTrigger\n trigger=\"click\"\n placement=\"left\"\n show={showTip}\n overlay={<Tooltip>{t('share.copied')}</Tooltip>}>\n <Dropdown.Item onClick={handleCopy} eventKey=\"copy\">\n {t('share.copy')}\n </Dropdown.Item>\n </OverlayTrigger>\n <Dropdown.Item eventKey=\"facebook\">\n <FacebookShareButton\n title={title}\n url={baseUrl}\n className=\"w-100 py-1 px-3 text-start\">\n {t('share.facebook')}\n </FacebookShareButton>\n </Dropdown.Item>\n <Dropdown.Item>\n <TwitterShareButton\n title={title}\n url={baseUrl}\n className=\"w-100 py-1 px-3 text-start\">\n {t('share.twitter')}\n </TwitterShareButton>\n </Dropdown.Item>\n {canSystemShare && (\n <Dropdown.Item onClick={systemShare}>{t('share.via')}</Dropdown.Item>\n )}\n </Dropdown.Menu>\n </Dropdown>\n );\n};\n\nexport default memo(Index);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { memo, FC } from 'react';\nimport { Button, Dropdown } from 'react-bootstrap';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n\nimport { Modal } from '@/components';\nimport { useReportModal, useToast } from '@/hooks';\nimport { useCaptchaPlugin } from '@/utils/pluginKit';\nimport { QuestionOperationReq } from '@/common/interface';\nimport Share from '../Share';\nimport {\n deleteQuestion,\n deleteAnswer,\n editCheck,\n reopenQuestion,\n questionOperation,\n unDeleteAnswer,\n unDeleteQuestion,\n} from '@/services';\nimport { tryNormalLogged } from '@/utils/guard';\nimport { floppyNavigation } from '@/utils';\nimport { toastStore } from '@/stores';\n\ninterface IProps {\n type: 'answer' | 'question';\n qid: string;\n aid?: string;\n title: string;\n hasAnswer?: boolean;\n isAccepted: boolean;\n callback: (type: string) => void;\n memberActions;\n}\nconst Index: FC<IProps> = ({\n type,\n qid,\n aid = '',\n title,\n isAccepted = false,\n hasAnswer = false,\n memberActions = [],\n callback,\n}) => {\n const { t } = useTranslation('translation', { keyPrefix: 'delete' });\n const toast = useToast();\n const navigate = useNavigate();\n const reportModal = useReportModal();\n const dCaptcha = useCaptchaPlugin('delete');\n\n const refreshQuestion = () => {\n callback?.('default');\n };\n const closeModal = useReportModal(refreshQuestion);\n const editUrl =\n type === 'answer' ? `/posts/${qid}/${aid}/edit` : `/posts/${qid}/edit`;\n\n const handleReport = () => {\n reportModal.onShow({\n type,\n id: type === 'answer' ? aid : qid,\n action: 'flag',\n });\n };\n\n const handleClose = () => {\n closeModal.onShow({\n type,\n id: qid,\n action: 'close',\n });\n };\n\n const submitDeleteQuestion = () => {\n const req = {\n id: qid,\n captcha_code: undefined,\n captcha_id: undefined,\n };\n dCaptcha?.resolveCaptchaReq(req);\n\n deleteQuestion(req)\n .then(async () => {\n await dCaptcha?.close();\n toast.onShow({\n msg: t('post_deleted', { keyPrefix: 'messages' }),\n variant: 'success',\n });\n callback?.('delete_question');\n })\n .catch((ex) => {\n if (ex.isError) {\n dCaptcha?.handleCaptchaError(ex.list);\n }\n });\n };\n\n const submitDeleteAnswer = () => {\n const req = {\n id: aid,\n captcha_code: undefined,\n captcha_id: undefined,\n };\n dCaptcha?.resolveCaptchaReq(req);\n\n deleteAnswer(req)\n .then(async () => {\n await dCaptcha?.close();\n // refresh page\n toast.onShow({\n msg: t('tip_answer_deleted'),\n variant: 'success',\n });\n callback?.('delete_answer');\n })\n .catch((ex) => {\n if (ex.isError) {\n dCaptcha?.handleCaptchaError(ex.list);\n }\n });\n };\n\n const handleDelete = () => {\n if (type === 'question') {\n Modal.confirm({\n title: t('title'),\n content: hasAnswer ? t('question') : t('other'),\n cancelBtnVariant: 'link',\n confirmBtnVariant: 'danger',\n confirmText: t('delete', { keyPrefix: 'btns' }),\n onConfirm: () => {\n if (!dCaptcha) {\n submitDeleteQuestion();\n return;\n }\n dCaptcha.check(() => {\n submitDeleteQuestion();\n });\n },\n });\n }\n\n if (type === 'answer' && aid) {\n Modal.confirm({\n title: t('title'),\n content: isAccepted ? t('answer_accepted') : t('other'),\n cancelBtnVariant: 'link',\n confirmBtnVariant: 'danger',\n confirmText: t('delete', { keyPrefix: 'btns' }),\n onConfirm: () => {\n if (!dCaptcha) {\n submitDeleteAnswer();\n return;\n }\n dCaptcha.check(() => {\n submitDeleteAnswer();\n });\n },\n });\n }\n };\n\n const handleUndelete = () => {\n Modal.confirm({\n title: t('undelete_title'),\n content: t('undelete_desc'),\n cancelBtnVariant: 'link',\n confirmBtnVariant: 'danger',\n confirmText: t('undelete', { keyPrefix: 'btns' }),\n onConfirm: () => {\n if (type === 'question') {\n unDeleteQuestion(qid).then(() => {\n callback?.('default');\n });\n }\n\n if (type === 'answer') {\n unDeleteAnswer(aid).then(() => {\n callback?.('all');\n });\n }\n },\n });\n };\n\n const handleEdit = (evt, targetUrl) => {\n if (!floppyNavigation.shouldProcessLinkClick(evt)) {\n return;\n }\n evt.preventDefault();\n let checkObjectId = qid;\n if (type === 'answer') {\n checkObjectId = aid;\n }\n editCheck(checkObjectId).then(() => {\n navigate(targetUrl);\n });\n };\n\n const handleReopen = () => {\n Modal.confirm({\n title: t('title', { keyPrefix: 'question_detail.reopen' }),\n content: t('content', { keyPrefix: 'question_detail.reopen' }),\n cancelBtnVariant: 'link',\n confirmText: t('confirm_btn', { keyPrefix: 'question_detail.reopen' }),\n onConfirm: () => {\n reopenQuestion({\n question_id: qid,\n }).then(() => {\n toast.onShow({\n msg: t('post_reopen', { keyPrefix: 'messages' }),\n variant: 'success',\n });\n refreshQuestion();\n });\n },\n });\n };\n\n const handleCommon = async (params) => {\n await questionOperation(params);\n let msg = '';\n if (params.operation === 'pin') {\n msg = t('post_pin', { keyPrefix: 'messages' });\n }\n if (params.operation === 'unpin') {\n msg = t('post_unpin', { keyPrefix: 'messages' });\n }\n if (params.operation === 'hide') {\n msg = t('post_hide_list', { keyPrefix: 'messages' });\n }\n if (params.operation === 'show') {\n msg = t('post_show_list', { keyPrefix: 'messages' });\n }\n toastStore.getState().show({\n msg,\n variant: 'success',\n });\n setTimeout(() => {\n refreshQuestion();\n }, 100);\n };\n\n const handlOtherActions = (action) => {\n const params: QuestionOperationReq = {\n id: qid,\n operation: action,\n };\n\n if (action === 'pin') {\n Modal.confirm({\n title: t('title', { keyPrefix: 'question_detail.pin' }),\n content: t('content', { keyPrefix: 'question_detail.pin' }),\n cancelBtnVariant: 'link',\n confirmText: t('confirm_btn', { keyPrefix: 'question_detail.pin' }),\n onConfirm: () => {\n handleCommon(params);\n },\n });\n } else {\n handleCommon(params);\n }\n };\n\n const handleAction = (action) => {\n if (!tryNormalLogged(true)) {\n return;\n }\n if (action === 'delete') {\n handleDelete();\n }\n\n if (action === 'undelete') {\n handleUndelete();\n }\n\n if (action === 'report') {\n handleReport();\n }\n\n if (action === 'close') {\n handleClose();\n }\n\n if (action === 'reopen') {\n handleReopen();\n }\n\n if (\n action === 'pin' ||\n action === 'unpin' ||\n action === 'hide' ||\n action === 'show'\n ) {\n handlOtherActions(action);\n }\n };\n\n const firstAction =\n memberActions?.filter(\n (v) =>\n v.action === 'report' ||\n v.action === 'edit' ||\n v.action === 'delete' ||\n v.action === 'undelete',\n ) || [];\n const secondAction =\n memberActions?.filter(\n (v) =>\n v.action === 'close' ||\n v.action === 'reopen' ||\n v.action === 'pin' ||\n v.action === 'unpin' ||\n v.action === 'hide' ||\n v.action === 'show',\n ) || [];\n\n return (\n <div className=\"d-flex align-items-center\">\n <Share type={type} qid={qid} aid={aid} title={title} />\n {firstAction?.map((item) => {\n if (item.action === 'edit') {\n return (\n <Link\n key={item.action}\n to={editUrl}\n className=\"link-secondary p-0 small ms-3\"\n onClick={(evt) => handleEdit(evt, editUrl)}\n style={{ lineHeight: '23px' }}>\n {item.name}\n </Link>\n );\n }\n return (\n <Button\n key={item.action}\n variant=\"link\"\n size=\"sm\"\n className=\"link-secondary p-0 ms-3\"\n onClick={() => handleAction(item.action)}>\n {item.name}\n </Button>\n );\n })}\n {secondAction.length > 0 && (\n <Dropdown className=\"ms-3 d-flex\">\n <Dropdown.Toggle\n variant=\"link\"\n size=\"sm\"\n className=\"link-secondary p-0 no-toggle\">\n {t('action', { keyPrefix: 'question_detail' })}\n </Dropdown.Toggle>\n <Dropdown.Menu>\n {secondAction.map((item) => {\n return (\n <Dropdown.Item\n key={item.action}\n onClick={() => handleAction(item.action)}>\n {item.name}\n </Dropdown.Item>\n );\n })}\n </Dropdown.Menu>\n </Dropdown>\n )}\n </div>\n );\n};\n\nexport default memo(Index);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { memo, FC } from 'react';\nimport { Link } from 'react-router-dom';\n\nimport classnames from 'classnames';\n\nimport { Avatar, FormatTime } from '@/components';\nimport { formatCount } from '@/utils';\n\ninterface Props {\n data: any;\n time: number;\n preFix: string;\n isLogged: boolean;\n timelinePath: string;\n className?: string;\n}\n\nconst Index: FC<Props> = ({\n data,\n time,\n preFix,\n isLogged,\n timelinePath,\n className = '',\n}) => {\n return (\n <div className={classnames('d-flex', className)}>\n {data?.status !== 'deleted' ? (\n <Link to={`/users/${data?.username}`}>\n <Avatar\n avatar={data?.avatar}\n size=\"40px\"\n className=\"me-2 d-none d-md-block\"\n searchStr=\"s=96\"\n alt={data?.display_name}\n />\n\n <Avatar\n avatar={data?.avatar}\n size=\"24px\"\n className=\"me-2 d-block d-md-none\"\n searchStr=\"s=48\"\n alt={data?.display_name}\n />\n </Link>\n ) : (\n <>\n <Avatar\n avatar={data?.avatar}\n size=\"40px\"\n className=\"me-2 d-none d-md-block\"\n searchStr=\"s=96\"\n alt={data?.display_name}\n />\n\n <Avatar\n avatar={data?.avatar}\n size=\"24px\"\n className=\"me-2 d-block d-md-none\"\n searchStr=\"s=48\"\n alt={data?.display_name}\n />\n </>\n )}\n <div className=\"small text-secondary d-flex flex-row flex-md-column align-items-center align-items-md-start\">\n <div className=\"me-1 me-md-0 d-flex align-items-center\">\n {data?.status !== 'deleted' ? (\n <Link\n to={`/users/${data?.username}`}\n className=\"me-1 text-break name-ellipsis\"\n style={{ maxWidth: '100px' }}>\n {data?.display_name}\n </Link>\n ) : (\n <span className=\"me-1 text-break\">{data?.display_name}</span>\n )}\n <span className=\"fw-bold\" title=\"Reputation\">\n {formatCount(data?.rank)}\n </span>\n </div>\n {time &&\n (isLogged ? (\n <Link to={timelinePath}>\n <FormatTime\n time={time}\n preFix={preFix}\n className=\"link-secondary\"\n />\n </Link>\n ) : (\n <FormatTime time={time} preFix={preFix} />\n ))}\n </div>\n </div>\n );\n};\n\nexport default memo(Index);\n","/* eslint-disable react/no-multi-comp */\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport Anchor from '@restart/ui/Anchor';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst PageItem = /*#__PURE__*/React.forwardRef(({\n active = false,\n disabled = false,\n className,\n style,\n activeLabel = '(current)',\n children,\n linkStyle,\n linkClassName,\n as = Anchor,\n ...props\n}, ref) => {\n const Component = active || disabled ? 'span' : as;\n return /*#__PURE__*/_jsx(\"li\", {\n ref: ref,\n style: style,\n className: classNames(className, 'page-item', {\n active,\n disabled\n }),\n children: /*#__PURE__*/_jsxs(Component, {\n className: classNames('page-link', linkClassName),\n style: linkStyle,\n ...props,\n children: [children, active && activeLabel && /*#__PURE__*/_jsx(\"span\", {\n className: \"visually-hidden\",\n children: activeLabel\n })]\n })\n });\n});\nPageItem.displayName = 'PageItem';\nexport default PageItem;\nfunction createButton(name, defaultValue, label = name) {\n const Button = /*#__PURE__*/React.forwardRef(({\n children,\n ...props\n }, ref) => /*#__PURE__*/_jsxs(PageItem, {\n ...props,\n ref: ref,\n children: [/*#__PURE__*/_jsx(\"span\", {\n \"aria-hidden\": \"true\",\n children: children || defaultValue\n }), /*#__PURE__*/_jsx(\"span\", {\n className: \"visually-hidden\",\n children: label\n })]\n }));\n Button.displayName = name;\n return Button;\n}\nexport const First = createButton('First', '«');\nexport const Prev = createButton('Prev', '‹', 'Previous');\nexport const Ellipsis = createButton('Ellipsis', '…', 'More');\nexport const Next = createButton('Next', '›');\nexport const Last = createButton('Last', '»');","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport PageItem, { Ellipsis, First, Last, Next, Prev } from './PageItem';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Pagination = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n size,\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'pagination');\n return /*#__PURE__*/_jsx(\"ul\", {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, size && `${decoratedBsPrefix}-${size}`)\n });\n});\nPagination.displayName = 'Pagination';\nexport default Object.assign(Pagination, {\n First,\n Prev,\n Ellipsis,\n Item: PageItem,\n Next,\n Last\n});","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { FC } from 'react';\nimport { Pagination } from 'react-bootstrap';\nimport { useTranslation } from 'react-i18next';\nimport { useSearchParams, useNavigate, useLocation } from 'react-router-dom';\n\nimport { floppyNavigation } from '@/utils';\n\ninterface Props {\n currentPage: number;\n pageSize: number;\n totalSize: number;\n pathname?: string;\n}\n\ninterface PageItemProps {\n page: number;\n currentPage: number;\n path: string;\n}\n\nconst pageArr = [\n {\n href: '1',\n page: 1,\n },\n {\n href: '#!',\n page: 2,\n },\n {\n href: '#!',\n page: 3,\n },\n {\n href: '#!',\n page: 4,\n },\n {\n href: '#!',\n page: 5,\n },\n];\n\nconst PageItem = ({ page, currentPage, path }: PageItemProps) => {\n const navigate = useNavigate();\n return (\n <Pagination.Item\n active={currentPage === page}\n href={path}\n onClick={(e) => {\n if (floppyNavigation.shouldProcessLinkClick(e)) {\n e.preventDefault();\n e.stopPropagation();\n navigate(path);\n }\n }}>\n {page}\n </Pagination.Item>\n );\n};\n\nconst Index: FC<Props> = ({\n currentPage = 1,\n pageSize = 15,\n totalSize = 0,\n pathname = '',\n}) => {\n const { t } = useTranslation('translation', { keyPrefix: 'pagination' });\n const location = useLocation();\n if (!pathname) {\n pathname = location.pathname;\n }\n const [searchParams] = useSearchParams();\n const navigate = useNavigate();\n const totalPage = Math.ceil(totalSize / pageSize);\n const realPage = currentPage > totalPage ? totalPage : currentPage;\n\n const mapPage = pageArr.filter((i) => i.page <= totalPage);\n\n if (totalPage <= 1) {\n return null;\n }\n\n const handleParams = (pageNum): string => {\n searchParams.set('page', String(pageNum));\n const searchStr = searchParams.toString();\n return `${pathname}?${searchStr}`;\n };\n return (\n <Pagination size=\"sm\" className=\"d-inline-flex mb-0\">\n {currentPage > 1 && (\n <Pagination.Prev\n href={handleParams(currentPage - 1)}\n onClick={(e) => {\n if (floppyNavigation.shouldProcessLinkClick(e)) {\n e.preventDefault();\n navigate(handleParams(currentPage - 1));\n }\n }}>\n {t('prev')}\n </Pagination.Prev>\n )}\n {currentPage >= 1 && currentPage <= 4 && (\n <>\n {mapPage.map((item) => {\n return (\n <PageItem\n key={item.page}\n page={item.page}\n currentPage={currentPage}\n path={handleParams(item.page)}\n />\n );\n })}\n </>\n )}\n {currentPage === 4 && totalPage > 6 && (\n <PageItem\n key=\"page6\"\n page={6}\n currentPage={currentPage}\n path={handleParams(6)}\n />\n )}\n\n {currentPage > 4 && (\n <>\n <PageItem\n key=\"first\"\n page={1}\n currentPage={currentPage}\n path={handleParams(1)}\n />\n\n <Pagination.Ellipsis className=\"pe-none\" />\n </>\n )}\n {currentPage >= 5 && (\n <>\n <PageItem\n key={realPage - 2}\n page={realPage - 2}\n currentPage={currentPage}\n path={handleParams(realPage - 2)}\n />\n <PageItem\n key={realPage - 1}\n page={realPage - 1}\n currentPage={currentPage}\n path={handleParams(realPage - 1)}\n />\n </>\n )}\n\n {currentPage > totalPage && (\n <PageItem\n key={realPage}\n page={realPage}\n currentPage={currentPage}\n path={handleParams(realPage)}\n />\n )}\n\n {currentPage >= 5 &&\n totalPage >= currentPage &&\n new Array(\n totalPage <= 3\n ? totalPage - currentPage + 1\n : Math.min(totalPage - currentPage + 1, 3),\n )\n .fill('')\n .map((v, i) => {\n return (\n <PageItem\n key={`${currentPage + i}`}\n page={currentPage + i}\n currentPage={currentPage}\n path={handleParams(currentPage + i)}\n />\n );\n })}\n {totalPage > 5 && realPage + 2 < totalPage && (\n <Pagination.Ellipsis className=\"pe-none\" />\n )}\n\n {totalPage > 0 && currentPage < totalPage && (\n <Pagination.Next\n disabled={currentPage === totalPage}\n href={handleParams(currentPage + 1)}\n onClick={(e) => {\n if (floppyNavigation.shouldProcessLinkClick(e)) {\n e.preventDefault();\n navigate(handleParams(currentPage + 1));\n }\n }}>\n {t('next')}\n </Pagination.Next>\n )}\n </Pagination>\n );\n};\n\nexport default Index;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { useState, useEffect, memo } from 'react';\nimport { Button, Form } from 'react-bootstrap';\nimport { useTranslation } from 'react-i18next';\n\nimport classNames from 'classnames';\n\nimport { TextArea, Mentions } from '@/components';\nimport { usePageUsers, usePromptWithUnload } from '@/hooks';\nimport { parseEditMentionUser } from '@/utils';\n\nconst Index = ({\n className = '',\n value: initialValue = '',\n onSendReply,\n type = '',\n onCancel,\n mode,\n}) => {\n const [value, setValue] = useState('');\n const [immData, setImmData] = useState('');\n const pageUsers = usePageUsers();\n const { t } = useTranslation('translation', { keyPrefix: 'comment' });\n const [validationErrorMsg, setValidationErrorMsg] = useState('');\n\n usePromptWithUnload({\n when: type === 'edit' ? immData !== value : Boolean(value),\n });\n useEffect(() => {\n if (!initialValue) {\n return;\n }\n setImmData(initialValue);\n setValue(initialValue);\n }, [initialValue]);\n\n const handleChange = (e) => {\n setValue(e.target.value);\n };\n const handleSelected = (val) => {\n setValue(val);\n };\n const handleSendReply = () => {\n onSendReply(value).catch((ex) => {\n if (ex.isError) {\n setValidationErrorMsg(ex.msg);\n }\n });\n };\n\n return (\n <div\n className={classNames(\n 'd-flex align-items-start flex-column flex-md-row',\n className,\n )}>\n <div className=\"w-100\">\n <div\n className={classNames('custom-form-control', {\n 'is-invalid': validationErrorMsg,\n })}>\n <Mentions\n pageUsers={pageUsers.getUsers()}\n onSelected={handleSelected}>\n <TextArea\n size=\"sm\"\n value={type === 'edit' ? parseEditMentionUser(value) : value}\n onChange={handleChange}\n isInvalid={validationErrorMsg !== ''}\n />\n </Mentions>\n <div className=\"form-text\">{t(`tip_${mode}`)}</div>\n </div>\n <Form.Control.Feedback type=\"invalid\">\n {validationErrorMsg}\n </Form.Control.Feedback>\n </div>\n {type === 'edit' ? (\n <div className=\"d-flex flex-row flex-md-column ms-0 ms-md-2 mt-2 mt-md-0\">\n <Button\n size=\"sm\"\n className=\"text-nowrap \"\n onClick={() => handleSendReply()}>\n {t('btn_save_edits')}\n </Button>\n <Button\n variant=\"link\"\n size=\"sm\"\n className=\"text-nowrap btn-no-border ms-2 ms-md-0\"\n onClick={onCancel}>\n {t('btn_cancel')}\n </Button>\n </div>\n ) : (\n <Button\n size=\"sm\"\n className=\"text-nowrap ms-0 ms-md-2 mt-2 mt-md-0\"\n onClick={() => handleSendReply()}>\n {t('btn_add_comment')}\n </Button>\n )}\n </div>\n );\n};\n\nexport default memo(Index);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { memo } from 'react';\nimport { Button, Dropdown } from 'react-bootstrap';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\n\nimport classNames from 'classnames';\n\nimport { Icon, FormatTime } from '@/components';\n\nconst ActionBar = ({\n nickName,\n username,\n createdAt,\n isVote,\n voteCount = 0,\n memberActions,\n onReply,\n onVote,\n onAction,\n userStatus = '',\n}) => {\n const { t } = useTranslation('translation', { keyPrefix: 'comment' });\n\n return (\n <div className=\"d-flex justify-content-between flex-wrap small\">\n <div className=\"d-flex align-items-center flex-wrap link-secondary\">\n {userStatus !== 'deleted' ? (\n <Link\n to={`/users/${username}`}\n className=\"name-ellipsis\"\n style={{ maxWidth: '200px' }}>\n {nickName}\n </Link>\n ) : (\n <span>{nickName}</span>\n )}\n <span className=\"mx-1\">•</span>\n <FormatTime time={createdAt} className=\"me-3 flex-shrink-0\" />\n <Button\n title={t('tip_vote')}\n variant=\"link\"\n size=\"sm\"\n className={`flex-shrink-0 me-3 btn-no-border p-0 ${\n isVote ? '' : 'link-secondary'\n }`}\n onClick={onVote}>\n <Icon name=\"hand-thumbs-up-fill\" />\n {voteCount > 0 && <span className=\"ms-2\">{voteCount}</span>}\n </Button>\n <Button\n variant=\"link\"\n size=\"sm\"\n className=\"link-secondary m-0 p-0 btn-no-border\"\n onClick={onReply}>\n {t('btn_reply')}\n </Button>\n </div>\n <div className=\"align-items-center control-area d-none\">\n {memberActions.map((action, index) => {\n return (\n <Button\n key={action.name}\n variant=\"link\"\n size=\"sm\"\n className={classNames(\n 'link-secondary btn-no-border m-0 p-0',\n index > 0 && 'ms-3',\n )}\n onClick={() => onAction(action)}>\n {action.name}\n </Button>\n );\n })}\n </div>\n <Dropdown className=\"d-block d-md-none\">\n <Dropdown.Toggle\n as=\"div\"\n variant=\"success\"\n className=\"no-toggle\"\n id=\"dropdown-comment\">\n <Icon name=\"three-dots\" className=\"text-secondary\" />\n </Dropdown.Toggle>\n\n <Dropdown.Menu align=\"end\">\n {memberActions.map((action) => {\n return (\n <Dropdown.Item key={action.name} onClick={() => onAction(action)}>\n {action.name}\n </Dropdown.Item>\n );\n })}\n </Dropdown.Menu>\n </Dropdown>\n </div>\n );\n};\n\nexport default memo(ActionBar);\n","/*\r\n * Licensed to the Apache Software Foundation (ASF) under one\r\n * or more contributor license agreements. See the NOTICE file\r\n * distributed with this work for additional information\r\n * regarding copyright ownership. The ASF licenses this file\r\n * to you under the Apache License, Version 2.0 (the\r\n * \"License\"); you may not use this file except in compliance\r\n * with the License. You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing,\r\n * software distributed under the License is distributed on an\r\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n * KIND, either express or implied. See the License for the\r\n * specific language governing permissions and limitations\r\n * under the License.\r\n */\r\n\r\nimport { useState, memo } from 'react';\r\nimport { Button, Form } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport classNames from 'classnames';\r\n\r\nimport { TextArea, Mentions } from '@/components';\r\nimport { usePageUsers, usePromptWithUnload } from '@/hooks';\r\n\r\nconst Index = ({ userName, onSendReply, onCancel, mode }) => {\r\n const [value, setValue] = useState('');\r\n const pageUsers = usePageUsers();\r\n const { t } = useTranslation('translation', { keyPrefix: 'comment' });\r\n const [validationErrorMsg, setValidationErrorMsg] = useState('');\r\n\r\n usePromptWithUnload({\r\n when: Boolean(value),\r\n });\r\n\r\n const handleChange = (e) => {\r\n setValue(e.target.value);\r\n };\r\n const handleSelected = (val) => {\r\n setValue(val);\r\n };\r\n const handleSendReply = () => {\r\n onSendReply(value).catch((ex) => {\r\n if (ex.isError) {\r\n setValidationErrorMsg(ex.msg);\r\n }\r\n });\r\n };\r\n\r\n return (\r\n <div className=\"mb-2\">\r\n <div className=\"small mb-2\">\r\n {t('reply_to')} {userName}\r\n </div>\r\n <div className=\"d-flex mb-1 align-items-start flex-column flex-md-row\">\r\n <div className=\"w-100\">\r\n <div\r\n className={classNames('custom-form-control', {\r\n 'is-invalid': validationErrorMsg,\r\n })}>\r\n <Mentions\r\n pageUsers={pageUsers.getUsers()}\r\n onSelected={handleSelected}>\r\n <TextArea\r\n size=\"sm\"\r\n value={value}\r\n onChange={handleChange}\r\n isInvalid={validationErrorMsg !== ''}\r\n />\r\n </Mentions>\r\n <div className=\"form-text\">{t(`tip_${mode}`)}</div>\r\n </div>\r\n <Form.Control.Feedback type=\"invalid\">\r\n {validationErrorMsg}\r\n </Form.Control.Feedback>\r\n </div>\r\n <div className=\"d-flex flex-row flex-md-column ms-0 ms-md-2 mt-2 mt-md-0\">\r\n <Button\r\n size=\"sm\"\r\n className=\"text-nowrap\"\r\n onClick={() => handleSendReply()}>\r\n {t('btn_add_comment')}\r\n </Button>\r\n <Button\r\n variant=\"link\"\r\n size=\"sm\"\r\n className=\"text-nowrap btn-no-border ms-2 ms-md-0\"\r\n onClick={onCancel}>\r\n {t('btn_cancel')}\r\n </Button>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default memo(Index);\r\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { useState, useEffect } from 'react';\nimport { Button } from 'react-bootstrap';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\n\nimport classNames from 'classnames';\nimport unionBy from 'lodash/unionBy';\n\nimport * as Types from '@/common/interface';\nimport { Modal } from '@/components';\nimport { usePageUsers, useReportModal, useCaptchaModal } from '@/hooks';\nimport {\n matchedUsers,\n parseUserInfo,\n scrollToElementTop,\n bgFadeOut,\n} from '@/utils';\nimport { tryNormalLogged } from '@/utils/guard';\nimport { useCaptchaPlugin } from '@/utils/pluginKit';\nimport {\n useQueryComments,\n addComment,\n deleteComment,\n updateComment,\n postVote,\n} from '@/services';\nimport { commentReplyStore } from '@/stores';\nimport Reactions from '@/pages/Questions/Detail/components/Reactions';\n\nimport { Form, ActionBar, Reply } from './components';\n\nimport './index.scss';\n\nconst Comment = ({ objectId, mode, commentId }) => {\n const pageUsers = usePageUsers();\n const [pageIndex, setPageIndex] = useState(0);\n const [visibleComment, setVisibleComment] = useState(false);\n const { id: currentReplyId, update: updateCurrentReplyId } =\n commentReplyStore();\n const pageSize = pageIndex === 0 ? 3 : 15;\n const { data, mutate } = useQueryComments({\n object_id: objectId,\n comment_id: commentId,\n page: pageIndex,\n page_size: pageSize,\n });\n const [comments, setComments] = useState<any>([]);\n\n const reportModal = useReportModal();\n\n const addCaptcha = useCaptchaModal('comment');\n const editCaptcha = useCaptchaPlugin('edit');\n const dCaptcha = useCaptchaPlugin('delete');\n const vCaptcha = useCaptchaPlugin('vote');\n\n const { t } = useTranslation('translation', { keyPrefix: 'comment' });\n\n useEffect(() => {\n if (pageIndex === 0 && commentId && comments.length !== 0) {\n setTimeout(() => {\n const el = document.getElementById(commentId);\n scrollToElementTop(el);\n bgFadeOut(el);\n }, 100);\n }\n\n return () => {\n updateCurrentReplyId('');\n };\n }, [comments]);\n\n useEffect(() => {\n if (!data) {\n return;\n }\n if (data.count <= 3) {\n data.list.sort((a, b) => a.created_at - b.created_at);\n }\n if (pageIndex === 1 || pageIndex === 0) {\n setComments(data?.list);\n } else {\n setComments([...comments, ...data.list]);\n }\n const user: Types.PageUser[] = [];\n data.list.forEach((item) => {\n user.push({\n id: item.user_id,\n displayName: item.user_display_name,\n userName: item.username,\n });\n user.push({\n id: item.reply_comment_id,\n displayName: item.reply_user_display_name,\n userName: item.username,\n });\n });\n pageUsers.setUsers(user);\n }, [data]);\n\n const handleReply = (id) => {\n if (!tryNormalLogged(true)) {\n return;\n }\n comments.forEach((item) => {\n if (item.comment_id === id) {\n updateCurrentReplyId(id);\n }\n });\n };\n\n const handleEdit = (id) => {\n setComments(\n comments.map((item) => {\n if (item.comment_id === id) {\n item.showEdit = !item.showEdit;\n }\n return item;\n }),\n );\n };\n\n const submitUpdateComment = (params, item) => {\n const up = {\n ...params,\n comment_id: item.comment_id,\n captcha_code: undefined,\n captcha_id: undefined,\n };\n editCaptcha?.resolveCaptchaReq(up);\n\n return updateComment(up)\n .then(async (res) => {\n await editCaptcha?.close();\n setComments(\n comments.map((comment) => {\n if (comment.comment_id === item.comment_id) {\n comment.showEdit = false;\n comment.parsed_text = res.parsed_text;\n comment.original_text = res.original_text;\n }\n return comment;\n }),\n );\n })\n .catch((err) => {\n if (err.isError) {\n const captchaErr = editCaptcha?.handleCaptchaError(err.list);\n // If it is not a CAPTCHA error, leave it to the subsequent error handling logic to continue processing.\n if (!(captchaErr && err.list.length === 1)) {\n return Promise.reject(err);\n }\n }\n return Promise.resolve();\n });\n };\n\n const submitAddComment = (params, item) => {\n const req = {\n ...params,\n captcha_code: undefined,\n captcha_id: undefined,\n };\n addCaptcha?.resolveCaptchaReq(req);\n\n return addComment(req)\n .then(async (res) => {\n await addCaptcha?.close();\n if (item.type === 'reply') {\n const index = comments.findIndex(\n (comment) => comment.comment_id === item.comment_id,\n );\n updateCurrentReplyId('');\n comments.splice(index + 1, 0, res);\n setComments([...comments]);\n } else {\n setComments([\n ...comments.map((comment) => {\n if (comment.comment_id === item.comment_id) {\n updateCurrentReplyId('');\n }\n return comment;\n }),\n res,\n ]);\n }\n\n setVisibleComment(false);\n })\n .catch((ex) => {\n if (ex.isError) {\n const captchaErr = addCaptcha?.handleCaptchaError(ex.list);\n // If it is not a CAPTCHA error, leave it to the subsequent error handling logic to continue processing.\n if (!(captchaErr && ex.list.length === 1)) {\n return Promise.reject(ex);\n }\n }\n return Promise.resolve();\n });\n };\n\n const handleSendReply = (item) => {\n const users = matchedUsers(item.value);\n const userNames = unionBy(users.map((user) => user.userName));\n const commentMarkDown = parseUserInfo(item.value);\n\n const params = {\n object_id: objectId,\n original_text: commentMarkDown,\n mention_username_list: userNames,\n ...(item.type === 'reply'\n ? {\n reply_comment_id: item.comment_id,\n }\n : {}),\n };\n\n if (item.type === 'edit') {\n if (!editCaptcha) {\n return submitUpdateComment(params, item);\n }\n return editCaptcha.check(() => submitUpdateComment(params, item));\n }\n\n if (!addCaptcha) {\n return submitAddComment(params, item);\n }\n\n return addCaptcha.check(() => submitAddComment(params, item));\n };\n\n const submitDeleteComment = (id) => {\n const imgCode = { captcha_id: undefined, captcha_code: undefined };\n dCaptcha?.resolveCaptchaReq(imgCode);\n\n deleteComment(id, imgCode)\n .then(async () => {\n await dCaptcha?.close();\n if (pageIndex === 0) {\n mutate();\n }\n setComments(comments.filter((item) => item.comment_id !== id));\n })\n .catch((ex) => {\n if (ex.isError) {\n dCaptcha?.handleCaptchaError(ex.list);\n }\n });\n };\n\n const handleDelete = (id) => {\n Modal.confirm({\n title: t('title', { keyPrefix: 'delete' }),\n content: t('other', { keyPrefix: 'delete' }),\n confirmBtnVariant: 'danger',\n confirmText: t('delete', { keyPrefix: 'btns' }),\n onConfirm: () => {\n if (!dCaptcha) {\n submitDeleteComment(id);\n return;\n }\n dCaptcha.check(() => {\n submitDeleteComment(id);\n });\n },\n });\n };\n\n const submitVoteComment = (id, is_cancel) => {\n const imgCode: Types.ImgCodeReq = {\n captcha_id: undefined,\n captcha_code: undefined,\n };\n vCaptcha?.resolveCaptchaReq(imgCode);\n\n postVote(\n {\n object_id: id,\n is_cancel,\n ...imgCode,\n },\n 'up',\n )\n .then(async () => {\n await vCaptcha?.close();\n setComments(\n comments.map((item) => {\n if (item.comment_id === id) {\n item.vote_count = is_cancel\n ? item.vote_count - 1\n : item.vote_count + 1;\n item.is_vote = !is_cancel;\n }\n return item;\n }),\n );\n })\n .catch((ex) => {\n if (ex.isError) {\n vCaptcha?.handleCaptchaError(ex.list);\n }\n });\n };\n const handleVote = (id, is_cancel) => {\n if (!tryNormalLogged(true)) {\n return;\n }\n\n if (!vCaptcha) {\n submitVoteComment(id, is_cancel);\n return;\n }\n\n vCaptcha.check(() => {\n submitVoteComment(id, is_cancel);\n });\n };\n\n const handleAction = ({ action }, item) => {\n if (!tryNormalLogged(true)) {\n return;\n }\n if (action === 'report') {\n reportModal.onShow({\n id: item.comment_id,\n type: 'comment',\n action: 'flag',\n });\n } else if (action === 'delete') {\n handleDelete(item.comment_id);\n } else if (action === 'edit') {\n handleEdit(item.comment_id);\n }\n };\n\n const handleCancel = (id) => {\n setComments(\n comments.map((item) => {\n if (item.comment_id === id) {\n item.showEdit = false;\n updateCurrentReplyId('');\n }\n return item;\n }),\n );\n };\n\n const handleAddComment = () => {\n if (!tryNormalLogged(true)) {\n setVisibleComment(false);\n return;\n }\n\n setVisibleComment(!visibleComment);\n };\n\n return (\n <>\n <Reactions\n objectId={objectId}\n showAddCommentBtn={comments.length === 0}\n handleClickComment={handleAddComment}\n />\n <div\n className={classNames(\n 'comments-wrap',\n comments.length > 0 && 'bg-light px-3 py-2 rounded',\n )}>\n {comments.map((item) => {\n return (\n <div\n key={item.comment_id}\n id={item.comment_id}\n className=\"py-2 comment-item\">\n {item.showEdit ? (\n <Form\n className=\"mt-2\"\n value={item.original_text}\n type=\"edit\"\n mode={mode}\n onSendReply={(value) =>\n handleSendReply({ ...item, value, type: 'edit' })\n }\n onCancel={() => handleCancel(item.comment_id)}\n />\n ) : (\n <div className=\"d-block\">\n {item.reply_user_display_name && (\n <Link to=\".\" className=\"small me-1 text-nowrap\">\n @{item.reply_user_display_name}\n </Link>\n )}\n\n <div\n className=\"fmt small text-break text-wrap\"\n dangerouslySetInnerHTML={{ __html: item.parsed_text }}\n />\n </div>\n )}\n\n {currentReplyId === item.comment_id ? (\n <Reply\n userName={item.user_display_name}\n mode={mode}\n onSendReply={(value) =>\n handleSendReply({ ...item, value, type: 'reply' })\n }\n onCancel={() => handleCancel(item.comment_id)}\n />\n ) : null}\n {item.showEdit || currentReplyId === item.comment_id ? null : (\n <ActionBar\n nickName={item.user_display_name}\n username={item.username}\n createdAt={item.created_at}\n voteCount={item.vote_count}\n isVote={item.is_vote}\n memberActions={item.member_actions}\n userStatus={item.user_status}\n onReply={() => {\n handleReply(item.comment_id);\n }}\n onAction={(action) => handleAction(action, item)}\n onVote={(e) => {\n e.preventDefault();\n handleVote(item.comment_id, item.is_vote);\n }}\n />\n )}\n </div>\n );\n })}\n\n <div className={classNames(comments.length > 0 && 'py-2')}>\n {comments.length > 0 && (\n <Button\n variant=\"link\"\n className=\"p-0 btn-no-border\"\n size=\"sm\"\n onClick={handleAddComment}>\n {t('btn_add_comment')}\n </Button>\n )}\n {data &&\n (pageIndex || 1) < Math.ceil((data?.count || 0) / pageSize) && (\n <Button\n variant=\"link\"\n size=\"sm\"\n className=\"p-0 ms-3 btn-no-border\"\n onClick={() => {\n setPageIndex(pageIndex + 1);\n }}>\n {t('show_more', {\n count:\n data.count - (pageIndex === 0 ? 3 : pageIndex * pageSize),\n })}\n </Button>\n )}\n </div>\n\n {visibleComment && (\n <Form\n mode={mode}\n className={classNames(\n comments.length <= 0 ? 'mt-3' : 'mt-2',\n comments.length <= 0 && 'bg-light p-3 rounded',\n )}\n onSendReply={(value) => handleSendReply({ value, type: 'comment' })}\n onCancel={() => setVisibleComment(!visibleComment)}\n />\n )}\n </div>\n </>\n );\n};\n\nexport default Comment;\n","/*\r\n * Licensed to the Apache Software Foundation (ASF) under one\r\n * or more contributor license agreements. See the NOTICE file\r\n * distributed with this work for additional information\r\n * regarding copyright ownership. The ASF licenses this file\r\n * to you under the Apache License, Version 2.0 (the\r\n * \"License\"); you may not use this file except in compliance\r\n * with the License. You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing,\r\n * software distributed under the License is distributed on an\r\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n * KIND, either express or implied. See the License for the\r\n * specific language governing permissions and limitations\r\n * under the License.\r\n */\r\n\r\nimport { FC, useRef, useEffect, memo } from 'react';\r\nimport { FormControl, FormControlProps } from 'react-bootstrap';\r\n\r\nconst TextArea: FC<\r\n FormControlProps & { rows?: number; autoFocus?: boolean }\r\n> = ({\r\n value,\r\n onChange,\r\n size,\r\n rows = 1,\r\n autoFocus = true,\r\n isInvalid,\r\n ...rest\r\n}) => {\r\n const ref = useRef<HTMLTextAreaElement>(null);\r\n\r\n const autoGrow = () => {\r\n if (ref.current) {\r\n ref.current.style.height = 'auto';\r\n ref.current.style.height = `${ref.current.scrollHeight}px`;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (ref.current && value) {\r\n autoGrow();\r\n }\r\n }, [ref, value]);\r\n\r\n return (\r\n <FormControl\r\n as=\"textarea\"\r\n className=\"resize-none font-monospace\"\r\n rows={rows}\r\n size={size}\r\n value={value}\r\n onChange={onChange}\r\n autoFocus={autoFocus}\r\n ref={ref}\r\n onInput={autoGrow}\r\n isInvalid={isInvalid}\r\n {...rest}\r\n />\r\n );\r\n};\r\nexport default memo(TextArea);\r\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React, { useEffect, useRef, useState, FC } from 'react';\nimport { Dropdown } from 'react-bootstrap';\n\nimport { useSearchUserStaff } from '@/services';\nimport * as Types from '@/common/interface';\n\nimport './index.scss';\n\ninterface IProps {\n children: React.ReactNode;\n pageUsers;\n onSelected: (val: string) => void;\n}\n\nconst MAX_RECODE = 5;\n\nconst Mentions: FC<IProps> = ({ children, pageUsers, onSelected }) => {\n const menuRef = useRef<HTMLDivElement>(null);\n const dropdownRef = useRef<HTMLDivElement>(null);\n const [val, setValue] = useState('');\n const [users, setUsers] = useState<Types.PageUser[]>([]);\n const [cursor, setCursor] = useState(0);\n const [isRequested, setRequestedState] = useState(false);\n const { data: staffUserList = [] } = useSearchUserStaff(val);\n const mapStaffUsers =\n staffUserList\n ?.map((item) => ({\n displayName: item.display_name,\n userName: item.username,\n }))\n ?.filter(\n (item) =>\n users.findIndex((user) => user.userName === item.userName) < 0,\n ) || [];\n\n const searchUser = () => {\n const element = dropdownRef.current?.children[0];\n const { value, selectionStart = 0 } = element as HTMLTextAreaElement;\n\n if (value.indexOf('@') < 0) {\n setValue('');\n }\n if (!selectionStart) {\n return;\n }\n\n const str = value.substring(\n value.substring(0, selectionStart).lastIndexOf('@'),\n selectionStart,\n );\n\n if (str.substring(str.lastIndexOf(' '), selectionStart).indexOf('@') < 0) {\n return;\n }\n\n setValue(str.substring(1));\n\n if (!str.substring(1)) {\n return;\n }\n if (isRequested) {\n return;\n }\n setRequestedState(true);\n };\n\n useEffect(() => {\n const element = dropdownRef.current?.children[0] as HTMLTextAreaElement;\n\n if (element) {\n element.addEventListener('input', searchUser);\n }\n return () => {\n element.removeEventListener('input', searchUser);\n };\n }, [dropdownRef]);\n\n useEffect(() => {\n setUsers(pageUsers);\n }, [pageUsers, val]);\n\n const handleClick = (item) => {\n const element = dropdownRef.current?.children[0] as HTMLTextAreaElement;\n\n const { value, selectionStart = 0 } = element;\n\n if (!selectionStart) {\n return;\n }\n\n const text = `@${item?.userName} `;\n onSelected(\n `${value.substring(\n 0,\n value.substring(0, selectionStart).lastIndexOf('@'),\n )}${text}${value.substring(selectionStart)}`,\n );\n setUsers([]);\n setValue('');\n };\n const filterData = val\n ? [...users, ...mapStaffUsers].filter(\n (item) =>\n item.displayName?.indexOf(val) === 0 ||\n item.userName?.indexOf(val) === 0,\n )\n : [];\n const handleKeyDown = (e) => {\n const { keyCode } = e;\n\n if (keyCode === 38 && cursor > 0) {\n e.preventDefault();\n setCursor(cursor - 1);\n }\n if (keyCode === 40 && cursor < filterData.length - 1) {\n e.preventDefault();\n\n setCursor(cursor + 1);\n }\n if (keyCode === 13 && cursor > -1 && cursor <= filterData.length - 1) {\n e.preventDefault();\n\n const item = filterData[cursor];\n\n handleClick(item);\n setCursor(0);\n }\n };\n\n return (\n <Dropdown\n ref={dropdownRef}\n className=\"mentions-wrap\"\n show={filterData.length > 0}\n onKeyDown={handleKeyDown}>\n {children}\n <Dropdown.Menu\n className={filterData.length > 0 ? 'visible' : 'invisible'}\n ref={menuRef}>\n {filterData\n .filter((_, index) => index < MAX_RECODE)\n .map((item, index) => {\n return (\n <Dropdown.Item\n className={`${cursor === index ? 'bg-gray-200' : ''}`}\n key={item.displayName}\n onClick={() => handleClick(item)}>\n <span className=\"link-dark me-1\">{item.displayName}</span>\n <small className=\"link-secondary\">@{item.userName}</small>\n </Dropdown.Item>\n );\n })}\n </Dropdown.Menu>\n </Dropdown>\n );\n};\n\nexport default Mentions;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { FC, memo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport classNames from 'classnames';\nimport dayjs from 'dayjs';\n\ninterface Props {\n time: number;\n className?: string;\n preFix?: string;\n}\n\nconst Index: FC<Props> = ({ time, preFix, className }) => {\n const { t } = useTranslation();\n const formatTime = (from) => {\n const now = Math.floor(dayjs().valueOf() / 1000);\n const between = now > from ? now - from : 0;\n\n if (between <= 1) {\n return t('dates.now');\n }\n if (between > 1 && between < 60) {\n return t('dates.x_seconds_ago', { count: between });\n }\n\n if (between >= 60 && between < 3600) {\n const min = Math.floor(between / 60);\n return t('dates.x_minutes_ago', { count: min });\n }\n if (between >= 3600 && between < 3600 * 24) {\n const h = Math.floor(between / 3600);\n return t('dates.x_hours_ago', { count: h });\n }\n\n if (\n between >= 3600 * 24 &&\n between < 3600 * 24 * 366 &&\n dayjs.unix(from).format('YYYY') === dayjs.unix(now).format('YYYY')\n ) {\n return dayjs.unix(from).tz().format(t('dates.long_date'));\n }\n\n return dayjs.unix(from).tz().format(t('dates.long_date_with_year'));\n };\n\n if (!time) {\n return null;\n }\n\n return (\n <time\n className={classNames('', className)}\n dateTime={dayjs.unix(time).tz().toISOString()}\n title={dayjs.unix(time).tz().format(t('dates.long_date_with_time'))}>\n {preFix ? `${preFix} ` : ''}\n {formatTime(time)}\n </time>\n );\n};\n\nexport default memo(Index);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { FC, memo } from 'react';\nimport { Toast } from 'react-bootstrap';\n\ninterface IProps {\n /** main content */\n msg: string;\n /** theme color */\n variant?: 'warning' | 'success' | 'danger';\n /** callback click close */\n onClose: () => void;\n}\n\nconst Index: FC<IProps> = ({ msg, variant = 'warning', onClose }) => {\n return (\n <div\n className=\"d-flex justify-content-center\"\n style={{\n position: 'fixed',\n top: '78px',\n left: 0,\n right: 0,\n margin: 'auto',\n zIndex: 5,\n }}>\n <Toast\n className=\"align-items-center border-0\"\n delay={5000}\n bg={variant}\n show={Boolean(msg)}\n autohide\n onClose={onClose}>\n <div className=\"d-flex\">\n <Toast.Body\n dangerouslySetInnerHTML={{ __html: msg }}\n className={`${variant !== 'warning' ? 'text-white' : ''}`}\n />\n <button\n className={`btn-close me-2 m-auto ${\n variant !== 'warning' ? 'btn-close-white' : ''\n }`}\n onClick={onClose}\n data-bs-dismiss=\"toast\"\n aria-label=\"Close\"\n />\n </div>\n </Toast>\n </div>\n );\n};\n\nexport default memo(Index);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React, { FC, useEffect, useState } from 'react';\nimport { Accordion, Nav } from 'react-bootstrap';\nimport { useTranslation } from 'react-i18next';\nimport { useNavigate, useMatch, NavLink } from 'react-router-dom';\n\nimport classNames from 'classnames';\n\nimport { floppyNavigation } from '@/utils';\nimport { Icon } from '@/components';\nimport './index.css';\n\nfunction MenuNode({\n menu,\n callback,\n activeKey,\n expanding = false,\n path = '/',\n}) {\n const { t } = useTranslation('translation', { keyPrefix: 'nav_menus' });\n const isLeaf = !menu.children.length;\n const href = isLeaf ? `${path}${menu.path}` : '#';\n\n return (\n <Nav.Item key={menu.path} className=\"w-100\">\n {isLeaf ? (\n <Nav.Link\n eventKey={menu.path}\n as={NavLink}\n to={href}\n onClick={(evt) => {\n callback(evt, menu, href, isLeaf);\n }}\n className={classNames(\n 'text-nowrap d-flex flex-nowrap align-items-center w-100',\n { expanding, 'link-dark': activeKey !== menu.path },\n )}>\n <span className=\"me-auto text-truncate\">\n {menu.displayName ? menu.displayName : t(menu.name)}\n </span>\n {menu.badgeContent ? (\n <span className=\"badge text-bg-dark\">{menu.badgeContent}</span>\n ) : null}\n {!isLeaf && (\n <Icon className=\"collapse-indicator\" name=\"chevron-right\" />\n )}\n </Nav.Link>\n ) : (\n <Nav.Link\n eventKey={menu.path}\n as=\"button\"\n href={href}\n onClick={(evt) => {\n callback(evt, menu, href, isLeaf);\n }}\n className={classNames(\n 'text-nowrap d-flex flex-nowrap align-items-center w-100',\n { expanding, 'link-dark': activeKey !== menu.path },\n )}>\n <span className=\"me-auto text-truncate\">\n {menu.displayName ? menu.displayName : t(menu.name)}\n </span>\n {menu.badgeContent ? (\n <span className=\"badge text-bg-dark\">{menu.badgeContent}</span>\n ) : null}\n {!isLeaf && (\n <Icon className=\"collapse-indicator\" name=\"chevron-right\" />\n )}\n </Nav.Link>\n )}\n\n {menu.children.length ? (\n <Accordion.Collapse eventKey={menu.path} className=\"ms-3\">\n <>\n {menu.children.map((leaf) => {\n return (\n <MenuNode\n menu={leaf}\n callback={callback}\n activeKey={activeKey}\n path={path}\n key={leaf.path}\n />\n );\n })}\n </>\n </Accordion.Collapse>\n ) : null}\n </Nav.Item>\n );\n}\n\ninterface AccordionProps {\n menus: any[];\n path?: string;\n}\nconst AccordionNav: FC<AccordionProps> = ({ menus = [], path = '/' }) => {\n const navigate = useNavigate();\n const pathMatch = useMatch(`${path}*`);\n // auto set menu fields\n menus.forEach((m) => {\n if (!m.path) {\n m.path = m.name;\n }\n if (!Array.isArray(m.children)) {\n m.children = [];\n }\n m.children.forEach((sm) => {\n if (!sm.path) {\n sm.path = sm.name;\n }\n if (!Array.isArray(sm.children)) {\n sm.children = [];\n }\n });\n });\n\n const splat = pathMatch && pathMatch.params['*'];\n let activeKey = menus[0].path;\n if (splat) {\n activeKey = splat;\n }\n const getOpenKey = () => {\n let openKey = '';\n menus.forEach((li) => {\n if (li.children.length) {\n const matchedChild = li.children.find((el) => {\n return el.path === activeKey;\n });\n if (matchedChild) {\n openKey = li.path;\n }\n }\n });\n return openKey;\n };\n\n const [openKey, setOpenKey] = useState(getOpenKey());\n const menuClick = (evt, menu, href, isLeaf) => {\n evt.stopPropagation();\n if (isLeaf) {\n if (floppyNavigation.shouldProcessLinkClick(evt)) {\n evt.preventDefault();\n navigate(href);\n }\n } else {\n setOpenKey(openKey === menu.path ? '' : menu.path);\n }\n };\n useEffect(() => {\n setOpenKey(getOpenKey());\n }, [activeKey, menus]);\n return (\n <Accordion activeKey={openKey} flush>\n <Nav variant=\"pills\" className=\"flex-column\" activeKey={activeKey}>\n {menus.map((li) => {\n return (\n <MenuNode\n menu={li}\n path={path}\n callback={menuClick}\n activeKey={activeKey}\n expanding={openKey === li.path}\n key={li.path}\n />\n );\n })}\n </Nav>\n </Accordion>\n );\n};\n\nexport default AccordionNav;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { FC, memo, ReactNode } from 'react';\nimport { Trans } from 'react-i18next';\n\nconst Index: FC<{ children?: ReactNode }> = ({ children }) => {\n return (\n <div className=\"text-center py-5\">\n {children || (\n <Trans i18nKey=\"personal.list_empty\">\n We couldn't find anything. <br /> Try different or less specific\n keywords.\n </Trans>\n )}\n </div>\n );\n};\n\nexport default memo(Index);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { memo, FC } from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { Avatar } from '@/components';\nimport { formatCount } from '@/utils';\n\ninterface Props {\n data: any;\n showAvatar?: boolean;\n avatarSize?: string;\n showReputation?: boolean;\n avatarSearchStr?: string;\n className?: string;\n avatarClass?: string;\n nameMaxWidth?: string;\n}\n\nconst Index: FC<Props> = ({\n data,\n showAvatar = true,\n avatarClass = '',\n avatarSize = '20px',\n className = 'small',\n avatarSearchStr = 's=48',\n showReputation = true,\n nameMaxWidth = '300px',\n}) => {\n return (\n <div className={`d-flex align-items-center text-secondary ${className}`}>\n {data?.status !== 'deleted' ? (\n <Link\n to={`/users/${data?.username}`}\n onClick={(e) => {\n e.stopPropagation();\n }}\n className=\"d-flex align-items-center\">\n {showAvatar && (\n <Avatar\n avatar={data?.avatar}\n size={avatarSize}\n className={`me-1 ${avatarClass}`}\n searchStr={avatarSearchStr}\n alt={data?.display_name}\n />\n )}\n <span\n className=\"me-1 name-ellipsis\"\n style={{ maxWidth: nameMaxWidth }}>\n {data?.display_name}\n </span>\n </Link>\n ) : (\n <>\n {showAvatar && (\n <Avatar\n avatar={data?.avatar}\n size={avatarSize}\n className={`me-1 ${avatarClass}`}\n searchStr={avatarSearchStr}\n alt={data?.display_name}\n />\n )}\n <span className=\"me-1 name-ellipsis\">{data?.display_name}</span>\n </>\n )}\n\n {showReputation && (\n <span className=\"fw-bold\" title=\"Reputation\">\n {formatCount(data?.rank)}\n </span>\n )}\n </div>\n );\n};\n\nexport default memo(Index);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { FC, memo, useState } from 'react';\nimport { Card, Button } from 'react-bootstrap';\nimport { useTranslation } from 'react-i18next';\n\nimport { TagSelector, Tag } from '@/components';\nimport { tryLoggedAndActivated } from '@/utils/guard';\nimport { useFollowingTags, followTags } from '@/services';\n\nconst Index: FC = () => {\n const { t } = useTranslation('translation', { keyPrefix: 'question' });\n const [isEdit, setEditState] = useState(false);\n const { data: followingTags, mutate } = useFollowingTags();\n\n const newTags: any = followingTags?.map((item) => {\n if (item.slug_name) {\n return item.slug_name;\n }\n return item;\n });\n\n const handleFollowTags = () => {\n followTags({\n slug_name_list: newTags,\n });\n setEditState(false);\n };\n\n const handleTagsChange = (value) => {\n mutate([...value], {\n revalidate: false,\n });\n };\n\n if (!tryLoggedAndActivated().ok) {\n return null;\n }\n return isEdit ? (\n <Card className=\"mb-4\">\n <Card.Header className=\"text-nowrap d-flex justify-content-between\">\n {t('following_tags')}\n <Button\n variant=\"link\"\n className=\"p-0 m-0 btn-no-border\"\n onClick={handleFollowTags}>\n {t('save')}\n </Button>\n </Card.Header>\n <Card.Body>\n <TagSelector\n value={followingTags}\n onChange={handleTagsChange}\n hiddenDescription\n hiddenCreateBtn\n autoFocus\n />\n </Card.Body>\n </Card>\n ) : (\n <Card className=\"mb-4\">\n <Card.Header className=\"text-nowrap d-flex justify-content-between text-capitalize\">\n {t('following_tags')}\n <Button\n variant=\"link\"\n className=\"p-0 btn-no-border text-capitalize\"\n onClick={() => setEditState(true)}>\n {t('edit')}\n </Button>\n </Card.Header>\n <Card.Body>\n {followingTags?.length ? (\n <div className=\"m-n1\">\n {followingTags.map((item) => {\n const slugName = item?.slug_name;\n return <Tag key={slugName} className=\"m-1\" data={item} />;\n })}\n </div>\n ) : (\n <>\n <div className=\"text-muted\">{t('follow_tag_tip')}</div>\n <Button\n size=\"sm\"\n className=\"mt-3\"\n variant=\"outline-primary\"\n onClick={() => setEditState(true)}>\n {t('follow_a_tag')}\n </Button>\n </>\n )}\n </Card.Body>\n </Card>\n );\n};\n\nexport default memo(Index);\n","import PropTypes from 'prop-types';\nconst alignDirection = PropTypes.oneOf(['start', 'end']);\nexport const alignPropType = PropTypes.oneOfType([alignDirection, PropTypes.shape({\n sm: alignDirection\n}), PropTypes.shape({\n md: alignDirection\n}), PropTypes.shape({\n lg: alignDirection\n}), PropTypes.shape({\n xl: alignDirection\n}), PropTypes.shape({\n xxl: alignDirection\n}), PropTypes.object]);","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport Dropdown from './Dropdown';\nimport DropdownToggle from './DropdownToggle';\nimport DropdownMenu from './DropdownMenu';\nimport { alignPropType } from './types';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst propTypes = {\n /**\n * An html id attribute for the Toggle button, necessary for assistive technologies, such as screen readers.\n * @type {string}\n */\n id: PropTypes.string,\n /** An `href` passed to the Toggle component */\n href: PropTypes.string,\n /** An `onClick` handler passed to the Toggle component */\n onClick: PropTypes.func,\n /** The content of the non-toggle Button. */\n title: PropTypes.node.isRequired,\n /** Disables both Buttons */\n disabled: PropTypes.bool,\n /**\n * Aligns the dropdown menu.\n *\n * _see [DropdownMenu](#dropdown-menu-props) for more details_\n *\n * @type {\"start\"|\"end\"|{ sm: \"start\"|\"end\" }|{ md: \"start\"|\"end\" }|{ lg: \"start\"|\"end\" }|{ xl: \"start\"|\"end\"}|{ xxl: \"start\"|\"end\"} }\n */\n align: alignPropType,\n /** An ARIA accessible role applied to the Menu component. When set to 'menu', The dropdown */\n menuRole: PropTypes.string,\n /** Whether to render the dropdown menu in the DOM before the first time it is shown */\n renderMenuOnMount: PropTypes.bool,\n /**\n * Which event when fired outside the component will cause it to be closed.\n *\n * _see [DropdownMenu](#dropdown-menu-props) for more details_\n */\n rootCloseEvent: PropTypes.string,\n /**\n * Menu color variant.\n *\n * Omitting this will use the default light color.\n */\n menuVariant: PropTypes.oneOf(['dark']),\n /**\n * Allow Dropdown to flip in case of an overlapping on the reference element. For more information refer to\n * Popper.js's flip [docs](https://popper.js.org/docs/v2/modifiers/flip/).\n *\n */\n flip: PropTypes.bool,\n /** @ignore */\n bsPrefix: PropTypes.string,\n /** @ignore */\n variant: PropTypes.string,\n /** @ignore */\n size: PropTypes.string\n};\n\n/**\n * A convenience component for simple or general use dropdowns. Renders a `Button` toggle and all `children`\n * are passed directly to the default `Dropdown.Menu`. This component accepts all of\n * [`Dropdown`'s props](#dropdown-props).\n *\n * _All unknown props are passed through to the `Dropdown` component._ Only\n * the Button `variant`, `size` and `bsPrefix` props are passed to the toggle,\n * along with menu-related props are passed to the `Dropdown.Menu`\n */\nconst DropdownButton = /*#__PURE__*/React.forwardRef(({\n title,\n children,\n bsPrefix,\n rootCloseEvent,\n variant,\n size,\n menuRole,\n renderMenuOnMount,\n disabled,\n href,\n id,\n menuVariant,\n flip,\n ...props\n}, ref) => /*#__PURE__*/_jsxs(Dropdown, {\n ref: ref,\n ...props,\n children: [/*#__PURE__*/_jsx(DropdownToggle, {\n id: id,\n href: href,\n size: size,\n variant: variant,\n disabled: disabled,\n childBsPrefix: bsPrefix,\n children: title\n }), /*#__PURE__*/_jsx(DropdownMenu, {\n role: menuRole,\n renderOnMount: renderMenuOnMount,\n rootCloseEvent: rootCloseEvent,\n variant: menuVariant,\n flip: flip,\n children: children\n })]\n}));\nDropdownButton.displayName = 'DropdownButton';\nDropdownButton.propTypes = propTypes;\nexport default DropdownButton;","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { FC, memo } from 'react';\nimport { ButtonGroup, Button, DropdownButton, Dropdown } from 'react-bootstrap';\nimport { useSearchParams, useNavigate } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n\nimport classNames from 'classnames';\n\nimport { REACT_BASE_PATH } from '@/router/alias';\nimport { floppyNavigation } from '@/utils';\n\nimport './index.scss';\n\ninterface Props {\n data;\n i18nKeyPrefix: string;\n currentSort: string;\n sortKey?: string;\n className?: string;\n pathname?: string;\n wrapClassName?: string;\n maxBtnCount?: number;\n}\nconst Index: FC<Props> = ({\n data = [],\n currentSort = '',\n sortKey = 'order',\n i18nKeyPrefix = '',\n className = '',\n pathname = '',\n wrapClassName = '',\n maxBtnCount = 3,\n}) => {\n const [searchParams, setUrlSearchParams] = useSearchParams();\n const navigate = useNavigate();\n\n const { t } = useTranslation('translation', {\n keyPrefix: i18nKeyPrefix,\n });\n\n const handleParams = (order): string => {\n searchParams.delete('page');\n searchParams.set(sortKey, order);\n const searchStr = searchParams.toString();\n return `?${searchStr}`;\n };\n\n const handleClick = (e, type) => {\n const str = handleParams(type);\n if (floppyNavigation.shouldProcessLinkClick(e)) {\n e.preventDefault();\n if (pathname) {\n navigate(`${pathname}${str}`);\n } else {\n setUrlSearchParams(str);\n }\n }\n };\n const moreBtnData = data.length > 4 ? data.slice(maxBtnCount) : [];\n const normalBtnData = data.length > 4 ? data.slice(0, maxBtnCount) : data;\n const currentBtn = moreBtnData.find((btn) => {\n return (typeof btn === 'string' ? btn : btn.name) === currentSort;\n });\n\n return (\n <>\n <ButtonGroup size=\"sm\" className={classNames('md-show', wrapClassName)}>\n {normalBtnData.map((btn) => {\n const key = typeof btn === 'string' ? btn : btn.sort;\n const name = typeof btn === 'string' ? btn : btn.name;\n return (\n <Button\n key={key}\n variant=\"outline-secondary\"\n active={currentSort === name}\n className={classNames('text-capitalize fit-content', className)}\n href={\n pathname\n ? `${REACT_BASE_PATH}${pathname}${handleParams(key)}`\n : handleParams(key)\n }\n onClick={(evt) => handleClick(evt, key)}>\n {t(name)}\n </Button>\n );\n })}\n {moreBtnData.length > 0 && (\n <DropdownButton\n size=\"sm\"\n variant={currentBtn ? 'secondary' : 'outline-secondary'}\n as={ButtonGroup}\n title={currentBtn ? t(currentSort) : t('more')}>\n {moreBtnData.map((btn) => {\n const key = typeof btn === 'string' ? btn : btn.sort;\n const name = typeof btn === 'string' ? btn : btn.name;\n return (\n <Dropdown.Item\n as=\"a\"\n key={key}\n active={currentSort === name}\n className={classNames('text-capitalize', className)}\n href={\n pathname\n ? `${REACT_BASE_PATH}${pathname}${handleParams(key)}`\n : handleParams(key)\n }\n onClick={(evt) => handleClick(evt, key)}>\n {t(name)}\n </Dropdown.Item>\n );\n })}\n </DropdownButton>\n )}\n </ButtonGroup>\n <DropdownButton\n size=\"sm\"\n variant=\"outline-secondary\"\n className={classNames('md-hide', wrapClassName)}\n title={t(currentSort)}>\n {data.map((btn) => {\n const key = typeof btn === 'string' ? btn : btn.sort;\n const name = typeof btn === 'string' ? btn : btn.name;\n return (\n <Dropdown.Item\n as=\"a\"\n key={key}\n active={currentSort === name}\n className={classNames('text-capitalize', className)}\n href={\n pathname\n ? `${REACT_BASE_PATH}${pathname}${handleParams(key)}`\n : handleParams(key)\n }\n onClick={(evt) => handleClick(evt, key)}>\n {t(name)}\n </Dropdown.Item>\n );\n })}\n </DropdownButton>\n </>\n );\n};\n\nexport default memo(Index);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { FC, memo } from 'react';\n\nimport classnames from 'classnames';\n\nimport { Tag } from '@/components';\nimport { diffText } from '@/utils';\n\ninterface Props {\n objectType: string | 'question' | 'answer' | 'tag';\n newData: Record<string, any>;\n oldData?: Record<string, any>;\n className?: string;\n opts?: Partial<{\n showTitle: boolean;\n showTagUrlSlug: boolean;\n }>;\n}\n\nconst Index: FC<Props> = ({\n objectType,\n newData,\n oldData,\n className = '',\n opts = {\n showTitle: true,\n showTagUrlSlug: true,\n },\n}) => {\n if (!newData) return null;\n\n let tag = newData.tags;\n if (objectType === 'question' && oldData?.tags) {\n const addTags = newData.tags.filter(\n (c) => !oldData?.tags?.find((p) => p.slug_name === c.slug_name),\n );\n\n let deleteTags = oldData?.tags\n .filter((c) => !newData?.tags.find((p) => p.slug_name === c.slug_name))\n .map((v) => ({ ...v, state: 'delete' }));\n\n deleteTags = deleteTags?.map((v) => {\n const index = oldData?.tags?.findIndex(\n (c) => c.slug_name === v.slug_name,\n );\n return {\n ...v,\n pre_index: index,\n };\n });\n\n tag = newData.tags.map((item) => {\n const find = addTags.find((c) => c.slug_name === item.slug_name);\n if (find) {\n return {\n ...find,\n state: 'add',\n };\n }\n return item;\n });\n\n deleteTags.forEach((v) => {\n tag.splice(v.pre_index, 0, v);\n });\n }\n\n return (\n <div className={className}>\n {objectType !== 'answer' && opts?.showTitle && (\n <h5\n dangerouslySetInnerHTML={{\n __html: diffText(\n newData.title?.replace(/</gi, '<'),\n oldData?.title?.replace(/</gi, '<'),\n ),\n }}\n className=\"mb-3\"\n />\n )}\n {objectType === 'question' && (\n <div className=\"mb-4\">\n {tag?.map((item) => {\n return (\n <Tag\n key={item.slug_name}\n className=\"me-1\"\n data={item}\n textClassName={`d-inline-block review-text-${item.state}`}\n />\n );\n })}\n </div>\n )}\n {objectType === 'tag' && opts?.showTagUrlSlug && (\n <div\n className={classnames(\n 'small font-monospace',\n newData.original_text && 'mb-4',\n )}\n dangerouslySetInnerHTML={{\n __html: `/tags/${\n newData?.main_tag_slug_name\n ? diffText(\n newData.main_tag_slug_name,\n oldData?.main_tag_slug_name,\n )\n : diffText(newData.slug_name, oldData?.slug_name)\n }`,\n }}\n />\n )}\n <div\n dangerouslySetInnerHTML={{\n __html: diffText(newData.original_text, oldData?.original_text),\n }}\n className=\"pre-line text-break font-monospace small\"\n />\n </div>\n );\n};\n\nexport default memo(Index);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { FC, memo, useEffect } from 'react';\n\nimport { customizeStore } from '@/stores';\n\nconst CUSTOM_MARK_HEAD = 'customize_head';\nconst CUSTOM_MARK_HEADER = 'customize_header';\nconst CUSTOM_MARK_FOOTER = 'customize_footer';\n\nconst makeMarker = (mark) => {\n return `<!--${mark}-->`;\n};\n\nconst ActivateScriptNodes = (el, part) => {\n let startMarkNode;\n const scriptList: HTMLScriptElement[] = [];\n const { childNodes } = el;\n for (let i = 0; i < childNodes.length; i += 1) {\n const node = childNodes[i];\n if (node.nodeType === 8 && node.nodeValue === part) {\n if (!startMarkNode) {\n startMarkNode = node;\n } else {\n // this is the endMarkNode\n break;\n }\n }\n if (\n startMarkNode &&\n node.nodeType === 1 &&\n node.nodeName.toLowerCase() === 'script'\n ) {\n scriptList.push(node);\n }\n }\n scriptList?.forEach((so) => {\n const script = document.createElement('script');\n script.text = `(() => {${so.text}})();`;\n for (let i = 0; i < so.attributes.length; i += 1) {\n const attr = so.attributes[i];\n script.setAttribute(attr.name, attr.value);\n }\n el.replaceChild(script, so);\n });\n};\n\ntype pos = 'afterbegin' | 'beforeend';\nconst renderCustomArea = (el, part, pos: pos, content: string = '') => {\n let startMarkNode;\n let endMarkNode;\n const { childNodes } = el;\n for (let i = 0; i < childNodes.length; i += 1) {\n const node = childNodes[i];\n if (node.nodeType === 8 && node.nodeValue === part) {\n if (!startMarkNode) {\n startMarkNode = node;\n } else {\n endMarkNode = node;\n break;\n }\n }\n }\n\n if (startMarkNode && endMarkNode) {\n while (\n startMarkNode.nextSibling &&\n startMarkNode.nextSibling !== endMarkNode\n ) {\n el.removeChild(startMarkNode.nextSibling);\n }\n }\n if (startMarkNode) {\n el.removeChild(startMarkNode);\n }\n if (endMarkNode) {\n el.removeChild(endMarkNode);\n }\n el.insertAdjacentHTML(pos, makeMarker(part));\n el.insertAdjacentHTML(pos, content);\n el.insertAdjacentHTML(pos, makeMarker(part));\n ActivateScriptNodes(el, part);\n};\nconst handleCustomHead = (content) => {\n const el = document.head;\n renderCustomArea(el, CUSTOM_MARK_HEAD, 'beforeend', content);\n};\n\nconst handleCustomHeader = (content) => {\n const el = document.body;\n renderCustomArea(el, CUSTOM_MARK_HEADER, 'afterbegin', content);\n};\n\nconst handleCustomFooter = (content) => {\n const el = document.body;\n renderCustomArea(el, CUSTOM_MARK_FOOTER, 'beforeend', content);\n};\n\nconst Index: FC = () => {\n const { custom_head, custom_header, custom_footer } = customizeStore(\n (state) => state,\n );\n useEffect(() => {\n const isSeo = document.querySelector('meta[name=\"go-template\"]');\n if (!isSeo) {\n setTimeout(() => {\n handleCustomHead(custom_head);\n }, 1000);\n handleCustomHeader(custom_header);\n handleCustomFooter(custom_footer);\n }\n }, [custom_head, custom_header, custom_footer]);\n return null;\n};\n\nexport default memo(Index);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { FC, useLayoutEffect } from 'react';\nimport { Helmet } from 'react-helmet-async';\n\nimport Color from 'color';\n\nimport { shiftColor, tintColor, shadeColor } from '@/utils';\nimport { themeSettingStore } from '@/stores';\nimport { DEFAULT_THEME_COLOR } from '@/common/constants';\n\nconst Index: FC = () => {\n const { theme, theme_config } = themeSettingStore((_) => _);\n let primaryColor;\n if (theme_config?.[theme]?.primary_color) {\n primaryColor = Color(theme_config[theme].primary_color);\n }\n const setThemeColor = () => {\n const themeMetaNode = document.querySelector('meta[name=\"theme-color\"]');\n if (themeMetaNode) {\n const themeColor = primaryColor\n ? primaryColor.hex()\n : DEFAULT_THEME_COLOR;\n themeMetaNode.setAttribute('content', themeColor);\n }\n };\n useLayoutEffect(() => {\n setThemeColor();\n }, [primaryColor]);\n\n return (\n <Helmet>\n {primaryColor && (\n <style>\n {`\n :root {\n --bs-blue: ${primaryColor.hex()};\n --bs-primary: ${primaryColor.hex()};\n --bs-primary-rgb: ${primaryColor.rgb().array().join(',')};\n --bs-link-color: ${primaryColor.hex()};\n --bs-link-color-rgb: ${primaryColor.rgb().array().join(',')};\n --bs-link-hover-color: ${shiftColor(primaryColor, 0.8).hex()};\n --bs-link-hover-color-rgb: ${shiftColor(primaryColor, 0.8)\n .round()\n .array()}\n }\n :root[data-bs-theme='dark'] {\n --bs-link-color: ${tintColor(primaryColor, 0.6).hex()};\n --bs-link-color-rgb: ${tintColor(primaryColor, 0.6)\n .round()\n .array()};\n --bs-link-hover-color: ${shiftColor(\n tintColor(primaryColor, 0.6),\n -0.8,\n ).hex()};\n --bs-link-hover-color-rgb: ${shiftColor(\n tintColor(primaryColor, 0.6),\n -0.8,\n )\n .round()\n .array()};\n }\n .nav-pills {\n --bs-nav-pills-link-active-bg: ${primaryColor.hex()};\n }\n .btn-primary {\n --bs-btn-bg: ${primaryColor.hex()};\n --bs-btn-border-color: ${primaryColor.hex()};\n --bs-btn-hover-bg: ${tintColor(primaryColor, 0.85)};\n --bs-btn-hover-border-color: ${tintColor(primaryColor, 0.9)};\n --bs-btn-focus-shadow-rgb: ${shadeColor(primaryColor, 0.85)};\n --bs-btn-active-bg: ${tintColor(primaryColor, 0.8)};\n --bs-btn-active-border-color: ${tintColor(primaryColor, 0.9)};\n --bs-btn-disabled-bg: ${primaryColor.hex()};\n --bs-btn-disabled-border-color: ${primaryColor.hex()};\n }\n .btn-outline-primary {\n --bs-btn-color: ${primaryColor.hex()};\n --bs-btn-border-color: ${primaryColor.hex()};\n --bs-btn-hover-bg: ${primaryColor.hex()};\n --bs-btn-hover-border-color: ${primaryColor.hex()};\n --bs-btn-active-bg: ${primaryColor.hex()};\n --bs-btn-active-border-color: ${primaryColor.hex()};\n --bs-btn-disabled-color: ${primaryColor.hex()};\n --bs-btn-disabled-border-color: ${primaryColor.hex()};\n }\n .pagination {\n --bs-btn-color: ${primaryColor.hex()};\n --bs-pagination-active-bg: ${primaryColor.hex()};\n --bs-pagination-active-border-color: ${primaryColor.hex()};\n }\n .form-select:focus,\n .form-control:focus,\n .form-control.focus{\n box-shadow: 0 0 0 0.25rem ${primaryColor\n .fade(0.75)\n .string()} !important;\n border-color: ${tintColor(primaryColor, 0.5)} !important;\n }\n .form-check-input:checked {\n background-color: ${primaryColor.hex()};\n border-color: ${primaryColor.hex()};\n }\n .form-check-input:focus {\n border-color: ${tintColor(primaryColor, 0.5)};\n box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), .4);\n }\n .form-switch .form-check-input:focus {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%273%27 fill=%27${tintColor(\n primaryColor,\n 0.5,\n )}%27/%3e%3c/svg%3e\");\n }\n .tag-selector-wrap--focus {\n box-shadow: 0 0 0 0.25rem ${primaryColor\n .fade(0.75)\n .string()} !important;\n border-color: ${tintColor(primaryColor, 0.5)} !important;\n }\n .dropdown-menu {\n --bs-dropdown-link-active-bg: rgb(var(--bs-primary-rgb));\n }\n .link-primary {\n color: ${primaryColor.hex()}!important;\n }\n .link-primary:hover, .link-primary:focus {\n color: ${shadeColor(primaryColor, 0.8).hex()}!important;\n }\n\n `}\n </style>\n )}\n </Helmet>\n );\n};\n\nexport default Index;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { FC, useEffect, useLayoutEffect } from 'react';\nimport { Helmet } from 'react-helmet-async';\n\nimport { REACT_BASE_PATH } from '@/router/alias';\nimport { brandingStore, pageTagStore, siteInfoStore } from '@/stores';\nimport { getCurrentLang } from '@/utils/localize';\n\nconst doInsertCustomCSS = !document.querySelector('link[href*=\"custom.css\"]');\n\nconst Index: FC = () => {\n const { favicon, square_icon } = brandingStore((state) => state.branding);\n const { pageTitle, keywords, description } = pageTagStore(\n (state) => state.items,\n );\n const appVersion = siteInfoStore((_) => _.version);\n const hashVersion = siteInfoStore((_) => _.revision);\n const siteName = siteInfoStore((_) => _.siteInfo).name;\n const setAppGenerator = () => {\n if (!appVersion) {\n return;\n }\n const generatorMetaNode = document.querySelector('meta[name=\"generator\"]');\n if (generatorMetaNode) {\n generatorMetaNode.setAttribute(\n 'content',\n `Answer ${appVersion} - https://github.com/apache/answer version ${hashVersion}`,\n );\n }\n };\n const setDocTitle = () => {\n try {\n if (pageTitle) {\n document.title = pageTitle;\n }\n // eslint-disable-next-line no-empty\n } catch (ex) {}\n };\n const currentLang = getCurrentLang();\n const setDocLang = () => {\n if (currentLang) {\n document.documentElement.setAttribute(\n 'lang',\n currentLang.replace('_', '-'),\n );\n }\n };\n // properties used for social media tags\n const openGraphType = 'website';\n const twitterType = 'summary';\n const { href } = window.location;\n const { hostname } = new URL(href);\n\n useEffect(() => {\n setDocLang();\n }, [currentLang]);\n useEffect(() => {\n setAppGenerator();\n }, [appVersion]);\n useLayoutEffect(() => {\n setDocTitle();\n }, [pageTitle]);\n return (\n <Helmet>\n <link\n rel=\"icon\"\n type=\"image/png\"\n href={favicon || square_icon || `${REACT_BASE_PATH}/favicon.ico`}\n />\n <link rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href={square_icon} />\n <link rel=\"apple-touch-icon\" type=\"image/png\" href={square_icon} />\n <title>{pageTitle}</title>\n {keywords && <meta name=\"keywords\" content={keywords} />}\n {description && <meta name=\"description\" content={description} />}\n {doInsertCustomCSS && (\n <link\n rel=\"stylesheet\"\n href={`${process.env.PUBLIC_URL}${REACT_BASE_PATH}/custom.css`}\n />\n )}\n {/* Social media meta share tags start here */}\n <meta property=\"og:type\" content={openGraphType} />\n <meta property=\"og:title\" name=\"twitter:title\" content={pageTitle} />\n <meta property=\"og:site_name\" content={siteName} />\n <meta property=\"og:url\" content={href} />\n {description && <meta property=\"og:description\" content={description} />}\n <meta\n property=\"og:image\"\n itemProp=\"image primaryImageOfPage\"\n content={square_icon || favicon || '/favicon.ico'}\n />\n <meta name=\"twitter:card\" content={twitterType} />\n <meta name=\"twitter:domain\" content={hostname} />\n {description && <meta name=\"twitter:description\" content={description} />}\n <meta\n name=\"twitter:image\"\n content={square_icon || favicon || '/favicon.ico'}\n />\n {/* Social media meta share tags end here */}\n </Helmet>\n );\n};\n\nexport default Index;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { FC, memo } from 'react';\nimport { ListGroupItem } from 'react-bootstrap';\n\ninterface Props {\n count?: number;\n}\n\nconst Index: FC<Props> = ({ count = 10 }) => {\n const list = new Array(count).fill(0).map((v, i) => v + i);\n return (\n <>\n {list.map((v) => (\n <ListGroupItem\n className=\"bg-transparent py-3 px-2 border-start-0 border-end-0 placeholder-glow\"\n key={v}>\n <div\n className=\"placeholder h5 align-top d-block\"\n style={{ height: '21px', width: '35%' }}\n />\n\n <div\n className=\"placeholder w-75 h5 align-top\"\n style={{ height: '24px' }}\n />\n\n <div\n className=\"placeholder w-100 d-block align-top mb-2\"\n style={{ height: '21px' }}\n />\n <div\n className=\"placeholder w-100 d-block align-top mb-2\"\n style={{ height: '21px' }}\n />\n\n <div\n className=\"placeholder w-50 align-top mb-12\"\n style={{ height: '24px' }}\n />\n\n <div\n className=\"placeholder w-25 align-top d-block\"\n style={{ height: '21px' }}\n />\n </ListGroupItem>\n ))}\n </>\n );\n};\n\nexport default memo(Index);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { FC, memo } from 'react';\nimport { Col, Card } from 'react-bootstrap';\n\ninterface Props {\n count?: number;\n}\n\nconst Index: FC<Props> = ({ count = 20 }) => {\n const list = new Array(count).fill(0).map((v, i) => v + i);\n return (\n <>\n {list.map((v) => (\n <Col\n key={v}\n xs={12}\n lg={3}\n md={4}\n sm={6}\n className=\"mb-4 placeholder-glow\">\n <Card className=\"h-100\">\n <Card.Body className=\"d-flex flex-column align-items-start\">\n <div\n className=\"placeholder align-top w-25 mb-3\"\n style={{ height: '24px' }}\n />\n\n <p\n className=\"placeholder small text-truncate-3 w-100\"\n style={{ height: '42px' }}\n />\n <div className=\"d-flex align-items-center\">\n <div\n className=\"placeholder me-2\"\n style={{ width: '80px', height: '31px' }}\n />\n <span\n className=\"placeholder text-secondary small text-nowrap\"\n style={{ width: '100px', height: '21px' }}\n />\n </div>\n </Card.Body>\n </Card>\n </Col>\n ))}\n </>\n );\n};\n\nexport default memo(Index);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React, { FC, memo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport classnames from 'classnames';\n\nimport { siteInfoStore } from '@/stores';\n\ninterface Props {\n as?: React.ElementType;\n className?: string;\n}\n\nconst Index: FC<Props> = ({ as: Component = 'h3', className = 'mb-5' }) => {\n const { t } = useTranslation();\n const { name: siteName } = siteInfoStore((_) => _.siteInfo);\n return (\n <Component className={classnames('text-center', className)}>\n {t('website_welcome', { site_name: siteName })}\n </Component>\n );\n};\n\nexport default memo(Index);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { FC, memo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport classname from 'classnames';\n\nimport { Icon } from '@/components';\nimport { formatCount } from '@/utils/common';\n\ninterface Props {\n data: {\n votes: number;\n answers: number;\n views: number;\n };\n showVotes?: boolean;\n showAnswers?: boolean;\n showViews?: boolean;\n showAccepted?: boolean;\n isAccepted?: boolean;\n className?: string;\n}\nconst Index: FC<Props> = ({\n data,\n showVotes = true,\n showAnswers = true,\n showViews = true,\n isAccepted = false,\n showAccepted = false,\n className = '',\n}) => {\n const { t } = useTranslation('translation', { keyPrefix: 'counts' });\n\n return (\n <div className={classname('d-flex align-items-center', className)}>\n {showVotes && (\n <div className=\"d-flex align-items-center flex-shrink-0 text-body\">\n <Icon name=\"hand-thumbs-up-fill me-1\" />\n <span className=\"fw-medium\">{data.votes}</span>\n <span className=\"ms-1\">{t('votes')}</span>\n </div>\n )}\n\n {showAccepted && (\n <div className=\"d-flex align-items-center ms-3 text-success flex-shrink-0\">\n <Icon name=\"check-circle-fill me-1\" />\n <span>{t('accepted')}</span>\n </div>\n )}\n\n {showAnswers && (\n <div\n className={`d-flex flex-shrink-0 align-items-center ms-3 ${\n isAccepted ? 'text-bg-success rounded-pill px-2 ' : ''\n }`}>\n {isAccepted ? (\n <Icon name=\"check-circle-fill me-1\" />\n ) : (\n <Icon name=\"chat-square-text-fill me-1\" />\n )}\n <span className=\"fw-medium\">{data.answers}</span>\n <span className=\"ms-1\">{t('answers')}</span>\n </div>\n )}\n {showViews && (\n <span\n className={classname(\n 'summary-stat ms-3 flex-shrink-0',\n data.views >= 100 * 1000\n ? 'view-level3'\n : data.views >= 1000\n ? 'view-level2'\n : data.views >= 100\n ? 'view-level1'\n : '',\n )}>\n <Icon name=\"bar-chart-fill\" />\n <span className=\"fw-medium ms-1\">{formatCount(data.views)}</span>\n <span className=\"ms-1\">{t('views')}</span>\n </span>\n )}\n </div>\n );\n};\n\nexport default memo(Index);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { memo, useEffect } from 'react';\nimport { Link } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n\nimport { usePageTags } from '@/hooks';\n\nconst Index = ({\n httpCode = '',\n title = '',\n errMsg = '',\n showErrorCode = true,\n}) => {\n const { t } = useTranslation('translation', { keyPrefix: 'page_error' });\n useEffect(() => {\n // auto height of container\n const pageWrap = document.querySelector('.page-wrap') as HTMLElement;\n if (pageWrap) {\n pageWrap.style.display = 'contents';\n }\n\n return () => {\n if (pageWrap) {\n pageWrap.style.display = 'block';\n }\n };\n }, []);\n\n usePageTags({\n title: t(`http_${httpCode}`, { keyPrefix: 'page_title' }),\n });\n\n return (\n <div className=\"d-flex flex-column flex-shrink-1 flex-grow-1 justify-content-center align-items-center\">\n <div\n className=\"mb-4 text-secondary\"\n style={{ fontSize: '120px', lineHeight: 1.2 }}>\n (=‘x‘=)\n </div>\n {showErrorCode && (\n <h4 className=\"text-center\">{t('http_error', { code: httpCode })}</h4>\n )}\n {title && <h4 className=\"text-center\">{title}</h4>}\n <div className=\"text-center mb-3 fs-5\">\n {errMsg || t(`desc_${httpCode}`)}\n </div>\n <div className=\"text-center\">\n <Link to=\"/\" className=\"btn btn-link\">\n {t('back_home')}\n </Link>\n </div>\n </div>\n );\n};\n\nexport default memo(Index);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { memo } from 'react';\n\nimport { customizeStore } from '@/stores';\n\nconst Index = () => {\n const { custom_sidebar } = customizeStore((state) => state);\n if (!custom_sidebar) return null;\n return <div dangerouslySetInnerHTML={{ __html: custom_sidebar }} />;\n};\n\nexport default memo(Index);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { FC } from 'react';\nimport { Col, Nav } from 'react-bootstrap';\nimport { NavLink, useLocation } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n\nimport classnames from 'classnames';\n\nimport { loggedUserInfoStore, sideNavStore } from '@/stores';\nimport { Icon } from '@/components';\nimport './index.scss';\n\nconst Index: FC = () => {\n const { t } = useTranslation();\n const { pathname } = useLocation();\n const { user: userInfo } = loggedUserInfoStore();\n const { visible, can_revision, revision } = sideNavStore();\n\n return (\n <Col\n xl={2}\n lg={3}\n md={12}\n className={classnames(\n 'position-relative',\n visible ? '' : 'd-none d-lg-block',\n )}\n id=\"sideNav\">\n <div className=\"nav-wrap pt-4\">\n <Nav variant=\"pills\" className=\"flex-column\">\n <NavLink\n to=\"/questions\"\n className={({ isActive }) =>\n isActive || pathname === '/' ? 'nav-link active' : 'nav-link'\n }>\n <Icon name=\"question-circle-fill\" className=\"me-2\" />\n <span>{t('header.nav.question')}</span>\n </NavLink>\n\n <NavLink\n to=\"/tags\"\n className={() =>\n pathname === '/tags' ? 'nav-link active' : 'nav-link'\n }>\n <Icon name=\"tags-fill\" className=\"me-2\" />\n <span>{t('header.nav.tag')}</span>\n </NavLink>\n\n <NavLink to=\"/users\" className=\"nav-link\">\n <Icon name=\"people-fill\" className=\"me-2\" />\n <span>{t('header.nav.user')}</span>\n </NavLink>\n\n <NavLink to=\"/badges\" className=\"nav-link\">\n <Icon name=\"award-fill\" className=\"me-2\" />\n <span>{t('header.nav.badges')}</span>\n </NavLink>\n\n {can_revision || userInfo?.role_id === 2 ? (\n <>\n <div className=\"py-2 px-3 mt-3 small fw-bold\">\n {t('header.nav.moderation')}\n </div>\n {can_revision && (\n <NavLink to=\"/review\" className=\"nav-link\">\n <Icon name=\"shield-fill-check\" className=\"me-2\" />\n <span>{t('header.nav.review')}</span>\n <span className=\"float-end\">\n {revision > 99 ? '99+' : revision > 0 ? revision : ''}\n </span>\n </NavLink>\n )}\n\n {userInfo?.role_id === 2 ? (\n <NavLink to=\"/admin\" className=\"nav-link\">\n <Icon name=\"gear-fill\" className=\"me-2\" />\n <span>{t('header.nav.admin')}</span>\n </NavLink>\n ) : null}\n </>\n ) : null}\n </Nav>\n </div>\n <div className=\"side-nav-right-line\" />\n </Col>\n );\n};\n\nexport default Index;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { memo, FC } from 'react';\n\nimport './index.scss';\n\ninterface IProps {\n text: string;\n keywords: string[];\n}\n\nconst Index: FC<IProps> = ({ text = '', keywords = [] }) => {\n const regex = new RegExp(`(${keywords.join('|')})`, 'gi');\n\n return (\n <span className=\"highlight-text\">\n {text.split(regex).map((piece: string, index: number) => {\n const key = `${piece.substring(0, 6)}_${index}`;\n return keywords.find(\n (kw: string) => kw.toLocaleLowerCase() === piece.toLocaleLowerCase(),\n ) ? (\n <mark key={key}>{piece}</mark>\n ) : (\n piece\n );\n })}\n </span>\n );\n};\n\nexport default memo(Index);\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { useTranslation } from 'react-i18next';\nimport { FC } from 'react';\nimport { Card, Badge } from 'react-bootstrap';\nimport { Link } from 'react-router-dom';\n\nimport classnames from 'classnames';\n\nimport { Icon } from '@/components';\nimport * as Type from '@/common/interface';\nimport { formatCount } from '@/utils';\n\nimport './index.scss';\n\ninterface IProps {\n data: Type.BadgeListItem;\n showAwardedCount?: boolean;\n urlSearchParams?: string;\n badgePillType?: 'earned' | 'count';\n}\n\nconst Index: FC<IProps> = ({\n data,\n badgePillType = 'earned',\n showAwardedCount = false,\n urlSearchParams,\n}) => {\n const { t } = useTranslation('translation', { keyPrefix: 'badges' });\n return (\n <Link\n className=\"card text-center badge-card\"\n to={`/badges/${data.id}${urlSearchParams ? `?${urlSearchParams}` : ''}`}>\n <Card.Body>\n {Number(data?.earned_count) > 0 && badgePillType === 'earned' && (\n <Badge\n bg=\"success\"\n style={{ position: 'absolute', top: '1rem', right: '1rem' }}>\n {`${t('earned')}${\n Number(data?.earned_count) > 1 ? ` ×${data.earned_count}` : ''\n }`}\n </Badge>\n )}\n\n {badgePillType === 'count' && Number(data?.earned_count) > 1 && (\n <Badge\n pill\n bg=\"secondary\"\n style={{ position: 'absolute', top: '1rem', right: '1rem' }}>\n ×{data.earned_count}\n </Badge>\n )}\n {data.icon.startsWith('http') ? (\n <img src={data.icon} width={96} height={96} alt={data.name} />\n ) : (\n <Icon\n name={data.icon}\n size=\"96px\"\n className={classnames(\n 'lh-1',\n data.level === 1 && 'bronze',\n data.level === 2 && 'silver',\n data.level === 3 && 'gold',\n )}\n />\n )}\n\n <h6 className=\"mb-0 mt-3 text-center\">{data.name}</h6>\n {showAwardedCount && (\n <div className=\"small text-secondary mt-2\">\n {t('×_awarded', { number: formatCount(data.award_count) })}\n </div>\n )}\n </Card.Body>\n </Link>\n );\n};\n\nexport default Index;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { FC } from 'react';\nimport { ListGroup, Stack } from 'react-bootstrap';\nimport { NavLink } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n\nimport { Counts } from '@/components';\nimport { pathFactory } from '@/router/pathFactory';\n\ninterface IProps {\n data: any[];\n}\n\nconst PinList: FC<IProps> = ({ data }) => {\n const { t } = useTranslation('translation', { keyPrefix: 'question' });\n if (!data?.length) return null;\n\n return (\n <ListGroup.Item className=\"py-3 px-0 border-start-0 border-end-0\">\n <Stack\n direction=\"horizontal\"\n gap={3}\n className=\"overflow-x-auto align-items-stretch\">\n {data.map((item) => {\n return (\n <ListGroup.Item\n action\n as=\"li\"\n key={item.id}\n className=\"border-0 p-0\"\n style={{\n minWidth: '238px',\n width: `${100 / data.length}%`,\n }}>\n <NavLink\n to={pathFactory.questionLanding(item.id, item.url_title)}\n className=\"border rounded h-100 d-flex flex-column justify-content-between p-3\">\n <h6 className=\"text-wrap link-dark text-break text-truncate-2\">\n {item.title}\n {item.status === 2 ? ` [${t('closed')}]` : ''}\n </h6>\n\n <Counts\n data={{\n votes: item.vote_count,\n answers: item.answer_count,\n views: item.view_count,\n }}\n isAccepted={item.accepted_answer_id >= 1}\n showViews={false}\n className=\"mt-2 mt-md-0 small text-secondary\"\n />\n </NavLink>\n </ListGroup.Item>\n );\n })}\n </Stack>\n </ListGroup.Item>\n );\n};\n\nexport default PinList;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { FC, memo, useEffect, useState } from 'react';\nimport { Button, OverlayTrigger, Popover, Tooltip } from 'react-bootstrap';\nimport { useTranslation } from 'react-i18next';\n\nimport classNames from 'classnames';\n\nimport { Icon } from '@/components';\nimport { queryReactions, updateReaction } from '@/services';\nimport { tryNormalLogged } from '@/utils/guard';\nimport { ReactionItem } from '@/common/interface';\n\ninterface Props {\n objectId: string;\n showAddCommentBtn?: boolean;\n handleClickComment: () => void;\n}\n\nconst emojiMap = [\n {\n name: 'heart',\n icon: 'heart-fill',\n className: 'text-danger',\n },\n {\n name: 'smile',\n icon: 'emoji-laughing-fill',\n className: 'text-warning',\n },\n {\n name: 'frown',\n icon: 'emoji-frown-fill',\n className: 'text-warning',\n },\n];\n\nconst Index: FC<Props> = ({\n objectId,\n showAddCommentBtn,\n handleClickComment,\n}) => {\n const [reactions, setReactions] = useState<ReactionItem[]>();\n const [reactIsActive, setReactIsActive] = useState<boolean>(false);\n const { t } = useTranslation('translation');\n\n useEffect(() => {\n queryReactions(objectId).then((res) => {\n setReactions(res?.reaction_summary);\n });\n }, []);\n\n const handleSubmit = (params: { object_id: string; emoji: string }) => {\n if (!tryNormalLogged(true)) {\n setReactIsActive(false);\n return;\n }\n updateReaction({\n ...params,\n reaction: reactions?.find((v) => v.emoji === params.emoji)?.is_active\n ? 'deactivate'\n : 'activate',\n }).then((res) => {\n setReactions(res.reaction_summary);\n setReactIsActive(false);\n });\n };\n\n const renderPopover = (props) => (\n <Popover id=\"reaction-button-tooltip\" {...props}>\n <Popover.Body className=\"d-block d-md-flex flex-wrap p-1\">\n {emojiMap.map((d, index) => (\n <Button\n aria-label={\n reactions?.find((v) => v.emoji === d.name)?.is_active\n ? t('reaction.undo_emoji', { emoji: d.name })\n : t(`reaction.${d.name}`)\n }\n key={d.icon}\n variant=\"light\"\n active={reactions?.find((v) => v.emoji === d.name)?.is_active}\n className={`${index !== 0 ? 'ms-1' : ''}`}\n size=\"sm\"\n onClick={() =>\n handleSubmit({ object_id: objectId, emoji: d.name })\n }>\n <Icon name={d.icon} className={d.className} />\n </Button>\n ))}\n </Popover.Body>\n </Popover>\n );\n\n return (\n <div\n className={classNames('d-flex flex-wrap', {\n 'mb-3': !showAddCommentBtn,\n })}>\n {showAddCommentBtn && (\n <Button\n className=\"rounded-pill me-2 link-secondary\"\n variant=\"light\"\n size=\"sm\"\n onClick={handleClickComment}>\n <Icon name=\"chat-text-fill\" />\n <span className=\"ms-1\">{t('comment.btn_add_comment')}</span>\n </Button>\n )}\n\n <OverlayTrigger\n trigger=\"click\"\n placement=\"top\"\n overlay={renderPopover}\n show={reactIsActive}\n onToggle={(show) => setReactIsActive(show)}>\n <Button\n size=\"sm\"\n aria-label={t('reaction.btn_label')}\n aria-haspopup=\"true\"\n active={reactIsActive}\n className=\"smile-btn rounded-pill link-secondary\"\n variant=\"light\">\n <Icon name=\"emoji-smile-fill\" />\n <span className=\"ms-1\">+</span>\n </Button>\n </OverlayTrigger>\n\n {reactions?.map((data) => {\n if (!data.emoji || data?.count <= 0) {\n return null;\n }\n return (\n <OverlayTrigger\n key={data.emoji}\n placement=\"top\"\n overlay={\n <Tooltip>\n <div className=\"text-start\">\n <b>{t(`reaction.${data.emoji}`)}</b> <br /> {data.tooltip}\n </div>\n </Tooltip>\n }>\n <Button\n className=\"rounded-pill ms-2 link-secondary d-flex align-items-center\"\n aria-label={\n data?.is_active\n ? t('reaction.unreact_emoji', { emoji: data.emoji })\n : t('reaction.react_emoji', { emoji: data.emoji })\n }\n aria-pressed=\"true\"\n variant=\"light\"\n active={data.is_active}\n size=\"sm\"\n onClick={() =>\n handleSubmit({ object_id: objectId, emoji: data.emoji })\n }>\n <Icon\n name={String(emojiMap.find((v) => v.name === data.emoji)?.icon)}\n className={\n emojiMap.find((v) => v.name === data.emoji)?.className\n }\n />\n <span className=\"ms-1 lh-1\">{data.count}</span>\n </Button>\n </OverlayTrigger>\n );\n })}\n </div>\n );\n};\n\nexport default memo(Index);\n","\"use client\";\n\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport CloseButton from './CloseButton';\nimport ModalContext from './ModalContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst AbstractModalHeader = /*#__PURE__*/React.forwardRef(({\n closeLabel = 'Close',\n closeVariant,\n closeButton = false,\n onHide,\n children,\n ...props\n}, ref) => {\n const context = useContext(ModalContext);\n const handleClick = useEventCallback(() => {\n context == null || context.onHide();\n onHide == null || onHide();\n });\n return /*#__PURE__*/_jsxs(\"div\", {\n ref: ref,\n ...props,\n children: [children, closeButton && /*#__PURE__*/_jsx(CloseButton, {\n \"aria-label\": closeLabel,\n variant: closeVariant,\n onClick: handleClick\n })]\n });\n});\nexport default AbstractModalHeader;","\"use client\";\n\nimport * as React from 'react';\nexport function isAccordionItemSelected(activeEventKey, eventKey) {\n return Array.isArray(activeEventKey) ? activeEventKey.includes(eventKey) : activeEventKey === eventKey;\n}\nconst context = /*#__PURE__*/React.createContext({});\ncontext.displayName = 'AccordionContext';\nexport default context;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport Collapse from './Collapse';\nimport AccordionContext, { isAccordionItemSelected } from './AccordionContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * This component accepts all of [`Collapse`'s props](/docs/utilities/transitions#collapse-1).\n */\nconst AccordionCollapse = /*#__PURE__*/React.forwardRef(({\n as: Component = 'div',\n bsPrefix,\n className,\n children,\n eventKey,\n ...props\n}, ref) => {\n const {\n activeEventKey\n } = useContext(AccordionContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'accordion-collapse');\n return /*#__PURE__*/_jsx(Collapse, {\n ref: ref,\n in: isAccordionItemSelected(activeEventKey, eventKey),\n ...props,\n className: classNames(className, bsPrefix),\n children: /*#__PURE__*/_jsx(Component, {\n children: React.Children.only(children)\n })\n });\n});\nAccordionCollapse.displayName = 'AccordionCollapse';\nexport default AccordionCollapse;","\"use client\";\n\nimport * as React from 'react';\nconst context = /*#__PURE__*/React.createContext({\n eventKey: ''\n});\ncontext.displayName = 'AccordionItemContext';\nexport default context;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport AccordionCollapse from './AccordionCollapse';\nimport AccordionItemContext from './AccordionItemContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst AccordionBody = /*#__PURE__*/React.forwardRef(({\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n bsPrefix,\n className,\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExiting,\n onExited,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'accordion-body');\n const {\n eventKey\n } = useContext(AccordionItemContext);\n return /*#__PURE__*/_jsx(AccordionCollapse, {\n eventKey: eventKey,\n onEnter: onEnter,\n onEntering: onEntering,\n onEntered: onEntered,\n onExit: onExit,\n onExiting: onExiting,\n onExited: onExited,\n children: /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, bsPrefix)\n })\n });\n});\nAccordionBody.displayName = 'AccordionBody';\nexport default AccordionBody;","\"use client\";\n\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport classNames from 'classnames';\nimport AccordionContext, { isAccordionItemSelected } from './AccordionContext';\nimport AccordionItemContext from './AccordionItemContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function useAccordionButton(eventKey, onClick) {\n const {\n activeEventKey,\n onSelect,\n alwaysOpen\n } = useContext(AccordionContext);\n return e => {\n /*\n Compare the event key in context with the given event key.\n If they are the same, then collapse the component.\n */\n let eventKeyPassed = eventKey === activeEventKey ? null : eventKey;\n if (alwaysOpen) {\n if (Array.isArray(activeEventKey)) {\n if (activeEventKey.includes(eventKey)) {\n eventKeyPassed = activeEventKey.filter(k => k !== eventKey);\n } else {\n eventKeyPassed = [...activeEventKey, eventKey];\n }\n } else {\n // activeEventKey is undefined.\n eventKeyPassed = [eventKey];\n }\n }\n onSelect == null || onSelect(eventKeyPassed, e);\n onClick == null || onClick(e);\n };\n}\nconst AccordionButton = /*#__PURE__*/React.forwardRef(({\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'button',\n bsPrefix,\n className,\n onClick,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'accordion-button');\n const {\n eventKey\n } = useContext(AccordionItemContext);\n const accordionOnClick = useAccordionButton(eventKey, onClick);\n const {\n activeEventKey\n } = useContext(AccordionContext);\n if (Component === 'button') {\n props.type = 'button';\n }\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n onClick: accordionOnClick,\n ...props,\n \"aria-expanded\": Array.isArray(activeEventKey) ? activeEventKey.includes(eventKey) : eventKey === activeEventKey,\n className: classNames(className, bsPrefix, !isAccordionItemSelected(activeEventKey, eventKey) && 'collapsed')\n });\n});\nAccordionButton.displayName = 'AccordionButton';\nexport default AccordionButton;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport AccordionButton from './AccordionButton';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst AccordionHeader = /*#__PURE__*/React.forwardRef(({\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'h2',\n 'aria-controls': ariaControls,\n bsPrefix,\n className,\n children,\n onClick,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'accordion-header');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, bsPrefix),\n children: /*#__PURE__*/_jsx(AccordionButton, {\n onClick: onClick,\n \"aria-controls\": ariaControls,\n children: children\n })\n });\n});\nAccordionHeader.displayName = 'AccordionHeader';\nexport default AccordionHeader;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport AccordionItemContext from './AccordionItemContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst AccordionItem = /*#__PURE__*/React.forwardRef(({\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n bsPrefix,\n className,\n eventKey,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'accordion-item');\n const contextValue = useMemo(() => ({\n eventKey\n }), [eventKey]);\n return /*#__PURE__*/_jsx(AccordionItemContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, bsPrefix)\n })\n });\n});\nAccordionItem.displayName = 'AccordionItem';\nexport default AccordionItem;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport { useUncontrolled } from 'uncontrollable';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport AccordionBody from './AccordionBody';\nimport AccordionButton from './AccordionButton';\nimport AccordionCollapse from './AccordionCollapse';\nimport AccordionContext from './AccordionContext';\nimport AccordionHeader from './AccordionHeader';\nimport AccordionItem from './AccordionItem';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Accordion = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n activeKey,\n bsPrefix,\n className,\n onSelect,\n flush,\n alwaysOpen,\n ...controlledProps\n } = useUncontrolled(props, {\n activeKey: 'onSelect'\n });\n const prefix = useBootstrapPrefix(bsPrefix, 'accordion');\n const contextValue = useMemo(() => ({\n activeEventKey: activeKey,\n onSelect,\n alwaysOpen\n }), [activeKey, onSelect, alwaysOpen]);\n return /*#__PURE__*/_jsx(AccordionContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...controlledProps,\n className: classNames(className, prefix, flush && `${prefix}-flush`)\n })\n });\n});\nAccordion.displayName = 'Accordion';\nexport default Object.assign(Accordion, {\n Button: AccordionButton,\n Collapse: AccordionCollapse,\n Item: AccordionItem,\n Header: AccordionHeader,\n Body: AccordionBody\n});","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Badge = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n bg = 'primary',\n pill = false,\n text,\n className,\n as: Component = 'span',\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'badge');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, prefix, pill && `rounded-pill`, text && `text-${text}`, bg && `bg-${bg}`)\n });\n});\nBadge.displayName = 'Badge';\nexport default Badge;","import addClass from 'dom-helpers/addClass';\nimport css from 'dom-helpers/css';\nimport qsa from 'dom-helpers/querySelectorAll';\nimport removeClass from 'dom-helpers/removeClass';\nimport ModalManager from '@restart/ui/ModalManager';\nconst Selector = {\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top',\n NAVBAR_TOGGLER: '.navbar-toggler'\n};\nclass BootstrapModalManager extends ModalManager {\n adjustAndStore(prop, element, adjust) {\n const actual = element.style[prop];\n // TODO: DOMStringMap and CSSStyleDeclaration aren't strictly compatible\n // @ts-ignore\n element.dataset[prop] = actual;\n css(element, {\n [prop]: `${parseFloat(css(element, prop)) + adjust}px`\n });\n }\n restore(prop, element) {\n const value = element.dataset[prop];\n if (value !== undefined) {\n delete element.dataset[prop];\n css(element, {\n [prop]: value\n });\n }\n }\n setContainerStyle(containerState) {\n super.setContainerStyle(containerState);\n const container = this.getElement();\n addClass(container, 'modal-open');\n if (!containerState.scrollBarWidth) return;\n const paddingProp = this.isRTL ? 'paddingLeft' : 'paddingRight';\n const marginProp = this.isRTL ? 'marginLeft' : 'marginRight';\n qsa(container, Selector.FIXED_CONTENT).forEach(el => this.adjustAndStore(paddingProp, el, containerState.scrollBarWidth));\n qsa(container, Selector.STICKY_CONTENT).forEach(el => this.adjustAndStore(marginProp, el, -containerState.scrollBarWidth));\n qsa(container, Selector.NAVBAR_TOGGLER).forEach(el => this.adjustAndStore(marginProp, el, containerState.scrollBarWidth));\n }\n removeContainerStyle(containerState) {\n super.removeContainerStyle(containerState);\n const container = this.getElement();\n removeClass(container, 'modal-open');\n const paddingProp = this.isRTL ? 'paddingLeft' : 'paddingRight';\n const marginProp = this.isRTL ? 'marginLeft' : 'marginRight';\n qsa(container, Selector.FIXED_CONTENT).forEach(el => this.restore(paddingProp, el));\n qsa(container, Selector.STICKY_CONTENT).forEach(el => this.restore(marginProp, el));\n qsa(container, Selector.NAVBAR_TOGGLER).forEach(el => this.restore(marginProp, el));\n }\n}\nlet sharedManager;\nexport function getSharedManager(options) {\n if (!sharedManager) sharedManager = new BootstrapModalManager(options);\n return sharedManager;\n}\nexport default BootstrapModalManager;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useButtonProps } from '@restart/ui/Button';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Button = /*#__PURE__*/React.forwardRef(({\n as,\n bsPrefix,\n variant = 'primary',\n size,\n active = false,\n disabled = false,\n className,\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'btn');\n const [buttonProps, {\n tagName\n }] = useButtonProps({\n tagName: as,\n disabled,\n ...props\n });\n const Component = tagName;\n return /*#__PURE__*/_jsx(Component, {\n ...buttonProps,\n ...props,\n ref: ref,\n disabled: disabled,\n className: classNames(className, prefix, active && 'active', variant && `${prefix}-${variant}`, size && `${prefix}-${size}`, props.href && disabled && 'disabled')\n });\n});\nButton.displayName = 'Button';\nexport default Button;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ButtonGroup = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n size,\n vertical = false,\n className,\n role = 'group',\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...rest\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'btn-group');\n let baseClass = prefix;\n if (vertical) baseClass = `${prefix}-vertical`;\n return /*#__PURE__*/_jsx(Component, {\n ...rest,\n ref: ref,\n role: role,\n className: classNames(className, baseClass, size && `${prefix}-${size}`)\n });\n});\nButtonGroup.displayName = 'ButtonGroup';\nexport default ButtonGroup;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst CardBody = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'div',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'card-body');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nCardBody.displayName = 'CardBody';\nexport default CardBody;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst CardFooter = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'div',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'card-footer');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nCardFooter.displayName = 'CardFooter';\nexport default CardFooter;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport CardHeaderContext from './CardHeaderContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst CardHeader = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'card-header');\n const contextValue = useMemo(() => ({\n cardHeaderBsPrefix: prefix\n }), [prefix]);\n return /*#__PURE__*/_jsx(CardHeaderContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, prefix)\n })\n });\n});\nCardHeader.displayName = 'CardHeader';\nexport default CardHeader;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst CardImg = /*#__PURE__*/React.forwardRef(\n// Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n({\n bsPrefix,\n className,\n variant,\n as: Component = 'img',\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'card-img');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(variant ? `${prefix}-${variant}` : prefix, className),\n ...props\n });\n});\nCardImg.displayName = 'CardImg';\nexport default CardImg;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst CardImgOverlay = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'div',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'card-img-overlay');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nCardImgOverlay.displayName = 'CardImgOverlay';\nexport default CardImgOverlay;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst CardLink = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'a',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'card-link');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nCardLink.displayName = 'CardLink';\nexport default CardLink;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport divWithClassName from './divWithClassName';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DivStyledAsH6 = divWithClassName('h6');\nconst CardSubtitle = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = DivStyledAsH6,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'card-subtitle');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nCardSubtitle.displayName = 'CardSubtitle';\nexport default CardSubtitle;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst CardText = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'p',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'card-text');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nCardText.displayName = 'CardText';\nexport default CardText;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport divWithClassName from './divWithClassName';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DivStyledAsH5 = divWithClassName('h5');\nconst CardTitle = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = DivStyledAsH5,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'card-title');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nCardTitle.displayName = 'CardTitle';\nexport default CardTitle;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport CardBody from './CardBody';\nimport CardFooter from './CardFooter';\nimport CardHeader from './CardHeader';\nimport CardImg from './CardImg';\nimport CardImgOverlay from './CardImgOverlay';\nimport CardLink from './CardLink';\nimport CardSubtitle from './CardSubtitle';\nimport CardText from './CardText';\nimport CardTitle from './CardTitle';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Card = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n bg,\n text,\n border,\n body = false,\n children,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'card');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, prefix, bg && `bg-${bg}`, text && `text-${text}`, border && `border-${border}`),\n children: body ? /*#__PURE__*/_jsx(CardBody, {\n children: children\n }) : children\n });\n});\nCard.displayName = 'Card';\nexport default Object.assign(Card, {\n Img: CardImg,\n Title: CardTitle,\n Subtitle: CardSubtitle,\n Body: CardBody,\n Link: CardLink,\n Text: CardText,\n Header: CardHeader,\n Footer: CardFooter,\n ImgOverlay: CardImgOverlay\n});","\"use client\";\n\nimport * as React from 'react';\nconst context = /*#__PURE__*/React.createContext(null);\ncontext.displayName = 'CardHeaderContext';\nexport default context;","import PropTypes from 'prop-types';\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst propTypes = {\n /** An accessible label indicating the relevant information about the Close Button. */\n 'aria-label': PropTypes.string,\n /** A callback fired after the Close Button is clicked. */\n onClick: PropTypes.func,\n /**\n * Render different color variant for the button.\n *\n * Omitting this will render the default dark color.\n */\n variant: PropTypes.oneOf(['white'])\n};\nconst CloseButton = /*#__PURE__*/React.forwardRef(({\n className,\n variant,\n 'aria-label': ariaLabel = 'Close',\n ...props\n}, ref) => /*#__PURE__*/_jsx(\"button\", {\n ref: ref,\n type: \"button\",\n className: classNames('btn-close', variant && `btn-close-${variant}`, className),\n \"aria-label\": ariaLabel,\n ...props\n}));\nCloseButton.displayName = 'CloseButton';\nCloseButton.propTypes = propTypes;\nexport default CloseButton;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function useCol({\n as,\n bsPrefix,\n className,\n ...props\n}) {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'col');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const spans = [];\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let span;\n let offset;\n let order;\n if (typeof propValue === 'object' && propValue != null) {\n ({\n span,\n offset,\n order\n } = propValue);\n } else {\n span = propValue;\n }\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (span) spans.push(span === true ? `${bsPrefix}${infix}` : `${bsPrefix}${infix}-${span}`);\n if (order != null) classes.push(`order${infix}-${order}`);\n if (offset != null) classes.push(`offset${infix}-${offset}`);\n });\n return [{\n ...props,\n className: classNames(className, ...spans, ...classes)\n }, {\n as,\n bsPrefix,\n spans\n }];\n}\nconst Col = /*#__PURE__*/React.forwardRef(\n// Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n(props, ref) => {\n const [{\n className,\n ...colProps\n }, {\n as: Component = 'div',\n bsPrefix,\n spans\n }] = useCol(props);\n return /*#__PURE__*/_jsx(Component, {\n ...colProps,\n ref: ref,\n className: classNames(className, !spans.length && bsPrefix)\n });\n});\nCol.displayName = 'Col';\nexport default Col;","/**\n * Safe chained function\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n *\n * @param {function} functions to chain\n * @returns {function|null}\n */\nfunction createChainedFunction(...funcs) {\n return funcs.filter(f => f != null).reduce((acc, f) => {\n if (typeof f !== 'function') {\n throw new Error('Invalid Argument Type, must only provide functions, undefined, or null.');\n }\n if (acc === null) return f;\n return function chainedFunction(...args) {\n // @ts-ignore\n acc.apply(this, args);\n // @ts-ignore\n f.apply(this, args);\n };\n }, null);\n}\nexport default createChainedFunction;","import classNames from 'classnames';\nimport css from 'dom-helpers/css';\nimport React, { useMemo } from 'react';\nimport { ENTERED, ENTERING, EXITED, EXITING } from 'react-transition-group/Transition';\nimport { getChildRef } from '@restart/ui/utils';\nimport transitionEndListener from './transitionEndListener';\nimport createChainedFunction from './createChainedFunction';\nimport triggerBrowserReflow from './triggerBrowserReflow';\nimport TransitionWrapper from './TransitionWrapper';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst MARGINS = {\n height: ['marginTop', 'marginBottom'],\n width: ['marginLeft', 'marginRight']\n};\nfunction getDefaultDimensionValue(dimension, elem) {\n const offset = `offset${dimension[0].toUpperCase()}${dimension.slice(1)}`;\n const value = elem[offset];\n const margins = MARGINS[dimension];\n return value +\n // @ts-ignore\n parseInt(css(elem, margins[0]), 10) +\n // @ts-ignore\n parseInt(css(elem, margins[1]), 10);\n}\nconst collapseStyles = {\n [EXITED]: 'collapse',\n [EXITING]: 'collapsing',\n [ENTERING]: 'collapsing',\n [ENTERED]: 'collapse show'\n};\nconst Collapse = /*#__PURE__*/React.forwardRef(({\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExiting,\n className,\n children,\n dimension = 'height',\n in: inProp = false,\n timeout = 300,\n mountOnEnter = false,\n unmountOnExit = false,\n appear = false,\n getDimensionValue = getDefaultDimensionValue,\n ...props\n}, ref) => {\n /* Compute dimension */\n const computedDimension = typeof dimension === 'function' ? dimension() : dimension;\n\n /* -- Expanding -- */\n const handleEnter = useMemo(() => createChainedFunction(elem => {\n elem.style[computedDimension] = '0';\n }, onEnter), [computedDimension, onEnter]);\n const handleEntering = useMemo(() => createChainedFunction(elem => {\n const scroll = `scroll${computedDimension[0].toUpperCase()}${computedDimension.slice(1)}`;\n elem.style[computedDimension] = `${elem[scroll]}px`;\n }, onEntering), [computedDimension, onEntering]);\n const handleEntered = useMemo(() => createChainedFunction(elem => {\n elem.style[computedDimension] = null;\n }, onEntered), [computedDimension, onEntered]);\n\n /* -- Collapsing -- */\n const handleExit = useMemo(() => createChainedFunction(elem => {\n elem.style[computedDimension] = `${getDimensionValue(computedDimension, elem)}px`;\n triggerBrowserReflow(elem);\n }, onExit), [onExit, getDimensionValue, computedDimension]);\n const handleExiting = useMemo(() => createChainedFunction(elem => {\n elem.style[computedDimension] = null;\n }, onExiting), [computedDimension, onExiting]);\n return /*#__PURE__*/_jsx(TransitionWrapper, {\n ref: ref,\n addEndListener: transitionEndListener,\n ...props,\n \"aria-expanded\": props.role ? inProp : null,\n onEnter: handleEnter,\n onEntering: handleEntering,\n onEntered: handleEntered,\n onExit: handleExit,\n onExiting: handleExiting,\n childRef: getChildRef(children),\n in: inProp,\n timeout: timeout,\n mountOnEnter: mountOnEnter,\n unmountOnExit: unmountOnExit,\n appear: appear,\n children: (state, innerProps) => /*#__PURE__*/React.cloneElement(children, {\n ...innerProps,\n className: classNames(className, children.props.className, collapseStyles[state], computedDimension === 'width' && 'collapse-horizontal')\n })\n });\n});\n\n// @ts-ignore\n\nexport default Collapse;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Container = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n fluid = false,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n className,\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'container');\n const suffix = typeof fluid === 'string' ? `-${fluid}` : '-fluid';\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, fluid ? `${prefix}${suffix}` : prefix)\n });\n});\nContainer.displayName = 'Container';\nexport default Container;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DropdownDivider = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'hr',\n role = 'separator',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'dropdown-divider');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n role: role,\n ...props\n });\n});\nDropdownDivider.displayName = 'DropdownDivider';\nexport default DropdownDivider;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DropdownHeader = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'div',\n role = 'heading',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'dropdown-header');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n role: role,\n ...props\n });\n});\nDropdownHeader.displayName = 'DropdownHeader';\nexport default DropdownHeader;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useDropdownItem } from '@restart/ui/DropdownItem';\nimport Anchor from '@restart/ui/Anchor';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DropdownItem = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n eventKey,\n disabled = false,\n onClick,\n active,\n as: Component = Anchor,\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'dropdown-item');\n const [dropdownItemProps, meta] = useDropdownItem({\n key: eventKey,\n href: props.href,\n disabled,\n onClick,\n active\n });\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n ...dropdownItemProps,\n ref: ref,\n className: classNames(className, prefix, meta.isActive && 'active', disabled && 'disabled')\n });\n});\nDropdownItem.displayName = 'DropdownItem';\nexport default DropdownItem;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DropdownItemText = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'span',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'dropdown-item-text');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nDropdownItemText.displayName = 'DropdownItemText';\nexport default DropdownItemText;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport BaseDropdown from '@restart/ui/Dropdown';\nimport { useUncontrolled } from 'uncontrollable';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport DropdownContext from './DropdownContext';\nimport DropdownDivider from './DropdownDivider';\nimport DropdownHeader from './DropdownHeader';\nimport DropdownItem from './DropdownItem';\nimport DropdownItemText from './DropdownItemText';\nimport DropdownMenu, { getDropdownMenuPlacement } from './DropdownMenu';\nimport DropdownToggle from './DropdownToggle';\nimport InputGroupContext from './InputGroupContext';\nimport { useBootstrapPrefix, useIsRTL } from './ThemeProvider';\nimport { alignPropType } from './types';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Dropdown = /*#__PURE__*/React.forwardRef((pProps, ref) => {\n const {\n bsPrefix,\n drop = 'down',\n show,\n className,\n align = 'start',\n onSelect,\n onToggle,\n focusFirstItemOnShow,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n navbar: _4,\n autoClose = true,\n ...props\n } = useUncontrolled(pProps, {\n show: 'onToggle'\n });\n const isInputGroup = useContext(InputGroupContext);\n const prefix = useBootstrapPrefix(bsPrefix, 'dropdown');\n const isRTL = useIsRTL();\n const isClosingPermitted = source => {\n // autoClose=false only permits close on button click\n if (autoClose === false) return source === 'click';\n\n // autoClose=inside doesn't permit close on rootClose\n if (autoClose === 'inside') return source !== 'rootClose';\n\n // autoClose=outside doesn't permit close on select\n if (autoClose === 'outside') return source !== 'select';\n return true;\n };\n const handleToggle = useEventCallback((nextShow, meta) => {\n var _meta$originalEvent;\n /** Checking if target of event is ToggleButton,\n * if it is then nullify mousedown event\n */\n const isToggleButton = (_meta$originalEvent = meta.originalEvent) == null || (_meta$originalEvent = _meta$originalEvent.target) == null ? void 0 : _meta$originalEvent.classList.contains('dropdown-toggle');\n if (isToggleButton && meta.source === 'mousedown') {\n return;\n }\n if (meta.originalEvent.currentTarget === document && (meta.source !== 'keydown' || meta.originalEvent.key === 'Escape')) meta.source = 'rootClose';\n if (isClosingPermitted(meta.source)) onToggle == null || onToggle(nextShow, meta);\n });\n const alignEnd = align === 'end';\n const placement = getDropdownMenuPlacement(alignEnd, drop, isRTL);\n const contextValue = useMemo(() => ({\n align,\n drop,\n isRTL\n }), [align, drop, isRTL]);\n const directionClasses = {\n down: prefix,\n 'down-centered': `${prefix}-center`,\n up: 'dropup',\n 'up-centered': 'dropup-center dropup',\n end: 'dropend',\n start: 'dropstart'\n };\n return /*#__PURE__*/_jsx(DropdownContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(BaseDropdown, {\n placement: placement,\n show: show,\n onSelect: onSelect,\n onToggle: handleToggle,\n focusFirstItemOnShow: focusFirstItemOnShow,\n itemSelector: `.${prefix}-item:not(.disabled):not(:disabled)`,\n children: isInputGroup ? props.children : /*#__PURE__*/_jsx(Component, {\n ...props,\n ref: ref,\n className: classNames(className, show && 'show', directionClasses[drop])\n })\n })\n });\n});\nDropdown.displayName = 'Dropdown';\nexport default Object.assign(Dropdown, {\n Toggle: DropdownToggle,\n Menu: DropdownMenu,\n Item: DropdownItem,\n ItemText: DropdownItemText,\n Divider: DropdownDivider,\n Header: DropdownHeader\n});","\"use client\";\n\nimport * as React from 'react';\nconst DropdownContext = /*#__PURE__*/React.createContext({});\nDropdownContext.displayName = 'DropdownContext';\nexport default DropdownContext;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { useDropdownMenu } from '@restart/ui/DropdownMenu';\nimport useIsomorphicEffect from '@restart/hooks/useIsomorphicEffect';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport warning from 'warning';\nimport DropdownContext from './DropdownContext';\nimport InputGroupContext from './InputGroupContext';\nimport NavbarContext from './NavbarContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport useWrappedRefWithWarning from './useWrappedRefWithWarning';\nimport { alignPropType } from './types';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function getDropdownMenuPlacement(alignEnd, dropDirection, isRTL) {\n const topStart = isRTL ? 'top-end' : 'top-start';\n const topEnd = isRTL ? 'top-start' : 'top-end';\n const bottomStart = isRTL ? 'bottom-end' : 'bottom-start';\n const bottomEnd = isRTL ? 'bottom-start' : 'bottom-end';\n const leftStart = isRTL ? 'right-start' : 'left-start';\n const leftEnd = isRTL ? 'right-end' : 'left-end';\n const rightStart = isRTL ? 'left-start' : 'right-start';\n const rightEnd = isRTL ? 'left-end' : 'right-end';\n let placement = alignEnd ? bottomEnd : bottomStart;\n if (dropDirection === 'up') placement = alignEnd ? topEnd : topStart;else if (dropDirection === 'end') placement = alignEnd ? rightEnd : rightStart;else if (dropDirection === 'start') placement = alignEnd ? leftEnd : leftStart;else if (dropDirection === 'down-centered') placement = 'bottom';else if (dropDirection === 'up-centered') placement = 'top';\n return placement;\n}\nconst DropdownMenu = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n align,\n rootCloseEvent,\n flip = true,\n show: showProps,\n renderOnMount,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n popperConfig,\n variant,\n ...props\n}, ref) => {\n let alignEnd = false;\n const isNavbar = useContext(NavbarContext);\n const prefix = useBootstrapPrefix(bsPrefix, 'dropdown-menu');\n const {\n align: contextAlign,\n drop,\n isRTL\n } = useContext(DropdownContext);\n align = align || contextAlign;\n const isInputGroup = useContext(InputGroupContext);\n const alignClasses = [];\n if (align) {\n if (typeof align === 'object') {\n const keys = Object.keys(align);\n process.env.NODE_ENV !== \"production\" ? warning(keys.length === 1, 'There should only be 1 breakpoint when passing an object to `align`') : void 0;\n if (keys.length) {\n const brkPoint = keys[0];\n const direction = align[brkPoint];\n\n // .dropdown-menu-end is required for responsively aligning\n // left in addition to align left classes.\n alignEnd = direction === 'start';\n alignClasses.push(`${prefix}-${brkPoint}-${direction}`);\n }\n } else if (align === 'end') {\n alignEnd = true;\n }\n }\n const placement = getDropdownMenuPlacement(alignEnd, drop, isRTL);\n const [menuProps, {\n hasShown,\n popper,\n show,\n toggle\n }] = useDropdownMenu({\n flip,\n rootCloseEvent,\n show: showProps,\n usePopper: !isNavbar && alignClasses.length === 0,\n offset: [0, 2],\n popperConfig,\n placement\n });\n menuProps.ref = useMergedRefs(useWrappedRefWithWarning(ref, 'DropdownMenu'), menuProps.ref);\n useIsomorphicEffect(() => {\n // Popper's initial position for the menu is incorrect when\n // renderOnMount=true. Need to call update() to correct it.\n if (show) popper == null || popper.update();\n }, [show]);\n if (!hasShown && !renderOnMount && !isInputGroup) return null;\n\n // For custom components provide additional, non-DOM, props;\n if (typeof Component !== 'string') {\n menuProps.show = show;\n menuProps.close = () => toggle == null ? void 0 : toggle(false);\n menuProps.align = align;\n }\n let style = props.style;\n if (popper != null && popper.placement) {\n // we don't need the default popper style,\n // menus are display: none when not shown.\n style = {\n ...props.style,\n ...menuProps.style\n };\n props['x-placement'] = popper.placement;\n }\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n ...menuProps,\n style: style\n // Bootstrap css requires this data attrib to style responsive menus.\n ,\n ...((alignClasses.length || isNavbar) && {\n 'data-bs-popper': 'static'\n }),\n className: classNames(className, prefix, show && 'show', alignEnd && `${prefix}-end`, variant && `${prefix}-${variant}`, ...alignClasses)\n });\n});\nDropdownMenu.displayName = 'DropdownMenu';\nexport default DropdownMenu;","\"use client\";\n\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport DropdownContext from '@restart/ui/DropdownContext';\nimport { useDropdownToggle } from '@restart/ui/DropdownToggle';\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport Button from './Button';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport useWrappedRefWithWarning from './useWrappedRefWithWarning';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DropdownToggle = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n split,\n className,\n childBsPrefix,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = Button,\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'dropdown-toggle');\n const dropdownContext = useContext(DropdownContext);\n if (childBsPrefix !== undefined) {\n props.bsPrefix = childBsPrefix;\n }\n const [toggleProps] = useDropdownToggle();\n toggleProps.ref = useMergedRefs(toggleProps.ref, useWrappedRefWithWarning(ref, 'DropdownToggle'));\n\n // This intentionally forwards size and variant (if set) to the\n // underlying component, to allow it to render size and style variants.\n return /*#__PURE__*/_jsx(Component, {\n className: classNames(className, prefix, split && `${prefix}-split`, (dropdownContext == null ? void 0 : dropdownContext.show) && 'show'),\n ...toggleProps,\n ...props\n });\n});\nDropdownToggle.displayName = 'DropdownToggle';\nexport default DropdownToggle;","import * as React from 'react';\n\n/**\n * Iterates through children that are typically specified as `props.children`,\n * but only maps over children that are \"valid elements\".\n *\n * The mapFunction provided index will be normalised to the components mapped,\n * so an invalid component would not increase the index.\n *\n */\nfunction map(children, func) {\n let index = 0;\n return React.Children.map(children, child => /*#__PURE__*/React.isValidElement(child) ? func(child, index++) : child);\n}\n\n/**\n * Iterates through children that are \"valid elements\".\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child with the index reflecting the position relative to \"valid components\".\n */\nfunction forEach(children, func) {\n let index = 0;\n React.Children.forEach(children, child => {\n if ( /*#__PURE__*/React.isValidElement(child)) func(child, index++);\n });\n}\n\n/**\n * Finds whether a component's `children` prop includes a React element of the\n * specified type.\n */\nfunction hasChildOfType(children, type) {\n return React.Children.toArray(children).some(child => /*#__PURE__*/React.isValidElement(child) && child.type === type);\n}\nexport { map, forEach, hasChildOfType };","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useCallback } from 'react';\nimport { ENTERED, ENTERING } from 'react-transition-group/Transition';\nimport { getChildRef } from '@restart/ui/utils';\nimport transitionEndListener from './transitionEndListener';\nimport triggerBrowserReflow from './triggerBrowserReflow';\nimport TransitionWrapper from './TransitionWrapper';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst fadeStyles = {\n [ENTERING]: 'show',\n [ENTERED]: 'show'\n};\nconst Fade = /*#__PURE__*/React.forwardRef(({\n className,\n children,\n transitionClasses = {},\n onEnter,\n ...rest\n}, ref) => {\n const props = {\n in: false,\n timeout: 300,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n ...rest\n };\n const handleEnter = useCallback((node, isAppearing) => {\n triggerBrowserReflow(node);\n onEnter == null || onEnter(node, isAppearing);\n }, [onEnter]);\n return /*#__PURE__*/_jsx(TransitionWrapper, {\n ref: ref,\n addEndListener: transitionEndListener,\n ...props,\n onEnter: handleEnter,\n childRef: getChildRef(children),\n children: (status, innerProps) => /*#__PURE__*/React.cloneElement(children, {\n ...innerProps,\n className: classNames('fade', className, children.props.className, fadeStyles[status], transitionClasses[status])\n })\n });\n});\nFade.displayName = 'Fade';\nexport default Fade;","import classNames from 'classnames';\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst propTypes = {\n /**\n * Specify whether the feedback is for valid or invalid fields\n *\n * @type {('valid'|'invalid')}\n */\n type: PropTypes.string,\n /** Display feedback as a tooltip. */\n tooltip: PropTypes.bool,\n as: PropTypes.elementType\n};\nconst Feedback = /*#__PURE__*/React.forwardRef(\n// Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n({\n as: Component = 'div',\n className,\n type = 'valid',\n tooltip = false,\n ...props\n}, ref) => /*#__PURE__*/_jsx(Component, {\n ...props,\n ref: ref,\n className: classNames(className, `${type}-${tooltip ? 'tooltip' : 'feedback'}`)\n}));\nFeedback.displayName = 'Feedback';\nFeedback.propTypes = propTypes;\nexport default Feedback;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormFloating = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'div',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-floating');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nFormFloating.displayName = 'FormFloating';\nexport default FormFloating;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport warning from 'warning';\nimport Col from './Col';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormLabel = /*#__PURE__*/React.forwardRef(({\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'label',\n bsPrefix,\n column = false,\n visuallyHidden = false,\n className,\n htmlFor,\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-label');\n let columnClass = 'col-form-label';\n if (typeof column === 'string') columnClass = `${columnClass} ${columnClass}-${column}`;\n const classes = classNames(className, bsPrefix, visuallyHidden && 'visually-hidden', column && columnClass);\n process.env.NODE_ENV !== \"production\" ? warning(controlId == null || !htmlFor, '`controlId` is ignored on `<FormLabel>` when `htmlFor` is specified.') : void 0;\n htmlFor = htmlFor || controlId;\n if (column) return /*#__PURE__*/_jsx(Col, {\n ref: ref,\n as: \"label\",\n className: classes,\n htmlFor: htmlFor,\n ...props\n });\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/label-has-for, jsx-a11y/label-has-associated-control\n _jsx(Component, {\n ref: ref,\n className: classes,\n htmlFor: htmlFor,\n ...props\n })\n );\n});\nFormLabel.displayName = 'FormLabel';\nexport default FormLabel;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport FormContext from './FormContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormRange = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n id,\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-range');\n return /*#__PURE__*/_jsx(\"input\", {\n ...props,\n type: \"range\",\n ref: ref,\n className: classNames(className, bsPrefix),\n id: id || controlId\n });\n});\nFormRange.displayName = 'FormRange';\nexport default FormRange;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport FormContext from './FormContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormSelect = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n size,\n htmlSize,\n className,\n isValid = false,\n isInvalid = false,\n id,\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-select');\n return /*#__PURE__*/_jsx(\"select\", {\n ...props,\n size: htmlSize,\n ref: ref,\n className: classNames(className, bsPrefix, size && `${bsPrefix}-${size}`, isValid && `is-valid`, isInvalid && `is-invalid`),\n id: id || controlId\n });\n});\nFormSelect.displayName = 'FormSelect';\nexport default FormSelect;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormText = /*#__PURE__*/React.forwardRef(\n// Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n({\n bsPrefix,\n className,\n as: Component = 'small',\n muted,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-text');\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n ref: ref,\n className: classNames(className, bsPrefix, muted && 'text-muted')\n });\n});\nFormText.displayName = 'FormText';\nexport default FormText;","import * as React from 'react';\nimport FormCheck from './FormCheck';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Switch = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/_jsx(FormCheck, {\n ...props,\n ref: ref,\n type: \"switch\"\n}));\nSwitch.displayName = 'Switch';\nexport default Object.assign(Switch, {\n Input: FormCheck.Input,\n Label: FormCheck.Label\n});","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport FormGroup from './FormGroup';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst FloatingLabel = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n children,\n controlId,\n label,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-floating');\n return /*#__PURE__*/_jsxs(FormGroup, {\n ref: ref,\n className: classNames(className, bsPrefix),\n controlId: controlId,\n ...props,\n children: [children, /*#__PURE__*/_jsx(\"label\", {\n htmlFor: controlId,\n children: label\n })]\n });\n});\nFloatingLabel.displayName = 'FloatingLabel';\nexport default FloatingLabel;","import classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport FormCheck from './FormCheck';\nimport FormControl from './FormControl';\nimport FormFloating from './FormFloating';\nimport FormGroup from './FormGroup';\nimport FormLabel from './FormLabel';\nimport FormRange from './FormRange';\nimport FormSelect from './FormSelect';\nimport FormText from './FormText';\nimport Switch from './Switch';\nimport FloatingLabel from './FloatingLabel';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst propTypes = {\n /**\n * The Form `ref` will be forwarded to the underlying element,\n * which means, unless it's rendered `as` a composite component,\n * it will be a DOM node, when resolved.\n *\n * @type {ReactRef}\n * @alias ref\n */\n _ref: PropTypes.any,\n /**\n * Mark a form as having been validated. Setting it to `true` will\n * toggle any validation styles on the forms elements.\n */\n validated: PropTypes.bool,\n as: PropTypes.elementType\n};\nconst Form = /*#__PURE__*/React.forwardRef(({\n className,\n validated,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'form',\n ...props\n}, ref) => /*#__PURE__*/_jsx(Component, {\n ...props,\n ref: ref,\n className: classNames(className, validated && 'was-validated')\n}));\nForm.displayName = 'Form';\nForm.propTypes = propTypes;\nexport default Object.assign(Form, {\n Group: FormGroup,\n Control: FormControl,\n Floating: FormFloating,\n Check: FormCheck,\n Switch,\n Label: FormLabel,\n Text: FormText,\n Range: FormRange,\n Select: FormSelect,\n FloatingLabel\n});","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormCheckLabel = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n htmlFor,\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-check-label');\n return /*#__PURE__*/_jsx(\"label\", {\n ...props,\n ref: ref,\n htmlFor: htmlFor || controlId,\n className: classNames(className, bsPrefix)\n });\n});\nFormCheckLabel.displayName = 'FormCheckLabel';\nexport default FormCheckLabel;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport Feedback from './Feedback';\nimport FormCheckInput from './FormCheckInput';\nimport FormCheckLabel from './FormCheckLabel';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { hasChildOfType } from './ElementChildren';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst FormCheck = /*#__PURE__*/React.forwardRef(({\n id,\n bsPrefix,\n bsSwitchPrefix,\n inline = false,\n reverse = false,\n disabled = false,\n isValid = false,\n isInvalid = false,\n feedbackTooltip = false,\n feedback,\n feedbackType,\n className,\n style,\n title = '',\n type = 'checkbox',\n label,\n children,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as = 'input',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-check');\n bsSwitchPrefix = useBootstrapPrefix(bsSwitchPrefix, 'form-switch');\n const {\n controlId\n } = useContext(FormContext);\n const innerFormContext = useMemo(() => ({\n controlId: id || controlId\n }), [controlId, id]);\n const hasLabel = !children && label != null && label !== false || hasChildOfType(children, FormCheckLabel);\n const input = /*#__PURE__*/_jsx(FormCheckInput, {\n ...props,\n type: type === 'switch' ? 'checkbox' : type,\n ref: ref,\n isValid: isValid,\n isInvalid: isInvalid,\n disabled: disabled,\n as: as\n });\n return /*#__PURE__*/_jsx(FormContext.Provider, {\n value: innerFormContext,\n children: /*#__PURE__*/_jsx(\"div\", {\n style: style,\n className: classNames(className, hasLabel && bsPrefix, inline && `${bsPrefix}-inline`, reverse && `${bsPrefix}-reverse`, type === 'switch' && bsSwitchPrefix),\n children: children || /*#__PURE__*/_jsxs(_Fragment, {\n children: [input, hasLabel && /*#__PURE__*/_jsx(FormCheckLabel, {\n title: title,\n children: label\n }), feedback && /*#__PURE__*/_jsx(Feedback, {\n type: feedbackType,\n tooltip: feedbackTooltip,\n children: feedback\n })]\n })\n })\n });\n});\nFormCheck.displayName = 'FormCheck';\nexport default Object.assign(FormCheck, {\n Input: FormCheckInput,\n Label: FormCheckLabel\n});","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormCheckInput = /*#__PURE__*/React.forwardRef(({\n id,\n bsPrefix,\n className,\n type = 'checkbox',\n isValid = false,\n isInvalid = false,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'input',\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-check-input');\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n ref: ref,\n type: type,\n id: id || controlId,\n className: classNames(className, bsPrefix, isValid && 'is-valid', isInvalid && 'is-invalid')\n });\n});\nFormCheckInput.displayName = 'FormCheckInput';\nexport default FormCheckInput;","\"use client\";\n\nimport * as React from 'react';\n\n// TODO\n\nconst FormContext = /*#__PURE__*/React.createContext({});\nexport default FormContext;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport warning from 'warning';\nimport Feedback from './Feedback';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormControl = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n type,\n size,\n htmlSize,\n id,\n className,\n isValid = false,\n isInvalid = false,\n plaintext,\n readOnly,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'input',\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-control');\n process.env.NODE_ENV !== \"production\" ? warning(controlId == null || !id, '`controlId` is ignored on `<FormControl>` when `id` is specified.') : void 0;\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n type: type,\n size: htmlSize,\n ref: ref,\n readOnly: readOnly,\n id: id || controlId,\n className: classNames(className, plaintext ? `${bsPrefix}-plaintext` : bsPrefix, size && `${bsPrefix}-${size}`, type === 'color' && `${bsPrefix}-color`, isValid && 'is-valid', isInvalid && 'is-invalid')\n });\n});\nFormControl.displayName = 'FormControl';\nexport default Object.assign(FormControl, {\n Feedback\n});","import * as React from 'react';\nimport { useMemo } from 'react';\nimport FormContext from './FormContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormGroup = /*#__PURE__*/React.forwardRef(({\n controlId,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const context = useMemo(() => ({\n controlId\n }), [controlId]);\n return /*#__PURE__*/_jsx(FormContext.Provider, {\n value: context,\n children: /*#__PURE__*/_jsx(Component, {\n ...props,\n ref: ref\n })\n });\n});\nFormGroup.displayName = 'FormGroup';\nexport default FormGroup;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst InputGroupText = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'span',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'input-group-text');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nInputGroupText.displayName = 'InputGroupText';\nexport default InputGroupText;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport FormCheckInput from './FormCheckInput';\nimport InputGroupContext from './InputGroupContext';\nimport InputGroupText from './InputGroupText';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst InputGroupCheckbox = props => /*#__PURE__*/_jsx(InputGroupText, {\n children: /*#__PURE__*/_jsx(FormCheckInput, {\n type: \"checkbox\",\n ...props\n })\n});\nconst InputGroupRadio = props => /*#__PURE__*/_jsx(InputGroupText, {\n children: /*#__PURE__*/_jsx(FormCheckInput, {\n type: \"radio\",\n ...props\n })\n});\nconst InputGroup = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n size,\n hasValidation,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'input-group');\n\n // Intentionally an empty object. Used in detecting if a dropdown\n // exists under an input group.\n const contextValue = useMemo(() => ({}), []);\n return /*#__PURE__*/_jsx(InputGroupContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, bsPrefix, size && `${bsPrefix}-${size}`, hasValidation && 'has-validation')\n })\n });\n});\nInputGroup.displayName = 'InputGroup';\nexport default Object.assign(InputGroup, {\n Text: InputGroupText,\n Radio: InputGroupRadio,\n Checkbox: InputGroupCheckbox\n});","\"use client\";\n\nimport * as React from 'react';\nconst context = /*#__PURE__*/React.createContext(null);\ncontext.displayName = 'InputGroupContext';\nexport default context;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport warning from 'warning';\nimport { useUncontrolled } from 'uncontrollable';\nimport BaseNav from '@restart/ui/Nav';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport ListGroupItem from './ListGroupItem';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ListGroup = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n className,\n bsPrefix: initialBsPrefix,\n variant,\n horizontal,\n numbered,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as = 'div',\n ...controlledProps\n } = useUncontrolled(props, {\n activeKey: 'onSelect'\n });\n const bsPrefix = useBootstrapPrefix(initialBsPrefix, 'list-group');\n let horizontalVariant;\n if (horizontal) {\n horizontalVariant = horizontal === true ? 'horizontal' : `horizontal-${horizontal}`;\n }\n process.env.NODE_ENV !== \"production\" ? warning(!(horizontal && variant === 'flush'), '`variant=\"flush\"` and `horizontal` should not be used together.') : void 0;\n return /*#__PURE__*/_jsx(BaseNav, {\n ref: ref,\n ...controlledProps,\n as: as,\n className: classNames(className, bsPrefix, variant && `${bsPrefix}-${variant}`, horizontalVariant && `${bsPrefix}-${horizontalVariant}`, numbered && `${bsPrefix}-numbered`)\n });\n});\nListGroup.displayName = 'ListGroup';\nexport default Object.assign(ListGroup, {\n Item: ListGroupItem\n});","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport warning from 'warning';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport { useNavItem } from '@restart/ui/NavItem';\nimport { makeEventKey } from '@restart/ui/SelectableContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ListGroupItem = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n active,\n disabled,\n eventKey,\n className,\n variant,\n action,\n as,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'list-group-item');\n const [navItemProps, meta] = useNavItem({\n key: makeEventKey(eventKey, props.href),\n active,\n ...props\n });\n const handleClick = useEventCallback(event => {\n if (disabled) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n navItemProps.onClick(event);\n });\n if (disabled && props.tabIndex === undefined) {\n props.tabIndex = -1;\n props['aria-disabled'] = true;\n }\n\n // eslint-disable-next-line no-nested-ternary\n const Component = as || (action ? props.href ? 'a' : 'button' : 'div');\n process.env.NODE_ENV !== \"production\" ? warning(as || !(!action && props.href), '`action=false` and `href` should not be used together.') : void 0;\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n ...navItemProps,\n onClick: handleClick,\n className: classNames(className, bsPrefix, meta.isActive && 'active', disabled && 'disabled', variant && `${bsPrefix}-${variant}`, action && `${bsPrefix}-action`)\n });\n});\nListGroupItem.displayName = 'ListGroupItem';\nexport default ListGroupItem;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ModalBody = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'div',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'modal-body');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nModalBody.displayName = 'ModalBody';\nexport default ModalBody;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ModalDialog = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n contentClassName,\n centered,\n size,\n fullscreen,\n children,\n scrollable,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'modal');\n const dialogClass = `${bsPrefix}-dialog`;\n const fullScreenClass = typeof fullscreen === 'string' ? `${bsPrefix}-fullscreen-${fullscreen}` : `${bsPrefix}-fullscreen`;\n return /*#__PURE__*/_jsx(\"div\", {\n ...props,\n ref: ref,\n className: classNames(dialogClass, className, size && `${bsPrefix}-${size}`, centered && `${dialogClass}-centered`, scrollable && `${dialogClass}-scrollable`, fullscreen && fullScreenClass),\n children: /*#__PURE__*/_jsx(\"div\", {\n className: classNames(`${bsPrefix}-content`, contentClassName),\n children: children\n })\n });\n});\nModalDialog.displayName = 'ModalDialog';\nexport default ModalDialog;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ModalFooter = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'div',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'modal-footer');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nModalFooter.displayName = 'ModalFooter';\nexport default ModalFooter;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport AbstractModalHeader from './AbstractModalHeader';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ModalHeader = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n closeLabel = 'Close',\n closeButton = false,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'modal-header');\n return /*#__PURE__*/_jsx(AbstractModalHeader, {\n ref: ref,\n ...props,\n className: classNames(className, bsPrefix),\n closeLabel: closeLabel,\n closeButton: closeButton\n });\n});\nModalHeader.displayName = 'ModalHeader';\nexport default ModalHeader;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport divWithClassName from './divWithClassName';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DivStyledAsH4 = divWithClassName('h4');\nconst ModalTitle = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = DivStyledAsH4,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'modal-title');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nModalTitle.displayName = 'ModalTitle';\nexport default ModalTitle;","\"use client\";\n\nimport classNames from 'classnames';\nimport addEventListener from 'dom-helpers/addEventListener';\nimport canUseDOM from 'dom-helpers/canUseDOM';\nimport ownerDocument from 'dom-helpers/ownerDocument';\nimport removeEventListener from 'dom-helpers/removeEventListener';\nimport getScrollbarSize from 'dom-helpers/scrollbarSize';\nimport useCallbackRef from '@restart/hooks/useCallbackRef';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport useWillUnmount from '@restart/hooks/useWillUnmount';\nimport transitionEnd from 'dom-helpers/transitionEnd';\nimport * as React from 'react';\nimport { useCallback, useMemo, useRef, useState } from 'react';\nimport BaseModal from '@restart/ui/Modal';\nimport { getSharedManager } from './BootstrapModalManager';\nimport Fade from './Fade';\nimport ModalBody from './ModalBody';\nimport ModalContext from './ModalContext';\nimport ModalDialog from './ModalDialog';\nimport ModalFooter from './ModalFooter';\nimport ModalHeader from './ModalHeader';\nimport ModalTitle from './ModalTitle';\nimport { useBootstrapPrefix, useIsRTL } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/* eslint-disable no-use-before-define, react/no-multi-comp */\nfunction DialogTransition(props) {\n return /*#__PURE__*/_jsx(Fade, {\n ...props,\n timeout: null\n });\n}\nfunction BackdropTransition(props) {\n return /*#__PURE__*/_jsx(Fade, {\n ...props,\n timeout: null\n });\n}\n\n/* eslint-enable no-use-before-define */\nconst Modal = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n style,\n dialogClassName,\n contentClassName,\n children,\n dialogAs: Dialog = ModalDialog,\n 'data-bs-theme': dataBsTheme,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n /* BaseModal props */\n\n show = false,\n animation = true,\n backdrop = true,\n keyboard = true,\n onEscapeKeyDown,\n onShow,\n onHide,\n container,\n autoFocus = true,\n enforceFocus = true,\n restoreFocus = true,\n restoreFocusOptions,\n onEntered,\n onExit,\n onExiting,\n onEnter,\n onEntering,\n onExited,\n backdropClassName,\n manager: propsManager,\n ...props\n}, ref) => {\n const [modalStyle, setStyle] = useState({});\n const [animateStaticModal, setAnimateStaticModal] = useState(false);\n const waitingForMouseUpRef = useRef(false);\n const ignoreBackdropClickRef = useRef(false);\n const removeStaticModalAnimationRef = useRef(null);\n const [modal, setModalRef] = useCallbackRef();\n const mergedRef = useMergedRefs(ref, setModalRef);\n const handleHide = useEventCallback(onHide);\n const isRTL = useIsRTL();\n bsPrefix = useBootstrapPrefix(bsPrefix, 'modal');\n const modalContext = useMemo(() => ({\n onHide: handleHide\n }), [handleHide]);\n function getModalManager() {\n if (propsManager) return propsManager;\n return getSharedManager({\n isRTL\n });\n }\n function updateDialogStyle(node) {\n if (!canUseDOM) return;\n const containerIsOverflowing = getModalManager().getScrollbarWidth() > 0;\n const modalIsOverflowing = node.scrollHeight > ownerDocument(node).documentElement.clientHeight;\n setStyle({\n paddingRight: containerIsOverflowing && !modalIsOverflowing ? getScrollbarSize() : undefined,\n paddingLeft: !containerIsOverflowing && modalIsOverflowing ? getScrollbarSize() : undefined\n });\n }\n const handleWindowResize = useEventCallback(() => {\n if (modal) {\n updateDialogStyle(modal.dialog);\n }\n });\n useWillUnmount(() => {\n removeEventListener(window, 'resize', handleWindowResize);\n removeStaticModalAnimationRef.current == null || removeStaticModalAnimationRef.current();\n });\n\n // We prevent the modal from closing during a drag by detecting where the\n // click originates from. If it starts in the modal and then ends outside\n // don't close.\n const handleDialogMouseDown = () => {\n waitingForMouseUpRef.current = true;\n };\n const handleMouseUp = e => {\n if (waitingForMouseUpRef.current && modal && e.target === modal.dialog) {\n ignoreBackdropClickRef.current = true;\n }\n waitingForMouseUpRef.current = false;\n };\n const handleStaticModalAnimation = () => {\n setAnimateStaticModal(true);\n removeStaticModalAnimationRef.current = transitionEnd(modal.dialog, () => {\n setAnimateStaticModal(false);\n });\n };\n const handleStaticBackdropClick = e => {\n if (e.target !== e.currentTarget) {\n return;\n }\n handleStaticModalAnimation();\n };\n const handleClick = e => {\n if (backdrop === 'static') {\n handleStaticBackdropClick(e);\n return;\n }\n if (ignoreBackdropClickRef.current || e.target !== e.currentTarget) {\n ignoreBackdropClickRef.current = false;\n return;\n }\n onHide == null || onHide();\n };\n const handleEscapeKeyDown = e => {\n if (keyboard) {\n onEscapeKeyDown == null || onEscapeKeyDown(e);\n } else {\n // Call preventDefault to stop modal from closing in @restart/ui.\n e.preventDefault();\n if (backdrop === 'static') {\n // Play static modal animation.\n handleStaticModalAnimation();\n }\n }\n };\n const handleEnter = (node, isAppearing) => {\n if (node) {\n updateDialogStyle(node);\n }\n onEnter == null || onEnter(node, isAppearing);\n };\n const handleExit = node => {\n removeStaticModalAnimationRef.current == null || removeStaticModalAnimationRef.current();\n onExit == null || onExit(node);\n };\n const handleEntering = (node, isAppearing) => {\n onEntering == null || onEntering(node, isAppearing);\n\n // FIXME: This should work even when animation is disabled.\n addEventListener(window, 'resize', handleWindowResize);\n };\n const handleExited = node => {\n if (node) node.style.display = ''; // RHL removes it sometimes\n onExited == null || onExited(node);\n\n // FIXME: This should work even when animation is disabled.\n removeEventListener(window, 'resize', handleWindowResize);\n };\n const renderBackdrop = useCallback(backdropProps => /*#__PURE__*/_jsx(\"div\", {\n ...backdropProps,\n className: classNames(`${bsPrefix}-backdrop`, backdropClassName, !animation && 'show')\n }), [animation, backdropClassName, bsPrefix]);\n const baseModalStyle = {\n ...style,\n ...modalStyle\n };\n\n // If `display` is not set to block, autoFocus inside the modal fails\n // https://github.com/react-bootstrap/react-bootstrap/issues/5102\n baseModalStyle.display = 'block';\n const renderDialog = dialogProps => /*#__PURE__*/_jsx(\"div\", {\n role: \"dialog\",\n ...dialogProps,\n style: baseModalStyle,\n className: classNames(className, bsPrefix, animateStaticModal && `${bsPrefix}-static`, !animation && 'show'),\n onClick: backdrop ? handleClick : undefined,\n onMouseUp: handleMouseUp,\n \"data-bs-theme\": dataBsTheme,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledby,\n \"aria-describedby\": ariaDescribedby,\n children: /*#__PURE__*/_jsx(Dialog, {\n ...props,\n onMouseDown: handleDialogMouseDown,\n className: dialogClassName,\n contentClassName: contentClassName,\n children: children\n })\n });\n return /*#__PURE__*/_jsx(ModalContext.Provider, {\n value: modalContext,\n children: /*#__PURE__*/_jsx(BaseModal, {\n show: show,\n ref: mergedRef,\n backdrop: backdrop,\n container: container,\n keyboard: true // Always set true - see handleEscapeKeyDown\n ,\n autoFocus: autoFocus,\n enforceFocus: enforceFocus,\n restoreFocus: restoreFocus,\n restoreFocusOptions: restoreFocusOptions,\n onEscapeKeyDown: handleEscapeKeyDown,\n onShow: onShow,\n onHide: onHide,\n onEnter: handleEnter,\n onEntering: handleEntering,\n onEntered: onEntered,\n onExit: handleExit,\n onExiting: onExiting,\n onExited: handleExited,\n manager: getModalManager(),\n transition: animation ? DialogTransition : undefined,\n backdropTransition: animation ? BackdropTransition : undefined,\n renderBackdrop: renderBackdrop,\n renderDialog: renderDialog\n })\n });\n});\nModal.displayName = 'Modal';\nexport default Object.assign(Modal, {\n Body: ModalBody,\n Header: ModalHeader,\n Title: ModalTitle,\n Footer: ModalFooter,\n Dialog: ModalDialog,\n TRANSITION_DURATION: 300,\n BACKDROP_TRANSITION_DURATION: 150\n});","\"use client\";\n\nimport * as React from 'react';\nconst ModalContext = /*#__PURE__*/React.createContext({\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onHide() {}\n});\nexport default ModalContext;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { useUncontrolled } from 'uncontrollable';\nimport BaseNav from '@restart/ui/Nav';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport NavbarContext from './NavbarContext';\nimport CardHeaderContext from './CardHeaderContext';\nimport NavItem from './NavItem';\nimport NavLink from './NavLink';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Nav = /*#__PURE__*/React.forwardRef((uncontrolledProps, ref) => {\n const {\n as = 'div',\n bsPrefix: initialBsPrefix,\n variant,\n fill = false,\n justify = false,\n navbar,\n navbarScroll,\n className,\n activeKey,\n ...props\n } = useUncontrolled(uncontrolledProps, {\n activeKey: 'onSelect'\n });\n const bsPrefix = useBootstrapPrefix(initialBsPrefix, 'nav');\n let navbarBsPrefix;\n let cardHeaderBsPrefix;\n let isNavbar = false;\n const navbarContext = useContext(NavbarContext);\n const cardHeaderContext = useContext(CardHeaderContext);\n if (navbarContext) {\n navbarBsPrefix = navbarContext.bsPrefix;\n isNavbar = navbar == null ? true : navbar;\n } else if (cardHeaderContext) {\n ({\n cardHeaderBsPrefix\n } = cardHeaderContext);\n }\n return /*#__PURE__*/_jsx(BaseNav, {\n as: as,\n ref: ref,\n activeKey: activeKey,\n className: classNames(className, {\n [bsPrefix]: !isNavbar,\n [`${navbarBsPrefix}-nav`]: isNavbar,\n [`${navbarBsPrefix}-nav-scroll`]: isNavbar && navbarScroll,\n [`${cardHeaderBsPrefix}-${variant}`]: !!cardHeaderBsPrefix,\n [`${bsPrefix}-${variant}`]: !!variant,\n [`${bsPrefix}-fill`]: fill,\n [`${bsPrefix}-justified`]: justify\n }),\n ...props\n });\n});\nNav.displayName = 'Nav';\nexport default Object.assign(Nav, {\n Item: NavItem,\n Link: NavLink\n});","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst NavItem = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'div',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'nav-item');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nNavItem.displayName = 'NavItem';\nexport default NavItem;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport Anchor from '@restart/ui/Anchor';\nimport { useNavItem } from '@restart/ui/NavItem';\nimport { makeEventKey } from '@restart/ui/SelectableContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst NavLink = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n as: Component = Anchor,\n active,\n eventKey,\n disabled = false,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'nav-link');\n const [navItemProps, meta] = useNavItem({\n key: makeEventKey(eventKey, props.href),\n active,\n disabled,\n ...props\n });\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n ...navItemProps,\n ref: ref,\n disabled: disabled,\n className: classNames(className, bsPrefix, disabled && 'disabled', meta.isActive && 'active')\n });\n});\nNavLink.displayName = 'NavLink';\nexport default NavLink;","\"use client\";\n\nimport * as React from 'react';\n\n// TODO: check\n\nconst context = /*#__PURE__*/React.createContext(null);\ncontext.displayName = 'NavbarContext';\nexport default context;","\"use client\";\n\nimport * as React from 'react';\nimport { useEffect, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport BaseOverlay from '@restart/ui/Overlay';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport useIsomorphicEffect from '@restart/hooks/useIsomorphicEffect';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport useOverlayOffset from './useOverlayOffset';\nimport Fade from './Fade';\nimport safeFindDOMNode from './safeFindDOMNode';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction wrapRefs(props, arrowProps) {\n const {\n ref\n } = props;\n const {\n ref: aRef\n } = arrowProps;\n props.ref = ref.__wrapped || (ref.__wrapped = r => ref(safeFindDOMNode(r)));\n arrowProps.ref = aRef.__wrapped || (aRef.__wrapped = r => aRef(safeFindDOMNode(r)));\n}\nconst Overlay = /*#__PURE__*/React.forwardRef(({\n children: overlay,\n transition = Fade,\n popperConfig = {},\n rootClose = false,\n placement = 'top',\n show: outerShow = false,\n ...outerProps\n}, outerRef) => {\n const popperRef = useRef({});\n const [firstRenderedState, setFirstRenderedState] = useState(null);\n const [ref, modifiers] = useOverlayOffset(outerProps.offset);\n const mergedRef = useMergedRefs(outerRef, ref);\n const actualTransition = transition === true ? Fade : transition || undefined;\n const handleFirstUpdate = useEventCallback(state => {\n setFirstRenderedState(state);\n popperConfig == null || popperConfig.onFirstUpdate == null || popperConfig.onFirstUpdate(state);\n });\n useIsomorphicEffect(() => {\n if (firstRenderedState && outerProps.target) {\n // Must wait for target element to resolve before updating popper.\n popperRef.current.scheduleUpdate == null || popperRef.current.scheduleUpdate();\n }\n }, [firstRenderedState, outerProps.target]);\n useEffect(() => {\n if (!outerShow) {\n setFirstRenderedState(null);\n }\n }, [outerShow]);\n return /*#__PURE__*/_jsx(BaseOverlay, {\n ...outerProps,\n ref: mergedRef,\n popperConfig: {\n ...popperConfig,\n modifiers: modifiers.concat(popperConfig.modifiers || []),\n onFirstUpdate: handleFirstUpdate\n },\n transition: actualTransition,\n rootClose: rootClose,\n placement: placement,\n show: outerShow,\n children: (overlayProps, {\n arrowProps,\n popper: popperObj,\n show\n }) => {\n var _popperObj$state;\n wrapRefs(overlayProps, arrowProps);\n // Need to get placement from popper object, handling case when overlay is flipped using 'flip' prop\n const updatedPlacement = popperObj == null ? void 0 : popperObj.placement;\n const popper = Object.assign(popperRef.current, {\n state: popperObj == null ? void 0 : popperObj.state,\n scheduleUpdate: popperObj == null ? void 0 : popperObj.update,\n placement: updatedPlacement,\n outOfBoundaries: (popperObj == null || (_popperObj$state = popperObj.state) == null || (_popperObj$state = _popperObj$state.modifiersData.hide) == null ? void 0 : _popperObj$state.isReferenceHidden) || false,\n strategy: popperConfig.strategy\n });\n const hasDoneInitialMeasure = !!firstRenderedState;\n if (typeof overlay === 'function') return overlay({\n ...overlayProps,\n placement: updatedPlacement,\n show,\n ...(!transition && show && {\n className: 'show'\n }),\n popper,\n arrowProps,\n hasDoneInitialMeasure\n });\n return /*#__PURE__*/React.cloneElement(overlay, {\n ...overlayProps,\n placement: updatedPlacement,\n arrowProps,\n popper,\n hasDoneInitialMeasure,\n className: classNames(overlay.props.className, !transition && show && 'show'),\n style: {\n ...overlay.props.style,\n ...overlayProps.style\n }\n });\n }\n });\n});\nOverlay.displayName = 'Overlay';\nexport default Overlay;","\"use client\";\n\nimport { useMemo, useRef } from 'react';\nimport hasClass from 'dom-helpers/hasClass';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport Popover from './Popover';\nimport Tooltip from './Tooltip';\n\n// This is meant for internal use.\n// This applies a custom offset to the overlay if it's a popover or tooltip.\nexport default function useOverlayOffset(customOffset) {\n const overlayRef = useRef(null);\n const popoverClass = useBootstrapPrefix(undefined, 'popover');\n const tooltipClass = useBootstrapPrefix(undefined, 'tooltip');\n const offset = useMemo(() => ({\n name: 'offset',\n options: {\n offset: () => {\n if (customOffset) {\n return customOffset;\n }\n if (overlayRef.current) {\n if (hasClass(overlayRef.current, popoverClass)) {\n return Popover.POPPER_OFFSET;\n }\n if (hasClass(overlayRef.current, tooltipClass)) {\n return Tooltip.TOOLTIP_OFFSET;\n }\n }\n return [0, 0];\n }\n }\n }), [customOffset, popoverClass, tooltipClass]);\n return [overlayRef, [offset]];\n}","\"use client\";\n\nimport contains from 'dom-helpers/contains';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { cloneElement, useCallback, useRef } from 'react';\nimport useTimeout from '@restart/hooks/useTimeout';\nimport warning from 'warning';\nimport { useUncontrolledProp } from 'uncontrollable';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport { getChildRef } from '@restart/ui/utils';\nimport Overlay from './Overlay';\nimport safeFindDOMNode from './safeFindDOMNode';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction normalizeDelay(delay) {\n return delay && typeof delay === 'object' ? delay : {\n show: delay,\n hide: delay\n };\n}\n\n// Simple implementation of mouseEnter and mouseLeave.\n// React's built version is broken: https://github.com/facebook/react/issues/4251\n// for cases when the trigger is disabled and mouseOut/Over can cause flicker\n// moving from one child element to another.\nfunction handleMouseOverOut(\n// eslint-disable-next-line @typescript-eslint/no-shadow\nhandler, args, relatedNative) {\n const [e] = args;\n const target = e.currentTarget;\n const related = e.relatedTarget || e.nativeEvent[relatedNative];\n if ((!related || related !== target) && !contains(target, related)) {\n handler(...args);\n }\n}\nconst triggerType = PropTypes.oneOf(['click', 'hover', 'focus']);\nconst OverlayTrigger = ({\n trigger = ['hover', 'focus'],\n overlay,\n children,\n popperConfig = {},\n show: propsShow,\n defaultShow = false,\n onToggle,\n delay: propsDelay,\n placement,\n flip = placement && placement.indexOf('auto') !== -1,\n ...props\n}) => {\n const triggerNodeRef = useRef(null);\n const mergedRef = useMergedRefs(triggerNodeRef, getChildRef(children));\n const timeout = useTimeout();\n const hoverStateRef = useRef('');\n const [show, setShow] = useUncontrolledProp(propsShow, defaultShow, onToggle);\n const delay = normalizeDelay(propsDelay);\n const {\n onFocus,\n onBlur,\n onClick\n } = typeof children !== 'function' ? React.Children.only(children).props : {};\n const attachRef = r => {\n mergedRef(safeFindDOMNode(r));\n };\n const handleShow = useCallback(() => {\n timeout.clear();\n hoverStateRef.current = 'show';\n if (!delay.show) {\n setShow(true);\n return;\n }\n timeout.set(() => {\n if (hoverStateRef.current === 'show') setShow(true);\n }, delay.show);\n }, [delay.show, setShow, timeout]);\n const handleHide = useCallback(() => {\n timeout.clear();\n hoverStateRef.current = 'hide';\n if (!delay.hide) {\n setShow(false);\n return;\n }\n timeout.set(() => {\n if (hoverStateRef.current === 'hide') setShow(false);\n }, delay.hide);\n }, [delay.hide, setShow, timeout]);\n const handleFocus = useCallback((...args) => {\n handleShow();\n onFocus == null || onFocus(...args);\n }, [handleShow, onFocus]);\n const handleBlur = useCallback((...args) => {\n handleHide();\n onBlur == null || onBlur(...args);\n }, [handleHide, onBlur]);\n const handleClick = useCallback((...args) => {\n setShow(!show);\n onClick == null || onClick(...args);\n }, [onClick, setShow, show]);\n const handleMouseOver = useCallback((...args) => {\n handleMouseOverOut(handleShow, args, 'fromElement');\n }, [handleShow]);\n const handleMouseOut = useCallback((...args) => {\n handleMouseOverOut(handleHide, args, 'toElement');\n }, [handleHide]);\n const triggers = trigger == null ? [] : [].concat(trigger);\n const triggerProps = {\n ref: attachRef\n };\n if (triggers.indexOf('click') !== -1) {\n triggerProps.onClick = handleClick;\n }\n if (triggers.indexOf('focus') !== -1) {\n triggerProps.onFocus = handleFocus;\n triggerProps.onBlur = handleBlur;\n }\n if (triggers.indexOf('hover') !== -1) {\n process.env.NODE_ENV !== \"production\" ? warning(triggers.length > 1, '[react-bootstrap] Specifying only the `\"hover\"` trigger limits the visibility of the overlay to just mouse users. Consider also including the `\"focus\"` trigger so that touch and keyboard only users can see the overlay as well.') : void 0;\n triggerProps.onMouseOver = handleMouseOver;\n triggerProps.onMouseOut = handleMouseOut;\n }\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [typeof children === 'function' ? children(triggerProps) : /*#__PURE__*/cloneElement(children, triggerProps), /*#__PURE__*/_jsx(Overlay, {\n ...props,\n show: show,\n onHide: handleHide,\n flip: flip,\n placement: placement,\n popperConfig: popperConfig,\n target: triggerNodeRef.current,\n children: overlay\n })]\n });\n};\nexport default OverlayTrigger;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst PopoverHeader = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'div',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'popover-header');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nPopoverHeader.displayName = 'PopoverHeader';\nexport default PopoverHeader;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst PopoverBody = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'div',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'popover-body');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nPopoverBody.displayName = 'PopoverBody';\nexport default PopoverBody;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useIsRTL } from './ThemeProvider';\nimport PopoverHeader from './PopoverHeader';\nimport PopoverBody from './PopoverBody';\nimport { getOverlayDirection } from './helpers';\nimport getInitialPopperStyles from './getInitialPopperStyles';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst Popover = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n placement = 'right',\n className,\n style,\n children,\n body,\n arrowProps,\n hasDoneInitialMeasure,\n popper,\n show,\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'popover');\n const isRTL = useIsRTL();\n const [primaryPlacement] = (placement == null ? void 0 : placement.split('-')) || [];\n const bsDirection = getOverlayDirection(primaryPlacement, isRTL);\n let computedStyle = style;\n if (show && !hasDoneInitialMeasure) {\n computedStyle = {\n ...style,\n ...getInitialPopperStyles(popper == null ? void 0 : popper.strategy)\n };\n }\n return /*#__PURE__*/_jsxs(\"div\", {\n ref: ref,\n role: \"tooltip\",\n style: computedStyle,\n \"x-placement\": primaryPlacement,\n className: classNames(className, decoratedBsPrefix, primaryPlacement && `bs-popover-${bsDirection}`),\n ...props,\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"popover-arrow\",\n ...arrowProps\n }), body ? /*#__PURE__*/_jsx(PopoverBody, {\n children: children\n }) : children]\n });\n});\nexport default Object.assign(Popover, {\n Header: PopoverHeader,\n Body: PopoverBody,\n // Default popover offset.\n // https://github.com/twbs/bootstrap/blob/5c32767e0e0dbac2d934bcdee03719a65d3f1187/js/src/popover.js#L28\n POPPER_OFFSET: [0, 8]\n});","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Spinner = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n variant,\n animation = 'border',\n size,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n className,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'spinner');\n const bsSpinnerPrefix = `${bsPrefix}-${animation}`;\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, bsSpinnerPrefix, size && `${bsSpinnerPrefix}-${size}`, variant && `text-${variant}`)\n });\n});\nSpinner.displayName = 'Spinner';\nexport default Spinner;","import PropTypes from 'prop-types';\nimport { DEFAULT_BREAKPOINTS, DEFAULT_MIN_BREAKPOINT } from './ThemeProvider';\nexport function responsivePropType(propType) {\n return PropTypes.oneOfType([propType, PropTypes.shape({\n xs: propType,\n sm: propType,\n md: propType,\n lg: propType,\n xl: propType,\n xxl: propType\n })]);\n}\nexport default function createUtilityClassName(utilityValues, breakpoints = DEFAULT_BREAKPOINTS, minBreakpoint = DEFAULT_MIN_BREAKPOINT) {\n const classes = [];\n Object.entries(utilityValues).forEach(([utilName, utilValue]) => {\n if (utilValue != null) {\n if (typeof utilValue === 'object') {\n breakpoints.forEach(brkPoint => {\n const bpValue = utilValue[brkPoint];\n if (bpValue != null) {\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n classes.push(`${utilName}${infix}-${bpValue}`);\n }\n });\n } else {\n classes.push(`${utilName}-${utilValue}`);\n }\n }\n });\n return classes;\n}","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport createUtilityClassName, { responsivePropType } from './createUtilityClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Stack = /*#__PURE__*/React.forwardRef(({\n as: Component = 'div',\n bsPrefix,\n className,\n direction,\n gap,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, direction === 'horizontal' ? 'hstack' : 'vstack');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n ref: ref,\n className: classNames(className, bsPrefix, ...createUtilityClassName({\n gap\n }, breakpoints, minBreakpoint))\n });\n});\nStack.displayName = 'Stack';\nexport default Stack;","\"use client\";\n\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const DEFAULT_BREAKPOINTS = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nexport const DEFAULT_MIN_BREAKPOINT = 'xs';\nconst ThemeContext = /*#__PURE__*/React.createContext({\n prefixes: {},\n breakpoints: DEFAULT_BREAKPOINTS,\n minBreakpoint: DEFAULT_MIN_BREAKPOINT\n});\nconst {\n Consumer,\n Provider\n} = ThemeContext;\nfunction ThemeProvider({\n prefixes = {},\n breakpoints = DEFAULT_BREAKPOINTS,\n minBreakpoint = DEFAULT_MIN_BREAKPOINT,\n dir,\n children\n}) {\n const contextValue = useMemo(() => ({\n prefixes: {\n ...prefixes\n },\n breakpoints,\n minBreakpoint,\n dir\n }), [prefixes, breakpoints, minBreakpoint, dir]);\n return /*#__PURE__*/_jsx(Provider, {\n value: contextValue,\n children: children\n });\n}\nexport function useBootstrapPrefix(prefix, defaultPrefix) {\n const {\n prefixes\n } = useContext(ThemeContext);\n return prefix || prefixes[defaultPrefix] || defaultPrefix;\n}\nexport function useBootstrapBreakpoints() {\n const {\n breakpoints\n } = useContext(ThemeContext);\n return breakpoints;\n}\nexport function useBootstrapMinBreakpoint() {\n const {\n minBreakpoint\n } = useContext(ThemeContext);\n return minBreakpoint;\n}\nexport function useIsRTL() {\n const {\n dir\n } = useContext(ThemeContext);\n return dir === 'rtl';\n}\nfunction createBootstrapComponent(Component, opts) {\n if (typeof opts === 'string') opts = {\n prefix: opts\n };\n const isClassy = Component.prototype && Component.prototype.isReactComponent;\n // If it's a functional component make sure we don't break it with a ref\n const {\n prefix,\n forwardRefAs = isClassy ? 'ref' : 'innerRef'\n } = opts;\n const Wrapped = /*#__PURE__*/React.forwardRef(({\n ...props\n }, ref) => {\n props[forwardRefAs] = ref;\n const bsPrefix = useBootstrapPrefix(props.bsPrefix, prefix);\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n bsPrefix: bsPrefix\n });\n });\n Wrapped.displayName = `Bootstrap(${Component.displayName || Component.name})`;\n return Wrapped;\n}\nexport { createBootstrapComponent, Consumer as ThemeConsumer };\nexport default ThemeProvider;","import * as React from 'react';\nimport { ENTERING, EXITING } from 'react-transition-group/Transition';\nimport Fade from './Fade';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst fadeStyles = {\n [ENTERING]: 'showing',\n [EXITING]: 'showing show'\n};\nconst ToastFade = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/_jsx(Fade, {\n ...props,\n ref: ref,\n transitionClasses: fadeStyles\n}));\nToastFade.displayName = 'ToastFade';\nexport default ToastFade;","\"use client\";\n\nimport * as React from 'react';\nconst ToastContext = /*#__PURE__*/React.createContext({\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onClose() {}\n});\nexport default ToastContext;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport CloseButton from './CloseButton';\nimport ToastContext from './ToastContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst ToastHeader = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n closeLabel = 'Close',\n closeVariant,\n closeButton = true,\n className,\n children,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'toast-header');\n const context = useContext(ToastContext);\n const handleClick = useEventCallback(e => {\n context == null || context.onClose == null || context.onClose(e);\n });\n return /*#__PURE__*/_jsxs(\"div\", {\n ref: ref,\n ...props,\n className: classNames(bsPrefix, className),\n children: [children, closeButton && /*#__PURE__*/_jsx(CloseButton, {\n \"aria-label\": closeLabel,\n variant: closeVariant,\n onClick: handleClick,\n \"data-dismiss\": \"toast\"\n })]\n });\n});\nToastHeader.displayName = 'ToastHeader';\nexport default ToastHeader;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ToastBody = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'div',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'toast-body');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nToastBody.displayName = 'ToastBody';\nexport default ToastBody;","\"use client\";\n\nimport * as React from 'react';\nimport { useEffect, useMemo, useRef, useCallback } from 'react';\nimport classNames from 'classnames';\nimport useTimeout from '@restart/hooks/useTimeout';\nimport ToastFade from './ToastFade';\nimport ToastHeader from './ToastHeader';\nimport ToastBody from './ToastBody';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport ToastContext from './ToastContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Toast = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n transition: Transition = ToastFade,\n show = true,\n animation = true,\n delay = 5000,\n autohide = false,\n onClose,\n onEntered,\n onExit,\n onExiting,\n onEnter,\n onEntering,\n onExited,\n bg,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'toast');\n\n // We use refs for these, because we don't want to restart the autohide\n // timer in case these values change.\n const delayRef = useRef(delay);\n const onCloseRef = useRef(onClose);\n useEffect(() => {\n delayRef.current = delay;\n onCloseRef.current = onClose;\n }, [delay, onClose]);\n const autohideTimeout = useTimeout();\n const autohideToast = !!(autohide && show);\n const autohideFunc = useCallback(() => {\n if (autohideToast) {\n onCloseRef.current == null || onCloseRef.current();\n }\n }, [autohideToast]);\n useEffect(() => {\n // Only reset timer if show or autohide changes.\n autohideTimeout.set(autohideFunc, delayRef.current);\n }, [autohideTimeout, autohideFunc]);\n const toastContext = useMemo(() => ({\n onClose\n }), [onClose]);\n const hasAnimation = !!(Transition && animation);\n const toast = /*#__PURE__*/_jsx(\"div\", {\n ...props,\n ref: ref,\n className: classNames(bsPrefix, className, bg && `bg-${bg}`, !hasAnimation && (show ? 'show' : 'hide')),\n role: \"alert\",\n \"aria-live\": \"assertive\",\n \"aria-atomic\": \"true\"\n });\n return /*#__PURE__*/_jsx(ToastContext.Provider, {\n value: toastContext,\n children: hasAnimation && Transition ? /*#__PURE__*/_jsx(Transition, {\n in: show,\n onEnter: onEnter,\n onEntering: onEntering,\n onEntered: onEntered,\n onExit: onExit,\n onExiting: onExiting,\n onExited: onExited,\n unmountOnExit: true,\n children: toast\n }) : toast\n });\n});\nToast.displayName = 'Toast';\nexport default Object.assign(Toast, {\n Body: ToastBody,\n Header: ToastHeader\n});","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useIsRTL } from './ThemeProvider';\nimport { getOverlayDirection } from './helpers';\nimport getInitialPopperStyles from './getInitialPopperStyles';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst Tooltip = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n placement = 'right',\n className,\n style,\n children,\n arrowProps,\n hasDoneInitialMeasure,\n popper,\n show,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'tooltip');\n const isRTL = useIsRTL();\n const [primaryPlacement] = (placement == null ? void 0 : placement.split('-')) || [];\n const bsDirection = getOverlayDirection(primaryPlacement, isRTL);\n let computedStyle = style;\n if (show && !hasDoneInitialMeasure) {\n computedStyle = {\n ...style,\n ...getInitialPopperStyles(popper == null ? void 0 : popper.strategy)\n };\n }\n return /*#__PURE__*/_jsxs(\"div\", {\n ref: ref,\n style: computedStyle,\n role: \"tooltip\",\n \"x-placement\": primaryPlacement,\n className: classNames(className, bsPrefix, `bs-tooltip-${bsDirection}`),\n ...props,\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"tooltip-arrow\",\n ...arrowProps\n }), /*#__PURE__*/_jsx(\"div\", {\n className: `${bsPrefix}-inner`,\n children: children\n })]\n });\n});\nTooltip.displayName = 'Tooltip';\nexport default Object.assign(Tooltip, {\n // Default tooltip offset.\n // https://github.com/twbs/bootstrap/blob/beca2a6c7f6bc88b6449339fc76edcda832c59e5/js/src/tooltip.js#L65\n TOOLTIP_OFFSET: [0, 6]\n});","\"use client\";\n\nimport React, { useCallback, useRef } from 'react';\nimport Transition from 'react-transition-group/Transition';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport safeFindDOMNode from './safeFindDOMNode';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n// Normalizes Transition callbacks when nodeRef is used.\nconst TransitionWrapper = /*#__PURE__*/React.forwardRef(({\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExiting,\n onExited,\n addEndListener,\n children,\n childRef,\n ...props\n}, ref) => {\n const nodeRef = useRef(null);\n const mergedRef = useMergedRefs(nodeRef, childRef);\n const attachRef = r => {\n mergedRef(safeFindDOMNode(r));\n };\n const normalize = callback => param => {\n if (callback && nodeRef.current) {\n callback(nodeRef.current, param);\n }\n };\n\n /* eslint-disable react-hooks/exhaustive-deps */\n const handleEnter = useCallback(normalize(onEnter), [onEnter]);\n const handleEntering = useCallback(normalize(onEntering), [onEntering]);\n const handleEntered = useCallback(normalize(onEntered), [onEntered]);\n const handleExit = useCallback(normalize(onExit), [onExit]);\n const handleExiting = useCallback(normalize(onExiting), [onExiting]);\n const handleExited = useCallback(normalize(onExited), [onExited]);\n const handleAddEndListener = useCallback(normalize(addEndListener), [addEndListener]);\n /* eslint-enable react-hooks/exhaustive-deps */\n\n return /*#__PURE__*/_jsx(Transition, {\n ref: ref,\n ...props,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: handleAddEndListener,\n nodeRef: nodeRef,\n children: typeof children === 'function' ? (status, innerProps) =>\n // TODO: Types for RTG missing innerProps, so need to cast.\n children(status, {\n ...innerProps,\n ref: attachRef\n }) : /*#__PURE__*/React.cloneElement(children, {\n ref: attachRef\n })\n });\n});\nexport default TransitionWrapper;","import * as React from 'react';\nimport classNames from 'classnames';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default (className => /*#__PURE__*/React.forwardRef((p, ref) => /*#__PURE__*/_jsx(\"div\", {\n ...p,\n ref: ref,\n className: classNames(p.className, className)\n})));","export default function getInitialPopperStyles(position = 'absolute') {\n return {\n position,\n top: '0',\n left: '0',\n opacity: '0',\n pointerEvents: 'none'\n };\n}","import * as React from 'react';\nexport class BsPrefixComponent extends React.Component {}\n\n// Need to use this instead of typeof Component to get proper type checking.\n\nexport function getOverlayDirection(placement, isRTL) {\n let bsDirection = placement;\n if (placement === 'left') {\n bsDirection = isRTL ? 'end' : 'start';\n } else if (placement === 'right') {\n bsDirection = isRTL ? 'start' : 'end';\n }\n return bsDirection;\n}","import ReactDOM from 'react-dom';\nexport default function safeFindDOMNode(componentOrElement) {\n if (componentOrElement && 'setState' in componentOrElement) {\n return ReactDOM.findDOMNode(componentOrElement);\n }\n return componentOrElement != null ? componentOrElement : null;\n}","import css from 'dom-helpers/css';\nimport transitionEnd from 'dom-helpers/transitionEnd';\nfunction parseDuration(node, property) {\n const str = css(node, property) || '';\n const mult = str.indexOf('ms') === -1 ? 1000 : 1;\n return parseFloat(str) * mult;\n}\nexport default function transitionEndListener(element, handler) {\n const duration = parseDuration(element, 'transitionDuration');\n const delay = parseDuration(element, 'transitionDelay');\n const remove = transitionEnd(element, e => {\n if (e.target === element) {\n remove();\n handler(e);\n }\n }, duration + delay);\n}","// reading a dimension prop will cause the browser to recalculate,\n// which will let our animations work\nexport default function triggerBrowserReflow(node) {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n node.offsetHeight;\n}","import invariant from 'invariant';\nimport { useCallback } from 'react';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nexport default function useWrappedRefWithWarning(ref, componentName) {\n // @ts-ignore\n if (!(process.env.NODE_ENV !== \"production\")) return ref;\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const warningRef = useCallback(refValue => {\n !(refValue == null || !refValue.isReactComponent) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `${componentName} injected a ref to a provided \\`as\\` component that resolved to a component instance instead of a DOM element. ` + 'Use `React.forwardRef` to provide the injected ref to the class component as a prop in order to pass it directly to a DOM element') : invariant(false) : void 0;\n }, [componentName]);\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useMergedRefs(warningRef, ref);\n}"],"names":["Index","type","value","onChange","acceptType","readOnly","imgClassNames","_jsxs","className","children","_jsx","classNames","src","alt","style","maxWidth","maxHeight","ButtonGroup","vertical","UploadImg","uploadCallback","imgPath","disabled","Icon","name","Button","variant","onClick","onRemove","HotQuestions","_questionRes$list","_questionRes$list2","t","useTranslation","keyPrefix","data","questionRes","useHotQuestions","list","length","Card","Header","ListGroup","map","li","ListGroupItem","as","Link","to","pathFactory","questionLanding","id","url_title","action","title","answer_count","accepted_answer_id","count","size","fontSize","onKeyDown","visible","centered","onCancel","onConfirm","cancelText","showCancel","cancelBtnVariant","confirmText","showConfirm","confirmBtnVariant","confirmBtnDisabled","bodyClass","scrollable","Modal","show","onHide","fullscreen","closeButton","Title","Body","Footer","event","React","div","document","createElement","root","ReactDOM","content","onClose","props","render","remove","onOk","e","dangerouslySetInnerHTML","__html","update","updateStore","loginToContinueStore","siteInfo","siteInfoStore","_","closeModal","linkClick","evt","stopPropagation","floppyNavigation","storageLoginRedirect","WelcomeTitle","description","bg1","bg2","timeout","BadgeModal","badge","_badge$icon","user","loggedUserInfoStore","navigate","useNavigate","mutate","useQueryNotificationStatus","handle","async","_bg","_bg2","readNotification","notification_id","badge_award","clearTimeout","destroy","initAnimation","DURATION","bgNode","documentElement","body","badgeModalNode","getElementById","parentNode","setAttribute","AnimateGift","elm","width","clientWidth","height","clientHeight","duration","isLoop","setTimeout","window","innerWidth","innerHeight","destroyAnimation","_bg3","_bg4","useEffect","handleVisibilityChange","visibilityState","addEventListener","removeEventListener","url","badge_id","username","icon","startsWith","level","DefaultModal","confirm","QUESTION_ORDER_KEYS","QuestionList","source","order","orderList","isLoading","_data$list","_data$list2","urlSearchParams","useSearchParams","isSkeletonShow","useSkeletonControl","curOrder","get","curPage","Number","orderKeys","pinData","filter","v","pin","slice","renderData","findIndex","p","viewType","setViewType","useState","Storage","LIST_VIEW_STORAGE_KEY","QueryGroup","currentSort","pathname","i18nKeyPrefix","maxBtnCount","wrapClassName","Dropdown","align","onSelect","key","set","Toggle","Menu","Item","eventKey","active","QuestionListLoader","_Fragment","PinList","handleNavigate","href","BaseUserCard","operator","avatarClass","FormatTime","time","operated_at","created_at","preFix","operation_type","NavLink","status","Array","isArray","tags","tag","index","Tag","slug_name","Counts","votes","vote_count","answers","views","view_count","isAccepted","Empty","Pagination","currentPage","totalSize","pageSize","Form","Label","desc","fieldName","enumValues","enumNames","formData","fieldObject","Select","currentTarget","state","isInvalid","item","String","Stack","direction","_fieldObject$value","Check","inline","label","checked","feedback","errorMsg","feedbackType","handleCheck","TIMEZONES","options","option","TimeZonePicker","BrandUpload","handleChange","Control","placeholder","rows","classnames","flex","actionType","formKit","text","iconName","nowrap","clickCallback","_action$loading2","Toast","useToast","setLoading","handleToast","msg","_action$on_complete","on_complete","toast_return_message","onShow","handleAction","request","method","then","resp","message","callback","refresh_form_config","refreshConfig","handleCallback","catch","ex","finally","_action$loading","loading","loadingText","Spinner","animation","InputGroupBtn","formKitWithContext","uiOpt","undefined","prefixText","suffixText","InputGroup","Text","prefixBtnOptions","suffixBtnOptions","SchemaForm","schema","uiSchema","onSubmit","hiddenSubmit","ref","required","properties","excludes","console","error","join","keys","Object","forEach","k","_k","_uiSchema$k","_metaProp$enum","fieldVal","metaProp","uiCtrl","_metaProp$enum2","enum","validator","errors","requiredValidator","push","reduce","acc","cur","_uiSchema$cur","_uiSchema$cur$uiOpti","_properties$cur","empty","Function","scrollElementIntoView","syncErrors","syncValidator","promises","_uiSchema$key","_key","promise","Promise","allSettled","results","result","reason","useImperativeHandle","isEmpty","noValidate","preventDefault","widget","fieldState","class_name","uiSimplify","simplify","groupClassName","field_class_name","Group","controlId","hidden","Legend","Switch","Timezone","Upload","imageType","Textarea","Input","inputType","SfButton","Feedback","initFormData","prop","defaultVal","default","mergeFormData","target","origin","oi","forwardRef","avatar","searchStr","includes","gravatar","custom","roundedCls","indexOf","DefaultAvatar","memo","pluginSlice","plugins","PluginKit","getPlugins","plugin","activated","authorized_attachment_extensions","writeSettingStore","write","info","pendIndex","nodes","child","ps","PluginFC","component","EditorContext","editor","useContext","tip","disable","isShow","keyMap","onBlur","addKeyMap","wrapText","replaceLines","appendBlock","btnRender","tabIndex","log","context","Table","tableData","ToolItem","ctx","table","makeHeader","col","header","border","makeBody","row","irow","icol","replace","replaceSelection","focus","OL","line","i","FIND_OL_RX","match","UL","FIND_UL_RX","Indent","Outdent","_1","$1","substring","Hr","Heading","headerList","setShowState","isLocked","setLockState","onAddHeader","onMouseEnter","handleMouseEnter","onMouseLeave","handleMouseLeave","handleClick","trim","repeat","Bold","DEFAULTTEXT","_context$editor","Italic","isFocus","setFocusState","cursor","setCursor","opt","keyCode","lang","FormControl","overflowY","codeLanguageType","Code","code","setCode","setVisible","setLang","inputRef","useRef","current","getSelection","onExited","val","split","link","setLink","setName","setSelectionRange","newStr","BlockQuote","FIND_BLOCKQUOTE_RX","TabContent","bsPrefix","Component","useBootstrapPrefix","displayName","getTabTransitionComponent","transition","Fade","NoopTransition","TabPane","rest","isActive","onEnter","onEntering","onEntered","onExit","onExiting","mountOnEnter","unmountOnExit","Transition","useTabPanel","prefix","TabContext","Provider","SelectableContext","in","getDefaultActiveKey","defaultActiveKey","renderTab","tabClassName","tabAttrs","NavItem","role","Tabs","activeKey","controlledProps","useUncontrolled","BaseTabs","Nav","childProps","TabContainer","propTypes","PropTypes","isRequired","Tab","Error","assign","Container","Content","Pane","Image","editorInstance","setEditor","max_image_size","max_attachment_size","authorized_image_extensions","currentTab","setCurrentTab","imageName","setImageName","verifyImageSize","files","canUploadAttachment","allowedAllType","unSupportFiles","from","file","fileName","toLowerCase","find","endsWith","AnswerModal","file_type","otherFiles","attachmentOverSizeFiles","imageFiles","oversizedImages","upload","uploadImage","all","dragenter","dragover","drop","fileList","dataTransfer","startPos","getCursor","endPos","ch","setReadOnly","urls","replaceRange","paste","clipboard","clipboardData","htmlStr","getData","innerText","allPTag","DOMParser","parseFromString","querySelectorAll","textContent","on","off","tab","_e$target","accept","Help","open","fileInputRef","_fileInputRef$current","_fileInputRef$current2","click","call","toLocaleLowerCase","bool","verifyFileSize","contentDOM","range","selection","ranges","doc","lineAt","number","array","entries","run","dispatch","effects","StateEffect","appendConfig","of","keymap","sliceDoc","main","changes","insert","EditorSelection","setSelection","anchor","head","create","change","EditorView","updateListener","docChanged","getValue","toString","setValue","before","after","defaultText","symbolLen","selectionStart","selectionEnd","single","editableCompartment","Compartment","htmlRender","el","config","copyText","copySuccessText","innerHTML","str","_table$parentNode","_table$parentNode2","classList","contains","add","replaceChild","appendChild","a","base","location","URL","rel","pre","_pre$parentNode","_Array$from","codeWrap","codeTool","uniqueId","Date","now","Math","floor","random","position","tooltipTriggerList","tooltipTriggerEl","Tooltip","copyBtn","querySelector","textToCopy","copy","tooltipInstance","setContent","myTooltipEl","useEditor","editorRef","placeholderText","autoFocus","onFocus","isDark","isDarkTheme","theme","padding","outline","whiteSpace","wordWrap","textDecoration","startState","EditorState","extensions","minimalSetup","markdown","codeLanguages","languages","markdownLanguage","lineWrapping","editable","view","parent","cm","createEditorUtils","reconfigure","newValue","init","imgSrc","setImgSrc","nodeName","img","naturalWidth","naturalHeight","currentSrc","ret","parentElement","checkIfInLink","contentClassName","renderTimer","scrollTop","html","setHtml","previewRef","markdownToHtml","_previewRef$current","_previewRef$current2","scrollTo","getHtml","element","ImgViewer","MDEditor","editorPlaceholder","_previewRef$current3","useRenderPlugin","PluginRender","PluginType","Editor","previewElement","Italice","LinkItem","File","Viewer","NavbarBrand","NavbarCollapse","NavbarContext","Collapse","expanded","NavbarToggle","onToggle","useEventCallback","OffcanvasBody","transitionStyles","ENTERING","ENTERED","OffcanvasToggling","inProp","appear","TransitionWrapper","addEndListener","transitionEndListener","childRef","getChildRef","innerProps","EXITING","OffcanvasHeader","closeLabel","AbstractModalHeader","DivStyledAsH5","divWithClassName","OffcanvasTitle","DialogTransition","BackdropTransition","Offcanvas","ariaLabelledby","placement","responsive","backdrop","keyboard","scroll","onEscapeKeyDown","container","enforceFocus","restoreFocus","restoreFocusOptions","backdropClassName","manager","propsManager","renderStaticNode","modalManager","showOffcanvas","setShowOffcanvas","handleHide","hideResponsiveOffcanvas","useBreakpoint","modalContext","useMemo","renderBackdrop","useCallback","backdropProps","renderDialog","dialogProps","ModalContext","BaseModal","handleEnter","node","args","visibility","handleExited","BootstrapModalManager","handleContainerOverflow","getSharedManager","backdropTransition","NavbarOffcanvas","NavbarText","Navbar","initialBsPrefix","expand","bg","fixed","sticky","collapseOnSelect","handleCollapse","expandClass","navbarContext","Brand","redDot","userInfo","logOut","_ucAgent$agent_info","_ucAgent$agent_info2","_ucAgent$agent_info2$","_ucAgent$agent_info$c","_ucAgent$agent_info$c2","agent","ucAgent","userCenterStore","handleLinkClick","shouldProcessLinkClick","getAttribute","handler","inbox","achievement","Avatar","display_name","REACT_BASE_PATH","Divider","enabled","agent_info","control_center","ctrl","_theme_config$theme","useLocation","urlSearch","q","clear","clearUserStore","setSearch","brandingInfo","brandingStore","branding","loginSetting","loginSettingStore","login","updateReview","updateVisible","sideNavStore","tagMatch","useMatch","askUrl","params","slugName","encodeURIComponent","can_revision","Boolean","revision","handleInput","handleSearch","searchUrl","handleLogout","logout","collapse","toggle","navbarStyle","theme_config","themeSettingStore","navbar_style","logo","mobile_logo","NavItems","userCenter","allow_new_registrations","marginTop","Col","lg","cc","dayjs","format","Trans","i18nKey","values","base64","svgClassName","base64ToSvg","timer","TagSelector","hiddenDescription","hiddenCreateBtn","maxTagLength","showRequiredTag","formText","tagStyleMode","errMsg","_tags$filter","containerRef","initialized","setInitialized","focusState","showMenu","setShowMenu","currentIndex","setCurrentIndex","repeatIndex","setRepeatIndex","searchValue","setSearchValue","setTags","requiredTags","setRequiredTags","userPermission","useUserPermission","canAddTag","toast","tagModal","useTagModal","parsed_text","marked","original_text","filterTags","tagArray","handleMenuShow","bol","ele","handleTagSelectorFocus","_inputRef$current","fetchTags","debounce","queryTags","res","resetSearch","handleRemove","scrollIntoView","targetId","offsetTop","top","behavior","_inputRef$current2","handleOutsideClick","_containerRef$current","menuHasContent","_inputRef$current3","elePlaceholder","_inputRef$current4","_inputRef$current5","offsetWidth","handleClickToggle","reserved","recommend","onMouseUp","autoComplete","zIndex","handleCreate","tagAddPermission","has_permission","no_permission_tip","isSuccess","setSuccess","e_mail","setFormData","captcha_code","emailCaptcha","useCaptchaPlugin","submit","req","imgCode","getCaptcha","verify","captcha_id","resendEmail","close","err","isError","handleCaptchaError","handleFormError","md","mail","components","bold","check","setStatus","setVotes","like","setLike","hate","setHated","bookmarkState","setBookmark","collected","collectCount","vCaptcha","votesCount","isLike","isHate","submitVote","_vCaptcha$resolveCapt","isCancel","resolveCaptchaReq","postVote","object_id","is_cancel","vote_status","handleVote","tryNormalLogged","hideCollect","handleBookmark","bookmark","group_id","object_collection_count","paddingLeft","textClassName","tagLanding","qid","aid","setShow","showTip","setShowTip","canSystemShare","setSystemShareState","baseUrl","BASE_ORIGIN","closeShare","_window$navigator","_window$navigator$can","navigator","canShare","lineHeight","minWidth","OverlayTrigger","trigger","overlay","FacebookShareButton","TwitterShareButton","systemShare","share","hasAnswer","memberActions","reportModal","useReportModal","dCaptcha","refreshQuestion","editUrl","submitDeleteQuestion","deleteQuestion","submitDeleteAnswer","deleteAnswer","handleCommon","questionOperation","operation","toastStore","getState","unDeleteQuestion","unDeleteAnswer","reopenQuestion","question_id","handlOtherActions","firstAction","secondAction","Share","handleEdit","targetUrl","checkObjectId","editCheck","isLogged","timelinePath","formatCount","rank","PageItem","activeLabel","linkStyle","linkClassName","Anchor","createButton","defaultValue","First","Prev","Ellipsis","Next","Last","decoratedBsPrefix","pageArr","page","path","searchParams","totalPage","ceil","realPage","mapPage","handleParams","pageNum","min","fill","initialValue","onSendReply","mode","immData","setImmData","pageUsers","usePageUsers","validationErrorMsg","setValidationErrorMsg","usePromptWithUnload","when","handleSendReply","Mentions","getUsers","onSelected","TextArea","parseEditMentionUser","ActionBar","nickName","createdAt","isVote","voteCount","onReply","onVote","onAction","userStatus","userName","Comment","objectId","commentId","pageIndex","setPageIndex","visibleComment","setVisibleComment","currentReplyId","updateCurrentReplyId","commentReplyStore","useQueryComments","comment_id","page_size","comments","setComments","addCaptcha","useCaptchaModal","editCaptcha","scrollToElementTop","bgFadeOut","sort","b","user_id","user_display_name","reply_comment_id","reply_user_display_name","setUsers","submitUpdateComment","up","updateComment","comment","showEdit","reject","resolve","submitAddComment","addComment","splice","users","matchedUsers","userNames","unionBy","commentMarkDown","parseUserInfo","mention_username_list","submitDeleteComment","deleteComment","submitVoteComment","is_vote","handleCancel","handleAddComment","Reactions","showAddCommentBtn","handleClickComment","Reply","member_actions","user_status","autoGrow","scrollHeight","onInput","_staffUserList$map","menuRef","dropdownRef","isRequested","setRequestedState","staffUserList","useSearchUserStaff","mapStaffUsers","searchUser","_dropdownRef$current","lastIndexOf","_dropdownRef$current2","_dropdownRef$current3","filterData","_item$displayName","_item$userName","dateTime","tz","toISOString","valueOf","between","h","formatTime","left","right","margin","delay","autohide","MenuNode","menu","expanding","isLeaf","badgeContent","Accordion","leaf","AccordionNav","menus","pathMatch","m","sm","splat","getOpenKey","openKey","setOpenKey","menuClick","flush","showAvatar","avatarSize","avatarSearchStr","showReputation","nameMaxWidth","isEdit","setEditState","followingTags","useFollowingTags","newTags","tryLoggedAndActivated","ok","handleFollowTags","followTags","slug_name_list","revalidate","alignDirection","alignPropType","xl","xxl","menuRole","renderMenuOnMount","rootCloseEvent","menuVariant","flip","DropdownButton","DropdownToggle","childBsPrefix","DropdownMenu","renderOnMount","sortKey","setUrlSearchParams","delete","moreBtnData","normalBtnData","currentBtn","btn","objectType","newData","oldData","opts","showTitle","showTagUrlSlug","_newData$title","_oldData$title","_tag","_deleteTags","addTags","c","_oldData$tags","deleteTags","_oldData$tags2","pre_index","diffText","main_tag_slug_name","makeMarker","mark","renderCustomArea","part","pos","startMarkNode","endMarkNode","childNodes","nodeType","nodeValue","nextSibling","removeChild","insertAdjacentHTML","ActivateScriptNodes","scriptList","so","script","attributes","attr","custom_head","custom_header","custom_footer","customizeStore","handleCustomHead","handleCustomHeader","handleCustomFooter","primaryColor","primary_color","Color","useLayoutEffect","setThemeColor","themeMetaNode","themeColor","hex","DEFAULT_THEME_COLOR","Helmet","rgb","shiftColor","round","tintColor","shadeColor","fade","string","doInsertCustomCSS","favicon","square_icon","pageTitle","keywords","pageTagStore","items","appVersion","version","hashVersion","siteName","currentLang","getCurrentLang","hostname","setAppGenerator","generatorMetaNode","setDocTitle","sizes","property","itemProp","xs","site_name","showVotes","showAnswers","showViews","showAccepted","classname","httpCode","showErrorCode","pageWrap","display","usePageTags","custom_sidebar","role_id","regex","RegExp","piece","kw","badgePillType","showAwardedCount","earned_count","Badge","pill","award_count","gap","emojiMap","reactions","setReactions","reactIsActive","setReactIsActive","queryReactions","reaction_summary","handleSubmit","_reactions$find","updateReaction","reaction","emoji","is_active","Popover","d","_reactions$find2","_reactions$find3","_emojiMap$find","_emojiMap$find2","tooltip","closeVariant","CloseButton","isAccordionItemSelected","activeEventKey","AccordionCollapse","AccordionContext","only","AccordionBody","AccordionItemContext","AccordionButton","accordionOnClick","alwaysOpen","eventKeyPassed","useAccordionButton","AccordionHeader","ariaControls","AccordionItem","contextValue","Selector","ModalManager","adjustAndStore","adjust","actual","dataset","css","parseFloat","restore","setContainerStyle","containerState","super","this","getElement","addClass","scrollBarWidth","paddingProp","isRTL","marginProp","qsa","removeContainerStyle","removeClass","sharedManager","buttonProps","tagName","useButtonProps","baseClass","CardBody","CardFooter","CardHeader","cardHeaderBsPrefix","CardHeaderContext","CardImg","CardImgOverlay","CardLink","DivStyledAsH6","CardSubtitle","CardText","CardTitle","Img","Subtitle","ImgOverlay","ariaLabel","colProps","spans","breakpoints","useBootstrapBreakpoints","minBreakpoint","useBootstrapMinBreakpoint","classes","brkPoint","propValue","span","offset","infix","useCol","funcs","f","apply","MARGINS","getDefaultDimensionValue","dimension","elem","toUpperCase","margins","parseInt","collapseStyles","EXITED","getDimensionValue","computedDimension","createChainedFunction","handleEntering","handleEntered","handleExit","triggerBrowserReflow","handleExiting","fluid","suffix","DropdownDivider","DropdownHeader","DropdownItem","dropdownItemProps","meta","useDropdownItem","DropdownItemText","pProps","focusFirstItemOnShow","navbar","_4","autoClose","isInputGroup","InputGroupContext","useIsRTL","handleToggle","nextShow","_meta$originalEvent","originalEvent","alignEnd","getDropdownMenuPlacement","directionClasses","down","end","start","DropdownContext","BaseDropdown","itemSelector","ItemText","dropDirection","showProps","popperConfig","isNavbar","contextAlign","alignClasses","menuProps","hasShown","popper","useDropdownMenu","usePopper","useMergedRefs","useWrappedRefWithWarning","useIsomorphicEffect","dropdownContext","toggleProps","useDropdownToggle","func","hasChildOfType","toArray","some","fadeStyles","transitionClasses","isAppearing","FormFloating","FormLabel","column","visuallyHidden","htmlFor","FormContext","columnClass","FormRange","FormSelect","htmlSize","isValid","FormText","muted","FormCheck","FloatingLabel","FormGroup","_ref","validated","Floating","Range","FormCheckLabel","bsSwitchPrefix","reverse","feedbackTooltip","innerFormContext","hasLabel","input","FormCheckInput","plaintext","InputGroupText","hasValidation","Radio","Checkbox","horizontal","numbered","horizontalVariant","BaseNav","navItemProps","useNavItem","makeEventKey","ModalBody","ModalDialog","dialogClass","fullScreenClass","ModalFooter","ModalHeader","DivStyledAsH4","ModalTitle","dialogClassName","dialogAs","Dialog","dataBsTheme","ariaDescribedby","modalStyle","setStyle","animateStaticModal","setAnimateStaticModal","waitingForMouseUpRef","ignoreBackdropClickRef","removeStaticModalAnimationRef","modal","setModalRef","useCallbackRef","mergedRef","getModalManager","updateDialogStyle","canUseDOM","containerIsOverflowing","getScrollbarWidth","modalIsOverflowing","ownerDocument","paddingRight","getScrollbarSize","handleWindowResize","dialog","useWillUnmount","handleDialogMouseDown","handleMouseUp","handleStaticModalAnimation","transitionEnd","handleStaticBackdropClick","baseModalStyle","onMouseDown","TRANSITION_DURATION","BACKDROP_TRANSITION_DURATION","uncontrolledProps","justify","navbarScroll","navbarBsPrefix","cardHeaderContext","Overlay","rootClose","outerShow","outerProps","outerRef","popperRef","firstRenderedState","setFirstRenderedState","modifiers","customOffset","overlayRef","popoverClass","tooltipClass","hasClass","POPPER_OFFSET","TOOLTIP_OFFSET","useOverlayOffset","actualTransition","handleFirstUpdate","onFirstUpdate","scheduleUpdate","BaseOverlay","concat","overlayProps","arrowProps","popperObj","_popperObj$state","aRef","__wrapped","r","safeFindDOMNode","wrapRefs","updatedPlacement","outOfBoundaries","modifiersData","hide","isReferenceHidden","strategy","hasDoneInitialMeasure","handleMouseOverOut","relatedNative","related","relatedTarget","nativeEvent","propsShow","defaultShow","propsDelay","triggerNodeRef","useTimeout","hoverStateRef","useUncontrolledProp","normalizeDelay","handleShow","handleFocus","handleBlur","handleMouseOver","handleMouseOut","triggers","triggerProps","onMouseOver","onMouseOut","cloneElement","PopoverHeader","PopoverBody","primaryPlacement","bsDirection","getOverlayDirection","computedStyle","getInitialPopperStyles","bsSpinnerPrefix","createUtilityClassName","utilityValues","DEFAULT_BREAKPOINTS","DEFAULT_MIN_BREAKPOINT","utilName","utilValue","bpValue","ThemeContext","prefixes","Consumer","defaultPrefix","dir","ToastFade","ToastHeader","ToastContext","ToastBody","delayRef","onCloseRef","autohideTimeout","autohideToast","autohideFunc","toastContext","hasAnimation","nodeRef","attachRef","normalize","param","handleAddEndListener","opacity","pointerEvents","componentOrElement","parseDuration","mult","offsetHeight","componentName"],"sourceRoot":""}