@abtnode/webapp 1.8.28 → 1.8.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- {"version":3,"file":"static/js/5306.7904606c.chunk.js","mappings":"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","sources":["components/launch-blocklet/button.js","components/launch-blocklet/agreement-app.js","components/launch-blocklet/step-agreement.js","components/table.js","components/table-icons.js","components/blocklet/service.js","components/blocklet/router/domain-actions.js","components/blocklet/router/rule-actions.js","components/blocklet/router/rule-list.js","components/blocklet/access.js","components/blocklet/select-store.js","components/blocklet/component/add.js","components/blocklet/component/index.js","components/blocklet/export-blocklet.js","pages/blocklets/detail.js","../../ux/lib/blocklet/blocklet-source.js","../../ux/lib/blocklet/component/configuration.js","../../ux/lib/blocklet/component/delete.js","../../ux/lib/blocklet/component/environment.js","../../ux/lib/blocklet/component/index.js","../../ux/lib/blocklet/component/setting.js","../../ux/lib/blocklet/configuration.js","../../ux/lib/blocklet/disk-info.js","../../ux/lib/blocklet/log.js","../../ux/lib/blocklet/overview.js","../../ux/lib/blocklet/runtime-info.js","../../ux/lib/form/form-text-input.js","../../ux/lib/form/form-wrapper.js","../../ux/lib/form/required.js","../../ux/lib/logs/clock.js","../../ux/lib/logs/log-terminal.js","../../ux/lib/schema-form/color-input.js","../../ux/lib/schema-form/common-prop-types.js","../../ux/lib/schema-form/index.js","../../ux/lib/schema-form/passport-input.js","../../ux/lib/schema-form/text-input.js","../../ux/lib/table-icons.js","../../ux/lib/table.js","../../ux/lib/who-can-access/config.js"],"sourcesContent":["import { forwardRef } from 'react';\nimport Button from '@arcblock/ux/lib/Button';\nimport PropTypes from 'prop-types';\n\nfunction WrappedButton({ children, ...props }) {\n return (\n <Button variant=\"contained\" color=\"primary\" {...props}>\n {children}\n </Button>\n );\n}\n\nWrappedButton.propTypes = {\n children: PropTypes.any.isRequired,\n};\n\nexport default forwardRef((props, ref) => <WrappedButton {...props} forwardedRef={ref} />);\n","export default function AgreementApp({ ...props }) {\n return (\n <div {...props} style={{ width: '100%' }}>\n <h3>End User License Agreement for Application</h3>\n <p>Blocklet Server License Agreement ArcBlock, Inc. version 2020-08-28</p>\n <p>BLOCKLET SERVER LICENSE AGREEMENT</p>\n <p>暂无</p>\n </div>\n );\n}\n","import { useEffect, useState, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useNavigate, Link } from 'react-router-dom';\nimport styled from '@emotion/styled';\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport { getDisplayName } from '@blocklet/meta/lib/util';\nimport ResultMessage from '@blocklet/launcher-layout/lib/launch-result-message';\nimport ServerEula from '@blocklet/launcher-layout/lib/wizard/server-eula';\nimport WizardDesc from '@blocklet/launcher-layout/lib/wizard/wizard-desc';\nimport Spinner from '@arcblock/ux/lib/Spinner';\nimport Alert from '@arcblock/ux/lib/Alert';\nimport isEmpty from 'lodash/isEmpty';\nimport Center from '@arcblock/ux/lib/Center';\n\nimport PageHeader from '@blocklet/launcher-layout/lib/page-header';\nimport { useNodeContext } from '../../contexts/node';\nimport AgreementApp from './agreement-app';\nimport { getAccessibleUrl } from '../../libs/util';\nimport Button from './button';\n\n// TODO: 加载 Blocklet 定义的 Agreement\nexport default function Agreement({ blocklet, onClickNext, handleDescEle, showPageHeader }) {\n const navigate = useNavigate();\n const [accessUrl, setAccessUrl] = useState(null);\n const [error, setError] = useState(null);\n const [accessUrlLoading, setAccessUrlLoading] = useState(false);\n const { t, locale } = useLocaleContext();\n const { info, api } = useNodeContext();\n const { isRunning } = blocklet;\n const loading = useMemo(() => isEmpty(blocklet) || accessUrlLoading, [blocklet, accessUrlLoading]);\n\n const clickNext =\n onClickNext ||\n (() => {\n navigate(`/launch-blocklet/install${window.location.search}`);\n });\n\n useEffect(() => {\n const onMount = async () => {\n try {\n setAccessUrlLoading(true);\n const { blocklet: b } = await api.getBlocklet({ input: { did: blocklet.meta.did } });\n const urls = b.interfaces.map(x => x.url);\n const accessUrlTmp = await getAccessibleUrl(urls);\n if (!accessUrlTmp && isEmpty(accessUrlTmp)) {\n setAccessUrl(null);\n return;\n }\n setAccessUrl(new URL(accessUrlTmp).href);\n } catch (err) {\n setError(err.message);\n } finally {\n setAccessUrlLoading(false);\n }\n };\n if (isRunning) {\n onMount();\n }\n // eslint-disable-next-line\n }, [blocklet]);\n\n if (error) {\n return (\n <Center relative=\"parent\">\n <div>\n <Alert style={{ wordBreak: 'break-all' }} variant=\"icon\" type=\"error\">\n {error}\n </Alert>\n </div>\n </Center>\n );\n }\n\n if (loading) {\n return (\n <Center relative=\"parent\">\n <Spinner />\n </Center>\n );\n }\n\n const data = blocklet.meta;\n const blockletMeta = { data };\n\n if (!data) {\n return (\n <Center relative=\"parent\">\n <Spinner />\n </Center>\n );\n }\n\n if (blocklet.isInstalled) {\n const already = accessUrl ? 'alreadyRunning' : 'alreadyInstalled';\n return (\n <ResultMessage\n variant=\"info\"\n title={t('common.reminder')}\n subTitle={t(`launchBlocklet.${already}`, { name: getDisplayName(blocklet, true) })}\n footer={\n <ButtonWrap>\n <Button\n data-cy=\"view-blocklet\"\n component={Link}\n to={`/blocklets/${blocklet.meta.did}/overview`}\n variant={accessUrl ? 'outlined' : 'contained'}\n color=\"primary\">\n {t('launchBlocklet.viewApplication')}\n </Button>\n {accessUrl && (\n <Button className=\"last-button\" href={accessUrl} data-cy=\"open-blocklet\">\n {t('common.open')}\n </Button>\n )}\n </ButtonWrap>\n }\n />\n );\n }\n\n if (!info) {\n return (\n <Center relative=\"parent\">\n <Spinner />\n </Center>\n );\n }\n\n return (\n <Container>\n {showPageHeader && <PageHeader title={t('launchBlocklet.introduction')} subTitle={t('launchBlocklet.welcome')} />}\n <div className=\"app-content\">\n <div className=\"agreement\">\n <div className=\"agreement-content\">\n <WizardDesc blockletMeta={blockletMeta} locale={locale} handleDescEle={handleDescEle} />\n </div>\n </div>\n </div>\n <div className=\"button-container\" data-cy=\"agree-all\">\n <ServerEula\n onContinue={clickNext}\n description={<AgreementApp />}\n texts={{\n listenName: t('launchBlocklet.license'),\n buttonNext: t('launchBlocklet.next'),\n }}\n />\n </div>\n </Container>\n );\n}\n\nAgreement.propTypes = {\n blocklet: PropTypes.object.isRequired,\n onClickNext: PropTypes.func,\n handleDescEle: PropTypes.node,\n showPageHeader: PropTypes.bool,\n};\n\nAgreement.defaultProps = {\n onClickNext: null,\n handleDescEle: '',\n showPageHeader: true,\n};\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 100%;\n height: 100%;\n\n .app-content {\n padding: 2px 24px 24px;\n ${props => props.theme.breakpoints.down('md')} {\n padding-top: 10px;\n }\n width: 100%;\n flex: 1;\n letter-spacing: normal;\n }\n .agreement {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n border: 1px solid ${props => props.theme.palette.grey['100']};\n border-radius: 12px;\n\n ${props => props.theme.breakpoints.up('md')} {\n margin-top: 24px;\n }\n\n ${props => props.theme.breakpoints.down('md')} {\n margin-top: 16px;\n }\n\n .agreement-content {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n font-size: 14px;\n overflow-y: auto;\n\n ${props => props.theme.breakpoints.up('md')} {\n padding: 0 24px;\n }\n\n ${props => props.theme.breakpoints.down('md')} {\n padding: 0 16px;\n }\n\n &:after {\n display: block;\n content: '';\n height: 24px;\n }\n }\n }\n .button-container {\n padding-top: 24px;\n padding-bottom: 34px;\n ${props => props.theme.breakpoints.up('md')} {\n padding-right: 24px;\n margin-left: auto;\n }\n ${props => props.theme.breakpoints.down('md')} {\n padding-top: 0;\n padding-bottom: 16px;\n }\n }\n`;\n\nconst ButtonWrap = styled.div`\n .MuiButton-root {\n ${props => props.theme.breakpoints.up('md')} {\n min-width: 200px;\n }\n }\n .last-button {\n margin-left: ${props => props.theme.spacing(2)};\n }\n`;\n","import styled from '@emotion/styled';\n\nconst TableStyle = styled.div`\n .MuiPaper-root {\n box-shadow: none !important;\n border: none !important;\n border-radius: 0 !important;\n background: transparent;\n }\n .MuiToolbar-root {\n background: transparent;\n padding-left: 0;\n display: none;\n }\n\n &.show-pagination {\n .MuiTablePagination-toolbar {\n display: flex;\n }\n }\n\n .MuiTableHead-root th {\n min-width: 100px;\n background: transparent;\n }\n\n .MuiTable-root {\n overflow-y: hidden;\n }\n .MuiTableRow-root {\n border: none !important;\n }\n\n .MuiTableCell-root {\n padding-right: 16px;\n &:last-of-type {\n padding-right: 0;\n }\n }\n\n /* @material-table/core@next 兼容 mui v5, 但 pagination 样式似乎有些问题, 暂地定制下面的样式修复, 后面考虑弃用 material-table */\n .MuiTablePagination-selectLabel,\n .MuiTablePagination-displayedRows {\n display: none;\n }\n .MuiTypography-caption {\n display: inline-block;\n }\n .MuiTablePagination-selectLabel + .MuiInputBase-root {\n margin-right: 8px;\n }\n`;\n\nexport default TableStyle;\n","import Add from '@mui/icons-material/Add';\nimport Check from '@mui/icons-material/Check';\nimport Delete from '@mui/icons-material/Delete';\nimport Clear from '@mui/icons-material/Clear';\nimport Export from '@mui/icons-material/SaveAlt';\nimport Edit from '@mui/icons-material/Edit';\nimport Filter from '@mui/icons-material/Filter';\nimport FirstPage from '@mui/icons-material/FirstPage';\nimport LastPage from '@mui/icons-material/LastPage';\nimport NextPage from '@mui/icons-material/ChevronRight';\nimport PreviousPage from '@mui/icons-material/ChevronLeft';\nimport Search from '@mui/icons-material/Search';\nimport SortArrow from '@mui/icons-material/ArrowDropDown';\nimport ThirdStateCheck from '@mui/icons-material/Remove';\nimport ViewColumn from '@mui/icons-material/ViewColumn';\n\nexport default {\n Add,\n Check,\n Delete,\n Edit,\n Clear,\n DetailPanel: NextPage,\n Filter,\n FirstPage,\n LastPage,\n NextPage,\n PreviousPage,\n Search,\n ResetSearch: Clear,\n SortArrow,\n Export,\n ThirdStateCheck,\n ViewColumn,\n};\n","/* eslint-disable react/jsx-one-expression-per-line */\nimport { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { LocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport MaterialTable from '@material-table/core';\n\nimport TableStyle from '../table';\nimport tableIcons from '../table-icons';\nimport { getBlockletServices } from '../../libs/util';\n\nexport default function BlockletService({ blocklet, ...rest }) {\n const { t } = useContext(LocaleContext);\n const services = getBlockletServices(blocklet);\n\n if (services.length === 0) {\n return <div>{t('blocklet.noService')}</div>;\n }\n\n const columns = [\n {\n title: t('common.name'),\n field: 'name',\n },\n {\n title: t('common.protocol'),\n field: 'protocol',\n },\n {\n title: t('common.port'),\n field: 'port',\n },\n {\n title: t('blocklet.upstreamPort'),\n field: 'upstreamPort',\n },\n ];\n\n return (\n <TableStyle {...rest}>\n <MaterialTable\n columns={columns}\n icons={{ ...tableIcons }}\n options={{\n sorting: false,\n emptyRowsWhenPaging: false,\n actionsColumnIndex: -1,\n tableLayout: 'auto',\n maxBodyHeight: '100%',\n search: false,\n pageSize: 1000,\n pageSizeOptions: [1000],\n }}\n localization={{\n body: {\n emptyDataSourceMessage: t('blocklet.noService'),\n },\n }}\n data={services}\n />\n </TableStyle>\n );\n}\n\nBlockletService.propTypes = {\n blocklet: PropTypes.object.isRequired,\n};\n","import PropTypes from 'prop-types';\n\nimport MenuItem from '@mui/material/MenuItem';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemText from '@mui/material/ListItemText';\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport DeleteIcon from '@mui/icons-material/Delete';\n\nimport Actions from '@abtnode/ux/lib/actions';\nimport DeleteDomainAlias from '../../router/rule/action/delete-domain-alias';\n\nexport default function DomainActions({ site, domain, blocklet }) {\n const { t } = useLocaleContext();\n\n return (\n <Actions\n data-cy=\"domain-actions\"\n actions={[\n // eslint-disable-next-line react/no-unstable-nested-components\n ({ close }) => (\n <DeleteDomainAlias id={site.id} domain={domain.value} teamDid={blocklet?.meta?.did}>\n {({ open }) => (\n <MenuItem\n disabled={domain.isProtected}\n dense\n key=\"remove\"\n onClick={e => {\n close();\n open(e);\n }}\n data-cy=\"action-toggle-block\">\n <ListItemIcon style={{ minWidth: 24, marginRight: 8 }}>\n <DeleteIcon />\n </ListItemIcon>\n <ListItemText primary={t('common.delete')} />\n </MenuItem>\n )}\n </DeleteDomainAlias>\n ),\n ]}\n />\n );\n}\n\nDomainActions.propTypes = {\n site: PropTypes.object.isRequired,\n domain: PropTypes.object.isRequired,\n blocklet: PropTypes.object.isRequired,\n};\n\nDomainActions.defaultProps = {};\n","/* eslint-disable react/no-unstable-nested-components */\nimport PropTypes from 'prop-types';\n\nimport MenuItem from '@mui/material/MenuItem';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemText from '@mui/material/ListItemText';\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport EditIcon from '@mui/icons-material/Edit';\n\nimport Actions from '@abtnode/ux/lib/actions';\nimport UpdateRule from '../../router/rule/action/update-rule';\nimport DeleteRule from '../../router/rule/action/delete-rule';\n\nexport default function RuleActions(props) {\n const { t } = useLocaleContext();\n\n return (\n <Actions\n data-cy=\"rule-actions\"\n actions={[\n ({ close }) => (\n <UpdateRule {...props}>\n {({ open: o }) => (\n <MenuItem\n disabled={props.isProtected}\n dense\n key=\"toggle-approval\"\n onClick={e => {\n close();\n o(e);\n }}\n data-cy=\"action-update-rule\">\n <ListItemIcon style={{ minWidth: 24, marginRight: 8 }}>\n <EditIcon />\n </ListItemIcon>\n <ListItemText primary={t('common.update')} />\n </MenuItem>\n )}\n </UpdateRule>\n ),\n ({ close }) => (\n <DeleteRule {...props}>\n {({ open }) => (\n <MenuItem\n disabled={props.isProtected}\n dense\n key=\"toggle-approval\"\n onClick={e => {\n close();\n open(e);\n }}\n data-cy=\"action-toggle-block\">\n <ListItemIcon style={{ minWidth: 24, marginRight: 8 }}>\n <DeleteIcon />\n </ListItemIcon>\n <ListItemText primary={t('common.delete')} />\n </MenuItem>\n )}\n </DeleteRule>\n ),\n ]}\n />\n );\n}\n\nRuleActions.propTypes = {\n isProtected: PropTypes.bool,\n};\n\nRuleActions.defaultProps = {\n isProtected: false,\n};\n","import PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\nimport isUrl from 'is-url';\nimport classnames from 'classnames';\nimport useTheme from '@mui/material/styles/useTheme';\n\nimport Tooltip from '@mui/material/Tooltip';\nimport Box from '@mui/material/Box';\nimport ArrowForwardIcon from '@mui/icons-material/ArrowForward';\nimport ExternalLink from '@mui/material/Link';\nimport IconButton from '@mui/material/IconButton';\nimport LockIcon from '@arcblock/icons/lib/LockIcon';\nimport { ROUTING_RULE_TYPES } from '@abtnode/constant';\nimport { findComponentById, getDisplayName } from '@blocklet/meta/lib/util';\n\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport MaterialTable from '@material-table/core';\nimport { getAccessUrl } from '@abtnode/ux/src/util';\nimport Dot from '@abtnode/ux/lib/dot';\nimport BlockletAvatar from '@abtnode/ux/lib/blocklet/avatar';\nimport TableStyle from '../../table';\nimport tableIcons from '../../table-icons';\n\nimport { useDomainStatusContext } from '../../../contexts/domain-status';\nimport { getBlockletUrlParams } from '../../../libs/util';\n\nimport Permission from '../../permission';\nimport RuleActions from './rule-actions';\n\nfunction RedirectRule({ domain, isHttps, toUrl }) {\n const scheme = isHttps ? 'https' : 'http';\n let tmpToUrl = toUrl;\n if (!isUrl(tmpToUrl)) {\n tmpToUrl = `${scheme}://${domain}${toUrl}`;\n }\n\n return (\n <ExternalLink key={tmpToUrl} href={tmpToUrl} target=\"_blank\" style={{ fontSize: 18 }} underline=\"hover\">\n {toUrl}\n </ExternalLink>\n );\n}\n\nRedirectRule.propTypes = {\n domain: PropTypes.string.isRequired,\n toUrl: PropTypes.string.isRequired,\n isHttps: PropTypes.bool,\n};\n\nRedirectRule.defaultProps = {\n isHttps: false,\n};\n\nexport default function RuleList({ rules, blocklets, selectableBlocklets, parent, blockletDid }) {\n const { t, locale } = useLocaleContext();\n const theme = useTheme();\n const { recommendedDomainStatus } = useDomainStatusContext();\n const domainStatus = recommendedDomainStatus || {};\n const { domain = '' } = domainStatus;\n\n const blockletsKeyByDid = blocklets.reduce((acc, cur) => Object.assign(acc, { [cur.meta.did]: cur }), {});\n const data = rules.map(rule => {\n const indexDid = rule.to.type === 'blocklet' ? rule.to.did : blockletDid;\n const blocklet = blockletsKeyByDid[indexDid] || { meta: {} };\n\n const isHealthy = blocklet && blocklet.status === 'running' && domainStatus.accessible;\n const _rule = {\n id: '',\n to: {},\n title: '',\n items: [],\n depth: 0,\n expand: true,\n isProtected: false,\n pathPrefix: '',\n domainAliases: [],\n };\n Object.keys(rule).forEach(key => {\n if (Object.prototype.hasOwnProperty.call(rule, key)) {\n _rule[key] = rule[key];\n }\n });\n return {\n ..._rule,\n isHealthy,\n blocklet,\n };\n });\n\n const columns = [\n {\n width: 20,\n render: rowData => {\n const healthyTip = rowData.isHealthy ? t('router.healthy.ok') : t('router.healthy.error');\n return (\n <Tooltip title={healthyTip}>\n <Dot color={rowData.isHealthy ? 'success' : 'error'} />\n </Tooltip>\n );\n },\n },\n {\n render: rowData => {\n const { name, blocklet } = rowData;\n const renderRuleText = () => {\n const content = name.replace(/\\/$/, '') || '/';\n return (\n <Box\n maxWidth={400}\n px={2}\n overflow=\"hidden\"\n whiteSpace=\"nowrap\"\n textOverflow=\"ellipsis\"\n style={{ color: '#222', fontSize: 18 }}\n title={content}>\n {content}\n </Box>\n );\n };\n return (\n <>\n {!domainStatus.accessible && renderRuleText()}\n {domainStatus.accessible && (\n <a\n target=\"_blank\"\n href={getAccessUrl(domain, name, getBlockletUrlParams(blocklet, locale))}\n rel=\"noopener noreferrer\">\n {renderRuleText()}\n </a>\n )}\n </>\n );\n },\n },\n {\n width: 32,\n render: () => <ArrowForwardIcon style={{ color: '#999' }} />,\n },\n {\n render: rowData => {\n const { name, title, to, blocklet } = rowData;\n\n if (to.type === ROUTING_RULE_TYPES.BLOCKLET && !blocklet) {\n return null;\n }\n\n const internalLink = `/blocklets/${to.did}/access`;\n const { component, ancestors } =\n findComponentById(blocklet || {}, to.componentId, { returnAncestors: true }) || {};\n\n if (to.type === ROUTING_RULE_TYPES.BLOCKLET && !component) {\n return null;\n }\n\n let childName = '';\n if (to.type === ROUTING_RULE_TYPES.BLOCKLET && to.componentId && to.did !== to.componentId) {\n childName = ancestors\n .concat(component)\n .map(x => getDisplayName(x, true))\n .join(' / ');\n }\n\n return (\n <>\n {to.type === ROUTING_RULE_TYPES.BLOCKLET && (\n <Link to={internalLink} className=\"arrow-name-right\">\n <Box display=\"flex\" alignItems=\"center\">\n <BlockletAvatar blocklet={component} style={{ marginRight: 8 }} ancestors={ancestors} />\n <div style={{ color: '#222', fontSize: 18, minWidth: 150 }}>\n {childName || getDisplayName(blocklet, true) || title}\n </div>\n </Box>\n </Link>\n )}\n {to.type === ROUTING_RULE_TYPES.REDIRECT && (\n <RedirectRule domain={parent.name} toUrl={to.url} isHttps={domainStatus.isHttps} />\n )}\n {to.type === ROUTING_RULE_TYPES.NONE && (\n <ExternalLink\n href={getAccessUrl(domain, name, getBlockletUrlParams(blocklet, locale))}\n target=\"_blank\"\n style={{ fontSize: 18 }}\n underline=\"hover\">\n {t('common.page404')}\n </ExternalLink>\n )}\n </>\n );\n },\n },\n {\n render: rowData => {\n const { isProtected, to } = rowData;\n let action = (\n <Tooltip title={t('blocklet.router.urlLockTooltip')} placement=\"top\">\n <IconButton\n disabled\n size=\"large\"\n style={{\n pointerEvents: 'auto',\n // padding replace to margin, fix the tooltip position\n paddingTop: 0,\n paddingBottom: 0,\n margin: '12px 0',\n }}>\n <LockIcon style={{ fill: theme.palette.text.disabled }} />\n </IconButton>\n </Tooltip>\n );\n\n if (!isProtected) {\n action = (\n <RuleActions\n {...{ ...rowData, parent, blockletDid, blocklets: selectableBlocklets }}\n did={to.did}\n teamDid={blockletDid}\n />\n );\n }\n return (\n <Permission permission=\"mutate_router\">\n <div style={{ textAlign: 'right' }}>{action}</div>\n </Permission>\n );\n },\n },\n ];\n\n const pageSize = 20;\n\n return (\n <TableStyle className={classnames('blocklet-list', { 'show-pagination': data.length > pageSize })}>\n <MaterialTable\n data={data}\n icons={{ ...tableIcons }}\n columns={columns}\n options={{\n pageSize,\n header: false,\n emptyRowsWhenPaging: false,\n }}\n />\n </TableStyle>\n );\n}\n\nRuleList.propTypes = {\n rules: PropTypes.array,\n blocklets: PropTypes.array,\n selectableBlocklets: PropTypes.array,\n parent: PropTypes.object,\n blockletDid: PropTypes.string.isRequired,\n};\n\nRuleList.defaultProps = {\n rules: [],\n blocklets: [],\n selectableBlocklets: [],\n parent: {},\n};\n","import { useContext } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport styled from '@emotion/styled';\nimport Spinner from '@arcblock/ux/lib/Spinner';\nimport useTheme from '@mui/material/styles/useTheme';\n\nimport { LocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport Alert from '@mui/material/Alert';\nimport Box from '@mui/material/Box';\nimport AddIcon from '@mui/icons-material/Add';\nimport SecurityIcon from '@mui/icons-material/Security';\nimport Tooltip from '@mui/material/Tooltip';\nimport IconButton from '@mui/material/IconButton';\nimport LockIcon from '@arcblock/icons/lib/LockIcon';\nimport Button from '@arcblock/ux/lib/Button';\nimport Empty from '@arcblock/ux/lib/Empty';\nimport SplitButton from '@arcblock/ux/lib/SplitButton';\nimport { getDisplayName } from '@blocklet/meta/lib/util';\n\nimport { WELLKNOWN_PATH_PREFIX } from '@abtnode/constant';\n\nimport { useBlockletContext } from '../../contexts/blocklets';\nimport { useRoutingContext } from '../../contexts/routing';\nimport { isInProgress, getBlockletUrlParams } from '../../libs/util';\n\nimport DomainStatus from '../router/rule/domain-status';\nimport AddDomainAlias from '../router/rule/action/add-domain-alias';\nimport AddRule from '../router/rule/action/add-rule';\nimport UpdateDomainSecurity from '../router/rule/action/update-domain-security';\nimport AddCert from '../router/rule/action/add-cert';\nimport Permission from '../permission';\n\nimport DomainActions from './router/domain-actions';\nimport RuleList from './router/rule-list';\nimport { useDomainStatusContext } from '../../contexts/domain-status';\n\nfunction DomainLink({ domain, href, children }) {\n const { t } = useContext(LocaleContext);\n const { status } = useDomainStatusContext();\n\n const domainStatus = status[domain];\n\n if (!domainStatus || domainStatus.loading) {\n return (\n <LinkDiv>\n {children}\n <Tooltip title={t('blocklet.router.checkUrlAccessible')} placement=\"top-end\">\n <span className=\"status\">\n <Spinner size={12} />\n </span>\n </Tooltip>\n </LinkDiv>\n );\n }\n\n if (!domainStatus.accessible) {\n return (\n <LinkDiv>\n <Tooltip title={t('blocklet.router.urlInaccessible')} placement=\"top-end\">\n <span>{children}</span>\n </Tooltip>\n </LinkDiv>\n );\n }\n\n return (\n <LinkDiv>\n <a href={href} target=\"_blank\" rel=\"noopener noreferrer\">\n {children}\n </a>\n </LinkDiv>\n );\n}\n\nDomainLink.propTypes = {\n domain: PropTypes.string.isRequired,\n href: PropTypes.string.isRequired,\n children: PropTypes.any.isRequired,\n};\n\nconst LinkDiv = styled.span`\n &,\n & > * {\n color: #222;\n font-size: 18px;\n }\n\n .status {\n margin-left: 8px;\n }\n`;\n\nexport default function Access({ blocklet }) {\n const { t, locale } = useContext(LocaleContext);\n const { siteMap, getBlockletUrl } = useRoutingContext();\n const { data: rawBlocklets } = useBlockletContext();\n const navigate = useNavigate();\n const theme = useTheme();\n\n const { did } = blocklet.meta;\n\n const blocklets = rawBlocklets.map(x => ({\n meta: {\n did: x.meta.did,\n bundleDid: x.meta.bundleDid,\n name: getDisplayName(x),\n version: x.meta.version,\n interfaces: x.meta.interfaces,\n logo: x.meta.logo,\n },\n port: x.port,\n ports: x.ports,\n status: x.status,\n source: x.source,\n deployedFrom: x.deployedFrom,\n children: x.children,\n }));\n\n const site = siteMap[did];\n\n if (!site) {\n return null;\n }\n\n const { domainAliases } = site;\n const urlMap = {};\n domainAliases.forEach(domain => {\n urlMap[domain.value] = getBlockletUrl({ did, domain, siteMap, params: getBlockletUrlParams(blocklet, locale) });\n });\n\n const rules = site.rules\n .filter(x => !(x.name.includes(WELLKNOWN_PATH_PREFIX) && x.isProtected))\n .sort((a, b) => {\n if (a.to.did === did && b.to.did !== did) {\n return -1;\n }\n if (a.to.did !== did && b.to.did === did) {\n return 1;\n }\n return 0;\n });\n\n let selectableBlocklets = blocklets;\n if (rules.some(x => x.to.did === did)) {\n selectableBlocklets = blocklets.filter(x => x.meta.did !== did);\n }\n\n return (\n <Div>\n {/* address */}\n <Box display=\"flex\" justifyContent=\"space-between\" alignItems=\"center\">\n <div className=\"title\">{t('common.domain')}</div>\n <Box display=\"flex\" alignItems=\"center\">\n <UpdateDomainSecurity {...site} teamDid={did}>\n {({ open }) => (\n <SplitButton\n variant=\"outlined\"\n disabled={isInProgress(blocklet.status)}\n menuButtonProps={{ 'data-cy': 'trusted-issuers-more' }}\n menu={\n <SplitButton.Item\n data-cy=\"config-show-issue-passport\"\n onClick={() => navigate(`/settings/cert?did=${blocklet.meta.did}`)}>\n <Box display=\"flex\" alignItems=\"center\">\n <Box>{t('router.certSetting')}</Box>\n </Box>\n </SplitButton.Item>\n }>\n {() => (\n <Button onClick={open} data-cy=\"update-domain-security\">\n <SecurityIcon style={{ height: '1em', marginRight: 4 }} />\n {t('blocklet.router.securitySetting')}\n </Button>\n )}\n </SplitButton>\n )}\n </UpdateDomainSecurity>\n <AddDomainAlias id={site.id} title={t('router.domain.add.title')} teamDid={did}>\n {({ open }) => (\n <Button\n style={{ marginLeft: 16 }}\n variant=\"contained\"\n color=\"primary\"\n data-cy=\"add-domain-alias\"\n onClick={open}\n disabled={isInProgress(blocklet.status)}>\n <AddIcon style={{ fontSize: '1.3em', marginRight: 4 }} />\n {t('common.add')}\n </Button>\n )}\n </AddDomainAlias>\n </Box>\n </Box>\n {blocklet.status !== 'running' && (\n <Box my={1}>\n <Alert severity=\"warning\">{t('blocklet.router.noRunning')}</Alert>\n </Box>\n )}\n {domainAliases.map(domain => (\n <Box key={domain.value} display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\" mt={1}>\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\">\n <DomainStatus key={`${domain.value}-domain`} type=\"domain\" name={domain.value} filters={['domain']} />\n <Box ml={2} mr={0.5}>\n <DomainLink href={urlMap[domain.value]} domain={domain.value} target=\"_blank\">\n {domain.value}\n </DomainLink>\n </Box>\n <DomainStatus key={`${domain.value}-http`} type=\"domain\" name={domain.value} filters={['http']} />\n <span style={{ marginLeft: 12 }} />\n <AddCert domain={domain.value}>\n {({ open }) => (\n <Button size=\"small\" onClick={e => open(e)}>\n {t('router.cert.genLetsEncryptCert.title')}\n </Button>\n )}\n </AddCert>\n </Box>\n <Permission permission=\"mutate_router\">\n {!domain.isProtected ? (\n <DomainActions site={site} domain={domain} blocklet={blocklet} />\n ) : (\n <Tooltip title={t('blocklet.router.domainLockTooltip')} placement=\"top\">\n <IconButton\n disabled\n size=\"large\"\n style={{\n pointerEvents: 'auto',\n // padding replace to margin, fix the tooltip position\n paddingTop: 0,\n paddingBottom: 0,\n margin: '12px 0',\n }}>\n <LockIcon style={{ fill: theme.palette.text.disabled }} />\n </IconButton>\n </Tooltip>\n )}\n </Permission>\n </Box>\n ))}\n {!domainAliases.length && (\n <Box mt={4}>\n <Empty>{t('common.empty')}</Empty>\n </Box>\n )}\n {/* rule */}\n <Box display=\"flex\" justifyContent=\"space-between\" alignItems=\"center\" mt={3}>\n <div className=\"title\">{t('blocklet.router.urlPath')}</div>\n <Box display=\"flex\" alignItems=\"center\">\n <Permission permission=\"mutate_blocklet\">\n <AddRule id={site.id} blocklets={selectableBlocklets} teamDid={did}>\n {({ open }) => (\n <Button\n style={{ marginLeft: 16 }}\n variant=\"contained\"\n color=\"primary\"\n data-cy=\"add-rule\"\n onClick={open}\n disabled={isInProgress(blocklet.status)}>\n <AddIcon style={{ fontSize: '1.3em', marginRight: 4 }} />\n {t('common.add')}\n </Button>\n )}\n </AddRule>\n </Permission>\n </Box>\n </Box>\n {!!rules.length && (\n <RuleList\n rules={rules}\n blocklets={blocklets}\n selectableBlocklets={selectableBlocklets}\n parent={site}\n blockletDid={blocklet.meta.did}\n />\n )}\n {!rules.length && (\n <Box mt={4}>\n <Empty>{t('common.empty')}</Empty>\n </Box>\n )}\n </Div>\n );\n}\n\nAccess.propTypes = {\n blocklet: PropTypes.object.isRequired,\n};\n\nconst Div = styled.div`\n .title {\n font-size: 1.2rem;\n font-weight: bold;\n color: #222222;\n }\n`;\n","import { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport styled from '@emotion/styled';\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport TextField from '@mui/material/TextField';\nimport MenuItem from '@mui/material/MenuItem';\nimport Button from '@arcblock/ux/lib/Button';\nimport ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';\nimport Typography from '@mui/material/Typography';\n\nimport { BlockletRegistryRenderItem } from '../registry/switch';\nimport AddBlockletRegistry from '../registry/add';\nimport { useNodeContext } from '../../contexts/node';\n\nexport default function SelectStore({ defaultValue, onChange, loading, children, extra }) {\n const { t } = useLocaleContext();\n const { info } = useNodeContext();\n const [open, setOpen] = useState(false);\n const storeSelectRef = useRef(null);\n\n const [currentRegistry, setCurrentRegistryRegistry] = useState(defaultValue);\n\n return (\n <>\n <SelectStoreTitle>\n <Button\n ref={storeSelectRef}\n color=\"secondary\"\n data-cy=\"add-component-select-store\"\n endIcon={<ArrowDropDownIcon color=\"secondary\" />}\n onClick={() => {\n setOpen(true);\n }}\n style={{\n padding: '0 2px',\n }}>\n <Typography color=\"secondary\">{currentRegistry.name}</Typography>\n </Button>\n {/* {t('blocklet.component.selectRegistry')} */}\n <Typography color=\"secondary\">{extra}</Typography>\n </SelectStoreTitle>\n <TextField\n id=\"mui-registry-select\"\n select\n autoComplete=\"off\"\n variant=\"outlined\"\n name=\"did\"\n helperText={t('blocklet.component.selectRegistryTip')}\n data-cy=\"component-registry-select\"\n fullWidth\n value={currentRegistry}\n autoFocus\n onChange={e => {\n const newRegistry = e.target.value;\n setCurrentRegistryRegistry(newRegistry);\n onChange(newRegistry);\n }}\n SelectProps={{\n open,\n MenuProps: {\n anchorEl: storeSelectRef.current,\n },\n renderValue: item => {\n return item?.name;\n },\n onClose: () => {\n setOpen(false);\n },\n }}\n style={{ display: 'none' }}\n margin=\"normal\">\n {info?.blockletRegistryList?.map(x => {\n return (\n <MenuItem key={x.url} value={x} data-cy={x.url}>\n <BlockletRegistryRenderItem\n {...x}\n reloadPage={false}\n onDelete={() => {\n if (localStorage.getItem('blocklet-add-component-registry') === x.url) {\n localStorage.removeItem('blocklet-add-component-registry');\n setCurrentRegistryRegistry(info?.blockletRegistryList?.[0]);\n }\n }}\n />\n </MenuItem>\n );\n })}\n <AddBlockletRegistry disabled={loading} reloadPage={false} />\n </TextField>\n {children({ currentRegistry })}\n </>\n );\n}\n\nSelectStore.propTypes = {\n defaultValue: PropTypes.any,\n onChange: PropTypes.func,\n loading: PropTypes.bool,\n children: PropTypes.any.isRequired,\n extra: PropTypes.node,\n};\n\nSelectStore.defaultProps = {\n defaultValue: {},\n onChange: () => {},\n loading: false,\n extra: '',\n};\n\nconst SelectStoreTitle = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n\n span {\n font-size: 16px;\n color: ${props => props.theme.palette.common.black};\n // font-weight: bold;\n }\n`;\n","/* eslint-disable react/no-unstable-nested-components */\nimport { useState, useRef, useImperativeHandle, forwardRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport uniqBy from 'lodash/uniqBy';\nimport flatten from 'lodash/flatten';\nimport isEmpty from 'lodash/isEmpty';\nimport isNil from 'lodash/isNil';\n\nimport PageHeader from '@blocklet/launcher-layout/lib/page-header';\nimport Dialog from '@arcblock/ux/lib/Dialog';\nimport Spinner from '@arcblock/ux/lib/Spinner';\nimport DialogContentText from '@mui/material/DialogContentText';\nimport Typography from '@mui/material/Typography';\nimport TextField from '@mui/material/TextField';\nimport MenuItem from '@mui/material/MenuItem';\nimport AddIcon from '@mui/icons-material/Link';\nimport CheckIcon from '@mui/icons-material/Check';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport styled from '@emotion/styled';\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport { BLOCKLET_CONFIGURABLE_KEY, BlockletStatus, BlockletEvents } from '@blocklet/constant';\n\nimport Layout from '@blocklet/launcher-layout';\nimport { StepProvider, useStepContext } from '@blocklet/launcher-layout/lib/context/step';\n\nimport Button from '@arcblock/ux/lib/Button';\nimport Alert from '@arcblock/ux/lib/Alert';\nimport Tag from '@arcblock/ux/lib/Tag';\nimport SchemaForm from '@abtnode/ux/lib/schema-form';\nimport Required from '@abtnode/ux/lib/form/required';\nimport AnimationWaiter from '@arcblock/ux/lib/AnimationWaiter';\nimport ResultMessage from '@blocklet/launcher-layout/lib/launch-result-message';\n\nimport {\n getDisplayName,\n isComponentBlocklet,\n isFreeBlocklet,\n urlFriendly,\n getSharedConfigObj,\n} from '@blocklet/meta/lib/util';\nimport Toast from '@abtnode/ux/lib/toast';\nimport { useSubscription } from '../../../libs/ws';\n\nimport Agreement from '../../launch-blocklet/step-agreement';\nimport InstallFromUrl from '../install-from-url';\n\nimport BlockletList from '../list';\nimport SelectStore from '../select-store';\nimport { useNodeContext } from '../../../contexts/node';\n\nimport { validatePathPrefix } from '../../router/rule/action/utils';\nimport { ComponentPurchaseSelect } from '../purchase';\n\n// import { formatError, formatPerson } from '../../libs/util';\nimport { formatToDatetime, getBlockletLogoUrl, getBlockletMetaUrl, isNewRegistryUrl } from '../../../libs/util';\n\nconst requirePurchase = meta => meta.inStore && isFreeBlocklet(meta) === false;\nconst hasRequiredEnvironments = meta => (meta.environments || []).some(x => x.required);\nconst hasMissRequiredConfigs = (configsList, sharedValueMap) => {\n return configsList?.some(item => {\n return item.required && !sharedValueMap[item.key];\n });\n};\nconst getParamsName = (params = {}) => {\n return params.title || params.name;\n};\n\nconst StepContent = forwardRef(({ meta, isMobile, onStepChange }, ref) => {\n const { steps, activeStep, setActiveStepByKey, setActiveStepByIndex } = useStepContext();\n const { t, locale } = useLocaleContext();\n\n const step = steps[activeStep];\n\n useEffect(() => {\n onStepChange(activeStep);\n }, [onStepChange, activeStep]);\n\n // expose the func and activeStep\n useImperativeHandle(ref, () => ({\n setActiveStepByKey,\n setActiveStepByIndex,\n }));\n\n return (\n <DialogContentWrapper component=\"div\" className={isMobile ? 'mobileStyle' : ''}>\n <Layout\n locale={locale}\n blockletMeta={{ title: ' ', ...meta }}\n pcWidth=\"100%\"\n pcHeight=\"100%\"\n logoUrl={\n meta && meta.logo && meta.registryUrl\n ? getBlockletLogoUrl({\n did: meta.did,\n baseUrl: meta.registryUrl,\n logoPath: meta.logo,\n })\n : null\n }\n stepTip={t('blocklet.component.add')}>\n <RightContent>{step?.body && typeof step.body === 'function' ? step.body() : step.body}</RightContent>\n </Layout>\n </DialogContentWrapper>\n );\n});\n\nStepContent.propTypes = {\n meta: PropTypes.any,\n onStepChange: PropTypes.func.isRequired,\n isMobile: PropTypes.bool.isRequired,\n};\n\nStepContent.defaultProps = {\n meta: null,\n};\nexport default function AddComponent({ blocklet, children }) {\n const { t, locale } = useLocaleContext();\n const [loading, setLoading] = useState(false);\n const [editingItem, setEditingItem] = useState(null);\n const [error, setError] = useState('');\n const [showDialog, setShowDialog] = useState('');\n const [configs, setConfigs] = useState([]);\n const { api, info } = useNodeContext();\n const [purchaseData, setPurchaseData] = useState(null);\n const [isWaitingPurchase, setIsWaitingPurchase] = useState(false);\n const initParams = {\n bundleDid: '',\n componentDid: '',\n componentName: '',\n pathPrefix: '',\n name: '',\n title: '',\n configsList: [],\n configsValue: {},\n hasMissRequiredConfigs: false,\n hasEnvironmentsStep: false,\n hasRequiredEnvironments: false,\n requirePurchase: false,\n installResultProps: {},\n purchaseResultProps: {},\n showFromUrlDialog: false,\n };\n const [params, setParams] = useState(initParams);\n const [activeStep, setActiveStep] = useState(0);\n const component = useRef({});\n const stepRef = useRef({});\n const purchaseRef = useRef({});\n const isMobile = useMediaQuery(theme => theme.breakpoints.down('md'));\n\n const { meta } = component.current;\n // eslint-disable-next-line no-unused-vars\n const { setActiveStepByIndex } = stepRef.current || {};\n\n const updateParams = obj => setParams(x => ({ ...x, ...obj }));\n\n useEffect(() => {\n if (params.pathPrefix) {\n const { errMsg } = validateInput({ ...params, pathPrefix: params.pathPrefix, locale });\n setError(errMsg);\n }\n }, [params.pathPrefix]); // eslint-disable-line\n\n useEffect(() => {\n if (activeStep === 0) {\n // reset params, when step change to select component\n setParams(initParams);\n }\n }, [activeStep]); // eslint-disable-line\n\n const getComponentName = () => {\n if (component?.current?.meta) {\n return getDisplayName(component.current);\n }\n return '';\n };\n\n const setInstallErrorResult = errorMessage => {\n updateParams({\n installResultProps: {\n variant: 'error',\n title: getComponentName(),\n subTitle: errorMessage,\n footer: (\n <Button\n className=\"bottom-button\"\n data-cy=\"retry-install-component\"\n onClick={() => {\n updateParams({\n installResultProps: {},\n });\n onInstall(component.current.installInput);\n }}>\n {t('common.retry')}\n </Button>\n ),\n },\n });\n };\n\n const createBlockletEventHandler = handler => {\n return b => {\n if ((b?.meta?.did || b?.meta) === blocklet?.meta?.did) {\n handler(b);\n }\n };\n };\n\n useSubscription(\n BlockletEvents.statusChange,\n createBlockletEventHandler(e => {\n switch (e.status) {\n case BlockletStatus.upgrading:\n updateParams({\n installResultProps: {\n variant: 'success',\n title: getComponentName(),\n subTitle: t('blocklet.component.installSuccessTip'),\n },\n });\n break;\n default:\n }\n })\n );\n\n useSubscription(\n BlockletEvents.downloadFailed,\n createBlockletEventHandler(() => {\n setInstallErrorResult(t('blocklet.component.installComponentError'));\n })\n );\n\n useSubscription(\n BlockletEvents.installFailed,\n createBlockletEventHandler(() => {\n setInstallErrorResult(t('blocklet.component.installComponentError'));\n })\n );\n\n const onClose = () => {\n setLoading(false);\n setShowDialog(false);\n setParams({});\n component.current = {};\n };\n\n const onInstall = async payload => {\n const { pathPrefix: mountPoint, bundleDid, title, componentName = '', componentDid = '' } = params;\n // eslint-disable-next-line no-shadow\n const { configs = [], registryUrl, inStore, inputUrl } = component.current?.meta || {};\n const downloadTokenList = component.current?.downloadTokenList;\n const url = inStore ? getBlockletMetaUrl(registryUrl, bundleDid) : inputUrl;\n\n setLoading(true);\n\n const installInput = {\n rootDid: blocklet.meta.did,\n url,\n mountPoint,\n title,\n name: componentName,\n did: componentDid,\n // if blocklet has config, provide the configs\n ...(params.hasEnvironmentsStep && configs.length > 0\n ? {\n configs: configs.map(item => {\n return {\n ...item,\n value: params.configsValue[item.key] || '',\n };\n }),\n }\n : {}),\n ...(downloadTokenList ? { downloadTokenList } : {}),\n ...payload,\n };\n\n try {\n await api.installComponent({\n input: installInput,\n });\n if (registryUrl) {\n const { isNew, decoded } = isNewRegistryUrl(registryUrl, info.blockletRegistryList);\n if (isNew) {\n await api.addBlockletStore({ input: { url: decoded } });\n }\n }\n } catch (err) {\n Toast.error(err.message);\n console.error('installComponent error: ', err);\n setInstallErrorResult(err.message);\n } finally {\n setLoading(false);\n component.current.installInput = installInput;\n }\n };\n\n const validateInput = input => {\n const errMsg = validatePathPrefix({\n params: { ...input, did: input.bundleDid },\n blocklets: component.current?.blocklets?.map(x => ({ meta: x })) || [],\n blocklet,\n locale,\n });\n\n return { errMsg };\n };\n\n const onNext = payload => {\n const { errMsg } = validateInput({ ...params, locale });\n setError(errMsg);\n\n // the step can complete, install component\n if (activeStep === steps.length - 2) {\n updateParams({\n installResultProps: {},\n });\n onInstall(payload);\n }\n setActiveStepByIndex(x => x + 1);\n };\n\n const onCancel = () => {\n setActiveStepByIndex(x => x - 1);\n };\n\n const onGeneratePurchaseData = async () => {\n const { pathPrefix: mountPoint, bundleDid, title, componentName = '', componentDid = '' } = params;\n\n // eslint-disable-next-line no-shadow\n const { meta = {} } = component.current || {};\n const { registryUrl, inStore, inputUrl } = meta;\n const url = inStore ? getBlockletMetaUrl(registryUrl, bundleDid) : inputUrl;\n\n setPurchaseData({\n meta,\n installOpts: {\n type: 'component',\n rootDid: blocklet.meta.did,\n mountPoint,\n url,\n title,\n name: componentName,\n did: componentDid,\n },\n });\n };\n\n const onCancelPurchase = errorMessage => {\n setIsWaitingPurchase(false);\n updateParams({\n purchaseResultProps: {\n variant: 'error',\n title: getComponentName(),\n subTitle: errorMessage,\n style: {\n paddingTop: 120,\n },\n footer: (\n <Button\n className=\"bottom-button\"\n data-cy=\"retry-purchase-component\"\n onClick={() => {\n updateParams({\n purchaseResultProps: {},\n });\n }}>\n {t('common.retry')}\n </Button>\n ),\n },\n });\n };\n\n const onSuccessPurchase = ({ downloadTokenList }) => {\n component.current.downloadTokenList = downloadTokenList;\n setIsWaitingPurchase(false);\n onNext();\n };\n\n const setConfigValue = ({ chooseParams = component.current, componentDid: componentDidValue, isInit = false }) => {\n // eslint-disable-next-line no-shadow\n const { meta, registryUrl, inStore, inputUrl } = chooseParams;\n const { did: bundleDid, title, name } = meta;\n\n // deleted history list\n const list = (blocklet.settings?.children || [])\n .filter(x => x.status === 'deleted' && x.meta.bundleDid === bundleDid)\n .sort((a, b) => (new Date(a.deletedAt) > new Date(b.deletedAt) ? -1 : 1));\n setConfigs(list);\n\n const componentDid = componentDidValue || list[0]?.meta?.did || '';\n\n const newConfigs = meta.environments?.map(item => {\n const { name: key, validation, ...rest } = item;\n const formatItem = {\n // if the blocklet has validation, provide the validation (fix not inStore)\n validation: isNil(validation) ? '' : validation,\n custom: false,\n };\n\n return {\n ...rest,\n key,\n ...formatItem,\n };\n });\n\n component.current = {\n ...chooseParams,\n meta: {\n ...meta,\n // init configs from environments\n configs: newConfigs,\n registryUrl,\n inStore,\n inputUrl,\n },\n };\n\n let doc = {};\n\n // if is init, should update configs\n if (isInit) {\n const ancestors = [blocklet];\n\n // component config\n const componentSelfConfigs = newConfigs || [];\n\n // TODO: meta not include children environments/configs before install, waiting for next sprint to design\n const componentChildrenConfigs = [];\n\n // eslint-disable-next-line\n // chooseBlocklet?.children?.map(childBlocklet => {\n // // eslint-disable-next-line no-shadow\n // forEachChildSync(childBlocklet, (b, { ancestors }) => {\n // const ancestorDids = ancestors.slice(1).map(x => x.meta.did);\n\n // componentChildrenConfigs.push(\n // (b.configs || []).map(x => ({ ...x, childDid: ancestorDids.concat(b.meta.did) }))\n // );\n // });\n\n // return false;\n // });\n\n const componentAllConfigs = uniqBy(flatten([...componentSelfConfigs, ...componentChildrenConfigs]), 'key')\n .filter(x => !!x.key)\n .sort((a, b) => {\n if (a.required && !b.required) {\n return -1;\n }\n\n if (b.required && !a.required) {\n return 1;\n }\n\n return 0;\n });\n\n const sharedConfigObj = getSharedConfigObj(\n {\n configs: componentAllConfigs,\n },\n ancestors\n );\n\n const configsValue = {};\n\n const configsList = componentAllConfigs.map(item => {\n const { default: defaultValue, key, ...rest } = item;\n configsValue[key] = sharedConfigObj[key] || defaultValue;\n return {\n ...rest,\n key,\n hidden: !!BLOCKLET_CONFIGURABLE_KEY[key],\n };\n });\n\n doc = {\n ...doc,\n configsList,\n configsValue,\n hasMissRequiredConfigs: hasMissRequiredConfigs(configsList, configsValue),\n };\n }\n\n // use deleted history\n if (componentDid && componentDid !== '_empty_') {\n const config = list.find(x => x.meta.did === componentDid);\n doc = {\n ...doc,\n pathPrefix: config?.mountPoint,\n title: config?.meta.title,\n componentName: config?.meta.name,\n // use history's environments\n hasEnvironmentsStep: false,\n };\n } else {\n doc = {\n ...doc,\n pathPrefix: `/${urlFriendly(name)}`,\n title: title || '',\n componentName: '',\n hasEnvironmentsStep: component.current.meta?.environments?.length > 0,\n };\n }\n\n // eslint-disable-next-line no-shadow\n const componentRequirePurchase = requirePurchase(component.current.meta);\n\n updateParams({\n bundleDid,\n componentDid,\n ...doc,\n hasRequiredEnvironments: hasRequiredEnvironments(component.current.meta),\n requirePurchase: componentRequirePurchase,\n });\n\n if (isInit && componentRequirePurchase) {\n onGeneratePurchaseData();\n }\n };\n\n const steps = [\n {\n key: 'selectComponent',\n name: t('blocklet.component.selectComponent'),\n body: (\n <TypographyWrapper component=\"div\">\n {params.showFromUrlDialog && (\n <InstallFromUrl\n // if not set defaultUrl, the dialog will always show step 1 when the dialog is opened\n // defaultUrl={meta?.inputUrl}\n mode=\"component\"\n onCancel={() => {\n updateParams({\n showFromUrlDialog: false,\n });\n }}\n // eslint-disable-next-line no-shadow\n onSuccess={({ meta, inputUrl, inStore, registryUrl }) => {\n setConfigValue({\n chooseParams: {\n meta,\n inputUrl,\n inStore,\n registryUrl,\n },\n isInit: true,\n });\n updateParams({\n showFromUrlDialog: false,\n });\n onNext();\n }}\n handleText={{\n title: t('blocklet.component.addComponentTip.fromUrl'),\n confirm: t('blocklet.component.choose'),\n }}\n />\n )}\n <SelectStore\n extra={\n <Button\n variant=\"text\"\n color=\"primary\"\n data-cy=\"add-component-from-url\"\n onClick={() => {\n updateParams({\n showFromUrlDialog: true,\n });\n }}\n style={{ padding: '0 2px' }}>\n <AddIcon style={{ fontSize: 20, marginRight: 4 }} /> {t('blocklet.component.addComponentTip.fromUrl')}{' '}\n {/* {meta?.inputUrl ? `: ${meta.inputUrl}` : ''} */}\n </Button>\n }\n loading={loading}\n defaultValue={\n // if localStorage has registryUrl, use it\n (localStorage.getItem('blocklet-add-component-registry') &&\n info.blockletRegistryList.find(\n x => localStorage.getItem('blocklet-add-component-registry') === x.url\n )) ||\n info.blockletRegistryList.find(x => x.selected)\n }\n onChange={newRegistry => {\n setParams({});\n component.current = {};\n localStorage.setItem('blocklet-add-component-registry', newRegistry.url);\n }}>\n {({ currentRegistry }) => {\n return (\n <BlockletList\n style={\n isMobile\n ? {\n // should remove other dom height/margin\n height: 'calc(100vh - 56px - 80px - 32px - 40px )',\n }\n : {\n height: 'calc(100% - 40px)',\n }\n }\n handleBlockletRegistry={currentRegistry.url}\n // eslint-disable-next-line no-shadow\n handleButtonText={({ meta, state }) => {\n const installed = !!state?.status;\n if (requirePurchase(meta) && !installed) {\n return t('common.purchase');\n }\n return t('blocklet.component.choose');\n }}\n handleButtonClick={chooseParams => {\n setConfigValue({\n chooseParams: {\n ...chooseParams,\n inStore: true, // choose from store, must be inStore\n },\n isInit: true,\n });\n }}\n handleBlockletRender={({ blocklet: blockletItem, defaultRender }) => {\n const isChosen = params?.bundleDid && params?.bundleDid === blockletItem?.did;\n return (\n <StoreBlockletItemWrapper>\n {isChosen && (\n <div className=\"check-container\">\n <CheckIcon className=\"check-icon\" />\n </div>\n )}\n <div\n className={isChosen ? 'choose-blocklet' : ''}\n style={{\n marginLeft: 16,\n }}>\n {defaultRender}\n </div>\n </StoreBlockletItemWrapper>\n );\n }}\n extraFilter={allBlocklets => {\n // only use blocklets that are component\n return allBlocklets?.filter(x => !!isComponentBlocklet(x));\n }}\n />\n );\n }}\n </SelectStore>\n </TypographyWrapper>\n ),\n cancel: t('common.cancel'),\n confirm: getParamsName(params)\n ? t('blocklet.component.addNext', { name: getParamsName(params) })\n : t('common.next'),\n onCancel: onClose,\n onConfirm: () => {\n onNext();\n },\n },\n {\n key: 'agreement',\n name: t('launchBlocklet.introduction'),\n body: (\n <TypographyWrapper component=\"div\" className=\"agreement-wrapper\">\n <PageHeader\n title={t('launchBlocklet.introduction')}\n subTitle={t('blocklet.component.addComponentTip.introduction')}\n />\n <Agreement\n showPageHeader={false}\n blocklet={meta ? { meta } : {}}\n loading={false}\n onClickNext={onNext}\n handleDescEle={\n <>\n <p>\n <div\n // eslint-disable-next-line\n dangerouslySetInnerHTML={{\n __html: t(\n `blocklet.component.addComponentTip.${params.requirePurchase ? 'isPurchase' : 'isFree'}`,\n {\n name: getComponentName(),\n }\n ),\n }}\n />\n </p>\n <p>{t('blocklet.component.addComponentTip.belowInformation')}</p>\n </>\n }\n />\n </TypographyWrapper>\n ),\n cancel: t('common.pre'),\n confirm: t('launchBlocklet.next'),\n onCancel,\n onConfirm: () => {\n setIsWaitingPurchase(false);\n onNext();\n },\n },\n meta &&\n params.requirePurchase && {\n key: 'purchase',\n name: (\n <>\n {t('common.verifyNFT')}\n <Required />\n </>\n ),\n body: (\n <TypographyWrapper\n component=\"div\"\n className=\"flex-align-center\"\n style={{\n flexDirection: 'column',\n }}>\n {!(purchaseRef.current?.getCurrentStep?.() === 2 || isWaitingPurchase) && (\n <PageHeaderWrapper\n title={t('common.verifyNFT')}\n subTitle={t('blocklet.component.addComponentTip.verifyNFT')}\n />\n )}\n {!isEmpty(params.purchaseResultProps) ? (\n <div className=\"flex-align-center flex-justify-center\">\n <ResultMessage {...params.purchaseResultProps} />\n </div>\n ) : (\n purchaseData && (\n <ComponentPurchaseSelect\n ref={purchaseRef}\n meta={purchaseData.meta}\n // if select deleted history, use verify mode\n mode={params.componentDid ? 'verify' : 'both'}\n onCancel={onCancelPurchase}\n installOpts={purchaseData.installOpts}\n handlePaySuccess={onSuccessPurchase}\n />\n )\n )}\n </TypographyWrapper>\n ),\n disabled: purchaseRef.current?.getCurrentStep?.() === 2 || isWaitingPurchase,\n cancel: t('common.pre'),\n confirm: t('common.next'),\n onConfirm: () => {\n if (typeof purchaseRef.current.onNext === 'function') {\n purchaseRef.current.onNext();\n setIsWaitingPurchase(true);\n }\n },\n onCancel: () => {\n onCancel();\n },\n },\n {\n key: 'config',\n name: t('common.config'),\n error,\n body: (\n <TypographyWrapper component=\"div\">\n <PageHeaderWrapper title={t('common.config')} subTitle={t('blocklet.component.addComponentTip.config')} />\n {/* history */}\n {!!params.bundleDid && !!configs.length && (\n <TextField\n select\n label={t('blocklet.component.selectInstance')}\n autoComplete=\"off\"\n variant=\"outlined\"\n name=\"did\"\n helperText={t('blocklet.component.selectInstanceTip')}\n data-cy=\"component-instance-select\"\n fullWidth\n value={params.componentDid || '_empty_'}\n onChange={e => {\n setConfigValue({\n componentDid: e.target.value,\n });\n }}\n style={{ marginBottom: 32 }}\n margin=\"normal\">\n <MenuItem key=\"_empty_\" value=\"_empty_\">\n {t('blocklet.component.newInstance')}\n </MenuItem>\n {configs.map(x => {\n return (\n <MenuItem key={x.meta.did} value={x.meta.did} data-cy={x.meta.did}>\n {x.meta.title}\n <Tag style={{ marginLeft: 8 }}>{formatToDatetime(x.deletedAt)}</Tag>\n </MenuItem>\n );\n })}\n </TextField>\n )}\n\n <TextField\n label={t('blocklet.component.mountPoint')}\n autoComplete=\"off\"\n variant=\"outlined\"\n name=\"pathPrefix\"\n inputProps={{\n 'data-cy': 'mount-point-input',\n }}\n fullWidth\n helperText={t('blocklet.component.mountPointTip')}\n style={{ marginBottom: 32 }}\n margin=\"normal\"\n value={params.pathPrefix}\n onChange={e => {\n const pathPrefix = e.target.value;\n updateParams({ pathPrefix });\n }}\n />\n <TextField\n label={t('common.title')}\n autoComplete=\"off\"\n variant=\"outlined\"\n fullWidth\n style={{ marginBottom: 32 }}\n margin=\"normal\"\n value={params.title}\n helperText={t('blocklet.component.titleTip')}\n onChange={e => {\n const title = e.target.value;\n setParams({ ...params, title });\n }}\n />\n {!!error && (\n <Alert type=\"error\" style={{ width: '100%', marginTop: 8 }}>\n {error}\n </Alert>\n )}\n </TypographyWrapper>\n ),\n cancel: t('common.pre'),\n confirm: t('common.next'),\n onCancel,\n onConfirm: () => {\n onNext();\n },\n },\n meta &&\n params?.hasEnvironmentsStep && {\n key: 'environment',\n name: (\n <>\n {t('common.environment')} {params.hasRequiredEnvironments && <Required />}\n </>\n ),\n disabled: !!editingItem || params?.hasMissRequiredConfigs,\n body: () => {\n return (\n <TypographyWrapper component=\"div\">\n <PageHeaderWrapper\n title={t('common.environment')}\n subTitle={t('blocklet.component.addComponentTip.environment')}\n />\n <SchemaForm\n style={{\n marginTop: -12,\n width: '100%',\n }}\n schema={params.configsList}\n defaultValue={params.configsValue}\n // eslint-disable-next-line\n onChange={(changeValue, { action, currentItem, allValues }) => {\n if (action === 'confirm') {\n updateParams({\n hasMissRequiredConfigs: hasMissRequiredConfigs(params.configsList, allValues),\n configsValue: allValues,\n });\n }\n if (action === 'edit') {\n setEditingItem(currentItem);\n } else if (['cancel', 'confirm'].includes(action)) {\n setEditingItem(null);\n }\n }}\n />\n </TypographyWrapper>\n );\n },\n cancel: t('common.pre'),\n confirm: t('common.next'),\n onCancel,\n onConfirm: onNext,\n },\n\n {\n key: 'install',\n name: t('common.install'),\n disabled: false,\n loading: false,\n body: (\n <TypographyWrapper\n component=\"div\"\n className=\"flex-justify-center flex-align-center\"\n style={{\n flexDirection: 'column',\n }}>\n {isEmpty(params.installResultProps) ? (\n <AnimationWaiter\n message={\n <MessageDiv>\n {/* <span className=\"msg-before\"></span> */}\n {t('blocklet.component.installingCanCloseWindowTip')}\n </MessageDiv>\n }\n increaseSpeed={0.3}\n messageLoop={false}\n />\n ) : (\n <div\n style={{\n marginTop: 120,\n }}>\n <ResultMessage {...params.installResultProps} />\n </div>\n )}\n </TypographyWrapper>\n ),\n confirm: t('common.complete'),\n // onCancel: onClose,\n onConfirm: () => {\n onClose();\n // scroll to bottom\n setTimeout(() => {\n const scrollDom = document.getElementsByClassName('dashboard-main')[0];\n if (scrollDom) {\n scrollDom.scrollTop = scrollDom.scrollHeight;\n }\n }, 200);\n },\n },\n ].filter(item => item);\n\n const step = steps[activeStep] || {};\n\n const onMenuItemClick = e => {\n e.stopPropagation();\n // eslint-disable-next-line no-unused-expressions\n setShowDialog(true);\n };\n\n const isDisabled = () => {\n if (loading || step.error || !params.bundleDid) {\n return true;\n }\n\n if (activeStep > 0) {\n return !params.pathPrefix;\n }\n\n return false;\n };\n\n // show close button when step is not the last one\n const showCloseButton = activeStep < steps.length - 1;\n\n return (\n <>\n {typeof children === 'function' ? (\n children({ loading, open: onMenuItemClick })\n ) : (\n <MenuItem onClick={onMenuItemClick} className=\"component-action\" data-cy=\"action-add-component\">\n {loading ? <Spinner size={[16, 10]} /> : <AddIcon style={{ fontSize: 18, marginRight: 5 }} />}\n {t('blocklet.component.add')}\n </MenuItem>\n )}\n\n {showDialog && (\n <DialogWrapper\n title={t('blocklet.component.addWithName', {\n name: getDisplayName(blocklet),\n })}\n maxWidth={false}\n fullWidth={false}\n PaperProps={{\n style: isMobile\n ? {\n width: '100%',\n height: window.innerHeight,\n }\n : {\n maxWidth: 1350,\n minWidth: 930,\n width: '80%',\n },\n }}\n // eslint-disable-next-line no-unused-vars\n onClose={(event, reason) => {\n // disable backdropClick\n if (reason === 'backdropClick') {\n return;\n }\n steps[0]?.onCancel?.();\n }}\n showCloseButton={showCloseButton}\n disableEscapeKeyDown\n open\n actions={\n <>\n {step.cancel && (\n <Button\n onClick={e => {\n e.stopPropagation();\n step.onCancel();\n }}\n color=\"inherit\">\n {step.cancel || t('common.cancel')}\n </Button>\n )}\n {step.confirm && (\n <Button\n onClick={e => {\n e.stopPropagation();\n step.onConfirm();\n }}\n color=\"primary\"\n data-cy=\"submit-confirm-next\"\n disabled={typeof step.disabled === 'boolean' ? step.disabled : isDisabled()}\n variant=\"contained\"\n autoFocus\n title={step.confirm}\n style={{\n marginLeft: 8,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n maxWidth: '200px',\n display: 'inline-block',\n }}>\n {(typeof step.loading === 'boolean' ? step.loading : loading) && <Spinner size={[16, 10]} />}\n {step.confirm}\n </Button>\n )}\n </>\n }>\n <StepProvider steps={steps} mode=\"memory\">\n <StepContent\n ref={stepRef}\n meta={meta}\n isMobile={isMobile}\n onStepChange={newStep => {\n setActiveStep(newStep);\n }}\n />\n </StepProvider>\n </DialogWrapper>\n )}\n </>\n );\n}\n\nAddComponent.propTypes = {\n children: PropTypes.any,\n blocklet: PropTypes.object.isRequired,\n};\n\nAddComponent.defaultProps = {\n children: null,\n};\n\nconst DialogWrapper = styled(Dialog)`\n .MuiDialogContent-root {\n padding-left: 0;\n padding-right: 0;\n padding-bottom: 0;\n }\n .MuiDialogActions-root {\n padding: 16px 24px;\n }\n`;\n\nconst TypographyWrapper = styled(Typography)`\n width: 100%;\n height: 100%;\n`;\n\nconst RightContent = styled.div`\n padding: 34px 24px 24px;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: flex-start;\n\n .bottom-button {\n min-width: 200px;\n }\n\n // blocklet-select-side\n aside {\n width: 140px;\n }\n`;\n\nconst isMobileDialogContent = props => {\n if (props.isMobile) {\n return `\n height: calc(100vh - 56px - 64px - 48px);\n `;\n }\n return '';\n};\n\nconst DialogContentWrapper = styled(DialogContentText)`\n ${({ className }) => {\n // mobile extra style\n if (className === 'mobileStyle') {\n return `\n & > div{\n height: 100%;\n }\n .root-header {\n .app-name-content {\n display: none;\n }\n }\n\n // content-panel\n .root-header + div{\n padding-top: 0;\n position: relative;\n & > div {\n padding-top: 0;\n }\n }\n\n `;\n }\n return `\n height: 72vh;\n position: relative;\n .root-header {\n z-index: auto !important;\n position: fixed !important;\n }\n & > div {\n height: 100%;\n width: 100%;\n max-width: 100%;\n & > div {\n max-height: unset !important;\n max-width: 100%;\n & > div {\n // left-panel\n &:first-child {\n padding-top: 0;\n // padding-left: 0;\n width: 25%;\n min-width: 240px;\n & > div:first-child {\n display: none;\n }\n // step\n & > div:last-child {\n // margin-top: 32px;\n margin-top: 0;\n }\n }\n // right-panel\n &:last-child {\n padding-top: 0;\n padding-right: 24px;\n overflow-y: auto;\n .app-content {\n padding: 0 0 24px 0;\n }\n .button-container {\n padding-right: 0;\n }\n }\n }\n }\n }\n\n `;\n }}\n\n & .flex-justify-center {\n display: flex;\n justify-content: center;\n }\n\n & .flex-align-center {\n display: flex;\n height: 100%;\n align-items: center;\n ${props => isMobileDialogContent(props)}\n }\n\n & .agreement-wrapper {\n ${props => isMobileDialogContent(props)}\n max-height: 60vh;\n .eula-trigger {\n padding-right: 0;\n }\n .next-button {\n display: none;\n }\n }\n\n & .connect {\n background: white;\n }\n`;\n\nconst PageHeaderWrapper = styled(PageHeader)`\n margin-bottom: 24px;\n`;\n\nconst StoreBlockletItemWrapper = styled.div`\n position: relative;\n\n .choose-blocklet {\n background-color: rgb(236, 251, 253);\n border-color: rgb(236, 251, 253);\n border-radius: 8px;\n }\n\n .check-container {\n position: absolute;\n right: 0;\n bottom: 0;\n display: flex;\n justify-content: flex-end;\n align-items: flex-end;\n width: 30px;\n height: 30px;\n border-radius: 0 0 8px 0;\n color: ${props => props.theme.palette.common.white};\n overflow: hidden;\n transition: all ease 0.3s;\n &:after {\n position: absolute;\n z-index: 0;\n display: block;\n width: 0;\n height: 0;\n border-top: transparent solid 15px;\n border-left: transparent solid 15px;\n border-bottom: ${props => props.theme.palette.primary.main} solid 15px;\n border-right: ${props => props.theme.palette.primary.main} solid 15px;\n transition: all ease 0.1s;\n content: '';\n }\n\n .check-icon {\n position: relative;\n z-index: 2;\n margin: 0 1px 1px 0;\n font-size: 16px;\n transition: all ease 0.2s;\n }\n }\n`;\n\nconst MessageDiv = styled.div`\n color: ${props => props.theme.palette.primary.main};\n .msg-before {\n display: inline-block;\n color: #aaa;\n font-size: 14px;\n margin-right: 6px;\n }\n`;\n","import { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { LocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport Components from '@abtnode/ux/lib/blocklet/component';\n\nimport { useRoutingContext } from '../../../contexts/routing';\nimport { useDomainStatusContext } from '../../../contexts/domain-status';\nimport { getBlockletUrlParams } from '../../../libs/util';\nimport AddComponent from './add';\n\nexport default function BlockletComponent({ blocklet, ...props }) {\n const { locale } = useContext(LocaleContext);\n const { siteMap, getBlockletUrl } = useRoutingContext();\n\n const { recommendedDomainStatus } = useDomainStatusContext();\n const domainStatus = recommendedDomainStatus || {};\n const { domain = '' } = domainStatus;\n\n const getComponentUrl = mountPoint =>\n getBlockletUrl({\n did: blocklet.meta.did,\n domain: { value: domain },\n mountPoint,\n siteMap,\n params: getBlockletUrlParams(blocklet, locale),\n });\n\n return <Components blocklet={blocklet} getComponentUrl={getComponentUrl} {...props} AddComponent={AddComponent} />;\n}\n\nBlockletComponent.propTypes = {\n blocklet: PropTypes.object.isRequired,\n};\n\nBlockletComponent.defaultProps = {};\n","import { useState } from 'react';\nimport styled from '@emotion/styled';\nimport PropTypes from 'prop-types';\n\nimport Dialog from '@arcblock/ux/lib/Dialog';\nimport Spinner from '@arcblock/ux/lib/Spinner';\nimport Typography from '@mui/material/Typography';\nimport TextField from '@mui/material/TextField';\nimport Stepper from '@mui/material/Stepper';\nimport Step from '@mui/material/Step';\nimport StepLabel from '@mui/material/StepLabel';\nimport Box from '@mui/material/Box';\nimport Link from '@mui/material/Link';\n\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport Button from '@arcblock/ux/lib/Button';\nimport Alert from '@arcblock/ux/lib/Alert';\nimport { genExportedMeta, downloadExportedSource, getNameByTitle } from '@abtnode/ux/lib/blocklet/util';\n\nimport { useSessionContext } from '../../contexts/session';\nimport { formatError } from '../../libs/util';\n\n// eslint-disable-next-line no-unused-vars\nexport default function ExportBlocklet({ blocklet, children }) {\n const { session } = useSessionContext();\n const [show, setShow] = useState(false);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState('');\n const { t } = useLocaleContext();\n const [stepIndex, setStepIndex] = useState(0);\n const [name, setName] = useState(getNameByTitle(blocklet.meta.title));\n\n const uploadedComponents = blocklet.children.filter(x => !x.bundleSource);\n\n const onCancel = () => {\n setShow(false);\n setName('');\n setStepIndex(0);\n };\n\n const onExport = async () => {\n setLoading(true);\n try {\n const meta = genExportedMeta(name, blocklet);\n\n await downloadExportedSource(meta, { holder: session.user.fullName });\n\n setStepIndex(1);\n } catch (err) {\n const errMsg = `Blocklet Install failed: ${formatError(err)}`;\n setError(errMsg);\n } finally {\n setLoading(false);\n }\n };\n\n const steps = [\n {\n label: t('blocklet.export.exportSource'),\n content: (\n <>\n <Typography component=\"div\">\n <TextField\n style={{ marginBottom: 24 }}\n label={t('blocklet.export.name')}\n autoComplete=\"off\"\n variant=\"outlined\"\n fullWidth\n autoFocus\n margin=\"dense\"\n value={name}\n onChange={e => {\n setError(null);\n setName(e.target.value);\n }}\n disabled={loading}\n helperText={t('blocklet.export.nameTip')}\n />\n </Typography>\n {!!uploadedComponents.length && (\n <Alert type=\"warning\" style={{ width: '100%', marginTop: 8 }}>\n {t('blocklet.export.uploadedComponentTip')} {uploadedComponents.map(x => x.meta.title).join(', ')}\n </Alert>\n )}\n {!!error && (\n <Alert type=\"error\" style={{ width: '100%', marginTop: 8 }}>\n {error}\n </Alert>\n )}\n </>\n ),\n btn: t('common.export'),\n handler: onExport,\n },\n {\n label: t('blocklet.export.result'),\n content: (\n <Box>\n <Typography variant=\"h6\" gutterBottom>\n <Box color=\"success.main\">{t('blocklet.export.success')}</Box>\n </Typography>\n <Box display=\"flex\" flexWrap=\"wrap\" alignItems=\"center\" fontSize=\"16px\" my={3}>\n <Box>{t('blocklet.export.resultTipStart')}</Box>\n <Box padding=\"2px\" margin=\"0 2px\" color=\"error.main\" bgcolor=\"grey.100\">\n @blocklet/cli\n </Box>\n <Box>{t('blocklet.export.resultTipEnd')}</Box>\n </Box>\n <Box>\n <Typography variant=\"body2\" gutterBottom>\n Learn more:\n </Typography>\n <Link href=\"https://docs.arcblock.io/abtnode/en/developer\" underline=\"hover\">\n https://docs.arcblock.io/abtnode/en/developer\n </Link>\n </Box>\n </Box>\n ),\n btn: t('common.confirm'),\n handler: onCancel,\n },\n ];\n\n return (\n <>\n {children({ loading, open: () => setShow(true) })}\n {show && (\n <Dialog\n title={t('blocklet.export.title')}\n fullWidth\n maxWidth=\"sm\"\n onClose={onCancel}\n showCloseButton\n open\n actions={\n <>\n <Button\n onClick={e => {\n e.stopPropagation();\n onCancel();\n }}\n color=\"inherit\">\n {t('common.cancel')}\n </Button>\n <Button\n onClick={e => {\n e.stopPropagation();\n steps[stepIndex].handler();\n }}\n color=\"primary\"\n data-cy=\"install-blocklet-next-step\"\n variant=\"contained\"\n disabled={loading || error || !name}\n style={{ marginLeft: 8 }}>\n {loading && <Spinner size={[16, 10]} />}\n {steps[stepIndex].btn}\n </Button>\n </>\n }>\n <Div>\n <Stepper activeStep={stepIndex} alternativeLabel>\n {steps.map(({ label }) => (\n <Step key={label}>\n <StepLabel>{label}</StepLabel>\n </Step>\n ))}\n </Stepper>\n {steps[stepIndex].content}\n </Div>\n </Dialog>\n )}\n </>\n );\n}\n\nExportBlocklet.propTypes = {\n blocklet: PropTypes.object.isRequired,\n children: PropTypes.func.isRequired,\n};\n\nExportBlocklet.defaultProps = {};\n\nconst Div = styled.div`\n .MuiStepper-root {\n padding-top: 0;\n margin-top: -16px;\n }\n`;\n","/* eslint-disable react/jsx-one-expression-per-line */\nimport { useState, useEffect, useCallback, isValidElement } from 'react';\nimport styled from '@emotion/styled';\nimport { useParams, useNavigate, Link, NavLink } from 'react-router-dom';\n\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\n\nimport Typography from '@mui/material/Typography';\nimport Breadcrumbs from '@mui/material/Breadcrumbs';\nimport Box from '@mui/material/Box';\nimport Spinner from '@arcblock/ux/lib/Spinner';\nimport ExternalLink from '@mui/material/Link';\nimport Badge from '@mui/material/Badge';\nimport ArchiveOutlinedIcon from '@mui/icons-material/ArchiveOutlined';\n\nimport Tabs from '@arcblock/ux/lib/Tabs';\nimport Alert from '@arcblock/ux/lib/Alert';\nimport Button from '@arcblock/ux/lib/Button';\n\nimport { BlockletEvents } from '@blocklet/constant';\nimport { getDisplayName, getAppMissingConfigs } from '@blocklet/meta/lib/util';\n\nimport BlockletStatus from '@abtnode/ux/lib/blocklet/status';\nimport BlockletLog from '@abtnode/ux/lib/blocklet/log';\nimport { DeletingBlockletProvider } from '@abtnode/ux/lib/contexts/deleting-blocklets';\nimport BlockletOverview from '@abtnode/ux/lib/blocklet/overview';\nimport BlockletConfiguration from '@abtnode/ux/lib/blocklet/configuration';\nimport AuditLogs from '@abtnode/ux/lib/blocklet/audit-logs';\nimport Passports from '@abtnode/ux/lib/team/passports';\nimport Members from '@abtnode/ux/lib/team/members';\n\nimport BlockletAvatar from '@abtnode/ux/lib/blocklet/avatar';\nimport BlockletService from '../../components/blocklet/service';\nimport Access from '../../components/blocklet/access';\nimport Components from '../../components/blocklet/component';\nimport BlockletActions from '../../components/blocklet/actions';\nimport { useNodeContext } from '../../contexts/node';\nimport { TeamProvider } from '../../contexts/team';\nimport { useRoutingContext } from '../../contexts/routing';\nimport { DomainStatusProvider } from '../../contexts/domain-status';\nimport { formatError, getBlockletServices, isInstalling } from '../../libs/util';\nimport { useSubscription } from '../../libs/ws';\nimport fixBlocklet from '../../libs/fix-blocklet';\nimport Permission from '../../components/permission';\nimport ExportBlocklet from '../../components/blocklet/export-blocklet';\n\nconst Empty = ({ children }) => children;\n\nexport default function BlockletDetail() {\n const navigate = useNavigate();\n const { did, tab: currentTab = 'overview' } = useParams();\n const [currentState, setCurrentState] = useState(null);\n const [error, setError] = useState(null);\n const { api, refresh } = useNodeContext();\n const { t } = useLocaleContext();\n const { siteMap } = useRoutingContext();\n\n const domains = (siteMap[currentState?.meta?.did]?.domainAliases || []).map(x => x.value).filter(Boolean);\n\n const getBlocklet = async () => {\n try {\n const { blocklet } = await api.getBlocklet({ input: { did } });\n if (blocklet) {\n await fixBlocklet(blocklet);\n setCurrentState(blocklet);\n } else {\n setError(new Error(t('blocklet.notFound')));\n }\n } catch (err) {\n setError(err);\n }\n };\n\n const onBlockletChange = ({ meta = {} } = {}) => {\n if (meta.did === did) {\n getBlocklet();\n }\n };\n\n useEffect(() => {\n getBlocklet();\n }, [did]); // eslint-disable-line\n\n const renderAuditLogs = useCallback(() => <AuditLogs scope={did} />, [did]);\n\n useSubscription(BlockletEvents.started, onBlockletChange);\n useSubscription(BlockletEvents.statusChange, onBlockletChange);\n useSubscription(BlockletEvents.startFailed, onBlockletChange);\n useSubscription(BlockletEvents.installed, onBlockletChange);\n useSubscription(BlockletEvents.upgraded, onBlockletChange);\n useSubscription(BlockletEvents.downgraded, onBlockletChange);\n useSubscription(BlockletEvents.updated, onBlockletChange);\n\n const onTabChange = newTab => {\n navigate(`/blocklets/${did}/${newTab}`);\n };\n\n // eslint-disable-next-line no-unused-vars\n const onUpdate = async blocklet => {\n if (blocklet) {\n setCurrentState(blocklet);\n }\n\n getBlocklet();\n };\n\n const missingRequiredConfigs =\n !currentState || isInstalling(currentState.status) ? [] : getAppMissingConfigs(currentState);\n\n let content = null;\n const tabs = [\n { label: t('common.overview'), value: 'overview' },\n { label: t('router.routerSetting'), value: 'access' },\n {\n breadcrumbsLabel: t('common.components'),\n label: (\n <Badge color=\"error\" variant=\"dot\" invisible={!missingRequiredConfigs.length}>\n {t('common.components')}\n </Badge>\n ),\n value: 'components',\n },\n ];\n\n if (error) {\n content = (\n <>\n <Alert type=\"error\" variant=\"icon\">\n {formatError(error)}\n </Alert>\n <Button component={Link} color=\"primary\" variant=\"contained\" to=\"/blocklets\">\n {t('common.blocklets')}\n </Button>\n </>\n );\n } else if (currentState) {\n const renders = {\n overview: BlockletOverview,\n configuration: BlockletConfiguration,\n access: Access,\n services: BlockletService,\n members: <Members type=\"blocklet\" />,\n passports: Passports,\n components: Components,\n 'audit-logs': renderAuditLogs,\n logs: BlockletLog,\n };\n\n if (currentTab === 'configuration' && isInstalling(currentState.status)) {\n onTabChange('overview');\n }\n\n if (!isInstalling(currentState.status)) {\n tabs.push({ label: t('common.members'), value: 'members' });\n tabs.push({ label: t('common.passport'), value: 'passports' });\n tabs.push({ label: t('common.configuration'), value: 'configuration' });\n }\n\n tabs.push({ label: t('common.auditLogs'), value: 'audit-logs' });\n tabs.push({ label: t('common.logs'), value: 'logs' });\n\n const services = getBlockletServices(currentState);\n if (services.length) {\n tabs.splice(2, 0, { label: t('blocklet.services'), value: 'services' });\n }\n\n const TabComponent = renders[currentTab] || renders.overview;\n\n content = (\n <DeletingBlockletProvider type=\"components\">\n <Tabs tabs={tabs} current={currentTab} onChange={onTabChange} scrollButtons=\"auto\" />\n <div className=\"page-content\">\n {isValidElement(TabComponent) ? TabComponent : <TabComponent blocklet={currentState} onUpdate={onUpdate} />}\n </div>\n </DeletingBlockletProvider>\n );\n } else {\n content = <Spinner />;\n }\n\n const onActionStart = () => {};\n const onActionComplete = async ({ action, err }) => {\n if (err) {\n return;\n }\n\n if (action === 'remove') {\n refresh();\n navigate('/blocklets');\n } else {\n getBlocklet();\n }\n };\n const currentTabDesc = tabs.find(x => x.value === currentTab);\n\n const ProxyTeamProvider = currentState ? TeamProvider : Empty;\n\n return (\n <DomainStatusProvider domains={domains}>\n <ProxyTeamProvider teamDid={did}>\n <Main>\n <Breadcrumbs separator=\"›\" aria-label=\"breadcrumb\" className=\"page-breadcrumb\">\n <Link color=\"textSecondary\" to=\"/blocklets\">\n {t('common.blocklets')}\n </Link>\n <NavLink to={`/blocklets/${did}/overview`} style={active => (active ? { color: 'inherit' } : {})}>\n {t('common.detail')}\n </NavLink>\n <Typography color=\"textSecondary\">\n {currentTabDesc ? currentTabDesc.breadcrumbsLabel || currentTabDesc.label : ''}\n </Typography>\n </Breadcrumbs>\n\n <Typography component=\"div\" className=\"page-header\">\n <Typography component=\"h2\" variant=\"h4\" className=\"page-title\" color=\"textPrimary\">\n {currentState ? <BlockletAvatar blocklet={currentState} style={{ marginRight: 16 }} /> : null}\n {currentState ? (\n <Box display=\"flex\" alignItems=\"center\">\n <Box>{getDisplayName(currentState)}</Box>\n {!!currentState && (\n <BlockletStatus\n size=\"12px\"\n style={{ marginLeft: 8 }}\n status={currentState.status}\n source={currentState.source}\n />\n )}\n </Box>\n ) : (\n `${t('common.blocklet')} ${t('common.detail')}`\n )}\n\n {currentState && currentState.source === 'custom' && (\n <ExportBlocklet blocklet={currentState}>\n {({ open }) => (\n <ExternalLink\n className=\"page-link\"\n onClick={() => open()}\n style={{ cursor: 'pointer' }}\n underline=\"hover\">\n <ArchiveOutlinedIcon />\n </ExternalLink>\n )}\n </ExportBlocklet>\n )}\n </Typography>\n <Permission permission=\"mutate_blocklet\">\n {currentState ? (\n <BlockletActions\n className=\"page-actions\"\n blocklet={currentState}\n onStart={onActionStart}\n onComplete={onActionComplete}\n variant=\"group\"\n />\n ) : null}\n </Permission>\n </Typography>\n\n {!!missingRequiredConfigs.length && (\n <Alert type=\"error\" style={{ margin: '12px 0' }}>\n {t('blocklet.config.missingRequired')}\n </Alert>\n )}\n {content}\n </Main>\n </ProxyTeamProvider>\n </DomainStatusProvider>\n );\n}\n\nconst Main = styled.main`\n .page-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n .page-title {\n display: flex;\n align-items: center;\n\n .page-link {\n font-size: 15px;\n margin-top: 8px;\n margin-left: 8px;\n }\n }\n\n .page-content {\n margin-top: 32px;\n }\n\n @media (max-width: ${props => props.theme.breakpoints.values.md}px) {\n .page-header {\n flex-direction: column;\n align-items: flex-start;\n .page-actions,\n .MuiButtonGroup-root {\n width: 100%;\n }\n .MuiButtonGroup-root {\n .MuiButtonBase-root {\n flex: 1;\n }\n .blocklet-action-text {\n display: none;\n }\n }\n }\n\n .page-title {\n margin-bottom: 15px;\n }\n }\n`;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = BlockletSource;\nvar _react = require(\"react\");\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _urlJoin = _interopRequireDefault(require(\"url-join\"));\nvar _toUpper = _interopRequireDefault(require(\"lodash/toUpper\"));\nvar _Tag = _interopRequireDefault(require(\"@arcblock/ux/lib/Tag\"));\nvar _context = require(\"@arcblock/ux/lib/Locale/context\");\nvar _Link = _interopRequireDefault(require(\"@mui/material/Link\"));\nvar _Box = _interopRequireDefault(require(\"@mui/material/Box\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction BlockletSource(_ref) {\n var _blocklet$meta;\n let {\n sourceInfo,\n blocklet\n } = _ref;\n const {\n t\n } = (0, _react.useContext)(_context.LocaleContext);\n return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n display: \"flex\",\n alignItems: \"center\",\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Tag.default, {\n type: \"success\",\n children: (0, _toUpper.default)(sourceInfo.source)\n }, \"source\"), sourceInfo.source === 'registry' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Link.default, {\n href: (0, _urlJoin.default)(sourceInfo.deployedFrom, 'blocklets', (blocklet === null || blocklet === void 0 ? void 0 : (_blocklet$meta = blocklet.meta) === null || _blocklet$meta === void 0 ? void 0 : _blocklet$meta.bundleDid) || ''),\n target: \"_blank\",\n className: \"page-link\",\n underline: \"hover\",\n style: {\n display: 'flex',\n alignItems: 'center',\n marginLeft: 8\n },\n children: t('blocklet.overview.viewInStore')\n })]\n });\n}\nBlockletSource.propTypes = {\n sourceInfo: _propTypes.default.shape({\n source: _propTypes.default.string,\n deployedFrom: _propTypes.default.string\n }),\n blocklet: _propTypes.default.object\n};\nBlockletSource.defaultProps = {\n sourceInfo: {},\n blocklet: {}\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = ComponentConfiguration;\nvar _react = require(\"react\");\nvar _styled = _interopRequireDefault(require(\"@emotion/styled\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _IconButton = _interopRequireDefault(require(\"@mui/material/IconButton\"));\nvar _Box = _interopRequireDefault(require(\"@mui/material/Box\"));\nvar _Edit = _interopRequireDefault(require(\"@mui/icons-material/Edit\"));\nvar _util = require(\"@blocklet/meta/lib/util\");\nvar _context = require(\"@arcblock/ux/lib/Locale/context\");\nvar _Dialog = _interopRequireDefault(require(\"@arcblock/ux/lib/Dialog\"));\nvar _Tabs = _interopRequireDefault(require(\"@arcblock/ux/lib/Tabs\"));\nvar _util2 = require(\"../../util\");\nvar _environment = _interopRequireDefault(require(\"./environment\"));\nvar _setting = _interopRequireDefault(require(\"./setting\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _templateObject;\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\nfunction ComponentConfiguration(_ref) {\n let {\n blocklet,\n ancestors,\n children\n } = _ref;\n const [showDialog, setShowDialog] = (0, _react.useState)('');\n const {\n t\n } = (0, _react.useContext)(_context.LocaleContext);\n const isRoot = !ancestors.map(x => x.meta.did)[0];\n const isDynamic = blocklet.dynamic;\n const [tab, setTab] = (0, _react.useState)('settings');\n const name = ancestors.concat(blocklet).map(x => (0, _util.getDisplayName)(x, true)).join(' / ');\n if ((0, _util2.isInstalling)(blocklet.status)) {\n return null;\n }\n if (blocklet.status === 'unknown' && (0, _util2.isInstalling)(blocklet.status)) {\n return null;\n }\n const onClose = () => {\n setShowDialog(false);\n };\n const onOpen = e => {\n e.stopPropagation();\n // eslint-disable-next-line no-unused-expressions\n setShowDialog(true);\n };\n const tabConfigs = {\n settings: {\n label: t('blocklet.component.setting'),\n value: 'settings',\n component: /*#__PURE__*/(0, _jsxRuntime.jsx)(_setting.default, {\n blocklet: blocklet,\n ancestors: ancestors\n })\n },\n environments: {\n label: t('common.environment'),\n value: 'environments',\n component: /*#__PURE__*/(0, _jsxRuntime.jsx)(_environment.default, {\n blocklet: blocklet,\n ancestors: ancestors\n })\n }\n };\n const tabs = Object.values(tabConfigs).map(_ref2 => {\n let {\n label,\n value\n } = _ref2;\n return {\n label,\n value\n };\n });\n const onTabChange = newTab => {\n setTab(newTab);\n };\n const tabConfig = tabConfigs[tab] || tabConfigs.settings;\n return [typeof children === 'function' ? children({\n open: onOpen\n }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {\n onClick: onOpen,\n \"data-cy\": \"action-config-component\",\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Edit.default, {})\n }), showDialog && /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledDialog, {\n open: true,\n fullWidth: true,\n maxWidth: \"md\",\n title: name,\n onClose: onClose,\n PaperProps: {\n style: {\n minHeight: 'auto'\n }\n },\n children: isRoot || !isDynamic ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_environment.default, {\n blocklet: blocklet,\n ancestors: ancestors\n }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n mt: 1,\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Tabs.default, {\n tabs: tabs,\n current: tab,\n onChange: onTabChange,\n scrollButtons: \"auto\"\n }), tabConfig.component]\n })\n })];\n}\nComponentConfiguration.propTypes = {\n blocklet: _propTypes.default.object.isRequired,\n ancestors: _propTypes.default.array,\n children: _propTypes.default.any\n};\nComponentConfiguration.defaultProps = {\n ancestors: [],\n children: null\n};\nconst StyledDialog = (0, _styled.default)(_Dialog.default)(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n .MuiDialogContent-root {\\n padding-top: 0;\\n margin-top: -32px;\\n }\\n .MuiToolbar-root {\\n padding-right: 12px;\\n }\\n .ux-dialog_right {\\n padding-right: 20px;\\n }\\n\"])));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = DeleteComponent;\nvar _react = require(\"react\");\nvar _styled = _interopRequireDefault(require(\"@emotion/styled\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _Delete = _interopRequireDefault(require(\"@mui/icons-material/Delete\"));\nvar _context = require(\"@arcblock/ux/lib/Locale/context\");\nvar _IconButton = _interopRequireDefault(require(\"@mui/material/IconButton\"));\nvar _Tooltip = _interopRequireDefault(require(\"@mui/material/Tooltip\"));\nvar _Typography = _interopRequireDefault(require(\"@mui/material/Typography\"));\nvar _Radio = _interopRequireDefault(require(\"@mui/material/Radio\"));\nvar _RadioGroup = _interopRequireDefault(require(\"@mui/material/RadioGroup\"));\nvar _FormControlLabel = _interopRequireDefault(require(\"@mui/material/FormControlLabel\"));\nvar _confirm = _interopRequireDefault(require(\"../../confirm\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _templateObject;\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction DeleteComponent(_ref) {\n let {\n component,\n remove,\n disabled,\n tip\n } = _ref;\n const {\n t\n } = (0, _react.useContext)(_context.LocaleContext);\n const [loading, setLoading] = (0, _react.useState)(false);\n const [deleteSetting, setDeleteSetting] = (0, _react.useState)(null);\n const deleteComponent = async param => {\n setLoading(true);\n await remove(param.component, param.removeType);\n setLoading(false);\n setDeleteSetting(null);\n };\n const componentDisabled = disabled || loading;\n const btn = /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledButton, {\n disabled: componentDisabled,\n onClick: () => setDeleteSetting({\n title: t('blocklet.component.delete'),\n // eslint-disable-next-line react/no-unstable-nested-components\n description: (params, setParams) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Typography.default, {\n component: \"div\",\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {\n gutterBottom: true,\n children: t('blocklet.action.removeComponentDescription')\n }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_RadioGroup.default, {\n name: \"removeType\",\n value: params.removeType,\n onChange: e => setParams(_objectSpread(_objectSpread({}, params), {}, {\n removeType: e.target.value\n })),\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_FormControlLabel.default, {\n value: \"keepData\",\n control: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Radio.default, {}),\n label: t('blocklet.action.removeComponentKeepData')\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_FormControlLabel.default, {\n value: \"complete\",\n control: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Radio.default, {}),\n label: t('blocklet.action.removeComponentComplete')\n })]\n })]\n }),\n confirm: t('common.confirm'),\n cancel: t('common.cancel'),\n params: {\n component,\n removeType: 'keepData'\n },\n onConfirm: deleteComponent,\n onCancel: () => setDeleteSetting(null)\n }),\n \"data-cy\": \"delete-component-btn\",\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Delete.default, {\n disabled: componentDisabled\n })\n });\n const btnWithToolTip = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, {\n title: tip || t('common.delete'),\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(\"span\", {\n children: btn\n })\n });\n return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {\n children: [btnWithToolTip, deleteSetting && /*#__PURE__*/(0, _jsxRuntime.jsx)(_confirm.default, {\n title: deleteSetting.title,\n description: deleteSetting.description,\n confirm: deleteSetting.confirm,\n cancel: deleteSetting.cancel,\n params: deleteSetting.params,\n onConfirm: deleteSetting.onConfirm,\n onCancel: deleteSetting.onCancel\n })]\n });\n}\nDeleteComponent.propTypes = {\n component: _propTypes.default.object.isRequired,\n remove: _propTypes.default.func,\n disabled: _propTypes.default.bool,\n tip: _propTypes.default.string\n};\nDeleteComponent.defaultProps = {\n remove: async () => {},\n disabled: false,\n tip: ''\n};\nconst StyledButton = (0, _styled.default)(_IconButton.default)(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n &.Mui-disabled {\\n opacity: 0.5;\\n }\\n\"])));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = ComponentEnvironment;\nvar _react = require(\"react\");\nvar _styled = _interopRequireDefault(require(\"@emotion/styled\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _core = _interopRequireDefault(require(\"@material-table/core\"));\nvar _TextField = _interopRequireDefault(require(\"@mui/material/TextField\"));\nvar _Alert = _interopRequireDefault(require(\"@mui/material/Alert\"));\nvar _constant = require(\"@blocklet/constant\");\nvar _util = require(\"@blocklet/meta/lib/util\");\nvar _context = require(\"@arcblock/ux/lib/Locale/context\");\nvar _clickToCopy = _interopRequireDefault(require(\"../../click-to-copy\"));\nvar _toast = _interopRequireDefault(require(\"../../toast\"));\nvar _node = require(\"../../contexts/node\");\nvar _tableIcons = _interopRequireDefault(require(\"../../table-icons\"));\nvar _table = _interopRequireDefault(require(\"../../table\"));\nvar _permission = _interopRequireDefault(require(\"../../permission\"));\nvar _util2 = require(\"../../util\");\nvar _icons = _interopRequireDefault(require(\"../icons\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _templateObject, _templateObject2;\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction ComponentEnvironment(_ref) {\n let {\n blocklet,\n ancestors\n } = _ref;\n const node = (0, _node.useNodeContext)();\n const {\n inService\n } = node;\n const {\n t\n } = (0, _react.useContext)(_context.LocaleContext);\n const dids = [...ancestors.map(x => x.meta.did), blocklet.meta.did];\n const onConfigChanged = () => _toast.default.success(t('blocklet.config.changedTip'));\n const isConfigEditable = x => x.custom;\n if ((0, _util2.isInstalling)(blocklet.status)) {\n return null;\n }\n if (blocklet.status === 'unknown' && (0, _util2.isInstalling)(blocklet.status)) {\n return null;\n }\n const onAddConfig = async data => {\n if (!data.key.trim() || !data.value.trim()) {\n _toast.default.error(t('blocklet.config.environment.keyValueRequired'));\n return;\n }\n if (data.key.startsWith('BLOCKLET_')) {\n _toast.default.error(t('blocklet.config.environment.invalidKey'));\n return;\n }\n data.custom = true;\n const result = await node.api.configBlocklet({\n input: {\n did: dids,\n configs: [data]\n }\n });\n if (result.code === 'ok') {\n onConfigChanged(result.blocklet);\n }\n };\n const onEditConfig = async (newData, oldData) => {\n // only required field can't be empty\n if (newData.required && (!newData.key.trim() || !newData.value.trim())) {\n _toast.default.error(t('blocklet.config.environment.keyValueRequired'));\n return;\n }\n if (newData.key.startsWith('BLOCKLET_') && !_constant.BLOCKLET_CONFIGURABLE_KEY[newData.key]) {\n _toast.default.error(t('blocklet.config.environment.invalidKey'));\n return;\n }\n if (newData.key === _constant.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_CLUSTER_SIZE) {\n const errMessage = (0, _util2.isValidClusterSize)(newData);\n if (errMessage) {\n _toast.default.error(errMessage);\n return;\n }\n }\n const configs = [newData];\n if (newData.key !== oldData.key) {\n configs.push({\n key: oldData.key\n });\n }\n try {\n const result = await node.api.configBlocklet({\n input: {\n did: dids,\n configs\n }\n });\n if (result.code === 'ok') {\n onConfigChanged(result.blocklet);\n }\n } catch (err) {\n _toast.default.error((0, _util2.formatError)(err));\n }\n };\n const onDeleteConfig = async data => {\n if (data.required) {\n _toast.default.error(t('blocklet.config.environment.deleteForbidden'));\n return;\n }\n const result = await node.api.configBlocklet({\n input: {\n did: dids,\n configs: [{\n key: data.key\n }]\n }\n });\n if (result.code === 'ok') {\n onConfigChanged(result.blocklet);\n }\n };\n\n // configs\n const componentConfigs = (blocklet.configs || []).filter(x => !_constant.BLOCKLET_CONFIGURABLE_KEY[x.key]);\n const sharedConfigObj = (0, _util.getSharedConfigObj)(blocklet, ancestors);\n const missingRequiredConfigs = (0, _util.getComponentMissingConfigs)(blocklet, ancestors);\n const configs = componentConfigs.map(x => _objectSpread(_objectSpread({}, x), {}, {\n value: sharedConfigObj[x.key] || x.value\n }));\n const hasBWAConfig = configs.some(x => x.key && x.key.startsWith('BWA_'));\n const action = {\n onRowAdd: onAddConfig,\n onRowUpdate: onEditConfig,\n onRowDelete: onDeleteConfig,\n // environment declare in blocklet.yml can't be deleted, only custom env can be deleted\n isDeletable: isConfigEditable\n };\n const onColumns = () => [{\n title: t('common.key'),\n field: 'key',\n initialEditValue: 'Key',\n width: '30%',\n render: d => /*#__PURE__*/(0, _jsxRuntime.jsx)(_clickToCopy.default, {\n value: d.value,\n style: {\n color: d.required && !d.value ? '#ff4436' : '#222222',\n fontWeight: d.required ? 'bold' : 'normal'\n },\n children: d.key\n }),\n editComponent: props => {\n const {\n value,\n rowData,\n onChange: _onChange\n } = props;\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(EditDiv, {\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextField.default, {\n fullWidth: true,\n size: \"small\",\n disabled: isConfigEditable(rowData) === false,\n value: value,\n onChange: e => _onChange(e.target.value),\n variant: \"outlined\",\n label: \"Key\",\n placeholder: t('blocklet.config.environment.key'),\n margin: \"dense\",\n autoFocus: true\n })\n });\n }\n }, {\n title: t('common.value'),\n field: 'value',\n initialEditValue: 'Value',\n width: 'calc((100% - (96px + 30%)) / 1)',\n render: d => {\n if (d.secure) {\n return '******';\n }\n if (!d.value) {\n return null;\n }\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(_clickToCopy.default, {\n unstyled: true,\n value: d.value,\n style: {\n wordBreak: 'break-all'\n },\n children: d.value\n });\n },\n // eslint-disable-next-line no-shadow\n editComponent: props => {\n const {\n value,\n rowData,\n onChange: _onChange2\n } = props;\n return /*#__PURE__*/(0, _jsxRuntime.jsxs)(EditDiv, {\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_TextField.default, {\n fullWidth: true,\n size: \"small\",\n value: value === '__encrypted__' ? '' : value,\n onChange: e => _onChange2(e.target.value),\n variant: \"outlined\",\n label: t('common.value'),\n placeholder: t('blocklet.config.environment.value'),\n margin: \"dense\",\n autoFocus: true\n }), rowData.description && /*#__PURE__*/(0, _jsxRuntime.jsx)(\"div\", {\n style: {\n marginLeft: 12\n },\n children: rowData.description\n })]\n });\n }\n }];\n return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Div, {\n children: [!!missingRequiredConfigs.length && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.default, {\n severity: \"error\",\n style: {\n marginTop: 24\n },\n children: t('blocklet.config.missingRequired')\n }), hasBWAConfig && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.default, {\n severity: \"info\",\n children: t('blocklet.config.environment.tip')\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_permission.default, {\n permission: inService ? '' : 'mutate_blocklet',\n role: inService ? _util2.BlockletAdminRoles : [],\n children: hasPermission => /*#__PURE__*/(0, _jsxRuntime.jsx)(_table.default, {\n className: (0, _util2.isBlockletDev)(blocklet) ? 'readonly-block config-table' : 'config-table',\n \"data-disabled-text\": t('blocklet.config.disabledText'),\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_core.default, {\n title: /*#__PURE__*/(0, _jsxRuntime.jsx)(\"h4\", {\n children: t('common.environment')\n }),\n columns: onColumns(),\n icons: _objectSpread(_objectSpread({}, _icons.default), _tableIcons.default),\n options: {\n emptyRowsWhenPaging: false,\n actionsColumnIndex: -1,\n tableLayout: 'auto',\n maxBodyHeight: '100%',\n paging: false,\n search: false\n },\n localization: {\n header: {\n actions: t('common.actions')\n },\n body: {\n emptyDataSourceMessage: t('common.noData')\n }\n },\n data: configs,\n editable: hasPermission ? action : {}\n })\n })\n })]\n });\n}\nComponentEnvironment.propTypes = {\n blocklet: _propTypes.default.object.isRequired,\n ancestors: _propTypes.default.array\n};\nComponentEnvironment.defaultProps = {\n ancestors: []\n};\nconst Div = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n .readonly-block {\\n position: relative;\\n &::after {\\n content: attr(data-disabled-text);\\n position: absolute;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n background-color: rgba(230, 230, 230, 0.7);\\n font-size: 24px;\\n letter-spacing: 2px;\\n color: #e33371;\\n padding: 20px;\\n word-break: break-all;\\n word-wrap: break-word;\\n z-index: 10;\\n }\\n }\\n .config-table {\\n margin-bottom: 24px;\\n position: relative;\\n .hide-control {\\n position: absolute;\\n top: 10px;\\n left: 200px;\\n @media (max-width: \", \"px) {\\n left: 160px;\\n }\\n }\\n\\n .MuiToolbar-root {\\n display: flex;\\n }\\n\\n .MuiTableRow-head {\\n display: none;\\n }\\n\\n &.hide-header {\\n .MuiToolbar-root {\\n display: none;\\n }\\n }\\n }\\n\\n .accordion {\\n margin-bottom: 16px;\\n &:last-of-type {\\n margin-bottom: 0;\\n }\\n padding: 8px 0 8px 0px;\\n &.MuiAccordion-root {\\n background: transparent;\\n box-shadow: none;\\n border: 1px solid #ddd;\\n border-radius: 4px;\\n &::before,\\n &::after {\\n height: 0;\\n }\\n .MuiAccordionSummary-root {\\n padding-left: 0;\\n }\\n .accordion-title {\\n font-weight: bold;\\n padding-left: 16px;\\n }\\n }\\n }\\n\"])), props => props.theme.breakpoints.values.sm);\nconst EditDiv = _styled.default.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([\"\\n height: 60px;\\n\"])));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = BlockletComponent;\nvar _react = require(\"react\");\nvar _styled = _interopRequireDefault(require(\"@emotion/styled\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _semver = _interopRequireDefault(require(\"semver\"));\nvar _Dialog = _interopRequireDefault(require(\"@mui/material/Dialog\"));\nvar _Box = _interopRequireDefault(require(\"@mui/material/Box\"));\nvar _DialogContent = _interopRequireDefault(require(\"@mui/material/DialogContent\"));\nvar _DialogTitle = _interopRequireDefault(require(\"@mui/material/DialogTitle\"));\nvar _DialogActions = _interopRequireDefault(require(\"@mui/material/DialogActions\"));\nvar _Update = _interopRequireDefault(require(\"@mui/icons-material/Update\"));\nvar _IconButton = _interopRequireDefault(require(\"@mui/material/IconButton\"));\nvar _Add = _interopRequireDefault(require(\"@mui/icons-material/Add\"));\nvar _Badge = _interopRequireDefault(require(\"@mui/material/Badge\"));\nvar _SettingsOutlined = _interopRequireDefault(require(\"@mui/icons-material/SettingsOutlined\"));\nvar _InfoOutlined = _interopRequireDefault(require(\"@mui/icons-material/InfoOutlined\"));\nvar _Launch = _interopRequireDefault(require(\"@mui/icons-material/Launch\"));\nvar _Grid = _interopRequireDefault(require(\"@mui/material/Grid\"));\nvar _Collapse = _interopRequireDefault(require(\"@mui/material/Collapse\"));\nvar _Tooltip = _interopRequireDefault(require(\"@mui/material/Tooltip\"));\nvar _ArrowForward = _interopRequireDefault(require(\"@mui/icons-material/ArrowForward\"));\nvar _ExpandMore = _interopRequireDefault(require(\"@mui/icons-material/ExpandMore\"));\nvar _ChevronRight = _interopRequireDefault(require(\"@mui/icons-material/ChevronRight\"));\nvar _Spinner = _interopRequireDefault(require(\"@arcblock/ux/lib/Spinner\"));\nvar _InfoRow = _interopRequireDefault(require(\"@arcblock/ux/lib/InfoRow\"));\nvar _context = require(\"@arcblock/ux/lib/Locale/context\");\nvar _Button = _interopRequireDefault(require(\"@arcblock/ux/lib/Button\"));\nvar _Empty = _interopRequireDefault(require(\"@arcblock/ux/lib/Empty\"));\nvar _util = require(\"@blocklet/meta/lib/util\");\nvar _deletingBlocklets = require(\"../../contexts/deleting-blocklets\");\nvar _didAddress = _interopRequireDefault(require(\"../../did-address\"));\nvar _tag = _interopRequireDefault(require(\"../../tag\"));\nvar _toast = _interopRequireDefault(require(\"../../toast\"));\nvar _blockletSource = _interopRequireDefault(require(\"../blocklet-source\"));\nvar _runtimeInfo = _interopRequireDefault(require(\"../runtime-info\"));\nvar _status = _interopRequireDefault(require(\"../status\"));\nvar _version = _interopRequireDefault(require(\"../version\"));\nvar _node = require(\"../../contexts/node\");\nvar _util2 = require(\"../../util\");\nvar _permission = _interopRequireDefault(require(\"../../permission\"));\nvar _avatar = _interopRequireDefault(require(\"../avatar\"));\nvar _mode = _interopRequireDefault(require(\"../mode\"));\nvar _configuration = _interopRequireDefault(require(\"./configuration\"));\nvar _delete = _interopRequireDefault(require(\"./delete\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nconst _excluded = [\"blocklet\", \"onUpdate\", \"getComponentUrl\", \"AddComponent\"];\nvar _templateObject, _templateObject2;\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\nconst getEngineRows = (engine, t) => {\n if (!engine) {\n return [];\n }\n return [{\n name: t('common.name'),\n value: engine.displayName\n }, {\n name: t('common.description'),\n value: engine.description\n }, {\n name: t('common.version'),\n value: /*#__PURE__*/(0, _jsxRuntime.jsx)(_tag.default, {\n children: engine.version\n })\n }];\n};\nconst getSourceInfo = blocklet => {\n const {\n source,\n deployedFrom,\n bundleSource\n } = blocklet;\n if (source) {\n return {\n source,\n deployedFrom\n };\n }\n if (!bundleSource) {\n return {\n source: 'upload',\n deployedFrom\n };\n }\n if (bundleSource.url) {\n return {\n source: 'url',\n deployedFrom: deployedFrom || Array.isArray(bundleSource.url) ? bundleSource.url[0] : bundleSource.url\n };\n }\n if (bundleSource.store) {\n return {\n source: 'registry',\n deployedFrom: deployedFrom || Array.isArray(bundleSource.store) ? bundleSource.store[0] : bundleSource.store\n };\n }\n return {};\n};\nfunction ComponentItem(_ref) {\n var _blocklet$children;\n let {\n blocklet,\n ancestors,\n depth,\n onRemove,\n getComponentUrl\n } = _ref;\n const {\n t\n } = (0, _react.useContext)(_context.LocaleContext);\n const [expand, setExpand] = (0, _react.useState)(true);\n const [componentInfo, setComponentInfo] = (0, _react.useState)();\n const {\n deletingBlocklets: deletingComponents\n } = (0, _deletingBlocklets.useDeletingBlockletContext)();\n let {\n status\n } = blocklet;\n if (depth <= 1 && deletingComponents.includes(blocklet.meta.did)) {\n status = 'deleting';\n }\n const mountPoint = \"/\".concat(ancestors.map(x => x.mountPoint || '/').join('/'), \"/\").concat(blocklet.mountPoint || '/').replace(/\\/+/g, '/');\n\n // hide root's status and only display specific status\n const showStatus = !!ancestors.length && ['downloading', 'deleting', 'starting'].includes(status);\n const canExpand = depth > 0 && blocklet.children.length > 0;\n const expandIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {\n size: \"small\",\n children: expand ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_ExpandMore.default, {\n fontSize: \"inherit\"\n }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChevronRight.default, {\n fontSize: \"inherit\"\n })\n });\n const root = ancestors[0] || blocklet;\n const href = getComponentUrl(mountPoint);\n const renderRows = rows => rows.map(row => {\n if (row.name === t('common.did') || row.name === t('blocklet.appId')) {\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InfoRow.default, {\n valueComponent: \"div\",\n nameWidth: 120,\n name: row.name,\n nameFormatter: () => row.name,\n children: row.value\n }, row.name);\n }\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InfoRow.default, {\n valueComponent: \"div\",\n nameWidth: 120,\n name: row.name,\n children: row.value\n }, row.name);\n });\n const sourceInfo = componentInfo ? getSourceInfo(componentInfo) : {};\n const componentRows = componentInfo ? [{\n name: t('common.name'),\n value: (0, _util.getDisplayName)(componentInfo, true)\n }, {\n name: t('common.version'),\n value: /*#__PURE__*/(0, _jsxRuntime.jsx)(_version.default, {\n blocklet: componentInfo,\n checkUpgrade: false\n })\n }, {\n name: t('common.status'),\n value: /*#__PURE__*/(0, _jsxRuntime.jsx)(_status.default, {\n status: status,\n source: componentInfo.source\n })\n }, {\n name: t('common.mountPoint'),\n value: mountPoint\n }, {\n name: t('common.group'),\n value: /*#__PURE__*/(0, _jsxRuntime.jsx)(_tag.default, {\n type: \"success\",\n children: componentInfo.meta.group\n })\n }, {\n name: t('blocklet.overview.source'),\n value: /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockletSource.default, {\n sourceInfo: sourceInfo,\n blocklet: blocklet\n })\n }, {\n name: t('blocklet.overview.deployedFrom'),\n value: sourceInfo.deployedFrom || '-'\n }, {\n name: t('common.did'),\n value: /*#__PURE__*/(0, _jsxRuntime.jsx)(_didAddress.default, {\n did: componentInfo.meta.did\n })\n }, {\n name: t('common.author'),\n value: (0, _util2.formatPerson)(componentInfo.meta.author)\n }, {\n name: t('common.runtimeInfo'),\n value: /*#__PURE__*/(0, _jsxRuntime.jsx)(_runtimeInfo.default, {\n blocklet: componentInfo,\n noRunningMessage: t('--')\n })\n }, {\n name: t('common.engine'),\n value: getEngineRows(componentInfo.engine, t).map(_ref2 => {\n let {\n name,\n value\n } = _ref2;\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InfoRow.default, {\n style: {\n marginBottom: 4\n },\n nameWidth: 120,\n name: name,\n children: value\n }, name);\n })\n }].filter(Boolean) : [];\n let deleteDisabledTip = '';\n if (depth !== 1 || !blocklet.dynamic) {\n deleteDisabledTip = t('blocklet.component.tip.notDynamic');\n } else if ((0, _util2.isInProgress)(root.status) || depth === 1 && deletingComponents.includes(blocklet.meta.did)) {\n deleteDisabledTip = t('blocklet.component.tip.stopBlocklet');\n }\n return [(depth > 0 || blocklet.meta.group !== 'gateway') && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n display: \"flex\",\n py: 2,\n className: \"component-item\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n pl: Math.max((depth - 1) * 2, 0),\n width: {\n xs: 300,\n md: 400\n },\n display: \"flex\",\n alignItems: \"center\",\n style: {\n cursor: canExpand ? 'pointer' : 'cursor'\n },\n onClick: () => canExpand && setExpand(!expand),\n children: [canExpand ? expandIcon : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {\n width: 28\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_avatar.default, {\n blocklet: blocklet,\n ancestors: ancestors\n }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n ml: \"16px\",\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {\n style: {\n color: '#222',\n fontSize: 18\n },\n children: (0, _util.getDisplayName)(blocklet, true)\n }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n display: \"flex\",\n alignItems: \"center\",\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_version.default, {\n blocklet: blocklet,\n checkUpgrade: false\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_mode.default, {\n style: {\n marginLeft: 4\n },\n mode: blocklet.mode || ''\n }), showStatus && /*#__PURE__*/(0, _jsxRuntime.jsx)(_status.default, {\n style: {\n marginLeft: 4\n },\n status: status,\n source: blocklet.source\n })]\n })]\n })]\n }, blocklet), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {\n sx: {\n display: {\n xs: 'none',\n md: 'flex'\n }\n },\n alignItems: \"center\",\n flexGrow: \"1\",\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(\"a\", {\n target: \"_blank\",\n href: href,\n rel: \"noopener noreferrer\",\n title: href,\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {\n maxWidth: 400,\n sx: {\n color: 'secondary.main',\n fontSize: 18,\n px: 2\n },\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n textOverflow: \"ellipsis\",\n children: mountPoint\n })\n })\n }, mountPoint), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, {\n title: t('common.visit'),\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(\"a\", {\n target: \"_blank\",\n href: href,\n rel: \"noopener noreferrer\",\n title: href,\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Launch.default, {})\n })\n })\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, {\n title: t('common.overview'),\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {\n onClick: () => setComponentInfo(blocklet),\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_InfoOutlined.default, {})\n })\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_configuration.default, {\n blocklet: blocklet,\n ancestors: ancestors,\n children: _ref3 => {\n let {\n open\n } = _ref3;\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, {\n title: t('common.config'),\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledBadge, {\n color: \"error\",\n badgeContent: \"\",\n variant: \"dot\",\n invisible: !(0, _util.getComponentMissingConfigs)(blocklet, ancestors).length,\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {\n onClick: open,\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_SettingsOutlined.default, {})\n })\n })\n }, \"config\");\n }\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_delete.default, {\n blocklet: root,\n component: blocklet,\n remove: onRemove,\n disabled: !!deleteDisabledTip,\n tip: deleteDisabledTip\n })]\n }, \"actions\")]\n }, \"group-not-gateway-box\"), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {\n ml: Math.max((depth - 1) * 2, 0),\n sx: {\n borderBottom: 1,\n borderColor: 'rgba(0,0,0,0.12)'\n }\n }, \"group-collapse-box\"), (_blocklet$children = blocklet.children) !== null && _blocklet$children !== void 0 && _blocklet$children.length ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Collapse.default, {\n in: expand,\n children: blocklet.children.map(x => /*#__PURE__*/(0, _jsxRuntime.jsx)(ComponentItem, {\n blocklet: x,\n ancestors: [...ancestors, blocklet],\n depth: depth + 1,\n onRemove: onRemove,\n getComponentUrl: getComponentUrl\n }, \"\".concat(depth + 1, \"-\").concat(x.meta.did)))\n }, \"blocklet-collapse\") : null, !!componentInfo && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Dialog.default, {\n open: true,\n fullWidth: true,\n maxWidth: \"md\",\n onClose: () => {\n setComponentInfo(null);\n },\n children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n paddingY: 1.5,\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_DialogTitle.default, {\n children: t('common.componentBasicInfo')\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_DialogContent.default, {\n children: renderRows(componentRows)\n })]\n }, \"dialog-wrapper\")\n }, \"base-info-dialog\")];\n}\nComponentItem.propTypes = {\n blocklet: _propTypes.default.object.isRequired,\n ancestors: _propTypes.default.array,\n depth: _propTypes.default.number,\n onRemove: _propTypes.default.func,\n getComponentUrl: _propTypes.default.func\n};\nComponentItem.defaultProps = {\n ancestors: [],\n depth: 0,\n onRemove: () => {},\n getComponentUrl: () => window.location.origin\n};\nconst StyledBadge = (0, _styled.default)(_Badge.default)(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n .BaseBadge-badge {\\n top: \", \"px;\\n right: \", \"px;\\n }\\n\"])), props => props.top * 8 || 6, props => props.right * 8 || 6);\nfunction BlockletComponent(_ref4) {\n var _blocklet$meta;\n let {\n blocklet,\n onUpdate,\n getComponentUrl,\n AddComponent\n } = _ref4,\n rest = _objectWithoutProperties(_ref4, _excluded);\n const {\n t\n } = (0, _react.useContext)(_context.LocaleContext);\n const {\n api,\n inService\n } = (0, _node.useNodeContext)();\n const {\n addDeletingDid,\n removeDeletingDid,\n matchDeletingDid\n } = (0, _deletingBlocklets.useDeletingBlockletContext)();\n const [loading, setLoading] = (0, _react.useState)(false);\n const [updateConfirm, setUpdateConfirm] = (0, _react.useState)(null);\n const [showUpdateDot, setShowUpdateDot] = (0, _react.useState)(false);\n const components = [...blocklet.children] || [];\n if (blocklet.meta.group !== 'gateway') {\n // add root blocklet to table list\n components.unshift(blocklet);\n }\n matchDeletingDid(components.map(e => e.meta.did));\n (0, _react.useEffect)(() => {\n if (blocklet && !(0, _util2.isInProgress)(blocklet.status)) {\n api.getLatestBlockletVersion({\n input: {\n did: blocklet.meta.did,\n version: blocklet.meta.version\n }\n }).then(res => {\n const {\n version\n } = res.data || {};\n if (version && _semver.default.gt(version, blocklet.meta.version)) {\n setShowUpdateDot(true);\n }\n }).catch(err => {\n console.error(err.message);\n });\n }\n }, [blocklet === null || blocklet === void 0 ? void 0 : (_blocklet$meta = blocklet.meta) === null || _blocklet$meta === void 0 ? void 0 : _blocklet$meta.did]); // eslint-disable-line\n\n const checkForUpdates = async () => {\n if (loading) {\n return;\n }\n setLoading(true);\n try {\n // check app version\n const {\n version,\n registryUrl\n } = (await api.getLatestBlockletVersion({\n input: {\n did: blocklet.meta.did,\n version: blocklet.meta.version\n }\n })).data || {};\n if (version && _semver.default.gt(version, blocklet.meta.version)) {\n setUpdateConfirm({\n type: 'app',\n params: {\n version,\n registryUrl\n },\n list: [{\n name: (0, _util.getDisplayName)(blocklet),\n version: blocklet.meta.version,\n newVersion: version\n }]\n });\n setLoading(false);\n return;\n }\n\n // check child component version\n const {\n updateId,\n updateList\n } = (await api.checkComponentsForUpdates({\n input: {\n did: blocklet.meta.did\n }\n })).preUpdateInfo || {};\n setLoading(false);\n if (!updateId) {\n _toast.default.info(t('blocklet.component.noUpdate'));\n return;\n }\n const list = [];\n (0, _util.forEachChildSync)(blocklet, (b, _ref5) => {\n let {\n id,\n ancestors\n } = _ref5;\n const updateItem = updateList.find(x => x.id === id);\n if (updateItem) {\n const name = ancestors.slice(1).concat(b).map(x => x.meta.title || x.meta.name).join(' / ');\n list.push({\n name,\n version: b.meta.version,\n newVersion: updateItem.meta.version\n });\n }\n });\n setUpdateConfirm({\n type: 'child',\n params: {\n updateId\n },\n list\n });\n } catch (err) {\n setLoading(false);\n _toast.default.error((0, _util2.formatError)(err));\n }\n };\n const onConfirmUpdate = async () => {\n if (loading) {\n return;\n }\n let fn;\n let input;\n if (updateConfirm.type === 'app') {\n fn = api.upgradeBlocklet.bind(api);\n input = {\n did: blocklet.meta.did,\n version: updateConfirm.params.version,\n registryUrl: updateConfirm.params.registryUrl || ''\n };\n } else {\n fn = api.upgradeComponents.bind(api);\n input = {\n updateId: updateConfirm.params.updateId,\n rootDid: blocklet.meta.did\n };\n }\n try {\n setLoading(true);\n await fn({\n input\n });\n setLoading(false);\n setUpdateConfirm(null);\n setShowUpdateDot(null);\n } catch (error) {\n setLoading(false);\n _toast.default.error((0, _util2.formatError)(error));\n }\n };\n const removeComponent = async (d, type) => {\n addDeletingDid(d.meta.did);\n try {\n await api.deleteComponent({\n input: {\n did: d.meta.did,\n keepData: type === 'keepData',\n rootDid: blocklet.meta.did\n }\n });\n await (0, _util2.sleep)(800);\n } catch (err) {\n _toast.default.error((0, _util2.formatError)(err));\n removeDeletingDid(d.meta.did);\n }\n };\n return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Div, _objectSpread(_objectSpread({\n component: \"div\"\n }, rest), {}, {\n children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(\"div\", {\n className: \"title\",\n children: [t('common.components'), /*#__PURE__*/(0, _jsxRuntime.jsx)(_permission.default, {\n permission: inService ? '' : 'mutate_blocklet',\n role: inService ? _util2.BlockletAdminRoles : [],\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledBadge, {\n top: 1.2,\n right: 0.4,\n color: \"error\",\n badgeContent: \"\",\n variant: \"dot\",\n invisible: !showUpdateDot,\n children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Button.default, {\n disabled: loading || (0, _util2.isInProgress)(blocklet.status),\n color: \"secondary\",\n onClick: () => {\n checkForUpdates();\n },\n \"data-cy\": \"check-for-updates\",\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {\n mr: 0.5,\n display: \"flex\",\n children: loading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Spinner.default, {\n size: [16, 10]\n }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Update.default, {\n style: {\n fontSize: '1em'\n }\n })\n }), t('blocklet.component.checkUpdateTitle')]\n })\n })\n })]\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_permission.default, {\n permission: \"mutate_blocklet\",\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(AddComponent, {\n blocklet: blocklet,\n children: _ref6 => {\n let {\n open\n } = _ref6;\n return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Button.default, {\n disabled: loading || (0, _util2.isInProgress)(blocklet.status),\n variant: \"text\",\n color: \"primary\",\n \"data-cy\": \"add-component\",\n onClick: open,\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Add.default, {\n style: {\n fontSize: '1.3em',\n marginRight: 4\n }\n }), t('blocklet.component.add')]\n });\n }\n })\n })]\n }), components && components.length ? [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {\n mt: 2,\n ml: {\n xs: '-16px',\n md: '-28px'\n },\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ComponentItem, {\n blocklet: blocklet,\n onRemove: removeComponent,\n getComponentUrl: getComponentUrl\n }, \"0-\".concat(blocklet.meta.did))\n }, \"top-blocklet-\".concat(blocklet.meta.did))] : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {\n mt: 8,\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Empty.default, {\n children: t('blocklet.component.noComponent')\n })\n }), !!updateConfirm && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Dialog.default, {\n open: true,\n fullWidth: true,\n children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n paddingY: 1.5,\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_DialogTitle.default, {\n children: t('blocklet.component.updateTitle')\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {\n component: _DialogContent.default,\n py: 4,\n ml: 4,\n children: updateConfirm.list.map(x => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n mt: 3,\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {\n item: true,\n xs: 5,\n children: x.name\n }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Grid.default, {\n fontSize: \"h6.fontSize\",\n container: true,\n spacing: 3,\n alignItems: \"center\",\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Grid.default, {\n item: true,\n xs: 2,\n children: x.version\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Grid.default, {\n item: true,\n xs: 1,\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ArrowForward.default, {\n style: {\n fontSize: '0.9em'\n }\n })\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Grid.default, {\n item: true,\n xs: 2,\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {\n color: \"secondary.main\",\n children: x.newVersion\n })\n })]\n })]\n }, \"\".concat(x.name, \"-\").concat(x.newVersion)))\n }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_DialogActions.default, {\n style: {\n padding: '8px 24px 24px'\n },\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {\n onClick: () => {\n setUpdateConfirm(null);\n },\n children: t('common.cancel')\n }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Button.default, {\n onClick: e => {\n e.stopPropagation();\n onConfirmUpdate();\n },\n color: \"primary\",\n disabled: loading,\n variant: \"contained\",\n autoFocus: true,\n children: [loading && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Spinner.default, {\n size: [16, 10]\n }), t('common.update')]\n })]\n })]\n })\n })]\n }));\n}\nBlockletComponent.propTypes = {\n blocklet: _propTypes.default.object.isRequired,\n onUpdate: _propTypes.default.func,\n getComponentUrl: _propTypes.default.func,\n AddComponent: _propTypes.default.element\n};\nBlockletComponent.defaultProps = {\n onUpdate: () => {},\n getComponentUrl: () => window.location.origin,\n AddComponent: () => {}\n};\nconst Div = _styled.default.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([\"\\n .title {\\n font-size: 1.2rem;\\n font-weight: bold;\\n margin-bottom: \", \";\\n }\\n\\n @keyframes showDelay {\\n 0% {\\n opacity: 0;\\n }\\n\\n 100% {\\n opacity: 1;\\n }\\n }\\n\\n .component-item {\\n animation: showDelay 0.75s ease 1;\\n }\\n\"])), props => props.theme.spacing(1));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = ComponentSettingWithPermission;\nvar _react = require(\"react\");\nvar _styled = _interopRequireDefault(require(\"@emotion/styled\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _Box = _interopRequireDefault(require(\"@mui/material/Box\"));\nvar _context = require(\"@arcblock/ux/lib/Locale/context\");\nvar _toast = _interopRequireDefault(require(\"../../toast\"));\nvar _formTextInput = _interopRequireDefault(require(\"../../form/form-text-input\"));\nvar _node = require(\"../../contexts/node\");\nvar _permission = require(\"../../permission\");\nvar _util = require(\"../../util\");\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _templateObject;\nconst _excluded = [\"blocklet\", \"ancestors\", \"hasPermission\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ComponentSetting(_ref) {\n let {\n blocklet,\n ancestors,\n hasPermission\n } = _ref,\n rest = _objectWithoutProperties(_ref, _excluded);\n const {\n t\n } = (0, _context.useLocaleContext)();\n const {\n api\n } = (0, _node.useNodeContext)();\n const rootDid = ancestors.map(x => x.meta.did)[0];\n const [loading, setLoading] = (0, _react.useState)('');\n const isDev = (0, _util.isBlockletDev)(blocklet);\n const disabled = isDev || loading || !hasPermission;\n if (!rootDid) {\n return null;\n }\n if (blocklet.status === 'unknown' && (0, _util.isInstalling)(blocklet.status)) {\n return null;\n }\n const onSubmitTitle = async value => {\n setLoading(true);\n try {\n setLoading(false);\n await api.updateComponentTitle({\n input: {\n rootDid,\n did: blocklet.meta.did,\n title: value\n }\n });\n } catch (err) {\n setLoading(false);\n err.message = (0, _util.formatError)(err);\n _toast.default.error(err.message);\n throw err;\n }\n };\n const onSubmitMountPoint = async value => {\n setLoading(true);\n try {\n await api.updateComponentMountPoint({\n input: {\n rootDid,\n did: blocklet.meta.did,\n mountPoint: value\n }\n });\n setLoading(false);\n } catch (err) {\n setLoading(false);\n err.message = (0, _util.formatError)(err);\n _toast.default.error(err.message);\n throw err;\n }\n };\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(Div, _objectSpread(_objectSpread({\n component: \"div\"\n }, rest), {}, {\n children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n mt: 3,\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_formTextInput.default, {\n label: t('common.title'),\n style: {\n marginTop: -24\n },\n disabled: loading || disabled,\n loading: loading,\n required: true,\n initialValue: blocklet.meta.title,\n onSubmit: onSubmitTitle\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_formTextInput.default, {\n label: t('blocklet.component.mountPoint'),\n style: {\n marginTop: -24\n },\n disabled: loading || disabled,\n loading: loading,\n required: true,\n initialValue: blocklet.mountPoint,\n onSubmit: onSubmitMountPoint\n })]\n })\n }));\n}\nconst ComponentSettingInDaemon = (0, _permission.withPermission)(ComponentSetting, 'mutate_blocklet');\nconst ComponentSettingInService = (0, _permission.withPermission)(ComponentSetting, '', _util.BlockletAdminRoles);\nfunction ComponentSettingWithPermission(props) {\n const {\n inService\n } = (0, _node.useNodeContext)();\n if (inService) {\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(ComponentSettingInService, _objectSpread({}, props));\n }\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(ComponentSettingInDaemon, _objectSpread({}, props));\n}\nComponentSetting.propTypes = {\n blocklet: _propTypes.default.object.isRequired,\n ancestors: _propTypes.default.array,\n hasPermission: _propTypes.default.bool\n};\nComponentSetting.defaultProps = {\n ancestors: [],\n hasPermission: false\n};\nconst Div = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\"])));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = BlockletEnvironmentWithPermission;\nvar _react = require(\"react\");\nvar _styled = _interopRequireDefault(require(\"@emotion/styled\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _get = _interopRequireDefault(require(\"lodash/get\"));\nvar _omit = _interopRequireDefault(require(\"lodash/omit\"));\nvar _TextField = _interopRequireDefault(require(\"@mui/material/TextField\"));\nvar _Box = _interopRequireDefault(require(\"@mui/material/Box\"));\nvar _MenuItem = _interopRequireDefault(require(\"@mui/material/MenuItem\"));\nvar _useTheme = _interopRequireDefault(require(\"@mui/material/styles/useTheme\"));\nvar _Switch = _interopRequireDefault(require(\"@mui/material/Switch\"));\nvar _Divider = _interopRequireDefault(require(\"@mui/material/Divider\"));\nvar _context = require(\"@arcblock/ux/lib/Locale/context\");\nvar _constant = require(\"@blocklet/constant\");\nvar _util = require(\"@blocklet/meta/lib/util\");\nvar _toast = _interopRequireDefault(require(\"../toast\"));\nvar _schemaForm = _interopRequireDefault(require(\"../schema-form\"));\nvar _config = _interopRequireDefault(require(\"../who-can-access/config\"));\nvar _node = require(\"../contexts/node\");\nvar _util2 = require(\"../util\");\nvar _permission = require(\"../permission\");\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _templateObject, _templateObject2;\nconst _excluded = [\"blocklet\", \"onUpdate\", \"hasPermission\"],\n _excluded2 = [\"value\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction BlockletEnvironment(_ref) {\n var _blocklet$settings;\n let {\n blocklet,\n onUpdate,\n hasPermission\n } = _ref,\n rest = _objectWithoutProperties(_ref, _excluded);\n const node = (0, _node.useNodeContext)();\n const {\n t,\n locale\n } = (0, _react.useContext)(_context.LocaleContext);\n const [cpuCores, setCpuCores] = (0, _react.useState)('');\n const [loading, setLoading] = (0, _react.useState)('');\n const whoCanAccess = (0, _util.getWhoCanAccess)(blocklet);\n const publicToStore = blocklet === null || blocklet === void 0 ? void 0 : (_blocklet$settings = blocklet.settings) === null || _blocklet$settings === void 0 ? void 0 : _blocklet$settings.publicToStore;\n const theme = (0, _useTheme.default)();\n const [editingItem, setEditingItem] = (0, _react.useState)(null);\n const disabled = loading || !hasPermission;\n const {\n inService,\n ws: {\n useSubscription\n }\n } = node;\n const clusterMode = (0, _get.default)(blocklet.meta, 'capabilities.clusterMode', false);\n useSubscription('system.info', res => {\n if (clusterMode) {\n setCpuCores((0, _get.default)(res, 'cpu.cores', ''));\n }\n });\n if ((0, _util2.isInstalling)(blocklet.status)) {\n return null;\n }\n const WalletTypes = [{\n label: 'DID',\n value: 'default'\n }, {\n label: 'ETH',\n value: 'eth'\n }];\n\n // configurable blocklet environment\n const customType = blocklet.environments.find(x => x.key === 'BLOCKLET_WALLET_TYPE');\n const customDelete = blocklet.environments.find(x => x.key === 'BLOCKLET_DELETABLE');\n const deletable = !customDelete || customDelete.value === 'yes';\n const customColor = blocklet.environments.find(x => x.key === 'BLOCKLET_PASSPORT_COLOR');\n const customUrl = blocklet.environments.find(x => x.key === 'BLOCKLET_APP_URL');\n const customLogo = blocklet.environments.find(x => x.key === 'BLOCKLET_APP_LOGO');\n const configurableEnvs = [{\n key: _constant.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_NAME,\n description: t('blocklet.config.name'),\n value: blocklet.environments.find(x => x.key === 'BLOCKLET_APP_NAME').value\n }, {\n key: _constant.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_DESCRIPTION,\n description: t('blocklet.config.description'),\n value: blocklet.environments.find(x => x.key === 'BLOCKLET_APP_DESCRIPTION').value\n }, {\n key: _constant.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_PASSPORT_COLOR,\n description: t('blocklet.config.passportColor'),\n value: customColor ? customColor.value : 'auto',\n componentType: 'passport',\n componentProps: {\n blocklet\n }\n }, {\n key: _constant.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_URL,\n description: t('blocklet.config.appUrl'),\n value: customUrl ? customUrl.value : ''\n }, {\n key: _constant.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_LOGO,\n description: t('blocklet.config.logo'),\n value: customLogo ? customLogo.value : ''\n }];\n if (clusterMode) {\n const exist = blocklet.configs.find(x => x.key === _constant.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_CLUSTER_SIZE);\n const value = exist ? exist.value : cpuCores;\n configurableEnvs.push({\n key: _constant.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_CLUSTER_SIZE,\n description: t('blocklet.config.clusterSize'),\n value,\n cpuCores\n });\n }\n const defaultValue = {};\n const schemaList = configurableEnvs.map(item => {\n const {\n value\n } = item,\n props = _objectWithoutProperties(item, _excluded2);\n defaultValue[item.key] = value;\n return _objectSpread({}, props);\n });\n const onWhoCanAccessChange = async e => {\n if (loading) {\n return;\n }\n setLoading(true);\n try {\n const {\n value\n } = e.target;\n const {\n blocklet: data\n } = await node.api.updateWhoCanAccess({\n input: {\n did: blocklet.meta.did,\n whoCanAccess: value\n }\n });\n onUpdate(data);\n } catch (err) {\n _toast.default.error(err.message);\n } finally {\n setLoading(false);\n }\n };\n const onPublicToStoreChange = async e => {\n if (loading) {\n return;\n }\n setLoading(true);\n try {\n const {\n checked\n } = e.target;\n const {\n blocklet: data\n } = await node.api.configPublicToStore({\n input: {\n did: blocklet.meta.did,\n publicToStore: checked\n }\n });\n onUpdate(data);\n } catch (err) {\n _toast.default.error(err.message);\n } finally {\n setLoading(false);\n }\n };\n const iconStyle = {\n marginRight: 4,\n fontSize: 18,\n verticalAlign: 'text-bottom',\n color: theme.palette.text.secondary\n };\n const onSubmitConfig = async value => {\n if (value.key === _constant.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_CLUSTER_SIZE) {\n const errMessage = (0, _util2.isValidClusterSize)(value);\n if (errMessage) {\n _toast.default.error(errMessage);\n return;\n }\n }\n const params = [_objectSpread(_objectSpread({}, (0, _omit.default)(editingItem, ['childDid', 'componentType', 'componentProps'])), {}, {\n value,\n custom: true\n })];\n try {\n setLoading(true);\n const {\n blocklet: data\n } = await node.api.configBlocklet({\n input: {\n did: blocklet.meta.did,\n configs: params\n }\n });\n onUpdate(data);\n } catch (err) {\n _toast.default.error(err.message);\n } finally {\n setLoading(false);\n }\n };\n const onDeletableChange = async e => {\n if (loading) {\n return;\n }\n setLoading(true);\n try {\n const {\n checked\n } = e.target;\n const {\n blocklet: data\n } = await node.api.configBlocklet({\n input: {\n did: blocklet.meta.did,\n configs: [{\n key: _constant.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_DELETABLE,\n value: checked ? 'no' : 'yes',\n custom: true\n }]\n }\n });\n onUpdate(data);\n } catch (err) {\n _toast.default.error(err.message);\n } finally {\n setLoading(false);\n }\n };\n const onWalletTypeChange = async e => {\n if (loading) {\n return;\n }\n setLoading(true);\n try {\n const {\n value\n } = e.target;\n const {\n blocklet: data\n } = await node.api.configBlocklet({\n input: {\n did: blocklet.meta.did,\n configs: [{\n key: _constant.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_WALLET_TYPE,\n value,\n custom: true\n }]\n }\n });\n onUpdate(data);\n } catch (err) {\n _toast.default.error(err.message);\n } finally {\n setLoading(false);\n }\n };\n return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Div, _objectSpread(_objectSpread({}, rest), {}, {\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_schemaForm.default, {\n disabled: disabled,\n style: {\n marginTop: -24\n },\n loading: loading,\n schema: schemaList,\n defaultValue: defaultValue,\n onChange: (changeValue, _ref2) => {\n let {\n action,\n currentItem\n } = _ref2;\n if (action === 'edit') {\n setEditingItem(currentItem);\n } else if (['cancel', 'confirm'].includes(action)) {\n setEditingItem(null);\n }\n if (action === 'confirm') {\n onSubmitConfig(changeValue[currentItem.key]);\n }\n }\n }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n className: \"config-form\",\n children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n className: \"config-item\",\n children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n className: \"config-label\",\n children: [t('blocklet.config.access.title'), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {\n className: \"config-desc\",\n children: t('blocklet.config.access.description')\n })]\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextField.default, {\n disabled: disabled,\n select: true,\n size: \"small\",\n value: whoCanAccess,\n onChange: onWhoCanAccessChange,\n SelectProps: {\n renderValue: selected => {\n const d = _config.default.find(x => x.value === selected);\n return d ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(d.icon, {\n style: iconStyle\n }), d.title[locale]]\n }) : null;\n }\n },\n children: _config.default.map(d => {\n return /*#__PURE__*/(0, _jsxRuntime.jsxs)(StyledMenuItem, {\n value: d.value,\n sx: {\n display: 'block'\n },\n children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n display: \"flex\",\n alignItems: \"center\",\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(d.icon, {\n style: iconStyle\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {\n children: d.title[locale]\n })]\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {\n className: \"tip\",\n children: d.description[locale]\n })\n })]\n });\n })\n })]\n }), whoCanAccess === 'all' && blocklet.source === 'registry' && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n className: \"config-item\",\n children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n className: \"config-label\",\n children: [t('blocklet.config.access.publicToStore'), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {\n className: \"config-desc\",\n children: t('blocklet.config.access.publicInstanceTip')\n })]\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Switch.default, {\n disabled: disabled,\n checked: publicToStore,\n defaultChecked: true,\n onChange: onPublicToStoreChange\n })]\n }), !inService && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n className: \"config-item\",\n children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n className: \"config-label\",\n children: [t('blocklet.config.deletable.name'), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {\n className: \"config-desc\",\n children: deletable ? t('blocklet.config.deletable.disable') : t('blocklet.config.deletable.enable')\n })]\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Switch.default, {\n disabled: disabled,\n checked: !deletable,\n defaultChecked: true,\n onChange: onDeletableChange\n })]\n })]\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {\n className: \"config-form\",\n component: _Divider.default,\n my: 3\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {\n className: \"config-form\",\n children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n className: \"config-item\",\n children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n className: \"config-label\",\n children: [t('blocklet.config.walletType.name'), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {\n className: \"config-desc\",\n children: t('blocklet.config.walletType.description')\n })]\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextField.default, {\n disabled: disabled,\n select: true,\n size: \"small\",\n value: (customType === null || customType === void 0 ? void 0 : customType.value) || 'default',\n onChange: onWalletTypeChange,\n children: WalletTypes.map(type => {\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledMenuItem, {\n value: type.value,\n sx: {\n display: 'block'\n },\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {\n display: \"flex\",\n alignItems: \"center\",\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {\n children: type.label\n })\n })\n });\n })\n })]\n })\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_schemaForm.default, {\n disabled: disabled,\n style: {\n marginTop: 0\n },\n loading: loading,\n schema: [{\n key: _constant.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_SK,\n description: t('blocklet.config.sk'),\n value: blocklet.environments.find(x => x.key === 'BLOCKLET_APP_SK').value,\n custom: true,\n secure: true\n }],\n defaultValue: {\n [_constant.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_SK]: blocklet.environments.find(x => x.key === 'BLOCKLET_APP_SK').value\n },\n onChange: (changeValue, _ref3) => {\n let {\n action,\n currentItem\n } = _ref3;\n if (action === 'edit') {\n setEditingItem(currentItem);\n } else if (['cancel', 'confirm'].includes(action)) {\n setEditingItem(null);\n }\n if (action === 'confirm') {\n onSubmitConfig(changeValue[currentItem.key]);\n }\n }\n })]\n }));\n}\nconst BlockletEnvironmentInDaemon = (0, _permission.withPermission)(BlockletEnvironment, 'mutate_blocklet');\nconst BlockletEnvironmentInService = (0, _permission.withPermission)(BlockletEnvironment, '', _util2.BlockletAdminRoles);\nfunction BlockletEnvironmentWithPermission(props) {\n const {\n inService\n } = (0, _node.useNodeContext)();\n if (inService) {\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(BlockletEnvironmentInService, _objectSpread({}, props));\n }\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(BlockletEnvironmentInDaemon, _objectSpread({}, props));\n}\nBlockletEnvironment.propTypes = {\n blocklet: _propTypes.default.object.isRequired,\n onUpdate: _propTypes.default.func,\n hasPermission: _propTypes.default.bool\n};\nBlockletEnvironment.defaultProps = {\n onUpdate: () => {},\n hasPermission: false\n};\nconst Div = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n .config-form {\\n width: 80%;\\n flex-grow: 1;\\n overflow-y: auto;\\n \", \" {\\n width: 100%;\\n flex-shrink: 0;\\n padding: 0 24px;\\n transform: translate(0, 0);\\n max-height: 60vh;\\n }\\n }\\n\\n .config-item {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n margin: 16px 0;\\n }\\n\\n .config-label {\\n font-weight: bold;\\n }\\n\\n .config-desc {\\n font-weight: normal;\\n font-size: 12px;\\n color: #666;\\n }\\n\"])), props => props.theme.breakpoints.down('md'));\nconst StyledMenuItem = (0, _styled.default)(_MenuItem.default)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([\"\\n .tip {\\n font-size: 12px;\\n color: \", \";\\n }\\n\"])), props => props.theme.palette.text.secondary);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = BlockletDiskInfo;\nvar _react = require(\"react\");\nvar _styled = _interopRequireDefault(require(\"@emotion/styled\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _filesize = _interopRequireDefault(require(\"filesize\"));\nvar _reactRouterDom = require(\"react-router-dom\");\nvar _Typography = _interopRequireDefault(require(\"@mui/material/Typography\"));\nvar _Link = _interopRequireDefault(require(\"@mui/material/Link\"));\nvar _InfoRow = _interopRequireDefault(require(\"@arcblock/ux/lib/InfoRow\"));\nvar _context = require(\"@arcblock/ux/lib/Locale/context\");\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _templateObject;\nconst _excluded = [\"blocklet\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction BlockletDiskInfo(_ref) {\n let {\n blocklet\n } = _ref,\n rest = _objectWithoutProperties(_ref, _excluded);\n const navigate = (0, _reactRouterDom.useNavigate)();\n const {\n t\n } = (0, _react.useContext)(_context.LocaleContext);\n if (!blocklet.diskInfo) {\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {\n children: t('blocklet.diskInfo.empty')\n });\n }\n const renderDiskInfo = (dir, size, handler) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Typography.default, {\n children: [handler ?\n /*#__PURE__*/\n /* eslint-disable-next-line no-script-url, jsx-a11y/anchor-is-valid */\n (0, _jsxRuntime.jsx)(_Link.default, {\n style: {\n cursor: 'pointer'\n },\n onClick: handler,\n underline: \"hover\",\n children: dir\n }) : dir, ' ', /*#__PURE__*/(0, _jsxRuntime.jsx)(\"strong\", {\n children: size ? (0, _filesize.default)(size) : 'empty'\n })]\n });\n const env = blocklet.environments.reduce((acc, x) => {\n acc[x.key] = x.value;\n return acc;\n }, {});\n const rows = [{\n name: t('blocklet.diskInfo.appDir'),\n value: renderDiskInfo(env.BLOCKLET_APP_DIR, blocklet.diskInfo.app)\n }, {\n name: t('blocklet.diskInfo.dataDir'),\n value: renderDiskInfo(env.BLOCKLET_DATA_DIR, blocklet.diskInfo.data)\n }, {\n name: t('blocklet.diskInfo.logDir'),\n value: renderDiskInfo(env.BLOCKLET_LOG_DIR, blocklet.diskInfo.log, () => {\n navigate(\"/logs/blocklet-\".concat(blocklet.meta.did));\n })\n }, {\n name: t('blocklet.diskInfo.cacheDir'),\n value: renderDiskInfo(env.BLOCKLET_CACHE_DIR, blocklet.diskInfo.cache)\n }];\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(Div, _objectSpread(_objectSpread({\n component: \"div\"\n }, rest), {}, {\n children: rows.map(row => /*#__PURE__*/(0, _jsxRuntime.jsx)(_InfoRow.default, {\n valueComponent: \"div\",\n nameWidth: 120,\n name: row.name,\n children: row.value\n }, row.name))\n }));\n}\nBlockletDiskInfo.propTypes = {\n blocklet: _propTypes.default.object.isRequired\n};\nBlockletDiskInfo.defaultProps = {};\nconst Div = (0, _styled.default)(_Typography.default)(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\"])));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = BlockletLog;\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _Box = _interopRequireDefault(require(\"@mui/material/Box\"));\nvar _util = require(\"@blocklet/meta/lib/util\");\nvar _logTerminal = require(\"../logs/log-terminal\");\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nconst _excluded = [\"blocklet\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/**\n * - heights:\n * - header: 64\n * - footer:\n * - xs: 57 + 64\n * - sm: 109 + 64\n * - main content top:\n * - xs: 211 + 32 + 16\n * - md: 160 + 32 + 16\n * - content height:\n * - xs (Mobile) = 100vh - 444\n * - sm (Mobile) = 100vh - 508\n * - md (PC) = 100vh - 445\n */\nfunction BlockletLog(_ref) {\n let {\n blocklet\n } = _ref,\n rest = _objectWithoutProperties(_ref, _excluded);\n const initialData = ['Tip: this tab will only show runtime logs. Please go to \"Blocklet Server\" to view other lifecycle logs of the blocklet (install/start/stop...)', '\\r\\n\\r\\n'];\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, _objectSpread(_objectSpread({\n height: {\n xs: 'calc(100vh - 444px)',\n sm: 'calc(100vh - 508px)',\n md: 'calc(100vh - 445px)'\n }\n }, rest), {}, {\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_logTerminal.LogTerminalGroup, {\n name: (0, _util.getDisplayName)(blocklet),\n logId: \"blocklet-\".concat(blocklet.meta.did),\n initialData: initialData\n })\n }));\n}\nBlockletLog.propTypes = {\n blocklet: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = BlockletOverview;\nvar _react = require(\"react\");\nvar _styled = _interopRequireDefault(require(\"@emotion/styled\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _Typography = _interopRequireDefault(require(\"@mui/material/Typography\"));\nvar _Tag = _interopRequireDefault(require(\"@arcblock/ux/lib/Tag\"));\nvar _InfoRow = _interopRequireDefault(require(\"@arcblock/ux/lib/InfoRow\"));\nvar _util = require(\"@blocklet/meta/lib/util\");\nvar _context = require(\"@arcblock/ux/lib/Locale/context\");\nvar _didAddress = _interopRequireDefault(require(\"../did-address\"));\nvar _blockletSource = _interopRequireDefault(require(\"./blocklet-source\"));\nvar _runtimeInfo = _interopRequireDefault(require(\"./runtime-info\"));\nvar _diskInfo = _interopRequireDefault(require(\"./disk-info\"));\nvar _status = _interopRequireDefault(require(\"./status\"));\nvar _version = _interopRequireDefault(require(\"./version\"));\nvar _util2 = require(\"../util\");\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _templateObject;\nconst _excluded = [\"blocklet\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nconst getEngineRows = (engine, t) => {\n if (!engine) {\n return [];\n }\n return [{\n name: t('common.name'),\n value: engine.displayName\n }, {\n name: t('common.description'),\n value: engine.description\n }, {\n name: t('common.version'),\n value: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tag.default, {\n children: engine.version\n })\n }];\n};\nfunction BlockletOverview(_ref) {\n var _blocklet$settings;\n let {\n blocklet\n } = _ref,\n rest = _objectWithoutProperties(_ref, _excluded);\n const {\n t\n } = (0, _react.useContext)(_context.LocaleContext);\n const {\n value: appDid\n } = (blocklet.environments || []).find(x => x.key === 'BLOCKLET_APP_ID') || {};\n const infoRows = [appDid ? {\n name: t('blocklet.appId'),\n value: /*#__PURE__*/(0, _jsxRuntime.jsx)(_didAddress.default, {\n did: appDid\n })\n } : null, {\n name: t('common.name'),\n value: (0, _util.getDisplayName)(blocklet, true)\n }, {\n name: t('common.status'),\n value: /*#__PURE__*/(0, _jsxRuntime.jsx)(_status.default, {\n status: blocklet.status,\n source: blocklet.source\n })\n }, {\n name: t('common.version'),\n value: /*#__PURE__*/(0, _jsxRuntime.jsx)(_version.default, {\n blocklet: blocklet\n })\n }, {\n name: t('common.group'),\n value: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tag.default, {\n type: \"success\",\n children: blocklet.meta.group\n })\n }, {\n name: t('common.author'),\n value: (0, _util2.formatPerson)(blocklet.meta.author)\n }, {\n name: t('blocklet.installedAt'),\n value: (0, _util2.formatToDatetime)(blocklet.installedAt)\n }, blocklet.status === 'running' ? {\n name: t('blocklet.startedAt'),\n value: (0, _util2.formatToDatetime)(blocklet.startedAt)\n } : null, blocklet.status !== 'running' ? {\n name: t('blocklet.stoppedAt'),\n value: (0, _util2.formatToDatetime)(blocklet.stoppedAt)\n } : null, {\n name: t('blocklet.overview.source'),\n value: /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockletSource.default, {\n sourceInfo: {\n source: blocklet.source,\n deployedFrom: blocklet.deployedFrom\n },\n blocklet: blocklet\n })\n }, {\n name: t('blocklet.overview.deployedFrom'),\n value: blocklet.deployedFrom || '-'\n }, {\n name: t('blocklet.overview.accessControl'),\n value: t(\"team.whoCanAccess.\".concat((0, _util.getWhoCanAccess)(blocklet), \".title\"))\n }, {\n name: t('common.did'),\n value: /*#__PURE__*/(0, _jsxRuntime.jsx)(_didAddress.default, {\n did: blocklet.meta.did\n })\n }, {\n name: t('common.owner'),\n value: (_blocklet$settings = blocklet.settings) !== null && _blocklet$settings !== void 0 && _blocklet$settings.owner ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_didAddress.default, {\n did: blocklet.settings.owner.did\n }) : '--'\n }].filter(Boolean);\n const engineRows = getEngineRows(blocklet.engine, t);\n const renderRows = rows => rows.map(row => {\n if (row.name === t('common.did') || row.name === t('blocklet.appId')) {\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InfoRow.default, {\n valueComponent: \"div\",\n nameWidth: 120,\n name: row.name,\n nameFormatter: () => row.name,\n children: row.value\n }, row.name);\n }\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InfoRow.default, {\n valueComponent: \"div\",\n nameWidth: 120,\n name: row.name,\n children: row.value\n }, row.name);\n });\n return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Div, _objectSpread(_objectSpread({\n component: \"div\"\n }, rest), {}, {\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(\"div\", {\n className: \"title\",\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(\"span\", {\n children: t('common.basicInfo')\n })\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"div\", {\n className: \"basicInfo\",\n children: renderRows(infoRows)\n }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(\"div\", {\n className: \"title\",\n children: t('common.runtimeInfo')\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_runtimeInfo.default, {\n blocklet: blocklet\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"div\", {\n className: \"title\",\n children: t('common.engine')\n }), engineRows.map(_ref2 => {\n let {\n name,\n value\n } = _ref2;\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InfoRow.default, {\n nameWidth: 120,\n name: name,\n children: value\n }, name);\n })]\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"div\", {\n className: \"title\",\n children: t('common.dataStorage')\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_diskInfo.default, {\n blocklet: blocklet\n })]\n }));\n}\nBlockletOverview.propTypes = {\n blocklet: _propTypes.default.object.isRequired\n};\nconst Div = (0, _styled.default)(_Typography.default)(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n .title {\\n font-size: 1.2rem;\\n font-weight: bold;\\n margin-top: \", \";\\n margin-bottom: \", \";\\n }\\n\"])), props => props.theme.spacing(5), props => props.theme.spacing(3));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = BlockletRuntimeInfo;\nvar _react = require(\"react\");\nvar _styled = _interopRequireDefault(require(\"@emotion/styled\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _filesize = _interopRequireDefault(require(\"filesize\"));\nvar _prettyMsI18n = _interopRequireDefault(require(\"pretty-ms-i18n\"));\nvar _isEmpty = _interopRequireDefault(require(\"lodash/isEmpty\"));\nvar _Typography = _interopRequireDefault(require(\"@mui/material/Typography\"));\nvar _InfoRow = _interopRequireDefault(require(\"@arcblock/ux/lib/InfoRow\"));\nvar _context = require(\"@arcblock/ux/lib/Locale/context\");\nvar _util = require(\"../util\");\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _templateObject;\nconst _excluded = [\"blocklet\", \"noRunningMessage\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction BlockletRuntimeInfo(_ref) {\n let {\n blocklet,\n noRunningMessage\n } = _ref,\n rest = _objectWithoutProperties(_ref, _excluded);\n const {\n t,\n locale\n } = (0, _react.useContext)(_context.LocaleContext);\n if (blocklet.status !== 'running') {\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {\n children: noRunningMessage || t('blocklet.runtimeInfo.noRunning')\n });\n }\n if ((0, _isEmpty.default)(blocklet.runtimeInfo)) {\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {\n children: t('common.empty')\n });\n }\n const rows = [{\n name: t('blocklet.runtimeInfo.memoryUsage'),\n value: (0, _filesize.default)(blocklet.runtimeInfo.memoryUsage)\n }, {\n name: t('blocklet.runtimeInfo.cpuUsage'),\n value: \"\".concat(blocklet.runtimeInfo.cpuUsage * 100, \"%\")\n }, {\n name: t('blocklet.runtimeInfo.uptime'),\n value: (0, _prettyMsI18n.default)(Number(+new Date() - blocklet.runtimeInfo.startAt || 0), {\n locale: (0, _util.formatLocale)(locale)\n })\n }, {\n name: t('blocklet.runtimeInfo.processId'),\n value: blocklet.runtimeInfo.pid\n }];\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(Div, _objectSpread(_objectSpread({\n component: \"div\"\n }, rest), {}, {\n children: rows.map(_ref2 => {\n let {\n name,\n value\n } = _ref2;\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InfoRow.default, {\n nameWidth: 120,\n name: name,\n children: value\n }, name);\n })\n }));\n}\nBlockletRuntimeInfo.propTypes = {\n blocklet: _propTypes.default.object.isRequired,\n noRunningMessage: _propTypes.default.string\n};\nBlockletRuntimeInfo.defaultProps = {\n noRunningMessage: ''\n};\nconst Div = (0, _styled.default)(_Typography.default)(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\"])));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = FormTextInput;\nvar _react = require(\"react\");\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _Box = _interopRequireDefault(require(\"@mui/material/Box\"));\nvar _TextField = _interopRequireDefault(require(\"@mui/material/TextField\"));\nvar _CircularProgress = _interopRequireDefault(require(\"@mui/material/CircularProgress\"));\nvar _EditIcon = _interopRequireDefault(require(\"@arcblock/icons/lib/EditIcon\"));\nvar _Close = _interopRequireDefault(require(\"@mui/icons-material/Close\"));\nvar _Done = _interopRequireDefault(require(\"@mui/icons-material/Done\"));\nvar _IconButton = _interopRequireDefault(require(\"@mui/material/IconButton\"));\nvar _required = _interopRequireDefault(require(\"./required\"));\nvar _formWrapper = _interopRequireDefault(require(\"./form-wrapper\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nconst _excluded = [\"label\", \"disabled\", \"required\", \"initialValue\", \"onChange\", \"placeholder\", \"style\", \"onSubmit\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction FormTextInput(_ref) {\n let {\n label,\n disabled,\n required,\n initialValue,\n onChange,\n placeholder,\n style,\n onSubmit\n } = _ref,\n rest = _objectWithoutProperties(_ref, _excluded);\n const [editing, setEditing] = (0, _react.useState)(false);\n const [loading, setLoading] = (0, _react.useState)(false);\n const [defaultValue, setDefaultValue] = (0, _react.useState)(initialValue);\n const [value, setValue] = (0, _react.useState)(defaultValue);\n const handleSubmit = async () => {\n setLoading(true);\n try {\n await onSubmit(value);\n setDefaultValue(value);\n } catch (err) {\n setValue(defaultValue);\n } finally {\n setLoading(false);\n setEditing(false);\n }\n };\n const onInputChange = changeValue => {\n setValue(changeValue);\n onChange(changeValue);\n };\n\n // enter keydown\n const handleKeydown = e => {\n if (e.key === 'Enter') {\n handleSubmit();\n }\n };\n const input = editing ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextField.default, _objectSpread({\n style: {\n flex: 1\n },\n fullWidth: true,\n value: value,\n onChange: e => {\n onInputChange(e.target.value);\n },\n autoFocus: true,\n size: \"small\",\n variant: \"outlined\",\n placeholder: placeholder,\n onKeyDown: handleKeydown,\n disabled: disabled\n }, rest)) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {\n px: 1,\n className: \"form-item-input slot\",\n children: value\n });\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(_formWrapper.default, {\n className: \"form\",\n style: style,\n children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n className: \"form-item\",\n children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n className: \"form-item-label\",\n children: [label, required && /*#__PURE__*/(0, _jsxRuntime.jsx)(_required.default, {})]\n }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n className: \"form-item-body\",\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {\n className: \"form-item-input\",\n children: input\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {\n className: \"form-item-action\",\n children: editing ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {\n \"data-cy\": \"schema-form-item-confirm\",\n onClick: handleSubmit,\n disabled: disabled || loading,\n size: \"large\",\n children: loading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_CircularProgress.default, {\n size: 24\n }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Done.default, {})\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {\n \"data-cy\": \"schema-form-item-cancel\",\n onClick: () => {\n setValue(defaultValue);\n setEditing(false);\n },\n disabled: disabled || loading,\n size: \"large\",\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Close.default, {})\n })]\n }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {\n \"data-cy\": \"schema-form-item-edit\",\n onClick: () => setEditing(true),\n disabled: disabled,\n size: \"large\",\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_EditIcon.default, {})\n })\n })]\n })]\n })\n });\n}\nFormTextInput.propTypes = {\n style: _propTypes.default.object,\n onSubmit: _propTypes.default.func,\n onChange: _propTypes.default.func,\n label: _propTypes.default.string,\n initialValue: _propTypes.default.string,\n placeholder: _propTypes.default.string,\n required: _propTypes.default.bool,\n disabled: _propTypes.default.bool\n};\nFormTextInput.defaultProps = {\n style: {},\n onSubmit: () => {},\n onChange: () => {},\n label: '',\n initialValue: '',\n placeholder: '',\n required: false,\n disabled: false\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _styled = _interopRequireDefault(require(\"@emotion/styled\"));\nvar _Box = _interopRequireDefault(require(\"@mui/material/Box\"));\nvar _templateObject;\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\nvar _default = (0, _styled.default)(_Box.default)(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n width: 100%;\\n flex-grow: 1;\\n overflow-y: auto;\\n \", \" {\\n width: 100%;\\n flex-shrink: 0;\\n padding: 0 24px;\\n transform: translate(0, 0);\\n /* max-height: 60vh; */\\n }\\n\\n .form-item {\\n width: 100%;\\n margin-bottom: 24px;\\n position: relative;\\n \", \" {\\n flex-wrap: wrap;\\n justify-content: space-between;\\n width: 100%;\\n flex-shrink: 0;\\n }\\n }\\n\\n .form-item-body {\\n display: flex;\\n align-items: center;\\n width: 100%;\\n margin-top: 4px;\\n }\\n\\n .form-item-label {\\n line-height: 1.2;\\n font-size: 14px;\\n color: #888;\\n font-weight: bold;\\n\\n \", \" {\\n text-align: left;\\n width: auto;\\n flex-grow: 1;\\n }\\n }\\n\\n .form-item-input {\\n flex-grow: 1;\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n\\n &.slot {\\n height: 40px;\\n line-height: 40px;\\n background: #f8f8f8;\\n font-size: 16px;\\n }\\n }\\n\\n .form-item-action {\\n // width: 100px;\\n text-align: left;\\n margin-left: 12px;\\n flex-shrink: 0;\\n \", \" {\\n width: auto;\\n margin-left: 0px;\\n }\\n .MuiIconButton-root {\\n padding: 8px;\\n svg {\\n fill: #888;\\n }\\n &.Mui-disabled {\\n opacity: 0.4;\\n }\\n }\\n }\\n\"])), props => props.theme.breakpoints.down('md'), props => props.theme.breakpoints.down('md'), props => props.theme.breakpoints.down('md'), props => props.theme.breakpoints.down('md'));\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _styled = _interopRequireDefault(require(\"@emotion/styled\"));\nvar _templateObject;\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\nconst Required = _styled.default.span(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n color: \", \";\\n &::before {\\n content: '*';\\n }\\n\"])), props => props.theme.palette.error.main);\nvar _default = Required;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _react = require(\"react\");\nvar _useInterval = _interopRequireDefault(require(\"react-use/lib/useInterval\"));\nvar _util = require(\"../util\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction Clock() {\n const [currentTime, setCurrentTime] = (0, _react.useState)(+new Date());\n (0, _useInterval.default)(() => {\n setCurrentTime(+new Date());\n }, 1000);\n return (0, _util.formatTime)(currentTime, 'MMMM Do YYYY, h:mm:ss a');\n}\nvar _default = Clock;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LogTerminal = void 0;\nexports.LogTerminalGroup = LogTerminalGroup;\nvar _react = require(\"react\");\nvar _styled = _interopRequireDefault(require(\"@emotion/styled\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _Button = _interopRequireDefault(require(\"@mui/material/Button\"));\nvar _ButtonGroup = _interopRequireDefault(require(\"@mui/material/ButtonGroup\"));\nvar _useMediaQuery = _interopRequireDefault(require(\"@mui/material/useMediaQuery\"));\nvar _Terminal = _interopRequireDefault(require(\"@arcblock/terminal/lib/Terminal\"));\nvar _clock = _interopRequireDefault(require(\"./clock\"));\nvar _node = require(\"../contexts/node\");\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _templateObject, _templateObject2;\nconst _excluded = [\"name\", \"logId\", \"types\", \"initialData\", \"prepend\"],\n _excluded2 = [\"logFile\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/**\n * 按 level/destination 分类的一组 terminal\n */\nfunction LogTerminalGroup(_ref) {\n let {\n name,\n logId,\n types,\n initialData,\n prepend\n } = _ref,\n rest = _objectWithoutProperties(_ref, _excluded);\n const {\n ws: {\n useSubscription\n }\n } = (0, _node.useNodeContext)();\n const logTypeLabels = {\n info: 'Info',\n error: 'Error',\n access: 'Access',\n stdout: 'stdout',\n stderr: 'stderr'\n };\n const isMobile = (0, _useMediaQuery.default)(theme => theme.breakpoints.down('md'));\n const [currentType, setCurrentType] = (0, _react.useState)(types[0]);\n const [logFiles, setLogFiles] = (0, _react.useState)();\n const terminalRefs = (0, _react.useRef)({});\n\n // 组件挂载时, 写入初始数据\n (0, _react.useEffect)(() => {\n types.forEach(type => {\n const terminal = terminalRefs.current[type];\n if (terminal) {\n terminal.write(\"Collecting \".concat(type, \" logs for \").concat(name, \"...\"));\n terminal.write('\\r\\n\\r\\n');\n initialData.forEach(item => terminal.write(item));\n }\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // 监听 log 数据, 写入 terminal\n useSubscription(\"log.\".concat(logId), log => {\n if (!logFiles) {\n setLogFiles(log.logFiles || {});\n }\n const terminal = terminalRefs.current[log.level];\n if (terminal) {\n terminal.write(log.data.replace(/.\\n/g, p => p === '\\r\\n' ? p : \"\".concat(p[0], \"\\r\\n\\r\\n\")));\n terminal.write('\\r\\n\\r\\n');\n }\n }, []);\n return /*#__PURE__*/(0, _jsxRuntime.jsxs)(LogTerminalGroupRoot, _objectSpread(_objectSpread({}, rest), {}, {\n children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(\"div\", {\n className: \"log-terminal-group-head\",\n children: [prepend, /*#__PURE__*/(0, _jsxRuntime.jsx)(_ButtonGroup.default, {\n variant: \"outlined\",\n size: isMobile ? 'small' : 'medium',\n children: types.map(type => {\n const props = type === currentType ? {\n variant: 'contained'\n } : {};\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, _objectSpread(_objectSpread({}, props), {}, {\n onClick: () => setCurrentType(type),\n children: logTypeLabels[type]\n }), type);\n })\n })]\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"div\", {\n className: \"log-terminal-group-terminals\",\n children: types.map(type => {\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(LogTerminal, {\n ref: _ref2 => {\n terminalRefs.current[type] = _ref2;\n },\n logFile: logFiles === null || logFiles === void 0 ? void 0 : logFiles[type],\n style: {\n visibility: type === currentType ? 'visible' : 'hidden'\n }\n }, type);\n })\n })]\n }));\n}\nLogTerminalGroup.propTypes = {\n // log name, 比如: blocklet display name\n name: _propTypes.default.string.isRequired,\n // 比如: abtnode | blocklet-services | blocklet-<did>\n logId: _propTypes.default.string.isRequired,\n // 日志类型, info/error 或 stdin/stdout/access\n types: _propTypes.default.arrayOf(_propTypes.default.string),\n // 写入 terminal 的初始数据\n initialData: _propTypes.default.arrayOf(_propTypes.default.string),\n prepend: _propTypes.default.node\n};\nLogTerminalGroup.defaultProps = {\n types: ['error', 'info', 'access', 'stdout', 'stderr'],\n initialData: [],\n prepend: null\n};\nconst LogTerminalGroupRoot = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n display: flex;\\n flex-direction: column;\\n height: 100%;\\n .log-terminal-group-head {\\n flex: 0 0 auto;\\n display: flex;\\n align-items: center;\\n gap: 16px;\\n padding-bottom: 16px;\\n\\n \", \" {\\n flex-direction: column;\\n align-items: start;\\n }\\n }\\n .log-terminal-group-terminals {\\n flex: 1;\\n position: relative;\\n overflow: hidden;\\n > * {\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n }\\n }\\n\"])), props => props.theme.breakpoints.down('md'));\nconst LogTerminal = /*#__PURE__*/(0, _react.forwardRef)((_ref3, ref) => {\n let {\n logFile\n } = _ref3,\n rest = _objectWithoutProperties(_ref3, _excluded2);\n const terminalStyle = {\n width: '100%',\n boxSizing: 'border-box',\n height: '100%'\n };\n const terminalOptions = {\n theme: {\n background: '#2C313C',\n foreground: '#EEEEEE'\n }\n };\n return /*#__PURE__*/(0, _jsxRuntime.jsxs)(LogTerminalRoot, _objectSpread(_objectSpread({}, rest), {}, {\n children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(\"div\", {\n className: \"log-terminal-top\",\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_clock.default, {}), logFile && /*#__PURE__*/(0, _jsxRuntime.jsx)(\"span\", {\n children: logFile\n })]\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"div\", {\n className: \"log-terminal-container\",\n style: {\n position: 'relative'\n },\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Terminal.default, {\n ref: ref,\n style: terminalStyle,\n options: terminalOptions\n })\n })]\n }));\n});\nexports.LogTerminal = LogTerminal;\nLogTerminal.propTypes = {\n logFile: _propTypes.default.string\n};\nLogTerminal.defaultProps = {\n logFile: ''\n};\nconst LogTerminalRoot = _styled.default.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([\"\\n height: 100%;\\n display: flex;\\n flex-direction: column;\\n .log-terminal-top {\\n flex: 0 0 auto;\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n flex-wrap: wrap;\\n padding: 8px;\\n font-size: 14px;\\n color: aquamarine;\\n background: darkgray;\\n word-break: break-word;\\n }\\n .log-terminal-container {\\n flex: 1;\\n height: 100%;\\n padding: 8px;\\n overflow: hidden;\\n background: #2c313c;\\n }\\n\\n .xterm-viewport::-webkit-scrollbar {\\n width: 10px;\\n }\\n .xterm-viewport::-webkit-scrollbar-track {\\n opacity: 0;\\n }\\n .xterm-viewport::-webkit-scrollbar-thumb {\\n min-height: 20px;\\n background-color: #ffffff20;\\n }\\n\"])));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = ColorInput;\nvar _react = require(\"react\");\nvar _Box = _interopRequireDefault(require(\"@mui/material/Box\"));\nvar _Popover = _interopRequireDefault(require(\"@mui/material/Popover\"));\nvar _reactColor = require(\"react-color\");\nvar _commonPropTypes = _interopRequireDefault(require(\"./common-prop-types\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction ColorInput(_ref) {\n let {\n editing,\n value,\n onChange\n } = _ref;\n const [open, setOpen] = (0, _react.useState)(false);\n const colorElm = (0, _react.useRef)();\n const colorValue = (0, _react.useRef)(value);\n\n // auto open color picker when editing, should wait the useRef to be ready\n (0, _react.useEffect)(() => {\n let timer = null;\n if (editing) {\n timer = setTimeout(() => {\n setOpen(true);\n }, 50);\n }\n return () => {\n clearTimeout(timer);\n };\n }, [editing]);\n const onColorChange = color => {\n colorValue.current = color;\n onChange(color);\n };\n const handleEnterKeyDown = () => {\n setOpen(false);\n onChange(colorValue.current);\n };\n const ReadView = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {\n className: \"form-item-input slot\",\n px: 1,\n children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n display: \"flex\",\n alignItems: \"center\",\n children: [value, value !== 'auto' && /*#__PURE__*/(0, _jsxRuntime.jsx)(\"div\", {\n style: {\n marginLeft: 4,\n backgroundColor: value,\n width: '1em',\n height: '1em',\n borderRadius: '0.2em'\n }\n })]\n })\n });\n const EditView = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n display: \"flex\",\n flexGrow: 1,\n alignItems: \"center\",\n height: \"40px\",\n onKeyDown: handleEnterKeyDown,\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {\n display: \"flex\",\n alignItems: \"center\",\n onClick: () => setOpen(true),\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(\"div\", {\n ref: colorElm,\n style: {\n flexShrink: 0,\n marginLeft: '8px',\n backgroundColor: value,\n width: '32px',\n height: '32px',\n boxSizing: 'border-box',\n borderRadius: '8px',\n border: '1px solid #eee',\n cursor: value === 'auto' ? 'default' : 'pointer'\n }\n })\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Popover.default, {\n open: open,\n anchorEl: colorElm.current,\n onClose: () => setOpen(false),\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'center'\n },\n transformOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactColor.ChromePicker, {\n color: value,\n onChange: c => onColorChange(c.hex)\n })\n })]\n });\n return editing ? EditView : ReadView;\n}\nColorInput.propTypes = _commonPropTypes.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar _default = {\n description: _propTypes.default.string,\n editing: _propTypes.default.bool,\n onChange: _propTypes.default.func,\n required: _propTypes.default.bool,\n // eslint-disable-next-line react/no-unused-prop-types\n value: _propTypes.default.any,\n // eslint-disable-next-line react/no-unused-prop-types\n componentProps: _propTypes.default.object,\n render: _propTypes.default.func,\n renderFormItem: _propTypes.default.func\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = SchemaForm;\nvar _react = require(\"react\");\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _styled = _interopRequireDefault(require(\"@emotion/styled\"));\nvar _Box = _interopRequireDefault(require(\"@mui/material/Box\"));\nvar _EditIcon = _interopRequireDefault(require(\"@arcblock/icons/lib/EditIcon\"));\nvar _Close = _interopRequireDefault(require(\"@mui/icons-material/Close\"));\nvar _Done = _interopRequireDefault(require(\"@mui/icons-material/Done\"));\nvar _IconButton = _interopRequireDefault(require(\"@mui/material/IconButton\"));\nvar _CircularProgress = _interopRequireDefault(require(\"@mui/material/CircularProgress\"));\nvar _colorInput = _interopRequireDefault(require(\"./color-input\"));\nvar _textInput = _interopRequireDefault(require(\"./text-input\"));\nvar _passportInput = _interopRequireDefault(require(\"./passport-input\"));\nvar _required = _interopRequireDefault(require(\"../form/required\"));\nvar _formWrapper = _interopRequireDefault(require(\"../form/form-wrapper\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _templateObject;\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction getComponent(item, _ref) {\n let {\n editing = false\n } = _ref;\n const {\n componentType = 'input',\n render,\n renderFormItem\n } = item;\n // if provided renderItem and editing is true, use it\n if (editing && renderFormItem) {\n return renderFormItem;\n }\n\n // if provided render and editing is false, use it\n if (!editing && render) {\n return render;\n }\n const componentMap = {\n input: _textInput.default,\n color: _colorInput.default,\n passport: _passportInput.default\n };\n return componentMap[componentType === null || componentType === void 0 ? void 0 : componentType.toLowerCase()];\n}\nfunction SchemaForm(_ref2) {\n let {\n schema,\n loading,\n value,\n defaultValue,\n onChange,\n style,\n disabled\n } = _ref2;\n const isControlled = Object.prototype.toString.call(value) === '[object Object]';\n const [editingItem, setEditingItem] = (0, _react.useState)(null);\n const [formValues, setFormValues] = (0, _react.useState)(isControlled ? value : defaultValue);\n const editingItemInitialValue = (0, _react.useRef)();\n function onFormItemChange(item, changeValue, action) {\n const {\n key,\n secure\n } = item;\n const oldValue = formValues[key];\n const isChanged = oldValue !== changeValue;\n const newValues = _objectSpread(_objectSpread({}, formValues), {}, {\n [key]: changeValue\n });\n if (isChanged) {\n setFormValues(newValues);\n }\n onChange({\n [key]: changeValue\n }, {\n allValues: newValues,\n action,\n currentItem: item\n });\n\n // hide secure text after confirm\n if (action === 'confirm' && secure) {\n setFormValues(_objectSpread(_objectSpread({}, formValues), {}, {\n [key]: '__encrypted__'\n }));\n }\n }\n function onItemEditingStatusChange(item) {\n if (item) {\n editingItemInitialValue.current = formValues[item.key];\n setEditingItem(item);\n return;\n }\n editingItemInitialValue.current = null;\n setEditingItem(null);\n }\n function getValue(item, _ref3) {\n let {\n editing = false\n } = _ref3;\n const {\n key\n } = item;\n const currentValue = isControlled ? value[key] : formValues[key];\n if (currentValue === '__encrypted__') {\n if (!editing) {\n return '******';\n }\n return '';\n }\n return currentValue;\n }\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledFormWrapper, {\n className: \"form\",\n style: style,\n children: schema === null || schema === void 0 ? void 0 : schema.map(x => {\n const {\n key,\n description,\n required,\n hidden = false,\n componentProps = {}\n } = x;\n if (hidden) {\n return null;\n }\n const editing = !!(editingItem && key === editingItem.key);\n const currentValue = getValue(x, {\n editing\n });\n // get component by componentType\n const CurrentComponent = getComponent(x, {\n editing\n });\n const renderComponentProps = {\n inputProps: {\n 'data-cy': 'schema-form-item-component'\n },\n key,\n description,\n editing,\n value: currentValue,\n onChange: changeValue => onFormItemChange(x, changeValue, 'change'),\n componentProps\n };\n return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n className: \"form-item\",\n children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n className: \"form-item-label\",\n style: {\n color: required && !currentValue ? '#ff0000' : '#333'\n },\n children: [description, required && /*#__PURE__*/(0, _jsxRuntime.jsx)(_required.default, {})]\n }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n className: \"form-item-body\",\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {\n className: \"form-item-input\",\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(CurrentComponent, _objectSpread({}, renderComponentProps))\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {\n className: \"form-item-action\",\n children: editing ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {\n \"data-cy\": \"schema-form-item-confirm\",\n onClick: () => {\n onFormItemChange(x, currentValue, 'confirm');\n onItemEditingStatusChange(null);\n },\n disabled: disabled || loading,\n size: \"large\",\n children: loading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_CircularProgress.default, {\n size: 24\n }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Done.default, {})\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {\n \"data-cy\": \"schema-form-item-cancel\",\n onClick: () => {\n onFormItemChange(x, editingItemInitialValue.current, 'cancel');\n onItemEditingStatusChange(null);\n },\n disabled: disabled || loading,\n size: \"large\",\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Close.default, {})\n })]\n }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {\n \"data-cy\": \"schema-form-item-edit\",\n onClick: () => {\n onFormItemChange(x, formValues[key], 'edit');\n onItemEditingStatusChange(x);\n },\n disabled: disabled || editingItem,\n size: \"large\",\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_EditIcon.default, {})\n })\n })]\n })]\n }, key);\n })\n });\n}\nSchemaForm.propTypes = {\n schema: _propTypes.default.array.isRequired,\n loading: _propTypes.default.bool,\n onChange: _propTypes.default.func.isRequired,\n value: _propTypes.default.object,\n defaultValue: _propTypes.default.object,\n style: _propTypes.default.object,\n disabled: _propTypes.default.bool\n};\nSchemaForm.defaultProps = {\n loading: false,\n value: undefined,\n defaultValue: {},\n style: {},\n disabled: false\n};\nconst StyledFormWrapper = (0, _styled.default)(_formWrapper.default)(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n width: 80%;\\n\"])));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = PassportInput;\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _Box = _interopRequireDefault(require(\"@mui/material/Box\"));\nvar _createPassportSvg = _interopRequireDefault(require(\"@abtnode/auth/lib/util/create-passport-svg\"));\nvar _passportColor = require(\"@abtnode/auth/lib/util/passport-color\");\nvar _util = require(\"@blocklet/meta/lib/util\");\nvar _colorInput = _interopRequireDefault(require(\"./color-input\"));\nvar _commonPropTypes = _interopRequireDefault(require(\"./common-prop-types\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nconst _excluded = [\"editing\", \"value\", \"onChange\", \"componentProps\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction PassportInput(_ref) {\n let {\n editing,\n value,\n onChange,\n componentProps\n } = _ref,\n rest = _objectWithoutProperties(_ref, _excluded);\n const {\n blocklet\n } = componentProps;\n const color = value === 'auto' ? (0, _passportColor.getPassportColorFromDid)(blocklet.appDid) : value;\n return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n display: \"flex\",\n alignItems: \"center\",\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(\"img\", {\n style: {\n width: 96,\n marginRight: 12\n },\n alt: \"\",\n src: (0, _createPassportSvg.default)({\n title: 'Owner',\n issuer: (0, _util.getDisplayName)(blocklet),\n issuerDid: blocklet.appDid,\n ownerName: 'Your Name',\n isDataUrl: true,\n preferredColor: value || 'auto'\n })\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_colorInput.default, _objectSpread(_objectSpread({}, rest), {}, {\n editing: editing,\n value: editing ? color : value,\n onChange: onChange,\n componentProps: componentProps\n }))]\n });\n}\nPassportInput.propTypes = _objectSpread(_objectSpread({}, _commonPropTypes.default), {}, {\n componentProps: _propTypes.default.shape({\n blocklet: _propTypes.default.object.isRequired\n }).isRequired\n});\nPassportInput.defaultProps = {};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = TextInput;\nvar _react = require(\"react\");\nvar _Box = _interopRequireDefault(require(\"@mui/material/Box\"));\nvar _TextField = _interopRequireDefault(require(\"@mui/material/TextField\"));\nvar _commonPropTypes = _interopRequireDefault(require(\"./common-prop-types\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nconst _excluded = [\"editing\", \"description\", \"value\", \"onChange\", \"componentProps\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction TextInput(_ref) {\n let {\n editing,\n description,\n value,\n onChange,\n componentProps\n } = _ref,\n rest = _objectWithoutProperties(_ref, _excluded);\n const {\n placeholder\n } = componentProps;\n const inputValue = (0, _react.useRef)(value);\n\n // enter keydown\n const handleKeydown = e => {\n if (e.key === 'Enter') {\n onChange(inputValue.current);\n }\n };\n const onInputChange = changeValue => {\n inputValue.current = changeValue;\n onChange(changeValue);\n };\n if (editing) {\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextField.default, _objectSpread({\n style: {\n flex: 1\n },\n fullWidth: true,\n value: value,\n onChange: e => {\n e.persist();\n onInputChange(e.target.value);\n },\n autoFocus: true,\n size: \"small\",\n variant: \"outlined\",\n placeholder: description || placeholder,\n onKeyDown: handleKeydown\n }, rest));\n }\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {\n px: 1,\n className: \"form-item-input slot\",\n children: value\n });\n}\nTextInput.propTypes = _commonPropTypes.default;\nTextInput.defaultProps = {\n componentProps: {}\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _Add = _interopRequireDefault(require(\"@mui/icons-material/Add\"));\nvar _Check = _interopRequireDefault(require(\"@mui/icons-material/Check\"));\nvar _Delete = _interopRequireDefault(require(\"@mui/icons-material/Delete\"));\nvar _Clear = _interopRequireDefault(require(\"@mui/icons-material/Clear\"));\nvar _SaveAlt = _interopRequireDefault(require(\"@mui/icons-material/SaveAlt\"));\nvar _Edit = _interopRequireDefault(require(\"@mui/icons-material/Edit\"));\nvar _Filter = _interopRequireDefault(require(\"@mui/icons-material/Filter\"));\nvar _FirstPage = _interopRequireDefault(require(\"@mui/icons-material/FirstPage\"));\nvar _LastPage = _interopRequireDefault(require(\"@mui/icons-material/LastPage\"));\nvar _ChevronRight = _interopRequireDefault(require(\"@mui/icons-material/ChevronRight\"));\nvar _ChevronLeft = _interopRequireDefault(require(\"@mui/icons-material/ChevronLeft\"));\nvar _Search = _interopRequireDefault(require(\"@mui/icons-material/Search\"));\nvar _ArrowDropDown = _interopRequireDefault(require(\"@mui/icons-material/ArrowDropDown\"));\nvar _Remove = _interopRequireDefault(require(\"@mui/icons-material/Remove\"));\nvar _ViewColumn = _interopRequireDefault(require(\"@mui/icons-material/ViewColumn\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar _default = {\n Add: _Add.default,\n Check: _Check.default,\n Delete: _Delete.default,\n Edit: _Edit.default,\n Clear: _Clear.default,\n DetailPanel: _ChevronRight.default,\n Filter: _Filter.default,\n FirstPage: _FirstPage.default,\n LastPage: _LastPage.default,\n NextPage: _ChevronRight.default,\n PreviousPage: _ChevronLeft.default,\n Search: _Search.default,\n ResetSearch: _Clear.default,\n SortArrow: _ArrowDropDown.default,\n Export: _SaveAlt.default,\n ThirdStateCheck: _Remove.default,\n ViewColumn: _ViewColumn.default\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _styled = _interopRequireDefault(require(\"@emotion/styled\"));\nvar _templateObject;\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\nconst TableStyle = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n .MuiPaper-root {\\n box-shadow: none !important;\\n border: none !important;\\n border-radius: 0 !important;\\n background: transparent;\\n }\\n .MuiToolbar-root {\\n background: transparent;\\n padding-left: 0;\\n display: none;\\n }\\n\\n &.show-pagination {\\n .MuiTablePagination-toolbar {\\n display: flex;\\n }\\n }\\n\\n .MuiTableHead-root th {\\n min-width: 100px;\\n background: transparent;\\n }\\n\\n .MuiTable-root {\\n overflow-y: hidden;\\n }\\n .MuiTableRow-root {\\n border: none !important;\\n }\\n\\n .MuiTableCell-root {\\n padding-right: 16px;\\n &:last-of-type {\\n padding-right: 0;\\n }\\n }\\n\\n /* @material-table/core@next \\u517C\\u5BB9 mui v5, \\u4F46 pagination \\u6837\\u5F0F\\u4F3C\\u4E4E\\u6709\\u4E9B\\u95EE\\u9898, \\u6682\\u5730\\u5B9A\\u5236\\u4E0B\\u9762\\u7684\\u6837\\u5F0F\\u4FEE\\u590D, \\u540E\\u9762\\u8003\\u8651\\u5F03\\u7528 material-table */\\n .MuiTablePagination-selectLabel,\\n .MuiTablePagination-displayedRows {\\n display: none;\\n }\\n .MuiTypography-caption {\\n display: inline-block;\\n }\\n .MuiTablePagination-selectLabel + .MuiInputBase-root {\\n margin-right: 8px;\\n }\\n\"])));\nvar _default = TableStyle;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _Lock = _interopRequireDefault(require(\"@mui/icons-material/Lock\"));\nvar _ContactMail = _interopRequireDefault(require(\"@mui/icons-material/ContactMail\"));\nvar _Group = _interopRequireDefault(require(\"@mui/icons-material/Group\"));\nvar _constant = require(\"@abtnode/constant\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar _default = [{\n value: _constant.WHO_CAN_ACCESS.OWNER,\n icon: _Lock.default,\n title: {\n zh: '只有我自己可访问',\n en: 'Only me can access'\n },\n description: {\n zh: '必须提供所有者通行证才能访问应用',\n en: 'You must provide owner passport to access this application'\n }\n}, {\n value: _constant.WHO_CAN_ACCESS.INVITED,\n icon: _ContactMail.default,\n title: {\n zh: '只有被邀请的人可以访问',\n en: 'Only invited people can access'\n },\n description: {\n zh: '稍后您可以在管理页面中邀请成员',\n en: 'You can invite members later in the admin page'\n }\n}, {\n value: _constant.WHO_CAN_ACCESS.ALL,\n icon: _Group.default,\n title: {\n zh: '所有人可访问',\n en: 'Accessible to all'\n },\n description: {\n zh: '向所有人开放,无需通行证即可访问应用',\n en: 'Open to the world anyone can access without passport'\n }\n}];\nexports.default = _default;"],"names":["WrappedButton","children","props","variant","color","forwardRef","ref","forwardedRef","AgreementApp","style","width","Agreement","blocklet","onClickNext","handleDescEle","showPageHeader","navigate","useNavigate","useState","accessUrl","setAccessUrl","error","setError","accessUrlLoading","setAccessUrlLoading","useLocaleContext","t","locale","useNodeContext","info","api","isRunning","loading","useMemo","isEmpty","clickNext","window","location","search","useEffect","onMount","getBlocklet","input","did","meta","b","urls","interfaces","map","x","url","getAccessibleUrl","accessUrlTmp","URL","href","message","Center","relative","Alert","wordBreak","type","Spinner","data","blockletMeta","isInstalled","already","title","subTitle","name","getDisplayName","footer","ButtonWrap","component","Link","to","className","Container","onContinue","description","texts","listenName","buttonNext","defaultProps","styled","theme","breakpoints","down","palette","grey","up","spacing","Add","Check","Delete","Edit","Clear","DetailPanel","NextPage","Filter","FirstPage","LastPage","PreviousPage","Search","ResetSearch","SortArrow","Export","ThirdStateCheck","ViewColumn","BlockletService","rest","useContext","LocaleContext","services","getBlockletServices","length","columns","field","icons","tableIcons","options","sorting","emptyRowsWhenPaging","actionsColumnIndex","tableLayout","maxBodyHeight","pageSize","pageSizeOptions","localization","body","emptyDataSourceMessage","DomainActions","site","domain","actions","close","id","value","teamDid","open","MenuItem","disabled","isProtected","dense","onClick","e","ListItemIcon","minWidth","marginRight","ListItemText","primary","RuleActions","o","RedirectRule","isHttps","toUrl","scheme","tmpToUrl","isUrl","target","fontSize","underline","RuleList","rules","blocklets","selectableBlocklets","parent","blockletDid","useTheme","domainStatus","useDomainStatusContext","recommendedDomainStatus","blockletsKeyByDid","reduce","acc","cur","Object","assign","rule","indexDid","isHealthy","status","accessible","_rule","items","depth","expand","pathPrefix","domainAliases","keys","forEach","key","prototype","hasOwnProperty","call","render","rowData","healthyTip","Tooltip","renderRuleText","content","replace","Box","maxWidth","px","overflow","whiteSpace","textOverflow","getAccessUrl","getBlockletUrlParams","rel","ArrowForward","ROUTING_RULE_TYPES","internalLink","findComponentById","componentId","returnAncestors","ancestors","childName","concat","join","display","alignItems","action","placement","IconButton","size","pointerEvents","paddingTop","paddingBottom","margin","LockIcon","fill","text","permission","textAlign","classnames","header","DomainLink","LinkDiv","Access","useRoutingContext","siteMap","getBlockletUrl","rawBlocklets","useBlockletContext","bundleDid","version","logo","port","ports","source","deployedFrom","urlMap","params","filter","includes","WELLKNOWN_PATH_PREFIX","sort","a","some","Div","justifyContent","SplitButton","isInProgress","menuButtonProps","menu","Button","Security","height","marginLeft","my","severity","mt","filters","ml","mr","Empty","SelectStore","defaultValue","onChange","extra","setOpen","storeSelectRef","useRef","currentRegistry","setCurrentRegistryRegistry","SelectStoreTitle","endIcon","ArrowDropDown","padding","Typography","TextField","select","autoComplete","helperText","fullWidth","autoFocus","newRegistry","SelectProps","MenuProps","anchorEl","current","renderValue","item","onClose","blockletRegistryList","reloadPage","onDelete","localStorage","getItem","removeItem","common","black","requirePurchase","inStore","isFreeBlocklet","hasRequiredEnvironments","environments","required","hasMissRequiredConfigs","configsList","sharedValueMap","getParamsName","StepContent","isMobile","onStepChange","useStepContext","steps","activeStep","setActiveStepByKey","setActiveStepByIndex","step","useImperativeHandle","DialogContentWrapper","pcWidth","pcHeight","logoUrl","registryUrl","getBlockletLogoUrl","baseUrl","logoPath","stepTip","RightContent","AddComponent","setLoading","editingItem","setEditingItem","showDialog","setShowDialog","configs","setConfigs","purchaseData","setPurchaseData","isWaitingPurchase","setIsWaitingPurchase","initParams","componentDid","componentName","configsValue","hasEnvironmentsStep","installResultProps","purchaseResultProps","showFromUrlDialog","setParams","setActiveStep","stepRef","purchaseRef","useMediaQuery","updateParams","obj","errMsg","validateInput","getComponentName","setInstallErrorResult","errorMessage","onInstall","installInput","createBlockletEventHandler","handler","useSubscription","BlockletEvents","BlockletStatus","payload","mountPoint","inputUrl","downloadTokenList","getBlockletMetaUrl","rootDid","installComponent","isNewRegistryUrl","isNew","decoded","addBlockletStore","Toast","console","validatePathPrefix","onNext","onCancel","onGeneratePurchaseData","installOpts","setConfigValue","chooseParams","componentDidValue","isInit","list","settings","Date","deletedAt","newConfigs","validation","formatItem","isNil","custom","doc","componentSelfConfigs","componentAllConfigs","uniqBy","flatten","sharedConfigObj","getSharedConfigObj","default","hidden","BLOCKLET_CONFIGURABLE_KEY","config","find","urlFriendly","componentRequirePurchase","TypographyWrapper","mode","onSuccess","handleText","confirm","selected","setItem","handleBlockletRegistry","handleButtonText","state","installed","handleButtonClick","handleBlockletRender","blockletItem","defaultRender","isChosen","StoreBlockletItemWrapper","extraFilter","allBlocklets","isComponentBlocklet","cancel","onConfirm","dangerouslySetInnerHTML","__html","flexDirection","getCurrentStep","PageHeaderWrapper","handlePaySuccess","label","marginBottom","Tag","formatToDatetime","inputProps","marginTop","schema","changeValue","currentItem","allValues","AnimationWaiter","MessageDiv","increaseSpeed","messageLoop","setTimeout","scrollDom","document","getElementsByClassName","scrollTop","scrollHeight","onMenuItemClick","stopPropagation","showCloseButton","DialogWrapper","PaperProps","innerHeight","event","reason","disableEscapeKeyDown","StepProvider","newStep","Dialog","isMobileDialogContent","DialogContentText","PageHeader","white","main","BlockletComponent","getComponentUrl","ExportBlocklet","session","useSessionContext","show","setShow","stepIndex","setStepIndex","getNameByTitle","setName","uploadedComponents","bundleSource","onExport","genExportedMeta","downloadExportedSource","holder","user","fullName","formatError","btn","gutterBottom","flexWrap","bgcolor","Stepper","alternativeLabel","Step","StepLabel","BlockletDetail","useParams","tab","currentTab","currentState","setCurrentState","refresh","domains","Boolean","fixBlocklet","Error","onBlockletChange","renderAuditLogs","useCallback","scope","onTabChange","newTab","onUpdate","missingRequiredConfigs","isInstalling","getAppMissingConfigs","tabs","breadcrumbsLabel","Badge","invisible","renders","overview","BlockletOverview","configuration","BlockletConfiguration","access","members","passports","Passports","components","Components","logs","BlockletLog","push","splice","TabComponent","DeletingBlockletProvider","Tabs","scrollButtons","isValidElement","onActionComplete","err","currentTabDesc","ProxyTeamProvider","TeamProvider","Main","Breadcrumbs","separator","NavLink","active","cursor","ArchiveOutlined","onStart","onComplete","values","md","defineProperty","exports","BlockletSource","_react","require","_propTypes","_interopRequireDefault","_urlJoin","_toUpper","_Tag","_context","_Link","_Box","_jsxRuntime","__esModule","_ref","_blocklet$meta","sourceInfo","jsxs","jsx","propTypes","shape","string","object","ComponentConfiguration","_templateObject","_styled","_IconButton","_Edit","_util","_Dialog","_Tabs","_util2","_environment","_setting","isRoot","isDynamic","dynamic","setTab","onOpen","tabConfigs","_ref2","tabConfig","StyledDialog","minHeight","isRequired","array","any","strings","raw","slice","freeze","defineProperties","DeleteComponent","_Delete","_Tooltip","_Typography","_Radio","_RadioGroup","_FormControlLabel","_confirm","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","apply","_objectSpread","i","arguments","_defineProperty","getOwnPropertyDescriptors","configurable","writable","remove","tip","deleteSetting","setDeleteSetting","deleteComponent","param","removeType","componentDisabled","StyledButton","control","btnWithToolTip","Fragment","func","bool","ComponentEnvironment","_templateObject2","_core","_TextField","_Alert","_constant","_clickToCopy","_toast","_node","_tableIcons","_table","_permission","_icons","_taggedTemplateLiteral","node","inService","dids","onConfigChanged","success","isConfigEditable","onAddConfig","trim","startsWith","configBlocklet","result","code","onEditConfig","newData","oldData","BLOCKLET_CLUSTER_SIZE","errMessage","isValidClusterSize","onDeleteConfig","componentConfigs","getComponentMissingConfigs","hasBWAConfig","onRowAdd","onRowUpdate","onRowDelete","isDeletable","role","BlockletAdminRoles","hasPermission","isBlockletDev","initialEditValue","d","fontWeight","editComponent","_onChange","EditDiv","placeholder","secure","unstyled","_onChange2","paging","editable","div","sm","_semver","_DialogContent","_DialogTitle","_DialogActions","_Update","_Add","_Badge","_SettingsOutlined","_InfoOutlined","_Launch","_Grid","_Collapse","_ArrowForward","_ExpandMore","_ChevronRight","_Spinner","_InfoRow","_Button","_Empty","_deletingBlocklets","_didAddress","_tag","_blockletSource","_runtimeInfo","_status","_version","_avatar","_mode","_configuration","_delete","_excluded","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","getEngineRows","engine","displayName","ComponentItem","_blocklet$children","onRemove","setExpand","componentInfo","setComponentInfo","deletingComponents","useDeletingBlockletContext","deletingBlocklets","rows","showStatus","canExpand","expandIcon","root","Array","isArray","store","getSourceInfo","componentRows","checkUpgrade","group","formatPerson","author","noRunningMessage","nameWidth","deleteDisabledTip","py","pl","Math","max","xs","sx","flexGrow","_ref3","StyledBadge","badgeContent","borderBottom","borderColor","in","paddingY","row","valueComponent","nameFormatter","number","origin","top","right","_ref4","addDeletingDid","removeDeletingDid","matchDeletingDid","updateConfirm","setUpdateConfirm","showUpdateDot","setShowUpdateDot","unshift","getLatestBlockletVersion","then","res","gt","catch","checkForUpdates","newVersion","checkComponentsForUpdates","preUpdateInfo","updateId","updateList","forEachChildSync","_ref5","updateItem","onConfirmUpdate","fn","upgradeBlocklet","bind","upgradeComponents","removeComponent","keepData","sleep","_ref6","container","element","ComponentSettingInService","ComponentSettingInDaemon","_formTextInput","ComponentSetting","onSubmitTitle","updateComponentTitle","onSubmitMountPoint","updateComponentMountPoint","initialValue","onSubmit","withPermission","BlockletEnvironmentInService","BlockletEnvironmentInDaemon","_get","_omit","_MenuItem","_useTheme","_Switch","_Divider","_schemaForm","_config","_excluded2","BlockletEnvironment","_blocklet$settings","cpuCores","setCpuCores","whoCanAccess","getWhoCanAccess","publicToStore","ws","clusterMode","customType","customDelete","deletable","customColor","customUrl","customLogo","configurableEnvs","BLOCKLET_APP_NAME","BLOCKLET_APP_DESCRIPTION","BLOCKLET_PASSPORT_COLOR","componentType","componentProps","BLOCKLET_APP_URL","BLOCKLET_APP_LOGO","exist","schemaList","onWhoCanAccessChange","updateWhoCanAccess","onPublicToStoreChange","checked","configPublicToStore","iconStyle","verticalAlign","secondary","onSubmitConfig","onDeletableChange","BLOCKLET_DELETABLE","onWalletTypeChange","BLOCKLET_WALLET_TYPE","icon","StyledMenuItem","defaultChecked","BLOCKLET_APP_SK","BlockletDiskInfo","_filesize","_reactRouterDom","diskInfo","renderDiskInfo","dir","env","BLOCKLET_APP_DIR","app","BLOCKLET_DATA_DIR","BLOCKLET_LOG_DIR","log","BLOCKLET_CACHE_DIR","cache","_logTerminal","LogTerminalGroup","logId","initialData","_diskInfo","appDid","infoRows","installedAt","startedAt","stoppedAt","owner","engineRows","BlockletRuntimeInfo","_prettyMsI18n","_isEmpty","runtimeInfo","memoryUsage","cpuUsage","Number","startAt","formatLocale","pid","FormTextInput","_CircularProgress","_EditIcon","_Close","_Done","_required","_formWrapper","editing","setEditing","setDefaultValue","setValue","handleSubmit","onInputChange","flex","onKeyDown","_default","span","_useInterval","currentTime","setCurrentTime","formatTime","LogTerminal","_ButtonGroup","_useMediaQuery","_Terminal","_clock","types","prepend","logTypeLabels","stdout","stderr","currentType","setCurrentType","logFiles","setLogFiles","terminalRefs","terminal","write","level","p","LogTerminalGroupRoot","logFile","visibility","arrayOf","LogTerminalRoot","position","boxSizing","background","foreground","ColorInput","_Popover","_reactColor","_commonPropTypes","colorElm","colorValue","timer","clearTimeout","onColorChange","ReadView","backgroundColor","borderRadius","EditView","flexShrink","border","anchorOrigin","vertical","horizontal","transformOrigin","ChromePicker","c","hex","renderFormItem","SchemaForm","_colorInput","_textInput","_passportInput","isControlled","toString","formValues","setFormValues","editingItemInitialValue","onFormItemChange","isChanged","newValues","onItemEditingStatusChange","StyledFormWrapper","currentValue","getValue","CurrentComponent","passport","toLowerCase","getComponent","renderComponentProps","undefined","PassportInput","_createPassportSvg","_passportColor","getPassportColorFromDid","alt","src","issuer","issuerDid","ownerName","isDataUrl","preferredColor","TextInput","inputValue","persist","_Check","_Clear","_SaveAlt","_Filter","_FirstPage","_LastPage","_ChevronLeft","_Search","_ArrowDropDown","_Remove","_ViewColumn","_Lock","_ContactMail","_Group","WHO_CAN_ACCESS","OWNER","zh","en","INVITED","ALL"],"sourceRoot":""}