@abtnode/webapp 1.6.9 → 1.6.13
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.
- package/blocklet.js +56 -56
- package/blocklet.yml +1 -1
- package/build/asset-manifest.json +20 -20
- package/build/index.html +1 -1
- package/build/{precache-manifest.d77c71fa590027f941a9b90889c41ebc.js → precache-manifest.3f2f324f896d80671d77a0418c17d1c4.js} +18 -18
- package/build/service-worker.js +1 -1
- package/build/static/js/11.f9ceb4b3.chunk.js +2 -0
- package/build/static/js/11.f9ceb4b3.chunk.js.map +1 -0
- package/build/static/js/19.fc33fa61.chunk.js +2 -0
- package/build/static/js/19.fc33fa61.chunk.js.map +1 -0
- package/build/static/js/{22.cdd3d1a4.chunk.js → 22.0f55f82b.chunk.js} +2 -2
- package/build/static/js/22.0f55f82b.chunk.js.map +1 -0
- package/build/static/js/{23.4208ebea.chunk.js → 23.32485069.chunk.js} +2 -2
- package/build/static/js/23.32485069.chunk.js.map +1 -0
- package/build/static/js/{28.9b1197ca.chunk.js → 28.40163b1b.chunk.js} +2 -2
- package/build/static/js/28.40163b1b.chunk.js.map +1 -0
- package/build/static/js/8.27e60ccf.chunk.js +3 -0
- package/build/static/js/{8.8084d3ca.chunk.js.LICENSE.txt → 8.27e60ccf.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/8.27e60ccf.chunk.js.map +1 -0
- package/build/static/js/main.9098ab8e.chunk.js +2 -0
- package/build/static/js/main.9098ab8e.chunk.js.map +1 -0
- package/build/static/js/{runtime-main.278e8ea4.js → runtime-main.a7211655.js} +2 -2
- package/build/static/js/{runtime-main.278e8ea4.js.map → runtime-main.a7211655.js.map} +1 -1
- package/package.json +1 -1
- package/build/static/js/11.ec811533.chunk.js +0 -2
- package/build/static/js/11.ec811533.chunk.js.map +0 -1
- package/build/static/js/19.b0298325.chunk.js +0 -2
- package/build/static/js/19.b0298325.chunk.js.map +0 -1
- package/build/static/js/22.cdd3d1a4.chunk.js.map +0 -1
- package/build/static/js/23.4208ebea.chunk.js.map +0 -1
- package/build/static/js/28.9b1197ca.chunk.js.map +0 -1
- package/build/static/js/8.8084d3ca.chunk.js +0 -3
- package/build/static/js/8.8084d3ca.chunk.js.map +0 -1
- package/build/static/js/main.ce53947b.chunk.js +0 -2
- package/build/static/js/main.ce53947b.chunk.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../mocks/lib/jspdf.js","../../../node_modules/pretty-ms-i18n/index.js","../../../node_modules/pretty-ms-i18n/lang/en.js","../../../node_modules/pretty-ms-i18n/lang/zh.js","../../../node_modules/pretty-ms-i18n/lib/parse_ms.js","../../../node_modules/parse-ms/index.js","../../../node_modules/@material-ui/icons/PlayArrow.js","../../../node_modules/@material-ui/icons/Stop.js","../../../node_modules/@material-ui/icons/Replay.js","../../../node_modules/@material-ui/icons/Autorenew.js","../../../node_modules/@material-ui/icons/Settings.js","../../../node_modules/@material-ui/icons/Receipt.js","../../../node_modules/@material-ui/icons/Group.js","../../../node_modules/@material-ui/icons/MoreVert.js","../../../node_modules/lodash/upperCase.js","components/blocklet/service-tags.js","components/blocklet/interface.js","components/blocklet/actions.js","components/blocklet/version.js","../../../node_modules/@material-ui/icons/ArrowUpward.js","components/uptime.js","components/blocklet/install-from-url.js","components/blocklet/add.js","pages/blocklets/index.js","../../../node_modules/@material-ui/core/esm/ButtonGroup/index.js","hooks/mobile-width.js","components/confirm.js","components/table-icons.js","components/table.js","../../../blocklet/meta/lib/util.js","components/blocklet/status.js","components/dot.js","../../../node_modules/@arcblock/ux/lib/ButtonGroup/index.js","../../../node_modules/pretty-ms-i18n/lib/register_lang.js","components/tag.js","components/blocklet/avatar.js","components/blocklet/icons.js","hooks/persistent-sort.js"],"names":["module","exports","en_US","require","zh_CN","registerLang","prettyMilliseconds","year","long","short","day","hour","minute","second","millisecond","microsecond","nanosecond","parseMilliseconds","getLocale","getLang","pluralize","word","count","milliseconds","options","Number","isFinite","TypeError","colonNotation","compact","formatSubMilliseconds","separateMilliseconds","verbose","secondsDecimalDigits","millisecondsDecimalDigits","locale","result","floorDecimals","value","decimalDigits","flooredInterimValue","Math","floor","round","toFixed","add","unit","valueToString","length","prefix","suffix","valueString","toString","wholeDigits","includes","split","minLength","repeat","max","Object","values","parsed","filter","x","days","hours","minutes","push","trunc","seconds","microseconds","nanoseconds","millisecondsAndBelow","roundedMiliseconds","ceil","millisecondsString","parseFloat","secondsFixed","secondsString","keepDecimalsOnWholeSeconds","replace","longUnit","shortUnit","unitCount","separator","slice","join","roundTowardsZero","_interopRequireDefault","_interopRequireWildcard","defineProperty","default","React","_default","createElement","d","upperCase","createCompounder","index","toUpperCase","useStyles","makeStyles","tooltip","maxWidth","ServiceTags","meta","classes","Array","isArray","services","map","name","content","config","entries","String","sort","a","b","aKey","bKey","localeCompare","Tooltip","interactive","title","style","paddingRight","key","Flex","flexShrink","width","textAlign","marginRight","margin","cursor","type","fill","styled","div","BlockletInterface","blocklet","props","useContext","LocaleContext","t","status","webInterface","interfaces","find","BLOCKLET_INTERFACE_TYPE_WEB","EmptyTipOut","to","did","className","url","checkIsWildcardDomain","encodeWildcardDomain","Container","href","appendParams","target","BlockletActions","onStart","onComplete","variant","rest","history","useHistory","node","useNodeContext","useState","anchorEl","setAnchorEl","currentAction","setCurrentAction","loading","setLoading","confirmSetting","setConfirmSetting","createHandler","action","fn","requireUserConfirm","onConfirm","params","input","keepData","removeType","sleep","Toast","success","errMsg","formatError","error","Error","onCancel","confirmSettings","stop","description","confirm","cancel","restart","remove","setParams","component","gutterBottom","onChange","e","control","label","cancelDownload","open","Boolean","onOpen","stopPropagation","preventDefault","currentTarget","onAction","handler","console","removeAction","icon","Icons","Remove","api","deleteBlocklet","disabled","cancelDownloadAction","cancelDownloadBlocklet","missingRequiredConfigs","getRequiredMissingConfigs","actions","Start","startBlocklet","isDownloading","mode","BLOCKLET_MODES","DEVELOPMENT","Stop","stopBlocklet","Restart","restartBlocklet","Reload","reloadBlocklet","onlyInMenu","Config","isAuthServiceEnabled","Group","Log","inProgress","isInProgress","Div","data-cy","permission","hasPermission","aria-label","aria-controls","aria-haspopup","actions-blocklet-did","onClick","size","id","keepMounted","onClose","PaperProps","severity","i","dense","minWidth","fontSize","primary","defaultProps","theme","breakpoints","sm","BlockletVersion","checkUpgrade","info","setError","newVersionBlocklet","setNewVersionBlocklet","enqueueSnackbar","useSnackbar","useEffect","getLatestBlockletVersion","version","then","data","registryUrl","semver","gt","catch","err","source","deployedFrom","blockletRegistry","upgradeBlocklet","autoHideDuration","setting","marginLeft","color","message","withPermission","times","useUpTime","initialTime","format","elapsedTime","setElapsedTime","setDelayTimes","time","delay","setDelay","timer","setInterval","delayTime","clearInterval","UpTime","useFormat","InstallFromUrl","defaultUrl","onSuccess","onError","useLocaleContext","setUrl","activeStep","setActiveStep","dist","setMeta","existingMeta","setExistingMeta","onGetMeta","decoded","decodeURIComponent","trim","URL","getBlockletMetaFromUrl","newer","getBlocklet","attachRuntimeInfo","existedBlocklet","gte","onInstall","installBlocklet","rows","formatPerson","author","tarball","steps","body","Typography","TextField","autoComplete","fullWidth","autoFocus","marginBottom","helperText","onKeyPress","paddingLeft","row","valueComponent","nameWidth","nameFormatter","s","step","showCloseButton","disableBackdropClick","disableEscapeKeyDown","rounded","Stepper","alternativeLabel","Step","StepLabel","DialogContentText","marginTop","AddBlocklet","setSuccess","setOpen","installSetting","setInstallSetting","anchorRef","useRef","closeInstallFromUrl","undefined","aria-expanded","ref","prevOpen","Popper","current","role","placement","disablePortal","Paper","ClickAwayListener","onClickAway","contains","MenuList","MenuItem","duration","BlockletList","blocklets","useBlockletContext","useLocalStorage","pageSize","setNewPageSize","usePersistentSort","sortDirections","onSortChange","onActionStart","onActionComplete","refresh","silent","isBreakpointsUpMd","useMediaQuery","up","isBreakpointsUpLg","useLocation","pathname","search","query","URLSearchParams","get","metaUrl","items","textDecoration","dateFields","forEach","f","date","Date","columns","field","defaultSort","customSort","aSorProperty","bSorProperty","toLowerCase","render","tab","sorting","aVersion","bVersion","lt","installedAt","createdAt","formatToDatetime","aUptime","runtimeInfo","uptime","prettyT","formatLocale","prettyMs","status-blocklet-did","configs","some","required","Box","display","justifyContent","alignItems","icons","blockletIcons","tableIcons","header","emptyRowsWhenPaging","actionsColumnIndex","tableLayout","maxBodyHeight","pageSizeOptions","localization","toolbar","searchPlaceholder","emptyDataSourceMessage","onOrderChange","onChangeRowsPerPage","newPageSize","Main","main","useMobileWidth","useTheme","down","ConfirmDialog","showCancel","initialParams","changeLocale","onCallback","cb","isBreakpointsDownSm","StyledDialog","fullScreen","DialogTitle","DialogContent","Alert","DialogActions","padding","__disableConfirm","Dialog","Add","Check","Delete","Edit","Clear","DetailPanel","NextPage","Filter","FirstPage","LastPage","PreviousPage","Search","ResetSearch","SortArrow","Export","ThirdStateCheck","ViewColumn","TableStyle","forEachBlocklet","parallel","sync","children","child","tasks","Promise","all","isFreeBlocklet","payment","price","every","missingConfigs","item","y","wipeSensitiveData","secure","environments","configObj","environmentObj","colors","BlockletStatus","colorMap","added","waiting","downloading","downloaded","installing","installed","starting","running","stopping","stopped","upgrading","restarting","corrupted","statusTxt","borderRadius","border","Dot","_styledComponents","_ButtonGroup","_wrap","obj","__esModule","sizes","small","medium","large","getBorderRadius","StyledButtonGroup","withConfig","displayName","componentId","langs","Map","set","Tag","BlockletAvatar","logoUrl","joinURL","logo","formatRegistryLogoPath","window","env","apiPrefix","assign","backgroundColor","height","src","ev","alt","initialDirections","setSortDirections","columnIndex","directionValue","newSortDirections"],"mappings":"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","file":"static/js/11.ec811533.chunk.js","sourcesContent":["module.exports = {};\n","const en_US = require('./lang/en');\nconst zh_CN = require('./lang/zh');\n\nconst { registerLang } = require('./lib/register_lang');\nconst prettyMilliseconds = require('./lib/parse_ms');\n\nregisterLang('en_US', en_US);\nregisterLang('zh_CN', zh_CN);\n\nprettyMilliseconds.registerLang = registerLang;\n\nmodule.exports = prettyMilliseconds;\n","module.exports = {\n year: {\n long: 'year',\n short: 'y',\n },\n day: {\n long: 'day',\n short: 'd',\n },\n hour: {\n long: 'hour',\n short: 'h',\n },\n minute: {\n long: 'minute',\n short: 'm',\n },\n second: {\n long: 'second',\n short: 's',\n },\n millisecond: {\n long: 'millisecond',\n short: 'ms',\n },\n microsecond: {\n long: 'microsecond',\n short: 'µs',\n },\n nanosecond: {\n long: 'nanosecond',\n short: 'ns',\n },\n};\n","module.exports = {\n year: {\n long: '年',\n short: '年',\n },\n day: {\n long: '天',\n short: '天',\n },\n hour: {\n long: '小时',\n short: '小时',\n },\n minute: {\n long: '分钟',\n short: '分',\n },\n second: {\n long: '秒钟',\n short: '秒',\n },\n millisecond: {\n long: '毫秒',\n short: '毫秒',\n },\n microsecond: {\n long: '微秒',\n short: '微秒',\n },\n nanosecond: {\n long: '纳秒',\n short: '纳秒',\n },\n};\n","const parseMilliseconds = require('parse-ms');\nconst { getLang: getLocale } = require('./register_lang');\n\nconst pluralize = (word, count) => (count === 1 ? word : `${word}s`);\n\nconst SECOND_ROUNDING_EPSILON = 0.0000001;\n\nmodule.exports = (milliseconds, options = {}) => {\n if (!Number.isFinite(milliseconds)) {\n throw new TypeError('Expected a finite number');\n }\n\n if (options.colonNotation) {\n options.compact = false;\n options.formatSubMilliseconds = false;\n options.separateMilliseconds = false;\n options.verbose = false;\n }\n\n if (options.compact) {\n options.secondsDecimalDigits = 0;\n options.millisecondsDecimalDigits = 0;\n }\n\n const locale = getLocale(options.locale);\n const result = [];\n\n const floorDecimals = (value, decimalDigits) => {\n const flooredInterimValue = Math.floor(value * 10 ** decimalDigits + SECOND_ROUNDING_EPSILON);\n const flooredValue = Math.round(flooredInterimValue) / 10 ** decimalDigits;\n return flooredValue.toFixed(decimalDigits);\n };\n\n const add = (value, unit, valueToString) => {\n if (\n (result.length === 0 || !options.colonNotation) &&\n value === 0 &&\n !(options.colonNotation && unit === 'minute')\n ) {\n return;\n }\n\n const { long } = locale[unit] || getLocale('en_US')[unit];\n const { short } = locale[unit] || getLocale('en_US')[unit];\n\n let valueString = (valueToString || value || '0').toString();\n let prefix;\n let suffix;\n if (options.colonNotation) {\n prefix = result.length > 0 ? ':' : '';\n suffix = '';\n const wholeDigits = valueString.includes('.') ? valueString.split('.')[0].length : valueString.length;\n const minLength = result.length > 0 ? 2 : 1;\n valueString = '0'.repeat(Math.max(0, minLength - wholeDigits)) + valueString;\n } else {\n prefix = '';\n if (options.locale === 'zh_CN') {\n if (Object.values(parsed).filter((x) => x > 0).length > 1) {\n if (!parsed.days && !parsed.hours && parsed.minutes && options.compact) {\n suffix = long;\n } else {\n suffix = short;\n }\n } else if (parsed.minutes) {\n suffix = long;\n } else {\n suffix = short;\n }\n } else {\n suffix = options.verbose ? ` ${pluralize(long, value)}` : short;\n }\n }\n\n result.push(prefix + valueString + suffix);\n };\n\n const parsed = parseMilliseconds(milliseconds);\n\n add(Math.trunc(parsed.days / 365), 'year');\n add(parsed.days % 365, 'day');\n add(parsed.hours, 'hour');\n add(parsed.minutes, 'minute');\n\n if (\n options.separateMilliseconds ||\n options.formatSubMilliseconds ||\n (!options.colonNotation && milliseconds < 1000)\n ) {\n add(parsed.seconds, 'second');\n if (options.formatSubMilliseconds) {\n add(parsed.milliseconds, 'millisecond');\n add(parsed.microseconds, 'microsecond');\n add(parsed.nanoseconds, 'nanosecond');\n } else {\n const millisecondsAndBelow = parsed.milliseconds + parsed.microseconds / 1000 + parsed.nanoseconds / 1e6;\n\n const millisecondsDecimalDigits =\n typeof options.millisecondsDecimalDigits === 'number' ? options.millisecondsDecimalDigits : 0;\n\n const roundedMiliseconds =\n millisecondsAndBelow >= 1 ? Math.round(millisecondsAndBelow) : Math.ceil(millisecondsAndBelow);\n\n const millisecondsString = millisecondsDecimalDigits\n ? millisecondsAndBelow.toFixed(millisecondsDecimalDigits)\n : roundedMiliseconds;\n\n add(Number.parseFloat(millisecondsString, 10), 'millisecond', millisecondsString);\n }\n } else {\n const seconds = (milliseconds / 1000) % 60;\n const secondsDecimalDigits = typeof options.secondsDecimalDigits === 'number' ? options.secondsDecimalDigits : 1;\n const secondsFixed = floorDecimals(seconds, secondsDecimalDigits);\n const secondsString = options.keepDecimalsOnWholeSeconds ? secondsFixed : secondsFixed.replace(/\\.0+$/, '');\n add(Number.parseFloat(secondsString, 10), 'second', secondsString);\n }\n\n if (result.length === 0) {\n const longUnit = (locale.millisecond || getLocale('en_US').millisecond).long;\n const shortUnit = (locale.millisecond || getLocale('en_US').millisecond).short;\n\n if (options.locale === 'zh_CN') {\n return `0${options.verbose ? `${longUnit}` : shortUnit}`;\n }\n\n return `0${options.verbose ? ` ${longUnit}s` : shortUnit}`;\n }\n\n if (options.compact) {\n return result[0];\n }\n\n if (typeof options.unitCount === 'number') {\n const separator = options.colonNotation ? '' : ' ';\n return result.slice(0, Math.max(options.unitCount, 1)).join(separator);\n }\n\n return options.colonNotation ? result.join('') : result.join(' ');\n};\n","'use strict';\nmodule.exports = milliseconds => {\n\tif (typeof milliseconds !== 'number') {\n\t\tthrow new TypeError('Expected a number');\n\t}\n\n\tconst roundTowardsZero = milliseconds > 0 ? Math.floor : Math.ceil;\n\n\treturn {\n\t\tdays: roundTowardsZero(milliseconds / 86400000),\n\t\thours: roundTowardsZero(milliseconds / 3600000) % 24,\n\t\tminutes: roundTowardsZero(milliseconds / 60000) % 60,\n\t\tseconds: roundTowardsZero(milliseconds / 1000) % 60,\n\t\tmilliseconds: roundTowardsZero(milliseconds) % 1000,\n\t\tmicroseconds: roundTowardsZero(milliseconds * 1000) % 1000,\n\t\tnanoseconds: roundTowardsZero(milliseconds * 1e6) % 1000\n\t};\n};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 5v14l11-7z\"\n}), 'PlayArrow');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6 6h12v12H6z\"\n}), 'Stop');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 5V1L7 6l5 5V7c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6H4c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8z\"\n}), 'Replay');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 6v3l4-4-4-4v3c-4.42 0-8 3.58-8 8 0 1.57.46 3.03 1.24 4.26L6.7 14.8c-.45-.83-.7-1.79-.7-2.8 0-3.31 2.69-6 6-6zm6.76 1.74L17.3 9.2c.44.84.7 1.79.7 2.8 0 3.31-2.69 6-6 6v-3l-4 4 4 4v-3c4.42 0 8-3.58 8-8 0-1.57-.46-3.03-1.24-4.26z\"\n}), 'Autorenew');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z\"\n}), 'Settings');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18 17H6v-2h12v2zm0-4H6v-2h12v2zm0-4H6V7h12v2zM3 22l1.5-1.5L6 22l1.5-1.5L9 22l1.5-1.5L12 22l1.5-1.5L15 22l1.5-1.5L18 22l1.5-1.5L21 22V2l-1.5 1.5L18 2l-1.5 1.5L15 2l-1.5 1.5L12 2l-1.5 1.5L9 2 7.5 3.5 6 2 4.5 3.5 3 2v20z\"\n}), 'Receipt');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z\"\n}), 'Group');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"\n}), 'MoreVert');\n\nexports.default = _default;","var createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string`, as space separated words, to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the upper cased string.\n * @example\n *\n * _.upperCase('--foo-bar');\n * // => 'FOO BAR'\n *\n * _.upperCase('fooBar');\n * // => 'FOO BAR'\n *\n * _.upperCase('__foo_bar__');\n * // => 'FOO BAR'\n */\nvar upperCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toUpperCase();\n});\n\nmodule.exports = upperCase;\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport upperCase from 'lodash/upperCase';\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport Tooltip from '@material-ui/core/Tooltip';\nimport Tag from '@arcblock/ux/lib/Tag';\nimport DidLogo from '@arcblock/icons/lib/DidLogo';\n\nconst useStyles = makeStyles(() => ({\n tooltip: {\n maxWidth: 'none',\n },\n}));\n\nexport default function ServiceTags({ meta }) {\n const classes = useStyles();\n if (!meta || !Array.isArray(meta.services)) {\n return null;\n }\n\n return meta.services.map(x => {\n const name = upperCase(x.name.replace(/^@abtnode\\//, '').replace(/-service$/, ''));\n const formatValue = value => (Array.isArray(value) ? value.join(', ') : String(value));\n\n let content = [];\n if (x.config) {\n content = Object.entries(x.config)\n .map(d => {\n d[1] = formatValue(d[1]);\n return d;\n })\n .filter(d => d[1])\n .sort((a, b) => {\n const aKey = a[0] || '';\n const bKey = b[0] || '';\n\n return aKey.localeCompare(bKey);\n });\n }\n\n return (\n <Tooltip\n interactive\n classes={{ tooltip: classes.tooltip }}\n title={\n // eslint-disable-next-line react/jsx-wrap-multilines\n <div style={{ paddingRight: 20 }}>\n {content.map(([key, value]) => (\n <Flex>\n <div style={{ flexShrink: 0, width: 150, textAlign: 'right', marginRight: 10 }}>{`${key}:`}</div>\n <div>{value}</div>\n </Flex>\n ))}\n </div>\n }>\n <Tag style={{ margin: '0 4px', cursor: 'pointer' }} type=\"success\">\n {name === 'AUTH' && <DidLogo style={{ marginRight: 4, fill: 'rgb(91, 144, 37)' }} />}\n {name}\n </Tag>\n </Tooltip>\n );\n });\n}\n\nServiceTags.propTypes = {\n meta: PropTypes.object.isRequired,\n};\n\nconst Flex = styled.div`\n display: flex;\n margin: 4px 0;\n`;\n","import React, { useContext } from 'react';\nimport { Link } from 'react-router-dom';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport ExternalLink from '@material-ui/core/Link';\nimport { LocaleContext } from '@arcblock/ux/lib/Locale/context';\n\nimport { BLOCKLET_INTERFACE_TYPE_WEB } from '@blocklet/meta/lib/constants';\n\nimport { appendParams, checkIsWildcardDomain, encodeWildcardDomain } from '../../libs/util';\nimport ServiceTags from './service-tags';\n\nexport default function BlockletInterface({ blocklet, ...props }) {\n const { t, locale } = useContext(LocaleContext);\n\n if (blocklet.status !== 'running') {\n return null;\n }\n\n // eslint-disable-next-line no-nested-ternary\n const webInterface = (blocklet.interfaces || []).find(x => x.type === BLOCKLET_INTERFACE_TYPE_WEB);\n\n if (!webInterface) {\n return (\n <EmptyTipOut>\n {t('blocklet.urlEmptyTip')}\n <Link to={`/router/rules?fromDid=${blocklet.meta.did}`} className=\"interface-link\">\n {t('blocklet.goToAddRule')}\n </Link>\n </EmptyTipOut>\n );\n }\n\n const { name, url } = webInterface;\n\n if (checkIsWildcardDomain(url)) {\n return encodeWildcardDomain(url, locale);\n }\n\n return (\n <Container {...props}>\n <Flex>\n <ExternalLink href={appendParams(url, { locale })} target=\"_blank\" className=\"blocklet-interface\">\n {t('common.open')}\n </ExternalLink>\n <ServiceTags meta={blocklet.meta.interfaces.find(x => x.name === name)} />\n </Flex>\n </Container>\n );\n}\n\nBlockletInterface.propTypes = {\n blocklet: PropTypes.object.isRequired,\n};\n\nconst Flex = styled.div`\n display: flex;\n margin: 4px 0;\n`;\n\nconst EmptyTipOut = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst Container = styled.div`\n .blocklet-interface {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n white-space: nowrap;\n\n img {\n margin-right: 4px;\n }\n }\n`;\n","/* eslint-disable operator-linebreak */\nimport React, { useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { useHistory, Link } from 'react-router-dom';\n\nimport IconButton from '@material-ui/core/IconButton';\nimport Menu from '@material-ui/core/Menu';\nimport Divider from '@material-ui/core/Divider';\nimport Spinner from '@arcblock/ux/lib/Spinner';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport Typography from '@material-ui/core/Typography';\nimport Radio from '@material-ui/core/Radio';\nimport RadioGroup from '@material-ui/core/RadioGroup';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Alert from '@material-ui/lab/Alert';\n\nimport Button from '@arcblock/ux/lib/Button';\nimport ButtonGroup from '@arcblock/ux/lib/ButtonGroup';\nimport { getRequiredMissingConfigs, isAuthServiceEnabled } from '@blocklet/meta/lib/util';\nimport { LocaleContext } from '@arcblock/ux/lib/Locale/context';\n\nimport { BLOCKLET_MODES } from '@blocklet/meta/lib/constants';\n\nimport Toast from '../toast';\nimport { sleep, formatError, isInProgress, isDownloading } from '../../libs/util';\nimport { useNodeContext } from '../../contexts/node';\nimport Confirm from '../confirm';\nimport Icons from './icons';\nimport Permission from '../permission';\n\nexport default function BlockletActions({ blocklet, onStart, onComplete, variant, ...rest }) {\n const history = useHistory();\n const node = useNodeContext();\n const [anchorEl, setAnchorEl] = useState(null);\n const [currentAction, setCurrentAction] = useState(null);\n const [loading, setLoading] = useState(false);\n const [confirmSetting, setConfirmSetting] = useState(null);\n const { t } = useContext(LocaleContext);\n\n const createHandler =\n (action, fn, requireUserConfirm = false) =>\n async () => {\n const onConfirm = async params => {\n onStart({ action, blocklet });\n setLoading(true);\n setCurrentAction(action);\n setConfirmSetting(null);\n try {\n const input = { did: blocklet.meta.did };\n if (action === 'remove') {\n input.keepData = params.removeType === 'keepData';\n }\n await fn({ input });\n if (action !== 'remove') {\n await sleep(1000); // just avoid user feeling so fast\n }\n\n if (action === 'reload') {\n Toast.success(t('blocklet.reloadSuccess'));\n }\n\n onComplete({ action, blocklet });\n } catch (err) {\n const errMsg = `Blocklet ${action} failed: ${formatError(err)}`;\n onComplete({ action, blocklet, error: new Error(errMsg) });\n } finally {\n setLoading(false);\n }\n };\n\n const onCancel = () => {\n setLoading(false);\n setConfirmSetting(null);\n };\n\n const confirmSettings = {\n stop: {\n title: `${t('common.stop')} ${blocklet.meta.title || blocklet.meta.name}`,\n description: t('blocklet.index.stopDescription'),\n confirm: t('blocklet.index.confirmStop'),\n cancel: t('common.cancel'),\n onConfirm,\n onCancel,\n },\n restart: {\n title: `${t('common.restart')} ${blocklet.meta.title || blocklet.meta.name}`,\n description: t('blocklet.index.restartDescription'),\n confirm: t('blocklet.index.confirmRestart'),\n cancel: t('common.cancel'),\n onConfirm,\n onCancel,\n },\n remove: {\n title: `${t('common.remove')} ${blocklet.meta.title || blocklet.meta.name}`,\n description: (params, setParams) => (\n <Typography component=\"div\">\n <Typography gutterBottom>{t('blocklet.index.removeDescription')}</Typography>\n <Typography gutterBottom>\n <b>{t('blocklet.index.deleteRoutingRuleDescription')}</b>\n </Typography>\n <RadioGroup\n name=\"removeType\"\n value={params.removeType}\n onChange={e => setParams({ ...params, removeType: e.target.value })}>\n <FormControlLabel value=\"keepData\" control={<Radio />} label={t('blocklet.index.removeKeepData')} />\n <FormControlLabel value=\"complete\" control={<Radio />} label={t('blocklet.index.removeComplete')} />\n </RadioGroup>\n </Typography>\n ),\n confirm: t('blocklet.index.confirmRemove'),\n cancel: t('common.cancel'),\n onConfirm,\n onCancel,\n params: { removeType: 'keepData' },\n },\n cancelDownload: {\n title: `${t('common.cancel')}`,\n description: t('blocklet.index.cancelDownloadDescription', {\n name: blocklet.meta.title || blocklet.meta.name,\n }),\n confirm: t('common.confirm'),\n cancel: t('common.cancel'),\n onConfirm,\n onCancel,\n },\n };\n\n if (requireUserConfirm) {\n setConfirmSetting(confirmSettings[action]);\n } else {\n await onConfirm();\n }\n };\n\n const open = Boolean(anchorEl);\n\n const onOpen = e => {\n try {\n e.stopPropagation();\n e.preventDefault();\n // eslint-disable-next-line no-empty\n } catch {}\n setAnchorEl(e.currentTarget);\n };\n\n const onClose = e => {\n try {\n e.stopPropagation();\n e.preventDefault();\n // eslint-disable-next-line no-empty\n } catch {}\n setAnchorEl(null);\n };\n\n const onAction = async (action, e) => {\n try {\n e.stopPropagation();\n e.preventDefault();\n // eslint-disable-next-line no-empty\n } catch {}\n setAnchorEl(null);\n if (typeof action.handler === 'function') {\n try {\n setLoading(true);\n setCurrentAction(action.action);\n await action.handler();\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error(`Blocklet ${action.name} failed: `, err);\n } finally {\n setLoading(false);\n }\n }\n };\n\n const removeAction = {\n action: 'remove',\n icon: Icons.Remove,\n name: t('common.remove'),\n handler: createHandler('remove', node.api.deleteBlocklet, true),\n disabled: blocklet.status === 'running',\n };\n\n const cancelDownloadAction = {\n action: 'remove',\n icon: Icons.Remove,\n name: t('common.cancel'),\n handler: createHandler('cancelDownload', node.api.cancelDownloadBlocklet, true),\n };\n\n const missingRequiredConfigs = getRequiredMissingConfigs(blocklet);\n\n const actions = [\n {\n action: 'start',\n icon: Icons.Start,\n name: t('common.start'),\n handler: createHandler('start', node.api.startBlocklet),\n disabled:\n blocklet.status === 'running' ||\n blocklet.status === 'corrupted' ||\n missingRequiredConfigs.length > 0 ||\n isDownloading(blocklet.status) ||\n blocklet.mode === BLOCKLET_MODES.DEVELOPMENT,\n },\n {\n action: 'stop',\n icon: Icons.Stop,\n name: t('common.stop'),\n handler: createHandler('stop', node.api.stopBlocklet, true),\n disabled: blocklet.status !== 'running' || blocklet.mode === BLOCKLET_MODES.DEVELOPMENT,\n },\n {\n action: 'restart',\n icon: Icons.Restart,\n name: t('common.restart'),\n handler: createHandler('restart', node.api.restartBlocklet, true),\n disabled: blocklet.status !== 'running' || blocklet.mode === BLOCKLET_MODES.DEVELOPMENT,\n },\n {\n action: 'reload',\n icon: Icons.Reload,\n name: t('common.reload'),\n handler: createHandler('reload', node.api.reloadBlocklet),\n disabled: blocklet.status !== 'running' || blocklet.mode === BLOCKLET_MODES.DEVELOPMENT,\n },\n\n isDownloading(blocklet.status) ? cancelDownloadAction : removeAction,\n\n {\n separator: true,\n },\n {\n onlyInMenu: true,\n action: 'config',\n icon: Icons.Config,\n name: t('common.config'),\n handler: () => {\n history.push(`/blocklets/${blocklet.meta.did}/configuration`);\n },\n disabled: isDownloading(blocklet.status),\n },\n isAuthServiceEnabled(blocklet)\n ? {\n onlyInMenu: true,\n action: 'team',\n icon: Icons.Group,\n name: t('common.manageTeam'),\n handler: () => {\n history.push(`/blocklets/${blocklet.meta.did}/members`);\n },\n disabled: isDownloading(blocklet.status),\n }\n : null,\n {\n onlyInMenu: true,\n action: 'log',\n icon: Icons.Log,\n name: t('common.log'),\n handler: () => {\n history.push(`/logs/blocklet-${blocklet.meta.did}`);\n },\n disabled: isDownloading(blocklet.status),\n },\n ].filter(Boolean);\n\n const inProgress = loading || isInProgress(blocklet.status);\n\n if (variant === 'menu') {\n return (\n <Div data-cy=\"blocklet-actions\">\n <Permission permission=\"mutate_blocklet\">\n {hasPermission => (\n <IconButton\n aria-label=\"more\"\n aria-controls=\"actions-menu\"\n aria-haspopup=\"true\"\n data-cy=\"trigger-blocklet-actions\"\n actions-blocklet-did={blocklet.meta.did}\n onClick={onOpen}\n size=\"small\"\n disabled={!hasPermission || (!isDownloading(blocklet.status) && Boolean(inProgress))}>\n <MoreVertIcon />\n </IconButton>\n )}\n </Permission>\n\n <Menu id=\"actions-menu\" anchorEl={anchorEl} keepMounted open={open} onClose={onClose} PaperProps={{}}>\n {missingRequiredConfigs.length > 0 && (\n <Alert style={{ maxWidth: '400px' }} severity=\"error\">\n {t('blocklet.config.user.missingRequired')}\n <br />\n <Link to={`/blocklets/${blocklet.meta.did}/configuration`}>{t('blocklet.config.user.gotoFix')}</Link>\n </Alert>\n )}\n {actions.map((action, i) => {\n if (action.separator) {\n // eslint-disable-next-line react/no-array-index-key\n return <Divider key={`separator-${i}`} />;\n }\n return (\n <MenuItem\n dense\n key={action.name}\n onClick={e => onAction(action, e)}\n disabled={action.disabled}\n data-cy={`${action.action}-blocklet`}>\n <ListItemIcon style={{ minWidth: 24 }}>\n <action.icon fontSize=\"small\" />\n </ListItemIcon>\n <ListItemText primary={action.name} />\n </MenuItem>\n );\n })}\n </Menu>\n {confirmSetting && (\n <Confirm\n title={confirmSetting.title}\n description={confirmSetting.description}\n confirm={confirmSetting.confirm}\n cancel={confirmSetting.cancel}\n params={confirmSetting.params}\n onConfirm={confirmSetting.onConfirm}\n onCancel={confirmSetting.onCancel}\n />\n )}\n </Div>\n );\n }\n\n return (\n <Div data-cy=\"blocklet-actions\" {...rest}>\n <ButtonGroup>\n {actions\n .filter(x => !x.separator && !x.onlyInMenu)\n .map(action => (\n <Button\n title={action.name}\n key={action.name}\n data-cy={`${action.action}-blocklet`}\n onClick={() => onAction(action)}\n disabled={Boolean(action.disabled) || Boolean(inProgress)}>\n {currentAction === action.action && Boolean(inProgress) ? <Spinner size={[16, 10]} /> : <action.icon />}\n <span className=\"blocklet-action-text\">{action.name}</span>\n </Button>\n ))}\n </ButtonGroup>\n {confirmSetting && (\n <Confirm\n title={confirmSetting.title}\n description={confirmSetting.description}\n confirm={confirmSetting.confirm}\n cancel={confirmSetting.cancel}\n params={confirmSetting.params}\n onConfirm={confirmSetting.onConfirm}\n onCancel={confirmSetting.onCancel}\n />\n )}\n </Div>\n );\n}\n\nBlockletActions.propTypes = {\n blocklet: PropTypes.object.isRequired,\n onStart: PropTypes.func.isRequired,\n onComplete: PropTypes.func.isRequired,\n variant: PropTypes.oneOf(['menu', 'group']),\n};\n\nBlockletActions.defaultProps = {\n variant: 'menu',\n};\n\nconst Div = styled.div`\n display: flex;\n align-items: center;\n\n @media (max-width: ${props => props.theme.breakpoints.values.sm}px) {\n .MuiButton-root {\n padding: 4px;\n font-size: 10px;\n }\n }\n`;\n","import React, { useContext, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport semver from 'semver';\n\nimport Spinner from '@arcblock/ux/lib/Spinner';\nimport Button from '@material-ui/core/IconButton';\nimport UpgradeIcon from '@material-ui/icons/ArrowUpward';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport Tag from '@arcblock/ux/lib/Tag';\nimport Toast from '@arcblock/ux/lib/Toast';\nimport { useSnackbar } from 'notistack';\n\nimport { LocaleContext } from '@arcblock/ux/lib/Locale/context';\n\nimport Confirm from '../confirm';\nimport { withPermission } from '../permission';\n\nimport { useNodeContext } from '../../contexts/node';\nimport { sleep, formatError, isInProgress } from '../../libs/util';\n\nconst BlockletVersion = ({ blocklet, checkUpgrade, hasPermission, ...rest }) => {\n const { info, api } = useNodeContext();\n const { t } = useContext(LocaleContext);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState('');\n const [newVersionBlocklet, setNewVersionBlocklet] = useState(null);\n const [confirmSetting, setConfirmSetting] = useState(null);\n const { enqueueSnackbar } = useSnackbar();\n\n useEffect(() => {\n setNewVersionBlocklet(null);\n if (checkUpgrade) {\n api\n .getLatestBlockletVersion({ input: { did: blocklet.meta.did, version: blocklet.meta.version } })\n .then(({ data }) => {\n if (data) {\n const { version, registryUrl } = data;\n if (version && semver.gt(version, blocklet.meta.version)) {\n setNewVersionBlocklet({ version, registryUrl });\n }\n }\n })\n // eslint-disable-next-line max-len\n .catch(err => console.error(`Failed to fetch latest version: ${blocklet.meta.name}, error: ${formatError(err)}`)); // prettier-ignore\n }\n }, [blocklet.meta.version, blocklet.source, blocklet.deployedFrom, info.blockletRegistry, checkUpgrade]); // eslint-disable-line\n\n const onCancel = () => {\n setLoading(false);\n setConfirmSetting(null);\n };\n\n const onConfirm = async () => {\n setLoading(true);\n\n try {\n const input = {\n did: blocklet.meta.did,\n version: newVersionBlocklet.version,\n registryUrl: newVersionBlocklet.registryUrl,\n };\n await sleep(2000);\n await api.upgradeBlocklet({ input });\n } catch (err) {\n enqueueSnackbar(`Blocklet upgrade failed: ${formatError(err)}`, { autoHideDuration: 5000, variant: 'error' });\n } finally {\n setLoading(false);\n setConfirmSetting(null);\n }\n };\n\n const setting = {\n title: `${t('common.upgrade')} ${t('common.blocklet')} ${blocklet.meta.title || blocklet.meta.name}`,\n description: t('blocklet.index.upgradeDescription'),\n confirm: t('blocklet.index.confirmUpgrade'),\n cancel: t('common.cancel'),\n onConfirm,\n onCancel,\n };\n\n if (hasPermission && newVersionBlocklet && !isInProgress(blocklet.status)) {\n return (\n <>\n <Tag {...rest}>{blocklet.meta.version}</Tag>\n <Tooltip title={t('common.updateAvailable', { version: newVersionBlocklet.version })}>\n <Button size=\"small\" style={{ marginLeft: 8 }} disabled={loading} onClick={() => setConfirmSetting(setting)}>\n {loading ? <Spinner size={[16, 10]} /> : <UpgradeIcon style={{ fontSize: 16, color: 'red' }} />}\n </Button>\n </Tooltip>\n {!!error && <Toast variant=\"error\" message={error} onClose={() => setError('')} />}\n {confirmSetting && (\n <Confirm\n title={confirmSetting.title}\n description={confirmSetting.description}\n confirm={confirmSetting.confirm}\n cancel={confirmSetting.cancel}\n params={confirmSetting.params}\n onConfirm={confirmSetting.onConfirm}\n onCancel={confirmSetting.onCancel}\n />\n )}\n </>\n );\n }\n\n return <Tag {...rest}>{blocklet.meta.version}</Tag>;\n};\n\nBlockletVersion.propTypes = {\n blocklet: PropTypes.object.isRequired,\n checkUpgrade: PropTypes.bool,\n hasPermission: PropTypes.bool,\n};\n\nBlockletVersion.defaultProps = {\n checkUpgrade: true,\n hasPermission: false,\n};\n\nexport default withPermission(BlockletVersion, 'mutate_blocklet');\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z\"\n}), 'ArrowUpward');\n\nexports.default = _default;","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Typography from '@material-ui/core/Typography';\n\nconst times = {\n oneSecond: 1,\n oneMin: 1 * 60,\n oneHour: 1 * 60 * 60,\n oneDay: 24 * 60 * 60,\n};\n\nexport const useUpTime = (initialTime, format) => {\n const [elapsedTime, setElapsedTime] = useState(0);\n\n const setDelayTimes = time => {\n if (time >= times.oneDay) {\n return times.oneDay;\n }\n\n if (time >= times.oneHour) {\n return times.oneHour;\n }\n\n if (time >= times.oneMin) {\n return times.oneMin;\n }\n\n return times.oneSecond;\n };\n\n const [delay, setDelay] = useState(setDelayTimes(initialTime / 1000));\n\n useEffect(() => {\n const timer = setInterval(() => {\n setElapsedTime(elapsedTime + delay);\n\n const delayTime = setDelayTimes(initialTime / 1000 + elapsedTime + delay);\n if (delay !== delayTime) {\n setDelay(delayTime);\n }\n }, delay * 1000);\n\n return () => clearInterval(timer);\n // eslint-disable-next-line\n }, [delay, elapsedTime]);\n\n useEffect(() => {\n setElapsedTime(0);\n setDelay(setDelayTimes(initialTime / 1000));\n }, [initialTime]); // eslint-disable-line\n\n return format(initialTime + elapsedTime * 1000);\n};\n\nexport default function UpTime({ initialTime, format, ...rest }) {\n const useFormat = useUpTime(initialTime, format);\n\n return <Typography {...rest}>{useFormat}</Typography>;\n}\n\nUpTime.propTypes = {\n initialTime: PropTypes.number.isRequired,\n format: PropTypes.func,\n};\n\nUpTime.defaultProps = {\n format: t => t,\n};\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport semver from 'semver';\n\nimport Dialog from '@arcblock/ux/lib/Dialog';\nimport Spinner from '@arcblock/ux/lib/Spinner';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport Typography from '@material-ui/core/Typography';\nimport TextField from '@material-ui/core/TextField';\nimport Stepper from '@material-ui/core/Stepper';\nimport Step from '@material-ui/core/Step';\nimport StepLabel from '@material-ui/core/StepLabel';\n\nimport InfoRow from '@arcblock/ux/lib/InfoRow';\nimport DidAddress from '@arcblock/did-connect/lib/Address';\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport Button from '@arcblock/ux/lib/Button';\nimport Alert from '@arcblock/ux/lib/Alert';\nimport Tag from '@arcblock/ux/lib/Tag';\n\nimport { useNodeContext } from '../../contexts/node';\nimport { formatError, formatPerson } from '../../libs/util';\n\nexport default function InstallFromUrl({ defaultUrl, onCancel, onSuccess, onError }) {\n const { api } = useNodeContext();\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState('');\n const { t } = useLocaleContext();\n\n const [url, setUrl] = useState(defaultUrl);\n const [activeStep, setActiveStep] = useState(defaultUrl ? 1 : 0);\n\n const [meta, setMeta] = useState({ dist: {} });\n const [existingMeta, setExistingMeta] = useState(null);\n\n const onGetMeta = async () => {\n setError(null);\n setLoading(true);\n\n try {\n const decoded = decodeURIComponent(url.trim());\n // validate\n try {\n new URL(decoded); // eslint-disable-line no-new\n } catch {\n throw new Error('Invalid URL');\n }\n\n // request\n const { meta: newer } = await api.getBlockletMetaFromUrl({ input: { url: decoded } });\n const { blocklet: existedBlocklet } = await api.getBlocklet({\n input: { did: newer.did, attachRuntimeInfo: false },\n });\n\n if (existedBlocklet && semver.gte(existedBlocklet.meta.version, newer.version)) {\n setExistingMeta(existedBlocklet.meta);\n setMeta(newer);\n } else {\n setMeta(newer);\n }\n if (!defaultUrl) {\n setActiveStep(1);\n }\n } catch (err) {\n console.error(err);\n const errMsg = `Blocklet Install failed: ${formatError(err)}`;\n setError(errMsg);\n onError(err);\n } finally {\n setLoading(false);\n }\n };\n\n const onInstall = async () => {\n setLoading(true);\n try {\n await api.installBlocklet({ input: { url: decodeURIComponent(url.trim()) } });\n onSuccess();\n } catch (err) {\n const errMsg = `Blocklet Install failed: ${formatError(err)}`;\n setError(errMsg);\n } finally {\n setLoading(false);\n }\n };\n\n useEffect(() => {\n if (defaultUrl) {\n onGetMeta();\n }\n }, [defaultUrl]); // eslint-disable-line\n\n const rows = [\n { name: t('common.name'), value: meta.title || meta.name },\n { name: t('common.version'), value: meta.version },\n { name: t('common.did'), value: <DidAddress>{meta.did}</DidAddress> },\n { name: t('common.author'), value: formatPerson(meta.author) },\n { name: t('blocklet.dist.downloadLink'), value: meta.dist.tarball },\n ];\n\n const getStep1Body = () => {\n if (loading) {\n return (\n <div style={{ textAlign: 'center' }}>\n <Spinner />\n </div>\n );\n }\n if (meta.did) {\n return (\n <div style={{ paddingLeft: '10%' }}>\n {rows.map(row => {\n if (row.name === t('common.did')) {\n return (\n <InfoRow\n valueComponent=\"div\"\n key={row.name}\n nameWidth={120}\n name={row.name}\n nameFormatter={() => t('common.did')}>\n {row.value}\n </InfoRow>\n );\n }\n return (\n <InfoRow valueComponent=\"div\" key={row.name} nameWidth={120} name={row.name}>\n {row.value}\n </InfoRow>\n );\n })}\n {existingMeta && (\n <Alert type=\"error\" variant=\"icon\" style={{ margin: '15px 0 0 -16px' }}>\n <div>\n {t('blocklet.fromUrl.existTipPrefix')}\n <Tag content={existingMeta.version} style={{ margin: '0 5px' }} />\n {t('blocklet.fromUrl.existTipSuffix')}\n </div>\n </Alert>\n )}\n </div>\n );\n }\n return null;\n };\n\n const steps = [\n {\n label: t('blocklet.fromUrl.step0'),\n body: (\n <Typography component=\"div\">\n <TextField\n label={t('blocklet.fromUrl.label')}\n autoComplete=\"off\"\n variant=\"outlined\"\n name=\"url\"\n data-cy=\"blocklet-url-input\"\n fullWidth\n autoFocus\n style={{ marginBottom: 32 }}\n helperText={t('blocklet.fromUrl.description')}\n value={url}\n onChange={e => {\n setError(null);\n setUrl(e.target.value);\n }}\n disabled={loading}\n onKeyPress={e => {\n if (e.key === 'Enter') {\n e.preventDefault();\n onGetMeta();\n }\n }}\n />\n </Typography>\n ),\n cancel: t('common.cancel'),\n confirm: t('common.next'),\n onCancel,\n onConfirm: onGetMeta,\n },\n {\n label: t('blocklet.fromUrl.step1'),\n body: getStep1Body(),\n cancel: defaultUrl ? t('common.cancel') : t('common.pre'),\n confirm: existingMeta ? t('common.confirm') : t('blocklet.fromUrl.confirm'),\n onCancel: () => {\n if (!defaultUrl) {\n setActiveStep(s => s - 1);\n } else {\n onCancel();\n }\n },\n onConfirm: () => {\n if (existingMeta) {\n onCancel();\n } else {\n onInstall();\n }\n },\n },\n ];\n const step = steps[activeStep];\n\n return (\n <Dialog\n title={t('blocklet.fromUrl.title')}\n fullWidth\n maxWidth=\"md\"\n onClose={() => step.onCancel()}\n showCloseButton={activeStep === 0}\n disableBackdropClick\n disableEscapeKeyDown\n open\n actions={\n <>\n {step.cancel && (\n <Button\n onClick={e => {\n e.stopPropagation();\n step.onCancel();\n }}\n color=\"default\"\n rounded\n size=\"small\">\n {step.cancel || t('common.cancel')}\n </Button>\n )}\n <Button\n onClick={e => {\n e.stopPropagation();\n step.onConfirm();\n }}\n color=\"primary\"\n size=\"small\"\n data-cy=\"install-blocklet-next-step\"\n disabled={loading || !url || error}\n variant=\"contained\"\n autoFocus\n rounded\n style={{ marginLeft: 8 }}>\n {loading && activeStep === 0 && <Spinner size={[16, 10]} />}\n {step.confirm}\n </Button>\n </>\n }>\n {!defaultUrl && (\n <Stepper alternativeLabel activeStep={activeStep}>\n {steps.map(({ label }) => (\n <Step key={label}>\n <StepLabel>{label}</StepLabel>\n </Step>\n ))}\n </Stepper>\n )}\n <DialogContentText component=\"div\">{step.body}</DialogContentText>\n {!!error && (\n <Alert severity=\"error\" style={{ width: '100%', marginTop: 8 }}>\n {error}\n </Alert>\n )}\n </Dialog>\n );\n}\n\nInstallFromUrl.propTypes = {\n defaultUrl: PropTypes.string,\n onCancel: PropTypes.func.isRequired,\n onSuccess: PropTypes.func.isRequired,\n onError: PropTypes.func,\n};\n\nInstallFromUrl.defaultProps = {\n onError: () => {},\n defaultUrl: '',\n};\n","/* eslint-disable react/jsx-one-expression-per-line */\nimport React, { useState, useRef } from 'react';\nimport { useHistory } from 'react-router-dom';\n\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport ClickAwayListener from '@material-ui/core/ClickAwayListener';\nimport Paper from '@material-ui/core/Paper';\nimport Popper from '@material-ui/core/Popper';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport MenuList from '@material-ui/core/MenuList';\nimport AddIcon from '@material-ui/icons/Add';\n\nimport Toast from '@arcblock/ux/lib/Toast';\nimport Button from '@arcblock/ux/lib/Button';\nimport ButtonGroup from '@arcblock/ux/lib/ButtonGroup';\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\n\nimport InstallFromUrl from './install-from-url';\n\nexport default function AddBlocklet() {\n const history = useHistory();\n const { t } = useLocaleContext();\n\n const [error, setError] = useState('');\n const [success, setSuccess] = useState('');\n const [open, setOpen] = useState(false);\n const [installSetting, setInstallSetting] = useState(null);\n\n const anchorRef = useRef(null);\n\n const onToggle = () => {\n setOpen(prevOpen => !prevOpen);\n };\n\n const onClose = e => {\n if (anchorRef.current && anchorRef.current.contains(e.target)) {\n return;\n }\n\n setOpen(false);\n };\n\n const closeInstallFromUrl = () => {\n setInstallSetting(null);\n };\n\n const openInstallFromUrl = () => {\n setInstallSetting({\n onCancel: () => {\n closeInstallFromUrl();\n setOpen(false);\n setInstallSetting(null);\n },\n onSuccess: () => {\n closeInstallFromUrl();\n },\n });\n };\n\n return (\n <>\n <ButtonGroup variant=\"contained\" size=\"small\" color=\"primary\" aria-label=\"split button\" rounded>\n <Button size=\"small\" onClick={() => history.push('/store')}>\n <AddIcon />\n {t('blocklet.installFromMarket')}\n </Button>\n <Button\n size=\"small\"\n aria-controls={open ? 'split-button-menu' : undefined}\n aria-expanded={open ? 'true' : undefined}\n ref={anchorRef}\n data-cy=\"open-install-menu\"\n onClick={onToggle}>\n <ArrowDropDownIcon />\n </Button>\n </ButtonGroup>\n <Popper\n open={open}\n anchorEl={anchorRef.current}\n role={undefined}\n placement=\"bottom-end\"\n disablePortal={false}\n className=\"popper\">\n <Paper>\n <ClickAwayListener onClickAway={onClose}>\n <MenuList id=\"split-button-menu\">\n <MenuItem data-cy=\"open-install-form\" onClick={() => openInstallFromUrl()}>\n {t('blocklet.installFromUrl')}\n </MenuItem>\n </MenuList>\n </ClickAwayListener>\n </Paper>\n </Popper>\n {!!error && <Toast variant=\"error\" message={error} onClose={() => setError('')} />}\n {!!success && <Toast variant=\"success\" duration={3000} message={success} onClose={() => setSuccess('')} />}\n {installSetting && <InstallFromUrl onCancel={installSetting.onCancel} onSuccess={installSetting.onSuccess} />}\n </>\n );\n}\n\nAddBlocklet.propTypes = {};\n\nAddBlocklet.defaultProps = {};\n","/* eslint-disable implicit-arrow-linebreak */\n/* eslint-disable object-curly-newline */\n/* eslint-disable react/jsx-one-expression-per-line */\nimport React, { useState, useContext, useEffect } from 'react';\nimport styled from 'styled-components';\nimport useLocalStorage from 'react-use/lib/useLocalStorage';\nimport { Link, useLocation, useHistory } from 'react-router-dom';\nimport prettyMs from 'pretty-ms-i18n';\nimport semver from 'semver';\n\nimport MaterialTable from 'material-table';\nimport Typography from '@material-ui/core/Typography';\nimport Spinner from '@arcblock/ux/lib/Spinner';\nimport Box from '@material-ui/core/Box';\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\n\nimport Alert from '@arcblock/ux/lib/Alert';\nimport Toast from '@arcblock/ux/lib/Toast';\nimport Button from '@arcblock/ux/lib/Button';\nimport { LocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport { getRequiredMissingConfigs } from '@blocklet/meta/lib/util';\n\nimport { useNodeContext } from '../../contexts/node';\nimport { useBlockletContext } from '../../contexts/blocklets';\nimport { formatError, formatToDatetime, formatLocale } from '../../libs/util';\n\nimport tableIcons from '../../components/table-icons';\nimport blockletIcons from '../../components/blocklet/icons';\nimport BlockletActions from '../../components/blocklet/actions';\nimport BlockletStatus from '../../components/blocklet/status';\nimport BlockletVersion from '../../components/blocklet/version';\nimport BlockletAvatar from '../../components/blocklet/avatar';\nimport BlockletInterface from '../../components/blocklet/interface';\nimport BlockletAdd from '../../components/blocklet/add';\nimport usePersistentSort from '../../hooks/persistent-sort';\nimport UpTime from '../../components/uptime';\n\nimport TableStyle from '../../components/table';\nimport InstallFromUrl from '../../components/blocklet/install-from-url';\nimport Permission from '../../components/permission';\n\nexport default function BlockletList() {\n const node = useNodeContext();\n const blocklets = useBlockletContext();\n const [error, setError] = useState('');\n const { t, locale } = useContext(LocaleContext);\n const [pageSize, setNewPageSize] = useLocalStorage('ps_blocklets_list', 10);\n\n const { sortDirections, onSortChange } = usePersistentSort('blocklet', ['asc', '', '', '', '', '', '']);\n const [installSetting, setInstallSetting] = useState(null);\n\n const onPageSizeChange = newPageSize => {\n setNewPageSize(newPageSize);\n };\n\n const onActionStart = () => {};\n const onActionComplete = async data => {\n if (data.error) {\n setError(data.error.message);\n return;\n }\n if (data.action === 'remove') {\n node.refresh({ silent: true });\n }\n };\n const isBreakpointsUpMd = useMediaQuery(theme => theme.breakpoints.up('md'));\n const isBreakpointsUpLg = useMediaQuery(theme => theme.breakpoints.up('lg'));\n\n // auto open installFromUrl\n const history = useHistory();\n const { pathname, search } = useLocation();\n useEffect(() => {\n const query = new URLSearchParams(search);\n const action = query.get('action');\n const metaUrl = query.get('url');\n if (action === 'install' && metaUrl) {\n setInstallSetting({\n defaultUrl: metaUrl,\n onCancel: () => history.push(pathname),\n onSuccess: () => history.push(pathname),\n });\n } else {\n setInstallSetting(null);\n }\n }, [search, setInstallSetting, history, pathname]);\n\n let content = null;\n const items = blocklets.data || [];\n\n if (blocklets.loading) {\n content = <Spinner />;\n } else if (blocklets.error) {\n content = (\n <Alert type=\"error\" variant=\"icon\">\n <div>\n {/* message */}\n {formatError(blocklets.error)}\n {/* retry */}\n <Button onClick={() => blocklets.refresh({ silent: false })}>\n <span style={{ color: '#44cdc6', textDecoration: 'underline' }}>{t('common.retry')}</span>\n </Button>\n </div>\n </Alert>\n );\n } else if (items.length > 0) {\n const dateFields = ['installedAt', 'startedAt', 'stoppedAt', 'createdAt'];\n const rows = items.map(x => {\n dateFields.forEach(f => {\n if (x[f]) {\n const date = new Date(x[f]);\n x[f] = date;\n }\n });\n\n return x;\n });\n\n /* eslint-disable indent */\n const columns = isBreakpointsUpMd\n ? [\n {\n title: t('common.name'),\n field: 'meta.title',\n width: 360,\n defaultSort: sortDirections[0],\n customSort: (a, b) => {\n const aSorProperty = a.meta.title || a.meta.name;\n const bSorProperty = b.meta.title || b.meta.name;\n\n if (aSorProperty.toLowerCase() > bSorProperty.toLowerCase()) {\n return 1;\n }\n\n if (aSorProperty.toLowerCase() < bSorProperty.toLowerCase()) {\n return -1;\n }\n\n return 0;\n },\n render: d => {\n const tab = getRequiredMissingConfigs(d).length > 0 ? 'configuration' : 'overview';\n return (\n <Link to={`/blocklets/${d.meta.did}/${tab}`}>\n <Typography component=\"strong\" variant=\"body1\" className=\"blocklet-name\">\n <BlockletAvatar blocklet={d} style={{ marginRight: 8 }} />\n {d.meta.title || d.meta.name}\n </Typography>\n </Link>\n );\n },\n },\n ...(isBreakpointsUpLg\n ? [\n {\n title: t('common.visit'),\n field: 'runtimeInfo.pid',\n sorting: false,\n defaultSort: sortDirections[1],\n render: d => <BlockletInterface blocklet={d} />,\n },\n ]\n : []),\n {\n title: t('common.version'),\n field: 'meta.version',\n width: 120,\n defaultSort: sortDirections[2],\n customSort: (a, b) => {\n const aVersion = a.meta.version;\n const bVersion = b.meta.version;\n\n if (semver.gt(aVersion, bVersion)) {\n return 1;\n }\n\n if (semver.lt(aVersion, bVersion)) {\n return -1;\n }\n\n return 0;\n },\n render: d => <BlockletVersion blocklet={d} />,\n },\n ...(isBreakpointsUpLg\n ? [\n {\n title: t('common.installedAt'),\n defaultSort: sortDirections[3],\n type: 'datetime',\n width: 200,\n customSort: (a, b) => {\n const aSortInstalledAt = +new Date(a.installedAt || a.createdAt);\n const bSortInstalledAt = +new Date(b.installedAt || b.createdAt);\n\n return aSortInstalledAt - bSortInstalledAt;\n },\n render: d => formatToDatetime(d.installedAt || d.createdAt),\n },\n ]\n : []),\n {\n title: t('common.uptime'),\n field: 'runtimeInfo.uptime',\n width: 120,\n defaultSort: sortDirections[4],\n customSort: (a, b) => {\n const aUptime = a.runtimeInfo ? a.runtimeInfo.uptime : 0;\n const bUptime = b.runtimeInfo ? b.runtimeInfo.uptime : 0;\n\n return bUptime - aUptime;\n },\n render: d => {\n // 只在 running 状态展示 uptime\n if (d.status === 'running' && d.runtimeInfo) {\n return (\n <UpTime\n initialTime={Number(d.runtimeInfo.uptime)}\n format={prettyT => {\n const options = { compact: true, locale: formatLocale(locale) };\n\n return prettyMs(prettyT, options);\n }}\n />\n );\n }\n\n return '';\n },\n },\n {\n title: t('common.status'),\n field: 'status',\n width: 120,\n defaultSort: sortDirections[5],\n render: d => <BlockletStatus status-blocklet-did={d.meta.did} key={d.meta.did} status={d.status} />,\n },\n {\n title: t('common.actions'),\n sorting: false,\n width: 90,\n render: d => (\n <BlockletActions\n key={d.meta.did}\n blocklet={d}\n variant=\"menu\"\n onStart={onActionStart}\n onComplete={onActionComplete}\n />\n ),\n },\n ]\n : [\n {\n title: t('common.name'),\n field: 'meta.title',\n defaultSort: sortDirections[0],\n customSort: (a, b) => {\n const aSorProperty = a.meta.title || a.meta.name;\n const bSorProperty = b.meta.title || b.meta.name;\n\n if (aSorProperty.toLowerCase() > bSorProperty.toLowerCase()) {\n return 1;\n }\n\n if (aSorProperty.toLowerCase() < bSorProperty.toLowerCase()) {\n return -1;\n }\n\n return 0;\n },\n render: d => {\n const tab = (d.configs || []).some(x => x.required && !x.value) ? 'configuration' : 'overview';\n return (\n <Box\n className=\"blocklet-item--mobile\"\n display=\"flex\"\n justifyContent=\"space-between\"\n alignItems=\"center\">\n <BlockletAvatar className=\"blocklet__avatar\" blocklet={d} size={isBreakpointsUpMd ? 40 : 60} />\n <Link className=\"blocklet__content\" to={`/blocklets/${d.meta.did}/${tab}`}>\n <Box display=\"flex\" justifyContent=\"space-between\" alignItems=\"flex-start\">\n <Typography component=\"strong\" variant=\"body1\" className=\"blocklet__name\">\n {d.meta.title || d.meta.name}\n </Typography>\n <BlockletActions\n key={d.meta.did}\n blocklet={d}\n variant=\"menu\"\n onStart={onActionStart}\n onComplete={onActionComplete}\n />\n </Box>\n <Typography component=\"small\" className=\"blocklet__addons\">\n <div>\n <BlockletVersion blocklet={d} />\n </div>\n <BlockletStatus status-blocklet-did={d.meta.did} key={d.meta.did} status={d.status} />\n </Typography>\n </Link>\n </Box>\n );\n },\n },\n ];\n /* eslint-enable indent */\n content = (\n <TableStyle className=\"blocklet-list\">\n <MaterialTable\n title={t('blocklet.index.tableTitle')}\n data={rows}\n icons={{ ...blockletIcons, ...tableIcons }}\n options={{\n header: isBreakpointsUpMd,\n emptyRowsWhenPaging: false,\n actionsColumnIndex: -1,\n tableLayout: 'auto',\n maxBodyHeight: '100%',\n pageSize,\n pageSizeOptions: [10, 20, 50, 100],\n }}\n localization={{\n toolbar: { searchPlaceholder: t('common.search') },\n body: {\n emptyDataSourceMessage: t('common.noData'),\n },\n }}\n onOrderChange={onSortChange}\n onChangeRowsPerPage={onPageSizeChange}\n columns={columns}\n />\n </TableStyle>\n );\n } else if (items.length === 0) {\n content = (\n <>\n <Alert type=\"warning\" variant=\"icon\">\n {t('blocklet.index.noBlocklet')}\n </Alert>\n </>\n );\n }\n\n return (\n <>\n <Main>\n <Typography component=\"h2\" variant=\"h4\" className=\"page-header\" color=\"textPrimary\">\n {t('common.blocklets')}\n <Permission permission=\"mutate_blocklet\">\n <BlockletAdd />\n </Permission>\n </Typography>\n {content}\n {!!error && <Toast variant=\"error\" message={error} onClose={() => setError(null)} />}\n </Main>\n\n {installSetting && (\n <InstallFromUrl\n defaultUrl={installSetting.defaultUrl}\n onCancel={installSetting.onCancel}\n onSuccess={installSetting.onSuccess}\n />\n )}\n </>\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 .blocklet-list {\n .blocklet-item--mobile {\n .blocklet__avatar {\n margin-right: -60px;\n }\n .blocklet__content {\n padding-left: 68px;\n flex: 1;\n display: flex;\n flex-direction: column;\n z-index: 1;\n }\n .blocklet__name {\n font-weight: bold;\n text-decoration: none;\n white-space: normal;\n word-break: break-all;\n }\n .blocklet__addons {\n display: flex;\n justify-content: space-between;\n margin-top: 5px;\n margin-bottom: -10px;\n }\n }\n .blocklet-name {\n font-weight: bold;\n text-decoration: underline;\n display: flex;\n align-items: center;\n white-space: normal;\n word-break: break-all;\n }\n\n .blocklet-interface {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n\n img {\n margin-right: 4px;\n }\n }\n\n .MuiToolbar-root {\n display: flex;\n }\n }\n`;\n","export { default } from './ButtonGroup';","import { useTheme } from '@material-ui/core/styles';\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\n\nfunction useMobileWidth() {\n const theme = useTheme();\n const isBreakpointsDownSm = useMediaQuery(theme.breakpoints.down('sm'));\n const minWidth = isBreakpointsDownSm ? 300 : theme.breakpoints.values.sm;\n return { minWidth };\n}\n\nexport default useMobileWidth;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Dialog from '@material-ui/core/Dialog';\nimport Spinner from '@arcblock/ux/lib/Spinner';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport Alert from '@material-ui/lab/Alert';\nimport useTheme from '@material-ui/core/styles/useTheme';\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\n\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport Button from '@arcblock/ux/lib/Button';\n\nimport { formatError } from '../libs/util';\nimport useMobileWidth from '../hooks/mobile-width';\n\nexport default function ConfirmDialog({\n title,\n description,\n showCancel,\n cancel,\n confirm,\n color,\n params: initialParams,\n onCancel,\n onConfirm,\n}) {\n const [params, setParams] = useState(initialParams);\n const [open, setOpen] = useState(true);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState('');\n const { t: changeLocale } = useLocaleContext();\n const theme = useTheme();\n\n const onCallback = async cb => {\n if (typeof cb === 'function') {\n setLoading(true);\n try {\n await cb(params);\n setOpen(false);\n } catch (err) {\n setError(formatError(err));\n console.error(err);\n } finally {\n setLoading(false);\n }\n } else {\n setOpen(false);\n }\n };\n\n const t = typeof title === 'function' ? title() : title;\n const d = typeof description === 'function' ? description(params, setParams, setError) : description;\n\n const isBreakpointsDownSm = useMediaQuery(theme.breakpoints.down('sm'));\n\n const handleClick = e => {\n e.stopPropagation();\n };\n const { minWidth } = useMobileWidth();\n\n return (\n <StyledDialog onClick={handleClick} fullScreen={isBreakpointsDownSm} open={open} style={{ minWidth }}>\n <DialogTitle>{t}</DialogTitle>\n <DialogContent style={{ minWidth }}>\n <DialogContentText component=\"div\">{d}</DialogContentText>\n {!!error && (\n <Alert severity=\"error\" style={{ width: '100%', marginTop: 8 }}>\n {error}\n </Alert>\n )}\n </DialogContent>\n <DialogActions className=\"delete-actions\" style={{ padding: '8px 24px 24px' }}>\n {showCancel && (\n <Button\n onClick={e => {\n e.stopPropagation();\n onCallback(onCancel);\n }}\n color=\"default\"\n data-cy=\"cancel-confirm-dialog\"\n rounded\n size=\"small\">\n {cancel || changeLocale('common.cancel')}\n </Button>\n )}\n <Button\n onClick={e => {\n e.stopPropagation();\n onCallback(onConfirm);\n }}\n color={color}\n size=\"small\"\n // eslint-disable-next-line no-underscore-dangle\n disabled={params.__disableConfirm || loading}\n variant=\"contained\"\n data-cy=\"submit-confirm-dialog\"\n autoFocus\n rounded>\n {loading && <Spinner size={[16, 10]} />}\n {confirm}\n </Button>\n </DialogActions>\n </StyledDialog>\n );\n}\n\nConfirmDialog.propTypes = {\n title: PropTypes.any.isRequired,\n description: PropTypes.any.isRequired, // can be a function that renders different content based on params\n showCancel: PropTypes.bool,\n cancel: PropTypes.string,\n color: PropTypes.string,\n confirm: PropTypes.string,\n params: PropTypes.object, // This object holds states managed in the dialog\n onCancel: PropTypes.func,\n onConfirm: PropTypes.func.isRequired,\n};\n\nConfirmDialog.defaultProps = {\n onCancel: () => {},\n showCancel: true,\n cancel: '',\n confirm: 'Confirm',\n color: 'danger',\n params: {},\n};\n\nconst StyledDialog = styled(Dialog)`\n .delete-actions .Mui-disabled {\n color: rgba(0, 0, 0, 0.26) !important;\n box-shadow: none;\n background-color: rgba(0, 0, 0, 0.12) !important;\n }\n`;\n","import Add from '@material-ui/icons/Add';\nimport Check from '@material-ui/icons/Check';\nimport Delete from '@material-ui/icons/Delete';\nimport Clear from '@material-ui/icons/Clear';\nimport Export from '@material-ui/icons/SaveAlt';\nimport Edit from '@material-ui/icons/Edit';\nimport Filter from '@material-ui/icons/Filter';\nimport FirstPage from '@material-ui/icons/FirstPage';\nimport LastPage from '@material-ui/icons/LastPage';\nimport NextPage from '@material-ui/icons/ChevronRight';\nimport PreviousPage from '@material-ui/icons/ChevronLeft';\nimport Search from '@material-ui/icons/Search';\nimport SortArrow from '@material-ui/icons/ArrowDropDown';\nimport ThirdStateCheck from '@material-ui/icons/Remove';\nimport ViewColumn from '@material-ui/icons/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","import styled from 'styled-components';\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 .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\nexport default TableStyle;\n","/* eslint-disable no-await-in-loop */\nconst get = require('lodash/get');\n\nconst forEachBlocklet = (blocklet, cb, { parallel = false, sync } = {}) => {\n // sync\n if (sync) {\n cb(blocklet);\n if (blocklet.children) {\n for (const child of blocklet.children) {\n cb(child);\n }\n }\n return null;\n }\n\n // serial\n if (!parallel) {\n return (async () => {\n await cb(blocklet);\n if (blocklet.children) {\n for (const child of blocklet.children) {\n await cb(child);\n }\n }\n return null;\n })();\n }\n\n // parallel\n const tasks = [];\n tasks.push(cb(blocklet));\n if (blocklet.children) {\n for (const child of blocklet.children) {\n tasks.push(cb(child));\n }\n }\n return Promise.all(tasks);\n};\n\nconst isAuthServiceEnabled = (blocklet) => {\n const interfaces = get(blocklet, 'meta.interfaces') || [];\n const isRootEnabled = interfaces.some((x) => {\n const services = get(x, 'services') || [];\n return services.some((s) => s.name === '@abtnode/auth-service');\n });\n\n if (isRootEnabled) {\n return true;\n }\n\n const children = get(blocklet, 'children') || [];\n for (const child of children) {\n if (isAuthServiceEnabled(child)) {\n return true;\n }\n }\n\n return false;\n};\n\nconst getRequiredMissingConfigs = (blocklet) => {\n const missingConfigs = [];\n const configs = blocklet.configs || [];\n configs.forEach((item) => {\n if (item.required && !item.value) {\n missingConfigs.push({ did: blocklet.meta.did, key: item.key });\n }\n });\n\n // eslint-disable-next-line no-restricted-syntax\n for (const child of blocklet.children || []) {\n const childConfigs = child.configs || [];\n // configProp does not exist in root blocklet config\n // or value of configProp in root blocklet config is empty.\n childConfigs.forEach((x) => {\n if (x.required && !x.value && !configs.some((y) => y.key === x.key && y.value)) {\n missingConfigs.push({ did: child.meta.did, key: x.key });\n }\n });\n }\n\n return missingConfigs;\n};\n\nconst isFreeBlocklet = (meta) => {\n if (!meta.payment) {\n return true;\n }\n\n const priceList = (meta.payment.price || []).map((x) => x.value || 0);\n return priceList.every((x) => x === 0);\n};\n\nconst wipeSensitiveData = (blocklet) => {\n if (!blocklet) {\n return blocklet;\n }\n\n forEachBlocklet(\n blocklet,\n (d) => {\n (d.configs || []).forEach((x) => {\n if (x.secure) {\n x.value = x.value ? '__encrypted__' : '';\n }\n });\n (d.environments || []).forEach((x) => {\n if (['BLOCKLET_APP_SK'].includes(x.key)) {\n x.value = '__encrypted__';\n }\n });\n\n delete blocklet.configObj;\n delete blocklet.environmentObj;\n },\n { sync: true }\n );\n\n return blocklet;\n};\n\nmodule.exports = {\n isFreeBlocklet,\n forEachBlocklet,\n isAuthServiceEnabled,\n getRequiredMissingConfigs,\n wipeSensitiveData,\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Spinner from '@arcblock/ux/lib/Spinner';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nimport { LocaleContext } from '@arcblock/ux/lib/Locale/context';\n\nimport Dot from '../dot';\nimport Tag from '../tag';\nimport { isInProgress } from '../../libs/util';\n\nconst colors = {\n yellow: '#FFCF71',\n grey: '#888888',\n};\n\nexport default function BlockletStatus({ status, variant, ...rest }) {\n const { t } = useContext(LocaleContext);\n\n const map = {\n added: 'primary',\n waiting: 'warning',\n downloading: 'warning',\n downloaded: 'primary',\n installing: 'warning',\n installed: 'primary',\n starting: 'warning',\n running: 'success',\n stopping: 'warning',\n stopped: 'reverse',\n error: 'error',\n upgrading: 'warning',\n restarting: 'warning',\n corrupted: 'error',\n };\n\n const colorMap = {\n added: colors.grey,\n waiting: colors.yellow,\n downloading: colors.yellow,\n downloaded: colors.grey,\n installing: colors.yellow,\n installed: colors.grey,\n starting: colors.yellow,\n running: 'success',\n stopping: colors.yellow,\n stopped: colors.grey,\n error: 'error',\n upgrading: colors.yellow,\n restarting: colors.yellow,\n corrupted: 'error',\n };\n\n const inProgress = isInProgress(status);\n\n const statusTxt = t(`blocklet.status.${status}`);\n\n if (variant === 'dot') {\n return (\n <Tooltip title={t('blocklet.statusTip', { status: t(`blocklet.status.${status}`) })}>\n <Dot color={colorMap[status]} {...rest} />\n </Tooltip>\n );\n }\n\n return (\n <Tag type={map[status]} style={{ borderRadius: 5, border: '1px solid #ccc' }} {...rest}>\n {inProgress && <Spinner size={[12, 6]} color=\"inherit\" style={{ marginRight: 5 }} />}\n {statusTxt}\n </Tag>\n );\n}\n\nBlockletStatus.propTypes = {\n status: PropTypes.string.isRequired,\n variant: PropTypes.oneOf(['dot', 'tag']),\n};\n\nBlockletStatus.defaultProps = {\n variant: 'tag',\n};\n","import styled from 'styled-components';\n\nconst color = {\n success: '#3ab39d',\n error: '#D0021B',\n};\n\nconst defaultSize = '10px';\n\nconst Dot = styled.div`\n display: inline-block;\n width: ${props => props.size || defaultSize};\n height: ${props => props.size || defaultSize};\n background: ${props => color[props.color] || props.color || color.success};\n border-radius: 100%;\n`;\n\nexport default Dot;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _styledComponents = _interopRequireDefault(require(\"styled-components\"));\n\nvar _ButtonGroup = _interopRequireDefault(require(\"@material-ui/core/ButtonGroup\"));\n\nvar _wrap = _interopRequireDefault(require(\"../Button/wrap\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst sizes = {\n small: 16,\n medium: 18,\n large: 20\n};\n\nconst getBorderRadius = size => sizes[size || 'medium'];\n\nconst StyledButtonGroup = (0, _styledComponents.default)(_ButtonGroup.default).withConfig({\n displayName: \"ButtonGroup__StyledButtonGroup\",\n componentId: \"sc-1popzk9-0\"\n})([\".MuiButton-root:first-of-type{border-radius:\", \"px 0 0 \", \"px;}.MuiButton-root:last-of-type{border-radius:0 \", \"px \", \"px 0;}\"], props => getBorderRadius(props.size), props => getBorderRadius(props.size), props => getBorderRadius(props.size), props => getBorderRadius(props.size));\n\nvar _default = (0, _wrap.default)(StyledButtonGroup);\n\nexports.default = _default;","const langs = new Map();\n\nconst registerLang = (locale, obj) => {\n langs.set(locale, obj);\n};\n\nconst getLang = (locale = 'en_US') => langs.get(locale) || langs.get('en_US');\n\nmodule.exports = {\n registerLang,\n getLang,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport OriTag from '@arcblock/ux/lib/Tag';\n\nexport default function Tag({ children, ...rest }) {\n return (\n <OriTag style={{ borderRadius: 5, border: '1px solid #ccc' }} {...rest}>\n {children}\n </OriTag>\n );\n}\n\nTag.propTypes = {\n children: PropTypes.any.isRequired,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport joinURL from 'url-join';\n\nimport Avatar from '@material-ui/core/Avatar';\n\nimport { useNodeContext } from '../../contexts/node';\nimport { formatRegistryLogoPath } from '../../libs/util';\n\nexport default function BlockletAvatar({ blocklet, style, size, ...rest }) {\n const node = useNodeContext();\n let logoUrl = joinURL(node.prefix, 'blocklet.png');\n\n if (!blocklet.deployedFrom) {\n blocklet.deployedFrom = node.info.blockletRegistry;\n }\n\n if (blocklet.source === 'registry' && blocklet.meta.logo) {\n logoUrl = joinURL(blocklet.deployedFrom, formatRegistryLogoPath(blocklet.meta.did, blocklet.meta.logo));\n } else {\n const prefix = window.env.apiPrefix || '/';\n logoUrl = joinURL(prefix, `/blocklet/logo/${blocklet.meta.did}`);\n }\n\n const setFallBackUrl = ev => {\n ev.target.src = `${node.prefix}/blocklet.png`;\n };\n\n return (\n <Avatar\n style={Object.assign(\n { backgroundColor: 'transparent', border: '2px solid #ddd', width: size, height: size },\n style\n )}\n {...rest}>\n <img\n src={logoUrl}\n onError={setFallBackUrl}\n alt={blocklet.meta.name}\n style={{ width: size, backgroundColor: '#fff' }}\n />\n </Avatar>\n );\n}\n\nBlockletAvatar.propTypes = {\n blocklet: PropTypes.object.isRequired,\n style: PropTypes.object,\n size: PropTypes.number,\n};\n\nBlockletAvatar.defaultProps = {\n style: {},\n size: 40,\n};\n","import Remove from '@material-ui/icons/Delete';\nimport Start from '@material-ui/icons/PlayArrow';\nimport Stop from '@material-ui/icons/Stop';\nimport Restart from '@material-ui/icons/Replay';\nimport Reload from '@material-ui/icons/Autorenew';\nimport Config from '@material-ui/icons/Settings';\nimport Log from '@material-ui/icons/Receipt';\nimport Group from '@material-ui/icons/Group';\n\nexport default {\n Start,\n Stop,\n Restart,\n Reload,\n Remove,\n Config,\n Log,\n Group,\n};\n","/* eslint-disable no-use-before-define */\nimport useLocalStorage from 'react-use/lib/useLocalStorage';\n\nexport default function usePersistentSort(name, initialDirections) {\n const [sortDirections, setSortDirections] = useLocalStorage(`ps_${name}`, initialDirections);\n\n const onSortChange = (columnIndex, directionValue) => {\n const newSortDirections = directionValue ? new Array(initialDirections.length).fill('') : [...initialDirections];\n\n if (columnIndex > -1) {\n newSortDirections[columnIndex] = directionValue;\n }\n\n setSortDirections(newSortDirections);\n };\n\n return {\n sortDirections, // 当前的排序\n onSortChange, // 给外部的回调,可以更新内部的 sort\n };\n}\n"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(this["webpackJsonp@abtnode/webapp"]=this["webpackJsonp@abtnode/webapp"]||[]).push([[19],{1007:function(e,t){e.exports={}},1045:function(e,t,n){"use strict";n.d(t,"a",(function(){return h}));var a,r=n(32),c=n(13),o=n(117),i=n(0),l=n.n(i),s=n(14),u=n(180),m=n(388),p=n(448),d=n(1117),f=n.n(d),b=n(920),v=n(884),g=["actions"],E=["icon","text","onClick","disabled"];function h(e){var t=e.actions,n=Object(o.a)(e,g),a=Object(i.useState)(null),r=Object(c.a)(a,2),s=r[0],d=r[1],h=Boolean(s),x=function(e){try{e.stopPropagation(),e.preventDefault()}catch(t){}d(null)};return l.a.createElement(O,n,l.a.createElement(u.a,{"aria-label":"more","aria-controls":"actions-menu","aria-haspopup":"true","data-cy":"actions-menu-icon",onClick:function(e){try{e.stopPropagation(),e.preventDefault()}catch(t){}d(e.currentTarget)}},l.a.createElement(f.a,null)),l.a.createElement(m.a,{id:"actions-menu","data-cy":"actions-menu",anchorEl:s,keepMounted:!0,open:h,onClose:x,PaperProps:{}},t.map((function(e){if("function"===typeof e)return e({close:x});var t=e.icon,n=e.text,a=e.onClick,r=e.disabled,c=void 0!==r&&r,i=Object(o.a)(e,E);return l.a.createElement(p.a,Object.assign({},i,{disabled:c,dense:!0,onClick:function(e){x(),a(e)}}),l.a.createElement(b.a,{style:{minWidth:24,marginRight:8}},t),l.a.createElement(v.a,{primary:n}))}))))}h.defaultProps={actions:[]};var O=s.default.div(a||(a=Object(r.a)([""])))},1048:function(e,t,n){"use strict";n.d(t,"a",(function(){return p}));var a,r=n(32),c=n(117),o=n(0),i=n.n(o),l=n(14),s=n(196),u=n.n(s),m=["passport","onDelete"];function p(e){var t=e.passport,n=e.onDelete,a=Object(c.a)(e,m);return i.a.createElement(d,a,t.title||t.name," ",!!n&&i.a.createElement(u.a,{"data-cy":"delete-issuance",className:"delete",onClick:n}))}p.defaultProps={onDelete:null};var d=l.default.span(a||(a=Object(r.a)(["\n display: inline-flex;\n padding: 2px 8px;\n background: #4f6af6;\n border-radius: 4px;\n font-weight: 500;\n font-size: 16px;\n line-height: 22px;\n color: #fff;\n align-items: center;\n .delete {\n font-size: 1em;\n margin-left: 6px;\n cursor: pointer;\n }\n"])))},1076:function(e,t,n){"use strict";n.d(t,"a",(function(){return v}));var a=n(13),r=n(0),c=n.n(r),o=n(968),i=n.n(o),l=n(326),s=n(98),u=n(246),m=n(325),p=n(975),d=n.n(p),f=n(102),b=n.n(f);function v(e){var t=e.actions,n=e.children,o=Object(r.useRef)(null),p=Object(r.useState)(!1),f=Object(a.a)(p,2),v=f[0],g=f[1];return c.a.createElement(d.a,{variant:"contained",color:"primary","aria-label":"split button",rounded:!0},n,c.a.createElement(b.a,{variant:"outlined",color:"primary",size:"small","aria-controls":v?"split-button-menu":void 0,"aria-expanded":v?"true":void 0,ref:o,"data-cy":"trusted-issuers-more",onClick:function(){g((function(e){return!e}))}},c.a.createElement(i.a,null)),c.a.createElement(l.a,{open:v,anchorEl:o.current,role:void 0,placement:"bottom-end",disablePortal:!1,className:"popper"},c.a.createElement(s.a,null,c.a.createElement(u.a,{onClickAway:function(e){o.current&&o.current.contains(e.target)||g(!1)}},c.a.createElement(m.a,{id:"split-button-menu"},t.map((function(e){return e})))))))}v.defaultProps={actions:[],children:null}},1177:function(e,t,n){"use strict";n.d(t,"a",(function(){return ct}));var a=n(32),r=n(57),c=n(13),o=n(0),i=n.n(o),l=n(14),s=n(91),u=n.n(s),m=n(939),p=n.n(m),d=n(451),f=n(296),b=n(938),v=n.n(b),g=n(344),E=n.n(g),h=n(372),O=n.n(h),x=n(22),j=n(102),y=n.n(j),C=n(1121),k=n.n(C),w=n(997),S=n.n(w),P=n(342),D=n(941),I=n(1247),N=n(954),z=n.n(N);function L(e){var t=e.list,n=e.rowsPerPage,a=e.children,r=e.empty,l=Object(x.useLocaleContext)().t,s=Object(o.useState)(1),u=Object(c.a)(s,2),m=u[0],p=u[1];Object(o.useEffect)((function(){p(1)}),[t.length]);var d=Math.ceil(t.length/n),b=(m-1)*n,v=t.slice(b,b+n),g=void 0!==r?r:i.a.createElement(z.a,null,l("common.empty"));return i.a.createElement(i.a.Fragment,null,a(v),!t.length&&g,!!t.length&&d>1&&i.a.createElement(f.a,{mt:2,display:"flex",justifyContent:"flex-end"},i.a.createElement(I.a,{count:d,page:m,onChange:function(e,t){p(t)}})))}L.defaultProps={list:[],rowsPerPage:10,children:function(){return null},empty:void 0};var T,R=n(337),W=n(979),M=n(980),B=n(11),F=n.n(B),A=n(19),_=n(50),U=n.n(_),H=n(915),G=n(63),K=n(448),V=n(568),q=n(894),J=n(560),Q=n(323),Z=n(339),X=n.n(Z),Y=n(946),$=n(29),ee=n(64);function te(e){var t=e.teamDid,n=e.roles,a=e.onCancel,r=e.onSuccess,l=e.onError,s=e.authInfo,u=Object($.c)().api,m=Object(o.useState)(!1),d=Object(c.a)(m,2),f=d[0],b=d[1],v=Object(o.useState)(""),g=Object(c.a)(v,2),E=g[0],h=g[1],O=Object(x.useLocaleContext)().t,j=Object(o.useState)(0),C=Object(c.a)(j,2),k=C[0],w=C[1],S=Object(o.useState)(""),P=Object(c.a)(S,2),D=P[0],I=P[1],N=Object(o.useState)(""),z=Object(c.a)(N,2),L=z[0],T=z[1],R=Object(o.useState)(""),W=Object(c.a)(R,2),M=W[0],B=W[1],_=function(){var e=Object(A.a)(F.a.mark((function e(){var n,a,r,c;return F.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(L){e.next=3;break}return h(O("team.member.error.passportEmpty")),e.abrupt("return");case 3:return n=M.trim(),h(null),b(!0),e.prev=6,e.next=9,u.createInvitation({input:{teamDid:t,role:L,remark:n}});case 9:a=e.sent,r=a.inviteInfo,I(r),w(1),e.next=20;break;case 15:e.prev=15,e.t0=e.catch(6),c=Object(ee.g)(e.t0),h(c),l(e.t0);case 20:return e.prev=20,b(!1),e.finish(20);case 23:case"end":return e.stop()}}),e,null,[[6,15,20,23]])})));return function(){return e.apply(this,arguments)}}(),Z=[{body:i.a.createElement(G.a,{component:"div"},i.a.createElement(Q.a,{style:{width:"100%"},variant:"outlined"},i.a.createElement(J.a,null,O("common.passport")),i.a.createElement(V.a,{"data-cy":"invite-member-select-role",value:L,onChange:function(e){h(null),T(e.target.value)},fullWidth:!0,label:O("common.passport"),disabled:f,onKeyPress:function(e){"Enter"===e.key&&(e.preventDefault(),_())}},n.filter((function(e){return"owner"!==e.name})).map((function(e){return i.a.createElement(K.a,{key:e.name,value:e.name,"data-cy":"invite-member-select-option-".concat(e.name)},i.a.createElement("span",null,e.title||e.name))})))),i.a.createElement("div",{style:{marginTop:20,marginBottom:10}}),i.a.createElement(q.a,{label:O("common.remark"),autoComplete:"off",variant:"outlined",fullWidth:!0,style:{marginBottom:8},value:M,onChange:function(e){h(null),B(e.target.value)},disabled:f,"data-cy":"invite-member-input-remark"}),i.a.createElement("div",{style:{marginTop:20,marginBottom:10}})),cancel:O("common.cancel"),confirm:O("team.member.inviteDialog.createInviteLink"),onCancel:a,onConfirm:_},{body:function(){var e=Object(ee.u)({inviteId:D.inviteId,endpoint:s.endpoint});return i.a.createElement("div",null,i.a.createElement(ae,null,O("team.member.inviteDialog.createSuccessTip",{expireDate:Object(ee.p)(D.expireDate)})),i.a.createElement("div",{style:{marginTop:"40px"}}),i.a.createElement(Y.a,null,e))},confirm:O("common.confirm"),onConfirm:r}][k];return i.a.createElement(p.a,{title:O("common.invite"),fullWidth:!0,open:!0,showCloseButton:!1,actions:i.a.createElement(i.a.Fragment,null,Z.cancel&&i.a.createElement(y.a,{onClick:Z.onCancel,color:"default",rounded:!0,size:"small"},Z.cancel),i.a.createElement(y.a,{onClick:Z.onConfirm,color:"primary",size:"small",disabled:f||!L,variant:"contained",autoFocus:!0,rounded:!0},f&&i.a.createElement(U.a,{size:[16,10]}),Z.confirm))},i.a.createElement(H.a,{component:"div"},"function"===typeof Z.body?Z.body():Z.body),!!E&&i.a.createElement(X.a,{type:"error",variant:"icon"},E))}te.defaultProps={onError:function(){},roles:[],authInfo:{}};var ne,ae=l.default.div(T||(T=Object(a.a)(["\n font-size: 16px;\n font-weight: bold;\n"]))),re=n(78),ce=n(897),oe=n(973),ie=n.n(oe),le=n(971),se=n.n(le),ue=n(1046),me=n.n(ue),pe=n(1047),de=n.n(pe),fe=n(23),be=n(931),ve=n(1048);function ge(e){var t=e.issuances,n=e.teamDid,a=e.onRefresh,r=Object($.c)().api,l=Object(o.useContext)(x.LocaleContext).t,s=Object(P.b)().findInterfaceWithAuthService,u=Object(o.useState)(null),m=Object(c.a)(u,2),p=m[0],d=m[1],b=Object(o.useState)(!1),v=Object(c.a)(b,2),g=v[0],E=v[1],h=Object(re.c)().enqueueSnackbar,O=function(){var e=Object(A.a)(F.a.mark((function e(t){var c;return F.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(c=t.id,!g){e.next=3;break}return e.abrupt("return");case 3:return E(!0),e.prev=4,e.next=7,r.deletePassportIssuance({input:{teamDid:n,sessionId:c}});case 7:a(),e.next=13;break;case 10:e.prev=10,e.t0=e.catch(4),h(e.t0.message,{autoHideDuration:5e3,variant:"error"});case 13:return e.prev=13,E(!1),d(null),e.finish(13);case 17:case"end":return e.stop()}}),e,null,[[4,10,13,17]])})));return function(t){return e.apply(this,arguments)}}(),j=function(){E(!1),d(null)},y=s(n),C=function(e){return y?Object(ee.v)({id:e.id,endpoint:y.endpoint}):""},k=function(e){var t=e.data;return i.a.createElement("div",{className:"issuance"},i.a.createElement(f.a,{display:"flex",justifyContent:"space-between"},i.a.createElement(R.a,{permission:"mutate_team"},(function(e){return e?i.a.createElement(ve.a,{passport:{title:t.title,name:t.name},onDelete:function(){return d({title:l("team.passport.issuance.delete.title"),description:l("team.passport.issuance.delete.description",{link:C(t)}),confirm:l("common.delConfirm"),cancel:l("common.cancel"),onConfirm:function(){O(t)},onCancel:j})}}):i.a.createElement(ve.a,{passport:{title:t.title,name:t.name}})})),i.a.createElement("div",{style:{color:"#999"}},l("common.expires"),":\xa0",Object(ee.p)(t.expireDate))),i.a.createElement(f.a,{mt:2},i.a.createElement(Y.a,null,C(t))))};return i.a.createElement(Ee,null,t.map((function(e){return i.a.createElement(k,{data:e})})),p&&i.a.createElement(be.a,{title:p.title,description:p.description,confirm:p.confirm,cancel:p.cancel,params:p.params,onConfirm:p.onConfirm,onCancel:p.onCancel}))}var Ee=l.default.div(ne||(ne=Object(a.a)(["\n .MuiTableHead-root {\n display: none;\n }\n .issuance {\n padding: 16px 0;\n border-bottom: 1px solid #f0f0f0;\n .MuiTypography-root {\n display: inline-block;\n width: 100%;\n background: #f3f3f3;\n border-radius: 4px;\n padding-top: 6px;\n padding-bottom: 6px;\n }\n }\n"])));ge.defaultProps={issuances:[],onRefresh:function(){}};var he,Oe=n(532),xe=n.n(Oe),je=n(976),ye=n.n(je),Ce=n(1123),ke=n.n(Ce),we=n(1122),Se=n.n(we),Pe=n(15),De=n(53);function Ie(e){var t=e.teamDid,n=e.ownerDid,a=e.roles,r=e.onCancel,l=e.onSuccess,s=e.onError,u=Object($.c)().api,m=Object(o.useState)(!1),d=Object(c.a)(m,2),f=d[0],b=d[1],v=Object(o.useState)(""),g=Object(c.a)(v,2),E=g[0],h=g[1],O=Object(x.useLocaleContext)().t,j=Object(o.useState)(""),C=Object(c.a)(j,2),k=C[0],w=C[1],S=function(){var e=Object(A.a)(F.a.mark((function e(){var a;return F.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(k){e.next=3;break}return h(O("team.member.error.passportEmpty")),e.abrupt("return");case 3:return h(null),b(!0),e.prev=5,e.next=8,u.createPassportIssuance({input:{teamDid:t,name:k,ownerDid:n}});case 8:l(),e.next=16;break;case 11:e.prev=11,e.t0=e.catch(5),a=Object(ee.g)(e.t0),h(a),s(e.t0);case 16:return e.prev=16,b(!1),e.finish(16);case 19:case"end":return e.stop()}}),e,null,[[5,11,16,19]])})));return function(){return e.apply(this,arguments)}}();return i.a.createElement(p.a,{title:O("team.passport.issue"),fullWidth:!0,open:!0,onClick:function(e){return e.stopPropagation()},onClose:r,disableBackdropClick:!0,disableEscapeKeyDown:!0,PaperProps:{style:{minHeight:"auto"}},actions:i.a.createElement(i.a.Fragment,null,i.a.createElement(y.a,{onClick:r,color:"default",rounded:!0,size:"small"},O("common.cancel")),i.a.createElement(y.a,{onClick:S,color:"primary",size:"small",disabled:f||!k,variant:"contained",autoFocus:!0,"data-cy":"issue-passport-create-btn",rounded:!0},f&&i.a.createElement(U.a,{size:[16,10]}),O("team.passport.issuance.create.title")))},i.a.createElement(H.a,{component:"div"},i.a.createElement(G.a,{component:"div"},i.a.createElement(Q.a,{style:{width:"100%"},variant:"outlined"},i.a.createElement(J.a,null,O("common.passport")),i.a.createElement(V.a,{"data-cy":"issue-passport-select-passport",value:k,onChange:function(e){h(null),w(e.target.value)},fullWidth:!0,label:O("common.passport"),disabled:f,onKeyPress:function(e){"Enter"===e.key&&(e.preventDefault(),S())}},a.filter((function(e){return"owner"!==e.name})).map((function(e){return i.a.createElement(K.a,{key:e.name,value:e.name,"data-cy":"issue-passport-select-option-".concat(e.name)},i.a.createElement("span",null,e.title||e.name))})))))),!!E&&i.a.createElement(X.a,{type:"error",variant:"icon"},E))}Ie.defaultProps={onError:function(){},roles:[]};var Ne=function(e){var t=e.action,n=e.passport,a=Object(x.useLocaleContext)().t,r=Object(D.b)().roles.find((function(e){return e.name===n.role}));return i.a.createElement("div",null,i.a.createElement("div",null,a("enable"===t?"team.member.enablePassportDescription":"team.member.revokePassportDescription")),r&&i.a.createElement(f.a,{mt:3,fontWeight:"bold"},a("team.member.passportPermissionTitle")),r&&i.a.createElement(f.a,{mt:1},r.description))};function ze(e){var t=e.user,n=e.onCreate,a=Object(x.useLocaleContext)().t,l=Object(De.c)().session,s=Object(D.b)(),u=s.roles,m=s.teamDid,p=s.teamIssuerDid,b=s.refresh,g=s.enablePassportIssuance,E=s.trustedPassports,h=Object($.c)().api,O=Object(re.c)().enqueueSnackbar,j=Object(o.useState)(!1),C=Object(c.a)(j,2),k=C[0],w=C[1],P=Object(o.useState)(null),I=Object(c.a)(P,2),N=I[0],L=I[1],T=Object(o.useState)(!1),B=Object(c.a)(T,2),_=B[0],U=B[1],H=Object(o.useState)(""),G=Object(c.a)(H,2),K=G[0],V=G[1],q=(xe()(t,"passports")||[]).map((function(e){return Object(r.a)(Object(r.a)({},e),{},{revoked:e.status===Pe.PASSPORT_STATUS.REVOKED})})),J=function(){var e=Object(A.a)(F.a.mark((function e(n){var a;return F.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!k){e.next=2;break}return e.abrupt("return");case 2:return w(!0),e.prev=3,a=n.status===Pe.PASSPORT_STATUS.REVOKED?"enableUserPassport":"revokeUserPassport",e.next=7,h[a]({input:{teamDid:m,userDid:t.did,passportId:n.id}});case 7:b(),e.next=13;break;case 10:e.prev=10,e.t0=e.catch(3),O(Object(ee.g)(e.t0),{autoHideDuration:5e3,variant:"error"});case 13:return e.prev=13,w(!1),L(null),e.finish(13);case 17:case"end":return e.stop()}}),e,null,[[3,10,13,17]])})));return function(t){return e.apply(this,arguments)}}(),Q=function(e,n){return t.did===l.user.did&&l.user.passportId&&l.user.passportId===n.id?{revokable:!1,message:a("team.passport.shouldNotDeleteCurrent")}:e?m===n.issuer.id&&"owner"===n.name?{revokable:!1,message:a("team.passport.noPermission")}:{revokable:!0}:{revokable:!1,message:a("team.passport.noPermission")}},Z=q.filter((function(e){return!K||e.title.includes(K)||e.name.includes(K)}));return i.a.createElement(We,null,i.a.createElement(W.a,null,i.a.createElement("div",{className:"left"},i.a.createElement(M.a,{placeholder:a("team.passport.search"),value:K,onChange:function(e){return V(e.target.value)}})),i.a.createElement("div",{className:"right"},g&&!!t.approved&&i.a.createElement(R.a,{permission:"mutate_team"},i.a.createElement(y.a,{variant:"contained",rounded:!0,color:"primary","data-cy":"issue-passport",onClick:function(){return U(!0)}},i.a.createElement(v.a,{style:{fontSize:16,marginRight:4}}),a("team.passport.issue"))))),i.a.createElement(f.a,null,Z.map((function(e){return i.a.createElement(R.a,{permission:"mutate_team"},(function(t){return i.a.createElement(f.a,{className:"passport-item",display:"flex",justifyContent:"space-between",alignItems:"center",mt:3},i.a.createElement(f.a,{display:"flex",alignItems:"center"},i.a.createElement("div",null,i.a.createElement("img",{style:{width:120},src:Object(ee.d)({issuer:e.issuer&&e.issuer.name,issuerDid:e.issuer&&e.issuer.id,title:e.title||e.name}),alt:e.title})),i.a.createElement("div",{className:"body"},i.a.createElement(f.a,{className:"title",display:"flex",alignItems:"center"},ye()(e.title),i.a.createElement("div",{className:"status-icons"},!!p&&e.issuer.id!==p&&i.a.createElement(S.a,null),e.revoked&&i.a.createElement(Se.a,null))),!!p&&e.issuer.id!==p&&i.a.createElement("div",{className:"tip"},e.issuer.id!==p&&!E.some((function(t){return t.issuerDid===e.issuer.id}))&&i.a.createElement(d.a,{title:a("team.passport.notTrustedIssuerTip")},i.a.createElement(f.a,{component:ke.a,style:{fontSize:"1.3em"},color:"error.main",mr:.5})),i.a.createElement("span",null,a("team.passport.issueBy",{name:e.issuer.name}))))),i.a.createElement(f.a,null,Q(t,e).revokable?i.a.createElement(y.a,{variant:"outlined",rounded:!0,color:e.revoked?"primary":"secondary",onClick:function(){return(t=e).status===Pe.PASSPORT_STATUS.REVOKED?L({title:a("team.member.enablePassport"),description:i.a.createElement(Ne,{action:"enable",passport:t}),confirm:a("common.enable"),cancel:a("common.cancel"),onConfirm:function(){J(t)},onCancel:function(){w(!1),L(null)},color:"primary"}):L({title:a("team.member.revokePassport"),description:i.a.createElement(Ne,{action:"revoke",passport:t}),confirm:a("common.revoke"),cancel:a("common.cancel"),onConfirm:function(){J(t)},onCancel:function(){w(!1),L(null)}});var t}},e.revoked?i.a.createElement(v.a,{style:{fontSize:16,marginRight:4}}):i.a.createElement(Se.a,{style:{height:16,marginRight:4}}),e.revoked?a("common.enable"):a("common.revoke")):i.a.createElement(d.a,{title:Q(t,e).message},i.a.createElement(ke.a,{style:{color:"#ddd"}}))))}))})),!Z.length&&i.a.createElement(z.a,null,a("common.empty"))),_&&i.a.createElement(Ie,{teamDid:m,ownerDid:t.did,roles:u,onCancel:function(){return U(!1)},onSuccess:function(){n(),U(!1)}}),N&&i.a.createElement(be.a,{title:N.title,description:N.description,confirm:N.confirm,cancel:N.cancel,params:N.params,onConfirm:N.onConfirm,onCancel:N.onCancel,color:N.color}))}Ne.defaultProps={},ze.defaultProps={onCreate:function(){}};var Le,Te,Re,We=l.default.div(he||(he=Object(a.a)(["\n .passport-item {\n .body {\n padding: 0;\n margin-left: 24px;\n margin-top: 0;\n }\n .title {\n font-weight: 500;\n font-size: 16px;\n line-height: 19px;\n color: #222222;\n }\n .tip {\n display: flex;\n align-items: center;\n font-size: 14px;\n margin-top: 6px;\n color: #bbb;\n }\n .status-icons {\n svg {\n fill: #bfbfbf;\n height: 1.2em;\n margin-left: 0.4em;\n }\n }\n .MuiButton-outlinedSecondary {\n color: #f16e6e;\n fill: #f16e6e;\n background: #fcf3f3;\n border: 0;\n &:hover {\n border: 0;\n }\n }\n }\n"]))),Me=n(94);function Be(e){var t,n,a=e.user,r=e.onCancel,l=e.onSuccess,s=e.onError,u=e.children,m=Object($.c)(),p=m.api,d=m.info,f=Object(De.c)().session,b=Object(D.b)(),v=b.teamDid,g=b.refresh,E=Object(x.useLocaleContext)().t,h=Object(o.useState)(!1),O=Object(c.a)(h,2),j=O[0],y=O[1],C=Object(o.useState)(!1),k=Object(c.a)(C,2),w=k[0],S=k[1],P=function(){var e=Object(A.a)(F.a.mark((function e(t){var n,a;return F.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.did,a=t.approved,!j){e.next=3;break}return e.abrupt("return");case 3:return y(!0),e.prev=4,e.next=7,p.updateUserApproval({input:{teamDid:v,user:{did:n,approved:!a}}});case 7:S(!1),l(),g(),e.next=16;break;case 12:e.prev=12,e.t0=e.catch(4),Me.b.error(Object(ee.g)(e.t0)),s();case 16:return e.prev=16,y(!1),e.finish(16);case 19:case"end":return e.stop()}}),e,null,[[4,12,16,19]])})));return function(t){return e.apply(this,arguments)}}(),I={title:a.approved?E("team.member.forbidLogin"):E("team.member.allowLogin"),description:a.approved?E("team.member.forbidLoginDescription"):E("team.member.allowLoginDescription"),confirm:E("common.confirm"),cancel:E("common.cancel"),onConfirm:function(){P(a)},onCancel:function(){y(!1),S(!1),r()},color:a.approved?"danger":"primary"},N=d.nodeOwner&&!function(e,t){return e.nodeOwner.did===t}(d,a.did)&&(t=f.user,n=a.did,!(t&&t.did===n));return N?i.a.createElement(i.a.Fragment,null,"function"===typeof u?u({can:N,open:function(){return S(!0)}}):u,w?i.a.createElement(be.a,{title:I.title,description:I.description,confirm:I.confirm,cancel:I.cancel,params:I.params,onConfirm:I.onConfirm,onCancel:I.onCancel,color:I.color}):null):null}function Fe(e){var t=e.userDid,n=e.onCancel,a=e.initTab,r=Object($.c)().api,l=Object(D.b)(),s=l.roles,u=l.teamDid,m=l.enablePassportIssuance,d=Object(x.useLocaleContext)().t,b=Object(o.useState)(null),v=Object(c.a)(b,2),g=v[0],h=v[1],O=Object(o.useState)(null),j=Object(c.a)(O,2),y=j[0],C=j[1],k=Object(re.c)().enqueueSnackbar,w=Object(o.useState)(a||"info"),S=Object(c.a)(w,2),P=S[0],I=S[1],N=function(){var e=Object(A.a)(F.a.mark((function e(){var n;return F.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,r.doBatchQuery({getUser:{input:{teamDid:u,user:{did:t}}},getPassportIssuances:{input:{teamDid:u,ownerDid:t}}});case 3:n=e.sent,C(n.getUser.user||{}),h(n.getPassportIssuances.list||[]),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(0),k(Object(ee.g)(e.t0),{autoHideDuration:5e3,variant:"error"});case 11:case"end":return e.stop()}}),e,null,[[0,8]])})));return function(){return e.apply(this,arguments)}}();Object(o.useEffect)((function(){u&&N()}),[t,u]);Object(fe.c)("user.updated",(function(e){e.teamDid===u&&e.user&&e.user.did===t&&N()}),[t,u]),Object(o.useEffect)((function(){g&&!g.length&&"issuances"===P&&I("info")}),[g]);var z={info:{label:d("common.basicInfo"),value:"info",component:function(){return(y?[{name:d("team.member.name"),value:y.fullName},{name:d("common.email"),value:y.email},{name:d("team.member.allowLogin"),value:y.approved?d("common.yes"):d("common.no")},{name:d("team.member.lastLogin"),value:Object(ee.p)(y.updatedAt)},{name:d("common.createdAt"),value:Object(ee.p)(y.createdAt)},{name:d("common.remark"),value:y.remark||"--"}].filter(Boolean):[]).map((function(e){return e.name===d("common.did")?i.a.createElement(se.a,{valueComponent:"div",key:e.name,nameWidth:120,name:e.name,nameFormatter:function(){return d("common.did")}},e.value):i.a.createElement(se.a,{style:{alignItems:"flex-start"},valueComponent:"div",key:e.name,nameWidth:120,name:e.name},e.value)}))}},passports:{label:d("common.passport"),value:"passports",component:function(){return i.a.createElement(ze,{user:y,teamDid:u,roles:s,onCreate:function(){N(u),I("issuances")},onRefresh:function(){N(u)}})}},issuances:{label:d("team.passport.issuance.pending"),value:"issuances",component:function(){return i.a.createElement(ge,{issuances:g||[],teamDid:u,onRefresh:function(){return N(u)}})}}},L=Object.values(z).map((function(e){return{label:e.label,value:e.value}})).filter((function(e){return"issuances"!==e.value||m&&g&&!!g.length})),T=z[P]||z.info;return i.a.createElement(p.a,{title:d("common.member"),onClose:n,open:!0,PaperProps:{style:{maxWidth:632,minHeight:"80vh"}},fullWidth:!0,actions:y&&i.a.createElement(R.a,{permission:"mutate_team"},i.a.createElement(Be,{user:y},(function(e){var t=e.open;return i.a.createElement(He,{onClick:t},y.approved?i.a.createElement(me.a,{style:{fontSize:"1.2em",marginRight:"0.4em"}}):i.a.createElement(de.a,{style:{fontSize:"1.2em",marginRight:"0.4em"}}),y.approved?d("team.member.forbidLogin"):d("team.member.allowLogin"))})))},i.a.createElement(_e,null,!y&&i.a.createElement(Ue,null,i.a.createElement(U.a,null)),y&&i.a.createElement("div",null,i.a.createElement(f.a,{display:"flex",alignItems:"center",className:"info"},i.a.createElement(ce.a,{src:y.avatar,style:{width:48,height:48,backgroundColor:"transparent",marginRight:16}}),i.a.createElement(f.a,null,i.a.createElement(f.a,{className:"name"},y.fullName),i.a.createElement(f.a,{className:"did",mt:1},i.a.createElement(E.a,null,y.did)))),i.a.createElement(f.a,{mx:3,className:"tabs"},i.a.createElement(ie.a,{tabs:L,current:P,onChange:function(e){I(e)},scrollButtons:"auto"})),i.a.createElement("div",{className:"body"},i.a.createElement(T.component,null)))))}Be.defaultProps={user:{},onSuccess:function(){},onCancel:function(){},onError:function(){},children:null},Fe.defaultProps={initTab:"info"};var Ae,_e=l.default.div(Le||(Le=Object(a.a)(["\n .info {\n .name {\n font-weight: 500;\n font-size: 18px;\n line-height: 25px;\n color: #222222;\n }\n }\n\n .tabs {\n margin-top: 24px;\n margin-left: 0;\n margin-right: 0;\n }\n\n .body {\n margin-top: 24px;\n }\n"]))),Ue=l.default.div(Te||(Te=Object(a.a)(["\n flex: 1;\n display: flex;\n justify-content: center;\n align-items: center;\n height: 200px;\n"]))),He=l.default.div(Re||(Re=Object(a.a)(["\n flex-shrink: 0;\n width: 100%;\n height: 64px;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n color: #999;\n fill: #999;\n font-size: 16px;\n border-top: 1px solid #f0f0f0;\n position: sticky;\n bottom: 0;\n background: #fff;\n z-index: 10;\n"]))),Ge=n(964),Ke=n.n(Ge),Ve=n(943),qe=n.n(Ve),Je=n(952),Qe=n(953),Ze=n(995);function Xe(){var e=Object($.c)().api,t=Object(o.useContext)(x.LocaleContext).t,n=Object(P.b)().findInterfaceWithAuthService,a=Object(D.b)(),l=a.teamDid,s=a.invitations,u=a.refresh,m=Object(o.useState)(null),p=Object(c.a)(m,2),d=p[0],f=p[1],b=Object(o.useState)(!1),v=Object(c.a)(b,2),g=v[0],E=v[1],h=Object(Ze.a)("invitations",["","","","","",""]),O=h.sortDirections,j=h.onSortChange,C=function(){var t=Object(A.a)(F.a.mark((function t(n){var a;return F.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=n.inviteId,!g){t.next=3;break}return t.abrupt("return");case 3:return E(!0),t.prev=4,t.next=7,e.deleteInvitation({input:{teamDid:l,inviteId:a}});case 7:return u(),t.next=10,Object(ee.G)(800);case 10:t.next=15;break;case 12:t.prev=12,t.t0=t.catch(4),console.error(t.t0);case 15:return t.prev=15,E(!1),f(null),t.finish(15);case 19:case"end":return t.stop()}}),t,null,[[4,12,15,19]])})));return function(e){return t.apply(this,arguments)}}(),k=function(){E(!1),f(null)},w=n(l);if(!(w&&w.invitedUserOnly))return i.a.createElement("h2",{style:{textAlign:"center",margin:"100px 0",color:"#bbb"}},t("team.inviting.disabledTip"));var S=function(e){return w?Object(ee.u)({inviteId:e.inviteId,endpoint:w.endpoint}):""},I=[{title:t("team.inviting.link"),field:"inviteId",defaultSort:O[0],render:function(e){return w?i.a.createElement(Y.a,null,S(e)):null}},{title:t("common.remark"),field:"remark",defaultSort:O[1],render:function(e){return e.remark||"--"}},{title:t("team.inviting.inviter"),field:"inviter.fullName",defaultSort:O[2]},{title:t("common.expires"),field:"inviter.expireDate",defaultSort:O[3],render:function(e){return Object(ee.p)(e.expireDate)}},{title:t("common.actions"),sorting:!1,align:"center",render:function(e){return i.a.createElement(R.a,{permission:"mutate_team"},i.a.createElement(y.a,{rounded:!0,onClick:function(){return f({title:t("team.inviting.delete.title"),description:t("team.inviting.delete.description",{link:S(e)}),confirm:t("common.delConfirm"),cancel:t("common.cancel"),onConfirm:function(){return C(e)},onCancel:k})},size:"small",color:"danger",variant:"text"},i.a.createElement(qe.a,{style:{fontSize:"1.2em"}}),t("common.delete")))}}];return i.a.createElement(Ye,null,i.a.createElement(Qe.a,null,s.length?i.a.createElement(Ke.a,{columns:I,icons:Object(r.a)({},Je.a),onOrderChange:j,options:{emptyRowsWhenPaging:!1,actionsColumnIndex:-1,tableLayout:"auto",maxBodyHeight:"100%",search:!1,pageSize:20,pageSizeOptions:[20,50,100]},localization:{toolbar:{searchPlaceholder:t("common.search")},body:{emptyDataSourceMessage:t("common.noData")}},data:s}):i.a.createElement(z.a,null,t("common.empty"))),d&&i.a.createElement(be.a,{title:d.title,description:d.description,confirm:d.confirm,cancel:d.cancel,params:d.params,onConfirm:d.onConfirm,onCancel:d.onCancel}))}var Ye=l.default.div(Ae||(Ae=Object(a.a)(["\n .table-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: 20px;\n font-size: 14px;\n }\n"])));Xe.defaultProps={};var $e,et=n(920),tt=n(884),nt=n(1045);function at(e){var t=e.user,n=e.onIssuePassport,a=Object(D.b)(),r=a.teamDid,l=a.roles,s=Object(o.useContext)(x.LocaleContext).t,u=Object(o.useState)(!1),m=Object(c.a)(u,2),p=m[0],d=m[1];return i.a.createElement(i.a.Fragment,null,i.a.createElement(nt.a,{"data-cy":"member-actions",actions:[{icon:i.a.createElement(v.a,{fontSize:"small"}),text:s("team.passport.issue"),"data-cy":"action-issue-passport",onClick:function(e){e.stopPropagation(),d(!0)}},function(e){var n=e.close;return i.a.createElement(Be,{user:t},(function(e){var a=e.open;return i.a.createElement(K.a,{dense:!0,key:"toggle-approval",onClick:function(e){e.stopPropagation(),n(),a(e)},"data-cy":"action-toggle-block"},i.a.createElement(et.a,{style:{minWidth:24,marginRight:8}},t.approved?i.a.createElement(me.a,null):i.a.createElement(de.a,null)),i.a.createElement(tt.a,{primary:t.approved?s("team.member.forbidLogin"):s("team.member.allowLogin")}))}))}]}),p&&i.a.createElement(Ie,{teamDid:r,ownerDid:t.did,roles:l,onCancel:function(){return d(!1)},onSuccess:function(){n(),d(!1)}}))}at.defaultProps={onIssuePassport:function(){}};var rt=function(e,t){return(e.passports||[]).some((function(e){return e.role===t}))};function ct(){var e=Object(D.b)(),t=e.teamDid,n=e.teamIssuerDid,a=e.users,l=e.invitations,s=e.roles,m=e.refresh,b=e.enablePassportIssuance,g=Object(P.b)().findInterfaceWithAuthService,h=Object(o.useContext)(x.LocaleContext).t,j=Object(o.useState)(!1),C=Object(c.a)(j,2),w=C[0],I=C[1],N=Object(o.useState)(!1),z=Object(c.a)(N,2),T=z[0],B=z[1],F=Object(o.useState)(!1),A=Object(c.a)(F,2),_=A[0],U=A[1],H=Object(o.useState)("all"),G=Object(c.a)(H,2),K=G[0],V=G[1],q=Object(o.useState)(""),J=Object(c.a)(q,2),Q=J[0],Z=J[1],X=a.filter((function(e){return!Q||e.did.includes(Q)||e.fullName.toLowerCase().includes(Q.toLowerCase())})),Y=(s||[]).map((function(e){return{name:e.name,title:e.title,num:(X||[]).filter((function(t){return rt(t,e.name)})).length||0}}));Y.unshift({name:"all",title:"All Members",num:(X||[]).length}),Object(o.useEffect)((function(){V("all")}),[Q]);var $=g(t),ee=$&&$.invitedUserOnly&&b,ne=X.filter((function(e){return"all"===K||rt(e,K)})).sort((function(e,t){return new Date(e.lastLoginAt)>new Date(t.lastLoginAt)?-1:1}));return ne.forEach((function(e){e.isFromExternal=function(e,t){var n=e.passports||[];return!!n.length&&!n.some((function(e){return e.issuer.id===t}))}(e,n)})),i.a.createElement(ot,null,i.a.createElement(W.a,null,i.a.createElement("div",{className:"left"},i.a.createElement(M.a,{placeholder:h("team.member.search"),value:Q,onChange:function(e){return Z(e.target.value)}})),i.a.createElement("div",{className:"right"},ee&&i.a.createElement(i.a.Fragment,null,i.a.createElement(y.a,{variant:"outlined",color:"primary",rounded:!0,onClick:function(){B(!0)}},i.a.createElement(k.a,{style:{height:"1em",marginRight:4}}),h("common.inviting"),l.length?" (".concat(l.length,")"):""),i.a.createElement(R.a,{permission:"mutate_team"},i.a.createElement(y.a,{style:{marginLeft:16},variant:"contained",rounded:!0,edge:"end",color:"primary","data-cy":"invite-member",onClick:function(){return I(!0)}},i.a.createElement(v.a,{style:{fontSize:"1.3em",marginRight:4}}),h("team.invite")))),w&&i.a.createElement(te,{teamDid:t,authInfo:$,roles:s,onCancel:function(){return I(!1)},onSuccess:function(){m(),I(!1)}}))),i.a.createElement(f.a,{mt:3,className:"main",display:"flex"},i.a.createElement("div",{className:"left"},i.a.createElement("div",{className:"tabs"},Y.map((function(e){return i.a.createElement("div",{className:"tab ".concat(K===e.name?"active":""),onClick:function(){return V(e.name)}},i.a.createElement("span",{className:"text"},e.title),i.a.createElement("span",{className:"badge"},e.num))})))),i.a.createElement("div",{className:"right"},i.a.createElement(L,{list:ne},(function(e){return i.a.createElement(f.a,{className:"list"},e.map((function(e){return i.a.createElement(f.a,{className:"item",display:"flex",justifyContent:"space-between",alignItems:"center","data-cy":"member-name-".concat(e.fullName),onClick:function(){return U(e)}},i.a.createElement(f.a,{display:"flex",alignItems:"center"},function(e){var t=i.a.createElement("div",{className:"info"},i.a.createElement("div",{className:"avatar"},i.a.createElement("div",{className:"icon"},i.a.createElement(O.a,{size:46,did:e.did})),!e.approved&&i.a.createElement("did",{className:"badge-block"})),i.a.createElement(f.a,{className:"title",display:"flex",alignItems:"center"},i.a.createElement("div",{className:"text"},e.fullName),e.isFromExternal&&i.a.createElement(d.a,{title:h("team.passport.externalPassport")},i.a.createElement(f.a,{ml:1,className:"icon"},i.a.createElement(S.a,null)))));return e.approved?t:i.a.createElement(f.a,{display:"flex",alignItems:"center"},i.a.createElement(d.a,{title:h("team.member.forbidLoginDescription")},t))}(e),i.a.createElement(f.a,{ml:5,className:"address"},i.a.createElement(E.a,{copyable:!1},e.did))),i.a.createElement(f.a,{display:"flex",alignItems:"center"},i.a.createElement(f.a,{mr:5,style:{color:"#999",fontSize:14}},e.lastLoginAt?u()(e.lastLoginAt).fromNow():"--"),i.a.createElement(R.a,{permission:"mutate_team"},i.a.createElement(at,{user:e,onIssuePassport:function(){return U(Object(r.a)(Object(r.a)({},e),{},{initTab:"issuances"}))}}))))})))})))),i.a.createElement(p.a,{title:h("common.inviting"),onClose:function(){return B(!1)},open:T,maxWidth:"lg",fullWidth:!0},i.a.createElement(Xe,null)),_&&i.a.createElement(Fe,{onCancel:function(){return U(null)},userDid:_.did,initTab:_.initTab}))}var ot=l.default.div($e||($e=Object(a.a)(["\n .main {\n .left {\n width: 168px;\n flex-shrink: 0;\n margin-right: 65px;\n .tabs {\n padding-top: 16px;\n .tab {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 16px;\n transition: background 0.4s;\n\n width: 168px;\n height: 36px;\n border-radius: 8px;\n\n cursor: pointer;\n user-select: none;\n\n &:nth-child(n + 2) {\n margin-top: 24px;\n }\n\n &.active {\n background: #f2f2f2;\n }\n\n &:hover {\n background: #f2f2f2;\n }\n\n .text {\n font-weight: 500;\n font-size: 16px;\n line-height: 19px;\n\n color: #222222;\n }\n\n .badge {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 20px;\n height: 20px;\n border-radius: 100%;\n color: #fff;\n background: #666666;\n font-size: 10px;\n font-weight: 500;\n }\n }\n }\n @media (max-width: ","px) {\n display: none;\n }\n }\n .right {\n flex-grow: 1;\n }\n }\n\n .list {\n margin-top: 4px;\n margin-left: 40px;\n @media (max-width: ","px) {\n margin-left: 0;\n }\n .item {\n padding: 12px;\n margin: 0 -12px;\n cursor: pointer;\n transition: box-shadow 0.4s;\n &:hover {\n box-shadow: 0 0 10px 4px rgba(0, 0, 0, 0.1);\n }\n @media (max-width: ","px) {\n .address {\n display: none;\n }\n }\n .info {\n display: flex;\n align-items: center;\n .avatar {\n position: relative;\n box-sizing: border-box;\n width: 48px;\n height: 48px;\n .icon {\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n border: 1px solid #eee;\n border-radius: 100%;\n background: #eee;\n overflow: hidden;\n }\n .badge-block {\n width: 20px;\n height: 20px;\n position: absolute;\n right: -4px;\n bottom: -4px;\n background: #ff5757;\n border-radius: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n &::after {\n content: '';\n width: 11px;\n height: 2px;\n background: #fefefe;\n }\n }\n }\n .title {\n width: 100px;\n margin-left: 24px;\n .text {\n color: #666;\n font-size: 16px;\n }\n .icon {\n font-size: 14px;\n line-height: 1;\n fill: #bfbfbf;\n }\n }\n }\n }\n }\n"])),(function(e){return e.theme.breakpoints.values.md}),(function(e){return e.theme.breakpoints.values.md}),(function(e){return e.theme.breakpoints.values.md}));ct.defaultProps={}},1178:function(e,t,n){"use strict";n.d(t,"a",(function(){return Pe}));var a,r,c=n(32),o=n(11),i=n.n(o),l=n(19),s=n(13),u=n(0),m=n.n(u),p=n(14),d=n(938),f=n.n(d),b=n(296),v=n(448),g=n(22),E=n(102),h=n.n(E),O=n(50),x=n.n(O),j=n(998),y=n.n(j),C=n(1044),k=n.n(C),w=n(997),S=n.n(w),P=n(29),D=n(941),I=n(64),N=n(337),z=n(94),L=n(1076),T=n(980),R=n(979),W=n(57),M=n(999),B=n.n(M),F=n(939),A=n.n(F),_=n(180),U=n(878),H=n(895),G=n(1002),K=n.n(G),V=n(931),q=n(1147),J=n.n(q),Q=n(915),Z=n(63),X=n(894),Y=n(339),$=n.n(Y);function ee(e){var t=e.teamDid,n=e.onCancel,a=e.onSuccess,r=e.onError,c=e.mode,o=e.item,p=Object(P.c)().api,d=Object(u.useState)(!1),f=Object(s.a)(d,2),b=f[0],v=f[1],E=Object(u.useState)(""),O=Object(s.a)(E,2),j=O[0],y=O[1],C=Object(g.useLocaleContext)().t,k=Object(u.useState)(o.title||""),w=Object(s.a)(k,2),S=w[0],D=w[1],N=Object(u.useState)(o.description||""),z=Object(s.a)(N,2),L=z[0],T=z[1],R=function(){var e=Object(l.a)(i.a.mark((function e(){var n,l,s,u;return i.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=S.trim()){e.next=4;break}return y(C("team.passport.error.titleEmpty")),e.abrupt("return");case 4:if(!(n.length>64)){e.next=7;break}return y(C("team.passport.error.titleTooLong",{length:64})),e.abrupt("return");case 7:if(l=L.replace(/\n/g," ")){e.next=11;break}return y(C("team.passport.error.descriptionEmpty")),e.abrupt("return");case 11:if(s="create"===c?J()(n):o.name,y(null),v(!0),e.prev=14,"create"!==c){e.next=20;break}return e.next=18,p.createRole({input:{teamDid:t,name:s,title:n,description:l}});case 18:e.next=22;break;case 20:return e.next=22,p.updateRole({input:{teamDid:t,role:{name:s,title:n,description:l}}});case 22:a(),e.next=30;break;case 25:e.prev=25,e.t0=e.catch(14),u=Object(I.g)(e.t0),y(u),r(e.t0);case 30:return e.prev=30,v(!1),e.finish(30);case 33:case"end":return e.stop()}}),e,null,[[14,25,30,33]])})));return function(){return e.apply(this,arguments)}}(),W=m.a.createElement("div",null,"update"===c&&m.a.createElement(Z.a,{component:"div",style:{paddingTop:24}},m.a.createElement(X.a,{label:"ID",autoComplete:"off",variant:"outlined",name:"url","data-cy":"mutate-role-input-name",fullWidth:!0,autoFocus:!0,value:o.name,disabled:!0})),m.a.createElement(Z.a,{component:"div",style:{marginTop:24}},m.a.createElement(X.a,{label:C("common.title"),autoComplete:"off",variant:"outlined",name:"title","data-cy":"mutate-role-input-title",fullWidth:!0,autoFocus:!0,value:S,onChange:function(e){y(null),D(e.target.value)},disabled:"update"===c||b,helperText:C("team.passport.create.titleTip")})),m.a.createElement(Z.a,{component:"div",style:{marginTop:24,marginBottom:24}},m.a.createElement(X.a,{label:C("common.description"),autoComplete:"off",variant:"outlined",name:"description","data-cy":"mutate-role-input-description",fullWidth:!0,autoFocus:!0,value:L,onChange:function(e){y(null),T(e.target.value)},disabled:b,multiline:!0,rows:3})));return m.a.createElement(A.a,{title:"create"===c?C("team.passport.create.title"):"",fullWidth:!0,open:!0,onClose:n,showCloseButton:!1,actions:m.a.createElement(m.a.Fragment,null,m.a.createElement(h.a,{onClick:n,color:"default",rounded:!0,size:"small"},C("common.cancel")),m.a.createElement(h.a,{"data-cy":"mutate-role-confirm",onClick:R,color:"primary",size:"small",disabled:b,variant:"contained",autoFocus:!0,rounded:!0},b&&m.a.createElement(x.a,{size:[16,10]}),C("create"===c?"common.create":"common.update")))},m.a.createElement(Q.a,{component:"div"},W),!!j&&m.a.createElement($.a,{type:"error",variant:"icon",style:{width:"100%",margin:0}},j))}function te(e){var t=e.onCancel,n=e.onSuccess,a=e.onDelete,r=e.roleName,c=e.hasPermission,o=Object(P.c)().api,p=Object(D.b)(),d=p.roles,f=p.permissions,b=p.teamDid,v=p.refresh,E=p.isNodeTeam,O=Object(g.useLocaleContext)().t,j=Object(u.useState)([]),C=Object(s.a)(j,2),k=C[0],w=C[1],S=Object(u.useState)(!1),N=Object(s.a)(S,2),L=N[0],T=N[1],R=Object(u.useState)(null),M=Object(s.a)(R,2),F=M[0],G=M[1],q=Object(u.useState)(!1),J=Object(s.a)(q,2),Q=J[0],Z=J[1],X=B()(d.find((function(e){return e.name===r}))),Y=Object(I.C)(r),$=function(){var e=Object(l.a)(i.a.mark((function e(t){return i.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!Q){e.next=2;break}return e.abrupt("return");case 2:return e.prev=2,Z(!0),e.next=6,o.deleteRole({input:{teamDid:b,name:t}});case 6:a(),e.next=12;break;case 9:e.prev=9,e.t0=e.catch(2),z.b.error(e.t0.message);case 12:return e.prev=12,Z(!1),G(null),e.finish(12);case 16:case"end":return e.stop()}}),e,null,[[2,9,12,16]])})));return function(t){return e.apply(this,arguments)}}(),te=function(){var e=Object(l.a)(i.a.mark((function e(t,n){var a,r,c;return i.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,o.getPermissionsByRole({input:{teamDid:t,role:{name:n}}});case 2:a=e.sent,r=a.permissions||[],c=f.map((function(e){return Object(W.a)(Object(W.a)({},e),{},{bind:r.some((function(t){return t.name===e.name}))})})),w(c);case 6:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),ne=function(){var e=Object(l.a)(i.a.mark((function e(){var t;return i.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return Z(!0),t=k.filter((function(e){return e.bind})).map((function(e){return e.name})),e.prev=2,e.next=5,o.updatePermissionsForRole({input:{teamDid:b,roleName:X.name,grantNames:t}});case 5:z.b.success(O("common.saveSuccess")),n(),e.next=12;break;case 9:e.prev=9,e.t0=e.catch(2),z.b.error(Object(I.g)(e.t0));case 12:return e.prev=12,Z(!1),e.finish(12);case 15:case"end":return e.stop()}}),e,null,[[2,9,12,15]])})));return function(){return e.apply(this,arguments)}}();Object(u.useEffect)((function(){b&&r&&te(b,r)}),[b,r]);var ae=E||!c;return m.a.createElement(A.a,{title:O("common.passport"),onClose:t,open:!0,fullWidth:!0,toolbar:c&&!Y&&m.a.createElement(m.a.Fragment,null,m.a.createElement(_.a,{onClick:function(){return T(X)},"data-cy":"edit-passport-".concat(X.name)},m.a.createElement(y.a,{fill:"#bfbfbf"})),m.a.createElement(_.a,{onClick:function(){return G({title:O("team.passport.delete.title"),description:O("team.passport.delete.description",{name:X.title}),confirm:O("common.delConfirm"),cancel:O("common.cancel"),onConfirm:function(){$(X.name)},onCancel:function(){Z(!1),G(null)}})},"data-cy":"delete-passport-".concat(X.name)},m.a.createElement(K.a,{fill:"#bfbfbf"}))),actions:!ae&&m.a.createElement(m.a.Fragment,null,m.a.createElement(h.a,{onClick:t,color:"default",rounded:!0},O("common.cancel")),m.a.createElement(h.a,{onClick:ne,color:"primary",disabled:Q||!X,variant:"contained",autoFocus:!0,"data-cy":"bind-permission-btn-confirm",rounded:!0},Q&&m.a.createElement(x.a,{size:[16,10]}),O("common.save")))},m.a.createElement(re,null,!X&&m.a.createElement(ce,null,m.a.createElement(x.a,null)),X&&m.a.createElement("div",{className:"dialog-content"},m.a.createElement("div",{className:"header"},m.a.createElement("div",{className:"title"},X.title),m.a.createElement("div",{className:"description"},X.description)),m.a.createElement("div",{className:"bind"},m.a.createElement("div",{className:"title"},O("common.permission")),m.a.createElement("div",{className:"list"},k.filter((function(e){return!ae||e.bind})).map((function(e){return m.a.createElement("div",{className:"item"},m.a.createElement(U.a,{control:m.a.createElement(H.a,{disabled:ae,checked:e.bind,onChange:function(){w((function(t){return t.map((function(t){return t.name===e.name&&(t.bind=!t.bind),t}))}))},name:e.name}),label:e.description}))})))))),L&&m.a.createElement(ee,{teamDid:b,onCancel:function(){return T(null)},onSuccess:function(){T(null),v()},mode:"update",roleName:L.name,item:L}),F&&m.a.createElement(V.a,{title:F.title,description:F.description,confirm:F.confirm,cancel:F.cancel,params:F.params,onConfirm:F.onConfirm,onCancel:F.onCancel}))}ee.defaultProps={onError:function(){},mode:"create",item:{}};var ne=Object(N.b)(te,"mutate_team");te.defaultProps={hasPermission:!1};var ae,re=p.default.div(a||(a=Object(c.a)(["\n .header {\n .title {\n font-weight: 500;\n font-size: 24px;\n line-height: 28px;\n color: #222222;\n }\n\n .description {\n margin-top: 16px;\n font-weight: 500;\n font-size: 16px;\n line-height: 19px;\n color: #999999;\n }\n }\n\n .bind {\n margin-top: 24px;\n .title {\n font-weight: 500;\n font-size: 16px;\n line-height: 19px;\n color: #666666;\n margin-bottom: 24px;\n }\n .item {\n margin-top: 24px;\n }\n\n .MuiFormControlLabel-label {\n font-weight: 500;\n font-size: 16px;\n line-height: 19px;\n color: #666;\n }\n\n .PrivateSwitchBase-root-45 {\n padding: 0;\n padding-right: 12px;\n }\n }\n"]))),ce=p.default.div(r||(r=Object(c.a)(["\n flex: 1;\n display: flex;\n justify-content: center;\n align-items: center;\n height: 200px;\n"]))),oe=n(60),ie=n(954),le=n.n(ie),se=n(344),ue=n.n(se),me=n(1150),pe=n.n(me),de=n(15),fe=["svgRef","title"];function be(){return(be=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e}).apply(this,arguments)}function ve(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},c=Object.keys(e);for(a=0;a<c.length;a++)n=c[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(a=0;a<c.length;a++)n=c[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var ge,Ee=function(e){var t=e.svgRef,n=e.title,a=ve(e,fe);return m.a.createElement("svg",be({width:65,height:16,viewBox:"0 0 65 16",fill:"none",ref:t},a),n?m.a.createElement("title",null,n):null,ae||(ae=m.a.createElement("path",{d:"M64.7071 8.70711C65.0976 8.31658 65.0976 7.68342 64.7071 7.29289L58.3431 0.928932C57.9526 0.538408 57.3195 0.538408 56.9289 0.928932C56.5384 1.31946 56.5384 1.95262 56.9289 2.34315L62.5858 8L56.9289 13.6569C56.5384 14.0474 56.5384 14.6805 56.9289 15.0711C57.3195 15.4616 57.9526 15.4616 58.3431 15.0711L64.7071 8.70711ZM0 9H64V7H0V9Z",fill:"#666666"})))},he=m.a.forwardRef((function(e,t){return m.a.createElement(Ee,be({svgRef:t},e))})),Oe=(n.p,function(e,t){return!!e&&!t.some((function(e){return!e.from.passport||!e.to.role}))});function xe(e){var t=e.onCancel,n=e.onSuccess,a=e.data,r=e.trustedPassports,c=Object(P.c)().api,o=Object(D.b)(),p=o.roles,d=o.teamDid,f=Object(g.useLocaleContext)().t,E=Object(u.useState)(!1),O=Object(s.a)(E,2),j=O[0],y=O[1],C=Object(u.useState)(a.issuerDid||""),k=Object(s.a)(C,2),w=k[0],S=k[1],N=Object(u.useState)(B()(a.mappings)||[]),L=Object(s.a)(N,2),T=L[0],R=L[1],W=r.findIndex((function(e){return e.issuerDid===a.issuerDid})),M=function(){var e=Object(l.a)(i.a.mark((function e(){var t;return i.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!j){e.next=2;break}return e.abrupt("return");case 2:return t=Object(oe.a)(r),-1===W?t.unshift({issuerDid:w,mappings:T}):t[W]={issuerDid:w,mappings:T},e.prev=4,y(!0),e.next=8,c.configTrustedPassports({input:{teamDid:d,trustedPassports:t}});case 8:return e.next=10,Object(I.G)(800);case 10:y(!1),z.b.success(f("common.saveSuccess")),n(),e.next=19;break;case 15:e.prev=15,e.t0=e.catch(4),y(!1),z.b.error(e.t0.message);case 19:case"end":return e.stop()}}),e,null,[[4,15]])})));return function(){return e.apply(this,arguments)}}();return m.a.createElement(A.a,{title:f("team.passport.trustedIssuers"),open:!0,showCloseButton:!1,PaperProps:{style:{minHeight:"80vh"}},fullWidth:!0,prepend:m.a.createElement(_.a,{onClick:t,"data-cy":"trusted-issuer-close"},m.a.createElement(pe.a,null)),actions:m.a.createElement(m.a.Fragment,null,m.a.createElement(h.a,{onClick:t,color:"default",rounded:!0},f("common.cancel")),m.a.createElement(h.a,{onClick:function(){return M()},color:"primary",disabled:!Oe(w,T)||j,variant:"contained",autoFocus:!0,"data-cy":"save-mapping",rounded:!0},j&&m.a.createElement(x.a,{size:[16,10]}),f("common.save")))},m.a.createElement(ye,null,m.a.createElement("div",{className:"dialog-content"},m.a.createElement(X.a,{fullWidth:!0,"data-cy":"input-issuer-did",placeholder:f("team.passport.issuerDid"),value:w,onChange:function(e){S(e.target.value)}}),m.a.createElement(b.a,{mt:"30px",display:"flex",justifyContent:"space-between",alignItems:"center"},m.a.createElement(b.a,{className:"dialog-h1"},f("team.passport.mappingRule")),m.a.createElement(b.a,null,m.a.createElement(h.a,{variant:"outlined",rounded:!0,color:"primary","data-cy":"add-mapping",onClick:function(){R((function(e){var t=Object(oe.a)(e);return t.unshift({from:{passport:""},to:{role:de.ROLES.GUEST}}),t}))}},f("team.add")))),m.a.createElement(b.a,{className:"list",mt:-.5},T.map((function(e,t){return m.a.createElement(b.a,{display:"flex",alignItems:"center",justifyContent:"space-between",my:3},m.a.createElement(b.a,{display:"flex",alignItems:"center",flexGrow:1},m.a.createElement(b.a,{flexGrow:1,flexBasis:1},m.a.createElement(X.a,{fullWidth:!0,size:"small","data-cy":"input-".concat(t,"-from"),placeholder:"Issuer\u2019s Passport Name/ID",value:e.from.passport,onChange:function(e){var n=e.target.value;R((function(e){var a=Object(oe.a)(e);return a[t].from.passport=n,a}))}})),m.a.createElement(b.a,{flexShrink:0,mx:4},m.a.createElement(he,null)),m.a.createElement(b.a,{flexGrow:1,flexBasis:1},m.a.createElement(X.a,{fullWidth:!0,size:"small",select:!0,value:e.to.role,onChange:function(e){R((function(n){var a=Object(oe.a)(n);return a[t].to.role=e.target.value,a}))},variant:"outlined"},p.filter((function(e){return"owner"!==e.name})).map((function(e){return m.a.createElement(v.a,{key:e.name,value:e.name,"data-cy":"passport-mapping-select-option-".concat(e.name)},m.a.createElement("span",null,e.title||e.name))}))))),m.a.createElement(b.a,{flexShrink:0,ml:4},m.a.createElement(_.a,{onClick:function(){R((function(e){var n=Object(oe.a)(e);return n.splice(t,1),n}))}},m.a.createElement(K.a,null))))})),!T.length&&m.a.createElement(b.a,{my:2,color:"text.secondary",fontSize:"16px"},m.a.createElement(le.a,null,f("common.empty")))))))}xe.defaultProps={data:{},trustedPassports:[]};var je,ye=p.default.div(ge||(ge=Object(c.a)(["\n .dialog-h1 {\n font-size: 18px;\n }\n\n .MuiOutlinedInput-root {\n border-radius: 36px;\n .MuiSelect-root.MuiOutlinedInput-input {\n padding-top: 8.5px;\n padding-bottom: 8.5px;\n }\n }\n\n .list {\n .MuiIconButton-root {\n svg {\n fill: #bfbfbf;\n }\n }\n }\n"])));function Ce(e){var t=e.onCancel,n=e.hasPermission,a=Object(P.c)().api,r=Object(D.b)(),c=r.teamDid,o=r.trustedPassports,p=Object(g.useLocaleContext)().t,d=Object(u.useState)(null),v=Object(s.a)(d,2),E=v[0],O=v[1],x=Object(u.useState)(!1),j=Object(s.a)(x,2),C=j[0],k=j[1],w=Object(u.useState)(!1),S=Object(s.a)(w,2),N=S[0],L=S[1],W=Object(u.useState)(""),M=Object(s.a)(W,2),F=M[0],U=M[1],H=function(){var e=Object(l.a)(i.a.mark((function e(t){var n,r;return i.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!C){e.next=2;break}return e.abrupt("return");case 2:return-1===(n=o.findIndex((function(e){return e.issuerDid===t})))&&z.b.error("Cannot find passports"),(r=Object(oe.a)(o)).splice(n,1),e.prev=6,k(!0),e.next=10,a.configTrustedPassports({input:{teamDid:c,trustedPassports:r}});case 10:return e.next=12,Object(I.G)(800);case 12:k(!1),z.b.success(p("common.saveSuccess")),O(!1),e.next=21;break;case 17:e.prev=17,e.t0=e.catch(6),k(!1),z.b.error(e.t0.message);case 21:case"end":return e.stop()}}),e,null,[[6,17]])})));return function(t){return e.apply(this,arguments)}}(),G=o.filter((function(e){return!F||e.issuerDid.toLowerCase().includes(F.toLowerCase())}));return m.a.createElement(A.a,{title:p("team.passport.trustedIssuers"),open:!0,onClose:t,fullWidth:!0,PaperProps:{style:{minHeight:"80vh"}}},m.a.createElement(Se,null,m.a.createElement("div",{className:"dialog-content"},m.a.createElement("div",{className:"dialog-h1"},p("team.passport.trustedPassportIssuers")),m.a.createElement(b.a,{component:R.a,mt:3},m.a.createElement("div",{className:"left"},m.a.createElement(T.a,{placeholder:p("team.passport.searchIssuerDid"),value:F,onChange:function(e){return U(e.target.value)}})),m.a.createElement("div",{className:"right"},n&&m.a.createElement(h.a,{variant:"contained",rounded:!0,color:"primary","data-cy":"add-trusted-issuer",onClick:function(){return L({mode:"add"})}},m.a.createElement(f.a,{style:{fontSize:16,marginRight:4}}),p("team.add")))),m.a.createElement("div",{className:"list"},G.map((function(e){return m.a.createElement(b.a,{display:"flex",alignItems:"center",justifyContent:"space-between",mt:"20px"},m.a.createElement(b.a,{flexShrink:0},m.a.createElement(ue.a,{copyable:!1},m.a.createElement("span",{style:{fontSize:16}},e.issuerDid))),m.a.createElement(b.a,{color:"gray",ml:"28px",flexGrow:1},e.mappings&&e.mappings.length?"".concat(e.mappings.length," ").concat(p("team.passport.mappingRule")):p("team.passport.defaultRule")),m.a.createElement(b.a,{flexShrink:0,display:"flex",alignItems:"center"},m.a.createElement(_.a,{onClick:function(){return L({mode:"update",data:B()(e)})},"data-cy":"edit-mapping-rule"},m.a.createElement(y.a,null)),m.a.createElement(_.a,{"data-cy":"delete-mapping-rule",onClick:function(){return O({title:p("common.delete"),description:p("common.delConfirmDescription"),confirm:p("common.delConfirm"),cancel:p("common.cancel"),onConfirm:function(){return H(e.issuerDid)},onCancel:function(){k(!1),O(null)}})}},m.a.createElement(K.a,null))))})),!o.length&&m.a.createElement(le.a,null,p("common.empty"))))),N&&m.a.createElement(xe,{mode:N.mode,data:N.data,trustedPassports:B()(o),onCancel:function(){return L(null)},onSuccess:function(){L(null)}}),E&&m.a.createElement(V.a,{title:E.title,description:E.description,confirm:E.confirm,cancel:E.cancel,params:E.params,onConfirm:E.onConfirm,onCancel:E.onCancel}))}Ce.defaultProps={hasPermission:!1};var ke,we=Object(N.b)(Ce,"mutate_team"),Se=p.default.div(je||(je=Object(c.a)(["\n .list {\n .MuiIconButton-root {\n svg {\n fill: #bfbfbf;\n }\n }\n }\n"])));function Pe(){var e=Object(u.useContext)(g.LocaleContext).t,t=Object(P.c)(),n=t.api,a=t.info,r=Object(D.b)(),c=r.roles,o=r.teamDid,p=r.teamName,d=r.refresh,E=r.enablePassportIssuance,O=Object(u.useState)(!1),j=Object(s.a)(O,2),C=j[0],w=j[1],W=Object(u.useState)(!1),M=Object(s.a)(W,2),B=M[0],F=M[1],A=Object(u.useState)(null),_=Object(s.a)(A,2),U=_[0],H=_[1],G=Object(u.useState)(""),K=Object(s.a)(G,2),V=K[0],q=K[1],J=Object(u.useState)(!1),Q=Object(s.a)(J,2),Z=Q[0],X=Q[1],Y=function(){var t=Object(l.a)(i.a.mark((function t(){return i.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!Z){t.next=2;break}return t.abrupt("return");case 2:return X(!0),t.prev=3,t.next=6,n.configPassportIssuance({input:{teamDid:o,enable:!E}});case 6:return d(),t.next=9,Object(I.G)(800);case 9:z.b.success(e("common.configSuccess")),X(!1),t.next=17;break;case 13:t.prev=13,t.t0=t.catch(3),z.b.error(t.t0.message),X(!1);case 17:case"end":return t.stop()}}),t,null,[[3,13]])})));return function(){return t.apply(this,arguments)}}(),$=c.filter((function(e){return!V||e.title.includes(V)||e.name.includes(V)}));return m.a.createElement(De,null,m.a.createElement(R.a,null,m.a.createElement("div",{className:"left"},m.a.createElement(T.a,{placeholder:e("team.passport.search"),value:V,onChange:function(e){return q(e.target.value)}})),m.a.createElement("div",{className:"right"},m.a.createElement(N.a,{permission:"mutate_team"},m.a.createElement(L.a,{actions:[m.a.createElement(v.a,{"data-cy":"config-show-issue-passport",onClick:function(){Y()}},m.a.createElement(b.a,{display:"flex",alignItems:"center"},Z&&m.a.createElement(x.a,{size:[16,10],style:{marginRight:8}}),m.a.createElement(b.a,null,e(E?"team.passport.disableIssuance":"team.passport.enableIssuance"),m.a.createElement(b.a,{fontSize:12,color:"#888"},e(E?"team.passport.disableIssuanceTip":"team.passport.enableIssuanceTip")))))]},m.a.createElement(h.a,{style:{borderRight:0},variant:"outlined",color:"primary","data-cy":"config-trusted-issuers",onClick:function(){H(!0)}},m.a.createElement(S.a,{style:{fontSize:16,marginRight:4}}),e("team.passport.trustedPassportIssuers"))),a.did!==o&&m.a.createElement(h.a,{style:{marginLeft:16},variant:"contained",rounded:!0,edge:"end",color:"primary","data-cy":"create-role",onClick:function(){return w(!0)}},m.a.createElement(f.a,{style:{fontSize:16,marginRight:4}}),e("team.add"))))),m.a.createElement(b.a,{mt:3}),m.a.createElement(b.a,{className:"list"},$.map((function(e){return m.a.createElement(b.a,{"data-cy":"passport-".concat(e.name),className:"item",display:"flex",alignItems:"center",onClick:function(){return F(e)}},m.a.createElement(b.a,{display:"flex",alignItems:"center"},m.a.createElement("img",{style:{width:120},alt:"",src:Object(I.d)({issuer:p,title:e.title})}),m.a.createElement(b.a,{ml:3,className:"title"},e.title)),m.a.createElement(b.a,{className:"description"},e.description),m.a.createElement(N.a,{permission:"mutate_team"},m.a.createElement("div",{className:"action"},Object(I.C)(e.name)?m.a.createElement(k.a,null):m.a.createElement(y.a,null))))}))),C&&m.a.createElement(ee,{teamDid:o,onCancel:function(){return w(!1)},onSuccess:function(){w(!1),d()}}),B&&m.a.createElement(ne,{onCancel:function(){return F(null)},onSuccess:function(){F(null),d()},onDelete:function(){F(null),d()},mode:"update",roleName:B.name,item:B}),U&&m.a.createElement(we,{onCancel:function(){return H(!1)}}))}var De=p.default.div(ke||(ke=Object(c.a)(["\n .list {\n .item {\n padding: 12px;\n margin: 12px -12px;\n cursor: pointer;\n transition: box-shadow 0.4s;\n &:hover {\n box-shadow: 0 0 10px 4px rgba(0, 0, 0, 0.1);\n }\n }\n\n .title {\n font-weight: 500;\n font-size: 18px;\n width: 80px;\n line-height: 21px;\n color: #222222;\n }\n\n .description {\n flex: 1;\n margin-left: 64px;\n color: #999999;\n }\n\n .action {\n color: #bfbfbf;\n fill: #bfbfbf;\n }\n }\n"])));Pe.defaultProps={}},1531:function(e,t,n){"use strict";n.r(t),n.d(t,"default",(function(){return g}));var a,r=n(32),c=n(0),o=n.n(c),i=n(14),l=n(30),s=n(63),u=n(973),m=n.n(u),p=n(22),d=n(29),f=n(941),b=n(1177),v=n(1178);function g(){var e=Object(l.k)(),t=Object(p.useLocaleContext)().t,n=Object(d.c)().nodeInfo,a=Object(l.m)().tab,r=void 0===a?"members":a,c=n.did,i={members:{label:t("common.members"),value:"members",component:b.a},passports:{label:t("common.passport"),value:"passports",component:v.a}},u=Object.values(i).map((function(e){return{label:e.label,value:e.value}})),g=i[r]||i.member;return o.a.createElement(f.a,{teamDid:c},o.a.createElement(E,null,o.a.createElement(s.a,{component:"h2",variant:"h4",className:"page-header",color:"textPrimary"},t("common.team")),o.a.createElement(m.a,{tabs:u,current:r,onChange:function(t){e.push("/team/".concat(t))},scrollButtons:"auto"}),o.a.createElement("div",{className:"page-content"},o.a.createElement(g.component,null))))}var E=i.default.main(a||(a=Object(r.a)(["\n .page-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n .page-content {\n margin-top: 24px;\n }\n"])))},931:function(e,t,n){"use strict";n.d(t,"a",(function(){return D}));var a=n(32),r=n(11),c=n.n(r),o=n(19),i=n(13),l=n(0),s=n.n(l),u=n(14),m=n(445),p=n(50),d=n.n(p),f=n(876),b=n(446),v=n(915),g=n(916),E=n(925),h=n(993),O=n.n(h),x=n(324),j=n(22),y=n(102),C=n.n(y),k=n(64),w=n(17);var S,P=function(){var e=Object(w.a)();return{minWidth:Object(x.a)(e.breakpoints.down("sm"))?300:e.breakpoints.values.sm}};function D(e){var t=e.title,n=e.description,a=e.showCancel,r=e.cancel,u=e.confirm,m=e.color,p=e.params,h=e.onCancel,y=e.onConfirm,w=Object(l.useState)(p),S=Object(i.a)(w,2),D=S[0],N=S[1],z=Object(l.useState)(!0),L=Object(i.a)(z,2),T=L[0],R=L[1],W=Object(l.useState)(!1),M=Object(i.a)(W,2),B=M[0],F=M[1],A=Object(l.useState)(""),_=Object(i.a)(A,2),U=_[0],H=_[1],G=Object(j.useLocaleContext)().t,K=O()(),V=function(){var e=Object(o.a)(c.a.mark((function e(t){return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("function"!==typeof t){e.next=17;break}return F(!0),e.prev=2,e.next=5,t(D);case 5:R(!1),e.next=12;break;case 8:e.prev=8,e.t0=e.catch(2),H(Object(k.g)(e.t0)),console.error(e.t0);case 12:return e.prev=12,F(!1),e.finish(12);case 15:e.next=18;break;case 17:R(!1);case 18:case"end":return e.stop()}}),e,null,[[2,8,12,15]])})));return function(t){return e.apply(this,arguments)}}(),q="function"===typeof t?t():t,J="function"===typeof n?n(D,N,H):n,Q=Object(x.a)(K.breakpoints.down("sm")),Z=P().minWidth;return s.a.createElement(I,{onClick:function(e){e.stopPropagation()},fullScreen:Q,open:T,style:{minWidth:Z}},s.a.createElement(g.a,null,q),s.a.createElement(b.a,{style:{minWidth:Z}},s.a.createElement(v.a,{component:"div"},J),!!U&&s.a.createElement(E.a,{severity:"error",style:{width:"100%",marginTop:8}},U)),s.a.createElement(f.a,{className:"delete-actions",style:{padding:"8px 24px 24px"}},a&&s.a.createElement(C.a,{onClick:function(e){e.stopPropagation(),V(h)},color:"default","data-cy":"cancel-confirm-dialog",rounded:!0,size:"small"},r||G("common.cancel")),s.a.createElement(C.a,{onClick:function(e){e.stopPropagation(),V(y)},color:m,size:"small",disabled:D.__disableConfirm||B,variant:"contained","data-cy":"submit-confirm-dialog",autoFocus:!0,rounded:!0},B&&s.a.createElement(d.a,{size:[16,10]}),u)))}D.defaultProps={onCancel:function(){},showCancel:!0,cancel:"",confirm:"Confirm",color:"danger",params:{}};var I=Object(u.default)(m.a)(S||(S=Object(a.a)(["\n .delete-actions .Mui-disabled {\n color: rgba(0, 0, 0, 0.26) !important;\n box-shadow: none;\n background-color: rgba(0, 0, 0, 0.12) !important;\n }\n"])))},941:function(e,t,n){"use strict";n.d(t,"a",(function(){return b})),n.d(t,"b",(function(){return v}));var a=n(11),r=n.n(a),c=n(19),o=n(13),i=n(0),l=n.n(i),s=n(15),u=n(29),m=n(342),p=n(23),d=l.a.createContext({}),f=d.Provider;d.Consumer;function b(e){var t=e.teamDid,n=e.children,a=Object(u.c)(),d=a.api,b=a.nodeInfo,v=Object(m.b)().data,g=Object(i.useState)([]),E=Object(o.a)(g,2),h=E[0],O=E[1],x=Object(i.useState)([]),j=Object(o.a)(x,2),y=j[0],C=j[1],k=Object(i.useState)([]),w=Object(o.a)(k,2),S=w[0],P=w[1],D=Object(i.useState)([]),I=Object(o.a)(D,2),N=I[0],z=I[1],L=v.find((function(e){return e.meta.did===t})),T=function(e,t,n){return e===t.did?t.name:n?n.meta.title||n.meta.name:""}(t,b,L),R=function(e,t,n){return e===t.did?t.trustedPassports||[]:n&&n.trustedPassports||[]}(t,b,L),W=function(e,t,n){return e===t.did?e:n&&((n.environments||[]).find((function(e){return"BLOCKLET_APP_ID"===e.key}))||{}).value||""}(t,b,L),M=function(e,t,n){return e===t.did?!1!==t.enablePassportIssuance:!n||!1!==n.enablePassportIssuance}(t,b,L),B=function(){var e=Object(c.a)(r.a.mark((function e(t){var n;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,d.doBatchQuery({getRoles:{input:{teamDid:t}},getPermissions:{input:{teamDid:t}},getUsers:{input:{teamDid:t}},getInvitations:{input:{teamDid:t}}});case 3:n=e.sent,P((n.getRoles.roles||[]).filter((function(e){return!s.RBAC_CONFIG.roles.some((function(t){return t.name===e.name&&(!t.passport||t.ci)}))})).map((function(e){return e.description=e.description||"Use this passport to connect ".concat(T," as ").concat(e.title),e}))),z(n.getPermissions.permissions||[]),O(n.getUsers.users||[]),C(n.getInvitations.invitations||[]),e.next=12;break;case 10:e.prev=10,e.t0=e.catch(0);case 12:case"end":return e.stop()}}),e,null,[[0,10]])})));return function(t){return e.apply(this,arguments)}}();Object(i.useEffect)((function(){B(t)}),[t]);var F=function(e){e.teamDid===t&&B()};Object(p.c)("user.added",F,[t]),Object(p.c)("user.removed",F,[t]),Object(p.c)("user.updated",F,[t]);var A={teamDid:t,teamIssuerDid:W,teamName:T,users:h,invitations:y,roles:S,permissions:N,trustedPassports:R,isNodeTeam:t===b.did,enablePassportIssuance:M,refresh:function(){return B(t)}};return l.a.createElement(f,{value:A},n)}function v(){return Object(i.useContext)(d)}b.defaultProps={}},946:function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var a=n(117),r=n(0),c=n.n(r),o=n(977),i=n.n(o),l=n(22),s=["children"];function u(e){var t=e.children,n=Object(a.a)(e,s),o=Object(r.useContext)(l.LocaleContext).t;return c.a.createElement(i.a,Object.assign({tip:o("common.copyTip"),copiedTip:o("common.copiedTip")},n),t)}},952:function(e,t,n){"use strict";var a=n(938),r=n.n(a),c=n(199),o=n.n(c),i=n(943),l=n.n(i),s=n(538),u=n.n(s),m=n(1027),p=n.n(m),d=n(967),f=n.n(d),b=n(1023),v=n.n(b),g=n(1024),E=n.n(g),h=n(1025),O=n.n(h),x=n(1009),j=n.n(x),y=n(1026),C=n.n(y),k=n(974),w=n.n(k),S=n(968),P=n.n(S),D=n(1028),I=n.n(D),N=n(1029),z=n.n(N);t.a={Add:r.a,Check:o.a,Delete:l.a,Edit:f.a,Clear:u.a,DetailPanel:j.a,Filter:v.a,FirstPage:E.a,LastPage:O.a,NextPage:j.a,PreviousPage:C.a,Search:w.a,ResetSearch:u.a,SortArrow:P.a,Export:p.a,ThirdStateCheck:I.a,ViewColumn:z.a}},953:function(e,t,n){"use strict";var a,r=n(32),c=n(14).default.div(a||(a=Object(r.a)(["\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 .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"])));t.a=c},979:function(e,t,n){"use strict";var a,r=n(32),c=n(14).default.div(a||(a=Object(r.a)(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-size: 14px;\n .left,\n .right {\n }\n .right {\n display: flex;\n align-items: center;\n }\n .tabs {\n .MuiButton-root {\n border: none;\n color: #999;\n &.active {\n color: #222;\n }\n }\n }\n"])));t.a=c},980:function(e,t,n){"use strict";var a,r=n(117),c=n(32),o=n(0),i=n.n(o),l=n(14),s=n(894),u=n(974),m=n.n(u),p=["children"],d=Object(l.default)((function(e){var t=e.children,n=Object(r.a)(e,p);return i.a.createElement(s.a,Object.assign({},n,{id:"outlined-basic",variant:"outlined",InputProps:{startAdornment:i.a.createElement(m.a,null)},size:"small"}),t)}))(a||(a=Object(c.a)(["\n .MuiOutlinedInput-root {\n color: #999;\n &.MuiInputBase-adornedStart .MuiSvgIcon-root {\n color: #bfbfbf;\n }\n opacity: 1;\n border-radius: 36px;\n background: #f8f8f8;\n padding-left: 16px;\n input {\n padding-left: 8px;\n font-weight: bold;\n &::placeholder {\n opacity: 1;\n color: #bfbfbf;\n }\n padding-top: 8.5px;\n padding-bottom: 8.5px;\n }\n }\n\n .MuiOutlinedInput-notchedOutline,\n .MuiOutlinedInput-root:hover .MuiOutlinedInput-notchedOutline,\n .Mui-focused .MuiOutlinedInput-notchedOutline {\n border-color: #eee;\n border-width: 1px;\n }\n"])));t.a=d},995:function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var a=n(60),r=n(13),c=n(972),o=n.n(c);function i(e,t){var n=o()("ps_".concat(e),t),c=Object(r.a)(n,2),i=c[0],l=c[1];return{sortDirections:i,onSortChange:function(e,n){var r=n?new Array(t.length).fill(""):Object(a.a)(t);e>-1&&(r[e]=n),l(r)}}}}}]);
|
|
2
|
-
//# sourceMappingURL=19.b0298325.chunk.js.map
|