diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..59c9c55 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,23 @@ +docs +public +src +.dockerignore +.editorconfig +.eslintignore +.gitattributes +.gitignore +.prettierrc +babel.config.js +Dockerfile +idea.config.js +LICENSE +package.json +package-lock.json +README.md +vue.config.js +yarn +yarn.lock +yarn-error.log +.idea +.svn +node_modules \ No newline at end of file diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..3e26fbb --- /dev/null +++ b/.editorconfig @@ -0,0 +1,39 @@ +[*] +charset=utf-8 +end_of_line=crlf +insert_final_newline=false +indent_style=space +indent_size=2 + +[{*.ng,*.sht,*.html,*.shtm,*.shtml,*.htm}] +indent_style=space +indent_size=2 + +[{*.jhm,*.xslt,*.xul,*.rng,*.xsl,*.xsd,*.ant,*.tld,*.fxml,*.jrxml,*.xml,*.jnlp,*.wsdl}] +indent_style=space +indent_size=2 + +[{.babelrc,.stylelintrc,jest.config,.eslintrc,.prettierrc,*.json,*.jsb3,*.jsb2,*.bowerrc}] +indent_style=space +indent_size=2 + +[*.svg] +indent_style=space +indent_size=2 + +[*.js.map] +indent_style=space +indent_size=2 + +[*.less] +indent_style=space +indent_size=2 + +[*.vue] +indent_style=space +indent_size=2 + +[{.analysis_options,*.yml,*.yaml}] +indent_style=space +indent_size=2 + diff --git a/.env b/.env new file mode 100644 index 0000000..820ebe4 --- /dev/null +++ b/.env @@ -0,0 +1,3 @@ +NODE_ENV=development +VUE_APP_PLATFORM_NAME=JeecgBoot 企业级低代码平台 +VUE_APP_SSO=false \ No newline at end of file diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..200da7b --- /dev/null +++ b/.env.development @@ -0,0 +1,7 @@ +NODE_ENV=development +VUE_APP_API_BASE_URL=https://midea-test.egyun.com.cn/gcs +VUE_APP_API_BASE_SITE=http://localhost:9000 +VUE_APP_CAS_BASE_URL=http://cas.example.org:8443/cas +VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview +VUE_APP_LOGOUT_URL=https://lsitapi.midea.com/api-auth/ssoLogout +VUE_APP_API_AUTH=https://lsitapi.midea.com/api-auth \ No newline at end of file diff --git a/.env.prod b/.env.prod new file mode 100644 index 0000000..c578e08 --- /dev/null +++ b/.env.prod @@ -0,0 +1,8 @@ +NODE_ENV=prod +VUE_APP_API_BASE_URL=https://lcapi.midea.com/api-iems-cn/gcs +VUE_APP_API_BASE_SITE=https://lcapi.midea.com/api-iems-cn/gcs +VUE_APP_CAS_BASE_URL=https://signin.midea.com/login +VUE_APP_ONLINE_BASE_URL= +VUE_APP_LOGOUT_URL=https://lcapi.midea.com/api-auth/ssoLogout +VUE_APP_SSO=true +VUE_APP_API_AUTH=https://lcapi.midea.com/api-auth \ No newline at end of file diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..390a4e7 --- /dev/null +++ b/.env.production @@ -0,0 +1,8 @@ +NODE_ENV=production +VUE_APP_API_BASE_URL=https://lcapi.midea.com/api-iems-cn/gcs +VUE_APP_API_BASE_SITE=https://lcapi.midea.com/api-iems-cn/gcs +VUE_APP_CAS_BASE_URL=https://signin.midea.com/login +VUE_APP_ONLINE_BASE_URL= +VUE_APP_LOGOUT_URL=https://lcapi.midea.com/api-auth/ssoLogout +VUE_APP_SSO=true +VUE_APP_API_AUTH=https://lcapi.midea.com/api-auth \ No newline at end of file diff --git a/.env.sit b/.env.sit new file mode 100644 index 0000000..57170b4 --- /dev/null +++ b/.env.sit @@ -0,0 +1,8 @@ +NODE_ENV=sit +VUE_APP_API_BASE_URL=https://lsitapi.midea.com/api-iems-cn/gcs +VUE_APP_API_BASE_SITE=http://localhost:9000 +VUE_APP_CAS_BASE_URL=https://signinuat.midea.com/login +VUE_APP_ONLINE_BASE_URL= +VUE_APP_LOGOUT_URL=https://lsitapi.midea.com/api-auth/ssoLogout +VUE_APP_SSO=true +VUE_APP_API_AUTH=https://lsitapi.midea.com/api-auth \ No newline at end of file diff --git a/.env.test b/.env.test new file mode 100644 index 0000000..91394a0 --- /dev/null +++ b/.env.test @@ -0,0 +1,5 @@ +NODE_ENV=production +VUE_APP_API_BASE_URL=https://midea-test.egyun.com.cn/gcs +VUE_APP_API_BASE_SITE=https://midea-test.egyun.com.cn +VUE_APP_CAS_BASE_URL=http://cas.example.org:8443/cas +VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview \ No newline at end of file diff --git a/.env.uat b/.env.uat new file mode 100644 index 0000000..2075e5a --- /dev/null +++ b/.env.uat @@ -0,0 +1,8 @@ +NODE_ENV=uat +VUE_APP_API_BASE_URL=https://luatapi.midea.com/api-iems-cn/gcs +VUE_APP_API_BASE_SITE=http://localhost:9000 +VUE_APP_CAS_BASE_URL=https://signinuat.midea.com/login +VUE_APP_ONLINE_BASE_URL= +VUE_APP_LOGOUT_URL=https://luatapi.midea.com/api-auth/ssoLogout +VUE_APP_SSO=true +VUE_APP_API_AUTH=https://luatapi.midea.com/api-auth \ No newline at end of file diff --git a/.env.ver b/.env.ver new file mode 100644 index 0000000..df80897 --- /dev/null +++ b/.env.ver @@ -0,0 +1,8 @@ +NODE_ENV=ver +VUE_APP_API_BASE_URL=https://lverapi.midea.com/api-iems-cn/gcs +VUE_APP_API_BASE_SITE=http://localhost:9000 +VUE_APP_CAS_BASE_URL=https://signinuat.midea.com/login +VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview +VUE_APP_LOGOUT_URL=https://lverapi.midea.com/api-auth/ssoLogout +VUE_APP_SSO=true +VUE_APP_API_AUTH=https://lverapi.midea.com/api-auth \ No newline at end of file diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..e69de29 diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..ec0e817 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,151 @@ +module.exports = { + "root": true, + "env": { + "browser": true + }, + "parser": "vue-eslint-parser", + "parserOptions": { + "parser": "@babel/eslint-parser", + "ecmaVersion": 2020, + "sourceType": "module" + }, + extends: [ + // "eslint-config-md-js", + // "eslint-config-md-vue2", + // 加入 Vue 推荐的规则配置 + 'plugin:vue/recommended', + ], + rules: { + // 关闭多行属性间必须换行的规则 + 'vue/new-line-between-multi-line-attributes': 'off', + + // 关闭Vue模板缩进检查(关键:解决模板中的缩进提示) + 'vue/html-indent': 'off', + + // 强制使用分号(默认) + 'semi': ['warn', 'always'], + + // 警告但不报错(提醒清理) + 'no-console': 'warn', + + // 单行标签属性个数 + 'vue/max-attributes-per-line': ['warn', { + 'singleline': 10, + 'multiline': { + 'max': 10, + 'allowFirstLine': false + } + }], + + // 关闭v-html的XSS风险提示 + 'vue/no-v-html': 'off', + + // 关闭属性必须使用连字符命名的规则 + 'vue/attribute-hyphenation': 'off', + + // 关闭组件选项顺序校验规则 + 'vue/order-in-components': 'off', + + // 关闭 Vue 属性顺序强制校验规则 + 'vue/attributes-order': 'off', + + // 允许单行里展示标签和文本 + 'vue/singleline-html-element-content-newline': 'off', + + // 要求使用严格相等(!==/===) + eqeqeq: ['error', 'always'], + + // 允许在 + + + + diff --git a/src/components/AppprovalUserSelect/index.vue b/src/components/AppprovalUserSelect/index.vue new file mode 100644 index 0000000..e3cb880 --- /dev/null +++ b/src/components/AppprovalUserSelect/index.vue @@ -0,0 +1,270 @@ + + + + + diff --git a/src/components/ApprovalProgressTemplate/components/passModal.vue b/src/components/ApprovalProgressTemplate/components/passModal.vue new file mode 100644 index 0000000..81f4c23 --- /dev/null +++ b/src/components/ApprovalProgressTemplate/components/passModal.vue @@ -0,0 +1,148 @@ + + + + + diff --git a/src/components/ApprovalProgressTemplate/index.vue b/src/components/ApprovalProgressTemplate/index.vue new file mode 100644 index 0000000..4d1d8a4 --- /dev/null +++ b/src/components/ApprovalProgressTemplate/index.vue @@ -0,0 +1,494 @@ + + + + + diff --git a/src/components/AvatarList/Item.vue b/src/components/AvatarList/Item.vue new file mode 100644 index 0000000..f794295 --- /dev/null +++ b/src/components/AvatarList/Item.vue @@ -0,0 +1,46 @@ + + + \ No newline at end of file diff --git a/src/components/AvatarList/List.vue b/src/components/AvatarList/List.vue new file mode 100644 index 0000000..d029686 --- /dev/null +++ b/src/components/AvatarList/List.vue @@ -0,0 +1,112 @@ + + + \ No newline at end of file diff --git a/src/components/AvatarList/index.js b/src/components/AvatarList/index.js new file mode 100644 index 0000000..9621de6 --- /dev/null +++ b/src/components/AvatarList/index.js @@ -0,0 +1,4 @@ +import AvatarList from './List' +import "./index.less" + +export default AvatarList \ No newline at end of file diff --git a/src/components/AvatarList/index.less b/src/components/AvatarList/index.less new file mode 100644 index 0000000..8983dbc --- /dev/null +++ b/src/components/AvatarList/index.less @@ -0,0 +1,60 @@ +@import url(../index); + +@avatar-list-prefix-cls: ~"@{ant-pro-prefix}-avatar-list"; +@avatar-list-item-prefix-cls: ~"@{ant-pro-prefix}-avatar-list-item"; + +.@{avatar-list-prefix-cls} { + display: inline-block; + + ul { + list-style: none; + display: inline-block; + padding: 0; + margin: 0 0 0 8px; + font-size: 0; + } +} + +.@{avatar-list-item-prefix-cls} { + display: inline-block; + font-size: @font-size-base; + margin-left: -8px; + width: @avatar-size-base; + height: @avatar-size-base; + + :global { + .ant-avatar { + border: 1px solid #ffffff; + cursor: pointer; + } + } + + &.large { + width: @avatar-size-lg; + height: @avatar-size-lg; + } + + &.small { + width: @avatar-size-sm; + height: @avatar-size-sm; + } + + &.mini { + width: 20px; + height: 20px; + + :global { + .ant-avatar { + width: 20px; + height: 20px; + line-height: 20px; + + .ant-avatar-string { + font-size: 12px; + line-height: 18px; + } + } + } + } +} + diff --git a/src/components/ChartCard.vue b/src/components/ChartCard.vue new file mode 100644 index 0000000..a84b305 --- /dev/null +++ b/src/components/ChartCard.vue @@ -0,0 +1,119 @@ + + + + + diff --git a/src/components/CountDown/CountDown.vue b/src/components/CountDown/CountDown.vue new file mode 100644 index 0000000..6f9b240 --- /dev/null +++ b/src/components/CountDown/CountDown.vue @@ -0,0 +1,100 @@ + + + + diff --git a/src/components/CountDown/index.js b/src/components/CountDown/index.js new file mode 100644 index 0000000..3015cc5 --- /dev/null +++ b/src/components/CountDown/index.js @@ -0,0 +1,3 @@ +import CountDown from './CountDown' + +export default CountDown \ No newline at end of file diff --git a/src/components/Ellipsis/Ellipsis.vue b/src/components/Ellipsis/Ellipsis.vue new file mode 100644 index 0000000..5f29203 --- /dev/null +++ b/src/components/Ellipsis/Ellipsis.vue @@ -0,0 +1,49 @@ + \ No newline at end of file diff --git a/src/components/Ellipsis/index.js b/src/components/Ellipsis/index.js new file mode 100644 index 0000000..d257156 --- /dev/null +++ b/src/components/Ellipsis/index.js @@ -0,0 +1,3 @@ +import Ellipsis from './Ellipsis' + +export default Ellipsis \ No newline at end of file diff --git a/src/components/JVxeCells/BizCells/WElementCell.vue b/src/components/JVxeCells/BizCells/WElementCell.vue new file mode 100644 index 0000000..435d4e6 --- /dev/null +++ b/src/components/JVxeCells/BizCells/WElementCell.vue @@ -0,0 +1,136 @@ + + + diff --git a/src/components/JVxeCells/JVxeFileCell.vue b/src/components/JVxeCells/JVxeFileCell.vue new file mode 100644 index 0000000..adabb00 --- /dev/null +++ b/src/components/JVxeCells/JVxeFileCell.vue @@ -0,0 +1,222 @@ + + + + diff --git a/src/components/JVxeCells/JVxeImageCell.vue b/src/components/JVxeCells/JVxeImageCell.vue new file mode 100644 index 0000000..df9cc72 --- /dev/null +++ b/src/components/JVxeCells/JVxeImageCell.vue @@ -0,0 +1,237 @@ + + + + + + diff --git a/src/components/JVxeCells/JVxePopupCell.vue b/src/components/JVxeCells/JVxePopupCell.vue new file mode 100644 index 0000000..e031614 --- /dev/null +++ b/src/components/JVxeCells/JVxePopupCell.vue @@ -0,0 +1,60 @@ + + + + diff --git a/src/components/JVxeCells/JVxeRadioCell.vue b/src/components/JVxeCells/JVxeRadioCell.vue new file mode 100644 index 0000000..b39381e --- /dev/null +++ b/src/components/JVxeCells/JVxeRadioCell.vue @@ -0,0 +1,60 @@ + + + + + \ No newline at end of file diff --git a/src/components/JVxeCells/JVxeSelectDictSearchCell.js b/src/components/JVxeCells/JVxeSelectDictSearchCell.js new file mode 100644 index 0000000..d031ebf --- /dev/null +++ b/src/components/JVxeCells/JVxeSelectDictSearchCell.js @@ -0,0 +1,263 @@ +import debounce from 'lodash/debounce' +import { getAction } from '@/api/manage' +import { cloneObject } from '@/utils/util' +import { filterDictText } from '@/components/dict/JDictSelectUtil' +import { ajaxGetDictItems, getDictItemsFromCache } from '@/api/api' +import JVxeCellMixins, { dispatchEvent } from '@/components/jeecg/JVxeTable/mixins/JVxeCellMixins' + +/** 公共资源 */ +const common = { + /** value - label map,防止重复查询(刷新清空缓存) */ + labelMap: new Map(), + + /** 公共data */ + data() { + return { + loading: false, + innerSelectValue: null, + innerOptions: [], + } + }, + /** 公共计算属性 */ + computed: { + dict() { + return this.originColumn.dict + }, + options() { + if (this.isAsync) { + return this.innerOptions + } else { + return this.originColumn.options || [] + } + }, + // 是否是异步模式 + isAsync() { + const isAsync = this.originColumn.async + return (isAsync !== null && isAsync !== '') ? !!isAsync : true + }, + }, + /** 公共属性监听 */ + watch: { + innerValue: { + immediate: true, + handler(value) { + if (value === null || value === '') { + this.innerSelectValue = null + } else { + this.loadDataByValue(value) + } + } + }, + dict() { + this.loadDataByDict() + } + }, + /** 公共方法 */ + methods: { + + // 根据 value 查询数据,用于回显 + async loadDataByValue(value) { + if (this.isAsync) { + if (this.innerSelectValue !== value) { + if (common.labelMap.has(value)) { + this.innerOptions = cloneObject(common.labelMap.get(value)) + } else { + const {success, result} = await getAction(`/sys/dict/loadDictItem/${this.dict}`, {key: value}) + if (success && result && result.length > 0) { + this.innerOptions = [{value: value, text: result[0]}] + common.labelMap.set(value, cloneObject(this.innerOptions)) + } + } + } + } + this.innerSelectValue = (value || '').toString() + }, + + // 初始化字典 + async loadDataByDict() { + if (!this.isAsync) { + // 如果字典项集合有数据 + if (!this.originColumn.options || this.originColumn.options.length === 0) { + // 根据字典Code, 初始化字典数组 + let dictStr = '' + if (this.dict) { + const arr = this.dict.split(',') + if (arr[0].indexOf('where') > 0) { + const tbInfo = arr[0].split('where') + dictStr = tbInfo[0].trim() + ',' + arr[1] + ',' + arr[2] + ',' + encodeURIComponent(tbInfo[1]) + } else { + dictStr = this.dict + } + if (this.dict.indexOf(',') === -1) { + //优先从缓存中读取字典配置 + const cache = getDictItemsFromCache(this.dict) + if (cache) { + this.innerOptions = cache + return + } + } + const {success, result} = await ajaxGetDictItems(dictStr, null) + if (success) { + this.innerOptions = result + } + } + } + } + }, + + }, + +} + +// 显示组件,自带翻译 +export const DictSearchSpanCell = { + name: 'JVxeSelectSearchSpanCell', + mixins: [JVxeCellMixins], + data() { + return { + ...common.data.apply(this), + } + }, + computed: { + ...common.computed, + }, + watch: { + ...common.watch, + }, + methods: { + ...common.methods, + }, + render(h) { + return h('span', {}, [ + filterDictText(this.innerOptions, this.innerSelectValue || this.innerValue) + ]) + }, +} + +// 请求id +let requestId = 0 + +// 输入选择组件 +export const DictSearchInputCell = { + name: 'JVxeSelectSearchInputCell', + mixins: [JVxeCellMixins], + data() { + return { + ...common.data.apply(this), + + hasRequest: false, + scopedSlots: { + notFoundContent: () => { + if (this.loading) { + // return + return '' + } else if (this.hasRequest) { + return '没有查询到任何数据' + } else { + return this.tipsContent + } + } + } + } + }, + computed: { + ...common.computed, + tipsContent() { + return this.originColumn.tipsContent || '请输入搜索内容' + }, + filterOption() { + if (this.isAsync) { + return null + } + return (input, option) => option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0 + }, + }, + watch: { + ...common.watch, + }, + created() { + this.loadData = debounce(this.loadData, 300)//消抖 + }, + methods: { + ...common.methods, + + loadData(value) { + const currentRequestId = ++requestId + this.loading = true + this.innerOptions = [] + if (value === null || value.trim() === '') { + this.loading = false + this.hasRequest = false + return + } + // 字典code格式:table,text,code + this.hasRequest = true + getAction(`/sys/dict/loadDict/${this.dict}`, {keyword: value}).then(res => { + if (currentRequestId !== requestId) { + return + } + const {success, result, message} = res + if (success) { + this.innerOptions = result + result.forEach((item) => { + common.labelMap.set(item.value, [item]) + }) + } else { + this.$message.warning(message) + } + }).finally(() => { + this.loading = false + }) + }, + + handleChange(selectedValue) { + this.innerSelectValue = selectedValue + this.handleChangeCommon(this.innerSelectValue) + }, + handleSearch(value) { + if (this.isAsync) { + // 在输入时也应该开启加载,因为loadData加了消抖,所以会有800ms的用户主观上认为的卡顿时间 + this.loading = true + if (this.innerOptions.length > 0) { + this.innerOptions = [] + } + this.loadData(value) + } + }, + + renderOptionItem() { + const options = [] + this.options.forEach(({value, text, label, title, disabled}) => { + options.push( + {text || label || title} + ) + }) + return options + }, + }, + render() { + return ( + + {this.renderOptionItem()} + + ) + }, + // 【组件增强】注释详见:JVxeCellMixins.js + enhanced: { + aopEvents: { + editActived(event) { + dispatchEvent.call(this, event, 'ant-select') + }, + }, + } +} \ No newline at end of file diff --git a/src/components/JVxeCells/install.js b/src/components/JVxeCells/install.js new file mode 100644 index 0000000..ad92fe6 --- /dev/null +++ b/src/components/JVxeCells/install.js @@ -0,0 +1,41 @@ +import { installCell, JVXETypes } from '@/components/jeecg/JVxeTable' +import JVxePopupCell from './JVxePopupCell' +import { DictSearchInputCell, DictSearchSpanCell } from './JVxeSelectDictSearchCell' +import JVxeFileCell from './JVxeFileCell' +import JVxeImageCell from './JVxeImageCell' +import JVxeRadioCell from './JVxeRadioCell' +import JVxeSelectCell from '@comp/jeecg/JVxeTable/components/cells/JVxeSelectCell' +import JVxeTextareaCell from '@comp/jeecg/JVxeTable/components/cells/JVxeTextareaCell' +import WElementCell from './BizCells/WElementCell' + +// 注册online组件 +JVXETypes.input_pop = 'input_pop' +JVXETypes.list_multi = 'list_multi' +JVXETypes.sel_search = 'sel_search' +installCell(JVXETypes.input_pop, JVxeTextareaCell) +installCell(JVXETypes.list_multi, JVxeSelectCell) +installCell(JVXETypes.sel_search, JVxeSelectCell) + +// 注册【popup】组件(普通封装方式) +JVXETypes.popup = 'popup' +installCell(JVXETypes.popup, JVxePopupCell) + +// 注册【字典搜索下拉】组件(高级封装方式) +JVXETypes.selectDictSearch = 'select-dict-search' +installCell(JVXETypes.selectDictSearch, DictSearchInputCell, DictSearchSpanCell) + +// 注册【文件上传】组件 +JVXETypes.file = 'file' +installCell(JVXETypes.file, JVxeFileCell) + +// 注册【图片上传】组件 +JVXETypes.image = 'image' +installCell(JVXETypes.image, JVxeImageCell) + +// 注册【单选框】组件 +JVXETypes.radio = 'radio' +installCell(JVXETypes.radio, JVxeRadioCell) + +// 注册【element】组件 +JVXETypes.element = 'element' +installCell(JVXETypes.element, WElementCell) diff --git a/src/components/README.md b/src/components/README.md new file mode 100644 index 0000000..6dde8d2 --- /dev/null +++ b/src/components/README.md @@ -0,0 +1,43 @@ +####1._util包:存放自定义函数 详细见代码注释 +####2.AvatarList:显示头像群并支持tip,用法参考src\views\Home.vue(如下图) +![输入图片说明](https://static.oschina.net/uploads/img/201904/12181253_O0Xi.png "在这里输入图片标题") +####3.chart包:存放各种图表相关的组件,条形图柱形图折线图等等 具体用法参考首页 +####4.countDown包:一个倒计时组件,用法参考home页,简单描述,该组件有3个属性, +target(时间/毫秒数)必填, +format(function,该方法接收一个毫秒数的参数,用于格式化显示当前倒计时时间)非必填, +onEnd倒计时结束触发函数 +![输入图片说明](https://static.oschina.net/uploads/img/201904/12182046_mwqJ.png "在这里输入图片标题") +####5.dict包:数据字典专用,用法参考文件夹下readme文件 +####6.Ellipsis包:字符串截取组件,可以指定字符串的显示长度,并将全部内容显示到tip中,简单使用参考src\views\system\PermissionList.vue +####7.jeecg包:该包下自定义了很多列表/表单中用到的组件 参考包下readme文件 +####8.jeecgbiz包:该包下定义了一些业务相关的组件,比如选择用户弹框,根据部门选择用户等等 +####9.layouts+page包:系统页面布局相关组件,比如登陆进去之后页面顶部显示什么,底部显示什么,菜单点击触发多个tab的布局等等 一般情况不需要修改 +####10.menun包:菜单组件,俩个,一个折叠菜单一个正常显示的菜单 +####11.NumberInfo:数字信息显示组件 如下图 +![输入图片说明](https://static.oschina.net/uploads/img/201904/12185858_uvJ5.png "在这里输入图片标题") +####12.online包:该包下封装了online表单的相关组件,用于展示表单各种控件,验证表单等等,相关用法参考readme +####13.setting包:该包下封装了首页风格切换等功能如下图 +![输入图片说明](https://static.oschina.net/uploads/img/201904/12190520_jySG.png "在这里输入图片标题") +####14.table包:一个二次封装的table组件,用于展示列表,参考readme +####15.tools包: +Breadcrumb.vue:面包屑二次封装,支持路由跳转 +DetailList.vue:详情展示用法参考src\views\profile\advanced\Advanced.vue(效果如下图) +![输入图片说明](https://static.oschina.net/uploads/img/201904/12193954_Uar6.png "在这里输入图片标题") +```` +个人认为该页面代码有两点值得学习: +1.vue provide/inject的使用 +2.该页面css定义方式,只定义一个顶层class,其余样式都定义在其下,这样只要顶层class不和别的页面冲突,整个页面的样式都是唯一生效的 +```` +FooterToolBar.vue:fixed定位的底部,通过是否定义内部控件的属性slot="extra"决定是左浮动或是右浮动 +HeaderNotice.vue:首页通知(如下图) +![输入图片说明](https://static.oschina.net/uploads/img/201904/12195340_fPe0.png "在这里输入图片标题") +HeaderInfo.vue:上下文字布局(如下图) +![输入图片说明](https://static.oschina.net/uploads/img/201904/12195638_dG5o.png "在这里输入图片标题") +Logo.vue:首页左上侧的log图 +![输入图片说明](https://static.oschina.net/uploads/img/201904/12200908_ihv3.png "在这里输入图片标题") +UserMenu.vue:首页右上侧的内容 +![输入图片说明](https://static.oschina.net/uploads/img/201904/12201226_laQK.png "在这里输入图片标题") +####16.trend包 趋势显示组件(如下图) +![输入图片说明](https://static.oschina.net/uploads/img/201904/12201600_Wo8K.png "在这里输入图片标题") +![cron表达式](https://oscimg.oschina.net/oscnet/661f9ac09016395f9f49286143af3241623.jpg) +![cron控件添加清除按钮](https://oscimg.oschina.net/oscnet/15096e49f2e29bd829e304d56770025d03c.jpg) \ No newline at end of file diff --git a/src/components/Trend/Trend.vue b/src/components/Trend/Trend.vue new file mode 100644 index 0000000..b5c4407 --- /dev/null +++ b/src/components/Trend/Trend.vue @@ -0,0 +1,41 @@ + + + + + \ No newline at end of file diff --git a/src/components/Trend/index.js b/src/components/Trend/index.js new file mode 100644 index 0000000..761366d --- /dev/null +++ b/src/components/Trend/index.js @@ -0,0 +1,3 @@ +import Trend from './Trend.vue' + +export default Trend \ No newline at end of file diff --git a/src/components/Trend/index.less b/src/components/Trend/index.less new file mode 100644 index 0000000..feea381 --- /dev/null +++ b/src/components/Trend/index.less @@ -0,0 +1,44 @@ +@import url(../index); + +@trend-prefix-cls: ~"@{ant-pro-prefix}-trend"; + +.@{trend-prefix-cls} { + display: inline-block; + font-size: @font-size-base; + line-height: 22px; + + .up, + .down { + margin-left: 4px; + position: relative; + top: 1px; + + i { + font-size: 12px; + transform: scale(0.83); + } + } + + .item-text { + display: inline-block; + margin-left: 8px; + // color: rgba(0,0,0,.85); + } + + .up { + color: @red-6; + } + + .down { + color: @green-6; + top: -1px; + } + + &.reverse-color .up { + color: @green-6; + } + + &.reverse-color .down { + color: @red-6; + } +} \ No newline at end of file diff --git a/src/components/_util/Area.js b/src/components/_util/Area.js new file mode 100644 index 0000000..8805d16 --- /dev/null +++ b/src/components/_util/Area.js @@ -0,0 +1,85 @@ +import Vue from 'vue' +/** + * 省市区 + */ +export default class Area { + /** + * 构造器 + * @param express + */ + constructor(pcaa) { + if(!pcaa){ + pcaa = Vue.prototype.$Jpcaa; + } + const arr = [] + const province = pcaa['86'] + Object.keys(province).map(key=>{ + arr.push({id:key, text:province[key], pid:'86', index:1}); + const city = pcaa[key]; + Object.keys(city).map(key2=>{ + arr.push({id:key2, text:city[key2], pid:key, index:2}); + const qu = pcaa[key2]; + if(qu){ + Object.keys(qu).map(key3=>{ + arr.push({id:key3, text:qu[key3], pid:key2, index:3}); + }) + } + }) + }) + this.all = arr; + } + + get pca(){ + return this.all; + } + + getCode(text){ + if(!text || text.length===0){ + return '' + } + for(const item of this.all){ + if(item.text === text){ + return item.id; + } + } + } + + getText(code){ + if(!code || code.length===0){ + return '' + } + const arr = [] + this.getAreaBycode(code, arr, 3); + return arr.join('/') + } + + getRealCode(code){ + const arr = [] + this.getPcode(code, arr, 3) + return arr; + } + + getPcode(id, arr, index){ + for(const item of this.all){ + if(item.id === id && item.index === index){ + arr.unshift(id) + if(item.pid !== '86'){ + this.getPcode(item.pid, arr, --index) + } + } + } + } + + getAreaBycode(code, arr, index){ + for(const item of this.all){ + if(item.id === code && item.index === index){ + arr.unshift(item.text); + if(item.pid !== '86'){ + this.getAreaBycode(item.pid, arr, --index) + } + + } + } + } + +} \ No newline at end of file diff --git a/src/components/_util/StringUtil.js b/src/components/_util/StringUtil.js new file mode 100644 index 0000000..1baa4fa --- /dev/null +++ b/src/components/_util/StringUtil.js @@ -0,0 +1,46 @@ +/** + * 获取字符串的长度ascii长度为1 中文长度为2 + * @param str + * @returns {number} + */ +export const getStrFullLength = (str = '') => + str.split('').reduce((pre, cur) => { + const charCode = cur.charCodeAt(0) + if (charCode >= 0 && charCode <= 128) { + return pre + 1 + } + return pre + 2 + }, 0) + +/** + * 给定一个字符串和一个长度,将此字符串按指定长度截取 + * @param str + * @param maxLength + * @returns {string} + */ +export const cutStrByFullLength = (str = '', maxLength) => { + let showLength = 0 + return str.split('').reduce((pre, cur) => { + const charCode = cur.charCodeAt(0) + if (charCode >= 0 && charCode <= 128) { + showLength += 1 + } else { + showLength += 2 + } + if (showLength <= maxLength) { + return pre + cur + } + return pre + }, '') +} + +// 下划线转换驼峰 +export function underLinetoHump(name) { + return name.replace(/_(\w)/g, function(all, letter){ + return letter.toUpperCase(); + }); +} +// 驼峰转换下划线 +export function humptoUnderLine(name) { + return name.replace(/([A-Z])/g,"_$1").toLowerCase(); +} \ No newline at end of file diff --git a/src/components/_util/eventHub.js b/src/components/_util/eventHub.js new file mode 100644 index 0000000..d8b0d94 --- /dev/null +++ b/src/components/_util/eventHub.js @@ -0,0 +1,3 @@ +import Vue from 'vue' + +export default new Vue() // 什么都没有绑定,因为它只是一个跳板,并且在实时监听 \ No newline at end of file diff --git a/src/components/_util/util.js b/src/components/_util/util.js new file mode 100644 index 0000000..98752a9 --- /dev/null +++ b/src/components/_util/util.js @@ -0,0 +1,12 @@ +/** + * components util + */ + +/** + * 清理空值,对象 + * @param children + * @returns {*[]} + */ +export function filterEmpty (children = []) { + return children.filter(c => c.tag || (c.text && c.text.trim() !== '')) +} \ No newline at end of file diff --git a/src/components/chart/AreaChartTy.vue b/src/components/chart/AreaChartTy.vue new file mode 100644 index 0000000..264dfbf --- /dev/null +++ b/src/components/chart/AreaChartTy.vue @@ -0,0 +1,89 @@ + + + + + \ No newline at end of file diff --git a/src/components/chart/Bar.vue b/src/components/chart/Bar.vue new file mode 100644 index 0000000..28fde72 --- /dev/null +++ b/src/components/chart/Bar.vue @@ -0,0 +1,51 @@ + + + \ No newline at end of file diff --git a/src/components/chart/BarAndLine.vue b/src/components/chart/BarAndLine.vue new file mode 100644 index 0000000..ee83833 --- /dev/null +++ b/src/components/chart/BarAndLine.vue @@ -0,0 +1,60 @@ + + + \ No newline at end of file diff --git a/src/components/chart/BarMultid.vue b/src/components/chart/BarMultid.vue new file mode 100644 index 0000000..96909c7 --- /dev/null +++ b/src/components/chart/BarMultid.vue @@ -0,0 +1,93 @@ + + + + diff --git a/src/components/chart/DashChartDemo.vue b/src/components/chart/DashChartDemo.vue new file mode 100644 index 0000000..a6cf175 --- /dev/null +++ b/src/components/chart/DashChartDemo.vue @@ -0,0 +1,187 @@ + + + diff --git a/src/components/chart/IndexBar.vue b/src/components/chart/IndexBar.vue new file mode 100644 index 0000000..ae787da --- /dev/null +++ b/src/components/chart/IndexBar.vue @@ -0,0 +1,61 @@ + + + \ No newline at end of file diff --git a/src/components/chart/LineChartMultid.vue b/src/components/chart/LineChartMultid.vue new file mode 100644 index 0000000..b8ddda0 --- /dev/null +++ b/src/components/chart/LineChartMultid.vue @@ -0,0 +1,92 @@ + + + + diff --git a/src/components/chart/Liquid.vue b/src/components/chart/Liquid.vue new file mode 100644 index 0000000..eafec75 --- /dev/null +++ b/src/components/chart/Liquid.vue @@ -0,0 +1,77 @@ + + + + diff --git a/src/components/chart/MiniArea.vue b/src/components/chart/MiniArea.vue new file mode 100644 index 0000000..1afaf2e --- /dev/null +++ b/src/components/chart/MiniArea.vue @@ -0,0 +1,69 @@ + + + + + \ No newline at end of file diff --git a/src/components/chart/MiniBar.vue b/src/components/chart/MiniBar.vue new file mode 100644 index 0000000..0c91709 --- /dev/null +++ b/src/components/chart/MiniBar.vue @@ -0,0 +1,76 @@ + + + + + \ No newline at end of file diff --git a/src/components/chart/MiniProgress.vue b/src/components/chart/MiniProgress.vue new file mode 100644 index 0000000..0e7d400 --- /dev/null +++ b/src/components/chart/MiniProgress.vue @@ -0,0 +1,76 @@ + + + + + \ No newline at end of file diff --git a/src/components/chart/Pie.vue b/src/components/chart/Pie.vue new file mode 100644 index 0000000..93f5643 --- /dev/null +++ b/src/components/chart/Pie.vue @@ -0,0 +1,70 @@ + + + \ No newline at end of file diff --git a/src/components/chart/README.md b/src/components/chart/README.md new file mode 100644 index 0000000..d2789c8 --- /dev/null +++ b/src/components/chart/README.md @@ -0,0 +1,367 @@ +# 报表组件文档 + +## 柱状图 + +##### 引用方式 + +```js +import Bar from '@/components/chart/Bar' +``` + +##### 参数列表 + +| 参数名 | 类型 | 必填 | 说明 | +|------------|--------|----|------------| +| title | string | | 报表标题 | +| dataSource | array | ✔️ | 报表数据源 | +| height | number | | 报表高度,默认254 | + +##### dataSource 示例 + +```json +[ + { + "x": "1月", + "y": 320 + }, + { + "x": "2月", + "y": 457 + }, + { + "x": "3月", + "y": 182 + } +] +``` + +##### 代码示例 + +```html + + + + + +``` + +## 多列柱状图 + +##### 引用方式 + +```js +import BarMultid from '@/components/chart/BarMultid' +``` + +##### 参数列表 + +| 参数名 | 类型 | 必填 | 说明 | +|------------|--------|----|------------| +| title | string | | 报表标题 | +| fields | array | | 主列字段列表 | +| dataSource | array | | 报表数据源 | +| height | number | | 报表高度,默认254 | + +##### fields 示例 + +```json +["Jan.", "Feb.", "Mar.", "Apr.", "May", "Jun.", "Jul.", "Aug."] +``` + +##### dataSource 示例 + +```json +[ + { + "type": "Jeecg", // 列名 + "Jan.": 18.9, + "Feb.": 28.8, + "Mar.": 39.3, + "Apr.": 81.4, + "May": 47, + "Jun.": 20.3, + "Jul.": 24, + "Aug.": 35.6 + }, + { + "type": "Jeebt", + "Jan.": 12.4, + "Feb.": 23.2, + "Mar.": 34.5, + "Apr.": 99.7, + "May": 52.6, + "Jun.": 35.5, + "Jul.": 37.4, + "Aug.": 42.4 + } +] +``` + +## 迷你柱状图 + +不带标题和数据轴的柱状图 + +##### 引用方式 + +```js +import MiniBar from '@/components/chart/MiniBar' +``` + +##### 参数列表 + +| 参数名 | 类型 | 必填 | 说明 | +|------------|--------|----|---------------| +| width | number | | 报表宽度度,默认自适应宽度 | +| height | number | | 报表高度,默认200 | +| dataSource | array | | 报表数据源 | + +##### dataSource 示例 + +```json +[ + { + "x": "1月", + "y": 320 + }, + { + "x": "2月", + "y": 457 + }, + { + "x": "3月", + "y": 182 + } +] +``` + +## 面积图 + +##### 引用方式 + +```js +import AreaChartTy from '@/components/chart/AreaChartTy' +``` + +##### 参数列表 + +| 参数名 | 类型 | 必填 | 说明 | +|------------|--------|----|------------| +| title | string | | 报表标题 | +| dataSource | array | ✔️ | 报表数据源 | +| height | number | | 报表高度,默认254 | +| lineSize | number | | 线的粗细,默认2 | + +##### dataSource 示例 + +```json +[ + { + "x": "1月", + "y": 320 + }, + { + "x": "2月", + "y": 457 + }, + { + "x": "3月", + "y": 182 + } +] +``` + +## 多行折线图 + +##### 引用方式 + +```js +import LineChartMultid from '@/components/chart/LineChartMultid' +``` + +##### 参数列表 + +| 参数名 | 类型 | 必填 | 说明 | +|------------|--------|----|------------| +| title | string | | 报表标题 | +| fields | array | | 主列字段列表 | +| dataSource | array | | 报表数据源 | +| height | number | | 报表高度,默认254 | + +##### fields 示例 + +```json +["jeecg", "jeebt"] +``` + +##### dataSource 示例 + +```json +[ + { + "type": "Jan", // 列名 + "jeecg": 7, + "jeebt": 3.9 + }, + { "type": "Feb", "jeecg": 6.9, "jeebt": 4.2 }, + { "type": "Mar", "jeecg": 9.5, "jeebt": 5.7 }, + { "type": "Apr", "jeecg": 14.5, "jeebt": 8.5 }, + { "type": "May", "jeecg": 18.4, "jeebt": 11.9 }, + { "type": "Jun", "jeecg": 21.5, "jeebt": 15.2 }, + { "type": "Jul", "jeecg": 25.2, "jeebt": 17 }, + { "type": "Aug", "jeecg": 26.5, "jeebt": 16.6 }, + { "type": "Sep", "jeecg": 23.3, "jeebt": 14.2 }, + { "type": "Oct", "jeecg": 18.3, "jeebt": 10.3 }, + { "type": "Nov", "jeecg": 13.9, "jeebt": 6.6 }, + { "type": "Dec", "jeecg": 9.6, "jeebt": 4.8 } +] +``` + +## 饼状图 + +##### 引用方式 + +```js +import Pie from '@/components/chart/Pie' +``` + +##### 参数列表 + +| 参数名 | 类型 | 必填 | 说明 | +|------------|--------|----|------------| +| dataSource | array | | 报表数据源 | +| height | number | | 报表高度,默认254 | + +##### dataSource 示例 + +```json +[ + // 所有的 percent 相加等于 100 + { "item": "一月", "percent": 40 }, + { "item": "二月", "percent": 21 }, + { "item": "三月", "percent": 17 }, + { "item": "四月", "percent": 13 }, + { "item": "五月", "percent": 9 } +] +``` + +## 雷达图 + +##### 引用方式 + +```js +import Radar from '@/components/chart/Radar' +``` + +##### 参数列表 + +| 参数名 | 类型 | 必填 | 说明 | +|------------|--------|----|------------| +| dataSource | array | | 报表数据源 | +| height | number | | 报表高度,默认254 | + +##### dataSource 示例 + +```json +[ + // score 最小值为 0,最大值为 100 + { "item": "一月", "score": 40 }, + { "item": "二月", "score": 20 }, + { "item": "三月", "score": 67 }, + { "item": "四月", "score": 43 }, + { "item": "五月", "score": 90 } +] +``` + +## 进度条 + +##### 引用方式 + +```js +import MiniProgress from '@/components/chart/MiniProgress' +``` + +##### 参数列表 + +| 参数名 | 类型 | 必填 | 说明 | +|------------|--------|----|-------------------| +| percentage | number | | 当前进度百分比,默认0,最高100 | +| target | number | | 目标值,默认10 | +| height | number | | 进度条高度,默认10 | +| color | string | | 进度条颜色,默认 #13C2C2 | + +## 仪表盘 + +##### 引用方式 + +```js +import DashChartDemo from '@/components/chart/DashChartDemo' +``` + +##### 参数列表 + +| 参数名 | 类型 | 必填 | 说明 | +|--------|--------|----|----------------| +| title | string | | 报表标题 | +| value | number | | 当前值,默认6.7,最大为9 | +| height | number | | 报表高度,默认254 | + +## 排名列表 + +##### 引用方式 + +```js +import RankList from '@/components/chart/RankList' +``` + +##### 参数列表 + +| 参数名 | 类型 | 必填 | 说明 | +|--------|--------|----|--------------| +| title | string | | 报表标题 | +| list | array | | 排名列表数据 | +| height | number | | 报表高度,默认自适应高度 | + +##### list 示例 + +```json +[ + { + "name": "北京朝阳 1 号店", + "total": 1981 + }, + { "name": "北京朝阳 2 号店", "total": 1359 }, + { "name": "北京朝阳 3 号店", "total": 1354 }, + { "name": "北京朝阳 4 号店", "total": 263 }, + { "name": "北京朝阳 5 号店", "total": 446 }, + { "name": "北京朝阳 6 号店", "total": 796 } +] +``` \ No newline at end of file diff --git a/src/components/chart/Radar.vue b/src/components/chart/Radar.vue new file mode 100644 index 0000000..aed804c --- /dev/null +++ b/src/components/chart/Radar.vue @@ -0,0 +1,87 @@ + + + + diff --git a/src/components/chart/RankList.vue b/src/components/chart/RankList.vue new file mode 100644 index 0000000..378cc54 --- /dev/null +++ b/src/components/chart/RankList.vue @@ -0,0 +1,83 @@ + + + + + \ No newline at end of file diff --git a/src/components/chart/StackBar.vue b/src/components/chart/StackBar.vue new file mode 100644 index 0000000..01b566f --- /dev/null +++ b/src/components/chart/StackBar.vue @@ -0,0 +1,54 @@ + + + \ No newline at end of file diff --git a/src/components/chart/TransferBar.vue b/src/components/chart/TransferBar.vue new file mode 100644 index 0000000..dd2ad45 --- /dev/null +++ b/src/components/chart/TransferBar.vue @@ -0,0 +1,66 @@ + + + \ No newline at end of file diff --git a/src/components/chart/Trend.vue b/src/components/chart/Trend.vue new file mode 100644 index 0000000..de802a9 --- /dev/null +++ b/src/components/chart/Trend.vue @@ -0,0 +1,85 @@ + + + + + \ No newline at end of file diff --git a/src/components/chart/chart.less b/src/components/chart/chart.less new file mode 100644 index 0000000..7f87905 --- /dev/null +++ b/src/components/chart/chart.less @@ -0,0 +1,13 @@ +.antv-chart-mini { + position: relative; + width: 100%; + + .chart-wrapper { + position: absolute; + bottom: -28px; + width: 100%; + +/* margin: 0 -5px; + overflow: hidden; */ + } +} \ No newline at end of file diff --git a/src/components/chart/mixins/ChartMixins.js b/src/components/chart/mixins/ChartMixins.js new file mode 100644 index 0000000..f99c0bd --- /dev/null +++ b/src/components/chart/mixins/ChartMixins.js @@ -0,0 +1,10 @@ +export const ChartEventMixins = { + methods: { + handleClick(event, chart) { + this.handleEvent('click', event, chart) + }, + handleEvent(eventName, event, chart) { + this.$emit(eventName, event, chart) + }, + } +} \ No newline at end of file diff --git a/src/components/dict/JDictSelectTag.vue b/src/components/dict/JDictSelectTag.vue new file mode 100644 index 0000000..92fbe20 --- /dev/null +++ b/src/components/dict/JDictSelectTag.vue @@ -0,0 +1,247 @@ + + + + + + diff --git a/src/components/dict/JDictSelectUtil.js b/src/components/dict/JDictSelectUtil.js new file mode 100644 index 0000000..e0580bf --- /dev/null +++ b/src/components/dict/JDictSelectUtil.js @@ -0,0 +1,398 @@ +/** + * 字典 util + * author: scott + * date: 20190109 + */ + +import {ajaxGetDictItems,getDictItemsFromCache,initeCusDictCache,getDictItemsFromCusCache} from '@/api/api' + +/** + * 获取字典数组 + * @param dictCode 字典Code + * @return List + */ +export async function initDictOptions(dictCode) { + if (!dictCode) { + return '字典Code不能为空!'; + } + //优先从缓存中读取字典配置 + if(getDictItemsFromCache(dictCode)){ + const res = {} + res.result = getDictItemsFromCache(dictCode); + res.success = true; + return res; + } + //获取字典数组 + const res = await ajaxGetDictItems(dictCode); + return res; +} + + +/** + * 获取字典数组 + * @param dictCode 字典Code + * @return List + */ + export function initSyncDictOptions(dictCode) { + if (!dictCode) { + return '字典Code不能为空!'; + } + //优先从缓存中读取字典配置 + if(getDictItemsFromCache(dictCode)){ + const res = {} + res.result = getDictItemsFromCache(dictCode); + res.success = true; + return res; + } + //获取字典数组 + const res = ajaxGetDictItems(dictCode); + return res; +} + +/** + * 字典值替换文本通用方法 + * @param dictOptions 字典数组 + * @param text 字典值 + * @return String + */ +export function filterDictText(dictOptions, text) { + // --update-begin----author:sunjianlei---date:20200323------for: 字典翻译 text 允许逗号分隔 --- + if (text !== null && Array.isArray(dictOptions)) { + const result = [] + // 允许多个逗号分隔,允许传数组对象 + let splitText + if (Array.isArray(text)) { + splitText = text + } else { + splitText = text.toString().trim().split(',') + } + for (const txt of splitText) { + let dictText = txt + for (const dictItem of dictOptions) { + if (txt.toString() === dictItem.value.toString()) { + dictText = (dictItem.text || dictItem.title || dictItem.label) + break + } + } + result.push(dictText) + } + return result.join(',') + } + return text + // --update-end----author:sunjianlei---date:20200323------for: 字典翻译 text 允许逗号分隔 --- +} + +/** + * 字典值替换文本通用方法增加格式化 + * @param dictOptions 字典数组 + * @param text 字典值 + * @param format 格式化字符串 + * @return String + */ +export function filterDictTextFormat(dictOptions, text, format = "auto") { + if (text === null || !Array.isArray(dictOptions) || dictOptions.length === 0) { + return text; + } + + // 创建值到选项的映射以提高查找效率 + const valueMap = new Map(); + dictOptions.forEach(item => { + valueMap.set(item.value.toString(), item); + }); + + // 处理输入文本为数组或逗号分隔的字符串 + const textArray = Array.isArray(text) + ? text + : text.toString().trim().split(','); + + // 根据格式转换每个文本值 + return textArray.map(txt => { + const key = txt.toString(); + const dictItem = valueMap.get(key); + + if (!dictItem) {return key;} + + const name = dictItem.text || dictItem.title || dictItem.label || key; + + switch (format) { + case "auto": return `${dictItem.value}-${name}`; + case "grid": return `${name}(${dictItem.value})`; + default: return name; + } + }).join(','); +} +// export function filterDictTextFormat(dictOptions, text,format="auto") { +// // --update-begin----author:sunjianlei---date:20200323------for: 字典翻译 text 允许逗号分隔 --- +// if (text !== null && Array.isArray(dictOptions)) { +// const result = [] +// // 允许多个逗号分隔,允许传数组对象 +// let splitText +// if (Array.isArray(text)) { +// splitText = text +// } else { +// splitText = text.toString().trim().split(',') +// } +// for (const txt of splitText) { +// let dictText = txt +// for (const dictItem of dictOptions) { +// if (txt.toString() === dictItem.value.toString()) { +// let name=(dictItem.text || dictItem.title || dictItem.label); +// switch(format){ +// case "auto":dictText=dictItem.value+'-'+name;break; +// case "grid":dictText=name+"("+dictItem.value+")";break; +// default:dictText = name;break; +// } +// } +// } +// result.push(dictText) +// } +// return result.join(',') +// } +// return text +// // --update-end----author:sunjianlei---date:20200323------for: 字典翻译 text 允许逗号分隔 --- +// } + +/** + * 字典值替换文本通用方法(多选) + * @param dictOptions 字典数组 + * @param text 字典值 + * @return String + */ +export function filterMultiDictText(dictOptions, text) { + // 处理特殊情况:数字0或字符串'0' + if (text === 0 || text === '0') { + const item = dictOptions?.find(o => o?.value === text); + return item?.text ?? text.toString(); + } + + // 处理空值或无效字典 + if (!text || text === 'null' || !Array.isArray(dictOptions) || dictOptions.length === 0) { + return ''; + } + + // 将输入文本转换为集合以提高查找效率 + const textSet = new Set(text.toString().split(',')); + + // 使用Map缓存已匹配的文本值,避免重复处理 + const textMap = new Map(); + + // 过滤并收集匹配的文本 + const matchedTexts = dictOptions + .filter(option => option && textSet.has(option.value?.toString())) + .map(option => { + const valueStr = option.value.toString(); + + // 缓存已处理的值,避免重复处理相同值的不同选项 + if (!textMap.has(valueStr)) { + textMap.set(valueStr, option.text); + } + + return textMap.get(valueStr); + }); + + // 如果没有找到匹配项,返回原始文本 + if (matchedTexts.length === 0) { + return text.toString(); + } + + // 拼接结果字符串 + return matchedTexts.join(','); +} +// export function filterMultiDictText(dictOptions, text) { +// //js “!text” 认为0为空,所以做提前处理 +// if(text === 0 || text === '0'){ +// if(dictOptions){ +// for (const dictItem of dictOptions) { +// if (text === dictItem.value) { +// return dictItem.text +// } +// } +// } +// } + +// if(!text || text==='null' || !dictOptions || dictOptions.length===0){ +// return "" +// } +// let re = ""; +// text = text.toString() +// const arr = text.split(",") +// dictOptions.forEach(function (option) { +// if(option){ +// for(let i=0;i t["value"] === key) + if(item && item.length>0){ + return item[0]["text"] + } + } +} + +/** + * 翻译字段值对应的文本 + * @param children + * @param format 格式化字符串 + * @returns string + */ + export function filterDictTextByFormatCache(dictCode, key,format="auto") { + if(key===null ||key.length===0){ + return; + } + if (!dictCode) { + return '字典Code不能为空!'; + } + + //优先从缓存中读取字典配置 + if(getDictItemsFromCache(dictCode)){ + const item = getDictItemsFromCache(dictCode).filter(t => t["value"] === key) + if(item && item.length>0){ + let dictText=item[0]["text"]; + const text=item[0]["text"]; + switch(format){ + case "auto":dictText=text;break; + case "grid":dictText=text+"("+key+")";break; + default:dictText = text;break; + } + return dictText; + } + } +} + + +function getCacheItems (dictCode,key,format){ + const item = getDictItemsFromCache(dictCode).filter(t => t["value"] === key) + if(item && item.length>0){ + let dictText=item[0]["text"]; + const text=item[0]["text"]; + switch(format){ + case "auto":dictText=key+'-'+text;break; + case "grid":dictText=text+"("+key+")";break; + default:dictText = text;break; + } + return dictText; + } +} + +/** + * 翻译字段值对应的文本 + * @param children + * @param format 格式化字符串 + * @returns string + */ +export function filterMutiDictTextByFormatCache(dictCode, key) { + if(key===null ||key.length===0){ + return; + } + if (!dictCode) { + return '字典Code不能为空!'; + } + let re = ""; + //优先从缓存中读取字典配置 + if(getDictItemsFromCache(dictCode)){ + const arr = key.split(",") + for(let i=0;i ({...item, label: item.text})) + return desformDictItems; + } + + //缓存中没有,就请求后台 + return await ajaxGetDictItems(dictCode, params).then(({success, result}) => { + if (success) { + const res = result.map(item => ({...item, label: item.text})) + console.log('------- 从DB中获取到了字典-------dictCode : ', dictCode, res) + return Promise.resolve(res) + } else { + console.error('getDictItems error: : ') + return Promise.resolve([]) + } + }).catch((res) => { + console.error('getDictItems error: ', res) + return Promise.resolve([]) + }) +} + + +///缓存数据字典 + +/** + * 初始化当前页面的数据字典 + * @param dictCode 字典Code + * @return List + */ + export async function initeCusDictItemsFrom(dictCode) { + if (!dictCode) { + return '字典Code不能为空!'; + } + //根据字典Code, 初始化字典数组 + initeCusDictCache(dictCode); +} + + +/** + * 海关参数库UI 缓存 + * @param children + * @param format 格式化字符串 + * @returns string + */ + export function filterDictTextByFormatCusCache(dictCode, key,format="auto") { + if(key===null ||key.length===0){ + return; + } + if (!dictCode) { + return '字典Code不能为空!'; + } + //优先从缓存中读取字典配置 + if(getDictItemsFromCusCache(dictCode)){ + const item = getDictItemsFromCusCache(dictCode).filter(t => t["value"] === key) + if(item && item.length>0){ + let dictText=item[0]["text"]; + const text=item[0]["text"]; + switch(format){ + case "auto":dictText=key+'-'+text;break; + case "grid":dictText=text+"("+key+")";break; + default:dictText = text;break; + } + return dictText; + } + } + return key; +} \ No newline at end of file diff --git a/src/components/dict/JMultiSelectTag.vue b/src/components/dict/JMultiSelectTag.vue new file mode 100644 index 0000000..6e74d6e --- /dev/null +++ b/src/components/dict/JMultiSelectTag.vue @@ -0,0 +1,180 @@ + + + + + diff --git a/src/components/dict/JSearchSelectTag.vue b/src/components/dict/JSearchSelectTag.vue new file mode 100644 index 0000000..1091062 --- /dev/null +++ b/src/components/dict/JSearchSelectTag.vue @@ -0,0 +1,337 @@ + + + + + + diff --git a/src/components/dict/JSearchSelectUrlTag.vue b/src/components/dict/JSearchSelectUrlTag.vue new file mode 100644 index 0000000..9038937 --- /dev/null +++ b/src/components/dict/JSearchSelectUrlTag.vue @@ -0,0 +1,252 @@ + + + + + diff --git a/src/components/dict/README.md b/src/components/dict/README.md new file mode 100644 index 0000000..4106df0 --- /dev/null +++ b/src/components/dict/README.md @@ -0,0 +1,181 @@ +# JDictSelectTag 组件用法 +---- +- 从字典表获取数据,dictCode格式说明: 字典code +```html + +``` + +v-decorator用法: +```html + +``` + +- 从数据库表获取字典数据,dictCode格式说明: 表名,文本字段,取值字段 +```html + +``` + + + +# JDictSelectUtil.js 列表字典函数用法 +---- + +- 第一步: 引入依赖方法 +```html + import {initDictOptions, filterDictText} from '@/components/dict/JDictSelectUtil' +``` + +- 第二步: 在created()初始化方法执行字典配置方法 +```html + //初始化字典配置 + this.initDictConfig(); +``` + +- 第三步: 实现initDictConfig方法,加载列表所需要的字典(列表上有多个字典项,就执行多次initDictOptions方法) + +```html + initDictConfig() { + //初始化字典 - 性别 + initDictOptions('sex').then((res) => { + if (res.success) { + this.sexDictOptions = res.result; + } + }); + }, +``` + +- 第四步: 实现字段的customRender方法 +```html + customRender: (text, record, index) => { + //字典值替换通用方法 + return filterDictText(this.sexDictOptions, text); + } +``` + + +# JMultiSelectTag 多选组件 +下拉/checkbox + +## 参数配置 +| 参数 | 类型 | 必填 |说明| +|--------------|---------|----|---------| +| placeholder |string | | placeholder | +| disabled |Boolean | | 是否禁用 | +| type |string | | 多选类型 select/checkbox 默认是select | +| dictCode |string | | 数据字典编码或者表名,显示字段名,存储字段名拼接而成的字符串,如果提供了options参数 则此参数可不填| +| options |Array | | 多选项,如果dictCode参数未提供,可以设置此参数加载多选项 | + +使用示例 +---- +```vue + + + +``` + +# JSearchSelectTag 字典表的搜索组件 +下拉搜索组件,支持异步加载,异步加载用于大数据量的字典表 + +## 参数配置 +| 参数 | 类型 | 必填 |说明| +|--------------|---------|----|---------| +| placeholder |string | | placeholder | +| disabled |Boolean | | 是否禁用 | +| dict |string | | 表名,显示字段名,存储字段名拼接而成的字符串,如果提供了dictOptions参数 则此参数可不填| +| dictOptions |Array | | 多选项,如果dict参数未提供,可以设置此参数加载多选项 | +| async |Boolean | | 是否支持异步加载,设置成true,则通过输入的内容加载远程数据,否则在本地过滤数据,默认false| + +使用示例 +---- +```vue + + + +``` + diff --git a/src/components/dict/index.js b/src/components/dict/index.js new file mode 100644 index 0000000..6f304bc --- /dev/null +++ b/src/components/dict/index.js @@ -0,0 +1,18 @@ +import JDictSelectTag from './JDictSelectTag.vue' +import JMultiSelectTag from './JMultiSelectTag.vue' +import JSearchSelectTag from './JSearchSelectTag.vue' +import JSearchSelectUrlTag from './JSearchSelectUrlTag.vue' +import { filterMultiDictText,filterDictText,initDictOptions,filterDictTextByCache } from './JDictSelectUtil' + +export default { + install: function (Vue) { + Vue.component('JDictSelectTag',JDictSelectTag); + Vue.component('JMultiSelectTag',JMultiSelectTag); + Vue.component('JSearchSelectTag',JSearchSelectTag); + Vue.component('JSearchSelectUrlTag',JSearchSelectUrlTag); + Vue.prototype.$initDictOptions = (dictCode) => initDictOptions(dictCode) + Vue.prototype.$filterMultiDictText = (dictOptions, text) => filterMultiDictText(dictOptions, text) + Vue.prototype.$filterDictText = (dictOptions, text) => filterDictText(dictOptions, text) + Vue.prototype.$filterDictTextByCache = (...param) => filterDictTextByCache(...param) + } +} \ No newline at end of file diff --git a/src/components/iconfont/common.less b/src/components/iconfont/common.less new file mode 100644 index 0000000..a471b0a --- /dev/null +++ b/src/components/iconfont/common.less @@ -0,0 +1,13 @@ +/* stylelint-disable */ +/* 引入 icon class 文件 */ +@import "./iconfont.css"; + +/* 设置使用字体的优先级 icon- 高 */ +:global(.icon-) { /* :global() 是为了覆盖全局class .icon- 的样式 */ + &:before { + font-family: "icon-", "iconfont" !important; + /* 默认样式是这样 + font-family: "icon-" !important; + */ + } +} diff --git a/src/components/iconfont/demo.css b/src/components/iconfont/demo.css new file mode 100644 index 0000000..de62be2 --- /dev/null +++ b/src/components/iconfont/demo.css @@ -0,0 +1,540 @@ +/* stylelint-disable */ +/* Logo 字体 */ +@font-face { + font-family: "iconfont logo"; + src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834'); + src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg'); +} + +.logo { + font-family: "iconfont logo"; + font-size: 160px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* tabs */ +.nav-tabs { + position: relative; +} + +.nav-tabs .nav-more { + position: absolute; + right: 0; + bottom: 0; + height: 42px; + line-height: 42px; + color: #666; +} + +#tabs { + border-bottom: 1px solid #eee; +} + +#tabs li { + cursor: pointer; + width: 100px; + height: 40px; + line-height: 40px; + text-align: center; + font-size: 16px; + border-bottom: 2px solid transparent; + position: relative; + z-index: 1; + margin-bottom: -1px; + color: #666; +} + + +#tabs .active { + border-bottom-color: #f00; + color: #222; +} + +.tab-container .content { + display: none; +} + +/* 页面布局 */ +.main { + padding: 30px 100px; + width: 960px; + margin: 0 auto; +} + +.main .logo { + color: #333; + text-align: left; + margin-bottom: 30px; + line-height: 1; + height: 110px; + margin-top: -50px; + overflow: hidden; + *zoom: 1; +} + +.main .logo a { + font-size: 160px; + color: #333; +} + +.helps { + margin-top: 40px; +} + +.helps pre { + padding: 20px; + margin: 10px 0; + border: solid 1px #e7e1cd; + background-color: #fffdef; + overflow: auto; +} + +.icon_lists { + width: 100% !important; + overflow: hidden; + *zoom: 1; +} + +.icon_lists li { + width: 100px; + margin-bottom: 10px; + margin-right: 20px; + text-align: center; + list-style: none !important; + cursor: default; +} + +.icon_lists li .code-name { + line-height: 1.2; +} + +.icon_lists .icon { + display: block; + height: 100px; + line-height: 100px; + font-size: 42px; + margin: 10px auto; + color: #333; + -webkit-transition: font-size 0.25s linear, width 0.25s linear; + -moz-transition: font-size 0.25s linear, width 0.25s linear; + transition: font-size 0.25s linear, width 0.25s linear; +} + +.icon_lists .icon:hover { + font-size: 100px; +} + +.icon_lists .svg-icon { + /* 通过设置 font-size 来改变图标大小 */ + width: 1em; + /* 图标和文字相邻时,垂直对齐 */ + vertical-align: -0.15em; + /* 通过设置 color 来改变 SVG 的颜色/fill */ + fill: currentColor; + /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示 + normalize.css 中也包含这行 */ + overflow: hidden; +} + +.icon_lists li .name, +.icon_lists li .code-name { + color: #666; +} + +/* markdown 样式 */ +.markdown { + color: #666; + font-size: 14px; + line-height: 1.8; +} + +.highlight { + line-height: 1.5; +} + +.markdown img { + vertical-align: middle; + max-width: 100%; +} + +.markdown h1 { + color: #404040; + font-weight: 500; + line-height: 40px; + margin-bottom: 24px; +} + +.markdown h2, +.markdown h3, +.markdown h4, +.markdown h5, +.markdown h6 { + color: #404040; + margin: 1.6em 0 0.6em 0; + font-weight: 500; + clear: both; +} + +.markdown h1 { + font-size: 28px; +} + +.markdown h2 { + font-size: 22px; +} + +.markdown h3 { + font-size: 16px; +} + +.markdown h4 { + font-size: 14px; +} + +.markdown h5 { + font-size: 12px; +} + +.markdown h6 { + font-size: 12px; +} + +.markdown hr { + height: 1px; + border: 0; + background: #e9e9e9; + margin: 16px 0; + clear: both; +} + +.markdown p { + margin: 1em 0; +} + +.markdown>p, +.markdown>blockquote, +.markdown>.highlight, +.markdown>ol, +.markdown>ul { + width: 80%; +} + +.markdown ul>li { + list-style: circle; +} + +.markdown>ul li, +.markdown blockquote ul>li { + margin-left: 20px; + padding-left: 4px; +} + +.markdown>ul li p, +.markdown>ol li p { + margin: 0.6em 0; +} + +.markdown ol>li { + list-style: decimal; +} + +.markdown>ol li, +.markdown blockquote ol>li { + margin-left: 20px; + padding-left: 4px; +} + +.markdown code { + margin: 0 3px; + padding: 0 5px; + background: #eee; + border-radius: 3px; +} + +.markdown strong, +.markdown b { + font-weight: 600; +} + +.markdown>table { + border-collapse: collapse; + border-spacing: 0px; + empty-cells: show; + border: 1px solid #e9e9e9; + width: 95%; + margin-bottom: 24px; +} + +.markdown>table th { + white-space: nowrap; + color: #333; + font-weight: 600; +} + +.markdown>table th, +.markdown>table td { + border: 1px solid #e9e9e9; + padding: 8px 16px; + text-align: left; +} + +.markdown>table th { + background: #F7F7F7; +} + +.markdown blockquote { + font-size: 90%; + color: #999; + border-left: 4px solid #e9e9e9; + padding-left: 0.8em; + margin: 1em 0; +} + +.markdown blockquote p { + margin: 0; +} + +.markdown .anchor { + opacity: 0; + transition: opacity 0.3s ease; + margin-left: 8px; +} + +.markdown .waiting { + color: #ccc; +} + +.markdown h1:hover .anchor, +.markdown h2:hover .anchor, +.markdown h3:hover .anchor, +.markdown h4:hover .anchor, +.markdown h5:hover .anchor, +.markdown h6:hover .anchor { + opacity: 1; + display: inline-block; +} + +.markdown>br, +.markdown>p>br { + clear: both; +} + + +.hljs { + display: block; + background: white; + padding: 0.5em; + color: #333333; + overflow-x: auto; +} + +.hljs-comment, +.hljs-meta { + color: #969896; +} + +.hljs-string, +.hljs-variable, +.hljs-template-variable, +.hljs-strong, +.hljs-emphasis, +.hljs-quote { + color: #df5000; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-type { + color: #a71d5d; +} + +.hljs-literal, +.hljs-symbol, +.hljs-bullet, +.hljs-attribute { + color: #0086b3; +} + +.hljs-section, +.hljs-name { + color: #63a35c; +} + +.hljs-tag { + color: #333333; +} + +.hljs-title, +.hljs-attr, +.hljs-selector-id, +.hljs-selector-class, +.hljs-selector-attr, +.hljs-selector-pseudo { + color: #795da3; +} + +.hljs-addition { + color: #55a532; + background-color: #eaffea; +} + +.hljs-deletion { + color: #bd2c00; + background-color: #ffecec; +} + +.hljs-link { + text-decoration: underline; +} + +/* 代码高亮 */ +/* PrismJS 1.15.0 +https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */ +/** + * prism.js default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ +code[class*="language-"], +pre[class*="language-"] { + color: black; + background: none; + text-shadow: 0 1px white; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +pre[class*="language-"]::-moz-selection, +pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, +code[class*="language-"] ::-moz-selection { + text-shadow: none; + background: #b3d4fc; +} + +pre[class*="language-"]::selection, +pre[class*="language-"] ::selection, +code[class*="language-"]::selection, +code[class*="language-"] ::selection { + text-shadow: none; + background: #b3d4fc; +} + +@media print { + + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; +} + +:not(pre)>code[class*="language-"], +pre[class*="language-"] { + background: #f5f2f0; +} + +/* Inline code */ +:not(pre)>code[class*="language-"] { + padding: .1em; + border-radius: .3em; + white-space: normal; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} + +.token.punctuation { + color: #999; +} + +.namespace { + opacity: .7; +} + +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: #905; +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #690; +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #9a6e3a; + background: hsla(0, 0%, 100%, .5); +} + +.token.atrule, +.token.attr-value, +.token.keyword { + color: #07a; +} + +.token.function, +.token.class-name { + color: #DD4A68; +} + +.token.regex, +.token.important, +.token.variable { + color: #e90; +} + +.token.important, +.token.bold { + font-weight: bold; +} + +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} diff --git a/src/components/iconfont/demo_index.html b/src/components/iconfont/demo_index.html new file mode 100644 index 0000000..ac869e7 --- /dev/null +++ b/src/components/iconfont/demo_index.html @@ -0,0 +1,1176 @@ + + + + + iconfont Demo + + + + + + + + + + + + + +
+

+ + +

+ +
+
+
    + +
  • + +
    add
    +
    &#xe664;
    +
  • + +
  • + +
    Video
    +
    &#xe931;
    +
  • + +
  • + +
    直播
    +
    &#xe63b;
    +
  • + +
  • + +
    dayinbaogao
    +
    &#xe630;
    +
  • + +
  • + +
    账册管理
    +
    &#xe61c;
    +
  • + +
  • + +
    error
    +
    &#xe72a;
    +
  • + +
  • + +
    cloud-download
    +
    &#xe7d9;
    +
  • + +
  • + +
    upload
    +
    &#xe656;
    +
  • + +
  • + +
    复选-未选
    +
    &#xe7f7;
    +
  • + +
  • + +
    复选-已选
    +
    &#xe7f8;
    +
  • + +
  • + +
    selected
    +
    &#xe610;
    +
  • + +
  • + +
    selected
    +
    &#xe62b;
    +
  • + +
  • + +
    tag
    +
    &#xe920;
    +
  • + +
  • + +
    禁用账号
    +
    &#xe622;
    +
  • + +
  • + +
    启用
    +
    &#xe62a;
    +
  • + +
  • + +
    question-circle
    +
    &#xe782;
    +
  • + +
  • + +
    拆单
    +
    &#xe605;
    +
  • + +
  • + +
    merge-cell
    +
    &#xe780;
    +
  • + +
  • + +
    合并单元格
    +
    &#xe89f;
    +
  • + +
  • + +
    取消合并
    +
    &#xe8a1;
    +
  • + +
  • + +
    保存
    +
    &#xe700;
    +
  • + +
  • + +
    编辑
    +
    &#xe601;
    +
  • + +
  • + +
    删除
    +
    &#xe74b;
    +
  • + +
  • + +
    报表
    +
    &#xe637;
    +
  • + +
  • + +
    复制
    +
    &#xec7a;
    +
  • + +
  • + +
    宝贝管理-批量修改
    +
    &#xe600;
    +
  • + +
  • + +
    26-拆分列
    +
    &#xe6d0;
    +
  • + +
  • + +
    成本分摊管理
    +
    &#xe606;
    +
  • + +
  • + +
    拆分函数
    +
    &#xe677;
    +
  • + +
  • + +
    分摊账单
    +
    &#xe623;
    +
  • + +
  • + +
    信息提取
    +
    &#xe604;
    +
  • + +
  • + +
    上移
    +
    &#xe636;
    +
  • + +
  • + +
    下移
    +
    &#xe6d1;
    +
  • + +
  • + +
    更新
    +
    &#xe611;
    +
  • + +
  • + +
    刷新
    +
    &#xe704;
    +
  • + +
  • + +
    刷新
    +
    &#xe80b;
    +
  • + +
  • + +
    导入
    +
    &#xe608;
    +
  • + +
  • + +
    修改订单
    +
    &#xe8f2;
    +
  • + +
  • + +
    审核
    +
    &#xe6a0;
    +
  • + +
  • + +
    提交
    +
    &#xe6c5;
    +
  • + +
  • + +
    撤回
    +
    &#xe7f4;
    +
  • + +
  • + +
    撤回
    +
    &#xe60a;
    +
  • + +
  • + +
    清空
    +
    &#xe946;
    +
  • + +
+
+

Unicode 引用

+
+ +

Unicode 是字体在网页端最原始的应用方式,特点是:

+
    +
  • 支持按字体的方式去动态调整图标大小,颜色等等。
  • +
  • 默认情况下不支持多色,直接添加多色图标会自动去色。
  • +
+
+

注意:新版 iconfont 支持两种方式引用多色图标:SVG symbol 引用方式和彩色字体图标模式。(使用彩色字体图标需要在「编辑项目」中开启「彩色」选项后并重新生成。)

+
+

Unicode 使用步骤如下:

+

第一步:拷贝项目下面生成的 @font-face

+
@font-face {
+  font-family: 'iconfont';
+  src: url('iconfont.woff2?t=1657876650291') format('woff2'),
+       url('iconfont.woff?t=1657876650291') format('woff'),
+       url('iconfont.ttf?t=1657876650291') format('truetype'),
+       url('iconfont.svg?t=1657876650291#iconfont') format('svg');
+}
+
+

第二步:定义使用 iconfont 的样式

+
.iconfont {
+  font-family: "iconfont" !important;
+  font-size: 16px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+

第三步:挑选相应图标并获取字体编码,应用于页面

+
+<span class="iconfont">&#x33;</span>
+
+
+

"iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。

+
+
+
+
+
    + +
  • + +
    + add +
    +
    .icon-add +
    +
  • + +
  • + +
    + Video +
    +
    .icon-Video +
    +
  • + +
  • + +
    + 直播 +
    +
    .icon-zhibo +
    +
  • + +
  • + +
    + dayinbaogao +
    +
    .icon-print +
    +
  • + +
  • + +
    + 账册管理 +
    +
    .icon-emsicon +
    +
  • + +
  • + +
    + error +
    +
    .icon-error +
    +
  • + +
  • + +
    + cloud-download +
    +
    .icon-download +
    +
  • + +
  • + +
    + upload +
    +
    .icon-upload +
    +
  • + +
  • + +
    + 复选-未选 +
    +
    .icon-checkbox-unselected +
    +
  • + +
  • + +
    + 复选-已选 +
    +
    .icon-checkbox-selected +
    +
  • + +
  • + +
    + selected +
    +
    .icon-bule-selected +
    +
  • + +
  • + +
    + selected +
    +
    .icon-selected1 +
    +
  • + +
  • + +
    + tag +
    +
    .icon-tag +
    +
  • + +
  • + +
    + 禁用账号 +
    +
    .icon-disEnabled +
    +
  • + +
  • + +
    + 启用 +
    +
    .icon-enabled +
    +
  • + +
  • + +
    + question-circle +
    +
    .icon-questioncircle +
    +
  • + +
  • + +
    + 拆单 +
    +
    .icon-split-order +
    +
  • + +
  • + +
    + merge-cell +
    +
    .icon-mergecell +
    +
  • + +
  • + +
    + 合并单元格 +
    +
    .icon-merger +
    +
  • + +
  • + +
    + 取消合并 +
    +
    .icon-cancel-merger +
    +
  • + +
  • + +
    + 保存 +
    +
    .icon-save +
    +
  • + +
  • + +
    + 编辑 +
    +
    .icon-edit +
    +
  • + +
  • + +
    + 删除 +
    +
    .icon-remove +
    +
  • + +
  • + +
    + 报表 +
    +
    .icon-report-01 +
    +
  • + +
  • + +
    + 复制 +
    +
    .icon-copy +
    +
  • + +
  • + +
    + 宝贝管理-批量修改 +
    +
    .icon-repaire +
    +
  • + +
  • + +
    + 26-拆分列 +
    +
    .icon-split +
    +
  • + +
  • + +
    + 成本分摊管理 +
    +
    .icon-charge-share +
    +
  • + +
  • + +
    + 拆分函数 +
    +
    .icon-fx-calc +
    +
  • + +
  • + +
    + 分摊账单 +
    +
    .icon-money-share +
    +
  • + +
  • + +
    + 信息提取 +
    +
    .icon-fetch +
    +
  • + +
  • + +
    + 上移 +
    +
    .icon-up +
    +
  • + +
  • + +
    + 下移 +
    +
    .icon-down +
    +
  • + +
  • + +
    + 更新 +
    +
    .icon-update +
    +
  • + +
  • + +
    + 刷新 +
    +
    .icon-show-refresh +
    +
  • + +
  • + +
    + 刷新 +
    +
    .icon-refresh +
    +
  • + +
  • + +
    + 导入 +
    +
    .icon-import +
    +
  • + +
  • + +
    + 修改订单 +
    +
    .icon-flow-repaire +
    +
  • + +
  • + +
    + 审核 +
    +
    .icon-flow-check +
    +
  • + +
  • + +
    + 提交 +
    +
    .icon-flow-submit +
    +
  • + +
  • + +
    + 撤回 +
    +
    .icon-show-cancel +
    +
  • + +
  • + +
    + 撤回 +
    +
    .icon-cancel +
    +
  • + +
  • + +
    + 清空 +
    +
    .icon-clear +
    +
  • + +
+
+

font-class 引用

+
+ +

font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。

+

与 Unicode 使用方式相比,具有如下特点:

+
    +
  • 相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。
  • +
  • 因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。
  • +
+

使用步骤如下:

+

第一步:引入项目下面生成的 fontclass 代码:

+
<link rel="stylesheet" href="./iconfont.css">
+
+

第二步:挑选相应图标并获取类名,应用于页面:

+
<span class="iconfont icon-xxx"></span>
+
+
+

" + iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。

+
+
+
+
+
    + +
  • + +
    add
    +
    #icon-add
    +
  • + +
  • + +
    Video
    +
    #icon-Video
    +
  • + +
  • + +
    直播
    +
    #icon-zhibo
    +
  • + +
  • + +
    dayinbaogao
    +
    #icon-print
    +
  • + +
  • + +
    账册管理
    +
    #icon-emsicon
    +
  • + +
  • + +
    error
    +
    #icon-error
    +
  • + +
  • + +
    cloud-download
    +
    #icon-download
    +
  • + +
  • + +
    upload
    +
    #icon-upload
    +
  • + +
  • + +
    复选-未选
    +
    #icon-checkbox-unselected
    +
  • + +
  • + +
    复选-已选
    +
    #icon-checkbox-selected
    +
  • + +
  • + +
    selected
    +
    #icon-bule-selected
    +
  • + +
  • + +
    selected
    +
    #icon-selected1
    +
  • + +
  • + +
    tag
    +
    #icon-tag
    +
  • + +
  • + +
    禁用账号
    +
    #icon-disEnabled
    +
  • + +
  • + +
    启用
    +
    #icon-enabled
    +
  • + +
  • + +
    question-circle
    +
    #icon-questioncircle
    +
  • + +
  • + +
    拆单
    +
    #icon-split-order
    +
  • + +
  • + +
    merge-cell
    +
    #icon-mergecell
    +
  • + +
  • + +
    合并单元格
    +
    #icon-merger
    +
  • + +
  • + +
    取消合并
    +
    #icon-cancel-merger
    +
  • + +
  • + +
    保存
    +
    #icon-save
    +
  • + +
  • + +
    编辑
    +
    #icon-edit
    +
  • + +
  • + +
    删除
    +
    #icon-remove
    +
  • + +
  • + +
    报表
    +
    #icon-report-01
    +
  • + +
  • + +
    复制
    +
    #icon-copy
    +
  • + +
  • + +
    宝贝管理-批量修改
    +
    #icon-repaire
    +
  • + +
  • + +
    26-拆分列
    +
    #icon-split
    +
  • + +
  • + +
    成本分摊管理
    +
    #icon-charge-share
    +
  • + +
  • + +
    拆分函数
    +
    #icon-fx-calc
    +
  • + +
  • + +
    分摊账单
    +
    #icon-money-share
    +
  • + +
  • + +
    信息提取
    +
    #icon-fetch
    +
  • + +
  • + +
    上移
    +
    #icon-up
    +
  • + +
  • + +
    下移
    +
    #icon-down
    +
  • + +
  • + +
    更新
    +
    #icon-update
    +
  • + +
  • + +
    刷新
    +
    #icon-show-refresh
    +
  • + +
  • + +
    刷新
    +
    #icon-refresh
    +
  • + +
  • + +
    导入
    +
    #icon-import
    +
  • + +
  • + +
    修改订单
    +
    #icon-flow-repaire
    +
  • + +
  • + +
    审核
    +
    #icon-flow-check
    +
  • + +
  • + +
    提交
    +
    #icon-flow-submit
    +
  • + +
  • + +
    撤回
    +
    #icon-show-cancel
    +
  • + +
  • + +
    撤回
    +
    #icon-cancel
    +
  • + +
  • + +
    清空
    +
    #icon-clear
    +
  • + +
+
+

Symbol 引用

+
+ +

这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇文章 + 这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:

+
    +
  • 支持多色图标了,不再受单色限制。
  • +
  • 通过一些技巧,支持像字体那样,通过 font-size, color 来调整样式。
  • +
  • 兼容性较差,支持 IE9+,及现代浏览器。
  • +
  • 浏览器渲染 SVG 的性能一般,还不如 png。
  • +
+

使用步骤如下:

+

第一步:引入项目下面生成的 symbol 代码:

+
<script src="./iconfont.js"></script>
+
+

第二步:加入通用 CSS 代码(引入一次就行):

+
<style>
+.icon {
+  width: 1em;
+  height: 1em;
+  vertical-align: -0.15em;
+  fill: currentColor;
+  overflow: hidden;
+}
+</style>
+
+

第三步:挑选相应图标并获取类名,应用于页面:

+
<svg class="icon" aria-hidden="true">
+  <use xlink:href="#icon-xxx"></use>
+</svg>
+
+
+
+ +
+
+ + + diff --git a/src/components/iconfont/iconfont.css b/src/components/iconfont/iconfont.css new file mode 100644 index 0000000..6223523 --- /dev/null +++ b/src/components/iconfont/iconfont.css @@ -0,0 +1,189 @@ +/* stylelint-disable */ +@font-face { + font-family: "iconfont"; /* Project id 3118785 */ + src: url('iconfont.woff2?t=1657876650291') format('woff2'), + url('iconfont.woff?t=1657876650291') format('woff'), + url('iconfont.ttf?t=1657876650291') format('truetype'), + url('iconfont.svg?t=1657876650291#iconfont') format('svg'); +} + +.iconfont { + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-add:before { + content: "\e664"; +} + +.icon-Video:before { + content: "\e931"; +} + +.icon-zhibo:before { + content: "\e63b"; +} + +.icon-print:before { + content: "\e630"; +} + +.icon-emsicon:before { + content: "\e61c"; +} + +.icon-error:before { + content: "\e72a"; +} + +.icon-download:before { + content: "\e7d9"; +} + +.icon-upload:before { + content: "\e656"; +} + +.icon-checkbox-unselected:before { + content: "\e7f7"; +} + +.icon-checkbox-selected:before { + content: "\e7f8"; +} + +.icon-bule-selected:before { + content: "\e610"; +} + +.icon-selected1:before { + content: "\e62b"; +} + +.icon-tag:before { + content: "\e920"; +} + +.icon-disEnabled:before { + content: "\e622"; +} + +.icon-enabled:before { + content: "\e62a"; +} + +.icon-questioncircle:before { + content: "\e782"; +} + +.icon-split-order:before { + content: "\e605"; +} + +.icon-mergecell:before { + content: "\e780"; +} + +.icon-merger:before { + content: "\e89f"; +} + +.icon-cancel-merger:before { + content: "\e8a1"; +} + +.icon-save:before { + content: "\e700"; +} + +.icon-edit:before { + content: "\e601"; +} + +.icon-remove:before { + content: "\e74b"; +} + +.icon-report-01:before { + content: "\e637"; +} + +.icon-copy:before { + content: "\ec7a"; +} + +.icon-repaire:before { + content: "\e600"; +} + +.icon-split:before { + content: "\e6d0"; +} + +.icon-charge-share:before { + content: "\e606"; +} + +.icon-fx-calc:before { + content: "\e677"; +} + +.icon-money-share:before { + content: "\e623"; +} + +.icon-fetch:before { + content: "\e604"; +} + +.icon-up:before { + content: "\e636"; +} + +.icon-down:before { + content: "\e6d1"; +} + +.icon-update:before { + content: "\e611"; +} + +.icon-show-refresh:before { + content: "\e704"; +} + +.icon-refresh:before { + content: "\e80b"; +} + +.icon-import:before { + content: "\e608"; +} + +.icon-flow-repaire:before { + content: "\e8f2"; +} + +.icon-flow-check:before { + content: "\e6a0"; +} + +.icon-flow-submit:before { + content: "\e6c5"; +} + +.icon-show-cancel:before { + content: "\e7f4"; +} + +.icon-cancel:before { + content: "\e60a"; +} + +.icon-clear:before { + content: "\e946"; +} + diff --git a/src/components/iconfont/iconfont.js b/src/components/iconfont/iconfont.js new file mode 100644 index 0000000..aaed9cf --- /dev/null +++ b/src/components/iconfont/iconfont.js @@ -0,0 +1,2 @@ +/* eslint-disable */ +!function(c){var l,h,a,t,o,i='',v=(v=document.getElementsByTagName("script"))[v.length-1].getAttribute("data-injectcss"),s=function(c,l){l.parentNode.insertBefore(c,l)};if(v&&!c.__iconfont__svg__cssinject__){c.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}function p(){o||(o=!0,a())}function e(){try{t.documentElement.doScroll("left")}catch(c){return void setTimeout(e,50)}p()}l=function(){var c,l=document.createElement("div");l.innerHTML=i,i=null,(l=l.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",l=l,(c=document.body).firstChild?s(l,c.firstChild):c.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(l,0):(h=function(){document.removeEventListener("DOMContentLoaded",h,!1),l()},document.addEventListener("DOMContentLoaded",h,!1)):document.attachEvent&&(a=l,t=c.document,o=!1,e(),t.onreadystatechange=function(){"complete"==t.readyState&&(t.onreadystatechange=null,p())})}(window); \ No newline at end of file diff --git a/src/components/iconfont/iconfont.json b/src/components/iconfont/iconfont.json new file mode 100644 index 0000000..601a8c9 --- /dev/null +++ b/src/components/iconfont/iconfont.json @@ -0,0 +1,310 @@ +{ + "id": "3118785", + "name": "jeecg", + "font_family": "iconfont", + "css_prefix_text": "icon-", + "description": "", + "glyphs": [ + { + "icon_id": "15838424", + "name": "add", + "font_class": "add", + "unicode": "e664", + "unicode_decimal": 58980 + }, + { + "icon_id": "8827048", + "name": "Video", + "font_class": "Video", + "unicode": "e931", + "unicode_decimal": 59697 + }, + { + "icon_id": "7408046", + "name": "直播", + "font_class": "zhibo", + "unicode": "e63b", + "unicode_decimal": 58939 + }, + { + "icon_id": "27141913", + "name": "dayinbaogao", + "font_class": "print", + "unicode": "e630", + "unicode_decimal": 58928 + }, + { + "icon_id": "6297014", + "name": "账册管理", + "font_class": "emsicon", + "unicode": "e61c", + "unicode_decimal": 58908 + }, + { + "icon_id": "7712655", + "name": "error", + "font_class": "error", + "unicode": "e72a", + "unicode_decimal": 59178 + }, + { + "icon_id": "4766903", + "name": "cloud-download", + "font_class": "download", + "unicode": "e7d9", + "unicode_decimal": 59353 + }, + { + "icon_id": "109799", + "name": "upload", + "font_class": "upload", + "unicode": "e656", + "unicode_decimal": 58966 + }, + { + "icon_id": "22363423", + "name": "复选-未选", + "font_class": "checkbox-unselected", + "unicode": "e7f7", + "unicode_decimal": 59383 + }, + { + "icon_id": "22363438", + "name": "复选-已选", + "font_class": "checkbox-selected", + "unicode": "e7f8", + "unicode_decimal": 59384 + }, + { + "icon_id": "10132025", + "name": "selected", + "font_class": "bule-selected", + "unicode": "e610", + "unicode_decimal": 58896 + }, + { + "icon_id": "18258328", + "name": "selected", + "font_class": "selected1", + "unicode": "e62b", + "unicode_decimal": 58923 + }, + { + "icon_id": "8815632", + "name": "tag", + "font_class": "tag", + "unicode": "e920", + "unicode_decimal": 59680 + }, + { + "icon_id": "12316666", + "name": "禁用账号", + "font_class": "disEnabled", + "unicode": "e622", + "unicode_decimal": 58914 + }, + { + "icon_id": "16564470", + "name": "启用", + "font_class": "enabled", + "unicode": "e62a", + "unicode_decimal": 58922 + }, + { + "icon_id": "4765736", + "name": "question-circle", + "font_class": "questioncircle", + "unicode": "e782", + "unicode_decimal": 59266 + }, + { + "icon_id": "5199406", + "name": "拆单", + "font_class": "split-order", + "unicode": "e605", + "unicode_decimal": 58885 + }, + { + "icon_id": "586977", + "name": "merge-cell", + "font_class": "mergecell", + "unicode": "e780", + "unicode_decimal": 59264 + }, + { + "icon_id": "10866284", + "name": "合并单元格", + "font_class": "merger", + "unicode": "e89f", + "unicode_decimal": 59551 + }, + { + "icon_id": "10866911", + "name": "取消合并", + "font_class": "cancel-merger", + "unicode": "e8a1", + "unicode_decimal": 59553 + }, + { + "icon_id": "1621105", + "name": "保存", + "font_class": "save", + "unicode": "e700", + "unicode_decimal": 59136 + }, + { + "icon_id": "201638", + "name": "编辑", + "font_class": "edit", + "unicode": "e601", + "unicode_decimal": 58881 + }, + { + "icon_id": "577357", + "name": "删除", + "font_class": "remove", + "unicode": "e74b", + "unicode_decimal": 59211 + }, + { + "icon_id": "2640548", + "name": "报表", + "font_class": "report-01", + "unicode": "e637", + "unicode_decimal": 58935 + }, + { + "icon_id": "5993150", + "name": "复制", + "font_class": "copy", + "unicode": "ec7a", + "unicode_decimal": 60538 + }, + { + "icon_id": "7900736", + "name": "宝贝管理-批量修改", + "font_class": "repaire", + "unicode": "e600", + "unicode_decimal": 58880 + }, + { + "icon_id": "13015641", + "name": "26-拆分列", + "font_class": "split", + "unicode": "e6d0", + "unicode_decimal": 59088 + }, + { + "icon_id": "17426964", + "name": "成本分摊管理", + "font_class": "charge-share", + "unicode": "e606", + "unicode_decimal": 58886 + }, + { + "icon_id": "22928475", + "name": "拆分函数", + "font_class": "fx-calc", + "unicode": "e677", + "unicode_decimal": 58999 + }, + { + "icon_id": "23855637", + "name": "分摊账单", + "font_class": "money-share", + "unicode": "e623", + "unicode_decimal": 58915 + }, + { + "icon_id": "3886594", + "name": "信息提取", + "font_class": "fetch", + "unicode": "e604", + "unicode_decimal": 58884 + }, + { + "icon_id": "7036706", + "name": "上移", + "font_class": "up", + "unicode": "e636", + "unicode_decimal": 58934 + }, + { + "icon_id": "21585949", + "name": "下移", + "font_class": "down", + "unicode": "e6d1", + "unicode_decimal": 59089 + }, + { + "icon_id": "705667", + "name": "更新", + "font_class": "update", + "unicode": "e611", + "unicode_decimal": 58897 + }, + { + "icon_id": "7235516", + "name": "刷新", + "font_class": "show-refresh", + "unicode": "e704", + "unicode_decimal": 59140 + }, + { + "icon_id": "9305753", + "name": "刷新", + "font_class": "refresh", + "unicode": "e80b", + "unicode_decimal": 59403 + }, + { + "icon_id": "18443518", + "name": "导入", + "font_class": "import", + "unicode": "e608", + "unicode_decimal": 58888 + }, + { + "icon_id": "3137960", + "name": " 修改订单", + "font_class": "flow-repaire", + "unicode": "e8f2", + "unicode_decimal": 59634 + }, + { + "icon_id": "6584908", + "name": "审核", + "font_class": "flow-check", + "unicode": "e6a0", + "unicode_decimal": 59040 + }, + { + "icon_id": "6628167", + "name": "提交", + "font_class": "flow-submit", + "unicode": "e6c5", + "unicode_decimal": 59077 + }, + { + "icon_id": "9295572", + "name": "撤回", + "font_class": "show-cancel", + "unicode": "e7f4", + "unicode_decimal": 59380 + }, + { + "icon_id": "22334226", + "name": "撤回", + "font_class": "cancel", + "unicode": "e60a", + "unicode_decimal": 58890 + }, + { + "icon_id": "6219264", + "name": "清空", + "font_class": "clear", + "unicode": "e946", + "unicode_decimal": 59718 + } + ] +} diff --git a/src/components/iconfont/iconfont.svg b/src/components/iconfont/iconfont.svg new file mode 100644 index 0000000..953d13f --- /dev/null +++ b/src/components/iconfont/iconfont.svg @@ -0,0 +1,105 @@ + + + + Created by iconfont + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/components/iconfont/iconfont.ttf b/src/components/iconfont/iconfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f3bfded729b56543c3328734096d784403f4b355 GIT binary patch literal 13724 zcmd^ld3apKm2Xwut#9vpt6Ng57j?JR*3#;3S+b8lRUDK1@g$SD4EIdGBAWJ-#jKW0}d~=4dHzx4ihqb?yL8!dt0__ zoOv_f`}6hfsycP5>eP1XoKxpsLJ1)jvOomVx?$IzwUIj$rwO5*!0z6*tEGLlf7^A) ze;oPY(W4_X&%~zegs}Sw5&!1!)TxQP-X57EM0tXc`kRi7kBmk4%llFHEJE%G5T-`q z0$`Mr+9OBjZhGV+OYeZ*8^}L0H9b1=zd!lP7}^gbf8glIO*6Eg{4>fckdGW2IXdqA zud5#+q^$#e9-f&#KKJn9B?loH^iN9!V;2^d7RW(y>r!dyZE+jNT=8qtF~Gk5Z*T0n z(XskpiAB^ay!88DHgJHaXnV7`O}GPD6JdHW$RlkcFA$ra=U6iyLYDNrQEn!!q?fRD z16y_z`_#zXF%lvMd82$KOs6IfkAS{WLQ#*GQeY^N%UDqq=%~`p>sn(a+YUC6OTHc)9}r zAAnH>YXQ#WJE1paj~H{J4+CrLkid5Zc#(bxbp}WQZR8>?%0*MrTyzzyit%D&v9*{l zb{B_=W5tujGsPbke{znT6VElA8$7pg?$&evciVB|G@bN&tG^g@><(#18b1L zS3U$B>L)eCMXE@GG~ndNuwHf&CJtf+b3{l5R+jT*HA#^=Qc0r3N8;en0C5v1QAj;e zvEsGFL%bx3)4@n134+x)5C8xEv+@OC-tsaua{e&_R-F{VuRLJ=!Bs}UPLLvaoCoX) zDPk3Q!0wPDPCO6TCsG8D^MD;AMW+$4ccjSMAYd0sk+(tMXQs&W2-sOtj2i)aOp3fc z0(P4e`S=j9@1)pj1TG$mIU|4&OFmnw)>Y2;gpV{y`&v&&he{ zFdo41NP#4=F|oC3G;6AbC%7P4_Mx@E?A$kP1$!ltd3WlcIR5>hn&y3wz_`q_Pe*b z@AinE4|$&eU9337;|cbAzLqrV>PW_9pDP-Zz5Yzp<@LAcvaV=*t|KYz(Vq2$JleB1 zkHv_2wxDw&~XK_36kYTGDYUet>jK}FL{tWOdbQP#Zt*s zGTV{M_8n1jYr9r;|Qofmi&S&?ZxP4m4ppY!vaA}8AYUOATR z$mL^p>J8KOUfPkS!Zop}YhtBqVwKBSECyc!8s*(&qP&3q?)cd7sxH;*5<4<`_y6?3 zP^P0JGjw3mU$1&)S0+3+I?~zQ-8nL%3GL%eqB$J`)w(9D( zE*|-S$)swls@tln+PZo4dN7sBBx|d}WlXq@p4OZ3N=CDA+iPa4)nm1)dfg;FsSN>P zrVk^|cdZ&8JD$Qm+G3OY_wvD&N2ySkS5o=N&hZ&ApWs#x+#ZpWN~EW6tL+Qu7Gr5B zj{}3z3dpBA5{;KpU*O~KNH&&-k2$2StOLvei`RmGqfu20Suj!$KO|hbfakt1j6e=} zAivs3KOr7h)Rn-}`dnT)j)l&;I&w7E(L$5pN3TC0kU5(GnQ5<~VTzp>QfX?ZHPqkU zM{{W^JLrc5<>E_1kKN<3U;JytEJ)cyf}#jXU*6?NRs}o{`DC{!{rTOdpof|6_I7&j zHZf1obT2zpdWpqWd+enz^VV#i-J^YxN$hqeh}v6%D5Twz-yNXV%9P`FSKcRy^y813 znKP(98VEe92A$0O7?&1HMd5y-1G9>gRb&#pehc{oCLE2WX%Fq_rC^>gt)^Z(r7;;P z4q1B+CCRuao<)pN)E3(yl#T)jip}-pBJi0AIuA!N4ucN$rhvxM;5EbC3K&_*U=Ex zH4G^ZEB*mLUrGmsNEZ%OSGq;J!yyINRlc#%JvdlhEmMoAx-DuTw|V#V4~3}P6qduS z75o0;LPcjtkz}*PDru;xGIH0Q;o#@P?Gf4Kv$!GX&>V=ZU;xyurT#`?aUzI^`mAl%|a)!naz^0T97tN zqAU+u)RYoS=5v?^KM7a{uAJ=< zWqzJ1FNiLcAnLNv*!fJUQ@iT4HSbyz+qKp#nZlqf zDHdkml>=>5%3hycmu>de_S9DN)V0-bIh3_ZnQdETxnKJn@0lL%m#v&CC(hZ1uiIJS z4A#xTEln;ARw%GcB8o)! z1#UU7=nr=Gf2hYK>?m-r?8SOxYZAGRe|HdnVh)*Kn>2?!>Vnl}Rwz;bFT>LQpsKIG zSM`L<3s#XSOJ-bFaHKHSr-Z)}ngQGN)rnrR&#)}C)t3TGfXBcFiCmb<3iLS>wN3NS z{rb5RClJlk+rf$V+pFvB@2AXBUr8O>KgljSKVL4Ne@^=j_Vj*xeU<(FzqQkFon3oV zh9c(s@_pfHp%=OsmOo6lckcswi?{I+^y*@%JrAK3rb4pxX#GGv{%lZB2ecP0RnDmI zgDOk~^#h_=q;+b@&4eBlUr|^42kj|~t>O+fgkzF`r5h~t@3zY_2fMC znGh8O%JVtTs}@Nz*_P4U91cgEXWKDQ74dkj zUfEXexHe?5xZ~lr#Hh`}9Hlp0yDux?0hD4(&e)#RFJHm zywfHr5))0HU{$Q%X12O0eW%52y&+QX-LTWzSJ+T%x0_6o*H*C&mm@zp&&tH&pQcVwcwx3_!Z z$mwIl2XmdBxr4+1a^t}~eg|)y*H)<(i%Oq?yj-JKzSN2X!v4)EV!4URmPo*=y=)oYbUSakt{+6uunY>vTU&PQ{=4^F-?yedT(y3~4@O6>+g2AT zeb@3COTpf z&&$>BN*q=IW{VIvuBtJak<&+v-8%BtGH`l)@9wrtrfv7$zgq?@fmMB7>7XRE3R36x z&YEDPPKRCgrfl#db%9s_f1!YVyi7)?ck#I^=;#Dl-s|(#<*H5GFfm12TB3nEvvpO% z$MXSuP;zf1MSJw=d< zk(9D1x`qUQFcKB-2&v(VtOfY}(AM1ET_u8whE)KyPiQB2uD z!Nw@xBQuQ1_sUM|Fn8GuTb;-hu0|{r5|!FwWg<~Y3zdn2w#W!Y3@pzZWd(Z1B!67C znx^3OnKD@co32LCeG3b`eo1e&u)r2e1p~ttIex*I|I(wvv%(;5X94)i+WE~G*Zz1G zaW>=Oa7KsYxJU$WS5gA`RWuuo=Tpim>RUwv`Ba9!s_mfP$Z1c~{#=fJL)(#~{o0ec z+==A&x8L5LJV8(KnCCVNpVeNxaPh?p+KbE3lP6Q#bK6rV^#EA6Q7(@O791auuRNjv zhsz`Kq?D8rz<@A@KQe?5rDkVS$B*kV`o8eQ#TTErP)_OQ`)3n9m_d81moPNK9eYvzh($o}TU#e+pVxzKn5L6M#rC&)VSvE;K5ddxT zJD+^g=}*$88lCFv_c#Ip$34j>(X8ekP}|S*>`SQ9TvOW5u^`#3%h0!k&k0tXoe0(| zg|)&P1D_%X{24faxH**N-lBL6yOe@=5GTm1(g0QRfrNg&zvNcpGr#f}@pYgRv|cou z%%X6&!04ylfn=bj%6+7+kdhoyQr0%pXhAzW@5|F~Tbw>e=?=TkXQ%gAoKA~2uFHX& zYco!|hthlOW)rRFG%6#Y0vc;mFlv&rLwk-!*J@`wuIv0QTHWdJ!KpFq@Hqp{OuTe= z9PST#+5!hO*bw~jw5~I(@Bp{MgRu`cQ^PG*-q4j9?la=2o-=|j`HVRx40k1%0|qee zWpJPAjdj^^DF>sQi-?fN^Y=zVe|M%cr9B;L3Z3DiLnt6F{TbZ8Yiw?9fu7L{DB|^P zbkXhx5NcWgtjifqZ*m!CkwRT3suy_ukcX496-p6c=vlklZPy|kLto~x76lrwa`^%X z_p%~Rrvh2wfPM&Y|FkFLis#`_@xYOy=qd7mIsQ{ScC@e`mGU3!??1)UxBL4)(BJ== z{(kmqsdM#ey6#(RcF_N&eM8gelBT~eg-$*LS?quZG6TDO5PF$lnXWh-!d1E_k8)ki z@-wA7$91=`fdf;)({>pyt02y7?1j=~+N@cguI)RsEUj>guOUKhsZoI^5hG4|=qWI}~!$ z=iR~5*Szjvkb|LZO*N&T@>=WY$?iueqtvQ)i=YTnN|)mD-Bo>8H)#D9a>Jn3T+>|o z?lPsITe}T3|DNZQL!1t;#pN(~Z2?!+D|xMk-&eU$8ty?nP)u=GhJx3!2rdNf$m1!R zmNIu_X#B4}`cdt39hZJUgJdbg?ki1{!_Nwf1zNxl5$~4o!_C64gfZ~oCbEZ&koS@k z=rszX+~-O`6Q=lL@(mE=I5%utxs4mu9c_4J(#K#EbNfAz!EVL5*G>1lM0KN>ViOGR zh4H)s_HY%#i}GbRGSB~a_BETsyrp#imViU3Q$*nll47#hQq?y2WwbM*Y?aT8j47(s z4MJcj+<22kAFCtZj1!0`-8xfxyfX$MA@a znaytPv7Vy#i+Wn?2$arB7Fm1{p1DYcDoEfCLHuh;g^_PkC0UTXZLLX3f(ta_3)y6p z%IX8`-at(N{{>1rB#O$MG!!4qD)^?jcLu%) zncp&?JGf_3$-o%_WC~Yn#Qenr7Mfo)0`T+UT*Ofuj`u)j`TCndDKs_ML4sI-)fqRW zZ7wn+BVj2DP7C z{aE`z&~LK~f^(0_Wj4D^6X|AqPoi;yQ?T2t6^at~If9a$2_G?vPkAI}vv`7$hK7RZ z`RcZ9+Pc=*`SZ=2o0>K^pFbaKWtMH*s;PN%zbdO9OTdxMIefMN+{ptQf$^FHj;=0_ zd1YZoYm9v_*17`?O9LRlzQybnR)4~qG?`kMYoWNLLQ9qo$SM&kU>(9>UrfxP0A^&YSXI8R*f@|%%Az}?Qhj71waH8yS< z;!$H|lh>T=XsgcDUJFTg>e#)!YE!7mXGwIlLs4D))w?UhW6R!>+6J3`=nwmT-n6An zVkVc@ZJ}~^;%C0F@0nzmY;pUXGFw~j8v}Sd+}4padz&h2GZ!~r6aD*ZVLRTwCiY{Q zU2Q`!u^mILyE2m5ZKbNqEVT9C#4XR8`rDYtIi4=TS?i`+eb4 zLLdK@L?;WK&n*C)1UvHwXrLS75HD$k55r-s{Rp;&_9MmVvWlWi-)EClMWHh)odEqG zvET56P;%0|EQvO!OV&QEFp17^Pciq^{*BNttj2d33H0R4r+m711fK)sq33$3q`>0= zZ*5iyWc9BDvK@>(_~5?5O^r?M-BoL*=`J3xEu+}%sRtiA)zr9YaNiBvy0fd-POlj- zlFNALU*50bm+|5LMQAF+#j^3hnaYK~lBv;sr@G5Yk>e=k3IMNq;xzK|U3QnZx+YcE z(o&m_C&RYt+R9J=^6Y19E}xEVtxeZ9#GE#t$>OryMO%OGuc}H$>Z_wJyE7W{q&5#q zZ`ULe9gW%A2B*W-ln4ituHYKoHqd+tZ#o zrer_7Nr#qe^v&xvo);yLdYef!BesK~p|6>CvL?VSkreXxjma> z7Dr0^*R`_g5VeYCOXBA}zFuF)iK#eFlHdMSOE|s#@V(6HmQ1FdVUPHAyx|br9<#cs z$>AS7wWBxYH!+vxyOEbWWtXz+Wp-!TH;H?YjdYM6%x)WB;e0NY0ii*1-Gw_OnDR8^aN))BWi)DLX<(m? zL3|++U>S>-#h5CWZjnW4N~yGbLUph%!J%GfQdu`sP1?uW8)RXh;1i|cxWgif4BxZR z3Pr3iTcjSVwMLXpg5r>Pt*qZ15Tr}l4xa_r9iA04D2-gojs(}4oXjbhsy#XsU`p5x z$RT(HC0xeQKs^-c4fR&I@6687SADf|jrhYrBdo_j#SdAHY;)e~ZBj+izIwYkoDa6S zOnI%!gbBr~bMz-)ZXY5E2F)gI}ONwh-rS48T!#~K{$Ucu`B zdRvWM5}e*ZL2-!`7SFnvWUuqKn4Eg9KQ2-|>*78SnG;ZXDbMP11akZ(Zei&^d@EXp z`PclqMF$Ln_p7pu=U-IE%CHEyp$tp#kF}R!8Tg(uY{m^~eHpfZ;taT*irm|gB!60l zDZX|6Z)KR_JKx94umJosWmp9KKg+NLd4H}9%fNF72d8N!L)2D=EhI@t`)9{T=Elb& zhfYN%N2iZXOdp$DPIrzUo}U_-UCu72L*ui@C#R1^+S0Ads14)C#%Gtw96xcmeQs_d zGBG=SG%^5s<5N@9k(t@)_l}RwrH{(`#Nm zn&WWy9LDy|;h8}D2~e9RM*$6#$2X3VOaYEy19{ndL1z@T)A*Q;x0-=txCPJhe3t8{ z^?4rEZCsthU`t)|*91qJK;fOHGF7OFs?Lx~Q9asF(VvAHMVo8l)jw zNvojgxKxY4u^gjuT1yi&NmI0r*3$-jIMhU&i7+xYCJjxFjZaIbk4zq#mS$!rkIgCL zN00Lzmd0mir)N!L(N3zK%#9p2k4+w5e{AH?)cBY(Zlw12&5s|S19y#1&W=uvTaM36P0lq>&yJ1H zsz=9X508(6X=ELmwT+G(L$=w-iN{AyjEm!AlXLRy_|fSTn& literal 0 HcmV?d00001 diff --git a/src/components/iconfont/iconfont.woff b/src/components/iconfont/iconfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..bfd5e09b0ea10640cd1ee99cddb875fc5149989c GIT binary patch literal 8696 zcmY*;bx<8V^yS0d-MzSLad&rj*M~b4cZU{tDgJPZ7b))U?!_q%@5i^hvpaid&LrpL z-kW45e#b2*9UNJOPmYYq@j(H~+8y|C@}4mN)b<#gO%e` zll6pfmvhA_@S2-Y4bJ%+c1$%n|?~ z_4$lr{{#<(9;}}2r}(MWd~)(nP{T7q-P$^NeEN`n<^p`i0zjZB@Qb61#eaU+pIrYx zTqN#UI+^)=&P%5F$;m!J4j}>9a5i(Y`lODZYY_ziAZ^e~1VKO-caP8E&p99zKJi{< z14i@7wJ^0bHQh01GX+_gy1CvVnC*5_-2Pn zZXFg43HTxaBMbO1*38U0x36!kuWw=0BQhkUh)kTb$C}Oj01(Ro;@~uefv~HiM~2I1 z@2WI+e%kKq>kEh~!l0XoE{;Y3xZWTi_~b68Pby=XVMi9wTh%bzS3iYm*VgvdBCYg= zCRG1{wuom>!0QuA2C;<`LA2I&Av}N%V5fM~K$O&=0q>U%F~dez<^1wH8uypUN8yS- zCN`?AIR1s8lvAQrm0Iihe+1d{|NI^#9xa4VvIHAPN-!o*Bza-kV~2EO7BdI^90#5M z4x3Rf&a>5))i&oP&e`#^>JKS5=;Wq%yHygCxfmOYqW`liXnnc2_$fU8X7knw5AtGI&Y$<)r zS{~%e5Fk z)R=-a7@LAKSXFt%{w2~r>AXC9c!jMoYK8kYdWDxGmXFOXj*qJ`K0L)Go1W@UR)Pvn z&Ow?dwKcwr+KGrjo}a@l!^7T^`E+8$WbRkxhd}K2lzD6cX)lex1is3y=9Yq1(<6an zG$r(f#5oL)`$_}-E~Cn8KYel&{E$3|hcaw+w7?Y={(gRb`kZqC{=%s=38kmcBcBcP zGh>+58?P5SAO6a58hW%6`6#7NxabHPj|2Q}$S#QWYdEzf)<`N!At>jt0YuGu@OKwv z^LrFYu-^?8VK*Z1YyMKFmQbUWxmN*~hUdBV;zgA~+hu)}1o2yn#S@w#?{HDB9^;|Z z`o!Uo?#6glgHMYZulu5Ot)$oUw4U5}FpHy}nI;_iB7`KZE>2J|Ee+98dl^{llE%(C z)4?_8*XD-Q2F4|wHQA-i9A4EP zLkFHNhKp#qVrt5^(CoCItI_k{sd1}sGBa5h2`9S}&FwVvBwG+Ej|aa`$KXuGWK5Y# zjYa7r9NNy0&!XPHR*MMs`YFa_1x&6tT^+xA`?qAb`Gaw8glWEH8^7#Fv5=CGk##>M zlcmr^Sc(LO;I#5^>(EkrNHuC!Wyp^%$TDzqNFx!k8ULC|BRoANAgCD1iE&$H#PORW zQS^g08ZMs|``vs$;-ab4#HD0rp>RSN%uB9$kDfl+uy{w-(}Apjc3i*G7R6H6B#)5A zE>^_&y6pkC@r^El#?GoddaFp&sdCH)q)Pn#s0>BD8arIwRrEdM}l|VVJb&LEmIC z=~tEJ>HhI8LABx^M)V4@&@wTRB_;ex9AA+i@!nNftKWGeRB#CnoBHGLIUbCT^kl8* z12*bUlh=%vAu09zk&rW4&U}4xmsG`Q^lQWZ5;6H7 zQ9Em2r28{swrGnSbbp#OJ@!1tSe)trO*Kzp#eu#v$r$kvm7K7`)EoR1fg8J7A zs$tyyL>U?onHDfD(eY?bw{f38b1 z#0JN3fSCD@hS!ezMV*YR$BkiOs+#D>Y9n_WHvvH#|E4(|p>*7rkE`1?)Fka1uTT3W z5jgwun0A*F+93*PSbm}nkUy#3K#CdYldGh{C?63!$LH*$0)K=({7QZ0dqlX@C_Fb@ z=ghH&p_s4kd=?#XJIu|f4)r1sFJ#)#`e|J5Y0SmOjD9VgP@b&gq-e$mO{AZ`-l_rZ zCOY$QCR(#mdH#*+s{owO51*QXz|mkKE|HK;jd~-GkLsZg%ze^VuIPD{WVyZQCD52FF)hfgc8+hwp>e z<=5fT_zGE&_e8L&IGlNw23T}NcTM;o9IeEk>mxSNMU0$@ZSOI~$h%|YDPohC4dw>IPAfYr z=EBUn7moEVO)2pKR0^CbJrcX#*dKA>0Vz5&i7{cLmzM{>V`feaVWdGedP7B$CXA)H zch&n)P!GC2KO@U^Xkd-vJO@By8@7F6Wg@9GsW6Q1YV9P2MW*i|JP3*v>8#vDAQV5W zZzv0V=Y?Z?&9i3k^YVpfXQmA~X+ViwSnf?bM+G~k=w}KxAxfzjt)ot1v)MHE-C>9 z+EIj^90>jb2^%7|`b?-V5MPx3eU%N7GfG3ozqNd|)889?m@l;64WrddFcF&1U}^z) zF9ATAj0MY2-~e-kH@akFcG$Pb5_%qc@Gj*?T()Mgdqj3~I?SXd%^*E^wDB!iC!H6p z*pPY_`p3dfPN|U*#vw5EjhVo*hx}0ave_FZPIADDKoZgtd9ZLrmP!rMKhZb%ZuS^_ z@oX_%$QSDjE7v8X^6#uba^>V)IuguU9Fs_TaZeVw1s2Xd74kDl`WW3lrQ582b%|34 zvWR?9Ns$8$RiC6y|Hkpj77*8A8(mOuL6B!enXngGYb!z%_W8a@^!7tsC?)sZ4#p7X zP@`+C#F&O)$P%(+n(!Rl1h%Bx@T^YdN^xVHF7ZUvW;)5f}mDi1-;nBXunfE#dOAgut;?vX^6w$3j zOAZub$phmjPLaQn*o}@()5pf7{YCEaOlH&U@k`(Zk8$MLn2;dl1yP6W#qbIr3NY^9 zzlgyjXBFwu6<6-|yqTi0qUZmRWS$!&Be1W@^V%ztf9^W1yna9t(qk+i8U!BeMOe~d zd(Kl0N$jErk(U-(!b(9ar4>igWtJDOx~i7xb#(=en?{1d))K_}ufgejKR zW#sPS{$in+Uzx9KT$hL+8pB}Z{7W)Zx+otO{wtPi&6J3ndr`C9d&lN0Zf|FhQBgS0 zwBprP@Xc{C`9R!X7ui>wZlaWZ{?aR{OF7k<{{kf~87srsgOI z1sn*#-tPYGzU|M)=Dc5*f9q-*>?P8Q1){EGl9c3_#5kyvl}K)oYfi>xc3$3oyZX`F ziEQY7nx99N&)eueEy4mtVe@Z6mxdzQj52;I!5VYb7&hlcROn{anD(kKs(FfX;G4#D zfm9SkJ3-UMmb83%VoWX(;n>&is@4wM`PLHJ@RRZn%>fa6^^&C2 zw)|FYU0ypm|M44v)F zHRJtufx>kmGHXlBINANUWq69;@%?*qOGLm>@M)d~YxjO{GqRAYl5ZWmPETYYg!RkO zMD~WMl$VVZYJ>n|2~WDJZ?ETlCc@(Ge-sgw-_m|(&&nZ1wc{S=dT2F~a@qAqghCtf1g zd+XOWC;|^7Ytw3sB$>5Ws+;zZ-r21mB={qH^)|4u*Ayut0L>!w^{we$$29i*97 zpMw}$${S3=5w!JYSfPqKATybfCtrsraNhxWV5ZEVxA_=>x~^Hj#nZyXeo5E+OgxVR2%x%ak}b}($|`= zs>4C01ki}EbX)u<-ABRwBnSC+-=6i%s{deoOg>R%n)WBr6NbD73aD2u zXk6f}D%F?5!EJ^g`p;TQC`S=)}4!a_j&(uQKWCQ?yiJ;S}9L>`}99)Bl_AuDH* zYPX%=5lC$Nj(RUG>cqym^6{IaOmd+Yp)k1kV$OL@MMg~sxv^EW{c%)3at$&&O}ZQo zY?^5}FG23$`IMa}Nm^@Wzuvhhak;(a76)EjI~5UiZ${eQ6yA95SZi@Xv(IDd;#&jz4b3zO&klmCV z4x4wgTS~ApcAKD=p0M-Ig4#BOFlaV~E&W`@MepxzM542$2O$HJuzPvIUpmPLs_nUm zjM+y8J5ovkVZ*xWT=UA-)=MHHEZ1X2p_}tKOEb|mV{=#+EL{<2mk$=Iq@vqppkC%Z zzCb`3$?+IXY!S={s7m^M_>1wQ$)yC$fL#H$IAyR1E8Qwf1UxxOI9NaoVp&HUIt9KV zWjB>P8gq1Q6a?R0>_*lzKFW8k2hUJ|baoet=rJ-kH}~(2r?GE!Bj{3s>D(Xfaa**Z zV?m>I4#_z~#{I7*1Z6`%hd$R54o!VZIRdD0e9w$MI+9)`PfqeG0;z=J53uX-dO6G( zv_OsuiRE=IoYk5qiCliR$~a*99nW(|nVUc?8%jw+S9zYCsnKg>VEffL$cGQyj|9~O z1@-v^Zsxn*k{cZ0r${kstgI>zXy^E;g8j-X9ZkB_K|R`%5KiuQIv#fEzzh*3p-tIo zuNBuuy45;aKrq#N^JnLKNCz<&1kS~JLO8sww;$)LUPeuE}lu~ zMF&oxdp|op=~n}^a~)!i?Rsn81qy`Fn?zw-;L`$%`*h@C7I!g;M$D?CGlKeFNXgr1By$=1rei$Qw}~7J7UQKvTt}(G4+LL z{dkOg(Z0Hf#xkkQjrm_XRT`8nvAu2Ad@=V8!ABn-lbv?6+d}9X3N0z=I(>MtvZE zTlQpPki?Ka4)S893Ha1BTJ)x~f8=kU%AVaT9+ZI$G*eE4Equ)W5Z*=eyP};UveZR% z^s=Y5_>Hk&skXWW)F#Z;Lb-b}7|7yy(d}+7a(scmio(*`;O`Sf`%?{tzFc0qTtrN0 zT17F*bWszyVt!>FBvwZO1?1#|$++cmmBk7t!HbAY<#rncYtxmzY^z()<9MzL@tmn^ zu-`+j6;(Ae!md2TW5f|W$$Sv8#m>I7KVxR?`Rz>5uTD)v?R+`myCkHz5bd#|W^`LyJa1#^`N`dKFnO;% zdlyAjy~!m?RG0R=$_Z(X-gry7iKD_PYkXtof<;?!Ubalq^LPVwWaxj z?=QSTfgriG=xpko!|2#&tNm?L?ahnpq@!fXI4|Xf10LPBCWA~3PovE?&(>fd$V6OP zk+{-#(a8V3KBCkM70JGeZ#fvHU?^0kIS-orn zTk09FlVF#(&f;sdCV0XcmN_Yte@wco59zyG+C;T#j{QM;XO-wGBuCV{POPZ8g z?s`r$*{LdO35xZouXx@t#R0YfRvH89q5>#FqNh_ zhLwi!Kqg(Ou7s-cGLgmxOU29M0Cmb(HB0H52a)@H{sG==rC#}%31m}|8-Vjls{6kB zRlE>sCKcZb0&=E8M_)TF>#eQma6Dm{lHpbNbN;aoSI8p9uyyppUZ%sa4XI+?Wk1;YN~#fj zbrSUfYpCr;FZI%ss#M95*w(w1F)c87G3Fxdd6v|f+Wo}|E!1tf36gjBT} zam-yOtSsN$yH@OJ-n{98a*^DqfpE^`wK&sAf_JxB6>IsR+sdIvOTW_3@7fCEa@K7T zTZmf6*2S@WT|++CP;>rsU0ay(C%u+4lNfzo;qK!pfk(m32ZKC8e(dc&FkXId$hxe{ z0Xl=nZHv;_U+lnN7peoLRNoW7+ZJmxB^9UmF$0$fI{waWheZo20FZETl`McU>zTl% zfSW&B_TJ(q0yjl5cL{9&=8_yU=edU1T9^$IoiEq8_;p-%lGPr-)BI{Z&~{yf3?JtG z`OOZ)iS59&y_bO^539?@P7p4R<#TBBP_RK<%-e{CKK7_|z{A=_+H-sSo8z-E z&sc!^M>4@wP-jPC*pz7W@Z1fMA9ZO*-NW?urvX!k#eUj{H`Oi>+G)Mpcfac6qi6ly zCERX;kUMN*P)aP~7)?Vw7{NJ?8XlAFmXVMwDg2*rSKVxvb4?a2eqB$M%fO#{m(2Ve zw0;xtsB)l%YSYH{Ca?lk?Ecm6vI3Z|6w_@`BL4wJ;gb5zJc|-!_HrIcvEeuaROABw z8VsUL{jGjog9hcf=&?z@~;i1hAuD^Uow4z!-}CqNzI1$ z2CgO9>ag-h#TbDQY;u=E2Bhq2GxDgvk3Yx&TQZLvb4g2s2{GbnSk_4KODhfRAb&8E zF?XWWfE>wP%I`W9M3?oORaHYT5MJ!Ap!VPc3MDIXN{57rDzcz7@}Z#K?|t2r_h~Ji z7)#a$U$ZT4als@a=pvSwD|Lzf@Nz33wJ)g@Giv|Z&(L>0nyjPt#8|JyIQ=_(UCpHv zci>YraKnh1%1QtPgOutWVG_z@_;X=_gdwV5QUg|4q6t1|l|_7#l$TY2(#SH-@hEhH z_4QdA^OJ+Jnu!={UNb_}d%~JrlzJ81Yod22PyU6N3h6DJebLvJe#W<5HE?q z_?hE>84CnIL^-4*6fsmNG&FP}^a>0Mj3Z1V>@A!uTqC?Nd@BME!Z(C2L`}pABzdF& zq!;9G$UP{IsG4ZVXnW|W=;G)>=o1*q7z>!Vn97*nv7oVnu)F^6o@UJ2`})QKkcy%c zFyY9^;NJnT07^SZ^3Od-qzF0pi=syq{7!~Wr;{(`veTxg!yJ7}m#tJStSE$QI+AH! z)@PMn_^OncjCBBiYU>^=>$@TWCDpaI>ax|7MKTJw1Vu&Nb{?~=4$w5EGPd`X05e|F zKq^7Fbwx4xz`U1gAQY<)mUE-UAJqKdp_&M9GqkoR^tv6`f_|+tlYZf6gZ4?Pt_j;w4?c7M|rBC8Nb1apMO2JtklPpcouqiddQ_XdYoPf@g zuXvRs*^(%})%z~OAh{Yg3V#yvE_joQla z1t_MtD&)ZCU&UC#suRg?5G!deIzG8hs>5z!Z0Lup*y}6GSKT_+sYxTO2P~zYGm_+# z2tNV>*{FrBSnL1RXuEVLE-&@H_U6xu;R!>AN6$!*K@H-YhqEt%5>Xt@k=9p!vpj&3 zposV2hxvZfPXQB=4EGS1+kZ1(0+Zkb_YkIKyI8O&eSU;`T<48y!j+{&#L=~-o>P)r zG@l{}F{WEn){N0O-o!uIR2|D{>8cNs#3W=q9>>qg&&vM;k2owhB!whD)S6aOVyMOK z*T>eRb?nRmr5czsJYsl46-8+8#B$RSiL9k_aat7h4-I%|3c@{#iVRgMU4Ab7p<(?j ztshcW(WFI&9*t5=>k4J85YlB&U`=5sxf{(C{|iO19auXk2I@#@=r-Rg5azVi2W8D_a4N_wJ%?05_DMhBN;WigYWf74Sbj(xk}% literal 0 HcmV?d00001 diff --git a/src/components/iconfont/iconfont.woff2 b/src/components/iconfont/iconfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..0a784881d7998459e98a09e2ce3e3c564869dcd8 GIT binary patch literal 7284 zcmV-)9E;<3Pew8T0RR910337x3jhEB05zNd030I#0RR9100000000000000000000 z0000SR0d!Gi9`z0c*0EqHUcCAfiMeN00bZfgl7kXeH&6NRR?m|H~`khzF}nle@JeO zfft}Q%SME5jFIJ#siE4KL?rQ$$utW;%)#6=BI&qwtgB5@NvG5 zYm{Yzm02>a4iMWASAMCam5KHULxfG0qAAlw=aMMA_A4Et^Gvo|#?%JO&efr%PEeUJ zM8wyN?%c}}&}iLGao5&F6QDeFzG5y2l7+_xvi{+r`^%;QugfC2B0H!L)T&OIQ+Qb& z@tHV;m*`I)?%E70QB4w_(Y`Ah8*n{xuP!;ZO^|+Z-P~F*bVLmjmK`gOA5=Gl_tm7Z zOr=KAN4GXS1=s?^sVzaRdW|}S;E5q5mkKSmQe8ToE?-tEY>R0tN6Y(9^3l;!?Kp6|DG*fZFYZDPdbW$PJpnsP^TD|l&uLA}Ow z7&c>3lSwsNjcU^@8`m%G-WO`boOweg^q5ksPp5Wu7BpxytxLCAE%-mYB?E+7LEmPG z-O#>70R%Bf@j&!au!u1V4$(ouBZetnh#3k2u}GmInkaO{Bqf9~C36AMO5q_!DFQ?r zB?i$<5h5~0h8U;F5&e`@M53UKd$J7>fl`eap>!hVD5nwgl*@=A$`!-}6+rY*VG&bQ z0z@s97STuLKy*?qN3>J@M^zWdZ$PyG@_SG(Yyl@jxh-{$MK^yGfiD2b193uE;<0HYZZz41afhxT@n`>oqy$TN{}r* zT45y+n{lIA#$x0~%Y!vyH(FWE^dOxeJ&yC>b#P6qT9##mjFv@0>|??jY43e(U6z}w z@Bh}Dk&{uv&?p}5^8bFJ^0n54InE~O)O+l~1@q!V>+xlJ>CvKxy!E_SpOk9ZCT9+H zTiLidVNKD=^#U8jV(_}JtbMcY@S9c{g{r=tUDaUYqm06x;K!4HFOGF z-CFr%A16z6r;tlaTG>h%Zf3g@b(_GR%|b}$o||)dIstyGhLIB5~YBIMD&c_h35~#g)vsdg8R*F`_&B`60?LCMwNE>d{w~@q^k4bjkP_T77 z-np{aU}EehhUrGuY(fCRaKI4hD+h=GIw1l9Hc~7>$Q$u^`C=bWb53%>fUdsq{eb~T zb~0H{aTEU;hOSpmC0tMOuJ&u1;oa|-Z0RYw@`=8oQlF}o`*$En9fTMM;>(mY+foeI zS$Zk>^%48|f&cy$-v?&3im~NFrOUZBc`knZ^=F^89-m7*xBe*4G&g^8wF=BL<2OvG zrmdJ1hW&#eW%@oEzDQw6XPu`tIBdfu9jsLXR;pI!!%fldz6X;T=)-WV&FU zd5UA!^SR4Io_$vBvdCdX)g4wc4XV9v-5T8^xJBK!2Lbc_^%V5l*Bt8EbXe~?ZuvqV*4#OhRiU_g+-N}0Su^lVv7RzHPr+`ShJ}=p<1@93412$=qGjUfr zo=~s!tt*-Rd%HR5wHj1C!c*-gIek1{A$+MDz~Gpt(c8sfCk0ySjt zBMt6qM~Pj2j7UqDXG_ZsHi3$@FThE?x$`TZUh8ShG#)#yxJvf^p2_chwKQ0dLw0+4 z!dG)$*~lwOypf^P6Wy-Td%gGZS7GOAFU07XXDv??Jj{~yos+g+e9TmAV}XVgVphd_ zRedb^ISMf$PI=i-`-;SUR=(I_%J>csy3u!K-@eqq0)d-34Ut*5{|)0LYpF7GL~ zLr513u?fu7(JL0C_64m@##P;pQ1SGJ#1|F9Fz-1+ss$At2Pm#9Co1<^y$SyD0H_VZIna zP?#q|yjYwsL@*TRDLLu-kcI$0G;Bb6i^v#JAp|gJqq=-N;Iw$4EgexW$rX`c2UpVemXN?I5U!0nsu=!1E=o^9p=WZe8%{|M z4sprGmSX7Qk{+Z3BNfE@v>|=ewWVR(T$j|=sm4ER*{rda2}878>NEr|YT{m+Uc(yd z?0CUfLz<&<>oCR^1nDbT>VG7(z_K@oUD|Gh_M+>4f!#W%3S~i|$4z$T#!6g^zKenA zNes{-szs1-M`3#hdZR5fxr3YoZoa_=N29jrvy^9bQmw38`x3BR)wKgYI?NyV~7zBs{-XH@ydB`&fi;yYjK@ei%}ik zhye;jNsA4o4rgPQWP^AFMxE9%<{{f8L?s+C`O6A*i(Ejp120;8DbVAu*ETbEHZFO3<@4XM-_jF(^RciosG`-H}gV9 z&LB3JZX&!1yLsE3Q{EEft4E%EdL?LavWlCR#%^}Io)QlY#0w5}ixR%9D97XH6CS?) zve_&x!2q4>y95@UhB_LC85?iV&|SsQ7gSqOvKs#R&+V=45;##cdn}!knf&kHyo(pK z6r>J}QvPPca|*|-3E&`x=)(an*!xdJy=_I>bm7T`lf;tbk4mt;;1O)*ooGjsYJcHV8qEzrT(%C<_Z5A=&u5}bO`T3 z#D>-CF!M*3GTF%}hFi>!5tT2;m3vT)_iF?3Xus{*gYw8RsjEYL-cpqWQ?w0vD!~UR zHSfB5#%nfy({g#Xb((qKD#wm(a$gNn_{|D8-z5g3wXy9Y5E8LI%CA&1%F?$JCX#w% zo(N|IErPdG27(cAKw#TCeMn2ba4&!#nqbF=??>Kuy~S@1S(Kgs}X12=rI_qaTrzf$+xvDmSI->Xios!yBmdshn^L zfZJqCnw|H&!g%^xtNP81`StYgPmsWPzXRgjT^g)8;kUnN>$Ntaa$EYrR=haQQ(GAq zZ=XNi+8VZc9EV0dGufldM)usev2deaB^PjqsHLObl0;7UU4C2oVt==07Zq=hT{h9m z&;+SdN8Il4qii!&) zS1l4mEJm^DRf$E6AmWe248PS5rk;uAhgB4(SmknSO7Y{A5_yp|sW^Fz=~cXp&$29D zWne{|j?7}s-ViWp_VgV=s05KB60|Lp=t^}FQxc7NJSgueu}h^#Ly5ancN0^=G_oVG zR9dQPPdpk%+MTkSlnV8iNwtx8sZvy|fs~n_SO`a%M}3I0<~1Rt>Y6KNx^7{fBeT7Fv^swwyfQ{ zzjj$dKuwp+l4NyGH313BYFiF~4S`|2ZUJwQC+Oy-E^r(BCVP)5lTCt z4F;puqOl-w9aE1v>z-@#w5SGMIY0kC3Q;5W26aP&yNr^We4y=RK*sJE?qVfg9(%6b zpdve;J*%&G=4x~4=Z6rF-_zCxI=?S9=VayQPoCVhvkeni```R)Z)(iw51lW^s+MlH zsZ6bE+OMRxey4lWOKVo&YyjoQa$iAeC~f8NDi@c;D__s>V$>D!k`5RPErq{cSbgEw zg2LHOr94s>FH4*By zWK$9or^wcxe&~jYgsPh<6{o&-+Lu91#IeEPAU4gb6PeIgV@0fQ_8^?1jbv zMY5@SI40zO$3k%UHPb>fj50xVR#vpY>8173dO2klsdRFpdS$GNH~V!&jQsy)8X+Q^ z#@A~3(-MiNvc-bD#z_brQ7X%%{bef&p*JF>rARy|5WTt`gaoCN?h`W7dCk#0)I>M) z(#@h0KGU-`sP)On^cg)@Zct-=eIL|hcYkYa1km0?l@)`7mCuw_IruDVu;SVCRx!9r z3p@bxW=F@(=t2I?x;l^X7mnXOUxd>TJP?;m&_-+cd`&cP9joC-b9jCrq7=@48sKCt zZfFQ(I~o=>NC=WBMZ+dqAP_fqw|7v+M@IEyrdg?;9vdP|;|ZW4wPF<^=M8n22i$h% z3|Gc|@BrawwKgo~W+3Jwwxr9Mr&ur~j*u5NGK$5CZdE1eZ4=L^KN4@<;F}mqNBcz| zYT!$I*s0lW!wcZNfWtJ@6m?Qkd|zs^Ob6iv{9Dy`s`)`57w;Z_{me@G$wT7o7*Wz} zOW(M4&c{&;OjH(@7xctOW==FHiKCbFnHt`)uTk>-lEOi|=ONwH+2a>~(=)3$lgof@2}&dN+1@F`|k(3HvfN*unIZD${4b9w*~m?M(s0Nm`1E^M%5E zF?u0zKYG3p6<-Kk2(pru8C(8Y73y^Yf{+aF#aXIf%JF~P__-#+w>YUk#q0VWX;w_= zs?}@wbUQb40*Uz!XTqeoxJe0(3$JYxxTnV~M8fIePGWTjFF-;=LY^>KQp{&hhb-`? z329aQ(<1>u2m%l_Z{XflkF=~sXnkI@tutn;b+%U@Ex%LmOYQY$2kZz|2g5{hQBo*} zT|hg8%l{B~kn`u3Kl!p(D!%HKEHR1+@2{*vb-MSm_vJ@-3jng(HI^V2UYq?&*6-`z z`Xv)ul4GC0Ai+)o^HVp_QjFDL3$bc1buzg|7rYH?@#?)@3BD9~WDD5X2O8uFJ*j*!j zX7{sxX7#ZNeSZ5vsR?-WZJW?mO~A6Z@*(=hjr3r)9kH`Q=w)Tq84A1Vjv7Iz2PACv zF$Wf_Lc*L_ws)N9#`~yhYBj|#%t}>LT8M7NP0WTfcr$s7@cM8rua4*j|9bM+3p?N# zGIuzbD|*w_^BKJQd4 z#sfnKBO`V?`YTFb!`!rKsA*H`5Y2y$$FcfZaf7YJhYeEqA#OIK(Px;^#<<96C3kIL z7#A@ajf`QqD5!|kp=tzC^^h9Wy8)va8ftHBm$dWR`x@FC?6Fc<>O$*8A8~M~#>C{r9gQopeMk1}nJS-hz(3G*@0L6J-J7Rl zurI%X1y2l5;&O069RGrF-Ryn!I=wFB9H}KorA%FAS`ppteE~ z$<6*_9UY@D%v~}NTdfWV19AbT#*yL(W(MX4GJ_pr>rc;TKW}4`x#UhF(gU6OvBdQ% zE5({Z;hQ~MJ+a8!oZ{K2$K%`ZX(nsi!v&dAP2Rm;SZ}BI6paD_{j^dc(@q=mK$V#m z%nG%-Vx4dou1muKTM?5j5M-l{y%0tJIKjK%W5UfyGBg+*&c&z>SMOzb zyG}IUIp$r^F}O#Q?DO~`p2+pS4)`B>{a-hJD>UW`V^5=0Buqm^ug7W=ghnMUa6VBO z&`H4PQSstQq2`xmtF zE+ENZZwqRZ$;OYa^J0+4WwO#YP=AIHnOA-W=RM6-3wTW_1H#MIMc(-+^lGa)`f|DO|QcsW72o9`L6$o-;wU+eQg}>XO=Ry=KS&?NI zn?)v*$Sk(aA=;VJl{vZX*|LfJfm zI14T_K}=}DBSIe`mR!K2oui{D9sTcr5k~2)k&#k*>AI1db_V+2{|GFjcDg-jr3|o; zGLurCt5$-bwcfn4V5O+ZyWhI93cnnHY=K|4C4dt!eyjdGdfs6WOBJ+_;~$XNdn5?{JvKMNaWS4hxYADPEqhVa%6-u zF1>uYX*gxDmhBoaAKzBL%{tBug+txI%tlsyQne@2^p(g<}=uO&1b^rSY53qbafJ}Fz5PoBh_|sN4F$^v%~j$ z{nB22s%lnM*-zc;B9=W4Nd8aMlVuZ`^EdjZ{KtRe{7Rij*<@my{dpR>u87ao-TgIP zl-R;0;{1QNrZ3sjjk~n(;FwImkX>?LBT_Y)ph@P1cZaFtz!Tb!c?aC*?1aJ~dj^{3{>XMn3V_>@{(>Bmrcyd9ozAHU54K5o@0k#Yv3IG6<@((|d z1|cm}+}7n%5BD3W4I-J~b$S2*r7@2nwzKULC&UnCn-DPSp$CwyhekbC2RSHjgXfvt zRuA`e)ljU9+D0e?9(IZfN^{8s0CWiR35cu}+Nd97`Ez5ZozW3|9Z)7?D?`3n6 zBe4BdM}(X9Y?lRYxjFU3Kfcv}0a}E5N(+JepF`&k|=%> zGQ=;=uhC=^Y9W5d{6KJEi!&=oF zFI>$Jd}b(xO&9(G={&0Tk41uA6!o0Ao_q?d!kOui+%pk3zkTI@dA|@g#fl>LPm>W) z^z6-QzEt3TN=<3Kj@ZXGtQBeA5D?T+&5uhB<*toQ7aL!oJAEECjQ+8Rw&zu)xqYP` zUH5|=02F?H21QAd6;;y>)3P1c^I2>Tm&X?fMPi9mrl_Q>qN=8@p{b>X?$;XDsb0WzeG>}HyE0@Q4%V+AH5`bd zw!ZL-VYj$|OL`@!yv41cv*>Io!V>qxHMH3zxU8@4fuhw=XJa!JuKj*Sw$Od$hC?yJ zrH4{H+w_YrlkPe@t9TfZcQb)k)ri-$;wn`e`hzcG{z1B9_<@k_pL>qYRFmH83T>9J OHgMU)dMhU<0000brvyL% literal 0 HcmV?d00001 diff --git a/src/components/index.less b/src/components/index.less new file mode 100644 index 0000000..34794d2 --- /dev/null +++ b/src/components/index.less @@ -0,0 +1,5 @@ +@import url(~ant-design-vue/lib/style/index); + +// The prefix to use on all css classes from ant-pro. +@ant-pro-prefix : ant-pro; + \ No newline at end of file diff --git a/src/components/jeecg/JAreaLinkage.vue b/src/components/jeecg/JAreaLinkage.vue new file mode 100644 index 0000000..32e0b0a --- /dev/null +++ b/src/components/jeecg/JAreaLinkage.vue @@ -0,0 +1,148 @@ + + + + + \ No newline at end of file diff --git a/src/components/jeecg/JCheckbox.vue b/src/components/jeecg/JCheckbox.vue new file mode 100644 index 0000000..b1ea4ff --- /dev/null +++ b/src/components/jeecg/JCheckbox.vue @@ -0,0 +1,45 @@ + + + diff --git a/src/components/jeecg/JCodeEditor.vue b/src/components/jeecg/JCodeEditor.vue new file mode 100644 index 0000000..a5966b3 --- /dev/null +++ b/src/components/jeecg/JCodeEditor.vue @@ -0,0 +1,488 @@ + + + + + \ No newline at end of file diff --git a/src/components/jeecg/JCron.vue b/src/components/jeecg/JCron.vue new file mode 100644 index 0000000..bbf4168 --- /dev/null +++ b/src/components/jeecg/JCron.vue @@ -0,0 +1,68 @@ + + + diff --git a/src/components/jeecg/JDate.vue b/src/components/jeecg/JDate.vue new file mode 100644 index 0000000..ddc143c --- /dev/null +++ b/src/components/jeecg/JDate.vue @@ -0,0 +1,19 @@ + + + diff --git a/src/components/jeecg/JDateRange.vue b/src/components/jeecg/JDateRange.vue new file mode 100644 index 0000000..37b1b92 --- /dev/null +++ b/src/components/jeecg/JDateRange.vue @@ -0,0 +1,65 @@ + + diff --git a/src/components/jeecg/JEasyCron/EasyCron.vue b/src/components/jeecg/JEasyCron/EasyCron.vue new file mode 100644 index 0000000..e83e855 --- /dev/null +++ b/src/components/jeecg/JEasyCron/EasyCron.vue @@ -0,0 +1,296 @@ + + + + + diff --git a/src/components/jeecg/JEasyCron/InputCron.vue b/src/components/jeecg/JEasyCron/InputCron.vue new file mode 100644 index 0000000..23ccd69 --- /dev/null +++ b/src/components/jeecg/JEasyCron/InputCron.vue @@ -0,0 +1,99 @@ + + + + + diff --git a/src/components/jeecg/JEasyCron/format-date.js b/src/components/jeecg/JEasyCron/format-date.js new file mode 100644 index 0000000..8a55974 --- /dev/null +++ b/src/components/jeecg/JEasyCron/format-date.js @@ -0,0 +1,37 @@ +const dateFormat = (date, block) => { + if (!date) { + return '' + } + + let format = block || 'yyyy-MM-dd' + + date = new Date(date) + + const map = { + M: date.getMonth() + 1, // 月份 + d: date.getDate(), // 日 + h: date.getHours(), // 小时 + m: date.getMinutes(), // 分 + s: date.getSeconds(), // 秒 + q: Math.floor((date.getMonth() + 3) / 3), // 季度 + S: date.getMilliseconds() // 毫秒 + } + + format = format.replace(/([yMdhmsqS])+/g, (all, t) => { + let v = map[t] + if (v !== undefined) { + if (all.length > 1) { + v = `0${v}` + v = v.substr(v.length - 2) + } + return v + } else if (t === 'y') { + return (date.getFullYear().toString()).substr(4 - all.length) + } + return all + }) + + return format +} + +export default dateFormat diff --git a/src/components/jeecg/JEasyCron/index.js b/src/components/jeecg/JEasyCron/index.js new file mode 100644 index 0000000..f7f4624 --- /dev/null +++ b/src/components/jeecg/JEasyCron/index.js @@ -0,0 +1,6 @@ +// 原开源项目地址:https://gitee.com/toktok/easy-cron + +import InputCron from './InputCron.vue' + +InputCron.name = 'JEasyCron' +export default InputCron \ No newline at end of file diff --git a/src/components/jeecg/JEasyCron/tabs/const.js b/src/components/jeecg/JEasyCron/tabs/const.js new file mode 100644 index 0000000..e076ee1 --- /dev/null +++ b/src/components/jeecg/JEasyCron/tabs/const.js @@ -0,0 +1,21 @@ +export const WEEK_MAP_EN = { + 'SUN': '0', + 'MON': '1', + 'TUE': '2', + 'WED': '3', + 'THU': '4', + 'FRI': '5', + 'SAT': '6' +} + +export const replaceWeekName = (c) => { + // console.info('after: ' + c) + if (c) { + Object.keys(WEEK_MAP_EN).forEach(k => { + c = c.replace(new RegExp(k, 'g'), WEEK_MAP_EN[k]) + }) + c = c.replace(new RegExp('7', 'g'), '0') + } + // console.info('after: ' + c) + return c +} diff --git a/src/components/jeecg/JEasyCron/tabs/day.vue b/src/components/jeecg/JEasyCron/tabs/day.vue new file mode 100644 index 0000000..25e6260 --- /dev/null +++ b/src/components/jeecg/JEasyCron/tabs/day.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/src/components/jeecg/JEasyCron/tabs/hour.vue b/src/components/jeecg/JEasyCron/tabs/hour.vue new file mode 100644 index 0000000..7df6c05 --- /dev/null +++ b/src/components/jeecg/JEasyCron/tabs/hour.vue @@ -0,0 +1,67 @@ + + + + + diff --git a/src/components/jeecg/JEasyCron/tabs/minute.vue b/src/components/jeecg/JEasyCron/tabs/minute.vue new file mode 100644 index 0000000..00e42b3 --- /dev/null +++ b/src/components/jeecg/JEasyCron/tabs/minute.vue @@ -0,0 +1,67 @@ + + + + + diff --git a/src/components/jeecg/JEasyCron/tabs/mixin.js b/src/components/jeecg/JEasyCron/tabs/mixin.js new file mode 100644 index 0000000..bb1a8fa --- /dev/null +++ b/src/components/jeecg/JEasyCron/tabs/mixin.js @@ -0,0 +1,194 @@ +// 主要用于日和星期的互斥使用 +const TYPE_NOT_SET = 'TYPE_NOT_SET' +const TYPE_EVERY = 'TYPE_EVERY' +const TYPE_RANGE = 'TYPE_RANGE' +const TYPE_LOOP = 'TYPE_LOOP' +const TYPE_WORK = 'TYPE_WORK' +const TYPE_LAST = 'TYPE_LAST' +const TYPE_SPECIFY = 'TYPE_SPECIFY' + +const DEFAULT_VALUE = '?' + +export default { + model: { + prop: 'prop', + event: 'change' + }, + props: { + prop: { + type: String, + default: DEFAULT_VALUE + }, + disabled: { + type: Boolean, + default: false + } + }, + data () { + const type = TYPE_EVERY + return { + DEFAULT_VALUE, + // 类型 + type, + // 启用日或者星期互斥用 + TYPE_NOT_SET, + TYPE_EVERY, + TYPE_RANGE, + TYPE_LOOP, + TYPE_WORK, + TYPE_LAST, + TYPE_SPECIFY, + // 对于不同的类型,所定义的值也有所不同 + valueRange: { + start: 0, + end: 0 + }, + valueLoop: { + start: 0, + interval: 1 + }, + valueWeek: { + start: 0, + end: 0 + }, + valueList: [], + valueWork: 1, + maxValue: 0, + minValue: 0 + } + }, + watch: { + prop (newVal) { + if (newVal === this.value_c) { + // console.info('skip ' + newVal) + return + } + this.parseProp(newVal) + } + }, + computed: { + value_c () { + const result = [] + switch (this.type) { + case TYPE_NOT_SET: + result.push('?') + break + case TYPE_EVERY: + result.push('*') + break + case TYPE_RANGE: + result.push(`${this.valueRange.start}-${this.valueRange.end}`) + break + case TYPE_LOOP: + result.push(`${this.valueLoop.start}/${this.valueLoop.interval}`) + break + case TYPE_WORK: + result.push(`${this.valueWork}W`) + break + case TYPE_LAST: + result.push('L') + break + case TYPE_SPECIFY: + if (this.valueList.length === 0) { + this.valueList.push(this.minValue) + } + result.push(this.valueList.join(',')) + break + default: + result.push(this.DEFAULT_VALUE) + break + } + return result.length > 0 ? result.join('') : this.DEFAULT_VALUE + }, + // 指定值范围区间,介于最小值和最大值之间 + specifyRange() { + const range = [] + for (let i = this.minValue; i <= this.maxValue; i++) { + range.push(i) + } + return range + }, + }, + methods: { + parseProp(value) { + if (value === this.value_c) {return;} + + if (typeof this.preProcessProp === 'function') { + value = this.preProcessProp(value); + } + + try { + // 定义类型解析策略 + const strategies = [ + { + test: val => !val || val === this.DEFAULT_VALUE, + handler: () => this.type = TYPE_EVERY + }, + { + test: val => val.includes('?'), + handler: () => this.type = TYPE_NOT_SET + }, + { + test: val => val.includes('-'), + handler: (val) => { + this.type = TYPE_RANGE; + const [start, end] = val.split('-'); + if (end !== undefined) { + this.valueRange = { start: parseInt(start), end: parseInt(end) }; + } + } + }, + { + test: val => val.includes('/'), + handler: (val) => { + this.type = TYPE_LOOP; + const [start, interval] = val.split('/'); + if (interval !== undefined) { + this.valueLoop = { + start: start === '*' ? 0 : parseInt(start), + interval: parseInt(interval) + }; + } + } + }, + { + test: val => val.includes('W'), + handler: (val) => { + this.type = TYPE_WORK; + const [day] = val.split('W'); + if (!isNaN(day)) { + this.valueWork = parseInt(day); + } + } + }, + { + test: val => val.includes('L'), + handler: (val) => { + this.type = TYPE_LAST; + const [offset] = val.split('L'); + this.valueLast = offset ? parseInt(offset) : 0; + } + }, + { + test: val => val.includes(',') || !isNaN(parseFloat(val)), + handler: (val) => { + this.type = TYPE_SPECIFY; + this.valueList = val.split(',').map(Number); + } + }, + { + test: () => true, // 默认策略 + handler: () => this.type = TYPE_EVERY + } + ]; + + // 执行第一个匹配的策略 + const strategy = strategies.find(s => s.test(value)); + if (strategy) {strategy.handler();} + + } catch (e) { + this.type = TYPE_EVERY; + } + } + } +} diff --git a/src/components/jeecg/JEasyCron/tabs/mixin.less b/src/components/jeecg/JEasyCron/tabs/mixin.less new file mode 100644 index 0000000..455c6b1 --- /dev/null +++ b/src/components/jeecg/JEasyCron/tabs/mixin.less @@ -0,0 +1,36 @@ + +.config-list { + text-align: left; + margin: 0 10px 10px; +} + +.item { + margin-top: 5px; +} + +.choice { + padding: 5px 8px; +} + + +.w60 { + width: 60px; +} + +.w80 { + width: 80px; +} + +.list { + margin: 0 20px; +} + +.list-check-item { + padding: 1px 3px; + width: 4em; +} + +.tip-info { + color: #999999 +} + diff --git a/src/components/jeecg/JEasyCron/tabs/month.vue b/src/components/jeecg/JEasyCron/tabs/month.vue new file mode 100644 index 0000000..a0f2861 --- /dev/null +++ b/src/components/jeecg/JEasyCron/tabs/month.vue @@ -0,0 +1,67 @@ + + + + + diff --git a/src/components/jeecg/JEasyCron/tabs/second.vue b/src/components/jeecg/JEasyCron/tabs/second.vue new file mode 100644 index 0000000..6ce8d75 --- /dev/null +++ b/src/components/jeecg/JEasyCron/tabs/second.vue @@ -0,0 +1,68 @@ + + + + + diff --git a/src/components/jeecg/JEasyCron/tabs/week.vue b/src/components/jeecg/JEasyCron/tabs/week.vue new file mode 100644 index 0000000..e6572c2 --- /dev/null +++ b/src/components/jeecg/JEasyCron/tabs/week.vue @@ -0,0 +1,112 @@ + + + + + diff --git a/src/components/jeecg/JEasyCron/tabs/year.vue b/src/components/jeecg/JEasyCron/tabs/year.vue new file mode 100644 index 0000000..2d43909 --- /dev/null +++ b/src/components/jeecg/JEasyCron/tabs/year.vue @@ -0,0 +1,60 @@ + + + + + diff --git a/src/components/jeecg/JEasyCron/validator.js b/src/components/jeecg/JEasyCron/validator.js new file mode 100644 index 0000000..f38daca --- /dev/null +++ b/src/components/jeecg/JEasyCron/validator.js @@ -0,0 +1,51 @@ +import CronParser from 'cron-parser' +import { replaceWeekName } from './tabs/const' + +export default (rule, value, callback) => { + // 没填写就不校验 + if (!value) { + callback() + return true + } + const values = value.split(' ').filter(item => !!item) + if (values.length > 7) { + callback(new Error('Cron表达式最多7项!')) + return false + } + // 检查第7项 + let e = value + if (values.length === 7) { + const year = replaceWeekName(values[6]) + if (year !== '*' && year !== '?') { + let yearValues = [] + if (year.indexOf('-') >= 0) { + yearValues = year.split('-') + } else if (year.indexOf('/')) { + yearValues = year.split('/') + } else { + yearValues = [year] + } + // console.info(yearValues) + // 判断是否都是数字 + const checkYear = yearValues.some(item => isNaN(item)) + if (checkYear) { + callback(new Error('Cron表达式参数[年]错误:' + year)) + return false + } + } + // 取其中的前六项 + e = values.slice(0, 6).join(' ') + } + // 6位 没有年 + // 5位没有秒、年 + let result = true + try { + const iter = CronParser.parseExpression(e) + iter.next() + callback() + } catch (e) { + callback(new Error('Cron表达式错误:' + e)) + result = false + } + return result +} diff --git a/src/components/jeecg/JEditableTable.vue b/src/components/jeecg/JEditableTable.vue new file mode 100644 index 0000000..a184473 --- /dev/null +++ b/src/components/jeecg/JEditableTable.vue @@ -0,0 +1,3798 @@ + + + + + + + + diff --git a/src/components/jeecg/JEditor.vue b/src/components/jeecg/JEditor.vue new file mode 100644 index 0000000..4bdcac8 --- /dev/null +++ b/src/components/jeecg/JEditor.vue @@ -0,0 +1,156 @@ + + + diff --git a/src/components/jeecg/JEllipsis.vue b/src/components/jeecg/JEllipsis.vue new file mode 100644 index 0000000..5a7b83c --- /dev/null +++ b/src/components/jeecg/JEllipsis.vue @@ -0,0 +1,28 @@ + + + + + diff --git a/src/components/jeecg/JFormContainer.vue b/src/components/jeecg/JFormContainer.vue new file mode 100644 index 0000000..d400e05 --- /dev/null +++ b/src/components/jeecg/JFormContainer.vue @@ -0,0 +1,64 @@ + + + + \ No newline at end of file diff --git a/src/components/jeecg/JImageUpload.vue b/src/components/jeecg/JImageUpload.vue new file mode 100644 index 0000000..95a360d --- /dev/null +++ b/src/components/jeecg/JImageUpload.vue @@ -0,0 +1,230 @@ + + + + + + diff --git a/src/components/jeecg/JImportModal.vue b/src/components/jeecg/JImportModal.vue new file mode 100644 index 0000000..34d44ae --- /dev/null +++ b/src/components/jeecg/JImportModal.vue @@ -0,0 +1,165 @@ + + + + diff --git a/src/components/jeecg/JInput.vue b/src/components/jeecg/JInput.vue new file mode 100644 index 0000000..af6a55a --- /dev/null +++ b/src/components/jeecg/JInput.vue @@ -0,0 +1,109 @@ + + + + diff --git a/src/components/jeecg/JMarkdownEditor/default-options.js b/src/components/jeecg/JMarkdownEditor/default-options.js new file mode 100644 index 0000000..6c7394c --- /dev/null +++ b/src/components/jeecg/JMarkdownEditor/default-options.js @@ -0,0 +1,29 @@ +export default { + minHeight: '200px', + previewStyle: 'vertical', + useCommandShortcut: true, + useDefaultHTMLSanitizer: true, + usageStatistics: false, + hideModeSwitch: false, + toolbarItems: [ + 'heading', + 'bold', + 'italic', + 'strike', + 'divider', + 'hr', + 'quote', + 'divider', + 'ul', + 'ol', + 'task', + 'indent', + 'outdent', + 'divider', + 'table', + 'link', + 'divider', + 'code', + 'codeblock' + ] +} diff --git a/src/components/jeecg/JMarkdownEditor/index.vue b/src/components/jeecg/JMarkdownEditor/index.vue new file mode 100644 index 0000000..f606f58 --- /dev/null +++ b/src/components/jeecg/JMarkdownEditor/index.vue @@ -0,0 +1,254 @@ + + + + \ No newline at end of file diff --git a/src/components/jeecg/JModal/JModal.vue b/src/components/jeecg/JModal/JModal.vue new file mode 100644 index 0000000..6655508 --- /dev/null +++ b/src/components/jeecg/JModal/JModal.vue @@ -0,0 +1,287 @@ + + + + + + + diff --git a/src/components/jeecg/JModal/JPrompt.vue b/src/components/jeecg/JModal/JPrompt.vue new file mode 100644 index 0000000..915c635 --- /dev/null +++ b/src/components/jeecg/JModal/JPrompt.vue @@ -0,0 +1,142 @@ + + + + + + diff --git a/src/components/jeecg/JModal/index.js b/src/components/jeecg/JModal/index.js new file mode 100644 index 0000000..638538e --- /dev/null +++ b/src/components/jeecg/JModal/index.js @@ -0,0 +1,18 @@ +import JModal from './JModal' +import JPrompt from './JPrompt' + +export default { + install(Vue) { + Vue.component(JModal.name, JModal) + + const JPromptExtend = Vue.extend(JPrompt) + Vue.prototype.$JPrompt = function (options = {}) { + // 创建prompt实例 + const vm = new JPromptExtend().$mount() + vm.show(options) + // 关闭后销毁 + vm.$on('after-close', () => vm.$destroy()) + return vm + } + }, +} \ No newline at end of file diff --git a/src/components/jeecg/JModal/index.vue b/src/components/jeecg/JModal/index.vue new file mode 100644 index 0000000..edacdd7 --- /dev/null +++ b/src/components/jeecg/JModal/index.vue @@ -0,0 +1,163 @@ + + + + \ No newline at end of file diff --git a/src/components/jeecg/JPopup.vue b/src/components/jeecg/JPopup.vue new file mode 100644 index 0000000..6c3d59c --- /dev/null +++ b/src/components/jeecg/JPopup.vue @@ -0,0 +1,281 @@ + + + + \ No newline at end of file diff --git a/src/components/jeecg/JSlider.vue b/src/components/jeecg/JSlider.vue new file mode 100644 index 0000000..7972c72 --- /dev/null +++ b/src/components/jeecg/JSlider.vue @@ -0,0 +1,117 @@ + + + + + \ No newline at end of file diff --git a/src/components/jeecg/JSuperQuery.vue b/src/components/jeecg/JSuperQuery.vue new file mode 100644 index 0000000..7c4c7fa --- /dev/null +++ b/src/components/jeecg/JSuperQuery.vue @@ -0,0 +1,798 @@ + + + + + + diff --git a/src/components/jeecg/JSwitch.vue b/src/components/jeecg/JSwitch.vue new file mode 100644 index 0000000..e1895c1 --- /dev/null +++ b/src/components/jeecg/JSwitch.vue @@ -0,0 +1,84 @@ + + diff --git a/src/components/jeecg/JTime.vue b/src/components/jeecg/JTime.vue new file mode 100644 index 0000000..eedf404 --- /dev/null +++ b/src/components/jeecg/JTime.vue @@ -0,0 +1,75 @@ + + + + diff --git a/src/components/jeecg/JTreeDict.vue b/src/components/jeecg/JTreeDict.vue new file mode 100644 index 0000000..c07fab7 --- /dev/null +++ b/src/components/jeecg/JTreeDict.vue @@ -0,0 +1,198 @@ + + + \ No newline at end of file diff --git a/src/components/jeecg/JTreeSelect.vue b/src/components/jeecg/JTreeSelect.vue new file mode 100644 index 0000000..6e25dd7 --- /dev/null +++ b/src/components/jeecg/JTreeSelect.vue @@ -0,0 +1,259 @@ + + diff --git a/src/components/jeecg/JTreeTable.vue b/src/components/jeecg/JTreeTable.vue new file mode 100644 index 0000000..f2b496a --- /dev/null +++ b/src/components/jeecg/JTreeTable.vue @@ -0,0 +1,179 @@ + + + + diff --git a/src/components/jeecg/JUpload.vue b/src/components/jeecg/JUpload.vue new file mode 100644 index 0000000..111ff51 --- /dev/null +++ b/src/components/jeecg/JUpload.vue @@ -0,0 +1,546 @@ + + + + + + diff --git a/src/components/jeecg/JVxeTable/components/JVxeDetailsModal.vue b/src/components/jeecg/JVxeTable/components/JVxeDetailsModal.vue new file mode 100644 index 0000000..9c92814 --- /dev/null +++ b/src/components/jeecg/JVxeTable/components/JVxeDetailsModal.vue @@ -0,0 +1,75 @@ + + + \ No newline at end of file diff --git a/src/components/jeecg/JVxeTable/components/JVxePagination.vue b/src/components/jeecg/JVxeTable/components/JVxePagination.vue new file mode 100644 index 0000000..122dc3e --- /dev/null +++ b/src/components/jeecg/JVxeTable/components/JVxePagination.vue @@ -0,0 +1,66 @@ + + + \ No newline at end of file diff --git a/src/components/jeecg/JVxeTable/components/JVxeSubPopover.vue b/src/components/jeecg/JVxeTable/components/JVxeSubPopover.vue new file mode 100644 index 0000000..52bad0e --- /dev/null +++ b/src/components/jeecg/JVxeTable/components/JVxeSubPopover.vue @@ -0,0 +1,254 @@ + + + + \ No newline at end of file diff --git a/src/components/jeecg/JVxeTable/components/JVxeTable.js b/src/components/jeecg/JVxeTable/components/JVxeTable.js new file mode 100644 index 0000000..9078dda --- /dev/null +++ b/src/components/jeecg/JVxeTable/components/JVxeTable.js @@ -0,0 +1,1698 @@ +import XEUtils from 'xe-utils' +import PropTypes from 'ant-design-vue/es/_util/vue-types' +import { JVXETypes } from '@/components/jeecg/JVxeTable/jvxeTypes' +import VxeWebSocketMixins from '../mixins/vxe.web.socket.mixins' +import { initDictOptions } from '@/components/dict/JDictSelectUtil' + +import { getRefPromise } from '../utils/vxeUtils' +import { getEnhancedMixins, replaceProps } from '../utils/cellUtils' + +import JVxeToolbar from './JVxeToolbar' +import JVxeSubPopover from './JVxeSubPopover' +import JVxeDetailsModal from './JVxeDetailsModal' +import JVxePagination from './JVxePagination' +import { cloneObject, getVmParentByName, pushIfNotExist, randomString, simpleDebounce } from '@/utils/util' +import { UtilTools } from 'vxe-table/packages/tools/src/utils' +import { getNoAuthCols } from '@/utils/authFilter' + +export default { + name: 'JVxeTable', + provide() { + return { + superTrigger: (name, event) => this.trigger(name, event), + } + }, + mixins: [VxeWebSocketMixins], + components: { + JVxeToolbar, + JVxeSubPopover, + JVxeDetailsModal, + JVxePagination, + }, + props: { + rowKey: PropTypes.string.def('id'), + // 列信息 + columns: { + type: Array, + default: () => [], + required: true, + }, + // 数据源 + dataSource: { + type: Array, + default: () => [], + required: true, + }, + authPre: { + type: String, + required: false, + default: '', + }, + needRefresh: { + type: Boolean, + required: false, + default: false, + }, + // 是否显示工具栏 + toolbar: PropTypes.bool.def(false), + // 工具栏配置 + toolbarConfig: PropTypes.object.def(() => ({ + // prefix 前缀;suffix 后缀; + slots: ['prefix', 'suffix'], + // add 新增按钮;remove 删除按钮;clearSelection 清空选择按钮;collapse 展开收起 + btns: ['add', 'remove', 'clearSelection'], + })), + // 是否显示行号 + rowNumber: PropTypes.bool.def(false), + // 是否可选择行 + rowSelection: PropTypes.bool.def(false), + // 选择行类型 + rowSelectionType: PropTypes.oneOf(['checkbox', 'radio']).def('checkbox'), + // 是否可展开行 + rowExpand: PropTypes.bool.def(false), + // 展开行配置 + expandConfig: PropTypes.object.def(() => ({})), + // 页面是否在加载中 + loading: PropTypes.bool.def(false), + height: PropTypes.instanceOf([Number, String]).def('auto'), + // 最大高度 + maxHeight: { + type: Number, + default: () => null, + }, + // 要禁用的行 TODO 未实现 + disabledRows: PropTypes.object.def(() => ({})), + // 是否禁用全部组件 + disabled: PropTypes.bool.def(false), + // 是否可拖拽排序 TODO 仅实现上下排序,未实现拖拽排序(可能无法实现或较为困难) + dragSort: PropTypes.bool.def(false), + // 排序字段保存的Key + dragSortKey: PropTypes.string.def('orderNum'), + // 大小,可选值有:medium(中)、small(小)、mini(微)、tiny(非常小) + size: PropTypes.oneOf(['medium', 'small', 'mini', 'tiny']).def('medium'), + // 是否显示边框线 + bordered: PropTypes.bool.def(false), + // 分页器参数,设置了即可显示分页器 + pagination: PropTypes.object.def(() => ({})), + // 点击行时是否显示子表单 + clickRowShowSubForm: PropTypes.bool.def(false), + // 点击行时是否显示主表单 + clickRowShowMainForm: PropTypes.bool.def(false), + // 是否点击选中行,优先级最低 + clickSelectRow: PropTypes.bool.def(false), + // 是否开启 reload 数据效果 + reloadEffect: PropTypes.bool.def(false), + // 校验规则 + editRules: PropTypes.object.def(() => ({})), + // 是否异步删除行,如果你要实现异步删除,那么需要把这个选项开启, + // 在remove事件里调用confirmRemove方法才会真正删除(除非删除的全是新增的行) + asyncRemove: PropTypes.bool.def(false), + // 是否一直显示组件,如果为false则只有点击的时候才出现组件 + // 注:该参数不能动态修改;如果行、列字段多的情况下,会根据机器性能造成不同程度的卡顿。 + alwaysEdit: PropTypes.bool.def(false), + // 联动配置,数组,详情配置见文档 + linkageConfig: PropTypes.array.def(() => []), + }, + data() { + return { + isJVXETable: true, + // caseId,表格唯一标识 + caseId: `_j-vxe-${randomString(8)}_`, + // 内置columns + _innerColumns: [], + // 内置 EditRules + _innerEditRules: [], + // 记录滚动条位置 + scroll: { + top: 0, + left: 0, + }, + // 当前是否正在滚动 + scrolling: false, + // vxe 默认配置 + defaultVxeProps: { + 'row-id': this.rowKey, + // 高亮hover的行 + 'highlight-hover-row': true, + // 溢出隐藏并显示tooltip + 'show-overflow': true, + // 表头溢出隐藏并显示tooltip + 'show-header-overflow': true, + 'show-footer-overflow': true, + // 可编辑配置 + 'edit-config': { + trigger: 'click', + mode: 'cell', + showStatus: true, + }, + 'expand-config': { + iconClose: 'ant-table-row-expand-icon ant-table-row-collapsed', + iconOpen: 'ant-table-row-expand-icon ant-table-row-expanded', + }, + // 虚拟滚动配置,y轴大于30条数据时启用虚拟滚动 + // 'scroll-y': { + // gt: 30 + // }, + // 'scroll-x': { + // gt: 15 + // }, + 'radio-config': { + highlight: true, + }, + 'checkbox-config': { + highlight: true, + }, + }, + // 绑定左侧选择框 + selectedRows: [], + // 绑定左侧选择框已选择的id + selectedRowIds: [], + // 统计列配置 + statistics: { + has: false, + sum: [], + average: [], + }, + // 允许执行刷新特效的行ID + reloadEffectRowKeysMap: {}, + //配置了但是没有授权的按钮和列 集合 + excludeCode: [], + // 联动下拉选项(用于隔离不同的下拉选项) + // 内部联动配置,map + _innerLinkageConfig: null, + } + }, + computed: { + // vxe 最终 columns + vxeColumns() { + /* eslint complexity: ["error", 30] */ + this._innerColumns.forEach((column) => { + const renderOptions = { + caseId: this.caseId, + bordered: this.bordered, + disabled: this.disabled, + scrolling: this.scrolling, + reloadEffect: this.reloadEffect, + reloadEffectRowKeysMap: this.reloadEffectRowKeysMap, + listeners: this.cellListeners, + } + if (column.$type === JVXETypes.rowDragSort) { + renderOptions.dragSortKey = this.dragSortKey + } + // slot 组件特殊处理 + if (column.$type === JVXETypes.slot) { + if(Object.prototype.hasOwnProperty.call(this.$scopedSlots, column.slotName)) { + renderOptions.slot = this.$scopedSlots[column.slotName] + renderOptions.target = this + } + } + // 处理联动列,联动列只能作用于 select 组件 + if (column.$type === JVXETypes.select && this._innerLinkageConfig !== null) { + // 判断当前列是否是联动列 + if (this._innerLinkageConfig.has(column.key)) { + renderOptions.linkage = { + config: this._innerLinkageConfig.get(column.key), + getLinkageOptionsSibling: this.getLinkageOptionsSibling, + getLinkageOptionsAsync: this.getLinkageOptionsAsync, + linkageSelectChange: this.linkageSelectChange, + } + } + } + if (column.editRender) { + Object.assign(column.editRender, renderOptions) + } + if (column.cellRender) { + Object.assign(column.cellRender, renderOptions) + } + // update--begin--autor:lvdandan-----date:20201019------for:LOWCOD-882 【新行编辑】列表上带按钮的遮挡问题 + if (column.$type === JVXETypes.file || column.$type === JVXETypes.image) { + if (column.width && column.width.endsWith('px')) { + column.width = Number.parseInt(column.width.substr(0, column.width.length - 2)) + Number.parseInt(1) + 'px' + } + } + // update--begin--autor:lvdandan-----date:20201019------for:LOWCOD-882 【新行编辑】列表上带按钮的遮挡问题 + + // update--begin--autor:lvdandan-----date:20201211------for:JT-118 【online】 日期、时间控件长度较小 + if ( + column.$type === JVXETypes.datetime || + column.$type === JVXETypes.userSelect || + column.$type === JVXETypes.departSelect + ) { + const width = + column.width && column.width.endsWith('px') + ? Number.parseInt(column.width.substr(0, column.width.length - 2)) + : 0 + if (width <= 190) { + column.width = '190px' + } + } + if (column.$type === JVXETypes.date) { + const width = + column.width && column.width.endsWith('px') + ? Number.parseInt(column.width.substr(0, column.width.length - 2)) + : 0 + if (width <= 135) { + column.width = '135px' + } + } + // update--end--autor:lvdandan-----date:20201211------for:JT-118 【online】 日期、时间控件长度较小 + }) + return this._innerColumns + }, + // vxe 最终 editRules + vxeEditRules() { + return Object.assign({}, this.editRules, this._innerEditRules) + }, + // vxe 最终 props + vxeProps() { + const expandConfig = Object.assign({}, this.defaultVxeProps['expand-config'], this.expandConfig) + + return Object.assign( + {}, + this.defaultVxeProps, + { + showFooter: this.statistics.has, + }, + this.$attrs, + { + loading: this.loading, + columns: this.vxeColumns, + editRules: this.vxeEditRules, + // data: this.dataSource, + height: this.height === 'auto' ? null : this.height, + maxHeight: this.maxHeight, + border: this.bordered, + expandConfig: expandConfig, + footerMethod: this.handleFooterMethod, + // footerSpanMethod: this.handleFooterSpanMethod, + } + ) + }, + // vxe 最终 events + vxeEvents() { + // 内置事件 + const events = { + scroll: this.handleVxeScroll, + 'cell-click': this.handleCellClick, + 'edit-closed': this.handleEditClosed, + 'edit-actived': this.handleEditActived, + 'radio-change': this.handleVxeRadioChange, + 'checkbox-all': this.handleVxeCheckboxAll, + 'checkbox-change': this.handleVxeCheckboxChange, + } + // 用户传递的事件,进行合并操作 + Object.keys(this.$listeners).forEach((key) => { + let listen = this.$listeners[key] + if (Object.prototype.hasOwnProperty.call(events, key)) { + if (Array.isArray(listen)) { + listen.push(events[key]) + } else { + listen = [events[key], listen] + } + } + events[key] = listen + }) + return events + }, + // 组件监听事件 + cellListeners() { + return { + trigger: (name, event) => this.trigger(name, event), + valueChange: (event) => this.trigger('valueChange', event), + /** 当前行向上移一位 */ + rowMoveUp: (rowIndex) => this.rowResort(rowIndex, rowIndex - 1), + /** 当前行向下移一位 */ + rowMoveDown: (rowIndex) => this.rowResort(rowIndex, rowIndex + 1), + /** 在当前行下面插入一行 */ + rowInsertDown: (rowIndex) => this.insertRows({}, rowIndex + 1), + } + }, + }, + watch: { + dataSource: { + // deep: true, + immediate: true, + async handler() { + const vxe = await getRefPromise(this, 'vxe') + + this.dataSource.forEach((data, idx) => { + // 开启了排序就自动计算排序值 + if (this.dragSort) { + this.$set(data, this.dragSortKey, idx + 1) + } + // 处理联动回显数据 + if (this._innerLinkageConfig !== null) { + for (const configItem of this._innerLinkageConfig.values()) { + this.autoSetLinkageOptionsByData(data, '', configItem, 0) + } + } + }) + + // 阻断vue监听大数据,提高性能 + vxe.loadData(this.dataSource) + + // TODO 解析disabledRows + // let disabled = false + // + // let disabledRowIds = (this.disabledRowIds || []) + // // 解析disabledRows + // Object.keys(this.disabledRows).forEach(disabledColKey => { + // // 判断是否有该属性 + // if (data.hasOwnProperty(disabledColKey)) { + // if (disabled !== true) { + // let temp = this.disabledRows[disabledColKey] + // // 禁用规则可以是一个数组 + // if (Array.isArray(temp)) { + // disabled = temp.includes(data[disabledColKey]) + // } else { + // disabled = (temp === data[disabledColKey]) + // } + // if (disabled) { + // disabledRowIds.push(row.id) + // } + // } + // } + // }) + }, + }, + columns: { + immediate: true, + /* eslint complexity: ["error", 30] */ + handler(columns) { + //获取不需要显示列 + this.loadExcludeCode() + const _innerColumns = [] + const _innerEditRules = {} + const { rowNumber, rowSelection, rowExpand, dragSort } = this + let expandColumn, seqColumn, checkboxColumn, radioColumn, dragSortColumn + if (Array.isArray(columns)) { + this.statistics.has = false + this.statistics.sum = [] + this.statistics.average = [] + + // 处理成vxe可识别的columns + columns.forEach((column) => { + if (this.excludeCode.indexOf(column.key) >= 0) { + return false + } + const col = { + ...column, + } + const { type } = col + const enhanced = getEnhancedMixins(type) + if (type === JVXETypes.rowNumber) { + seqColumn = col + } else if (type === JVXETypes.rowCheckbox) { + checkboxColumn = col + } else if (type === JVXETypes.rowRadio) { + radioColumn = col + } else if (type === JVXETypes.rowExpand) { + expandColumn = col + } else if (type === JVXETypes.rowDragSort) { + dragSortColumn = col + } else { + col.field = col.key + // 防止和vxeTable自带的type起冲突 + col.$type = col.type + delete col.type + let renderName = 'cellRender' + const renderOptions = { + name: JVXETypes._prefix + type, + } + if (type) { + // hidden 是特殊的组件 + if (type === JVXETypes.hidden) { + col.visible = false + } else if (enhanced.switches.editRender) { + renderName = 'editRender' + renderOptions.type = enhanced.switches.visible || this.alwaysEdit ? 'visible' : 'default' + } + } else { + renderOptions.name = JVXETypes._prefix + JVXETypes.normal + } + col[renderName] = renderOptions + // 处理字典 + if (col.dictCode) { + this._loadDictConcatToOptions(col) + } + // 处理校验 + if (col.validateRules) { + const rules = [] + if (Array.isArray(col.validateRules)) { + for (const rule of col.validateRules) { + const replace = { + message: replaceProps(col, rule.message), + } + if (rule.unique || rule.pattern === 'only') { + // 唯一校验器 + rule.validator = uniqueValidator.bind(this) + } else if (rule.pattern) { + // 非空 + if (rule.pattern === fooPatterns[0].value) { + rule.required = true + delete rule.pattern + } else { + // 兼容Online表单的特殊规则 + for (const foo of fooPatterns) { + if (foo.value === rule.pattern) { + rule.pattern = foo.pattern + break + } + } + } + } else if (typeof rule.handler === 'function') { + // 自定义函数校验 + rule.validator = handlerConvertToValidator.bind(this) + } + rules.push(Object.assign({}, rule, replace)) + } + } + _innerEditRules[col.key] = rules + } + // 处理统计列 + // sum = 求和、average = 平均值 + if (Array.isArray(col.statistics)) { + this.statistics.has = true + col.statistics.forEach((item) => { + const arr = this.statistics[item.toLowerCase()] + if (Array.isArray(arr)) { + pushIfNotExist(arr, col.key) + } + }) + } + _innerColumns.push(col) + } + }) + } + // 判断是否开启了序号 + if (rowNumber) { + let col = { + type: 'seq', + title: '#', + width: 60, + fixed: 'left', + align: 'center', + } + if (seqColumn) { + col = Object.assign(col, seqColumn, { + type: 'seq', + }) + } + _innerColumns.unshift(col) + } + // 判断是否开启了可选择行 + if (rowSelection) { + let width = 40 + if (this.statistics.has && !rowExpand && !dragSort) { + width = 60 + } + let col = { + type: this.rowSelectionType, + width, + fixed: 'left', + align: 'center', + } + // radio + if (this.rowSelectionType === 'radio' && radioColumn) { + col = Object.assign(col, radioColumn, { + type: 'radio', + }) + } + // checkbox + if (this.rowSelectionType === 'checkbox' && checkboxColumn) { + col = Object.assign(col, checkboxColumn, { + type: 'checkbox', + }) + } + _innerColumns.unshift(col) + } + // 是否可展开行 + if (rowExpand) { + let width = 40 + if (this.statistics.has && !dragSort) { + width = 60 + } + let col = { + type: 'expand', + title: '', + width, + fixed: 'left', + align: 'center', + slots: { + content: 'expandContent', + }, + } + if (expandColumn) { + col = Object.assign(col, expandColumn, { + type: 'expand', + }) + } + _innerColumns.unshift(col) + } + // 是否可拖动排序 + if (dragSort) { + let width = 40 + if (this.statistics.has) { + width = 60 + } + let col = { + type: JVXETypes.rowDragSort, + title: '', + width, + fixed: 'left', + align: 'center', + cellRender: { + name: JVXETypes._prefix + JVXETypes.rowDragSort, + }, + } + if (dragSortColumn) { + col = Object.assign(col, dragSortColumn, { + type: JVXETypes.rowDragSort, + }) + } + _innerColumns.unshift(col) + } + + this._innerColumns = _innerColumns + this._innerEditRules = _innerEditRules + }, + }, + // watch linkageConfig + // 整理多级联动配置 + linkageConfig: { + immediate: true, + handler() { + if (Array.isArray(this.linkageConfig) && this.linkageConfig.length > 0) { + // 获取联动的key顺序 + const getLcKeys = (key, arr) => { + const col = this._innerColumns.find((col) => col.key === key) + if (col) { + arr.push(col.key) + if (col.linkageKey) { + return getLcKeys(col.linkageKey, arr) + } + } + return arr + } + const configMap = new Map() + this.linkageConfig.forEach((lc) => { + const keys = getLcKeys(lc.key, []) + // 多个key共享一个,引用地址 + const configItem = { + ...lc, + keys, + optionsMap: new Map(), + } + keys.forEach((k) => configMap.set(k, configItem)) + }) + this._innerLinkageConfig = configMap + } else { + this._innerLinkageConfig = null + } + }, + }, + }, + created() {}, + mounted() { + this.handleTabsChange() + }, + methods: { + /** + * 自动判断父级是否是 组件,然后添加事件监听,自动重置表格 + */ + handleTabsChange() { + // 获取父级 + const tabs = getVmParentByName(this, 'ATabs') + const tabPane = getVmParentByName(this, 'ATabPane') + if (tabs && tabPane) { + // 用户自定义的 key + const currentKey = tabPane.$vnode.key + // 添加 activeKey 监听 + const unwatch = tabs.$children[0].$watch('$data._activeKey', async (key) => { + // 切换到自己时重新计算 + if (currentKey === key) { + await this.$nextTick() + await this.refreshScroll() + await this.recalculate() + } + }) + // 当前实例销毁时取消监听 + this.$on('beforeDestroy', () => unwatch()) + } + }, + + handleVxeScroll(event) { + const { $refs, scroll } = this + + // 记录滚动条的位置 + scroll.top = event.scrollTop + scroll.left = event.scrollLeft + + $refs.subPopover ? $refs.subPopover.close() : null + this.scrolling = true + this.closeScrolling() + }, + // 当手动勾选单选时触发的事件 + handleVxeRadioChange(event) { + const row = event.$table.getRadioRecord() + this.selectedRows = row ? [row] : [] + this.handleSelectChange('radio', this.selectedRows, event) + }, + // 当手动勾选全选时触发的事件 + handleVxeCheckboxAll(event) { + this.selectedRows = event.$table.getCheckboxRecords() + this.handleSelectChange('checkbox-all', this.selectedRows, event) + }, + // 当手动勾选并且值发生改变时触发的事件 + handleVxeCheckboxChange(event) { + this.selectedRows = event.$table.getCheckboxRecords() + this.handleSelectChange('checkbox', this.selectedRows, event) + }, + // 行选择change事件 + handleSelectChange(type, selectedRows, $event) { + let action + if (type === 'radio') { + action = 'selected' + } else if (type === 'checkbox') { + action = selectedRows.includes($event.row) ? 'selected' : 'unselected' + } else { + action = 'selected-all' + } + + this.selectedRowIds = selectedRows.map((row) => row.id) + this.trigger('selectRowChange', { + type: type, + action: action, + $event: $event, + row: $event.row, + selectedRows: this.selectedRows, + selectedRowIds: this.selectedRowIds, + }) + }, + + // 点击单元格时触发的事件 + // handleCellClick(event) { + // let { row, column, $event, $table } = event + // let { $refs } = this + + // // 点击了可编辑的 + // if (column.editRender) { + // $refs.subPopover ? $refs.subPopover.close() : null + // return + // } + + // // 显示详细信息 + // if (column.own.showDetails) { + // // 两个如果同时存在的话会出现死循环 + // $refs.subPopover ? $refs.subPopover.close() : null + // $refs.detailsModal ? $refs.detailsModal.open(event) : null + // } else if ($refs.subPopover) { + // $refs.subPopover.toggle(event) + // } else if (this.clickSelectRow) { + // let className = $event.target.className || '' + // className = typeof className === 'string' ? className : className.toString() + // // 点击的是expand,不做处理 + // if (className.includes('vxe-table--expand-btn')) { + // return + // } + // // 点击的是checkbox,不做处理 + // if (className.includes('vxe-checkbox--icon') || className.includes('vxe-cell--checkbox')) { + // return + // } + // // 点击的是radio,不做处理 + // if (className.includes('vxe-radio--icon') || className.includes('vxe-cell--radio')) { + // return + // } + // if (this.rowSelectionType === 'radio') { + // $table.setRadioRow(row) + // this.handleVxeRadioChange(event) + // } else { + // $table.toggleCheckboxRow(row) + // this.handleVxeCheckboxChange(event) + // } + // } + // }, + handleCellClick(event) { + const { row, column, $event, $table } = event; + const { $refs } = this; + + // 1. 处理可编辑单元格:关闭子弹窗并返回 + if (column.editRender) { + $refs.subPopover?.close(); + return; + } + + // 2. 处理显示详情:关闭子弹窗并打开详情模态框 + if (column.own?.showDetails) { + $refs.subPopover?.close(); + $refs.detailsModal?.open(event); + return; + } + + // 3. 处理子弹窗切换 + if ($refs.subPopover) { + $refs.subPopover.toggle(event); + return; + } + + // 4. 处理行选择(点击选中行) + if (!this.clickSelectRow) {return;} + + // 定义需忽略的点击类名集合 + const ignoreClasses = new Set([ + 'vxe-table--expand-btn', + 'vxe-checkbox--icon', 'vxe-cell--checkbox', + 'vxe-radio--icon', 'vxe-cell--radio' + ]); + + // 检查点击目标是否需要忽略 + const targetClass = ($event.target.className || '').toString(); + if (Array.from(ignoreClasses).some(cls => targetClass.includes(cls))) { + return; + } + + // 执行行选择操作 + if (this.rowSelectionType === 'radio') { + $table.setRadioRow(row); + this.handleVxeRadioChange(event); + } else { + $table.toggleCheckboxRow(row); + this.handleVxeCheckboxChange(event); + } + }, + + // 单元格编辑状态下被关闭时会触发该事件 + handleEditClosed({ column }) { + // 执行增强 + getEnhancedMixins(column.own.$type, 'aopEvents').editClosed.apply(this, arguments) + }, + + // 单元格被激活编辑时会触发该事件 + handleEditActived({ column }) { + // 执行增强 + getEnhancedMixins(column.own.$type, 'aopEvents').editActived.apply(this, arguments) + }, + + /** 表尾数据处理方法,用于显示统计信息 */ + handleFooterMethod({ columns, data }) { + const { statistics } = this + const footers = [] + if (statistics.has) { + if (statistics.sum.length > 0) { + footers.push( + this.getFooterStatisticsMap({ + columns: columns, + title: '合计', + checks: statistics.sum, + method: (column) => XEUtils.sum(data, column.property), + }) + ) + } + if (statistics.average.length > 0) { + footers.push( + this.getFooterStatisticsMap({ + columns: columns, + title: '平均', + checks: statistics.average, + method: (column) => XEUtils.mean(data, column.property), + }) + ) + } + } + return footers + }, + + getFooterStatisticsMap({ columns, title, checks, method }) { + return columns.map((column, columnIndex) => { + if (columnIndex === 0) { + return title + } + if (checks.includes(column.property)) { + return method(column, columnIndex) + } + return null + }) + }, + + /** 表尾单元格合并方法 */ + handleFooterSpanMethod(event) { + if (event.columnIndex === 0) { + return { + colspan: 2, + } + } + }, + + /*--- 外部可调用接口方法 ---*/ + + /** + * 重置滚动条Top位置 + * @param top 新top位置,留空则滚动到上次记录的位置,用于解决切换tab选项卡时导致白屏以及自动将滚动条滚动到顶部的问题 + */ + resetScrollTop(top) { + this.scrollTo(null, top === null || top === '' ? this.scroll.top : top) + }, + + /** + * 加载新数据,和 loadData 不同的是,用该方法加载的数据都是相当于点新增按钮新增的数据。 + * 适用于不是数据库里查出来的没有id的临时数据 + * @param dataSource + */ + async loadNewData(dataSource) { + if (Array.isArray(dataSource)) { + const { xTable } = this.$refs.vxe.$refs + // issues/2784 + // 先清空所有数据 + xTable.loadData([]) + + dataSource.forEach((data, idx) => { + // 开启了排序就自动计算排序值 + if (this.dragSort) { + this.$set(data, this.dragSortKey, idx + 1) + } + // 处理联动回显数据 + if (this._innerLinkageConfig !== null) { + for (const configItem of this._innerLinkageConfig.values()) { + this.autoSetLinkageOptionsByData(data, '', configItem, 0) + } + } + }) + // 再新增 + return xTable.insertAt(dataSource) + } + return [] + }, + + // 校验table,失败返回errMap,成功返回null + async validateTable() { + const errMap = await this.validate().catch((errMap) => errMap) + return errMap ? errMap : null + }, + // 完整校验 + async fullValidateTable() { + const errMap = await this.fullValidate().catch((errMap) => errMap) + return errMap ? errMap : null + }, + + /** 设置某行某列的值 */ + setValues(values) { + if (!Array.isArray(values)) { + console.warn(`JVxeTable.setValues:必须传递数组`) + return + } + values.forEach((item) => { + const { rowKey, values: record } = item + const { row } = this.getIfRowById(rowKey) + if (!row) { + return + } + Object.keys(record).forEach((colKey) => { + const column = this.getColumnByKey(colKey) + if (column) { + const oldValue = row[colKey] + const newValue = record[colKey] + if (newValue !== oldValue) { + this.$set(row, colKey, newValue) + // 触发 valueChange 事件 + this.trigger('valueChange', { + type: column.own.$type, + value: newValue, + oldValue: oldValue, + col: column.own, + column: column, + isSetValues: true, + }) + } + } else { + console.warn(`JVxeTable.setValues:没有找到key为"${colKey}"的列`) + } + }) + }) + }, + + /** 获取所有的数据,包括values、deleteIds */ + getAll() { + return { + tableData: this.getTableData(), + deleteData: this.getDeleteData(), + } + }, + /** 获取表格表单里的值 */ + getValues(callback, rowIds) { + const tableData = this.getTableData({ + rowIds: rowIds, + }) + callback('', tableData) + }, + /** 获取表格数据 */ + getTableData(options = {}) { + const { rowIds } = options + let tableData + // 仅查询指定id的行 + if (Array.isArray(rowIds) && rowIds.length > 0) { + tableData = [] + rowIds.forEach((rowId) => { + const { row } = this.getIfRowById(rowId) + if (row) { + tableData.push(row) + } + }) + } else { + // 查询所有行 + tableData = this.$refs.vxe.getTableData().fullData + } + return this.filterNewRows(tableData, false) + }, + /** 仅获取新增的数据 */ + getNewData() { + const newData = cloneObject(this.$refs.vxe.getInsertRecords()) + newData.forEach((row) => delete row.id) + return newData + }, + /** 仅获取新增的数据,带有id */ + getNewDataWithId() { + const newData = cloneObject(this.$refs.vxe.getInsertRecords()) + return newData + }, + /** 根据ID获取行,新增的行也能查出来 */ + getIfRowById(id) { + let row = this.getRowById(id), + isNew = false + if (!row) { + row = this.getNewRowById(id) + if (!row) { + console.warn(`JVxeTable.getIfRowById:没有找到id为"${id}"的行`) + return { + row: null, + } + } + isNew = true + } + return { + row, + isNew, + } + }, + /** 通过临时ID获取新增的行 */ + getNewRowById(id) { + const records = this.getInsertRecords() + for (const record of records) { + if (record.id === id) { + return record + } + } + return null + }, + /** 仅获取被删除的数据(新增又被删除的数据不会被获取到) */ + getDeleteData() { + return cloneObject(this.$refs.vxe.getRemoveRecords()) + }, + /** + * 添加一行或多行 + * + * @param rows + * @param isOnlJs 是否是onlineJS增强触发的 + * @return + */ + async addRows(rows = {}, isOnlJs) { + return this._addOrInsert(rows, -1, 'added', isOnlJs) + }, + + /** + * 添加一行或多行 + * + * @param rows + * @param index 添加下标,数字,必填 + * @return + */ + async insertRows(rows, index) { + if (typeof index !== 'number' || index < 0) { + console.warn(`【JVXETable】insertRows:index必须传递数字,且大于-1`) + return + } + return this._addOrInsert(rows, index, 'inserted') + }, + /** + * 添加一行或多行临时数据,不会填充默认值,传什么就添加进去什么 + * @param rows + * @param options 选项 + * @param options.setActive 是否激活最后一行的编辑模式 + */ + async pushRows(rows = {}, options = {}) { + const { xTable } = this.$refs.vxe.$refs + let { setActive, index } = options + setActive = setActive === null ? false : !!setActive + index = index === null ? -1 : index + index = index === -1 ? index : xTable.tableFullData[index] + // 插入行 + const result = await xTable.insertAt(rows, index) + if (setActive) { + // 激活最后一行的编辑模式 + xTable.setActiveRow(result.rows[result.rows.length - 1]) + } + await this._recalcSortNumber() + return result + }, + + /** 清空选择行 */ + clearSelection() { + const event = { + $table: this.$refs.vxe, + target: this, + } + if (this.rowSelectionType === JVXETypes.rowRadio) { + this.$refs.vxe.clearRadioRow() + this.handleVxeRadioChange(event) + } else { + this.$refs.vxe.clearCheckboxRow() + this.handleVxeCheckboxChange(event) + } + }, + + /** 删除一行或多行数据 */ + async removeRows(rows) { + const res = await this._remove(rows) + await this._recalcSortNumber() + return res + }, + + /** 根据id删除一行或多行 */ + removeRowsById(rowId) { + let rowIds + if (Array.isArray(rowId)) { + rowIds = rowId + } else { + rowIds = [rowId] + } + const rows = rowIds + .map((id) => { + const { row } = this.getIfRowById(id) + if (!row) { + return + } + if (row) { + return row + } else { + console.warn(`【JVXETable】removeRowsById:${id}不存在`) + return null + } + }) + .filter((row) => row !== null) + return this.removeRows(rows) + }, + + getColumnByKey() { + return this.$refs.vxe.getColumnByField.apply(this.$refs.vxe, arguments) + }, + + /* --- 辅助方法 ---*/ + + // 触发事件 + trigger(name, event = {}) { + event.$target = this + event.$table = this.$refs.vxe + //online增强参数兼容 + event.target = this + this.$emit(name, event) + }, + + /** 【多级联动】获取同级联动下拉选项 */ + getLinkageOptionsSibling(row, col, config, request) { + // 如果当前列不是顶级列 + let key = 'defaultValue' + if (col.key !== config.key) { + // 就找出联动上级列 + const idx = config.keys.findIndex((k) => col.key === k) + const parentKey = config.keys[idx - 1] + key = row[parentKey] + // 如果联动上级列没有选择数据,就直接返回空数组 + if (key === '' || key === null) { + return [] + } + } else { + key = 'root' + } + let options = config.optionsMap.get(key) + if (!Array.isArray(options)) { + if (request) { + const parent = key === 'root' ? '' : key + return this.getLinkageOptionsAsync(config, parent) + } else { + options = [] + } + } + return options + }, + /** 【多级联动】获取联动下拉选项(异步) */ + getLinkageOptionsAsync(config, parent) { + return new Promise((resolve) => { + const key = parent ? parent : 'root' + let options + if (config.optionsMap.has(key)) { + options = config.optionsMap.get(key) + if (options instanceof Promise) { + options.then((opt) => { + config.optionsMap.set(key, opt) + resolve(opt) + }) + } else { + resolve(options) + } + } else if (typeof config.requestData === 'function') { + // 调用requestData方法,通过传入parent来获取子级 + const promise = config.requestData(parent) + config.optionsMap.set(key, promise) + promise.then((opt) => { + config.optionsMap.set(key, opt) + resolve(opt) + }) + } else { + resolve([]) + } + }) + }, + // 【多级联动】 用于回显数据,自动填充 optionsMap + autoSetLinkageOptionsByData(data, parent, config, level) { + if (level === 0) { + this.getLinkageOptionsAsync(config, '') + } else { + this.getLinkageOptionsAsync(config, parent) + } + if (config.keys.length - 1 > level) { + const value = data[config.keys[level]] + if (value) { + this.autoSetLinkageOptionsByData(data, value, config, level + 1) + } + } + }, + // 【多级联动】联动组件change时,清空下级组件 + linkageSelectChange(row, col, config, value) { + if (col.linkageKey) { + this.getLinkageOptionsAsync(config, value) + const idx = config.keys.findIndex((k) => k === col.key) + const values = {} + for (let i = idx; i < config.keys.length; i++) { + values[config.keys[i]] = '' + } + // 清空后几列的数据 + this.setValues([ + { + rowKey: row.id, + values, + }, + ]) + } + }, + + /** 加载数据字典并合并到 options */ + _loadDictConcatToOptions(column) { + //debugger + initDictOptions(column.dictCode).then((res) => { + if (res.success) { + const newOptions = column.options || [] // .concat(res.result) + res.result.forEach((item) => { + // 过滤重复数据 + for (const option of newOptions) { + if (option.value === item.value) { + return + } + } + if (column.needShowName) { + item.text = item.value + '-' + item.text + } + newOptions.push(item) + }) + this.$set(column, 'options', newOptions) + if (this.needRefresh) { + this.$emit('refresh') + } + } else { + console.group(`JVxeTable 查询字典(${column.dictCode})发生异常`) + console.warn(res.message) + console.groupEnd() + } + }) + }, + //options自定义赋值 刷新 + virtualRefresh() { + this.scrolling = true + this.closeScrolling() + }, + // 设置 this.scrolling 防抖模式 + closeScrolling: simpleDebounce(function () { + this.scrolling = false + }, 100), + + /** + * 过滤添加的行 + * @param rows 要筛选的行数据 + * @param remove true = 删除新增,false=只删除id + * @param handler function + */ + filterNewRows(rows, remove = true, handler) { + const insertRecords = this.$refs.vxe.getInsertRecords() + const records = [] + for (const row of rows) { + const item = cloneObject(row) + if (insertRecords.includes(row)) { + handler + ? handler({ + item, + row, + insertRecords, + }) + : null + + if (remove) { + continue + } + delete item.id + } + records.push(item) + } + return records + }, + + // 删除选中的数据 + async removeSelection() { + const res = await this._remove(this.selectedRows) + this.clearSelection() + await this._recalcSortNumber() + return res + }, + + /** + * 【删除指定行数据】(重写vxeTable的内部方法,添加了从keepSource中删除) + * 如果传 row 则删除一行 + * 如果传 rows 则删除多行 + * 如果为空则删除所有 + */ + _remove(rows) { + const xTable = this.$refs.vxe.$refs.xTable + + const { + afterFullData, + tableFullData, + tableSourceData, + editStore, + treeConfig, + checkboxOpts, + selection, + isInsertByRow, + scrollYLoad, + } = xTable + const { actived, removeList, insertList } = editStore + const { checkField: property } = checkboxOpts + let rest = [] + const nowData = afterFullData + if (treeConfig) { + throw new Error(UtilTools.getLog('vxe.error.noTree', ['remove'])) + } + if (!rows) { + rows = tableFullData + } else if (!XEUtils.isArray(rows)) { + rows = [rows] + } + // 如果是新增,则保存记录 + rows.forEach((row) => { + if (!isInsertByRow(row)) { + removeList.push(row) + } + }) + // 如果绑定了多选属性,则更新状态 + if (!property) { + XEUtils.remove(selection, (row) => rows.indexOf(row) > -1) + } + // 从数据源中移除 + if (tableFullData === rows) { + rows = rest = tableFullData.slice(0) + tableFullData.length = 0 + nowData.length = 0 + } else { + rest = XEUtils.remove(tableFullData, (row) => rows.indexOf(row) > -1) + XEUtils.remove(nowData, (row) => rows.indexOf(row) > -1) + } + // 【从keepSource中删除】 + if (xTable.keepSource) { + const rowIdSet = new Set(rows.map((row) => row.id)) + XEUtils.remove(tableSourceData, (row) => rowIdSet.has(row.id)) + } + + // 如果当前行被激活编辑,则清除激活状态 + if (actived.row && rows.indexOf(actived.row) > -1) { + xTable.clearActived() + } + // 从新增中移除已删除的数据 + XEUtils.remove(insertList, (row) => rows.indexOf(row) > -1) + xTable.handleTableData() + xTable.updateFooter() + xTable.updateCache() + xTable.checkSelectionStatus() + if (scrollYLoad) { + xTable.updateScrollYSpace() + } + return xTable.$nextTick().then(() => { + xTable.recalculate() + return { + row: rest.length ? rest[rest.length - 1] : null, + rows: rest, + } + }) + }, + + /** 行重新排序 */ + async rowResort(oldIndex, newIndex) { + const xTable = this.$refs.vxe.$refs.xTable + window.xTable = xTable + const sort = (array) => { + // 存储旧数据,并删除旧项目 + const row = array.splice(oldIndex, 1)[0] + // 向新项目里添加旧数据 + array.splice(newIndex, 0, row) + } + sort(xTable.tableFullData) + if (xTable.keepSource) { + sort(xTable.tableSourceData) + } + await this.$nextTick() + await this._recalcSortNumber() + }, + + /** 重新计算排序字段的数值 */ + async _recalcSortNumber() { + const xTable = this.$refs.vxe.$refs.xTable + if (this.dragSort) { + xTable.tableFullData.forEach((data, idx) => (data[this.dragSortKey] = idx + 1)) + } + await xTable.updateCache(true) + return await xTable.updateData() + }, + + async _addOrInsert(rows = {}, index, triggerName, isOnlJs) { + const { xTable } = this.$refs.vxe.$refs + let records + if (Array.isArray(rows)) { + records = rows + } else { + records = [rows] + } + // 遍历添加默认值 + records.forEach((record) => this._createRow(record)) + const result = await this.pushRows(records, { + index: index, + setActive: true, + }) + // 遍历插入的行 + // update--begin--autor:lvdandan-----date:20201117------for:LOWCOD-987 【新行编辑】js增强附表内置方法调用问题 #1819 + // online js增强时以传过来值为准,不再赋默认值 + if (isOnlJs !== true) { + for (let i = 0; i < result.rows.length; i++) { + const row = result.rows[i] + this.trigger(triggerName, { + row: row, + $table: xTable, + target: this, + }) + } + } + // update--end--autor:lvdandan-----date:20201117------for:LOWCOD-987 【新行编辑】js增强附表内置方法调用问题 #1819 + return result + }, + // 创建新行,自动添加默认值 + _createRow(record = {}) { + const { xTable } = this.$refs.vxe.$refs + // 添加默认值 + xTable.tableFullColumn.forEach((column) => { + const col = column.own + if (col.key && (record[col.key] === null || record[col.key] === '')) { + // 设置默认值 + const createValue = getEnhancedMixins(col.$type || col.type, 'createValue') + record[col.key] = createValue({ + row: record, + column, + $table: xTable, + }) + } + // update-begin--author:sunjianlei---date:20210819------for: 处理联动列,联动列只能作用于 select 组件 + if (col.$type === JVXETypes.select && this._innerLinkageConfig !== null) { + // 判断当前列是否是联动列 + if (this._innerLinkageConfig.has(col.key)) { + const configItem = this._innerLinkageConfig.get(col.key) + this.getLinkageOptionsAsync(configItem, '') + } + } + // update-end--author:sunjianlei---date:20210819------for: 处理联动列,联动列只能作用于 select 组件 + }) + return record + }, + + /*--- 渲染函数 ---*/ + + // 渲染 vxe + renderVxeGrid(h) { + return h('vxe-grid', { + ref: 'vxe', + class: ['j-vxe-table'], + props: this.vxeProps, + on: this.vxeEvents, + // 作用域插槽的格式为 + scopedSlots: this.$scopedSlots, + }) + }, + // 渲染工具栏 + renderToolbar(h) { + if (this.toolbar) { + return h('j-vxe-toolbar', { + props: { + toolbarConfig: this.toolbarConfig, + excludeCode: this.excludeCode, + size: this.size, + disabled: this.disabled, + disabledRows: this.disabledRows, + selectedRowIds: this.selectedRowIds, + }, + on: { + // 新增事件 + add: () => this.addRows(), + // 保存事件 + save: () => + this.trigger('save', { + $table: this.$refs.vxe, + target: this, + }), + // 删除事件 + remove: () => { + const $table = this.$refs.vxe + const deleteRows = this.filterNewRows(this.selectedRows) + // 触发删除事件 + if (deleteRows.length > 0) { + const removeEvent = { + deleteRows, + $table, + target: this, + } + if (this.asyncRemove) { + // 确认删除,只有调用这个方法才会真删除 + removeEvent.confirmRemove = () => this.removeSelection() + } else { + this.removeSelection() + } + this.trigger('remove', removeEvent) + } else { + this.removeSelection() + } + }, + // 清除选择事件 + clearSelection: this.clearSelection, + }, + scopedSlots: { + toolbarPrefix: this.$scopedSlots.toolbarPrefix, + toolbarSuffix: this.$scopedSlots.toolbarSuffix, + }, + }) + } + return null + }, + // 渲染 toolbarAfter 插槽 + renderToolbarAfterSlot() { + if (this.$scopedSlots['toolbarAfter']) { + return this.$scopedSlots['toolbarAfter']() + } + return null + }, + // 渲染点击时弹出的子表 + renderSubPopover(h) { + if (this.clickRowShowSubForm && this.$scopedSlots.subForm) { + return h('j-vxe-sub-popover', { + ref: 'subPopover', + scopedSlots: { + subForm: this.$scopedSlots.subForm, + }, + }) + } + return null + }, + // 渲染点击时弹出的详细信息 + renderDetailsModal(h) { + if (this.clickRowShowMainForm && this.$scopedSlots.mainForm) { + return h('j-vxe-details-modal', { + ref: 'detailsModal', + scopedSlots: { + subForm: this.clickRowShowSubForm ? this.$scopedSlots.subForm : null, + mainForm: this.$scopedSlots.mainForm, + }, + }) + } + }, + // 渲染分页器 + renderPagination(h) { + if (this.pagination && Object.keys(this.pagination).length > 0) { + return h('j-vxe-pagination', { + props: { + size: this.size, + disabled: this.disabled, + pagination: this.pagination, + }, + on: { + change: (e) => this.trigger('pageChange', e), + }, + }) + } + return null + }, + loadExcludeCode() { + if (!this.authPre || this.authPre.length === 0) { + this.excludeCode = [] + } else { + let pre = this.authPre + if (!pre.endsWith(':')) { + pre += ':' + } + this.excludeCode = getNoAuthCols(pre) + } + }, + }, + render(h) { + return h( + 'div', + { + class: ['j-vxe-table-box', `size--${this.size}`], + }, + [ + this.renderSubPopover(h), + this.renderDetailsModal(h), + this.renderToolbar(h), + this.renderToolbarAfterSlot(), + this.renderVxeGrid(h), + this.renderPagination(h), + ] + ) + }, + beforeDestroy() { + this.$emit('beforeDestroy') + }, +} + +// 兼容 online 的规则 +const fooPatterns = [ + { + title: '非空', + value: '*', + pattern: /^.+$/, + }, + { + title: '6到16位数字', + value: 'n6-16', + pattern: /^\d{6,16}$/, + }, + { + title: '6到16位任意字符', + value: '*6-16', + pattern: /^.{6,16}$/, + }, + { + title: '6到18位字母', + value: 's6-18', + pattern: /^[a-z|A-Z]{6,18}$/, + }, + { + title: '网址', + value: 'url', + pattern: /^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/, + }, + { + title: '电子邮件', + value: 'e', + pattern: /^([\w]+\.*)([\w]+)@[\w]+\.\w{3}(\.\w{2}|)$/, + }, + { + title: '手机号码', + value: 'm', + pattern: /^1[3456789]\d{9}$/, + }, + { + title: '邮政编码', + value: 'p', + pattern: /^[1-9]\d{5}$/, + }, + { + title: '字母', + value: 's', + pattern: /^[A-Z|a-z]+$/, + }, + { + title: '数字', + value: 'n', + pattern: /^-?\d+(\.?\d+|\d?)$/, + }, + { + title: '整数', + value: 'z', + pattern: /^-?\d+$/, + }, + { + title: '金额', + value: 'money', + pattern: /^(([1-9][0-9]*)|([0]\.\d{0,2}|[1-9][0-9]*\.\d{0,2}))$/, + }, +] + +/** 旧版handler转为新版Validator */ +function handlerConvertToValidator(event) { + const { column, rule } = event + return new Promise((resolve, reject) => { + rule.handler( + event, + (flag, msg) => { + let message = rule.message + if (typeof msg === 'string') { + message = replaceProps(column.own, msg) + } + if (flag === null) { + resolve(message) + } else if (flag) { + resolve(message) + } else { + reject(new Error(message)) + } + }, + this, + event + ) + }) +} + +/** 唯一校验器 */ +function uniqueValidator(event) { + const { cellValue, column, rule } = event + const tableData = this.getTableData() + let findCount = 0 + for (const rowData of tableData) { + if (rowData[column.own.key] === cellValue) { + if (++findCount >= 2) { + return Promise.reject(new Error(rule.message)) + } + } + } + return Promise.resolve() +} diff --git a/src/components/jeecg/JVxeTable/components/JVxeToolbar.vue b/src/components/jeecg/JVxeTable/components/JVxeToolbar.vue new file mode 100644 index 0000000..70b8e9c --- /dev/null +++ b/src/components/jeecg/JVxeTable/components/JVxeToolbar.vue @@ -0,0 +1,145 @@ + + + + + \ No newline at end of file diff --git a/src/components/jeecg/JVxeTable/components/cells/JVxeCheckboxCell.vue b/src/components/jeecg/JVxeTable/components/cells/JVxeCheckboxCell.vue new file mode 100644 index 0000000..a86e5f3 --- /dev/null +++ b/src/components/jeecg/JVxeTable/components/cells/JVxeCheckboxCell.vue @@ -0,0 +1,103 @@ + + + + + \ No newline at end of file diff --git a/src/components/jeecg/JVxeTable/components/cells/JVxeDateCell.vue b/src/components/jeecg/JVxeTable/components/cells/JVxeDateCell.vue new file mode 100644 index 0000000..1f983f6 --- /dev/null +++ b/src/components/jeecg/JVxeTable/components/cells/JVxeDateCell.vue @@ -0,0 +1,62 @@ + + + + diff --git a/src/components/jeecg/JVxeTable/components/cells/JVxeDepartSelectCell.vue b/src/components/jeecg/JVxeTable/components/cells/JVxeDepartSelectCell.vue new file mode 100644 index 0000000..729fe11 --- /dev/null +++ b/src/components/jeecg/JVxeTable/components/cells/JVxeDepartSelectCell.vue @@ -0,0 +1,170 @@ + + + + + \ No newline at end of file diff --git a/src/components/jeecg/JVxeTable/components/cells/JVxeDragSortCell.vue b/src/components/jeecg/JVxeTable/components/cells/JVxeDragSortCell.vue new file mode 100644 index 0000000..f4d982d --- /dev/null +++ b/src/components/jeecg/JVxeTable/components/cells/JVxeDragSortCell.vue @@ -0,0 +1,142 @@ + + + + + \ No newline at end of file diff --git a/src/components/jeecg/JVxeTable/components/cells/JVxeInputCell.vue b/src/components/jeecg/JVxeTable/components/cells/JVxeInputCell.vue new file mode 100644 index 0000000..f1745bc --- /dev/null +++ b/src/components/jeecg/JVxeTable/components/cells/JVxeInputCell.vue @@ -0,0 +1,79 @@ + + + + diff --git a/src/components/jeecg/JVxeTable/components/cells/JVxeNormalCell.vue b/src/components/jeecg/JVxeTable/components/cells/JVxeNormalCell.vue new file mode 100644 index 0000000..43a891e --- /dev/null +++ b/src/components/jeecg/JVxeTable/components/cells/JVxeNormalCell.vue @@ -0,0 +1,39 @@ + + + + diff --git a/src/components/jeecg/JVxeTable/components/cells/JVxeProgressCell.vue b/src/components/jeecg/JVxeTable/components/cells/JVxeProgressCell.vue new file mode 100644 index 0000000..4e5df1e --- /dev/null +++ b/src/components/jeecg/JVxeTable/components/cells/JVxeProgressCell.vue @@ -0,0 +1,60 @@ + + + + + \ No newline at end of file diff --git a/src/components/jeecg/JVxeTable/components/cells/JVxeSelectCell.vue b/src/components/jeecg/JVxeTable/components/cells/JVxeSelectCell.vue new file mode 100644 index 0000000..225f868 --- /dev/null +++ b/src/components/jeecg/JVxeTable/components/cells/JVxeSelectCell.vue @@ -0,0 +1,217 @@ + + + + diff --git a/src/components/jeecg/JVxeTable/components/cells/JVxeSlotCell.js b/src/components/jeecg/JVxeTable/components/cells/JVxeSlotCell.js new file mode 100644 index 0000000..12a0d3c --- /dev/null +++ b/src/components/jeecg/JVxeTable/components/cells/JVxeSlotCell.js @@ -0,0 +1,46 @@ +import JVxeCellMixins from '@/components/jeecg/JVxeTable/mixins/JVxeCellMixins' + +// 插槽 +export default { + name: 'JVxeSlotCell', + mixins: [JVxeCellMixins], + computed: { + slotProps() { + return { + value: this.innerValue, + row: this.row, + column: this.originColumn, + + params: this.params, + $table: this.params.$table, + rowId: this.params.rowid, + index: this.params.rowIndex, + rowIndex: this.params.rowIndex, + columnIndex: this.params.columnIndex, + + target: this.renderOptions.target, + caseId: this.renderOptions.target.caseId, + scrolling: this.renderOptions.scrolling, + reloadEffect: this.renderOptions.reloadEffect, + + triggerChange: (v) => this.handleChangeCommon(v), + } + }, + }, + render(h) { + const {slot} = this.renderOptions + if (slot) { + return h('div', {}, slot(this.slotProps)) + } else { + return h('div') + } + }, + // 【组件增强】注释详见:JVxeCellMixins.js + enhanced: { + switches: { + editRender: false + }, + } +} + +// :isNotPass="notPassedIds.includes(col.key+row.id)" diff --git a/src/components/jeecg/JVxeTable/components/cells/JVxeTagsCell.js b/src/components/jeecg/JVxeTable/components/cells/JVxeTagsCell.js new file mode 100644 index 0000000..506e46d --- /dev/null +++ b/src/components/jeecg/JVxeTable/components/cells/JVxeTagsCell.js @@ -0,0 +1,145 @@ +import JVxeCellMixins from '@/components/jeecg/JVxeTable/mixins/JVxeCellMixins' + +// tags 组件的显示组件 +export const TagsSpanCell = { + name: 'JVxeTagsCell', + mixins: [JVxeCellMixins], + data() { + return { + innerTags: [], + } + }, + watch: { + innerValue: { + immediate: true, + handler(value) { + if (value !== this.innerTags.join(';')) { + const rv = replaceValue(value) + this.innerTags = rv.split(';') + this.handleChangeCommon(rv) + } + }, + }, + }, + methods: { + renderTags(h) { + const tags = [] + for (const tag of this.innerTags) { + if (tag) { + const tagProps = {} + const tagStyle = {} + const setTagColor = this.originColumn.setTagColor + if (typeof setTagColor === 'function') { + /** + * 设置 tag 颜色 + * + * @param event 包含的字段: + * event.tagValue 当前tag的值 + * event.value 当前原始值 + * event.row 当前行的所有值 + * event.column 当前列的配置 + * event.column.own 当前列的原始配置 + * @return Array | String 可以返回一个数组,数据第一项是tag背景颜色,第二项是字体颜色。也可以返回一个字符串,即tag背景颜色 + */ + const color = setTagColor({ + tagValue: tag, + value: this.innerValue, + row: this.row, + column: this.column, + }) + if (Array.isArray(color)) { + tagProps.color = color[0] + tagStyle.color = color[1] + } else if (color && typeof color === 'string') { + tagProps.color = color + } + } + tags.push(h('a-tag', { + props: tagProps, + style: tagStyle, + }, [tag])) + } + } + return tags + }, + }, + render(h) { + return h('div', {}, [ + this.renderTags(h) + ]) + }, +} + +// tags 组件的输入框 +export const TagsInputCell = { + name: 'JVxeTagsInputCell', + mixins: [JVxeCellMixins], + data() { + return { + innerTagValue: '', + } + }, + watch: { + innerValue: { + immediate: true, + handler(value) { + if (value !== this.innerTagValue) { + this.handleInputChange(value) + } + }, + }, + }, + methods: { + + handleInputChange(value, event) { + this.innerTagValue = replaceValue(value, event) + this.handleChangeCommon(this.innerTagValue) + return this.innerTagValue + }, + + }, + render(h) { + return h('w-input', { + props: { + value: this.innerValue, + ...this.cellProps + }, + on: { + change: (event) => { + const {target, target: {value}} = event + const newValue = this.handleInputChange(value, event) + if (newValue !== value) { + target.value = newValue + } + } + }, + }) + }, +} + +// 将值每隔两位加上一个分号 +function replaceValue(value, event) { + if (value) { + // 首先去掉现有的分号 + value = value.replace(/;/g, '') + // 然后再遍历添加分号 + let rv = '' + const splitArr = value.split('') + let count = 0 + splitArr.forEach((val, index) => { + rv += val + const position = index + 1 + if (position % 2 === 0 && position < splitArr.length) { + count++ + rv += ';' + } + }) + if (event && count > 0) { + const {target, target: {selectionStart}} = event + target.selectionStart = selectionStart + count + target.selectionEnd = selectionStart + count + } + return rv + } + return '' +} diff --git a/src/components/jeecg/JVxeTable/components/cells/JVxeTextareaCell.vue b/src/components/jeecg/JVxeTable/components/cells/JVxeTextareaCell.vue new file mode 100644 index 0000000..3735211 --- /dev/null +++ b/src/components/jeecg/JVxeTable/components/cells/JVxeTextareaCell.vue @@ -0,0 +1,33 @@ + + + + diff --git a/src/components/jeecg/JVxeTable/components/cells/JVxeTimeCell.vue b/src/components/jeecg/JVxeTable/components/cells/JVxeTimeCell.vue new file mode 100644 index 0000000..81e4e41 --- /dev/null +++ b/src/components/jeecg/JVxeTable/components/cells/JVxeTimeCell.vue @@ -0,0 +1,54 @@ + + + + diff --git a/src/components/jeecg/JVxeTable/components/cells/JVxeUploadCell.vue b/src/components/jeecg/JVxeTable/components/cells/JVxeUploadCell.vue new file mode 100644 index 0000000..7d8c19f --- /dev/null +++ b/src/components/jeecg/JVxeTable/components/cells/JVxeUploadCell.vue @@ -0,0 +1,171 @@ + + + + diff --git a/src/components/jeecg/JVxeTable/components/cells/JVxeUserSelectCell.vue b/src/components/jeecg/JVxeTable/components/cells/JVxeUserSelectCell.vue new file mode 100644 index 0000000..9524ffc --- /dev/null +++ b/src/components/jeecg/JVxeTable/components/cells/JVxeUserSelectCell.vue @@ -0,0 +1,158 @@ + + + + + \ No newline at end of file diff --git a/src/components/jeecg/JVxeTable/components/cells/ReloadEffect.js b/src/components/jeecg/JVxeTable/components/cells/ReloadEffect.js new file mode 100644 index 0000000..3783da0 --- /dev/null +++ b/src/components/jeecg/JVxeTable/components/cells/ReloadEffect.js @@ -0,0 +1,84 @@ +import '../../less/reload-effect.less' +import { randomString } from '@/utils/util' + +// 修改数据特效 +export default { + props: { + vNode: null, + // 是否启用特效 + effect: Boolean, + }, + data() { + return { + // vNode: null, + innerEffect: false, + // 应付同时多个特效 + effectIdx: 0, + effectList: [], + } + }, + watch: { + vNode: { + deep: true, + immediate: true, + handler(vNode, old) { + this.innerEffect = this.effect + if (this.innerEffect && old !== null) { + const topLayer = this.renderSpan(old, 'top') + this.effectList.push(topLayer) + } + }, + }, + }, + methods: { + + // 条件渲染内容 span + renderVNode() { + if (this.vNode === null) { + return null + } + const bottom = this.renderSpan(this.vNode, 'bottom') + // 启用了特效,并且有旧数据,就渲染特效顶层 + if (this.innerEffect && this.effectList.length > 0) { + this.$emit('effect-begin') + // 1.4s 以后关闭特效 + window.setTimeout(() => { + const item = this.effectList[this.effectIdx] + if (item && item.elm) { + // 特效结束后,展示先把 display 设为 none,而不是直接删掉该元素, + // 目的是为了防止页面重新渲染,导致动画重置 + item.elm.style.display = 'none' + } + // 当所有的层级动画都结束时,再删掉所有元素 + if (++this.effectIdx === this.effectList.length) { + this.innerEffect = false + this.effectIdx = 0 + this.effectList = [] + this.$emit('effect-end') + } + }, 1400) + return [this.effectList, bottom] + } else { + return bottom + } + }, + // 渲染内容 span + renderSpan(vNode, layer) { + const options = { + key: layer + this.effectIdx + randomString(6), + class: ['j-vxe-reload-effect-span', `layer-${layer}`], + style: {}, + } + if (layer === 'top') { + // 最新渲染的在下面 + options.style['z-index'] = (9999 - this.effectIdx) + } + return this.$createElement('span', options, [vNode]) + }, + }, + render(h) { + return h('div', { + class: ['j-vxe-reload-effect-box'], + }, [this.renderVNode()]) + }, +} \ No newline at end of file diff --git a/src/components/jeecg/JVxeTable/index.js b/src/components/jeecg/JVxeTable/index.js new file mode 100644 index 0000000..da239f1 --- /dev/null +++ b/src/components/jeecg/JVxeTable/index.js @@ -0,0 +1,51 @@ +import * as jvxeTypes from './jvxeTypes' +import { installCell, mapCell } from './install' +import JVxeTable from './components/JVxeTable' + +import JVxeSlotCell from './components/cells/JVxeSlotCell' +import JVxeNormalCell from './components/cells/JVxeNormalCell' +import JVxeInputCell from './components/cells/JVxeInputCell' +import JVxeDateCell from './components/cells/JVxeDateCell' +import JVxeSelectCell from './components/cells/JVxeSelectCell' +import JVxeCheckboxCell from './components/cells/JVxeCheckboxCell' +import JVxeUploadCell from './components/cells/JVxeUploadCell' +import { TagsInputCell, TagsSpanCell } from './components/cells/JVxeTagsCell' +import JVxeProgressCell from './components/cells/JVxeProgressCell' +import JVxeTextareaCell from './components/cells/JVxeTextareaCell' +import JVxeDragSortCell from './components/cells/JVxeDragSortCell' +import JVxeDepartSelectCell from './components/cells/JVxeDepartSelectCell' +import JVxeUserSelectCell from './components/cells/JVxeUserSelectCell' + +//update--begin--autor:lvdandan-----date:20201216------for:JVxeTable--JVXETypes 【online】代码结构调整,便于online打包 +// 组件类型 +export const JVXETypes = jvxeTypes.JVXETypes +//update--end--autor:lvdandan-----date:20201216------for:JVxeTable--JVXETypes 【online】代码结构调整,便于online打包 + +// 注册自定义组件 +export const AllCells = { + ...mapCell(JVXETypes.normal, JVxeNormalCell), + ...mapCell(JVXETypes.input, JVxeInputCell), + ...mapCell(JVXETypes.inputNumber, JVxeInputCell), + ...mapCell(JVXETypes.checkbox, JVxeCheckboxCell), + ...mapCell(JVXETypes.select, JVxeSelectCell), + ...mapCell(JVXETypes.selectSearch, JVxeSelectCell), // 下拉搜索 + ...mapCell(JVXETypes.selectMultiple, JVxeSelectCell), // 下拉多选 + ...mapCell(JVXETypes.date, JVxeDateCell), + ...mapCell(JVXETypes.datetime, JVxeDateCell), + ...mapCell(JVXETypes.upload, JVxeUploadCell), + ...mapCell(JVXETypes.textarea, JVxeTextareaCell), + + ...mapCell(JVXETypes.tags, TagsInputCell, TagsSpanCell), + ...mapCell(JVXETypes.progress, JVxeProgressCell), + + ...mapCell(JVXETypes.rowDragSort, JVxeDragSortCell), + ...mapCell(JVXETypes.slot, JVxeSlotCell), + ...mapCell(JVXETypes.departSelect, JVxeDepartSelectCell), + ...mapCell(JVXETypes.userSelect, JVxeUserSelectCell) + + /* hidden 是特殊的组件,不在这里注册 */ +} + +export { installCell, mapCell } + +export default JVxeTable \ No newline at end of file diff --git a/src/components/jeecg/JVxeTable/install.js b/src/components/jeecg/JVxeTable/install.js new file mode 100644 index 0000000..2bbe5d3 --- /dev/null +++ b/src/components/jeecg/JVxeTable/install.js @@ -0,0 +1,105 @@ +import Vue from 'vue' +import { getEventPath } from '@/utils/util' +import JVxeTable, { AllCells, JVXETypes } from './index' +import './less/j-vxe-table.less' +// 引入 vxe-table +import 'xe-utils' +import VXETable, { Grid } from 'vxe-table' +import VXETablePluginAntd from 'vxe-table-plugin-antd' +import 'vxe-table/lib/index.css' +import 'vxe-table-plugin-antd/dist/style.css' +import { getEnhancedMixins, installAllCell, installOneCell } from '@/components/jeecg/JVxeTable/utils/cellUtils' + +// VxeGrid所有的方法映射 +const VxeGridMethodsMap = {} +Object.keys(Grid.methods).forEach(key => { + // 使用eval可以避免闭包(但是要注意不要写es6的代码) + VxeGridMethodsMap[key] = eval(`(function(){return this.$refs.vxe.${key}.apply(this.$refs.vxe,arguments)})`) /* eslint-disable-line no-eval */ +}) +// 将Grid所有的方法都映射(继承)到JVxeTable上 +JVxeTable.methods = Object.assign({}, VxeGridMethodsMap, JVxeTable.methods) + +// VXETable 全局配置 +const VXETableSettings = { + // z-index 起始值 + zIndex: 1000, + table: { + validConfig: { + // 校验提示方式:强制使用tooltip + message: 'tooltip' + } + } +} + +// 执行注册方法 +Vue.use(VXETable, VXETableSettings) +VXETable.use(VXETablePluginAntd) +Vue.component(JVxeTable.name, JVxeTable) + +// 注册自定义组件 +installAllCell(VXETable) + +// 添加事件拦截器 event.clearActived +// 比如点击了某个组件的弹出层面板之后,此时被激活单元格不应该被自动关闭,通过返回 false 可以阻止默认的行为。 +VXETable.interceptor.add('event.clearActived', function (params, event) { + // 获取组件增强 + const col = params.column.own + const interceptor = getEnhancedMixins(col.$type, 'interceptor') + // 执行增强 + const flag = interceptor['event.clearActived'].apply(this, arguments) + if (flag === false) { + return false + } + + const path = getEventPath(event) + for (const p of path) { + let className = p.className || '' + className = typeof className === 'string' ? className : className.toString() + + /* --- 特殊处理以下组件,点击以下标签时不清空编辑状态 --- */ + + // 点击的标签是JInputPop + if (className.includes('j-input-pop')) { + return false + } + // 点击的标签是JPopup的弹出层、部门选择、用户选择 + if (className.includes('j-popup-modal') || className.includes('j-depart-select-modal') || className.includes('j-user-select-modal')) { + return false + } + // 执行增强 + const flag = interceptor['event.clearActived.className'].apply(this, [className, ...arguments]) + if (flag === false) { + return false + } + } +}) + +/** + * 注册map + * @param type 类型 + * @param cell 输入组件 + * @param span 显示组件,可空,默认为 JVxeNormalCell 组件 + */ +export function mapCell(type, cell, span) { + const cells = {[type]: cell} + if (span) { + cells[type + ':span'] = span + } + return cells +} + +/** + * 注册自定义组件 + * + * @param type 类型 + * @param cell 输入组件 + * @param span 显示组件,可空,默认为 JVxeNormalCell 组件 + */ +export function installCell(type, cell, span) { + const exclude = [JVXETypes.rowNumber, JVXETypes.rowCheckbox, JVXETypes.rowRadio, JVXETypes.rowExpand, JVXETypes.rowDragSort] + if (exclude.includes(type)) { + throw new Error(`【installCell】不能使用"${type}"作为组件的type,因为这是关键字。`) + } + Object.assign(AllCells, mapCell(type, cell, span)) + installOneCell(VXETable, type) +} diff --git a/src/components/jeecg/JVxeTable/jvxeTypes.js b/src/components/jeecg/JVxeTable/jvxeTypes.js new file mode 100644 index 0000000..9929b06 --- /dev/null +++ b/src/components/jeecg/JVxeTable/jvxeTypes.js @@ -0,0 +1,45 @@ +// 组件类型 +export default JVXETypes +export const JVXETypes = { + // 为了防止和 vxe 内置的类型冲突,所以加上一个前缀 + // 前缀是自动加的,代码中直接用就行(JVXETypes.input) + _prefix: 'j-', + + // 行号列 + rowNumber: 'row-number', + // 选择列 + rowCheckbox: 'row-checkbox', + // 单选列 + rowRadio: 'row-radio', + // 展开列 + rowExpand: 'row-expand', + // 上下排序 + rowDragSort: 'row-drag-sort', + + input: 'input', + inputNumber: 'inputNumber', + textarea: 'textarea', + select: 'select', + date: 'date', + datetime: 'datetime', + time: 'time', + checkbox: 'checkbox', + upload: 'upload', + // 下拉搜索 + selectSearch: 'select-search', + // 下拉多选 + selectMultiple: 'select-multiple', + // 进度条 + progress: 'progress', + //部门选择 + departSelect: 'sel_depart', + //用户选择 + userSelect: 'sel_user', + + // 拖轮Tags(暂无用) + tags: 'tags', + + slot: 'slot', + normal: 'normal', + hidden: 'hidden', +} diff --git a/src/components/jeecg/JVxeTable/less/j-vxe-table.less b/src/components/jeecg/JVxeTable/less/j-vxe-table.less new file mode 100644 index 0000000..766f967 --- /dev/null +++ b/src/components/jeecg/JVxeTable/less/j-vxe-table.less @@ -0,0 +1,68 @@ +@import url(size/tiny); +@table-fontsize: 9pt; + +.j-vxe-table-box { + + // 工具栏 + .j-vxe-toolbar { + margin-bottom: 8px; + } + + // 分页器 + .j-vxe-pagination { + margin-top: 8px; + text-align: right; + + .ant-pagination-options-size-changer.ant-select { + margin-right: 0; + } + + &.show-quick-jumper { + .ant-pagination-options-size-changer.ant-select { + margin-right: 8px; + } + } + } + + // 更改 header 底色 + .vxe-table.border--default .vxe-table--header-wrapper, + .vxe-table.border--full .vxe-table--header-wrapper, + .vxe-table.border--outer .vxe-table--header-wrapper { + background-color: #FFFFFF; + } + +} + +// 更改 tooltip 校验失败的颜色 +.vxe-table--tooltip-wrapper.vxe-table--valid-error { + background-color: #f5222d !important; +} + +// 更改 输入框 校验失败的颜色 +.col--valid-error > .vxe-cell > .ant-input, +.col--valid-error > .vxe-cell > .ant-select .ant-input, +.col--valid-error > .vxe-cell > .ant-select .ant-select-selection, +.col--valid-error > .vxe-cell > .ant-input-number, +.col--valid-error > .vxe-cell > .ant-cascader-picker .ant-cascader-input, +.col--valid-error > .vxe-cell > .ant-calendar-picker .ant-calendar-picker-input, +.col--valid-error > .vxe-tree-cell > .ant-input, +.col--valid-error > .vxe-tree-cell > .ant-select .ant-input, +.col--valid-error > .vxe-tree-cell > .ant-select .ant-select-selection, +.col--valid-error > .vxe-tree-cell > .ant-input-number, +.col--valid-error > .vxe-tree-cell > .ant-cascader-picker .ant-cascader-input, +.col--valid-error > .vxe-tree-cell > .ant-calendar-picker .ant-calendar-picker-input { + border-color: #f5222d !important; +} + +.vxe-table.size--medium .vxe-body--column.col--ellipsis, +.vxe-table.size--medium .vxe-footer--column.col--ellipsis, +.vxe-table.size--medium .vxe-header--column.col--ellipsis, +.vxe-table.vxe-editable.size--medium .vxe-body--column { + height: 28px; + font-size: @table-fontsize; +} + +// 拖拽排序列样式 +.vxe-table .col--row-drag-sort .vxe-cell { + height: 100%; +} \ No newline at end of file diff --git a/src/components/jeecg/JVxeTable/less/reload-effect.less b/src/components/jeecg/JVxeTable/less/reload-effect.less new file mode 100644 index 0000000..26a990c --- /dev/null +++ b/src/components/jeecg/JVxeTable/less/reload-effect.less @@ -0,0 +1,45 @@ +.j-vxe-reload-effect-box { + &, + .j-vxe-reload-effect-span { + display: inline; + height: 100%; + position: relative; + } + + .j-vxe-reload-effect-span { + &.layer-top { + display: inline-block; + width: 100%; + position: absolute; + z-index: 2; + background-color: white; + transform-origin: 0 0; + animation: reload-effect 1.5s forwards; + } + + &.layer-bottom { + z-index: 1; + } + } + + // 定义动画 + @keyframes reload-effect { + 0% { + opacity: 1; + transform: rotateX(0); + } + + 10% { + opacity: 1; + } + + 90% { + opacity: 0; + } + + 100% { + opacity: 0; + transform: rotateX(180deg); + } + } +} \ No newline at end of file diff --git a/src/components/jeecg/JVxeTable/less/size/tiny.less b/src/components/jeecg/JVxeTable/less/size/tiny.less new file mode 100644 index 0000000..df21f86 --- /dev/null +++ b/src/components/jeecg/JVxeTable/less/size/tiny.less @@ -0,0 +1,336 @@ +/* stylelint-disable */ +.j-vxe-table-box { + + @height: 24px; + @lineHeight: 1.5; + @spacing: 4px; + @fontSize: 14px; + @borderRadius: 2px; + + &.size--tiny { + .vxe-table--header .vxe-cell--checkbox { + position: relative; + top: 2px; + right: 1px; + } + + .vxe-table--body .vxe-cell--checkbox { + line-height: 2; + } + + .vxe-cell { + padding: 0 5px; + font-size: @fontSize; + line-height: @lineHeight; + } + + .vxe-table .vxe-header--column .vxe-cell { + font-size: 12px; + } + + .vxe-body--column.col--actived { + padding: 0; + + .vxe-cell { + padding: 0; + } + + } + + // ant输入框 + .ant-input, + // ant下拉框 + .ant-select-selection { + padding: 2px @spacing; + height: @height; + font-size: @fontSize; + border-radius: @borderRadius; + line-height: @lineHeight; + } + + // 输入框图标对齐 + .ant-input-affix-wrapper { + & .ant-input-prefix { + left: 4px; + } + + & .ant-input:not(:first-child) { + padding-left: 20px; + } + } + + // 按钮 addon + .ant-input-group-addon { + border-color: transparent; + border-radius: @borderRadius; + } + + + // ant下拉多选框 + .ant-select-selection--multiple { + min-height: @height; + + & .ant-select-selection__rendered > ul > li { + height: calc(@height - 6px); + font-size: calc(@fontSize - 2px); + margin-top: 0; + line-height: @lineHeight; + padding: 0 18px 0 4px; + + } + + & .ant-select-selection__clear, + & .ant-select-arrow { + top: 12px; + } + } + + + // ant按钮 + .ant-upload { + width: 100%; + + .ant-btn { + width: 100%; + height: @height; + padding: 0 8px; + font-size: @fontSize; + border-color: transparent; + background-color: transparent; + border-radius: @borderRadius; + + &:hover { + background-color: rgba(255, 255, 255, 30%); + } + } + } + + + + + // 工具栏 + .j-vxe-toolbar { + margin-bottom: 4px; + + .ant-form-item-label, + .ant-form-item-control { + line-height: 22px; + } + + .ant-form-inline .ant-form-item { + margin-right: 4px; + } + + } + } + + /** 内置属性 */ + + .vxe-table.size--tiny { + & .vxe-table--expanded { + padding-right: 0; + } + + & .vxe-body--expanded-cell { + padding: 8px; + } + } + + .size--tiny .vxe-loading .vxe-loading--spinner { + width: 38px; + height: 38px + } + + .vxe-table.size--tiny .vxe-body--column.col--ellipsis, + .vxe-table.size--tiny .vxe-footer--column.col--ellipsis, + .vxe-table.size--tiny .vxe-header--column.col--ellipsis, + .vxe-table.vxe-editable.size--tiny .vxe-body--column { + height: @height; + } + + .vxe-table.size--tiny { + font-size: 12px + } + + .vxe-table.size--tiny .vxe-table--empty-block, + .vxe-table.size--tiny .vxe-table--empty-placeholder { + min-height: @height; + } + + .vxe-table.size--tiny .vxe-body--column:not(.col--ellipsis), + .vxe-table.size--tiny .vxe-footer--column:not(.col--ellipsis), + .vxe-table.size--tiny .vxe-header--column:not(.col--ellipsis) { + padding: 4px 0 + } + + .vxe-table.size--tiny .vxe-cell .vxe-default-input, + .vxe-table.size--tiny .vxe-cell .vxe-default-select, + .vxe-table.size--tiny .vxe-cell .vxe-default-textarea { + height: @height; + } + + .vxe-table.size--medium .vxe-body--column.col--ellipsis, +.vxe-table.size--medium .vxe-footer--column.col--ellipsis, +.vxe-table.size--medium .vxe-header--column.col--ellipsis, +.vxe-table.vxe-editable.size--medium .vxe-body--column { + height: 28px; +} + + .vxe-table.size--tiny .vxe-cell .vxe-default-input[type="date"]::-webkit-inner-spin-button { + margin-top: 1px + } + + .vxe-table.size--tiny.virtual--x .col--ellipsis .vxe-cell, + .vxe-table.size--tiny.virtual--y .col--ellipsis .vxe-cell, + .vxe-table.size--tiny .vxe-body--column.col--ellipsis .vxe-cell, + .vxe-table.size--tiny .vxe-footer--column.col--ellipsis .vxe-cell, + .vxe-table.size--tiny .vxe-header--column.col--ellipsis .vxe-cell { + max-height: @height; + } + + .vxe-table.size--tiny .vxe-cell--checkbox .vxe-checkbox--icon, + .vxe-table.size--tiny .vxe-cell--radio .vxe-radio--icon { + font-size: 14px + } + + + .vxe-table.size--tiny .vxe-table--filter-option > .vxe-checkbox--icon, + .vxe-table.size--small .vxe-table--filter-option > .vxe-checkbox--icon { + font-size: 14px + } + + .vxe-modal--wrapper.size--tiny .vxe-export--panel-column-option > .vxe-checkbox--icon, + .vxe-modal--wrapper.size--small .vxe-export--panel-column-option > .vxe-checkbox--icon { + font-size: 14px + } + + .vxe-grid.size--tiny { + font-size: 12px + } + + .vxe-toolbar.size--tiny { + font-size: 12px; + height: 46px + } + + .vxe-toolbar.size--tiny .vxe-custom--option > .vxe-checkbox--icon { + font-size: 14px + } + + .vxe-pager.size--tiny { + font-size: 12px; + height: @height; + } + + .vxe-checkbox.size--tiny { + font-size: 12px + } + + .vxe-checkbox.size--tiny .vxe-checkbox--icon { + font-size: 14px + } + + .vxe-radio-button.size--tiny .vxe-radio--label { + line-height: 26px + } + + .vxe-radio.size--tiny { + font-size: 12px + } + + .vxe-radio.size--tiny .vxe-radio--icon { + font-size: 14px + } + + .vxe-input.size--tiny { + font-size: 12px; + height: @height; + } + + .vxe-input.size--tiny .vxe-input--inner[type="date"]::-webkit-inner-spin-button, + .vxe-input.size--tiny .vxe-input--inner[type="month"]::-webkit-inner-spin-button, + .vxe-input.size--tiny .vxe-input--inner[type="week"]::-webkit-inner-spin-button { + margin-top: 0 + } + + .vxe-dropdown--panel.size--tiny { + font-size: 12px + } + + .vxe-textarea--autosize.size--tiny, + .vxe-textarea.size--tiny { + font-size: 12px + } + + .vxe-textarea.size--tiny:not(.is--autosize) { + min-height: @height; + } + + .vxe-button.size--tiny { + font-size: 12px + } + + .vxe-button.size--tiny.type--button { + height: @height; + } + + .vxe-button.size--tiny.type--button.is--circle { + min-width: @height; + } + + .vxe-button.size--tiny.type--button.is--round { + border-radius: 14px + } + + .vxe-button.size--tiny .vxe-button--icon, + .vxe-button.size--tiny .vxe-button--loading-icon { + min-width: 12px + } + + .vxe-modal--wrapper.size--tiny { + font-size: 12px + } + + .vxe-form.size--tiny { + font-size: 12px + } + + .vxe-form.size--tiny .vxe-form--item-inner { + min-height: 30px + } + + .vxe-form.size--tiny .vxe-default-input[type="reset"], + .vxe-form.size--tiny .vxe-default-input[type="submit"] { + line-height: 26px + } + + .vxe-form.size--tiny .vxe-default-input, + .vxe-form.size--tiny .vxe-default-select { + height: @height; + } + + .vxe-select--panel.size--tiny, + .vxe-select.size--tiny { + font-size: 12px + } + + .vxe-select--panel.size--tiny .vxe-optgroup--title, + .vxe-select--panel.size--tiny .vxe-select-option { + height: 24px; + line-height: 24px + } + + .vxe-switch.size--tiny { + font-size: 12px + } + + + .vxe-pulldown--panel.size--tiny, + .vxe-pulldown.size--tiny { + font-size: 12px + } + + +} + + diff --git a/src/components/jeecg/JVxeTable/mixins/JVxeCellMixins.js b/src/components/jeecg/JVxeTable/mixins/JVxeCellMixins.js new file mode 100644 index 0000000..3eda68f --- /dev/null +++ b/src/components/jeecg/JVxeTable/mixins/JVxeCellMixins.js @@ -0,0 +1,330 @@ +import PropTypes from 'ant-design-vue/es/_util/vue-types' +import { filterDictText } from '@/components/dict/JDictSelectUtil' +import { getEnhancedMixins, JVXERenderType, replaceProps } from '@/components/jeecg/JVxeTable/utils/cellUtils' + +// noinspection JSUnusedLocalSymbols +export default { + inject: { + getParentContainer: {default: () => ((node) => node.parentNode)}, + }, + props: { + value: PropTypes.any, + row: PropTypes.object, + column: PropTypes.object, + // 组件参数 + params: PropTypes.object, + // 渲染选项 + renderOptions: PropTypes.object, + // 渲染类型 + renderType: PropTypes.string.def('default'), + }, + data() { + return { + innerValue: null, + } + }, + computed: { + caseId() { + return this.renderOptions.caseId + }, + originColumn() { + return this.column.own + }, + $type() { + return this.originColumn.$type + }, + rows() { + return this.params.data + }, + fullDataLength() { + return this.params.$table.tableFullData.length + }, + rowIndex() { + return this.params.rowIndex + }, + columnIndex() { + return this.params.columnIndex + }, + cellProps() { + const {originColumn: col, renderOptions} = this + + const props = {} + + // 输入占位符 + props['placeholder'] = replaceProps(col, col.placeholder) + + // 解析props + if (typeof col.props === 'object') { + Object.keys(col.props).forEach(key => { + props[key] = replaceProps(col, col.props[key]) + }) + } + + // 判断是否是禁用的列 + props['disabled'] = (typeof col['disabled'] === 'boolean' ? col['disabled'] : props['disabled']) + + // TODO 判断是否是禁用的行 + // if (props['disabled'] !== true) { + // props['disabled'] = ((this.disabledRowIds || []).indexOf(row.id) !== -1) + // } + + // 判断是否禁用所有组件 + if (renderOptions.disabled === true) { + props['disabled'] = true + } + + // update-begin-author:taoyan date:20211011 for: online表单,附表用户选择器{"multiSelect":false}不生效,单表可以生效 #3036 + const jsonStr = col['fieldExtendJson'] + if(jsonStr){ + const fieldExtendJson = JSON.parse(jsonStr) + if(fieldExtendJson && fieldExtendJson['multiSelect']===false){ + props['multi'] = false + } + } + // update-end-author:taoyan date:20211011 for: online表单,附表用户选择器{"multiSelect":false}不生效,单表可以生效 #3036 + + return props + }, + }, + watch: { + $type: { + immediate: true, + handler($type) { + this.enhanced = getEnhancedMixins($type) + this.listeners = getListeners.call(this) + }, + }, + value: { + immediate: true, + handler(val) { + let value = val + + // 验证值格式 + const originValue = this.row[this.column.property] + const getValue = this.enhanced.getValue.call(this, originValue) + if (originValue !== getValue) { + // 值格式不正确,重新赋值 + value = getValue + vModel.call(this, value) + } + + this.innerValue = this.enhanced.setValue.call(this, value) + + // 判断是否启用翻译 + if (this.renderType === JVXERenderType.spaner && this.enhanced.translate.enabled) { + const res = this.enhanced.translate.handler.call(this, value) + // 异步翻译,目前仅【多级联动】使用 + if (res instanceof Promise) { + res.then(value => this.innerValue = value) + } else { + this.innerValue = res + } + } + }, + }, + }, + created() { + }, + methods: { + + /** 通用处理change事件 */ + handleChangeCommon(value) { + const handle = this.enhanced.getValue.call(this, value) + this.trigger('change', {value: handle}) + // 触发valueChange事件 + this.parentTrigger('valueChange', { + type: this.$type, + value: handle, + oldValue: this.value, + col: this.originColumn, + rowIndex: this.params.rowIndex, + columnIndex: this.params.columnIndex, + }) + }, + /** 通用处理blur事件 */ + handleBlurCommon(value) { + this.trigger('blur', {value}) + }, + + /** + * 如果事件存在的话,就触发 + * @param name 事件名 + * @param event 事件参数 + * @param args 其他附带参数 + */ + trigger(name, event, args = []) { + const listener = this.listeners[name] + if (typeof listener === 'function') { + if (typeof event === 'object') { + event = this.packageEvent(name, event) + } + listener(event, ...args) + } + }, + parentTrigger(name, event, args = []) { + args.unshift(this.packageEvent(name, event)) + this.trigger('trigger', name, args) + }, + packageEvent(name, event = {}) { + event.row = this.row + event.column = this.column + //online增强参数兼容 + event.column['key'] = this.column['property'] + event.cellTarget = this + if (!event.type) { + event.type = name + } + if (!event.cellType) { + event.cellType = this.$type + } + // 是否校验表单,默认为true + if (typeof event.validate !== 'boolean') { + event.validate = true + } + return event + }, + + }, + model: { + prop: 'value', + event: 'change' + }, + /** + * 【自定义增强】用于实现一些增强事件 + * 【注】这里只是定义接口,具体功能需要到各个组件内实现(也有部分功能实现) + * 【注】该属性不是Vue官方属性,是JVxeTable组件自定义的 + * 所以方法内的 this 指向并不是当前组件,而是方法自身, + * 也就是说并不能 this 打点调实例里的任何方法 + */ + enhanced: { + // 注册参数(详见:https://xuliangzhan_admin.gitee.io/vxe-table/#/table/renderer/edit) + installOptions: { + // 自动聚焦的 class 类名 + autofocus: '', + }, + // 事件拦截器(用于兼容) + interceptor: { + // 已实现:event.clearActived + // 说明:比如点击了某个组件的弹出层面板之后,此时被激活单元格不应该被自动关闭,通过返回 false 可以阻止默认的行为。 + ['event.clearActived']() { + return true + }, + // 自定义:event.clearActived.className + // 说明:比原生的多了一个参数:className,用于判断点击的元素的样式名(递归到顶层) + ['event.clearActived.className']() { + return true + }, + }, + // 【功能开关】 + switches: { + // 是否使用 editRender 模式(仅当前组件,并非全局) + // 如果设为true,则表头上方会出现一个可编辑的图标 + editRender: true, + // false = 组件触发后可视);true = 组件一直可视 + visible: false, + }, + // 【切面增强】切面事件处理,一般在某些方法执行后同步执行 + aopEvents: { + // 单元格被激活编辑时会触发该事件 + editActived() { + }, + // 单元格编辑状态下被关闭时会触发该事件 + editClosed() { + }, + }, + // 【翻译增强】可以实现例如select组件保存的value,但是span模式下需要显示成text + translate: { + // 是否启用翻译 + enabled: false, + /** + * 【翻译处理方法】如果handler留空,则使用默认的翻译方法 + * (this指向当前组件) + * + * @param value 需要翻译的值 + * @returns{*} 返回翻译后的数据 + */ + handler(value,) { + // 默认翻译方法 + return filterDictText(this.column.own.options, value) + }, + }, + /** + * 【获取值增强】组件抛出的值 + * (this指向当前组件) + * + * @param value 保存到数据库里的值 + * @returns{*} 返回处理后的值 + */ + getValue(value) { + return value + }, + /** + * 【设置值增强】设置给组件的值 + * (this指向当前组件) + * + * @param value 组件触发的值 + * @returns{*} 返回处理后的值 + */ + setValue(value) { + return value + }, + /** + * 【新增行增强】在用户点击新增时触发的事件,返回新行的默认值 + * + * @param row 行数据 + * @param column 列配置,.own 是用户配置的参数 + * @param $table vxe 实例 + * @param renderOptions 渲染选项 + * @param params 可以在这里获取 $table + * + * @returns 返回新值 + */ + createValue({column}) { + return column.own.defaultValue + }, + } +} + +function getListeners() { + const listeners = Object.assign({}, (this.renderOptions.listeners || {})) + if (!listeners.change) { + listeners.change = async (event) => { + vModel.call(this, event.value) + await this.$nextTick() + // 处理 change 事件相关逻辑(例如校验) + this.params.$table.updateStatus(this.params) + } + } + return listeners +} + +export function vModel(value, row, property) { + if (!row) { + row = this.row + } + if (!property) { + property = this.column.property + } + this.$set(row, property, value) +} + +/** 模拟触发事件 */ +export function dispatchEvent({cell, $event}, className, handler) { + // alwaysEdit 下不模拟触发事件,否者会导致触发两次 + if (this && this.alwaysEdit) { + return + } + window.setTimeout(() => { + const element = cell.getElementsByClassName(className) + if (element && element.length > 0) { + if (typeof handler === 'function') { + handler(element[0]) + } else { + // 模拟触发点击事件 + if($event){ + element[0].dispatchEvent($event) + } + } + } + }, 10) +} \ No newline at end of file diff --git a/src/components/jeecg/JVxeTable/mixins/vxe.web.socket.mixins.js b/src/components/jeecg/JVxeTable/mixins/vxe.web.socket.mixins.js new file mode 100644 index 0000000..4b9386b --- /dev/null +++ b/src/components/jeecg/JVxeTable/mixins/vxe.web.socket.mixins.js @@ -0,0 +1,264 @@ +import store from '@/store/' +import { randomUUID } from '@/utils/util' +// vxe socket +const vs = { + // 页面唯一 id,用于标识同一用户,不同页面的websocket + pageId: randomUUID(), + // webSocket 对象 + ws: null, + // 一些常量 + constants: { + // 消息类型 + TYPE: 'type', + // 消息数据 + DATA: 'data', + // 消息类型:心跳检测 + TYPE_HB: 'heart_beat', + // 消息类型:通用数据传递 + TYPE_CSD: 'common_send_date', + // 消息类型:更新vxe table数据 + TYPE_UVT: 'update_vxe_table', + }, + // 心跳检测 + heartCheck: { + // 间隔时间,间隔多久发送一次心跳消息 + interval: 10000, + // 心跳消息超时时间,心跳消息多久没有回复后重连 + timeout: 6000, + timeoutTimer: null, + clear() { + clearTimeout(this.timeoutTimer) + return this + }, + start() { + vs.sendMessage(vs.constants.TYPE_HB, '') + // 如果超过一定时间还没重置,说明后端主动断开了 + this.timeoutTimer = window.setTimeout(() => { + vs.reconnect() + }, this.timeout) + return this + }, + // 心跳消息返回 + back() { + this.clear() + window.setTimeout(() => this.start(), this.interval) + }, + }, + + /** 初始化 WebSocket */ + initialWebSocket() { + if (this.ws === null) { + const userId = store.getters.userInfo.id + const domain = window._CONFIG['domianURL'].replace('https://', 'wss://').replace('http://', 'ws://') + const url = `${domain}/vxeSocket/${userId}/${this.pageId}` + + this.ws = new WebSocket(url) + this.ws.onopen = this.on.open.bind(this) + this.ws.onerror = this.on.error.bind(this) + this.ws.onmessage = this.on.message.bind(this) + this.ws.onclose = this.on.close.bind(this) + + console.log('this.ws: ', this.ws) + } + }, + + // 发送消息 + sendMessage(type, message) { + try { + const ws = this.ws + if (ws !== null && ws.readyState === ws.OPEN) { + ws.send(JSON.stringify({ + type: type, + data: message + })) + } + } catch (err) { + console.warn('【VXEWebSocket】发送消息失败:(' + err.code + ')') + } + }, + + /** 绑定全局VXE表格 */ + tableMap: new Map(), + CSDMap: new Map(), + /** 添加绑定 */ + addBind(map, key, value) { + const binds = map.get(key) + if (Array.isArray(binds)) { + binds.push(value) + } else { + map.set(key, [value]) + } + }, + /** 移除绑定 */ + removeBind(map, key, value) { + const binds = map.get(key) + if (Array.isArray(binds)) { + for (let i = 0; i < binds.length; i++) { + const bind = binds[i] + if (bind === value) { + binds.splice(i, 1) + break + } + } + if (binds.length === 0) { + map.delete(key) + } + } else { + map.delete(key) + } + }, + // 呼叫绑定的表单 + callBind(map, key, callback) { + const binds = map.get(key) + if (Array.isArray(binds)) { + binds.forEach(callback) + } + }, + + lockReconnect: false, + /** 尝试重连 */ + reconnect() { + if (this.lockReconnect) {return} + this.lockReconnect = true + setTimeout(() => { + if (this.ws && this.ws.close) { + this.ws.close() + } + this.ws = null + console.info('【VXEWebSocket】尝试重连...') + this.initialWebSocket() + this.lockReconnect = false + }, 5000) + }, + + on: { + open() { + console.log('【VXEWebSocket】连接成功') + this.heartCheck.start() + }, + error(e) { + console.warn('【VXEWebSocket】连接发生错误:', e) + this.reconnect() + }, + message(e) { + // 解析消息 + let json + try { + json = JSON.parse(e.data) + } catch (e) { + console.warn('【VXEWebSocket】收到无法解析的消息:', e.data) + return + } + const type = json[this.constants.TYPE] + const data = json[this.constants.DATA] + switch (type) { + // 心跳检测 + case this.constants.TYPE_HB: + this.heartCheck.back() + break + // 通用数据传递 + case this.constants.TYPE_CSD: + this.callBind(this.CSDMap, data.key, (fn) => fn.apply(this, data.args)) + break + // 更新form数据 + case this.constants.TYPE_UVT: + this.callBind(this.tableMap, data.socketKey, (vm) => this.onVM['onUpdateTable'].apply(vm, data.args)) + break + default: + console.warn('【VXEWebSocket】收到不识别的消息类型:' + type) + break + } + }, + close(e) { + console.log('【VXEWebSocket】连接被关闭:', e) + this.reconnect() + }, + }, + + onVM: { + /** 收到更新表格的消息 */ + onUpdateTable(row, caseId) { + // 判断是不是自己发的消息 + if (this.caseId !== caseId) { + const tableRow = this.getIfRowById(row.id).row + // 局部保更新数据 + if (tableRow) { + // 特殊处理拖轮状态 + if (row['tug_status'] && tableRow['tug_status']) { + row['tug_status'] = Object.assign({}, tableRow['tug_status'], row['tug_status']) + } + // 判断是否启用重载特效 + if (this.reloadEffect) { + this.$set(this.reloadEffectRowKeysMap, row.id, true) + } + Object.keys(row).forEach(key => { + if (key !== 'id') { + this.$set(tableRow, key, row[key]) + } + }) + this.$refs.vxe.reloadRow(tableRow) + } + } + }, + }, + +} + +export default { + props: { + // 是否开启使用 webSocket 无痕刷新 + socketReload: { + type: Boolean, + default: false + }, + socketKey: { + type: String, + default: 'vxe-default' + }, + }, + data() { + return {} + }, + mounted() { + if (this.socketReload) { + vs.initialWebSocket() + vs.addBind(vs.tableMap, this.socketKey, this) + } + }, + methods: { + + /** 发送socket消息更新行 */ + socketSendUpdateRow(row) { + vs.sendMessage(vs.constants.TYPE_UVT, { + socketKey: this.socketKey, + args: [row, this.caseId], + }) + }, + + }, + beforeDestroy() { + vs.removeBind(vs.tableMap, this.socketKey, this) + }, +} + +/** + * 添加WebSocket通用数据传递绑定,相同的key可以添加多个方法绑定 + * @param key 唯一key + * @param fn 当消息来的时候触发的回调方法 + */ +export function addBindSocketCSD(key, fn) { + if (typeof fn === 'function') { + vs.addBind(vs.CSDMap, key, fn) + } +} + +/** + * 移除WebSocket通用数据传递绑定 + * @param key 唯一key + * @param fn 要移除的方法,必须和添加时的方法内存层面上保持一致才可以正确移除 + */ +export function removeBindSocketCSD(key, fn) { + if (typeof fn === 'function') { + vs.removeBind(vs.CSDMap, key, fn) + } +} diff --git a/src/components/jeecg/JVxeTable/utils/cellUtils.js b/src/components/jeecg/JVxeTable/utils/cellUtils.js new file mode 100644 index 0000000..c7719b2 --- /dev/null +++ b/src/components/jeecg/JVxeTable/utils/cellUtils.js @@ -0,0 +1,129 @@ +import { AllCells, JVXETypes } from '@/components/jeecg/JVxeTable' +import JVxeCellMixins from '../mixins/JVxeCellMixins' + +export const JVXERenderType = { + editer: 'editer', + spaner: 'spaner', + default: 'default', +} + +/** 安装所有vxe组件 */ +export function installAllCell(VXETable) { + // 遍历所有组件批量注册 + Object.keys(AllCells).forEach(type => installOneCell(VXETable, type)) +} + +/** 安装单个vxe组件 */ +export function installOneCell(VXETable, type) { + const switches = getEnhancedMixins(type, 'switches') + if (switches.editRender === false) { + installCellRender(VXETable, type, AllCells[type]) + } else { + installEditRender(VXETable, type, AllCells[type]) + } +} + +/** 注册可编辑组件 */ +export function installEditRender(VXETable, type, comp, spanComp) { + // 获取当前组件的增强 + const enhanced = getEnhancedMixins(type) + // span 组件 + if (!spanComp && AllCells[type + ':span']) { + spanComp = AllCells[type + ':span'] + } else { + spanComp = AllCells[JVXETypes.normal] + } + // 添加渲染 + VXETable.renderer.add(JVXETypes._prefix + type, { + // 可编辑模板 + renderEdit: createRender(comp, enhanced, JVXERenderType.editer), + // 显示模板 + renderCell: createRender(spanComp, enhanced, JVXERenderType.spaner), + // 增强注册 + ...enhanced.installOptions, + }) +} + +/** 注册普通组件 */ +export function installCellRender(VXETable, type, comp = AllCells[JVXETypes.normal]) { + // 获取当前组件的增强 + const enhanced = getEnhancedMixins(type) + VXETable.renderer.add(JVXETypes._prefix + type, { + // 默认显示模板 + renderDefault: createRender(comp, enhanced, JVXERenderType.default), + // 增强注册 + ...enhanced.installOptions, + }) +} + +function createRender(comp, enhanced, renderType) { + return function (h, renderOptions, params) { + return [h(comp, { + props: { + value: params.row[params.column.property], + row: params.row, + column: params.column, + params: params, + renderOptions: renderOptions, + renderType: renderType, + } + })] + } +} + +// 已混入的组件增强 +const AllCellsMixins = new Map() + +/** 获取某个组件的增强 */ +export function getEnhanced(type) { + const cell = AllCells[type] + if (cell && cell.enhanced) { + return cell.enhanced + } + return null +} + +/** + * 获取某个组件的增强(混入默认值) + * + * @param type JVXETypes + * @param name 可空,增强名称,留空返回所有增强 + */ +export function getEnhancedMixins(type, name) { + const getByName = (e) => name ? e[name] : e + if (AllCellsMixins.has(type)) { + return getByName(AllCellsMixins.get(type)) + } + const defEnhanced = JVxeCellMixins.enhanced + const enhanced = getEnhanced(type) + if (enhanced) { + Object.keys(defEnhanced).forEach(key => { + const def = defEnhanced[key] + if (Object.prototype.hasOwnProperty.call(enhanced,key)) { + // 方法如果存在就不覆盖 + if (typeof def !== 'function' && typeof def !== 'string') { + enhanced[key] = Object.assign({}, def, enhanced[key]) + } + } else { + enhanced[key] = def + } + }) + AllCellsMixins.set(type, enhanced) + return getByName(enhanced) + } + AllCellsMixins.set(type, defEnhanced) + return getByName(defEnhanced) +} + + +/** 辅助方法:替换${...}变量 */ +export function replaceProps(col, value) { + if (value && typeof value === 'string') { + let text = value + text = text.replace(/\${title}/g, col.title) + text = text.replace(/\${key}/g, col.key) + text = text.replace(/\${defaultValue}/g, col.defaultValue) + return text + } + return value +} diff --git a/src/components/jeecg/JVxeTable/utils/vxeUtils.js b/src/components/jeecg/JVxeTable/utils/vxeUtils.js new file mode 100644 index 0000000..c38e25f --- /dev/null +++ b/src/components/jeecg/JVxeTable/utils/vxeUtils.js @@ -0,0 +1,275 @@ +import { getVmParentByName } from '@/utils/util' +import { JVXETypes } from '@comp/jeecg/JVxeTable/index' + +export const VALIDATE_FAILED = Symbol() + +/** + * 获取指定的 $refs 对象 + * 有时候可能会遇到组件未挂载到页面中的情况,导致无法获取 $refs 中的某个对象 + * 这个方法可以等待挂载完成之后再返回 $refs 的对象,避免报错 + * @author sunjianlei + **/ +export function getRefPromise(vm, name) { + return new Promise((resolve) => { + ;(function next() { + const ref = vm.$refs[name] + if (ref) { + resolve(ref) + } else { + setTimeout(() => { + next() + }, 10) + } + })() + }) +} + +/** 获取某一数字输入框列中的最大的值 */ +export function getInputNumberMaxValue(col, rowsValues) { + let maxNum = 0 + Object.values(rowsValues).forEach((rowValue, index) => { + const val = rowValue[col.key] + let num + try { + num = Number.parseFloat(val) + } catch { + num = 0 + } + // 把首次循环的结果当成最大值 + if (index === 0) { + maxNum = num + } else { + maxNum = num > maxNum ? num : maxNum + } + }) + return maxNum +} + +/** + * + * 根据 tagName 获取父级节点 + * + * @param dom 一级dom节点 + * @param tagName 标签名,不区分大小写 + * @return {HTMLElement | NULL} + */ +export function getParentNodeByTagName(dom, tagName = 'body') { + if (tagName === 'body') { + return document.body + } + if (dom.parentNode) { + if (dom.parentNode.tagName.toLowerCase() === tagName.trim().toLowerCase()) { + return dom.parentNode + } else { + return getParentNodeByTagName(dom.parentNode, tagName) + } + } else { + return null + } +} + +/** + * vxe columns 封装成高级查询可识别的选项 + * @param columns + * @param handler 单独处理方法 + */ +// export function vxePackageToSuperQuery(columns, handler) { +// if (Array.isArray(columns)) { +// // 高级查询所需要的参数 +// const fieldList = [] +// // 遍历列 +// for (let i = 0; i < columns.length; i++) { +// const col = columns[i] +// if ( +// col.type === JVXETypes.rowCheckbox || +// col.type === JVXETypes.rowRadio || +// col.type === JVXETypes.rowExpand || +// col.type === JVXETypes.rowNumber +// ) { +// continue +// } +// const field = { +// type: 'string', +// value: col.key, +// text: col.title, +// dictCode: col.dictCode || col.dict, +// } +// if (col.type === JVXETypes.date || col.type === JVXETypes.datetime) { +// field.type = col.type +// field.format = col.format +// } +// if (col.type === JVXETypes.inputNumber) { +// field.type = 'int' +// } +// if (Array.isArray(col.options)) { +// field.options = col.options +// } +// if (typeof handler === 'function') { +// Object.assign(field, handler(col, idx)) +// } +// fieldList.push(field) +// } +// return fieldList +// } else { +// console.error('columns必须是一个数组') +// } +// return null +// } +export function vxePackageToSuperQuery(columns, handler) { + // 非数组直接报错返回 + if (!Array.isArray(columns)) { + console.error('columns必须是一个数组'); + return null; + } + + // 定义需要跳过的列类型 + const skipTypes = new Set([ + JVXETypes.rowCheckbox, + JVXETypes.rowRadio, + JVXETypes.rowExpand, + JVXETypes.rowNumber + ]); + + // 类型映射表(列类型 -> field类型) + const typeMap = { + [JVXETypes.date]: 'date', + [JVXETypes.datetime]: 'datetime', + [JVXETypes.inputNumber]: 'int' + }; + + return columns.reduce((fieldList, col) => { + // 跳过不需要处理的列 + if (skipTypes.has(col.type)) {return fieldList;} + + // 基础字段配置 + const field = { + type: 'string', + value: col.key, + text: col.title, + dictCode: col.dictCode || col.dict, + // 日期格式(仅日期类型需要) + ...(typeMap[col.type] && { format: col.format }) + }; + + // 根据列类型设置field类型 + if (typeMap[col.type]) { + field.type = typeMap[col.type]; + } + + // 处理选项配置 + if (Array.isArray(col.options)) { + field.options = col.options; + } + + // 应用自定义处理器 + if (typeof handler === 'function') { + Object.assign(field, handler(col)); + } + + fieldList.push(field); + return fieldList; + }, []); +} + +/** + * 一次性验证主表单和所有的次表单 + * @param form 主表单 form 对象 + * @param cases 接收一个数组,每项都是一个JVxeTable实例 + * @param autoJumpTab + * @returns {Promise} + * @author sunjianlei + */ +export async function validateFormAndTables(form, cases, autoJumpTab) { + if (!(form && typeof form.validateFields === 'function')) { + throw `form 参数需要的是一个form对象,而传入的却是${typeof form}` + } + let dataMap = {} + const values = await new Promise((resolve, reject) => { + // 验证主表表单 + form.validateFields((err, values) => { + err ? reject({ error: VALIDATE_FAILED, originError: err }) : resolve(values) + }) + }) + Object.assign(dataMap, { formValue: values }) + // 验证所有子表的表单 + const subData = await validateTables(cases, autoJumpTab) + // 合并最终数据 + dataMap = Object.assign(dataMap, { tablesValue: subData }) + return dataMap +} + +/** + * 一次性验证主表单和所有的次表单 + * @param form 主表单 form 对象 + * @param cases 接收一个数组,每项都是一个JVxeTable实例 + * @param autoJumpTab + * @returns {Promise} + * @author sunjianlei + */ +export async function validateFormModelAndTables(form, formData, cases, autoJumpTab) { + if (!(form && typeof form.validate === 'function')) { + throw `form 参数需要的是一个form对象,而传入的却是${typeof form}` + } + let dataMap = {} + const values = await new Promise((resolve, reject) => { + // 验证主表表单 + form.validate((valid) => { + valid ? resolve(formData) : reject({ error: VALIDATE_FAILED, originError: valid }) + }) + }) + Object.assign(dataMap, { formValue: values }) + // 验证所有子表的表单 + const subData = await validateTables(cases, autoJumpTab) + // 合并最终数据 + dataMap = Object.assign(dataMap, { tablesValue: subData }) + return dataMap +} + +/** + * 验证并获取一个或多个表格的所有值 + * + * @param cases 接收一个数组,每项都是一个JVxeTable实例 + * @param autoJumpTab 校验失败后,是否自动跳转tab选项 + */ +export function validateTables(cases, autoJumpTab = true) { + if (!Array.isArray(cases)) { + throw `'validateTables'函数的'cases'参数需要的是一个数组,而传入的却是${typeof cases}` + } + return new Promise((resolve, reject) => { + const tablesData = [] + let index = 0 + if (!cases || cases.length === 0) { + resolve() + } + ;(function next() { + const vm = cases[index] + vm.validateTable().then((errMap) => { + // 校验通过 + if (!errMap) { + tablesData[index] = vm.getAll() + // 判断校验是否全部完成,完成返回成功,否则继续进行下一步校验 + if (++index === cases.length) { + resolve(tablesData) + } else { + next() + } + } else { + // 尝试获取tabKey,如果在ATab组件内即可获取 + let paneKey + const tabPane = getVmParentByName(vm, 'ATabPane') + if (tabPane) { + paneKey = tabPane.$vnode.key + // 自动跳转到该表格 + if (autoJumpTab) { + const tabs = getVmParentByName(tabPane, 'Tabs') + tabs && tabs.setActiveKey && tabs.setActiveKey(paneKey) + } + } + // 出现未验证通过的表单,不再进行下一步校验,直接返回失败 + reject({ error: VALIDATE_FAILED, index, paneKey, errMap }) + } + }) + })() + }) +} + diff --git a/src/components/jeecg/README.md b/src/components/jeecg/README.md new file mode 100644 index 0000000..0e0e39e --- /dev/null +++ b/src/components/jeecg/README.md @@ -0,0 +1,512 @@ +# JDate 日期组件 使用文档 + +###### 说明: antd-vue日期组件需要用moment中转一下,用起来不是很方便,特二次封装,使用时只需要传字符串即可 +## 参数配置 +| 参数 | 类型 | 必填 |说明| +|--------------|---------|----|---------| +| placeholder |string | | placeholder | +| readOnly | boolean | | true/false 默认false | +| value | string | | 绑定v-model或是v-decorator后不需要设置 | +| showTime | boolean | | 是否展示时间true/false 默认false | +| dateFormat | string | |日期格式 默认'YYYY-MM-DD' 若showTime设置为true则需要将其设置成对应的时间格式(如:YYYY-MM-DD HH:mm:ss) | +| triggerChange | string | |触发组件值改变的事件是否是change,当使用v-decorator时且没有设置decorator的option.trigger为input需要设置该值为true | +使用示例 +---- +1.组件带有v-model的使用方法 +```vue + +``` + +2.组件带有v-decorator的使用方法 + a).设置trigger-change属性为true + ```vue + + ``` + + b).设置decorator的option.trigger为input + ```vue + + ``` + +3.其他使用 +添加style +```vue + +``` +添加placeholder +```vue + +``` +添加readOnly +```vue + +``` + +备注: +script内需引入jdate +```vue + +``` + + + --- + + +# JSuperQuery 高级查询 使用文档 +## 参数配置 +| 参数 | 类型 | 必填 | 说明 | +|--------------|---------|----|----------------------| +| fieldList | array |✔| 需要查询的列集合示例如下,type类型有:date/datetime/string/int/number | +| callback | array | | 回调函数名称(非必须)默认handleSuperQuery | + +fieldList结构示例: +```vue + const superQueryFieldList=[{ + type:"date", + value:"birthday", + text:"生日" + },{ + type:"string", + value:"name", + text:"用户名" + },{ + type:"int", + value:"age", + text:"年龄" + }] +``` +页面代码概述: +---- +1.import之后再components之内声明 +```vue +import JSuperQuery from '@/components/jeecg/JSuperQuery.vue'; + export default { + name: "JeecgDemoList", + components: { + JSuperQuery + }, + +``` +2.页面引用 +```vue + + +``` +3.list页面data中需要定义三个属性: +```vue + fieldList:superQueryFieldList, + superQueryFlag:false, + superQueryParams:"" +``` +4.list页面声明回调事件handleSuperQuery(与组件的callback对应即可) +```vue +//高级查询方法 +handleSuperQuery(arg) { + if(!arg){ + this.superQueryParams='' + this.superQueryFlag = false + }else{ + this.superQueryFlag = true + this.superQueryParams=JSON.stringify(arg) + } + this.loadData() +}, +``` +5.改造list页面方法 +```vue + // 获取查询条件 + getQueryParams() { + let sqp = {} + if(this.superQueryParams){ + sqp['superQueryParams']=encodeURI(this.superQueryParams) + } + let param = Object.assign(sqp, this.queryParam, this.isorter); + param.field = this.getQueryField(); + param.pageNo = this.ipagination.current; + param.pageSize = this.ipagination.pageSize; + return filterObj(param); + }, +``` +6.打开弹框调用show方法: +```vue +this.$refs.superQueryModal.show(); +``` + +# JEllipsis 字符串超长截取省略号显示 + +###### 说明: 遇到超长文本展示,通过此标签可以截取省略号显示,鼠标放置会提示全文本 +## 参数配置 +| 参数 | 类型 | 必填 | 说明 | +|--------|---------|----|----------------| +| value |string | 必填 | 字符串文本| +| length | number | 非必填 | 默认25 | +使用示例 +---- +1.组件带有v-model的使用方法 +```vue + + + +# Modal弹框实现最大化功能 + +1.定义modal的宽度: +```vue + +``` +2.自定义modal的title,居右显示切换图标 +```vue + +``` +3.定义toggleScreen事件,用于切换modal宽度 +```vue + toggleScreen(){ + if(this.modaltoggleFlag){ + this.modalWidth = window.innerWidth; + }else{ + this.modalWidth = 800; + } + this.modaltoggleFlag = !this.modaltoggleFlag; + }, +``` +4.data中声明上述用到的属性 +```vue + data () { + return { + modalWidth:800, + modaltoggleFlag:true, +``` + +# 下拉选项滚动错位的解决方法 + +## 问题描述 + +当使用了 `a-modal` 或其他带有滚动条的组件时,使用`a-select`组件并打开下拉框时滚动滚动条,就会导致错位的问题产生。 + +## 解决方法 + +大多数情况下,在 `a-select` 上添加一个 `getPopupContainer` 属性,值为`node => node.parentNode`即可解决。 +但是如果遇到 `a-select` 标签层级过深的情况,可能仍然会显示异常,只需要多加几个`.parentNode` (例:node => node.parentNode.parentNode.parentNode)多尝试几次直到解决问题即可。 + +### 代码示例 + +```html + +``` + +# JAsyncTreeList 异步数列表组件使用说明 + +## 引入组件 + +```js +import JTreeTable from '@/components/jeecg/JTreeTable' +export default { + components: { JTreeTable } +} +``` + +## 所需参数 + +| 参数 | 类型 | 必填 | 说明 | +|-------------|--------|--------|--------------------------------------------------------------| +| rowKey | String | 非必填 | 表格行 key 的取值,默认为"id" | +| columns | Array | 必填 | 表格列的配置描述,具体见Antd官方文档 | +| url | String | 必填 | 数据查询url | +| childrenUrl | String | 非必填 | 查询子级时的url,若不填则使用url参数查询子级 | +| queryKey | String | 非必填 | 根据某个字段查询,如果传递 id 就根据 id 查询,默认为parentId | +| queryParams | Object | 非必填 | 查询参数,当查询参数改变的时候会自动重新查询,默认为{} | +| topValue | String | 非必填 | 查询顶级时的值,如果顶级为0,则传0,默认为null | +| tableProps | Object | 非必填 | 自定义给内部table绑定的props | + +## 代码示例 + +```html + + + +``` + +# JCheckbox 使用文档 + +###### 说明: antd-vue checkbox组件处理的是数组,用起来不是很方便,特二次封装,使用时只需处理字符串即可 +## 参数配置 +| 参数 | 类型 | 必填 |说明| +|--------------|---------|----|---------| +| options |array |✔| checkbox需要配置的项,是个数组,数组中每个对象包含两个属性:label(用于显示)和value(用于存储) | + +使用示例 +---- +```vue + + + +``` + +# JCodeEditor 使用文档 + +###### 说明: 一个简易版的代码编辑器,支持语法高亮 +## 参数配置 +| 参数 | 类型 | 必填 |说明| +|--------------|---------|----|---------| +| language |string | | 表示当前编写代码的类型 javascript/html/css/sql | +| placeholder |string | | placeholder | +| lineNumbers |Boolean | | 是否显示行号 | +| fullScreen |Boolean | | 是否显示全屏按钮 | +| zIndex |string | | 全屏以后的z-index | + +使用示例 +---- +```vue + + + +``` + +# JFormContainer 使用文档 + +###### 说明: 暂用于表单禁用 + +使用示例 +---- +```vue + + + + + + +``` + +# JImportModal 使用文档 + +###### 说明: 用于列表页面导入excel功能 + +使用示例 +---- +```vue + + + + +``` + +# JSelectMultiple 多选下拉组件 +online用 实际开发请使用components/dict/JMultiSelectTag + +# JSlider 滑块验证码 + +使用示例 +---- +```vue + + + +``` + + +# JTreeSelect 树形下拉组件 +异步加载的树形下拉组件 + +## 参数配置 +| 参数 | 类型 | 必填 |说明| +|--------------|---------|----|---------| +| placeholder |string | | placeholder | +| dict |string | ✔| 表名,显示字段名,存储字段名拼接的字符串 | +| pidField |string | ✔| 父ID的字段名 | +| pidValue |string | | 根节点父ID的值 默认'0' 不可以设置为空,如果想使用此组件,而数据库根节点父ID为空,请修改之 | +| multiple |boolean | |是否支持多选 | + +使用示例 +---- +```vue + + + +``` + + diff --git a/src/components/jeecg/README_JEditableTable.md b/src/components/jeecg/README_JEditableTable.md new file mode 100644 index 0000000..981422c --- /dev/null +++ b/src/components/jeecg/README_JEditableTable.md @@ -0,0 +1,577 @@ +# JEditableTable 帮助文档 + +## 参数配置 + +| 参数 | 类型 | 必填 | 说明 | +|--------------|---------|------|---------------------------------------------------------------------------------| +| columns | array | ✔️ | 表格列的配置描述,具体项见下表 | +| dataSource | array | ✔️ | 表格数据 | +| loading | boolean | | 是否正在加载,加载中不会显示任何行,默认false | +| actionButton | boolean | | 是否显示操作按钮,包括"新增"、"删除",默认false | +| rowNumber | boolean | | 是否显示行号,默认false | +| rowSelection | boolean | | 是否可选择行,默认false | +| dragSort | boolean | | 是否可拖动排序,默认false | +| dragSortKey | string | | 拖动排序存储的Key,无需定义在columns内也能在getValues()时获取到值,默认orderNum | +| maxHeight | number | | 设定最大高度(px),默认400 | +| disabledRows | object | | 设定禁用的行,被禁用的行无法被选择和编辑,配置方法可以查看示例 | +| disabled | boolean | | 是否禁用所有行,默认false | + +### columns 参数详解 + +| 参数 | 类型 | 必填 | 说明 | +|---------------|---------|------|--------------------------------------------------------------------------------------------------------------------------------------------------------| +| title | string | ✔️ | 表格列头显示的问题 | +| key | string | ✔️ | 列数据在数据项中对应的 key,必须是唯一的 | +| type | string | ✔️ | 表单的类型,可以通过`JEditableTableUtil.FormTypes`赋值 | +| width | string | | 列的宽度,可以是百分比,也可以是`px`或其他单位,建议设置为百分比,且每一列的宽度加起来不应超过100%,否则可能会不能达到预期的效果。留空会自动计算百分比 | +| placeholder | string | | 表单预期值的提示信息,可以使用`${...}`变量替换文本(详见`${...} 变量使用方式`) | +| defaultValue | string | | 默认值,在新增一行时生效 | +| validateRules | array | | 表单验证规则,配置方式见[validateRules 配置规则](#validaterules-配置规则) | +| props | object | | 设置添加给表单元素的自定义属性,例如:`props:{title: 'show title'}` | +| disabled | boolean | | 是否禁用当前列,默认false | + +#### 当 type=checkbox 时所需的参数 + +| 参数 | 类型 | 必填 | 说明 | +|----------------|---------|------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| defaultChecked | boolean | | 默认值是否选中 | +| customValue | array | | 自定义值,checkbox需要的是boolean值,如果数据是其他值(例如`'Y' or 'N'`)时,就会导致错误,所以提供了该属性进行转换,例:`customValue: ['Y','N']`,会将`true`转换为`'Y'`,`false`转换为`'N'`,反之亦然 | + +#### 当 type=select 时所需的参数 + +| 参数 | 类型 | 必填 | 说明 | +|------------|---------|------|----------------------------------------------------| +| options | array | ✔️ | 下拉选项列表,详见下表 | +| allowInput | boolean | | 是否允许用户输入内容,并创建新的内容 | +| dictCode | String | | 数据字典Code,若options也有值,则拼接在options后面 | + +##### options 所需参数 + +| 参数 | 类型 | 必填 | 说明 | +|-----------|------------|------|----------------------------------------------------------------------| +| text | string | ✔️ | 显示标题 | +| value | string | ✔️ | 真实值 | +| ~~title~~ | ~~string~~ | | ~~显示标题(已废弃,若同时填写了 title 和 text 那么优先使用 text)~~ | + +#### 当 type=upload 时所需的参数 + +| 参数 | 类型 | 必填 | 说明 | +|--------------|---------|------|--------------------------------------------------------------------------------------| +| action | string | ✔️ | 上传文件路径 | +| token | boolean | | 上传的时候是否传递token | +| responseName | string | ✔️ | 若要从上传成功后从response中取出返回的文件名,那么这里填后台返回的包含文件名的字段名 | + +#### 当 type=slot 时所需的参数 + +| 参数 | 类型 | 必填 | 说明 | +|----------|--------|------|------------| +| slotName | string | ✔️ | slot的名称 | + +### validateRules 配置规则 + +`validateRules` 需要的是一个数组,数组里每项都是一个规则,规则是object类型,规则的各个参数如下 + +- `required` 是否必填,可选值为`true`or`false` +- `pattern` 正则表达式验证,只有成功匹配该正则的值才能成功通过验证 +- `handler` 自定义函数校验,使用方法请见[示例五](#示例五) +- `message` 当验证未通过时显示的提示文本,可以使用`${...}`变量替换文本(详见`${...} 变量使用方式`) +- 配置示例请看[示例二](#示例二) + +## 事件 + +| 事件名 | 触发时机 | 参数 | +|-----------------|----------------------------------------------------|--------------------------------------------------| +| added | 当添加行操作完成后触发 | | +| deleted | 当删除行操作完成后触发(批量删除操作只会触发一次) | `deleteIds` 被逻辑删除的id | +| selectRowChange | 当行被选中或取消选中时触发 | `selectedRowIds` 被选中行的id | +| valueChange | 当数据发生改变的时候触发的事件 | `{ type, row, column, value, target }` Event对象 | + +## 方法 + +关于方法的如何调用的问题,请在**FAQ**中查看[方法如何调用](#方法如何调用) + +### initialize + +用于初始化表格(清空表格) + +- `参数:` 无 +- `返回值:` 无 + +### resetScrollTop + +重置滚动条Top位置 + +- `参数:` + +| 参数名 | 类型 | 必填 | 说明 | +|--------|--------|------|--------------------------------------------------------------------------------------------------------| +| top | number | | 新top位置,留空则滚动到上次记录的位置,用于解决切换tab选项卡时导致白屏以及自动将滚动条滚动到顶部的问题 | + +- `返回值:` 无 + +### add + +主动添加行,默认情况下,当用户的滚动条已经在底部的时候,会将滚动条固定在底部,即添加后无需用户手动滚动,而会自动滚动到底部 + +- `参数:` + +| 参数名 | 类型 | 必填 | 说明 | +|---------------------|---------|------|---------------------------------------------------------------------| +| num | number | | 添加几行,默认为1 | +| forceScrollToBottom | boolean | | 是否在添加后无论用户的滚动条在什么位置都强制滚动到底部,默认为false | + +- `返回值:` 无 + +### removeRows + +主动删除一行或多行 + +- `参数:` + +| 参数名 | 类型 | 必填 | 说明 | +|--------|-----------------|------|--------------------------------------------------------------------------------------------| +| id | string 或 array | ✔️ | 被删除行的id。如果要删除一个,可以直接传id,如果要删除多个,需要将多个id封装成一个数组传入 | + +- `返回值:` 无 + +### removeSelectedRows + +主动删除被选中的行 + +- `参数:` 无 +- `返回值:` 无 + +### getValues + +用于获取表格里所有表单的值,可进行表单验证 + +- `参数:` + +| 参数名 | 类型 | 必填 | 说明 | +|----------|----------|------|-----------------------------------------------------------------------------------------------------------------------------------------------------------| +| callback | function | ✔️ | 获取值的回调方法,会传入`error`和`values`两个参数。`error`:未通过验证的数量,当等于`0`时代表验证通过;`values`:获取的值(即使未通过验证该字段也有数据) | +| validate | boolean | | 是否进行表单验证,默认为`true`,设为`false`则代表忽略表单验证 | +| rowIds | array | | 默认返回所有行的数据,如果传入了`rowIds`,那么就会只返回与该`rowIds`相匹配的数据,如果没有匹配的数据,就会返回空数组 | + +- `返回值:` 无 + + +### getValuesSync + +`getValues`的同步版,会直接将获取到的数据返回 + +- `参数:` + +| 参数名 | 类型 | 必填 | 说明 | +|---------|--------|------|------------------------| +| options | object | | 选项,详见下方所需参数 | + +- - `options` 所需参数 + +| 参数名 | 类型 | 必填 | 说明 | +|----------|---------|------|----------------------------------------------------------------------------------------------------------------------| +| validate | boolean | | 是否进行表单验证,默认为`true`,设为`false`则代表忽略表单验证 | +| rowIds | array | | 默认返回所有行的数据,如果传入了`rowIds`,那么就会只返回与该`rowIds`相匹配的数据,如果没有匹配的数据,就会返回空数组 | + +- `返回值:` object + - `error` 未通过验证的数量,当等于`0`时代表验证通过 + - `values` 获取的值(即使未通过验证该字段也有数据) + +- `使用示例` + +```js +let { error, values } = this.$refs.editableTable.getValuesSync({ validate: true, rowIds: ['rowId1', 'rowId2'] }) +if (error === 0) { + console.log('表单验证通过,数据:', values); +} else { + console.log('未通过表单验证,数据:', values); +} +``` + +### getValuesPromise + +`getValues`的promise版,会在`resolve`中传入获取到的值,会在`reject`中传入失败原因,例如`VALIDATE_NO_PASSED` + +- `参数:` + +| 参数名 | 类型 | 必填 | 说明 | +|----------|---------|------|----------------------------------------------------------------------------------------------------------------------| +| validate | boolean | | 同`getValues`的`validate`参数 | +| rowIds | array | | 默认返回所有行的数据,如果传入了`rowIds`,那么就会只返回与该`rowIds`相匹配的数据,如果没有匹配的数据,就会返回空数组 | + +- `返回值:` Promise + +### getDeleteIds + +用于获取被逻辑删除的行的id,返回一个数组,用户可将该数组传入后台,并进行批量删除 + +- `参数:` 无 +- `返回值:` array + +### getAll + +获取所有的数据,包括values、deleteIds +会在`resolve`中传入获取到的值:`{values, deleteIds}` +会在`reject`中传入失败原因,例如`VALIDATE_NO_PASSED` + +- `参数:` + +| 参数名 | 类型 | 必填 | 说明 | +|----------|---------|------|-------------------------------| +| validate | boolean | | 同`getValues`的`validate`参数 | + +- `返回值:` Promise + +### setValues + +主动设置表格中某行某列的值 + +- `参数:` + +| 参数名 | 类型 | 必填 | 说明 | +|--------|-------|------|------------------------------------------------------------| +| values | array | | 传入一个数组,数组中的每项都是一行的新值,具体见下面的示例 | + +- `返回值:` 无 +- `示例:` + +```js +setValues([ + { + rowKey: id1, // 行的id + values: { // 在这里 values 中的 name 是你 columns 中配置的 key + 'name': 'zhangsan', + 'age': '20' + } + }, + { + rowKey: id2, + values: { + 'name': 'lisi', + 'age': '23' + } + } +]) +``` +### clearSelection + +主动清空选择的行 + +- `参数:` 无 +- `返回值:` 无 + +## 内置插槽 + +| 插槽名 | 说明 | +|--------------|------------------------------------------------------| +| buttonBefore | 在操作按钮的**前面**插入插槽,不受`actionButton`属性的影响 | +| buttonAfter | 在操作按钮的**后面**插入插槽,不受`actionButton`属性的影响 | + +## ${...} 变量使用方式 + +在`placeholder`和`message`这两个属性中可以使用`${...}`变量来替换文本 +在[示例二](#示例二)中,配置了`title`为`名称`的一列,而`placeholder`配置成了`请输入${title}`,那么最终显示效果为`请输入名称` +这就是`${...}`变量的使用方式,在`${}`中可以使用的变量有`title`、`key`、`defaultValue`这三个属性的值 + +## JEditableTableUtil 使用说明 + +在之前配置`columns`时提到过`JEditableTableUtil`这个工具类,那么如果想要知道详细的使用说明就请看这里 + +### export 的常量 + +#### FormTypes + +这是配置`columns.type`时用到的常量值,其中包括 + +- `normal` 默认,直接显示值,不渲染表单 +- `input` 显示输入框 +- `inputNumber` 显示数字输入框 +- `checkbox` 显示多选框 +- `select` 显示选择器(下拉框) +- `date` 日期选择器 +- `datetime` 日期时间选择器 +- `upload` 上传组件(文件域) +- `slot` 自定义插槽 + +### VALIDATE_NO_PASSED + +在判断表单验证是否通过时使用,如果 reject 的值 === VALIDATE_NO_PASSED 则代表表单验证未通过,你可以做相应的其他处理,反之则可能是发生了报错,可以使用 `console.error` 输出 + +### 封装的方法 + +#### validateTables + +当你的页面中存在多个JEditableTable实例的时候,如果要获取每个实例的值、判断表单验证是否通过,就会让代码变得极其冗余、繁琐,于是我们就将该操作封装成了一个函数供你调用,它可以同时获取并验证多个JEditableTable实例的值,只有当所有实例的表单验证都通过后才会返回值,否则将会告诉你具体哪个实例没有通过验证。具体使用方法请看下面的示例 + +- `参数:` + +| 参数名 | 类型 | 必填 | 说明 | +|--------|-------|------|--------------------------------------------------------| +| cases | array | | 传入一个数组,数组中的每项都是一个JEditableTable的实例 | + +- `返回值:` Promise +- `示例:` + +```js +import { validateTables, VALIDATE_NO_PASSED } from '@/utils/JEditableTableUtil' +// 封装cases +let cases = [] +cases.push(this.$refs.editableTable1) +cases.push(this.$refs.editableTable2) +cases.push(this.$refs.editableTable3) +cases.push(this.$refs.editableTable4) +cases.push(this.$refs.editableTable5) +// 同时验证并获取多个实例的值 +validateTables(cases).then((all) => { + // all 是一个数组,每项都对应传入cases的下标,包含values和deleteIds + console.log('所有实例的值:', all) +}).catch((e = {}) => { + // 判断表单验证是否未通过 + if (e.error === VALIDATE_NO_PASSED) { + console.log('未通过验证的实例下标:', e.index) + } else { + console.error('发生异常:', e) + } +}) +``` + +## FAQ + +### 方法如何调用? + +在[示例一](#示例一)中,设定了一个 `ref="editableTable"` 的属性,那么在vue中就可以使用`this.$refs.editableTable`获取到该表格的实例,并调取其中的方法。 +假如我要调取`initialize`方法,就可以这么写:`this.$refs.editableTable.initialize()` + +### 如何获取表单的值? + +使用`getValue`方法进行获取,详见[示例三](#示例三) + +### 如何进行表单验证? + +在获取值的时候默认会进行表单验证操作,用户在输入的时候也会对正在输入的表单进行验证,只要配置好规则就可以了 + +### 如何添加或删除一行? + +该功能已封装到组件中,你只需要将 `actionButton` 设置为 `true` 即可,当然你也可以在代码中主动调用新增方法或修改,具体见上方的方法介绍。 + +### 为什么使用了ATab组件后,切换选项卡会导致白屏或滚动条位置会归零? + +在ATab组件中确实会导致滚动条位置归零,且不会触发`onscroll`方法,所以无法动态加载行,导致白屏的问题出现。 +解决方法是在ATab组件的`onChange`事件触发时执行实例提供的`resetScrollTop()`方法即可,但是需要注意的是:代码主动改变ATab的`activeKey`不会触发`onChange`事件,还需要你手动调用下。 + +- `示例` + +```html + +``` + +```js +/*--- 忽略部分代码片段 ---*/ +methods: { + + /** 切换tab选项卡的时候重置editableTable的滚动条状态 */ + handleChangeTab(key) { + this.$refs[`editableTable${key}`].resetScrollTop() + } + +} +/*--- 忽略部分代码片段 ---*/ +``` + +### slot(自定义插槽)如何使用? + +代码示例请看:[示例四(slot)](#示例四(slot)) + +---------------------------------------------------------------------------------------- + +## 示例一 + +```html + +``` + +## 示例二 + +```js + +import { FormTypes } from '@/utils/JEditableTableUtil' + +/*--- 忽略部分代码片断 ---*/ +columns: [ + { + title: '名称', + key: 'name', + type: FormTypes.input, + placeholder: '请输入${title}', + defaultValue: '称名', + // 表单验证规则 + validateRules: [ + { + required: true, // 必填 + message: '${title}不能为空' // 提示的文本 + }, + { + pattern: /^[a-z|A-Z][a-z|A-Z\d_-]{0,}$/, // 正则 + message: '${title}必须以字母开头,可包含数字、下划线、横杠' + } + ] + }, + { + title: '年龄', + key: 'age', + type: FormTypes.inputNumber, + placeholder: '请输入${title}', + defaultValue: 18, + validateRules: [{required: true, message: '${title}不能为空'}] + } +] +/*--- 忽略部分代码片断 ---*/ +``` + +## 示例三 + +```js +// 获取被逻辑删除的字段id +let deleteIds = this.$refs.editableTable.getDeleteIds(); +// 获取所有表单的值,并进行验证 +this.$refs.editableTable.getValues((error, values) => { + // 错误数 = 0 则代表验证通过 + if (error === 0) { + this.$message.success('验证通过') + // 将通过后的数组提交到后台或自行进行其他处理 + console.log(deleteIds, values) + } else { + this.$message.error('验证未通过') + } +}) +``` + +## 示例四(slot) + +```html + + +``` + +## 示例五 + +```js +// 该示例是自定义函数校验 +columns: [ + { + title: '字段名称', + key: 'dbFieldName', + type: FormTypes.input, + defaultValue: '', + validateRules: [ + { + // 自定义函数校验 handler + handler(type, value, row, column, callback, target) { + // type 触发校验的类型(input、change、blur) + // value 当前校验的值 + // callback(flag, message) 方法必须执行且只能执行一次 + // flag = 是否通过了校验,不填写或者填写 null 代表不进行任何操作 + // message = 提示的类型,默认使用配置的 message + // target 行编辑的实例对象 + + if (type === 'blur') { + + if (value === 'abc') { + callback(false, '${title}不能是abc') // false = 未通过,可以跟自定义提示 + return + } + + let { values } = target.getValuesSync({ validate: false }) + let count = 0 + for (let val of values) { + if (val['dbFieldName'] === value) { + if (++count >= 2) { + callback(false, '${title}不能重复') + return + } + } + } + callback(true) // true = 通过验证 + } else { + callback() // 不填写或者填写 null 代表不进行任何操作 + } + }, + message: '${title}默认提示' + } + ] + }, +] +``` \ No newline at end of file diff --git a/src/components/jeecg/README_JPopup.md b/src/components/jeecg/README_JPopup.md new file mode 100644 index 0000000..0b454a6 --- /dev/null +++ b/src/components/jeecg/README_JPopup.md @@ -0,0 +1,65 @@ +# JPopup 弹窗选择组件 + +## 参数配置 +| 参数 | 类型 | 必填 |说明| +|--------------|---------|----|---------| +| placeholder |string | | placeholder | +| code |string | | online报表编码 | +| orgFields |string | | online报表中显示的列,多个以逗号隔开 | +| destFields |string | | 回调对象的属性,多个以逗号隔开,其顺序和orgFields一一对应 | +| field |string | | v-model模式专用,表示从destFields中选择一个属性的值返回给当前组件 | +| triggerChange |Boolean | | v-decorator模式下需设置成true | +| callback(事件) |function | | 回调事件,v-decorator模式下用到,用于设置form控件的值 | + +使用示例 +---- +```vue + + + diff --git a/src/components/jeecg/index.js b/src/components/jeecg/index.js new file mode 100644 index 0000000..6d67d75 --- /dev/null +++ b/src/components/jeecg/index.js @@ -0,0 +1,97 @@ +import JModal from './JModal' +import JFormContainer from './JFormContainer.vue' +import JPopup from './JPopup.vue' +import JMarkdownEditor from './JMarkdownEditor' +import JCodeEditor from './JCodeEditor.vue' +import JEditor from './JEditor.vue' +import JEditableTable from './JEditableTable.vue' +import JAreaLinkage from './JAreaLinkage.vue' +import JSuperQuery from './JSuperQuery.vue' +import JUpload from './JUpload.vue' +import JTreeSelect from './JTreeSelect.vue' +import JImageUpload from './JImageUpload.vue' +import JImportModal from './JImportModal.vue' +import JTreeDict from './JTreeDict.vue' +import JCheckbox from './JCheckbox.vue' +import JCron from './JCron.vue' +import JDate from './JDate.vue' +import JDateRange from './JDateRange.vue' +import JEllipsis from './JEllipsis.vue' +import JInput from './JInput.vue' +import JPopupOnlReport from './modal/JPopupOnlReport.vue' +import JFilePop from './minipop/JFilePop.vue' +import JInputPop from './minipop/JInputPop.vue' +import JSlider from './JSlider.vue' +import JSwitch from './JSwitch.vue' +import JTime from './JTime.vue' +import JTreeTable from './JTreeTable.vue' +import JEasyCron from '@/components/jeecg/JEasyCron' +//jeecgbiz +import JSelectDepart from '../jeecgbiz/JSelectDepart.vue' +import JSelectMultiUser from '../jeecgbiz/JSelectMultiUser.vue' +import JSelectPosition from '../jeecgbiz/JSelectPosition.vue' +import JSelectEntryPort from '../jeecgbiz/JSelectEntryPort.vue' +import JSelectRole from '../jeecgbiz/JSelectRole.vue' +import JSelectUserByDep from '../jeecgbiz/JSelectUserByDep.vue' +//引入需要全局注册的js函数和变量 +// import { Modal, message, notification } from 'ant-design-vue' +import { Modal } from 'ant-design-vue' +import { MdMessage, MdNotify } from 'mdesign-plus' +import lodash_object from 'lodash' +import debounce from 'lodash/debounce' +import pick from 'lodash.pick' +import data from 'china-area-data' + +export default { + install(Vue) { + Vue.use(JModal) + Vue.component('JMarkdownEditor', JMarkdownEditor) + Vue.component('JPopupOnlReport', JPopupOnlReport) + Vue.component('JFilePop', JFilePop) + Vue.component('JInputPop', JInputPop) + Vue.component('JAreaLinkage', JAreaLinkage) + Vue.component('JCheckbox', JCheckbox) + Vue.component('JCodeEditor', JCodeEditor) + Vue.component('JCron', JCron) + Vue.component('JDate', JDate) + Vue.component('JDateRange', JDateRange) + Vue.component('JEditableTable', JEditableTable) + Vue.component('JEditor', JEditor) + Vue.component('JEllipsis', JEllipsis) + Vue.component('JFormContainer', JFormContainer) + Vue.component('JImageUpload', JImageUpload) + Vue.component('JImportModal', JImportModal) + Vue.component('JInput', JInput) + Vue.component('JPopup', JPopup) + Vue.component('JSlider', JSlider) + Vue.component('JSuperQuery', JSuperQuery) + Vue.component('JSwitch', JSwitch) + Vue.component('JTime', JTime) + Vue.component('JTreeDict', JTreeDict) + Vue.component('JTreeSelect', JTreeSelect) + Vue.component('JTreeTable', JTreeTable) + Vue.component('JUpload', JUpload) + + //jeecgbiz + Vue.component('JSelectDepart', JSelectDepart) + Vue.component('JSelectMultiUser', JSelectMultiUser) + Vue.component('JSelectPosition', JSelectPosition) + Vue.component('JSelectEntryPort', JSelectEntryPort) + Vue.component('JSelectRole', JSelectRole) + Vue.component('JSelectUserByDep', JSelectUserByDep) + Vue.component(JEasyCron.name, JEasyCron) + + //注册全局js函数和变量 + Vue.prototype.$Jnotification = MdNotify + // Vue.prototype.$Jnotification = notification + + Vue.prototype.$Jmodal = Modal + + // Vue.prototype.$Jmessage = message + Vue.prototype.$Jmessage = MdMessage + Vue.prototype.$Jlodash = lodash_object + Vue.prototype.$Jdebounce = debounce + Vue.prototype.$Jpick = pick + Vue.prototype.$Jpcaa = data + }, +} diff --git a/src/components/jeecg/minipop/JFilePop.vue b/src/components/jeecg/minipop/JFilePop.vue new file mode 100644 index 0000000..6cbd0d2 --- /dev/null +++ b/src/components/jeecg/minipop/JFilePop.vue @@ -0,0 +1,114 @@ + + + + diff --git a/src/components/jeecg/minipop/JInputPop.vue b/src/components/jeecg/minipop/JInputPop.vue new file mode 100644 index 0000000..e04efc5 --- /dev/null +++ b/src/components/jeecg/minipop/JInputPop.vue @@ -0,0 +1,108 @@ + + + + diff --git a/src/components/jeecg/modal/JCronModal.vue b/src/components/jeecg/modal/JCronModal.vue new file mode 100644 index 0000000..4ff24ec --- /dev/null +++ b/src/components/jeecg/modal/JCronModal.vue @@ -0,0 +1,1091 @@ + + + + + diff --git a/src/components/jeecg/modal/JPopupOnlReport.vue b/src/components/jeecg/modal/JPopupOnlReport.vue new file mode 100644 index 0000000..469367c --- /dev/null +++ b/src/components/jeecg/modal/JPopupOnlReport.vue @@ -0,0 +1,447 @@ + + + + diff --git a/src/components/jeecgbiz/JSelectApiPrems.vue b/src/components/jeecgbiz/JSelectApiPrems.vue new file mode 100644 index 0000000..e0202cf --- /dev/null +++ b/src/components/jeecgbiz/JSelectApiPrems.vue @@ -0,0 +1,94 @@ + + + + diff --git a/src/components/jeecgbiz/JSelectApiPremsComponent/JSelectApiPremsComponentModal.vue b/src/components/jeecgbiz/JSelectApiPremsComponent/JSelectApiPremsComponentModal.vue new file mode 100644 index 0000000..7de34b4 --- /dev/null +++ b/src/components/jeecgbiz/JSelectApiPremsComponent/JSelectApiPremsComponentModal.vue @@ -0,0 +1,384 @@ + + + + \ No newline at end of file diff --git a/src/components/jeecgbiz/JSelectApiPremsComponent/JSelectApiPremsQueryItem.js b/src/components/jeecgbiz/JSelectApiPremsComponent/JSelectApiPremsQueryItem.js new file mode 100644 index 0000000..bd6bb7e --- /dev/null +++ b/src/components/jeecgbiz/JSelectApiPremsComponent/JSelectApiPremsQueryItem.js @@ -0,0 +1,49 @@ +/* eslint-disable */ +export default { + name: 'JSelectBizQueryItem', + props: { + queryParam: Object, + queryConfig: Array, + }, + data() { + return {} + }, + methods: { + renderQueryItem() { + return this.queryConfig.map(queryItem => { + const {key, label, placeholder, dictCode, props, customRender} = queryItem + const options = { + props: {}, + on: { + pressEnter: () => this.$emit('pressEnter'), + } + } + if (props !== null) { + Object.assign(options.props, props) + } + if (placeholder === undefined) { + if (dictCode) { + options.props['placeholder'] = `请选择${label}` + } else { + options.props['placeholder'] = `请输入${label}` + } + } else { + options.props['placeholder'] = placeholder + } + + let input + if (typeof customRender === 'function') { + input = customRender.call(this, {key, options, queryParam: this.queryParam}) + } else if (dictCode) { + input = + } else { + input = + } + return {input} + }) + }, + }, + render() { + return {this.renderQueryItem()} + }, +} \ No newline at end of file diff --git a/src/components/jeecgbiz/JSelectApiPremsComponent/README.md b/src/components/jeecgbiz/JSelectApiPremsComponent/README.md new file mode 100644 index 0000000..db53e22 --- /dev/null +++ b/src/components/jeecgbiz/JSelectApiPremsComponent/README.md @@ -0,0 +1,36 @@ +# JSelectBizComponent + +Jeecg 选择组件的公共可复用组件 + +## 引用方式 + +```js +import JSelectBizComponent from '@/src/components/jeecgbiz/JSelectBizComponent' + +export default { + components: { JSelectBizComponent } +} +``` + +## 参数 + +### 配置参数 + +| 参数名 | 类型 | 必填 | 默认值 | 备注 | +|-----------------------|---------|------|--------------|--------------------------------------------------------------------------------------| +| rowKey | String | | "id" | 唯一标识的字段名 | +| value(v-model) | String | | "" | 默认选择的数据,多个用半角逗号分割 | +| name | String | | "" | 显示名字,例如选择用户就填写"用户" | +| listUrl | String | 是 | | 数据请求地址,必须是封装了分页的地址 | +| valueUrl | String | | "" | 获取显示文本的地址,例如存的是 username,可以通过该地址获取到 realname | +| displayKey | String | | null | 显示在标签上的字段 key ,不传则直接显示数据 | +| returnKeys | Array | | ['id', 'id'] | v-model 绑定的 keys,是个数组,默认使用第二项,当配置了 `returnId=true` 就返回第一项 | +| returnId | Boolean | | false | 返回ID,设为true后将返回配置的 `returnKeys` 中的第一项 | +| selectButtonText | String | | "选择" | 选择按钮的文字 | +| queryParamText | String | | null | 查询条件显示文字,不传则使用 `name` | +| columns | Array | 是 | | 列配置项,与antd的table的配置完全一致。列的第一项会被配置成右侧已选择的列表上 | +| columns[0].widthRight | String | | null | 仅列的第一项可以应用此配置,表示右侧已选择列表的宽度,建议 `70%`,不传则应用`width` | +| placeholder | String | | "请选择" | 占位符 | +| disabled | Boolean | | false | 是否禁用 | +| multiple | Boolean | | false | 是否可多选 | +| buttons | Boolean | | true | 是否显示"选择"按钮,如果不显示,可以直接点击文本框打开选择界面 | diff --git a/src/components/jeecgbiz/JSelectApiPremsComponent/index.vue b/src/components/jeecgbiz/JSelectApiPremsComponent/index.vue new file mode 100644 index 0000000..921004f --- /dev/null +++ b/src/components/jeecgbiz/JSelectApiPremsComponent/index.vue @@ -0,0 +1,171 @@ + + + + + \ No newline at end of file diff --git a/src/components/jeecgbiz/JSelectBizComponent/JSelectBizComponentModal.vue b/src/components/jeecgbiz/JSelectBizComponent/JSelectBizComponentModal.vue new file mode 100644 index 0000000..59b8838 --- /dev/null +++ b/src/components/jeecgbiz/JSelectBizComponent/JSelectBizComponentModal.vue @@ -0,0 +1,388 @@ + + + + \ No newline at end of file diff --git a/src/components/jeecgbiz/JSelectBizComponent/JSelectBizQueryItem.js b/src/components/jeecgbiz/JSelectBizComponent/JSelectBizQueryItem.js new file mode 100644 index 0000000..bd6bb7e --- /dev/null +++ b/src/components/jeecgbiz/JSelectBizComponent/JSelectBizQueryItem.js @@ -0,0 +1,49 @@ +/* eslint-disable */ +export default { + name: 'JSelectBizQueryItem', + props: { + queryParam: Object, + queryConfig: Array, + }, + data() { + return {} + }, + methods: { + renderQueryItem() { + return this.queryConfig.map(queryItem => { + const {key, label, placeholder, dictCode, props, customRender} = queryItem + const options = { + props: {}, + on: { + pressEnter: () => this.$emit('pressEnter'), + } + } + if (props !== null) { + Object.assign(options.props, props) + } + if (placeholder === undefined) { + if (dictCode) { + options.props['placeholder'] = `请选择${label}` + } else { + options.props['placeholder'] = `请输入${label}` + } + } else { + options.props['placeholder'] = placeholder + } + + let input + if (typeof customRender === 'function') { + input = customRender.call(this, {key, options, queryParam: this.queryParam}) + } else if (dictCode) { + input = + } else { + input = + } + return {input} + }) + }, + }, + render() { + return {this.renderQueryItem()} + }, +} \ No newline at end of file diff --git a/src/components/jeecgbiz/JSelectBizComponent/README.md b/src/components/jeecgbiz/JSelectBizComponent/README.md new file mode 100644 index 0000000..db53e22 --- /dev/null +++ b/src/components/jeecgbiz/JSelectBizComponent/README.md @@ -0,0 +1,36 @@ +# JSelectBizComponent + +Jeecg 选择组件的公共可复用组件 + +## 引用方式 + +```js +import JSelectBizComponent from '@/src/components/jeecgbiz/JSelectBizComponent' + +export default { + components: { JSelectBizComponent } +} +``` + +## 参数 + +### 配置参数 + +| 参数名 | 类型 | 必填 | 默认值 | 备注 | +|-----------------------|---------|------|--------------|--------------------------------------------------------------------------------------| +| rowKey | String | | "id" | 唯一标识的字段名 | +| value(v-model) | String | | "" | 默认选择的数据,多个用半角逗号分割 | +| name | String | | "" | 显示名字,例如选择用户就填写"用户" | +| listUrl | String | 是 | | 数据请求地址,必须是封装了分页的地址 | +| valueUrl | String | | "" | 获取显示文本的地址,例如存的是 username,可以通过该地址获取到 realname | +| displayKey | String | | null | 显示在标签上的字段 key ,不传则直接显示数据 | +| returnKeys | Array | | ['id', 'id'] | v-model 绑定的 keys,是个数组,默认使用第二项,当配置了 `returnId=true` 就返回第一项 | +| returnId | Boolean | | false | 返回ID,设为true后将返回配置的 `returnKeys` 中的第一项 | +| selectButtonText | String | | "选择" | 选择按钮的文字 | +| queryParamText | String | | null | 查询条件显示文字,不传则使用 `name` | +| columns | Array | 是 | | 列配置项,与antd的table的配置完全一致。列的第一项会被配置成右侧已选择的列表上 | +| columns[0].widthRight | String | | null | 仅列的第一项可以应用此配置,表示右侧已选择列表的宽度,建议 `70%`,不传则应用`width` | +| placeholder | String | | "请选择" | 占位符 | +| disabled | Boolean | | false | 是否禁用 | +| multiple | Boolean | | false | 是否可多选 | +| buttons | Boolean | | true | 是否显示"选择"按钮,如果不显示,可以直接点击文本框打开选择界面 | diff --git a/src/components/jeecgbiz/JSelectBizComponent/index.vue b/src/components/jeecgbiz/JSelectBizComponent/index.vue new file mode 100644 index 0000000..1bc2dc4 --- /dev/null +++ b/src/components/jeecgbiz/JSelectBizComponent/index.vue @@ -0,0 +1,167 @@ + + + + + \ No newline at end of file diff --git a/src/components/jeecgbiz/JSelectDepart.vue b/src/components/jeecgbiz/JSelectDepart.vue new file mode 100644 index 0000000..2a9dc41 --- /dev/null +++ b/src/components/jeecgbiz/JSelectDepart.vue @@ -0,0 +1,184 @@ + + + + + \ No newline at end of file diff --git a/src/components/jeecgbiz/JSelectEntryPort.vue b/src/components/jeecgbiz/JSelectEntryPort.vue new file mode 100644 index 0000000..3895528 --- /dev/null +++ b/src/components/jeecgbiz/JSelectEntryPort.vue @@ -0,0 +1,50 @@ + + + + diff --git a/src/components/jeecgbiz/JSelectMultiUser.vue b/src/components/jeecgbiz/JSelectMultiUser.vue new file mode 100644 index 0000000..ae8f441 --- /dev/null +++ b/src/components/jeecgbiz/JSelectMultiUser.vue @@ -0,0 +1,76 @@ + + + + diff --git a/src/components/jeecgbiz/JSelectPosition.vue b/src/components/jeecgbiz/JSelectPosition.vue new file mode 100644 index 0000000..fe249d9 --- /dev/null +++ b/src/components/jeecgbiz/JSelectPosition.vue @@ -0,0 +1,41 @@ + + + + diff --git a/src/components/jeecgbiz/JSelectRole.vue b/src/components/jeecgbiz/JSelectRole.vue new file mode 100644 index 0000000..80995f6 --- /dev/null +++ b/src/components/jeecgbiz/JSelectRole.vue @@ -0,0 +1,42 @@ + + + + diff --git a/src/components/jeecgbiz/JSelectUserByDep.vue b/src/components/jeecgbiz/JSelectUserByDep.vue new file mode 100644 index 0000000..d116b38 --- /dev/null +++ b/src/components/jeecgbiz/JSelectUserByDep.vue @@ -0,0 +1,143 @@ + + + + diff --git a/src/components/jeecgbiz/README.md b/src/components/jeecgbiz/README.md new file mode 100644 index 0000000..be30730 --- /dev/null +++ b/src/components/jeecgbiz/README.md @@ -0,0 +1,137 @@ +# JSelectDepart 部门选择组件 +选择部门组件,存储部门ID,显示部门名称 + +## 参数配置 +| 参数 | 类型 | 必填 |说明| +|--------------|---------|----|---------| +| modalWidth |Number | | 弹框宽度 默认500 | +| multi |Boolean | | 是否多选 默认false | +| rootOpened |Boolean | | 是否展开根节点 默认true | +| disabled |Boolean | | 是否禁用 默认false| + +使用示例 +---- +```vue + + + +``` +# JSelectMultiUser 用户多选组件 + +使用示例 +---- +```vue + + + +``` + +# JSelectUserByDep 根据部门选择用户 + +## 参数配置 +| 参数 | 类型 | 必填 |说明| +|--------------|---------|----|---------| +| modalWidth |Number | | 弹框宽度 默认1250 | +| disabled |Boolean | | 是否禁用 | + +使用示例 +---- +```vue + + + +``` + diff --git a/src/components/jeecgbiz/modal/JSelectDepartModal.vue b/src/components/jeecgbiz/modal/JSelectDepartModal.vue new file mode 100644 index 0000000..0e86ac6 --- /dev/null +++ b/src/components/jeecgbiz/modal/JSelectDepartModal.vue @@ -0,0 +1,337 @@ + + + + + \ No newline at end of file diff --git a/src/components/jeecgbiz/modal/JSelectUserByDepModal.vue b/src/components/jeecgbiz/modal/JSelectUserByDepModal.vue new file mode 100644 index 0000000..f79535d --- /dev/null +++ b/src/components/jeecgbiz/modal/JSelectUserByDepModal.vue @@ -0,0 +1,349 @@ + + + + + \ No newline at end of file diff --git a/src/components/jeecgbiz/modal/SelectUserListModal.vue b/src/components/jeecgbiz/modal/SelectUserListModal.vue new file mode 100644 index 0000000..2ed97ca --- /dev/null +++ b/src/components/jeecgbiz/modal/SelectUserListModal.vue @@ -0,0 +1,121 @@ + + + + diff --git a/src/components/jeecgbiz/thirdApp/JThirdAppButton.vue b/src/components/jeecgbiz/thirdApp/JThirdAppButton.vue new file mode 100644 index 0000000..9de4d21 --- /dev/null +++ b/src/components/jeecgbiz/thirdApp/JThirdAppButton.vue @@ -0,0 +1,214 @@ + + + + diff --git a/src/components/jeecgbiz/thirdApp/JThirdAppDropdown.vue b/src/components/jeecgbiz/thirdApp/JThirdAppDropdown.vue new file mode 100644 index 0000000..9dbd1b1 --- /dev/null +++ b/src/components/jeecgbiz/thirdApp/JThirdAppDropdown.vue @@ -0,0 +1,37 @@ + + + + diff --git a/src/components/layouts/BasicLayout.vue b/src/components/layouts/BasicLayout.vue new file mode 100644 index 0000000..941835b --- /dev/null +++ b/src/components/layouts/BasicLayout.vue @@ -0,0 +1,59 @@ + + + + + \ No newline at end of file diff --git a/src/components/layouts/BlankLayout.vue b/src/components/layouts/BlankLayout.vue new file mode 100644 index 0000000..fb22857 --- /dev/null +++ b/src/components/layouts/BlankLayout.vue @@ -0,0 +1,71 @@ + + + + + + diff --git a/src/components/layouts/IframeFReportView.vue b/src/components/layouts/IframeFReportView.vue new file mode 100644 index 0000000..2d22719 --- /dev/null +++ b/src/components/layouts/IframeFReportView.vue @@ -0,0 +1,45 @@ + + + + + \ No newline at end of file diff --git a/src/components/layouts/IframePageView.vue b/src/components/layouts/IframePageView.vue new file mode 100644 index 0000000..5f638f4 --- /dev/null +++ b/src/components/layouts/IframePageView.vue @@ -0,0 +1,64 @@ + + + + + \ No newline at end of file diff --git a/src/components/layouts/PageView.vue b/src/components/layouts/PageView.vue new file mode 100644 index 0000000..60d8a01 --- /dev/null +++ b/src/components/layouts/PageView.vue @@ -0,0 +1,85 @@ + + + + + \ No newline at end of file diff --git a/src/components/layouts/RouteView.vue b/src/components/layouts/RouteView.vue new file mode 100644 index 0000000..3a069c3 --- /dev/null +++ b/src/components/layouts/RouteView.vue @@ -0,0 +1,52 @@ + + + \ No newline at end of file diff --git a/src/components/layouts/TabLayout.vue b/src/components/layouts/TabLayout.vue new file mode 100644 index 0000000..5a768ef --- /dev/null +++ b/src/components/layouts/TabLayout.vue @@ -0,0 +1,398 @@ + + + diff --git a/src/components/layouts/UserLayout.vue b/src/components/layouts/UserLayout.vue new file mode 100644 index 0000000..7614097 --- /dev/null +++ b/src/components/layouts/UserLayout.vue @@ -0,0 +1,54 @@ + + + + + \ No newline at end of file diff --git a/src/components/layouts/index.js b/src/components/layouts/index.js new file mode 100644 index 0000000..7cf0f77 --- /dev/null +++ b/src/components/layouts/index.js @@ -0,0 +1,8 @@ +import UserLayout from '@/components/layouts/UserLayout' +import BlankLayout from '@/components/layouts/BlankLayout' +import BasicLayout from '@/components/layouts/BasicLayout' +import RouteView from '@/components/layouts/RouteView' +import PageView from '@/components/layouts/PageView' +import TabLayout from '@/components/layouts/TabLayout' + +export { UserLayout, BasicLayout, BlankLayout, RouteView, PageView, TabLayout } \ No newline at end of file diff --git a/src/components/lazy_antd.js b/src/components/lazy_antd.js new file mode 100644 index 0000000..c719e3d --- /dev/null +++ b/src/components/lazy_antd.js @@ -0,0 +1,133 @@ +/** + * 按需加载antd组件 + */ +import Vue from 'vue' + +// base library +import { + ConfigProvider, + Layout, + Input, + InputNumber, + Button, + Switch, + Radio, + Checkbox, + Select, + Card, + Form, + Row, + Col, + Modal, + Table, + Tabs, + Icon, + Badge, + Popover, + Dropdown, + List, + Avatar, + Breadcrumb, + Steps, + Spin, + Menu, + Drawer, + Tooltip, + Alert, + Tag, + Divider, + DatePicker, + TimePicker, + Upload, + Progress, + Skeleton, + Popconfirm, + PageHeader, + Result, + Statistic, + Descriptions, + Empty, + Tree, + TreeSelect, + Carousel, + Pagination, + FormModel, + Cascader, + Slider, + Transfer, + Rate, + Collapse, +} from 'ant-design-vue' +import { MdMessage, MdNotify, MdDialog } from 'mdesign-plus' + +Vue.use(ConfigProvider) +Vue.use(Layout) +Vue.use(Input) +Vue.use(InputNumber) +Vue.use(Button) +Vue.use(Switch) +Vue.use(Radio) +Vue.use(Checkbox) +Vue.use(Select) +Vue.use(Card) +Vue.use(Form) +Vue.use(Row) +Vue.use(Col) +Vue.use(Modal) +Vue.use(Table) +Vue.use(Tabs) +Vue.use(Icon) +Vue.use(Badge) +Vue.use(Popover) +Vue.use(Dropdown) +Vue.use(List) +Vue.use(Avatar) +Vue.use(Breadcrumb) +Vue.use(Steps) +Vue.use(Spin) +Vue.use(Menu) +Vue.use(Drawer) +Vue.use(Tooltip) +Vue.use(Alert) +Vue.use(Tag) +Vue.use(Divider) +Vue.use(DatePicker) +Vue.use(TimePicker) +Vue.use(Upload) +Vue.use(Progress) +Vue.use(Skeleton) +Vue.use(Popconfirm) +Vue.use(PageHeader) +Vue.use(Result) +Vue.use(Statistic) +Vue.use(Descriptions) +Vue.use(Empty) +Vue.use(Tree) +Vue.use(TreeSelect) +Vue.use(Carousel) +Vue.use(Pagination) +Vue.use(FormModel) +Vue.use(Cascader) +Vue.use(Slider) +Vue.use(Transfer) +Vue.use(Rate) +Vue.use(Collapse) + +// Vue.prototype.$confirm = Modal.confirm +// Vue.prototype.$message = message +// Vue.prototype.$notification = notification +// Vue.prototype.$info = Modal.info +// Vue.prototype.$success = Modal.success +// Vue.prototype.$error = Modal.error +// Vue.prototype.$warning = Modal.warning + +Vue.prototype.$confirm = MdDialog.confirm +Vue.prototype.$message = MdMessage +Vue.prototype.$notification = MdNotify +Vue.prototype.$info = MdDialog.info +Vue.prototype.$success = MdDialog.success +Vue.prototype.$error = MdDialog.error +Vue.prototype.$warning = MdDialog.warning + +process.env.NODE_ENV !== 'production' && console.warn('[winlink-vue] NOTICE: Antd use lazy-load.') + diff --git a/src/components/menu/Contextmenu.vue b/src/components/menu/Contextmenu.vue new file mode 100644 index 0000000..f88f7b4 --- /dev/null +++ b/src/components/menu/Contextmenu.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/src/components/menu/SideMenu.vue b/src/components/menu/SideMenu.vue new file mode 100644 index 0000000..816ca07 --- /dev/null +++ b/src/components/menu/SideMenu.vue @@ -0,0 +1,136 @@ + + + + + diff --git a/src/components/menu/index.js b/src/components/menu/index.js new file mode 100644 index 0000000..9fc0ed1 --- /dev/null +++ b/src/components/menu/index.js @@ -0,0 +1,270 @@ +/* eslint-disable */ +import Menu from 'ant-design-vue/es/menu' +import Icon from 'ant-design-vue/es/icon' + +const { Item, SubMenu } = Menu + +export default { + name: 'SMenu', + props: { + menu: { + type: Array, + default: () => [], + required: true, + }, + theme: { + type: String, + required: false, + default: 'dark', + }, + mode: { + type: String, + required: false, + default: 'inline', + }, + collapsed: { + type: Boolean, + required: false, + default: false, + }, + }, + data() { + return { + openKeys: [], + selectedKeys: [], + cachedOpenKeys: [], + } + }, + computed: { + rootSubmenuKeys: (vm) => { + const keys = [] + vm.menu.forEach((item) => keys.push(item.path)) + return keys + }, + }, + mounted() { + this.updateMenu() + }, + watch: { + collapsed(val) { + if (val) { + this.cachedOpenKeys = this.openKeys.concat() + this.openKeys = [] + } else { + this.openKeys = this.cachedOpenKeys + } + }, + $route: function () { + this.updateMenu() + }, + }, + methods: { + // select menu item + onOpenChange(openKeys) { + // 在水平模式下时执行,并且不再执行后续 + if (this.mode === 'horizontal') { + this.openKeys = openKeys + return + } + // 非水平模式时 + const latestOpenKey = openKeys.find((key) => !this.openKeys.includes(key)) + if (!this.rootSubmenuKeys.includes(latestOpenKey)) { + this.openKeys = openKeys + } else { + this.openKeys = latestOpenKey ? [latestOpenKey] : [] + } + }, + // updateMenu () { + // const routes = this.$route.matched.concat() + // const { hidden } = this.$route.meta + // if (routes.length >= 3 && hidden) { + // routes.pop() + // this.selectedKeys = [routes[routes.length - 1].path] + // } else { + // this.selectedKeys = [routes.pop().path] + // } + // let openKeys = [] + // if (this.mode === 'inline') { + // routes.forEach(item => { + // openKeys.push(item.path) + // }) + // } + // //调整点击三级菜单转跳到二级菜单时菜单展开显示 + // if(this.selectedKeys[0].includes('mark')){ + // openKeys.push("/merger/mark") + // } + // if(this.selectedKeys[0].includes('endprd')){ + // openKeys.push('/merger/endprd') + // } + // // update-begin-author:sunjianlei date:20210409 for: 修复动态功能测试菜单、带参数菜单标题错误、展开错误的问题 + // // 包含冒号的是动态菜单 + // if (this.selectedKeys[0].includes(':')) { + // const selectedKey = this.$route.fullPath + // this.selectedKeys = [selectedKey] + // const newOpenKeys = [] + // this.fullOpenKeys(this.menu, selectedKey, newOpenKeys) + // if (newOpenKeys.length > 0) { + // openKeys = newOpenKeys.reverse() + // } + // } + // // update-end-author:sunjianlei date:20210409 for: 修复动态功能测试菜单、带参数菜单标题错误、展开错误的问题 + + // //update-begin-author:taoyan date:20190510 for:online表单菜单点击展开的一级目录不对 + // if(!this.selectedKeys || this.selectedKeys[0].indexOf(":")<0){ + // this.collapsed ? (this.cachedOpenKeys = openKeys) : (this.openKeys = openKeys) + // } + // //update-end-author:taoyan date:20190510 for:online表单菜单点击展开的一级目录不对 + // }, + updateMenu() { + const routes = this.$route.matched.concat() + const { hidden } = this.$route.meta + let selectedKeys, + openKeys = [] + + // 处理选中的菜单键(selectedKeys) + if (routes.length >= 3 && hidden) { + routes.pop() + selectedKeys = [routes.at(-1).name] // 使用at(-1)获取最后一项,更简洁 + } else { + selectedKeys = [routes.pop().name] + } + + // 处理展开的菜单键(openKeys)基础逻辑 + if (this.mode === 'inline') { + openKeys = routes.map((item) => item.path) + } + + // 特殊路径的展开处理 + const selectedPath = selectedKeys[0] + if (selectedPath.includes('mark')) { + openKeys.push('/merger/mark') + } else if (selectedPath.includes('endprd')) { + openKeys.push('/merger/endprd') + } + + // 动态菜单(含冒号)的展开处理 + if (selectedPath.includes(':')) { + // const fullPath = this.$route.fullPath + const name = this.$route.name + selectedKeys = [name] + const newOpenKeys = [] + this.fullOpenKeys(this.menu, fullPath, newOpenKeys) + if (newOpenKeys.length) { + openKeys = newOpenKeys.reverse() + } + } + + // 最终更新展开状态(非动态菜单且有选中项时) + if (selectedKeys.length && !selectedPath.includes(':')) { + this.collapsed ? (this.cachedOpenKeys = openKeys) : (this.openKeys = openKeys) + } + this.selectedKeys = selectedKeys + }, + // update-begin-author:sunjianlei date:20210409 for: 修复动态功能测试菜单、带参数菜单标题错误、展开错误的问题 + // 递归查找当前选中的菜单和父级菜单,填充openKeys + fullOpenKeys(menus, selectedKey, openKeys) { + for (const item of menus) { + if (item.path === selectedKey) { + openKeys.push(item.path) + this.$emit('updateMenuTitle', item) + return true + } else if (Array.isArray(item.children)) { + if (this.fullOpenKeys(item.children, selectedKey, openKeys)) { + openKeys.push(item.path) + return true + } + } + } + }, + // update-end-author:sunjianlei date:20210409 for: 修复动态功能测试菜单、带参数菜单标题错误、展开错误的问题 + + // render + renderItem(menu) { + if (!menu.hidden) { + return menu.children && !menu.alwaysShow ? this.renderSubMenu(menu) : this.renderMenuItem(menu) + } + return null + }, + renderMenuItem(menu) { + const target = menu.meta.target || null + const tag = (target && 'a') || 'router-link' + let props = { to: { name: menu.name } } + if (menu.route && menu.route === '0') { + props = { to: { path: menu.path } } + } + + const attrs = { href: menu.path, target: menu.meta.target } + + if (menu.children && menu.alwaysShow) { + // 把有子菜单的 并且 父菜单是要隐藏子菜单的 + // 都给子菜单增加一个 hidden 属性 + // 用来给刷新页面时, selectedKeys 做控制用 + menu.children.forEach((item) => { + item.meta = Object.assign(item.meta, { hidden: true }) + }) + } + + return ( + + + {this.renderIcon(menu.meta.icon)} + {menu.meta.title} + + + ) + }, + renderSubMenu(menu) { + const itemArr = [] + if (!menu.alwaysShow) { + menu.children.forEach((item) => itemArr.push(this.renderItem(item))) + } + return ( + + + {this.renderIcon(menu.meta.icon)} + {menu.meta.title} + + {itemArr} + + ) + }, + renderIcon(icon) { + if (icon === 'none' || icon === undefined) { + return null + } + const props = {} + typeof icon === 'object' ? (props.component = icon) : (props.type = icon) + return + }, + }, + + render() { + const { mode, theme, menu } = this + const props = { + mode: mode, + theme: theme, + openKeys: this.openKeys, + } + const on = { + select: (obj) => { + this.selectedKeys = obj.selectedKeys + this.$emit('select', obj) + }, + openChange: this.onOpenChange, + } + + const menuTree = menu.map((item) => { + if (item.hidden) { + return null + } + return this.renderItem(item) + }) + // {...{ props, on: on }} + return ( + + {menuTree} + + ) + }, +} + diff --git a/src/components/office/OfficeOnline.vue b/src/components/office/OfficeOnline.vue new file mode 100644 index 0000000..c5a5759 --- /dev/null +++ b/src/components/office/OfficeOnline.vue @@ -0,0 +1,97 @@ + + + \ No newline at end of file diff --git a/src/components/page/GlobalFooter.vue b/src/components/page/GlobalFooter.vue new file mode 100644 index 0000000..264dece --- /dev/null +++ b/src/components/page/GlobalFooter.vue @@ -0,0 +1,46 @@ + + + + + \ No newline at end of file diff --git a/src/components/page/GlobalHeader.vue b/src/components/page/GlobalHeader.vue new file mode 100644 index 0000000..d5088b5 --- /dev/null +++ b/src/components/page/GlobalHeader.vue @@ -0,0 +1,242 @@ + + + + + \ No newline at end of file diff --git a/src/components/page/GlobalLayout.vue b/src/components/page/GlobalLayout.vue new file mode 100644 index 0000000..d7207d3 --- /dev/null +++ b/src/components/page/GlobalLayout.vue @@ -0,0 +1,690 @@ + + + + + diff --git a/src/components/page/PageHeader.vue b/src/components/page/PageHeader.vue new file mode 100644 index 0000000..351b55f --- /dev/null +++ b/src/components/page/PageHeader.vue @@ -0,0 +1,239 @@ + + + + + \ No newline at end of file diff --git a/src/components/page/PageLayout.vue b/src/components/page/PageLayout.vue new file mode 100644 index 0000000..74029dd --- /dev/null +++ b/src/components/page/PageLayout.vue @@ -0,0 +1,132 @@ + + + + + \ No newline at end of file diff --git a/src/components/page/SHeaderNotice.vue b/src/components/page/SHeaderNotice.vue new file mode 100644 index 0000000..9760bfa --- /dev/null +++ b/src/components/page/SHeaderNotice.vue @@ -0,0 +1,57 @@ + + + + + \ No newline at end of file diff --git a/src/components/setting/SettingDrawer.vue b/src/components/setting/SettingDrawer.vue new file mode 100644 index 0000000..7c4597c --- /dev/null +++ b/src/components/setting/SettingDrawer.vue @@ -0,0 +1,321 @@ + + + + + diff --git a/src/components/setting/SettingItem.vue b/src/components/setting/SettingItem.vue new file mode 100644 index 0000000..159f669 --- /dev/null +++ b/src/components/setting/SettingItem.vue @@ -0,0 +1,38 @@ + + + + + \ No newline at end of file diff --git a/src/components/snakerFlow/PropertySetting/custom.vue b/src/components/snakerFlow/PropertySetting/custom.vue new file mode 100644 index 0000000..9a6b182 --- /dev/null +++ b/src/components/snakerFlow/PropertySetting/custom.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/src/components/snakerFlow/PropertySetting/decision.vue b/src/components/snakerFlow/PropertySetting/decision.vue new file mode 100644 index 0000000..65f99d3 --- /dev/null +++ b/src/components/snakerFlow/PropertySetting/decision.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/src/components/snakerFlow/PropertySetting/end.vue b/src/components/snakerFlow/PropertySetting/end.vue new file mode 100644 index 0000000..bae1564 --- /dev/null +++ b/src/components/snakerFlow/PropertySetting/end.vue @@ -0,0 +1,43 @@ + + + + + diff --git a/src/components/snakerFlow/PropertySetting/fork.vue b/src/components/snakerFlow/PropertySetting/fork.vue new file mode 100644 index 0000000..e8384ea --- /dev/null +++ b/src/components/snakerFlow/PropertySetting/fork.vue @@ -0,0 +1,37 @@ + + + + + diff --git a/src/components/snakerFlow/PropertySetting/index.vue b/src/components/snakerFlow/PropertySetting/index.vue new file mode 100644 index 0000000..22f2c92 --- /dev/null +++ b/src/components/snakerFlow/PropertySetting/index.vue @@ -0,0 +1,305 @@ + + + + + diff --git a/src/components/snakerFlow/PropertySetting/join.vue b/src/components/snakerFlow/PropertySetting/join.vue new file mode 100644 index 0000000..e8384ea --- /dev/null +++ b/src/components/snakerFlow/PropertySetting/join.vue @@ -0,0 +1,37 @@ + + + + + diff --git a/src/components/snakerFlow/PropertySetting/process.vue b/src/components/snakerFlow/PropertySetting/process.vue new file mode 100644 index 0000000..07c3e3f --- /dev/null +++ b/src/components/snakerFlow/PropertySetting/process.vue @@ -0,0 +1,52 @@ + + + + + diff --git a/src/components/snakerFlow/PropertySetting/start.vue b/src/components/snakerFlow/PropertySetting/start.vue new file mode 100644 index 0000000..bae1564 --- /dev/null +++ b/src/components/snakerFlow/PropertySetting/start.vue @@ -0,0 +1,43 @@ + + + + + diff --git a/src/components/snakerFlow/PropertySetting/task.vue b/src/components/snakerFlow/PropertySetting/task.vue new file mode 100644 index 0000000..705bc4e --- /dev/null +++ b/src/components/snakerFlow/PropertySetting/task.vue @@ -0,0 +1,240 @@ + + + + + diff --git a/src/components/snakerFlow/PropertySetting/transition.vue b/src/components/snakerFlow/PropertySetting/transition.vue new file mode 100644 index 0000000..57539ca --- /dev/null +++ b/src/components/snakerFlow/PropertySetting/transition.vue @@ -0,0 +1,43 @@ + + + + + diff --git a/src/components/snakerFlow/index.js b/src/components/snakerFlow/index.js new file mode 100644 index 0000000..6004d21 --- /dev/null +++ b/src/components/snakerFlow/index.js @@ -0,0 +1,27 @@ +// 导入流程设计器组件 +import SnakerFlowDesigner from './snakerflow/index.js' +import * as Tool from './snakerflow/tool' +// 存储组件列表 +const components = [ + SnakerFlowDesigner +] +// 定义 install 方法,接收 Vue 作为参数。如果使用 use 注册插件,则所有的组件都将被注册 +const install = function (Vue) { + // 判断是否安装 + if (install.installed) {return} + // 遍历注册全局组件 + components.map(component => Vue.component(component.name, component)) + // 安装工具类 + Vue.prototype.$wfTool = Tool +} +// 判断是否是直接引入文件 +if (typeof window !== 'undefined' && window.Vue) { + install(window.Vue) +} +export default { + // 导出的对象必须具有 install,才能被 Vue.use() 方法安装 + install, + // 以下是具体的组件列表 + SnakerFlowDesigner, + Tool +} diff --git a/src/components/snakerFlow/snakerflow/control/DataDetail.vue b/src/components/snakerFlow/snakerflow/control/DataDetail.vue new file mode 100644 index 0000000..e9f6464 --- /dev/null +++ b/src/components/snakerFlow/snakerflow/control/DataDetail.vue @@ -0,0 +1,64 @@ + + + + diff --git a/src/components/snakerFlow/snakerflow/control/HighLightData.vue b/src/components/snakerFlow/snakerflow/control/HighLightData.vue new file mode 100644 index 0000000..8c511e0 --- /dev/null +++ b/src/components/snakerFlow/snakerflow/control/HighLightData.vue @@ -0,0 +1,23 @@ + + + + diff --git a/src/components/snakerFlow/snakerflow/control/ImportData.vue b/src/components/snakerFlow/snakerflow/control/ImportData.vue new file mode 100644 index 0000000..1463910 --- /dev/null +++ b/src/components/snakerFlow/snakerflow/control/ImportData.vue @@ -0,0 +1,23 @@ + + + + diff --git a/src/components/snakerFlow/snakerflow/custom/index.js b/src/components/snakerFlow/snakerflow/custom/index.js new file mode 100644 index 0000000..7047bbd --- /dev/null +++ b/src/components/snakerFlow/snakerflow/custom/index.js @@ -0,0 +1,67 @@ +import { h, RectNodeModel, RectNode } from '@logicflow/core' +import { nodeStyleHandle } from '../tool' + +class CustomModel extends RectNodeModel { + static extendKey = 'CustomModel'; + constructor (data, graphModel) { + super(data, graphModel) + this.width = data.properties.width ? data.properties.width : 120 + this.height = data.properties.height ? data.properties.height : 80 + } + + getNodeStyle () { + const style = super.getNodeStyle() + return nodeStyleHandle(this, style) + } +} + +class CustomView extends RectNode { + static extendKey = 'CustomNode'; + getLabelShape () { + const { model } = this.props + const { x, y, width, height } = model + const style = model.getNodeStyle() + return h( + 'svg', + { + x: x - width / 2 + 5, + y: y - height / 2 + 5, + width: 30, + height: 30, + viewBox: '0 0 1274 1024' + }, + h('path', { + fill: style.stroke, + d: + 'M882.527918 434.149934c-2.234901-5.303796-7.311523-8.853645-13.059434-9.138124l-61.390185-3.009544c-6.635117-20.973684-15.521508-41.175795-26.513864-60.282968l42.051745-47.743374c4.308119-4.889357 4.955872-12.004405 1.602498-17.59268-46.384423-77.30362-103.969956-101.422947-106.400309-102.410438-5.332449-2.170432-11.432377-1.090844-15.693424 2.77009L654.674467 240.664222c-17.004279-8.654101-35.092239-15.756869-53.995775-21.210068l-3.26537-66.490344c-0.280386-5.747911-3.833305-10.824533-9.134031-13.059434-1.683339-0.709151-30.193673-12.391215-76.866668-12.051477-46.672996-0.339738-75.18333 11.342326-76.866668 12.051477-5.300726 2.234901-8.853645 7.311523-9.134031 13.059434l-3.26537 66.490344c-18.903535 5.453199-36.991496 12.555967-53.995775 21.210068l-48.450479-43.922349c-4.261047-3.860934-10.360975-4.940522-15.693424-2.77009-2.430352 0.98749-60.015885 25.106818-106.400309 102.410438-3.353374 5.588275-2.705622 12.703323 1.602498 17.59268l42.051745 47.743374c-10.992355 19.107173-19.878746 39.309284-26.513864 60.282968l-61.390185 3.009544c-5.747911 0.284479-10.824533 3.834328-13.059434 9.138124-1.01512 2.415003-24.687262 60.190871-2.822278 147.651828 1.583055 6.324032 7.072069 10.893094 13.57518 11.308557 5.892197 0.37146 11.751648 0.523933 17.419741 0.667196 14.498202 0.372483 28.193109 0.723477 40.908712 4.63353 4.212952 1.294482 6.435573 8.270361 9.349949 18.763342 1.287319 4.640694 2.617617 9.43693 4.484128 14.010085 1.794879 4.393054 3.75758 8.570189 5.66093 12.607132 1.302669 2.765997 2.529613 5.380544 3.689019 8.018627 2.986007 6.803963 2.682086 9.773598 2.578732 10.349719-3.061732 3.672646-6.391571 7.238868-9.91379 11.015891-1.810229 1.943258-3.680832 3.949962-5.523807 5.980201l-22.560832 24.8909c-3.865028 4.261047-4.940522 10.365068-2.774183 15.693424 0.991584 2.426259 25.102724 60.011792 102.414531 106.400309 5.588275 3.353374 12.703323 2.701528 17.591657-1.603521l23.476691-20.682042c2.346441-2.061962 4.64888-4.336772 6.875594-6.534833 9.05319-8.93858 14.018272-12.95608 17.73185-11.576663 3.305279 1.222851 6.907317 3.166109 10.720156 5.228071 3.325745 1.794879 6.764054 3.650133 10.465352 5.288446 6.016017 2.662643 12.120039 4.688789 18.019399 6.65149 6.827499 2.266623 13.279445 4.409426 18.819624 7.275707 1.518586 0.782829 1.926886 0.994654 2.358721 7.830339 0.726547 11.496845 1.25048 23.276123 1.753947 34.672684 0.264013 5.900384 0.528026 11.803837 0.815575 17.700127 0.284479 5.743818 3.833305 10.82044 9.138124 13.05534 1.654686 0.698918 29.371958 12.063757 74.869175 12.063757 0.328481 0 3.65832 0 3.986801 0 45.497217 0 73.214489-11.364839 74.869175-12.063757 5.304819-2.234901 8.853645-7.311523 9.138124-13.05534 0.287549-5.89629 0.551562-11.799744 0.815575-17.700127 0.503467-11.396561 1.027399-23.175839 1.753947-34.672684 0.431835-6.835685 0.840134-7.04751 2.358721-7.830339 5.54018-2.866281 11.992125-5.009084 18.819624-7.275707 5.89936-1.962701 12.003382-3.988848 18.019399-6.65149 3.701299-1.638313 7.139607-3.493567 10.465352-5.288446 3.812839-2.061962 7.414877-4.00522 10.720156-5.228071 3.713578-1.379417 8.67866 2.638083 17.73185 11.576663 2.226714 2.198062 4.529153 4.472871 6.875594 6.534833l23.476691 20.682042c4.888334 4.305049 12.003382 4.956895 17.591657 1.603521 77.311807-46.388517 101.422947-103.97405 102.414531-106.400309 2.166339-5.328355 1.090844-11.432377-2.774183-15.693424l-22.560832-24.8909c-1.842974-2.030239-3.713578-4.036943-5.523807-5.980201-3.52222-3.777023-6.852058-7.343245-9.91379-11.015891-0.103354-0.576121-0.407276-3.545756 2.578732-10.349719 1.159406-2.638083 2.38635-5.252631 3.689019-8.018627 1.90335-4.036943 3.866051-8.214079 5.66093-12.607132 1.866511-4.573155 3.196809-9.369392 4.484128-14.010085 2.914376-10.492982 5.136997-17.46886 9.349949-18.763342 12.715603-3.910053 26.41051-4.261047 40.908712-4.63353 5.668093-0.143263 11.527544-0.295735 17.419741-0.667196 6.503111-0.415462 11.992125-4.984524 13.57518-11.308557C907.21518 494.340805 883.543038 436.564937 882.527918 434.149934zM643.49894 643.761929c-35.280528 35.280528-82.191954 54.711066-132.086317 54.711066s-96.806813-19.430538-132.086317-54.711066c-35.280528-35.279504-54.711066-82.191954-54.711066-132.086317 0-49.894364 19.430538-96.80272 54.711066-132.082224 35.283598-35.284621 82.191954-54.711066 132.086317-54.711066s96.80579 19.426445 132.086317 54.711066c35.279504 35.279504 54.711066 82.187861 54.711066 132.082224C698.210006 561.569976 678.782537 608.482425 643.49894 643.761929z' + }) + ) + } + + getShape () { + const { model } = this.props + const { x, y, width, height, radius } = model + const style = model.getNodeStyle() + return h('g', {}, [ + h('rect', { + x: x - width / 2, + y: y - height / 2, + rx: radius, + ry: radius, + width, + height, + ...style + }), + this.getLabelShape() + ]) + } +} + +const Custom = { + type: 'snaker:custom', + view: CustomView, + model: CustomModel +} + +export { CustomView, CustomModel } +export default Custom diff --git a/src/components/snakerFlow/snakerflow/decision/index.js b/src/components/snakerFlow/snakerflow/decision/index.js new file mode 100644 index 0000000..890f4b6 --- /dev/null +++ b/src/components/snakerFlow/snakerflow/decision/index.js @@ -0,0 +1,65 @@ +import { h, PolygonNode, PolygonNodeModel } from '@logicflow/core' +import { nodeStyleHandle } from '../tool' + +class DecisionModel extends PolygonNodeModel { + static extendKey = 'DecisionModel'; + constructor (data, graphModel) { + if (!data.text) { + data.text = '' + } + if (data.text && typeof data.text === 'string') { + data.text = { + value: data.text, + x: data.x, + y: data.y + 40 + } + } + super(data, graphModel) + this.points = [ + [25, 0], + [50, 25], + [25, 50], + [0, 25] + ] + } + + getNodeStyle () { + const style = super.getNodeStyle() + return nodeStyleHandle(this, style) + } +} + +class DecisionView extends PolygonNode { + static extendKey = 'DecisionNode'; + getShape () { + const { model } = this.props + const { x, y, width, height, points } = model + const style = model.getNodeStyle() + return h( + 'g', + { + transform: `matrix(1 0 0 1 ${x - width / 2} ${y - height / 2})` + }, + h('polygon', { + ...style, + x, + y, + points + }), + h('path', { + d: + 'm 16,15 7.42857142857143,9.714285714285715 -7.42857142857143,9.714285714285715 3.428571428571429,0 5.714285714285715,-7.464228571428572 5.714285714285715,7.464228571428572 3.428571428571429,0 -7.42857142857143,-9.714285714285715 7.42857142857143,-9.714285714285715 -3.428571428571429,0 -5.714285714285715,7.464228571428572 -5.714285714285715,-7.464228571428572 -3.428571428571429,0 z', + ...style + }) + ) + } +} + +const Decision = { + type: 'snaker:decision', + view: DecisionView, + model: DecisionModel +} + +export { DecisionView, DecisionModel } +export default Decision diff --git a/src/components/snakerFlow/snakerflow/end/index.js b/src/components/snakerFlow/snakerflow/end/index.js new file mode 100644 index 0000000..98362dc --- /dev/null +++ b/src/components/snakerFlow/snakerflow/end/index.js @@ -0,0 +1,74 @@ +import { CircleNode, CircleNodeModel, h } from '@logicflow/core' +import { nodeStyleHandle } from '../tool' + +class EndModel extends CircleNodeModel { + static extendKey = 'EndModel'; + constructor (data, graphModel) { + if (!data.text) { + data.text = '' + } + if (data.text && typeof data.text === 'string') { + data.text = { + value: data.text, + x: data.x, + y: data.y + 40 + } + } + super(data, graphModel) + } + + setAttributes () { + this.r = 18 + } + + getConnectedSourceRules () { + const rules = super.getConnectedSourceRules() + const notAsSource = { + message: '结束节点不能作为边的起点', + validate: () => false + } + rules.push(notAsSource) + return rules + } + + getNodeStyle () { + const style = super.getNodeStyle() + return nodeStyleHandle(this, style) + } +} + +class EndView extends CircleNode { + static extendKey = 'EndView'; + getAnchorStyle () { + return { + visibility: 'hidden' + } + } + + getShape () { + const { model } = this.props + const style = model.getNodeStyle() + const { x, y, r } = model + const outCircle = super.getShape() + return h( + 'g', + {}, + outCircle, + h('circle', { + ...style, + cx: x, + cy: y, + r: r - 5 + }) + ) + } +} + +const End = { + type: 'snaker:end', + view: EndView, + model: EndModel +} + +export { EndView, EndModel } +export default End diff --git a/src/components/snakerFlow/snakerflow/fork/index.js b/src/components/snakerFlow/snakerflow/fork/index.js new file mode 100644 index 0000000..5bc459f --- /dev/null +++ b/src/components/snakerFlow/snakerflow/fork/index.js @@ -0,0 +1,65 @@ +import { h, PolygonNode, PolygonNodeModel } from '@logicflow/core' +import { nodeStyleHandle } from '../tool' + +class ForkModel extends PolygonNodeModel { + static extendKey = 'ForkModel'; + constructor (data, graphModel) { + if (!data.text) { + data.text = '' + } + if (data.text && typeof data.text === 'string') { + data.text = { + value: data.text, + x: data.x, + y: data.y + 40 + } + } + super(data, graphModel) + this.points = [ + [25, 0], + [50, 25], + [25, 50], + [0, 25] + ] + } + + getNodeStyle () { + const style = super.getNodeStyle() + return nodeStyleHandle(this, style) + } +} + +class ForkView extends PolygonNode { + static extendKey = 'ForkNode'; + getShape () { + const { model } = this.props + const { x, y, width, height, points } = model + const style = model.getNodeStyle() + return h( + 'g', + { + transform: `matrix(1 0 0 1 ${x - width / 2} ${y - height / 2})` + }, + h('polygon', { + ...style, + x, + y, + points + }), + h('path', { + d: + 'm29.29582,12.68919c0.076527,0 0.150415,0.018026 0.211109,0.051074l5.938747,3.219638a0.362843,0.275397 0 0 1 0,0.448646l-5.937428,3.219638a0.362843,0.275397 0 0 1 -0.575271,-0.224323l-0.001319,-2.208181l-7.359771,0c-0.211109,0 -0.440689,0.175252 -0.488189,0.443639l-0.009236,0.105151l0,10.919731c0,0.290418 0.204511,0.498718 0.416939,0.540779l0.079166,0.008012l7.36241,0l0,-2.198167a0.362843,0.275397 0 0 1 0.573951,-0.224323l5.938747,3.219638a0.362843,0.275397 0 0 1 0,0.448646l-5.937428,3.219638a0.362843,0.275397 0 0 1 -0.575271,-0.224323l-0.001319,-2.238224l-7.359771,0c-1.698104,0 -3.026769,-1.075549 -3.129684,-2.387439l-0.006597,-0.164237l-0.001319,-4.458423l-4.240643,0a3.959604,3.005329 0 1 1 0,-2.002885l4.240643,0l0,-4.458423c0,-1.328914 1.261373,-2.45754 2.927812,-2.545667l0.20847,-0.006009l7.359771,0l0.002639,-2.22821c0,-0.152219 0.16229,-0.275397 0.362843,-0.275397z', + ...style + }) + ) + } +} + +const Fork = { + type: 'snaker:fork', + view: ForkView, + model: ForkModel +} + +export { ForkView, ForkModel } +export default Fork diff --git a/src/components/snakerFlow/snakerflow/index.js b/src/components/snakerFlow/snakerflow/index.js new file mode 100644 index 0000000..6e29c53 --- /dev/null +++ b/src/components/snakerFlow/snakerflow/index.js @@ -0,0 +1,4 @@ +// 导入组件 +import SnakerFlowDesigner from './index.vue' +// 默认导出组件 +export default SnakerFlowDesigner diff --git a/src/components/snakerFlow/snakerflow/index.vue b/src/components/snakerFlow/snakerflow/index.vue new file mode 100644 index 0000000..4956914 --- /dev/null +++ b/src/components/snakerFlow/snakerflow/index.vue @@ -0,0 +1,554 @@ + + + + + diff --git a/src/components/snakerFlow/snakerflow/join/index.js b/src/components/snakerFlow/snakerflow/join/index.js new file mode 100644 index 0000000..6e44a05 --- /dev/null +++ b/src/components/snakerFlow/snakerflow/join/index.js @@ -0,0 +1,65 @@ +import { h, PolygonNode, PolygonNodeModel } from '@logicflow/core' +import { nodeStyleHandle } from '../tool' + +class JoinModel extends PolygonNodeModel { + static extendKey = 'JoinModel'; + constructor (data, graphModel) { + if (!data.text) { + data.text = '' + } + if (data.text && typeof data.text === 'string') { + data.text = { + value: data.text, + x: data.x, + y: data.y + 40 + } + } + super(data, graphModel) + this.points = [ + [25, 0], + [50, 25], + [25, 50], + [0, 25] + ] + } + + getNodeStyle () { + const style = super.getNodeStyle() + return nodeStyleHandle(this, style) + } +} + +class JoinView extends PolygonNode { + static extendKey = 'JoinNode'; + getShape () { + const { model } = this.props + const { x, y, width, height, points } = model + const style = model.getNodeStyle() + return h( + 'g', + { + transform: `matrix(1 0 0 1 ${x - width / 2} ${y - height / 2})` + }, + h('polygon', { + ...style, + x, + y, + points + }), + h('path', { + d: + 'm31.518769,19.717099l-1.323583,1.821511l2.491935,3.432788l-6.298288,0c-0.559956,-1.545837 -1.84258,-4.576707 -2.311642,-5.729901c-0.956077,-2.351733 -2.717862,-3.448504 -4.123924,-3.545119l-4.962923,0.032205l0,2.54419l4.962549,0c1.097469,0 1.866146,0.687897 2.492683,2.229097c0.47355,1.164015 1.774877,4.396875 2.322863,5.759788a1922.847494,2648.83654 0 0 1 -2.322863,5.757726c-0.626537,1.540684 -1.395214,2.227035 -2.492683,2.227035l-4.962549,0l0,2.576395l4.962549,0c1.780114,0 3.167847,-1.192355 4.124672,-3.545119c0.468687,-1.153709 1.751312,-4.184065 2.311268,-5.729901l6.321106,0l-2.514752,3.46422l1.322648,1.821511l4.760935,-6.55847l-4.759999,-6.557955z', + ...style + }) + ) + } +} + +const Join = { + type: 'snaker:join', + view: JoinView, + model: JoinModel +} + +export { JoinView, JoinModel } +export default Join diff --git a/src/components/snakerFlow/snakerflow/start/index.js b/src/components/snakerFlow/snakerflow/start/index.js new file mode 100644 index 0000000..2e79c22 --- /dev/null +++ b/src/components/snakerFlow/snakerflow/start/index.js @@ -0,0 +1,50 @@ +import { CircleNode, CircleNodeModel } from '@logicflow/core' +import { nodeStyleHandle } from '../tool' +class StartModel extends CircleNodeModel { + static extendKey = 'StartModel'; + constructor (data, graphModel) { + if (!data.text) { + data.text = '' + } + if (data.text && typeof data.text === 'string') { + data.text = { + value: data.text, + x: data.x, + y: data.y + 40 + } + } + super(data, graphModel) + } + + setAttributes () { + this.r = 18 + } + + getConnectedTargetRules () { + const rules = super.getConnectedTargetRules() + const notAsTarget = { + message: '起始节点不能作为边的终点', + validate: () => false + } + rules.push(notAsTarget) + return rules + } + + getNodeStyle () { + const style = super.getNodeStyle() + return nodeStyleHandle(this, style) + } +} + +class StartView extends CircleNode { + static extendKey = 'StartNode'; +} + +const Start = { + type: 'snaker:start', + view: StartView, + model: StartModel +} + +export { StartModel, StartView } +export default Start diff --git a/src/components/snakerFlow/snakerflow/task/index.js b/src/components/snakerFlow/snakerflow/task/index.js new file mode 100644 index 0000000..abb820b --- /dev/null +++ b/src/components/snakerFlow/snakerflow/task/index.js @@ -0,0 +1,67 @@ +import { h, RectNode, RectNodeModel } from '@logicflow/core' +import { nodeStyleHandle } from '../tool' +class TaskModel extends RectNodeModel { + static extendKey = 'TaskModel'; + constructor (data, graphModel) { + super(data, graphModel) + this.width = data.properties.width ? data.properties.width : 120 + this.height = data.properties.height ? data.properties.height : 80 + } + + getNodeStyle () { + const style = super.getNodeStyle() + return nodeStyleHandle(this, style) + } +} + +class TaskView extends RectNode { + static extendKey = 'TaskNode'; + getLabelShape () { + const { model } = this.props + const { x, y, width, height } = model + const style = model.getNodeStyle() + return h( + 'svg', + { + x: x - width / 2 + 5, + y: y - height / 2 + 5, + width: 25, + height: 25, + viewBox: '0 0 1274 1024' + }, + h('path', { + fill: style.stroke, + d: + 'M655.807326 287.35973m-223.989415 0a218.879 218.879 0 1 0 447.978829 0 218.879 218.879 0 1 0-447.978829 0ZM1039.955839 895.482975c-0.490184-212.177424-172.287821-384.030443-384.148513-384.030443-211.862739 0-383.660376 171.85302-384.15056 384.030443L1039.955839 895.482975z' + }) + ) + } + + getShape () { + const { model } = this.props + const { x, y, width, height, radius } = model + const style = model.getNodeStyle() + // todo: 将basic-shape对外暴露,在这里可以直接用。现在纯手写有点麻烦。 + return h('g', {}, [ + h('rect', { + ...style, + x: x - width / 2, + y: y - height / 2, + rx: radius, + ry: radius, + width, + height + }), + this.getLabelShape() + ]) + } +} + +const Task = { + type: 'snaker:task', + view: TaskView, + model: TaskModel +} + +export { TaskView, TaskModel } +export default Task diff --git a/src/components/snakerFlow/snakerflow/tool.js b/src/components/snakerFlow/snakerflow/tool.js new file mode 100644 index 0000000..b0fb826 --- /dev/null +++ b/src/components/snakerFlow/snakerflow/tool.js @@ -0,0 +1,351 @@ +/* eslint-disable */ +/** + * 节点样式处理方法 + * @param {*}} _this + * @param {*} style + * @returns + */ +export const nodeStyleHandle = (_this, style) => { + if (_this.properties.state === 'active') { + style.stroke = '#00ff00' + } else if (_this.properties.state === 'history') { + style.stroke = '#ff0000' + } + return style +} +/** + * 边样式处理方法 + * @param {*}} _this + * @param {*} style + * @returns + */ +export const edgeStyleHandle = (_this, style) => { + if (_this.properties.state === 'active') { + style.stroke = '#00ff00' + } else if (_this.properties.state === 'history') { + style.stroke = '#ff0000' + } + return style +} +/** + * 解析xml成Dom对象 + * @param {} xml + * @returns + */ +export const parseXml2Dom = (xml) => { + let xmlDoc = null + if (window.DOMParser) { + const parser = new DOMParser() + xmlDoc = parser.parseFromString(xml, 'text/xml') + } else { // Internet Explorer + // eslint-disable-next-line no-undef + xmlDoc = new ActiveXObject('Microsoft.XMLDOM') + xmlDoc.async = false + xmlDoc.loadXML(xml) + } + return xmlDoc +} +// 节点标签 +const NODE_NAMES = ['start', 'task', 'decision', 'end', 'custom', 'join', 'fork'] +// 流程节点属性 +const PROCESS_ATTR_KEYS = ['name', 'displayName', 'processType', 'instanceUrl', 'expireTime', 'instanceNoClass'] +// 节点属性 +const NODE_ATTR_KEYS = ['name', 'displayName', 'form', 'assignee', 'assignmentHandler', 'taskType', 'performType', + 'preInterceptors', 'postInterceptors', 'reminderTime', 'reminderRepeat', + 'expireTime', 'autoExecute', 'callback', 'expr', 'handleClass', + 'clazz', 'methodName', 'args', 'layout', 'g'] +// 变迁节点属性 +const TRANSITION_ATTR_KEYS = ['name', 'displayName', 'to', 'expr', 'g'] + +/** + * 将snaker的定义文件转成LogicFlow支持的数据格式 + * @param {*} xml + * @returns + */ +/* eslint complexity: ["error", 20] */ +export const snakerXml2LogicFlowJson = (xml) => { + const graphData = { + nodes: [], + edges: [] + } + const xmlDoc = parseXml2Dom(xml) + const processDom = xmlDoc.getElementsByTagName('process') + if (!processDom.length) { + return graphData + } + let value = null + // 解析process属性 + PROCESS_ATTR_KEYS.forEach(key => { + value = processDom[0].getAttribute(key) + if (value) { + graphData[key] = value + } + }) + let nodeEles = null + let node = null + let lfNode = {} + // 解析节点 + NODE_NAMES.forEach(key => { + nodeEles = processDom[0].getElementsByTagName(key) + if (nodeEles.length) { + for (let i = 0, len = nodeEles.length; i < len; i++) { + node = nodeEles[i] + lfNode = { + type: 'snaker:' + key, + properties: {} + } + // 处理节点 + NODE_ATTR_KEYS.forEach(attrKey => { + value = node.getAttribute(attrKey) + if (value) { + if (attrKey === 'name') { + lfNode.id = value + } else if (attrKey === 'layout') { + const attr = value.split(',') + if (attr.length === 4) { + lfNode.x = attr[0] + lfNode.y = attr[1] + lfNode.properties.width = attr[2] <= 0 ? 100 : attr[2] + lfNode.properties.height = attr[3] <= 0 ? 50 : attr[3] + } + } else if (attrKey === 'displayName') { + lfNode.text = value + } else { + lfNode.properties[attrKey] = value + } + } + }) + // 处理扩展属性 + if (key === 'task') { + const fieldEles = node.getElementsByTagName('field') + if (fieldEles.length) { + const fieldEle = fieldEles[0] + const field = { + } + const attr = fieldEle.getElementsByTagName('attr') + for (let iii = 0; iii < attr.length; iii++) { + field[attr[iii].getAttribute('name')] = attr[iii].getAttribute('value') + } + lfNode.properties.field = field + } + } + graphData.nodes.push(lfNode) + // 处理边 + let transitionEles = null + let transitionEle = null + let edge = {} + if (key !== 'end') { + transitionEles = node.getElementsByTagName('transition') + for (let j = 0, lenn = transitionEles.length; j < lenn; j++) { + transitionEle = transitionEles[j] + edge = {} + edge.id = transitionEle.getAttribute('name') + edge.type = 'snaker:transition' + edge.sourceNodeId = lfNode.id + edge.targetNodeId = transitionEle.getAttribute('to') + edge.text = { + value: transitionEle.getAttribute('displayName') ? transitionEle.getAttribute('displayName') : '' + } + edge.properties = {} + const expr = transitionEle.getAttribute('expr') + if (expr) { + edge.properties.expr = expr + } + const g = transitionEle.getAttribute('g') + if (g) { + const points = g.split(';') + if (points.length >= 2) { + edge.pointsList = [] + points.forEach((item) => { + const pointArr = item.split(',') + edge.pointsList.push({ + x: Number(pointArr[0]), + y: Number(pointArr[1]) + }) + }) + edge.startPoint = edge.pointsList[0] + edge.endPoint = edge.pointsList[edge.pointsList.length - 1] + } + } + graphData.edges.push(edge) + } + } + } + } + }) + + return graphData +} +/** + * 将LogicFlow的数据转成snaker的定义文件 + * @param {*} data(...processInfo,nodes,edges) + * @returns + */ +export const logicFlowJsonToSnakerXml = (data) => { + console.log("data") + console.log(data) + let xml = '' + // data的数据由流程定义文件信息+logicFlow数据构成 + // 先构建成流程对象 + const processObj = { + name: data.name, // 流程定义名称 + displayName: data.displayName, // 流程定义显示名称 + instanceUrl: data.instanceUrl, // 实例启动Url + expireTime: data.expireTime, // 期望完成时间 + instanceNoClass: data.instanceNoClass, // 实例编号生成类 + processType: data.processType + } + console.log("processObj") + console.log(processObj) + /** + * 获取开始节点 + * @returns + */ + const getStartNode = () => { + return data.nodes.find((node) => { + return node.type === 'snaker:start' + }) + } + /** + * 获取当前节点的所有下一个节点集合 + * @param {*} id 当前节点名称 + * @returns + */ + const getNextNodes = (id) => { + return data.edges.filter(edge => { + return edge.sourceNodeId === id + }).map(edge => { + return data.nodes.find((node) => { + return node.id === edge.targetNodeId + }) + }) + } + /** + * 获取节点所有输出边 + * @param {*} id + * @returns + */ + const getTransitions = (id) => { + return data.edges.filter((edge) => { + return edge.sourceNodeId === id + }).map(edge => { + return { + name: edge.id, + displayName: (edge.text instanceof String || edge.text === undefined) ? edge.text : edge.text.value, + to: edge.targetNodeId, // 目地节点id + expr: edge.properties.expr, // 表达式 + g: edge.pointsList.map(point => { // 转换点集合 + return point.x + ',' + point.y + }).join(';') + } + }) + } + /** + * 构建节点属性 + * @param {}} node + * @returns + */ + const buildNode = (node) => { + let field + if (node.properties.field && Object.keys(node.properties.field).length) { + field = { + name: 'ext', + displayName: '扩展属性', + attr: Object.keys(node.properties.field).map(key => { + return { + name: key, + value: node.properties.field[key] + } + }) + } + } + return { + name: node.id, + displayName: (node.text instanceof String || node.text === undefined) ? node.text : node.text.value, + layout: node.x + ',' + node.y + ',' + (node.properties.width ? node.properties.width : '120') + ',' + (node.properties.height ? node.properties.height : '80'), + ...node.properties, + transition: getTransitions(node.id), + field + } + } + /** + * 特殊字符转义 + * @param {*} text + * @returns + */ + const textEncode = (text) => { + text = text.replace(/&/g, '&') + .replace(/"/g, '"') + .replace(//g, '>') + return text + } + /** + * 递归构建节点属性 + * @param {} node + */ + const recursionBuildNode = (node) => { + const nodeName = node.type.replace('snaker:', '') + if (!processObj[nodeName + '_' + node.id]) { + processObj[nodeName + '_' + node.id] = buildNode(node) + const nextNodes = getNextNodes(node.id) + nextNodes.forEach(nextNode => { + recursionBuildNode(nextNode) + }) + } + } + const startNode = getStartNode() + if (!startNode) { + // 开始节点不存在,xml不合法 + return '' + } + recursionBuildNode(startNode) + xml = '\n' + xml += ' { + const value = processObj[key] + if (PROCESS_ATTR_KEYS.includes(key) && value) { + xml += ' ' + key + '=' + '"' + textEncode(value) + '"' + } + }) + xml += '>\n' + // 生成节点xml + Object.keys(processObj).forEach(key => { + const value = processObj[key] + const nodeName = key.split('_')[0] + if (NODE_NAMES.includes(nodeName)) { + xml += '\t<' + nodeName + // 构造属性 + Object.keys(value).forEach(nodeAttrKey => { + if (NODE_ATTR_KEYS.includes(nodeAttrKey) && value[nodeAttrKey]) { + xml += ' ' + nodeAttrKey + '=' + '"' + textEncode(value[nodeAttrKey]) + '"' + } + }) + xml += '>\n\t' + // 构建transition + if (value.transition) { + value.transition.forEach(tran => { + xml += '\t { + if (TRANSITION_ATTR_KEYS.includes(tranAttrKey) && tran[tranAttrKey]) { + xml += ' ' + tranAttrKey + '=' + '"' + textEncode(tran[tranAttrKey]) + '"' + } + }) + xml += '>' + xml += '\n' + }) + } + if (value.field && nodeName === 'task') { + xml += '\t\n' + value.field.attr.forEach(attrItem => { + xml += '\t\t\n' + }) + xml += '\t\n' + } + xml += '\t\n' + } + }) + xml += '' + return xml +} diff --git a/src/components/snakerFlow/snakerflow/transition/index.js b/src/components/snakerFlow/snakerflow/transition/index.js new file mode 100644 index 0000000..bbc1775 --- /dev/null +++ b/src/components/snakerFlow/snakerflow/transition/index.js @@ -0,0 +1,27 @@ +import { PolylineEdge, PolylineEdgeModel } from '@logicflow/core' + +class TransitionModel extends PolylineEdgeModel { + static extendKey = 'TransitionModel'; + getEdgeStyle () { + const style = super.getEdgeStyle() + if (this.properties.state === 'active') { + style.stroke = '#00ff00' + } else if (this.properties.state === 'history') { + style.stroke = '#ff0000' + } + return style + } +} + +class TransitionView extends PolylineEdge { + static extendKey = 'TransitionEdge'; +} + +const Transition = { + type: 'snaker:transition', + view: TransitionView, + model: TransitionModel +} + +export { TransitionView, TransitionModel } +export default Transition diff --git a/src/components/table/README.md b/src/components/table/README.md new file mode 100644 index 0000000..9525731 --- /dev/null +++ b/src/components/table/README.md @@ -0,0 +1,292 @@ +Table 重封装组件说明 +==== + + +封装说明 +---- + +> 基础的使用方式与 API 与 [官方版(Table)](https://vuecomponent.github.io/ant-design-vue/components/table-cn/) 本一致,在其基础上,封装了加载数据的方法。 +> +> 你无需在你是用表格的页面进行分页逻辑处理,仅需向 Table 组件传递绑定 `:data="Promise"` 对象即可 + + + +例子1 +---- +(基础使用) + +```vue + + + + + +``` + + + +例子2 +---- + +(简单的表格,最后一列是各种操作) + +```vue + + + +``` + + + +内置方法 +---- + +通过 `this.$refs.table` 调用 + +`this.$refs.table.refresh()` 刷新列表 (用户新增/修改数据后,重载列表数据) + +> 注意:要调用 `refresh()` 需要给表格组件设定 `ref` 值 + + + +注意事项 +---- + +> 你可能需要为了与后端提供的接口返回结果一致而去修改以下代码: +(需要注意的是,这里的修改是全局性的,意味着整个项目所有使用该 table 组件都需要遵守这个返回结果定义的字段。) + +修改 `@/components/table/index.js` 第 106 行起 + + + +```javascript +result.then(r => { + this.localPagination = Object.assign({}, this.localPagination, { + current: r.pageNo, // 返回结果中的当前分页数 + total: r.totalCount, // 返回结果中的总记录数 + showSizeChanger: this.showSizeChanger, + pageSize: (pagination && pagination.pageSize) || + this.localPagination.pageSize + }); + + !r.totalCount && ['auto', false].includes(this.showPagination) && (this.localPagination = false) + this.localDataSource = r.data; // 返回结果中的数组数据 + this.localLoading = false +}); +``` +返回 JSON 例子: +```json +{ + "message": "", + "result": { + "data": [{ + id: 1, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/WdGqmHpayyMjiEhcKoVE.png', + title: 'Alipay', + description: '那是一种内在的东西, 他们到达不了,也无法触及的', + status: 1, + updatedAt: '2018-07-26 00:00:00' + }, + { + id: 2, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/zOsKZmFRdUtvpqCImOVY.png', + title: 'Angular', + description: '希望是一个好东西,也许是最好的,好东西是不会消亡的', + status: 1, + updatedAt: '2018-07-26 00:00:00' + }, + { + id: 3, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/dURIMkkrRFpPgTuzkwnB.png', + title: 'Ant Design', + description: '城镇中有那么多的酒馆,她却偏偏走进了我的酒馆', + status: 1, + updatedAt: '2018-07-26 00:00:00' + }, + { + id: 4, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/sfjbOqnsXXJgNCjCzDBL.png', + title: 'Ant Design Pro', + description: '那时候我只会想自己想要什么,从不想自己拥有什么', + status: 1, + updatedAt: '2018-07-26 00:00:00' + }, + { + id: 5, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/siCrBXXhmvTQGWPNLBow.png', + title: 'Bootstrap', + description: '凛冬将至', + status: 1, + updatedAt: '2018-07-26 00:00:00' + }, + { + id: 6, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/ComBAopevLwENQdKWiIn.png', + title: 'Vue', + description: '生命就像一盒巧克力,结果往往出人意料', + status: 1, + updatedAt: '2018-07-26 00:00:00' + } + ], + "pageSize": 10, + "pageNo": 0, + "totalPage": 6, + "totalCount": 57 + }, + "status": 200, + "timestamp": 1534955098193 +} +``` + + + +更新时间 +---- + +该文档最后更新于: 2018-10-31 PM 08:15 \ No newline at end of file diff --git a/src/components/table/StandardTable.vue b/src/components/table/StandardTable.vue new file mode 100644 index 0000000..2f757ce --- /dev/null +++ b/src/components/table/StandardTable.vue @@ -0,0 +1,254 @@ + + + + + + diff --git a/src/components/table/index.js b/src/components/table/index.js new file mode 100644 index 0000000..52eb042 --- /dev/null +++ b/src/components/table/index.js @@ -0,0 +1,317 @@ +import T from "ant-design-vue/es/table/Table"; +import get from "lodash.get" +export default { + data() { + return { + needTotalList: [], + + selectedRows: [], + selectedRowKeys: [], + + localLoading: false, + localDataSource: [], + localPagination: Object.assign({}, T.props.pagination) + }; + }, + props: Object.assign({}, T.props, { + rowKey: { + type: [String, Function], + default: 'id' + }, + data: { + type: Function, + required: true + }, + pageNum: { + type: Number, + default: 1 + }, + pageSize: { + type: Number, + default: 10 + }, + showSizeChanger: { + type: Boolean, + default: true + }, + showAlertInfo: { + type: Boolean, + default: false + }, + showPagination: { + default: 'auto' + } + }), + watch: { + 'localPagination.current'(val) { + this.$router.push({ + name: this.$route.name, + params: Object.assign({}, this.$route.params, { + pageNo: val + }), + }); + }, + pageNum(val) { + Object.assign(this.localPagination, { + current: val + }); + }, + pageSize(val) { + console.log('pageSize:', val) + Object.assign(this.localPagination, { + pageSize: val + }); + }, + showSizeChanger(val) { + console.log('showSizeChanger', val) + Object.assign(this.localPagination, { + showSizeChanger: val + }); + } + }, + created() { + this.localPagination = ['auto', true].includes(this.showPagination) && Object.assign({}, this.localPagination, { + current: this.pageNum, + pageSize: this.pageSize, + showSizeChanger: this.showSizeChanger + }); + this.needTotalList = this.initTotalList(this.columns) + this.loadData(); + }, + methods: { + refresh() { + this.loadData(); + }, + // loadData(pagination, filters, sorter) { + + // this.localLoading = true + // let result = this.data( + // Object.assign({ + // pageNo: (pagination && pagination.current) || + // this.localPagination.current, + // pageSize: (pagination && pagination.pageSize) || + // this.localPagination.pageSize + // }, + // (sorter && sorter.field && { + // sortField: sorter.field + // }) || {}, + // (sorter && sorter.order && { + // sortOrder: sorter.order + // }) || {}, { + // ...filters + // } + // ) + // ); + + // if (result instanceof Promise) { + // result.then(r => { + // this.localPagination = Object.assign({}, this.localPagination, { + // current: r.pageNo, // 返回结果中的当前分页数 + // total: r.totalCount, // 返回结果中的总记录数 + // showSizeChanger: this.showSizeChanger, + // pageSize: (pagination && pagination.pageSize) || + // this.localPagination.pageSize + // }); + // //update--begin--autor:wangshuai-----date:20200724------for:判断showPagination是否为false------ + // (!this.showPagination || !r.totalCount && this.showPagination === 'auto') && (this.localPagination = false) + // //update--end--autor:wangshuai-----date:20200724------for:判断showPagination是否为false----- + // this.localDataSource = r.data; // 返回结果中的数组数据 + // this.localLoading = false + // }); + // } + // }, + loadData(pagination, filters, sorter) { + this.localLoading = true; + + // 提取分页信息 + const currentPage = (pagination && pagination.current) || this.localPagination.current; + const pageSize = (pagination && pagination.pageSize) || this.localPagination.pageSize; + + // 构建请求参数 + const params = { + pageNo: currentPage, + pageSize: pageSize, + ...filters + }; + + // 添加排序参数(如果有) + if (sorter && sorter.field) { + params.sortField = sorter.field; + } + if (sorter && sorter.order) { + params.sortOrder = sorter.order; + } + + // 获取数据 + const result = this.data(params); + + // 处理异步结果 + if (result instanceof Promise) { + result.then(response => { + // 更新分页信息 + this.localPagination = { + ...this.localPagination, + current: response.pageNo, + total: response.totalCount, + showSizeChanger: this.showSizeChanger, + pageSize: pageSize + }; + + // 处理分页显示逻辑 + if (!this.showPagination || (!response.totalCount && this.showPagination === 'auto')) { + this.localPagination = false; + } + + // 更新数据源和加载状态 + this.localDataSource = response.data; + this.localLoading = false; + }); + } + }, + initTotalList(columns) { + const totalList = [] + columns && columns instanceof Array && columns.forEach(column => { + if (column.needTotal) { + totalList.push({ ...column, + total: 0 + }) + } + }) + return totalList + }, + updateSelect(selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys + this.selectedRows = selectedRows + const list = this.needTotalList + this.needTotalList = list.map(item => { + return { + ...item, + total: selectedRows.reduce((sum, val) => { + const total = sum + get(val, item.dataIndex) + return isNaN(total) ? 0 : total + }, 0) + } + }) + // this.$emit('change', selectedRowKeys, selectedRows) + }, + updateEdit() { + this.selectedRows = [] + }, + onClearSelected() { + // 【TESTA-262】页面清空后还能才做所选行,增加 this.$emit('clearAll') + this.selectedRowKeys = [] + this.selectedRows = [] + this.updateSelect([], []) + this.$emit('clearAll') + }, + renderMsg(h) { + const _vm = this + const d = [] + // 构建 已选择 + d.push( + h('span', { + style: { + marginRight: '12px' + } + }, ['已选择 ', h('a', { + style: { + fontWeight: 600 + } + }, this.selectedRows.length)]) + ); + + // 构建 列统计 + this.needTotalList.map(item => { + d.push(h('span', { + style: { + marginRight: '12px' + } + }, + [ + `${ item.title }总计 `, + h('a', { + style: { + fontWeight: 600 + } + }, `${ !item.customRender ? item.total : item.customRender(item.total) }`) + ])) + }); + + // 构建 清空选择 + d.push(h('a', { + style: { + marginLeft: '24px' + }, + on: { + click: _vm.onClearSelected + } + }, '清空')) + + return d + }, + renderAlert(h) { + return h('span', { + slot: 'message' + }, this.renderMsg(h)) + }, + }, + + render(h) { + const _vm = this + + const props = {}, + localKeys = Object.keys(this.$data); + + Object.keys(T.props).forEach(k => { + const localKey = `local${k.substring(0,1).toUpperCase()}${k.substring(1)}`; + if (localKeys.includes(localKey)) { + return props[k] = _vm[localKey]; + } + return props[k] = _vm[k]; + }) + + + // 显示信息提示 + if (this.showAlertInfo) { + + props.rowSelection = { + selectedRowKeys: this.selectedRowKeys, + onChange: (selectedRowKeys, selectedRows) => { + _vm.updateSelect(selectedRowKeys, selectedRows) + _vm.$emit('onSelect', { selectedRowKeys: selectedRowKeys, selectedRows: selectedRows }) + } + }; + + return h('div', {}, [ + h("a-alert", { + style: { + marginBottom: '16px' + }, + props: { + type: 'info', + showIcon: true + } + }, [_vm.renderAlert(h)]), + h("a-table", { + tag: "component", + attrs: props, + on: { + change: _vm.loadData + }, + scopedSlots: this.$scopedSlots + }, this.$slots.default) + ]); + + } + + return h("a-table", { + tag: "component", + attrs: props, + on: { + change: _vm.loadData + }, + scopedSlots: this.$scopedSlots + }, this.$slots.default); + + } +}; \ No newline at end of file diff --git a/src/components/tools/Breadcrumb.vue b/src/components/tools/Breadcrumb.vue new file mode 100644 index 0000000..66e0381 --- /dev/null +++ b/src/components/tools/Breadcrumb.vue @@ -0,0 +1,45 @@ + + + + diff --git a/src/components/tools/DepartSelect.vue b/src/components/tools/DepartSelect.vue new file mode 100644 index 0000000..77a4658 --- /dev/null +++ b/src/components/tools/DepartSelect.vue @@ -0,0 +1,162 @@ + + + + \ No newline at end of file diff --git a/src/components/tools/DynamicNotice.vue b/src/components/tools/DynamicNotice.vue new file mode 100644 index 0000000..33f5c80 --- /dev/null +++ b/src/components/tools/DynamicNotice.vue @@ -0,0 +1,42 @@ + + \ No newline at end of file diff --git a/src/components/tools/FooterToolBar.vue b/src/components/tools/FooterToolBar.vue new file mode 100644 index 0000000..ed47129 --- /dev/null +++ b/src/components/tools/FooterToolBar.vue @@ -0,0 +1,32 @@ + + + + + \ No newline at end of file diff --git a/src/components/tools/HeadInfo.vue b/src/components/tools/HeadInfo.vue new file mode 100644 index 0000000..87079aa --- /dev/null +++ b/src/components/tools/HeadInfo.vue @@ -0,0 +1,69 @@ + + + + + \ No newline at end of file diff --git a/src/components/tools/HeaderNotice.vue b/src/components/tools/HeaderNotice.vue new file mode 100644 index 0000000..c178c76 --- /dev/null +++ b/src/components/tools/HeaderNotice.vue @@ -0,0 +1,337 @@ + + + + + + \ No newline at end of file diff --git a/src/components/tools/Logo.vue b/src/components/tools/Logo.vue new file mode 100644 index 0000000..c4f91a1 --- /dev/null +++ b/src/components/tools/Logo.vue @@ -0,0 +1,41 @@ + + + \ No newline at end of file diff --git a/src/components/tools/ShowAnnouncement.vue b/src/components/tools/ShowAnnouncement.vue new file mode 100644 index 0000000..363d219 --- /dev/null +++ b/src/components/tools/ShowAnnouncement.vue @@ -0,0 +1,143 @@ + + + + + + + diff --git a/src/components/tools/TwoStepCaptcha.vue b/src/components/tools/TwoStepCaptcha.vue new file mode 100644 index 0000000..454cc26 --- /dev/null +++ b/src/components/tools/TwoStepCaptcha.vue @@ -0,0 +1,84 @@ + + + + \ No newline at end of file diff --git a/src/components/tools/UserMenu.vue b/src/components/tools/UserMenu.vue new file mode 100644 index 0000000..e350ad6 --- /dev/null +++ b/src/components/tools/UserMenu.vue @@ -0,0 +1,140 @@ + + + + + + diff --git a/src/components/tools/UserPassword.vue b/src/components/tools/UserPassword.vue new file mode 100644 index 0000000..8a400e2 --- /dev/null +++ b/src/components/tools/UserPassword.vue @@ -0,0 +1,176 @@ + + + + + + diff --git a/src/components/tools/setting.js b/src/components/tools/setting.js new file mode 100644 index 0000000..f51027a --- /dev/null +++ b/src/components/tools/setting.js @@ -0,0 +1,91 @@ +import { message } from 'ant-design-vue/es' + +let lessNodesAppended; + +const colorList = [ + // { + // key: '薄暮', color: '#F5222D', + // }, + // { + // key: '火山', color: '#FA541C', + // }, + // { + // key: '日暮', color: '#FAAD14', + // }, + // { + // key: '明青', color: '#13C2C2', + // }, + // { + // key: '极光绿', color: '#52C41A', + // }, + // { + // key: '拂晓蓝(默认)', color: '#1890FF', + // }, + // { + // key: '极客蓝', color: '#2F54EB', + // }, + // { + // key: '酱紫', color: '#722ED1', + // }, +]; + +const updateTheme = (primaryColor) => { + // Don't compile less in production! + /* if (process.env.NODE_ENV === 'production') { + return; + } */ + // Determine if the component is remounted + if (!primaryColor) { + return + } + const hideMessage = message.loading('正在编译主题!', 0) + console.info(`正在编译主题!`) + function buildIt() { + // 正确的判定less是否已经加载less.modifyVars可用 + if (!window.less || !window.less.modifyVars) { + return + } + // less.modifyVars可用 + window.less + .modifyVars({ + '@primary-color': primaryColor, + }) + .then(() => { + hideMessage() + }) + .catch(() => { + message.error('Failed to update theme') + hideMessage() + }) + } + if (!lessNodesAppended) { + // insert less.js and color.less + const lessConfigNode = document.createElement('script') + const lessScriptNode = document.createElement('script') + lessConfigNode.innerHTML = ` + window.less = { + async: true, + env: 'production', + javascriptEnabled: true + }; + ` + lessScriptNode.src = 'https://gw.alipayobjects.com/os/lib/less.js/3.8.1/less.min.js' + lessScriptNode.async = true + lessScriptNode.onload = () => { + buildIt() + lessScriptNode.onload = null + } + document.body.appendChild(lessConfigNode) + document.body.appendChild(lessScriptNode) + lessNodesAppended = true + } else { + buildIt() + } +} + +const updateColorWeak = (colorWeak) => { + // document.body.className = colorWeak ? 'colorWeak' : ''; + colorWeak ? document.body.classList.add('colorWeak') : document.body.classList.remove('colorWeak') +} + +export { updateTheme, colorList, updateColorWeak } diff --git a/src/components/winlink/Biz/WPriceSelectTag.vue b/src/components/winlink/Biz/WPriceSelectTag.vue new file mode 100644 index 0000000..29d3421 --- /dev/null +++ b/src/components/winlink/Biz/WPriceSelectTag.vue @@ -0,0 +1,233 @@ + + + diff --git a/src/components/winlink/Biz/WTableSelectModal.vue b/src/components/winlink/Biz/WTableSelectModal.vue new file mode 100644 index 0000000..893f74c --- /dev/null +++ b/src/components/winlink/Biz/WTableSelectModal.vue @@ -0,0 +1,376 @@ + + + diff --git a/src/components/winlink/Biz/WTableSelectShowNameTag.vue b/src/components/winlink/Biz/WTableSelectShowNameTag.vue new file mode 100644 index 0000000..1e7a220 --- /dev/null +++ b/src/components/winlink/Biz/WTableSelectShowNameTag.vue @@ -0,0 +1,360 @@ + + + diff --git a/src/components/winlink/Biz/WTableSelectTag.vue b/src/components/winlink/Biz/WTableSelectTag.vue new file mode 100644 index 0000000..65e0ee1 --- /dev/null +++ b/src/components/winlink/Biz/WTableSelectTag.vue @@ -0,0 +1,344 @@ + + + diff --git a/src/components/winlink/Container/WDevFitContainer.vue b/src/components/winlink/Container/WDevFitContainer.vue new file mode 100644 index 0000000..82876c6 --- /dev/null +++ b/src/components/winlink/Container/WDevFitContainer.vue @@ -0,0 +1,64 @@ + + + diff --git a/src/components/winlink/Container/WFitContainer.vue b/src/components/winlink/Container/WFitContainer.vue new file mode 100644 index 0000000..46b2b7e --- /dev/null +++ b/src/components/winlink/Container/WFitContainer.vue @@ -0,0 +1,81 @@ + + + diff --git a/src/components/winlink/Container/WTableFitContainer.vue b/src/components/winlink/Container/WTableFitContainer.vue new file mode 100644 index 0000000..030c4ce --- /dev/null +++ b/src/components/winlink/Container/WTableFitContainer.vue @@ -0,0 +1,212 @@ + + + + diff --git a/src/components/winlink/Container/WTabs.vue b/src/components/winlink/Container/WTabs.vue new file mode 100644 index 0000000..e7d114e --- /dev/null +++ b/src/components/winlink/Container/WTabs.vue @@ -0,0 +1,11 @@ + + diff --git a/src/components/winlink/SingleItemTracking.vue b/src/components/winlink/SingleItemTracking.vue new file mode 100644 index 0000000..0613c2f --- /dev/null +++ b/src/components/winlink/SingleItemTracking.vue @@ -0,0 +1,794 @@ + + + diff --git a/src/components/winlink/Table/WEdittableCell.vue b/src/components/winlink/Table/WEdittableCell.vue new file mode 100644 index 0000000..f97ef87 --- /dev/null +++ b/src/components/winlink/Table/WEdittableCell.vue @@ -0,0 +1,88 @@ + + + diff --git a/src/components/winlink/Table/WEdittableNumberCell.vue b/src/components/winlink/Table/WEdittableNumberCell.vue new file mode 100644 index 0000000..a73348b --- /dev/null +++ b/src/components/winlink/Table/WEdittableNumberCell.vue @@ -0,0 +1,88 @@ + + + diff --git a/src/components/winlink/Table/WLtable.vue b/src/components/winlink/Table/WLtable.vue new file mode 100644 index 0000000..deb08eb --- /dev/null +++ b/src/components/winlink/Table/WLtable.vue @@ -0,0 +1,18 @@ +render () { + const on = { + ...this.$listeners + } + const props = { ...this.$attrs, ...this.$props, ...{ dataSource: this.body, columns: this.header }} + const table = ( + + + ) + return ( +
+ { table } +
+ ) + }, +methods: () { + +} \ No newline at end of file diff --git a/src/components/winlink/Table/WTable.vue b/src/components/winlink/Table/WTable.vue new file mode 100644 index 0000000..4df961b --- /dev/null +++ b/src/components/winlink/Table/WTable.vue @@ -0,0 +1,188 @@ + + + diff --git a/src/components/winlink/Table/WTableColumnsWin.vue b/src/components/winlink/Table/WTableColumnsWin.vue new file mode 100644 index 0000000..57eda33 --- /dev/null +++ b/src/components/winlink/Table/WTableColumnsWin.vue @@ -0,0 +1,175 @@ + + + + + diff --git a/src/components/winlink/WAntTable.vue b/src/components/winlink/WAntTable.vue new file mode 100644 index 0000000..f43e23e --- /dev/null +++ b/src/components/winlink/WAntTable.vue @@ -0,0 +1,6 @@ + diff --git a/src/components/winlink/WAutoComplete.vue b/src/components/winlink/WAutoComplete.vue new file mode 100644 index 0000000..daa2525 --- /dev/null +++ b/src/components/winlink/WAutoComplete.vue @@ -0,0 +1,297 @@ + + + + + + diff --git a/src/components/winlink/WAutoCompleteOptions.vue b/src/components/winlink/WAutoCompleteOptions.vue new file mode 100644 index 0000000..d3580e1 --- /dev/null +++ b/src/components/winlink/WAutoCompleteOptions.vue @@ -0,0 +1,282 @@ + + + + + diff --git a/src/components/winlink/WBtnCheckBox.vue b/src/components/winlink/WBtnCheckBox.vue new file mode 100644 index 0000000..6cd2b98 --- /dev/null +++ b/src/components/winlink/WBtnCheckBox.vue @@ -0,0 +1,133 @@ + + + + diff --git a/src/components/winlink/WComboBox.vue b/src/components/winlink/WComboBox.vue new file mode 100644 index 0000000..f94133f --- /dev/null +++ b/src/components/winlink/WComboBox.vue @@ -0,0 +1,260 @@ + + + + + diff --git a/src/components/winlink/WCusComboBox.vue b/src/components/winlink/WCusComboBox.vue new file mode 100644 index 0000000..4a74d0b --- /dev/null +++ b/src/components/winlink/WCusComboBox.vue @@ -0,0 +1,250 @@ + + + + + diff --git a/src/components/winlink/WDialog.vue b/src/components/winlink/WDialog.vue new file mode 100644 index 0000000..abbde09 --- /dev/null +++ b/src/components/winlink/WDialog.vue @@ -0,0 +1,164 @@ + + + + \ No newline at end of file diff --git a/src/components/winlink/WDictComboBox.vue b/src/components/winlink/WDictComboBox.vue new file mode 100644 index 0000000..f0f055f --- /dev/null +++ b/src/components/winlink/WDictComboBox.vue @@ -0,0 +1,165 @@ + + + + diff --git a/src/components/winlink/WExportButton.vue b/src/components/winlink/WExportButton.vue new file mode 100644 index 0000000..1450b36 --- /dev/null +++ b/src/components/winlink/WExportButton.vue @@ -0,0 +1,156 @@ + + + + + diff --git a/src/components/winlink/WExtendsForm.js b/src/components/winlink/WExtendsForm.js new file mode 100644 index 0000000..d23ec1c --- /dev/null +++ b/src/components/winlink/WExtendsForm.js @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/components/winlink/WInputUploadFile.vue b/src/components/winlink/WInputUploadFile.vue new file mode 100644 index 0000000..ad9786a --- /dev/null +++ b/src/components/winlink/WInputUploadFile.vue @@ -0,0 +1,427 @@ + + + + diff --git a/src/components/winlink/WLabelTip.vue b/src/components/winlink/WLabelTip.vue new file mode 100644 index 0000000..cf86648 --- /dev/null +++ b/src/components/winlink/WLabelTip.vue @@ -0,0 +1,38 @@ + + + diff --git a/src/components/winlink/WPdfPreview.vue b/src/components/winlink/WPdfPreview.vue new file mode 100644 index 0000000..93328fb --- /dev/null +++ b/src/components/winlink/WPdfPreview.vue @@ -0,0 +1,71 @@ + + + + diff --git a/src/components/winlink/WRadioTag.vue b/src/components/winlink/WRadioTag.vue new file mode 100644 index 0000000..89c6a9e --- /dev/null +++ b/src/components/winlink/WRadioTag.vue @@ -0,0 +1,105 @@ + + + + \ No newline at end of file diff --git a/src/components/winlink/WSearchSelectTag.vue b/src/components/winlink/WSearchSelectTag.vue new file mode 100644 index 0000000..2c726a8 --- /dev/null +++ b/src/components/winlink/WSearchSelectTag.vue @@ -0,0 +1,284 @@ + + + + + diff --git a/src/components/winlink/WShowAttachment.vue b/src/components/winlink/WShowAttachment.vue new file mode 100644 index 0000000..2980170 --- /dev/null +++ b/src/components/winlink/WShowAttachment.vue @@ -0,0 +1,84 @@ + + + diff --git a/src/components/winlink/WUpload.vue b/src/components/winlink/WUpload.vue new file mode 100644 index 0000000..3ba859f --- /dev/null +++ b/src/components/winlink/WUpload.vue @@ -0,0 +1,160 @@ + + + + diff --git a/src/components/winlink/index.js b/src/components/winlink/index.js new file mode 100644 index 0000000..231f7b9 --- /dev/null +++ b/src/components/winlink/index.js @@ -0,0 +1,53 @@ +import WDialog from './WDialog' +import WLabelTip from './WLabelTip' +import WUpload from './WUpload' +import WBtnCheckBox from './WBtnCheckBox' +import WShowAttachment from './WShowAttachment' +import WSearchSelectTag from './WSearchSelectTag' +import WComboBox from './WComboBox' +import WDictComboBox from './WDictComboBox' +import WAutoComplete from './WAutoComplete' +import WExportButton from './WExportButton' +import WPriceSelectTag from './Biz/WPriceSelectTag' +import WEdittableCell from './Table/WEdittableCell' +import WEdittableNumberCell from './Table/WEdittableNumberCell' +import WFitContainer from './Container/WFitContainer' +import WTableFitContainer from './Container/WTableFitContainer' +import WDevFitContainer from './Container/WDevFitContainer' +import WTableSelectTag from './Biz/WTableSelectTag' +import WTableSelectShowNameTag from './Biz/WTableSelectShowNameTag' +import WPdfPreview from './WPdfPreview' +import SingleItemTracking from './SingleItemTracking' +import WAntTable from './WAntTable' +import WTableColumnsWin from './Table/WTableColumnsWin' +import WAutoCompleteOptions from './WAutoCompleteOptions' +import WInputUploadFile from './WInputUploadFile' + +export default { + install(Vue) { + Vue.component(WDialog.name, WDialog) + Vue.component(WLabelTip.name, WLabelTip) + Vue.component(WUpload.name, WUpload) + Vue.component(WShowAttachment.name, WShowAttachment) + Vue.component(WBtnCheckBox.name, WBtnCheckBox) + Vue.component(WSearchSelectTag.name, WSearchSelectTag) + Vue.component(WComboBox.name, WComboBox) + Vue.component(WDictComboBox.name, WDictComboBox) + Vue.component(WAutoComplete.name, WAutoComplete) + Vue.component(WExportButton.name, WExportButton) + Vue.component(WPriceSelectTag.name, WPriceSelectTag) + Vue.component(WEdittableCell.name, WEdittableCell) + Vue.component(WEdittableNumberCell.name, WEdittableNumberCell) + Vue.component(WFitContainer.name, WFitContainer) + Vue.component(WDevFitContainer.name, WDevFitContainer) + Vue.component(WTableFitContainer.name, WTableFitContainer) + Vue.component(WTableSelectShowNameTag.name, WTableSelectShowNameTag) + Vue.component(WTableSelectTag.name, WTableSelectTag) + Vue.component(WPdfPreview.name, WPdfPreview) + Vue.component(SingleItemTracking.name, SingleItemTracking) + Vue.component(WAntTable.name, WAntTable) + Vue.component(WTableColumnsWin.name,WTableColumnsWin) + Vue.component(WAutoCompleteOptions.name,WAutoCompleteOptions) + Vue.component(WInputUploadFile.name,WInputUploadFile) + }, +} \ No newline at end of file diff --git a/src/components/winmdlink/WAlert.vue b/src/components/winmdlink/WAlert.vue new file mode 100644 index 0000000..b421ebf --- /dev/null +++ b/src/components/winmdlink/WAlert.vue @@ -0,0 +1,24 @@ + + + \ No newline at end of file diff --git a/src/components/winmdlink/WButton.vue b/src/components/winmdlink/WButton.vue new file mode 100644 index 0000000..73db343 --- /dev/null +++ b/src/components/winmdlink/WButton.vue @@ -0,0 +1,33 @@ + + + \ No newline at end of file diff --git a/src/components/winmdlink/WCard.vue b/src/components/winmdlink/WCard.vue new file mode 100644 index 0000000..f35503d --- /dev/null +++ b/src/components/winmdlink/WCard.vue @@ -0,0 +1,49 @@ + + + + + \ No newline at end of file diff --git a/src/components/winmdlink/WCheckbox.vue b/src/components/winmdlink/WCheckbox.vue new file mode 100644 index 0000000..b9e4feb --- /dev/null +++ b/src/components/winmdlink/WCheckbox.vue @@ -0,0 +1,24 @@ + + + \ No newline at end of file diff --git a/src/components/winmdlink/WCheckboxGroup.vue b/src/components/winmdlink/WCheckboxGroup.vue new file mode 100644 index 0000000..af3323d --- /dev/null +++ b/src/components/winmdlink/WCheckboxGroup.vue @@ -0,0 +1,24 @@ + + + \ No newline at end of file diff --git a/src/components/winmdlink/WCol.vue b/src/components/winmdlink/WCol.vue new file mode 100644 index 0000000..3d1e735 --- /dev/null +++ b/src/components/winmdlink/WCol.vue @@ -0,0 +1,24 @@ + + + \ No newline at end of file diff --git a/src/components/winmdlink/WDate.vue b/src/components/winmdlink/WDate.vue new file mode 100644 index 0000000..76f4c87 --- /dev/null +++ b/src/components/winmdlink/WDate.vue @@ -0,0 +1,100 @@ + + + + + diff --git a/src/components/winmdlink/WDivider.vue b/src/components/winmdlink/WDivider.vue new file mode 100644 index 0000000..fe75049 --- /dev/null +++ b/src/components/winmdlink/WDivider.vue @@ -0,0 +1,27 @@ + + + \ No newline at end of file diff --git a/src/components/winmdlink/WDropdown.vue b/src/components/winmdlink/WDropdown.vue new file mode 100644 index 0000000..5537a01 --- /dev/null +++ b/src/components/winmdlink/WDropdown.vue @@ -0,0 +1,50 @@ + + + \ No newline at end of file diff --git a/src/components/winmdlink/WDropdownItem.vue b/src/components/winmdlink/WDropdownItem.vue new file mode 100644 index 0000000..4de4721 --- /dev/null +++ b/src/components/winmdlink/WDropdownItem.vue @@ -0,0 +1,20 @@ + + + \ No newline at end of file diff --git a/src/components/winmdlink/WDropdownMenu.vue b/src/components/winmdlink/WDropdownMenu.vue new file mode 100644 index 0000000..489fefd --- /dev/null +++ b/src/components/winmdlink/WDropdownMenu.vue @@ -0,0 +1,20 @@ + + + \ No newline at end of file diff --git a/src/components/winmdlink/WForm.vue b/src/components/winmdlink/WForm.vue new file mode 100644 index 0000000..eca9ce4 --- /dev/null +++ b/src/components/winmdlink/WForm.vue @@ -0,0 +1,52 @@ + + + \ No newline at end of file diff --git a/src/components/winmdlink/WFormItem.vue b/src/components/winmdlink/WFormItem.vue new file mode 100644 index 0000000..ce19969 --- /dev/null +++ b/src/components/winmdlink/WFormItem.vue @@ -0,0 +1,27 @@ + + + diff --git a/src/components/winmdlink/WIcon.vue b/src/components/winmdlink/WIcon.vue new file mode 100644 index 0000000..3ec0a6a --- /dev/null +++ b/src/components/winmdlink/WIcon.vue @@ -0,0 +1,24 @@ + + + \ No newline at end of file diff --git a/src/components/winmdlink/WInput.vue b/src/components/winmdlink/WInput.vue new file mode 100644 index 0000000..a18d403 --- /dev/null +++ b/src/components/winmdlink/WInput.vue @@ -0,0 +1,29 @@ + + + + diff --git a/src/components/winmdlink/WInputNumber.vue b/src/components/winmdlink/WInputNumber.vue new file mode 100644 index 0000000..58ca5cd --- /dev/null +++ b/src/components/winmdlink/WInputNumber.vue @@ -0,0 +1,24 @@ + + + \ No newline at end of file diff --git a/src/components/winmdlink/WOption.vue b/src/components/winmdlink/WOption.vue new file mode 100644 index 0000000..f751f0c --- /dev/null +++ b/src/components/winmdlink/WOption.vue @@ -0,0 +1,24 @@ + + + \ No newline at end of file diff --git a/src/components/winmdlink/WOptionGroup.vue b/src/components/winmdlink/WOptionGroup.vue new file mode 100644 index 0000000..4abf016 --- /dev/null +++ b/src/components/winmdlink/WOptionGroup.vue @@ -0,0 +1,24 @@ + + + \ No newline at end of file diff --git a/src/components/winmdlink/WPopconfirm.vue b/src/components/winmdlink/WPopconfirm.vue new file mode 100644 index 0000000..ab90118 --- /dev/null +++ b/src/components/winmdlink/WPopconfirm.vue @@ -0,0 +1,24 @@ + + + \ No newline at end of file diff --git a/src/components/winmdlink/WRadio.vue b/src/components/winmdlink/WRadio.vue new file mode 100644 index 0000000..14041d3 --- /dev/null +++ b/src/components/winmdlink/WRadio.vue @@ -0,0 +1,24 @@ + + + \ No newline at end of file diff --git a/src/components/winmdlink/WRow.vue b/src/components/winmdlink/WRow.vue new file mode 100644 index 0000000..a659e05 --- /dev/null +++ b/src/components/winmdlink/WRow.vue @@ -0,0 +1,24 @@ + + + \ No newline at end of file diff --git a/src/components/winmdlink/WSelect.vue b/src/components/winmdlink/WSelect.vue new file mode 100644 index 0000000..94dd2fb --- /dev/null +++ b/src/components/winmdlink/WSelect.vue @@ -0,0 +1,24 @@ + + + \ No newline at end of file diff --git a/src/components/winmdlink/WSwitch.vue b/src/components/winmdlink/WSwitch.vue new file mode 100644 index 0000000..5130df9 --- /dev/null +++ b/src/components/winmdlink/WSwitch.vue @@ -0,0 +1,24 @@ + + + \ No newline at end of file diff --git a/src/components/winmdlink/WTabPane.vue b/src/components/winmdlink/WTabPane.vue new file mode 100644 index 0000000..00a6767 --- /dev/null +++ b/src/components/winmdlink/WTabPane.vue @@ -0,0 +1,87 @@ + + + + \ No newline at end of file diff --git a/src/components/winmdlink/WTabs.vue b/src/components/winmdlink/WTabs.vue new file mode 100644 index 0000000..be5d1cd --- /dev/null +++ b/src/components/winmdlink/WTabs.vue @@ -0,0 +1,93 @@ + + + + + + + diff --git a/src/components/winmdlink/WTag.vue b/src/components/winmdlink/WTag.vue new file mode 100644 index 0000000..ff7c67c --- /dev/null +++ b/src/components/winmdlink/WTag.vue @@ -0,0 +1,24 @@ + + + \ No newline at end of file diff --git a/src/components/winmdlink/WTooltip.vue b/src/components/winmdlink/WTooltip.vue new file mode 100644 index 0000000..27b274e --- /dev/null +++ b/src/components/winmdlink/WTooltip.vue @@ -0,0 +1,24 @@ + + + \ No newline at end of file diff --git a/src/components/winmdlink/index.js b/src/components/winmdlink/index.js new file mode 100644 index 0000000..ace4dee --- /dev/null +++ b/src/components/winmdlink/index.js @@ -0,0 +1,53 @@ +import WButton from './WButton' +import WCard from './WCard' +import WRow from './WRow' +import WCol from './WCol' +import WDropdown from './WDropdown' +import WDropdownItem from './WDropdownItem' +import WDropdownMenu from './WDropdownMenu' +import WInput from './WInput' +import WForm from './WForm' +import WFormItem from './WFormItem' +import WAlert from './WAlert' +import WDivider from './WDivider' +import WPopconfirm from './WPopconfirm' +import WTooltip from './WTooltip' +import WSwitch from './WSwitch' +import WRadio from './WRadio' +import WDate from './WDate' +import WCheckbox from './WCheckbox' +import WInputNumber from './WInputNumber' +import WIcon from './WIcon' +import WTabs from './WTabs' +import WTabPane from './WTabPane' +import WTag from './WTag' +import wDrawer from './wDrawer' + +export default { + install(Vue) { + Vue.component(WButton.name, WButton) + Vue.component(WCard.name, WCard) + Vue.component(WRow.name, WRow) + Vue.component(WCol.name, WCol) + Vue.component(WDropdown.name, WDropdown) + Vue.component(WDropdownItem.name, WDropdownItem) + Vue.component(WDropdownMenu.name, WDropdownMenu) + Vue.component(WInput.name, WInput) + Vue.component(WForm.name, WForm) + Vue.component(WFormItem.name, WFormItem) + Vue.component(WAlert.name, WAlert) + Vue.component(WDivider.name, WDivider) + Vue.component(WPopconfirm.name, WPopconfirm) + Vue.component(WTooltip.name, WTooltip) + Vue.component(WSwitch.name, WSwitch) + Vue.component(WRadio.name, WRadio) + Vue.component(WDate.name, WDate) + Vue.component(WCheckbox.name, WCheckbox) + Vue.component(WInputNumber.name, WInputNumber) + Vue.component(WIcon.name, WIcon) + Vue.component(WTabs.name, WTabs) + Vue.component(WTabPane.name, WTabPane) + Vue.component(WTag.name, WTag) + Vue.component(wDrawer.name, wDrawer) + }, +} diff --git a/src/components/winmdlink/wDrawer.vue b/src/components/winmdlink/wDrawer.vue new file mode 100644 index 0000000..c915026 --- /dev/null +++ b/src/components/winmdlink/wDrawer.vue @@ -0,0 +1,24 @@ + + + \ No newline at end of file diff --git a/src/config/index.js b/src/config/index.js new file mode 100644 index 0000000..6601609 --- /dev/null +++ b/src/config/index.js @@ -0,0 +1,10 @@ +/** init domain config */ +import Vue from 'vue' +//设置全局API_BASE_URL +Vue.prototype.API_BASE_URL = process.env.VUE_APP_API_BASE_URL +window._CONFIG['domianURL'] = Vue.prototype.API_BASE_URL +//单点登录地址 +window._CONFIG['casPrefixUrl'] = process.env.VUE_APP_CAS_BASE_URL +window._CONFIG['onlinePreviewDomainURL'] = process.env.VUE_APP_ONLINE_BASE_URL +window._CONFIG['staticDomainURL'] = Vue.prototype.API_BASE_URL + '/sys/common/static' +window._CONFIG['pdfDomainURL'] = Vue.prototype.API_BASE_URL+ '/sys/common/pdf/pdfPreviewIframe' \ No newline at end of file diff --git a/src/config/router.config.js b/src/config/router.config.js new file mode 100644 index 0000000..39085cb --- /dev/null +++ b/src/config/router.config.js @@ -0,0 +1,882 @@ +import { UserLayout, TabLayout, RouteView, BlankLayout } from '@/components/layouts' +import onlineCommons from '@jeecg/antd-online-mini' + +const LayoutPage = window.__MICRO_APP_BASE_ROUTE__ ? BlankLayout : TabLayout +const prefix = window.__MICRO_APP_BASE_ROUTE__ || process.env.BASE_URL + +/** + * 走菜单,走权限控制 + * @type {[null,null]} + */ +export const asyncRouterMap = [ + { + path: `${prefix}/`, + name: 'dashboard', + component: LayoutPage, + meta: { title: '首页', permission: 439, icon: 'home' }, + redirect: '/iems-winlink/dashboard/analysis', + children: [ + { + name: 'dashboard-analysis', + path: '/iems-winlink/dashboard/analysis', + component: () => import('@/views/dashboard/Analysis.vue'), + meta: { title: '首页' }, + }, + ], + }, + { + name: 'online', + component: LayoutPage, + path: `${prefix}/online`, + redirect: '/NewPermissionList', + meta: { title: '在线开发', permission: 437, icon: 'cloud' }, + children: [ + { + name: 'NewPermissionList', + path: 'NewPermissionLists', + component: () => import('@/views/system/NewPermissionList.vue'), + meta: { title: '菜单配置管理', permission: 438 }, + }, + { + name: 'tableconfig', + path: 'tableconfig', + component: () => import('@/views/generate/tableconfig/index.vue'), + meta: { title: '自定义表单开发', permission: 438 }, + }, + { + name: 'OnlCgreportHeadList', + path: 'OnlCgreportHeadList', + component: onlineCommons.OnlCgreportHeadList, + meta: { title: 'Online报表配置', permission: 438 }, + }, + { + name: 'SysFillRuleList', + path: 'SysFillRuleList', + component: () => import('@/views/system/SysFillRuleList'), + meta: { title: '系统编码规则', permission: 438 }, + }, + { + name: 'CommonInterfaceList', + path: 'CommonInterfaceList', + component: () => import('@/views/sysConfig/common/interface/CommonInterfaceList'), + meta: { title: '发布公共接口', permission: 438 }, + }, + { + name: 'OnlCgformHeadList', + path: 'OnlCgformHeadList', + component: onlineCommons.OnlCgformHeadList, + meta: { title: 'Online表单开发', permission: 438 }, + }, + { + name: 'SysCheckRuleList', + path: 'SysCheckRuleList', + component: () => import('@/views/system/SysCheckRuleList'), + meta: { title: '系统校验规则', permission: 438 }, + }, + { + name: 'OnlCgformErpList', + path: 'OnlCgformErpList', + component: onlineCommons.OnlCgformErpList, + meta: { title: 'AUTO在线表单ERP', permission: 438 }, + }, + { + name: 'OnlCgformCopyList', + path: 'OnlCgformCopyList', + component: onlineCommons.OnlCgformCopyList, + meta: { title: 'AUTO复制表单', permission: 438 }, + }, + { + name: 'SysDataSourceList', + path: 'SysDataSourceList', + component: () => import('@/views/system/SysDataSourceList'), + meta: { title: '多数据源管理', permission: 438 }, + }, + { + name: 'OnlCgformTabList', + path: 'OnlCgformTabList', + component: onlineCommons.OnlCgformTabList, + meta: { title: 'AUTO在线表单TAB', permission: 438 }, + }, + { + name: 'OnlineDynamicForm', + path: 'OnlineDynamicForm', + component: onlineCommons.OnlineDynamicForm, + meta: { title: 'AUTO动态表单', permission: 438 }, + }, + { + name: 'OnlCgformAutoList', + path: 'OnlCgformAutoList', + component: onlineCommons.OnlCgformAutoList, + meta: { title: 'AUTO在线表单', permission: 438 }, + }, + { + name: 'OnlCgreportAutoList', + path: 'OnlCgreportAutoList', + component: onlineCommons.OnlCgreportAutoList, + meta: { title: 'AUTO在线报表', permission: 438 }, + }, + { + name: 'OnlCgformTreeList', + path: 'OnlCgformTreeList', + component: onlineCommons.OnlCgformTreeList, + meta: { title: 'AUTO树表单列表', permission: 438 }, + }, + { + name: 'OnlCgformInnerTableList', + path: 'OnlCgformInnerTableList', + component: onlineCommons.OnlCgformInnerTableList, + meta: { title: 'AUTO在线内嵌子表', permission: 438 }, + }, + ], + }, + { + name: 'excel', + component: LayoutPage, + path: `${prefix}/excel`, + redirect: '/ExcelCompModelList', + meta: { title: '数据管理', permission: 437, icon: 'ant-design' }, + children: [ + { + name: 'ExcelCompModelList', + path: 'ExcelCompModelList', + component: () => import('@/views/excel/ExcelCompModelList'), + meta: { title: '导入模板', permission: 438 }, + }, + { + name: 'ExcelImportTaskList', + path: 'ExcelImportTaskList', + component: () => import('@/views/excel/ExcelImportTaskList'), + meta: { title: '导入队列', permission: 438 }, + }, + + { + name: 'ExcelExportTaskList', + path: 'ExcelExportTaskList', + component: () => import('@/views/excel/ExcelExportTaskList'), + meta: { title: '导出队列', permission: 438 }, + }, + ], + }, + { + name: 'isystem', + component: LayoutPage, + path: `${prefix}/isystem`, + redirect: 'UserList', + meta: { title: '系统管理', permission: 437, icon: 'setting' }, + children: [ + { + name: 'UserList', + path: 'UserList', + component: () => import('@/views/system/UserList'), + meta: { title: '用户管理', permission: 438 }, + }, + { + name: 'RoleUserList', + path: 'RoleUserList', + component: () => import('@/views/system/RoleUserList'), + meta: { title: '角色管理', permission: 438 }, + }, + + { + name: 'DictList', + path: 'DictList', + component: () => import('@/views/system/DictList'), + meta: { title: '数据字典', permission: 438 }, + }, + { + name: 'SysAnnouncementList', + path: 'SysAnnouncementList', + component: () => import('@/views/system/SysAnnouncementList'), + meta: { title: '系统通告', permission: 438 }, + }, + + { + name: 'TenantList', + path: 'TenantList', + component: () => import('@/views/system/TenantList'), + meta: { title: '企业管理', permission: 438 }, + }, + { + name: 'CompanyConfigList', + path: 'CompanyConfigList', + component: () => import('@/views/system/CompanyConfigList'), + meta: { title: '系统配置', permission: 438 }, + }, + { + name: 'SysApiPermsList', + path: 'SysApiPermsList', + component: () => import('@/views/system/SysApiPermsList'), + meta: { title: '访问权限', permission: 438 }, + }, + { + name: 'BaseAlertList', + path: 'BaseAlertList', + component: () => import('@/views/sysbasedata/BaseAlert/BaseAlertList'), + meta: { title: '预警设置', permission: 438 }, + }, + { + name: 'CodeRuleList', + path: 'CodeRuleList', + component: () => import('@/views/system/CodeRuleList'), + meta: { title: '编码设置', permission: 438 }, + }, + ], + }, + { + name: 'sysbasedata', + component: LayoutPage, + path: `${prefix}/sysbasedata`, + redirect: 'BaseCompanyInfoList', + meta: { title: '基础数据', permission: 437, icon: 'database' }, + children: [ + { + name: 'BaseCompanyInfoList', + path: 'BaseCompanyInfoList', + component: () => import('@/views/sysbasedata/BaseCompanyInfo/BaseCompanyInfoList'), + meta: { title: '企业资料维护', permission: 438 }, + }, + { + name: 'customsParameter', + path: 'customsParameter', + component: () => import('@/views/sysbasedata/custombasedata/customsParameter'), + meta: { title: '海关参数库', permission: 438 }, + }, + + { + name: 'EnterpriseConfigList', + path: 'EnterpriseConfigList', + component: () => import('@/views/sysbasedata/EnterpriseConfig/EnterpriseConfigList'), + meta: { title: '企业参数库', permission: 438 }, + }, + + { + name: 'BaseBdLimitCountryList', + path: 'BaseBdLimitCountryList', + component: () => import('@/views/sysbasedata/BaseBdLimitCountry/BaseBdLimitCountryList'), + meta: { title: '禁运和限制国家', permission: 438 }, + }, + + { + name: 'BaseBdAlertConfigList', + path: 'BaseBdAlertConfigList', + component: () => import('@/views/sysbasedata/BdAlertConfig/BaseBdAlertConfigList'), + meta: { title: '报关预警设置', permission: 438 }, + }, + + { + name: 'BaseBdEportCardList', + path: 'BaseBdEportCardList', + component: () => import('@/views/sysbasedata/eportcard/BaseBdEportCardList'), + meta: { title: '电子口岸卡管理', permission: 438 }, + }, + { + name: 'BaseExgVersionList', + path: 'BaseExgVersionList', + component: () => import('@/views/sysbasedata/exgVersion/BaseExgVersionList'), + meta: { title: '单耗版本号设定', permission: 438 }, + }, + ], + }, + { + name: 'GovPoliocy', + component: LayoutPage, + meta: { title: '政策管理', permission: 437, icon: 'setting' }, + path: `${prefix}/BaseBdGovPolicyList`, + children: [ + { + name: 'BaseBdGovPolicyList', + path: 'BaseBdGovPolicyList', + component: () => import('@/views/policy/BaseBdGovPolicyList'), + meta: { title: '法律法规', permission: 438 }, + }, + { + name: 'BaseBdGovManagementProcessList', + path: 'BaseBdGovManagementProcessList', + component: () => import('@/views/policy/BaseBdGovManagementProcessList'), + meta: { title: '管理流程', permission: 438 }, + }, + ], + }, + { + name: 'partner', + component: LayoutPage, + path: `${prefix}/partner`, + meta: { title: '商业伙伴', permission: 437, icon: 'team' }, + redirect: '/PartnerInfosList', + children: [ + { + name: 'PartnerInfosList', + path: 'PartnerInfosList', + component: () => import('@/views/partner/partnerInfo/PartnerInfosList'), + meta: { title: '综合信息', permission: 438 }, + }, + { + name: 'PartnerLiaisonList', + path: 'PartnerLiaisonList', + component: () => import('@/views/partner/PartnerLiaison/PartnerLiaisonList'), + meta: { title: '联系人信息', permission: 438 }, + }, + ], + }, + { + name: 'cert', + component: LayoutPage, + path: `${prefix}/cert`, + meta: { title: '证书管理', permission: 437, icon: 'team' }, + redirect: '/MergerCiqConfigList', + children: [ + { + name: 'MergerCiqConfigList', + path: 'MergerCiqConfigList', + component: () => import('@/views/merger/mergerconfig/MergerCiqConfigList'), + meta: { title: 'CIQ编码配置', permission: 438 }, + }, + { + name: 'LegalCheckInformationList', + path: 'LegalCheckInformationList', + component: () => import('@/views/cert/LegalCheckInformationList'), + meta: { title: '法检信息配置', permission: 438 }, + }, + { + name: 'CertTypeList', + path: 'CertTypeList', + component: () => import('@/views/cert/CertTypeList'), + meta: { title: '涉证类型配置', permission: 438 }, + }, + { + name: 'CertDataHeadList', + path: 'CertDataHeadList', + component: () => import('@/views/cert/CertDataHeadList'), + meta: { title: '证书维护', permission: 438 }, + }, + { + name: 'LvCertDataList', + path: 'LvCertDataList', + component: () => import('@/views/cert/LvCertDataList'), + meta: { title: '证书明细', permission: 438 }, + }, + ], + }, + { + name: 'merger', + component: LayoutPage, + path: `${prefix}/merger`, + meta: { title: '归类管理', permission: 437, icon: 'file-text' }, + redirect: '/MergerPrimaryConfigList', + children: [ + { + name: 'LegalPersonOrg', + path: 'LegalPersonOrg', + component: () => import('@/views/merger/mergerapply/LegalPersonOrg'), + meta: { title: '法人组织配置', permission: 438 }, + }, + { + name: 'ResearchMergerSetup', + path: 'ResearchMergerSetup', + component: () => import('@/views/merger/mergerapply/ResearchMergerSetup'), + meta: { title: '归类要素配置', permission: 438 }, + }, + { + name: 'MergerAssign', + path: 'MergerAssign', + component: () => import('@/views/merger/mergerapply/MergerAssign'), + meta: { title: '归类指派配置', permission: 438 }, + }, + { + name: 'MergerTimeValidity', + path: 'MergerTimeValidity', + component: () => import('@/views/merger/mergerapply/MergerTimeValidity'), + meta: { title: '归类时效配置', permission: 438 }, + }, + { + name: 'MergerReqs', + path: '/merger/mergerapply/MergerReqs', + component: () => import('@/views/merger/mergerapply/MergerReqs'), + meta: { title: '归类需求申请', permission: 438 }, + }, + { + name: 'productClassify', + path: 'productClassify', + component: () => import('@/views/merger/mergeredConfig/productClassify/index'), + meta: { title: '商品归类', permission: 438 }, + }, + { + name: 'reviewClassify', + path: 'reviewClassify', + component: () => import('@/views/merger/mergeredConfig/reviewClassify/index'), + meta: { title: '归类审核', permission: 438 }, + }, + { + name: 'queryClassify', + path: 'queryClassify', + component: () => import('@/views/merger/mergeredConfig/queryClassify/index'), + meta: { title: '归类查询', permission: 438 }, + }, + { + name: 'hasQueryClassify', + path: 'hasQueryClassify', + component: () => import('@/views/merger/mergeredConfig/hasQueryClassify/index'), + meta: { title: '已归类查询', permission: 438 }, + }, + { + name: 'MergerReqsLv', + path: 'MergerReqsLv', + component: () => import('@/views/merger/mergerapply/MergerReqsLv'), + meta: { title: '归类需求报表', permission: 438 }, + }, + { + name: 'ClassifyPendingReports', + path: 'ClassifyPendingReports', + component: () => import('@/views/merger/mergeredConfig/ClassifyPendingReports/index'), + meta: { title: '归类待办报表', permission: 438 }, + }, + { + name: 'MaterialMaster', + path: '/merger/mergerapply/MaterialMaster', + component: () => import('@/views/merger/mergerapply/MaterialMaster'), + meta: { title: '企业物料', permission: 438 }, + }, + ], + }, + { + name: 'interface', + component: LayoutPage, + path: `${prefix}/interface`, + meta: { title: '接口数据', permission: 437, icon: 'windows' }, + redirect: '/KdPartsOrderList', + children: [ + { + name: 'KdPartsOrderList', + path: '/interface/KdPartsOrderList', + component: () => import('@/views/interface/KdPartsOrderList'), + meta: { title: 'KD打散清单', permission: 438 }, + }, + { + name: 'PurchaseOrderList', + path: '/interface/PurchaseOrderList', + component: () => import('@/views/interface/PurchaseOrderList'), + meta: { title: '采购订单', permission: 438 }, + }, + { + name: 'ReplaceMaterialList', + path: '/interface/ReplaceMaterialList', + component: () => import('@/views/interface/ReplaceMaterialList'), + meta: { title: '替代料', permission: 438 }, + }, + { + name: 'WorkCalendarList', + path: '/interface/WorkCalendarList', + component: () => import('@/views/interface/WorkCalendarList'), + meta: { title: '美的工作日历', permission: 438 }, + }, + { + name: 'ProduceOrderList', + path: '/interface/ProduceOrderList', + component: () => import('@/views/interface/ProduceOrderList'), + meta: { title: '生产单', permission: 438 }, + }, + { + name: 'MessageList', + path: '/interface/MessageList', + component: () => import('@/views/interface/MessageList'), + meta: { title: '报文解析', permission: 438 }, + }, + { + name: 'MessageReceiptList', + path: '/interface/MessageReceiptList', + component: () => import('@/views/interface/MessageReceiptList'), + meta: { title: '报文回传', permission: 438 }, + }, + ], + }, + { + name: 'record', + component: LayoutPage, + path: `${prefix}/record`, + meta: { title: '备案管理', permission: 437, icon: 'edit' }, + redirect: '/qualApplyCurView', + children: [ + { + name: 'emsListCur', + path: 'emsListCur', + component: () => import('@/views/record/ems/emsListCur'), + meta: { title: '加贸账册备案', permission: 438 }, + }, + { + name: 'emsListPre', + path: 'emsListPre', + component: () => import('@/views/record/ems/emsListPre'), + meta: { title: '加贸账册变更', permission: 438 }, + }, + ], + }, + { + name: 'Ibill', + component: LayoutPage, + path: `${prefix}/Ibill`, + redirect: '/BillTemplateListI', + meta: { title: '进口管理', permission: 437, icon: 'download' }, + children: [ + { + name: 'BillTemplateListI', + path: 'BillTemplateListI', + component: () => import('@/views/bill/BillTemplateListI'), + meta: { title: '进口清单模板', permission: 438 }, + }, + { + name: 'BillDataListIZ', + path: 'BillDataListIZ', + component: () => import('@/views/bill/BillDataListIZ'), + meta: { title: '进口征税清单', permission: 438 }, + }, + { + name: 'BillDataListIB', + path: 'BillDataListIB', + component: () => import('@/views/bill/BillDataListIB'), + meta: { title: '进口保税清单', permission: 438 }, + }, + + { + name: 'BillEntryReviewListI', + path: 'BillEntryReviewListI', + component: () => import('@/views/bill/BillEntryReviewListI'), + meta: { title: '进口报关复核', permission: 438 }, + }, + + { + name: 'EntryDataListI', + path: 'EntryDataListI', + component: () => import('@/views/entry/EntryDataListI'), + meta: { title: '进口草单查询', permission: 438 }, + }, + { + name: 'BillTidyListI', + path: 'BillTidyListI', + component: () => import('@/views/bill/BillTidyListI'), + meta: { title: '进口核注理单', permission: 438 }, + }, + { + name: 'BillCompareListI', + path: 'BillCompareListI', + component: () => import('@/views/bill/BillCompareListI'), + meta: { title: '进口核注清单比对', permission: 438 }, + }, + { + name: 'EntryTidyListI', + path: 'EntryTidyListI', + component: () => import('@/views/entry/EntryTidyListI'), + meta: { title: '进口报关单理单', permission: 438 }, + }, + { + name: 'EntryCompareListI', + path: 'EntryCompareListI', + component: () => import('@/views/entry/EntryCompareListI'), + meta: { title: '进口报关单比对', permission: 438 }, + }, + { + name: 'LvBilITrackListI', + path: 'LvBilITrackListI', + component: () => import('@/views/bill/LvBilITrackListI'), + meta: { title: '进口单货跟踪', permission: 438 }, + }, + ], + }, + { + name: 'Ebill', + component: LayoutPage, + path: `${prefix}/Ebill`, + redirect: 'BillTemplateListE', + meta: { title: '出口管理', permission: 437, icon: 'upload' }, + children: [ + { + name: 'BillTemplateListE', + path: 'BillTemplateListE', + component: () => import('@/views/bill/BillTemplateListE'), + meta: { title: '出口清单模板', permission: 438 }, + }, + { + name: 'exportBill', + path: 'exportBill', + component: () => import('@/views/bill/BillDataListEZ'), + meta: { title: '出口征税清单', permission: 438 }, + }, + { + name: 'BillDataListEB', + path: 'BillDataListEB', + component: () => import('@/views/bill/BillDataListEB'), + meta: { title: '出口保税清单', permission: 438 }, + }, + { + name: 'BillEntryReviewListE', + path: 'BillEntryReviewListE', + component: () => import('@/views/bill/BillEntryReviewListE'), + meta: { title: '出口报关复核', permission: 438 }, + }, + { + name: 'EntryDataListE', + path: 'EntryDataListE', + component: () => import('@/views/entry/EntryDataListE'), + meta: { title: '出口草单查询', permission: 438 }, + }, + { + name: 'BillTidyListE', + path: 'BillTidyListE', + component: () => import('@/views/bill/BillTidyListE'), + meta: { title: '出口核注理单', permission: 438 }, + }, + { + name: 'BillCompareListE', + path: 'BillCompareListE', + component: () => import('@/views/bill/BillCompareListE'), + meta: { title: '出口核注清单比对', permission: 438 }, + }, + { + name: 'EntryTidyListE', + path: 'EntryTidyListE', + component: () => import('@/views/entry/EntryTidyListE'), + meta: { title: '出口报关单理单', permission: 438 }, + }, + { + name: 'EntryCompareListE', + path: 'EntryCompareListE', + component: () => import('@/views/entry/EntryCompareListE'), + meta: { title: '出口报关单比对', permission: 438 }, + }, + { + name: 'LvBilITrackListE', + path: 'LvBilITrackListE', + component: () => import('@/views/bill/LvBilITrackListE'), + meta: { title: '出口单货跟踪', permission: 438 }, + }, + ], + }, + { + name: 'dashboard3', + component: LayoutPage, + path: `${prefix}/dashboard3`, + meta: { title: '系统监控', permission: 437, icon: 'dashboard' }, + redirect: '/SysUserOnlineList', + children: [ + { + name: 'SysUserOnlineList', + path: 'SysUserOnlineList', + component: () => import('@/views/system/SysUserOnlineList'), + meta: { title: '在线用户', permission: 438 }, + }, + { + name: 'SysGatewayRouteList', + path: 'SysGatewayRouteList', + component: () => import('@/views/system/SysGatewayRouteList'), + meta: { title: '路由网关', permission: 438 }, + }, + { + name: 'QuartzJobList', + path: 'QuartzJobList', + component: () => import('@/views/system/QuartzJobList'), + meta: { title: '定时任务', permission: 438 }, + }, + { + name: 'LogList', + path: 'LogList', + component: () => import('@/views/system/LogList'), + meta: { title: '日志管理', permission: 438 }, + }, + { + name: 'DataLogList', + path: 'DataLogList', + component: () => import('@/views/system/DataLogList'), + meta: { title: '数据日志', permission: 438 }, + }, + { + name: 'monitor', + path: 'monitor', + meta: { title: '性能监控', permission: 437 }, + component: RouteView, + redirect: '/RedisInfo', + children: [ + { + name: 'RedisInfo', + path: 'RedisInfo', + component: () => import('@/views/modules/monitor/RedisInfo'), + meta: { title: 'Redis监控', permission: 438 }, + }, + { + name: 'TomcatInfo', + path: 'TomcatInfo', + component: () => import('@/views/modules/monitor/TomcatInfo'), + meta: { title: 'Tomcat信息', permission: 438 }, + }, + { + name: 'SystemInfo', + path: 'SystemInfo', + component: () => import('@/views/modules/monitor/SystemInfo'), + meta: { title: '服务器信息', permission: 438 }, + }, + { + name: 'JvmInfo', + path: 'JvmInfo', + component: () => import('@/views/modules/monitor/JvmInfo'), + meta: { title: 'JVM信息', permission: 438 }, + }, + { + name: 'HttpTrace', + path: 'HttpTrace', + component: () => import('@/views/modules/monitor/HttpTrace'), + meta: { title: '请求追踪', permission: 438 }, + }, + { + name: 'DiskMonitoring', + path: 'DiskMonitoring', + component: () => import('@/views/modules/monitor/DiskMonitoring'), + meta: { title: '磁盘监控', permission: 438 }, + }, + ], + }, + { + name: 'RedisManager', + path: 'RedisManager', + component: () => import('@/views/system/RedisManager'), + meta: { title: 'REDIS缓存管理', permission: 438 }, + }, + ], + }, + { + name: 'message', + component: LayoutPage, + path: `${prefix}/message`, + meta: { title: '消息中心', permission: 437, icon: 'message' }, + redirect: 'SysMessageList', + children: [ + { + name: 'SysMessageList', + path: 'SysMessageList', + component: () => import('@/views/modules/message/SysMessageList'), + meta: { title: '消息管理', permission: 438 }, + }, + { + name: 'SysMessageTemplateList', + path: 'SysMessageTemplateList', + component: () => import('@/views/modules/message/SysMessageTemplateList'), + meta: { title: '模板管理', permission: 438 }, + }, + { + name: 'UserAnnouncementList', + path: 'UserAnnouncementList', + component: () => import('@/views/system/UserAnnouncementList'), + meta: { title: '我的消息', permission: 438 }, + }, + ], + }, + { + path: '*', + redirect: '/404', + hidden: true, + }, +] + +/** + * 基础路由 + * @type { *[] } + */ +export const constantRouterMap = [ + { + path: `${prefix}/user`, + component: UserLayout, + redirect: '/user/login', + hidden: true, + children: [ + { + path: 'login', + name: 'login', + component: () => import(/* webpackChunkName: "user" */ '@/views/user/Login'), + }, + { + path: 'register', + name: 'register', + component: () => import(/* webpackChunkName: "user" */ '@/views/user/register/Register'), + }, + { + path: 'register-result', + name: 'registerResult', + component: () => import(/* webpackChunkName: "user" */ '@/views/user/register/RegisterResult'), + }, + { + path: 'alteration', + name: 'alteration', + component: () => import(/* webpackChunkName: "user" */ '@/views/user/alteration/Alteration'), + }, + ], + }, + + // { + // path: '/', + // name: 'index', + // component: LayoutPage, + // meta: {title: '首页'}, + // redirect: '/dashboard/workplace', + // children: [ + // { + // path: '/online', + // name: 'online', + // redirect: '/online', + // component: RouteView, + // meta: {title: '在线开发', icon: 'dashboard', permission: ['dashboard']}, + // children: [ + // { + // path: '/online/auto/:code', + // name: 'report', + // component: () => import('@/views/modules/online/cgreport/OnlCgreportAutoList') + // }, + // ] + // }, + // ] + // }, + + { + // OAuth2 APP页面路由 + path: '/oauth2-app', + component: BlankLayout, + redirect: '/oauth2-app/login', + children: [ + { + // OAuth2 登录路由 + path: 'login', + name: 'applogin', + component: () => import(/* webpackChunkName: "oauth2-app.login" */ '@/views/user/oauth2/OAuth2Login'), + }, + ], + }, + { + // OAuth2 APP页面路由 + path: '/oauth', + component: BlankLayout, + redirect: '/oauth/login', + children: [ + { + // OAuth2 登录路由 + path: 'login', + name: 'oauthlogin', + component: () => import(/* webpackChunkName: "oauth2-app.login" */ '@/views/user/oauth2/LoginAuthCode'), + }, + ], + }, + { + path: '/EngineerFeedback', + component: BlankLayout, + redirect: '/EngineerFeedback/list', + children: [ + { + // OAuth2 登录路由 + path: 'list', + name: 'list', + component: () => + import(/* webpackChunkName: "oauth2-app.login" */ '@/views/merger/mergerapply/EngineerFeedbackList'), + }, + ], + }, + { + path: '/404', + component: () => import(/* webpackChunkName: "fail" */ '@/views/exception/404'), + }, +] + diff --git a/src/defaultSettings.js b/src/defaultSettings.js new file mode 100644 index 0000000..482b22c --- /dev/null +++ b/src/defaultSettings.js @@ -0,0 +1,33 @@ +/** + * 项目默认配置项 + * primaryColor - 默认主题色 + * navTheme - sidebar theme ['dark', 'light'] 两种主题 + * colorWeak - 色盲模式 + * layout - 整体布局方式 ['sidemenu', 'topmenu'] 两种布局 + * fixedHeader - 固定 Header : boolean + * fixSiderbar - 固定左侧菜单栏 : boolean + * autoHideHeader - 向下滚动时,隐藏 Header : boolean + * contentWidth - 内容区布局: 流式 | 固定 + * + * storageOptions: {} - Vue-ls 插件配置项 (localStorage/sessionStorage) + * + */ + +export default { + navTheme: 'dark', + primaryColor: '#0077ff', + layout: 'sidemenu', + contentWidth: 'Fluid', + fixedHeader: true, + fixSiderbar: true, + colorWeak: false, + title: 'WinLink.Jeecg Ui', + pwa: false, + multipage: true, //默认多页签模式 + // vue-ls options + storageOptions: { + namespace: 'pro__', // key prefix + name: 'ls', // name variable Vue.[ls] or this.[$ls], + storage: 'local', // storage name session, local, memory + } +} \ No newline at end of file diff --git a/src/icons.js b/src/icons.js new file mode 100644 index 0000000..7c62954 --- /dev/null +++ b/src/icons.js @@ -0,0 +1,15 @@ +// src/icons.js + +// export what you need +export { + default as SmileOutline +} from '@ant-design/icons/lib/outline/SmileOutline'; +export { + default as MehOutline +} from '@ant-design/icons/lib/outline/MehOutline'; + +// export what antd other components need +export { + default as CloseOutline +} from '@ant-design/icons/lib/outline/CloseOutline'; +// and other icons... \ No newline at end of file diff --git a/src/lang/LangChange.vue b/src/lang/LangChange.vue new file mode 100644 index 0000000..c880ff5 --- /dev/null +++ b/src/lang/LangChange.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/src/lang/index.js b/src/lang/index.js new file mode 100644 index 0000000..60e4dc7 --- /dev/null +++ b/src/lang/index.js @@ -0,0 +1,26 @@ +import Vue from "vue"; +import VueI18n from 'vue-i18n' +import cn from "./res/cn" +import en from "./res/en" +import th from "./res/th" + +Vue.use(VueI18n); // 全局注册国际化包 + +// 准备翻译的语言环境信息 +const i18n = new VueI18n({ + locale:'cn', // 初始化中文 + messages: { + "cn": cn, + "en": en, + "th": th + }, + fallbackLocale: 'cn', // 设置回退 locale + silentTranslationWarn: true, // 设置为 true 以静默方式处理翻译警告 + missingHandler: function () { + // 处理不存在的键 + // 你可以返回一个默认消息,或者执行其他逻辑 + return '' + } +}); + +export default i18n \ No newline at end of file diff --git a/src/lang/res/cn.js b/src/lang/res/cn.js new file mode 100644 index 0000000..1485e86 --- /dev/null +++ b/src/lang/res/cn.js @@ -0,0 +1,20 @@ +// cn.js +export default { + lang: { + cn: "中文简体", + en: "英文" + }, + login: { + loginbtu: "登录", + tab1: "普通登录", + tab2: "域控登录", + rememberme: "记住登录", + forgetPw: "忘记密码", + logining: "登陆中", + username:"请输入帐户名", + inputCode:"请输入验证码", + }, + table: { + option: "基本操作", + } +}; \ No newline at end of file diff --git a/src/lang/res/en.js b/src/lang/res/en.js new file mode 100644 index 0000000..999d551 --- /dev/null +++ b/src/lang/res/en.js @@ -0,0 +1,28 @@ +// en.js +export default { + lang: { + cn: "Chinese", + en: "English" + }, + sys: { + chooseAll: "Select All", + chooseRest: "Click to reset to the initial system state", + }, + login: { + loginbtu: "login in", + tab1: "Account Number", + tab2: "Phone Number", + rememberme: "Remember Me", + forgetPw: "Forget", + logining: "Logining", + username: "account name", + inputCode: "verification code", + }, + table: { + option: "option", + createTime: 'CreateTime', + sender: 'Sender', + fileName: 'FileName', + fileId: 'FileId', + } +} \ No newline at end of file diff --git a/src/lang/res/th.js b/src/lang/res/th.js new file mode 100644 index 0000000..23dc75e --- /dev/null +++ b/src/lang/res/th.js @@ -0,0 +1,24 @@ +// th.js +export default { + sys: { + chooseAll: "เลือกทั้งหมด", + chooseRest: "แตะเพื่อรีเซ็ตสถานะเริ่มต้นของระบบ", + }, + login: { + loginbtu: "เข้าสู่ระบบ", + tab1: "หมายเลขบัญชี", + tab2: "หมายเลขโทรศัพท์มือถือ", + rememberme: "อย่าลืมเข้าสู่ระบบ", + forgetPw: "ลืมรหัสผ่าน", + logining: "เข้าสู่ระบบ", + username: "ชื่อผู้ใช้", + inputCode: "รหัสยืนยัน", + }, + table: { + option: "การดำเนินงาน", + createTime: 'วันที่สร้าง', + sender: 'ผู้ส่ง', + fileName: 'ประเภทข้อความ', + fileId: 'รหัสไฟล์', + } +} \ No newline at end of file diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..7a6d41d --- /dev/null +++ b/src/main.js @@ -0,0 +1,290 @@ +/** init domain config */ +import './config'; +import '@/public-path'; +import Vue from 'vue'; +import App from './App.vue'; +import Storage from 'vue-ls'; +import router from './router'; +import store from './store/'; +import './assets/iconfont/iconfont.css'; +import { VueAxios } from '@/utils/request'; +require('@jeecg/antd-online-mini'); +require('@jeecg/antd-online-mini/dist/OnlineForm.css'); + +import Antd from 'ant-design-vue'; +import MdesignPlus from 'mdesign-plus'; + +import Viser from 'viser-vue'; +import 'ant-design-vue/dist/antd.less'; // or 'ant-design-vue/dist/antd.less' +import 'mdesign-plus/lib/theme-chalk/index.css'; +import '../static/reset.less'; +import '../static/mdReset.less'; +import '@/permission'; // permission control +import '@/utils/filter'; // base filter +import Print from 'vue-print-nb-jeecg'; +import splitPane from 'vue-splitpane'; +/*import '@babel/polyfill'*/ +import preview from 'vue-photo-preview'; +import 'vue-photo-preview/dist/skin.css'; +import { + ACCESS_TOKEN, + DEFAULT_COLOR, + DEFAULT_THEME, + DEFAULT_LAYOUT_MODE, + DEFAULT_COLOR_WEAK, + SIDEBAR_TYPE, + DEFAULT_FIXED_HEADER, + DEFAULT_FIXED_HEADER_HIDDEN, + DEFAULT_FIXED_SIDEMENU, + DEFAULT_CONTENT_WIDTH_TYPE, + DEFAULT_MULTI_PAGE, +} from '@/store/mutation-types'; +import config from '@/defaultSettings'; + +import JDictSelectTag from './components/dict/index.js'; +import hasPermission from '@/utils/hasPermission'; +import { checkPermission } from '@/utils/hasPermission'; +import JeecgComponents from '@/components/jeecg/index'; +import '@/assets/less/JAreaLinkage.less'; +import VueAreaLinkage from 'vue-area-linkage'; +import '@/components/jeecg/JVxeTable/install'; +import '@/components/JVxeCells/install'; +import '@/components/winlink/index'; +import '@/components/winmdlink/index'; +import { KeyUpEvent } from '@/mixins/KeyUpEvent'; +import Vnext from '@/mixins/v-next'; +import VtabNext from '@/mixins/tabNext'; +// import TabDrag from '@/mixins/tabDrag' +import WinLinkComponents from '@/components/winlink/index'; +import WinLinkMdComponents from '@/components/winmdlink/index'; +//表单验证 +import { rules } from '@/utils/rules'; +import Global from './Global'; +import 'video.js/dist/video-js.css'; +import Video from 'video.js'; +import hls from 'videojs-contrib-hls'; // 播放hls流需要的插件 +import VueSlider from 'vue-slider-component'; +import 'vue-slider-component/theme/default.css'; +import Viewer from 'v-viewer'; +import 'viewerjs/dist/viewer.css'; +// 导入组件库 +import SnakerFlowDesigner from '@/components/snakerFlow/index'; + +import * as echarts from 'echarts'; + +import VueDraggableResizable from 'vue-draggable-resizable'; + +// optionally import default styles +import 'vue-draggable-resizable/dist/VueDraggableResizable.css'; + +//多语言接入 +import i18n from './lang'; +// import { getAppLanguageTypes } from 'msct-web-sdk' // 引入配置方法 +// import { $t } from 'msct-web-sdk' +import microApp from '@micro-zoe/micro-app'; + +microApp.start(); +//局部或全局定义 +Vue.prototype.$echarts = echarts; + +Vue.prototype.rules = rules; +//记录当前的content的高度/ +Vue.prototype.Global = Global; +//回车下移时间 混入 +Vue.mixin(KeyUpEvent); +Vue.config.productionTip = false; +Vue.use(Storage, config.storageOptions); +Vue.use(Antd); +Vue.use(VueAxios, router); +Vue.use(Viser); +Vue.use(hasPermission); +Vue.use(checkPermission); +Vue.use(JDictSelectTag); +Vue.use(Print); +Vue.use(preview); +Vue.use(JeecgComponents); +Vue.use(VueAreaLinkage); +Vue.use(WinLinkComponents); +Vue.use(WinLinkMdComponents); +Vue.use(Vnext); +Vue.use(VtabNext); +Vue.use(hls); +Vue.use(SnakerFlowDesigner); +Vue.use(MdesignPlus); +Vue.use(Viewer, { + defaultOptions: { + navbar: false, + toolbar: { + zoomIn: 1, + zoomOut: 1, + oneToOne: 1, + reset: 1, + prev: 0, + next: 0, + rotateLeft: 1, + rotateRight: 1, + flipHorizontal: 1, + flipVertical: 1, + }, + }, +}); + +Vue.prototype.$checkPermission = checkPermission; +Vue.prototype.$VideoJs = Video; //引入Video播放器 +Vue.component('SplitPane', splitPane); +Vue.component('VueSlider', VueSlider); +Vue.component('VueDraggableResizable', VueDraggableResizable); +///注册全局指令 +Vue.directive('required-color', function (el, binding, vnode) { + let Color = '#FFFFE6'; + ///禁用的栏位背景色 + if (vnode.componentOptions.propsData.disabled) { + Color = '#f5f5f5'; + } + + // 获取输入框或文本域元素 + const inputElement = el.querySelector('.md-input input') || el.querySelector('input'); + const textareaElement = el.querySelector('textarea'); + const targetElement = inputElement || textareaElement; + + if (targetElement) { + if (binding.value) { + // 当值为true时设置背景色 + targetElement.style.backgroundColor = Color; + } else { + // 当值为false时清除背景色(恢复默认) + targetElement.style.backgroundColor = ''; + } + } +}); + +// 加载index.html定义的方法去加载数据 +if (window.__MICRO_APP_ENVIRONMENT__) { + window.loadRequiredScriptsMicroApp(process.env.VUE_APP_API_BASE_URL); +} else { + window.loadRequiredScripts(process.env.VUE_APP_API_BASE_URL); +} + +// mip用户选择器 +function initMipPersonSelector(callback) { + /** + * 建议在前端 Vue 框架环境下使用,以下使用方法也是基于前端 Vue 框架的前提下 + * 在 Vue 框架环境下的项目,需要在 main.js 中通过 (window.Vue = Vue) 把 Vue 挂载在 window 的全局对象上。 + * 项目编译压缩时 Vue 不要被替换掉。 + */ + window.Vue = Vue; + const script = document.createElement('script'); + // =============================可用的方式====================== + // const env = 'sit'; // 正式生产: "", 测试环境:"uat/sit" + // script.src = `https://mui${env}.midea.com/midea-selector-v2.0/${'V1.2.3'}/mipPersonSelector.umd.js` + + // =============================尝试用环境变量,且绕过安全性扫描====================== + // 定义可信的域名白名单 + const trustedDomains = { + production: 'https://mui.midea.com', // 正式环境 + prod: 'https://mui.midea.com', // 正式环境 + uat: 'https://muiuat.midea.com', // UAT环境 + sit: 'https://muisit.midea.com', // SIT环境 + development: 'https://muisit.midea.com', // 开发环境 + ver: 'https://muiuat.midea.com', // VER环境 + }; + script.src = trustedDomains[process.env.NODE_ENV] + '/midea-selector-v2.0/mipPersonSelector.umd.js'; + + script.type = 'text/javascript'; + script.onload = () => { + window.mipPersonSelector.setZIndex(5000); // 全局配置设置 z-index(可选) + callback(); + }; + script.onerror = () => { + // console.warn('未能加载mipPersonSelector脚本,但将继续执行应用初始化'); + callback(); + }; + document.body.appendChild(script); +} + +// 定义全局翻译方法 key 字典key defalut 默认值 options 参数 +Vue.prototype.$tslang = function (key, defalut) { + if (!key) { + return defalut; + } + const tlang = this.$t(key); + if (tlang === key) { + return defalut; + } + return tlang; +}; + +// 此处能接收到首次页面加载时主应用发送的消息 +function dataListener(data) { + console.log('dataListener......', data); + // 先判断microData是否为空对象 + const isMicroDataEmpty = Object.keys(store.state.app.microData).length === 0; + + // 如果是首次加载且microData为空,才执行赋值操作 + if (isMicroDataEmpty) { + store.commit('SET_MICRO_DATA', data); + } + + // 处理路由跳转 + if (data.path && data.path !== store.state.app.microOldPath) { + store.commit('SET_MICRO_OLD_PATH', data.path); + router.push(data.path); + } + // 处理主应用刷新页面 + else { + store.commit('SET_NEED_REFRESH', router.currentRoute.path); + } +} + +function main() { + // 只有在微应用环境或SSO启用时才初始化人员选择器 + if (window.__MICRO_APP_ENVIRONMENT__ || process.env.VUE_APP_SSO === 'true') { + initMipPersonSelector(initVueApp); + } else { + // 初始化Vue应用 + initVueApp(); + } +} + +function initVueApp() { + new Vue({ + router, + store, + i18n, + mounted() { + store.commit('SET_SIDEBAR_TYPE', Vue.ls.get(SIDEBAR_TYPE, true)); + store.commit('TOGGLE_THEME', Vue.ls.get(DEFAULT_THEME, config.navTheme)); + store.commit('TOGGLE_LAYOUT_MODE', Vue.ls.get(DEFAULT_LAYOUT_MODE, config.layout)); + store.commit('TOGGLE_FIXED_HEADER', Vue.ls.get(DEFAULT_FIXED_HEADER, config.fixedHeader)); + store.commit('TOGGLE_FIXED_SIDERBAR', Vue.ls.get(DEFAULT_FIXED_SIDEMENU, config.fixSiderbar)); + store.commit('TOGGLE_CONTENT_WIDTH', Vue.ls.get(DEFAULT_CONTENT_WIDTH_TYPE, config.contentWidth)); + store.commit('TOGGLE_FIXED_HEADER_HIDDEN', Vue.ls.get(DEFAULT_FIXED_HEADER_HIDDEN, config.autoHideHeader)); + store.commit('TOGGLE_WEAK', Vue.ls.get(DEFAULT_COLOR_WEAK, config.colorWeak)); + store.commit('TOGGLE_COLOR', Vue.ls.get(DEFAULT_COLOR, config.primaryColor)); + store.commit('SET_TOKEN', Vue.ls.get(ACCESS_TOKEN)); + store.commit('SET_MULTI_PAGE', Vue.ls.get(DEFAULT_MULTI_PAGE, config.multipage)); + }, + render: (h) => h(App), + }).$mount('#app'); + + if (window.__MICRO_APP_ENVIRONMENT__) { + window.microApp.addDataListener(dataListener, true); + } +} + +/** + * 卸载函数 + */ +function unmount() { + if (window.__MICRO_APP_ENVIRONMENT__) { + window.microApp.removeDataListener(dataListener); + } +} + +window.unmount = unmount; +window.mount = main; + +if (!window.__MICRO_APP_ENVIRONMENT__) { + window.mount(); +} + diff --git a/src/mixins/DisabledAuthFilterMixin.js b/src/mixins/DisabledAuthFilterMixin.js new file mode 100644 index 0000000..a84c7bf --- /dev/null +++ b/src/mixins/DisabledAuthFilterMixin.js @@ -0,0 +1,24 @@ +/** + * + */ +import { disabledAuthFilter } from "@/utils/authFilter" + +export const DisabledAuthFilterMixin = { + props: { + formData: { + type: Object, + default: {} + }, + }, + data(){ + return { + + } + }, + methods:{ + isDisabledAuth(code){ + return disabledAuthFilter(code,this.formData); + }, + } + +} \ No newline at end of file diff --git a/src/mixins/JEditableTableMixin.js b/src/mixins/JEditableTableMixin.js new file mode 100644 index 0000000..6f3a786 --- /dev/null +++ b/src/mixins/JEditableTableMixin.js @@ -0,0 +1,183 @@ +import JEditableTable from '@/components/jeecg/JEditableTable' +import { VALIDATE_NO_PASSED, getRefPromise, validateFormAndTables } from '@/utils/JEditableTableUtil' +import { httpAction, getAction } from '@/api/manage' + +export const JEditableTableMixin = { + components: { + JEditableTable + }, + data() { + return { + title: '操作', + visible: false, + form: this.$form.createForm(this), + confirmLoading: false, + model: {}, + labelCol: { + xs: { span: 24 }, + sm: { span: 6 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 18 } + } + } + }, + methods: { + + /** 获取所有的editableTable实例 */ + getAllTable() { + if (!(this.refKeys instanceof Array)) { + throw this.throwNotArray('refKeys') + } + const values = this.refKeys.map(key => getRefPromise(this, key)) + return Promise.all(values) + }, + + /** 遍历所有的JEditableTable实例 */ + eachAllTable(callback) { + // 开始遍历 + this.getAllTable().then(tables => { + tables.forEach((item, index) => { + if (typeof callback === 'function') { + callback(item, index) + } + }) + }) + }, + + /** 当点击新增按钮时调用此方法 */ + add() { + //update-begin-author:lvdandan date:20201113 for:LOWCOD-1049 JEditaTable,子表默认添加一条数据,addDefaultRowNum设置无效 #1930 + return new Promise((resolve) => { + this.tableReset(); + resolve(); + }).then(() => { + if (typeof this.addBefore === 'function') {this.addBefore()} + // 默认新增空数据 + let rowNum = this.addDefaultRowNum + if (typeof rowNum !== 'number') { + rowNum = 1 + console.warn('由于你没有在 data 中定义 addDefaultRowNum 或 addDefaultRowNum 不是数字,所以默认添加一条空数据,如果不想默认添加空数据,请将定义 addDefaultRowNum 为 0') + } + this.eachAllTable((item) => { + item.add(rowNum) + }) + if (typeof this.addAfter === 'function') {this.addAfter(this.model)} + this.edit({}) + }) + //update-end-author:lvdandan date:20201113 for:LOWCOD-1049 JEditaTable,子表默认添加一条数据,addDefaultRowNum设置无效 #1930 + }, + /** 当点击了编辑(修改)按钮时调用此方法 */ + edit(record) { + if(record && '{}'!==JSON.stringify(record)){ + this.tableReset(); + } + if (typeof this.editBefore === 'function') {this.editBefore(record)} + this.visible = true + this.activeKey = this.refKeys[0] + this.form.resetFields() + this.model = Object.assign({}, record) + if (typeof this.editAfter === 'function') {this.editAfter(this.model)} + }, + /** 关闭弹窗,并将所有JEditableTable实例回归到初始状态 */ + close() { + this.visible = false + this.$emit('close') + }, + //清空子表table的数据 + tableReset(){ + this.eachAllTable((item) => { + item.clearRow() + }) + }, + /** 查询某个tab的数据 */ + requestSubTableData(url, params, tab, success) { + tab.loading = true + getAction(url, params).then(res => { + const { result } = res + let dataSource = [] + if (result) { + if (Array.isArray(result)) { + dataSource = result + } else if (Array.isArray(result.records)) { + dataSource = result.records + } + } + tab.dataSource = dataSource + typeof success === 'function' ? success(res) : '' + }).finally(() => { + tab.loading = false + }) + }, + /** 发起请求,自动判断是执行新增还是修改操作 */ + request(formData) { + let url = this.url.add, method = 'post' + if (this.model.id) { + url = this.url.edit + method = 'put' + } + this.confirmLoading = true + httpAction(url, formData, method).then((res) => { + if (res.success) { + this.$message.success(res.message) + this.$emit('ok') + this.close() + } else { + this.$message.warning(res.message) + } + }).finally(() => { + this.confirmLoading = false + }) + }, + + /* --- handle 事件 --- */ + + /** ATab 选项卡切换事件 */ + handleChangeTabs(key) { + // 自动重置scrollTop状态,防止出现白屏 + getRefPromise(this, key).then(editableTable => { + editableTable.resetScrollTop() + }) + }, + /** 关闭按钮点击事件 */ + handleCancel() { + this.close() + }, + /** 确定按钮点击事件 */ + handleOk() { + /** 触发表单验证 */ + this.getAllTable().then(tables => { + /** 一次性验证主表和所有的次表 */ + return validateFormAndTables(this.form, tables) + }).then(allValues => { + if (typeof this.classifyIntoFormData !== 'function') { + throw this.throwNotFunction('classifyIntoFormData') + } + const formData = this.classifyIntoFormData(allValues) + // 发起请求 + return this.request(formData) + }).catch(e => { + if (e.error === VALIDATE_NO_PASSED) { + // 如果有未通过表单验证的子表,就自动跳转到它所在的tab + this.activeKey = e.index === null ? this.activeKey : this.refKeys[e.index] + } else { + console.error(e) + } + }) + }, + + /* --- throw --- */ + + /** not a function */ + throwNotFunction(name) { + return `${name} 未定义或不是一个函数` + }, + + /** not a array */ + throwNotArray(name) { + return `${name} 未定义或不是一个数组` + } + + } +} \ No newline at end of file diff --git a/src/mixins/JEditableTableModelMixin.js b/src/mixins/JEditableTableModelMixin.js new file mode 100644 index 0000000..2eabd2e --- /dev/null +++ b/src/mixins/JEditableTableModelMixin.js @@ -0,0 +1,211 @@ +import JEditableTable from '@/components/jeecg/JEditableTable' +import { VALIDATE_NO_PASSED, getRefPromise, validateFormModelAndTables } from '@/utils/JEditableTableUtil' +import { httpAction, getAction } from '@/api/manage' + +export const JEditableTableModelMixin = { + components: { + JEditableTable, + }, + data() { + return { + title: '操作', + visible: false, + confirmLoading: false, + model: {}, + labelCol: { + xs: { span: 24 }, + sm: { span: 6 }, + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 18 }, + }, + } + }, + methods: { + /** 获取所有的editableTable实例 */ + getAllTable() { + if (!(this.refKeys instanceof Array)) { + throw this.throwNotArray('refKeys') + } + const values = this.refKeys.map((key) => getRefPromise(this, key)) + return Promise.all(values) + }, + + /** 遍历所有的JEditableTable实例 */ + eachAllTable(callback) { + // 开始遍历 + this.getAllTable().then((tables) => { + tables.forEach((item, index) => { + if (typeof callback === 'function') { + callback(item, index) + } + }) + }) + }, + /** 当点击新增按钮时调用此方法 */ + add() { + //update-begin-author:lvdandan date:20201113 for:LOWCOD-1049 JEditaTable,子表默认添加一条数据,addDefaultRowNum设置无效 #1930 + return new Promise((resolve) => { + this.tableReset() + resolve() + }).then(() => { + if (typeof this.addBefore === 'function') { + this.addBefore() + } + // 默认新增空数据 + let rowNum = this.addDefaultRowNum + if (typeof rowNum !== 'number') { + rowNum = 1 + console.warn( + '由于你没有在 data 中定义 addDefaultRowNum 或 addDefaultRowNum 不是数字,所以默认添加一条空数据,如果不想默认添加空数据,请将定义 addDefaultRowNum 为 0' + ) + } + this.eachAllTable((item) => { + item.add(rowNum) + }) + if (typeof this.addAfter === 'function') { + this.addAfter(this.model) + } + this.edit(this.model) + }) + //update-end-author:lvdandan date:20201113 for:LOWCOD-1049 JEditaTable,子表默认添加一条数据,addDefaultRowNum设置无效 #1930 + }, + /** 当点击了编辑(修改)按钮时调用此方法 */ + edit(record) { + if (record && '{}' !== JSON.stringify(record) && record.id) { + this.tableReset() + } + if (typeof this.editBefore === 'function') { + this.editBefore(record) + } + this.visible = true + this.activeKey = this.refKeys[0] + this.$refs.form.resetFields() + this.model = Object.assign({}, record) + if (typeof this.editAfter === 'function') { + this.editAfter(this.model) + } + }, + /** 关闭弹窗,并将所有JEditableTable实例回归到初始状态 */ + close() { + this.visible = false + this.$emit('close') + }, + //清空子表table的数据 + tableReset() { + this.eachAllTable(() => { + //无function + //item.clearRow() + }) + }, + /** 查询某个tab的数据 */ + requestSubTableData(url, params, tab, success) { + tab.loading = true + getAction(url, params) + .then((res) => { + const { result } = res + let dataSource = [] + if (result) { + if (Array.isArray(result)) { + dataSource = result + } else if (Array.isArray(result.records)) { + dataSource = result.records + } + } + tab.dataSource = dataSource + typeof success === 'function' ? success(res) : '' + }) + .finally(() => { + tab.loading = false + }) + }, + /** 发起请求,自动判断是执行新增还是修改操作 */ + request(formData) { + let url = this.url.add, + method = 'post' + if (this.model.id) { + url = this.url.edit + method = 'put' + } + this.confirmLoading = true + httpAction(url, formData, method) + .then((res) => { + if (res.success) { + this.$message.success(res.message) + this.$emit('ok') + this.close() + } else { + this.$message.warning(res.message) + } + }) + .finally(() => { + this.confirmLoading = false + }) + }, + + /* --- handle 事件 --- */ + + /** ATab 选项卡切换事件 */ + handleChangeTabs(key) { + // 自动重置scrollTop状态,防止出现白屏 + getRefPromise(this, key).then((editableTable) => { + editableTable.resetScrollTop() + }) + }, + /** 关闭按钮点击事件 */ + handleCancel() { + this.close() + }, + /** 确定按钮点击事件 */ + handleOk() { + /** 触发表单验证 */ + this.getAllTable() + .then((tables) => { + /** 一次性验证主表和所有的次表 */ + return validateFormModelAndTables(this.$refs.form, this.model, tables) + }) + .then((allValues) => { + /** 一次性验证一对一的所有子表 */ + return this.validateSubForm(allValues) + }) + .then((allValues) => { + if (typeof this.classifyIntoFormData !== 'function') { + throw this.throwNotFunction('classifyIntoFormData') + } + const formData = this.classifyIntoFormData(allValues) + // 发起请求 + return this.request(formData) + }) + .catch((e) => { + if (e.error === VALIDATE_NO_PASSED) { + // 如果有未通过表单验证的子表,就自动跳转到它所在的tab + //update--begin--autor:liusq-----date:20210316------for:未通过表单验证跳转tab问题------ + if (e.index !== null) { + this.activeKey = e.paneKey ? e.paneKey : this.refKeys[e.index] + } + //update--end--autor:liusq-----date:20210316------for:未通过表单验证跳转tab问题------ + } else { + console.error(e) + } + }) + }, + //校验所有子表表单 + validateSubForm(allValues) { + return new Promise((resolve) => { + resolve(allValues) + }) + }, + /* --- throw --- */ + + /** not a function */ + throwNotFunction(name) { + return `${name} 未定义或不是一个函数` + }, + + /** not a array */ + throwNotArray(name) { + return `${name} 未定义或不是一个数组` + }, + }, +} diff --git a/src/mixins/JVxeTableMixin.js b/src/mixins/JVxeTableMixin.js new file mode 100644 index 0000000..5c5e152 --- /dev/null +++ b/src/mixins/JVxeTableMixin.js @@ -0,0 +1,174 @@ +import { getRefPromise, validateFormAndTables} from '@/components/jeecg/JVxeTable/utils/vxeUtils.js' +import { VALIDATE_NO_PASSED } from '@/utils/JEditableTableUtil' +import { httpAction, getAction } from '@/api/manage' + +export const JVxeTableMixin = { + data() { + return { + title: '操作', + visible: false, + form: this.$form.createForm(this), + confirmLoading: false, + scrolling: true, + model: {}, + labelCol: { + xs: { span: 24 }, + sm: { span: 6 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 18 } + } + } + }, + methods: { + + /** 获取所有的JVxeTable实例 */ + getAllTable() { + if (!(this.refKeys instanceof Array)) { + throw this.throwNotArray('refKeys') + } + const values = this.refKeys.map(key => getRefPromise(this, key)) + return Promise.all(values) + }, + + /** 遍历所有的JVxeTable实例 */ + eachAllTable(callback) { + // 开始遍历 + this.getAllTable().then(tables => { + tables.forEach((item, index) => { + if (typeof callback === 'function') { + callback(item, index) + } + }) + }) + }, + + /** 当点击新增按钮时调用此方法 */ + add() { + if (typeof this.addBefore === 'function') {this.addBefore()} + // 默认新增空数据 + let rowNum = this.addDefaultRowNum + if (typeof rowNum !== 'number') { + rowNum = 1 + console.warn('由于你没有在 data 中定义 addDefaultRowNum 或 addDefaultRowNum 不是数字,所以默认添加一条空数据,如果不想默认添加空数据,请将定义 addDefaultRowNum 为 0') + } + //update-begin-author:taoyan date:20210315 for: 一对多jvex 默认几行不好使了 LOWCOD-1349 + this.eachAllTable((item) => { + setTimeout(()=>{ + item.addRows() + }, 30) + }) + //update-end-author:taoyan date:20210315 for: 一对多jvex 默认几行不好使了 LOWCOD-1349 + if (typeof this.addAfter === 'function') {this.addAfter(this.model)} + this.edit({}) + }, + /** 当点击了编辑(修改)按钮时调用此方法 */ + edit(record) { + if (typeof this.editBefore === 'function') {this.editBefore(record)} + this.visible = true + this.activeKey = this.refKeys[0] + this.form.resetFields() + this.model = Object.assign({}, record) + if (typeof this.editAfter === 'function') {this.editAfter(this.model)} + }, + /** 关闭弹窗,并将所有JVxeTable实例回归到初始状态 */ + close() { + this.visible = false + this.eachAllTable((item) => { + item._remove() + }) + this.$emit('close') + }, + + /** 查询某个tab的数据 */ + requestSubTableData(url, params, tab, success) { + tab.loading = true + getAction(url, params).then(res => { + const { result } = res + let dataSource = [] + if (result) { + if (Array.isArray(result)) { + dataSource = result + } else if (Array.isArray(result.records)) { + dataSource = result.records + } + } + tab.dataSource = dataSource + typeof success === 'function' ? success(res) : '' + }).finally(() => { + tab.loading = false + }) + }, + /** 发起请求,自动判断是执行新增还是修改操作 */ + request(formData) { + let url = this.url.add, method = 'post' + if (this.model.id) { + url = this.url.edit + method = 'put' + } + this.confirmLoading = true + console.log("formData===>",formData); + httpAction(url, formData, method).then((res) => { + if (res.success) { + this.$message.success(res.message) + this.$emit('ok') + this.close() + } else { + this.$message.warning(res.message) + } + }).finally(() => { + this.confirmLoading = false + }) + }, + + /* --- handle 事件 --- */ + + /** ATab 选项卡切换事件 */ + handleChangeTabs(key) { + // 自动重置scrollTop状态,防止出现白屏 + getRefPromise(this, key).then(vxeTable => { + vxeTable.resetScrollTop() + }) + }, + /** 关闭按钮点击事件 */ + handleCancel() { + this.close() + }, + /** 确定按钮点击事件 */ + handleOk() { + /** 触发表单验证 */ + this.getAllTable().then(tables => { + /** 一次性验证主表和所有的次表 */ + return validateFormAndTables(this.form, tables) + }).then(allValues => { + if (typeof this.classifyIntoFormData !== 'function') { + throw this.throwNotFunction('classifyIntoFormData') + } + const formData = this.classifyIntoFormData(allValues) + // 发起请求 + return this.request(formData) + }).catch(e => { + if (e.error === VALIDATE_NO_PASSED) { + // 如果有未通过表单验证的子表,就自动跳转到它所在的tab + this.activeKey = e.index === null ? this.activeKey : this.refKeys[e.index] + } else { + console.error(e) + } + }) + }, + + /* --- throw --- */ + + /** not a function */ + throwNotFunction(name) { + return `${name} 未定义或不是一个函数` + }, + + /** not a array */ + throwNotArray(name) { + return `${name} 未定义或不是一个数组` + } + + } +} \ No newline at end of file diff --git a/src/mixins/JVxeTableModelMixin.js b/src/mixins/JVxeTableModelMixin.js new file mode 100644 index 0000000..5ac6410 --- /dev/null +++ b/src/mixins/JVxeTableModelMixin.js @@ -0,0 +1,181 @@ +import { VALIDATE_FAILED, getRefPromise,validateFormModelAndTables} from '@/components/jeecg/JVxeTable/utils/vxeUtils.js' +import { httpAction, getAction } from '@/api/manage' + +export const JVxeTableModelMixin = { + data() { + return { + title: '操作', + visible: false, + confirmLoading: false, + scrolling: true, + model: {}, + labelCol: { + xs: { span: 24 }, + sm: { span: 6 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 18 } + } + } + }, + methods: { + + /** 获取所有的JVxeTable实例 */ + getAllTable() { + if (!(this.refKeys instanceof Array)) { + throw this.throwNotArray('refKeys') + } + const values = this.refKeys.map(key => getRefPromise(this, key)) + return Promise.all(values) + }, + + /** 遍历所有的JVxeTable实例 */ + eachAllTable(callback) { + // 开始遍历 + this.getAllTable().then(tables => { + console.log("tables",tables) + tables.forEach((item, index) => { + if (typeof callback === 'function') { + callback(item, index) + } + }) + }) + }, + + /** 当点击新增按钮时调用此方法 */ + add() { + if (typeof this.addBefore === 'function') {this.addBefore()} + // 默认新增空数据 + let rowNum = this.addDefaultRowNum + if (typeof rowNum !== 'number') { + rowNum = 1 + console.warn('由于你没有在 data 中定义 addDefaultRowNum 或 addDefaultRowNum 不是数字,所以默认添加一条空数据,如果不想默认添加空数据,请将定义 addDefaultRowNum 为 0') + } + this.eachAllTable((item) => { + //update-begin-author:taoyan date:20210315 for: 一对多jvex 默认几行不好使了 LOWCOD-1349 + setTimeout(()=>{ + item.addRows() + }, 30) + //update-end-author:taoyan date:20210315 for: 一对多jvex 默认几行不好使了 LOWCOD-1349 + }) + if (typeof this.addAfter === 'function') {this.addAfter(this.model)} + this.edit(this.model) + }, + /** 当点击了编辑(修改)按钮时调用此方法 */ + edit(record) { + if (typeof this.editBefore === 'function') {this.editBefore(record)} + this.visible = true + this.activeKey = this.refKeys[0] + this.$refs.form.resetFields() + this.model = Object.assign({}, record) + if (typeof this.editAfter === 'function') {this.editAfter(this.model)} + }, + /** 关闭弹窗,并将所有JVxeTable实例回归到初始状态 */ + close() { + this.visible = false + this.eachAllTable((item) => { + item._remove() + }) + this.$emit('close') + }, + + /** 查询某个tab的数据 */ + requestSubTableData(url, params, tab, success) { + tab.loading = true + getAction(url, params).then(res => { + const { result } = res + let dataSource = [] + if (result) { + if (Array.isArray(result)) { + dataSource = result + } else if (Array.isArray(result.records)) { + dataSource = result.records + } + } + tab.dataSource = dataSource + typeof success === 'function' ? success(res) : '' + }).finally(() => { + tab.loading = false + }) + }, + /** 发起请求,自动判断是执行新增还是修改操作 */ + request(formData) { + let url = this.url.add, method = 'post' + if (this.model.id) { + url = this.url.edit + method = 'put' + } + this.confirmLoading = true + console.log("formData===>",formData); + httpAction(url, formData, method).then((res) => { + if (res.success) { + this.$message.success(res.message) + this.$emit('ok') + this.close() + } else { + this.$message.warning(res.message) + } + }).finally(() => { + this.confirmLoading = false + }) + }, + + /* --- handle 事件 --- */ + + /** ATab 选项卡切换事件 */ + handleChangeTabs(key) { + // 自动重置scrollTop状态,防止出现白屏 + getRefPromise(this, key).then(vxeTable => { + vxeTable.resetScrollTop() + }) + }, + /** 关闭按钮点击事件 */ + handleCancel() { + this.close() + }, + /** 确定按钮点击事件 */ + handleOk() { + /** 触发表单验证 */ + this.getAllTable().then(tables => { + /** 一次性验证主表和所有的次表 */ + return validateFormModelAndTables(this.$refs.form,this.model, tables) + }).then(allValues => { + /** 一次性验证一对一的所有子表 */ + return this.validateSubForm(allValues) + }).then(allValues => { + if (typeof this.classifyIntoFormData !== 'function') { + throw this.throwNotFunction('classifyIntoFormData') + } + const formData = this.classifyIntoFormData(allValues) + // 发起请求 + return this.request(formData) + }).catch(e => { + if (e.error === VALIDATE_FAILED) { + // 如果有未通过表单验证的子表,就自动跳转到它所在的tab + this.activeKey = e.index === null ? this.activeKey : this.refKeys[e.index] + } else { + console.error(e) + } + }) + }, +//校验所有子表表单 + validateSubForm(allValues){ + return new Promise((resolve) => { + resolve(allValues) + }) + }, + /* --- throw --- */ + + /** not a function */ + throwNotFunction(name) { + return `${name} 未定义或不是一个函数` + }, + + /** not a array */ + throwNotArray(name) { + return `${name} 未定义或不是一个数组` + } + + } +} \ No newline at end of file diff --git a/src/mixins/JeecgListMixin.js b/src/mixins/JeecgListMixin.js new file mode 100644 index 0000000..9da4edb --- /dev/null +++ b/src/mixins/JeecgListMixin.js @@ -0,0 +1,1667 @@ +/** + * 新增修改完成调用 modalFormOk方法 编辑弹框组件ref定义为modalForm + * 高级查询按钮调用 superQuery方法 高级查询组件ref定义为superQueryModal + * data中url定义 list为查询列表 delete为删除单条记录 deleteBatch为批量删除 + */ +import { deleteAction, downFile, getAction, getImgUrlWithHeader, postAction } from '@/api/manage'; +import store from '@/store'; +import { ACCESS_TOKEN, TENANT_ID, USER_SETTING } from '@/store/mutation-types'; +import { filterObj } from '@/utils/util'; +import qs from 'qs'; +import Sortable from 'sortablejs'; +import Vue from 'vue'; +import { WGridResizeByCssMixin } from './WGridResizeByCssMixin'; +export const JeecgListMixin = { + data() { + this.resizableComponents = { + header: { + cell: (h, props, children) => { + const { key, ...restProps } = props; + if (!this.refColumns || !this.initColumn) { + return h('th', { ...restProps }, [...children]); + } + const col = this.refColumns.find((col) => { + const k = col.dataIndex; + return k === key; + }); + if (!col || !col.width) { + return h('th', { ...restProps }, [...children]); + } + const dragProps = { + key: col.dataIndex, + class: 'table-draggable-handle', + // parent: 'ant-table-thead', + attrs: { + w: 5, + z: 99, + x: col.width, + axis: 'x', + draggable: true, + resizable: false, + float: 'right', + onDragStart: this.onDragCallback, + onDrag: this.onDrag, + transform: 'none', + minWidth: 50, + maxWidth: 800, + // parent: true, + grid: [1, 1], // 每次步进距离 x 1px y 1px + }, + on: { + dragstop: (x) => { + const width = + document.getElementById(this.refColumnsKey).querySelectorAll('.ant-table-thead')[0].offsetWidth - + col.width + + x; + this.setTableWidth(width); + col.width = x; + const element = document.getElementById(this.refColumnsKey + '_' + col.dataIndex); + element.style.width = x + 'px'; + element.style.height = '0'; + const setCol = this.settingColumns.find((a) => { + return a.title === col.title; + }); + if (setCol) { + setCol.width = col.width; + } + //初始化table列显示 + // this.$nextTick(() => { this.initColumns(true) }) + this.saveUserSetting(this.refColumnsKey); + }, + dragging: (x) => { + const element = document.getElementById(this.refColumnsKey + '_' + col.dataIndex); + element.style.width = x + 'px'; + const elementHeight = document + .getElementById(this.refColumnsKey) + .querySelectorAll('.ant-table-body')[0].offsetHeight; + element.style.height = elementHeight + 'px'; + }, + }, + }; + const testProps = { + class: 'ant-table-header-cc', + // parent: 'ant-table-thead', + attrs: { + id: this.refColumnsKey + '_' + col.dataIndex, + style: 'width: ' + col.width + 'px;', + }, + }; + const drag = h('vue-draggable-resizable', { ...dragProps }); + const testEle = h('label', { ...testProps }); + const cellEle = children[0].children[0].children[0].children[0]; + cellEle.text = this.$tslang(col.lang, col.title); + return h('th', { ...restProps, class: 'resize-table-th' }, [...children, testEle, drag]); + }, + }, + }; + return { + /* 查询条件-请不要在queryParam中声明非字符串值的属性 */ + queryParam: {}, + /* 数据源 */ + dataSource: [], + /*数量汇总统计*/ + statistics: [], + /* 分页参数 */ + ipagination: { + current: 1, + pageSize: 20, + pageSizeOptions: ['20', '30', '50', '100', '500', '1000'], + showTotal: (total) => { + return ( +
+ this.loadData()} /> + {/* {range[0] + '-' + range[1] + ' 共' + total + '条'} */} + {total + '条数据' + ' ' + '共' + Math.ceil(total / this.ipagination.pageSize) + '页'} +
+ ); + }, + showQuickJumper: true, + showSizeChanger: true, + total: 0, + }, + /* 排序参数 */ + isorter: { + column: 'createTime,id', + order: 'desc', + }, + /* 筛选参数 */ + filters: {}, + /* table加载状态 */ + loading: false, + /* table选中keys*/ + selectedRowKeys: [], + /* table选中records*/ + selectionRows: [], + + routeType: '', + /* table选中keys*/ + /* 两个页面公用组件时,用以区分type*/ + /* 数组数据结构{type:'0',selectedRowKeys:selectedRowKeys,selectionRows:selectionRows}*/ + selectedTypeObj: [], + + /* 查询折叠 */ + toggleSearchStatus: false, + /* 高级查询条件生效状态 */ + superQueryFlag: false, + /* 高级查询条件 */ + superQueryParams: '', + /** 高级查询拼接方式 */ + superQueryMatchType: 'and', + /** 创建组件时是否初始化加载数据,默认加载,若不需要,在vue组件本身中设为false即可 + * (如BillDataList.vue中data(){return{...initeLoadData:false,...}}) */ + initeLoadData: true, + + clearByHeadOidParam: {}, + /*扩展查询条件 */ + extQueryParam: {}, + /*动态列 */ + refColumns: [], + /*配置列 */ + settingColumns: [], + /*clomunskey*/ + refColumnsKey: this.$options.name + '_table_columns_key', + visible: true, + clearSelectRows: true, + lastTimeData: '', + // 初始化table列 + initColumn: true, + // 默认table宽度 + tableStWidth: 0, + nowColumnKey: '', + //自动初始化列 + autoInitColumn: true, + // 备份列 + bkColumns: null, + // 自动高度 + autoHeight: true, + scrollPosition: 0, + }; + }, + activated() { + const { refreshLoadData } = this.$route.params; + if(refreshLoadData){ + this.loadData(); + } + }, + created() { + if (!this.disableMixinCreated) { + if (this.initeLoadData) { + this.loadData(); + } + //初始化字典配置 在自己页面定义 + this.initDictConfig(); + } + //动态列显示和左右拖拽 reeve + if (this.refColumnsKey && this.initColumn) { + //获取个人配置 + //初始化 + this.$nextTick(() => { + this.getUserSetting(this.refColumnsKey); + this.$nextTick(() => { + this.initTableTr(); + }); + }); + } + }, + computed: { + //token header + tokenHeader() { + const head = { 'X-Access-Token': Vue.ls.get(ACCESS_TOKEN) }; + const tenantid = Vue.ls.get(TENANT_ID); + if (tenantid) { + head['tenantCode'] = tenantid; + } + return head; + }, + }, + methods: { + loadData(arg) { + if (!this.url.list) { + // this.$message.error('请设置url.list属性!') + // console.log('请设置url.list属性!'); + return; + } + this.getListSum(); //进行单列或多列的数量汇总 + //加载数据 若传入参数1则加载第一页的内容 + if (arg === 1) { + this.ipagination.current = 1; + } + const params = this.getQueryParams(); //查询条件 + for (const i in params) { + if (typeof params[i] === 'string') { + params[i] = params[i].replace(/(^\s*)|(\s*$)/g, ''); + } + } + this.loading = true; + getAction(this.url.list, params) + .then((res) => { + if (res.success) { + //update-begin---author:zhangyafei Date:20201118 for:适配不分页的数据列表------------ + this.dataSource = !res.result ? [] : res.result.records || res.result; + if (this.dataSource.length > 0) { + this.lastTimeData = this.dataSource[0].createTime; + } + + if (res.result && res.result.total) { + this.ipagination.total = parseInt(res.result.total); + } else { + this.ipagination.total = 0; + } + //update-end---author:zhangyafei Date:20201118 for:适配不分页的数据列表------------ + } else { + this.$message.warning(res.message); + } + }) + .finally(() => { + this.afterLoadData(); + this.loading = false; + this.onClearSelected(); + }); + }, + getListSum() { + //汇总计算 + const thsi = this; + if (!thsi.url.sumListInfo) { + return; + } + const para = this.getQueryParams(); + + for (const i in para) { + if (typeof para[i] === 'string') { + para[i] = para[i].replace(/(^\s*)|(\s*$)/g, ''); + } + } + getAction(thsi.url.sumListInfo, para).then((res) => { + if (res.success) { + thsi.statistics = res.result; + } + }); + }, + afterLoadData() { + this.initDrag(); + }, + initDictConfig() { + // console.log('--这是一个假的方法!'); + }, + handleSuperQuery(params, matchType) { + //高级查询方法 + if (!params) { + this.superQueryParams = ''; + this.superQueryFlag = false; + } else { + this.superQueryFlag = true; + this.superQueryParams = JSON.stringify(params); + this.superQueryMatchType = matchType; + } + this.loadData(1); + }, + getQueryParams() { + //获取查询条件 + const sqp = {}; + if (this.superQueryParams) { + sqp['superQueryParams'] = encodeURI(this.superQueryParams); + sqp['superQueryMatchType'] = this.superQueryMatchType; + } + const param = Object.assign(sqp, this.queryParam, this.extQueryParam, this.isorter, this.filters); + param.field = this.getQueryField(); + param.pageNo = this.ipagination.current; + param.pageSize = this.ipagination.pageSize; + return filterObj(param); + }, + getQueryField() { + //TODO 字段权限控制 + let str = 'id,'; + this.columns.forEach(function (value) { + str += ',' + value.dataIndex; + }); + return str; + }, + initSelectedRowsByType() { + const that = this; + const selectedTypeObjArr = this.selectedTypeObj.filter((f) => f.type === that.routeType); + if (selectedTypeObjArr && selectedTypeObjArr.length > 0) { + this.selectedRowKeys = selectedTypeObjArr[0].selectedRowKeys; + this.selectionRows = selectedTypeObjArr[0].selectionRows; + } else { + // 备份当前type、selectedRowKeys、selectionRows + // this.selectedTypeObjArr.push({type:that.routeType,selectedRowKeys:this.selectedRowKeys,selectionRows:this.selectionRows}) + this.selectedRowKeys = []; + this.selectionRows = []; + } + }, + onRouteParamSelectChange(selectedRowKeys, selectionRows) { + const that = this; + const selectedTypeObjArr = this.selectedTypeObj.filter((f) => f.type === that.routeType); + if (selectedTypeObjArr && selectedTypeObjArr.length > 0) { + this.selectedTypeObj.map((o) => { + if (o.type === that.routeType) { + o.selectedRowKeys = selectedRowKeys; + o.selectionRows = selectionRows; + } + }); + } else { + this.selectedTypeObj.push({ + type: that.routeType, + selectedRowKeys: this.selectedRowKeys, + selectionRows: this.selectionRows, + }); + } + this.selectedRowKeys = selectedRowKeys; + this.selectionRows = selectionRows; + }, + onSelectChange(selectedRowKeys, selectionRows) { + this.selectedRowKeys = selectedRowKeys; + this.selectionRows = selectionRows; + }, + onClearSelected() { + if (this.clearSelectRows) { + this.selectedRowKeys = []; + this.selectionRows = []; + } + }, + searchQuery() { + this.loadData(1); + }, + superQuery() { + this.$refs.superQueryModal.show(); + }, + searchReset() { + this.queryParam = {}; + if (this.$refs.superQueryModal) { + this.$refs.superQueryModal.handleReset(); + } else { + this.handleSuperQuery(); + } + this.onClearSelected(); + }, + //根据选择行编辑,数据直接取选择行的那一条数据 + modefyBySelectedRow() { + if (this.selectedRowKeys.length === 1) { + this.edit(this.dataSource.filter((item) => this.selectedRowKeys[0] === item.id)[0]); + } else { + this.$warning({ title: '提示', content: '请选择且只能选择一条数据!' }); + } + }, + //根据id查询 + queryById(id, callback) { + if (id) { + getAction(this.url.queryById, { id: id }).then((res) => { + if (res.success) { + if (callback) { + callback(res.result); + } + } else { + this.$warning({ title: '提示', content: res.message }); + } + }); + } + }, + //批量/单条数据 删除 + del() { + // console.log(this.selectedRowKeys) + if (this.selectedRowKeys.length === 0) { + this.$warning({ title: '提示', content: '请至少选择一条数据!' }); + return; + } + if (this.selectedRowKeys.length === 1) { + const that = this; + this.$confirm({ + title: '确认删除', + content: '是否删除选中数据?', + onOk: function () { + that.handleDelete(that.selectedRowKeys[0]); + }, + }); + return; + } else { + this.batchDel(); + } + }, + afterDelete: function () {}, + //批量删除 + getIds: function () { + let ids = ''; + for (let a = 0; a < this.selectedRowKeys.length - 1; a++) { + ids += this.selectedRowKeys[a] + ','; + } + ids += this.selectedRowKeys[this.selectedRowKeys.length - 1]; + return ids; + }, + batchDel: function () { + if (!this.url.deleteBatch) { + this.$message.error('请设置url.deleteBatch属性!'); + return; + } + if (this.selectedRowKeys.length <= 0) { + this.$message.warning('请选择一条记录!'); + return; + } else { + let ids = ''; + for (let a = 0; a < this.selectedRowKeys.length - 1; a++) { + ids += this.selectedRowKeys[a] + ','; + } + ids += this.selectedRowKeys[this.selectedRowKeys.length - 1]; + const that = this; + this.$confirm({ + title: '确认删除', + content: '是否删除选中数据?', + onOk: function () { + that.loading = true; + deleteAction(that.url.deleteBatch, { ids: ids }) + .then((res) => { + if (res.success) { + //重新计算分页问题 + that.reCalculatePage(that.selectedRowKeys.length); + that.$message.success(res.message); + that.loadData(); + that.onClearSelected(); + that.afterDelete(); + } else { + that.$message.warning(res.message); + } + }) + .finally(() => { + that.loading = false; + }); + }, + }); + } + }, + clearByHeadOid() { + const that = this; + this.$confirm({ + title: '确认清空', + content: '是否清空数据?', + onOk: function () { + that.loading = true; + deleteAction(that.url.clear, that.clearByHeadOidParam) + .then((res) => { + if (res.success) { + that.$message.success(res.message); + that.loadData(); + } else { + that.$message.warning(res.message); + } + }) + .finally(() => { + that.loading = false; + }); + }, + }); + }, + //根据id删除 + handleDelete: function (id) { + if (!this.url.delete) { + this.$message.error('请设置url.delete属性!'); + return; + } + const that = this; + deleteAction(that.url.delete, { id: id }).then((res) => { + if (res.success) { + //重新计算分页问题 + that.reCalculatePage(1); + that.$message.success(res.message); + that.loadData(); + that.onClearSelected(); + that.afterDelete(); + } else { + that.$message.warning(res.message); + } + }); + }, + /* get请求的删除 */ + handleDel: function (id) { + if (!this.url.del) { + this.$message.error('请设置url.del属性!'); + return; + } + const that = this; + that.loading = true; + getAction(that.url.del, { id: id }) + .then((res) => { + if (res.success) { + //重新计算分页问题 + that.reCalculatePage(1); + that.$message.success(res.message); + that.loadData(); + that.onClearSelected(); + that.afterDelete(); + } else { + that.$message.error(res.message); + } + }) + .finally(() => { + that.loading = false; + }); + }, + reCalculatePage(count) { + //总数量-count + const total = this.ipagination.total - count; + //获取删除后的分页数 + const currentIndex = Math.ceil(total / this.ipagination.pageSize); + //删除后的分页数<所在当前页 + if (currentIndex < this.ipagination.current) { + this.ipagination.current = currentIndex; + } + }, + // 详情跳转路由 + gotoDetailRouter(record) { + this.$router.push(record); + }, + //子组件edit、add方法最后执行,可在子组件中重新自定义title、disableSubmit属性 + handleEdit: function (record) { + this.visible = false; + this.$refs.modalForm.title = '编辑'; + this.$refs.modalForm.disableSubmit = false; + this.$refs.modalForm.edit(record); + }, + handleAdd: function () { + this.visible = false; + this.$refs.modalForm.title = '新增'; + this.$refs.modalForm.disableSubmit = false; + this.$refs.modalForm.add(); + }, + handleTableChange(pagination, filters, sorter) { + //分页、排序、筛选变化时触发 + //TODO 筛选 + if (Object.keys(sorter).length > 0) { + this.isorter.column = sorter.field; + this.isorter.order = 'ascend' === sorter.order ? 'asc' : 'desc'; + } + this.ipagination = pagination; + this.loadData(); + }, + handleToggleSearch() { + this.toggleSearchStatus = !this.toggleSearchStatus; + if (this.resizeGridHeight) { + this.resizeGridHeight(); + } + }, + // 给popup查询使用(查询区域不支持回填多个字段,限制只返回一个字段) + getPopupField(fields) { + return fields.split(',')[0]; + }, + modalFormOk() { + // 新增/修改 成功时,重载列表 + this.loadData(); + //清空列表选中 + this.onClearSelected(); + this.visible = true; + this.$nextTick(() => { + this.initTableTr(); + }); + }, + modalFormClose() { + this.loadData(); + this.visible = true; + this.$nextTick(() => { + this.initTableTr(); + }); + }, + handleDetail: function (record) { + this.visible = false; + this.$refs.modalForm.edit(record); + this.$refs.modalForm.title = '详情'; + this.$refs.modalForm.disableSubmit = true; + }, + /* 导出 */ + handleExportXls2() { + const paramsStr = encodeURI(JSON.stringify(this.getQueryParams())); + const url = `${window._CONFIG['domianURL']}/${this.url.exportXlsUrl}?paramsStr=${paramsStr}`; + window.location.href = url; + }, + /* 导出文件根据文件参数 */ + handleExportFile(fileUrl, params) { + const paramsStr = encodeURI(JSON.stringify(params)); + const url = `${window._CONFIG['domianURL']}/${fileUrl}?paramsStr=${paramsStr}`; + window.location.href = url; + }, + handleExportXls(fileName) { + if (!fileName || typeof fileName !== 'string') { + fileName = '导出文件'; + } + if (this.ipagination.total > 100000) { + this.$message.warning('最多支持10W条数据的导出'); + return; + } + const param = this.getQueryParams(); + if (this.selectedRowKeys && this.selectedRowKeys.length > 0) { + param['selections'] = this.selectedRowKeys.join(','); + } + // console.log('导出参数', param) + downFile(this.url.exportXlsUrl, param).then((data) => { + if (!data) { + this.$message.warning('文件下载失败'); + return; + } + if (typeof window.navigator.msSaveBlob !== 'undefined') { + window.navigator.msSaveBlob(new Blob([data], { type: 'application/vnd.ms-excel' }), fileName + '.xls'); + } else { + const url = window.URL.createObjectURL(new Blob([data], { type: 'application/vnd.ms-excel' })); + const link = document.createElement('a'); + link.style.display = 'none'; + link.href = url; + link.setAttribute('download', fileName + '.xls'); + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); //下载完成移除元素 + window.URL.revokeObjectURL(url); //释放掉blob对象 + } + }); + }, + + handleExportXlsCommon(fileName, fileId) { + if (!fileName || typeof fileName !== 'string') { + fileName = '导出文件'; + } + if (!fileId) { + this.$message.warning('文件ID不存在'); + return; + } + downFile('/sys/common/excel/file/download?fileId=' + fileId).then((data) => { + if (!data) { + this.$message.warning('文件下载失败'); + return; + } + if (typeof window.navigator.msSaveBlob !== 'undefined') { + window.navigator.msSaveBlob(new Blob([data], { type: 'application/vnd.ms-excel' }), fileName + '.xlsx'); + } else { + const url = window.URL.createObjectURL(new Blob([data], { type: 'application/vnd.ms-excel' })); + const link = document.createElement('a'); + link.style.display = 'none'; + link.href = url; + link.setAttribute('download', fileName + '.xlsx'); + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); //下载完成移除元素 + window.URL.revokeObjectURL(url); //释放掉blob对象 + } + }); + }, + + /** + *导出excel文件 + */ + downloadExcelFile(record, type) { + let fileName = '导出文件'; + if (type === 1) { + fileName = record.fileName; + if (fileName !== null) { + const names = fileName.split('.'); + fileName = names[0] + '.xlsx'; + } + } else if (type === 2) { + fileName = record.fileName; + if (fileName !== null) { + const names = fileName.split('.'); + fileName = names[0] + '_错误.xlsx'; + } + } else if (type === 3) { + fileName = record.modelName + '.xlsx'; + } else { + fileName = record.modelName + '.xlsx'; + } + if (!fileName || typeof fileName !== 'string') { + fileName = 'Excel文件.xlsx'; + } + const reqUrl = '/sys/excel/download'; + downFile(reqUrl, { id: record.id, type: type }).then((data) => { + if (!data) { + this.$message.warning('文件下载失败'); + return; + } + if ('application/json' === data.type) { + const reader = new FileReader(); + reader.readAsText(data, 'utf-8'); + reader.onload = () => { + this.$message.error('文件不存在'); + }; + return; + } + if (typeof window.navigator.msSaveBlob !== 'undefined') { + window.navigator.msSaveBlob(new Blob([data], { type: 'application/vnd.ms-excel' }), fileName); + } else { + const url = window.URL.createObjectURL(new Blob([data], { type: 'application/vnd.ms-excel' })); + const link = document.createElement('a'); + link.style.display = 'none'; + link.href = url; + link.setAttribute('download', fileName); + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); //下载完成移除元素 + window.URL.revokeObjectURL(url); //释放掉blob对象 + this.$message.success('下载完成'); + } + }); + }, + //下载zip文件公共方法 + downloadZipFile(record) { + const fileId = record.fileId; + if (fileId === '' || fileId === null) { + this.$message.warning('文件Id不存在!'); + return; + } + const param = {}; + param.fileId = fileId; + const fileType = 'application/octet-stream'; + this.handleExportFileParams(fileId + '.zip', '/interfaces/message/common/download', param, fileType); + }, + handleExportFileParams(fileName, fileUrl, param, fileType) { + if (!fileName || typeof fileName !== 'string') { + fileName = '导出文件'; + } + // let param = this.getQueryParams(); + // if(this.selectedRowKeys && this.selectedRowKeys.length>0){ + // param['selections'] = this.selectedRowKeys.join(",") + // } + // console.log('导出参数', param) + downFile(fileUrl, param) + .then((data) => { + if (!data) { + this.$message.warning('文件下载失败'); + return; + } + if (data.fileName) { + fileName = data.fileName; + } + if (typeof window.navigator.msSaveBlob !== 'undefined') { + window.navigator.msSaveBlob(new Blob([data], { type: fileType }), fileName); + } else { + const url = window.URL.createObjectURL(new Blob([data], { type: fileType })); + const link = document.createElement('a'); + link.style.display = 'none'; + link.href = url; + link.setAttribute('download', fileName); + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); //下载完成移除元素 + window.URL.revokeObjectURL(url); //释放掉blob对象 + this.$message.success('下载成功'); + } + }) + .catch(() => { + this.$message.warning('文件下载失败!'); + return; + }); + }, + /* 导入 */ + handleImportExcel(info) { + this.loading = true; + if (info.status === 'success') { + this.loading = false; + if (info.response.success) { + if (info.response.code === 201) { + const { + message, + result: { msg }, + } = info.response; + this.$warning({ + title: message, + content: ( +
+ {msg} +
+
+ ), + }); + } else { + this.$message.success(info.response.message || `${info.name} 文件上传成功`); + } + this.loadData(); + } else { + this.$message.error(`${info.name} ${info.response.message}.`); + } + } else if (info.status === 'error') { + this.loading = false; + if (info.response.status === 500) { + const data = info.response; + const token = Vue.ls.get(ACCESS_TOKEN); + if (token && data.message.includes('Token失效')) { + this.$error({ + title: '登录已过期', + content: '很抱歉,登录已过期,请重新登录', + okText: '重新登录', + mask: false, + onOk: () => { + store.dispatch('Logout').then(() => { + Vue.ls.remove(ACCESS_TOKEN); + window.location.reload(); + }); + }, + }); + } + } else { + this.$message.error(`文件上传失败: ${info.msg} `); + } + } + }, + + /* 文件下载 */ + // update--autor:lvdandan-----date:20200630------for:修改下载文件方法名uploadFile改为downloadFile------ + async downloadFile(text) { + if (!text) { + this.$message.warning('未知的文件'); + return; + } + if (text.indexOf(',') > 0) { + text = text.substring(0, text.indexOf(',')); + } + // const url = getFileAccessHttpUrl(text); + const url = await getImgUrlWithHeader(text); + window.open(url); + }, + async downloadFileRename(text, fileName) { + if (!text) { + this.$message.warning('未知的文件'); + return; + } + if (text.indexOf(',') > 0) { + text = text.substring(0, text.indexOf(',')); + } + // const url = getFileAccessHttpUrl(text); + const url = await getImgUrlWithHeader(text); + const x = new XMLHttpRequest(); + x.open('GET', url, true); + x.responseType = 'blob'; + x.onload = function () { + const url = window.URL.createObjectURL(x.response); + const a = document.createElement('a'); + a.href = url; + a.download = fileName; + a.click(); + }; + x.send(); + }, + // 提交流程 + submitFlows(type, needValidate) { + if (this.selectionRows.length <= 0) { + this.$message.warning('请选择一条记录!'); + return; + } else { + const that = this; + const params = { processType: this.flowType }; + that.loading = true; + getAction('/workflow/process/my/list', params) + .then((res) => { + if (res.success) { + if (res.result && res.result.total) { + if (res.result.records.length === 0) { + this.$message.warning('请确认流程绑定状态!'); + that.onClearSelected(); + return; + } + this.$refs.workflowModal.show( + this.selectionRows, + type, + res.result.records[0].id, + this.url.flowStatusUrl, + this.url.flowLatestUrl, + needValidate + ); + } else { + this.$message.warning(res.message); + that.onClearSelected(); + } + } else { + this.$message.warning(res.message); + that.onClearSelected(); + } + }) + .finally(() => { + that.loading = false; + }); + /* Submit("s", "提交"), + Agree("A", "同意"), + Reject("R", "退回"), + Dispatch("D", "转派"), + Cancel("C", "撤消");*/ + } + }, + // 重置流程 + resetFlows() { + if (this.selectedRowKeys.length <= 0) { + this.$message.warning('请选择一条记录!'); + return; + } else { + let ids = ''; + for (let a = 0; a < this.selectedRowKeys.length; a++) { + ids += this.selectedRowKeys[a] + ','; + } + const that = this; + this.$confirm({ + content: '确定要重置流程状态?', + onOk: function () { + that.loading = true; + postAction(that.url.resetFlows, qs.stringify({ ids: ids })) + .then((res) => { + if (res.success) { + that.$message.success('重置成功!'); + that.loadData(); + that.onClearSelected(); + } else { + that.$message.warning(res.message); + } + }) + .finally(() => { + that.loading = false; + }); + }, + }); + } + }, + // 撤回流程 + cancelFlows: function () { + if (this.selectedRowKeys.length <= 0) { + this.$message.warning('请选择一条记录!'); + return; + } else { + //判断流程状态是否是待重新归类,是的话不进行撤回 + let num = ''; + const dataSurce = this.selectionRows; + for (let i = 0; i < dataSurce.length; i++) { + if (dataSurce[i].flowDetailStatus === '待重新归类' && dataSurce[i].flowStatus === '商品归类') { + num += 1; + } + } + if (num === '') { + const that = this; + this.$confirm({ + content: '是否撤回选中数据?', + onOk: function () { + const args = []; + that.selectionRows.some(function (item) { + const arg = { + taskId: item.taskId, + processId: that.processId, + billId: item.id, + billNo: item.wfBillNo, + status: 'C', + }; + args.push(arg); + }); + that.loading = true; + postAction('/workflow/process/execute', args) + .then((res) => { + if (res.success) { + that.$message.success('撤回成功!'); + that.loadData(); + that.onClearSelected(); + } else { + that.$message.warning(res.message); + } + }) + .finally(() => { + that.loading = false; + }); + }, + }); + } else { + this.$message.warning('待重新归类状态,无法撤回!'); + } + } + }, + getSelectionIds() { + if (this.selectionRows.length <= 0) { + this.$message.warning('请选择一条记录!'); + return ''; + } else { + let ids = ''; + for (let a = 0; a < this.selectionRows.length; a++) { + ids += this.selectedRowKeys[a] + ','; + } + return ids; + } + }, + // 查询流程记录 + showFlowStatus(billId) { + this.$refs.workflowModal.showFlowStatus(billId, this.url.flowStatusUrl); + }, + // 查询回执记录 + showReceiptInfo(billId) { + this.$refs.receiptInformationModal.showReceiptInfo(billId); + }, + // 申报 + declare() { + const ids = this.getSelectionIds(); + if (ids.length <= 0) { + return; + } + const that = this; + this.$confirm({ + content: '确认申报?', + onOk: function () { + that.loading = true; + postAction(that.url.declare, qs.stringify({ ids: ids })) + .then((res) => { + if (res.success) { + that.$message.success(res.message); + that.loadData(); + that.onClearSelected(); + } else { + that.$message.warning(res.message); + } + }) + .finally(() => { + that.loading = false; + }); + }, + }); + }, + colorShow(status) { + if ('0' === status) { + return 'color:#1890FF'; + } + if ('1' === status) { + return 'color:#ffc107'; + } + if ('2' === status) { + return 'color:#3aea3a'; + } + if ('3' === status) { + return 'color:red'; + } + if ('4' === status) { + return 'color:red'; + } + if ('5' === status) { + return 'color:red'; + } + if ('6' === status) { + return 'color:red'; + } + if ('7' === status) { + return 'color:red'; + } + return 'color:black'; + }, + selectRow(record) { + return { + on: { + // 鼠标单击行 + click: (event) => { + if (event.ctrlKey) { + const idIndex = this.selectedRowKeys.indexOf(record.id); //判断有没有当前点击的ID,没有返回-1 有返回下标 + if (idIndex === -1) { + this.selectedRowKeys.push(record.id); //添加 + this.selectionRows.push(record); //添加 + } else { + this.selectedRowKeys.splice(idIndex, 1); // 删除 + this.selectionRows.splice(idIndex, 1); // 删除 + } + } else { + const keys = []; + const records = []; + keys.push(record.id); + records.push(record); + this.selectedRowKeys = keys; + this.selectionRows = records; + } + }, + }, + }; + }, + customHeaderRow() { + return { + on: { + click: () => {}, // 点击行 + dblclick: () => {}, + contextmenu: (event) => { + event.stopPropagation(); + event.preventDefault(); + this.showClums(event); + }, + mouseenter: (event) => { + // console.log("鼠标移入行") + // console.log(event) + event.preventDefault(); + }, // 鼠标移入行 + mouseleave: () => { + // console.log("鼠标离开") + // console.log(event) + // let ev = event || window.event; + // ev.target.draggable = true; // 让你要拖动的行可以拖动,默认不可以 + }, + }, + }; + }, + /* eslint complexity: ["error", 20] */ + getTableScroll(x, y, addHeight) { + // /** + // * 获取第一个表格的可视化高度 + // * @param {*} extraHeight 额外的高度(表格底部的内容高度 Number类型,默认为74) + // * @param {*} id 当前页面中有多个table时需要制定table的id + // */ + let width = 1720; + let ext_head; + let extraHeight; + let id; + if (undefined === extraHeight || null === extraHeight) { + // 默认底部分页64 + 边距10 + // extraHeight = 74 + extraHeight = 10; + } + const table = document.getElementById(this.refColumnsKey); + if (table) { + width = table.offsetWidth - 8; + } + + if (undefined === y || null === y) { + ext_head = 0; + } else { + ext_head = y; + } + let tHeader = null; + if (id) { + tHeader = document.getElementById(id) + ? document.getElementById(id).getElementsByClassName('ant-table-thead')[0] + : null; + } else { + tHeader = document.getElementById(this.refColumnsKey); + } + + //表格内容距离顶部的距离 + let tHeaderBottom = 0; + if (tHeader) { + tHeaderBottom = tHeader.querySelectorAll('.ant-table-thead')[0].getBoundingClientRect().bottom; + this.setTableWidth(); + } + //窗体高度-表格内容顶部的高度-表格内容底部的高度 + // let height = window.innerHeight - tHeaderBottom - extraHeight + let height = '200px'; + if (this.autoHeight) { + height = `calc(100vh - ${tHeaderBottom + extraHeight + ext_head}px)`; + } + if (ext_head && ext_head !== 0) { + height = ext_head; + } + + // :scroll="{ x: true, y: true, scrollToFirstRowOnChange: true }" #scrollToFirstRowOnChange:当分页、排序、筛选变化后是否滚动到表格顶部 + if (addHeight) { + this.resizeGridHeight(addHeight); + } + return { x: width, y: height, scrollToFirstRowOnChange: true }; + //return height; + }, + + setTableWidth() { + let tbaleContent = null; + tbaleContent = document.getElementById(this.refColumnsKey); + if (tbaleContent) { + const table = tbaleContent.querySelectorAll('.ant-table-thead')[0]; + const tableWidth = table.offsetWidth; + table.style.width = tableWidth; + } + }, + getTableHeight() { + const tHeader = document.getElementById(this.refColumnsKey).querySelectorAll('.ant-table-thead')[0]; + //表格内容距离顶部的距离 + let tHeaderBottom = 0; + if (tHeader) { + tHeaderBottom = tHeader.getBoundingClientRect().bottom; + } + return window.innerHeight - tHeaderBottom + ' px'; + }, + getUserSetting(key) { + const userSettings = Vue.ls.get(USER_SETTING); + if (userSettings) { + const userSetting = userSettings[key]; + if (userSetting) { + this.settingColumns = JSON.parse(userSetting); + } + } + //初始化 + this.$nextTick(() => { + this.initColumns(false); + }); + }, + saveUserSetting(settingKey) { + this.settingColumns.sort(function (a, b) { + return a.sortNo - b.sortNo; + }); + const para = { settingKey: settingKey, settingValue: JSON.stringify(this.settingColumns) }; + postAction('/system/sysSetting/save', para).then((res) => { + if (res.success) { + this.$store.dispatch('saveUserSetting', para); + } else { + this.$message.warning(res.message); + } + }); + }, + getScrollContainer() { + return this.$refs.table.$el.querySelector('.ant-table-body'); + }, + // 拖动组件初始化 + initDrag() { + // 获取元素 初始化 + if (undefined === this.$refs.table || null === this.$refs.table) { + return; + } + if (undefined === this.$refs.table.$el || null === this.$refs.table.$el) { + return; + } + const el = this.$refs.table.$el.querySelectorAll('.ant-table-thead > tr')[0]; + // 构造拖动元素 + Sortable.create(el, { + ghostClass: 'sortable-ghost', + // 动画时间 + // animation: 150, + handle: 'tr', + setData: function (dataTransfer, dragEl) { + dataTransfer.setData('Text', dragEl.textContent); + }, + // 过滤器,不需要进行拖动的元素 + filter: '.ant-table-selection-column', + onStart: () => { + const container = this.getScrollContainer(); + this.scrollPosition = container.scrollLeft; + }, + // 拖动结束时回调 + onEnd: (evt) => { + //判断是否移动 + if (evt.newIndex === evt.oldIndex) { + return; + } + // 兼容check 不交换 + if (evt.newIndex === 0 || !this.refColumnsKey) { + const tagName = evt.item.tagName; + const items = evt.from.getElementsByTagName(tagName); + if (evt.oldIndex > evt.newIndex) { + evt.from.insertBefore(evt.item, items[evt.oldIndex + 1]); + } else { + evt.from.insertBefore(evt.item, items[evt.oldIndex]); + } + return; + } + // selection-column + let st = 0; + const firstEle = el.firstElementChild; + if (firstEle.getAttribute('key') === 'selection-column') { + st = 1; + } + const stRow = this.refColumns[evt.oldIndex - st]; + const endRow = this.refColumns[evt.newIndex - st]; + //结束行序号 + const edSortNo = endRow.sortNo; + //开始行序号 + const sortNo = stRow.sortNo; + const column = this.settingColumns.splice(sortNo, 1)[0]; + this.settingColumns.splice(edSortNo, 0, column); + let step = 0; + this.settingColumns.forEach((a) => { + a.sortNo = step; + step++; + }); + // //初始化动态展示列数组置空 + this.refColumns = []; + // //初始化table列显示 + this.$nextTick(() => { + this.initColumns(true); + }); + setTimeout(() => { + const container = this.getScrollContainer(); + container.scrollLeft = this.scrollPosition; + }, 100); + }, + }); + }, + // 在改动数据重新加载 + dragDataChange() { + this.$nextTick(() => this.initDrag()); + }, + //触发表格列显示弹窗 + showClums(e) { + this.$refs.choose.show(this.settingColumns, e); + }, + //动态列 控制列的显示 reeve --20221010优化-- + columnsChange(arr) { + //判断 arr是否为空 + if (arr) { + //初始化动态展示列数组 + this.refColumns = []; + //遍历个人设置列数组 + this.settingColumns.forEach((a) => { + // 判断是否存在该列 存在即为显示 + if (arr.indexOf(a.title) > -1) { + a.show = true; + } else { + a.show = false; + } + }); + //初始化table列显示 + if (this.initColumn) { + this.$nextTick(() => { + this.initColumns(true); + }); + } + } + }, + initColumns(loadFlag) { + // 备份原始列配置(仅首次执行) + if (!this.bkColumns) { + this.bkColumns = JSON.parse(JSON.stringify(this.columns)); + } + + // 初始化显示列数组 + this.refColumns = []; + const orgColumns = this.columns; + + // 处理用户自定义列配置 + if (this.settingColumns && this.settingColumns.length > 0) { + this.handleExistingSettings(orgColumns, loadFlag); + } else { + // 无配置时初始化默认列设置 + this.initDefaultSettings(orgColumns); + } + + // 初始化拖拽组件(下一帧执行) + this.$nextTick(() => { + this.initColumnsWidth(); + this.initDrag(); + }); + }, + + // 处理已存在的用户列配置 + handleExistingSettings(orgColumns, loadFlag) { + const columnMap = this.createColumnMap(orgColumns); + const { refColumns, notExArr } = this.processSettingColumns(columnMap); + this.refColumns = refColumns; + + const changeFlag = this.handleMissingColumns(columnMap, notExArr); + + // 保存排序变更 + if (changeFlag || loadFlag) { + this.resetSortNumbers(); + this.saveUserSetting(this.refColumnsKey); + } + }, + + // 创建列标题到列配置的映射 + createColumnMap(orgColumns) { + const columnMap = new Map(); + if (!orgColumns) { + return columnMap; + } + + orgColumns.forEach((column) => { + // 设置默认宽度 + if (!column.width) { + column.width = 50; + } + columnMap.set(column.title, column); + }); + + return columnMap; + }, + + // 处理配置的列信息 + processSettingColumns(columnMap) { + const refColumns = []; + const notExArr = []; + + this.settingColumns.forEach((setting) => { + if (columnMap.has(setting.title)) { + if (setting.show) { + const columnObj = columnMap.get(setting.title); + columnObj.sortNo = setting.sortNo; + columnObj.show = true; + columnObj.width = setting.width || 50; + refColumns.push(columnObj); + columnMap.delete(setting.title); + } + } else { + notExArr.push(setting); + } + }); + + return { refColumns, notExArr }; + }, + + // 处理缺失的列和无效配置 + handleMissingColumns(columnMap, notExArr) { + let changeFlag = false; + let indexNm = this.settingColumns.length; + + // 添加原始列中未配置的列 + columnMap.forEach((column) => { + if (!this.hasTitle(column.title)) { + column.sortNo = indexNm++; + column.show = false; + this.settingColumns.push(column); + } + }); + + // 移除不存在的列配置 + notExArr.forEach((setting) => { + changeFlag = true; + const index = this.settingColumns.indexOf(setting); + if (index > -1) { + this.settingColumns.splice(index, 1); + } + }); + + return changeFlag; + }, + + // 重置排序号 + resetSortNumbers() { + this.settingColumns.forEach((column, index) => { + column.sortNo = index; + }); + }, + + // 初始化默认列配置 + initDefaultSettings(orgColumns) { + let sortIndex = 0; + const columnArr = []; + + if (orgColumns) { + orgColumns.forEach((column) => { + // 设置列默认属性 + column.show = true; + column.sortNo = sortIndex; + if (!column.width && column.title) { + column.width = 50; + } + + // 添加到配置数组 + columnArr.push({ + sortNo: sortIndex, + title: column.title, + show: true, + width: column.width, + }); + + sortIndex++; + }); + } + + this.refColumns = orgColumns; + this.settingColumns = columnArr; + this.saveUserSetting(this.refColumnsKey); + }, + //初始化table列宽度 + initColumnsWidth() { + if (!this.autoInitColumn) { + return; + } + const table = document.getElementById(this.refColumnsKey); + if (!table) { + return; + } + this.tableStWidth = table.offsetWidth; + const allwidth = this.getAllColumnsWidth(); + if (allwidth < this.tableStWidth) { + const lastC = this.refColumns[this.refColumns.length - 1]; + lastC.width = lastC.width + this.tableStWidth - allwidth - 10; + } + }, + //重置 列显示 恢复初始化状态 reeve + resetColumns() { + const orgColumns = JSON.parse(JSON.stringify(this.bkColumns)); + this.refColumns = orgColumns; + const columnArr = []; + let sortIndex = 0; + if (undefined !== orgColumns) { + orgColumns.forEach((a) => { + const columnObj = {}; + columnObj.sortNo = sortIndex; + columnObj.title = a.title; + columnObj.show = true; + columnObj.width = a.width ? a.width : 50; + sortIndex++; + columnArr.push(columnObj); + }); + } + this.settingColumns = columnArr; + // this.saveUserSetting(this.refColumnsKey) + this.initColumns(true); + this.$refs.choose.initColumnsSetting(this.settingColumns); + }, + toTreeByRecursion( + source = [], + idField = 'id', + parentIdField = 'parentId', + parentIdNoneValue = '', + childrenField = 'children', + treeOption = undefined + ) { + // /** + // * 数据转换为树形(递归),示例:toTreeByRecursion(source, 'id', 'parentId', null, 'children') + // * @param {Array} source 数据 + // * @param {String} idField 标识字段名称 + // * @param {String} parentIdField 父标识字段名称 + // * @param {Any} parentIdNoneValue 父级标识空值 + // * @param {String} childrenField 子节点字段名称 + // * @param {Object} treeOption tree树形配置 + // */ + + const treeOptions = { + enable: false, // 是否开启转tree插件数据 + keyField: 'key', // 标识字段名称,默认为key + valueField: 'value', // 值字段名称,默认为value + titleField: 'title', // 标题字段名称,默认为title + + keyFieldBind: 'id', // 标识字段绑定字段名称,默认为id + valueFieldBind: 'id', // 值字段名称绑定字段名称,默认为id + titleFieldBind: 'name', // 标题字段名称绑定字段名称,默认为name + }; + // 合并tree树形配置 + if (treeOption) { + Object.assign(treeOptions, treeOption); + } + + // 对源数据深度克隆 + const cloneData = JSON.parse(JSON.stringify(source)); + return cloneData.filter((parent) => { + // 返回每一项的子级数组 + const branchArr = cloneData.filter((child) => parent[idField] === child[parentIdField]); + + // 绑定tree树形配置 + if (treeOptions.enable) { + branchArr.map((child) => { + child[treeOptions.keyField] = child[treeOptions.keyFieldBind]; + child[treeOptions.valueField] = child[treeOptions.valueFieldBind]; + child[treeOptions.titleField] = child[treeOptions.titleFieldBind]; + return child; + }); + } + + // 如果存在子级,则给父级添加一个children属性,并赋值,否则赋值为空数组 + if (branchArr.length > 0) { + parent[childrenField] = branchArr; + parent['hasChild'] = true; + } else { + parent[childrenField] = []; + } + + // 绑定tree树形配置 + if (treeOptions.enable) { + parent[treeOptions.keyField] = parent[treeOptions.keyFieldBind]; + parent[treeOptions.valueField] = parent[treeOptions.valueFieldBind]; + parent[treeOptions.titleField] = parent[treeOptions.titleFieldBind]; + } + + return parent[parentIdField] === parentIdNoneValue; // 返回第一层 + }); + }, + hasTitle(title) { + for (let i = 0; i < this.settingColumns.length; i++) { + this.settingColumns[i]; + if (this.settingColumns[i].title === title) { + return true; + } + } + return false; + }, + //Table列宽度左右拖拽 + onDragCallback(e) { + if (e) { + e.stopPropagation(); + e.preventDefault(); + } + this.nowColumnKey = e.target.parentNode.getAttribute('key'); + return true; + }, + onDrag(x) { + if (x < 30) { + return false; + } else if (x > 800) { + return false; + } + let colWidth = 30; + this.columns.forEach((a) => { + if (a.dataIndex === this.nowColumnKey) { + colWidth = a.width; + } + }); + const width = this.getAllColumnsWidth() - colWidth + x; + if (width - this.tableStWidth + 10 < 0) { + return false; + } + return true; + }, + initTableTr() { + const documents = document.getElementsByTagName('tr'); + for (let i = 0; i < documents.length; i++) { + const parentClassName = documents[i].parentNode.className; + if (parentClassName === 'ant-table-thead') { + documents[i].addEventListener( + 'click', + (e) => { + const className = e.target.className; + if (typeof className === 'string' && className !== 'ant-checkbox-input') { + e.stopPropagation(); + e.preventDefault(); + } + }, + true + ); + } + } + }, + getAllColumnsWidth() { + let width = 60; + for (let i = 0; i < this.refColumns.length; i++) { + width += this.refColumns[i].width; + } + return width; + }, + // 使用默认参数简化joiner的初始化 + dictRender(text, record, name, joiner = '-') { + // 处理text为空的情况 + if (!text && text !== 0) { + return ''; + } + + // 处理name或对应值不存在的情况 + if (!name || !record?.[name]) { + return String(text); + } + + // 拼接并返回结果 + return `${text}${joiner}${record[name]}`; + }, + }, +}; +export { WGridResizeByCssMixin }; + diff --git a/src/mixins/KeyUpEvent.js b/src/mixins/KeyUpEvent.js new file mode 100644 index 0000000..b118738 --- /dev/null +++ b/src/mixins/KeyUpEvent.js @@ -0,0 +1,132 @@ +export const KeyUpEvent = { + data() { + return {} + }, + created() {}, + computed: {}, + methods: { + enterEvent(e) { + console.log('触发回车') + const thisEle = e.target + console.log(thisEle) + const eleArr = [] + const fromArr = this.getFormElemnt(e.target) + + for (let j = 0; j < fromArr.length; j++) { + this.getElement(fromArr[j], eleArr) + } + console.log('fromArr') + console.log(fromArr) + let int = eleArr.length + let endflag = false + for (let i = 0; i < eleArr.length; i++) { + if (endflag) { + break + } + if (eleArr[i] === this.getElemntByClassName(thisEle)) { + if (i === eleArr.length - 1) { + break + } + int = i + 1 + endflag = true + } + } + console.log('eleArr') + console.log(eleArr) + if (eleArr[int] && 'input' !== thisEle.name) { + this.getAction(int, eleArr) + } + }, + getElement(ele, eleArr) { + if ('ant-form-item-children' === ele.className) { + eleArr.push(ele.childNodes[0]) + // return + } + if (ele.childNodes.length === 0) { + return + } + ele.childNodes.forEach((a) => { + this.getElement(a, eleArr) + }) + }, + getElementName(ele, eleArr) { + if ('input' === ele.localName) { + eleArr.push(ele) + return + } + if (ele.childNodes.length !== 0) { + ele.childNodes.forEach((a) => { + this.getElementName(a, eleArr) + }) + } + }, + getChildrenElement(ele, old) { + const eles = ele.parentElement + if ('ant-form-item-children' === eles.className) { + console.log(ele) + return ele + } + this.getChildrenElement(eles, old) + }, + getFormElemnt(ele) { + const parentEle = ele.parentElement + if (!parentEle) { + return + } + if ('form' === parentEle.localName) { + return parentEle.childNodes + } + ele = parentEle + }, + getElemntByClassName(ele) { + const parentEle = ele.parentElement + if (!parentEle) { + return + } + if ('ant-form-item-children' === parentEle.className) { + return ele + } + ele = parentEle + }, + getAction(index, dataArr) { + const ele = dataArr[index] + console.log('action:ss') + console.log(ele) + if (!ele) { + return + } + const arr = [] + this.getElementName(ele, arr) + console.log('arr') + console.log(arr) + if (arr.length > 0) { + const inputele = arr[0] + if (true === inputele.disabled) { + this.getAction(index + 1, dataArr) + return + } + if (inputele.className.indexOf('select') > -1) { + ele.click() + return + } + if (inputele.className.indexOf('calendar') > -1) { + inputele.click() + return + } + if (inputele.className.indexOf('number') > -1) { + inputele.focus() + return + } + if ('radio' === inputele.type || 'file' === inputele.type) { + this.getAction(index + 1, dataArr) + } else { + ele.focus() + return + } + } else { + ele.click() + return + } + }, + }, +} diff --git a/src/mixins/OnlineCommonUtil.js b/src/mixins/OnlineCommonUtil.js new file mode 100644 index 0000000..cd7fc57 --- /dev/null +++ b/src/mixins/OnlineCommonUtil.js @@ -0,0 +1,27 @@ +import { formatDate } from '@/utils/util' +import Area from '@/components/_util/Area' + +const onlUtil = { + data(){ + return { + mixin_pca:'', + flowCodePre: 'onl_' + } + }, + created(){ + this.mixin_pca = new Area() + }, + methods:{ + simpleDateFormat(millisecond, format){ + return formatDate(millisecond, format) + }, + getPcaText(code){ + return this.mixin_pca.getText(code); + }, + getPcaCode(text){ + return this.mixin_pca.getCode(text) + } + } +} + +export { onlUtil } \ No newline at end of file diff --git a/src/mixins/WForm.js b/src/mixins/WForm.js new file mode 100644 index 0000000..247e23e --- /dev/null +++ b/src/mixins/WForm.js @@ -0,0 +1,55 @@ +export const WForm = { + create() { + this.formNodes = [] + }, + data() { + return { + formNodes: [], + } + }, + methods: { + /* eslint complexity: ["error", 20] */ + bindEnterJump(forms) { + if (forms === null) { + return + } + if (Array.isArray(forms)) { + this.formNodes = forms + } else { + this.formNodes.push(forms) + } + for (let i = 0; i < this.formNodes.length; i++) { + const currentForm = this.formNodes[i] + const arrEls = currentForm.$el + + const arrInputs = [] + if (arrEls !== null) { + const reg = /^[0-9]*$/ + for (const index in arrEls) { + if (reg.test(index)) { + const el = arrEls[index] + if (el.tagName === 'INPUT') { + arrInputs.push(el) + } + } + } + if (arrInputs !== null && arrInputs.length > 0) { + for (let j = 0; j < arrInputs.length - 1; j++) { + const input = arrInputs[j] + const nextInput = arrInputs[j + 1] + input.onkeyup = function (e) { + if (e.keyCode === 13) { + nextInput.focus() + if (nextInput.className === 'ant-select-search__field') { + nextInput.autofocus = true + nextInput.select() + } + } + } + } + } + } + } + }, + }, +} diff --git a/src/mixins/WGridResizeByCssMixin.js b/src/mixins/WGridResizeByCssMixin.js new file mode 100644 index 0000000..2a2aa8a --- /dev/null +++ b/src/mixins/WGridResizeByCssMixin.js @@ -0,0 +1,206 @@ +export const WGridResizeByCssMixin = { + data() { + return { + tablePageSearchWrapperOffSetHeight: null, + tableOperatorOffSetHeight: null, + tablebodyHeight: null, + tablebodyMaxHeight: null, + tablebodyNode: this.findtablebodyNode, + tablePageSearchWrapperNode: this.findtablePageSearchWrapperNode, + tableOperatorNode: this.findtableOperatorNode, + tablePageSearchWrapperCss: 'table-page-search-wrapper', + tableOperatorCss: 'table-operator', + tablebodyCss: 'j-table-force-nowrap', + tableDataBodyCss: 'ant-table-body', + tableLessHeight: 480, + tableLessWidth: 1718, + } + }, + create() { + this.initeParams() + }, + beforeDestroy() { + window.removeEventListener('resize', this.resizeGridHeight) + }, + mounted() { + const that = this + this.tablebodyNode = this.findtablebodyNode + this.tablePageSearchWrapperNode = this.findtablePageSearchWrapperNode + this.tableOperatorNode = this.findtableOperatorNode + window.addEventListener('resize', that.resizeGridHeight) + this.resizeGridHeight() + }, + watch: { + tablePageSearchWrapperOffSetHeight: { + handler() {}, + immediate: true, + deep: true, + }, + }, + computed: { + findtablebodyNode: function () { + if (this.tablebodyNode) { + return this.tablebodyNode + } + const that = this + if (undefined === this.$el.childNodes || null === this.$el.childNodes) { + return + } + + if ( + undefined === this.$el.childNodes[0] || + undefined === this.$el.childNodes[0].childNodes || + null === this.$el.childNodes[0].childNodes || + 1 >= this.$el.childNodes[0].childNodes.length + ) { + return + } + if ( + undefined === this.$el.childNodes[0].childNodes[2].childNodes || + null === this.$el.childNodes[0].childNodes[2].childNodes + ) { + return + } + this.$el.childNodes[0].childNodes[2].childNodes.forEach(function (item) { + if ( + null !== item && + undefined !== item && + null !== item.className && + undefined !== item.className && + item.className.indexOf(that.tablebodyCss) > -1 + ) { + const node = that.findNote(item, that.eq, that.tableDataBodyCss) + that.tablebodyNode = node + return that.tablebodyNode + } + }) + return that.tablebodyNode + }, + findtablePageSearchWrapperNode: function () { + if (this.tablePageSearchWrapperNode) { + return this.tablePageSearchWrapperNode + } + const that = this + if ( + undefined === that.$el.childNodes[0] || + undefined === that.$el.childNodes[0].childNodes || + null === that.$el.childNodes[0].childNodes + ) { + return + } + that.$el.childNodes[0].childNodes.forEach(function (item) { + if (item.className === that.tablePageSearchWrapperCss) { + that.tablePageSearchWrapperNode = item + return that.tablePageSearchWrapperNode + } + }) + return that.tablePageSearchWrapperNode + }, + findtableOperatorNode: function () { + if (this.tableOperatorNode) { + return this.tableOperatorNode + } + const that = this + if ( + undefined === that.$el.childNodes[0] || + undefined === that.$el.childNodes[0].childNodes || + null === that.$el.childNodes[0].childNodes + ) { + return + } + that.$el.childNodes[0].childNodes.forEach(function (item) { + if (item.className === that.tableOperatorCss) { + that.tableOperatorNode = item + return that.tableOperatorNode + } + }) + return that.tableOperatorNode + }, + }, + methods: { + initeParams() { + this.tablePageSearchWrapperOffSetHeight = null + this.tableOperatorOffSetHeight = null + this.tablebodyHeight = null + this.tablebodyMaxHeight = null + this.tablebodyNode = null + this.tablePageSearchWrapperNode = null + this.tableOperatorNode = null + }, + resizeGridHeight(addHeight) { + if (!addHeight) { + addHeight = 0 + } + if (this.tablePageSearchWrapperNode === null || this.tablePageSearchWrapperNode === undefined) { + return + } + if (this.tableOperatorNode === null || this.tableOperatorNode === undefined) { + return + } + if (this.tablebodyNode === null || this.tablebodyNode === undefined) { + return + } + this.$nextTick(function () { + this.tablePageSearchWrapperOffSetHeight = this.tablePageSearchWrapperNode.offsetHeight + this.tableOperatorOffSetHeight = this.tableOperatorNode.offsetHeight + if (this.tablebodyNode === null) { + const node = this.findtablebodyNode + this.tablebodyNode = node + } + + if (this.tablebodyNode === null) { + return + } + + this.tablebodyMaxHeight = this.tablebodyNode.style.maxHeight + this.tablebodyHeight = this.tablebodyNode.style.height + + const titleHeight = this.tablePageSearchWrapperOffSetHeight + this.tableOperatorOffSetHeight + 50 + const lessHeight = window.innerHeight - 140 - titleHeight + this.tableLessHeight = lessHeight - 6 + this.tableLessWidth = window.innerWidth - 200 - 8 + this.tablebodyNode.style.maxHeight = lessHeight + 'px' + this.tablebodyNode.style.height = lessHeight + addHeight + 'px' + console.log('this.tableLessHeight:' + this.tableLessHeight) + }) + }, + getDefaultScollShow: function () { + return { x: 1710, y: this.tableLessHeight } + }, + findNote(childNode, eq, cssName) { + if (childNode === null) { + return null + } + if (childNode.childNodes.length === 0) { + return null + } + if (eq === null) { + return null + } + for (let i = 0; i < childNode.childNodes.length; i++) { + const node = childNode.childNodes[i] + if (node.nodeName === 'DIV') { + if (eq(node, cssName)) { + return node + } + if (node.className.indexOf('ant-table-header') > -1) { + continue + } + const tagNode = this.findNote(node, eq, cssName) + if (tagNode) { + return tagNode + } + } + } + }, + eq(node, value) { + if (node === null) { + return false + } + if (node.className === value) { + return true + } + return false + }, + }, +} diff --git a/src/mixins/WGridResizeMixin.js b/src/mixins/WGridResizeMixin.js new file mode 100644 index 0000000..10720d7 --- /dev/null +++ b/src/mixins/WGridResizeMixin.js @@ -0,0 +1,100 @@ +export const WGridResizeMixin = { + data() { + return { + tablePageSearchWrapperOffSetHeight: null, + tableOperatorOffSetHeight: null, + tablebodyHeight: null, + tablebodyMaxHeight: null, + tablebodyNode: null, + } + }, + create() {}, + beforeDestroy() { + window.removeEventListener('resize', this.resizeGridHeight) + }, + mounted() { + const that = this + window.addEventListener('resize', that.resizeGridHeight) + this.resizeGridHeight() + }, + watch: { + tablePageSearchWrapperOffSetHeight: { + handler() {}, + immediate: true, + deep: true, + }, + }, + methods: { + resizeGridHeight() { + if (this.$refs === null || this.$refs === undefined) { + return + } + if (this.$refs.tablepagesearchwrapper === null || this.$refs.tablepagesearchwrapper === undefined) { + return + } + if (this.$refs.tableoperator === null || this.$refs.tableoperator === undefined) { + return + } + if (this.$refs.tablebody === null || this.$refs.tablebody === undefined) { + return + } + this.$nextTick(function () { + this.tablePageSearchWrapperOffSetHeight = this.$refs.tablepagesearchwrapper.offsetHeight + this.tableOperatorOffSetHeight = this.$refs.tableoperator.offsetHeight + if (this.tablebodyNode === null || this.tablebodyNode === undefined) { + const node = this.findNote(this.$refs.tablebody.childNodes[0], this.eq) + this.tablebodyNode = node + } + + if (this.tablebodyNode === null || this.tablebodyNode === undefined) { + return + } + + this.tablebodyMaxHeight = this.tablebodyNode.style.maxHeight + this.tablebodyHeight = this.tablebodyNode.style.height + + const titleHeight = this.tablePageSearchWrapperOffSetHeight + this.tableOperatorOffSetHeight + 50 + const lessHeight = window.innerHeight - 126 - titleHeight + + this.tablebodyNode.style.maxHeight = lessHeight + 'px' + this.tablebodyNode.style.height = lessHeight + 'px' + console.log('lessHeight', lessHeight) + }) + }, + findNote(childNode, eq) { + if (childNode === null) { + return null + } + if (childNode.childNodes.length === 0) { + return null + } + if (eq === null) { + return null + } + for (let i = 0; i < childNode.childNodes.length; i++) { + const node = childNode.childNodes[i] + if (node.nodeName === 'DIV') { + if (eq(node, 'ant-table-body')) { + return node + } + if (node.className.indexOf('ant-table-header') > -1) { + continue + } + const tagNode = this.findNote(node, eq) + if (tagNode) { + return tagNode + } + } + } + }, + eq(node, value) { + if (node === null) { + return false + } + if (node.className === value) { + return true + } + return false + }, + }, +} diff --git a/src/mixins/WInterfaceMixin.js b/src/mixins/WInterfaceMixin.js new file mode 100644 index 0000000..da6f67a --- /dev/null +++ b/src/mixins/WInterfaceMixin.js @@ -0,0 +1,118 @@ +import { postAction } from '@/api/manage' +import qs from 'qs' + +export const WInterfaceMixin = { + create() { + }, + data() { + return { + createLoading:false, + updateLoading:false, + deleteLoading:false, + } + }, + methods: { + updateData() { + + if (this.selectedRowKeys.length <= 0) { + this.$message.warning('请选择一条记录!') + return + } else { + let ids = '' + for (let a = 0; a < this.selectedRowKeys.length; a++) { + ids += this.selectedRowKeys[a] + ',' + } + const that = this + this.$confirm({ + content: '是否更新数据?', + onOk: function () { + that.loading = true + that.updateLoading = true + postAction(that.url.updateData, qs.stringify({ ids: ids, confirmFlag: false })) + .then((res) => { + if (res.success) { + that.$message.success(res.message) + that.loadData() + that.onClearSelected() + } else { + if (res.code === 999) { + that.$confirm({ + title: '确认操作', + content: res.message, + onOk: function () { + that.comfirmUpdate() + }, + }) + } else { + that.$message.warning(res.message) + } + + } + }) + .finally(() => { + that.loading = false + that.updateLoading = false + }) + }, + }) + } + }, + comfirmUpdate() { + if (this.selectedRowKeys.length <= 0) { + this.$message.warning('请选择一条记录!') + return + } else { + let ids = '' + for (let a = 0; a < this.selectedRowKeys.length; a++) { + ids += this.selectedRowKeys[a] + ',' + } + const that = this + this.loading = true + this.updateLoading = true + postAction(this.url.updateData, qs.stringify({ ids: ids, confirmFlag: true })) + .then((res) => { + if (res.success) { + that.$message.success(res.message) + that.loadData() + that.onClearSelected() + } else { + that.$message.warning(res.message) + } + }) + .finally(() => { + that.loading = false + that.updateLoading = false + }) + } + }, + deleteData() { + if (this.selectedRowKeys.length !== 1) { + this.$message.warning('请选择单条记录!') + return + } else { + const that = this + this.$confirm({ + content: '确认删除关联清单数据?', + onOk: function () { + that.loading = true + that.deleteLoading = true + postAction(that.url.deleteData, qs.stringify({ ids: that.selectedRowKeys[0]})) + .then((res) => { + if (res.success) { + that.$message.success(res.message) + that.loadData() + that.onClearSelected() + } else { + that.$message.warning(res.message) + } + }) + .finally(() => { + that.loading = false + that.deleteLoading = false + }) + }, + }) + } + }, + } +} diff --git a/src/mixins/WThorFit.js b/src/mixins/WThorFit.js new file mode 100644 index 0000000..45399f3 --- /dev/null +++ b/src/mixins/WThorFit.js @@ -0,0 +1,3 @@ +export const WThorFit={ + +} \ No newline at end of file diff --git a/src/mixins/WebsocketMixin.js b/src/mixins/WebsocketMixin.js new file mode 100644 index 0000000..e86ee42 --- /dev/null +++ b/src/mixins/WebsocketMixin.js @@ -0,0 +1,63 @@ +import store from '@/store/' +import { ACCESS_TOKEN } from '@/store/mutation-types' +import Vue from 'vue' + +export const WebsocketMixin = { + mounted() { + this.initWebSocket(); + }, + destroyed: function () { + // 离开页面生命周期函数 + this.websocketOnclose(); + }, + methods:{ + initWebSocket: function () { + const token = Vue.ls.get(ACCESS_TOKEN) + console.log("------------WebSocket连接成功"); + // WebSocket与普通的请求所用协议有所不同,ws等同于http,wss等同于https + const userId = store.getters.userInfo.id; + if(!this.socketUrl.startsWith('/')){ + this.socketUrl = '/' + this.socketUrl + } + if(!this.socketUrl.endsWith('/')){ + this.socketUrl = this.socketUrl + '/' + } + const url = window._CONFIG['domianURL'].replace("https://","wss://").replace("http://","ws://") + this.socketUrl + userId + "/" + token; + this.websock = new WebSocket(url); + this.websock.onopen = this.websocketOnopen; + this.websock.onerror = this.websocketOnerror; + this.websock.onmessage = this.websocketOnmessage; + this.websock.onclose = this.websocketOnclose; + }, + websocketOnopen: function () { + console.log("WebSocket连接成功"); + }, + websocketOnerror: function () { + console.log("WebSocket连接发生错误"); + this.reconnect(); + }, + websocketOnclose: function () { + this.reconnect(); + }, + websocketSend(text) { + // 数据发送 + try { + this.websock.send(text); + } catch (err) { + console.log("send failed (" + err.code + ")"); + } + }, + reconnect() { + const that = this; + if(that.lockReconnect) {return;} + that.lockReconnect = true; + //没连接上会一直重连,设置延迟避免请求过多 + setTimeout(function () { + console.info("尝试重连..."); + that.initWebSocket(); + that.lockReconnect = false; + }, 5000); + }, + } + +} \ No newline at end of file diff --git a/src/mixins/tabDrag.js b/src/mixins/tabDrag.js new file mode 100644 index 0000000..b615e8f --- /dev/null +++ b/src/mixins/tabDrag.js @@ -0,0 +1,180 @@ +let curIndex = 0; +let maxIndex = 0; + +function markCanFocusEles(el) { + const eles = el.querySelectorAll("input") + // let eleArr = [] + // for (let i = 0; i < el.length; i++) { + // eleArr.push(el[i]); + // } + maxIndex = eles.length - 1; + eles.forEach((ele, index) => { + const key = ++index + if (ele.className === "ant-select-search__field" || ele.className.indexOf("select") > -1 ) { + const parentEle = getParentEle(ele) + if (parentEle) {parentEle.setAttribute("data-index", key);} + } else { + ele.setAttribute("data-index", key); + } + }); +} + +function getParentEle(ele) { + let oEle = ele + // while (true) { + const parentEle = oEle.parentElement + if (!parentEle) {return} + if (parentEle.getAttribute("tabindex")) {return parentEle} + oEle = parentEle + // } +}; + +function getInpuElements(ele, eleArr) { + if ("input" === ele.localName) { + eleArr.push(ele) + return + } + if (ele.childNodes.length !== 0) + {ele.childNodes.forEach(a => { + getInpuElements(a, eleArr) + })} +} + +function handleKeyup(e) { + if (e.keyCode === 13) { + getCurIndex(this); + const key = ++curIndex; + const that = this + envent(key, that) + } +} + +// function envent(key, that) { +// const nextEle = that.querySelector(`[data-index='${key}']`); +// if (!nextEle || nextEle === null) { +// return +// } +// if (nextEle.localName !== "input") { +// const elearr = [] +// getInpuElements(nextEle, elearr) +// if (elearr.length !== 0) { +// if (elearr.length !== 1) +// {nextEle.click();} +// if (elearr[0].disabled) { +// envent(++key, that) +// return +// } +// } +// nextEle.focus() +// return +// } +// if (true === nextEle.disabled || "radio" === nextEle.type || "hidden" === nextEle.type || "file" === nextEle.type || nextEle.className.indexOf("calendar-picker") > -1) { +// envent(++key, that) +// return +// } +// // nextEle.removeAttribute("readonly") +// // if(nextEle.className.indexOf("calendar") > -1) { +// // nextEle.click() +// // return +// // } +// nextEle.focus(); +// } +function envent(key, that) { + // 获取目标元素 + const nextEle = that.querySelector(`[data-index='${key}']`); + if (!nextEle) {return;} + + // 如果不是输入框 + if (nextEle.localName !== "input") { + const inputElements = []; + getInpuElements(nextEle, inputElements); + + // 处理包含输入元素的情况 + if (inputElements.length > 0) { + // 多个输入元素时点击容器 + if (inputElements.length !== 1) { + nextEle.click(); + } + + // 如果第一个输入元素禁用,递归处理下一个 + if (inputElements[0].disabled) { + envent(key + 1, that); + return; + } + } + + // 聚焦当前元素 + nextEle.focus(); + return; + } + + // 处理特殊输入框类型 + const disabled = nextEle.disabled === true; + const invalidTypes = ["radio", "hidden", "file"]; + const isCalendar = nextEle.className.includes("calendar-picker"); + + if (disabled || invalidTypes.includes(nextEle.type) || isCalendar) { + envent(key + 1, that); + return; + } + + // 聚焦有效输入框 + nextEle.focus(); +} + +function getCurIndex(form) { + const el = form.querySelector(":focus"); + if (el.getAttribute("data-index")) { + curIndex = el.getAttribute("data-index"); + } else { + curIndex = 0; + } + curIndex = parseInt(curIndex); + if (curIndex > maxIndex) { + curIndex = 0; + } +} + +// function bindEvent(el) { +// el.addEventListener("keyup", handleKeyup); +// } + +function unbindEvent(el) { + el.removeEventListener("keyup", handleKeyup); +} + +function debounce(fn, delay = 400) { + let time = null; + return function (...arg) { + clearTimeout(time); + time = setTimeout(() => { + fn.apply(this, arg); + }, delay); + }; +} + +const debouncedMarrFn = debounce(markCanFocusEles); + +export default { + install(Vue) { + Vue.directive("tabDrag", { + bind(el, binding) { + console.log("tabDrag:::el") + console.log(el) + console.log("tabDrag:::binding") + console.log(binding) + //添加drag + // markCanFocusEles(el); + //添加点击事件 + // bindEvent(el); + }, + componentUpdated(el) { + debouncedMarrFn(el); + }, + unbind(el) { + curIndex = 0; + unbindEvent(el); + }, + }); + }, +}; diff --git a/src/mixins/tabNext.js b/src/mixins/tabNext.js new file mode 100644 index 0000000..e57f515 --- /dev/null +++ b/src/mixins/tabNext.js @@ -0,0 +1,178 @@ +const stateMap = new Map(); + +function markCanFocusEles(el) { + const eles = el.querySelectorAll("input") + // let eleArr = [] + // for (let i = 0; i < el.length; i++) { + // eleArr.push(el[i]); + // } + const state = stateMap.get(el); + state.maxIndex = eles.length - 1; + eles.forEach((ele, index) => { + const key = ++index + if (ele.className === "ant-select-search__field" || ele.className.indexOf("select") > -1 ) { + const parentEle = getParentEle(ele) + if (parentEle) {parentEle.setAttribute("data-index", key);} + } else { + ele.setAttribute("data-index", key); + } + }); +} + +function getParentEle(ele) { + let oEle = ele + // while (true) { + const parentEle = oEle.parentElement + if (!parentEle) {return} + if (parentEle.getAttribute("tabindex")) {return parentEle} + oEle = parentEle + // } +}; + +function getInpuElements(ele, eleArr) { + if ("input" === ele.localName) { + eleArr.push(ele) + return + } + if (ele.childNodes.length !== 0) + {ele.childNodes.forEach(a => { + getInpuElements(a, eleArr) + })} +} + +function handleKeyup(e) { + if (e.keyCode === 13) { + getCurIndex(this); + const state = stateMap.get(this); + const key = ++state.curIndex; + const that = this + envent(key, that) + } +} + +// function envent(key, that) { +// const nextEle = that.querySelector(`[data-index='${key}']`); +// if (!nextEle || nextEle === null) { +// return +// } +// if (nextEle.localName !== "input") { +// const elearr = [] +// getInpuElements(nextEle, elearr) +// if (elearr.length !== 0) { +// if (elearr.length !== 1) +// {nextEle.click();} +// if (elearr[0].disabled) { +// envent(++key, that) +// return +// } +// } +// nextEle.focus() +// return +// } +// if (true === nextEle.disabled || "radio" === nextEle.type || "hidden" === nextEle.type || "file" === nextEle.type || nextEle.className.indexOf("calendar-picker") > -1) { +// envent(++key, that) +// return +// } +// // nextEle.removeAttribute("readonly") +// // if(nextEle.className.indexOf("calendar") > -1) { +// // nextEle.click() +// // return +// // } +// nextEle.focus(); +// } +function envent(key, that) { + // 获取目标元素,不存在则直接返回 + const nextEle = that.querySelector(`[data-index='${key}']`); + if (!nextEle) {return;} + + // 处理非input元素 + if (nextEle.tagName !== 'INPUT') { + const inputElements = []; + getInpuElements(nextEle, inputElements); + + // 处理包含的输入元素 + if (inputElements.length) { + // 多个输入元素时点击容器 + if (inputElements.length !== 1) { + nextEle.click(); + } + + // 第一个输入元素禁用则跳到下一个 + if (inputElements[0].disabled) { + return envent(key + 1, that); + } + } + + nextEle.focus(); + return; + } + + // 定义输入框跳过规则 + const shouldSkip = nextEle.disabled + || ['radio', 'hidden', 'file'].includes(nextEle.type) + || nextEle.classList.contains('calendar-picker'); + + // 需要跳过时递归处理下一个元素 + if (shouldSkip) { + return envent(key + 1, that); + } + + // 聚焦到有效输入框 + nextEle.focus(); +} + +function getCurIndex(form) { + const el = form.querySelector(":focus"); + const state = stateMap.get(form); + if (el.getAttribute("data-index")) { + state.curIndex = el.getAttribute("data-index"); + } else { + state.curIndex = 0; + } + state.curIndex = parseInt(state.curIndex); + if (state.curIndex > state.maxIndex) { + state.curIndex = 0; + } +} + +function bindEvent(el) { + el.addEventListener("keyup", handleKeyup); +} + +function unbindEvent(el) { + el.removeEventListener("keyup", handleKeyup); +} + +function debounce(fn, delay = 400) { + let time = null; + return function (...arg) { + clearTimeout(time); + time = setTimeout(() => { + fn.apply(this, arg); + }, delay); + }; +} + +export default { + install(Vue) { + Vue.directive("tabNext", { + bind(el) { + stateMap.set(el, { + curIndex: 0, + maxIndex: 0, + debouncedMarrFn: debounce(markCanFocusEles) + }); + markCanFocusEles(el); + bindEvent(el); + }, + componentUpdated(el) { + const state = stateMap.get(el); + state.debouncedMarrFn(el); + }, + unbind(el) { + unbindEvent(el); + stateMap.delete(el); + }, + }); + }, +}; diff --git a/src/mixins/v-next.js b/src/mixins/v-next.js new file mode 100644 index 0000000..1eadcb1 --- /dev/null +++ b/src/mixins/v-next.js @@ -0,0 +1,173 @@ +/* eslint-disable */ +let curIndex = 0; +let maxIndex = 0; + +function markCanFocusEles(el) { + const eleArr = [] + for (let i = 0; i < el.length; i++) { + eleArr.push(el[i]); + } + maxIndex = eleArr.length - 1; + eleArr.forEach((ele, index) => { + const key = ++index + if (ele.className === "ant-select-search__field" || ele.className.indexOf("select") > -1 ) { + const parentEle = getParentEle(ele) + if (parentEle) {parentEle.setAttribute("data-index", key);} + } else { + ele.setAttribute("data-index", key); + } + }); +} + +function getParentEle(ele) { + let oEle = ele + // while (true) { + const parentEle = oEle.parentElement + if (!parentEle) {return} + if ("ant-form-item-children" === parentEle.className) {return oEle} + oEle = parentEle + // } +}; + +function getInpuElements(ele, eleArr) { + if ("input" === ele.localName) { + eleArr.push(ele) + return + } + if (ele.childNodes.length !== 0) + {ele.childNodes.forEach(a => { + getInpuElements(a, eleArr) + })} +} + +function handleKeyup(e) { + if (e.keyCode === 13) { + console.log("handleKeyup") + getCurIndex(this); + const key = ++curIndex; + const that = this + envent(key, that) + } +} + +function envent(key, that) { + const nextEle = that.querySelector(`[data-index='${key}']`); + if (!nextEle || nextEle === null) { + return + } + if (nextEle.localName !== "input") { + const elearr = [] + getInpuElements(nextEle, elearr) + if (elearr.length !== 0) { + if (elearr.length !== 1) + {nextEle.click();} + if (elearr[0].disabled) { + envent(++key, that) + return + } + } + nextEle.focus() + return + } + if (true === nextEle.disabled || "radio" === nextEle.type || "hidden" === nextEle.type || "file" === nextEle.type || nextEle.className.indexOf("calendar-picker") > -1) { + envent(++key, that) + return + } + // nextEle.removeAttribute("readonly") + // if(nextEle.className.indexOf("calendar") > -1) { + // nextEle.click() + // return + // } + nextEle.focus(); +} + +// function handleElementFocus(key, container) { +// // 获取目标元素,不存在则返回 +// const targetElement = container.querySelector(`[data-index='${key}']`); +// if (!targetElement) {return;} + +// // 处理非input元素 +// if (targetElement.tagName !== 'INPUT') { +// const inputElements = []; +// getInpuElements(targetElement, inputElements); + +// // 处理包含的输入元素 +// if (inputElements.length) { +// // 多个输入元素时点击容器 +// if (inputElements.length !== 1) { +// targetElement.click(); +// } + +// // 第一个输入元素禁用则处理下一个 +// if (inputElements[0].disabled) { +// return handleElementFocus(key + 1, container); +// } +// } + +// targetElement.focus(); +// return; +// } + +// // 检查是否需要跳过当前input元素 +// const isDisabled = targetElement.disabled; +// const invalidTypes = ['radio', 'hidden', 'file']; +// const isCalendarPicker = targetElement.classList.contains('calendar-picker'); + +// if (isDisabled || invalidTypes.includes(targetElement.type) || isCalendarPicker) { +// return handleElementFocus(key + 1, container); +// } + +// // 聚焦到有效输入框 +// targetElement.focus(); +// } + +function getCurIndex(form) { + const el = form.querySelector(":focus"); + if (el.getAttribute("data-index")) { + curIndex = el.getAttribute("data-index"); + } else { + curIndex = 0; + } + curIndex = parseInt(curIndex); + if (curIndex > maxIndex) { + curIndex = 0; + } +} + +function bindEvent(el) { + el.addEventListener("keyup", handleKeyup); +} + +function unbindEvent(el) { + el.removeEventListener("keyup", handleKeyup); +} + +function debounce(fn, delay = 400) { + let time = null; + return function (...arg) { + clearTimeout(time); + time = setTimeout(() => { + fn.apply(this, arg); + }, delay); + }; +} + +const debouncedMarrFn = debounce(markCanFocusEles); + +export default { + install(Vue) { + Vue.directive("next", { + bind(el) { + markCanFocusEles(el); + bindEvent(el); + }, + componentUpdated(el) { + debouncedMarrFn(el); + }, + unbind(el) { + curIndex = 0; + unbindEvent(el); + }, + }); + }, +}; diff --git a/src/permission.js b/src/permission.js new file mode 100644 index 0000000..90a2a81 --- /dev/null +++ b/src/permission.js @@ -0,0 +1,179 @@ +import Vue from 'vue' +import router from './router' +import store from './store' +import NProgress from 'nprogress' // progress bar +import 'nprogress/nprogress.css' // progress bar style +import { ACCESS_TOKEN, INDEX_MAIN_PAGE_PATH, OAUTH2_LOGIN_PAGE_PATH } from '@/store/mutation-types' +// import { isOAuth2AppEnv, generateIndexRouter } from '@/utils/util' +import { isOAuth2AppEnv } from '@/utils/util' + +NProgress.configure({ showSpinner: false }) // NProgress Configuration + +const whiteList = ['/user/login', '/user/register', '/user/register-result', '/user/alteration', '/oauth/login'] // no redirect whitelist +whiteList.push(OAUTH2_LOGIN_PAGE_PATH) + +/* eslint complexity: ["error", 20] */ +router.beforeEach((to, from, next) => { + // if (to.matched && to.matched.length > 4) { + // to.matched.splice(3, to.matched.length - 4) + // } + if (to.matched && to.matched.length > 3) { + to.matched.splice(2, to.matched.length - 3) + } + + NProgress.start() // start progress bar + const urlParams = new URLSearchParams(window.location.search) + + // 需要跟主应用发送一下信息 + if(to.path.startsWith('/iems-winlink')){ + store.dispatch('notifyMainAppRouteChange', to.fullPath) + } + + // 检查是否存在ticket参数 + if (urlParams.has('ticket')) { + // 删除ticket参数 + urlParams.delete('ticket') + + // 构建新的查询字符串 + const newSearch = urlParams.toString() ? `?${urlParams.toString()}` : '' + + // 构建新的URL + const newUrl = `${window.location.origin}${window.location.pathname}${newSearch}` + + // 重定向到新URL,不会添加历史记录 + window.history.replaceState(null, '', newUrl) + } + + const thirdType = urlParams.get('thirdType') // 获取thirdType参数 + const authCode = urlParams.get('authCode') // 获取authCode参数 + if (thirdType && authCode) { + next() + } + // 单点登录 + if (process.env.VUE_APP_SSO === 'true') { + // if(true){ + if (store.getters.permissionList.length === 0) { + store + .dispatch('GetPermissionList') + .then((res) => { + const menuData = res.result.menu + //console.log(res.message) + if (menuData === null || menuData === '' || menuData === undefined) { + return + } + // const constRoutes = generateIndexRouter(res.filterRouter) + const constRoutes = res.filterRouter + + store.dispatch('UpdateAppRouter', { constRoutes }).then(() => { + // 根据roles权限生成可访问的路由表 + // 动态添加可访问路由表 + router.addRoutes(store.getters.addRouters) + const redirect = decodeURIComponent(from.query.redirect || to.path) + if (to.path === redirect) { + // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record + next({ ...to, replace: true }) + } else { + // 跳转到目的路由 + next({ path: redirect }) + } + }) + }) + .catch((e) => { + Vue.prototype.$Jnotification.error({ + title: '系统提示', + message: '请求用户信息失败,请刷新重试!', + }) + console.log(e) + // store.dispatch('Logout').then(() => { + // next({ path: '/user/login', query: { redirect: to.fullPath } }) + // }) + }) + } else { + next() + } + } else { + if (Vue.ls.get(ACCESS_TOKEN)) { + /* has token */ + if (to.path === '/user/login' || to.path === OAUTH2_LOGIN_PAGE_PATH) { + next({ path: INDEX_MAIN_PAGE_PATH }) + NProgress.done() + } else { + if (store.getters.permissionList.length === 0) { + store + .dispatch('GetPermissionList') + .then((res) => { + const menuData = res.result.menu + //console.log(res.message) + if (menuData === null || menuData === '' || menuData === undefined) { + return + } + // let constRoutes = [] + // constRoutes = generateIndexRouter(menuData) + const constRoutes = res.filterRouter + + store.dispatch('UpdateAppRouter', { constRoutes }).then(() => { + // 根据roles权限生成可访问的路由表 + // 动态添加可访问路由表 + router.addRoutes(store.getters.addRouters) + const redirect = decodeURIComponent(from.query.redirect || to.path) + if (to.path === redirect) { + // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record + next({ ...to, replace: true }) + } else { + // 跳转到目的路由 + next({ path: redirect }) + } + }) + }) + .catch((e) => { + Vue.prototype.$Jnotification.error({ + title: '系统提示', + message: '请求用户信息失败,请刷新重试!', + }) + console.log(e) + // store.dispatch('Logout').then(() => { + // next({ path: '/user/login', query: { redirect: to.fullPath } }) + // }) + }) + } else { + // 菜单埋点 + // if (to.meta.track) { + // 收集埋点数据 + // const trackData = { + // eventType: 'route-change', + // from: from.name || 'unknown', + // to: to.name, + // toPath: to.path, + // title: to.meta.title, + // timestamp: new Date().getTime(), + // } + // 上报埋点数据 + // reportTrackData(trackData) + // } + next() + } + } + } else { + if (whiteList.indexOf(to.path) !== -1) { + // 在免登录白名单,如果进入的页面是login页面并且当前是OAuth2app环境,就进入OAuth2登录页面 + if (to.path === '/user/login' && isOAuth2AppEnv()) { + next({ path: OAUTH2_LOGIN_PAGE_PATH }) + } else { + // 在免登录白名单,直接进入 + next() + } + NProgress.done() + } else { + // 如果当前是在OAuth2APP环境,就跳转到OAuth2登录页面 + const path = isOAuth2AppEnv() ? OAUTH2_LOGIN_PAGE_PATH : '/user/login' + next({ path: path, query: { redirect: to.fullPath } }) + NProgress.done() // if current page is login will not trigger afterEach hook, so manually handle it + } + } + } +}) + +router.afterEach(() => { + NProgress.done() // finish progress bar +}) + diff --git a/src/public-path.js b/src/public-path.js new file mode 100644 index 0000000..49c1ffd --- /dev/null +++ b/src/public-path.js @@ -0,0 +1,4 @@ +if (window.__MICRO_APP_ENVIRONMENT__) { + // eslint-disable-next-line + __webpack_public_path__ = window.__MICRO_APP_PUBLIC_PATH__ || '/' +} \ No newline at end of file diff --git a/src/router/README.md b/src/router/README.md new file mode 100644 index 0000000..9e82538 --- /dev/null +++ b/src/router/README.md @@ -0,0 +1,139 @@ +路由/菜单说明 +==== + + + +配置文件路径 +---- + +`@/config/router.config.js` + + + +格式和说明 +---- + +```javascript +/** + * 路由配置说明: + * 建议:sider menu 请不要超过三级菜单,若超过三级菜单,则应该设计为顶部主菜单 配合左侧次级菜单 + * + **/ + { + redirect: noredirect, + name: 'router-name', + hidden: true, + meta: { + title: 'title', + icon: 'a-icon', + keepAlive: true, + hiddenHeaderContent: true, + } +} +``` + + + +`{ Route }` 对象 + +| 参数 | 说明 | 类型 | 默认值 | +| -------- | ----------------------------------------- | ------- | ------ | +| hidden | 控制路由是否显示在 sidebar | boolean | falase | +| redirect | 重定向地址, 访问这个路由时,自定进行重定向 | string | - | +| name | 路由名称, 建议设置,且不能重名 | string | - | +| meta | 路由元信息(路由附带扩展信息) | object | {} | + + + +`{ Meta }` 路由元信息对象 + +| 参数 | 说明 | 类型 | 默认值 | +| ------------------- | ------------------------------------------------------------ | ------- | ------ | +| title | 路由标题, 用于显示面包屑, 页面标题 *推荐设置 | string | - | +| icon | 路由在 menu 上显示的图标 | string | - | +| keepAlive | 缓存该路由 | boolean | false | +| hiddenHeaderContent | *特殊 隐藏 [PageHeader](https://github.com/sendya/ant-design-pro-vue/blob/master/src/components/layout/PageHeader.vue#L14) 组件中的页面带的 面包屑和页面标题栏 | boolean | false | +| permission | 与项目提供的权限拦截匹配的权限,如果不匹配,则会被禁止访问该路由页面 | array | [] | + + + +路由例子 +---- + +```ecmascript 6 +const asyncRouterMap = [ + { + path: '/', + name: 'index', + component: BasicLayout, + meta: { title: '首页' }, + redirect: '/dashboard/analysis', + children: [ + { + path: '/dashboard', + component: Layout, + name: 'dashboard', + redirect: '/dashboard/workplace', + meta: {title: '仪表盘', icon: 'dashboard', permission: ['dashboard']}, + children: [ + { + path: '/dashboard/analysis', + name: 'Analysis', + component: () => import('@/views/dashboard/Analysis'), + meta: {title: '分析页', permission: ['dashboard']} + }, + { + path: '/dashboard/monitor', + name: 'Monitor', + hidden: true, + component: () => import('@/views/dashboard/Monitor'), + meta: {title: '监控页', permission: ['dashboard']} + }, + { + path: '/dashboard/workplace', + name: 'Workplace', + component: () => import('@/views/dashboard/Workplace'), + meta: {title: '工作台', permission: ['dashboard']} + } + ] + }, + + // result + { + path: '/result', + name: 'result', + component: PageView, + redirect: '/result/success', + meta: { title: '结果页', icon: 'check-circle-o', permission: [ 'result' ] }, + children: [ + { + path: '/result/success', + name: 'ResultSuccess', + component: () => import(/* webpackChunkName: "result" */ '@/views/result/Success'), + // 该页面隐藏面包屑和页面标题栏 + meta: { title: '成功', hiddenHeaderContent: true, permission: [ 'result' ] } + }, + { + path: '/result/fail', + name: 'ResultFail', + component: () => import(/* webpackChunkName: "result" */ '@/views/result/Error'), + // 该页面隐藏面包屑和页面标题栏 + meta: { title: '失败', hiddenHeaderContent: true, permission: [ 'result' ] } + } + ] + }, + ... + ] + }, +] +``` + +> 1. 请注意 `component: () => import('..') ` 方式引入路由的页面组件为 懒加载模式。具体可以看 [Vue 官方文档](https://router.vuejs.org/zh/guide/advanced/lazy-loading.html) +> 2. 增加新的路由应该增加在 '/' (index) 路由的 `children` 内 +> 3. `permission` 可以进行自定义修改,只需要对这个模块进行自定义修改即可 [src/store/modules/permission.js#L10](https://github.com/sendya/ant-design-pro-vue/blob/master/src/store/modules/permission.js#L10) + + + +附权限路由结构: + +![权限结构](https://static-2.loacg.com/open/static/github/permissions.png) \ No newline at end of file diff --git a/src/router/index.js b/src/router/index.js new file mode 100644 index 0000000..4f3f34c --- /dev/null +++ b/src/router/index.js @@ -0,0 +1,337 @@ +/* eslint-disable */ +import Vue from 'vue' +import Router from 'vue-router' +import { constantRouterMap } from '@/config/router.config' +import { TabLayout, BlankLayout } from '@/components/layouts' +import onlineCommons from '@jeecg/antd-online-mini' + +const isInMicroApp = typeof window !== 'undefined' && !!window.microApp +const LayoutPage = isInMicroApp ? BlankLayout : TabLayout + +const componentMap = { + 'modules/online/cgform/OnlCgformHeadList': onlineCommons.OnlCgformHeadList, + 'modules/online/cgform/OnlCgformCopyList': onlineCommons.OnlCgformCopyList, + 'modules/online/cgform/auto/OnlCgformAutoList': onlineCommons.OnlCgformAutoList, + 'modules/online/cgform/auto/OnlCgformTreeList': onlineCommons.OnlCgformTreeList, + 'modules/online/cgform/auto/erp/OnlCgformErpList': onlineCommons.OnlCgformErpList, + 'modules/online/cgform/auto/tab/OnlCgformTabList': onlineCommons.OnlCgformTabList, + 'modules/online/cgform/auto/innerTable/OnlCgformInnerTableList': onlineCommons.OnlCgformInnerTableList, + 'modules/online/cgreport/OnlCgreportHeadList': onlineCommons.OnlCgreportHeadList, + 'modules/online/cgreport/auto/OnlCgreportAutoList': onlineCommons.OnlCgreportAutoList, +} + +Vue.use(Router) + +export default new Router({ + mode: 'hash', + // base: process.env.BASE_URL, + // base: window.__MICRO_APP_BASE_ROUTE__ || '/', + base: window.__MICRO_APP_BASE_ROUTE__ || process.env.BASE_URL, + scrollBehavior: () => ({ y: 0 }), + routes: constantRouterMap, +}) + +export function mapRouter() { + const res = { + code: '0', + data: [ + { + appLists: [1], + appType: 1, + asc: ' asc', + deleteFlag: 0, + extendAttr2: '1', + id: 437, + orderBy: '1', + orderByType: 'asc', + pageSize: 30, + parentCode: '0', + resourceCode: 'APP201904230034', + resourceName: '鹊桥', + resourceType: 1, + sortNo: 0, + start: 0, + subResources: [ + { + appLists: [1], + appType: 1, + asc: ' asc', + deleteFlag: 0, + extendAttr2: '1', + frontUrl: '/network', + id: 438, + orderBy: '1', + orderByType: 'asc', + pageSize: 30, + parentCode: 'APP201904230034', + resourceCode: 'RE201904230035', + resourceName: '网关管理', + resourceType: 2, + resourceUrl: 'icon-queqiao-wangguanguanli', + sortNo: 1, + start: 0, + subResources: [ + { + appLists: [1], + appType: 1, + asc: ' asc', + deleteFlag: 0, + extendAttr2: '1', + id: 2327, + orderBy: '1', + orderByType: 'asc', + pageSize: 30, + parentCode: 'RE201904230035', + resourceCode: 'RE201908070014', + resourceId: '01000001', + resourceName: '新增按钮', + resourceType: 3, + sortNo: 1, + start: 0, + version: 0, + }, + ], + }, + { + appLists: [1], + appType: 1, + asc: ' asc', + deleteFlag: 0, + extendAttr2: '1', + frontUrl: '/network', + id: 439, + orderBy: '1', + orderByType: 'asc', + pageSize: 30, + parentCode: 'APP201904230034', + resourceCode: 'RE201904230035', + resourceName: '物理管理', + resourceType: 2, + resourceUrl: 'icon-queqiao-wangguanguanli', + sortNo: 1, + start: 0, + subResources: [ + { + appLists: [1], + appType: 1, + asc: ' asc', + deleteFlag: 0, + extendAttr2: '1', + id: 2327, + orderBy: '1', + orderByType: 'asc', + pageSize: 30, + parentCode: 'RE201904230035', + resourceCode: 'RE201908070014', + resourceId: '01000001', + resourceName: '新增按钮', + resourceType: 3, + sortNo: 1, + start: 0, + version: 0, + }, + ], + }, + ], + version: 0, + }, + ], + msg: 'Success', + timestamp: '2025-05-27 09:48:49.394', + } + return flattenResources(res) +} + +export function flattenResources(data) { + const result = [] + data.data.forEach((resource) => { + result.push({ + id: resource.id, + resourceCode: resource.resourceCode, + resourceName: resource.resourceName, + resourceType: resource.resourceType, + }) + }) + // 递归处理资源节点 + function processResource(resource) { + // 提取需要的字段,避免保留深层嵌套结构 + const flatResource = { + id: resource.id, + frontUrl: resource.frontUrl, + resourceCode: resource.resourceCode, + resourceName: resource.resourceName, + resourceType: resource.resourceType, + // 可根据需要添加更多字段 + } + result.push(flatResource) + // 递归处理子资源 + if (resource.subResources && Array.isArray(resource.subResources)) { + resource.subResources.forEach((subResource) => { + processResource(subResource) + }) + } + } + // 检查数据格式并开始处理 + if (data && data.data && Array.isArray(data.data)) { + data.data.forEach((item) => { + if (item.subResources && Array.isArray(item.subResources)) { + item.subResources.forEach((subResource) => { + processResource(subResource, item.resourceCode) + }) + } + }) + } + return result +} + +// 递归处理美的过来的menu +export function convertMenuToRoutes(menuData) { + // 辅助函数:处理菜单项并生成路由配置 + function processMenuItem(menuItem) { + // 忽略按钮权限(resourceType=3) + if (menuItem.resourceType === 3) { + return null + } + + // 基础路由配置 + const route = { + redirect: null, + route: '0', + meta: { + keepAlive: true, + internalOrExternal: false, + title: menuItem.resourceName, + componentName: '', + }, + name: '', + id: menuItem.resourceCode, + } + + // 处理菜单(resourceType=1) + if (menuItem.resourceType === 1) { + route.component = LayoutPage + route.meta.icon = menuItem.resourceUrl + + route.path = `/${menuItem.resourceCode}` + route.name = menuItem.resourceCode + + // 处理子菜单 + if (menuItem.subResources && menuItem.subResources.length > 0) { + const children = menuItem.subResources.map((item) => processMenuItem(item)).filter(Boolean) // 过滤掉null值(按钮权限) + + if (children.length > 0) { + route.children = children + } + } + } + // 处理页面(resourceType=2) + else if (menuItem.resourceType === 2) { + // 处理path:去掉/iems-winlink前缀 + if (menuItem.frontUrl) { + // route.path = menuItem.frontUrl.replace('/iems-winlink', '') + route.path = menuItem.frontUrl + + // 如果是详情页就隐藏左侧菜单导航 + route.meta.hidden = menuItem.extendAttr1 === 'lcp-hidden' || menuItem.extendAttr2 === 'lcp-hidden' + + // 处理component:去掉/iems-winlink前缀 + const component = menuItem.frontUrl.replace('/iems-winlink/', '') + + const componentPath = componentMap[component] + ? componentMap[component] + : (resolve) => require(['@/views/' + component + '.vue'], resolve) + + route.component = componentPath + + // 处理name:使用path中的各部分连接 + // route.name = route.path.replace(/\//g, '-').replace(/^-/, '') + + // 先判断路径末尾是否有 /index,有则移除,无则保持原路径 + const processedPath = route.path.endsWith('/index') + ? route.path.slice(0, -6) // 移除末尾的 "/index"(长度为6) + : route.path; + + // 分割路径并过滤空字符串(避免路径开头/结尾的空值) + const parts = processedPath.split('/').filter(part => part); + + // 取最后一部分作为名称,若路径为空则用默认值 + route.name = parts.length > 0 ? parts[parts.length - 1] : 'default'; + + // 处理componentName:取path最后一部分 + const pathParts = route.path.split('/') + route.meta.componentName = pathParts[pathParts.length - 1] || '' + } + } + + return route + } + + // 处理整个菜单数组 + if (!menuData || !Array.isArray(menuData)) { + return [] + } + + // 处理每个顶级菜单并过滤掉空值 + return [ + // { + // "redirect": null, + // "route": "0", + // "meta": { + // "keepAlive": true, + // "internalOrExternal": false, + // "title": "首页", + // "icon": "home", + // "componentName": "Analysis" + // }, + // "name": "dashboard-Analysis", + // "id": "RE202508081117170001", + // "path": "/dashboard/analysis", + // "component": "dashboard/Analysis" + // }, + { + path: `/`, + name: 'dashboard', + component: LayoutPage, + meta: { title: '首页', permission: 439, icon: 'home' }, + redirect: '/iems-winlink/dashboard/analysis', + children: [ + { + name: 'dashboard-analysis', + path: '/iems-winlink/dashboard/analysis', + component: () => import('@/views/dashboard/Analysis.vue'), + meta: { title: '首页' }, + }, + ], + }, + ...menuData.map((item) => processMenuItem(item)).filter(Boolean), + ] +} + +export function filterAsyncRoutes(routes, permissions, keepEmptyChildren = false) { + return routes.filter((route) => { + // 复制一份路由,避免修改原始配置 + // const routeCopy = { ...route } + + // 检查当前路由是否需要权限且用户是否拥有该权限 + if (route.meta && route.meta.permission) { + if (!permissions.includes(route.meta.permission)) { + return false + } + } + + // 递归处理子路由 + if (route.children && route.children.length) { + const filteredChildren = filterAsyncRoutes(route.children, permissions, keepEmptyChildren) + if (filteredChildren.length === 0 && !keepEmptyChildren) { + // 如果子路由都被过滤掉且不保留空的children,则移除当前路由 + return false + } + // 更新子路由 + route.children = filteredChildren + } + + // 返回处理后的路由 + return true + }) +} + diff --git a/src/store/category.js b/src/store/category.js new file mode 100644 index 0000000..bea5596 --- /dev/null +++ b/src/store/category.js @@ -0,0 +1,115 @@ +export const PARAM_CACHE_CUS_COUNTRY = 'ParamCacheCusCountry' +export const PARAM_CACHE_CUS_CUSTOMS = 'ParamCacheCusCustoms' +export const PARAM_CACHE_CUS_TRADE_MODE = 'ParamCacheCusTradeMode' +export const PARAM_CACHE_CUS_LEVY_TYPE = 'ParamCacheCusLevyType' +export const PARAM_CACHE_CUS_TRANSPORT = 'ParamCacheCusTransport' +export const PARAM_CACHE_CUS_TRANSAC = 'ParamCacheCusTransac' +export const PARAM_CACHE_CUS_PORT = 'ParamCacheCusPort' +export const PARAM_CACHE_CIQ_PORT_CN = 'ParamCacheCiqPortCn' +export const PARAM_CACHE_CUS_PACK_TYPE = 'ParamCacheCusPackType' +export const PARAM_CACHE_CUS_CURRENCY = 'ParamCacheCusCurrency' +export const PARAM_CACHE_CUS_UNIT = 'ParamCacheCusUnit' +export const PARAM_CUS_USED_TO = 'ParamCacheCusUsedTo' +export const PARAM_CUS_LEVY_MODE = 'ParamCacheCusLevyMode' +export const PARAM_CIQ_USED_TO = 'ParamCacheCiqUsedTo' +export const PARAM_CUS_LICENSE_DOCU = 'ParamCacheCusLicenseDocu' +export const PARAM_CIQ_CITY_CN = 'ParamCacheCiqCityCn' +export const PARAM_CUS_DISTRICT = 'ParamCacheCusDistrict' +export const PARAM_CIQ_CUS_ORGANIZATION = 'ParamCacheCiqCusOrganization' +export const PARAM_CUS_DEC_ATT_TYPE = 'ParamCacheCusDecAttType' +export const PARAM_CUS_COUNTRY_OLD = 'ParamCacheCusCountryOld' +export const PARAM_CUS_CONTAINER_NORMS = 'ParamCacheCusContainerNorms' +export const PARAM_CUS_RED_LEVYTYPE = 'ParamCacheCusRedLevytype' +export const PARAM_CUS_RED_COTYPE = 'ParamCacheCusRedCoType' +export const PARAM_CUS_RED_BASE_TYPE = 'ParamCacheCusRedBaseType' +export const PARAM_CUS_RED_DEPT_TYPE = 'ParamCacheCusRedDeptType' +export const PARAM_CUS_RED_PROJ_TYPE = 'ParamCacheCusRedProjType' +export const PARAM_CUS_RED_MARKET_SUBJECT_TYPE = 'ParamCacheCusRedMarketSubjectType' + +// export function getCusParameterName(name){ + +// if(name==="cus_red_market_subject_type" ) {return PARAM_CUS_RED_MARKET_SUBJECT_TYPE;} +// if(name==="cus_red_proj_type" ) {return PARAM_CUS_RED_PROJ_TYPE;} +// if(name==="cus_red_dept_type" ) {return PARAM_CUS_RED_DEPT_TYPE;} +// if(name==="cus_red_base_type" ) {return PARAM_CUS_RED_BASE_TYPE;} +// if(name==="cus_red_cotype" ) {return PARAM_CUS_RED_COTYPE;} +// if(name==="cus_red_levytype" ) {return PARAM_CUS_RED_LEVYTYPE;} +// if(name==="cus_country" ) {return PARAM_CACHE_CUS_COUNTRY;} +// if(name==="cus_customs" ) {return PARAM_CACHE_CUS_CUSTOMS;} +// if(name==="cus_trade_mode" ) {return PARAM_CACHE_CUS_TRADE_MODE;} +// if(name==="cus_levy_type" ) {return PARAM_CACHE_CUS_LEVY_TYPE;} +// if(name==="cus_transport" ) {return PARAM_CACHE_CUS_TRANSPORT;} +// if(name==="cus_transac" ) {return PARAM_CACHE_CUS_TRANSAC;} +// if(name==="cus_port" ) {return PARAM_CACHE_CUS_PORT;} +// if(name==="ciq_port_cn" ) {return PARAM_CACHE_CIQ_PORT_CN;} +// if(name==="cus_pack_type" ) {return PARAM_CACHE_CUS_PACK_TYPE;} +// if(name==="cus_currency" ) {return PARAM_CACHE_CUS_CURRENCY;} +// if(name==="cus_unit" ) {return PARAM_CACHE_CUS_UNIT;} +// if(name==="cus_used_to" ) {return PARAM_CUS_USED_TO;} +// if(name==="cus_levy_mode" ) {return PARAM_CUS_LEVY_MODE;} +// if(name==="ciq_used_to" ) {return PARAM_CIQ_USED_TO;} +// if(name==="cus_license_docu" ) {return PARAM_CUS_LICENSE_DOCU;} +// if(name==="ciq_city_cn" ) {return PARAM_CIQ_CITY_CN;} +// if(name==="cus_district" ) {return PARAM_CUS_DISTRICT;} +// if(name==="ciq_cus_organization" ) {return PARAM_CIQ_CUS_ORGANIZATION;} +// if(name==="cus_dec_att_type" ) {return PARAM_CUS_DEC_ATT_TYPE;} +// if(name==="cus_country_old" ) {return PARAM_CUS_COUNTRY_OLD;} +// if(name==="cus_container_norms" ) {return PARAM_CUS_CONTAINER_NORMS;} +// return ""; +// } +export function getCusParameterName(name) { + // 创建名称映射对象 + const nameMap = { + "cus_red_market_subject_type": PARAM_CUS_RED_MARKET_SUBJECT_TYPE, + "cus_red_proj_type": PARAM_CUS_RED_PROJ_TYPE, + "cus_red_dept_type": PARAM_CUS_RED_DEPT_TYPE, + "cus_red_base_type": PARAM_CUS_RED_BASE_TYPE, + "cus_red_cotype": PARAM_CUS_RED_COTYPE, + "cus_red_levytype": PARAM_CUS_RED_LEVYTYPE, + "cus_country": PARAM_CACHE_CUS_COUNTRY, + "cus_customs": PARAM_CACHE_CUS_CUSTOMS, + "cus_trade_mode": PARAM_CACHE_CUS_TRADE_MODE, + "cus_levy_type": PARAM_CACHE_CUS_LEVY_TYPE, + "cus_transport": PARAM_CACHE_CUS_TRANSPORT, + "cus_transac": PARAM_CACHE_CUS_TRANSAC, + "cus_port": PARAM_CACHE_CUS_PORT, + "ciq_port_cn": PARAM_CACHE_CIQ_PORT_CN, + "cus_pack_type": PARAM_CACHE_CUS_PACK_TYPE, + "cus_currency": PARAM_CACHE_CUS_CURRENCY, + "cus_unit": PARAM_CACHE_CUS_UNIT, + "cus_used_to": PARAM_CUS_USED_TO, + "cus_levy_mode": PARAM_CUS_LEVY_MODE, + "ciq_used_to": PARAM_CIQ_USED_TO, + "cus_license_docu": PARAM_CUS_LICENSE_DOCU, + "ciq_city_cn": PARAM_CIQ_CITY_CN, + "cus_district": PARAM_CUS_DISTRICT, + "ciq_cus_organization": PARAM_CIQ_CUS_ORGANIZATION, + "cus_dec_att_type": PARAM_CUS_DEC_ATT_TYPE, + "cus_country_old": PARAM_CUS_COUNTRY_OLD, + "cus_container_norms": PARAM_CUS_CONTAINER_NORMS + }; + + // 通过名称从映射对象中获取对应值,不存在则返回空字符串 + return nameMap[name] || ""; +} + + +///企业参数库 +export const PARAM_CACHE_COMP_COUNTRY = 'COUNTRY' +export const PARAM_CACHE_COMP_TRANSAC = 'CUS_TRANSAC' +export const PARAM_CACHE_COMP_PORT = 'CUS_MAPPING_PORT_CODE_V' +export const PARAM_CACHE_COMP_PORT_CN = 'CIQ_PORT_CN' +export const PARAM_CACHE_COMP_PACK_TYPE = 'CUS_MAPPING_PACKAGEKIND_CODE_V' +export const PARAM_CACHE_COMP_CURRENCY = 'CURR' +export const PARAM_CACHE_COMP_UNIT = 'CUS_UNIT' + +export function getCompParameterName(name){ + if(name==="comp_country" ) {return PARAM_CACHE_COMP_COUNTRY;} + if(name==="comp_transac" ) {return PARAM_CACHE_COMP_TRANSAC;} + if(name==="comp_port" ) {return PARAM_CACHE_COMP_PORT;} + if(name==="comp_port_cn" ) {return PARAM_CACHE_COMP_PORT_CN;} + if(name==="comp_pack_type" ) {return PARAM_CACHE_COMP_PACK_TYPE;} + if(name==="comp_currency" ) {return PARAM_CACHE_COMP_CURRENCY;} + if(name==="comp_unit" ) {return PARAM_CACHE_COMP_UNIT;} + return ""; +} \ No newline at end of file diff --git a/src/store/getters.js b/src/store/getters.js new file mode 100644 index 0000000..c42aea6 --- /dev/null +++ b/src/store/getters.js @@ -0,0 +1,85 @@ +import Vue from 'vue' +import { + USER_INFO, + ENHANCE_PRE, + NOW_COMP_NAME, + NOW_EMS_NO, + NOW_CYCLE_NO, + SYS_CONFIG_NAME, + TENANT_ID, + SYS_COMP_CONFIG, + SET_LANG, + SET_USER_SET, +} from '@/store/mutation-types' +import Cookies from 'js-cookie' + +const getters = { + device: (state) => state.app.device, + theme: (state) => state.app.theme, + color: (state) => state.app.color, + // lang: state => {state.app.lang = Vue.ls.get(SET_LANG); return state.app.lang}, + lang: (state) => { + state.app.lang = Cookies.get(SET_LANG) + return state.app.lang + }, + token: (state) => state.user.token, + avatar: (state) => { + state.user.avatar = Vue.ls.get(USER_INFO).avatar + return state.user.avatar + }, + username: (state) => state.user.username, + nickname: (state) => { + state.user.realname = Vue.ls.get(USER_INFO) ? Vue.ls.get(USER_INFO).realname : state.user.realname + return state.user.realname + }, + welcome: (state) => state.user.welcome, + permissionList: (state) => state.user.permissionList, + userInfo: (state) => { + state.user.info = Vue.ls.get(USER_INFO) + return state.user.info + }, + addRouters: (state) => state.permission.addRouters, + onlAuthFields: (state) => { + return state.online.authFields + }, + enhanceJs: (state) => (code) => { + state.enhance.enhanceJs[code] = Vue.ls.get(ENHANCE_PRE + code) + return state.enhance.enhanceJs[code] + }, + sysSafeMode: (state) => state.user.sysSafeMode, + nowCompName: (state) => { + state.user.nowCompName = Vue.ls.get(NOW_COMP_NAME) + return state.user.nowCompName + }, + nowEmsNo: (state) => { + state.user.nowEmsNo = Vue.ls.get(NOW_EMS_NO) + return state.user.nowEmsNo + }, + nowCycleNo: (state) => { + state.user.nowCycleNo = Vue.ls.get(NOW_CYCLE_NO) + return state.user.nowCycleNo + }, + sysConfigName: (state) => { + state.user.sysConfigName = Vue.ls.get(SYS_CONFIG_NAME) + return state.user.sysConfigName + }, + footerName: (state) => state.user.footername, + footerEn: (state) => state.user.footeren, + tenantId: (state) => { + state.user.tenantid = Vue.ls.get(TENANT_ID) + return state.user.tenantid + }, + sysConfig: (state) => { + state.user.sysConfig = Vue.ls.get(SYS_COMP_CONFIG) + return state.user.sysConfig + }, + groupNo: (state) => state.user.groupNo, + userSet: (state) => { + state.user.userSet = Vue.ls.get(SET_USER_SET) + return state.user.userSet + }, + needRefreshPath: (state) => state.app.needRefreshPath, +} + +export default getters + diff --git a/src/store/index.js b/src/store/index.js new file mode 100644 index 0000000..c39de61 --- /dev/null +++ b/src/store/index.js @@ -0,0 +1,31 @@ +import Vue from 'vue' +import Vuex from 'vuex' + +import app from './modules/app' +import user from './modules/user' +import enhance from './modules/enhance' +import online from './modules/online' +import permission from './modules/permission' +import getters from './getters' + +Vue.use(Vuex) + +export default new Vuex.Store({ + modules: { + app, + user, + permission, + enhance, + online, + }, + state: { + + }, + mutations: { + + }, + actions: { + + }, + getters +}) diff --git a/src/store/modules/app.js b/src/store/modules/app.js new file mode 100644 index 0000000..46890cf --- /dev/null +++ b/src/store/modules/app.js @@ -0,0 +1,168 @@ +import Vue from 'vue' +import { + SIDEBAR_TYPE, + DEFAULT_THEME, + DEFAULT_LAYOUT_MODE, + DEFAULT_COLOR, + DEFAULT_COLOR_WEAK, + DEFAULT_FIXED_HEADER, + DEFAULT_FIXED_SIDEMENU, + DEFAULT_FIXED_HEADER_HIDDEN, + DEFAULT_CONTENT_WIDTH_TYPE, + DEFAULT_MULTI_PAGE +} from "@/store/mutation-types" +import Cookies from 'js-cookie'; +import lodash from 'lodash' + +const app = { + state: { + sidebar: { + opened: true, + withoutAnimation: false + }, + device: 'desktop', + theme: '', + layout: '', + contentWidth: '', + fixedHeader: true, + fixSiderbar: false, + autoHideHeader: false, + color: null, + weak: false, + multipage: true, //默认多页签模式 + lang: 'cn', //默认中文 + microData: {}, // 存储方法 + microOldPath: '', // 存储旧路径 + needRefreshPath: '', // 存储需要刷新的路由路径 + }, + mutations: { + SET_SIDEBAR_TYPE: (state, type) => { + state.sidebar.opened = type + Vue.ls.set(SIDEBAR_TYPE, type) + }, + CLOSE_SIDEBAR: (state, withoutAnimation) => { + Vue.ls.set(SIDEBAR_TYPE, true) + state.sidebar.opened = false + state.sidebar.withoutAnimation = withoutAnimation + }, + TOGGLE_DEVICE: (state, device) => { + state.device = device + }, + TOGGLE_THEME: (state, theme) => { + // setStore('_DEFAULT_THEME', theme) + Vue.ls.set(DEFAULT_THEME, theme) + state.theme = theme + }, + TOGGLE_LAYOUT_MODE: (state, layout) => { + Vue.ls.set(DEFAULT_LAYOUT_MODE, layout) + state.layout = layout + }, + TOGGLE_FIXED_HEADER: (state, fixed) => { + Vue.ls.set(DEFAULT_FIXED_HEADER, fixed) + state.fixedHeader = fixed + }, + TOGGLE_FIXED_SIDERBAR: (state, fixed) => { + Vue.ls.set(DEFAULT_FIXED_SIDEMENU, fixed) + state.fixSiderbar = fixed + }, + TOGGLE_FIXED_HEADER_HIDDEN: (state, show) => { + Vue.ls.set(DEFAULT_FIXED_HEADER_HIDDEN, show) + state.autoHideHeader = show + }, + TOGGLE_CONTENT_WIDTH: (state, type) => { + Vue.ls.set(DEFAULT_CONTENT_WIDTH_TYPE, type) + state.contentWidth = type + }, + TOGGLE_COLOR: (state, color) => { + Vue.ls.set(DEFAULT_COLOR, color) + state.color = color + }, + TOGGLE_WEAK: (state, flag) => { + Vue.ls.set(DEFAULT_COLOR_WEAK, flag) + state.weak = flag + }, + SET_MULTI_PAGE (state, multipageFlag) { + Vue.ls.set(DEFAULT_MULTI_PAGE, multipageFlag) + state.multipage = multipageFlag + }, + SET_LANG (state, lang) { + // Vue.ls.set(SET_LANG, lang) + console.log(lang,'lang1'); + + Cookies.set('oam_locale', lang); + + state.lang = lang + console.log(lang,'lang2'); + + console.log(state,'state'); + + }, + SET_MICRO_DATA (state, microData) { + state.microData = lodash.cloneDeep(microData) + }, + SET_MICRO_OLD_PATH (state, path) { + state.microOldPath = path + }, + SET_NEED_REFRESH(state, path) { + state.needRefreshPath = path; + // 用时间戳触发变化(确保响应式) + state.needRefreshPath += `?t=${Date.now()}`; + }, + // 清除刷新标记(避免重复刷新) + CLEAR_REFRESH_FLAG(state) { + state.needRefreshPath = ''; + } + }, + actions: { + setSidebar: ({ commit }, type) => { + commit('SET_SIDEBAR_TYPE', type) + }, + CloseSidebar({ commit }, { withoutAnimation }) { + commit('CLOSE_SIDEBAR', withoutAnimation) + }, + ToggleDevice({ commit }, device) { + commit('TOGGLE_DEVICE', device) + }, + ToggleTheme({ commit }, theme) { + commit('TOGGLE_THEME', theme) + }, + ToggleLayoutMode({ commit }, mode) { + commit('TOGGLE_LAYOUT_MODE', mode) + }, + ToggleFixedHeader({ commit }, fixedHeader) { + if (!fixedHeader) { + commit('TOGGLE_FIXED_HEADER_HIDDEN', false) + } + commit('TOGGLE_FIXED_HEADER', fixedHeader) + }, + ToggleFixSiderbar({ commit }, fixSiderbar) { + commit( 'TOGGLE_FIXED_SIDERBAR', fixSiderbar) + }, + ToggleFixedHeaderHidden({ commit }, show) { + commit('TOGGLE_FIXED_HEADER_HIDDEN', show) + }, + ToggleContentWidth({ commit }, type) { + commit('TOGGLE_CONTENT_WIDTH', type) + }, + ToggleColor({ commit }, color) { + commit('TOGGLE_COLOR', color) + }, + ToggleWeak({ commit }, weakFlag) { + commit('TOGGLE_WEAK', weakFlag) + }, + ToggleMultipage({ commit }, multipageFlag) { + commit('SET_MULTI_PAGE', multipageFlag) + }, + notifyMainAppRouteChange({ commit, state }, subPath) { + // 判断microData是否存在且有changeRouter方法,可以间接判断是否在微前端内 + if (state.microData && state.microData.changeRouter) { + // 先存储一下path 避免再次接收到信息-重复性跳转 + commit('SET_MICRO_OLD_PATH', subPath) + // 调用方法通知主应用 + state.microData.changeRouter({ path: subPath }) + } + } + } +} + +export default app \ No newline at end of file diff --git a/src/store/modules/enhance.js b/src/store/modules/enhance.js new file mode 100644 index 0000000..f693412 --- /dev/null +++ b/src/store/modules/enhance.js @@ -0,0 +1,37 @@ +import Vue from 'vue' +const enhance = { + state: { + enhanceJs:{ + + } + }, + mutations: { + ADD_TABLE_ENHANCE: (state, record) => { + if(!state.enhanceJs){ + const obj = {} + const arr = [] + arr.push({...record}) + obj[record.code] = arr + state.enhanceJs = obj + }else{ + if(!state.enhanceJs[record.code]){ + const arr = [] + arr.push({...record}) + state.enhanceJs[record.code] = arr + } + state.enhanceJs[record.code].push({...record}) + } + const arr = state.enhanceJs[record.code] + while(arr.length>16){ + arr.shift() + } + Vue.ls.set('enhance_'+record['code'], arr) + } + }, + actions: { + addEhanceRecord({ commit }, record) { + commit('ADD_TABLE_ENHANCE', record) + } + } +} +export default enhance \ No newline at end of file diff --git a/src/store/modules/mockData.js b/src/store/modules/mockData.js new file mode 100644 index 0000000..a3ea079 --- /dev/null +++ b/src/store/modules/mockData.js @@ -0,0 +1,14369 @@ +const permissionData = { + success: true, + message: '', + code: 0, + result: { + allAuth: [], + sysConfig: { + id: '1484036885653762050', + createBy: 'admin', + createTime: '2022-01-20', + updateBy: 'admin', + updateTime: '2025-01-10', + compNo: '3205248888', + sysName: '关务系统', + icCardNo: 'IC929292927D2', + icCardSign: 'IC929292927D2', + compStampName: null, + compStampPath: null, + sasChannelType: '2', + isMergerRequired: '0', + isUseGranularityI: '1', + isUseGranularityE: '1', + isSelectEmsNo: '0', + checkCurDeclare: '1', + checkBillGModelI: '0', + checkBillGModelE: '0', + checkBillCountry: '1', + checkEntryUpload: '1', + checkBillNetWtSum: '1', + checkBillDeclare: '1', + checkBillNetWtI: '1', + checkBillNetWtE: '1', + checkBillTrafCheck: '0', + checkEntryUploadBillNoCheck: '1', + uploadEmsApplyMode: '0', + uploadRecordMode: '0', + uploadBillMode: '0', + uploadDclMode: '0', + checkTransMode: '1', + checkWrapType: '1', + checkBillInvoiceNo: '1', + isUseChangeCopImgNo: null, + billListShowController: null, + isMergerBillList: null, + billModelsEtc: '1', + isAutoSetCert: null, + isCheckFlowStatus: null, + manifestCustom: null, + entryPrintType: null, + isMerge: null, + uploadAttaCheck: 0, + // isPassword: '1', + pwdChangeDay: 10, + }, + auth: [ + { + action: 'bill:bill:exportHeadList:E11', + describe: '批量导出清单表体', + type: '1', + }, + { + action: 'bill:bill:exportEntryList:E11', + describe: '批量导出报关表体', + type: '1', + }, + { + action: 'bill:bill:batchPrintE11', + describe: '批量打印', + type: '1', + }, + { + action: 'bill:bill:batchPrintBillE11', + describe: '打印核注清单', + type: '1', + }, + { + action: 'bill:bill:batchPrintEntryE11', + describe: '打印报关单', + type: '1', + }, + { + action: 'bill:bill:billLst:setNetWtLengthE11', + describe: '设置净重位数', + type: '1', + }, + { + action: 'demo:add', + describe: 'demo添加功能', + type: '1', + }, + { + action: 'sy:sj:show', + describe: '测试首页显示', + type: '1', + }, + { + action: 'govPoliocy:ManagementProcess:add', + describe: '新增', + type: '1', + }, + { + action: 'govPoliocy:ManagementProcess:edit', + describe: '编辑', + type: '1', + }, + { + action: 'govPoliocy:ManagementProcess:detail', + describe: '详情', + type: '1', + }, + { + action: 'govPoliocy:ManagementProcess:remove', + describe: '删除', + type: '1', + }, + { + action: 'govPoliocy:ManagementProcess:bulkOperations', + describe: '批量操作', + type: '1', + }, + { + action: 'partner:partnerInfo:add', + describe: '新增', + type: '1', + }, + { + action: 'partner:partnerInfo:export', + describe: '导出', + type: '1', + }, + { + action: 'partner:partnerInfo:import', + describe: '导入', + type: '1', + }, + { + action: 'partner:partnerInfo:superQuery', + describe: '高级查询', + type: '1', + }, + { + action: 'partner:partnerInfo:bulkOperations', + describe: '批量操作', + type: '1', + }, + { + action: 'partner:partnerInfo:remove', + describe: '删除', + type: '1', + }, + { + action: 'partner:partnerInfo:edit', + describe: '编辑', + type: '1', + }, + { + action: 'partner:partnerInfo:partnerInfoHead:save', + describe: '商业伙伴信息-保存', + type: '1', + }, + { + action: 'partner:partnerInfo:LiaisonForm:superQuery', + describe: '联系人-高级查询', + type: '1', + }, + { + action: 'partner:partnerInfo:LiaisonForm:export', + describe: '联系人-导出', + type: '1', + }, + { + action: 'partner:partnerInfo:appendix:add', + describe: '附件上传-新增', + type: '1', + }, + { + action: 'partner:partnerInfo:appendix:save', + describe: '附件上传-保存', + type: '1', + }, + { + action: 'partner:partnerInfo:appendix:remove', + describe: '附件上传-删除', + type: '1', + }, + { + action: 'partner:partnerInfo:appendix:superQuery', + describe: '附件上传-高级查询', + type: '1', + }, + { + action: 'partner:partnerLiaison:add', + describe: '新增', + type: '1', + }, + { + action: 'partner:partnerLiaison:export', + describe: '导出', + type: '1', + }, + { + action: 'partner:partnerLiaison:import', + describe: '导入', + type: '1', + }, + { + action: 'partner:partnerLiaison:superQuery', + describe: '高级查询', + type: '1', + }, + { + action: 'partner:partnerLiaison:bulkOperations', + describe: '批量操作', + type: '1', + }, + { + action: 'partner:partnerLiaison:remove', + describe: '删除', + type: '1', + }, + { + action: 'partner:partnerLiaison:edit', + describe: '编辑', + type: '1', + }, + { + action: 'partner:partnerLiaison:detail', + describe: '详情', + type: '1', + }, + { + action: 'partner:partnerInfo:appendix:edit', + describe: '附件上传-编辑', + type: '1', + }, + { + action: 'lcch:fileLog:superQuery', + describe: '查询', + type: '1', + }, + { + action: 'lcch:fileLog:upload', + describe: '上载', + type: '1', + }, + { + action: 'lcch:message:query', + describe: '查询', + type: '1', + }, + { + action: 'lcch:message:parse', + describe: '重新解析', + type: '1', + }, + { + action: 'lcch:message:download', + describe: '下载', + type: '1', + }, + { + action: 'E:passport:passportData:add', + describe: '出口核放单新增', + type: '1', + }, + { + action: 'I:passport:passportData:edit', + describe: '进口核放单编辑', + type: '1', + }, + { + action: 'I:passport:passportData:copy', + describe: '进口核放单复制', + type: '1', + }, + { + action: 'I:passport:passportData:delete', + describe: '进口核放单删除', + type: '1', + }, + { + action: 'I:passport:passportData:upload', + describe: '进口核放单上载', + type: '1', + }, + { + action: 'I:passport:passportData:cancel', + describe: '进口核放单作废', + type: '1', + }, + { + action: 'I:passport:passportData:resetStatus', + describe: '进口核放单重置', + type: '1', + }, + { + action: 'E:passport:passportData:edit', + describe: '出口核放单编辑', + type: '1', + }, + { + action: 'E:passport:passportData:copy', + describe: '出口核放单复制', + type: '1', + }, + { + action: 'E:passport:passportData:delete', + describe: '出口核放单删除', + type: '1', + }, + { + action: 'I:passport:passportData:save', + describe: '进口核放单保存', + type: '1', + }, + { + action: 'E:passport:passportData:save', + describe: '出口核放单保存', + type: '1', + }, + { + action: 'lcch:MessageReceipt:handleSend', + describe: '一键回传', + type: '1', + }, + { + action: 'lcch:MessageReceipt:download', + describe: '下载', + type: '1', + }, + { + action: 'lcch:MessageReceipt:save', + describe: '新增保存', + type: '1', + }, + { + action: 'merger:MergerPrimaryConfig:add', + describe: '新增保存', + type: '1', + }, + { + action: 'merger:MergerPrimaryConfig:edit', + describe: '编辑保存', + type: '1', + }, + { + action: 'merger:MergerPrimaryConfig:remove', + describe: '删除', + type: '1', + }, + { + action: 'merger:MergerElementConfig:add', + describe: '新增保存', + type: '1', + }, + { + action: 'merger:MergerElementConfig:edit', + describe: '编辑保存', + type: '1', + }, + { + action: 'merger:MergerElementConfig:remove', + describe: '删除', + type: '1', + }, + { + action: 'merger:MergerDataWarning:detail', + describe: '详情', + type: '1', + }, + { + action: 'sys:common:main', + describe: '默认登录权限', + type: '1', + }, + { + action: 'sys:role:list:user', + describe: '授权用户列表', + type: '1', + }, + { + action: 'sys:dict:item:add', + describe: '数据新增', + type: '1', + }, + { + action: 'bill:bill:exportHeadList:I0null', + describe: '批量导出清单表体', + type: '1', + }, + { + action: 'bill:bill:exportEntryList:I0null', + describe: '批量导出报关表体', + type: '1', + }, + { + action: 'bill:bill:exportHeadList:I1null', + describe: '批量导出清单表体', + type: '1', + }, + { + action: 'bill:bill:exportEntryList:I1null', + describe: '批量导出报关表体', + type: '1', + }, + { + action: 'sys:user:recycle', + describe: '回收', + type: '1', + }, + { + action: 'record.ems.edit33BODY', + describe: '编辑', + type: '1', + }, + { + action: 'record.ems.import33BODY', + describe: '导入', + type: '1', + }, + { + action: 'record.ems.mergeCopImgNoBetch33BODY', + describe: '归并料号提取', + type: '1', + }, + { + action: 'record.ems.remove33BODY', + describe: '删除', + type: '1', + }, + { + action: 'record.ems.edit43BODY', + describe: '编辑', + type: '1', + }, + { + action: 'record.ems.import43BODY', + describe: '导入', + type: '1', + }, + { + action: 'record.ems.mergeCopImgNoBetch43BODY', + describe: '表体归并料号提取', + type: '1', + }, + { + action: 'record.ems.remove43BODY', + describe: '删除', + type: '1', + }, + { + action: 'record.ems.recordChangeBetch43BODY', + describe: '备案变更提取', + type: '1', + }, + { + action: 'bill:bill:downloadEntrys:I0null', + describe: '批量打印报关单', + type: '1', + }, + { + action: 'bill:bill:batchPrintI1null', + describe: '批量打印', + type: '1', + }, + { + action: 'bill:bill:batchPrintBillI1null', + describe: '打印核注清单', + type: '1', + }, + { + action: 'bill:bill:batchPrintEntryI1null', + describe: '打印报关单', + type: '1', + }, + { + action: 'bill:bill:entryTax:calc', + describe: '计算', + type: '1', + }, + { + action: 'bill:bill:entryTax:backFillInfo', + describe: '回填信息', + type: '1', + }, + { + action: 'bill:bill:billLst:setNetWtLengthI1null', + describe: '设置净重位数', + type: '1', + }, + { + action: 'bill:bill:billLst:setNetWtLengthI11', + describe: '设置净重位数', + type: '1', + }, + { + action: 'bill:bill:billLst:setNetWtLengthI13', + describe: '设置净重位数', + type: '1', + }, + { + action: 'bill:bill:downloadEntrys:E0null', + describe: '批量打印报关单', + type: '1', + }, + { + action: 'bill:bill:exportE0null', + describe: '导出', + type: '1', + }, + { + action: 'sys:workflow:list', + describe: '查询', + type: '1', + }, + { + action: 'sys:workflow:add', + describe: '新增', + type: '1', + }, + { + action: 'sys:workflow:edit', + describe: '修改', + type: '1', + }, + { + action: 'sys:workflow:map:list', + describe: '流程关系查询', + type: '1', + }, + { + action: 'sys:workflow:map:add', + describe: '流程关系新增', + type: '1', + }, + { + action: 'sys:workflow:map:edit', + describe: '流程关系修改', + type: '1', + }, + { + action: 'sys:workflow:change', + describe: '启用&禁用', + type: '1', + }, + { + action: 'workflow:surrogate:list', + describe: '列表', + type: '1', + }, + { + action: 'workflow:surrogate:add', + describe: '新增', + type: '1', + }, + { + action: 'workflow:surrogate:edit', + describe: '修改', + type: '1', + }, + { + action: 'workflow:surrogate:del', + describe: '删除', + type: '1', + }, + { + action: 'xxljob:info:list', + describe: '查询', + type: '1', + }, + { + action: 'xxljob:info:add', + describe: '新增', + type: '1', + }, + { + action: 'xxljob:info:edit', + describe: '修改', + type: '1', + }, + { + action: 'xxljob:info:del', + describe: '删除', + type: '1', + }, + { + action: 'bill:entryQuery:exportI', + describe: '导出', + type: '1', + }, + { + action: 'bill:bill:entryResetI', + describe: '报关单重置', + type: '1', + }, + { + action: 'bill:entryQuery:entryRecheckPrintI', + describe: '核对单', + type: '1', + }, + { + action: 'bill:bill:entryHead:attaI0', + describe: '随附单据', + type: '1', + }, + { + action: 'bill:billEntry:printOtherPageI0', + describe: '打印商品附加页', + type: '1', + }, + { + action: 'bill:entryQuery:entryPrintI0', + describe: '打印', + type: '1', + }, + { + action: 'bill:bill:entryList:agreementI0', + describe: '协定享惠', + type: '1', + }, + { + action: 'bill:bill:entryList:betchRepairI0', + describe: '批量修改', + type: '1', + }, + { + action: 'bill:bill:exportEntryExcel:I0null', + describe: '单一窗口平台货物申报数据导出', + type: '1', + }, + { + action: 'bill:bill:exportEntryExcel:I1null', + describe: '单一窗口平台货物申报数据导出', + type: '1', + }, + { + action: 'bill:bill:exportEntryExcel:E0null', + describe: '单一窗口平台货物申报数据导出', + type: '1', + }, + { + action: 'bill:bill:exportEntryExcel:E1null', + describe: '单一窗口平台货物申报数据导出', + type: '1', + }, + { + action: 'bill:bill:exportBillExcel:I0null', + describe: '单一窗口平台核注清单导出', + type: '1', + }, + { + action: 'bill:bill:exportBillExcel:I1null', + describe: '单一窗口平台核注清单导出', + type: '1', + }, + { + action: 'bill:bill:exportBillExcel:E0null', + describe: '单一窗口平台核注清单导出', + type: '1', + }, + { + action: 'bill:bill:exportBillExcel:I13', + describe: '单一窗口平台核注清单导出', + type: '1', + }, + { + action: 'bill:bill:exportBillExcel:I11', + describe: '单一窗口平台核注清单导出', + type: '1', + }, + { + action: 'bill:bill:exportBillExcel:E1null', + describe: '单一窗口平台核注清单导出', + type: '1', + }, + { + action: 'bill:bill:exportEntryExcel:E11', + describe: '单一窗口平台核注清单导出', + type: '1', + }, + { + action: 'bill:bill:exportEntryExcel:E13', + describe: '单一窗口平台核注清单导出', + type: '1', + }, + { + action: 'bill:bill:arrivalUpload:null', + describe: '发送运抵', + type: '1', + }, + { + action: 'bill:bill:arrivalUpload:1', + describe: '发送运抵', + type: '1', + }, + { + action: 'sys:new:premission', + describe: '按钮配置', + type: '1', + }, + { + action: 'merger:MergerData:superQuery:1', + describe: '查询', + type: '1', + }, + { + action: 'merger:MergerData:export:1', + describe: '导出', + type: '1', + }, + { + action: 'merger:MergerData:superQuery:2', + describe: '查询', + type: '1', + }, + { + action: 'merger:MergerData:export:2', + describe: '导出', + type: '1', + }, + { + action: 'merger:MergerData:superQuery:3', + describe: '查询', + type: '1', + }, + { + action: 'merger:MergerData:export:3', + describe: '导出', + type: '1', + }, + { + action: 'merger:MergerData:superQuery:4', + describe: '查询', + type: '1', + }, + { + action: 'merger:MergerData:export:4', + describe: '导出', + type: '1', + }, + { + action: 'merger:MergerData:superQuery:5', + describe: '查询', + type: '1', + }, + { + action: 'merger:MergerData:export:5', + describe: '导出', + type: '1', + }, + { + action: 'bill:entryQuery:superQueryI', + describe: '查询', + type: '1', + }, + { + action: 'bill:entryQuery:superQueryE', + describe: '查询', + type: '1', + }, + { + action: 'bill:bill:superQueryI0null', + describe: '查询', + type: '1', + }, + { + action: 'specialArea:sasBizApplyHead.submit', + describe: '提交', + type: '1', + }, + { + action: 'specialArea:sasBizApplyHead.tansfer', + describe: '转岗', + type: '1', + }, + { + action: 'specialArea:sasBizApplyHead.verify', + describe: '审核', + type: '1', + }, + { + action: 'specialArea:sasBizApplyHead.cancel', + describe: '撤回', + type: '1', + }, + { + action: 'specialArea:sasBizApplyHead.flowReset', + describe: '流程重置', + type: '1', + }, + { + action: 'specialArea:lvSasStockList.submit', + describe: '提交', + type: '1', + }, + { + action: 'specialArea:lvSasStockList.tansfer', + describe: '转岗', + type: '1', + }, + { + action: 'specialArea:lvSasStockList.verify', + describe: '审核', + type: '1', + }, + { + action: 'specialArea:lvSasStockList.cancel', + describe: '撤回', + type: '1', + }, + { + action: 'specialArea:lvSasStockList.flowReset', + describe: '流程重置', + type: '1', + }, + { + action: 'bill:bill:batchUploadI0null', + describe: '批量上载', + type: '1', + }, + { + action: 'bill:bill:batchUploadI1null', + describe: '批量上载', + type: '1', + }, + { + action: 'bill:bill:batchUploadI11', + describe: '上载', + type: '1', + }, + { + action: 'bill:bill:batchUploadI13', + describe: '上载', + type: '1', + }, + { + action: 'bill:bill:batchUploadE0null', + describe: '上载', + type: '1', + }, + { + action: 'bill:bill:batchUploadE1null', + describe: '上载', + type: '1', + }, + { + action: 'bill:bill:batchUploadE11', + describe: '上载', + type: '1', + }, + { + action: 'bill:bill:batchUploadE13', + describe: '上载', + type: '1', + }, + { + action: 'bill:bill:arrivalUpload:3', + describe: '运抵发送', + type: '1', + }, + { + action: 'bill:bill:arrivalUpload:null', + describe: '运抵发送', + type: '1', + }, + { + action: '21', + describe: '单损耗-提取BOM', + type: '1', + }, + { + action: 'lcch:preBill:query', + describe: '查询', + type: '1', + }, + { + action: 'rmft:rmftManifest:query', + describe: '查询', + type: '1', + }, + { + action: 'bill:bill:exportI0null', + describe: '导出', + type: '1', + }, + { + action: 'bill:bill:exportI1null', + describe: '导出', + type: '1', + }, + { + action: 'bill:bill:exportI11', + describe: '导出', + type: '1', + }, + { + action: 'bill:bill:exportI13', + describe: '导出', + type: '1', + }, + { + action: 'bill:bill:exportE13', + describe: '导出', + type: '1', + }, + { + action: 'bill:bill:exportE11', + describe: '导出', + type: '1', + }, + { + action: 'bill:bill:exportE1null', + describe: '导出', + type: '1', + }, + { + action: 'bill:bill:billLIst:mergerJvListI0null', + describe: '合并表体JV', + type: '1', + }, + { + action: 'sys:code:rule:save', + describe: '规则配置保存', + type: '1', + }, + { + action: 'certdatahead:close', + describe: '表头关闭', + type: '1', + }, + { + action: 'bill:bill:mergerBillI0null', + describe: '合并清单(集报)', + type: '1', + }, + { + action: 'certdatahead:save', + describe: '表头保存', + type: '1', + }, + { + action: 'BillAlert:query', + describe: '查询', + type: '1', + }, + { + action: 'BillAlert:export', + describe: '导出', + type: '1', + }, + { + action: 'bill:bill:pickPrice:E11', + describe: '清单表体-提取单价', + type: '1', + }, + { + action: 'bill:bill:pickPriceE1null', + describe: '清单表体-提取单价', + type: '1', + }, + { + action: 'bill:bill:pickPrice:E11', + describe: '清单表体-提取单价', + type: '1', + }, + { + action: 'specialArea:LvSasStockDetailList:superQuery', + describe: '查询', + type: '1', + }, + { + action: 'specialArea:LvSasStockDetailList:export', + describe: '导出', + type: '1', + }, + { + action: 'passport:passportData:superQuery', + describe: '高级查询', + type: '1', + }, + { + action: 'passport:passportData:superQuery', + describe: '高级查询', + type: '1', + }, + { + action: 'bill:bill:downloadDocsI1null', + describe: '打印报关资料', + type: '1', + }, + { + action: 'BaseCountryConversion:query', + describe: '查询', + type: '1', + }, + { + action: 'BaseCountryConversion:add', + describe: '新增', + type: '1', + }, + { + action: 'BaseCountryConversion:import', + describe: '导入', + type: '1', + }, + { + action: 'BaseCountryConversion:export', + describe: '导出', + type: '1', + }, + { + action: 'BaseCountryConversion:del', + describe: '删除', + type: '1', + }, + { + action: 'BaseCountryConversion:edit', + describe: '编辑', + type: '1', + }, + { + action: 'bill:bill:downloadDocsI0null', + describe: '打印报关资料', + type: '1', + }, + { + action: 'bill:bill:downloadDocsI11', + describe: '打印报关资料', + type: '1', + }, + { + action: 'bill:bill:downloadDocsI13', + describe: '打印报关资料', + type: '1', + }, + { + action: 'bill:bill:downloadDocsE0null', + describe: '打印报关资料', + type: '1', + }, + { + action: 'bill:bill:downloadDocsE1null', + describe: '打印报关资料', + type: '1', + }, + { + action: 'bill:bill:downloadDocsE11', + describe: '打印报关资料', + type: '1', + }, + { + action: 'bill:bill:downloadDocsE13', + describe: '打印报关资料', + type: '1', + }, + { + action: 'bill:bill:clearEntryId', + describe: '清除报关单号', + type: '1', + }, + { + action: 'bill:bill:clearEntryId', + describe: '清除报关单号', + type: '1', + }, + { + action: 'bill:bill:clearEntryId', + describe: '清除报关单号', + type: '1', + }, + { + action: 'bill:bill:clearEntryId', + describe: '清除报关单号', + type: '1', + }, + { + action: 'bill:bill:clearEntryId', + describe: '清除报关单号', + type: '1', + }, + { + action: 'bill:bill:clearEntryId', + describe: '清除报关单号', + type: '1', + }, + { + action: 'bill:bill:clearEntryId', + describe: '清除报关单号', + type: '1', + }, + { + action: 'bill:bill:clearEntryId', + describe: '清除报关单号', + type: '1', + }, + { + action: 'PartnerMonthlyAssessment:query', + describe: '查询', + type: '1', + }, + { + action: 'PartnerMonthlyAssessment:edit', + describe: '编辑', + type: '1', + }, + { + action: 'PartnerMonthlyAssessment:add', + describe: '新增', + type: '1', + }, + { + action: 'PartnerMonthlyAssessment:del', + describe: '删除', + type: '1', + }, + { + action: 'bill:bill:batchPrintI0null', + describe: '批量打印', + type: '1', + }, + { + action: 'bill:bill:batchPrintEntryI0null', + describe: '打印报关单', + type: '1', + }, + { + action: 'PartnerYearAssessment:query', + describe: '查询', + type: '1', + }, + { + action: 'PartnerYearAssessment:edit', + describe: '编辑', + type: '1', + }, + { + action: 'PartnerYearAssessment:add', + describe: '新增', + type: '1', + }, + { + action: 'PartnerYearAssessment:del', + describe: '删除', + type: '1', + }, + { + action: 'InteMergerData:query', + describe: '查询', + type: '1', + }, + { + action: 'InteMergerData:merger', + describe: '归档', + type: '1', + }, + { + action: 'ReportsOdmBillingList:query', + describe: '查询', + type: '1', + }, + { + action: 'ReportsOdmBillingList:update', + describe: '更新', + type: '1', + }, + { + action: 'ReportsOdmBillingList:export', + describe: '导出', + type: '1', + }, + { + action: 'certdatalist:add', + describe: '表体新增', + type: '1', + }, + { + action: 'certdatalist:save', + describe: '表体保存', + type: '1', + }, + { + action: 'certdatalist:delete', + describe: '表体删除', + type: '1', + }, + { + action: 'certdatalist:close', + describe: '表体关闭', + type: '1', + }, + { + action: 'LvCertData:query', + describe: '查询', + type: '1', + }, + { + action: 'LvCertData:export', + describe: '导出', + type: '1', + }, + { + action: 'merger:MergerData:importModel:1', + describe: '导入', + type: '1', + }, + { + action: 'merger:MergerData:thinImportModel:1', + describe: '精简导入', + type: '1', + }, + { + action: 'merger:MergerData:importModel:4', + describe: '导入', + type: '1', + }, + { + action: 'merger:MergerData:thinImportModel:4', + describe: '精简导入', + type: '1', + }, + { + action: 'dcr:dcrCycleHead:setting', + describe: '设置默认', + type: '1', + }, + { + action: 'record:deliverybalance:refresh', + describe: '数据刷新', + type: '1', + }, + { + action: 'record.ems.repair.import43BODY', + describe: '物流变更-修改导入', + type: '1', + }, + { + action: 'I:passport:passportData:export', + describe: '导出', + type: '1', + }, + { + action: 'E:passport:passportData:export', + describe: '导出', + type: '1', + }, + { + action: 'sys:role:reset', + describe: '授权重置', + type: '1', + }, + { + action: 'taxConcession:requisitionRecord:superQuery', + describe: '查询', + type: '1', + }, + { + action: 'taxConcession:requisitionRecord:delete', + describe: '删除', + type: '1', + }, + { + action: 'taxConcession:requisitionRecord:export', + describe: '导出', + type: '1', + }, + { + action: 'taxConcession:applicationDate:superQuery', + describe: '查询', + type: '1', + }, + { + action: 'taxConcession:applicationDate:add', + describe: '新增', + type: '1', + }, + { + action: 'taxConcession:applicationDate:edit', + describe: '编辑', + type: '1', + }, + { + action: 'taxConcession:applicationDate:copy', + describe: '复制', + type: '1', + }, + { + action: 'taxConcession:applicationDate:delete', + describe: '删除', + type: '1', + }, + { + action: 'taxConcession:applicationDate:upload', + describe: '上载', + type: '1', + }, + { + action: 'taxConcession:applicationDate:resetStatus', + describe: '重置状态', + type: '1', + }, + { + action: 'taxConcession:applicationDate:export', + describe: '导出', + type: '1', + }, + { + action: 'taxConcession:applicationDate:submit', + describe: '提交', + type: '1', + }, + { + action: 'taxConcession:applicationDate:review', + describe: '审核', + type: '1', + }, + { + action: 'taxConcession:applicationDate:transfer', + describe: '转岗', + type: '1', + }, + { + action: 'taxConcession:add:saveDate1', + describe: '项目信息表头暂存', + type: '1', + }, + { + action: 'taxConcession:add:saveDate2', + describe: '征免税信息表头暂存', + type: '1', + }, + { + action: 'taxConcession:add:printDate1', + describe: '项目信息表头打印', + type: '1', + }, + { + action: 'taxConcession:add:printDate2', + describe: '征免税信息表头打印', + type: '1', + }, + { + action: 'JmsPrjHead:query', + describe: '查询', + type: '1', + }, + { + action: 'JmsPrjHead:details', + describe: '详情', + type: '1', + }, + { + action: 'bill:bill:taxExemptionCertificateI0', + describe: '生成免表', + type: '1', + }, + { + action: 'taxConcession:equipmentDetailsUsageRecords:superQuery', + describe: '查询', + type: '1', + }, + { + action: 'taxConcession:equipmentDetailsUsageRecords:update', + describe: '更新', + type: '1', + }, + { + action: 'taxConcession:equipmentDetailsUsageRecords:requisition', + describe: '耗材领用', + type: '1', + }, + { + action: 'taxConcession:equipmentDetailsUsageRecords:export', + describe: '导出', + type: '1', + }, + { + action: 'taxConcession:equipmentDetailsUsageRecords:usageRecords', + describe: '使用记录', + type: '1', + }, + { + action: 'bill:billEntry:checkPrintE0null', + describe: '报关草单-核对单打印', + type: '1', + }, + { + action: 'bill:billEntry:checkPrintI0null', + describe: '报关草单-核对单打印', + type: '1', + }, + { + action: 'bill:billEntry:checkPrintI11', + describe: '报关草单-核对单打印', + type: '1', + }, + { + action: 'bill:billEntry:checkPrintE11', + describe: '报关草单-核对单打印', + type: '1', + }, + { + action: 'bill:billEntry:checkPrintI13', + describe: '报关草单-核对单打印', + type: '1', + }, + { + action: 'bill:billEntry:checkPrintIE13', + describe: '报关草单-核对单打印', + type: '1', + }, + { + action: 'bill:billEntry:checkPrintE1null', + describe: '报关草单-核对单打印', + type: '1', + }, + { + action: 'bill:billEntry:checkPrintI1null', + describe: '报关草单-核对单打印', + type: '1', + }, + { + action: 'bill:billEntry:packagePrintI11', + describe: '报关草单-箱单打印', + type: '1', + }, + { + action: 'bill:billEntry:packagePrintE11', + describe: '报关草单-箱单打印', + type: '1', + }, + { + action: 'bill:billEntry:packagePrintI13', + describe: '报关草单-箱单打印', + type: '1', + }, + { + action: 'bill:billEntry:packagePrintE13', + describe: '报关草单-箱单打印', + type: '1', + }, + { + action: 'bill:billEntry:packagePrintE0null', + describe: '报关草单-箱单打印', + type: '1', + }, + { + action: 'bill:billEntry:packagePrintI0null', + describe: '报关草单-箱单打印', + type: '1', + }, + { + action: 'bill:billEntry:packagePrintE1null', + describe: '报关草单-箱单打印', + type: '1', + }, + { + action: 'bill:billEntry:packagePrintI1null', + describe: '报关草单-箱单打印', + type: '1', + }, + { + action: 'FeeBillBase:query', + describe: '查询', + type: '1', + }, + { + action: 'FeeBillBase:export', + describe: '导出', + type: '1', + }, + { + action: 'FeeBillBase:add', + describe: '新增', + type: '1', + }, + { + action: 'FeeBillBase:edit', + describe: '编辑', + type: '1', + }, + { + action: 'FeeBillBase:del', + describe: '删除', + type: '1', + }, + { + action: 'FeeBillCharges:query', + describe: '查询', + type: '1', + }, + { + action: 'FeeBillCharges:add', + describe: '新增', + type: '1', + }, + { + action: 'FeeBillCharges:export', + describe: '导出', + type: '1', + }, + { + action: 'FeeBillCharges:del', + describe: '删除', + type: '1', + }, + { + action: 'FeeBillCharges:edit', + describe: '编辑', + type: '1', + }, + { + action: 'JmsConsumableIssuance:query', + describe: '查询', + type: '1', + }, + { + action: 'taxConcession:equipmentDetailsUsageSupervision:superQuery', + describe: '查询', + type: '1', + }, + { + action: 'MergerAccessoryPackage:query', + describe: '查询', + type: '1', + }, + { + action: 'MergerAccessoryPackage:add', + describe: '新增', + type: '1', + }, + { + action: 'MergerAccessoryPackage:export', + describe: '导出', + type: '1', + }, + { + action: 'MergerAccessoryPackage:del', + describe: '删除', + type: '1', + }, + { + action: 'MergerAccessoryPackage:edit', + describe: '编辑', + type: '1', + }, + { + action: 'MergerAccessoryPackage:import', + describe: '导入', + type: '1', + }, + { + action: 'FeeBillBase:import', + describe: '导入', + type: '1', + }, + { + action: 'FeeBillCharges:import', + describe: '导入', + type: '1', + }, + { + action: 'LvBilITrack:superQueryI', + describe: '查询', + type: '1', + }, + { + action: 'LvBilITrack:superQueryE', + describe: '查询', + type: '1', + }, + { + action: 'LvBilITrack:calculateE', + describe: '计算预计日期', + type: '1', + }, + { + action: 'LvBilITrack:exportE', + describe: '导出', + type: '1', + }, + { + action: 'LvBilITrack:importE', + describe: '导入', + type: '1', + }, + { + action: 'LvBilITrack:calculateI', + describe: '计算预计日期', + type: '1', + }, + { + action: 'LvBilITrack:exportI', + describe: '导出', + type: '1', + }, + { + action: 'LvBilITrack:importI', + describe: '导入', + type: '1', + }, + { + action: 'basedata:TrafTime:export', + describe: '导出', + type: '1', + }, + { + action: 'merger:MergeredList:exportModel', + describe: '批量修改导出', + type: '1', + }, + { + action: 'merger:MergeredList:importModel', + describe: '批量修改导入', + type: '1', + }, + { + action: 'taxConcession:applicationDate:resetFlow', + describe: '重置流程', + type: '1', + }, + { + action: 'record:particleDimension:edit', + describe: '编辑', + type: '1', + }, + { + action: 'record:particleDimension:detail', + describe: '详情', + type: '1', + }, + { + action: 'record:particleDimension:delete', + describe: '删除', + type: '1', + }, + { + action: 'record:particleDimension:delete', + describe: '删除', + type: '1', + }, + { + action: 'record:particleDimension:edit', + describe: '编辑', + type: '1', + }, + { + action: 'record:particleDimension:detail', + describe: '详情', + type: '1', + }, + { + action: 'SysViewAuth:query', + describe: '查询', + type: '1', + }, + { + action: 'SysViewAuth:add', + describe: '新增', + type: '1', + }, + { + action: 'SysViewAuth:del', + describe: '删除', + type: '1', + }, + { + action: 'SysViewAuth:edit', + describe: '编辑', + type: '1', + }, + { + action: 'SysViewRole:add', + describe: '新增', + type: '1', + }, + { + action: 'SysViewRole:del', + describe: '删除', + type: '1', + }, + { + action: 'SysViewRole:query', + describe: '查询', + type: '1', + }, + { + action: 'SysViewRole:edit', + describe: '编辑', + type: '1', + }, + { + action: 'SysViewAuth:refresh', + describe: '刷新', + type: '1', + }, + { + action: 'InteSecretConfig:query', + describe: '查询', + type: '1', + }, + { + action: 'InteSecretConfig:del', + describe: '删除', + type: '1', + }, + { + action: 'InteSecretConfig:add', + describe: '新增', + type: '1', + }, + { + action: 'InteSecretConfig:edit', + describe: '修改', + type: '1', + }, + { + action: 'HistoryTaxDetailsList:query', + describe: '查询', + type: '1', + }, + { + action: 'HistoryTaxDetailsList:add', + describe: '新增', + type: '1', + }, + { + action: 'HistoryTaxDetailsList:export', + describe: '导出', + type: '1', + }, + { + action: 'HistoryTaxDetailsList:import', + describe: '导入', + type: '1', + }, + { + action: 'HistoryTaxDetailsList:del', + describe: '删除', + type: '1', + }, + { + action: 'HistoryTaxDetailsList:edit', + describe: '编辑', + type: '1', + }, + { + action: 'HistoryTaxSummaryList:query', + describe: '查询', + type: '1', + }, + { + action: 'HistoryTaxSummaryList:add', + describe: '新增', + type: '1', + }, + { + action: 'HistoryTaxSummaryList:export', + describe: '导出', + type: '1', + }, + { + action: 'HistoryTaxSummaryList:import', + describe: '导入', + type: '1', + }, + { + action: 'HistoryTaxSummaryList:del', + describe: '删除', + type: '1', + }, + { + action: 'HistoryTaxSummaryList:edit', + describe: '编辑', + type: '1', + }, + { + action: 'HistoryInvoiceCustomsDeclarationList:query', + describe: '查询', + type: '1', + }, + { + action: 'HistoryInvoiceCustomsDeclarationList:add', + describe: '新增', + type: '1', + }, + { + action: 'HistoryInvoiceCustomsDeclarationList:export', + describe: '导出', + type: '1', + }, + { + action: 'HistoryInvoiceCustomsDeclarationList:import', + describe: '导入', + type: '1', + }, + { + action: 'HistoryInvoiceCustomsDeclarationList:del', + describe: '删除', + type: '1', + }, + { + action: 'HistoryInvoiceCustomsDeclarationList:edit', + describe: '编辑', + type: '1', + }, + { + action: 'HistoryCustomsDeclarationList:query', + describe: '查询', + type: '1', + }, + { + action: 'HistoryCustomsDeclarationList:add', + describe: '新增', + type: '1', + }, + { + action: 'HistoryCustomsDeclarationList:export', + describe: '导出', + type: '1', + }, + { + action: 'HistoryCustomsDeclarationList:import', + describe: '导入', + type: '1', + }, + { + action: 'HistoryCustomsDeclarationList:del', + describe: '删除', + type: '1', + }, + { + action: 'HistoryCustomsDeclarationList:edit', + describe: '编辑', + type: '1', + }, + { + action: 'HistoryTaxDetailsList:detail', + describe: '查看', + type: '1', + }, + { + action: 'HistoryTaxSummaryList:detail', + describe: '查看', + type: '1', + }, + { + action: 'HistoryInvoiceCustomsDeclarationList:detail', + describe: '查看', + type: '1', + }, + { + action: 'HistoryCustomsDeclarationList:queryAll', + describe: '高级查询', + type: '1', + }, + { + action: 'HistoryTaxDetailsList:queryAll', + describe: '高级查询', + type: '1', + }, + { + action: 'HistoryTaxSummaryList:queryAll', + describe: '高级查询', + type: '1', + }, + { + action: 'HistoryInvoiceCustomsDeclarationList:queryAll', + describe: '高级查询', + type: '1', + }, + { + action: 'HistoryCustomsDeclarationList:detail', + describe: '查看', + type: '1', + }, + { + action: 'VehicleDeliveryOrderList:query', + describe: '查询', + type: '1', + }, + { + action: 'VehicleDeliveryOrderList:del', + describe: '删除', + type: '1', + }, + { + action: 'VehicleInvoiceList:query', + describe: '查询', + type: '1', + }, + { + action: 'VehicleInvoiceList:del', + describe: '删除', + type: '1', + }, + { + action: 'ImportComponentList:query', + describe: '查询', + type: '1', + }, + { + action: 'ImportComponentList:del', + describe: '删除', + type: '1', + }, + { + action: 'ExportComponentList:query', + describe: '查询', + type: '1', + }, + { + action: 'ExportComponentList:del', + describe: '删除', + type: '1', + }, + { + action: 'BillingLineConfig:query', + describe: '查询', + type: '1', + }, + { + action: 'BillingLineConfig:add', + describe: '新增', + type: '1', + }, + { + action: 'BillingLineConfig:export', + describe: '导出', + type: '1', + }, + { + action: 'BillingLineConfig:import', + describe: '导入', + type: '1', + }, + { + action: 'BillingLineConfig:del', + describe: '删除', + type: '1', + }, + { + action: 'BillingLineConfig:edit', + describe: '编辑', + type: '1', + }, + { + action: 'BillingAddressConfig:query', + describe: '查询', + type: '1', + }, + { + action: 'BillingAddressConfig:del', + describe: '删除', + type: '1', + }, + { + action: 'BillingAddressConfig:add', + describe: '新增', + type: '1', + }, + { + action: 'BillingAddressConfig:export', + describe: '导出', + type: '1', + }, + { + action: 'BillingAddressConfig:import', + describe: '导入', + type: '1', + }, + { + action: 'BillingAddressConfig:edit', + describe: '编辑', + type: '1', + }, + { + action: 'BillingVehicleConfig:query', + describe: '查询', + type: '1', + }, + { + action: 'BillingVehicleConfig:add', + describe: '新增', + type: '1', + }, + { + action: 'BillingVehicleConfig:export', + describe: '导出', + type: '1', + }, + { + action: 'BillingVehicleConfig:import', + describe: '导入', + type: '1', + }, + { + action: 'BillingVehicleConfig:del', + describe: '删除', + type: '1', + }, + { + action: 'BillingVehicleConfig:edit', + describe: '编辑', + type: '1', + }, + { + action: 'BillingCost:query', + describe: '查询', + type: '1', + }, + { + action: 'BillingCost:add', + describe: '新增', + type: '1', + }, + { + action: 'BillingCost:export', + describe: '导出', + type: '1', + }, + { + action: 'BillingCost:import', + describe: '导入', + type: '1', + }, + { + action: 'BillingCost:del', + describe: '删除', + type: '1', + }, + { + action: 'BillingCost:edit', + describe: '编辑', + type: '1', + }, + { + action: 'ExVendorPartnoComparison:query', + describe: '查询', + type: '1', + }, + { + action: 'ExVendorPartnoComparison:add', + describe: '新增', + type: '1', + }, + { + action: 'ExVendorPartnoComparison:export', + describe: '导出', + type: '1', + }, + { + action: 'ExVendorPartnoComparison:import', + describe: '导入', + type: '1', + }, + { + action: 'ExVendorPartnoComparison:del', + describe: '删除', + type: '1', + }, + { + action: 'ExVendorPartnoComparison:edit', + describe: '编辑', + type: '1', + }, + { + action: 'BaseBusinessConfig:add', + describe: '新增', + type: '1', + }, + { + action: 'BaseBusinessConfig:query', + describe: '查询', + type: '1', + }, + { + action: 'BaseBusinessConfig:del', + describe: '删除', + type: '1', + }, + { + action: 'BaseBusinessConfig:edit', + describe: '修改', + type: '1', + }, + { + action: 'BaseContractManagement:query', + describe: '查询', + type: '1', + }, + { + action: 'BaseContractManagement:add', + describe: '新增', + type: '1', + }, + { + action: 'BaseContractManagement:export', + describe: '导出', + type: '1', + }, + { + action: 'BaseContractManagement:import', + describe: '导入', + type: '1', + }, + { + action: 'BaseContractManagement:del', + describe: '删除', + type: '1', + }, + { + action: 'BaseContractManagement:edit', + describe: '编辑', + type: '1', + }, + { + action: 'VehicleDeliveryOrderApp:query', + describe: '查询', + type: '1', + }, + { + action: 'VehicleDeliveryOrder:generate', + describe: '生成清单', + type: '1', + }, + { + action: 'MergerApplyPre:query', + describe: '查询', + type: '1', + }, + { + action: 'TaxClassification:query', + describe: '查询', + type: '1', + }, + { + action: 'TaxClassification:add', + describe: '新增', + type: '1', + }, + { + action: 'TaxClassification:import', + describe: '导入', + type: '1', + }, + { + action: 'TaxClassification:export', + describe: '导出', + type: '1', + }, + { + action: 'TaxClassification:del', + describe: '删除', + type: '1', + }, + { + action: 'TaxClassification:refresh', + describe: '更新状态', + type: '1', + }, + { + action: 'TaxClassification:edit', + describe: '编辑', + type: '1', + }, + { + action: 'mergerApplyPreWarning:examine', + describe: '检查', + type: '1', + }, + { + action: 'mergerApplyPreWarning:query', + describe: '建议书预警查询', + type: '1', + }, + { + action: 'SameNameDiffCodesWarning:query', + describe: '查询', + type: '1', + }, + { + action: 'SameNameDiffCodesWarning:check', + describe: '检查', + type: '1', + }, + { + action: 'SameNameDiffCodesWarning:edit', + describe: '编辑', + type: '1', + }, + { + action: 'SameNameDiffCodesWarning:query', + describe: '详情', + type: '1', + }, + { + action: 'SameNameDiffCodesWarning:del', + describe: '删除', + type: '1', + }, + { + action: 'BanLimitationWarning:query', + describe: '查询', + type: '1', + }, + { + action: 'BanLimitationWarning:check', + describe: '检查', + type: '1', + }, + { + action: 'BanLimitationWarning:edit', + describe: '编辑', + type: '1', + }, + { + action: 'BanLimitationWarning:query', + describe: '详情', + type: '1', + }, + { + action: 'BanLimitationWarning:del', + describe: '删除', + type: '1', + }, + { + action: 'mergerApplyPreWarning:export', + describe: '建议书预警导出', + type: '1', + }, + { + action: 'SameNameDiffCodesWarning:export', + describe: '导出', + type: '1', + }, + { + action: 'BanLimitationWarning:export', + describe: '导出', + type: '1', + }, + { + action: 'EntryInvoice:query', + describe: '查询', + type: '1', + }, + { + action: 'InteAsnPackingList:query', + describe: '查询', + type: '1', + }, + { + action: 'InteAsnPackingList:del', + describe: '删除', + type: '1', + }, + { + action: 'MergerApplyPre:export', + describe: '导出', + type: '1', + }, + { + action: 'MergerApplyPre:add', + describe: '新增', + type: '1', + }, + { + action: 'MergerApplyPre:query', + describe: '查询', + type: '1', + }, + { + action: 'MergerApplyPre:import', + describe: '导入', + type: '1', + }, + { + action: 'MergerApplyPre:creat', + describe: '生成excel', + type: '1', + }, + { + action: 'MergerApplyPre:Enable', + describe: '启用', + type: '1', + }, + { + action: 'MergerApplyPre:stop', + describe: '停用', + type: '1', + }, + { + action: 'VehicleDeliveryOrderApp:edit', + describe: '编辑', + type: '1', + }, + { + action: 'MergerApplyPre:edit', + describe: '编辑', + type: '1', + }, + { + action: 'MergerApplyPre:feedback', + describe: '工程师反馈', + type: '1', + }, + { + action: 'MergerApplyPre:del', + describe: '删除', + type: '1', + }, + { + action: 'TaxClassification:refreshData', + describe: '更新', + type: '1', + }, + { + action: 'TaxClassification:extractQuery', + describe: '提取', + type: '1', + }, + { + action: 'ExportConfirmationOrder:query', + describe: '查询', + type: '1', + }, + { + action: 'ExportConfirmationOrder:copyAdd', + describe: '复制新增', + type: '1', + }, + { + action: 'ExportConfirmationOrder:export', + describe: '导出', + type: '1', + }, + { + action: 'ExportConfirmationOrder:import', + describe: '导入', + type: '1', + }, + { + action: 'ExportConfirmationOrder:del', + describe: '删除', + type: '1', + }, + { + action: 'ExportConfirmationOrder:edit', + describe: '编辑', + type: '1', + }, + { + action: 'ExportForecastOrders:query', + describe: '查询', + type: '1', + }, + { + action: 'ExportForecastOrders:export', + describe: '导出', + type: '1', + }, + { + action: 'ExportForecastOrders:import', + describe: '导入', + type: '1', + }, + { + action: 'MergerAssign:query', + describe: '查询', + type: '1', + }, + { + action: 'MergerAssign:add', + describe: '新增', + type: '1', + }, + { + action: 'MergerAssign:export', + describe: '导出', + type: '1', + }, + { + action: 'MergerAssign:del', + describe: '删除', + type: '1', + }, + { + action: 'MergerAssign:save', + describe: '保存', + type: '1', + }, + { + action: 'MergerTimeValidity:query', + describe: '查询', + type: '1', + }, + { + action: 'MergerTimeValidity:add', + describe: '新增', + type: '1', + }, + { + action: 'MergerTimeValidity:export', + describe: '导出', + type: '1', + }, + { + action: 'MergerTimeValidity:del', + describe: '删除', + type: '1', + }, + { + action: 'MergerTimeValidity:edit', + describe: '编辑', + type: '1', + }, + { + action: 'MergerTimeValidity:save', + describe: '保存', + type: '1', + }, + { + action: 'MergerAssign:edit', + describe: '编辑', + type: '1', + }, + { + action: 'ResearchMergerSetup:query', + describe: '查询', + type: '1', + }, + { + action: 'ResearchMergerSetup:add', + describe: '新增', + type: '1', + }, + { + action: 'ResearchMergerSetup:export', + describe: '导出', + type: '1', + }, + { + action: 'ResearchMergerSetup:del', + describe: '删除', + type: '1', + }, + { + action: 'ResearchMergerSetup:edit', + describe: '编辑', + type: '1', + }, + { + action: 'ResearchMergerSetup:save', + describe: '表头保存', + type: '1', + }, + { + action: 'ResearchMergerSetupBody:add', + describe: '表体新增', + type: '1', + }, + { + action: 'ResearchMergerSetupBody:del', + describe: '表体删除', + type: '1', + }, + { + action: 'ResearchMergerSetupBody:edit', + describe: '表体编辑', + type: '1', + }, + { + action: 'ResearchMergerSetup:copy', + describe: '复制', + type: '1', + }, + { + action: 'ResearchMergerSetup:start', + describe: '启用', + type: '1', + }, + { + action: 'ResearchMergerSetup:stop', + describe: '停用', + type: '1', + }, + { + action: 'LegalPersonOrg:query', + describe: '查询', + type: '1', + }, + { + action: 'LegalPersonOrg:add', + describe: '新增', + type: '1', + }, + { + action: 'LegalPersonOrg:export', + describe: '导出', + type: '1', + }, + { + action: 'LegalPersonOrg:del', + describe: '删除', + type: '1', + }, + { + action: 'LegalPersonOrg:edit', + describe: '编辑', + type: '1', + }, + { + action: 'LegalPersonOrg:save', + describe: '保存', + type: '1', + }, + { + action: 'LegalPersonOrgBody:query', + describe: '表体查询', + type: '1', + }, + { + action: 'LegalPersonOrgBody:add', + describe: '表体新增', + type: '1', + }, + { + action: 'LegalPersonOrgBody:export', + describe: '表体导出', + type: '1', + }, + { + action: 'LegalPersonOrgBody:del', + describe: '表体删除', + type: '1', + }, + { + action: 'LegalPersonOrgBody:edit', + describe: '表体编辑', + type: '1', + }, + { + action: 'LegalPersonOrg:import', + describe: '导入', + type: '1', + }, + { + action: 'LegalPersonOrgBody:import', + describe: '表体导入', + type: '1', + }, + { + action: 'MergerReqs:query', + describe: '查询', + type: '1', + }, + { + action: 'MergerReqs:export', + describe: '导出', + type: '1', + }, + { + action: 'MergerReqs:add', + describe: '新增', + type: '1', + }, + { + action: 'MergerReqsBody:import', + describe: '表体导入', + type: '1', + }, + { + action: 'MergerReqs:del', + describe: '删除', + type: '1', + }, + { + action: 'MergerReqsBody:add', + describe: '表体保存', + type: '1', + }, + { + action: 'MergerReqsBody:del', + describe: '表体删除', + type: '1', + }, + { + action: 'MergerReqs:save', + describe: '保存', + type: '1', + }, + { + action: 'MergerReqsBody:query', + describe: '表体查询', + type: '1', + }, + { + action: 'MergerReqsBody:export', + describe: '表体导出', + type: '1', + }, + { + action: 'MergerReqsBody:edit', + describe: '表体编辑', + type: '1', + }, + { + action: 'MergerReqsBody:virtual', + describe: '表体生成虚拟料号', + type: '1', + }, + { + action: 'MergerReqsBody:extract', + describe: '表体-提取研发分类', + type: '1', + }, + { + action: 'MergerReqsBody:split', + describe: '表体数据拆分', + type: '1', + }, + { + action: 'MergerReqsBody:merge', + describe: '表体数据合并', + type: '1', + }, + { + action: 'MergerReqs:eleExport', + describe: '要素批量导出', + type: '1', + }, + { + action: 'MergerReqs:transfer', + describe: '需求单转派', + type: '1', + }, + { + action: 'MergerReqs:group', + describe: '提交归类', + type: '1', + }, + { + action: 'MergerReqsLv:export', + describe: '导出', + type: '1', + }, + { + action: 'MergerReqsLv:query', + describe: '查询', + type: '1', + }, + { + action: 'MaterialMaster:query', + describe: '查询', + type: '1', + }, + { + action: 'MaterialMaster:export', + describe: '导出', + type: '1', + }, + { + action: 'MaterialMaster:edit', + describe: '编辑', + type: '1', + }, + { + action: 'MaterialMaster:save', + describe: '保存', + type: '1', + }, + { + action: 'MaterialMaster:match', + describe: '涉证类型自动匹配', + type: '1', + }, + { + action: 'MaterialMaster:collect', + describe: '要素收集', + type: '1', + }, + { + action: 'MaterialMaster:copy', + describe: '复制', + type: '1', + }, + { + action: 'MaterialMaster:confirm', + describe: '确认', + type: '1', + }, + { + action: 'MergerReqs:import', + describe: '要素批量导入', + type: '1', + }, + { + action: 'MaterialMaster:add', + describe: '新增', + type: '1', + }, + { + action: 'merger:MergerData:submitFlow:1', + describe: '提交/审核/重新归类/转岗', + type: '1', + }, + { + action: 'merger:MergerData:enabled:1', + describe: '启用/停用', + type: '1', + }, + { + action: 'merger:MergerData:updateHsCode:1', + describe: '更新商品编码', + type: '1', + }, + { + action: 'merger:MergerData:modifyBatch:1', + describe: '批量变更商品编码/批量变更商品名称/批量变更申报要素', + type: '1', + }, + { + action: 'merger:MergerData:remove:1', + describe: '删除', + type: '1', + }, + { + action: 'merger:MergerData:backScc:1', + describe: '退回SCC', + type: '1', + }, + { + action: 'merger:MergerData:resetFlows:1', + describe: '流程重置', + type: '1', + }, + { + action: 'merger:MergerData:cancelFlows:1', + describe: '撤回', + type: '1', + }, + { + action: 'merger:MergerData:sendReceipts:1', + describe: '手工回传', + type: '1', + }, + { + action: 'merger:MergerData:edit:1', + describe: '编辑', + type: '1', + }, + { + action: 'merger:MergerData:add:1', + describe: '新增', + type: '1', + }, + { + action: 'merger:MergerData:detail:1', + describe: '详情', + type: '1', + }, + { + action: 'merger:MergerData:showFlowStatus:1', + describe: '流程状态', + type: '1', + }, + { + action: 'merger:MergerData:save:1', + describe: '保存', + type: '1', + }, + { + action: 'merger:MergerData:queryMergerData:1', + describe: '检索', + type: '1', + }, + { + action: 'merger:MergerData:from:submitFlow:1', + describe: '提交/审核/转岗', + type: '1', + }, + { + action: 'merger:MergerData:submitFlow:2', + describe: '提交/审核/重新归类/转岗', + type: '1', + }, + { + action: 'merger:MergerData:enabled:2', + describe: '启用/停用', + type: '1', + }, + { + action: 'merger:MergerData:updateHsCode:2', + describe: '更新商品编码', + type: '1', + }, + { + action: 'merger:MergerData:modifyBatch:2', + describe: '批量变更商品编码/批量变更商品名称/批量变更申报要素', + type: '1', + }, + { + action: 'merger:MergerData:remove:2', + describe: '删除', + type: '1', + }, + { + action: 'merger:MergerData:backScc:2', + describe: '退回SCC', + type: '1', + }, + { + action: 'merger:MergerData:resetFlows:2', + describe: '流程重置', + type: '1', + }, + { + action: 'merger:MergerData:cancelFlows:2', + describe: '撤回', + type: '1', + }, + { + action: 'merger:MergerData:sendReceipts:2', + describe: '手工回传', + type: '1', + }, + { + action: 'merger:MergerData:edit:2', + describe: '编辑', + type: '1', + }, + { + action: 'merger:MergerData:add:2', + describe: '新增', + type: '1', + }, + { + action: 'merger:MergerData:detail:2', + describe: '详情', + type: '1', + }, + { + action: 'merger:MergerData:showFlowStatus:2', + describe: '流程状态', + type: '1', + }, + { + action: 'merger:MergerData:save:2', + describe: '保存', + type: '1', + }, + { + action: 'merger:MergerData:queryMergerData:2', + describe: '检索', + type: '1', + }, + { + action: 'merger:MergerData:from:submitFlow:2', + describe: '提交/审核/转岗', + type: '1', + }, + { + action: 'merger:MergerData:submitFlow:3', + describe: '提交/审核/重新归类/转岗', + type: '1', + }, + { + action: 'merger:MergerData:enabled:3', + describe: '启用/停用', + type: '1', + }, + { + action: 'merger:MergerData:updateHsCode:3', + describe: '更新商品编码', + type: '1', + }, + { + action: 'merger:MergerData:modifyBatch:3', + describe: '批量变更商品编码/批量变更商品名称/批量变更申报要素', + type: '1', + }, + { + action: 'merger:MergerData:remove:3', + describe: '删除', + type: '1', + }, + { + action: 'merger:MergerData:backScc:3', + describe: '退回SCC', + type: '1', + }, + { + action: 'merger:MergerData:resetFlows:3', + describe: '流程重置', + type: '1', + }, + { + action: 'merger:MergerData:cancelFlows:3', + describe: '撤回', + type: '1', + }, + { + action: 'merger:MergerData:sendReceipts:3', + describe: '手工回传', + type: '1', + }, + { + action: 'merger:MergerData:edit:3', + describe: '编辑', + type: '1', + }, + { + action: 'merger:MergerData:add:3', + describe: '新增', + type: '1', + }, + { + action: 'merger:MergerData:detail:3', + describe: '详情', + type: '1', + }, + { + action: 'merger:MergerData:showFlowStatus:3', + describe: '流程状态', + type: '1', + }, + { + action: 'merger:MergerData:save:3', + describe: '保存', + type: '1', + }, + { + action: 'merger:MergerData:queryMergerData:3', + describe: '检索', + type: '1', + }, + { + action: 'merger:MergerData:from:submitFlow:3', + describe: '提交/审核/转岗', + type: '1', + }, + { + action: 'merger:MergerData:submitFlow:4', + describe: '提交/审核/重新归类/转岗', + type: '1', + }, + { + action: 'merger:MergerData:enabled:4', + describe: '启用/停用', + type: '1', + }, + { + action: 'merger:MergerData:updateHsCode:4', + describe: '更新商品编码', + type: '1', + }, + { + action: 'merger:MergerData:modifyBatch:4', + describe: '批量变更商品编码/批量变更商品名称/批量变更申报要素', + type: '1', + }, + { + action: 'merger:MergerData:remove:4', + describe: '删除', + type: '1', + }, + { + action: 'merger:MergerData:backScc:4', + describe: '退回SCC', + type: '1', + }, + { + action: 'merger:MergerData:resetFlows:4', + describe: '流程重置', + type: '1', + }, + { + action: 'merger:MergerData:cancelFlows:4', + describe: '撤回', + type: '1', + }, + { + action: 'merger:MergerData:sendReceipts:4', + describe: '手工回传', + type: '1', + }, + { + action: 'merger:MergerData:edit:4', + describe: '编辑', + type: '1', + }, + { + action: 'merger:MergerData:add:4', + describe: '新增', + type: '1', + }, + { + action: 'merger:MergerData:detail:4', + describe: '详情', + type: '1', + }, + { + action: 'merger:MergerData:showFlowStatus:4', + describe: '流程状态', + type: '1', + }, + { + action: 'merger:MergerData:save:4', + describe: '保存', + type: '1', + }, + { + action: 'merger:MergerData:queryMergerData:4', + describe: '检索', + type: '1', + }, + { + action: 'merger:MergerData:from:submitFlow:4', + describe: '提交/审核/转岗', + type: '1', + }, + { + action: 'merger:MergerData:submitFlow:5', + describe: '提交/审核/重新归类/转岗', + type: '1', + }, + { + action: 'merger:MergerData:enabled:5', + describe: '启用/停用', + type: '1', + }, + { + action: 'merger:MergerData:updateHsCode:5', + describe: '更新商品编码', + type: '1', + }, + { + action: 'merger:MergerData:modifyBatch:5', + describe: '批量变更商品编码/批量变更商品名称/批量变更申报要素', + type: '1', + }, + { + action: 'merger:MergerData:remove:5', + describe: '删除', + type: '1', + }, + { + action: 'merger:MergerData:backScc:5', + describe: '退回SCC', + type: '1', + }, + { + action: 'merger:MergerData:resetFlows:5', + describe: '流程重置', + type: '1', + }, + { + action: 'merger:MergerData:cancelFlows:5', + describe: '撤回', + type: '1', + }, + { + action: 'merger:MergerData:sendReceipts:5', + describe: '手工回传', + type: '1', + }, + { + action: 'merger:MergerData:edit:5', + describe: '编辑', + type: '1', + }, + { + action: 'merger:MergerData:add:5', + describe: '新增', + type: '1', + }, + { + action: 'merger:MergerData:detail:5', + describe: '详情', + type: '1', + }, + { + action: 'merger:MergerData:showFlowStatus:5', + describe: '流程状态', + type: '1', + }, + { + action: 'merger:MergerData:save:5', + describe: '保存', + type: '1', + }, + { + action: 'merger:MergerData:queryMergerData:5', + describe: '检索', + type: '1', + }, + { + action: 'merger:MergerData:from:submitFlow:5', + describe: '提交/审核/转岗', + type: '1', + }, + { + action: 'record.ems.clear21I', + describe: '加贸变更-料件-清空', + type: '1', + }, + { + action: 'record.ems.repair.import21I', + describe: '加贸变更-料件-修改导入', + type: '1', + }, + { + action: 'record.ems.mergeBetch21I', + describe: '加贸变更-料件-已归类提取', + type: '1', + }, + { + action: 'record.ems.recordBetch21I', + describe: '加贸变更-料件-颗粒度提取', + type: '1', + }, + { + action: 'record.ems.recovery21I', + describe: '加贸变更-料件-恢复', + type: '1', + }, + { + action: 'record.ems.enabled21I', + describe: '加贸变更-料件-启用', + type: '1', + }, + { + action: 'record.ems.stop21I', + describe: '加贸变更-料件-停用', + type: '1', + }, + { + action: 'record.ems.stopReason21I', + describe: '加贸变更-料件-导出禁用原因', + type: '1', + }, + { + action: 'record.ems.bonedUse21I', + describe: '加贸变更-料件-保税启用', + type: '1', + }, + { + action: 'record.ems.bondedStop21I', + describe: '加贸变更-料件-保税禁用', + type: '1', + }, + { + action: 'merger:MergerPrimaryConfig:superQuery', + describe: '查询', + type: '1', + }, + { + action: 'merger:MergerElementConfig:superQuery', + describe: '查询', + type: '1', + }, + { + action: 'merger:MergerElementConfig:detail', + describe: '详情', + type: '1', + }, + { + action: 'merger:MergerElementConfig:bulkOperations', + describe: '批量操作', + type: '1', + }, + { + action: 'merger:MergerDataWarning:superQuery', + describe: '查询', + type: '1', + }, + { + action: 'merger:MergerDataWarning:export', + describe: '导出', + type: '1', + }, + { + action: 'merger:MergerDataWarning:examine', + describe: '检查', + type: '1', + }, + { + action: 'bill:billTemplate:superQueryI', + describe: '查询', + type: '1', + }, + { + action: 'bill:billTemplate:addI', + describe: '新增', + type: '1', + }, + { + action: 'bill:billTemplate:editI', + describe: '编辑', + type: '1', + }, + { + action: 'bill:billTemplate:bulkOperationsI', + describe: '批量操作', + type: '1', + }, + { + action: 'bill:bill:superQueryI', + describe: '查询', + type: '1', + }, + { + action: 'bill:bill:billRecheckI', + describe: '编辑', + type: '1', + }, + { + action: 'bill:billTidyList:superQueryI', + describe: '查询', + type: '1', + }, + { + action: 'bill:billTidyList:exportI', + describe: '导出列表', + type: '1', + }, + { + action: 'bill:billTidyList:exportDetailI', + describe: '导出明细', + type: '1', + }, + { + action: 'bill:billCompareList:superQueryI', + describe: '查询', + type: '1', + }, + { + action: 'bill:billCompareList:resetStatusI', + describe: '重新对比', + type: '1', + }, + { + action: 'bill:billCompareList:exportI', + describe: '导出', + type: '1', + }, + { + action: 'entry:entryTidy:superQueryI', + describe: '查询', + type: '1', + }, + { + action: 'entry:entryTidy:exportI', + describe: '导出列表', + type: '1', + }, + { + action: 'entry:entryTidy:exportDetailI', + describe: '导出明细', + type: '1', + }, + { + action: 'entry:entryTidy:betchPrintEntryTidyI', + describe: '批量打印', + type: '1', + }, + { + action: 'entry:entryCompare:superQueryI', + describe: '查询', + type: '1', + }, + { + action: 'entry:entryCompare:resetStatusI', + describe: '重新对比', + type: '1', + }, + { + action: 'entry:entryCompare:exportI', + describe: '导出', + type: '1', + }, + { + action: 'bill:billTemplate:superQueryE', + describe: '查询', + type: '1', + }, + { + action: 'bill:billTemplate:addE', + describe: '新增', + type: '1', + }, + { + action: 'bill:billTemplate:bulkOperationsE', + describe: '批量操作', + type: '1', + }, + { + action: 'bill:billTemplate:editE', + describe: '编辑', + type: '1', + }, + { + action: 'bill:bill:superQueryE', + describe: '查询', + type: '1', + }, + { + action: 'bill:bill:billRecheckE', + describe: '编辑', + type: '1', + }, + { + action: 'bill:billTidyList:superQueryE', + describe: '查询', + type: '1', + }, + { + action: 'bill:billTidyList:exportE', + describe: '导出列表', + type: '1', + }, + { + action: 'bill:billTidyList:exportDetailE', + describe: '导出明细', + type: '1', + }, + { + action: 'bill:billCompareList:superQueryE', + describe: '查询', + type: '1', + }, + { + action: 'bill:billCompareList:resetStatusE', + describe: '重新对比', + type: '1', + }, + { + action: 'bill:billCompareList:exportE', + describe: '导出', + type: '1', + }, + { + action: 'entry:entryTidy:superQueryE', + describe: '查询', + type: '1', + }, + { + action: 'entry:entryTidy:exportE', + describe: '导出列表', + type: '1', + }, + { + action: 'entry:entryTidy:exportDetailE', + describe: '导出明细', + type: '1', + }, + { + action: 'entry:entryTidy:betchPrintEntryTidyE', + describe: '批量打印', + type: '1', + }, + { + action: 'entry:entryCompare:superQueryE', + describe: '查询', + type: '1', + }, + { + action: 'entry:entryCompare:resetStatusE', + describe: '重新对比', + type: '1', + }, + { + action: 'entry:entryCompare:exportE', + describe: '导出', + type: '1', + }, + { + action: 'dcr:dcrCycleHead:superQuery', + describe: '查询', + type: '1', + }, + { + action: 'dcr:dcrCycleHead:add', + describe: '新增', + type: '1', + }, + { + action: 'dcr:dcrCycleHead:edit', + describe: '编辑', + type: '1', + }, + { + action: 'dcr:dcrCycleHead:remove', + describe: '删除', + type: '1', + }, + { + action: 'dcr:cavReportX:superQuery', + describe: '查询', + type: '1', + }, + { + action: 'dcr:cavReportX:compute', + describe: '计算', + type: '1', + }, + { + action: 'dcr:cavReportX:view', + describe: '查看', + type: '1', + }, + { + action: 'dcr:cavReportL:superQuery', + describe: '查询', + type: '1', + }, + { + action: 'dcr:cavReportL:compute', + describe: '计算', + type: '1', + }, + { + action: 'dcr:cavReportL:view', + describe: '查看', + type: '1', + }, + { + action: 'dcr:dcrAmount:superQuery', + describe: '查询', + type: '1', + }, + { + action: 'dcr:dcrAmount:compute', + describe: '计算', + type: '1', + }, + { + action: 'dcr:dcrAmount:view', + describe: '查看', + type: '1', + }, + { + action: 'dcr:dcrWeight:superQuery', + describe: '查询', + type: '1', + }, + { + action: 'dcr:dcrWeight:compute', + describe: '计算', + type: '1', + }, + { + action: 'dcr:dcrWeight:view', + describe: '查看', + type: '1', + }, + { + action: 'dcr:dcrEmsHead:superQuery', + describe: '查询', + type: '1', + }, + { + action: 'dcr:dcrEmsHead:resetBills', + describe: '报核状态重置', + type: '1', + }, + { + action: 'dcr:dcrEmsHead:difHandle', + describe: '差异处置', + type: '1', + }, + { + action: 'dcr:dcrEmsHead:bulkOperations', + describe: '批量操作', + type: '1', + }, + { + action: 'dcr:dcrEmsHead:remove', + describe: '删除', + type: '1', + }, + { + action: 'dcr:dcrEmsHead:edit', + describe: '编辑', + type: '1', + }, + { + action: 'reports:reportsBill:superQueryI1null', + describe: '查询', + type: '1', + }, + { + action: 'reports:reportsBill:exportI1null', + describe: '导出', + type: '1', + }, + { + action: 'reports:reportsBill:superQueryI2null', + describe: '查询', + type: '1', + }, + { + action: 'reports:reportsBill:exportI2null', + describe: '导出', + type: '1', + }, + { + action: 'reports:reportsBill:superQueryI1JM', + describe: '查询', + type: '1', + }, + { + action: 'reports:reportsBill:exportI1JM', + describe: '导出', + type: '1', + }, + { + action: 'reports:reportsBill:superQueryI2JM', + describe: '查询', + type: '1', + }, + { + action: 'reports:reportsBill:exportI2JM', + describe: '导出', + type: '1', + }, + { + action: 'reports:reportsBill:superQueryI1WL', + describe: '查询', + type: '1', + }, + { + action: 'reports:reportsBill:exportI1WL', + describe: '导出', + type: '1', + }, + { + action: 'reports:reportsBill:superQueryI2WL', + describe: '查询', + type: '1', + }, + { + action: 'reports:reportsBill:exportI2WL', + describe: '导出', + type: '1', + }, + { + action: 'reports:reportsBill:superQueryI1ZS', + describe: '查询', + type: '1', + }, + { + action: 'reports:reportsBill:exportI1ZS', + describe: '导出', + type: '1', + }, + { + action: 'reports:reportsBill:superQueryI2ZS', + describe: '查询', + type: '1', + }, + { + action: 'reports:reportsBill:exportI2ZS', + describe: '导出', + type: '1', + }, + { + action: 'reports:reportsBill:superQueryE1null', + describe: '查询', + type: '1', + }, + { + action: 'reports:reportsBill:exportE1null', + describe: '导出', + type: '1', + }, + { + action: 'reports:reportsBill:superQueryE2null', + describe: '查询', + type: '1', + }, + { + action: 'reports:reportsBill:exportE2null', + describe: '导出', + type: '1', + }, + { + action: 'reports:reportsBill:superQueryE1JM', + describe: '查询', + type: '1', + }, + { + action: 'reports:reportsBill:exportE1JM', + describe: '导出', + type: '1', + }, + { + action: 'reports:reportsBill:superQueryE2JM', + describe: '查询', + type: '1', + }, + { + action: 'reports:reportsBill:exportE2JM', + describe: '导出', + type: '1', + }, + { + action: 'reports:reportsBill:superQueryE1WL', + describe: '查询', + type: '1', + }, + { + action: 'reports:reportsBill:exportE1WL', + describe: '导出', + type: '1', + }, + { + action: 'reports:reportsBill:superQueryE2WL', + describe: '查询', + type: '1', + }, + { + action: 'reports:reportsBill:exportE2WL', + describe: '导出', + type: '1', + }, + { + action: 'reports:reportsBill:superQueryE1ZS', + describe: '查询', + type: '1', + }, + { + action: 'reports:reportsBill:exportE1ZS', + describe: '导出', + type: '1', + }, + { + action: 'reports:reportsBill:superQueryE2ZS', + describe: '查询', + type: '1', + }, + { + action: 'reports:reportsBill:exportE2ZS', + describe: '导出', + type: '1', + }, + { + action: 'reports:reportsZzzz:superQuery', + describe: '查询', + type: '1', + }, + { + action: 'reports:reportsZzzz:rebuild', + describe: '报表重新生成', + type: '1', + }, + { + action: 'reports:reportsZzzz:export', + describe: '导出', + type: '1', + }, + { + action: 'reports:lvReportEntrydelAlts:superQuery', + describe: '查询', + type: '1', + }, + { + action: 'reports:lvReportEntrydelAlts:export', + describe: '导出', + type: '1', + }, + { + action: 'reports:lvReportEntrydelAlts:showReport', + describe: '查看趋势表', + type: '1', + }, + { + action: 'reports:lvReportEntryCheck:superQuery', + describe: '查询', + type: '1', + }, + { + action: 'reports:lvReportEntryCheck:export', + describe: '导出', + type: '1', + }, + { + action: 'reports:lvReportEntryCheck:showReport', + describe: '查看趋势表', + type: '1', + }, + { + action: 'reports:lvEntryPackage:superQuery', + describe: '查询', + type: '1', + }, + { + action: 'reports:lvEntryPackage:export', + describe: '导出', + type: '1', + }, + { + action: 'reports:lvEntryPackage:handleEdit', + describe: '查看箱号', + type: '1', + }, + { + action: 'I:passport:passportData:superQuery', + describe: '查询', + type: '1', + }, + { + action: 'E:passport:passportData:superQuery', + describe: '查询', + type: '1', + }, + { + action: 'kpiReport:dailyPaperListIE:superQuery', + describe: '查询', + type: '1', + }, + { + action: 'kpiReport:dailyPaperListIE:trendChart', + describe: '趋势图表', + type: '1', + }, + { + action: 'kpiReport:monthlyReportListIE:superQuery', + describe: '查询', + type: '1', + }, + { + action: 'kpiReport:monthlyReportListIE:trendChart', + describe: '趋势图表', + type: '1', + }, + { + action: 'kpiReport:personalStats:superQuery', + describe: '查询', + type: '1', + }, + { + action: 'kpiReport:personalStats:export', + describe: '导出', + type: '1', + }, + { + action: 'specialArea:sasBizApplyHead:superQuery', + describe: '查询', + type: '1', + }, + { + action: 'specialArea:sasBizApplyHead:add', + describe: '新增', + type: '1', + }, + { + action: 'specialArea:sasBizApplyHead:remove', + describe: '删除', + type: '1', + }, + { + action: 'specialArea:sasBizApplyHead:change', + describe: '变更', + type: '1', + }, + { + action: 'specialArea:sasBizApplyHead:closeBizApplies', + describe: '结案', + type: '1', + }, + { + action: 'specialArea:sasBizApplyHead:setDefaul', + describe: '设置默认', + type: '1', + }, + { + action: 'specialArea:sasBizApplyHead:uploadBizApplies', + describe: '上载', + type: '1', + }, + { + action: 'specialArea:sasBizApplyHead:resetStatus', + describe: '重置状态', + type: '1', + }, + { + action: 'specialArea:sasBizApplyHead:export', + describe: '导出', + type: '1', + }, + { + action: 'specialArea:sasBizApplyHead:cancelApply', + describe: '撤销变更', + type: '1', + }, + { + action: 'specialArea:sasBizApplyHead:setPassStatus', + describe: '手工通过', + type: '1', + }, + { + action: 'specialArea:sasBizApplyHead:edit', + describe: '编辑', + type: '1', + }, + { + action: 'specialArea:sasFilingRecord:superQuery', + describe: '查询', + type: '1', + }, + { + action: 'specialArea:sasFilingRecord:export', + describe: '导出', + type: '1', + }, + { + action: 'specialArea:sasFilingRecord:updateFilingRecord', + describe: '更新', + type: '1', + }, + { + action: 'specialArea:lvSasStockList:superQuery', + describe: '查询', + type: '1', + }, + { + action: 'specialArea:lvSasStockList:add', + describe: '新增', + type: '1', + }, + { + action: 'specialArea:lvSasStockList:remove', + describe: '删除', + type: '1', + }, + { + action: 'specialArea:lvSasStockList:change', + describe: '变更', + type: '1', + }, + { + action: 'specialArea:lvSasStockList:createPassport', + describe: '生成核放单', + type: '1', + }, + { + action: 'specialArea:lvSasStockList:createBill', + describe: '生成集报清单', + type: '1', + }, + { + action: 'specialArea:lvSasStockList:uploadSasStock', + describe: '上载', + type: '1', + }, + { + action: 'specialArea:lvSasStockList:cancelOrders', + describe: '作废', + type: '1', + }, + { + action: 'specialArea:lvSasStockList:copyStockData', + describe: '复制', + type: '1', + }, + { + action: 'specialArea:lvSasStockList:resetStatus', + describe: '重置状态', + type: '1', + }, + { + action: 'specialArea:lvSasStockList:cancelApply', + describe: '撤销变更', + type: '1', + }, + { + action: 'specialArea:lvSasStockList:setPassStatus', + describe: '手工通过', + type: '1', + }, + { + action: 'specialArea:lvSasStockList:export', + describe: '导出', + type: '1', + }, + { + action: 'specialArea:lvSasStockList:exportDetail', + describe: '导出明细', + type: '1', + }, + { + action: 'specialArea:lvSasStockList:edit', + describe: '编辑', + type: '1', + }, + { + action: 'bill:bill:exportHeadList:E0null', + describe: '批量导出清单表体', + type: '1', + }, + { + action: 'bill:bill:exportEntryList:E0null', + describe: '批量导出报关表体', + type: '1', + }, + { + action: 'bill:bill:batchPrintE0null', + describe: '批量打印', + type: '1', + }, + { + action: 'bill:bill:batchPrintBillE0null', + describe: '打印核注清单', + type: '1', + }, + { + action: 'bill:bill:batchPrintEntryE0null', + describe: '打印报关单', + type: '1', + }, + { + action: 'bill:bill:billLst:setNetWtLengthE0null', + describe: '设置净重位数', + type: '1', + }, + { + action: 'record.ems.clear33BODY', + describe: '物流变更-料件-清空', + type: '1', + }, + { + action: 'bill:bill:exportHeadList:E13', + describe: '批量导出清单表体', + type: '1', + }, + { + action: 'bill:bill:exportEntryList:E13', + describe: '批量导出报关表体', + type: '1', + }, + { + action: 'bill:bill:batchPrintE13', + describe: '批量打印', + type: '1', + }, + { + action: 'bill:bill:batchPrintBillE13', + describe: '打印核注清单', + type: '1', + }, + { + action: 'bill:bill:batchPrintEntryE13', + describe: '打印报关单', + type: '1', + }, + { + action: 'bill:bill:billLst:setNetWtLengthE13', + describe: '设置净重位数', + type: '1', + }, + { + action: 'record.ems.repair.import33BODY', + describe: '物流变更-料件-修改导入', + type: '1', + }, + { + action: 'record.ems.mergeBetch33BODY', + describe: '物流变更-料件-已归类提取', + type: '1', + }, + { + action: 'record.ems.recordBetch33BODY', + describe: '物流变更-料件-颗粒度提取', + type: '1', + }, + { + action: 'record.ems.recovery33BODY', + describe: '物流变更-料件-恢复', + type: '1', + }, + { + action: 'record.ems.enabled33BODY', + describe: '物流变更-料件-启用', + type: '1', + }, + { + action: 'record.ems.stop33BODY', + describe: '物流变更-料件-停用', + type: '1', + }, + { + action: 'record.ems.stopReason33BODY', + describe: '物流变更-料件-导出禁用原因', + type: '1', + }, + { + action: 'record.ems.bonedUse33BODY', + describe: '物流变更-料件-保税启用', + type: '1', + }, + { + action: 'record.ems.bondedStop33BODY', + describe: '物流变更-料件-保税禁用', + type: '1', + }, + { + action: 'bill:bill:exportHeadList:I13', + describe: '批量导出清单表体', + type: '1', + }, + { + action: 'bill:bill:exportEntryList:I13', + describe: '批量导出报关表体', + type: '1', + }, + { + action: 'bill:bill:batchPrintI13', + describe: '批量打印', + type: '1', + }, + { + action: 'bill:bill:batchPrintBillI13', + describe: '打印核注清单', + type: '1', + }, + { + action: 'bill:bill:batchPrintEntryI13', + describe: '打印报关单', + type: '1', + }, + { + action: 'bill:bill:sendEntryReceiptI0null', + describe: '报关回填', + type: '1', + }, + { + action: 'bill:bill:sendBillReceiptI1null', + describe: '清单回填', + type: '1', + }, + { + action: 'bill:bill:sendEntryReceiptI1null', + describe: '报关回填', + type: '1', + }, + { + action: 'bill:bill:sendBillReceiptI11', + describe: '清单回填', + type: '1', + }, + { + action: 'bill:bill:sendEntryReceiptI11', + describe: '报关回填', + type: '1', + }, + { + action: 'bill:bill:sendBillReceiptI13', + describe: '清单回填', + type: '1', + }, + { + action: 'bill:bill:sendEntryReceiptI13', + describe: '报关回填', + type: '1', + }, + { + action: 'bill:bill:sendEntryReceiptE0null', + describe: '报关回填', + type: '1', + }, + { + action: 'bill:bill:sendBillReceiptE1null', + describe: '清单回填', + type: '1', + }, + { + action: 'bill:bill:sendEntryReceiptE1null', + describe: '报关回填', + type: '1', + }, + { + action: 'bill:bill:sendBillReceiptE11', + describe: '清单回填', + type: '1', + }, + { + action: 'bill:bill:sendEntryReceiptE11', + describe: '报关回填', + type: '1', + }, + { + action: 'bill:bill:sendBillReceiptE13', + describe: '清单回填', + type: '1', + }, + { + action: 'bill:bill:sendEntryReceiptE13', + describe: '报关回填', + type: '1', + }, + { + action: 'basedata:companyInfo:base:upload', + describe: '基本信息上传', + type: '1', + }, + { + action: 'basedata:companyInfo:customeCert:query', + describe: '海关信用查询', + type: '1', + }, + { + action: 'basedata:companyInfo:attachment:query', + describe: '公司附件查询', + type: '1', + }, + { + action: 'basedata:companyInfo:attachment:detail', + describe: '公司附件查询', + type: '1', + }, + { + action: 'basedata:docFile:query', + describe: '查询', + type: '1', + }, + { + action: 'record:qualapply:query', + describe: '查询', + type: '1', + }, + { + action: 'record:deliverychange:query', + describe: '查询', + type: '1', + }, + { + action: 'record:emsrecord:query11', + describe: '查询', + type: '1', + }, + { + action: 'record:emschange:query21I', + describe: '查询', + type: '1', + }, + { + action: 'record:deliveryrecord:query', + describe: '查询', + type: '1', + }, + { + action: 'record:deliveryrecord:query', + describe: '查询', + type: '1', + }, + { + action: 'record:deliverybalance:query', + describe: '查询', + type: '1', + }, + { + action: 'record:deliverybalance:export', + describe: '导出', + type: '1', + }, + { + action: 'record:deliverybalance:import', + describe: '期初导入', + type: '1', + }, + { + action: 'record:deliveryBalanceNew:serial:query', + describe: '查询', + type: '1', + }, + { + action: 'record:deliveryBalanceNew:serial:import', + describe: '期初导入', + type: '1', + }, + { + action: 'record:deliveryBalanceNew:serial:export', + describe: '导出', + type: '1', + }, + { + action: 'record:deliveryBalanceNew:company:query', + describe: '查询', + type: '1', + }, + { + action: 'record:deliveryBalanceNew:company:import', + describe: '期初导入', + type: '1', + }, + { + action: 'record:deliveryBalanceNew:company:export', + describe: '导出', + type: '1', + }, + { + action: 'record:particleDimension:query', + describe: '查询', + type: '1', + }, + { + action: 'record:particleDimension:add', + describe: '新增', + type: '1', + }, + { + action: 'record:particleDimension:merge', + describe: '归并', + type: '1', + }, + { + action: 'record:particleDimension:update', + describe: '更新', + type: '1', + }, + { + action: 'record:particleDimension:extract', + describe: '提取', + type: '1', + }, + { + action: 'record:particleDimension:export', + describe: '导出', + type: '1', + }, + { + action: 'record:particleDimension:import', + describe: '导入', + type: '1', + }, + { + action: 'record:productDimension:query', + describe: '查询', + type: '1', + }, + { + action: 'record:productDimension:add', + describe: '新增', + type: '1', + }, + { + action: 'record:productDimension:merge', + describe: '归并', + type: '1', + }, + { + action: 'record:productDimension:mergeAll', + describe: '一键归并', + type: '1', + }, + { + action: 'record:productDimension:update', + describe: '更新', + type: '1', + }, + { + action: 'record:productDimension:extract', + describe: '提取', + type: '1', + }, + { + action: 'record:productDimension:import', + describe: '导入', + type: '1', + }, + { + action: 'record:productDimension:export', + describe: '导出', + type: '1', + }, + { + action: 'lcch:messageReturn:query', + describe: '查询', + type: '1', + }, + { + action: 'lcch:law:query', + describe: '查询', + type: '1', + }, + { + action: 'lcch:process:query', + describe: '查询', + type: '1', + }, + { + action: 'lcch:enterpriseBom:query', + describe: '查询', + type: '1', + }, + { + action: 'lcch:enterpriseBom:edit', + describe: '编辑', + type: '1', + }, + { + action: 'lcch:enterpriseBom:import', + describe: '导入', + type: '1', + }, + { + action: 'lcch:enterpriseBom:export', + describe: '导出', + type: '1', + }, + { + action: 'lcch:enterpriseBom:add', + describe: '新增', + type: '1', + }, + { + action: 'lcch:enterpriseBom:query', + describe: '查询', + type: '1', + }, + { + action: 'lcch:enterpriseBom:edit', + describe: '编辑', + type: '1', + }, + { + action: 'lcch:enterpriseBom:import', + describe: '导入', + type: '1', + }, + { + action: 'lcch:enterpriseBom:export', + describe: '导出', + type: '1', + }, + { + action: 'lcch:enterpriseBom:add', + describe: '新增', + type: '1', + }, + { + action: 'lcch:enterpriseBom:extract', + describe: '提取', + type: '1', + }, + { + action: 'lcch:enterpriseBom:query', + describe: '查询', + type: '1', + }, + { + action: 'lcch:enterpriseBom:edit', + describe: '编辑', + type: '1', + }, + { + action: 'lcch:enterpriseBom:import', + describe: '导入', + type: '1', + }, + { + action: 'lcch:enterpriseBom:export', + describe: '导出', + type: '1', + }, + { + action: 'lcch:enterpriseBom:add', + describe: '新增', + type: '1', + }, + { + action: 'lcch:enterpriseBom:extract', + describe: '提取', + type: '1', + }, + { + action: 'lcch:enterpriseBom:delete', + describe: '删除', + type: '1', + }, + { + action: 'lcch:enterpriseBom:clear', + describe: '清空', + type: '1', + }, + { + action: 'lcch:enterpriseBomIntegrity:query', + describe: '查询', + type: '1', + }, + { + action: 'lcch:enterpriseBomIntegrity:export', + describe: '导出', + type: '1', + }, + { + action: 'lcch:enterpriseBomIntegrity:detail', + describe: '详情', + type: '1', + }, + { + action: 'lcch:enterpriseBomIntegrity:import', + describe: '检查', + type: '1', + }, + { + action: 'lcch:enterpriseBomIntegrity:query', + describe: '查询', + type: '1', + }, + { + action: 'lcch:enterpriseBomIntegrity:export', + describe: '导出', + type: '1', + }, + { + action: 'lcch:enterpriseBomIntegrity:detail', + describe: '详情', + type: '1', + }, + { + action: 'lcch:enterpriseBomIntegrity:import', + describe: '检查', + type: '1', + }, + { + action: 'lcch:taxGuarantee:query', + describe: '查询', + type: '1', + }, + { + action: 'lcch:taxEstimate:query', + describe: '查询', + type: '1', + }, + { + action: 'lcch:taxItem:query', + describe: '查询', + type: '1', + }, + { + action: 'lcch:taxBill:query', + describe: '查询', + type: '1', + }, + { + action: 'lcch:taxPayment:query', + describe: '查询', + type: '1', + }, + { + action: 'lcch:ciqCode:query', + describe: '查询', + type: '1', + }, + { + action: 'lcch:ciqCode:import', + describe: '导入', + type: '1', + }, + { + action: 'lcch:ciqCode:export', + describe: '导出', + type: '1', + }, + { + action: 'lcch:ciqCode:add', + describe: '新增', + type: '1', + }, + { + action: 'lcch:ciqCode:edit', + describe: '编辑', + type: '1', + }, + { + action: 'lcch:ciqCode:delete', + describe: '删除', + type: '1', + }, + { + action: 'lcch:ciqCode:detail', + describe: '详情', + type: '1', + }, + { + action: 'lcch:ciqCode:query', + describe: '查询', + type: '1', + }, + { + action: 'lcch:ciqCode:add', + describe: '新增', + type: '1', + }, + { + action: 'lcch:ciqCode:edit', + describe: '编辑', + type: '1', + }, + { + action: 'lcch:ciqCode:delete', + describe: '删除', + type: '1', + }, + { + action: 'lcch:ciqCode:detail', + describe: '详情', + type: '1', + }, + { + action: 'lcch:certificate:query', + describe: '查询', + type: '1', + }, + { + action: 'lcch:certificate:import', + describe: '导入', + type: '1', + }, + { + action: 'lcch:certificate:export', + describe: '导出', + type: '1', + }, + { + action: 'lcch:certificate:add', + describe: '新增', + type: '1', + }, + { + action: 'lcch:certificate:edit', + describe: '编辑', + type: '1', + }, + { + action: 'lcch:certificate:delete', + describe: '删除', + type: '1', + }, + { + action: 'lcch:certificate:detail', + describe: '详情', + type: '1', + }, + { + action: 'lcch:certificateMaintain:query', + describe: '查询', + type: '1', + }, + { + action: 'lcch:certificateMaintain:import', + describe: '导入', + type: '1', + }, + { + action: 'lcch:certificateMaintain:export', + describe: '导出', + type: '1', + }, + { + action: 'lcch:certificateMaintain:add', + describe: '新增', + type: '1', + }, + { + action: 'lcch:certificateMaintain:edit', + describe: '编辑', + type: '1', + }, + { + action: 'lcch:certificateMaintain:delete', + describe: '删除', + type: '1', + }, + { + action: 'lcch:certificateMaintain:detail', + describe: '详情', + type: '1', + }, + { + action: 'lcch:interfaceDataWarning:query', + describe: '查询', + type: '1', + }, + { + action: 'lcch:interfaceDataWarning:open', + describe: '开启', + type: '1', + }, + { + action: 'lcch:message:query', + describe: '查询', + type: '1', + }, + { + action: 'lcch:message:detail', + describe: '详情', + type: '1', + }, + { + action: 'lcch:message:delete', + describe: '删除', + type: '1', + }, + { + action: 'lcch:messageTemplate:query', + describe: '查询', + type: '1', + }, + { + action: 'lcch:messageTemplate:add', + describe: '新增', + type: '1', + }, + { + action: 'lcch:messageTemplate:import', + describe: '导入', + type: '1', + }, + { + action: 'lcch:messageTemplate:export', + describe: '导出', + type: '1', + }, + { + action: 'lcch:messageTemplate:edit', + describe: '编辑', + type: '1', + }, + { + action: 'lcch:messageTemplate:delete', + describe: '删除', + type: '1', + }, + { + action: 'lcch:messageTemplate:sendTest', + describe: '发送测试', + type: '1', + }, + { + action: 'lcch:myMessage:query', + describe: '查询', + type: '1', + }, + { + action: 'lcch:myMessage:view', + describe: '查看', + type: '1', + }, + { + action: 'lcch:myMessage:markAllAsRead', + describe: '全部标记为已读', + type: '1', + }, + { + action: 'lcch:personalSetting:submit', + describe: '提交', + type: '1', + }, + { + action: 'lcch:personalSetting:upload', + describe: '上传', + type: '1', + }, + { + action: 'lcch:securitySetting:setting', + describe: '设置', + type: '1', + }, + { + action: 'lcch:personalization:darkModeSwitch', + describe: '暗色模式开关', + type: '1', + }, + { + action: 'bill:bill:exportHeadList:E1null', + describe: '批量导出清单表体', + type: '1', + }, + { + action: 'bill:bill:exportEntryList:E1null', + describe: '批量导出报关表体', + type: '1', + }, + { + action: 'bill:bill:batchPrintE1null', + describe: '批量打印', + type: '1', + }, + { + action: 'bill:bill:batchPrintBillE1null', + describe: '打印核注清单', + type: '1', + }, + { + action: 'bill:bill:batchPrintEntryE1null', + describe: '打印报关单', + type: '1', + }, + { + action: 'bill:bill:billLst:setNetWtLengthE1null', + describe: '设置净重位数', + type: '1', + }, + { + action: 'bill:entryQuery:exportE', + describe: '导出', + type: '1', + }, + { + action: 'bill:bill:entryResetE', + describe: '报关单重置', + type: '1', + }, + { + action: 'bill:entryQuery:entryRecheckPrintE', + describe: '核对单', + type: '1', + }, + { + action: 'bill:bill:entryHead:attaE0', + describe: '随附单据', + type: '1', + }, + { + action: 'bill:billEntry:printOtherPageE0', + describe: '打印商品附加页', + type: '1', + }, + { + action: 'bill:entryQuery:entryPrintE0', + describe: '打印', + type: '1', + }, + { + action: 'bill:bill:entryList:agreementE0', + describe: '协定享惠', + type: '1', + }, + { + action: 'bill:bill:entryList:betchRepairE0', + describe: '批量修改', + type: '1', + }, + { + action: 'bill:bill:exportHeadList:I11', + describe: '批量导出清单表体', + type: '1', + }, + { + action: 'bill:bill:exportEntryList:I11', + describe: '批量导出报关表体', + type: '1', + }, + { + action: 'bill:bill:batchPrintI11', + describe: '批量打印', + type: '1', + }, + { + action: 'bill:bill:batchPrintBillI11', + describe: '打印核注清单', + type: '1', + }, + { + action: 'bill:bill:batchPrintEntryI11', + describe: '打印报关单', + type: '1', + }, + { + action: 'bill:billEntry:printOtherPageE11', + describe: '进口报关草单-报关单商品附加页打印', + type: '1', + }, + { + action: 'bill:entryQuery:entryPrintE11', + describe: '进口报关草单-打印', + type: '1', + }, + { + action: 'bill:bill:removeE11', + describe: '删除', + type: '1', + }, + { + action: 'bill:bill:submitE11', + describe: '提交', + type: '1', + }, + { + action: 'bill:bill:transferE11', + describe: '转岗', + type: '1', + }, + { + action: 'bill:bill:cancelE11', + describe: '撤回', + type: '1', + }, + { + action: 'bill:bill:generateMtfE11', + describe: '生成舱单', + type: '1', + }, + { + action: 'bill:bill:entryUploadE11', + describe: '报关单上载', + type: '1', + }, + { + action: 'bill:bill:uploadTreeE11', + describe: '一次录入', + type: '1', + }, + { + action: 'bill:bill:uploadOneE11', + describe: '概要申报', + type: '1', + }, + { + action: 'bill:bill:uploadTwoE11', + describe: '完整申报', + type: '1', + }, + { + action: 'bill:bill:importE11', + describe: '导入', + type: '1', + }, + { + action: 'bill:bill:copyHeadE11', + describe: '复制表头', + type: '1', + }, + { + action: 'bill:bill:copySeqAllBillDataE11', + describe: '复制整单', + type: '1', + }, + { + action: 'bill:bill:flowresetE11', + describe: '流程重置', + type: '1', + }, + { + action: 'bill:bill:entryResetE11', + describe: '报关单重置', + type: '1', + }, + { + action: 'bill:bill:noUserE11', + describe: '作废', + type: '1', + }, + { + action: 'bill:bill:modifyApplyE11', + describe: '修改申请', + type: '1', + }, + { + action: 'bill:bill:delApplyE11', + describe: '删除申请', + type: '1', + }, + { + action: 'bill:bill:billRecoveryE11', + describe: '清单恢复', + type: '1', + }, + { + action: 'bill:bill:superQueryE11', + describe: '高级查询', + type: '1', + }, + { + action: 'bill:bill:billUploadE11', + describe: '清单上载', + type: '1', + }, + { + action: 'bill:bill:generatePassportE11', + describe: '生成核放单', + type: '1', + }, + { + action: 'bill:bill:billResetE11', + describe: '核注清单重置', + type: '1', + }, + { + action: 'bill:bill:betchE11', + describe: '提取', + type: '1', + }, + { + action: 'bill:bill:saveTemplateE11', + describe: '保存为模板', + type: '1', + }, + { + action: 'bill:bill:savebillE11', + describe: '保存', + type: '1', + }, + { + action: 'bill:bill:tempSaveBillE11', + describe: '暂存', + type: '1', + }, + { + action: 'bill:bill:saveRelInfoE11', + describe: '保存关联信息', + type: '1', + }, + { + action: 'bill:bill:billHead:billPrintE11', + describe: '打印', + type: '1', + }, + { + action: 'bill:bill:billLIst:saveE11', + describe: '清单表体-保存', + type: '1', + }, + { + action: 'bill:bill:billLIst:importE11', + describe: '清单表体-导入', + type: '1', + }, + { + action: 'bill:bill:billLIst:importNetwtGrossWtE11', + describe: '清单表体-导入净/毛重', + type: '1', + }, + { + action: 'bill:bill:billLIst:removeE11', + describe: '清单表体-删除', + type: '1', + }, + { + action: 'bill:bill:billLIst:clearE11', + describe: '清单表体-清空', + type: '1', + }, + { + action: 'bill:bill:billLIst:generateEntrysE11', + describe: '清单表体-生成草单', + type: '1', + }, + { + action: 'bill:bill:billLIst:copyE11', + describe: '清单表体-复制', + type: '1', + }, + { + action: 'bill:bill:billLIst:upE11', + describe: '清单表体-上移', + type: '1', + }, + { + action: 'bill:bill:billLIst:downE11', + describe: '清单表体-下移', + type: '1', + }, + { + action: 'bill:bill:billLIst:ifBetchE11', + describe: '清单表体-接口提取', + type: '1', + }, + { + action: 'bill:bill:billLIst:splitE11', + describe: '清单表体-拆分', + type: '1', + }, + { + action: 'bill:bill:billLIst:tableMergeE11', + describe: '清单表体-表体合并', + type: '1', + }, + { + action: 'bill:bill:billLIst:splitWeightE11', + describe: '清单表体-分摊重量', + type: '1', + }, + { + action: 'bill:bill:billLIst:otherFeeSplitE11', + describe: '清单表体-其他费用分摊', + type: '1', + }, + { + action: 'bill:bill:billLIst:feeSplitE11', + describe: '清单表体-运费分摊', + type: '1', + }, + { + action: 'bill:bill:billLIst:betchRepairE11', + describe: '清单表体-批量修改', + type: '1', + }, + { + action: 'bill:bill:billLIst:refreshEleE11', + describe: '清单表体-刷新申报要素', + type: '1', + }, + { + action: 'bill:bill:billLIst:refreshUnitE11', + describe: '清单表体-刷新申报单位', + type: '1', + }, + { + action: 'bill:bill:billLIst:splitToBondedE11', + describe: '清单表体-手工拆单至保税', + type: '1', + }, + { + action: 'bill:bill:billLIst:refreshGnameE11', + describe: '清单表体-刷新编码品名', + type: '1', + }, + { + action: 'bill:bill:billLIst:splitToNoBondedE11', + describe: '清单表体-手工拆单至征税', + type: '1', + }, + { + action: 'bill:bill:billLIst:AutosplitE11', + describe: '清单表体-自动拆单', + type: '1', + }, + { + action: 'bill:bill:TransInfo:saveE11', + describe: '运输信息-保存', + type: '1', + }, + { + action: 'bill:bill:billInvoiceContract:refreshE11', + describe: '箱单发票-刷新', + type: '1', + }, + { + action: 'bill:bill:billInvoiceContract:GenerateE11', + describe: '箱单发票-生成', + type: '1', + }, + { + action: 'bill:bill:billInvoiceContract:downloadE11', + describe: '箱单发票-下载', + type: '1', + }, + { + action: 'bill:bill:billAttachment:uploadFileE11', + describe: '附件信息-上传', + type: '1', + }, + { + action: 'bill:bill:entryHead:saveE11', + describe: '报关草单-保存', + type: '1', + }, + { + action: 'bill:bill:entryHead:removeE11', + describe: '报关草单-删除', + type: '1', + }, + { + action: 'bill:bill:entryHead:attaE11', + describe: '报关草单-随附单据', + type: '1', + }, + { + action: 'bill:bill:entryList:saveE11', + describe: '报关草单-表体-保存', + type: '1', + }, + { + action: 'bill:bill:entryList:agreementE11', + describe: '报关草单-表体-协定享惠', + type: '1', + }, + { + action: 'bill:bill:entryList:betchRepairE11', + describe: '报关草单-表体-批量修改', + type: '1', + }, + { + action: 'bill:bill:entryTrack:saveE11', + describe: '单货跟踪-保存', + type: '1', + }, + { + action: 'bill:bill:exceptionrecord:saveE11', + describe: '异常登记-保存', + type: '1', + }, + { + action: 'bill:bill:exceptionrecord:removeE11', + describe: '异常登记-删除', + type: '1', + }, + { + action: 'bill:bill:atta:saveE11', + describe: '随附单据-保存', + type: '1', + }, + { + action: 'bill:bill:atta:removeE11', + describe: '随附单据-删除', + type: '1', + }, + { + action: 'bill:bill:billLIst:betchGNoE11', + describe: '清单表体-提取备案序号', + type: '1', + }, + { + action: 'online:goGenerateCode', + describe: '代码生成按钮', + type: '1', + }, + { + action: 'basedata:lastestNews:add', + describe: '新增', + type: '1', + }, + { + action: 'basedata:bdsite:add', + describe: '新增', + type: '1', + }, + { + action: 'basedata:companyInfo:base:save', + describe: '基本信息保存', + type: '1', + }, + { + action: 'govPoliocy:govPolicy:add', + describe: '新增', + type: '1', + }, + { + action: 'basedata:compPara:cusUnit:add', + describe: '计量单位-新增', + type: '1', + }, + { + action: 'basedata:compPara:cusUnit:edit', + describe: '计量单位-编辑', + type: '1', + }, + { + action: 'basedata:compPara:cusUnit:export', + describe: '计量单位-导出', + type: '1', + }, + { + action: 'basedata:compPara:cusUnit:import', + describe: '计量单位-导入', + type: '1', + }, + { + action: 'basedata:compPara:cusUnit:superQuery', + describe: '计量单位-高级查询', + type: '1', + }, + { + action: 'basedata:compPara:cusUnit:remove', + describe: '计量单位-删除', + type: '1', + }, + { + action: 'basedata:compPara:cusUnit:detail', + describe: '计量单位-详情', + type: '1', + }, + { + action: 'basedata:compPara:cusCurr:add', + describe: '币制-新增', + type: '1', + }, + { + action: 'basedata:compPara:cusCurr:edit', + describe: '币制-编辑', + type: '1', + }, + { + action: 'basedata:compPara:cusCurr:import', + describe: '币制-导入', + type: '1', + }, + { + action: 'basedata:compPara:cusCurr:export', + describe: '币制-导出', + type: '1', + }, + { + action: 'basedata:compPara:cusCurr:superQuery', + describe: '币制-高级查询', + type: '1', + }, + { + action: 'basedata:compPara:cusCurr:detail', + describe: '币制-详情', + type: '1', + }, + { + action: 'basedata:compPara:cusCurr:remove', + describe: '币制-删除', + type: '1', + }, + { + action: 'basedata:compPara:cusCountry:add', + describe: '国别-新增', + type: '1', + }, + { + action: 'basedata:compPara:cusCountry:edit', + describe: '国别-编辑', + type: '1', + }, + { + action: 'basedata:compPara:cusCountry:import', + describe: '国别-导入', + type: '1', + }, + { + action: 'basedata:compPara:cusCountry:export', + describe: '国别-导出', + type: '1', + }, + { + action: 'basedata:compPara:cusCountry:superQuery', + describe: '国别-高级查询', + type: '1', + }, + { + action: 'basedata:compPara:cusCountry:remove', + describe: '国别-删除', + type: '1', + }, + { + action: 'basedata:compPara:cusCountry:detail', + describe: '国别-详情', + type: '1', + }, + { + action: 'basedata:compPara:cusTransac:add', + describe: '成交方式-新增', + type: '1', + }, + { + action: 'basedata:compPara:cusTransac:edit', + describe: '成交方式-编辑', + type: '1', + }, + { + action: 'basedata:compPara:cusTransac:import', + describe: '成交方式-导入', + type: '1', + }, + { + action: 'basedata:compPara:cusTransac:export', + describe: '成交方式-导出', + type: '1', + }, + { + action: 'basedata:compPara:cusTransac:detail', + describe: '成交方式-详情', + type: '1', + }, + { + action: 'basedata:compPara:cusTransac:superQuery', + describe: '成交方式-高级查询', + type: '1', + }, + { + action: 'basedata:compPara:cusTransac:remove', + describe: '成交方式-删除', + type: '1', + }, + { + action: 'basedata:compPara:cusPortCode:add', + describe: '装货港-新增', + type: '1', + }, + { + action: 'basedata:compPara:cusPortCode:edit', + describe: '装货港-编辑', + type: '1', + }, + { + action: 'basedata:compPara:cusPortCode:import', + describe: '装货港-导入', + type: '1', + }, + { + action: 'basedata:compPara:cusPortCode:export', + describe: '装货港-导出', + type: '1', + }, + { + action: 'basedata:compPara:cusPortCode:detail', + describe: '装货港-详情', + type: '1', + }, + { + action: 'basedata:compPara:cusPortCode:remove', + describe: '装货港-删除', + type: '1', + }, + { + action: 'basedata:compPara:cusPortCode:superQuery', + describe: '装货港-高级查询', + type: '1', + }, + { + action: 'basedata:compPara:cusPacking:add', + describe: '包装种类-新增', + type: '1', + }, + { + action: 'basedata:compPara:cusPacking:import', + describe: '包装种类-导入', + type: '1', + }, + { + action: 'basedata:compPara:cusPacking:edit', + describe: '包装种类-编辑', + type: '1', + }, + { + action: 'basedata:compPara:cusPacking:export', + describe: '包装种类-导出', + type: '1', + }, + { + action: 'basedata:compPara:cusPacking:superQuery', + describe: '包装种类-高级查询', + type: '1', + }, + { + action: 'basedata:compPara:cusPacking:detail', + describe: '包装种类-详情', + type: '1', + }, + { + action: 'basedata:compPara:cusPacking:remove', + describe: '包装种类-删除', + type: '1', + }, + { + action: 'basedata:compPara:cusPortCn:add', + describe: '入境口岸-新增', + type: '1', + }, + { + action: 'basedata:compPara:cusPortCn:edit', + describe: '入境口岸-编辑', + type: '1', + }, + { + action: 'basedata:compPara:cusPortCn:remove', + describe: '入境口岸-删除', + type: '1', + }, + { + action: 'basedata:compPara:cusPortCn:import', + describe: '入境口岸-导入', + type: '1', + }, + { + action: 'basedata:compPara:cusPortCn:export', + describe: '入境口岸-导出', + type: '1', + }, + { + action: 'basedata:compPara:cusPortCn:detail', + describe: '入境口岸-详情', + type: '1', + }, + { + action: 'basedata:compPara:cusPortCn:superQuery', + describe: '入境口岸-高级查询', + type: '1', + }, + { + action: 'basedata:compPara:packageType:add', + describe: '舰单包装种类-新增', + type: '1', + }, + { + action: 'basedata:compPara:packageType:edit', + describe: '舰单包装种类-编辑', + type: '1', + }, + { + action: 'basedata:compPara:packageType:import', + describe: '舰单包装种类-导入', + type: '1', + }, + { + action: 'basedata:compPara:packageType:export', + describe: '舰单包装种类-导出', + type: '1', + }, + { + action: 'basedata:compPara:packageType:detail', + describe: '舰单包装种类-详情', + type: '1', + }, + { + action: 'basedata:compPara:packageType:superQuery', + describe: '舰单包装种类-高级查询', + type: '1', + }, + { + action: 'basedata:compPara:packageType:remove', + describe: '舰单包装种类-删除', + type: '1', + }, + { + action: 'basedata:TradeTerm:add', + describe: '新增', + type: '1', + }, + { + action: 'basedata:TradeTerm:edit', + describe: '编辑', + type: '1', + }, + { + action: 'basedata:TradeTerm:remove', + describe: '删除', + type: '1', + }, + { + action: 'basedata:TradeTerm:detail', + describe: '详情', + type: '1', + }, + { + action: 'basedata:TradeTerm:import', + describe: '导入', + type: '1', + }, + { + action: 'basedata:TradeTerm:export', + describe: '导出', + type: '1', + }, + { + action: 'basedata:TradeTerm:superQuery', + describe: '高级查询', + type: '1', + }, + { + action: 'basedata:limitCountry:add', + describe: '新增', + type: '1', + }, + { + action: 'basedata:limitCountry:edit', + describe: '编辑', + type: '1', + }, + { + action: 'basedata:limitCountry:remove', + describe: '删除', + type: '1', + }, + { + action: 'basedata:limitCountry:import', + describe: '导入', + type: '1', + }, + { + action: 'basedata:limitCountry:export', + describe: '导出', + type: '1', + }, + { + action: 'basedata:limitCountry:detail', + describe: '详情', + type: '1', + }, + { + action: 'basedata:limitCountry:superQuuery', + describe: '高级查询', + type: '1', + }, + { + action: 'basedata:Insure:add', + describe: '新增', + type: '1', + }, + { + action: 'basedata:Insure:edit', + describe: '编辑', + type: '1', + }, + { + action: 'basedata:Insure:remove', + describe: '删除', + type: '1', + }, + { + action: 'basedata:Insure:import', + describe: '导入', + type: '1', + }, + { + action: 'basedata:Insure:export', + describe: '导出', + type: '1', + }, + { + action: 'basedata:Insure:detail', + describe: '详情', + type: '1', + }, + { + action: 'basedata:Insure:superQuery', + describe: '高级查询', + type: '1', + }, + { + action: 'basedata:TrafTime:add', + describe: '新增', + type: '1', + }, + { + action: 'basedata:TrafTime:edit', + describe: '编辑', + type: '1', + }, + { + action: 'basedata:TrafTime:remove', + describe: '删除', + type: '1', + }, + { + action: 'basedata:TrafTime:detail', + describe: '详情', + type: '1', + }, + { + action: 'basedata:TrafTime:superQuery', + describe: '高级查询', + type: '1', + }, + { + action: 'basedata:alertConfig:add', + describe: '新增', + type: '1', + }, + { + action: 'basedata:alertConfig:edit', + describe: '编辑', + type: '1', + }, + { + action: 'basedata:alertConfig:remove', + describe: '删除', + type: '1', + }, + { + action: 'basedata:alertConfig:superQuery', + describe: '高级查询', + type: '1', + }, + { + action: 'basedata:alertConfig:detail', + describe: '详情', + type: '1', + }, + { + action: 'basedata:custodianConfig:add', + describe: '新增', + type: '1', + }, + { + action: 'basedata:custodianConfig:edit', + describe: '编辑', + type: '1', + }, + { + action: 'basedata:custodianConfig:remove', + describe: '删除', + type: '1', + }, + { + action: 'basedata:custodianConfig:detail', + describe: '详情', + type: '1', + }, + { + action: 'basedata:custodianConfig:superQuery', + describe: '高级查询', + type: '1', + }, + { + action: 'basedata:ECard:add', + describe: '新增', + type: '1', + }, + { + action: 'basedata:ECard:edit', + describe: '编辑', + type: '1', + }, + { + action: 'basedata:ECard:import', + describe: '导入', + type: '1', + }, + { + action: 'basedata:ECard:export', + describe: '导出', + type: '1', + }, + { + action: 'basedata:ECard:remove', + describe: '删除', + type: '1', + }, + { + action: 'basedata:ECard:detail', + describe: '详情', + type: '1', + }, + { + action: 'basedata:ECard:superQuery', + describe: '高级查询', + type: '1', + }, + { + action: 'basedata:ECard:lend', + describe: '借出', + type: '1', + }, + { + action: 'basedata:ECard:return', + describe: '归还', + type: '1', + }, + { + action: 'basedata:Version:edit', + describe: '编辑', + type: '1', + }, + { + action: 'basedata:Version:add', + describe: '新增', + type: '1', + }, + { + action: 'basedata:Version:remove', + describe: '删除', + type: '1', + }, + { + action: 'basedata:Version:detail', + describe: '详情', + type: '1', + }, + { + action: 'basedata:Version:superQuery', + describe: '高级查询', + type: '1', + }, + { + action: 'basedata:docFile:add', + describe: '新增', + type: '1', + }, + { + action: 'basedata:docFile:edit', + describe: '编辑', + type: '1', + }, + { + action: 'basedata:docFile:remove', + describe: '删除', + type: '1', + }, + { + action: 'basedata:docFile:detail', + describe: '详情', + type: '1', + }, + { + action: 'bill:billTemplate:removeI', + describe: '删除', + type: '1', + }, + { + action: 'bill:billTemplate:save:I', + describe: '保存', + type: '1', + }, + { + action: 'record.qualapply.add1', + describe: '资质申请-新增', + type: '1', + }, + { + action: 'record.qualapply.edit1', + describe: '资质申请-编辑', + type: '1', + }, + { + action: 'record.qualapply.remove1', + describe: '资质申请-删除', + type: '1', + }, + { + action: 'record.qualapply.upload1', + describe: '资质申请-申报', + type: '1', + }, + { + action: 'record.qualapply.resetUploadStatus1', + describe: '资质申请-重置申报状态', + type: '1', + }, + { + action: 'record.qualapply.flowReset1', + describe: '资质申请-流程重置', + type: '1', + }, + { + action: 'record.qualapply.submit1', + describe: '资质申请-提交', + type: '1', + }, + { + action: 'record.qualapply.verify1', + describe: '资质申请-审核', + type: '1', + }, + { + action: 'record.qualapply.tranfer1', + describe: '资质申请-转岗', + type: '1', + }, + { + action: 'record.qualapply.cancel1', + describe: '资质申请-撤销', + type: '1', + }, + { + action: 'record.qualapply.head.save1', + describe: '资质申请-表头-保存', + type: '1', + }, + { + action: 'record.edit1IQUALqualapply', + describe: '资质申请-料件-编辑', + type: '1', + }, + { + action: 'record.import1IQUALqualapply', + describe: '资质申请-料件-导入', + type: '1', + }, + { + action: 'record.export1IQUALqualapply', + describe: '资质申请-料件-导出', + type: '1', + }, + { + action: 'record.remove1IQUALqualapply', + describe: '资质申请-料件-删除', + type: '1', + }, + { + action: 'record.edit1EQUALqualapply', + describe: '资质申请-成品-编辑', + type: '1', + }, + { + action: 'record.import1EQUALqualapply', + describe: '资质申请-成品-导入', + type: '1', + }, + { + action: 'record.export1EQUALqualapply', + describe: '资质申请-成品-导出', + type: '1', + }, + { + action: 'record.remove1EQUALqualapply', + describe: '资质申请-成品-删除', + type: '1', + }, + { + action: 'record.qualapply.atta.save1', + describe: '资质申请-随附单据-保存', + type: '1', + }, + { + action: 'record.qualapply.atta.remove1', + describe: '资质申请-随附单据-删除', + type: '1', + }, + { + action: 'record.qualapply.change2', + describe: '账册资质变更-变更', + type: '1', + }, + { + action: 'record.qualapply.edit2', + describe: '账册资质变更-编辑', + type: '1', + }, + { + action: 'record.qualapply.remove2', + describe: '账册资质变更-删除', + type: '1', + }, + { + action: 'record.qualapply.upload2', + describe: '账册资质变更-申报', + type: '1', + }, + { + action: 'record.qualapply.resetuploadStatus2', + describe: '账册资质变更-重置申报状态', + type: '1', + }, + { + action: 'record.qualapply.flowReset2', + describe: '账册资质变更-流程重置', + type: '1', + }, + { + action: 'record.qualapply.onePass2', + describe: '账册资质变更-一键通过', + type: '1', + }, + { + action: 'record.qualapply.submit2', + describe: '账册资质变更-提交', + type: '1', + }, + { + action: 'record.qualapply.verify2', + describe: '账册资质变更-审核', + type: '1', + }, + { + action: 'record.qualapply.transfer2', + describe: '账册资质变更-转岗', + type: '1', + }, + { + action: 'record.qualapply.cancel2', + describe: '账册资质变更-撤回', + type: '1', + }, + { + action: 'record.qualapply.head.save2', + describe: '账册资质变更-表头-保存', + type: '1', + }, + { + action: 'record.edit2IQUALqualapply', + describe: '账册资质变更-料件-编辑', + type: '1', + }, + { + action: 'record.import2IQUALqualapply', + describe: '账册资质变更-料件-导入', + type: '1', + }, + { + action: 'record.export2IQUALqualapply', + describe: '账册资质变更-料件-导出', + type: '1', + }, + { + action: 'record.remove2IQUALqualapply', + describe: '账册资质变更-料件-删除', + type: '1', + }, + { + action: 'record.recovery2IQUALqualapply', + describe: '账册资质变更-料件-恢复', + type: '1', + }, + { + action: 'record.edit2EQUALqualapply', + describe: '账册资质变更-成品-编辑', + type: '1', + }, + { + action: 'record.import2EQUALqualapply', + describe: '账册资质变更-成品-导入', + type: '1', + }, + { + action: 'record.export2EQUALqualapply', + describe: '账册资质变更-成品-导出', + type: '1', + }, + { + action: 'record.remove2EQUALqualapply', + describe: '账册资质变更-成品-删除', + type: '1', + }, + { + action: 'record.recovery2EQUALqualapply', + describe: '账册资质变更-成品-恢复', + type: '1', + }, + { + action: 'record.qualapply.atta.save2', + describe: '账册资质变更-随附单据-保存', + type: '1', + }, + { + action: 'record.qualapply.atta.remove2', + describe: '账册资质变更-随附单据-删除', + type: '1', + }, + { + action: 'record.ems.edit11', + describe: '加贸账册-编辑', + type: '1', + }, + { + action: 'record.ems.remove11', + describe: '加贸账册-删除', + type: '1', + }, + { + action: 'record.ems.download11', + describe: '加贸账册-下载', + type: '1', + }, + { + action: 'record.ems.upload11', + describe: '加贸账册-申报', + type: '1', + }, + { + action: 'record.ems.resetUploadStatus11', + describe: '加贸账册-重置申报状态', + type: '1', + }, + { + action: 'record.ems.submit11', + describe: '加贸账册-提交', + type: '1', + }, + { + action: 'record.ems.verify11', + describe: '加贸账册-审核', + type: '1', + }, + { + action: 'record.ems.tansfer11', + describe: '加贸账册-转岗', + type: '1', + }, + { + action: 'record.ems.cancel11', + describe: '加贸账册-撤回', + type: '1', + }, + { + action: 'record.ems.flowReset11', + describe: '加贸账册-流程重置', + type: '1', + }, + { + action: 'record.ems.head.save11', + describe: '加贸账册-表头-保存', + type: '1', + }, + { + action: 'record.ems.edit11I', + describe: '加贸账册-料件-编辑', + type: '1', + }, + { + action: 'record.ems.import11I', + describe: '加贸账册-料件-导入', + type: '1', + }, + { + action: 'record.ems.copimgNoBetch1111I', + describe: '加贸账册-料件-归并料号提取', + type: '1', + }, + { + action: 'record.ems.remove11I', + describe: '加贸账册-料件-删除', + type: '1', + }, + { + action: 'record.ems.clear11I', + describe: '加贸账册-料件-清空', + type: '1', + }, + { + action: 'record.ems.edit11E', + describe: '加贸账册-成品-编辑', + type: '1', + }, + { + action: 'record.ems.import11E', + describe: '加贸账册-成品-导入', + type: '1', + }, + { + action: 'record.ems.CopImgNoBetch11E', + describe: '加贸账册-成品-归并料号提取', + type: '1', + }, + { + action: 'record.ems.remove11E', + describe: '加贸账册-成品-删除', + type: '1', + }, + { + action: 'record.ems.clear11E', + describe: '加贸账册-成品-清空', + type: '1', + }, + { + action: 'record.ems.consume.edit11', + describe: '加贸账册-单损耗-编辑', + type: '1', + }, + { + action: 'record.ems.consume.betchSetStatus11', + describe: '加贸账册-单损耗-批量设置状态', + type: '1', + }, + { + action: 'record.ems.consume.import11', + describe: '加贸账册-单损耗-导入', + type: '1', + }, + { + action: 'record.ems.consume.remove11', + describe: '加贸账册-单损耗-删除', + type: '1', + }, + { + action: 'record.ems.consume.clear11', + describe: '加贸账册-单损耗-清空', + type: '1', + }, + { + action: 'record.ems.hscodeWarn.check11', + describe: '加贸账册-商品编码变更预警-检查', + type: '1', + }, + { + action: 'record.ems.hscodeWarn.oneChange11', + describe: '加贸账册-商品编码变更预警-一键变更', + type: '1', + }, + { + action: 'record.ems.atta.save11', + describe: '加贸账册-随附单据-保存', + type: '1', + }, + { + action: 'record.ems.atta.remove11', + describe: '加贸账册-附件信息-删除', + type: '1', + }, + { + action: 'rmft:rmftAdvance:add', + describe: '预配舱单新增', + type: '1', + }, + { + action: 'record.ems.change21', + describe: '加贸变更-变更', + type: '1', + }, + { + action: 'record.ems.onePass21', + describe: '加贸变更-一键通过', + type: '1', + }, + { + action: 'record.ems.edit21', + describe: '加贸变更-编辑', + type: '1', + }, + { + action: 'rmft:rmftAdvance:declare', + describe: '预配舱单上载', + type: '1', + }, + { + action: 'record.ems.remove21', + describe: '加贸变更-删除', + type: '1', + }, + { + action: 'rmft:rmftAdvance:resetStatus', + describe: '预配舱单重置', + type: '1', + }, + { + action: 'axation.TaxGuaranteeList.create', + describe: '税金理单.税金保函登记.列表.创建', + type: '1', + }, + { + action: 'rmft:rmftAdvance:head:save', + describe: '预配舱单表头保存', + type: '1', + }, + { + action: 'record.ems.upload21', + describe: '加贸变更-申报', + type: '1', + }, + { + action: 'rmft:rmftAdvance:list:save', + describe: '预配舱单表体保存', + type: '1', + }, + { + action: 'record.ems.resetUploadStatus21', + describe: '-加贸变更-重置申报状态', + type: '1', + }, + { + action: 'record.ems.submit21', + describe: '加贸变更-提交', + type: '1', + }, + { + action: 'rmft:rmftAdvance:edit', + describe: '预配舱单编辑', + type: '1', + }, + { + action: 'rmft:rmftAdvance:delete', + describe: '预配舱单删除', + type: '1', + }, + { + action: 'record.ems.tansfer21', + describe: '加贸变更-转岗', + type: '1', + }, + { + action: 'record.ems.verify21', + describe: '加贸变更-审核', + type: '1', + }, + { + action: 'record.ems.cancel21', + describe: '加贸变更-撤回', + type: '1', + }, + { + action: 'record.ems.flowReset21', + describe: '加贸变更-流程重置', + type: '1', + }, + { + action: 'rmft:rmftAdvance:list:delete', + describe: '预配舱单表体删除', + type: '1', + }, + { + action: 'record.ems.head.save21', + describe: '加贸变更-表头-保存', + type: '1', + }, + { + action: 'record.ems.edit21I', + describe: '加贸账册-料件-编辑', + type: '1', + }, + { + action: 'record.ems.import21I', + describe: '加贸变更-料件-导入', + type: '1', + }, + { + action: 'record.ems.recordChangeBetch21I', + describe: '加贸变更-料件-备案变更提取', + type: '1', + }, + { + action: 'record.ems.mergeCopImgNoBetch21I', + describe: '加贸变更-料件-归并料号提取', + type: '1', + }, + { + action: 'record.ems.generateE21I', + describe: '加贸变更-料件-生成成品', + type: '1', + }, + { + action: 'rmft:rmftManifest:add', + describe: '原始舱单新增', + type: '1', + }, + { + action: 'record.ems.remove21I', + describe: '加贸变更-料件-删除', + type: '1', + }, + { + action: 'rmft:rmftManifest:declare', + describe: '原始舱单上载', + type: '1', + }, + { + action: 'rmft:rmftManifest:resetStatus', + describe: '原始舱单重置', + type: '1', + }, + { + action: 'record.ems.i.MergerBetch11', + describe: '加贸账册-料件-已归类提取', + type: '1', + }, + { + action: 'rmft:rmftManifest:delete', + describe: '原始舱单删除', + type: '1', + }, + { + action: 'rmft:rmftManifest:head:save', + describe: '原始舱单表头保存', + type: '1', + }, + { + action: 'rmft:rmftManifest:list:save', + describe: '原始舱单表体保存', + type: '1', + }, + { + action: 'rmft:rmftManifest:list:delete', + describe: '原始舱单表体删除', + type: '1', + }, + { + action: 'record.ems.recordBetch11I', + describe: '加贸账册-料件-颗粒度提取', + type: '1', + }, + { + action: 'record.ems.enabled11I', + describe: '加贸账册-料件-启用', + type: '1', + }, + { + action: 'record.ems.stop11I', + describe: '加贸账册-料件-停用', + type: '1', + }, + { + action: 'record.ems.stopReason11I', + describe: '加贸账册-料件-导出禁用原因', + type: '1', + }, + { + action: 'record.ems.bonedUse11I', + describe: '加贸账册-料件-保税启用', + type: '1', + }, + { + action: 'rmft:rmftManifest:edit', + describe: '原始舱单编辑', + type: '1', + }, + { + action: 'record.ems.bondedStop11I', + describe: '加贸账册-料件-保税禁用', + type: '1', + }, + { + action: 'record.ems.mergeBetch11E', + describe: '加贸账册-成品-已归类提取', + type: '1', + }, + { + action: 'record.ems.recordBetch11E', + describe: '加贸账册-成品-颗粒度提取', + type: '1', + }, + { + action: 'record.ems.enabled11E', + describe: '加贸账册-成品-启用', + type: '1', + }, + { + action: 'record.ems.stop11E', + describe: '加贸账册-成品-停用', + type: '1', + }, + { + action: 'I:passport:passportData:add', + describe: '进口核放单新增', + type: '1', + }, + { + action: 'record.ems.stopReason11E', + describe: '加贸账册-成品-导出禁用原因', + type: '1', + }, + { + action: 'record.ems.bondeduse11E', + describe: '加贸账册-成品-保税启用', + type: '1', + }, + { + action: 'record.ems.bondedStop11E', + describe: '加贸账册-成品-保税禁用', + type: '1', + }, + { + action: 'record.ems.clear21I', + describe: '加贸变更-料件-清空', + type: '1', + }, + { + action: 'record.ems.repair.import21I', + describe: '加贸变更-料件-修改导入', + type: '1', + }, + { + action: 'record.ems.recordBetch21I', + describe: '加贸变更-料件-颗粒度提取', + type: '1', + }, + { + action: 'record.ems.edit21E', + describe: '加贸变更-成品-编辑', + type: '1', + }, + { + action: 'record.ems.import21E', + describe: '加贸变更-成品-导入', + type: '1', + }, + { + action: 'record.ems.recordChangeBetch21E', + describe: '加贸变更-成品-备案变更提取', + type: '1', + }, + { + action: 'record.ems.mergeCopImgNoBetch21E', + describe: '加贸变更-成品-归并料号提取', + type: '1', + }, + { + action: 'E:passport:passportData:upload', + describe: '出口核放单上载', + type: '1', + }, + { + action: 'E:passport:passportData:cancel', + describe: '出口核放单作废', + type: '1', + }, + { + action: 'record.ems.recovery21E', + describe: '加贸变更-成品-恢复', + type: '1', + }, + { + action: 'E:passport:passportData:resetStatus', + describe: '出口核放单重置', + type: '1', + }, + { + action: 'taxation.LvTaxEstimateList.update', + describe: '税金管理.预估税金.列表.重新计算税金', + type: '1', + }, + { + action: 'bill:billEntry:printOtherPageI0null', + describe: '报关草单-报关单附加页打印', + type: '1', + }, + { + action: 'bill:billEntry:printOtherPageI1null', + describe: '进口报关草单-报关单商品附加页打印', + type: '1', + }, + { + action: 'bill:entryQuery:entryPrintI0null', + describe: '进口报关草单-打印', + type: '1', + }, + { + action: 'bill:entryQuery:entryPrintI1null', + describe: '进口报关草单-打印', + type: '1', + }, + { + action: 'bill:bill:uploadTwoI', + describe: '完整申报', + type: '1', + }, + { + action: 'bill:bill:uploadTreeI', + describe: '一次录入', + type: '1', + }, + { + action: 'bill:bill:uploadOneI', + describe: '概要申报', + type: '1', + }, + { + action: 'record.ems.remove21E', + describe: '加贸变更-成品-删除', + type: '1', + }, + { + action: 'record.ems.recordBetch21E', + describe: '加贸变更-成品-颗粒度提取', + type: '1', + }, + { + action: 'record.ems.repair.import21E', + describe: '加贸变更-料件-修改导入', + type: '1', + }, + { + action: 'record.ems.clear21E', + describe: '加贸变更-成品-清空', + type: '1', + }, + { + action: 'record.ems.mergeBetch21I', + describe: '加贸账册-料件-已归类提取', + type: '1', + }, + { + action: 'record.ems.mergeBetch21E', + describe: '加贸账册-成品-已归类提取', + type: '1', + }, + { + action: 'record.ems.recovery21I', + describe: '加贸变更-料件-恢复', + type: '1', + }, + { + action: 'bill:billTemplate:removeE', + describe: '删除', + type: '1', + }, + { + action: 'bill:billTemplate:save:E', + describe: '保存', + type: '1', + }, + { + action: 'bill:bill:removeI1null', + describe: '删除', + type: '1', + }, + { + action: 'bill:bill:submitI1null', + describe: '提交', + type: '1', + }, + { + action: 'bill:bill:transferI1null', + describe: '转岗', + type: '1', + }, + { + action: 'bill:bill:cancelI1null', + describe: '撤回', + type: '1', + }, + { + action: 'bill:bill:generateMtfI1null', + describe: '生成舱单', + type: '1', + }, + { + action: 'bill:bill:entryUploadI1null', + describe: '报关单上载', + type: '1', + }, + { + action: 'bill:bill:uploadTreeI1null', + describe: '一次录入', + type: '1', + }, + { + action: 'bill:bill:uploadOneI1null', + describe: '概要申报', + type: '1', + }, + { + action: 'bill:bill:uploadTwoI1null', + describe: '完整申报', + type: '1', + }, + { + action: 'bill:bill:importI1null', + describe: '导入', + type: '1', + }, + { + action: 'bill:bill:copyHeadI1null', + describe: '复制表头', + type: '1', + }, + { + action: 'bill:bill:copySeqAllBillDataI1null', + describe: '复制整单', + type: '1', + }, + { + action: 'bill:bill:flowresetI1null', + describe: '流程重置', + type: '1', + }, + { + action: 'bill:bill:entryResetI1null', + describe: '报关单重置', + type: '1', + }, + { + action: 'bill:bill:noUserI1null', + describe: '作废', + type: '1', + }, + { + action: 'bill:bill:modifyApplyI1null', + describe: '修改申请', + type: '1', + }, + { + action: 'bill:bill:delApplyI1null', + describe: '删除申请', + type: '1', + }, + { + action: 'bill:bill:billRecoveryI1null', + describe: '清单恢复', + type: '1', + }, + { + action: 'bill:bill:superQueryI1null', + describe: '高级查询', + type: '1', + }, + { + action: 'bill:bill:billAttachment:uploadFileI11', + describe: '附件信息-上传', + type: '1', + }, + { + action: 'bill:bill:entryList:betchRepairI11', + describe: '报关草单-表体-批量修改', + type: '1', + }, + { + action: 'bill:bill:entryHead:saveI11', + describe: '报关草单-保存', + type: '1', + }, + { + action: 'bill:bill:entryHead:removeI11', + describe: '报关草单-删除', + type: '1', + }, + { + action: 'bill:bill:entryHead:attaI11', + describe: '报关草单-随附单据', + type: '1', + }, + { + action: 'bill:bill:entryList:saveI11', + describe: '报关草单-表体-保存', + type: '1', + }, + { + action: 'bill:bill:entryList:agreementI11', + describe: '报关草单-表体-协定享惠', + type: '1', + }, + { + action: 'bill:bill:billLIst:upI11', + describe: '清单表体-上移', + type: '1', + }, + { + action: 'bill:bill:entryTrack:saveI11', + describe: '单货跟踪-保存', + type: '1', + }, + { + action: 'bill:bill:exceptionrecord:saveI11', + describe: '异常登记-保存', + type: '1', + }, + { + action: 'bill:bill:exceptionrecord:removeI11', + describe: '异常登记-删除', + type: '1', + }, + { + action: 'bill:bill:atta:saveI11', + describe: '随附单据-保存', + type: '1', + }, + { + action: 'bill:bill:atta:removeI11', + describe: '随附单据-删除', + type: '1', + }, + { + action: 'bill:bill:billLIst:betchGNoI11', + describe: '清单表体-提取备案序号', + type: '1', + }, + { + action: 'sys:user:query', + describe: '查询', + type: '1', + }, + { + action: 'bill:bill:billInvoiceContract:GenerateI11', + describe: '箱单发票-生成', + type: '1', + }, + { + action: 'bill:bill:billLIst:downI11', + describe: '清单表体-下移', + type: '1', + }, + { + action: 'bill:bill:billLIst:ifBetchI11', + describe: '清单表体-接口提取', + type: '1', + }, + { + action: 'bill:bill:billLIst:splitI11', + describe: '清单表体-拆分', + type: '1', + }, + { + action: 'bill:bill:billLIst:tableMergeI11', + describe: '清单表体-表体合并', + type: '1', + }, + { + action: 'bill:bill:billLIst:splitWeightI11', + describe: '清单表体-分摊重量', + type: '1', + }, + { + action: 'bill:bill:billLIst:otherFeeSplitI11', + describe: '清单表体-其他费用分摊', + type: '1', + }, + { + action: 'bill:bill:billLIst:feeSplitI11', + describe: '清单表体-运费分摊', + type: '1', + }, + { + action: 'bill:bill:billLIst:betchRepairI11', + describe: '清单表体-批量修改', + type: '1', + }, + { + action: 'bill:bill:billLIst:AutosplitI11', + describe: '清单表体-自动拆单', + type: '1', + }, + { + action: 'bill:bill:billInvoiceContract:downloadI11', + describe: '箱单发票-下载', + type: '1', + }, + { + action: 'bill:bill:billInvoiceContract:refreshI11', + describe: '箱单发票-刷新', + type: '1', + }, + { + action: 'bill:bill:TransInfo:saveI11', + describe: '运输信息-保存', + type: '1', + }, + { + action: 'bill:bill:billLIst:refreshEleI11', + describe: '清单表体-刷新申报要素', + type: '1', + }, + { + action: 'bill:bill:billLIst:refreshGnameI11', + describe: '清单表体-刷新编码品名', + type: '1', + }, + { + action: 'bill:bill:billLIst:refreshUnitI11', + describe: '清单表体-刷新申报单位', + type: '1', + }, + { + action: 'bill:bill:billLIst:splitToBondedI11', + describe: '清单表体-手工拆单至保税', + type: '1', + }, + { + action: 'bill:bill:billLIst:splitToNoBondedI11', + describe: '清单表体-手工拆单至征税', + type: '1', + }, + { + action: 'bill:bill:billUploadI1null', + describe: '清单上载', + type: '1', + }, + { + action: 'bill:bill:generatePassportI1null', + describe: '生成核放单', + type: '1', + }, + { + action: 'bill:bill:billResetI1null', + describe: '核注清单重置', + type: '1', + }, + { + action: 'bill:bill:betchI1null', + describe: '提取', + type: '1', + }, + { + action: 'bill:bill:saveTemplateI1null', + describe: '保存为模板', + type: '1', + }, + { + action: 'bill:bill:savebillI1null', + describe: '保存', + type: '1', + }, + { + action: 'bill:bill:tempSaveBillI1null', + describe: '暂存', + type: '1', + }, + { + action: 'bill:bill:saveRelInfoI1null', + describe: '保存关联信息', + type: '1', + }, + { + action: 'bill:bill:billHead:billPrintI1null', + describe: '打印', + type: '1', + }, + { + action: 'bill:bill:billLIst:saveI1null', + describe: '清单表体-保存', + type: '1', + }, + { + action: 'bill:bill:billLIst:importI1null', + describe: '清单表体-导入', + type: '1', + }, + { + action: 'bill:bill:billLIst:importNetwtGrossWtI1null', + describe: '清单表体-导入净/毛重', + type: '1', + }, + { + action: 'bill:bill:billLIst:removeI1null', + describe: '清单表体-删除', + type: '1', + }, + { + action: 'bill:bill:billLIst:clearI1null', + describe: '清单表体-清空', + type: '1', + }, + { + action: 'bill:bill:billLIst:generateEntrysI1null', + describe: '清单表体-生成草单', + type: '1', + }, + { + action: 'bill:bill:billLIst:copyI1null', + describe: '清单表体-复制', + type: '1', + }, + { + action: 'bill:bill:billLIst:upI1null', + describe: '清单表体-上移', + type: '1', + }, + { + action: 'bill:bill:billLIst:downI1null', + describe: '清单表体-下移', + type: '1', + }, + { + action: 'bill:bill:billLIst:ifBetchI1null', + describe: '清单表体-接口提取', + type: '1', + }, + { + action: 'bill:bill:billLIst:splitI1null', + describe: '清单表体-拆分', + type: '1', + }, + { + action: 'bill:bill:billLIst:tableMergeI1null', + describe: '清单表体-表体合并', + type: '1', + }, + { + action: 'bill:bill:billLIst:splitWeightI1null', + describe: '清单表体-分摊重量', + type: '1', + }, + { + action: 'bill:bill:billLIst:otherFeeSplitI1null', + describe: '清单表体-其他费用分摊', + type: '1', + }, + { + action: 'bill:bill:billLIst:feeSplitI1null', + describe: '清单表体-运费分摊', + type: '1', + }, + { + action: 'bill:bill:billLIst:betchRepairI1null', + describe: '清单表体-批量修改', + type: '1', + }, + { + action: 'bill:bill:billLIst:refreshEleI1null', + describe: '清单表体-刷新申报要素', + type: '1', + }, + { + action: 'bill:bill:billLIst:refreshUnitI1null', + describe: '清单表体-刷新申报单位', + type: '1', + }, + { + action: 'bill:bill:billLIst:splitToBondedI1null', + describe: '清单表体-手工拆单至保税', + type: '1', + }, + { + action: 'bill:bill:billLIst:refreshGnameI1null', + describe: '清单表体-刷新编码品名', + type: '1', + }, + { + action: 'bill:bill:billLIst:splitToNoBondedI1null', + describe: '清单表体-手工拆单至征税', + type: '1', + }, + { + action: 'bill:bill:billLIst:AutosplitI1null', + describe: '清单表体-自动拆单', + type: '1', + }, + { + action: 'bill:bill:TransInfo:saveI1null', + describe: '运输信息-保存', + type: '1', + }, + { + action: 'bill:bill:billInvoiceContract:refreshI1null', + describe: '箱单发票-刷新', + type: '1', + }, + { + action: 'bill:bill:billInvoiceContract:GenerateI1null', + describe: '箱单发票-生成', + type: '1', + }, + { + action: 'bill:bill:billInvoiceContract:downloadI1null', + describe: '箱单发票-下载', + type: '1', + }, + { + action: 'bill:bill:billAttachment:uploadFileI1null', + describe: '附件信息-上传', + type: '1', + }, + { + action: 'bill:bill:entryHead:saveI1null', + describe: '报关草单-保存', + type: '1', + }, + { + action: 'bill:bill:entryHead:removeI1null', + describe: '报关草单-删除', + type: '1', + }, + { + action: 'bill:bill:entryHead:attaI1null', + describe: '报关草单-随附单据', + type: '1', + }, + { + action: 'bill:bill:entryList:saveI1null', + describe: '报关草单-表体-保存', + type: '1', + }, + { + action: 'bill:bill:entryList:agreementI1null', + describe: '报关草单-表体-协定享惠', + type: '1', + }, + { + action: 'bill:bill:entryList:betchRepairI1null', + describe: '报关草单-表体-批量修改', + type: '1', + }, + { + action: 'bill:bill:entryTrack:saveI1null', + describe: '单货跟踪-保存', + type: '1', + }, + { + action: 'bill:bill:exceptionrecord:saveI1null', + describe: '异常登记-保存', + type: '1', + }, + { + action: 'bill:bill:exceptionrecord:removeI1null', + describe: '异常登记-删除', + type: '1', + }, + { + action: 'bill:bill:atta:saveI1null', + describe: '随附单据-保存', + type: '1', + }, + { + action: 'bill:bill:atta:removeI1null', + describe: '随附单据-删除', + type: '1', + }, + { + action: 'bill:bill:billLIst:betchGNoI1null', + describe: '清单表体-提取备案序号', + type: '1', + }, + { + action: 'bill:bill:billRecheckI', + describe: '复核', + type: '1', + }, + { + action: 'bill:bill:billRecheckE', + describe: '复核', + type: '1', + }, + { + action: 'bill:entryQuery:EntryUploadI', + describe: '上载', + type: '1', + }, + { + action: 'bill:entryQuery:entryPrintI', + describe: '报关单', + type: '1', + }, + { + action: 'bill:billEntry:printOtherPageI', + describe: '商品附加页', + type: '1', + }, + { + action: 'bill:entryQuery:packagePrintI', + describe: '箱单打印', + type: '1', + }, + { + action: 'bill:bill:removeI0null', + describe: '删除', + type: '1', + }, + { + action: 'bill:bill:submitI0null', + describe: '提交', + type: '1', + }, + { + action: 'bill:bill:transferI0null', + describe: '转岗', + type: '1', + }, + { + action: 'bill:bill:cancelI0null', + describe: '撤回', + type: '1', + }, + { + action: 'bill:bill:generateMtfI0null', + describe: '生成舱单', + type: '1', + }, + { + action: 'bill:bill:entryUploadI0null', + describe: '报关单上载', + type: '1', + }, + { + action: 'bill:bill:uploadTreeI0null', + describe: '一次录入', + type: '1', + }, + { + action: 'bill:bill:uploadOneI0null', + describe: '概要申报', + type: '1', + }, + { + action: 'bill:bill:uploadTwoI0null', + describe: '完整申报', + type: '1', + }, + { + action: 'bill:bill:importI0null', + describe: '导入', + type: '1', + }, + { + action: 'bill:bill:copyHeadI0null', + describe: '复制表头', + type: '1', + }, + { + action: 'bill:bill:copySeqAllBillDataI0null', + describe: '复制整单', + type: '1', + }, + { + action: 'bill:bill:flowresetI0null', + describe: '流程重置', + type: '1', + }, + { + action: 'bill:bill:entryResetI0null', + describe: '报关单重置', + type: '1', + }, + { + action: 'bill:bill:noUserI0null', + describe: '作废', + type: '1', + }, + { + action: 'bill:bill:modifyApplyI0null', + describe: '修改申请', + type: '1', + }, + { + action: 'bill:bill:delApplyI0null', + describe: '删除申请', + type: '1', + }, + { + action: 'bill:bill:billRecoveryI0null', + describe: '清单恢复', + type: '1', + }, + { + action: 'bill:bill:billUploadI0null', + describe: '清单上载', + type: '1', + }, + { + action: 'bill:bill:generatePassportI0null', + describe: '生成核放单', + type: '1', + }, + { + action: 'bill:bill:billResetI0null', + describe: '核注清单重置', + type: '1', + }, + { + action: 'bill:bill:betchI0null', + describe: '提取', + type: '1', + }, + { + action: 'bill:bill:saveTemplateI0null', + describe: '保存为模板', + type: '1', + }, + { + action: 'bill:bill:savebillI0null', + describe: '保存', + type: '1', + }, + { + action: 'bill:bill:tempSaveBillI0null', + describe: '暂存', + type: '1', + }, + { + action: 'bill:bill:saveRelInfoI0null', + describe: '保存关联信息', + type: '1', + }, + { + action: 'bill:bill:billHead:billPrintI0null', + describe: '打印', + type: '1', + }, + { + action: 'bill:bill:billLIst:saveI0null', + describe: '清单表体-保存', + type: '1', + }, + { + action: 'bill:bill:billLIst:importI0null', + describe: '清单表体-导入', + type: '1', + }, + { + action: 'bill:bill:billLIst:importNetwtGrossWtI0null', + describe: '清单表体-导入毛/净重', + type: '1', + }, + { + action: 'bill:bill:billLIst:removeI0null', + describe: '清单表体-删除', + type: '1', + }, + { + action: 'bill:bill:billLIst:clearI0null', + describe: '清单表体-清空', + type: '1', + }, + { + action: 'bill:bill:billLIst:generateEntrysI0null', + describe: '清单表体-生成草单', + type: '1', + }, + { + action: 'bill:bill:billLIst:copyI0null', + describe: '清单表体-复制', + type: '1', + }, + { + action: 'bill:bill:billLIst:upI0null', + describe: '清单表体-上移', + type: '1', + }, + { + action: 'bill:bill:billLIst:downI0null', + describe: '清单表体-下移', + type: '1', + }, + { + action: 'bill:bill:billLIst:ifBetchI0null', + describe: '清单表体-接口提取', + type: '1', + }, + { + action: 'bill:bill:billLIst:splitI0null', + describe: '清单表体-拆分', + type: '1', + }, + { + action: 'bill:bill:billLIst:tableMergeI0null', + describe: '清单表体-表体合并', + type: '1', + }, + { + action: 'bill:bill:billLIst:splitWeightI0null', + describe: '清单表体-分摊重量', + type: '1', + }, + { + action: 'bill:bill:billLIst:otherFeeSplitI0null', + describe: '清单表体-其他费用分摊', + type: '1', + }, + { + action: 'bill:bill:billLIst:feeSplitI0null', + describe: '清单表体-运费分摊', + type: '1', + }, + { + action: 'bill:bill:billLIst:betchRepairI0null', + describe: '清单表体-批量修改', + type: '1', + }, + { + action: 'bill:bill:billLIst:refreshEleI0null', + describe: '清单表体-刷新申报要素', + type: '1', + }, + { + action: 'bill:bill:billLIst:refreshUnitI0null', + describe: '清单表体-刷新申报单位', + type: '1', + }, + { + action: 'bill:bill:billLIst:splitToBondedI0null', + describe: '清单表体-手工拆单至保税', + type: '1', + }, + { + action: 'bill:bill:billLIst:refreshGnameI0null', + describe: '清单表体-刷新编码品名', + type: '1', + }, + { + action: 'bill:bill:billLIst:splitToNoBondedI0null', + describe: '清单表体-手工拆单至进口征税', + type: '1', + }, + { + action: 'bill:bill:billLIst:AutosplitI0null', + describe: '清单表体-自动拆单', + type: '1', + }, + { + action: 'bill:bill:TransInfo:saveI0null', + describe: '运输信息-保存', + type: '1', + }, + { + action: 'bill:bill:billInvoiceContract:refreshI0null', + describe: '箱单发票-刷新', + type: '1', + }, + { + action: 'bill:bill:billInvoiceContract:GenerateI0null', + describe: '箱单发票-生成', + type: '1', + }, + { + action: 'bill:bill:billInvoiceContract:downloadI0null', + describe: '箱单发票-下载', + type: '1', + }, + { + action: 'bill:bill:billAttachment:uploadFileI0null', + describe: '附件信息-上传', + type: '1', + }, + { + action: 'bill:bill:entryHead:saveI0null', + describe: '报关草单-保存', + type: '1', + }, + { + action: 'bill:bill:entryHead:removeI0null', + describe: '报关草单-删除', + type: '1', + }, + { + action: 'bill:bill:entryHead:attaI0null', + describe: '报关草单-随附单据', + type: '1', + }, + { + action: 'bill:bill:entryList:saveI0null', + describe: '报关草单-表体-保存', + type: '1', + }, + { + action: 'bill:bill:entryList:agreementI0null', + describe: '报关草单-表体-协定享惠', + type: '1', + }, + { + action: 'bill:bill:entryList:betchRepairI0null', + describe: '报关草单-表体-批量修改', + type: '1', + }, + { + action: 'bill:bill:entryTrack:saveI0null', + describe: '单货跟踪-保存', + type: '1', + }, + { + action: 'bill:bill:entryTax:calcI0null', + describe: '预估税金-计算', + type: '1', + }, + { + action: 'bill:bill:entryTax:backFillInfoI0null', + describe: '预估税金-回填信息', + type: '1', + }, + { + action: 'bill:bill:entryTax:entry:exportI0null', + describe: '预估税金-报关单税金明细-导出', + type: '1', + }, + { + action: 'bill:bill:entryTax:bill:exportI0null', + describe: '预估税金-清单税金明细-导出', + type: '1', + }, + { + action: 'bill:bill:exceptionrecord:saveI0null', + describe: '异常登记-保存', + type: '1', + }, + { + action: 'bill:bill:exceptionrecord:removeI0null', + describe: '异常登记-删除', + type: '1', + }, + { + action: 'bill:bill:atta:saveI0null', + describe: '随附单据-保存', + type: '1', + }, + { + action: 'bill:bill:atta:removeI0null', + describe: '随附单据-删除', + type: '1', + }, + { + action: 'bill:bill:billLIst:betchGNoI0null', + describe: '清单表体-提取备案序号', + type: '1', + }, + { + action: 'taxation.TaxEntryBillList.update', + describe: '税金管理.料号级税金明细.列表.更新', + type: '1', + }, + { + action: 'taxation.TaxEntryBillList.export', + describe: '税金管理.料号级税金明细.列表.导出', + type: '1', + }, + { + action: 'taxation.LvTaxEstimateList.export', + describe: '税金管理.预估税金.列表.导出', + type: '1', + }, + { + action: 'taxation.OfficialTaxList.update', + describe: '税金管理.税金理单.列表.重新分摊税金', + type: '1', + }, + { + action: 'taxation.OfficialTaxList.import', + describe: '税金管理.税金理单.列表.导入', + type: '1', + }, + { + action: 'taxation.OfficialTaxList.export', + describe: '税金管理.税金理单.列表.导出', + type: '1', + }, + { + action: 'taxation.LvTaxPaymentReportList.export', + describe: '税金管理.税金支付报表.列表.导出', + type: '1', + }, + { + action: 'axation.TaxGuaranteeList.import', + describe: '税金理单.税金保函登记.列表.导入', + type: '1', + }, + { + action: 'axation.TaxGuaranteeList.export', + describe: '税金理单.税金保函登记.列表.导出', + type: '1', + }, + { + action: 'axation.TaxGuaranteeList.delete', + describe: '税金理单.税金保函登记.列表.删除', + type: '1', + }, + { + action: 'taxation.LvTaxEstimateList.list.entryexport', + describe: '税金管理.预估税金.表体.报关单税金明细导出', + type: '1', + }, + { + action: 'taxation.LvTaxEstimateList.list.billexport', + describe: '税金管理.预估税金.表体.清单税金明细导出', + type: '1', + }, + { + action: 'taxation.TaxEntryBillList.delete', + describe: '税金管理.料号级税金明细.列表.删除', + type: '1', + }, + { + action: 'taxation.OfficialTaxList.delete', + describe: '税金管理.税金理单.列表.删除', + type: '1', + }, + { + action: 'taxation.OfficialTaxList.batchdelete', + describe: '税金管理.税金理单.列表.批量删除', + type: '1', + }, + { + action: 'taxation.OfficialTaxList.downloadpdf', + describe: '税金管理.税金理单.列表.税金理单下载', + type: '1', + }, + { + action: 'taxation.OfficialTaxList.list.downloadpdf', + describe: '税金管理.税金理单.表体.税金理单下载', + type: '1', + }, + { + action: 'taxation.OfficialTaxList.batchdownloadpdf', + describe: '税金管理.税金理单.列表.批量下载', + type: '1', + }, + { + action: 'record.ems.edit33', + describe: '物流账册备案-编辑', + type: '1', + }, + { + action: 'record.ems.remove33', + describe: '物流账册备案-删除', + type: '1', + }, + { + action: 'record.ems.download', + describe: '物流账册备案-下载', + type: '1', + }, + { + action: 'record.ems.upload33', + describe: '物流账册备案-申报', + type: '1', + }, + { + action: 'record.ems.resetUploadStatus33', + describe: '物流账册备案-重置申报状态', + type: '1', + }, + { + action: 'record.ems.submit33', + describe: '物流账册备案-提交', + type: '1', + }, + { + action: 'record.ems.verify33', + describe: '物流账册备案-审核', + type: '1', + }, + { + action: 'record.ems.transfer33', + describe: '物流账册备案-转岗', + type: '1', + }, + { + action: 'record.ems.cancel', + describe: '物流账册备案-撤回', + type: '1', + }, + { + action: 'record.ems.flowreset33', + describe: '物流账册备案-流程重置', + type: '1', + }, + { + action: 'record.ems.head.save33', + describe: '物流账册备案-表头-保存', + type: '1', + }, + { + action: 'record.ems.change43', + describe: '物流账册变更-变更', + type: '1', + }, + { + action: 'record.ems.onePass43', + describe: '物流账册变更-一键通过', + type: '1', + }, + { + action: 'record.ems.edit43', + describe: '物流账册变更-编辑', + type: '1', + }, + { + action: 'record.ems.remove43', + describe: '物流账册变更-删除', + type: '1', + }, + { + action: 'record.ems.upload43', + describe: '物流账册变更-申报', + type: '1', + }, + { + action: 'record.ems.resetUploadStatus43', + describe: '物流账册变更-重置申报状态', + type: '1', + }, + { + action: 'record.ems.submit43', + describe: '物流账册变更-提交', + type: '1', + }, + { + action: 'record.ems.tansfer43', + describe: '物流账册变更-转岗', + type: '1', + }, + { + action: 'record.ems.verify43', + describe: '物流账册变更-审核', + type: '1', + }, + { + action: 'record.ems.cancel43', + describe: '物流账册变更-撤回', + type: '1', + }, + { + action: 'record.ems.flowReset43', + describe: '物流账册变更-流程重置', + type: '1', + }, + { + action: 'record.ems.head.save43', + describe: '物流账册变更-表头-保存', + type: '1', + }, + { + action: 'sys:announcement:query', + describe: '查询', + type: '1', + }, + { + action: 'sys:code:query', + describe: '查询', + type: '1', + }, + { + action: 'sys:dict:query', + describe: '查询', + type: '1', + }, + { + action: 'excel:import:query', + describe: '查询', + type: '1', + }, + { + action: 'excel:export:query', + describe: '查询', + type: '1', + }, + { + action: 'bill:billEntry:printOtherPageE0null', + describe: '进口报关草单-报关单商品附加页打印', + type: '1', + }, + { + action: 'bill:entryQuery:entryPrintE0null', + describe: '进口报关草单-打印', + type: '1', + }, + { + action: 'bill:bill:removeE0null', + describe: '删除', + type: '1', + }, + { + action: 'bill:bill:submitE0null', + describe: '提交', + type: '1', + }, + { + action: 'bill:bill:transferE0null', + describe: '转岗', + type: '1', + }, + { + action: 'bill:bill:cancelE0null', + describe: '撤回', + type: '1', + }, + { + action: 'bill:bill:generateMtfE0null', + describe: '生成舱单', + type: '1', + }, + { + action: 'bill:bill:entryUploadE0null', + describe: '报关单上载', + type: '1', + }, + { + action: 'bill:bill:uploadTreeE0null', + describe: '一次录入', + type: '1', + }, + { + action: 'bill:bill:uploadOneE0null', + describe: '概要申报', + type: '1', + }, + { + action: 'bill:bill:uploadTwoE0null', + describe: '完整申报', + type: '1', + }, + { + action: 'bill:bill:importE0null', + describe: '导入', + type: '1', + }, + { + action: 'bill:bill:copyHeadE0null', + describe: '复制表头', + type: '1', + }, + { + action: 'bill:bill:copySeqAllBillDataE0null', + describe: '复制整单', + type: '1', + }, + { + action: 'bill:bill:flowresetE0null', + describe: '流程重置', + type: '1', + }, + { + action: 'bill:bill:entryResetE0null', + describe: '报关单重置', + type: '1', + }, + { + action: 'bill:bill:noUserE0null', + describe: '作废', + type: '1', + }, + { + action: 'bill:bill:modifyApplyE0null', + describe: '修改申请', + type: '1', + }, + { + action: 'bill:bill:delApplyE0null', + describe: '删除申请', + type: '1', + }, + { + action: 'bill:bill:billRecoveryE0null', + describe: '清单恢复', + type: '1', + }, + { + action: 'bill:bill:superQueryE0null', + describe: '高级查询', + type: '1', + }, + { + action: 'bill:bill:billUploadE0null', + describe: '清单上载', + type: '1', + }, + { + action: 'bill:bill:generatePassportE0null', + describe: '生成核放单', + type: '1', + }, + { + action: 'bill:bill:billResetE0null', + describe: '核注清单重置', + type: '1', + }, + { + action: 'bill:bill:betchE0null', + describe: '提取', + type: '1', + }, + { + action: 'bill:bill:saveTemplateE0null', + describe: '保存为模板', + type: '1', + }, + { + action: 'bill:bill:savebillE0null', + describe: '保存', + type: '1', + }, + { + action: 'bill:bill:tempSaveBillE0null', + describe: '暂存', + type: '1', + }, + { + action: 'bill:bill:saveRelInfoE0null', + describe: '保存关联信息', + type: '1', + }, + { + action: 'bill:bill:billHead:billPrintE0null', + describe: '打印', + type: '1', + }, + { + action: 'bill:bill:billLIst:saveE0null', + describe: '清单表体-保存', + type: '1', + }, + { + action: 'bill:bill:billLIst:importE0null', + describe: '清单表体-导入', + type: '1', + }, + { + action: 'bill:bill:billLIst:importNetwtGrossWtE0null', + describe: '清单表体-导入净/毛重', + type: '1', + }, + { + action: 'bill:bill:billLIst:removeE0null', + describe: '清单表体-删除', + type: '1', + }, + { + action: 'bill:bill:billLIst:clearE0null', + describe: '清单表体-清空', + type: '1', + }, + { + action: 'bill:bill:billLIst:generateEntrysE0null', + describe: '清单表体-生成草单', + type: '1', + }, + { + action: 'bill:bill:billLIst:copyE0null', + describe: '清单表体-复制', + type: '1', + }, + { + action: 'bill:bill:billLIst:upE0null', + describe: '清单表体-上移', + type: '1', + }, + { + action: 'bill:bill:billLIst:downE0null', + describe: '清单表体-下移', + type: '1', + }, + { + action: 'bill:bill:billLIst:ifBetchE0null', + describe: '清单表体-接口提取', + type: '1', + }, + { + action: 'bill:bill:billLIst:splitE0null', + describe: '清单表体-拆分', + type: '1', + }, + { + action: 'bill:bill:billLIst:tableMergeE0null', + describe: '清单表体-表体合并', + type: '1', + }, + { + action: 'bill:bill:billLIst:splitWeightE0null', + describe: '清单表体-分摊重量', + type: '1', + }, + { + action: 'bill:bill:billLIst:otherFeeSplitE0null', + describe: '清单表体-其他费用分摊', + type: '1', + }, + { + action: 'bill:bill:billLIst:feeSplitE0null', + describe: '清单表体-运费分摊', + type: '1', + }, + { + action: 'bill:bill:billLIst:betchRepairE0null', + describe: '清单表体-批量修改', + type: '1', + }, + { + action: 'bill:bill:billLIst:refreshEleE0null', + describe: '清单表体-刷新申报要素', + type: '1', + }, + { + action: 'bill:bill:billLIst:refreshUnitE0null', + describe: '清单表体-刷新申报单位', + type: '1', + }, + { + action: 'bill:bill:billLIst:splitToBondedE0null', + describe: '清单表体-手工拆单至保税', + type: '1', + }, + { + action: 'bill:bill:billLIst:refreshGnameE0null', + describe: '清单表体-刷新编码品名', + type: '1', + }, + { + action: 'bill:bill:billLIst:splitToNoBondedE0null', + describe: '清单表体-手工拆单至征税', + type: '1', + }, + { + action: 'bill:bill:billLIst:AutosplitE0null', + describe: '清单表体-自动拆单', + type: '1', + }, + { + action: 'bill:bill:TransInfo:saveE0null', + describe: '运输信息-保存', + type: '1', + }, + { + action: 'bill:bill:billInvoiceContract:refreshE0null', + describe: '箱单发票-刷新', + type: '1', + }, + { + action: 'bill:bill:billInvoiceContract:GenerateE0null', + describe: '箱单发票-生成', + type: '1', + }, + { + action: 'bill:bill:billInvoiceContract:downloadE0null', + describe: '箱单发票-下载', + type: '1', + }, + { + action: 'bill:bill:billAttachment:uploadFileE0null', + describe: '附件信息-上传', + type: '1', + }, + { + action: 'bill:bill:entryHead:saveE0null', + describe: '报关草单-保存', + type: '1', + }, + { + action: 'bill:bill:entryHead:removeE0null', + describe: '报关草单-删除', + type: '1', + }, + { + action: 'bill:bill:entryHead:attaE0null', + describe: '报关草单-随附单据', + type: '1', + }, + { + action: 'bill:bill:entryList:saveE0null', + describe: '报关草单-表体-保存', + type: '1', + }, + { + action: 'bill:bill:entryList:agreementE0null', + describe: '报关草单-表体-协定享惠', + type: '1', + }, + { + action: 'bill:bill:entryList:betchRepairE0null', + describe: '报关草单-表体-批量修改', + type: '1', + }, + { + action: 'bill:bill:entryTrack:saveE0null', + describe: '单货跟踪-保存', + type: '1', + }, + { + action: 'bill:bill:exceptionrecord:saveE0null', + describe: '异常登记-保存', + type: '1', + }, + { + action: 'bill:bill:exceptionrecord:removeE0null', + describe: '异常登记-删除', + type: '1', + }, + { + action: 'bill:bill:atta:saveE0null', + describe: '随附单据-保存', + type: '1', + }, + { + action: 'bill:bill:atta:removeE0null', + describe: '随附单据-删除', + type: '1', + }, + { + action: 'bill:bill:billLIst:betchGNoE0null', + describe: '清单表体-提取备案序号', + type: '1', + }, + { + action: 'sys:alert:query', + describe: '查询', + type: '1', + }, + { + action: 'bill:billEntry:printOtherPageE13', + describe: '进口报关草单-报关单商品附加页打印', + type: '1', + }, + { + action: 'bill:entryQuery:entryPrintE13', + describe: '进口报关草单-打印', + type: '1', + }, + { + action: 'bill:bill:removeE13', + describe: '删除', + type: '1', + }, + { + action: 'bill:bill:submitE13', + describe: '提交', + type: '1', + }, + { + action: 'bill:bill:transferE13', + describe: '转岗', + type: '1', + }, + { + action: 'bill:bill:cancelE13', + describe: '撤回', + type: '1', + }, + { + action: 'bill:bill:generateMtfE13', + describe: '生成舱单', + type: '1', + }, + { + action: 'bill:bill:entryUploadE13', + describe: '报关单上载', + type: '1', + }, + { + action: 'bill:bill:uploadTreeE13', + describe: '一次录入', + type: '1', + }, + { + action: 'bill:bill:uploadOneE13', + describe: '概要申报', + type: '1', + }, + { + action: 'bill:bill:uploadTwoE13', + describe: '完整申报', + type: '1', + }, + { + action: 'bill:bill:importE13', + describe: '导入', + type: '1', + }, + { + action: 'bill:bill:copyHeadE13', + describe: '复制表头', + type: '1', + }, + { + action: 'bill:bill:copySeqAllBillDataE13', + describe: '复制整单', + type: '1', + }, + { + action: 'bill:bill:flowresetE13', + describe: '流程重置', + type: '1', + }, + { + action: 'bill:bill:entryResetE13', + describe: '报关单重置', + type: '1', + }, + { + action: 'bill:bill:noUserE13', + describe: '作废', + type: '1', + }, + { + action: 'bill:bill:modifyApplyE13', + describe: '修改申请', + type: '1', + }, + { + action: 'bill:bill:delApplyE13', + describe: '删除申请', + type: '1', + }, + { + action: 'bill:bill:billRecoveryE13', + describe: '清单恢复', + type: '1', + }, + { + action: 'bill:bill:superQueryE13', + describe: '高级查询', + type: '1', + }, + { + action: 'bill:bill:billUploadE13', + describe: '清单上载', + type: '1', + }, + { + action: 'bill:bill:generatePassportE13', + describe: '生成核放单', + type: '1', + }, + { + action: 'bill:bill:billResetE13', + describe: '核注清单重置', + type: '1', + }, + { + action: 'bill:bill:betchE13', + describe: '提取', + type: '1', + }, + { + action: 'bill:bill:saveTemplateE13', + describe: '保存为模板', + type: '1', + }, + { + action: 'bill:bill:savebillE13', + describe: '保存', + type: '1', + }, + { + action: 'bill:bill:tempSaveBillE13', + describe: '暂存', + type: '1', + }, + { + action: 'bill:bill:saveRelInfoE13', + describe: '保存关联信息', + type: '1', + }, + { + action: 'bill:bill:billHead:billPrintE13', + describe: '打印', + type: '1', + }, + { + action: 'bill:bill:billLIst:saveE13', + describe: '清单表体-保存', + type: '1', + }, + { + action: 'bill:bill:billLIst:importE13', + describe: '清单表体-导入', + type: '1', + }, + { + action: 'bill:bill:billLIst:importNetwtGrossWtE13', + describe: '清单表体-导入净/毛重', + type: '1', + }, + { + action: 'bill:bill:billLIst:removeE13', + describe: '清单表体-删除', + type: '1', + }, + { + action: 'bill:bill:billLIst:clearE13', + describe: '清单表体-清空', + type: '1', + }, + { + action: 'bill:bill:billLIst:generateEntrysE13', + describe: '清单表体-生成草单', + type: '1', + }, + { + action: 'bill:bill:billLIst:copyE13', + describe: '清单表体-复制', + type: '1', + }, + { + action: 'bill:bill:billLIst:upE13', + describe: '清单表体-上移', + type: '1', + }, + { + action: 'bill:bill:billLIst:downE13', + describe: '清单表体-下移', + type: '1', + }, + { + action: 'bill:bill:billLIst:ifBetchE13', + describe: '清单表体-接口提取', + type: '1', + }, + { + action: 'bill:bill:billLIst:splitE13', + describe: '清单表体-拆分', + type: '1', + }, + { + action: 'bill:bill:billLIst:tableMergeE13', + describe: '清单表体-表体合并', + type: '1', + }, + { + action: 'bill:bill:billLIst:splitWeightE13', + describe: '清单表体-分摊重量', + type: '1', + }, + { + action: 'bill:bill:billLIst:otherFeeSplitE13', + describe: '清单表体-其他费用分摊', + type: '1', + }, + { + action: 'bill:bill:billLIst:feeSplitE13', + describe: '清单表体-运费分摊', + type: '1', + }, + { + action: 'bill:bill:billLIst:betchRepairE13', + describe: '清单表体-批量修改', + type: '1', + }, + { + action: 'bill:bill:billLIst:refreshEleE13', + describe: '清单表体-刷新申报要素', + type: '1', + }, + { + action: 'bill:bill:billLIst:refreshUnitE13', + describe: '清单表体-刷新申报单位', + type: '1', + }, + { + action: 'bill:bill:billLIst:splitToBondedE13', + describe: '清单表体-手工拆单至保税', + type: '1', + }, + { + action: 'bill:bill:billLIst:refreshGnameE13', + describe: '清单表体-刷新编码品名', + type: '1', + }, + { + action: 'bill:bill:billLIst:splitToNoBondedE13', + describe: '清单表体-手工拆单至征税', + type: '1', + }, + { + action: 'bill:bill:billLIst:AutosplitE13', + describe: '清单表体-自动拆单', + type: '1', + }, + { + action: 'bill:bill:TransInfo:saveE13', + describe: '运输信息-保存', + type: '1', + }, + { + action: 'bill:bill:billInvoiceContract:refreshE13', + describe: '箱单发票-刷新', + type: '1', + }, + { + action: 'bill:bill:billInvoiceContract:GenerateE13', + describe: '箱单发票-生成', + type: '1', + }, + { + action: 'bill:bill:billInvoiceContract:downloadE13', + describe: '箱单发票-下载', + type: '1', + }, + { + action: 'bill:bill:billAttachment:uploadFileE13', + describe: '附件信息-上传', + type: '1', + }, + { + action: 'bill:bill:entryHead:saveE13', + describe: '报关草单-保存', + type: '1', + }, + { + action: 'bill:bill:entryHead:removeE13', + describe: '报关草单-删除', + type: '1', + }, + { + action: 'bill:bill:entryHead:attaE13', + describe: '报关草单-随附单据', + type: '1', + }, + { + action: 'bill:bill:entryList:saveE13', + describe: '报关草单-表体-保存', + type: '1', + }, + { + action: 'bill:bill:entryList:agreementE13', + describe: '报关草单-表体-协定享惠', + type: '1', + }, + { + action: 'bill:bill:entryList:betchRepairE13', + describe: '报关草单-表体-批量修改', + type: '1', + }, + { + action: 'bill:bill:entryTrack:saveE13', + describe: '单货跟踪-保存', + type: '1', + }, + { + action: 'bill:bill:exceptionrecord:saveE13', + describe: '异常登记-保存', + type: '1', + }, + { + action: 'bill:bill:exceptionrecord:removeE13', + describe: '异常登记-删除', + type: '1', + }, + { + action: 'bill:bill:atta:saveE13', + describe: '随附单据-保存', + type: '1', + }, + { + action: 'bill:bill:atta:removeE13', + describe: '随附单据-删除', + type: '1', + }, + { + action: 'bill:bill:billLIst:betchGNoE13', + describe: '清单表体-提取备案序号', + type: '1', + }, + { + action: 'sys:user:query', + describe: '查询', + type: '1', + }, + { + action: 'sys:company:config:query', + describe: '查询', + type: '1', + }, + { + action: 'sys:apiperms:query', + describe: '查询', + type: '1', + }, + { + action: 'bill:billEntry:printOtherPageI13', + describe: '进口报关草单-报关单商品附加页打印', + type: '1', + }, + { + action: 'bill:entryQuery:entryPrintI13', + describe: '进口报关草单-打印', + type: '1', + }, + { + action: 'bill:bill:removeI13', + describe: '删除', + type: '1', + }, + { + action: 'bill:bill:submitI13', + describe: '提交', + type: '1', + }, + { + action: 'bill:bill:transferI13', + describe: '转岗', + type: '1', + }, + { + action: 'bill:bill:cancelI13', + describe: '撤回', + type: '1', + }, + { + action: 'bill:bill:generateMtfI13', + describe: '生成舱单', + type: '1', + }, + { + action: 'bill:bill:entryUploadI13', + describe: '报关单上载', + type: '1', + }, + { + action: 'bill:bill:uploadTreeI13', + describe: '一次录入', + type: '1', + }, + { + action: 'bill:bill:uploadOneI13', + describe: '概要申报', + type: '1', + }, + { + action: 'bill:bill:uploadTwoI13', + describe: '完整申报', + type: '1', + }, + { + action: 'bill:bill:importI13', + describe: '导入', + type: '1', + }, + { + action: 'bill:bill:copyHeadI13', + describe: '复制表头', + type: '1', + }, + { + action: 'bill:bill:copySeqAllBillDataI13', + describe: '复制整单', + type: '1', + }, + { + action: 'bill:bill:flowresetI13', + describe: '流程重置', + type: '1', + }, + { + action: 'bill:bill:entryResetI13', + describe: '报关单重置', + type: '1', + }, + { + action: 'bill:bill:noUserI13', + describe: '作废', + type: '1', + }, + { + action: 'bill:bill:modifyApplyI13', + describe: '修改申请', + type: '1', + }, + { + action: 'bill:bill:delApplyI13', + describe: '删除申请', + type: '1', + }, + { + action: 'bill:bill:billRecoveryI13', + describe: '清单恢复', + type: '1', + }, + { + action: 'bill:bill:superQueryI13', + describe: '高级查询', + type: '1', + }, + { + action: 'bill:bill:billUploadI13', + describe: '清单上载', + type: '1', + }, + { + action: 'bill:bill:generatePassportI13', + describe: '生成核放单', + type: '1', + }, + { + action: 'bill:bill:billResetI13', + describe: '核注清单重置', + type: '1', + }, + { + action: 'bill:bill:betchI13', + describe: '提取', + type: '1', + }, + { + action: 'bill:bill:saveTemplateI13', + describe: '保存为模板', + type: '1', + }, + { + action: 'bill:bill:savebillI13', + describe: '保存', + type: '1', + }, + { + action: 'bill:bill:tempSaveBillI13', + describe: '暂存', + type: '1', + }, + { + action: 'bill:bill:saveRelInfoI13', + describe: '保存关联信息', + type: '1', + }, + { + action: 'bill:bill:billHead:billPrintI13', + describe: '打印', + type: '1', + }, + { + action: 'bill:bill:billLIst:saveI13', + describe: '清单表体-保存', + type: '1', + }, + { + action: 'bill:bill:billLIst:importI13', + describe: '清单表体-导入', + type: '1', + }, + { + action: 'bill:bill:billLIst:importNetwtGrossWtI13', + describe: '清单表体-导入净/毛重', + type: '1', + }, + { + action: 'bill:bill:billLIst:removeI13', + describe: '清单表体-删除', + type: '1', + }, + { + action: 'bill:bill:billLIst:clearI13', + describe: '清单表体-清空', + type: '1', + }, + { + action: 'bill:bill:billLIst:generateEntrysI13', + describe: '清单表体-生成草单', + type: '1', + }, + { + action: 'bill:bill:billLIst:copyI13', + describe: '清单表体-复制', + type: '1', + }, + { + action: 'bill:bill:billLIst:upI13', + describe: '清单表体-上移', + type: '1', + }, + { + action: 'bill:bill:billLIst:downI13', + describe: '清单表体-下移', + type: '1', + }, + { + action: 'bill:bill:billLIst:ifBetchI13', + describe: '清单表体-接口提取', + type: '1', + }, + { + action: 'bill:bill:billLIst:splitI13', + describe: '清单表体-拆分', + type: '1', + }, + { + action: 'bill:bill:billLIst:tableMergeI13', + describe: '清单表体-表体合并', + type: '1', + }, + { + action: 'bill:bill:billLIst:splitWeightI13', + describe: '清单表体-分摊重量', + type: '1', + }, + { + action: 'bill:bill:billLIst:otherFeeSplitI13', + describe: '清单表体-其他费用分摊', + type: '1', + }, + { + action: 'bill:bill:billLIst:feeSplitI13', + describe: '清单表体-运费分摊', + type: '1', + }, + { + action: 'bill:bill:billLIst:betchRepairI13', + describe: '清单表体-批量修改', + type: '1', + }, + { + action: 'bill:bill:billLIst:refreshEleI13', + describe: '清单表体-刷新申报要素', + type: '1', + }, + { + action: 'bill:bill:billLIst:refreshUnitI13', + describe: '清单表体-刷新申报单位', + type: '1', + }, + { + action: 'bill:bill:billLIst:splitToBondedI13', + describe: '清单表体-手工拆单至保税', + type: '1', + }, + { + action: 'bill:bill:billLIst:refreshGnameI13', + describe: '清单表体-刷新编码品名', + type: '1', + }, + { + action: 'bill:bill:billLIst:splitToNoBondedI13', + describe: '清单表体-手工拆单至征税', + type: '1', + }, + { + action: 'bill:bill:billLIst:AutosplitI13', + describe: '清单表体-自动拆单', + type: '1', + }, + { + action: 'bill:bill:TransInfo:saveI13', + describe: '运输信息-保存', + type: '1', + }, + { + action: 'bill:bill:billInvoiceContract:refreshI13', + describe: '箱单发票-刷新', + type: '1', + }, + { + action: 'bill:bill:billInvoiceContract:GenerateI13', + describe: '箱单发票-生成', + type: '1', + }, + { + action: 'bill:bill:billInvoiceContract:downloadI13', + describe: '箱单发票-下载', + type: '1', + }, + { + action: 'bill:bill:billAttachment:uploadFileI13', + describe: '附件信息-上传', + type: '1', + }, + { + action: 'bill:bill:entryHead:saveI13', + describe: '报关草单-保存', + type: '1', + }, + { + action: 'bill:bill:entryHead:removeI13', + describe: '报关草单-删除', + type: '1', + }, + { + action: 'bill:bill:entryHead:attaI13', + describe: '报关草单-随附单据', + type: '1', + }, + { + action: 'bill:bill:entryList:saveI13', + describe: '报关草单-表体-保存', + type: '1', + }, + { + action: 'bill:bill:entryList:agreementI13', + describe: '报关草单-表体-协定享惠', + type: '1', + }, + { + action: 'bill:bill:entryList:betchRepairI13', + describe: '报关草单-表体-批量修改', + type: '1', + }, + { + action: 'bill:bill:entryTrack:saveI13', + describe: '单货跟踪-保存', + type: '1', + }, + { + action: 'bill:bill:exceptionrecord:saveI13', + describe: '异常登记-保存', + type: '1', + }, + { + action: 'bill:bill:exceptionrecord:removeI13', + describe: '异常登记-删除', + type: '1', + }, + { + action: 'bill:bill:atta:saveI13', + describe: '随附单据-保存', + type: '1', + }, + { + action: 'bill:bill:atta:removeI13', + describe: '随附单据-删除', + type: '1', + }, + { + action: 'bill:bill:billLIst:betchGNoI13', + describe: '清单表体-提取备案序号', + type: '1', + }, + { + action: 'sys:role:query', + describe: '查询', + type: '1', + }, + { + action: 'excel:model:query', + describe: '查询', + type: '1', + }, + { + action: 'bill:billEntry:printOtherPageE1null', + describe: '进口报关草单-报关单商品附加页打印', + type: '1', + }, + { + action: 'bill:entryQuery:entryPrintE1null', + describe: '进口报关草单-打印', + type: '1', + }, + { + action: 'bill:bill:removeE1null', + describe: '删除', + type: '1', + }, + { + action: 'bill:bill:submitE1null', + describe: '提交', + type: '1', + }, + { + action: 'bill:bill:transferE1null', + describe: '转岗', + type: '1', + }, + { + action: 'bill:bill:cancelE1null', + describe: '撤回', + type: '1', + }, + { + action: 'bill:bill:generateMtfE1null', + describe: '生成舱单', + type: '1', + }, + { + action: 'bill:bill:entryUploadE1null', + describe: '报关单上载', + type: '1', + }, + { + action: 'bill:bill:uploadTreeE1null', + describe: '一次录入', + type: '1', + }, + { + action: 'bill:bill:uploadOneE1null', + describe: '概要申报', + type: '1', + }, + { + action: 'bill:bill:uploadTwoE1null', + describe: '完整申报', + type: '1', + }, + { + action: 'bill:bill:importE1null', + describe: '导入', + type: '1', + }, + { + action: 'bill:bill:copyHeadE1null', + describe: '复制表头', + type: '1', + }, + { + action: 'bill:bill:copySeqAllBillDataE1null', + describe: '复制整单', + type: '1', + }, + { + action: 'bill:bill:flowresetE1null', + describe: '流程重置', + type: '1', + }, + { + action: 'bill:bill:entryResetE1null', + describe: '报关单重置', + type: '1', + }, + { + action: 'bill:bill:noUserE1null', + describe: '作废', + type: '1', + }, + { + action: 'bill:bill:modifyApplyE1null', + describe: '修改申请', + type: '1', + }, + { + action: 'bill:bill:delApplyE1null', + describe: '删除申请', + type: '1', + }, + { + action: 'bill:bill:billRecoveryE1null', + describe: '清单恢复', + type: '1', + }, + { + action: 'bill:bill:superQueryE1null', + describe: '高级查询', + type: '1', + }, + { + action: 'bill:bill:billUploadE1null', + describe: '清单上载', + type: '1', + }, + { + action: 'bill:bill:generatePassportE1null', + describe: '生成核放单', + type: '1', + }, + { + action: 'bill:bill:billResetE1null', + describe: '核注清单重置', + type: '1', + }, + { + action: 'bill:bill:betchE1null', + describe: '提取', + type: '1', + }, + { + action: 'bill:bill:saveTemplateE1null', + describe: '保存为模板', + type: '1', + }, + { + action: 'bill:bill:savebillE1null', + describe: '保存', + type: '1', + }, + { + action: 'bill:bill:tempSaveBillE1null', + describe: '暂存', + type: '1', + }, + { + action: 'bill:bill:saveRelInfoE1null', + describe: '保存关联信息', + type: '1', + }, + { + action: 'bill:bill:billHead:billPrintE1null', + describe: '打印', + type: '1', + }, + { + action: 'bill:bill:billLIst:saveE1null', + describe: '清单表体-保存', + type: '1', + }, + { + action: 'bill:bill:billLIst:importE1null', + describe: '清单表体-导入', + type: '1', + }, + { + action: 'bill:bill:billLIst:importNetwtGrossWtE1null', + describe: '清单表体-导入净/毛重', + type: '1', + }, + { + action: 'bill:bill:billLIst:removeE1null', + describe: '清单表体-删除', + type: '1', + }, + { + action: 'bill:bill:billLIst:clearE1null', + describe: '清单表体-清空', + type: '1', + }, + { + action: 'bill:bill:billLIst:generateEntrysE1null', + describe: '清单表体-生成草单', + type: '1', + }, + { + action: 'bill:bill:billLIst:copyE1null', + describe: '清单表体-复制', + type: '1', + }, + { + action: 'bill:bill:billLIst:upE1null', + describe: '清单表体-上移', + type: '1', + }, + { + action: 'bill:bill:billLIst:downE1null', + describe: '清单表体-下移', + type: '1', + }, + { + action: 'bill:bill:billLIst:ifBetchE1null', + describe: '清单表体-接口提取', + type: '1', + }, + { + action: 'bill:bill:billLIst:splitE1null', + describe: '清单表体-拆分', + type: '1', + }, + { + action: 'bill:bill:billLIst:tableMergeE1null', + describe: '清单表体-表体合并', + type: '1', + }, + { + action: 'bill:bill:billLIst:splitWeightE1null', + describe: '清单表体-分摊重量', + type: '1', + }, + { + action: 'bill:bill:billLIst:otherFeeSplitE1null', + describe: '清单表体-其他费用分摊', + type: '1', + }, + { + action: 'bill:bill:billLIst:feeSplitE1null', + describe: '清单表体-运费分摊', + type: '1', + }, + { + action: 'bill:bill:billLIst:betchRepairE1null', + describe: '清单表体-批量修改', + type: '1', + }, + { + action: 'bill:bill:billLIst:refreshEleE1null', + describe: '清单表体-刷新申报要素', + type: '1', + }, + { + action: 'bill:bill:billLIst:refreshUnitE1null', + describe: '清单表体-刷新申报单位', + type: '1', + }, + { + action: 'bill:bill:billLIst:splitToBondedE1null', + describe: '清单表体-手工拆单至保税', + type: '1', + }, + { + action: 'bill:bill:billLIst:refreshGnameE1null', + describe: '清单表体-刷新编码品名', + type: '1', + }, + { + action: 'bill:bill:billLIst:splitToNoBondedE1null', + describe: '清单表体-手工拆单至征税', + type: '1', + }, + { + action: 'bill:bill:billLIst:AutosplitE1null', + describe: '清单表体-自动拆单', + type: '1', + }, + { + action: 'bill:bill:TransInfo:saveE1null', + describe: '运输信息-保存', + type: '1', + }, + { + action: 'bill:bill:billInvoiceContract:refreshE1null', + describe: '箱单发票-刷新', + type: '1', + }, + { + action: 'bill:bill:billInvoiceContract:GenerateE1null', + describe: '箱单发票-生成', + type: '1', + }, + { + action: 'bill:bill:billInvoiceContract:downloadE1null', + describe: '箱单发票-下载', + type: '1', + }, + { + action: 'bill:bill:billAttachment:uploadFileE1null', + describe: '附件信息-上传', + type: '1', + }, + { + action: 'bill:bill:entryHead:saveE1null', + describe: '报关草单-保存', + type: '1', + }, + { + action: 'bill:bill:entryHead:removeE1null', + describe: '报关草单-删除', + type: '1', + }, + { + action: 'bill:bill:entryHead:attaE1null', + describe: '报关草单-随附单据', + type: '1', + }, + { + action: 'bill:bill:entryList:saveE1null', + describe: '报关草单-表体-保存', + type: '1', + }, + { + action: 'bill:bill:entryList:agreementE1null', + describe: '报关草单-表体-协定享惠', + type: '1', + }, + { + action: 'bill:bill:entryList:betchRepairE1null', + describe: '报关草单-表体-批量修改', + type: '1', + }, + { + action: 'bill:bill:entryTrack:saveE1null', + describe: '单货跟踪-保存', + type: '1', + }, + { + action: 'bill:bill:exceptionrecord:saveE1null', + describe: '异常登记-保存', + type: '1', + }, + { + action: 'bill:bill:exceptionrecord:removeE1null', + describe: '异常登记-删除', + type: '1', + }, + { + action: 'bill:bill:atta:saveE1null', + describe: '随附单据-保存', + type: '1', + }, + { + action: 'bill:bill:atta:removeE1null', + describe: '随附单据-删除', + type: '1', + }, + { + action: 'bill:bill:billLIst:betchGNoE1null', + describe: '清单表体-提取备案序号', + type: '1', + }, + { + action: 'bill:bill:uploadTwoE', + describe: '完整申报', + type: '1', + }, + { + action: 'bill:bill:uploadTreeE', + describe: '一次录入', + type: '1', + }, + { + action: 'bill:bill:uploadOneE', + describe: '概要申报', + type: '1', + }, + { + action: 'bill:entryQuery:EntryUploadE', + describe: '上载', + type: '1', + }, + { + action: 'bill:entryQuery:entryPrintE', + describe: '报关单', + type: '1', + }, + { + action: 'bill:billEntry:printOtherPageE', + describe: '商品附加页', + type: '1', + }, + { + action: 'bill:entryQuery:packagePrintE', + describe: '箱单打印', + type: '1', + }, + { + action: 'task:common:query', + describe: '查询', + type: '1', + }, + { + action: 'task:tax:query', + describe: '查询', + type: '1', + }, + { + action: 'sys:tenant:query', + describe: '查询', + type: '1', + }, + { + action: 'bill:billEntry:printOtherPageI11', + describe: '进口报关草单-报关单商品附加页打印', + type: '1', + }, + { + action: 'bill:entryQuery:entryPrintI11', + describe: '进口报关草单-打印', + type: '1', + }, + { + action: 'bill:bill:removeI11', + describe: '删除', + type: '1', + }, + { + action: 'bill:bill:submitI11', + describe: '提交', + type: '1', + }, + { + action: 'bill:bill:transferI11', + describe: '转岗', + type: '1', + }, + { + action: 'bill:bill:cancelI11', + describe: '撤回', + type: '1', + }, + { + action: 'bill:bill:generateMtfI11', + describe: '生成舱单', + type: '1', + }, + { + action: 'bill:bill:entryUploadI11', + describe: '报关单上载', + type: '1', + }, + { + action: 'bill:bill:uploadTreeI11', + describe: '一次录入', + type: '1', + }, + { + action: 'bill:bill:uploadOneI11', + describe: '概要申报', + type: '1', + }, + { + action: 'bill:bill:uploadTwoI11', + describe: '完整申报', + type: '1', + }, + { + action: 'bill:bill:importI11', + describe: '导入', + type: '1', + }, + { + action: 'bill:bill:copyHeadI11', + describe: '复制表头', + type: '1', + }, + { + action: 'bill:bill:copySeqAllBillDataI11', + describe: '复制整单', + type: '1', + }, + { + action: 'bill:bill:flowresetI11', + describe: '流程重置', + type: '1', + }, + { + action: 'bill:bill:entryResetI11', + describe: '报关单重置', + type: '1', + }, + { + action: 'bill:bill:noUserI11', + describe: '作废', + type: '1', + }, + { + action: 'bill:bill:modifyApplyI11', + describe: '修改申请', + type: '1', + }, + { + action: 'bill:bill:delApplyI11', + describe: '删除申请', + type: '1', + }, + { + action: 'bill:bill:billRecoveryI11', + describe: '清单恢复', + type: '1', + }, + { + action: 'bill:bill:superQueryI11', + describe: '高级查询', + type: '1', + }, + { + action: 'bill:bill:billUploadI11', + describe: '清单上载', + type: '1', + }, + { + action: 'bill:bill:generatePassportI11', + describe: '生成核放单', + type: '1', + }, + { + action: 'bill:bill:billResetI11', + describe: '核注清单重置', + type: '1', + }, + { + action: 'bill:bill:betchI11', + describe: '提取', + type: '1', + }, + { + action: 'bill:bill:saveTemplateI11', + describe: '保存为模板', + type: '1', + }, + { + action: 'bill:bill:savebillI11', + describe: '保存', + type: '1', + }, + { + action: 'bill:bill:tempSaveBillI11', + describe: '暂存', + type: '1', + }, + { + action: 'bill:bill:saveRelInfoI11', + describe: '保存关联信息', + type: '1', + }, + { + action: 'bill:bill:billHead:billPrintI11', + describe: '打印', + type: '1', + }, + { + action: 'bill:bill:billLIst:saveI11', + describe: '清单表体-保存', + type: '1', + }, + { + action: 'bill:bill:billLIst:importI11', + describe: '清单表体-导入', + type: '1', + }, + { + action: 'bill:bill:billLIst:importNetwtGrossWtI11', + describe: '清单表体-导入净/毛重', + type: '1', + }, + { + action: 'bill:bill:billLIst:removeI11', + describe: '清单表体-删除', + type: '1', + }, + { + action: 'bill:bill:billLIst:clearI11', + describe: '清单表体-清空', + type: '1', + }, + { + action: 'bill:bill:billLIst:generateEntrysI11', + describe: '清单表体-生成草单', + type: '1', + }, + { + action: 'bill:bill:billLIst:copyI11', + describe: '清单表体-复制', + type: '1', + }, + { + action: 'basedata:lastestNews:edit', + describe: '编辑', + type: '1', + }, + { + action: 'basedata:bdsite:edit', + describe: '编辑', + type: '1', + }, + { + action: 'basedata:companyInfo:customeCert:add', + describe: '海关信用新增', + type: '1', + }, + { + action: 'govPoliocy:govPolicy:edit', + describe: '编辑', + type: '1', + }, + { + action: 'sys:announcement:add', + describe: '新增', + type: '1', + }, + { + action: 'sys:code:add', + describe: '新增', + type: '1', + }, + { + action: 'sys:dict:add', + describe: '新增', + type: '1', + }, + { + action: 'excel:import:down', + describe: '下载', + type: '1', + }, + { + action: 'excel:export:down', + describe: '下载', + type: '1', + }, + { + action: 'sys:alert:add', + describe: '新增', + type: '1', + }, + { + action: 'sys:user:add', + describe: '新增', + type: '1', + }, + { + action: 'sys:company:config:save', + describe: '保存', + type: '1', + }, + { + action: 'sys:apiperms:refresh', + describe: '刷新', + type: '1', + }, + { + action: 'sys:role:add', + describe: '新增', + type: '1', + }, + { + action: 'excel:model:init', + describe: '模板初始化', + type: '1', + }, + { + action: 'sys:tenant:add', + describe: '新增', + type: '1', + }, + { + action: 'sys:announcement:del', + describe: '删除', + type: '1', + }, + { + action: 'sys:code:del', + describe: '删除', + type: '1', + }, + { + action: 'sys:dict:del', + describe: '删除', + type: '1', + }, + { + action: 'sys:alert:info', + describe: '详情', + type: '1', + }, + { + action: 'sys:user:del', + describe: '删除', + type: '1', + }, + { + action: 'sys:apiperms:change', + describe: '修改', + type: '1', + }, + { + action: 'sys:role:del', + describe: '删除', + type: '1', + }, + { + action: 'excel:model:del', + describe: '删除', + type: '1', + }, + { + action: 'sys:tenant:del', + describe: '删除', + type: '1', + }, + { + action: 'basedata:lastestNews:superQuery', + describe: '高级查询', + type: '1', + }, + { + action: 'basedata:bdsite:detail', + describe: '详情', + type: '1', + }, + { + action: 'basedata:companyInfo:customeCert:clear', + describe: '海关信用清空', + type: '1', + }, + { + action: 'govPoliocy:govPolicy:detail', + describe: '详情', + type: '1', + }, + { + action: 'basedata.lastestNews.detail', + describe: '详情', + type: '1', + }, + { + action: 'basedata:bdsite:import', + describe: '导入', + type: '1', + }, + { + action: 'basedata:companyInfo:customeCert:export', + describe: '海关信用导出', + type: '1', + }, + { + action: 'govPoliocy:govPolicy:remove', + describe: '删除', + type: '1', + }, + { + action: 'sys:announcement:edit', + describe: '修改', + type: '1', + }, + { + action: 'sys:code:edit', + describe: '修改', + type: '1', + }, + { + action: 'sys:code:setting', + describe: '编码配置', + type: '1', + }, + { + action: 'sys:code:rule:add', + describe: '规则新增', + type: '1', + }, + { + action: 'sys:code:edit:save', + describe: '规则保存', + type: '1', + }, + { + action: 'sys:dict:edit', + describe: '修改', + type: '1', + }, + { + action: 'sys:alert:edit', + describe: '修改', + type: '1', + }, + { + action: 'sys:user:edit', + describe: '修改', + type: '1', + }, + { + action: 'sys:role:edit', + describe: '修改', + type: '1', + }, + { + action: 'excel:model:bind', + describe: '绑定', + type: '1', + }, + { + action: 'sys:tenant:edit', + describe: '修改', + type: '1', + }, + { + action: 'basedata:lastestNews:remove', + describe: '删除', + type: '1', + }, + { + action: 'basedata:bdsite:export', + describe: '导出', + type: '1', + }, + { + action: 'basedata:companyInfo:customeCert:superQuery', + describe: '海关信用高级查询', + type: '1', + }, + { + action: 'govPoliocy:govPolicy:bulkOperations', + describe: '批量操作', + type: '1', + }, + { + action: 'sys:announcement:import', + describe: '导入', + type: '1', + }, + { + action: 'sys:dict:import', + describe: '导入', + type: '1', + }, + { + action: 'sys:user:export', + describe: '导入', + type: '1', + }, + { + action: 'sys:role:import', + describe: '导入', + type: '1', + }, + { + action: 'excel:model:down', + describe: '下载', + type: '1', + }, + { + action: 'sys:tenant:info', + describe: '详情', + type: '1', + }, + { + action: 'sys:announcement:export', + describe: '导出', + type: '1', + }, + { + action: 'sys:dict:export', + describe: '导出', + type: '1', + }, + { + action: 'sys:user:lock', + describe: '冻结&解冻', + type: '1', + }, + { + action: 'sys:role:perssion', + describe: '授权', + type: '1', + }, + { + action: 'basedata:bdsite:superQuery', + describe: '高级查询', + type: '1', + }, + { + action: 'basedata:companyInfo:customeCert:edit', + describe: '海关信用编辑', + type: '1', + }, + { + action: 'basedata:bdsite:remove', + describe: '删除', + type: '1', + }, + { + action: 'basedata:companyInfo:customeCert:detail', + describe: '海关信用详情', + type: '1', + }, + { + action: 'govPoliocy:govPolicy:add:govPolicy:save', + describe: '法律法规-保存', + type: '1', + }, + { + action: 'sys:announcement:operation', + describe: '发布&撤销', + type: '1', + }, + { + action: 'sys:dict:refresh', + describe: '刷新缓存', + type: '1', + }, + { + action: 'sys:role:export', + describe: '导出', + type: '1', + }, + { + action: 'basedata:companyInfo:customeCert:remove', + describe: '海关信用删除', + type: '1', + }, + { + action: 'govPoliocy:govPolicy:add:interpret:add', + describe: '文件解读-新增', + type: '1', + }, + { + action: 'sys:dict:lock:return', + describe: '回收站', + type: '1', + }, + { + action: 'sys:user:lock:reset', + describe: '解锁', + type: '1', + }, + { + action: 'basedata:companyInfo:attachment:add', + describe: '公司附件新增', + type: '1', + }, + { + action: 'govPoliocy:govPolicy:add:appendix:add', + describe: '新增-附件-新增', + type: '1', + }, + { + action: 'sys:dict:setting', + describe: '字典配置', + type: '1', + }, + { + action: 'sys:user:pwd', + describe: '密码&重置', + type: '1', + }, + { + action: 'sys:dict:item:edit', + describe: '数据编辑', + type: '1', + }, + { + action: 'sys:user:info', + describe: '详情', + type: '1', + }, + { + action: 'basedata:companyInfo:attachment:edit', + describe: '公司附件编辑', + type: '1', + }, + { + action: 'govPoliocy:govPolicy:add:appendix:save', + describe: '附件-保存', + type: '1', + }, + { + action: 'basedata:companyInfo:attachment:export', + describe: '公司附件导出', + type: '1', + }, + { + action: 'govPoliocy:govPolicy:add:appendix:edit', + describe: '附件-编辑', + type: '1', + }, + { + action: 'sys:dict:item:del', + describe: '数据删除', + type: '1', + }, + { + action: 'sys:user:agent', + describe: '代理人', + type: '1', + }, + { + action: 'basedata:companyInfo:attachment:clear', + describe: '公司附件清空', + type: '1', + }, + { + action: 'govPoliocy:govPolicy:add:appendix:detail', + describe: '附件-详情', + type: '1', + }, + { + action: 'govPoliocy:govPolicy:add:appendix:remove', + describe: '附件-删除', + type: '1', + }, + { + action: 'basedata:companyInfo:attachment:remove', + describe: '公司附件删除', + type: '1', + }, + { + action: 'govPoliocy:govPolicy:add:appendix:bulkOperations', + describe: '附件-批量操作', + type: '1', + }, + { + action: 'basedata:companyInfo:attachment:superQuery', + describe: '公司附件高级查询', + type: '1', + }, + ], + menu: [ + { + redirect: null, + path: '/dashboard/analysis', + component: 'dashboard/Analysis', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'home', + componentName: 'Analysis', + title: '首页', + }, + name: 'dashboard-analysis', + id: '9502685863ab87f0ad1134142788a385', + }, + { + redirect: null, + path: '/online', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/isystem/NewPermissionList', + component: 'system/NewPermissionList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'NewPermissionList', + title: '菜单配置管理', + }, + name: 'isystem-NewPermissionList', + id: '54dd5457a3190740005c1bfec55b1c34', + }, + { + path: '/online/cgreport', + component: 'modules/online/cgreport/OnlCgreportHeadList', + route: '1', + hidden: true, + meta: { + hideMenu: true, + keepAlive: true, + internalOrExternal: false, + componentName: 'OnlCgreportHeadList', + title: 'Online报表配置', + }, + name: 'online-cgreport', + id: '109c78a583d4693ce2f16551b7786786', + }, + { + path: '/generate/tableconfig/index', + component: 'generate/tableconfig/index', + route: '1', + hidden: true, + meta: { + hideMenu: true, + keepAlive: true, + internalOrExternal: false, + componentName: 'index', + title: '自定义表单开发', + }, + name: 'generate-tableconfig-index', + id: '1457943921803649025', + }, + { + path: '/isystem/fillRule', + component: 'system/SysFillRuleList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'SysFillRuleList', + title: '系统编码规则', + }, + name: 'isystem-fillRule', + id: '1192318987661234177', + }, + { + path: '/winlink/common/interface/list', + component: 'winlink/common/interface/CommonInterfaceList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'CommonInterfaceList', + title: '发布公共接口', + }, + name: 'winlink-common-interface-list', + id: '1458670621910876161', + }, + { + path: '/online/cgform', + component: 'modules/online/cgform/OnlCgformHeadList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'OnlCgformHeadList', + title: 'Online表单开发', + }, + name: 'online-cgform', + id: '8d4683aacaa997ab86b966b464360338', + }, + { + path: '/online/copyform/:code', + component: 'modules/online/cgform/OnlCgformCopyList', + route: '1', + hidden: true, + meta: { + hideMenu: true, + keepAlive: true, + internalOrExternal: false, + componentName: 'OnlCgformCopyList', + title: 'AUTO复制表单', + }, + name: 'online-copyform-@code', + id: 'f2849d3814fc97993bfc519ae6bbf049', + }, + { + path: '/isystem/checkRule', + component: 'system/SysCheckRuleList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'SysCheckRuleList', + title: '系统校验规则', + }, + name: 'isystem-checkRule', + id: '1224641973866467330', + }, + { + path: '/online/cgformErpList/:code', + component: 'modules/online/cgform/auto/erp/OnlCgformErpList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'OnlCgformErpList', + title: 'AUTO在线表单ERP', + }, + name: 'online-cgformErpList-@code', + id: '1229674163694841857', + }, + { + path: '/isystem/dataSource', + component: 'system/SysDataSourceList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'SysDataSourceList', + title: '多数据源管理', + }, + name: 'isystem-dataSource', + id: '1209731624921534465', + }, + { + path: '/online/cgformTabList/:code', + component: 'modules/online/cgform/auto/tab/OnlCgformTabList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'OnlCgformTabList', + title: 'AUTO在线表单TAB', + }, + name: 'online-cgformTabList-@code', + id: '1304032910990495745', + }, + { + path: '/online/cgformTreeList/:code', + component: 'modules/online/cgform/auto/OnlCgformTreeList', + route: '1', + hidden: true, + meta: { + hideMenu: true, + keepAlive: true, + internalOrExternal: false, + componentName: 'OnlCgformTreeList', + title: 'AUTO树表单列表', + }, + name: 'online-cgformTreeList-@code', + id: 'fba41089766888023411a978d13c0aa4', + }, + { + path: '/online/df/:table/:id', + component: 'modules/online/cgform/auto/OnlineDynamicForm', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'OnlineDynamicForm', + title: 'AUTO动态表单', + }, + name: 'online-df-@table-@id', + id: '22d6a3d39a59dd7ea9a30acfa6bfb0a5', + }, + { + path: '/online/cgformList/:code', + component: 'modules/online/cgform/auto/OnlCgformAutoList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'OnlCgformAutoList', + title: 'AUTO在线表单', + }, + name: 'online-cgformList-@code', + id: '54097c6a3cf50fad0793a34beff1efdf', + }, + { + path: '/online/cgreport/:code', + component: 'modules/online/cgreport/auto/OnlCgreportAutoList', + route: '1', + hidden: true, + meta: { + hideMenu: true, + keepAlive: true, + internalOrExternal: false, + componentName: 'onlineAutoList', + title: 'AUTO在线报表', + }, + name: 'onlineAutoList', + id: '9fe26464838de2ea5e90f2367e35efa0', + }, + { + path: '/online/cgformInnerTableList/:code', + component: 'modules/online/cgform/auto/innerTable/OnlCgformInnerTableList', + route: '1', + hidden: true, + meta: { + hideMenu: true, + keepAlive: true, + internalOrExternal: false, + componentName: 'OnlCgformInnerTableList', + title: 'AUTO在线内嵌子表', + }, + name: 'online-cgformInnerTableList-@code', + id: '1235823781053313025', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'cloud', + componentName: 'RouteView', + title: '在线开发', + }, + name: 'online', + id: 'e41b69c57a941a3bbcce45032fe57605', + }, + { + redirect: null, + path: '/excel', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/excel/ExcelCompModelList', + component: 'excel/ExcelCompModelList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'form', + componentName: 'ExcelCompModelList', + title: '导入模板', + }, + name: 'excel-ExcelCompModelList', + id: '1479343200492736513', + }, + { + path: '/excel/ExcelImportTaskList', + component: 'excel/ExcelImportTaskList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'download', + componentName: 'ExcelImportTaskList', + title: '导入队列', + }, + name: 'excel-ExcelImportTaskList', + id: '1478972404863827969', + }, + { + path: '/excel/ExcelExportTaskList', + component: 'excel/ExcelExportTaskList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'hdd', + componentName: 'ExcelExportTaskList', + title: '导出队列', + }, + name: 'excel-ExcelExportTaskList', + id: '1482992090928553985', + }, + { + path: '/task/common', + component: 'task/CommonTaskList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'border-bottom', + componentName: 'CommonTaskList', + title: '公共任务', + }, + name: 'task-common', + id: '1507200470647705602', + }, + { + path: '/taxation/TaxEstimateTaskList', + component: 'taxation/TaxEstimateTaskList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'property-safety', + componentName: 'TaxEstimateTaskList', + title: '税金任务', + }, + name: 'taxation-TaxEstimateTaskList', + id: '1563092923923574785', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'ant-design', + componentName: 'RouteView', + title: '数据管理', + }, + name: 'excel', + id: '1478972064353452033', + }, + { + redirect: null, + path: '/isystem', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/isystem/user', + component: 'system/UserList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'UserList', + title: '用户管理', + }, + name: 'isystem-user', + id: '3f915b2769fc80648e92d04e84ca059d', + }, + { + path: '/isystem/roleUserList', + component: 'system/RoleUserList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'RoleUserList', + title: '角色管理', + }, + name: 'isystem-roleUserList', + id: '190c2b43bec6a5f7a4194a85db67d96a', + }, + { + path: '/isystem/dict', + component: 'system/DictList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'DictList', + title: '数据字典', + }, + name: 'isystem-dict', + id: 'f1cb187abf927c88b89470d08615f5ac', + }, + { + path: '/isystem/annountCement', + component: 'system/SysAnnouncementList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'SysAnnouncementList', + title: '系统通告', + }, + name: 'isystem-annountCement', + id: 'e08cb190ef230d5d4f03824198773950', + }, + { + path: '/isys/tenant', + component: 'system/TenantList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'TenantList', + title: '企业管理', + }, + name: 'isys-tenant', + id: '1280350452934307841', + }, + { + path: '/sys/veiw/auth', + component: 'system/SysViewAuthList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'SysViewAuthList', + title: '视图列表', + }, + name: 'sys-veiw-auth', + id: '1836994792635121666', + }, + { + path: '/system/SysViewRoleList', + component: 'system/SysViewRoleList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'SysViewRoleList', + title: '视图角色', + }, + name: 'system-SysViewRoleList', + id: '1840288673850068993', + }, + { + path: '/isystem/companyConfig', + component: 'system/CompanyConfigList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'CompanyConfigList', + title: '系统配置', + }, + name: 'isystem-companyConfig', + id: '1470297915438419969', + }, + { + path: '/sys/api/perms', + component: 'system/SysApiPermsList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'SysApiPermsList', + title: '访问权限', + }, + name: 'sys-api-perms', + id: '1519547535679811586', + }, + { + path: '/sysbasedata/BaseAlert/BaseAlertList', + component: 'sysbasedata/BaseAlert/BaseAlertList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'BaseAlertList', + title: '预警设置', + }, + name: 'sysbasedata-BaseAlert-BaseAlertList', + id: '1504368273095405570', + }, + { + path: '/isystem/codeRule', + component: 'system/CodeRuleList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'CodeRuleList', + title: '编码设置', + }, + name: 'isystem-codeRule', + id: '1524288743953199105', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'setting', + componentName: 'RouteView', + title: '系统管理', + }, + name: 'isystem', + id: 'd7d6e2e4e2934f2c9385a623fd98c6f3', + }, + { + redirect: null, + path: '/sysbasedata', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/sysbasedata/latestnews/BdLatestNewsList', + component: 'sysbasedata/latestnews/BdLatestNewsList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'BdLatestNewsList', + title: '最新资讯', + }, + name: 'sysbasedata-latestnews-BdLatestNewsList', + id: '1460443085443547137', + }, + { + path: '/sysbasedata/BaseBdCertSite/BaseBdCertSiteList', + component: 'sysbasedata/BaseBdCertSite/BaseBdCertSiteList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'BaseBdCertSiteList', + title: '办理网站维护', + }, + name: 'sysbasedata-BaseBdCertSite-BaseBdCertSiteList', + id: '1460865356783648770', + }, + { + path: '/sysbasedata/BaseCompanyInfo/BaseCompanyInfoList', + component: 'sysbasedata/BaseCompanyInfo/BaseCompanyInfoList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'BaseCompanyInfoList', + title: '企业资料维护', + }, + name: 'sysbasedata-BaseCompanyInfo-BaseCompanyInfoList', + id: '1465152208843100161', + }, + { + path: '/sysbasedata/custombasedata/customsParameter', + component: 'sysbasedata/custombasedata/customsParameter', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'customsParameter', + title: '海关参数库', + }, + name: 'sysbasedata-custombasedata-customsParameter', + id: '1460154359417131009', + }, + { + path: '/sysbasedata/EnterpriseConfig/EnterpriseConfigList', + component: 'sysbasedata/EnterpriseConfig/EnterpriseConfigList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'EnterpriseConfigList', + title: '企业参数库', + }, + name: 'sysbasedata-EnterpriseConfig-EnterpriseConfigList', + id: '1465152339227234305', + }, + { + path: '/sysbasedata/BaseCountryConversion/BaseCountryConversionList', + component: 'sysbasedata/BaseCountryConversion/BaseCountryConversionList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'BaseCountryConversionList', + title: '国别参数转换配置', + }, + name: 'sysbasedata-BaseCountryConversion-BaseCountryConversionList', + id: '1673939162391691265', + }, + { + path: '/sysbasedata/BaseBdTradeTerm/BaseBdTradeTermList', + component: 'sysbasedata/BaseBdTradeTerm/BaseBdTradeTermList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'BaseBdTradeTermList', + title: '国际贸易术语', + }, + name: 'sysbasedata-BaseBdTradeTerm-BaseBdTradeTermList', + id: '1460865566557569026', + }, + { + path: '/sysbasedata/BaseBdLimitCountry/BaseBdLimitCountryList', + component: 'sysbasedata/BaseBdLimitCountry/BaseBdLimitCountryList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'BaseBdLimitCountryList', + title: '禁运和限制国家', + }, + name: 'sysbasedata-BaseBdLimitCountry-BaseBdLimitCountryList', + id: '1460865690235011074', + }, + { + path: '/sysbasedata/BaseBdInsurance/BaseBdInsuranceList', + component: 'sysbasedata/BaseBdInsurance/BaseBdInsuranceList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'BaseBdInsuranceList', + title: '运输保险设定', + }, + name: 'sysbasedata-BaseBdInsurance-BaseBdInsuranceList', + id: '1460865807402893313', + }, + { + path: '/sysbasedata/BaseBdTrafTime/BaseBdTrafTimeList', + component: 'sysbasedata/BaseBdTrafTime/BaseBdTrafTimeList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'BaseBdTrafTimeList', + title: '运输时间设定', + }, + name: 'sysbasedata-BaseBdTrafTime-BaseBdTrafTimeList', + id: '1460865916534489089', + }, + { + path: '/sysbasedata/BdAlertConfig/BaseBdAlertConfigList', + component: 'sysbasedata/BdAlertConfig/BaseBdAlertConfigList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'BaseBdAlertConfigList', + title: '报关预警设置', + }, + name: 'sysbasedata-BdAlertConfig-BaseBdAlertConfigList', + id: '1460866004426129409', + }, + { + path: '/sysbasedata/EntryKeeper/BaseBaCustodianConfigList', + component: 'sysbasedata/EntryKeeper/BaseBaCustodianConfigList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'BaseBaCustodianConfigList', + title: '单证保管人设置', + }, + name: 'sysbasedata-EntryKeeper-BaseBaCustodianConfigList', + id: '1460866109577330689', + }, + { + path: '/sysbasedata/eportcard/BaseBdEportCardList', + component: 'sysbasedata/eportcard/BaseBdEportCardList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'BaseBdEportCardList', + title: '电子口岸卡管理', + }, + name: 'sysbasedata-eportcard-BaseBdEportCardList', + id: '1461600089071439874', + }, + { + path: '/sysbasedata/exgVersion/BaseExgVersionList', + component: 'sysbasedata/exgVersion/BaseExgVersionList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'BaseExgVersionList', + title: '单耗版本号设定', + }, + name: 'sysbasedata-exgVersion-BaseExgVersionList', + id: '1463063704063451137', + }, + { + path: '/sysbasedata/BaseDocFileConfig/BaseDocFileConfigList', + component: 'sysbasedata/BaseDocFileConfig/BaseDocFileConfigList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'BaseDocFileConfigList', + title: '单证存档配置', + }, + name: 'sysbasedata-BaseDocFileConfig-BaseDocFileConfigList', + id: '1519135247500914690', + }, + { + path: '/sysbasedata/TradeManagement/tradeManagementTabs', + component: 'sysbasedata/TradeManagement/tradeManagementTabs', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'tradeManagementTabs', + title: '贸管参数库', + }, + name: 'sysbasedata-TradeManagement-tradeManagementTabs', + id: '1865963217926369282', + }, + { + path: '/base/BaseBusinessConfigList', + component: 'base/BaseBusinessConfigList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'reconciliation', + componentName: 'BaseBusinessConfigList', + title: '业务配置', + }, + name: 'base-BaseBusinessConfigList', + id: '1868935348919443458', + }, + { + path: '/sysbasedata/BaseContractManagement/BaseContractManagementList', + component: 'sysbasedata/BaseContractManagement/BaseContractManagementList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'BaseContractManagementList', + title: '合同管理', + }, + name: 'sysbasedata-BaseContractManagement-BaseContractManagementList', + id: '1869197745512890369', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'database', + componentName: 'RouteView', + title: '基础数据', + }, + name: 'sysbasedata', + id: '1460154080479137793', + }, + { + redirect: null, + path: '/exportTaxRebate', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/exportTaxRebate/taxClassification/TaxClassificationList', + component: 'exportTaxRebate/taxClassification/TaxClassificationList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'TaxClassificationList', + title: '税收分类', + }, + name: 'exportTaxRebate-taxClassification-TaxClassificationList', + id: '1871422608926523394', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'audit', + componentName: 'RouteView', + title: '出口退税', + }, + name: 'exportTaxRebate', + id: '1871403947911131138', + }, + { + redirect: null, + path: '/GovPoliocy', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/policy/BaseBdGovPolicyList', + component: 'policy/BaseBdGovPolicyList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'BaseBdGovPolicyList', + title: '法律法规', + }, + name: 'policy-BaseBdGovPolicyList', + id: '1480404753374236673', + }, + { + path: '/policy/BaseBdGovManagementProcessList', + component: 'policy/BaseBdGovManagementProcessList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'BaseBdGovManagementProcessList', + title: '管理流程', + }, + name: 'policy-BaseBdGovManagementProcessList', + id: '1481505504485847041', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'setting', + componentName: 'RouteView', + title: '政策管理', + }, + name: 'GovPoliocy', + id: '1480401991454343169', + }, + { + redirect: null, + path: '/interface', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/interface/FileLogList', + component: 'interface/FileLogList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'hdd', + componentName: 'FileLogList', + title: 'MSG UPLOAD', + }, + name: 'interface-FileLogList', + id: '1467670086028517378', + }, + { + path: '/interface/MessageList', + component: 'interface/MessageList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'mail', + componentName: 'MessageList', + title: 'MSG PARSE', + }, + name: 'interface-MessageList', + id: '1463071868843089921', + }, + { + path: '/interface/secretConfig', + component: 'interface/InteSecretConfigList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'InteSecretConfigList', + title: '接口秘钥', + }, + name: 'interface-secretConfig', + id: '1865969546331078658', + }, + { + path: '/interface/InteAsnPackingListList', + component: 'interface/InteAsnPackingListList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'InteAsnPackingListList', + title: '进口ASN接口管理', + }, + name: 'interface-InteAsnPackingListList', + id: '1877234700151238658', + }, + { + path: '/interface/VehicleDeliveryOrderList', + component: 'interface/VehicleDeliveryOrderList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'VehicleDeliveryOrderList', + title: '出口整车订单\t', + }, + name: 'interface-VehicleDeliveryOrderList', + id: '1867014044434726914', + }, + { + path: '/interface/VehicleInvoiceList', + component: 'interface/VehicleInvoiceList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'VehicleInvoiceList', + title: '整车出口形式发票', + }, + name: 'interface-VehicleInvoiceList', + id: '1867025189615808514', + }, + { + path: '/interface/ImportComponentList', + component: 'interface/ImportComponentList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'ImportComponentList', + title: 'CPS备件进口', + }, + name: 'interface-ImportComponentList', + id: '1867055425589944321', + }, + { + path: '/interface/ExportComponentHeadList', + component: 'interface/ExportComponentHeadList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'ExportComponentHeadList', + title: 'CPS备件出口', + }, + name: 'interface-ExportComponentHeadList', + id: '1867055722815102977', + }, + { + path: '/interface/EntryInvoiceList', + component: 'interface/EntryInvoiceList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'EntryInvoiceList', + title: '财务开票', + }, + name: 'interface-EntryInvoiceList', + id: '1876467588288131073', + }, + { + path: '/interface/InteDataMerger', + component: 'interface/InteMergerDataList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'audit', + componentName: 'InteMergerDataList', + title: '数据归档', + }, + name: 'interface-InteDataMerger', + id: '1648520171578630146', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'windows', + componentName: 'RouteView', + title: '接口数据', + }, + name: 'interface', + id: '1463071560263950338', + }, + { + redirect: null, + path: '/interface/app', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/interface/VehicleDeliveryOrderAppList', + component: 'interface/VehicleDeliveryOrderAppList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'caret-right', + componentName: 'VehicleDeliveryOrderAppList', + title: '出口整车发票', + }, + name: 'interface-VehicleDeliveryOrderAppList', + id: '1869279458590076929', + }, + { + path: '/interface/MessageReceiptList', + component: 'interface/MessageReceiptList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'box-plot', + componentName: 'MessageReceiptList', + title: '报文回传', + }, + name: 'interface-MessageReceiptList', + id: '1481893175848689666', + }, + ], + meta: { + keepAlive: false, + internalOrExternal: false, + icon: 'appstore', + componentName: 'RouteView', + title: '接口应用', + }, + name: 'interface-app', + id: '1871793426887249921', + }, + { + redirect: null, + path: '/billing', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/billing/BillingAddressConfigList', + component: 'billing/BillingAddressConfigList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'BillingAddressConfigList', + title: '地址库配置', + }, + name: 'billing-BillingAddressConfigList', + id: '1868529700787359746', + }, + { + path: '/billing/BillingLineConfigList', + component: 'billing/BillingLineConfigList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'bars', + componentName: 'BillingLineConfigList', + title: '线路配置', + }, + name: 'billing-BillingLineConfigList', + id: '1868539855197343746', + }, + { + path: '/billing/BillingVehicleConfigList', + component: 'billing/BillingVehicleConfigList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'BillingVehicleConfigList', + title: '车型维护', + }, + name: 'billing-BillingVehicleConfigList', + id: '1868835484470370306', + }, + { + path: '/billing/BillingCostList', + component: 'billing/BillingCostList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'BillingCostList', + title: '费用名称', + }, + name: 'billing-BillingCostList', + id: '1868853146449633281', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'money-collect', + componentName: 'RouteView', + title: '计费相关', + }, + name: 'billing', + id: '1868502058814050306', + }, + { + redirect: null, + path: '/ierelated', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/ierelated/ExVendorPartnoComparisonList', + component: 'ierelated/ExVendorPartnoComparisonList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'upload', + componentName: 'ExVendorPartnoComparisonList', + title: '供应商料号对照表', + }, + name: 'ierelated-ExVendorPartnoComparisonList', + id: '1868858605155020802', + }, + { + path: '/ierelated/ExportForecastOrdersList', + component: 'ierelated/ExportForecastOrdersList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'ExportForecastOrdersList', + title: '出口预测订单', + }, + name: 'ierelated-ExportForecastOrdersList', + id: '1881153666106474497', + }, + { + path: '/ierelated/ExportConfirmationOrderList', + component: 'ierelated/ExportConfirmationOrderList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'ExportConfirmationOrderList', + title: '出口确定订单', + }, + name: 'ierelated-ExportConfirmationOrderList', + id: '1881506249706774530', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'menu-unfold', + componentName: 'RouteView', + title: '出口清单', + }, + name: 'ierelated', + id: '1868858131118977026', + }, + { + redirect: null, + path: '/partner', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/partner/partnerInfo/partnerInfoList', + component: 'partner/partnerInfo/PartnerInfosList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'PartnerInfosList', + title: '综合信息', + }, + name: 'partner-partnerInfo-partnerInfoList', + id: '1456149425910546433', + }, + { + path: '/partner/PartnerLiaison/PartnerLiaisonList', + component: 'partner/PartnerLiaison/PartnerLiaisonList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'PartnerLiaisonList', + title: '联系人信息', + }, + name: 'partner-PartnerLiaison-PartnerLiaisonList', + id: '1465232605198958594', + }, + { + path: '/partner/kpi/PartnerMonthlyAssessmentList', + component: 'partner/monthlyAssessment/PartnerMonthlyAssessmentList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'PartnerMonthlyAssessmentList', + title: '月度KPI考核管理', + }, + name: 'partner-kpi-PartnerMonthlyAssessmentList', + id: '1674321207534030850', + }, + { + path: '/partner/kpi/PartnerYearAssessmentList', + component: 'partner/yearAssessment/PartnerYearAssessmentList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'PartnerYearAssessmentList', + title: '年度KPI考核管理', + }, + name: 'partner-kpi-PartnerYearAssessmentList', + id: '1675797262816034818', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'team', + componentName: 'RouteView', + title: '商业伙伴', + }, + name: 'partner', + id: '1456145523823706113', + }, + { + redirect: null, + path: '/cert', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/cert/MergerCiqConfigList', + component: 'merger/mergerconfig/MergerCiqConfigList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'MergerCiqConfigList', + title: 'CIQ编码配置', + }, + name: 'cert-MergerCiqConfigList', + id: '1599686934894530562', + }, + { + path: '/cert/LegalCheckInformationList', + component: 'cert/LegalCheckInformationList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'LegalCheckInformationList', + title: '法检信息配置', + }, + name: 'cert-LegalCheckInformationList', + id: '1599944719091671041', + }, + { + path: '/cert/CertTypeList', + component: 'cert/CertTypeList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'CertTypeList', + title: '证书配置', + }, + name: 'cert-CertTypeList', + id: '1554018638501523458', + }, + { + path: '/cert/CertDataHeadList', + component: 'cert/CertDataHeadList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'CertDataHeadList', + title: '证书维护', + }, + name: 'cert-CertDataHeadList', + id: '1593160838519836673', + }, + { + path: '/cert/LvCertDataList', + component: 'cert/LvCertDataList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'LvCertDataList', + title: '证书明细', + }, + name: 'cert-LvCertDataList', + id: '1686247651046617090', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'RouteView', + title: '证书管理', + }, + name: 'cert', + id: '1554017779482898433', + }, + { + redirect: null, + path: '/merger', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/merger/mergerconfig/MergerPrimaryConfigList', + component: 'merger/mergerconfig/MergerPrimaryConfigList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'MergerPrimaryConfigList', + title: '主键配置', + }, + name: 'merger-mergerconfig-MergerPrimaryConfigList', + id: '1483424190022934530', + }, + { + path: '/merger/mergerconfig/MergerElementConfigList', + component: 'merger/mergerconfig/MergerElementConfigList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'MergerElementConfigList', + title: '申报要素配置', + }, + name: 'merger-mergerconfig-MergerElementConfigList', + id: '1478569045778870273', + }, + { + path: '/merger/mergerapply/ResearchMergerSetup', + component: 'merger/mergerapply/ResearchMergerSetup', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'ResearchMergerSetup', + title: '研发分类要素配置', + }, + name: 'merger-mergerapply-ResearchMergerSetup', + id: '1943144031436840961', + }, + { + path: '/merger/mergerapply/LegalPersonOrg', + component: 'merger/mergerapply/LegalPersonOrg', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'LegalPersonOrg', + title: '法人组织配置', + }, + name: 'merger-mergerapply-LegalPersonOrg', + id: '1943486248617713665', + }, + { + path: '/merger/mergerapply/MergerAssign', + component: 'merger/mergerapply/MergerAssign', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'MergerAssign', + title: '归类指派配置', + }, + name: 'merger-mergerapply-MergerAssign', + id: '1943130447352885249', + }, + { + path: '/merger/mergerapply/MergerTimeValidity', + component: 'merger/mergerapply/MergerTimeValidity', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'MergerTimeValidity', + title: '归类时效配置', + }, + name: 'merger-mergerapply-MergerTimeValidity', + id: '1943131442090799105', + }, + { + path: '/merger/mergerapply/MergerReqs', + component: 'merger/mergerapply/MergerReqs', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'MergerReqs', + title: '归类需求申请', + }, + name: 'merger-mergerapply-MergerReqs', + id: '1944959552148058114', + }, + { + path: '/merger/mergerapply/MergerReqsLv', + component: 'merger/mergerapply/MergerReqsLv', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'MergerReqsLv', + title: '归类需求申请报表', + }, + name: 'merger-mergerapply-MergerReqsLv', + id: '1946396727037251586', + }, + { + path: '/merger/mergerapply/MaterialMaster', + component: 'merger/mergerapply/MaterialMaster', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'MaterialMaster', + title: '物料主数据', + }, + name: 'merger-mergerapply-MaterialMaster', + id: '1947526356892504065', + }, + { + path: '/merger/mergerapply/MergerApplyPreList', + component: 'merger/mergerapply/MergerApplyPreList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'MergerApplyPreList', + title: '预归类建议', + }, + name: 'merger-mergerapply-MergerApplyPreList', + id: '1874012803957952514', + }, + { + path: '/merger/mergerapply/WaitMergerList', + component: 'merger/mergerapply/WaitMergerList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'WaitMergerList', + title: '归类申请', + }, + name: 'merger-mergerapply-WaitMergerList', + id: '1539067672639602690', + }, + { + path: '/merger/mergerapply/CommonMergerList', + component: 'merger/mergerapply/CommonMergerList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'CommonMergerList', + title: '商品归类', + }, + name: 'merger-mergerapply-CommonMergerList', + id: '1539067979545214978', + }, + { + path: '/merger/mergerapply/AuditMergerList', + component: 'merger/mergerapply/AuditMergerList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'AuditMergerList', + title: '归类审核', + }, + name: 'merger-mergerapply-AuditMergerList', + id: '1539068073682173953', + }, + { + path: '/merger/mergerapply/MergerQueryList', + component: 'merger/mergerapply/MergerQueryList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'MergerQueryList', + title: '归类查询', + }, + name: 'merger-mergerapply-MergerQueryList', + id: '1539068150207250433', + }, + { + path: '/merger/mergerapply/MergeredList', + component: 'merger/mergerapply/MergeredList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'MergeredList', + title: '已归类', + }, + name: 'merger-mergerapply-MergeredList', + id: '1539068231312506882', + }, + { + path: '/merger/mergerapply/mergerApplyPreWarning', + component: 'merger/mergerapply/mergerApplyPreWarning', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'mergerApplyPreWarning', + title: '建议书预警', + }, + name: 'merger-mergerapply-mergerApplyPreWarning', + id: '1869621820794077186', + }, + { + path: '/merger/mergerapply/MergerDataWarning', + component: 'merger/mergerapply/MergerDataWarningList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'MergerDataWarningList', + title: '商编预警', + }, + name: 'merger-mergerapply-MergerDataWarning', + id: '1513463163940089857', + }, + { + path: '/merger/mergerapply/MergerEarlyWarningList', + component: 'merger/mergerapply/MergerEarlyWarningList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'exception', + componentName: 'MergerEarlyWarningList', + title: '归类预警', + }, + name: 'merger-mergerapply-MergerEarlyWarningList', + id: '1871826446170877954', + }, + { + path: '/merger/accessoryPackageManagement/MergerAccessoryPackageList', + component: 'merger/accessoryPackageManagement/MergerAccessoryPackageList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'MergerAccessoryPackageList', + title: '配件包管理', + }, + name: 'merger-accessoryPackageManagement-MergerAccessoryPackageList', + id: '1797438795131232257', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'database', + componentName: 'RouteView', + title: '归类管理', + }, + name: 'merger', + id: '1461928374049542145', + }, + { + redirect: null, + path: '/record', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/record/qualApply/qualApplyCurView', + component: 'record/qualApply/qualApplyCurView', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'qualApplyCurView', + title: '账册资质申请', + }, + name: 'record-qualApply-qualApplyCurView', + id: '1470597292721008642', + }, + { + path: '/record/qualApply/qualApplyPreView', + component: 'record/qualApply/qualApplyPreView', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'qualApplyPreView', + title: '账册资质变更', + }, + name: 'record-qualApply-qualApplyPreView', + id: '1470597736579035137', + }, + { + path: '/record/ems/emsListCur', + component: 'record/ems/emsListCur', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'emsListCur', + title: '加贸账册备案', + }, + name: 'record-ems-emsListCur', + id: '1461597405698449410', + }, + { + path: '/record/ems/emsListPre', + component: 'record/ems/emsListPre', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'emsListPre', + title: '加贸账册变更', + }, + name: 'record-ems-emsListPre', + id: '1462608147834855426', + }, + { + path: '/record/ems/emsListBwlCur', + component: 'record/ems/emsListBwlCur', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'emsListBwlCur', + title: '物流账册备案', + }, + name: 'record-ems-emsListBwlCur', + id: '1462613914243686402', + }, + { + path: '/record/ems/emsListBwlPre', + component: 'record/ems/emsListBwlPre', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'emsListBwlPre', + title: '物流账册变更', + }, + name: 'record-ems-emsListBwlPre', + id: '1462616369773776898', + }, + { + path: '/record/bwlPre/surplusView', + component: 'record/bwlPre/surplusView', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'surplusView', + title: '物流账册余量', + }, + name: 'record-bwlPre-surplusView', + id: '1462616597960691713', + }, + { + path: '/record/bwlPre/lsSurplusView', + component: 'record/bwlPre/lsSurplusView', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'lsSurplusView', + title: '物流账册库存统计', + }, + name: 'record-bwlPre-lsSurplusView', + id: '1704014228244062209', + }, + { + path: '/record/bwlPre', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/record/bwlPre/DeviceSupplurDataSList', + component: 'record/bwlPre/DeviceSupplurDataSList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'DeviceSupplurDataSList', + title: '序号级余量', + }, + name: 'record-bwlPre-DeviceSupplurDataSList', + id: '1564484744332775426', + }, + { + path: '/record/bwlPre/DeviceSupplurDataCopList', + component: 'record/bwlPre/DeviceSupplurDataCopList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'DeviceSupplurDataCopList', + title: '企业料号级余量', + }, + name: 'record-bwlPre-DeviceSupplurDataCopList', + id: '1564484987455606786', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'RouteView', + title: '物流账册余量(新)', + }, + name: 'record-bwlPre', + id: '1564463045214277633', + }, + { + path: '/record/SapGranularity/RecordSapGranularityList/:type', + component: 'record/SapGranularity/RecordSapGranularityList', + route: '1', + hidden: true, + meta: { + hideMenu: true, + keepAlive: true, + internalOrExternal: false, + componentName: 'RecordSapGranularityList', + title: '颗粒度管理', + }, + name: 'record-SapGranularity-RecordSapGranularityList-@type', + id: '1464478958896041986', + }, + { + path: '/record/SapGranularity/RecordSapGranularityListI/', + component: 'record/SapGranularity/RecordSapGranularityListI', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'RecordSapGranularityListI', + title: '料件颗粒度', + }, + name: 'record-SapGranularity-RecordSapGranularityListI-', + id: '1476088287884517377', + }, + { + path: '/record/SapGranularity/RecordSapGranularityListE/', + component: 'record/SapGranularity/RecordSapGranularityListE', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'RecordSapGranularityListE', + title: '成品颗粒度', + }, + name: 'record-SapGranularity-RecordSapGranularityListE-', + id: '1476089249403543554', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'edit', + componentName: 'RouteView', + title: '备案管理', + }, + name: 'record', + id: '1461587712406052866', + }, + { + redirect: null, + path: '/history', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/history/HistoryTaxDetailsList', + component: 'history/HistoryTaxDetailsList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'profile', + componentName: 'HistoryTaxDetailsList', + title: '关单税款明细', + }, + name: 'history-HistoryTaxDetailsList', + id: '1866055217444626433', + }, + { + path: '/history/HistoryTaxSummaryList', + component: 'history/HistoryTaxSummaryList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'project', + componentName: 'HistoryTaxSummaryList', + title: '关单税款汇总', + }, + name: 'history-HistoryTaxSummaryList', + id: '1866290264617627650', + }, + { + path: '/history/HistoryInvoiceCustomsDeclarationList', + component: 'history/HistoryInvoiceCustomsDeclarationList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'calendar', + componentName: 'HistoryInvoiceCustomsDeclarationList', + title: '发票报关明细', + }, + name: 'history-HistoryInvoiceCustomsDeclarationList', + id: '1866290854424850434', + }, + { + path: '/history/HistoryCustomsDeclarationList', + component: 'history/HistoryCustomsDeclarationList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'HistoryCustomsDeclarationList', + title: '报关申报明细', + }, + name: 'history-HistoryCustomsDeclarationList', + id: '1866731046352773122', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'bars', + componentName: 'RouteView', + title: '历史数据', + }, + name: 'history', + id: '1866052075063668737', + }, + { + redirect: null, + path: '/Ibill', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/bill/BillTemplateListI', + component: 'bill/BillTemplateListI', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'BillTemplateListI', + title: '进口清单模板', + }, + name: 'bill-BillTemplateListI', + id: '1483714414735822849', + }, + { + path: '/bill/BillDataList/importIZ', + component: 'bill/BillDataListIZ', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'BillDataListIZ', + title: '进口征税清单', + }, + name: 'bill-BillDataList-importIZ', + id: '1461980746868297730', + }, + { + path: '/bill/BillDataList/importIB', + component: 'bill/BillDataListIB', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'BillDataListIB', + title: '进口保税清单', + }, + name: 'bill-BillDataList-importIB', + id: '1467697008063664130', + }, + { + path: '/bill/BillDataListIBJM', + component: 'bill/BillDataListIBJM', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'BillDataListIBJM', + title: '进口保税清单(加贸)', + }, + name: 'bill-BillDataListIBJM', + id: '1539076918416539650', + }, + { + path: '/bill/BillDataListIBWL', + component: 'bill/BillDataListIBWL', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'BillDataListIBWL', + title: '进口保税清单(物流)', + }, + name: 'bill-BillDataListIBWL', + id: '1539077836855869441', + }, + { + path: '/bill/BillEntryReviewListI', + component: 'bill/BillEntryReviewListI', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'BillEntryReviewListI', + title: '进口报关复核', + }, + name: 'bill-BillEntryReviewListI', + id: '1511892411603283969', + }, + { + path: '/entry/EntryDataListI', + component: 'entry/EntryDataListI', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'EntryDataListI', + title: '进口草单查询', + }, + name: 'entry-EntryDataListI', + id: '1499328328918519810', + }, + { + path: '/bill/BillTidyListI', + component: 'bill/BillTidyListI', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'BillTidyListI', + title: '进口核注理单', + }, + name: 'bill-BillTidyListI', + id: '1498219927712620545', + }, + { + path: '/bill/BillCompareListI', + component: 'bill/BillCompareListI', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'BillCompareListI', + title: '进口核注清单比对', + }, + name: 'bill-BillCompareListI', + id: '1502157230512345090', + }, + { + path: '/entry/EntryTidyListI', + component: 'entry/EntryTidyListI', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'EntryTidyListI', + title: '进口报关单理单', + }, + name: 'entry-EntryTidyListI', + id: '1499283235618234370', + }, + { + path: '/entry/EntryCompareListI', + component: 'entry/EntryCompareListI', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'EntryCompareListI', + title: '进口报关单比对', + }, + name: 'entry-EntryCompareListI', + id: '1502935362886471682', + }, + { + path: '/bill/LvBilITrackListI', + component: 'bill/LvBilITrackListI', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'LvBilITrackListI', + title: '进口单货跟踪', + }, + name: 'bill-LvBilITrackListI', + id: '1797896739379490818', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'download', + componentName: 'RouteView', + title: '进口管理', + }, + name: 'Ibill', + id: '1461976160979881985', + }, + { + redirect: null, + path: '/Ebill', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/bill/BillTemplateListE', + component: 'bill/BillTemplateListE', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'BillTemplateListE', + title: '出口清单模板', + }, + name: 'bill-BillTemplateListE', + id: '1483714706739073025', + }, + { + path: '/bill/BillDataList/importEZ', + component: 'bill/BillDataListEZ', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'BillDataListEZ', + title: '出口征税清单', + }, + name: 'bill-BillDataList-importEZ', + id: '1467667273426276353', + }, + { + path: '/bill/BillDataList/importEB', + component: 'bill/BillDataListEB', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'BillDataListEB', + title: '出口保税清单', + }, + name: 'bill-BillDataList-importEB', + id: '1467700190512771074', + }, + { + path: '/bill/BillDataListEBJM', + component: 'bill/BillDataListEBJM', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'BillDataListEBJM', + title: '出口保税清单(加贸)', + }, + name: 'bill-BillDataListEBJM', + id: '1539077972281556993', + }, + { + path: '/bill/BillDataListEBWL', + component: 'bill/BillDataListEBWL', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'BillDataListEBWL', + title: '出口保税清单(物流)', + }, + name: 'bill-BillDataListEBWL', + id: '1539078068771520513', + }, + { + path: '/bill/BillEntryReviewListE', + component: 'bill/BillEntryReviewListE', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'BillEntryReviewListE', + title: '出口报关复核', + }, + name: 'bill-BillEntryReviewListE', + id: '1511892089468153858', + }, + { + path: '/entry/EntryDataListE', + component: 'entry/EntryDataListE', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'EntryDataListE', + title: '出口草单查询', + }, + name: 'entry-EntryDataListE', + id: '1499328080213069825', + }, + { + path: '/bill/BillTidyListE', + component: 'bill/BillTidyListE', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'BillTidyListE', + title: '出口核注理单', + }, + name: 'bill-BillTidyListE', + id: '1498934899501494274', + }, + { + path: '/bill/BillCompareListE', + component: 'bill/BillCompareListE', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'BillCompareListE', + title: '出口核注清单比对', + }, + name: 'bill-BillCompareListE', + id: '1502158126398902274', + }, + { + path: '/entry/EntryTidyListE', + component: 'entry/EntryTidyListE', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'EntryTidyListE', + title: '出口报关单理单', + }, + name: 'entry-EntryTidyListE', + id: '1499283464761450498', + }, + { + path: '/entry/EntryCompareListE', + component: 'entry/EntryCompareListE', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'EntryCompareListE', + title: '出口报关单比对', + }, + name: 'entry-EntryCompareListE', + id: '1502935710409723906', + }, + { + path: '/bill/LvBilITrackListE', + component: 'bill/LvBilITrackListE', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'LvBilITrackListE', + title: '出口单货跟踪', + }, + name: 'bill-LvBilITrackListE', + id: '1797896973157412865', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'upload', + componentName: 'RouteView', + title: '出口管理', + }, + name: 'Ebill', + id: '1467666350092193794', + }, + { + redirect: null, + path: '/passport', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/passport/passportDataList/:IEFlag', + component: 'passport/passportDataList', + route: '1', + hidden: true, + meta: { + hideMenu: true, + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'passportDataList', + title: '核放单管理', + }, + name: 'passport-passportDataList-@IEFlag', + id: '1528670069507854338', + }, + { + path: '/passport/passportDataListI', + component: 'passport/passportDataListI', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'passportDataListI', + title: '进口核放单', + }, + name: 'passport-passportDataListI', + id: '1528669752590438401', + }, + { + path: '/passport/passportDataListE', + component: 'passport/passportDataListE', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'file-text', + componentName: 'passportDataListE', + title: '出口核放单', + }, + name: 'passport-passportDataListE', + id: '1528670350152929282', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'database', + componentName: 'RouteView', + title: '核放单', + }, + name: 'passport', + id: '1528668747681337345', + }, + { + redirect: null, + path: '/demo', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/demo/BizPlanView', + component: 'demo/BizPlanView', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'BizPlanView', + title: '业务计划', + }, + name: 'demo-BizPlanView', + id: '1776802605684322306', + }, + { + path: '/demo/BizManageView', + component: 'demo/BizManageView', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'BizManageView', + title: '业务管理', + }, + name: 'demo-BizManageView', + id: '1776811533012660226', + }, + { + path: '/demo/transportation/sea', + component: 'demo/transportation/SeaTransList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'SeaTransList', + title: '海运订舱', + }, + name: 'demo-transportation-sea', + id: '1777237375486947329', + }, + { + path: '/demo/transportation/air', + component: 'demo/transportation/AirTransList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'AirTransList', + title: '空运订舱', + }, + name: 'demo-transportation-air', + id: '1777237106187464705', + }, + { + path: '/demo/transportation/trans', + component: 'demo/transportation/TransList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'TransList', + title: '陆运需求', + }, + name: 'demo-transportation-trans', + id: '1777175002663313410', + }, + { + path: '/demo/transportation/car', + component: 'demo/transportation/TransConfimeList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'TransConfimeList', + title: '订车确认', + }, + name: 'demo-transportation-car', + id: '1777175269777563649', + }, + { + path: '/demo/transportation/task', + component: 'demo/transportation/TransTaskList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'TransTaskList', + title: '陆运任务', + }, + name: 'demo-transportation-task', + id: '1777175461708914689', + }, + { + path: '/demo/transportation/logisticsTracking', + component: 'demo/transportation/logisticsTracking', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'logisticsTracking', + title: '在途跟踪', + }, + name: 'demo-transportation-logisticsTracking', + id: '1796735740798664706', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'project', + componentName: 'RouteView', + title: '物流管理', + }, + name: 'demo', + id: '1776802020360810498', + }, + { + redirect: null, + path: '/specialArea', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/specialArea/SasBizApplyHeadList', + component: 'specialArea/SasBizApplyHeadList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'SasBizApplyHeadList', + title: '业务申报表', + }, + name: 'specialArea-SasBizApplyHeadList', + id: '1620716441365442562', + }, + { + path: '/specialArea/SasProhibitReportList', + component: 'specialArea/SasProhibitReportList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'SasProhibitReportList', + title: '限制集报清单', + }, + name: 'specialArea-SasProhibitReportList', + id: '1626049400045903873', + }, + { + path: '/specialArea/SasFilingRecordList', + component: 'specialArea/SasFilingRecordList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'SasFilingRecordList', + title: '待备案料件清单', + }, + name: 'specialArea-SasFilingRecordList', + id: '1626429725393588226', + }, + { + path: '/specialArea/LvSasStockList', + component: 'specialArea/LvSasStockList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'LvSasStockList', + title: '出入库单', + }, + name: 'specialArea-LvSasStockList', + id: '1621434434735108097', + }, + { + path: '/specialArea/LvSasStockDetailList', + component: 'specialArea/LvSasStockDetailList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'LvSasStockDetailList', + title: '出入库单明细', + }, + name: 'specialArea-LvSasStockDetailList', + id: '1668881972551233537', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'copy', + componentName: 'RouteView', + title: '特殊区域', + }, + name: 'specialArea', + id: '1620257806113918978', + }, + { + redirect: null, + path: '/rmft', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/rmft/rmftAdvanceList', + component: 'rmft/rmftAdvanceList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'rmftAdvanceList', + title: '预配舱单申请', + }, + name: 'rmft-rmftAdvanceList', + id: '1514466323549405186', + }, + { + path: '/rmft/rmftManifestList', + component: 'rmft/rmftManifestList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'rmftManifestList', + title: '原始舱单申请', + }, + name: 'rmft-rmftManifestList', + id: '1526068407776436225', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'database', + componentName: 'RouteView', + title: '公路舱单', + }, + name: 'rmft', + id: '1514464552265465858', + }, + { + redirect: null, + path: '/taxation', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/taxation/TaxGuaranteeList', + component: 'taxation/TaxGuaranteeList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'TaxGuaranteeList', + title: '税金保函登记', + }, + name: 'taxation-TaxGuaranteeList', + id: '1496732479747584001', + }, + { + path: '/taxation/LvTaxEstimateList', + component: 'taxation/LvTaxEstimateList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'LvTaxEstimateList', + title: '预估税金', + }, + name: 'taxation-LvTaxEstimateList', + id: '1498574802433425409', + }, + { + path: '/taxation/TaxEntryBillList', + component: 'taxation/TaxEntryBillList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'TaxEntryBillList', + title: '料号级税金明细', + }, + name: 'taxation-TaxEntryBillList', + id: '1498543421829464065', + }, + { + path: '/taxation/OfficialTaxList', + component: 'taxation/OfficialTaxList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'OfficialTaxList', + title: '税金理单', + }, + name: 'taxation-OfficialTaxList', + id: '1498580236745637889', + }, + { + path: '/taxation/LvTaxPaymentReportList', + component: 'taxation/LvTaxPaymentReportList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'LvTaxPaymentReportList', + title: '税金支付报表', + }, + name: 'taxation-LvTaxPaymentReportList', + id: '1527203615438290946', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'pay-circle', + componentName: 'RouteView', + title: '税金管理', + }, + name: 'taxation', + id: '1496720317566218242', + }, + { + redirect: null, + path: '/bom', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/bom/BomFullList', + component: 'bom/BomFullList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'BomFullList', + title: '企业BOM', + }, + name: 'bom-BomFullList', + id: '1494517064658485249', + }, + { + path: '/bom/BomExgList', + component: 'bom/BomExgList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'BomExgList', + title: '成品BOM', + }, + name: 'bom-BomExgList', + id: '1494517677366607874', + }, + { + path: '/bom/BomDcrList', + component: 'bom/BomDcrList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'BomDcrList', + title: '核销BOM', + }, + name: 'bom-BomDcrList', + id: '1494517794291220482', + }, + { + path: '/bom/BomExgIntegrityList', + component: 'bom/BomExgIntegrityList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'BomExgIntegrityList', + title: '成品BOM完整性检查', + }, + name: 'bom-BomExgIntegrityList', + id: '1495596749693853697', + }, + { + path: '/bom/BomDcrIntegrityList', + component: 'bom/BomDcrIntegrityList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'BomDcrIntegrityList', + title: '核销BOM完整性检查', + }, + name: 'bom-BomDcrIntegrityList', + id: '1495597364222304258', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'project', + componentName: 'RouteView', + title: 'BOM管理', + }, + name: 'bom', + id: '1494515002231128066', + }, + { + redirect: null, + path: '/dcr', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/dcr/DcrCycleHeadList', + component: 'dcr/DcrCycleHeadList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'DcrCycleHeadList', + title: '核销周期', + }, + name: 'dcr-DcrCycleHeadList', + id: '1496041699518636033', + }, + { + path: '/dcr/CavReportX', + component: 'dcr/CavReportX', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'CavReportX', + title: '核销核算', + }, + name: 'dcr-CavReportX', + id: '1506086082982019073', + }, + { + path: '/dcr/CavReportL', + component: 'dcr/CavReportL', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'CavReportL', + title: '核销试算', + }, + name: 'dcr-CavReportL', + id: '1518403619442765825', + }, + { + path: '/dcr/DcrAmount', + component: 'dcr/DcrAmount', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'DcrAmount', + title: '金额统计', + }, + name: 'dcr-DcrAmount', + id: '1518117016240316417', + }, + { + path: '/dcr/DcrWeight', + component: 'dcr/DcrWeight', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'DcrWeight', + title: '重量统计', + }, + name: 'dcr-DcrWeight', + id: '1524207922500485121', + }, + { + path: '/dcr/DcrEmsHeadList', + component: 'dcr/DcrEmsHeadList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'DcrEmsHeadList', + title: '账册正式报核', + }, + name: 'dcr-DcrEmsHeadList', + id: '1513414600752250881', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'project', + componentName: 'RouteView', + title: '核销管理', + }, + name: 'dcr', + id: '1496037220480077825', + }, + { + redirect: null, + path: '/taxConcession', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/taxConcession/JmsPrjHeadList', + component: 'taxConcession/JmsPrjHeadList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'JmsPrjHeadList', + title: '项目信息表头管理', + }, + name: 'taxConcession-JmsPrjHeadList', + id: '1792484095105548290', + }, + { + path: '/taxConcession/exemptionApplicationList', + component: 'taxConcession/exemptionApplicationList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'exemptionApplicationList', + title: '减免税申请', + }, + name: 'taxConcession-exemptionApplicationList', + id: '1789915542651535362', + }, + { + path: '/taxConcession/equipmentDetailsUsageRecordsList', + component: 'taxConcession/equipmentDetailsUsageRecordsList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'equipmentDetailsUsageRecordsList', + title: '设备明细及使用记录', + }, + name: 'taxConcession-equipmentDetailsUsageRecordsList', + id: '1789916289212481537', + }, + { + path: '/taxConcession/equipmentDetailsUsageSupervisionList', + component: 'taxConcession/equipmentDetailsUsageSupervisionList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'equipmentDetailsUsageSupervisionList', + title: '监管中设备明细', + }, + name: 'taxConcession-equipmentDetailsUsageSupervisionList', + id: '1796821381528002562', + }, + { + path: '/taxConcession/rawMaterialRequisitionRecordsList', + component: 'taxConcession/rawMaterialRequisitionRecordsList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'rawMaterialRequisitionRecordsList', + title: '原辅材领用记录表', + }, + name: 'taxConcession-rawMaterialRequisitionRecordsList', + id: '1789916568347607042', + }, + { + path: '/taxConcession/JmsConsumableIssuanceList', + component: 'taxConcession/JmsConsumableIssuanceList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'JmsConsumableIssuanceList', + title: '待使用原辅材明细', + }, + name: 'taxConcession-JmsConsumableIssuanceList', + id: '1796814622281277441', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'dot-chart', + componentName: 'RouteView', + title: '减免税管理', + }, + name: 'taxConcession', + id: '1789915092267171841', + }, + { + redirect: null, + path: '/expenseBilling', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/expenseBilling/FeeBillBaseList', + component: 'expenseBilling/FeeBillBaseList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'FeeBillBaseList', + title: '账单基础栏位', + }, + name: 'expenseBilling-FeeBillBaseList', + id: '1796775430155251714', + }, + { + path: '/expenseBilling/FeeBillChargesList', + component: 'expenseBilling/FeeBillChargesList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'FeeBillChargesList', + title: '账单费用栏位', + }, + name: 'expenseBilling-FeeBillChargesList', + id: '1796775859408711682', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'diff', + componentName: 'RouteView', + title: '费用账单管理', + }, + name: 'expenseBilling', + id: '1796775157747789826', + }, + { + redirect: null, + path: '/reports', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/reports/ReportsBillListI', + component: 'reports/ReportsBillListI', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'ReportsBillListI', + title: '进口清单报表', + }, + name: 'reports-ReportsBillListI', + id: '1541614622332960769', + }, + { + path: '/reports/ReportsBillListIJM', + component: 'reports/ReportsBillListIJM', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'ReportsBillListIJM', + title: '进口清单报表(加贸)', + }, + name: 'reports-ReportsBillListIJM', + id: '1583015515041423362', + }, + { + path: '/reports/ReportsBillListIWL', + component: 'reports/ReportsBillListIWL', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'ReportsBillListIWL', + title: '进口清单报表(物流)', + }, + name: 'reports-ReportsBillListIWL', + id: '1583016536710963201', + }, + { + path: '/reports/ReportsBillListIZS', + component: 'reports/ReportsBillListIZS', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'ReportsBillListIZS', + title: '进口清单报表(征税)', + }, + name: 'reports-ReportsBillListIZS', + id: '1583016726746488833', + }, + { + path: '/reports/ReportsBillListE', + component: 'reports/ReportsBillListE', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'ReportsBillListE', + title: '出口清单报表', + }, + name: 'reports-ReportsBillListE', + id: '1541614892186091522', + }, + { + path: '/reports/ReportsBillListEJM', + component: 'reports/ReportsBillListEJM', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'ReportsBillListEJM', + title: '出口清单报表(加贸)', + }, + name: 'reports-ReportsBillListEJM', + id: '1583019031453622273', + }, + { + path: '/reports/ReportsBillListEWL', + component: 'reports/ReportsBillListEWL', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'ReportsBillListEWL', + title: '出口清单报表(物流)', + }, + name: 'reports-ReportsBillListEWL', + id: '1583019198462418945', + }, + { + path: '/reports/ReportsBillListEZS', + component: 'reports/ReportsBillListEZS', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'ReportsBillListEZS', + title: '出口清单报表(征税)', + }, + name: 'reports-ReportsBillListEZS', + id: '1583019370361774081', + }, + { + path: '/reports/ReportsOdmBillingList', + component: 'reports/ReportsOdmBillingList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'ReportsOdmBillingList', + title: 'ODM Billing查询报表', + }, + name: 'reports-ReportsOdmBillingList', + id: '1678235006189174786', + }, + { + path: '/reports/ReportsZzzzList', + component: 'reports/ReportsZzzzList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'ReportsZzzzList', + title: 'ZZZZ报表', + }, + name: 'reports-ReportsZzzzList', + id: '1519221127366569986', + }, + { + path: '/reports/LvReportEntrydelAltsList', + component: 'reports/LvReportEntrydelAltsList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'LvReportEntrydelAltsList', + title: '删改单查询', + }, + name: 'reports-LvReportEntrydelAltsList', + id: '1573214915704168450', + }, + { + path: '/reports/LvReportEntryCheckList', + component: 'reports/LvReportEntryCheckList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'LvReportEntryCheckList', + title: '查验单查询', + }, + name: 'reports-LvReportEntryCheckList', + id: '1579717277675433985', + }, + { + path: '/reports/LvEntryPackageList', + component: 'reports/LvEntryPackageList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'LvEntryPackageList', + title: '发货包装查询', + }, + name: 'reports-LvEntryPackageList', + id: '1570248524194942977', + }, + { + path: '/reports/LvWorkflowHistoryList', + component: 'reports/LvWorkflowHistoryList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'LvWorkflowHistoryList', + title: '审核退回记录表', + }, + name: 'reports-LvWorkflowHistoryList', + id: '1807983802808352770', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'bar-chart', + componentName: 'RouteView', + title: '报表中心', + }, + name: 'reports', + id: '1519212540250550273', + }, + { + redirect: null, + path: '/KPIReport', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/KPIReport/DailyPaperListIE', + component: 'kpiReport/DailyPaperListIE', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'DailyPaperListIE', + title: '进出口日报', + }, + name: 'KPIReport-DailyPaperListIE', + id: '1603625785258188801', + }, + { + path: '/KPIReport/MonthlyReportListIE', + component: 'kpiReport/MonthlyReportListIE', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'MonthlyReportListIE', + title: '进出口月报', + }, + name: 'KPIReport-MonthlyReportListIE', + id: '1608704991151271937', + }, + { + path: '/KPIReport/PersonalStatsList', + component: 'kpiReport/PersonalStatsList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'PersonalStatsList', + title: '个人通关票数统计', + }, + name: 'KPIReport-PersonalStatsList', + id: '1610828855033520130', + }, + { + path: '/kpiReport/LvBillIeportTimeList', + component: 'kpiReport/LvBillIeportTimeList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'LvBillIeportTimeList', + title: '进出口time table', + }, + name: 'kpiReport-LvBillIeportTimeList', + id: '1807666385582403585', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'area-chart', + componentName: 'RouteView', + title: 'KPI报表', + }, + name: 'KPIReport', + id: '1603624731502223362', + }, + { + redirect: null, + path: '/alert', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/alert/InteDataAlertList', + component: 'alert/InteDataAlertList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'InteDataAlertList', + title: '接口数据预警', + }, + name: 'alert-InteDataAlertList', + id: '1598495785248923649', + }, + { + path: '/alert/BillAlertList', + component: 'alert/BillAlertList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'BillAlertList', + title: '清单核扣预警明细', + }, + name: 'alert-BillAlertList', + id: '1661599528349380609', + }, + { + path: '/alert/MergerDataSameNameDiffCodesWarningList', + component: 'alert/MergerDataSameNameDiffCodesWarningList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'arrow-down', + componentName: 'MergerDataSameNameDiffCodesWarningList', + title: '同名异号', + }, + name: 'alert-MergerDataSameNameDiffCodesWarningList', + id: '1876149301786030081', + }, + { + path: '/alert/MergerDataBanLimitationWarningList', + component: 'alert/MergerDataBanLimitationWarningList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'arrow-up', + componentName: 'MergerDataBanLimitationWarningList', + title: '禁限预警', + }, + name: 'alert-MergerDataBanLimitationWarningList', + id: '1876150438509522946', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'folder-open', + componentName: 'RouteView', + title: '预警中心', + }, + name: 'alert', + id: '1598214834275049474', + }, + { + redirect: null, + path: '/dashboard3', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/isystem/online', + component: 'system/SysUserOnlineList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'SysUserOnlineList', + title: '在线用户', + }, + name: 'isystem-online', + id: '1404684556047024130', + }, + { + path: '/isystem/gatewayroute', + component: 'system/SysGatewayRouteList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'SysGatewayRouteList', + title: '路由网关', + }, + name: 'isystem-gatewayroute', + id: '1265162119913824258', + }, + { + path: '/isystem/QuartzJobList', + component: 'system/QuartzJobList', + route: '1', + hidden: true, + meta: { + hideMenu: true, + keepAlive: true, + internalOrExternal: false, + componentName: 'QuartzJobList', + title: '定时任务', + }, + name: 'isystem-QuartzJobList', + id: 'b1cb0a3fedf7ed0e4653cb5a229837ee', + }, + { + path: '/isystem/log', + component: 'system/LogList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'LogList', + title: '日志管理', + }, + name: 'isystem-log', + id: '58857ff846e61794c69208e9d3a85466', + }, + { + path: '/sys/dataLog-list', + component: 'system/DataLogList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'DataLogList', + title: '数据日志', + }, + name: 'sys-dataLog-list', + id: '841057b8a1bef8f6b4b20f9a618a7fa6', + }, + { + path: '/monitor', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/monitor/redis/info', + component: 'modules/monitor/RedisInfo', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'RedisInfo', + title: 'Redis监控', + }, + name: 'monitor-redis-info', + id: '8d1ebd663688965f1fd86a2f0ead3416', + }, + { + path: '/monitor/TomcatInfo', + component: 'modules/monitor/TomcatInfo', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'TomcatInfo', + title: 'Tomcat信息', + }, + name: 'monitor-TomcatInfo', + id: '024f1fd1283dc632458976463d8984e1', + }, + { + path: '/monitor/SystemInfo', + component: 'modules/monitor/SystemInfo', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'SystemInfo', + title: '服务器信息', + }, + name: 'monitor-SystemInfo', + id: '8b3bff2eee6f1939147f5c68292a1642', + }, + { + path: '/monitor/JvmInfo', + component: 'modules/monitor/JvmInfo', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'JvmInfo', + title: 'JVM信息', + }, + name: 'monitor-JvmInfo', + id: 'd07a2c87a451434c99ab06296727ec4f', + }, + { + path: '/monitor/HttpTrace', + component: 'modules/monitor/HttpTrace', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'HttpTrace', + title: '请求追踪', + }, + name: 'monitor-HttpTrace', + id: 'fc810a2267dd183e4ef7c71cc60f4670', + }, + { + path: '/monitor/Disk', + component: 'modules/monitor/DiskMonitoring', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'DiskMonitoring', + title: '磁盘监控', + }, + name: 'monitor-Disk', + id: '97c8629abc7848eccdb6d77c24bb3ebb', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'RouteView', + title: '性能监控', + }, + name: 'monitor', + id: '700b7f95165c46cc7a78bf227aa8fed3', + }, + { + path: '5f22d2592b01c9e964efe70040162b83', + component: 'layouts/IframePageView', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'IframePageView', + title: 'SQL监控', + url: "{{ window._CONFIG['domianURL'] }}/druid/", + }, + name: "{{ window._CONFIG['domianURL'] }}-druid-", + id: 'aedbf679b5773c1f25e9f7b10111da73', + }, + { + path: '10b80437abc6eee8c3e3daabb5e9f59e', + component: 'layouts/IframePageView', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'IframePageView', + title: '在线文档', + url: "{{ window._CONFIG['domianURL'] }}/doc.html", + }, + name: "{{ window._CONFIG['domianURL'] }}-doc.html", + id: '2dbbafa22cda07fa5d169d741b81fe12', + }, + { + path: '/system/RedisManager', + component: 'system/RedisManager', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'table', + componentName: 'RedisManager', + title: 'REDIS缓存管理', + }, + name: 'system-RedisManager', + id: '1719249926283808770', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'dashboard', + componentName: 'RouteView', + title: '系统监控', + }, + name: 'dashboard3', + id: '08e6b9dc3c04489c8e1ff2ce6f105aa4', + }, + { + redirect: null, + path: '/sysConfig', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/flow/home', + component: 'flow/FlowTest', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'box-plot', + componentName: 'FlowTest', + title: '流程展示', + }, + name: 'flow-home', + id: '1569598491725103106', + }, + { + path: '/sysConfig/workflow/wfprocessList', + component: 'sysConfig/common/workflow/WfProcessList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'WfProcessList', + title: '流程定义', + }, + name: 'sysConfig-workflow-wfprocessList', + id: '1491960292805660674', + }, + { + path: '/sysConfig/common/workflow/WfSurrogateList', + component: 'sysConfig/common/workflow/WfSurrogateList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'WfSurrogateList', + title: '委托代理', + }, + name: 'sysConfig-common-workflow-WfSurrogateList', + id: '1492008282207473666', + }, + { + path: '/sysConfig/workflow/WfMenuConfigList', + component: 'sysConfig/common/workflow/WfMenuConfigList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'WfMenuConfigList', + title: '流程菜单配置', + }, + name: 'sysConfig-workflow-WfMenuConfigList', + id: '1792366079352832001', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'frown', + componentName: 'RouteView', + title: '流程管理', + }, + name: 'sysConfig', + id: '1491959543384199169', + }, + { + redirect: null, + path: '/xxljob', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/xxljob/jobinfo', + component: 'xxljob/XxlJobInfoList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'mail', + componentName: 'XxlJobInfoList', + title: '任务管理', + }, + name: 'xxljob-jobinfo', + id: '1575366281731923970', + }, + { + path: '/xxljob/xxlJobGroup', + component: 'xxljob/XxlJobGroupList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'mail', + componentName: 'XxlJobGroupList', + title: '执行器管理', + }, + name: 'xxljob-xxlJobGroup', + id: '1575366535051108353', + }, + { + path: '/xxljob/logs', + component: 'xxljob/XxlJobLogList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'mail', + componentName: 'XxlJobLogList', + title: '调度日志', + }, + name: 'xxljob-logs', + id: '1575366744380432385', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'appstore', + componentName: 'RouteView', + title: '任务中心', + }, + name: 'xxljob', + id: '1575365741924999169', + }, + { + redirect: '/list/query-list', + path: '/list', + component: 'layouts/PageView', + route: '1', + children: [ + { + path: '/list/query-list', + component: 'examples/list/TableList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'TableList', + title: '查询表格', + }, + name: 'list-query-list', + id: '418964ba087b90a84897b62474496b93', + }, + { + path: '/list/edit-table', + component: 'examples/list/TableInnerEditList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'TableInnerEditList', + title: '内联编辑表格', + }, + name: 'list-edit-table', + id: 'ae4fed059f67086fd52a73d913cf473d', + }, + { + path: '/list/user-list', + component: 'examples/list/UserList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'UserList', + title: '用户列表', + }, + name: 'list-user-list', + id: '05b3c82ddb2536a4a5ee1a4c46b5abef', + }, + { + path: '/list/role-list', + component: 'examples/list/RoleList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'RoleList', + title: '角色列表', + }, + name: 'list-role-list', + id: '4f84f9400e5e92c95f05b554724c2b58', + }, + { + path: '/list/permission-list', + component: 'examples/list/PermissionList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'PermissionList', + title: '权限列表', + }, + name: 'list-permission-list', + id: '73678f9daa45ed17a3674131b03432fb', + }, + { + path: '/list/basic-list', + component: 'examples/list/StandardList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'StandardList', + title: '标准列表', + }, + name: 'list-basic-list', + id: 'f23d9bfff4d9aa6b68569ba2cff38415', + }, + { + path: '/list/card', + component: 'examples/list/CardList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'CardList', + title: '卡片列表', + }, + name: 'list-card', + id: '7ac9eb9ccbde2f7a033cd4944272bf1e', + }, + { + path: '/list/search', + component: 'examples/list/search/SearchLayout', + route: '1', + children: [ + { + path: '/list/search/article', + component: 'examples/list/TableList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'TableList', + title: '搜索列表(文章)', + }, + name: 'list-search-article', + id: '078f9558cdeab239aecb2bda1a8ed0d1', + }, + { + path: '/list/search/application', + component: 'examples/list/TableList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'TableList', + title: '搜索列表(应用)', + }, + name: 'list-search-application', + id: '200006f0edf145a2b50eacca07585451', + }, + { + path: '/list/search/project', + component: 'examples/list/TableList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'TableList', + title: '搜索列表(项目)', + }, + name: 'list-search-project', + id: 'de13e0f6328c069748de7399fcc1dbbd', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'SearchLayout', + title: '搜索列表', + }, + name: 'list-search', + id: 'fb07ca05a3e13674dbf6d3245956da2e', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'table', + componentName: 'PageView', + title: '列表页', + }, + name: 'list', + id: '540a2936940846cb98114ffb0d145cb8', + }, + { + redirect: null, + path: '/message', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/modules/message/sysMessageTemplateList', + component: 'modules/message/SysMessageTemplateList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'SysMessageTemplateList', + title: '模板管理', + }, + name: 'modules-message-sysMessageTemplateList', + id: 'f780d0d3083d849ccbdb1b1baee4911d', + }, + { + path: '/modules/message/sysMessageList', + component: 'modules/message/SysMessageList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'SysMessageList', + title: '消息管理', + }, + name: 'modules-message-sysMessageList', + id: '944abf0a8fc22fe1f1154a389a574154', + }, + { + path: '/isps/userAnnouncement', + component: 'system/UserAnnouncementList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'UserAnnouncementList', + title: '我的消息', + }, + name: 'isps-userAnnouncement', + id: '53a9230444d33de28aa11cc108fb1dba', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'message', + componentName: 'RouteView', + title: '消息中心', + }, + name: 'message', + id: '5c8042bd6c601270b2bbd9b20bccc68b', + }, + { + redirect: null, + path: '/account', + component: 'layouts/RouteView', + route: '1', + hidden: true, + children: [ + { + path: '/account/settings/SystemSetting', + component: 'account/settings/SystemSetting', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'SystemSetting', + title: '系统配置', + }, + name: 'account-settings-SystemSetting', + id: '1782597705428770818', + }, + { + path: '/account/center', + component: 'account/center/Index', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'Index', + title: '个人中心', + }, + name: 'account-center', + id: 'd86f58e7ab516d3bc6bfb1fe10585f97', + }, + { + path: '/account/settings/BaseSetting', + component: 'account/settings/Index', + route: '1', + children: [ + { + path: '/account/settings/notification', + component: 'account/settings/Notification', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'Notification', + title: '新消息通知', + }, + name: 'account-settings-notification', + id: 'fedfbf4420536cacc0218557d263dfea', + }, + { + path: '/account/settings/security', + component: 'account/settings/Security', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'Security', + title: '安全设置', + }, + name: 'account-settings-security', + id: 'ec8d607d0156e198b11853760319c646', + }, + { + path: '/account/settings/BaseSetting', + component: 'account/settings/BaseSetting', + route: '1', + hidden: true, + meta: { + hideMenu: true, + keepAlive: true, + internalOrExternal: false, + componentName: 'account-settings-base', + title: '基本设置', + }, + name: 'account-settings-base', + id: '1367a93f2c410b169faa7abcbad2f77c', + }, + { + path: '/account/settings/binding', + component: 'account/settings/Binding', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'Binding', + title: '账户绑定', + }, + name: 'account-settings-binding', + id: '4f66409ef3bbd69c1d80469d6e2a885e', + }, + { + path: '/account/settings/custom', + component: 'account/settings/Custom', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'Custom', + title: '个性化设置', + }, + name: 'account-settings-custom', + id: '882a73768cfd7f78f3a37584f7299656', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'Index', + title: '个人设置', + }, + name: 'account-settings-BaseSetting', + id: '6e73eb3c26099c191bf03852ee1310a1', + alwaysShow: true, + }, + { + path: '/dashboard/workplace', + component: 'dashboard/Workplace', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'Workplace', + title: '工作台', + }, + name: 'dashboard-workplace', + id: '8fb8172747a78756c11916216b8b8066', + }, + ], + meta: { + hideMenu: true, + keepAlive: true, + internalOrExternal: false, + icon: 'user', + componentName: 'RouteView', + title: '个人页', + }, + name: 'account', + id: '717f6bee46f44a3897eca9abd6e2ec44', + }, + { + redirect: null, + path: '/form', + component: 'layouts/PageView', + route: '1', + children: [ + { + path: '/form/base-form', + component: 'customer/baseinfo/BaseCustomerList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'BaseCustomerList', + title: '基础表单', + }, + name: 'form-base-form', + id: '277bfabef7d76e89b33062b16a9a5020', + }, + { + path: '/form/step-form', + component: 'examples/form/stepForm/StepForm', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'StepForm', + title: '分步表单', + }, + name: 'form-step-form', + id: '6531cf3421b1265aeeeabaab5e176e6d', + }, + { + path: '/form/advanced-form', + component: 'examples/form/advancedForm/AdvancedForm', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'AdvancedForm', + title: '高级表单', + }, + name: 'form-advanced-form', + id: 'e5973686ed495c379d829ea8b2881fc6', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'form', + componentName: 'PageView', + title: '表单页', + }, + name: 'form', + id: 'e3c13679c73a4f829bcff2aba8fd68b1', + }, + { + redirect: null, + path: '/jeecg', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/jeecg/SelectDemo', + component: 'jeecg/SelectDemo', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'SelectDemo', + title: '自定义组件', + }, + name: 'jeecg-SelectDemo', + id: '9a90363f216a6a08f32eecb3f0bf12a3', + }, + { + path: '/jeecg/j-vxe-table-demo', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/jeecg/j-vxe-table-demo/normal', + component: 'jeecg/JVXETableDemo', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'JVXETableDemo', + title: '普通示例', + }, + name: 'jeecg-j-vxe-table-demo-normal', + id: '1287715783966834689', + }, + { + path: '/jeecg/j-vxe-table-demo/layout', + component: 'jeecg/JVxeDemo/layout-demo/Index', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'Index', + title: '布局模板', + }, + name: 'jeecg-j-vxe-table-demo-layout', + id: '1287716451494510593', + }, + { + path: '/jeecg/j-vxe-table-demo/jsbc', + component: 'jeecg/JVxeDemo/demo/JSBCDemo', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'JSBCDemo', + title: '即时保存', + }, + name: 'jeecg-j-vxe-table-demo-jsbc', + id: '1287718919049691137', + }, + { + path: '/jeecg/j-vxe-table-demo/tczb', + component: 'jeecg/JVxeDemo/demo/PopupSubTable', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'PopupSubTable', + title: '弹出子表', + }, + name: 'jeecg-j-vxe-table-demo-tczb', + id: '1287718938179911682', + }, + { + path: '/jeecg/j-vxe-table-demo/whsx', + component: 'jeecg/JVxeDemo/demo/SocketReload', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'SocketReload', + title: '无痕刷新', + }, + name: 'jeecg-j-vxe-table-demo-whsx', + id: '1287718956957810689', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'RouteView', + title: 'JVXETable示例', + }, + name: 'jeecg-j-vxe-table-demo', + id: '1287715272999944193', + }, + { + path: '/oss/file', + component: 'modules/oss/OSSFileList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'OSSFileList', + title: '对象存储', + }, + name: 'oss-file', + id: '1166535831146504193', + }, + { + path: '/jeecg/jeecgDemoList', + component: 'jeecg/JeecgDemoList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'DemoList', + title: '单表模型示例', + }, + name: 'DemoList', + id: '4148ec82b6acd69f470bea75fe41c357', + }, + { + path: '/jeecg/TableExpandeSub', + component: 'jeecg/TableExpandeSub', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'TableExpandeSub', + title: '内嵌Table', + }, + name: 'jeecg-TableExpandeSub', + id: '4356a1a67b564f0988a484f5531fd4d9', + }, + { + path: '/jeecg/ImagPreview', + component: 'jeecg/ImagPreview', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'ImagPreview', + title: '图片预览', + }, + name: 'jeecg-ImagPreview', + id: '655563cd64b75dcf52ef7bcdd4836953', + }, + { + path: '/jeecg/JeecgOrderMainListForJVxeTable', + component: 'jeecg/JeecgOrderMainListForJVxeTable', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'JeecgOrderMainListForJVxeTable', + title: '一对多JVxeTable', + }, + name: 'jeecg-JeecgOrderMainListForJVxeTable', + id: '1365187528377102337', + }, + { + path: '/jeecg/tablist/JeecgOrderDMainList', + component: 'jeecg/tablist/JeecgOrderDMainList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'JeecgOrderDMainList', + title: '一对多Tab示例', + }, + name: 'jeecg-tablist-JeecgOrderDMainList', + id: '6ad53fd1b220989a8b71ff482d683a5a', + }, + { + path: '/jeecg/JeecgOrderMainList', + component: 'jeecg/JeecgOrderMainList', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'JeecgOrderMainList', + title: '一对多示例', + }, + name: 'jeecg-JeecgOrderMainList', + id: 'fb367426764077dcf94640c843733985', + }, + { + path: '/jeecg/JEditableTable', + component: 'jeecg/JeecgEditableTableExample', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'JeecgEditableTableExample', + title: 'JEditableTable示例', + }, + name: 'jeecg-JEditableTable', + id: '7960961b0063228937da5fa8dd73d371', + }, + { + path: '/jeecg/JeecgOrderMainListForJEditableTable', + component: 'jeecg/JeecgOrderMainListForJEditableTable', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'JeecgOrderMainListForJEditableTable', + title: '一对多JEditable', + }, + name: 'jeecg-JeecgOrderMainListForJEditableTable', + id: 'c431130c0bc0ec71b0a5be37747bb36a', + }, + { + path: '/jeecg/tableTotal', + component: 'jeecg/TableTotal', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'TableTotal', + title: '表格合计', + }, + name: 'jeecg-tableTotal', + id: '043780fa095ff1b2bec4dc406d76f023', + }, + { + path: '/jeecg/JeecgTreeTable', + component: 'jeecg/JeecgTreeTable', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'JeecgTreeTable', + title: '异步树列表Demo', + }, + name: 'jeecg-JeecgTreeTable', + id: '0620e402857b8c5b605e1ad9f4b89350', + }, + { + path: '/jeecg/ThirdAppMessageTest', + component: 'jeecg/ThirdAppMessageTest', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'ThirdAppMessageTest', + title: '第三方APP消息测试', + }, + name: 'jeecg-ThirdAppMessageTest', + id: '1387612436586065922', + }, + { + path: '/jeecg/PrintDemo', + component: 'jeecg/PrintDemo', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'PrintDemo', + title: '打印测试', + }, + name: 'jeecg-PrintDemo', + id: 'e6bfd1fcabfd7942fdd05f076d1dad38', + }, + { + path: '/jeecg/jeecgPdfView', + component: 'jeecg/JeecgPdfView', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'JeecgPdfView', + title: 'PDF预览', + }, + name: 'jeecg-jeecgPdfView', + id: 'e1979bb53e9ea51cecc74d86fd9d2f64', + }, + { + path: '/jeecg/imgDragSort', + component: 'jeecg/ImgDragSort', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'ImgDragSort', + title: '图片拖拽排序', + }, + name: 'jeecg-imgDragSort', + id: '265de841c58907954b8877fb85212622', + }, + { + path: '/jeecg/helloworld', + component: 'jeecg/helloworld', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'helloworld', + title: 'helloworld', + }, + name: 'jeecg-helloworld', + id: '339329ed54cf255e1f9392e84f136901', + }, + { + path: '/jeecg/imgTurnPage', + component: 'jeecg/ImgTurnPage', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'ImgTurnPage', + title: '图片翻页', + }, + name: 'jeecg-imgTurnPage', + id: '58b9204feaf07e47284ddb36cd2d8468', + }, + { + path: 'bfa89e563d9509fbc5c6503dd50faf2e', + component: 'layouts/IframePageView', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'IframePageView', + title: '百度', + url: 'http://www.baidu.com', + }, + name: 'http@--www.baidu.com', + id: 'a400e4f4d54f79bf5ce160ae432231af', + }, + { + path: '/jeecg/splitPanel', + component: 'jeecg/SplitPanel', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'SplitPanel', + title: '分屏', + }, + name: 'jeecg-splitPanel', + id: '3fac0d3c9cd40fa53ab70d4c583821f8', + }, + { + path: '/jeecg/InterfaceTest', + component: 'jeecg/InterfaceTest', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'InterfaceTest', + title: '数据回执模拟', + }, + name: 'jeecg-InterfaceTest', + id: 'c6cf95444d80435eb37b2f9db3971ae6', + }, + { + path: '/jeecg/ImagCropper', + component: 'jeecg/ImagCropper', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'ImagCropper', + title: '图片裁剪', + }, + name: 'jeecg-ImagCropper', + id: '1280464606292099074', + }, + { + path: '/online/cgformInnerTableList/56efb74326e74064b60933f6f8af30ea', + component: '111111', + route: '0', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: '111111', + title: 'online订单管理', + }, + name: 'online-cgformInnerTableList-56efb74326e74064b60933f6f8af30ea', + id: '1260922988733255681', + }, + { + path: '/online/cgreport/1260179852088135681', + component: '333333', + route: '0', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: '333333', + title: 'online用户报表', + }, + name: 'online-cgreport-1260179852088135681', + id: '1260923256208216065', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'qrcode', + componentName: 'RouteView', + title: '常见案例', + }, + name: 'jeecg', + id: '2a470fc0c3954d9dbb61de6d80846549', + }, + { + redirect: null, + path: '/report', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/report/ArchivesStatisticst', + component: 'jeecg/report/ArchivesStatisticst', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'ArchivesStatisticst', + title: '布局统计报表', + }, + name: 'report-ArchivesStatisticst', + id: '2aeddae571695cd6380f6d6d334d6e7d', + }, + { + path: '/report/ViserChartDemo', + component: 'jeecg/report/ViserChartDemo', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'ViserChartDemo', + title: 'ViserChartDemo', + }, + name: 'report-ViserChartDemo', + id: '020b06793e4de2eee0007f603000c769', + }, + { + path: '/online/cgreport/6c7f59741c814347905a938f06ee003c', + component: 'modules/online/cgreport/auto/OnlCgreportAutoList', + route: '0', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'OnlCgreportAutoList', + title: 'Online报表示例', + }, + name: 'online-cgreport-6c7f59741c814347905a938f06ee003c', + id: '1232123780958064642', + }, + { + path: 'a93c0c3609dece99e85f4aa1caaac981', + component: 'layouts/IframePageView', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'IframePageView', + title: 'Redis监控', + url: "{{ window._CONFIG['domianURL'] }}/jmreport/view/1352160857479581696?token=${token}", + }, + name: "{{ window._CONFIG['domianURL'] }}-jmreport-view-1352160857479581696?token=${token}", + id: '1352200630711652354', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'bar-chart', + componentName: 'RouteView', + title: '统计报表', + }, + name: 'report', + id: 'f0675b52d89100ee88472b6800754a08', + }, + { + redirect: null, + path: '/big/screen', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '9cd8afb1fa977115e7a82cc9255483dc', + component: 'layouts/IframePageView', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'IframePageView', + title: '积木报表设计', + url: "{{ window._CONFIG['domianURL'] }}/jmreport/list?token=${token}", + }, + name: "{{ window._CONFIG['domianURL'] }}-jmreport-list?token=${token}", + id: '1335960713267093506', + }, + { + path: '21e7299f9fbd4a2fa54cedb9d4c8e49f', + component: 'layouts/IframePageView', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'IframePageView', + title: '生产销售监控', + url: "{{ window._CONFIG['domianURL'] }}/test/bigScreen/templat/index1", + }, + name: "{{ window._CONFIG['domianURL'] }}-test-bigScreen-templat-index1", + id: '1205098241075453953', + }, + { + path: 'b5323bdac50f5bc855be3cf9c24f888a', + component: 'layouts/IframePageView', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'IframePageView', + title: '智慧物流监控', + url: "{{ window._CONFIG['domianURL'] }}/test/bigScreen/templat/index2", + }, + name: "{{ window._CONFIG['domianURL'] }}-test-bigScreen-templat-index2", + id: '1205306106780364802', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'area-chart', + componentName: 'RouteView', + title: '报表设计', + }, + name: 'big-screen', + id: '1205097455226462210', + }, + { + redirect: null, + path: '/result', + component: 'layouts/PageView', + route: '1', + children: [ + { + path: '/result/success', + component: 'result/Success', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'Success', + title: '成功', + }, + name: 'result-success', + id: '00a2a0ae65cdca5e93209cdbde97cbe6', + }, + { + path: '/result/fail', + component: 'result/Error', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'Error', + title: '失败', + }, + name: 'result-fail', + id: '13212d3416eb690c2e1d5033166ff47a', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'check-circle-o', + componentName: 'PageView', + title: '结果页', + }, + name: 'result', + id: '2e42e3835c2b44ec9f7bc26c146ee531', + }, + { + redirect: null, + path: '/profile', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/profile/basic', + component: 'examples/profile/basic/Index', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'Index', + title: '基础详情页', + }, + name: 'profile-basic', + id: 'cc50656cf9ca528e6f2150eba4714ad2', + }, + { + path: '/profile/advanced', + component: 'examples/profile/advanced/Advanced', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: 'Advanced', + title: '高级详情页', + }, + name: 'profile-advanced', + id: 'b3c824fc22bd953e2eb16ae6914ac8f9', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'profile', + componentName: 'RouteView', + title: '详情页', + }, + name: 'profile', + id: '4875ebe289344e14844d8e3ea1edd73f', + }, + { + redirect: null, + path: '/exception', + component: 'layouts/RouteView', + route: '1', + children: [ + { + path: '/exception/403', + component: 'exception/403', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: '403', + title: '403', + }, + name: 'exception-403', + id: '65a8f489f25a345836b7f44b1181197a', + }, + { + path: '/exception/404', + component: 'exception/404', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: '404', + title: '404', + }, + name: 'exception-404', + id: 'd2bbf9ebca5a8fa2e227af97d2da7548', + }, + { + path: '/exception/500', + component: 'exception/500', + route: '1', + meta: { + keepAlive: true, + internalOrExternal: false, + componentName: '500', + title: '500', + }, + name: 'exception-500', + id: 'b4dfc7d5dd9e8d5b6dd6d4579b1aa559', + }, + ], + meta: { + keepAlive: true, + internalOrExternal: false, + icon: 'warning', + componentName: 'RouteView', + title: '异常页', + }, + name: 'exception', + id: 'c65321e57b7949b7a975313220de0422', + }, + ], + sysSafeMode: false, + userSet: 0, + }, + timestamp: 1753420902498, +} + +export default permissionData diff --git a/src/store/modules/online.js b/src/store/modules/online.js new file mode 100644 index 0000000..09e518a --- /dev/null +++ b/src/store/modules/online.js @@ -0,0 +1,17 @@ +import Vue from 'vue' + + +const online = { + state: { + //存储对象属性 value,text + authFields: [], + }, + mutations: { + SET_AUTHFIELDS: (state, fields) => { + console.log('fields',fields) + Vue.set(state, 'authFields', fields) + } + }, +} + +export default online \ No newline at end of file diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js new file mode 100644 index 0000000..703947f --- /dev/null +++ b/src/store/modules/permission.js @@ -0,0 +1,87 @@ +import { asyncRouterMap, constantRouterMap } from '@/config/router.config' + +/** + * 过滤账户是否拥有某一个权限,并将菜单从加载列表移除 + * + * @param permission + * @param route + * @returns {boolean} + */ +function hasPermission(permission, route) { + if (route.meta && route.meta.permission) { + let flag = -1 + for (let i = 0, len = permission.length; i < len; i++) { + flag = route.meta.permission.indexOf(permission[i]) + if (flag >= 0) { + return true + } + } + return false + } + return true +} + +/** + * 单账户多角色时,使用该方法可过滤角色不存在的菜单 + * + * @param roles + * @param route + * @returns {*} + */ +// eslint-disable-next-line +function hasRole(roles, route) { + if (route.meta && route.meta.roles) { + return route.meta.roles.indexOf(roles.id) + } else { + return true + } +} + +function filterAsyncRouter(routerMap, roles) { + const accessedRouters = routerMap.filter((route) => { + if (hasPermission(roles.permissionList, route)) { + if (route.children && route.children.length) { + route.children = filterAsyncRouter(route.children, roles) + } + return true + } + return false + }) + return accessedRouters +} + +const permission = { + state: { + routers: constantRouterMap, + addRouters: [], + }, + mutations: { + SET_ROUTERS: (state, data) => { + state.addRouters = data + state.routers = constantRouterMap.concat(data) + //console.log('-----mutations---SET_ROUTERS----', data) + }, + }, + actions: { + GenerateRoutes({ commit }, data) { + return new Promise((resolve) => { + const { roles } = data + const accessedRouters = filterAsyncRouter(asyncRouterMap, roles) + commit('SET_ROUTERS', accessedRouters) + resolve() + }) + }, + // 动态添加主界面路由,需要缓存 + UpdateAppRouter({ commit }, routes) { + return new Promise((resolve) => { + //const [ roles ] = routes.constRoutes + const routelist = routes.constRoutes + + commit('SET_ROUTERS', routelist) + resolve() + }) + }, + }, +} + +export default permission diff --git a/src/store/modules/user.js b/src/store/modules/user.js new file mode 100644 index 0000000..401777b --- /dev/null +++ b/src/store/modules/user.js @@ -0,0 +1,421 @@ +import Vue from 'vue' +import { login, logout, logoutSSO, phoneLogin, thirdLogin, adminLogin } from '@/api/login' +import { asyncRouterMap } from '@/config/router.config' +import { mapRouter, filterAsyncRoutes, convertMenuToRoutes } from '@/router/index' + +import { + ACCESS_TOKEN, + USER_NAME, + USER_INFO, + USER_AUTH, + SYS_BUTTON_AUTH, + UI_CACHE_DB_DICT_DATA, + TENANT_ID, + CACHE_INCLUDED_ROUTES, + NOW_COMP_NAME, + NOW_EMS_NO, + NOW_CYCLE_NO, + SYS_CONFIG_NAME, + SET_USER_SET, + SYS_COMP_CONFIG, + USER_SETTING, +} from '@/store/mutation-types' +import { welcome } from '@/utils/util' +import { queryPermissionsByUser } from '@/api/api' +import { getAction } from '@/api/manage' + +const user = { + state: { + token: '', + username: '', + PasswordShow: false, + realname: '', + tenantid: '', + welcome: '', + avatar: '', + permissionList: [], + info: {}, + sysConfig: {}, + // 系统安全模式 + sysSafeMode: null, + nowCompName: '', + nowEmsNo: '', + nowCycleNo: '', + footername: '', + footeren: '', + sysConfigName: '', + groupNo: '', + }, + mutations: { + setPasswordShow: (state, PasswordShow) => { + state.PasswordShow = PasswordShow + }, + SET_TOKEN: (state, token) => { + state.token = token + }, + SET_NAME: (state, { username, realname, welcome, groupNo }) => { + state.username = username + state.realname = realname + state.welcome = welcome + state.groupNo = groupNo + }, + SET_AVATAR: (state, avatar) => { + state.avatar = avatar + }, + SET_PERMISSIONLIST: (state, permissionList) => { + state.permissionList = permissionList + }, + SET_INFO: (state, info) => { + state.info = info + }, + SET_SYSCOMPCONFIG: (state, config) => { + state.sysConfig = config + }, + SET_TENANT: (state, id) => { + state.tenantid = id + }, + SET_SYS_SAFE_MODE: (state, sysSafeMode) => { + if (typeof sysSafeMode === 'boolean') { + state.sysSafeMode = sysSafeMode + } else { + state.sysSafeMode = false + } + }, + SET_SYSCONFIGNAME: (state, sysConfigName) => { + state.sysConfigName = sysConfigName + }, + SET_NOWCOMPNAME: (state, nowCompName) => { + state.nowCompName = nowCompName + }, + SET_NOWEMSNO: (state, nowEmsNo) => { + state.nowEmsNo = nowEmsNo + }, + SET_NOWCYCLENO: (state, nowCycleNo) => { + state.nowCycleNo = nowCycleNo + }, + SET_FOOTER_NAME: (state, name) => { + state.footername = name + }, + SET_FOOTER_EN: (state, name) => { + state.footeren = name + }, + SET_USER_SET: (state, userSet) => { + state.userSet = userSet + }, + }, + + actions: { + // CAS验证登录 + ValidateLogin({ commit }, userInfo) { + return new Promise((resolve, reject) => { + getAction('/sys/cas/client/validateLogin', userInfo) + .then((response) => { + console.log('----cas 登录--------', response) + if (response.success) { + const result = response.result + const userInfo = result.userInfo + Vue.ls.set(ACCESS_TOKEN, result.token, 7 * 24 * 60 * 60 * 1000) + Vue.ls.set(USER_NAME, userInfo.username, 7 * 24 * 60 * 60 * 1000) + Vue.ls.set(USER_INFO, userInfo, 7 * 24 * 60 * 60 * 1000) + commit('SET_TOKEN', result.token) + commit('SET_INFO', userInfo) + commit('SET_NAME', { username: userInfo.username, realname: userInfo.realname, welcome: welcome() }) + commit('SET_AVATAR', userInfo.avatar) + resolve(response) + } else { + resolve(response) + } + }) + .catch((error) => { + reject(error) + }) + }) + }, + //手机号登录 + PhoneLogin({ commit }, userInfo) { + return new Promise((resolve, reject) => { + phoneLogin(userInfo) + .then((response) => { + if (response.code === 200) { + const result = response.result + const userInfo = result.userInfo + Vue.ls.set(ACCESS_TOKEN, result.token, 7 * 24 * 60 * 60 * 1000) + Vue.ls.set(USER_NAME, userInfo.username, 7 * 24 * 60 * 60 * 1000) + Vue.ls.set(USER_INFO, userInfo, 7 * 24 * 60 * 60 * 1000) + Vue.ls.set(UI_CACHE_DB_DICT_DATA, result.sysAllDictItems, 7 * 24 * 60 * 60 * 1000) + commit('SET_TOKEN', result.token) + commit('SET_INFO', userInfo) + commit('SET_NAME', { username: userInfo.username, realname: userInfo.realname, welcome: welcome() }) + commit('SET_AVATAR', userInfo.avatar) + resolve(response) + } else { + reject(response) + } + }) + .catch((error) => { + reject(error) + }) + }) + }, + //手机号登录 + AdminLogin({ commit }, userInfo) { + return new Promise((resolve, reject) => { + adminLogin(userInfo) + .then((response) => { + if (response.code === 200) { + const result = response.result + const userInfo = result.userInfo + Vue.ls.set(ACCESS_TOKEN, result.token, 7 * 24 * 60 * 60 * 1000) + Vue.ls.set(USER_NAME, userInfo.username, 7 * 24 * 60 * 60 * 1000) + Vue.ls.set(USER_INFO, userInfo, 7 * 24 * 60 * 60 * 1000) + Vue.ls.set(UI_CACHE_DB_DICT_DATA, result.sysAllDictItems, 7 * 24 * 60 * 60 * 1000) + commit('SET_TOKEN', result.token) + commit('SET_INFO', userInfo) + commit('SET_NAME', { username: userInfo.username, realname: userInfo.realname, welcome: welcome() }) + commit('SET_AVATAR', userInfo.avatar) + resolve(response) + } else { + reject(response) + } + }) + .catch((error) => { + reject(error) + }) + }) + }, + // 获取用户信息 + GetPermissionList({ commit }) { + return new Promise((resolve, reject) => { + queryPermissionsByUser() + .then((response) => { + Vue.ls.set(SET_USER_SET, response.result.userSet, 7 * 24 * 60 * 60 * 1000) + commit('SET_USER_SET', response.result.userSet) + const menuData = response.result.menu + const authData = response.result.auth + const allAuthData = response.result.allAuth + //Vue.ls.set(USER_AUTH,authData); + sessionStorage.setItem(USER_AUTH, JSON.stringify(authData)) + sessionStorage.setItem(SYS_BUTTON_AUTH, JSON.stringify(allAuthData)) + ///获取企业信息 + if (response.result.sysConfig.sysName) { + Vue.ls.set(SYS_COMP_CONFIG, response.result.sysConfig, 7 * 24 * 60 * 60 * 1000) + commit('SET_SYSCOMPCONFIG', response.result.sysConfig) + Vue.ls.set(SYS_CONFIG_NAME, response.result.sysConfig.sysName, 7 * 24 * 60 * 60 * 1000) + commit('SET_SYSCONFIGNAME', response.result.sysConfig.sysName) + } + let filterRouter = [] + + if (process.env.VUE_APP_SSO === 'true') { + // if(true){ + const userSetting = response.result.userSetting + Vue.ls.set(USER_SETTING, userSetting, 7 * 24 * 60 * 60 * 1000) + Vue.ls.set(USER_INFO, response.result.userInfo, 7 * 24 * 60 * 60 * 1000) + Vue.ls.set(UI_CACHE_DB_DICT_DATA, response.result.sysAllDictItems, 7 * 24 * 60 * 60 * 1000) + commit('SET_INFO', response.result.userInfo) + filterRouter = convertMenuToRoutes(menuData) + } else { + const filterData = mapRouter() + + const filterIds = filterData.map((item) => { + return item.id + }) + + filterRouter = filterAsyncRoutes(asyncRouterMap, filterIds, true) + } + + // commit('SET_PERMISSIONLIST', menuData) + commit('SET_PERMISSIONLIST', filterRouter) + // 设置系统安全模式 + commit('SET_SYS_SAFE_MODE', response.result.sysSafeMode) + // } else { + // reject('getPermissionList: permissions must be a non-null array !') + // } + resolve({ + ...response, + filterRouter: filterRouter, + }) + }) + .catch((error) => { + reject(error) + }) + }) + }, + ///获取企业配置信息 + GetSysCompConfig({ commit }) { + return new Promise((resolve, reject) => { + getAction('/system/sysCompanyConfig/queryByCompNo') + .then((response) => { + if (response.success) { + const result = response.result + if (result) { + Vue.ls.set(SYS_COMP_CONFIG, result, 7 * 24 * 60 * 60 * 1000) + Vue.ls.set(SYS_CONFIG_NAME, result.sysName, 7 * 24 * 60 * 60 * 1000) + commit('SET_SYSCONFIGNAME', result.sysName) + commit('SET_SYSCOMPCONFIG', result) + } + resolve(response) + } else { + resolve(response) + } + }) + .catch((error) => { + reject(error) + }) + }) + }, + // 登录 + Login({ commit }, userInfo) { + return new Promise((resolve, reject) => { + login(userInfo) + .then((response) => { + if (response.code === 200) { + const result = response.result + const userInfo = result.userInfo + const userSetting = result.userSetting + Vue.ls.set(ACCESS_TOKEN, result.token, 7 * 24 * 60 * 60 * 1000) + Vue.ls.set(USER_NAME, userInfo.username, 7 * 24 * 60 * 60 * 1000) + Vue.ls.set(USER_INFO, userInfo, 7 * 24 * 60 * 60 * 1000) + Vue.ls.set(UI_CACHE_DB_DICT_DATA, result.sysAllDictItems, 7 * 24 * 60 * 60 * 1000) + Vue.ls.set(USER_SETTING, userSetting, 7 * 24 * 60 * 60 * 1000) + commit('SET_TOKEN', result.token) + commit('SET_INFO', userInfo) + commit('SET_NAME', { + username: userInfo.username, + realname: userInfo.realname, + welcome: welcome(), + groupNo: result.groupNo, + }) + commit('SET_AVATAR', userInfo.avatar) + resolve(response) + } else { + reject(response) + } + }) + .catch((error) => { + reject(error) + }) + }) + }, + // 登出 + Logout({ commit, state }) { + return new Promise((resolve, reject) => { + const logoutToken = state.token + commit('SET_TOKEN', '') + commit('SET_PERMISSIONLIST', []) + Vue.ls.remove(ACCESS_TOKEN) + Vue.ls.remove(USER_INFO) + Vue.ls.remove(USER_NAME) + Vue.ls.remove(UI_CACHE_DB_DICT_DATA) + Vue.ls.remove(CACHE_INCLUDED_ROUTES) + Vue.ls.remove(TENANT_ID) + Vue.ls.remove(NOW_COMP_NAME) + Vue.ls.remove(NOW_EMS_NO) + Vue.ls.remove(NOW_CYCLE_NO) + Vue.ls.remove(SYS_CONFIG_NAME) + Vue.ls.remove(USER_SETTING) + Vue.ls.remove(SET_USER_SET) + //console.log('logoutToken: '+ logoutToken) + if (process.env.VUE_APP_SSO === 'true') { + const sevice = 'https://' + window.location.host + window.location.pathname + const serviceUrl = encodeURIComponent(sevice) + const URL = process.env.VUE_APP_CAS_BASE_URL + '?service=' + serviceUrl + logoutSSO() + .then(() => { + window.location.href = URL + // resolve() + }) + .catch(() => { + // window.location.href = 'https://signinuat.midea.com/logout' + reject() + }) + } else { + logout(logoutToken) + .then(() => { + resolve() + }) + .catch(() => { + reject() + }) + } + }) + }, + // 第三方登录 + ThirdLogin({ commit }, param) { + return new Promise((resolve, reject) => { + thirdLogin(param.token, param.thirdType) + .then((response) => { + if (response.code === 200) { + const result = response.result + const userInfo = result.userInfo + const userSetting = result.userSetting + Vue.ls.set(ACCESS_TOKEN, result.token, 7 * 24 * 60 * 60 * 1000) + Vue.ls.set(USER_NAME, userInfo.username, 7 * 24 * 60 * 60 * 1000) + Vue.ls.set(USER_INFO, userInfo, 7 * 24 * 60 * 60 * 1000) + Vue.ls.set(UI_CACHE_DB_DICT_DATA, result.sysAllDictItems, 7 * 24 * 60 * 60 * 1000) + Vue.ls.set(USER_SETTING, userSetting, 7 * 24 * 60 * 60 * 1000) + commit('SET_TOKEN', result.token) + commit('SET_INFO', userInfo) + commit('SET_NAME', { + username: userInfo.username, + realname: userInfo.realname, + welcome: welcome(), + groupNo: result.groupNo, + }) + commit('SET_AVATAR', userInfo.avatar) + resolve(response) + } else { + resolve(response) + } + }) + .catch((error) => { + reject(error) + }) + }) + }, + saveTenant({ commit }, id) { + Vue.ls.set(TENANT_ID, id, 7 * 24 * 60 * 60 * 1000) + commit('SET_TENANT', id) + }, + saveCompName({ commit }, name) { + Vue.ls.set(NOW_COMP_NAME, name, 7 * 24 * 60 * 60 * 1000) + commit('SET_NOWCOMPNAME', name) + }, + saveEmsNo({ commit }, name) { + Vue.ls.set(NOW_EMS_NO, name, 7 * 24 * 60 * 60 * 1000) + commit('SET_NOWEMSNO', name) + }, + saveCycleNo({ commit }, name) { + Vue.ls.set(NOW_CYCLE_NO, name, 7 * 24 * 60 * 60 * 1000) + commit('SET_NOWCYCLENO', name) + }, + saveSysConfigName({ commit }, name) { + Vue.ls.set(SYS_CONFIG_NAME, name, 7 * 24 * 60 * 60 * 1000) + commit('SET_SYSCONFIGNAME', name) + }, + saveSysCompConfig({ commit }, config) { + Vue.ls.set(SYS_COMP_CONFIG, config, 7 * 24 * 60 * 60 * 1000) + commit('SET_SYSCOMPCONFIG', config) + }, + saveFooterData({ commit }, name, en) { + commit('SET_FOOTER_NAME', name) + commit('SET_FOOTER_EN', en) + }, + saveUserSetting(_unused, para) { + const userSetting = Vue.ls.get(USER_SETTING) + userSetting[para.settingKey] = para.settingValue + Vue.ls.set(USER_SETTING, userSetting, 7 * 24 * 60 * 60 * 1000) + }, + updatePermission({ commit }, permission) { + const menuData = permission.menu + const authData = permission.auth + const allAuthData = permission.allAuth + //Vue.ls.set(USER_AUTH,authData); + sessionStorage.setItem(USER_AUTH, JSON.stringify(authData)) + sessionStorage.setItem(SYS_BUTTON_AUTH, JSON.stringify(allAuthData)) + commit('SET_PERMISSIONLIST', menuData) + }, + }, +} + +export default user + diff --git a/src/store/mutation-types.js b/src/store/mutation-types.js new file mode 100644 index 0000000..a99842a --- /dev/null +++ b/src/store/mutation-types.js @@ -0,0 +1,49 @@ +export const ACCESS_TOKEN = 'Access-Token' +export const SIDEBAR_TYPE = 'SIDEBAR_TYPE' +export const DEFAULT_THEME = 'DEFAULT_THEME' +export const DEFAULT_LAYOUT_MODE = 'DEFAULT_LAYOUT_MODE' +export const DEFAULT_COLOR = 'DEFAULT_COLOR' +export const DEFAULT_COLOR_WEAK = 'DEFAULT_COLOR_WEAK' +export const DEFAULT_FIXED_HEADER = 'DEFAULT_FIXED_HEADER' +export const DEFAULT_FIXED_SIDEMENU= 'DEFAULT_FIXED_SIDEMENU' +export const DEFAULT_FIXED_HEADER_HIDDEN = 'DEFAULT_FIXED_HEADER_HIDDEN' +export const DEFAULT_CONTENT_WIDTH_TYPE = 'DEFAULT_CONTENT_WIDTH_TYPE' +export const DEFAULT_MULTI_PAGE = 'DEFAULT_MULTI_PAGE' +export const USER_NAME = 'Login_Username' +export const USER_INFO = 'Login_Userinfo' +export const USER_AUTH = 'LOGIN_USER_BUTTON_AUTH' +export const SYS_BUTTON_AUTH = 'SYS_BUTTON_AUTH' +export const ENCRYPTED_STRING = 'ENCRYPTED_STRING' +export const ENHANCE_PRE = 'enhance_' +export const UI_CACHE_DB_DICT_DATA = 'UI_CACHE_DB_DICT_DATA' +export const INDEX_MAIN_PAGE_PATH = '/dashboard/analysis' +export const OAUTH2_LOGIN_PAGE_PATH = '/oauth2-app/login' +export const TENANT_ID = 'TENANT_ID' +export const ONL_AUTH_FIELDS = 'ONL_AUTH_FIELDS' +//路由缓存问题,关闭了tab页时再打开就不刷新 #842 +export const CACHE_INCLUDED_ROUTES = 'CACHE_INCLUDED_ROUTES' +export const CONTENT_WIDTH_TYPE = { + Fluid: 'Fluid', + Fixed: 'Fixed' +} +///缓存海关参数库信息 +export const UI_CACHE_DB_DICT_DATA_CUS = 'UI_CACHE_DB_DICT_DATA_CUS' +///缓存企业参数库信息 +export const UI_CACHE_DB_DICT_DATA_COMP= 'UI_CACHE_DB_DICT_DATA_COMP' +export const NOW_COMP_NAME = 'NOW_COMP_NAME' +export const NOW_EMS_NO = 'NOW_EMS_NO' +export const NOW_CYCLE_NO='NOW_CYCLE_NO' +///系统配置的名称 +export const SYS_CONFIG_NAME='SYS_CONFIG_NAME' +///系统配置 +export const SYS_COMP_CONFIG='SYS_COMP_CONFIG' + +///用户个人配置 +export const USER_SETTING='USER_SETTING' + +//系统语言 +// export const SET_LANG = 'SET_LANG' +export const SET_LANG = 'oam_locale' + +///密码是否需要重置 +export const SET_USER_SET = 'SET_USER_SET' \ No newline at end of file diff --git a/src/utils/JEditableTableUtil.js b/src/utils/JEditableTableUtil.js new file mode 100644 index 0000000..1083c47 --- /dev/null +++ b/src/utils/JEditableTableUtil.js @@ -0,0 +1,159 @@ +import { getVmParentByName } from '@/utils/util' + +const FormTypes = { + normal: 'normal', + input: 'input', + inputNumber: 'inputNumber', + checkbox: 'checkbox', + select: 'select', + date: 'date', + datetime: 'datetime', + time: 'time', + upload: 'upload', + file: 'file', + image: 'image', + popup: 'popup', + list_multi: 'list_multi', + sel_search: 'sel_search', + sel_search_async: 'sel_search_async', + radio: 'radio', + checkbox_meta: 'checkbox_meta', + input_pop: 'input_pop', + sel_depart: 'sel_depart', + sel_user: 'sel_user', + slot: 'slot', + hidden: 'hidden', +} +const VALIDATE_NO_PASSED = Symbol() +export { FormTypes, VALIDATE_NO_PASSED } + +/** + * 获取指定的 $refs 对象 + * 有时候可能会遇到组件未挂载到页面中的情况,导致无法获取 $refs 中的某个对象 + * 这个方法可以等待挂载完成之后再返回 $refs 的对象,避免报错 + * @author sunjianlei + **/ +export function getRefPromise(vm, name) { + return new Promise((resolve) => { + ;(function next() { + const ref = vm.$refs[name] + if (ref) { + resolve(ref) + } else { + setTimeout(() => { + next() + }, 10) + } + })() + }) +} + +/** + * 一次性验证主表单和所有的次表单 + * @param form 主表单 form 对象 + * @param cases 接收一个数组,每项都是一个JEditableTable实例 + * @returns {Promise} + * @author sunjianlei + */ +export function validateFormAndTables(form, cases) { + if (!(form && typeof form.validateFields === 'function')) { + throw `form 参数需要的是一个form对象,而传入的却是${typeof form}` + } + + const options = {} + return new Promise((resolve, reject) => { + // 验证主表表单 + form.validateFields((err, values) => { + err ? reject({ error: VALIDATE_NO_PASSED }) : resolve(values) + }) + }) + .then((values) => { + Object.assign(options, { formValue: values }) + // 验证所有子表的表单 + return validateTables(cases) + }) + .then((all) => { + Object.assign(options, { tablesValue: all }) + return Promise.resolve(options) + }) + .catch((error) => { + return Promise.reject(error) + }) +} +/** + * 一次性验证主表单和所有的次表单(新版本) + * @param form 主表单 form 对象 + * @param cases 接收一个数组,每项都是一个JEditableTable实例 + * @returns {Promise} + * @author sunjianlei + */ +export function validateFormModelAndTables(form, values, cases) { + if (!(form && typeof form.validate === 'function')) { + throw `form 参数需要的是一个form对象,而传入的却是${typeof form}` + } + const options = {} + return new Promise((resolve, reject) => { + // 验证主表表单 + form.validate((valid) => { + valid ? resolve(values) : reject({ error: VALIDATE_NO_PASSED }) + }) + }) + .then((values) => { + Object.assign(options, { formValue: values }) + // 验证所有子表的表单 + return validateTables(cases) + }) + .then((all) => { + Object.assign(options, { tablesValue: all }) + return Promise.resolve(options) + }) + .catch((error) => { + return Promise.reject(error) + }) +} + +/** + * 验证并获取一个或多个表格的所有值 + * @param cases 接收一个数组,每项都是一个JEditableTable实例 + * @param deleteTempId 是否删除临时ID,如果设为true,行编辑就不返回新增行的ID,ID需要后台生成 + * @author sunjianlei + */ +export function validateTables(cases, deleteTempId) { + if (!(cases instanceof Array)) { + throw `'validateTables'函数的'cases'参数需要的是一个数组,而传入的却是${typeof cases}` + } + return new Promise((resolve, reject) => { + const tables = [] + let index = 0 + if (!cases || cases.length === 0) { + resolve() + } + ;(function next() { + const vm = cases[index] + vm.getAll(true, deleteTempId).then( + (all) => { + tables[index] = all + // 判断校验是否全部完成,完成返回成功,否则继续进行下一步校验 + if (++index === cases.length) { + resolve(tables) + } else { + next() + } + }, + (error) => { + // 出现未验证通过的表单,不再进行下一步校验,直接返回失败并跳转到该表格 + if (error === VALIDATE_NO_PASSED) { + // 尝试获取tabKey,如果在ATab组件内即可获取 + let paneKey + const tabPane = getVmParentByName(vm, 'ATabPane') + if (tabPane) { + paneKey = tabPane.$vnode.key + } + reject({ error: VALIDATE_NO_PASSED, index, paneKey }) + } + reject(error) + } + ) + })() + }) +} diff --git a/src/utils/LunarFullCalendarUtil.js b/src/utils/LunarFullCalendarUtil.js new file mode 100644 index 0000000..2d6a804 --- /dev/null +++ b/src/utils/LunarFullCalendarUtil.js @@ -0,0 +1,107 @@ +/** + * LunarFullCalendar 公共 js + * + * @version 1.0.0 + * @author sunjianlei + * + * */ + +import { getRefPromise } from '@/utils/JEditableTableUtil' + +/* 日历的视图类型 */ +const calendarViewType = { + month: 'month', // 月视图 + basicWeek: 'basicWeek', // 基础周视图 + basicDay: 'basicDay',// 基础天视图 + agendaWeek: 'agendaWeek', // 议程周视图 + agendaDay: 'agendaDay', // 议程天视图 +} + +/* 定义默认视图 */ +const defaultView = calendarViewType.month + +/* 定义日历默认配置 */ +const defaultSettings = { + locale: 'zh-cn', + // 按钮文字 + buttonText: { + today: '今天', + month: '月', + week: '周', + day: '日' + }, + // 头部排列方式 + header: { + left: 'prev,next, today', + center: 'title', + right: 'hide, custom, month,agendaWeek,agendaDay' + }, + //点击今天日列表图 + eventLimitClick: 'day', + // 隐藏超出的事件 + eventLimit: true, + // 设置每周开始日期为周日 + firstDay: 0, + // 默认显示视图 + defaultView, + timeFormat: 'H:mm', + axisFormat: 'H:mm', + // agenda视图下是否显示all-day + allDaySlot: true, + // agenda视图下all-day的显示文本 + allDayText: '全天', + // 时区默认本地的 + timezone: 'local', + // 周视图和日视同的左侧时间显示 + slotLabelFormat: 'HH:mm', + // 设置第二天阈值 + nextDayThreshold: '00:00:00', +} + +/** 提供了一些增强方法 */ +const CalendarMixins = { + data() { + return { + calenderCurrentViewType: defaultView + } + }, + methods: { + + getCalendarConfigEventHandler() { + return { + // 处理 view changed 事件 + viewRender: (view, element) => { + const { type } = view + + const lastViewType = this.calenderCurrentViewType + this.calenderCurrentViewType = type + + if (typeof this.handleViewRender === 'function') { + this.handleViewRender(type, view, element) + } + + if (lastViewType !== this.calenderCurrentViewType && typeof this.handleViewChanged === 'function') { + this.handleViewChanged(type, view, element) + } + + }, + } + }, + + /** 获取 LunarFullCalendar 实例,ref = baseCalendar */ + getCalendar(fn) { + return getRefPromise(this, 'baseCalendar').then(fn) + }, + + calendarEmit(name, data) { + this.getCalendar(ref => ref.$emit(name, data)) + }, + + /** 强制重新加载所有的事件(日程)*/ + calendarReloadEvents() { + this.calendarEmit('reload-events') + } + } +} + +export { defaultSettings, calendarViewType, CalendarMixins } \ No newline at end of file diff --git a/src/utils/auth.js b/src/utils/auth.js new file mode 100644 index 0000000..03ae469 --- /dev/null +++ b/src/utils/auth.js @@ -0,0 +1,19 @@ +/** + * 弃用 + */ +import { setStore, getStore, clearStore } from "@/utils/storage" + +export const TokenKey = 'Access-Token' + +export function getToken() { + return getStore(TokenKey) +} + +export function setToken(token) { + // key, token, timeout = 86400s + return setStore(TokenKey, token, 86400) +} + +export function removeToken() { + return clearStore(TokenKey) +} \ No newline at end of file diff --git a/src/utils/authFilter.js b/src/utils/authFilter.js new file mode 100644 index 0000000..fb15ba5 --- /dev/null +++ b/src/utils/authFilter.js @@ -0,0 +1,340 @@ +import { USER_AUTH, SYS_BUTTON_AUTH } from '@/store/mutation-types' + +export function disabledAuthFilter(code, formData) { + if (nodeDisabledAuth(code, formData)) { + return true + } else { + return globalDisabledAuth(code) + } +} + +function nodeDisabledAuth(code, formData) { + //console.log("页面权限禁用--NODE--开始"); + let permissionList = [] + try { + //console.log("页面权限禁用--NODE--开始",formData); + if (formData) { + const bpmList = formData.permissionList + permissionList = bpmList.filter((item) => item.type === '2') + // for (let bpm of bpmList) { + // if(bpm.type === '2') { + // permissionList.push(bpm); + // } + // } + } else { + return false + } + } catch (e) { + //console.log("页面权限异常----", e); + } + if (permissionList.length === 0) { + return false + } + + console.log('流程节点页面权限禁用--NODE--开始') + const permissions = [] + for (const item of permissionList) { + if (item.type === '2') { + permissions.push(item.action) + } + } + //console.log("页面权限----"+code); + if (!permissions.includes(code)) { + return false + } else { + for (const item2 of permissionList) { + if (code === item2.action) { + console.log('流程节点页面权限禁用--NODE--生效') + return true + } + } + } + return false +} + +// function globalDisabledAuth(code) { +// //console.log("全局页面禁用权限--Global--开始"); + +// const permissionList = [] +// const allPermissionList = [] + +// //let authList = Vue.ls.get(USER_AUTH); +// const authList = JSON.parse(sessionStorage.getItem(USER_AUTH) || '[]') +// for (const auth of authList) { +// if (auth.type === '2') { +// permissionList.push(auth) +// } +// } +// //console.log("页面禁用权限--Global--",sessionStorage.getItem(SYS_BUTTON_AUTH)); +// const allAuthList = JSON.parse(sessionStorage.getItem(SYS_BUTTON_AUTH) || '[]') +// for (const gauth of allAuthList) { +// if (gauth.type === '2') { +// allPermissionList.push(gauth) +// } +// } +// //设置全局配置是否有命中 +// let gFlag = false //禁用命中 +// let invalidFlag = false //无效命中 +// if ( +// allPermissionList !== null && +// allPermissionList !== '' && +// allPermissionList !== undefined && +// allPermissionList.length > 0 +// ) { +// for (const itemG of allPermissionList) { +// if (code === itemG.action) { +// if (itemG.status === '0') { +// invalidFlag = true +// break +// } else { +// gFlag = true +// break +// } +// } +// } +// } +// if (invalidFlag) { +// return false +// } +// if (permissionList === null || permissionList === '' || permissionList === undefined || permissionList.length <= 0) { +// return gFlag +// } +// const permissions = [] +// for (const item of permissionList) { +// if (item.type === '2') { +// permissions.push(item.action) +// } +// } +// //console.log("页面禁用权限----"+code); +// if (!permissions.includes(code)) { +// return gFlag +// } else { +// for (const item2 of permissionList) { +// if (code === item2.action) { +// //console.log("全局页面权限解除禁用--Global--生效"); +// gFlag = false +// } +// } +// return gFlag +// } +// } +function globalDisabledAuth(code) { + // 从存储中获取权限列表并解析 + const authList = JSON.parse(sessionStorage.getItem(USER_AUTH) || '[]'); + const allAuthList = JSON.parse(sessionStorage.getItem(SYS_BUTTON_AUTH) || '[]'); + + // 筛选出类型为'2'的权限 + const permissionList = authList.filter(auth => auth.type === '2'); + const allPermissionList = allAuthList.filter(auth => auth.type === '2'); + + // 检查全局权限配置 + let globalDisabled = false; + let isInvalid = false; + + // 遍历全局权限列表查找匹配项 + for (const item of allPermissionList) { + if (item.action === code) { + isInvalid = item.status === '0'; + globalDisabled = item.status !== '0'; + break; + } + } + + // 无效状态直接返回false + if (isInvalid) {return false;} + + // 没有页面权限时直接返回全局配置结果 + if (permissionList.length === 0) {return globalDisabled;} + + // 提取页面权限的action列表 + const permissionActions = permissionList.map(item => item.action); + + // 页面权限中不包含当前code时,使用全局配置结果 + if (!permissionActions.includes(code)) {return globalDisabled;} + + // 页面权限中包含当前code时,解除禁用 + return false; +} + +export function colAuthFilter(columns, pre) { + const authList = getNoAuthCols(pre) + const cols = columns.filter((item) => { + if (hasColoum(item, authList)) { + return true + } + return false + }) + return cols +} + +/** + * 【子表行编辑】实现两个功能: + * 1、隐藏JEditableTable无权限的字段 + * 2、禁用JEditableTable无权限的字段 + * @param columns + * @param pre + * @returns {*} + */ +export function colAuthFilterJEditableTable(columns, pre) { + const authList = getAllShowAndDisabledAuthCols(pre) + const cols = columns.filter((item) => { + let oneAuth = authList.find((auth) => { + return auth.action === pre + item.key + }) + if (!oneAuth) { + return true + } + + //代码严谨处理,防止一个授权标识,配置多次 + if (oneAuth instanceof Array) { + oneAuth = oneAuth[0] + } + + //禁用逻辑 + if (oneAuth.type === '2' && !oneAuth.isAuth) { + item['disabled'] = true + return true + } + //隐藏逻辑逻辑 + if (oneAuth.type === '1' && !oneAuth.isAuth) { + return false + } + return true + }) + return cols +} + +function hasColoum(item, authList) { + if (authList.includes(item.dataIndex)) { + return false + } + return true +} + +//权限无效时不做控制,有效时控制,只能控制 显示不显示 +//根据授权码前缀获取未授权的列信息 +// export function getNoAuthCols(pre) { +// if (!pre || pre.length === 0) { +// return [] +// } +// const permissionList = [] +// const allPermissionList = [] + +// //let authList = Vue.ls.get(USER_AUTH); +// const authList = JSON.parse(sessionStorage.getItem(USER_AUTH) || '[]') +// for (const auth of authList) { +// //显示策略,有效状态 +// if (auth.type === '1' && startWith(auth.action, pre)) { +// permissionList.push(substrPre(auth.action, pre)) +// } +// } +// //console.log("页面禁用权限--Global--",sessionStorage.getItem(SYS_BUTTON_AUTH)); +// const allAuthList = JSON.parse(sessionStorage.getItem(SYS_BUTTON_AUTH) || '[]') +// for (const gauth of allAuthList) { +// //显示策略,有效状态 +// if (gauth.type === '1' && gauth.status === '1' && startWith(gauth.action, pre)) { +// allPermissionList.push(substrPre(gauth.action, pre)) +// } +// } +// const cols = allPermissionList.filter((item) => { +// if (permissionList.includes(item)) { +// return false +// } +// return true +// }) +// return cols +// } +export function getNoAuthCols(pre) { + // 前置校验:前缀为空直接返回空数组 + if (!pre || pre.length === 0) { + return []; + } + + // 从存储中获取权限列表 + const authList = JSON.parse(sessionStorage.getItem(USER_AUTH) || '[]'); + const allAuthList = JSON.parse(sessionStorage.getItem(SYS_BUTTON_AUTH) || '[]'); + + // 筛选并处理用户权限列表 + const permissionList = authList + .filter(auth => auth.type === '1' && startWith(auth.action, pre)) + .map(auth => substrPre(auth.action, pre)); + + // 筛选并处理全局权限列表 + const allPermissionList = allAuthList + .filter(auth => auth.type === '1' && auth.status === '1' && startWith(auth.action, pre)) + .map(auth => substrPre(auth.action, pre)); + + // 找出全局有权限但用户无权限的列 + return allPermissionList.filter(item => !permissionList.includes(item)); +} + + +/** + * 将Online的行编辑按钮权限,添加至本地存储 + */ +export function addOnlineBtAuth2Storage(pre, authList) { + const allAuthList = JSON.parse(sessionStorage.getItem(SYS_BUTTON_AUTH) || '[]') + const newAuthList = allAuthList.filter((item) => { + if (!item.action) { + return true + } + return item.action.indexOf(pre) < 0 + }) + if (authList && authList.length > 0) { + for (const item of authList) { + newAuthList.push({ + action: pre + item, + type: 1, + status: 1, + }) + } + const temp = JSON.parse(sessionStorage.getItem(USER_AUTH) || '[]') + const newArr = temp.filter((item) => { + if (!item.action) { + return true + } + return item.action.indexOf(pre) < 0 || authList.indexOf(item.action.replace(pre, '')) < 0 + }) + sessionStorage.setItem(USER_AUTH, JSON.stringify(newArr)) + } + sessionStorage.setItem(SYS_BUTTON_AUTH, JSON.stringify(newAuthList)) +} + +/** + * 额外增加方法【用于行编辑组件】 + * date: 2020-04-05 + * author: scott + * @param pre + * @returns {*[]} + */ +function getAllShowAndDisabledAuthCols() { + //用户拥有的权限 + const userAuthList = JSON.parse(sessionStorage.getItem(USER_AUTH) || '[]') + //全部权限配置 + const allAuthList = JSON.parse(sessionStorage.getItem(SYS_BUTTON_AUTH) || '[]') + + const newAllAuthList = allAuthList.map(function (item) { + const hasAuthArray = userAuthList.filter((u) => u.action === item.action) + if (hasAuthArray && hasAuthArray.length > 0) { + item['isAuth'] = true + } + return item + }) + + return newAllAuthList +} + +function startWith(str, pre) { + if (pre === null || pre === '' || str === null || str === '' || str.length === 0 || pre.length > str.length) { + return false + } + if (str.substr(0, pre.length) === pre) { + return true + } else { + return false + } +} + +function substrPre(str, pre) { + return str.substr(pre.length) +} diff --git a/src/utils/axios.js b/src/utils/axios.js new file mode 100644 index 0000000..de27d4c --- /dev/null +++ b/src/utils/axios.js @@ -0,0 +1,37 @@ +const VueAxios = { + vm: {}, + // eslint-disable-next-line no-unused-vars + install(Vue, router = {}, instance) { + if (this.installed) { + return; + } + this.installed = true; + + if (!instance) { + // eslint-disable-next-line no-console + console.error('You have to install axios'); + return; + } + + Vue.axios = instance; + + Object.defineProperties(Vue.prototype, { + axios: { + get: function get() { + return instance; + } + }, + $http: { + get: function get() { + return instance; + } + } + }); + } +}; + +export { + VueAxios, + // eslint-disable-next-line no-undef + //instance as axios +} \ No newline at end of file diff --git a/src/utils/browser.js b/src/utils/browser.js new file mode 100644 index 0000000..fe28f50 --- /dev/null +++ b/src/utils/browser.js @@ -0,0 +1,38 @@ +//判断是否IE<11浏览器 +export function isIE() { + return navigator.userAgent.indexOf('compatible') > -1 && navigator.userAgent.indexOf('MSIE') > -1 + +} + +export function isIE11() { + return navigator.userAgent.indexOf('Trident') > -1 && navigator.userAgent.indexOf('rv:11.0') > -1 +} + +//判断是否IE的Edge浏览器 +export function isEdge() { + return navigator.userAgent.indexOf('Edge') > -1 && !isIE() +} + +export function getIEVersion() { + const userAgent = navigator.userAgent //取得浏览器的userAgent字符串 + const isIE = isIE() + const isIE11 = isIE11() + const isEdge = isEdge() + + if (isIE) { + const reIE = new RegExp('MSIE (\\d+\\.\\d+);') + reIE.test(userAgent) + const fIEVersion = parseFloat(RegExp['$1']) + if (fIEVersion === 7 || fIEVersion === 8 || fIEVersion === 9 || fIEVersion === 10) { + return fIEVersion + } else { + return 6//IE版本<7 + } + } else if (isEdge) { + return 'edge' + } else if (isIE11) { + return 11 + } else { + return -1 + } +} \ No newline at end of file diff --git a/src/utils/codeTableCache.js b/src/utils/codeTableCache.js new file mode 100644 index 0000000..7452387 --- /dev/null +++ b/src/utils/codeTableCache.js @@ -0,0 +1,32 @@ +import { getDictItemsFromCache } from '@/api/api' +const CodeTable={ + methods:{ + getCodeName(dictCode, code){ + const value = code || ''; + if (value === '') { + return ''; + } + if (!dictCode) { + return value; + } + const codes=getDictItemsFromCache(dictCode) + if (!codes) { + return value; + } + + // 使用原生数组find方法替代jQuery的each + const found = codes.find(c => c.value === value); + return found ? found.text : value; + + // let name = value; + // $(codes).each(function (i, c) { + // if (c.value === value) { + // name = c.text; + // return false; + // } + // }); + // return name; + } + } +} +export { CodeTable } \ No newline at end of file diff --git a/src/utils/desform/CustomExpression.js b/src/utils/desform/CustomExpression.js new file mode 100644 index 0000000..f58009d --- /dev/null +++ b/src/utils/desform/CustomExpression.js @@ -0,0 +1,22 @@ +/* +* +* 这里填写用户自定义的表达式 +* 可用在Online表单的默认值表达式中使用 +* 需要外部使用的变量或方法一定要 export,否则无法识别 +* 示例: +* export const name = '张三'; // const 是常量 +* export let age = 17; // 看情况 export const 还是 let ,两者都可正常使用 +* export function content(arg) { // export 方法,可传参数,使用时要加括号,值一定要return回去,可以返回Promise +* return 'content' + arg; +* } +* export const address = (arg) => content(arg) + ' | 北京市'; // export 箭头函数也可以 +* +*/ + +/** 字段默认值官方示例:获取地址 */ +export function demoFieldDefVal_getAddress(arg) { + if (!arg) { + arg = '朝阳区' + } + return `北京市 ${arg}` +} \ No newline at end of file diff --git a/src/utils/device.js b/src/utils/device.js new file mode 100644 index 0000000..6bf15fc --- /dev/null +++ b/src/utils/device.js @@ -0,0 +1,23 @@ +import enquireJs from 'enquire.js' + +const enquireScreen = function (call) { + // tablet + const handler = { + match: function () { + call && call(0) + }, + unmatch: function () { + call && call(-1) + } + } + // mobile + const handler2 = { + match: () => { + call && call(1) + } + } + enquireJs.register('screen and (max-width: 1087.99px)', handler) + enquireJs.register('screen and (max-width: 767.99px)', handler2) +} + +export default enquireScreen \ No newline at end of file diff --git a/src/utils/draggable-resizable.js b/src/utils/draggable-resizable.js new file mode 100644 index 0000000..9e2c127 --- /dev/null +++ b/src/utils/draggable-resizable.js @@ -0,0 +1,44 @@ +import Vue from 'vue' +import VueDraggableResizable from 'vue-draggable-resizable' +Vue.component('vue-draggable-resizable', VueDraggableResizable) + +export const dragResizableFunc = ( columns )=>{ + return { + header: { + cell: (h, props, children) => { + const { key, ...restProps } = props + const col = columns.find(col => { + const k = col.dataIndex || col.key + return k === key + }) + + if (!col || !col.width) { + return h('th', { ...restProps }, [...children]) + } + + const dragProps = { + key: col.dataIndex || col.key, + class: 'table-draggable-handle', + attrs: { + w: 10, + x: col.width, + z: 1, + axis: 'x', + draggable: true, + transform: 'none', + resizable: false + }, + on: { + dragging: (x) => { + col.width = Math.max(x, 90) + } + } + } + // console.log(dragProps,'dragProps') + const drag = h('vue-draggable-resizable', { ...dragProps }) + // console.log(drag,'drag') + return h('th', { ...restProps, class: 'resize-table-th' }, [...children, drag]) + } + } + } +} diff --git a/src/utils/encryption/aesEncrypt.js b/src/utils/encryption/aesEncrypt.js new file mode 100644 index 0000000..1bde766 --- /dev/null +++ b/src/utils/encryption/aesEncrypt.js @@ -0,0 +1,17 @@ +import { getAction } from '@/api/manage' +import { ENCRYPTED_STRING } from '@/store/mutation-types' +import Vue from 'vue' + +/** + * 获取加密字符串,并对结果进行缓存 + */ +export function getEncryptedString() { + return getAction('/sys/getEncryptedString', {}).then((res) => { + const encryptedString = {} + encryptedString.key = res.result.key + encryptedString.iv = res.result.iv + Vue.ls.set(ENCRYPTED_STRING, encryptedString, 7 * 24 * 60 * 60 * 1000) + return encryptedString + }) +} + diff --git a/src/utils/encryption/signMd5Utils.js b/src/utils/encryption/signMd5Utils.js new file mode 100644 index 0000000..2f1a15e --- /dev/null +++ b/src/utils/encryption/signMd5Utils.js @@ -0,0 +1,152 @@ +/* eslint-disable */ +import md5 from 'md5' +//签名密钥串(前后端要一致,正式发布请自行修改) +const signatureSecret = '5bcd3cb9e10f4c5e8eb246e8a9cbbc25' +const encryptionSalts = 'K3aT8nXqJ9bZ7cV4' + +export default class signMd5Utils { + /** + * 获取签名密钥 + */ + static getSignatureSecret() { + return signatureSecret + } + + /** + * 获取签名密钥 + */ + static getEncryptionSalts() { + return encryptionSalts + } + + /** + * json参数升序 + * @param jsonObj 发送参数 + */ + + static sortAsc(jsonObj) { + const arr = new Array() + let num = 0 + for (const i in jsonObj) { + // 只处理对象自身的属性,过滤原型链上的属性 + if (jsonObj.hasOwnProperty(i)) { + arr[num] = i; + num++; + } + } + const sortArr = arr.sort() + const sortObj = {} + for (const i in sortArr) { + if (sortArr.hasOwnProperty(i)) { + sortObj[sortArr[i]] = jsonObj[sortArr[i]] + } + } + return sortObj + } + + /** + * @param url 请求的url,应该包含请求参数(url的?后面的参数) + * @param requestParams 请求参数(POST的JSON参数) + * @returns {string} 获取签名 + */ + static getSign(url, requestParams) { + const urlParams = this.parseQueryString(url) + const jsonObj = this.mergeObject(urlParams, requestParams) + //console.log("sign jsonObj: ",jsonObj) + const requestBody = this.sortAsc(jsonObj) + return md5(JSON.stringify(requestBody) + signatureSecret).toUpperCase() + } + + /** + * @param url 请求的url + * @returns {{}} 将url中请求参数组装成json对象(url的?后面的参数) + */ + static parseQueryString(url) { + const urlReg = /^[^\?]+\?([\w\W]+)$/, + paramReg = /([^&=]+)=([\w\W]*?)(&|$|#)/g, + urlArray = urlReg.exec(url), + result = {} + + let lastpathVariable = url.substring(url.lastIndexOf('/') + 1) + if (lastpathVariable.includes(',')) { + if (lastpathVariable.includes('?')) { + lastpathVariable = lastpathVariable.substring(0, lastpathVariable.indexOf('?')) + } + //解决Sign 签名校验失败 #2728 + result['x-path-variable'] = decodeURIComponent(lastpathVariable) + } + if (urlArray && urlArray[1]) { + const paramString = urlArray[1] + let paramResult = '' + while ((paramResult = paramReg.exec(paramString)) !== null) { + //数字值转为string类型,前后端加密规则保持一致 + if (this.myIsNaN(paramResult[2])) { + paramResult[2] = paramResult[2].toString() + } + result[paramResult[1]] = paramResult[2] + } + } + return result + } + + /** + * @returns {*} 将两个对象合并成一个 + */ + static mergeObject(objectOne, objectTwo) { + if (objectTwo && Object.keys(objectTwo).length > 0) { + const objectTwoDeep = JSON.parse(JSON.stringify(objectTwo)) + for (const key in objectTwoDeep) { + if (Object.prototype.hasOwnProperty.call(objectTwoDeep, key) === true) { + //数字值转为string类型,前后端加密规则保持一致 + if (this.myIsNaN(objectTwoDeep[key])) { + objectTwoDeep[key] = objectTwoDeep[key].toString() + } + objectOne[key] = objectTwoDeep[key] + } + } + } + return objectOne + } + + static urlEncode(param, key, encode) { + if (param === null) { + return '' + } + let paramStr = '' + const t = typeof param + if (t === 'string' || t === 'number' || t === 'boolean') { + paramStr += '&' + key + '=' + (encode === null || encode ? encodeURIComponent(param) : param) + } else { + for (const i in param) { + if (param.hasOwnProperty(i)) { + const k = key === null ? i : key + (param instanceof Array ? '[' + i + ']' : '.' + i) + paramStr += this.urlEncode(param[i], k, encode) + } + } + } + return paramStr + } + + static getDateTimeToString() { + // const date_ = new Date() + // const year = date_.getFullYear() + // let month = date_.getMonth() + 1 + // let day = date_.getDate() + // if (month < 10) month = '0' + month + // if (day < 10) day = '0' + day + // let hours = date_.getHours() + // let mins = date_.getMinutes() + // let secs = date_.getSeconds() + // const msecs = date_.getMilliseconds() + // if (hours < 10) hours = '0' + hours + // if (mins < 10) mins = '0' + mins + // if (secs < 10) secs = '0' + secs + // if (msecs < 10) secs = '0' + msecs + // return year + '' + month + '' + day + '' + hours + '' + mins + '' + secs + return new Date().getTime() + } + // true:数值型的,false:非数值型 + static myIsNaN(value) { + return typeof value === 'number' && !isNaN(value) + } +} diff --git a/src/utils/filter.js b/src/utils/filter.js new file mode 100644 index 0000000..e2076ee --- /dev/null +++ b/src/utils/filter.js @@ -0,0 +1,29 @@ +import Vue from "vue"; +import * as dayjs from "dayjs"; + +Vue.filter('NumberFormat', function (value) { + if (!value) { + return '0' + } + const intPartFormat = value.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') //将整数部分逢三一断 + return intPartFormat +}) + +Vue.filter('dayjs', function(dataStr, pattern = 'YYYY-MM-DD HH:mm:ss') { + return dayjs(dataStr).format(pattern) +}) + +Vue.filter('moment', function(dataStr, pattern = 'YYYY-MM-DD HH:mm:ss') { + return dayjs(dataStr).format(pattern) +}) + +/** 字符串超长截取省略号显示 */ +Vue.filter('ellipsis', function (value, vlength = 25) { + if(!value){ + return ""; + } + if (value.length > vlength) { + return value.slice(0, vlength) + '...' + } + return value +}) \ No newline at end of file diff --git a/src/utils/hasPermission.js b/src/utils/hasPermission.js new file mode 100644 index 0000000..f8cd82a --- /dev/null +++ b/src/utils/hasPermission.js @@ -0,0 +1,57 @@ +import { USER_AUTH } from '@/store/mutation-types'; + +const hasPermission = { + install(Vue) { + Vue.directive('has', { + inserted: (el, binding, vnode) => { + // 原有逻辑:先检查节点权限,没有则检查全局权限并移除元素 + if (!filterNodePermission(el, binding, vnode)) { + // 这里调用改造后的filterGlobalPermission,若仍无权限则移除元素 + if (!filterGlobalPermission(binding)) { + el.parentNode?.removeChild(el); + } + } + }, + }); + }, +}; + +// 改造:返回是否有节点权限(布尔值) +export function filterNodePermission(_el, binding, vnode) { + try { + const { formData } = vnode.context.$props; + if (!formData?.permissionList) { + return false; + } + const permissions = formData.permissionList + .filter((bpm) => bpm.type !== '2') + .map((permission) => permission.action); + return permissions.length > 0 && permissions.includes(binding.value); + } catch (e) { + return false; + } +} + +// 改造:返回是否有全局权限(布尔值) +export function filterGlobalPermission(binding) { + if (process.env.VUE_APP_SSO === 'false') { + return true; + } + const authList = JSON.parse(sessionStorage.getItem(USER_AUTH) || '[]'); + const permissions = authList + .filter((auth) => auth.type !== '2' && auth.action) + .flatMap((auth) => auth.action.split(',').filter((action) => action.trim().length > 0)); + return permissions.includes(binding.value); +} + +// 新增:复用上述两个函数的权限判断逻辑 +export function checkPermission(permission, context) { + const binding = { value: permission }; + const vnode = { context }; + + // 先检查节点权限,有则返回true;否则检查全局权限 + return filterNodePermission(null, binding, vnode) || filterGlobalPermission(binding); +} + +export default hasPermission; + diff --git a/src/utils/mixin.js b/src/utils/mixin.js new file mode 100644 index 0000000..8a6c89e --- /dev/null +++ b/src/utils/mixin.js @@ -0,0 +1,40 @@ +// import Vue from 'vue' +import { mapState } from "vuex"; + +// const mixinsComputed = Vue.config.optionMergeStrategies.computed +// const mixinsMethods = Vue.config.optionMergeStrategies.methods + +const mixin = { + computed: { + ...mapState({ + layoutMode: state => state.app.layout, + navTheme: state => state.app.theme, + primaryColor: state => state.app.color, + colorWeak: state => state.app.weak, + multipage: state => state.app.multipage,//多页签设置 + fixedHeader: state => state.app.fixedHeader, + fixSiderbar: state => state.app.fixSiderbar, + contentWidth: state => state.app.contentWidth, + autoHideHeader: state => state.app.autoHideHeader, + sidebarOpened: state => state.app.sidebar.opened + }) + } +} + +const mixinDevice = { + computed: { + ...mapState({ + device: state => state.app.device, + }) + }, + methods: { + isMobile () { + return this.device === 'mobile' + }, + isDesktop () { + return this.device === 'desktop' + } + } +} + +export { mixin, mixinDevice } \ No newline at end of file diff --git a/src/utils/permissions.js b/src/utils/permissions.js new file mode 100644 index 0000000..e4b60bc --- /dev/null +++ b/src/utils/permissions.js @@ -0,0 +1,8 @@ +export function actionToObject(json) { + try { + return JSON.parse(json) + } catch (e) { + console.log('err', e.message) + } + return [] +} \ No newline at end of file diff --git a/src/utils/portal/constant.js b/src/utils/portal/constant.js new file mode 100644 index 0000000..cadf2ba --- /dev/null +++ b/src/utils/portal/constant.js @@ -0,0 +1,20 @@ +/** + * 功能模块 + * @type {{LEAVE_EARLY: {text: string, value: string}, LATE: {text: string, value: string}, ABSENT: {text: string, value: string}, NO_SIGN: {text: string, value: string}, NORMAL: {text: string, value: string}}} + */ +export const FunctionEnum = { + EoaCmsBanner: { path: 'modules/eoa/cmsoa/modules/EoaCmsBanner', formData: 'carouselImg' }, + EoaCmsNewsInfo: { path: 'modules/eoa/cmsoa/modules/EoaCmsNewsInfo', formData: 'newsInfo' }, + EoaCmsRuleInfo: { path: 'modules/eoa/cmsoa/modules/EoaCmsRuleInfo', formData: 'ruleDownInfo' }, + EoaCmsSignNews: { path: 'modules/eoa/cmsoa/modules/EoaCmsSignNews', formData: 'signNews' }, + EoaCmsUserNotice: { path: 'modules/eoa/cmsoa/modules/EoaCmsUserNotice', formData: 'userNotice' }, + EoaCmsPlan: { path: 'modules/eoa/cmsoa/modules/EoaCmsPlan', formData: '' }, + EoaCmsLink: { path: 'modules/eoa/cmsoa/modules/EoaCmsLink', formData: '' }, + EoaCmsCommUse:{ path: 'modules/eoa/cmsbpm/modules/EoaCmsCommUse', formData: '' }, + EoaCmsMyProcess:{ path: 'modules/eoa/cmsbpm/modules/EoaCmsMyProcess', formData: '' }, + EoaCmsApplyProcess:{ path: 'modules/eoa/cmsbpm/modules/EoaCmsApplyProcess', formData: '' }, + EoaCmsProcessNotice:{ path: 'modules/eoa/cmsbpm/modules/EoaCmsProcessNotice', formData: '' }, + EoaCmsProcessChatData:{ path: 'modules/eoa/cmsbpm/modules/EoaCmsProcessChatData', formData: '' }, + EoaCmsProcessTypeChat:{ path: 'modules/eoa/cmsbpm/modules/EoaCmsProcessTypeChat', formData: '' }, + EoaCmsEmail:{ path: 'modules/eoa/cmsbpm/modules/EoaCmsEmail', formData: '' }, +} \ No newline at end of file diff --git a/src/utils/props-util.js b/src/utils/props-util.js new file mode 100644 index 0000000..a19ab2c --- /dev/null +++ b/src/utils/props-util.js @@ -0,0 +1,142 @@ +/** + * 该文件截取自 "ant-design-vue/es/_util/props-util.js" 文件,并对其做出特殊修改 + */ +function classNames() { + return Array.from(arguments) + .flatMap(arg => { + // 过滤假值 + if (!arg) {return [];} + + // 处理字符串和数字 + if (typeof arg === 'string' || typeof arg === 'number') { + return [arg]; + } + + // 递归处理数组 + if (Array.isArray(arg)) { + const inner = classNames(...arg); + return inner ? [inner] : []; + } + + // 处理对象 + if (typeof arg === 'object') { + return Object.keys(arg).filter(key => arg[key]); + } + + return []; + }) + .join(' '); +} + +// // function classNames() { +// const classes = [] + +// for (let i = 0; i < arguments.length; i++) { +// const arg = arguments[i] +// if (!arg) {continue} + +// const argType = typeof arg + +// if (argType === 'string' || argType === 'number') { +// classes.push(arg) +// } else if (Array.isArray(arg) && arg.length) { +// const inner = classNames.apply(null, arg) +// if (inner) { +// classes.push(inner) +// } +// } else if (argType === 'object') { +// for (const key in arg) { +// if (Object.prototype.hasOwnProperty(arg,key) && arg[key]) { +// classes.push(key) +// } +// } +// } +// } +// return classes.join(' ') +// } + +const camelizeRE = /-(\w)/g + +function camelize(str) { + return str.replace(camelizeRE, (_, c) => (c ? c.toUpperCase() : '')) +} + + +function objectCamelize(obj) { + const res = {} + Object.keys(obj).forEach(k => (res[camelize(k)] = obj[k])) + return res +} + +function parseStyleText(cssText = '', camel) { + const res = {} + const listDelimiter = /;(?![^(]*\))/g + const propertyDelimiter = /:(.+)/ + cssText.split(listDelimiter).forEach(function (item) { + if (item) { + const tmp = item.split(propertyDelimiter) + if (tmp.length > 1) { + const k = camel ? camelize(tmp[0].trim()) : tmp[0].trim() + res[k] = tmp[1].trim() + } + } + }) + return res +} + +export function getClass(ele) { + let data = {} + if (ele.data) { + data = ele.data + } else if (ele.$vnode && ele.$vnode.data) { + data = ele.$vnode.data + } + const tempCls = data.class || {} + const staticClass = data.staticClass + let cls = {} + staticClass && + staticClass.split(' ').forEach(c => { + cls[c.trim()] = true + }) + if (typeof tempCls === 'string') { + tempCls.split(' ').forEach(c => { + cls[c.trim()] = true + }) + } else if (Array.isArray(tempCls)) { + classNames(tempCls) + .split(' ') + .forEach(c => { + cls[c.trim()] = true + }) + } else { + cls = { ...cls, ...tempCls } + } + return cls +} + +export function getStyle(ele, camel) { + + getClass(ele) + + let data = {} + if (ele.data) { + data = ele.data + } else if (ele.$vnode && ele.$vnode.data) { + data = ele.$vnode.data + } + + // update-begin-author:sunjianlei date:20200303 for: style 和 staticStyle 可以共存 + let style = data.style || {} + let staticStyle = data.staticStyle + staticStyle = staticStyle ? objectCamelize(data.staticStyle) : {} + // update-end-author:sunjianlei date:20200303 for: style 和 staticStyle 可以共存 + + if (typeof style === 'string') { + style = parseStyleText(style, camel) + } else if (camel && style) { + // 驼峰化 + style = objectCamelize(style) + } + return { ...staticStyle, ...style } +} + diff --git a/src/utils/request.js b/src/utils/request.js new file mode 100644 index 0000000..737c8d4 --- /dev/null +++ b/src/utils/request.js @@ -0,0 +1,268 @@ +/* eslint-disable */ +import Vue from 'vue' +import axios from 'axios' +import store from '@/store' +import { VueAxios } from './axios' +import router from '@/router/index' +import { ACCESS_TOKEN } from '@/store/mutation-types' + +/** + * 【指定 axios的 baseURL】 + * 如果手工指定 baseURL: '/jeecg-boot' + * 则映射后端域名,通过 vue.config.js + * @type {*|string} + */ +// const apiBaseUrl = '/gcs' +const apiBaseUrl = window._CONFIG['domianURL'] || "/gcs"; +//console.log("apiBaseUrl= ",apiBaseUrl) +// 创建 axios 实例 +const service = axios.create({ + //baseURL: '/jeecg-boot', + baseURL: apiBaseUrl, // api base_url + timeout: 180000, // 请求超时时间 + withCredentials: true, +}) + +const CancelToken = axios.CancelToken +const pending = [] //声明一个数组用于存储每个请求 +const removePending = (config) => { + for (const p in pending) { + if (pending[p].url === config.url + '&' + config.method) { + pending[p].cancel('') // 只有pending状态时才会执行取消请求操作,因为其他状态时已经请求完成了,没必要进行中断请求了。 + pending.splice(p, 1) + } + } +} +const responseInterceptResolve = (response) => { + removePending(response.config) //对已经fullfilled的请求从pending中清除 + const type = response.request.responseType + if (type === 'blob') { + const fileName = response.headers['content-disposition'] + const dwObj = {} + dwObj.fileName = fileName + response.data.fileName = fileName + dwObj.data = response.data + return Promise.resolve(response.data).catch((err) => { + console.error(err) + }) + } + return Promise.resolve(response.data).catch((err) => { + console.error(err) + }) +} + +const err = (error) => { + if (error.response) { + const data = error.response.data + const token = Vue.ls.get(ACCESS_TOKEN) + console.log('------异常响应------', token) + console.log('------异常响应------', error.response.status) + switch (error.response.status) { + case 403: + Vue.prototype.$Jnotification.error({ + title: '系统提示', + message: '没有权限,拒绝访问,请联系管理员!', + }) + break + case 500: + console.log('------error.response------', error.response) + // update-begin- --- author:liusq ------ date:20200910 ---- for:处理Blob情况---- + const type = error.response.request.responseType + if (type === 'blob') { + blobToJson(data) + break + } + // update-end- --- author:liusq ------ date:20200910 ---- for:处理Blob情况---- + if (token && data.message.includes('Token失效')) { + // update-begin- --- author:scott ------ date:20190225 ---- for:Token失效采用弹框模式,不直接跳转---- + if (/wxwork|dingtalk/i.test(navigator.userAgent)) { + Vue.prototype.$Jmessage.loading('登录已过期,正在重新登陆', 0) + } else { + Vue.prototype.$Jmodal.error({ + title: '登录已过期', + content: '很抱歉,登录已过期,请重新登录', + okText: '重新登录', + mask: false, + onOk: () => { + store.dispatch('Logout').then(() => { + Vue.ls.remove(ACCESS_TOKEN) + try { + const path = window.document.location.pathname + console.log('location pathname -> ' + path) + if (path !== '/' && path.indexOf('/user/login') === -1) { + window.location.reload() + } + } catch (e) { + window.location.reload() + } + }) + }, + }) + } + // update-end- --- author:scott ------ date:20190225 ---- for:Token失效采用弹框模式,不直接跳转---- + } + break + case 404: + Vue.prototype.$Jnotification.error({ + title: '系统提示', + message: '很抱歉,资源未找到!', + }) + break + case 504: + Vue.prototype.$Jnotification.error({ + title: '系统提示', + message: '网络超时', + }) + break + case 401: + Vue.prototype.$Jnotification.error({ + title: '系统提示', + message: '很抱歉,登录已过期,请重新登录', + }) + const sevice = 'https://' + window.location.host + window.location.pathname + const serviceUrl = encodeURIComponent(sevice) + const URL = process.env.VUE_APP_CAS_BASE_URL + '?service=' + serviceUrl + store.dispatch('Logout').then(() => { + router.push('/user/login') + // setTimeout(() => { + // window.location.reload() + // }, 1500) + }).catch(()=>{ + if(process.env.VUE_APP_SSO === 'true'){ + window.location.href = URL + } + }) + break + case 5401: + Vue.prototype.$Jnotification.error({ + title: '系统提示', + message: '很抱歉,你需要修改密码后才能登录', + }) + if (token) { + //修改密码弹窗 + store.commit('setPasswordShow', true) + } + break + default: + Vue.prototype.$Jnotification.error({ + title: '系统提示', + message: data.message, + }) + break + } + } else if (error.message) { + if (error.message.includes('timeout')) { + Vue.prototype.$Jnotification.error({ + title: '系统提示', + message: '网络超时', + }) + } else { + Vue.prototype.$Jnotification.error({ + title: '系统提示', + message: error.message, + }) + } + } + return Promise.reject(error) +} + +// request interceptor +/* eslint complexity: ["error", 20] */ +service.interceptors.request.use( + (config) => { + const token = Vue.ls.get(ACCESS_TOKEN) + if (token) { + config.headers['X-Access-Token'] = token // 让每个请求携带自定义 token 请根据实际情况自行修改 + } + + // update-begin--author:sunjianlei---date:20200723---for 如果当前在low-app环境,并且携带了appId,就向Header里传递appId + const $route = router.currentRoute + if ($route && $route.name && $route.name.startsWith('low-app') && $route.params.appId) { + config.headers['X-Low-App-ID'] = $route.params.appId + } + // update-end--author:sunjianlei---date:20200723---for 如果当前在low-app环境,并且携带了appId,就向Header里传递appId + + //update-begin-author:taoyan date:2020707 for:多租户 + // let tenantid = Vue.ls.get(TENANT_ID) + // if (!tenantid) { + // tenantid = 0 + // } + // config.headers['tenantCode'] = tenantid + + config.headers['Gate-App-Code'] = 'APP202106220004' + config.headers['tenantCode'] = 'T20210428000005' + + if (Vue.ls.get('emsNo') !== null) { + config.headers['emsNo'] = Vue.ls.get('emsNo') + } + if (Vue.ls.get('cycleNo') !== null) { + config.headers['cycleNo'] = encodeURIComponent(Vue.ls.get('cycleNo')) + } + //update-end-author:taoyan date:2020707 for:多租户 + if (config.method === 'get') { + if (config.url.indexOf('sys/dict/getDictItems') < 0) { + config.params = { + _t: Date.parse(new Date()) / 1000, + ...config.params, + } + } + if (config.url.endsWith('/list')) { + removePending(config) + config.cancelToken = new CancelToken((c) => { + pending.push({ cancel: c, url: config.url + '&' + config.method }) + }) + } + } + return config + }, + (error) => { + return Promise.reject(error) + } +) + +// response interceptor +service.interceptors.response.use(responseInterceptResolve, err) + +const installer = { + vm: {}, + install(Vue, router = {}) { + Vue.use(VueAxios, router, service) + }, +} +/** + * Blob解析 + * @param data + */ +function blobToJson(data) { + const fileReader = new FileReader() + const token = Vue.ls.get(ACCESS_TOKEN) + fileReader.onload = function () { + try { + const jsonData = JSON.parse(this.result) // 说明是普通对象数据,后台转换失败 + console.log('jsonData', jsonData) + if (jsonData.status === 500) { + console.log('token----------》', token) + if (token && jsonData.message.includes('Token失效')) { + Modal.error({ + title: '登录已过期', + content: '很抱歉,登录已过期,请重新登录', + okText: '重新登录', + mask: false, + onOk: () => { + store.dispatch('Logout').then(() => { + Vue.ls.remove(ACCESS_TOKEN) + window.location.reload() + }) + }, + }) + } + } + } catch (err) { + // 解析成对象失败,说明是正常的文件流 + console.log('blob解析fileReader返回err', err) + } + } + fileReader.readAsText(data) +} + +export { installer as VueAxios, service as axios } diff --git a/src/utils/rules.js b/src/utils/rules.js new file mode 100644 index 0000000..7413400 --- /dev/null +++ b/src/utils/rules.js @@ -0,0 +1,110 @@ +const validateMobile = (rule, value, callback) => { + const reg = /^1(3|4|5|7|8)\d{9}$/ + if (!reg.test(value)) { + callback('请输入正确手机号') + } else { + callback() + } +} +const validateEn = (rule, value, callback) => { + const reg = /^[_a-zA-Z0-9]+$/ + const reg2 = /^.{4,18}$/ + // 长度为6到18个字符 + if (value !== '' && !reg.test(value)) { + callback('只允许字母、数字、下划线') + } else if (value !== '' && !reg2.test(value)) { + callback('长度6到18个字符') + } else { + callback() + } +} +export const rules = { + mobile: [{ + required: true, + message: '请输入手机号', + trigger: 'blur' + }, { validator: validateMobile, trigger: 'blur' }], + userName: [{ + required: true, message: '请输入用户名', trigger: 'blur' + }, { validator: validateEn }], + email: [ + { required: false, type: 'email', message: '邮箱格式不正确', trigger: 'blur' } + ], + // 验证自然数 + naturalNumber: /^(([0-9]*[1-9][0-9]*)|(0+))$/, + naturalNumberMsg: '请输入自然数', + // 英文 + english: /^.[A-Za-z]+$/, + englishMsg: '请输入英文字符', + // 座机 + telephone: /^\d{3}-\d{7,8}|\d{4}-\d{7,8}$/, + telephoneMsg: '请输入正确的座机号', + // 银行卡号码 + bankCard: /^[1-9]\d{9,19}$/, + bankCardMsg: '请输入正确的银行卡号码', + // 证件号码 + IDNumber: /^[a-z0-9A-Z]{0,50}$/, + IDNumberMsg: '请输入正确的证件号码', + // 身份证号码,包括15位和18位的 + IDCard: /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{7}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$)/, + IDCardMsg: '请输入正确的身份证号码', + // QQ号码 + qq: /^[1-9]\d{4,11}$/, + qqMsg: '请输入正确的QQ号码', + // 网址, 仅支持http和https开头的 + url: /^(http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-.,@?^=%&:/~+#]*[\w\-@?^=%&/~+#])?$/, + urlMsg: '请输入以http和https开头的网址', + // 0到20位的英文字符和数字 + enNum0to20: /^[a-z0-9A-Z]{0,20}$/, + enNum0to20Msg: '请输入20位以内的英文字符和数字', + // 2到100位的中英文字符和空格 + cnEnSpace2to100: /^[a-zA-Z\u4E00-\u9FA5\s*]{2,100}$/, + cnEnSpace2to100Msg: '请输入2到100位的中英文字符和空格', + // 数字和换行符 + numLinefeed: /^[0-9\n*]+$/, + numLinefeedMsg: '请输入数字和换行符', + // 255位以内的字符 + char0to255: /^.{0,255}$/, + char0to255Msg: '请输入255位以内的字符', + required: function(min, max) { + const rule = [{ required: true, message: '', trigger: 'blur' }] + if (min) { + const r = { min: min, message: '最小长度' + min + '位字符' } + rule.push(r) + } + if (max) { + const m = { max: max, message: '最大长度' + max + '位字符' } + rule.push(m) + } + return rule + }, + select: function() { + const rule = [{ required: true, message: '', trigger: 'change' }] + return rule + }, + checked: function(min, max) { + const rule = [{ required: true, type: 'array', message: '', trigger: 'change' }] + if (min) { + const r = { type: 'array', min: min, message: '最少选择' + min + '项' } + rule.push(r) + } + if (max) { + const m = { type: 'array', max: max, message: '最多选择' + max + '项' } + rule.push(m) + } + return rule + } +} +/** + * @description 排序值验证,排序值不可以大于255 + */ +export const validateOrder = function(rule, value, callback) { + if (parseInt(value) > 255) { + return callback(new Error('排序值不可以大于255')) + } else { + callback() + } +} + + + diff --git a/src/utils/storage.js b/src/utils/storage.js new file mode 100644 index 0000000..d6c9895 --- /dev/null +++ b/src/utils/storage.js @@ -0,0 +1,78 @@ +/** + * Set storage + * + * @param name + * @param content + * @param maxAge + */ +export const setStore = (name, content, maxAge = null) => { + if (!global.window || !name) { + return; + } + + if (typeof content !== 'string') { + content = JSON.stringify(content) + } + + const storage = global.window.localStorage + + storage.setItem(name, content) + if (maxAge && !isNaN(parseInt(maxAge))) { + const timeout = parseInt(new Date().getTime() / 1000) + storage.setItem(`${name}_expire`, timeout + maxAge) + } +}; + +/** + * Get storage + * + * @param name + * @returns {*} + */ +export const getStore = name => { + if (!global.window || !name) { + return; + } + + const content = window.localStorage.getItem(name) + const _expire = window.localStorage.getItem(`${name}_expire`) + + if (_expire) { + const now = parseInt(new Date().getTime() / 1000) + if (now > _expire) { + return; + } + } + + try { + return JSON.parse(content) + } catch (e) { + return content + } +}; + +/** + * Clear storage + * + * @param name + */ +export const clearStore = name => { + if (!global.window || !name) { + return; + } + + window.localStorage.removeItem(name) + window.localStorage.removeItem(`${name}_expire`) +}; + +/** + * Clear all storage + */ +export const clearAll = () => { + if (!global.window || !name) { + return; + } + + window.localStorage.clear() +} + diff --git a/src/utils/util.js b/src/utils/util.js new file mode 100644 index 0000000..b223c92 --- /dev/null +++ b/src/utils/util.js @@ -0,0 +1,997 @@ +/* eslint-disable */ +import Vue from 'vue'; +import * as api from '@/api/api'; +import { isURL } from '@/utils/validate'; +import { ACCESS_TOKEN } from '@/store/mutation-types'; +import onlineCommons from '@jeecg/antd-online-mini'; +import { message } from 'ant-design-vue'; + +export function timeFix() { + const time = new Date(); + const hour = time.getHours(); + if (hour < 9) { + return '早上好'; + } else if (hour <= 11) { + return '上午好'; + } else if (hour <= 13) { + return '中午好'; + } else if (hour < 20) { + return '下午好'; + } else { + return '晚上好'; + } +} + +export function welcome() { + const arr = ['休息一会儿吧', '准备吃什么呢?', '要不要打一把 DOTA', '我猜你可能累了']; + const index = 0; + return arr[index]; +} + +/** + * 触发 window.resize + */ +export function triggerWindowResizeEvent() { + const event = document.createEvent('HTMLEvents'); + event.initEvent('resize', true, true); + event.eventType = 'message'; + window.dispatchEvent(event); +} + +/** + * 过滤对象中为空的属性 + * @param obj + * @returns {*} + */ +export function filterObj(obj) { + if (!(typeof obj === 'object')) { + return; + } + + for (const key in obj) { + if ( + Object.prototype.hasOwnProperty.call(obj, key) && + (obj[key] === null || obj[key] === undefined || obj[key] === '') + ) { + delete obj[key]; + } + } + return obj; +} + +/** + * 时间格式化 + * @param value + * @param fmt + * @returns {*} + */ +export function formatDate(value, fmt) { + const regPos = /^\d+(\.\d+)?$/; + if (regPos.test(value)) { + //如果是数字 + const getDate = new Date(value); + const o = { + 'M+': getDate.getMonth() + 1, + 'd+': getDate.getDate(), + 'h+': getDate.getHours(), + 'm+': getDate.getMinutes(), + 's+': getDate.getSeconds(), + 'q+': Math.floor((getDate.getMonth() + 3) / 3), + S: getDate.getMilliseconds(), + }; + if (/(y+)/.test(fmt)) { + fmt = fmt.replace(RegExp.$1, (getDate.getFullYear() + '').substr(4 - RegExp.$1.length)); + } + for (const k in o) { + if (new RegExp('(' + k + ')').test(fmt)) { + fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length)); + } + } + return fmt; + } else { + //TODO + value = value.trim(); + return value.substr(0, fmt.length); + } +} + +// 生成首页路由 +export function generateIndexRouter(data) { + // 判断是否在微应用环境中 + const isInMicroApp = typeof window !== 'undefined' && !!window.microApp; + + // 动态选择布局组件 + const layoutComponent = isInMicroApp + ? (resolve) => require(['@/components/layouts/BlankLayout'], resolve) + : (resolve) => require(['@/components/layouts/TabLayout'], resolve); + + const indexRouter = [ + { + path: '/', + name: 'dashboard', + component: layoutComponent, + meta: { + title: '首页', + }, + redirect: '/dashboard/analysis', + children: [...generateChildRouters(data)], + }, + { + path: '*', + redirect: '/404', + hidden: true, + }, + ]; + return indexRouter; +} + +// 生成嵌套路由(子路由) +function generateChildRouters(data) { + // 组件路径映射表,替代多个if-else判断 + const componentMap = { + 'modules/online/cgform/OnlCgformHeadList': onlineCommons.OnlCgformHeadList, + 'modules/online/cgform/OnlCgformCopyList': onlineCommons.OnlCgformCopyList, + 'modules/online/cgform/auto/OnlCgformAutoList': onlineCommons.OnlCgformAutoList, + 'modules/online/cgform/auto/OnlCgformTreeList': onlineCommons.OnlCgformTreeList, + 'modules/online/cgform/auto/erp/OnlCgformErpList': onlineCommons.OnlCgformErpList, + 'modules/online/cgform/auto/tab/OnlCgformTabList': onlineCommons.OnlCgformTabList, + 'modules/online/cgform/auto/innerTable/OnlCgformInnerTableList': onlineCommons.OnlCgformInnerTableList, + 'modules/online/cgreport/OnlCgreportHeadList': onlineCommons.OnlCgreportHeadList, + 'modules/online/cgreport/auto/OnlCgreportAutoList': onlineCommons.OnlCgreportAutoList, + }; + + // 处理URL中的占位符 + const processUrl = (url) => { + if (!url) { + return ''; + } + // 替换{{ }}格式的占位符变量 + return url.replace(/{{([^}}]+)?}}/g, (_, expr) => eval(expr)); /* eslint-disable-line no-eval */ + }; + + // 生成单个菜单项 + const generateMenuItem = (item) => { + // 确定组件路径前缀 + const componentPrefix = item.component.includes('layouts') ? 'components/' : 'views/'; + const component = componentPrefix + item.component; + + // 处理URL + const processedUrl = processUrl(item.meta?.url); + const metaUrl = isURL(processedUrl) ? processedUrl : item.meta?.url; + + // 确定组件路径 + const componentPath = componentMap[item.component] + ? componentMap[item.component] + : (resolve) => require(['@/' + component + '.vue'], resolve); + + // 构建基础菜单配置 + const menu = { + path: item.path, + name: item.name, + redirect: item.redirect, + component: componentPath, + hidden: item.hidden, + meta: { + title: item.meta?.title, + icon: item.meta?.icon, + url: metaUrl, + permissionList: item.meta?.permissionList, + keepAlive: item.meta?.keepAlive, + internalOrExternal: item.meta?.internalOrExternal, + componentName: item.meta?.componentName, + }, + }; + + // 处理alwaysShow配置 + if (item.alwaysShow) { + menu.alwaysShow = true; + menu.redirect = menu.path; + } + + // 递归处理子菜单 + if (item.children && item.children.length > 0) { + menu.children = generateChildRouters(item.children); + } + + return menu; + }; + + // 生成并过滤路由(只保留需要生成路由的项) + // return data.map((item) => generateMenuItem(item)).filter((menu) => !((item) => item.route === '0')) + return data.map((item) => generateMenuItem(item)); +} + +/** + * 深度克隆对象、数组 + * @param obj 被克隆的对象 + * @return 克隆后的对象 + */ +export function cloneObject(obj) { + return JSON.parse(JSON.stringify(obj)); +} + +export function safeRandom() { + const random = new Uint32Array(1); + return window.crypto.getRandomValues(random)[0] / 0xffffffff; +} +/** + * 随机生成数字 + * + * 示例:生成长度为 12 的随机数:randomNumber(12) + * 示例:生成 3~23 之间的随机数:randomNumber(3, 23) + * + * @param1 最小值 | 长度 + * @param2 最大值 + * @return int 生成后的数字 + */ +export function randomNumber() { + // 生成 最小值 到 最大值 区间的随机数 + const random = (min, max) => { + // return Math.floor(Math.random() * (max - min + 1) + min) + return Math.floor(safeRandom() * (max - min + 1) + min); + }; + if (arguments.length === 1) { + const [length] = arguments; + // 生成指定长度的随机数字,首位一定不是 0 + const nums = [...Array(length).keys()].map((i) => (i > 0 ? random(0, 9) : random(1, 9))); + return parseInt(nums.join('')); + } else if (arguments.length >= 2) { + const [min, max] = arguments; + return random(min, max); + } else { + return Number.NaN; + } +} + +/** + * 随机生成字符串 + * @param length 字符串的长度 + * @param chats 可选字符串区间(只会生成传入的字符串中的字符) + * @return string 生成的字符串 + */ +export function randomString(length, chats) { + if (!length) { + length = 1; + } + if (!chats) { + chats = '0123456789qwertyuioplkjhgfdsazxcvbnm'; + } + let str = ''; + for (let i = 0; i < length; i++) { + const num = randomNumber(0, chats.length - 1); + str += chats[num]; + } + return str; +} + +/** + * 随机生成uuid + * @return string 生成的uuid + */ +export function randomUUID() { + const chats = '0123456789abcdef'; + return randomString(32, chats); +} + +/** + * 下划线转驼峰 + * @param string + * @returns {*} + */ +export function underLine2CamelCase(string) { + return string.replace(/_([a-z])/g, function (all, letter) { + return letter.toUpperCase(); + }); +} + +/** + * 判断是否显示办理按钮 + * @param bpmStatus + * @returns {*} + */ +export function showDealBtn(bpmStatus) { + if (bpmStatus !== '1' && bpmStatus !== '3' && bpmStatus !== '4') { + return true; + } + return false; +} + +/** + * 增强CSS,可以在页面上输出全局css + * @param css 要增强的css + * @param id style标签的id,可以用来清除旧样式 + */ +export function cssExpand(css, id) { + const style = document.createElement('style'); + style.type = 'text/css'; + style.innerHTML = `@charset "UTF-8"; ${css}`; + // 清除旧样式 + if (id) { + const $style = document.getElementById(id); + if ($style !== null) { + $style.outerHTML = ''; + } + style.id = id; + } + // 应用新样式 + document.head.appendChild(style); +} + +/** 用于js增强事件,运行JS代码,可以传参 */ +// options 所需参数: +// 参数名 类型 说明 +// vm VueComponent vue实例 +// event Object event对象 +// jsCode String 待执行的js代码 +// errorMessage String 执行出错后的提示(控制台) +export function jsExpand(options = {}) { + // 绑定到window上的keyName + const windowKeyName = 'J_CLICK_EVENT_OPTIONS'; + if (typeof window[windowKeyName] !== 'object') { + window[windowKeyName] = {}; + } + + // 随机生成JS增强的执行id,防止冲突 + const id = randomString(16, 'qwertyuioplkjhgfdsazxcvbnm'.toUpperCase()); + // 封装按钮点击事件 + const code = ` + (function (o_${id}) { + try { + (function (globalEvent, vm) { + ${options.jsCode} + })(o_${id}.event, o_${id}.vm) + } catch (e) { + o_${id}.error(e) + } + o_${id}.done() + })(window['${windowKeyName}']['EVENT_${id}']) + `; + // 创建script标签 + const script = document.createElement('script'); + // 将需要传递的参数挂载到window对象上 + window[windowKeyName]['EVENT_' + id] = { + vm: options.vm, + event: options.event, + // 当执行完成时,无论如何都会调用的回调事件 + done() { + // 执行完后删除新增的 script 标签不会撤销执行结果(已产生的结果不会被撤销) + script.outerHTML = ''; + delete window[windowKeyName]['EVENT_' + id]; + }, + // 当js运行出错的时候调用的事件 + error(e) { + console.group(`${options.errorMessage || '用户自定义JS增强代码运行出错'}(${new Date()})`); + console.error(e); + console.groupEnd(); + }, + }; + // 将事件挂载到document中 + script.innerHTML = code; + document.body.appendChild(script); +} + +/** + * 重复值验证工具方法 + * + * 使用示例: + * { validator: (rule, value, callback) => validateDuplicateValue('sys_fill_rule', 'rule_code', value, this.model.id, callback) } + * + * @param tableName 被验证的表名 + * @param fieldName 被验证的字段名 + * @param fieldVal 被验证的值 + * @param dataId 数据ID,可空 + * @param callback + */ +export function validateDuplicateValue(tableName, fieldName, fieldVal, dataId, callback) { + if (fieldVal) { + const params = { + tableName, + fieldName, + fieldVal, + dataId, + }; + api + .duplicateCheck(params) + .then((res) => { + res['success'] ? callback() : callback(res['message']); + }) + .catch((err) => { + callback(err.message || err); + }); + } else { + callback(); + } +} + +/** + * 根据编码校验规则code,校验传入的值是否合法 + * + * 使用示例: + * { validator: (rule, value, callback) => validateCheckRule('common', value, callback) } + * + * @param ruleCode 编码校验规则 code + * @param value 被验证的值 + * @param callback + */ +export function validateCheckRule(ruleCode, value, callback) { + if (ruleCode && value) { + value = encodeURIComponent(value); + api + .checkRuleByCode({ + ruleCode, + value, + }) + .then((res) => { + res['success'] ? callback() : callback(res['message']); + }) + .catch((err) => { + callback(err.message || err); + }); + } else { + callback(); + } +} + +/** + * 如果值不存在就 push 进数组,反之不处理 + * @param array 要操作的数据 + * @param value 要添加的值 + * @param key 可空,如果比较的是对象,可能存在地址不一样但值实际上是一样的情况,可以传此字段判断对象中唯一的字段,例如 id。不传则直接比较实际值 + * @returns {boolean} 成功 push 返回 true,不处理返回 false + */ +export function pushIfNotExist(array, value, key) { + for (const item of array) { + if (key && item[key] === value[key]) { + return false; + } else if (item === value) { + return false; + } + } + array.push(value); + return true; +} + +/** + * 可用于判断是否成功 + * @type {symbol} + */ +export const succeedSymbol = Symbol(); +/** + * 可用于判断是否失败 + * @type {symbol} + */ +export const failedSymbol = Symbol(); + +/** + * 使 promise 无论如何都会 resolve,除非传入的参数不是一个Promise对象或返回Promise对象的方法 + * 一般用在 Promise.all 中 + * + * @param promise 可传Promise对象或返回Promise对象的方法 + * @returns {Promise} + */ +export function alwaysResolve(promise) { + return new Promise((resolve, reject) => { + let p = promise; + if (typeof promise === 'function') { + p = promise(); + } + if (p instanceof Promise) { + p.then((data) => { + resolve({ + type: succeedSymbol, + data, + }); + }).catch((error) => { + resolve({ + type: failedSymbol, + error, + }); + }); + } else { + reject('alwaysResolve: 传入的参数不是一个Promise对象或返回Promise对象的方法'); + } + }); +} + +/** + * 简单实现防抖方法 + * + * 防抖(debounce)函数在第一次触发给定的函数时,不立即执行函数,而是给出一个期限值(delay),比如100ms。 + * 如果100ms内再次执行函数,就重新开始计时,直到计时结束后再真正执行函数。 + * 这样做的好处是如果短时间内大量触发同一事件,只会执行一次函数。 + * + * @param fn 要防抖的函数 + * @param delay 防抖的毫秒数 + * @returns {Function} + */ +export function simpleDebounce(fn, delay = 100) { + let timer = null; + return function () { + const args = arguments; + if (timer) { + clearTimeout(timer); + } + timer = setTimeout(() => { + fn.apply(this, args); + }, delay); + }; +} + +/** + * 不用正则的方式替换所有值 + * @param text 被替换的字符串 + * @param checker 替换前的内容 + * @param replacer 替换后的内容 + * @returns {String} 替换后的字符串 + */ +export function replaceAll(text, checker, replacer) { + const lastText = text; + text = text.replace(checker, replacer); + if (lastText !== text) { + return replaceAll(text, checker, replacer); + } + return text; +} + +/** + * 获取事件冒泡路径,兼容 IE11,Edge,Chrome,Firefox,Safari + * 目前使用的地方:JEditableTable Span模式 + */ +export function getEventPath(event) { + const target = event.target; + const path = (event.composedPath && event.composedPath()) || event.path; + + if (path !== null) { + return path.indexOf(window) < 0 ? path.concat(window) : path; + } + + if (target === window) { + return [window]; + } + + const getParents = (node, memo) => { + memo = memo || []; + const parentNode = node.parentNode; + + if (!parentNode) { + return memo; + } else { + return getParents(parentNode, memo.concat(parentNode)); + } + }; + return [target].concat(getParents(target), window); +} + +/** + * 根据组件名获取父级 + * @param vm + * @param name + * @returns {Vue | null|null|Vue} + */ +export function getVmParentByName(vm, name) { + const parent = vm.$parent; + if (parent && parent.$options) { + if (parent.$options.name === name) { + return parent; + } else { + const res = getVmParentByName(parent, name); + if (res) { + return res; + } + } + } + return null; +} + +/** + * 使一个值永远不会为(null | undefined) + * + * @param value 要处理的值 + * @param def 默认值,如果value为(null | undefined)则返回的默认值,可不传,默认为'' + */ +export function neverNull(value, def) { + return value === null ? neverNull(def, '') : value; +} + +/** + * 根据元素值移除数组中的一个元素 + * @param array 数组 + * @param prod 属性名 + * @param value 属性值 + * @returns {string} + */ +export function removeArrayElement(array, prod, value) { + let index = -1; + for (let i = 0; i < array.length; i++) { + if (array[i][prod] === value) { + index = i; + break; + } + } + if (index >= 0) { + array.splice(index, 1); + } +} + +/** 判断是否是OAuth2APP环境 */ +export function isOAuth2AppEnv() { + return /wxwork|dingtalk/i.test(navigator.userAgent); +} + +/** + * 获取积木报表打印地址 + * @param url + * @param id + * @param open 是否自动打开 + * @returns {*} + */ +export function getReportPrintUrl(url, id, open) { + // URL支持{{ window.xxx }}占位符变量 + url = url.replace(/{{([^}]+)?}}/g, (s1, s2) => eval(s2)); /* eslint-disable-line no-eval */ + if (url.includes('?')) { + url += '&'; + } else { + url += '?'; + } + url += `id=${id}`; + url += `&token=${Vue.ls.get(ACCESS_TOKEN)}`; + if (open) { + window.open(url); + } + return url; +} + +/** + * JS实现AOP切面 + * + * @param obj 包含函数的对象 + * @param funcName 要切面的函数名 + * @param callback 执行方法前的回调,用于切面,callback的返回值就是funcName最终的返回值 + */ +export function aspectAroundFunction(obj, funcName, callback) { + if (typeof callback !== 'function' || !obj) { + console.warn('【aspectAroundFunction】obj或callback格式不正确'); + return; + } + // 保存原来的函数 + const func = obj[funcName]; + if (typeof func !== 'function') { + console.warn('【aspectAroundFunction】' + funcName + '不是一个方法'); + return; + } + // 赋值新方法 + // 实现当外部调用 funcName 时,首先调用我定义的新方法 + // 然后调用传入的callback方法,以决定是否执行 funcName,以及更改参数、返回值 + obj[funcName] = function (...args) { + return callback({ + args, + // 只有执行 proceed 才会真正执行给定的 funcName 方法 + proceed() { + try { + return func.apply(obj, args); + } catch (e) { + console.error(e); + } + }, + }); + }; +} + +//清单表体转换 +export function convertQty(unit, fdUnit, qty, netWt) { + if (!fdUnit) { + return null; + } + + if (unit === fdUnit) { + return qty; + } + + let tmpValue = netWt; + + //036-克,076-磅,035-千克,070-吨 + if ('035,036,070,076'.indexOf(fdUnit) > -1) { + if (!netWt && '035,036,070,076'.indexOf(unit)) { + if (unit === '036') { + tmpValue = qty / 1000; + } else if (unit === '035') { + tmpValue = qty; + } else if (unit === '070') { + tmpValue = qty * 1000; + } else if (unit === '076') { + tmpValue = qty * 0.45359237; + } + } + } + + if (fdUnit === '036') { + return tmpValue * 1000; + } else if (fdUnit === '035') { + return tmpValue; + } else if (fdUnit === '070') { + return tmpValue / 1000; + } else if (fdUnit === '076') { + return tmpValue / 0.45359237; + } + + //007个--043百个--054千个--038万个--056亿个 + if (unit === '007' && fdUnit === '043') { + return qty / 100; + } else if (unit === '007' && fdUnit === '054') { + return qty / 1000; + } else if (unit === '007' && fdUnit === '038') { + return qty / 10000; + } else if (unit === '007' && fdUnit === '056') { + return qty / 100000000; + } else if (unit === '043' && fdUnit === '007') { + return qty * 100; + } else if (unit === '043' && fdUnit === '054') { + return qty / 10; + } else if (unit === '043' && fdUnit === '038') { + return qty / 100; + } else if (unit === '043' && fdUnit === '056') { + return qty / 1000000; + } else if (unit === '054' && fdUnit === '007') { + return qty * 1000; + } else if (unit === '054' && fdUnit === '043') { + return qty * 10; + } else if (unit === '054' && fdUnit === '038') { + return qty / 10; + } else if (unit === '054' && fdUnit === '056') { + return qty / 10000; + } else if (unit === '038' && fdUnit === '007') { + return qty * 10000; + } else if (unit === '038' && fdUnit === '043') { + return qty * 100; + } else if (unit === '038' && fdUnit === '054') { + return qty * 10; + } else if (unit === '038' && fdUnit === '056') { + return qty / 10000; + } else if (unit === '056' && fdUnit === '007') { + return qty * 100000000; + } else if (unit === '056' && fdUnit === '043') { + return qty * 1000000; + } else if (unit === '056' && fdUnit === '054') { + return qty * 100000; + } else if (unit === '056' && fdUnit === '038') { + return qty * 10000; + } + + //012支--041百支--143千支--055亿支 + if (unit === '012' && fdUnit === '041') { + return qty / 100; + } else if (unit === '012' && fdUnit === '143') { + return qty / 1000; + } else if (unit === '012' && fdUnit === '055') { + return qty / 100000000; + } else if (unit === '041' && fdUnit === '012') { + return qty * 100; + } else if (unit === '041' && fdUnit === '143') { + return qty / 10; + } else if (unit === '041' && fdUnit === '055') { + return qty / 1000000; + } else if (unit === '143' && fdUnit === '012') { + return qty * 1000; + } else if (unit === '143' && fdUnit === '041') { + return qty * 10; + } else if (unit === '143' && fdUnit === '055') { + return qty / 10000; + } else if (unit === '055' && fdUnit === '012') { + return qty * 100000000; + } else if (unit === '055' && fdUnit === '041') { + return qty * 1000000; + } else if (unit === '055' && fdUnit === '143') { + return qty * 100000; + } + + //--米、双、副、粒、升、枝、套、张、把、片 + //--006套--057万套 + if (unit === '006' && fdUnit === '057') { + return qty / 10000; + } else if (unit === '057' && fdUnit === '006') { + return qty * 10000; + } + + //--010张--058千张--059万张 + if (unit === '010' && fdUnit === '058') { + return qty / 1000; + } else if (unit === '010' && fdUnit === '059') { + return qty / 10000; + } else if (unit === '058' && fdUnit === '010') { + return qty * 1000; + } else if (unit === '058' && fdUnit === '059') { + return qty / 10; + } else if (unit === '059' && fdUnit === '010') { + return qty * 10000; + } else if (unit === '059' && fdUnit === '058') { + return qty * 10; + } + + //--013枝--049百枝--053千枝 + if (unit === '013' && fdUnit === '049') { + return qty / 100; + } else if (unit === '013' && fdUnit === '053') { + return qty / 1000; + } else if (unit === '049' && fdUnit === '013') { + return qty * 100; + } else if (unit === '049' && fdUnit === '053') { + return qty / 10; + } else if (unit === '053' && fdUnit === '013') { + return qty * 1000; + } else if (unit === '053' && fdUnit === '049') { + return qty * 10; + } + + //--016把--042百把 + if (unit === '016' && fdUnit === '042') { + return qty / 100; + } else if (unit === '042' && fdUnit === '016') { + return qty * 100; + } + + //--019副--040百副 + if (unit === '019' && fdUnit === '040') { + return qty / 100; + } else if (unit === '040' && fdUnit === '019') { + return qty * 100; + } + + //--020片--044百片 + if (unit === '020' && fdUnit === '044') { + return qty / 100; + } else if (unit === '044' && fdUnit === '020') { + return qty * 100; + } + + //--025双--144万双 + if (unit === '025' && fdUnit === '144') { + return qty / 10000; + } else if (unit === '144' && fdUnit === '025') { + return qty * 10000; + } + + //--067英尺--030米--147千米 + if (unit === '030' && fdUnit === '147') { + return qty / 1000; + } else if (unit === '147' && fdUnit === '030') { + return qty * 1000; + } else if (unit === '030' && fdUnit === '067') { + return qty / 0.3048; + } else if (unit === '067' && fdUnit === '030') { + return qty * 0.3048; + } else if (unit === '147' && fdUnit === '067') { + return (qty / 0.3048) * 1000; + } else if (unit === '067' && fdUnit === '147') { + return (qty * 0.3048) / 1000; + } + + //--096毫升--095升--063千升 + if (unit === '096' && fdUnit === '095') { + return qty / 1000; + } else if (unit === '096' && fdUnit === '063') { + return qty / 1000 / 1000; + } else if (unit === '095' && fdUnit === '096') { + return qty * 1000; + } else if (unit === '095' && fdUnit === '063') { + return qty / 1000; + } else if (unit === '063' && fdUnit === '096') { + return qty * 1000 * 1000; + } else if (unit === '063' && fdUnit === '095') { + return qty * 1000; + } + + //--139粒--146千粒--145万粒 + if (unit === '139' && fdUnit === '146') { + return qty / 1000; + } else if (unit === '139' && fdUnit === '145') { + return qty / 10000; + } else if (unit === '146' && fdUnit === '139') { + return qty * 1000; + } else if (unit === '146' && fdUnit === '145') { + return qty / 10; + } else if (unit === '145' && fdUnit === '139') { + return qty * 10000; + } else if (unit === '145' && fdUnit === '146') { + return qty * 10; + } + + //050千只--008只 + if (unit === '008' && fdUnit === '050') { + return qty / 1000; + } else if (unit === '050' && fdUnit === '008') { + return qty * 1000; + } + + //--007个--001台--008只--017块--011件--020片 + if ('007,001,008,017,011,020'.indexOf(unit) > -1 && '007,001,008,017,011,020'.indexOf(fdUnit) > -1) { + return qty; + } + + return null; +} + +// 下载后若报错返回json 提示错误信息 data 接口数据 confirmLoading 控制loading emitOk下载成功后的操作 +export function downloadFileCallback(data, confirmLoading, emitOk) { + const reader = new FileReader(); + reader.readAsText(data); + reader.onload = function (result) { + try { + const resData = JSON.parse(result.target.result); // 解析对象成功,说明是json数据 + confirmLoading(); + message.warning(resData.message); + } catch (err) { + // 解析成对象失败,说明是正常的文件流 + confirmLoading(); + if (data.fileName) { + let fileName = ''; + if (data.fileName) { + fileName = decodeURIComponent(data.fileName); + } + const url = window.URL.createObjectURL(new Blob([data], { type: 'application/vnd.ms-excel' })); + const link = document.createElement('a'); + link.style.display = 'none'; + link.href = url; + link.setAttribute('download', fileName); + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); //下载完成移除元素 + window.URL.revokeObjectURL(url); //释放掉blob对象 + emitOk(); + } else { + message.warning('文件生成失败!'); + } + } + }; +} + +// json 转 txt +export function saveAsTxt(textContent, textName) { + // 创建Blob对象,指定文件类型为纯文本 + const blob = new Blob([textContent], { type: 'text/plain;charset=utf-8' }); + // 为Blob对象生成一个临时的URL + const url = URL.createObjectURL(blob); + // 创建一个标签 + const a = document.createElement('a'); + // 设置标签的href属性为临时URL + a.href = url; + // 设置下载的文件名 + a.download = textName; + // 模拟点击标签来触发文件下载 + a.click(); + // 释放临时URL,避免内存泄漏 + URL.revokeObjectURL(url); +} + +/** + * 按 userCode 顺序匹配 userName,返回逗号分隔的姓名串(专门用于人员选择器多选的情况) + * @param {string} userCodeStr - 逗号分隔的 userCode 字符串(如 "3,1,2") + * @param {Array} userList - 用户列表数组(每一项需包含 userCode 和 userName 字段) + * @returns {string} 按 userCode 顺序排列的 userName 拼接串 + */ +export function getUserNameByCodeOrder(userCodeStr, userList = []) { + // 边界处理:如果 userCodeStr 为空,直接返回空串 + if (!userCodeStr || typeof userCodeStr !== 'string') { + return ''; + } + + // 1. 将 userCode 字符串转成数组(保留原始顺序) + const userCodeArr = userCodeStr.split(',').filter((code) => code.trim()); // 过滤空字符串 + + // 2. 将 userList 转成 Map(优化查找性能,O(1) 查找) + const userMap = new Map(); + userList.forEach((user) => { + // 确保 user 有 userCode 和 userName 字段(兼容异常数据) + if (user?.userCode && user?.userName) { + userMap.set(user.userCode, user.userName); + } + }); + + // 3. 按 userCodeArr 的顺序,匹配对应的 userName + const userNameArr = userCodeArr.map((code) => { + return userMap.get(code) || ''; // 没有匹配到返回空串(可根据需求调整) + }); + + // 4. 拼接成字符串返回 + return userNameArr.join(','); +} + diff --git a/src/utils/validate.js b/src/utils/validate.js new file mode 100644 index 0000000..c8edcac --- /dev/null +++ b/src/utils/validate.js @@ -0,0 +1,31 @@ +/** + * 邮箱 + * @param {*} s + */ +export function isEmail (s) { + return /^([a-zA-Z0-9._-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s) +} + +/** + * 手机号码 + * @param {*} s + */ +export function isMobile (s) { + return /^1[0-9]{10}$/.test(s) +} + +/** + * 电话号码 + * @param {*} s + */ +export function isPhone (s) { + return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(s) +} + +/** + * URL地址 + * @param {*} s + */ +export function isURL (s) { + return /^http[s]?:\/\/.*/.test(s) +} diff --git a/src/views/Home.vue b/src/views/Home.vue new file mode 100644 index 0000000..5370ac8 --- /dev/null +++ b/src/views/Home.vue @@ -0,0 +1,217 @@ + + + + + diff --git a/src/views/account/center/Index.vue b/src/views/account/center/Index.vue new file mode 100644 index 0000000..d9b51ce --- /dev/null +++ b/src/views/account/center/Index.vue @@ -0,0 +1,286 @@ + + + + + + diff --git a/src/views/account/center/page/App.vue b/src/views/account/center/page/App.vue new file mode 100644 index 0000000..f031179 --- /dev/null +++ b/src/views/account/center/page/App.vue @@ -0,0 +1,109 @@ + + + + + + diff --git a/src/views/account/center/page/Article.vue b/src/views/account/center/page/Article.vue new file mode 100644 index 0000000..43ec2e9 --- /dev/null +++ b/src/views/account/center/page/Article.vue @@ -0,0 +1,18 @@ + + + diff --git a/src/views/account/center/page/Project.vue b/src/views/account/center/page/Project.vue new file mode 100644 index 0000000..7a55b7a --- /dev/null +++ b/src/views/account/center/page/Project.vue @@ -0,0 +1,11 @@ + + + diff --git a/src/views/account/center/page/index.js b/src/views/account/center/page/index.js new file mode 100644 index 0000000..e80351a --- /dev/null +++ b/src/views/account/center/page/index.js @@ -0,0 +1,5 @@ +import AppPage from './App' +import ArticlePage from './Article' +import ProjectPage from './Project' + +export { AppPage, ArticlePage, ProjectPage } \ No newline at end of file diff --git a/src/views/account/settings/AvatarModal.vue b/src/views/account/settings/AvatarModal.vue new file mode 100644 index 0000000..25c3911 --- /dev/null +++ b/src/views/account/settings/AvatarModal.vue @@ -0,0 +1,129 @@ + + + + diff --git a/src/views/account/settings/BaseSetting.vue b/src/views/account/settings/BaseSetting.vue new file mode 100644 index 0000000..08d9ceb --- /dev/null +++ b/src/views/account/settings/BaseSetting.vue @@ -0,0 +1,181 @@ + + + + + diff --git a/src/views/account/settings/Binding.vue b/src/views/account/settings/Binding.vue new file mode 100644 index 0000000..edb2de3 --- /dev/null +++ b/src/views/account/settings/Binding.vue @@ -0,0 +1,17 @@ + + + diff --git a/src/views/account/settings/Custom.vue b/src/views/account/settings/Custom.vue new file mode 100644 index 0000000..10ba56c --- /dev/null +++ b/src/views/account/settings/Custom.vue @@ -0,0 +1,102 @@ + + diff --git a/src/views/account/settings/Index.vue b/src/views/account/settings/Index.vue new file mode 100644 index 0000000..6dfc85e --- /dev/null +++ b/src/views/account/settings/Index.vue @@ -0,0 +1,231 @@ + + + + + diff --git a/src/views/account/settings/Notification.vue b/src/views/account/settings/Notification.vue new file mode 100644 index 0000000..edb2de3 --- /dev/null +++ b/src/views/account/settings/Notification.vue @@ -0,0 +1,17 @@ + + + diff --git a/src/views/account/settings/Security.vue b/src/views/account/settings/Security.vue new file mode 100644 index 0000000..6caba6f --- /dev/null +++ b/src/views/account/settings/Security.vue @@ -0,0 +1,96 @@ + + + diff --git a/src/views/account/settings/SystemSetting.vue b/src/views/account/settings/SystemSetting.vue new file mode 100644 index 0000000..6910f07 --- /dev/null +++ b/src/views/account/settings/SystemSetting.vue @@ -0,0 +1,120 @@ + + + + + diff --git a/src/views/bill/BillCompareList.vue b/src/views/bill/BillCompareList.vue new file mode 100644 index 0000000..6874aaf --- /dev/null +++ b/src/views/bill/BillCompareList.vue @@ -0,0 +1,465 @@ + + + + diff --git a/src/views/bill/BillCompareListE.vue b/src/views/bill/BillCompareListE.vue new file mode 100644 index 0000000..4518e9e --- /dev/null +++ b/src/views/bill/BillCompareListE.vue @@ -0,0 +1,14 @@ + diff --git a/src/views/bill/BillCompareListI.vue b/src/views/bill/BillCompareListI.vue new file mode 100644 index 0000000..1ad508c --- /dev/null +++ b/src/views/bill/BillCompareListI.vue @@ -0,0 +1,14 @@ + diff --git a/src/views/bill/BillDataList.vue b/src/views/bill/BillDataList.vue new file mode 100644 index 0000000..f66631f --- /dev/null +++ b/src/views/bill/BillDataList.vue @@ -0,0 +1,1754 @@ + + + + diff --git a/src/views/bill/BillDataListColumns.js b/src/views/bill/BillDataListColumns.js new file mode 100644 index 0000000..3034ce6 --- /dev/null +++ b/src/views/bill/BillDataListColumns.js @@ -0,0 +1,1666 @@ +import { filterDictTextByFormatCache, filterDictTextByFormatCusCache } from '@/components/dict/JDictSelectUtil' + +const arrWidth = [50, 150, 150, 150, 150, 150, 350, 400] +//进口征税清单栏位 +const izColumns = [ + { + title: '操作', + dataIndex: 'action', + align: 'center', + width: arrWidth[2], + ellipsis: true, + scopedSlots: { + customRender: 'action', + }, + }, + { + title: '流程状态', + align: 'center', + dataIndex: 'flowStatus', + width: arrWidth[2], + ellipsis: true, + + scopedSlots: { + customRender: 'flowStatus', + }, + }, + { + title: '企业内部编号', + align: 'left', + dataIndex: 'compSeqNo', + width: arrWidth[4], + ellipsis: true, + + scopedSlots: { + customRender: 'compSeqNo', + }, + sorter: true, + slots: { + customRender: 'compSeqNo', + }, + }, + { + title: '业务类型', + align: 'left', + dataIndex: 'bizType', + width: arrWidth[3], + ellipsis: true, + + customRender: (text) => { + return filterDictTextByFormatCache('BillBizType', text) + }, + }, + { + title: '进境关别', + align: 'left', + dataIndex: 'ieport_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '运输方式', + align: 'left', + dataIndex: 'trafMode_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '监管方式', + align: 'left', + dataIndex: 'tradeMode_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '报关单号', + align: 'left', + dataIndex: 'entryId', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '报关单统一编号', + align: 'left', + dataIndex: 'entrySeqNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '报关单申报日期', + align: 'left', + dataIndex: 'entryDDate', + customRender: function (text) { + return !text ? '' : text.substr(0, 10) + }, + width: arrWidth[3], + ellipsis: true, + + sorter: true, + slots: { + customRender: 'entryDDate', + }, + }, + { + title: '报关单状态', + align: 'center', + dataIndex: 'entryStatus', + width: arrWidth[3], + ellipsis: true, + + scopedSlots: { + customRender: 'entryStatus', + }, + // customRender: (text) => { + // return filterDictTextByFormatCache('DeclarationStatus', text) + // }, + }, + { + title: '主提运单号', + align: 'left', + dataIndex: 'ztdNo', + width: arrWidth[2], + ellipsis: true, + }, + { + title: '分提运单号', + align: 'left', + dataIndex: 'ftdNo', + width: arrWidth[2], + ellipsis: true, + }, + { + title: '启运国', + align: 'left', + dataIndex: 'tradeCountry_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '启运港', + align: 'left', + dataIndex: 'despPortCode_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '入境口岸', + align: 'left', + dataIndex: 'entyPortCode_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '发票号', + align: 'left', + dataIndex: 'invoiceNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '成交方式', + align: 'left', + dataIndex: 'transMode_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '运输工具名称', + align: 'left', + dataIndex: 'trafName', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '航次号', + align: 'left', + dataIndex: 'voyageNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '供应商名称', + align: 'left', + dataIndex: 'partnerName', + width: arrWidth[5], + ellipsis: true, + }, + { + title: '创建人', + align: 'left', + dataIndex: 'createBy', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '创建时间', + align: 'left', + dataIndex: 'createTime', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '申请人', + align: 'left', + dataIndex: 'applyBy', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '申请时间', + align: 'left', + dataIndex: 'applyTime', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '报关单上载人', + align: 'left', + dataIndex: 'entryUploadBy', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '报关单上载时间', + align: 'left', + dataIndex: 'entryUploadTime', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '备注', + align: 'left', + dataIndex: 'note', + width: arrWidth[4], + ellipsis: true, + }, + { + title: '企业内部备注', + align: 'left', + dataIndex: 'copNote', + width: arrWidth[4], + ellipsis: true, + }, + { + title: '件数', + align: 'center', + dataIndex: 'packNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '包装种类', + align: 'left', + dataIndex: 'wrapType', + width: arrWidth[4], + ellipsis: true, + + customRender: (text) => { + return filterDictTextByFormatCusCache('cus_pack_type,code_name,code_value', text) + }, + }, + { + title: '净重', + align: 'center', + dataIndex: 'netWt', + width: arrWidth[2], + ellipsis: true, + }, + { + title: '毛重', + align: 'center', + dataIndex: 'grossWt', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '合同协议号', + align: 'left', + dataIndex: 'contractNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '清单总条数', + align: 'center', + dataIndex: 'totalBill', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '报关草单总条数', + align: 'center', + dataIndex: 'totalEntry', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '清单总数量', + align: 'center', + dataIndex: 'totalBillQty', + width: arrWidth[3], + ellipsis: true, + customRender(text) { + if (text) { + return Number(text) + } + }, + }, + { + title: '清单总金额', + align: 'center', + dataIndex: 'totalBillAmount', + width: arrWidth[3], + ellipsis: true, + customRender(text) { + if (text) { + return Number(text) + } + }, + }, + { + title: '装车单号', + align: 'left', + dataIndex: 'truckNo', + width: arrWidth[2], + ellipsis: true, + }, + { + title: '逻辑车号', + align: 'left', + dataIndex: 'ltgNo', + width: arrWidth[2], + ellipsis: true, + }, + { + title: '关联出入库单号', + align: 'left', + dataIndex: 'relStockNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '征免税编号', + align: 'left', + dataIndex: 'cutNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '文件归档状态', + align: 'left', + dataIndex: 'fileArchiveStatus', + width: arrWidth[3], + ellipsis: true, + customRender: function (t, r) { + return t ? t + '-' + r['fileArchiveStatusName'] : '' + }, + }, + { + title: '文件归档日期', + align: 'left', + dataIndex: 'archiveDate', + width: arrWidth[3], + ellipsis: true, + }, +] +//出口征税清单栏位 +const ezColumns = [ + { + title: '企业内部编号', + align: 'left', + dataIndex: 'compSeqNo', + width: arrWidth[4], + ellipsis: true, + + scopedSlots: { + customRender: 'compSeqNo', + }, + sorter: true, + slots: { + customRender: 'compSeqNo', + }, + }, + { + title: '业务类型', + align: 'left', + dataIndex: 'bizType', + width: arrWidth[3], + ellipsis: true, + + customRender: (text) => { + return filterDictTextByFormatCache('BillBizType', text) + }, + }, + { + title: '出境关别', + align: 'left', + dataIndex: 'ieport_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '运输方式', + align: 'left', + dataIndex: 'trafMode_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '监管方式', + align: 'left', + dataIndex: 'tradeMode_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '报关单号', + align: 'left', + dataIndex: 'entryId', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '报关单统一编号', + align: 'left', + dataIndex: 'entrySeqNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '报关单申报日期', + align: 'left', + dataIndex: 'entryDDate', + customRender: function (text) { + return !text ? '' : text.substr(0, 10) + }, + width: arrWidth[3], + ellipsis: true, + + sorter: true, + slots: { + customRender: 'entryDDate', + }, + }, + { + title: '报关单状态', + align: 'center', + dataIndex: 'entryStatus', + width: arrWidth[3], + ellipsis: true, + + scopedSlots: { + customRender: 'entryStatus', + }, + // customRender: (text) => { + // return filterDictTextByFormatCache('DeclarationStatus', text) + // }, + }, + { + title: '主提运单号', + align: 'left', + dataIndex: 'ztdNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '分提运单号', + align: 'left', + dataIndex: 'ftdNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '运抵国', + align: 'left', + dataIndex: 'tradeCountry_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '指运港', + align: 'left', + dataIndex: 'distinatePort_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '出境口岸', + align: 'left', + dataIndex: 'entyPortCode_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '发票号', + align: 'left', + dataIndex: 'invoiceNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '成交方式', + align: 'left', + dataIndex: 'transMode_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '运输工具名称', + align: 'left', + dataIndex: 'trafName', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '航次号', + align: 'left', + dataIndex: 'voyageNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '客户名称', + align: 'left', + dataIndex: 'partnerName', + width: arrWidth[4], + ellipsis: true, + }, + { + title: '创建人', + align: 'left', + dataIndex: 'createBy', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '创建时间', + align: 'left', + dataIndex: 'createTime', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '申请人', + align: 'left', + dataIndex: 'applyBy', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '申请时间', + align: 'left', + dataIndex: 'applyTime', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '报关单上载人', + align: 'left', + dataIndex: 'entryUploadBy', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '报关单上载时间', + align: 'left', + dataIndex: 'entryUploadTime', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '备注', + align: 'left', + dataIndex: 'note', + width: arrWidth[4], + ellipsis: true, + }, + { + title: '企业内部备注', + align: 'left', + dataIndex: 'copNote', + width: arrWidth[4], + ellipsis: true, + }, + { + title: '件数', + align: 'left', + dataIndex: 'packNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '包装种类', + align: 'left', + dataIndex: 'wrapType', + width: arrWidth[4], + ellipsis: true, + + customRender: (text) => { + return filterDictTextByFormatCusCache('cus_pack_type,code_name,code_value', text) + }, + }, + { + title: '净重', + align: 'center', + dataIndex: 'netWt', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '毛重', + align: 'center', + dataIndex: 'grossWt', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '合同协议号', + align: 'left', + dataIndex: 'contractNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '清单总条数', + align: 'center', + dataIndex: 'totalBill', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '报关草单总条数', + align: 'center', + dataIndex: 'totalEntry', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '清单总数量', + align: 'center', + dataIndex: 'totalBillQty', + width: arrWidth[3], + ellipsis: true, + customRender(text) { + if (text) { + return Number(text) + } + }, + }, + { + title: '清单总金额', + align: 'center', + dataIndex: 'totalBillAmount', + width: arrWidth[3], + ellipsis: true, + customRender(text) { + if (text) { + return Number(text) + } + }, + }, + { + title: '装车单号', + align: 'left', + dataIndex: 'truckNo', + width: arrWidth[2], + ellipsis: true, + }, + { + title: '逻辑车号', + align: 'left', + dataIndex: 'ltgNo', + width: arrWidth[2], + ellipsis: true, + }, + { + title: '关联出入库单号', + align: 'left', + dataIndex: 'relStockNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '文件归档状态', + align: 'left', + dataIndex: 'fileArchiveStatus', + width: arrWidth[3], + ellipsis: true, + customRender: function (t, r) { + return t ? t + '-' + r['fileArchiveStatusName'] : '' + }, + }, + { + title: '文件归档日期', + align: 'left', + dataIndex: 'archiveDate', + width: arrWidth[3], + ellipsis: true, + }, + + { + title: '流程状态', + align: 'center', + dataIndex: 'flowStatus', + width: arrWidth[3], + ellipsis: true, + fixed: 'right', + scopedSlots: { + customRender: 'flowStatus', + }, + }, + { + title: '操作', + dataIndex: 'action', + align: 'center', + width: arrWidth[2], + ellipsis: true, + fixed: 'right', + scopedSlots: { + customRender: 'action', + }, + }, +] +//进口保税清单栏位 +const ibColumns = [ + { + title: '操作', + dataIndex: 'action', + align: 'center', + width: arrWidth[2], + ellipsis: true, + scopedSlots: { + customRender: 'action', + }, + }, + { + title: '流程状态', + align: 'center', + dataIndex: 'flowStatus', + width: arrWidth[3], + ellipsis: true, + + scopedSlots: { + customRender: 'flowStatus', + }, + }, + { + title: '企业内部编号', + align: 'left', + dataIndex: 'compSeqNo', + width: arrWidth[4], + ellipsis: true, + + scopedSlots: { + customRender: 'compSeqNo', + }, + sorter: true, + slots: { + customRender: 'compSeqNo', + }, + }, + { + title: '业务类型', + align: 'left', + dataIndex: 'bizType', + width: arrWidth[3], + ellipsis: true, + + customRender: (text) => { + return filterDictTextByFormatCache('BillBizType', text) + }, + }, + { + title: '账册号', + align: 'left', + dataIndex: 'emsNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '成品料件标志', + align: 'left', + dataIndex: 'gmark', + width: arrWidth[3], + ellipsis: true, + + customRender: (text) => { + return filterDictTextByFormatCache('ie_type', text) + }, + }, + { + title: '进境关别', + align: 'left', + dataIndex: 'ieport_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '运输方式', + align: 'left', + dataIndex: 'trafMode_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '监管方式', + align: 'left', + dataIndex: 'tradeMode_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '清单统一编号', + align: 'left', + dataIndex: 'seqNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '核注清单编号', + align: 'left', + dataIndex: 'billNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '清单状态', + align: 'center', + dataIndex: 'uploadStatus_dictText', + width: arrWidth[3], + ellipsis: true, + + scopedSlots: { + customRender: 'uploadStatus', + }, + }, + { + title: '核扣标志', + align: 'left', + dataIndex: 'hezhuMark_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '申报类型', + align: 'left', + dataIndex: 'dclTypecd', + width: arrWidth[3], + ellipsis: true, + + customRender: (text) => { + return filterDictTextByFormatCache('BillDclType', text) + }, + }, + { + title: '清单类型', + align: 'left', + dataIndex: 'listType_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '清单申报日期', + align: 'left', + dataIndex: 'ddate', + customRender: function (text) { + return !text ? '' : text.substr(0, 10) + }, + width: arrWidth[3], + ellipsis: true, + sorter: true, + slots: { + customRender: 'ddate', + }, + }, + { + title: '报关类型', + align: 'left', + dataIndex: 'declType_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '关联清单编号', + align: 'left', + dataIndex: 'relBillNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '关联账册号', + align: 'left', + dataIndex: 'relEmsNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '关联经营单位', + align: 'left', + dataIndex: 'relEntryTradeName', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '对应报关单号', + align: 'left', + dataIndex: 'curEntryNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '报关单号', + align: 'left', + dataIndex: 'entryId', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '报关单统一编号', + align: 'left', + dataIndex: 'entrySeqNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '报关单申报日期', + align: 'left', + dataIndex: 'entryDDate', + customRender: function (text) { + return !text ? '' : text.substr(0, 10) + }, + width: arrWidth[3], + ellipsis: true, + + sorter: true, + slots: { + customRender: 'entryDDate', + }, + }, + { + title: '报关单状态', + align: 'center', + dataIndex: 'entryStatus', + width: arrWidth[3], + ellipsis: true, + + scopedSlots: { + customRender: 'entryStatus', + }, + // customRender: (text) => { + // return filterDictTextByFormatCache('DeclarationStatus', text) + // }, + }, + { + title: '主提运单号', + align: 'left', + dataIndex: 'ztdNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '分提运单号', + align: 'left', + dataIndex: 'ftdNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '启运国', + align: 'left', + dataIndex: 'tradeCountry_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '启运港', + align: 'left', + dataIndex: 'despPortCode_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '入境口岸', + align: 'left', + dataIndex: 'entyPortCode_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '发票号', + align: 'left', + dataIndex: 'invoiceNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '成交方式', + align: 'left', + dataIndex: 'transMode_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '运输工具名称', + align: 'left', + dataIndex: 'trafName', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '航次号', + align: 'left', + dataIndex: 'voyageNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '供应商名称', + align: 'left', + dataIndex: 'partnerName', + width: arrWidth[5], + ellipsis: true, + }, + { + title: '备注', + align: 'left', + dataIndex: 'note', + width: arrWidth[4], + ellipsis: true, + }, + { + title: '企业内部备注', + align: 'left', + dataIndex: 'copNote', + width: arrWidth[4], + ellipsis: true, + }, + { + title: '创建人', + align: 'left', + dataIndex: 'createBy', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '创建时间', + align: 'left', + dataIndex: 'createTime', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '申请人', + align: 'left', + dataIndex: 'applyBy', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '申请时间', + align: 'left', + dataIndex: 'applyTime', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '报关单上载人', + align: 'left', + dataIndex: 'entryUploadBy', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '报关单上载时间', + align: 'left', + dataIndex: 'entryUploadTime', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '件数', + align: 'center', + dataIndex: 'packNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '包装种类', + align: 'left', + dataIndex: 'wrapType', + width: arrWidth[4], + ellipsis: true, + + customRender: (text) => { + return filterDictTextByFormatCusCache('cus_pack_type,code_name,code_value', text) + }, + }, + { + title: '净重', + align: 'center', + dataIndex: 'netWt', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '毛重', + align: 'center', + dataIndex: 'grossWt', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '合同协议号', + align: 'left', + dataIndex: 'contractNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '清单总条数', + align: 'center', + dataIndex: 'totalBill', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '报关草单总条数', + align: 'center', + dataIndex: 'totalEntry', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '清单总数量', + align: 'center', + dataIndex: 'totalBillQty', + width: arrWidth[3], + ellipsis: true, + customRender(text) { + if (text) { + return Number(text) + } + }, + }, + { + title: '清单总金额', + align: 'center', + dataIndex: 'totalBillAmount', + width: arrWidth[3], + ellipsis: true, + customRender(text) { + if (text) { + return Number(text) + } + }, + }, + { + title: '装车单号', + align: 'left', + dataIndex: 'truckNo', + width: arrWidth[2], + ellipsis: true, + }, + { + title: '逻辑车号', + align: 'left', + dataIndex: 'ltgNo', + width: arrWidth[2], + ellipsis: true, + }, + { + title: '关联出入库单号', + align: 'left', + dataIndex: 'relStockNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '文件归档状态', + align: 'left', + dataIndex: 'fileArchiveStatus', + width: arrWidth[3], + ellipsis: true, + customRender: function (t, r) { + return t ? t + '-' + r['fileArchiveStatusName'] : '' + }, + }, + { + title: '文件归档日期', + align: 'left', + dataIndex: 'archiveDate', + width: arrWidth[3], + ellipsis: true, + }, +] +//出口保税清单栏位 +const ebColumns = [ + { + title: '操作', + dataIndex: 'action', + align: 'center', + width: arrWidth[2], + ellipsis: true, + + scopedSlots: { + customRender: 'action', + }, + }, + { + title: '流程状态', + align: 'center', + dataIndex: 'flowStatus', + width: arrWidth[3], + ellipsis: true, + + scopedSlots: { + customRender: 'flowStatus', + }, + }, + { + title: '企业内部编号', + align: 'left', + dataIndex: 'compSeqNo', + width: arrWidth[4], + ellipsis: true, + + scopedSlots: { + customRender: 'compSeqNo', + }, + sorter: true, + slots: { + customRender: 'compSeqNo', + }, + }, + { + title: '业务类型', + align: 'left', + dataIndex: 'bizType', + width: arrWidth[3], + ellipsis: true, + + customRender: (text) => { + return filterDictTextByFormatCache('BillBizType', text) + }, + }, + { + title: '账册号', + align: 'left', + dataIndex: 'emsNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '成品料件标志', + align: 'left', + dataIndex: 'gmark', + width: arrWidth[3], + ellipsis: true, + + customRender: (text) => { + return filterDictTextByFormatCache('ie_type', text) + }, + }, + { + title: '出境关别', + align: 'left', + dataIndex: 'ieport_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '运输方式', + align: 'left', + dataIndex: 'trafMode_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '监管方式', + align: 'left', + dataIndex: 'tradeMode_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '清单统一编号', + align: 'left', + dataIndex: 'seqNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '核注清单编号', + align: 'left', + dataIndex: 'billNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '清单状态', + align: 'center', + dataIndex: 'uploadStatus_dictText', + width: arrWidth[3], + ellipsis: true, + + scopedSlots: { + customRender: 'uploadStatus', + }, + }, + { + title: '核扣标志', + align: 'left', + dataIndex: 'hezhuMark_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '申报类型', + align: 'left', + dataIndex: 'dclTypecd', + width: arrWidth[3], + ellipsis: true, + + customRender: (text) => { + return filterDictTextByFormatCache('BillDclType', text) + }, + }, + { + title: '清单类型', + align: 'left', + dataIndex: 'listType_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '报关类型', + align: 'left', + dataIndex: 'declType_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '关联清单编号', + align: 'left', + dataIndex: 'relBillNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '关联账册号', + align: 'left', + dataIndex: 'relEmsNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '关联经营单位', + align: 'left', + dataIndex: 'relEntryTradeName', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '对应报关单号', + align: 'left', + dataIndex: 'curEntryNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '报关单号', + align: 'left', + dataIndex: 'entryId', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '清单申报日期', + align: 'left', + dataIndex: 'ddate', + customRender: function (text) { + return !text ? '' : text.substr(0, 10) + }, + width: arrWidth[3], + ellipsis: true, + + sorter: true, + slots: { + customRender: 'ddate', + }, + }, + { + title: '报关单统一编号', + align: 'left', + dataIndex: 'entrySeqNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '报关单申报日期', + align: 'left', + dataIndex: 'entryDDate', + customRender: function (text) { + return !text ? '' : text.substr(0, 10) + }, + width: arrWidth[3], + ellipsis: true, + + sorter: true, + slots: { + customRender: 'entryDDate', + }, + }, + { + title: '报关单状态', + align: 'center', + dataIndex: 'entryStatus', + width: arrWidth[3], + ellipsis: true, + + scopedSlots: { + customRender: 'entryStatus', + }, + }, + { + title: '主提运单号', + align: 'left', + dataIndex: 'ztdNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '分提运单号', + align: 'left', + dataIndex: 'ftdNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '运抵国', + align: 'left', + dataIndex: 'tradeCountry_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '指运港', + align: 'left', + dataIndex: 'distinatePort_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '出境口岸', + align: 'left', + dataIndex: 'entyPortCode_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '发票号', + align: 'left', + dataIndex: 'invoiceNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '成交方式', + align: 'left', + dataIndex: 'transMode_dictText', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '运输工具名称', + align: 'left', + dataIndex: 'trafName', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '航次号', + align: 'left', + dataIndex: 'voyageNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '客户名称', + align: 'left', + dataIndex: 'partnerName', + width: arrWidth[5], + ellipsis: true, + }, + { + title: '备注', + align: 'left', + dataIndex: 'note', + width: arrWidth[4], + ellipsis: true, + }, + { + title: '企业内部备注', + align: 'left', + dataIndex: 'copNote', + width: arrWidth[4], + ellipsis: true, + }, + { + title: '创建人', + align: 'left', + dataIndex: 'createBy', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '创建时间', + align: 'left', + dataIndex: 'createTime', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '申请人', + align: 'left', + dataIndex: 'applyBy', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '申请时间', + align: 'left', + dataIndex: 'applyTime', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '报关单上载人', + align: 'left', + dataIndex: 'entryUploadBy', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '报关单上载时间', + align: 'left', + dataIndex: 'entryUploadTime', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '件数', + align: 'center', + dataIndex: 'packNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '包装种类', + align: 'left', + dataIndex: 'wrapType', + width: arrWidth[4], + ellipsis: true, + + customRender: (text) => { + return filterDictTextByFormatCusCache('cus_pack_type,code_name,code_value', text) + }, + }, + { + title: '净重', + align: 'center', + dataIndex: 'netWt', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '毛重', + align: 'center', + dataIndex: 'grossWt', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '合同协议号', + align: 'left', + dataIndex: 'contractNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '清单总条数', + align: 'center', + dataIndex: 'totalBill', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '报关草单总条数', + align: 'center', + dataIndex: 'totalEntry', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '清单总数量', + align: 'center', + dataIndex: 'totalBillQty', + width: arrWidth[3], + ellipsis: true, + customRender(text) { + if (text) { + return Number(text) + } + }, + }, + { + title: '清单总金额', + align: 'center', + dataIndex: 'totalBillAmount', + width: arrWidth[3], + ellipsis: true, + customRender(text) { + if (text) { + return Number(text) + } + }, + }, + { + title: '装车单号', + align: 'left', + dataIndex: 'truckNo', + width: arrWidth[2], + ellipsis: true, + }, + { + title: '逻辑车号', + align: 'left', + dataIndex: 'ltgNo', + width: arrWidth[2], + ellipsis: true, + }, + { + title: '关联出入库单号', + align: 'left', + dataIndex: 'relStockNo', + width: arrWidth[3], + ellipsis: true, + }, + { + title: '文件归档状态', + align: 'left', + dataIndex: 'fileArchiveStatus', + width: arrWidth[3], + ellipsis: true, + customRender: function (t, r) { + return t ? t + '-' + r['fileArchiveStatusName'] : '' + }, + }, + { + title: '文件归档日期', + align: 'left', + dataIndex: 'archiveDate', + width: arrWidth[3], + ellipsis: true, + }, +] +export { izColumns, ezColumns, ibColumns, ebColumns } diff --git a/src/views/bill/BillDataListEB.vue b/src/views/bill/BillDataListEB.vue new file mode 100644 index 0000000..d769ba0 --- /dev/null +++ b/src/views/bill/BillDataListEB.vue @@ -0,0 +1,19 @@ + diff --git a/src/views/bill/BillDataListEZ.vue b/src/views/bill/BillDataListEZ.vue new file mode 100644 index 0000000..60eeafc --- /dev/null +++ b/src/views/bill/BillDataListEZ.vue @@ -0,0 +1,19 @@ + diff --git a/src/views/bill/BillDataListEZFoc.vue b/src/views/bill/BillDataListEZFoc.vue new file mode 100644 index 0000000..cb4b541 --- /dev/null +++ b/src/views/bill/BillDataListEZFoc.vue @@ -0,0 +1,20 @@ + diff --git a/src/views/bill/BillDataListIB.vue b/src/views/bill/BillDataListIB.vue new file mode 100644 index 0000000..90a1e02 --- /dev/null +++ b/src/views/bill/BillDataListIB.vue @@ -0,0 +1,19 @@ + diff --git a/src/views/bill/BillDataListIBMBG.vue b/src/views/bill/BillDataListIBMBG.vue new file mode 100644 index 0000000..ef2e8a4 --- /dev/null +++ b/src/views/bill/BillDataListIBMBG.vue @@ -0,0 +1,20 @@ + diff --git a/src/views/bill/BillDataListIZ.vue b/src/views/bill/BillDataListIZ.vue new file mode 100644 index 0000000..bfb81f6 --- /dev/null +++ b/src/views/bill/BillDataListIZ.vue @@ -0,0 +1,19 @@ + diff --git a/src/views/bill/BillDataListIZFoc.vue b/src/views/bill/BillDataListIZFoc.vue new file mode 100644 index 0000000..f75a582 --- /dev/null +++ b/src/views/bill/BillDataListIZFoc.vue @@ -0,0 +1,20 @@ + diff --git a/src/views/bill/BillDataListNew.vue b/src/views/bill/BillDataListNew.vue new file mode 100644 index 0000000..3e1a7ca --- /dev/null +++ b/src/views/bill/BillDataListNew.vue @@ -0,0 +1,1826 @@ + + + + diff --git a/src/views/bill/BillEntryReviewList.vue b/src/views/bill/BillEntryReviewList.vue new file mode 100644 index 0000000..d33da87 --- /dev/null +++ b/src/views/bill/BillEntryReviewList.vue @@ -0,0 +1,306 @@ + + + diff --git a/src/views/bill/BillEntryReviewListColumns.js b/src/views/bill/BillEntryReviewListColumns.js new file mode 100644 index 0000000..a53c022 --- /dev/null +++ b/src/views/bill/BillEntryReviewListColumns.js @@ -0,0 +1,586 @@ +import { + filterDictTextByFormatCache +} from '@/components/dict/JDictSelectUtil' +//进口报关复核 +const iColumns = [{ + title: '流程状态', + align: 'center', + dataIndex: 'flowStatus', + width: 90, + scopedSlots: { + customRender: 'flowStatus' + }, + ellipsis: true, + }, + { + title: '业务类型', + align: 'left', + dataIndex: 'bizType', + width: 150, + customRender: (text) => { + return filterDictTextByFormatCache('BillBizType', text) + }, + ellipsis: true, + }, + { + title: '企业内部备注', + align: 'left', + dataIndex: 'copNote', + width: 90, + ellipsis: true, + }, + { + title: '申请人', + align: 'left', + dataIndex: 'applyByName', + width: 90, + ellipsis: true, + }, + { + title: '申请时间', + align: 'left', + dataIndex: 'applyTime', + width: 150, + ellipsis: true, + }, + { + title: '企业内部编号', + align: 'left', + dataIndex: 'compSeqNo', + width: 150, + scopedSlots: { + customRender: 'compSeqNo' + }, + ellipsis: true, + }, + { + title: '发票号', + align: 'left', + dataIndex: 'invoiceNo', + width: 90, + ellipsis: true, + }, + { + title: '备案号', + align: 'left', + dataIndex: 'emsNo', + width: 150, + ellipsis: true, + }, + { + title: '清单状态', + align: 'center', + dataIndex: 'uploadStatus_dictText', + width: 90, + scopedSlots: { + customRender: 'uploadStatus' + }, + ellipsis: true, + }, + { + title: '核扣标志', + align: 'left', + dataIndex: 'hezhuMark_dictText', + width: 90, + ellipsis: true, + }, + { + title: '经营单位名称', + align: 'left', + dataIndex: 'relEntryTradeName', + width: 130, + ellipsis: true, + }, + { + title: '进境关别', + align: 'left', + dataIndex: 'ieport_dictText', + width: 90, + ellipsis: true, + }, + { + title: '成品料件标志', + align: 'left', + dataIndex: 'gmark', + width: 90, + customRender: (text) => { + return filterDictTextByFormatCache('ie_type', text) + }, + ellipsis: true, + }, + { + title: '运输方式', + align: 'left', + dataIndex: 'trafMode_dictText', + width: 120, + ellipsis: true, + }, + { + title: '监管方式', + align: 'left', + dataIndex: 'tradeMode_dictText', + width: 120, + ellipsis: true, + }, + { + title: '清单统一编号', + align: 'left', + dataIndex: 'seqNo', + width: 150, + ellipsis: true, + }, + { + title: '核注清单编号', + align: 'left', + dataIndex: 'billNo', + width: 150, + ellipsis: true, + }, + { + title: '申报类型', + align: 'left', + dataIndex: 'dclTypecd', + width: 90, + customRender: (text) => { + return filterDictTextByFormatCache('BillDclType', text) + }, + ellipsis: true, + }, + { + title: '清单类型', + align: 'left', + dataIndex: 'listType_dictText', + width: 90, + ellipsis: true, + }, + { + title: '报关类型', + align: 'left', + dataIndex: 'declType_dictText', + width: 90, + ellipsis: true, + }, + + { + title: '对应报关单号', + align: 'left', + dataIndex: 'curEntryNo', + width: 90, + ellipsis: true, + }, + { + title: '报关单号', + align: 'left', + dataIndex: 'entryId', + width: 90, + ellipsis: true, + }, + { + title: '报关单统一编号', + align: 'left', + dataIndex: 'entrySeqNo', + width: 90, + ellipsis: true, + }, + { + title: '报关单申报日期', + align: 'left', + dataIndex: 'entryDDate', + customRender: function (text) { + return !text ? '' : text.substr(0, 10) + }, + width: 90, + ellipsis: true, + }, + { + title: '报关单状态', + align: 'center', + dataIndex: 'entryStatus', + width: 90, + scopedSlots: { + customRender: 'entryStatus' + }, + ellipsis: true, + }, + { + title: '主提运单号', + align: 'left', + dataIndex: 'ztdNo', + width: 90, + ellipsis: true, + }, + { + title: '分提运单号', + align: 'left', + dataIndex: 'ftdNo', + width: 90, + ellipsis: true, + }, + { + title: '启运国', + align: 'left', + dataIndex: 'tradeCountry_dictText', + width: 130, + ellipsis: true, + }, + { + title: '启运港', + align: 'left', + dataIndex: 'despPortCode_dictText', + width: 150, + ellipsis: true, + }, + { + title: '入境口岸', + align: 'left', + dataIndex: 'entyPortCode_dictText', + width: 150, + ellipsis: true, + }, + + { + title: '成交方式', + align: 'left', + dataIndex: 'transMode_dictText', + width: 90, + ellipsis: true, + }, + { + title: '运输工具名称', + align: 'left', + dataIndex: 'trafName', + width: 90, + ellipsis: true, + }, + { + title: '供应商名称', + align: 'left', + dataIndex: 'partnerName', + width: 120, + ellipsis: true, + }, + { + title: '备注', + align: 'left', + dataIndex: 'note', + width: 90, + ellipsis: true, + }, + + { + title: '创建人', + align: 'left', + dataIndex: 'createBy', + width: 90, + ellipsis: true, + }, + { + title: '创建时间', + align: 'left', + dataIndex: 'createTime', + width: 150, + ellipsis: true, + }, + + { + title: '报关单上载人', + align: 'left', + dataIndex: 'entryUploadBy', + width: 90, + ellipsis: true, + }, + { + title: '报关单上载时间', + align: 'left', + dataIndex: 'entryUploadTime', + width: 150, + ellipsis: true, + }, +] +//出口报关复核 +const eColumns = [{ + title: '流程状态', + align: 'center', + dataIndex: 'flowStatus', + width: 90, + scopedSlots: { + customRender: 'flowStatus' + }, + ellipsis: true, + }, + { + title: '企业内部编号', + align: 'left', + dataIndex: 'compSeqNo', + width: 90, + scopedSlots: { + customRender: 'compSeqNo' + }, + ellipsis: true, + }, + { + title: '业务类型', + align: 'left', + dataIndex: 'bizType', + width: 90, + customRender: (text) => { + return filterDictTextByFormatCache('BillBizType', text) + }, + ellipsis: true, + }, + { + title: '清单状态', + align: 'left', + dataIndex: 'uploadStatus_dictText', + width: 90, + scopedSlots: { + customRender: 'uploadStatus' + }, + ellipsis: true, + }, + { + title: '核注清单编号', + align: 'left', + dataIndex: 'billNo', + width: 90, + ellipsis: true, + }, + { + title: '备案号', + align: 'left', + dataIndex: 'emsNo', + width: 90, + ellipsis: true, + }, + { + title: '成品料件标志', + align: 'left', + dataIndex: 'gmark', + width: 90, + customRender: (text) => { + return filterDictTextByFormatCache('ie_type', text) + }, + ellipsis: true, + }, + { + title: '出境关别', + align: 'left', + dataIndex: 'ieport_dictText', + width: 90, + ellipsis: true, + }, + { + title: '运输方式', + align: 'left', + dataIndex: 'trafMode_dictText', + width: 90, + ellipsis: true, + }, + { + title: '监管方式', + align: 'left', + dataIndex: 'tradeMode_dictText', + width: 90, + ellipsis: true, + }, + { + title: '清单统一编号', + align: 'left', + dataIndex: 'seqNo', + width: 90, + ellipsis: true, + }, + { + title: '申报类型', + align: 'left', + dataIndex: 'dclTypecd', + width: 90, + customRender: (text) => { + return filterDictTextByFormatCache('BillDclType', text) + }, + ellipsis: true, + }, + { + title: '清单类型', + align: 'left', + dataIndex: 'listType_dictText', + width: 90, + ellipsis: true, + }, + { + title: '报关类型', + align: 'left', + dataIndex: 'declType_dictText', + width: 90, + ellipsis: true, + }, + { + title: '关联经营单位', + align: 'left', + dataIndex: 'relEntryTradeName', + width: 90, + ellipsis: true, + }, + { + title: '对应报关单号', + align: 'left', + dataIndex: 'curEntryNo', + width: 90, + ellipsis: true, + }, + { + title: '报关单号', + align: 'left', + dataIndex: 'entryId', + width: 90, + ellipsis: true, + }, + { + title: '报关单统一编号', + align: 'left', + dataIndex: 'entrySeqNo', + width: 90, + ellipsis: true, + }, + { + title: '报关单申报日期', + align: 'left', + dataIndex: 'entryDDate', + customRender: function (text) { + return !text ? '' : text.substr(0, 10) + }, + width: 90, + ellipsis: true, + }, + { + title: '报关单状态', + align: 'center', + dataIndex: 'entryStatus', + width: 90, + scopedSlots: { + customRender: 'entryStatus' + }, + ellipsis: true, + }, + { + title: '主提运单号', + align: 'left', + dataIndex: 'ztdNo', + width: 90, + ellipsis: true, + }, + { + title: '分提运单号', + align: 'left', + dataIndex: 'ftdNo', + width: 90, + ellipsis: true, + }, + { + title: '运抵国', + align: 'left', + dataIndex: 'tradeCountry_dictText', + width: 90, + ellipsis: true, + }, + { + title: '指运港', + align: 'left', + dataIndex: 'distinatePort_dictText', + width: 90, + ellipsis: true, + }, + { + title: '出境口岸', + align: 'left', + dataIndex: 'entyPortCode_dictText', + width: 90, + ellipsis: true, + }, + { + title: '发票号', + align: 'left', + dataIndex: 'invoiceNo', + width: 90, + }, + { + title: '成交方式', + align: 'left', + dataIndex: 'transMode_dictText', + width: 90, + ellipsis: true, + }, + { + title: '运输工具名称', + align: 'left', + dataIndex: 'trafName', + width: 90, + ellipsis: true, + }, + { + title: '供应商名称', + align: 'left', + dataIndex: 'partnerName', + width: 90, + ellipsis: true, + }, + { + title: '备注', + align: 'left', + dataIndex: 'note', + width: 90, + ellipsis: true, + }, + { + title: '企业内部备注', + align: 'left', + dataIndex: 'copNote', + width: 90, + ellipsis: true, + }, + { + title: '创建人', + align: 'left', + dataIndex: 'createBy', + width: 90, + }, + { + title: '创建时间', + align: 'left', + dataIndex: 'createTime', + width: 150, + ellipsis: true, + }, + { + title: '申请人', + align: 'left', + dataIndex: 'applyByName', + width: 90, + ellipsis: true, + }, + { + title: '申请时间', + align: 'left', + dataIndex: 'applyTime', + width: 150, + ellipsis: true, + }, + { + title: '报关单上载人', + align: 'left', + dataIndex: 'entryUploadBy', + width: 90, + ellipsis: true, + }, + { + title: '报关单上载时间', + align: 'left', + dataIndex: 'entryUploadTime', + width: 120, + ellipsis: true, + }, +] +export { + iColumns, + eColumns +} \ No newline at end of file diff --git a/src/views/bill/BillEntryReviewListE.vue b/src/views/bill/BillEntryReviewListE.vue new file mode 100644 index 0000000..1d84bb8 --- /dev/null +++ b/src/views/bill/BillEntryReviewListE.vue @@ -0,0 +1,15 @@ + diff --git a/src/views/bill/BillEntryReviewListI.vue b/src/views/bill/BillEntryReviewListI.vue new file mode 100644 index 0000000..402b2a2 --- /dev/null +++ b/src/views/bill/BillEntryReviewListI.vue @@ -0,0 +1,15 @@ + diff --git a/src/views/bill/BillTemplateList.vue b/src/views/bill/BillTemplateList.vue new file mode 100644 index 0000000..a974e5f --- /dev/null +++ b/src/views/bill/BillTemplateList.vue @@ -0,0 +1,233 @@ + + + + diff --git a/src/views/bill/BillTemplateListColumns.js b/src/views/bill/BillTemplateListColumns.js new file mode 100644 index 0000000..fd454a8 --- /dev/null +++ b/src/views/bill/BillTemplateListColumns.js @@ -0,0 +1,194 @@ +import { filterDictTextByFormatCache } from '@/components/dict/JDictSelectUtil' +//进口清单模板栏位 +const iColumns = [ + { + title: '操作', + dataIndex: 'action', + align: 'center', + width: 120, + scopedSlots: { + customRender: 'action' + }, + ellipsis: true + }, + { + title: '模板名称', + dataIndex: 'action_templateName', + align: 'center', + width: 200, + scopedSlots: { + customRender: 'action_templateName' + }, + ellipsis: true + }, + { + title: '监管方式', + align: 'center', + dataIndex: 'tradeMode_dictText', + width: 90, + ellipsis: true + }, + { + title: '成品料件标志', + align: 'center', + dataIndex: 'gmark', + width: 90, + customRender: text => { + return filterDictTextByFormatCache('ie_type', text) + }, + ellipsis: true + }, + { + title: '进境关别', + align: 'center', + dataIndex: 'ieport_dictText', + width: 90, + ellipsis: true + }, + { + title: '启运国', + align: 'center', + dataIndex: 'tradeCountry_dictText', + width: 90, + ellipsis: true + }, + { + title: '供应商名称', + align: 'center', + dataIndex: 'partnerName', + width: 90, + ellipsis: true + }, + { + title: '运输方式', + align: 'center', + dataIndex: 'trafMode_dictText', + width: 90, + ellipsis: true + }, + { + title: '货运代理', + align: 'center', + dataIndex: 'freightName', + width: 90, + ellipsis: true + }, + { + title: '创建人', + align: 'center', + dataIndex: 'createBy', + width: 90, + ellipsis: true + }, + { + title: '修改人', + align: 'center', + dataIndex: 'updateBy', + width: 90, + ellipsis: true + }, + { + title: '修改时间', + align: 'center', + dataIndex: 'updateTime', + width: 90, + ellipsis: true + } +] +//出口清单模板栏位 +const eColumns = [ + { + title: '操作', + dataIndex: 'action', + align: 'center', + width: 120, + scopedSlots: { + customRender: 'action' + }, + ellipsis: true + }, + { + title: '模板名称', + dataIndex: 'action_templateName', + align: 'center', + width: 200, + scopedSlots: { + customRender: 'action_templateName' + }, + ellipsis: true + }, + { + title: '监管方式', + align: 'center', + dataIndex: 'tradeMode_dictText', + width: 90, + ellipsis: true + }, + { + title: '成品料件标志', + align: 'center', + dataIndex: 'gmark', + width: 90, + customRender: text => { + return filterDictTextByFormatCache('ie_type', text) + }, + ellipsis: true + }, + { + title: '出境关别', + align: 'center', + dataIndex: 'ieport_dictText', + width: 90, + ellipsis: true + }, + { + title: '运抵国', + align: 'center', + dataIndex: 'tradeCountry_dictText', + width: 90, + ellipsis: true + }, + { + title: '客户名称', + align: 'center', + dataIndex: 'partnerName', + width: 90, + ellipsis: true + }, + { + title: '运输方式', + align: 'center', + dataIndex: 'trafMode_dictText', + width: 90, + ellipsis: true + }, + { + title: '货运代理', + align: 'center', + dataIndex: 'freightName', + width: 90, + ellipsis: true + }, + { + title: '创建人', + align: 'center', + dataIndex: 'createBy', + width: 90, + ellipsis: true + }, + { + title: '修改人', + align: 'center', + dataIndex: 'updateBy', + width: 90, + ellipsis: true + }, + { + title: '修改时间', + align: 'center', + dataIndex: 'updateTime', + width: 90, + ellipsis: true + } +] +export { iColumns, eColumns } diff --git a/src/views/bill/BillTemplateListE.vue b/src/views/bill/BillTemplateListE.vue new file mode 100644 index 0000000..6cca972 --- /dev/null +++ b/src/views/bill/BillTemplateListE.vue @@ -0,0 +1,14 @@ + diff --git a/src/views/bill/BillTemplateListI.vue b/src/views/bill/BillTemplateListI.vue new file mode 100644 index 0000000..95b99ee --- /dev/null +++ b/src/views/bill/BillTemplateListI.vue @@ -0,0 +1,14 @@ + diff --git a/src/views/bill/BillTidyList.vue b/src/views/bill/BillTidyList.vue new file mode 100644 index 0000000..9c70056 --- /dev/null +++ b/src/views/bill/BillTidyList.vue @@ -0,0 +1,936 @@ + + + + diff --git a/src/views/bill/BillTidyListE.vue b/src/views/bill/BillTidyListE.vue new file mode 100644 index 0000000..2218cd6 --- /dev/null +++ b/src/views/bill/BillTidyListE.vue @@ -0,0 +1,14 @@ + diff --git a/src/views/bill/BillTidyListI.vue b/src/views/bill/BillTidyListI.vue new file mode 100644 index 0000000..c2da46e --- /dev/null +++ b/src/views/bill/BillTidyListI.vue @@ -0,0 +1,14 @@ + diff --git a/src/views/bill/LvBilITrackList.vue b/src/views/bill/LvBilITrackList.vue new file mode 100644 index 0000000..5dca123 --- /dev/null +++ b/src/views/bill/LvBilITrackList.vue @@ -0,0 +1,599 @@ + + + diff --git a/src/views/bill/LvBilITrackListE.vue b/src/views/bill/LvBilITrackListE.vue new file mode 100644 index 0000000..6f25aed --- /dev/null +++ b/src/views/bill/LvBilITrackListE.vue @@ -0,0 +1,17 @@ + + + diff --git a/src/views/bill/LvBilITrackListI.vue b/src/views/bill/LvBilITrackListI.vue new file mode 100644 index 0000000..e14c180 --- /dev/null +++ b/src/views/bill/LvBilITrackListI.vue @@ -0,0 +1,17 @@ + + + diff --git a/src/views/bill/modules/BetchUploadForm.vue b/src/views/bill/modules/BetchUploadForm.vue new file mode 100644 index 0000000..2e2d564 --- /dev/null +++ b/src/views/bill/modules/BetchUploadForm.vue @@ -0,0 +1,224 @@ + + + + + diff --git a/src/views/bill/modules/BillAcmpFormModal.vue b/src/views/bill/modules/BillAcmpFormModal.vue new file mode 100644 index 0000000..3977b0e --- /dev/null +++ b/src/views/bill/modules/BillAcmpFormModal.vue @@ -0,0 +1,107 @@ + + + diff --git a/src/views/bill/modules/BillAttachForm.vue b/src/views/bill/modules/BillAttachForm.vue new file mode 100644 index 0000000..43027e9 --- /dev/null +++ b/src/views/bill/modules/BillAttachForm.vue @@ -0,0 +1,486 @@ + + + + + diff --git a/src/views/bill/modules/BillBatchExportColumns.js b/src/views/bill/modules/BillBatchExportColumns.js new file mode 100644 index 0000000..cfc0a6f --- /dev/null +++ b/src/views/bill/modules/BillBatchExportColumns.js @@ -0,0 +1,1364 @@ +//进口征税清单表体栏位 +const izHeadListColumns = [ + { + title: '企业内部编号', + dataIndex: 'compSeqNo', + }, + { + title: '核注清单编号', + dataIndex: 'checkBillNo', + }, + { + title: '序号', + align: 'center', + dataIndex: 'gid', + width: 60, + ellipsis: true, + }, + { + title: '草单', + align: 'center', + dataIndex: 'entryOid', + customRender: function (text) { + return !text ? '未生成' : '已生成' + }, + ellipsis: true, + }, + { + title: '料号', + align: 'center', + dataIndex: 'copGNo', + ellipsis: true, + }, + { + title: '商品名称', + align: 'center', + dataIndex: 'gname', + ellipsis: true, + }, + { + title: '商品编码', + align: 'center', + dataIndex: 'codeTs', + ellipsis: true, + }, + { + title: '规格型号', + align: 'center', + dataIndex: 'gmodel', + ellipsis: true, + }, + { + title: '申报数量', + align: 'center', + dataIndex: 'qty', + ellipsis: true, + }, + { + title: '单位', + align: 'center', + dataIndex: 'unit_dictText', + ellipsis: true, + }, + { + title: '申报单价', + align: 'center', + dataIndex: 'price', + customCell: (record) => { + if (record.diffNote && record.diffNote.indexOf('单价') > -1) { + return { + style: { + 'color': 'red', + 'font-weight': 'bold' + } + } + } + return; + }, + ellipsis: true, + }, + { + title: '申报总价', + align: 'center', + dataIndex: 'totalPrice', + ellipsis: true, + }, + { + title: '币制', + align: 'center', + dataIndex: 'curr_dictText', + ellipsis: true, + }, + { + title: '净重(KG)', + align: 'center', + dataIndex: 'netWt', + customCell: (record) => { + if (record.diffNote && record.diffNote.indexOf('净重') > -1) { + return { + style: { + 'color': 'red', + 'font-weight': 'bold' + } + } + } + return; + }, + ellipsis: true, + }, + { + title: '法定数量', + align: 'center', + dataIndex: 'qty1', + ellipsis: true, + }, + { + title: '法定单位', + align: 'center', + dataIndex: 'unit1_dictText', + ellipsis: true, + }, + { + title: '法定第二数量', + align: 'center', + dataIndex: 'qty2', + ellipsis: true, + }, + { + title: '法定第二单位', + align: 'center', + dataIndex: 'unit2_dictText', + ellipsis: true, + }, + { + title: '原产国', + align: 'center', + dataIndex: 'country_dictText', + ellipsis: true, + }, + { + title: '最终目的国(地区)', + align: 'center', + dataIndex: 'destCountry_dictText', + ellipsis: true, + }, + { + title: '征免方式', + align: 'center', + dataIndex: 'dutyMode_dictText', + ellipsis: true, + }, + { + title: '毛重(KG)', + align: 'center', + dataIndex: 'grossWt', + ellipsis: true, + }, + { + title: '备注', + align: 'center', + dataIndex: 'note', + ellipsis: true, + }, + { + title: '上次单价', + align: 'center', + dataIndex: 'lastPrice', + ellipsis: true, + }, + { + title: '上次净重', + align: 'center', + dataIndex: 'lastNetWt', + ellipsis: true, + }, + { + title: '差异说明', + align: 'center', + dataIndex: 'diffNote', + ellipsis: true, + }, + { + title: '订单号', + align: 'center', + dataIndex: 'poCode', + ellipsis: true, + }, + { + title: '订单行号', + align: 'center', + dataIndex: 'poItem', + ellipsis: true, + }, + { + title: '发票号', + align: 'center', + dataIndex: 'invoiceNo', + ellipsis: true, + }, + { + title: '发票行号', + align: 'center', + dataIndex: 'invoiceItem', + ellipsis: true, + }, + { + title: '发票日期', + align: 'center', + dataIndex: 'invoiceDate', + customRender: function (text) { + return !text ? '' : text.substr(0, 10) + }, + width: 100, + ellipsis: true, + }, + { + title: '物料凭证号', + align: 'center', + dataIndex: 'moveNo', + ellipsis: true, + }, + { + title: '物料凭证行号', + align: 'center', + dataIndex: 'moveItem', + ellipsis: true, + }, + { + title: '物料凭证年', + align: 'center', + dataIndex: 'moveYear', + ellipsis: true, + }, + { + title: '发货工厂', + align: 'center', + dataIndex: 'issuePlant', + ellipsis: true, + }, + { + title: '发货库位', + align: 'center', + dataIndex: 'issueLocation', + ellipsis: true, + }, + { + title: '收货工厂', + align: 'center', + dataIndex: 'receivePlant', + ellipsis: true, + }, + { + title: '收货库位', + align: 'center', + dataIndex: 'receiveLocation', + ellipsis: true, + }, + { + title: 'pull', + align: 'center', + dataIndex: 'pullNo', + ellipsis: true, + }, + { + title: 'pull line', + align: 'center', + dataIndex: 'pullItem', + ellipsis: true, + }, + { + title: '报关单内部编号', + align: 'center', + dataIndex: 'entrySeqNo', + ellipsis: true, + }, + { + title: '报关单序号', + align: 'center', + dataIndex: 'entryGId', + width: 130, + ellipsis: true, + }, + { + title: '最新分摊总价', + align: 'center', + dataIndex: 'lastTotalPrice', + ellipsis: true, + }, + { + title: '分摊运费', + align: 'center', + dataIndex: 'feeRateSplit', + ellipsis: true, + }, + { + title: '品牌', + align: 'center', + dataIndex: 'brand', + ellipsis: true, + }, + { + title: '型号', + align: 'center', + dataIndex: 'model', + ellipsis: true, + }, + { + title: '序列号', + align: 'center', + dataIndex: 'serialNo', + ellipsis: true, + }, + { + title: '涉证代码', + align: 'center', + dataIndex: 'certCode', + ellipsis: true, + }, + { + title: '涉证类型', + align: 'center', + dataIndex: 'certDataInfo', + ellipsis: true, + }, +] +//出口征税清单表体栏位 +const ezHeadListColumns = [ + { + title: '企业内部编号', + dataIndex: 'compSeqNo', + }, + { + title: '核注清单编号', + dataIndex: 'checkBillNo', + }, + { + title: '序号', + align: 'center', + dataIndex: 'gid', + width: 60, + ellipsis: true, + }, + { + title: '草单', + align: 'center', + dataIndex: 'entryOid', + customRender: function (text) { + return !text ? '未生成' : '已生成' + }, + ellipsis: true, + }, + { + title: '料号', + align: 'center', + dataIndex: 'copGNo', + ellipsis: true, + }, + { + title: '商品名称', + align: 'center', + dataIndex: 'gname', + ellipsis: true, + }, + { + title: '商品编码', + align: 'center', + dataIndex: 'codeTs', + ellipsis: true, + }, + { + title: '规格型号', + align: 'center', + dataIndex: 'gmodel', + ellipsis: true, + }, + { + title: '申报数量', + align: 'center', + dataIndex: 'qty', + ellipsis: true, + }, + { + title: '单位', + align: 'center', + dataIndex: 'unit_dictText', + ellipsis: true, + }, + { + title: '申报单价', + align: 'center', + dataIndex: 'price', + customCell: (record) => { + if (record.diffNote && record.diffNote.indexOf('单价') > -1) { + return { + style: { + 'color': 'red', + 'font-weight': 'bold' + } + } + } + return; + }, + ellipsis: true, + }, + { + title: '申报总价', + align: 'center', + dataIndex: 'totalPrice', + ellipsis: true, + }, + { + title: '币制', + align: 'center', + dataIndex: 'curr_dictText', + ellipsis: true, + }, + { + title: '净重(KG)', + align: 'center', + dataIndex: 'netWt', + customCell: (record) => { + if (record.diffNote && record.diffNote.indexOf('净重') > -1) { + return { + style: { + 'color': 'red', + 'font-weight': 'bold' + } + } + } + return; + }, + ellipsis: true, + }, + { + title: '法定数量', + align: 'center', + dataIndex: 'qty1', + ellipsis: true, + }, + { + title: '法定单位', + align: 'center', + dataIndex: 'unit1_dictText', + ellipsis: true, + }, + { + title: '法定第二数量', + align: 'center', + dataIndex: 'qty2', + ellipsis: true, + }, + { + title: '法定第二单位', + align: 'center', + dataIndex: 'unit2_dictText', + ellipsis: true, + }, + { + title: '原产国', + align: 'center', + dataIndex: 'country_dictText', + ellipsis: true, + }, + { + title: '最终目的国(地区)', + align: 'center', + dataIndex: 'destCountry_dictText', + ellipsis: true, + }, + { + title: '征免方式', + align: 'center', + dataIndex: 'dutyMode_dictText', + ellipsis: true, + }, + { + title: '毛重(KG)', + align: 'center', + dataIndex: 'grossWt', + ellipsis: true, + }, + { + title: '备注', + align: 'center', + dataIndex: 'note', + ellipsis: true, + }, + { + title: '上次单价', + align: 'center', + dataIndex: 'lastPrice', + ellipsis: true, + }, + { + title: '上次净重', + align: 'center', + dataIndex: 'lastNetWt', + ellipsis: true, + }, + { + title: '差异说明', + align: 'center', + dataIndex: 'diffNote', + ellipsis: true, + }, + { + title: '发货单号', + align: 'center', + dataIndex: 'dnNo', + ellipsis: true, + }, + { + title: '发货单行号', + align: 'center', + dataIndex: 'dnItem', + ellipsis: true, + }, + { + title: '订单号', + align: 'center', + dataIndex: 'poCode', + ellipsis: true, + }, + { + title: '订单行号', + align: 'center', + dataIndex: 'poItem', + ellipsis: true, + }, + { + title: '发票号', + align: 'center', + dataIndex: 'invoiceNo', + ellipsis: true, + }, + { + title: '发票行号', + align: 'center', + dataIndex: 'invoiceItem', + ellipsis: true, + }, + { + title: '发票日期', + align: 'center', + dataIndex: 'invoiceDate', + customRender: function (text) { + return !text ? '' : text.substr(0, 10) + }, + width: 90, + ellipsis: true, + }, + { + title: '物料凭证号', + align: 'center', + dataIndex: 'moveNo', + ellipsis: true, + }, + { + title: '物料凭证行号', + align: 'center', + dataIndex: 'moveItem', + ellipsis: true, + }, + { + title: '物料凭证年', + align: 'center', + dataIndex: 'moveYear', + ellipsis: true, + }, + { + title: '发货工厂', + align: 'center', + dataIndex: 'issuePlant', + ellipsis: true, + }, + { + title: '发货库位', + align: 'center', + dataIndex: 'issueLocation', + ellipsis: true, + }, + { + title: '收货工厂', + align: 'center', + dataIndex: 'receivePlant', + ellipsis: true, + }, + { + title: '收货库位', + align: 'center', + dataIndex: 'receiveLocation', + ellipsis: true, + }, + { + title: 'pull', + align: 'center', + dataIndex: 'pullNo', + ellipsis: true, + }, + { + title: 'pull line', + align: 'center', + dataIndex: 'pullItem', + ellipsis: true, + }, + { + title: 'MTM', + align: 'center', + dataIndex: 'mtm', + ellipsis: true, + }, + { + title: '报关单内部编号', + align: 'center', + dataIndex: 'entrySeqNo', + ellipsis: true, + }, + { + title: '报关单序号', + align: 'center', + dataIndex: 'entryGId', + width: 130, + ellipsis: true, + }, + { + title: '最新分摊总价', + align: 'center', + dataIndex: 'lastTotalPrice', + ellipsis: true, + }, + { + title: '分摊运费', + align: 'center', + dataIndex: 'feeRateSplit', + ellipsis: true, + }, + { + title: '品牌', + align: 'center', + dataIndex: 'brand', + ellipsis: true, + }, + { + title: '型号', + align: 'center', + dataIndex: 'model', + ellipsis: true, + }, + { + title: '涉证代码', + align: 'center', + dataIndex: 'certCode', + ellipsis: true, + }, + { + title: '涉证类型', + align: 'center', + dataIndex: 'certDataInfo', + ellipsis: true, + }, +] +//进口保税清单表体栏位 +const ibHeadListColumns = [ + { + title: '企业内部编号', + dataIndex: 'compSeqNo', + }, + { + title: '核注清单编号', + dataIndex: 'checkBillNo', + }, + { + title: '序号', + align: 'center', + dataIndex: 'gid', + width: 60, + ellipsis: true, + }, + { + title: '草单', + align: 'center', + dataIndex: 'entryOid', + customRender: function (text) { + return !text ? '未生成' : '已生成' + }, + ellipsis: true, + }, + { + title: '企业料号', + align: 'center', + dataIndex: 'copGNo', + ellipsis: true, + }, + { + title: '备案序号', + align: 'center', + dataIndex: 'gno', + width: 120, + ellipsis: true, + }, + { + title: '备案料号', + align: 'center', + dataIndex: 'cusGNo', + ellipsis: true, + }, + { + title: '商品名称', + align: 'center', + dataIndex: 'gname', + ellipsis: true, + }, + { + title: '商品编码', + align: 'center', + dataIndex: 'codeTs', + ellipsis: true, + }, + { + title: '规格型号', + align: 'center', + dataIndex: 'gmodel', + ellipsis: true, + }, + { + title: '申报数量', + align: 'center', + dataIndex: 'qty', + ellipsis: true, + }, + { + title: '单位', + align: 'center', + dataIndex: 'unit_dictText', + ellipsis: true, + }, + { + title: '申报单价', + align: 'center', + dataIndex: 'price', + customCell: (record) => { + if (record.diffNote && record.diffNote.indexOf('单价') > -1) { + return { + style: { + 'color': 'red', + 'font-weight': 'bold' + } + } + } + return; + }, + ellipsis: true, + }, + { + title: '申报总价', + align: 'center', + dataIndex: 'totalPrice', + ellipsis: true, + }, + { + title: '币制', + align: 'center', + dataIndex: 'curr_dictText', + ellipsis: true, + }, + { + title: '净重(KG)', + align: 'center', + dataIndex: 'netWt', + customCell: (record) => { + if (record.diffNote && record.diffNote.indexOf('净重') > -1) { + return { + style: { + 'color': 'red', + 'font-weight': 'bold' + } + } + } + return; + }, + ellipsis: true, + }, + { + title: '法定数量', + align: 'center', + dataIndex: 'qty1', + ellipsis: true, + }, + { + title: '法定单位', + align: 'center', + dataIndex: 'unit1_dictText', + ellipsis: true, + }, + { + title: '法定第二数量', + align: 'center', + dataIndex: 'qty2', + ellipsis: true, + }, + { + title: '法定第二单位', + align: 'center', + dataIndex: 'unit2_dictText', + ellipsis: true, + }, + { + title: '原产国', + align: 'center', + dataIndex: 'country_dictText', + ellipsis: true, + }, + { + title: '最终目的国(地区)', + align: 'center', + dataIndex: 'destCountry_dictText', + ellipsis: true, + }, + { + title: '征免方式', + align: 'center', + dataIndex: 'dutyMode_dictText', + ellipsis: true, + }, + { + title: '毛重(KG)', + align: 'center', + dataIndex: 'grossWt', + ellipsis: true, + }, + { + title: '单耗版本号', + align: 'center', + dataIndex: 'exgVersion', + ellipsis: true, + }, + { + title: '备注', + align: 'center', + dataIndex: 'note', + ellipsis: true, + }, + { + title: '上次单价', + align: 'center', + dataIndex: 'lastPrice', + ellipsis: true, + }, + { + title: '上次净重', + align: 'center', + dataIndex: 'lastNetWt', + ellipsis: true, + }, + { + title: '差异说明', + align: 'center', + dataIndex: 'diffNote', + ellipsis: true, + }, + { + title: '订单号', + align: 'center', + dataIndex: 'poCode', + ellipsis: true, + }, + { + title: '订单行号', + align: 'center', + dataIndex: 'poItem', + ellipsis: true, + }, + { + title: '发票号', + align: 'center', + dataIndex: 'invoiceNo', + ellipsis: true, + }, + { + title: '发票行号', + align: 'center', + dataIndex: 'invoiceItem', + ellipsis: true, + }, + { + title: '发票日期', + align: 'center', + dataIndex: 'invoiceDate', + customRender: function (text) { + return !text ? '' : text.substr(0, 10) + }, + width: 90, + ellipsis: true, + }, + { + title: '物料凭证号', + align: 'center', + dataIndex: 'moveNo', + ellipsis: true, + }, + { + title: '物料凭证行号', + align: 'center', + dataIndex: 'moveItem', + ellipsis: true, + }, + { + title: '物料凭证年', + align: 'center', + dataIndex: 'moveYear', + ellipsis: true, + }, + { + title: '发货工厂', + align: 'center', + dataIndex: 'issuePlant', + ellipsis: true, + }, + { + title: '发货库位', + align: 'center', + dataIndex: 'issueLocation', + ellipsis: true, + }, + { + title: '收货工厂', + align: 'center', + dataIndex: 'receivePlant', + ellipsis: true, + }, + { + title: '收货库位', + align: 'center', + dataIndex: 'receiveLocation', + ellipsis: true, + }, + { + title: 'pull', + align: 'center', + dataIndex: 'pullNo', + ellipsis: true, + }, + { + title: 'pull line', + align: 'center', + dataIndex: 'pullItem', + ellipsis: true, + }, + { + title: '报关单内部编号', + align: 'center', + dataIndex: 'entrySeqNo', + ellipsis: true, + }, + { + title: '报关单序号', + align: 'center', + width: 130, + dataIndex: 'entryGId', + ellipsis: true, + }, + { + title: '最新分摊总价', + align: 'center', + dataIndex: 'lastTotalPrice', + ellipsis: true, + }, + { + title: '分摊运费', + align: 'center', + dataIndex: 'feeRateSplit', + ellipsis: true, + }, + { + title: '品牌', + align: 'center', + dataIndex: 'brand', + ellipsis: true, + }, + { + title: '型号', + align: 'center', + dataIndex: 'model', + ellipsis: true, + }, + { + title: '序列号', + align: 'center', + dataIndex: 'serialNo', + ellipsis: true, + }, + { + title: '涉证代码', + align: 'center', + dataIndex: 'certCode', + ellipsis: true, + }, + { + title: '涉证类型', + align: 'center', + dataIndex: 'certDataInfo', + ellipsis: true, + }, +] +//出口保税清单表体栏位 +const ebHeadListColumns = [ + { + title: '企业内部编号', + dataIndex: 'compSeqNo', + }, + { + title: '核注清单编号', + dataIndex: 'checkBillNo', + }, + { + title: '序号', + align: 'center', + dataIndex: 'gid', + width: 60, + ellipsis: true, + }, + { + title: '草单', + align: 'center', + dataIndex: 'entryOid', + customRender: function (text) { + return !text ? '未生成' : '已生成' + }, + ellipsis: true, + }, + { + title: '企业料号', + align: 'center', + dataIndex: 'copGNo', + ellipsis: true, + }, + { + title: '备案序号', + align: 'center', + dataIndex: 'gno', + width: 120, + ellipsis: true, + }, + { + title: '备案料号', + align: 'center', + dataIndex: 'cusGNo', + ellipsis: true, + }, + { + title: '商品名称', + align: 'center', + dataIndex: 'gname', + ellipsis: true, + }, + { + title: '商品编码', + align: 'center', + dataIndex: 'codeTs', + ellipsis: true, + }, + { + title: '规格型号', + align: 'center', + dataIndex: 'gmodel', + ellipsis: true, + }, + { + title: '申报数量', + align: 'center', + dataIndex: 'qty', + ellipsis: true, + }, + { + title: '单位', + align: 'center', + dataIndex: 'unit_dictText', + ellipsis: true, + }, + { + title: '申报单价', + align: 'center', + dataIndex: 'price', + customCell: (record) => { + if (record.diffNote && record.diffNote.indexOf('单价') > -1) { + return { + style: { + 'color': 'red', + 'font-weight': 'bold' + } + } + } + return; + }, + ellipsis: true, + }, + { + title: '申报总价', + align: 'center', + dataIndex: 'totalPrice', + ellipsis: true, + }, + { + title: '币制', + align: 'center', + dataIndex: 'curr_dictText', + ellipsis: true, + }, + { + title: '净重(KG)', + align: 'center', + dataIndex: 'netWt', + customCell: (record) => { + if (record.diffNote && record.diffNote.indexOf('净重') > -1) { + return { + style: { + 'color': 'red', + 'font-weight': 'bold' + } + } + } + return; + }, + ellipsis: true, + }, + { + title: '法定数量', + align: 'center', + dataIndex: 'qty1', + ellipsis: true, + }, + { + title: '法定单位', + align: 'center', + dataIndex: 'unit1_dictText', + ellipsis: true, + }, + { + title: '法定第二数量', + align: 'center', + dataIndex: 'qty2', + ellipsis: true, + }, + { + title: '法定第二单位', + align: 'center', + dataIndex: 'unit2_dictText', + ellipsis: true, + }, + { + title: '原产国', + align: 'center', + dataIndex: 'country_dictText', + ellipsis: true, + }, + { + title: '最终目的国(地区)', + align: 'center', + dataIndex: 'destCountry_dictText', + ellipsis: true, + }, + { + title: '征免方式', + align: 'center', + dataIndex: 'dutyMode_dictText', + ellipsis: true, + }, + { + title: '毛重(KG)', + align: 'center', + dataIndex: 'grossWt', + ellipsis: true, + }, + + { + title: '单耗版本号', + align: 'center', + dataIndex: 'exgVersion', + ellipsis: true, + }, + { + title: '备注', + align: 'center', + dataIndex: 'note', + ellipsis: true, + }, + { + title: '上次单价', + align: 'center', + dataIndex: 'lastPrice', + ellipsis: true, + }, + { + title: '上次净重', + align: 'center', + dataIndex: 'lastNetWt', + ellipsis: true, + }, + { + title: '差异说明', + align: 'center', + dataIndex: 'diffNote', + ellipsis: true, + }, + { + title: '发货单号', + align: 'center', + dataIndex: 'dnNo', + ellipsis: true, + }, + { + title: '发货单行号', + align: 'center', + dataIndex: 'dnItem', + ellipsis: true, + }, + { + title: '订单号', + align: 'center', + dataIndex: 'poCode', + ellipsis: true, + }, + { + title: '订单行号', + align: 'center', + dataIndex: 'poItem', + ellipsis: true, + }, + { + title: '发票号', + align: 'center', + dataIndex: 'invoiceNo', + ellipsis: true, + }, + { + title: '发票行号', + align: 'center', + dataIndex: 'invoiceItem', + ellipsis: true, + }, + { + title: '发票日期', + align: 'center', + dataIndex: 'invoiceDate', + customRender: function (text) { + return !text ? '' : text.substr(0, 10) + }, + width: 90, + ellipsis: true, + }, + { + title: '物料凭证号', + align: 'center', + dataIndex: 'moveNo', + ellipsis: true, + }, + { + title: '物料凭证行号', + align: 'center', + dataIndex: 'moveItem', + ellipsis: true, + }, + { + title: '物料凭证年', + align: 'center', + dataIndex: 'moveYear', + ellipsis: true, + }, + { + title: '发货工厂', + align: 'center', + dataIndex: 'issuePlant', + ellipsis: true, + }, + { + title: '发货库位', + align: 'center', + dataIndex: 'issueLocation', + ellipsis: true, + }, + { + title: '收货工厂', + align: 'center', + dataIndex: 'receivePlant', + ellipsis: true, + }, + { + title: '收货库位', + align: 'center', + dataIndex: 'receiveLocation', + ellipsis: true, + }, + { + title: 'pull', + align: 'center', + dataIndex: 'pullNo', + ellipsis: true, + }, + { + title: 'pull line', + align: 'center', + dataIndex: 'pullItem', + ellipsis: true, + }, + { + title: 'MTM', + align: 'center', + dataIndex: 'mtm', + ellipsis: true, + }, + { + title: '报关单内部编号', + align: 'center', + dataIndex: 'entrySeqNo', + ellipsis: true, + }, + { + title: '报关单序号', + align: 'center', + dataIndex: 'entryGId', + width: 130, + ellipsis: true, + }, + { + title: '最新分摊总价', + align: 'center', + dataIndex: 'lastTotalPrice', + ellipsis: true, + }, + { + title: '分摊运费', + align: 'center', + dataIndex: 'feeRateSplit', + ellipsis: true, + }, + { + title: '品牌', + align: 'center', + dataIndex: 'brand', + ellipsis: true, + }, + { + title: '型号', + align: 'center', + dataIndex: 'model', + ellipsis: true, + }, + { + title: '涉证代码', + align: 'center', + dataIndex: 'certCode', + ellipsis: true, + }, + { + title: '涉证类型', + align: 'center', + dataIndex: 'certDataInfo', + ellipsis: true, + }, +] + +export { + ebHeadListColumns, ezHeadListColumns, + ibHeadListColumns, izHeadListColumns +}; diff --git a/src/views/bill/modules/BillDataAttachment.vue b/src/views/bill/modules/BillDataAttachment.vue new file mode 100644 index 0000000..61a5eb3 --- /dev/null +++ b/src/views/bill/modules/BillDataAttachment.vue @@ -0,0 +1,427 @@ + + + + + diff --git a/src/views/bill/modules/BillDataModal.vue b/src/views/bill/modules/BillDataModal.vue new file mode 100644 index 0000000..b8a3072 --- /dev/null +++ b/src/views/bill/modules/BillDataModal.vue @@ -0,0 +1,493 @@ + + + + + diff --git a/src/views/bill/modules/BillDataModalNew.vue b/src/views/bill/modules/BillDataModalNew.vue new file mode 100644 index 0000000..5488333 --- /dev/null +++ b/src/views/bill/modules/BillDataModalNew.vue @@ -0,0 +1,513 @@ + + + + + diff --git a/src/views/bill/modules/BillExceptionForm.vue b/src/views/bill/modules/BillExceptionForm.vue new file mode 100644 index 0000000..ff18394 --- /dev/null +++ b/src/views/bill/modules/BillExceptionForm.vue @@ -0,0 +1,203 @@ + + + diff --git a/src/views/bill/modules/BillExceptionList.vue b/src/views/bill/modules/BillExceptionList.vue new file mode 100644 index 0000000..2c0e774 --- /dev/null +++ b/src/views/bill/modules/BillExceptionList.vue @@ -0,0 +1,299 @@ + + + diff --git a/src/views/bill/modules/BillHeadForm.vue b/src/views/bill/modules/BillHeadForm.vue new file mode 100644 index 0000000..d858575 --- /dev/null +++ b/src/views/bill/modules/BillHeadForm.vue @@ -0,0 +1,6449 @@ + + + + diff --git a/src/views/bill/modules/BillHeadFormExportlevies.vue b/src/views/bill/modules/BillHeadFormExportlevies.vue new file mode 100644 index 0000000..90ce944 --- /dev/null +++ b/src/views/bill/modules/BillHeadFormExportlevies.vue @@ -0,0 +1,3712 @@ + + + + diff --git a/src/views/bill/modules/BillHeadModal.vue b/src/views/bill/modules/BillHeadModal.vue new file mode 100644 index 0000000..b1e71c4 --- /dev/null +++ b/src/views/bill/modules/BillHeadModal.vue @@ -0,0 +1,64 @@ + + + diff --git a/src/views/bill/modules/BillListForm.vue b/src/views/bill/modules/BillListForm.vue new file mode 100644 index 0000000..35b1525 --- /dev/null +++ b/src/views/bill/modules/BillListForm.vue @@ -0,0 +1,3361 @@ + + + + diff --git a/src/views/bill/modules/BillListFormExportlevies.vue b/src/views/bill/modules/BillListFormExportlevies.vue new file mode 100644 index 0000000..71ec51f --- /dev/null +++ b/src/views/bill/modules/BillListFormExportlevies.vue @@ -0,0 +1,3521 @@ + + + + diff --git a/src/views/bill/modules/BillListList.vue b/src/views/bill/modules/BillListList.vue new file mode 100644 index 0000000..732e403 --- /dev/null +++ b/src/views/bill/modules/BillListList.vue @@ -0,0 +1,1399 @@ + + + + + diff --git a/src/views/bill/modules/BillListListColumns.js b/src/views/bill/modules/BillListListColumns.js new file mode 100644 index 0000000..09a66ed --- /dev/null +++ b/src/views/bill/modules/BillListListColumns.js @@ -0,0 +1,1881 @@ +//进口征税清单表体栏位 +const izListColumns = [ + { + title: '操作', + dataIndex: 'action', + align: 'center', + width: 120, + scopedSlots: { + customRender: 'action', + }, + }, + { + title: '序号', + align: 'center', + dataIndex: 'gid', + width: 60, + ellipsis: true, + }, + { + title: '草单', + dataIndex: 'entryOid', + customRender: function (text) { + return !text ? '未生成' : '已生成' + }, + width: 100, + ellipsis: true, + }, + { + title: '料号', + dataIndex: 'copGNo', + width: 100, + ellipsis: true, + }, + { + title: '商品名称', + dataIndex: 'gname', + width: 100, + ellipsis: true, + }, + { + title: '商品编码', + dataIndex: 'codeTs', + width: 100, + ellipsis: true, + }, + { + title: '规格型号', + dataIndex: 'gmodel', + width: 100, + ellipsis: true, + }, + { + title: '申报数量', + align: 'center', + dataIndex: 'qty', + width: 100, + ellipsis: true, + }, + { + title: '单位', + dataIndex: 'unit_dictText', + width: 100, + ellipsis: true, + }, + { + title: '申报单价', + align: 'center', + dataIndex: 'price', + customCell: (record) => { + if (record.diffNote && record.diffNote.indexOf('单价') > -1) { + return { + style: { + color: 'red', + 'font-weight': 'bold', + }, + } + } + return + }, + width: 100, + ellipsis: true, + }, + { + title: '申报总价', + align: 'center', + dataIndex: 'totalPrice', + width: 100, + ellipsis: true, + }, + { + title: '币制', + dataIndex: 'curr_dictText', + width: 100, + ellipsis: true, + }, + { + title: '净重(KG)', + align: 'center', + dataIndex: 'netWt', + customCell: (record) => { + if (record.diffNote && record.diffNote.indexOf('净重') > -1) { + return { + style: { + color: 'red', + 'font-weight': 'bold', + }, + } + } + return + }, + width: 100, + ellipsis: true, + }, + { + title: '法定数量', + align: 'center', + dataIndex: 'qty1', + width: 100, + ellipsis: true, + }, + { + title: '法定单位', + dataIndex: 'unit1_dictText', + width: 100, + ellipsis: true, + }, + { + title: '法定第二数量', + align: 'center', + dataIndex: 'qty2', + width: 100, + ellipsis: true, + }, + { + title: '法定第二单位', + dataIndex: 'unit2_dictText', + width: 100, + ellipsis: true, + }, + { + title: '原产国', + dataIndex: 'country_dictText', + width: 100, + ellipsis: true, + }, + { + title: '最终目的国(地区)', + dataIndex: 'destCountry_dictText', + width: 100, + ellipsis: true, + }, + { + title: '征免方式', + dataIndex: 'dutyMode_dictText', + width: 100, + ellipsis: true, + }, + { + title: '毛重(KG)', + align: 'center', + dataIndex: 'grossWt', + width: 100, + ellipsis: true, + }, + { + title: '备注', + dataIndex: 'note', + width: 100, + ellipsis: true, + }, + { + title: '上次单价', + align: 'center', + dataIndex: 'lastPrice', + width: 100, + ellipsis: true, + }, + { + title: '上次净重', + align: 'center', + dataIndex: 'lastNetWt', + width: 100, + ellipsis: true, + }, + { + title: '差异说明', + dataIndex: 'diffNote', + width: 100, + ellipsis: true, + }, + { + title: '订单号', + dataIndex: 'poCode', + width: 100, + ellipsis: true, + }, + { + title: '订单行号', + dataIndex: 'poItem', + width: 100, + ellipsis: true, + }, + { + title: '发票号', + dataIndex: 'invoiceNo', + width: 100, + ellipsis: true, + }, + { + title: '发票行号', + dataIndex: 'invoiceItem', + width: 100, + ellipsis: true, + }, + { + title: '发票日期', + dataIndex: 'invoiceDate', + customRender: function (text) { + return !text ? '' : text.substr(0, 10) + }, + width: 100, + ellipsis: true, + }, + // { + // title: '物料凭证号', + // dataIndex: 'moveNo', + // width: 100, + // ellipsis: true + // }, + // { + // title: '物料凭证行号', + // dataIndex: 'moveItem', + // width: 100, + // ellipsis: true + // }, + // { + // title: '物料凭证年', + // dataIndex: 'moveYear', + // width: 100, + // ellipsis: true + // }, + // { + // title: '发货工厂', + // dataIndex: 'issuePlant', + // width: 100, + // ellipsis: true + // }, + // { + // title: '发货库位', + // dataIndex: 'issueLocation', + // width: 100, + // ellipsis: true + // }, + // { + // title: '收货工厂', + // dataIndex: 'receivePlant', + // width: 100, + // ellipsis: true + // }, + // { + // title: '收货库位', + // dataIndex: 'receiveLocation', + // width: 100, + // ellipsis: true + // }, + // { + // title: 'pull', + // dataIndex: 'pullNo', + // width: 100, + // ellipsis: true + // }, + // { + // title: 'pull line', + // dataIndex: 'pullItem', + // width: 100, + // ellipsis: true + // }, + { + title: '报关单内部编号', + dataIndex: 'entrySeqNo', + width: 100, + ellipsis: true, + }, + { + title: '报关单序号', + align: 'center', + dataIndex: 'entryGId', + width: 130, + ellipsis: true, + }, + { + title: '最新分摊总价', + align: 'center', + dataIndex: 'lastTotalPrice', + width: 100, + ellipsis: true, + }, + { + title: '分摊运费', + align: 'center', + dataIndex: 'feeRateSplit', + width: 100, + ellipsis: true, + }, + { + title: '品牌', + dataIndex: 'brand', + width: 100, + ellipsis: true, + }, + { + title: '型号', + dataIndex: 'model', + width: 100, + ellipsis: true, + }, + { + title: '序列号', + align: 'center', + dataIndex: 'serialNo', + width: 100, + ellipsis: true, + }, + { + title: '涉证代码', + dataIndex: 'certCode', + width: 100, + ellipsis: true, + }, + { + title: '涉证类型', + dataIndex: 'certDataInfo', + width: 100, + ellipsis: true, + }, + { + title: '装车单号', + dataIndex: 'truckNo', + width: 100, + ellipsis: true, + }, + { + title: '出入库单号', + dataIndex: 'stockNo', + width: 100, + ellipsis: true, + }, + { + title: '供应商料号', + dataIndex: 'supplierPartNo', + width: 100, + ellipsis: true, + }, + { + title: '关联清单编号', + dataIndex: 'relBillNo', + width: 100, + ellipsis: true, + }, + { + title: '关联清单序号', + dataIndex: 'relBillGid', + width: 100, + ellipsis: true, + }, + { + title: '关联报关单号', + dataIndex: 'relEntryId', + width: 100, + ellipsis: true, + }, + { + title: '关联报关单序号', + dataIndex: 'relEntryGid', + width: 100, + ellipsis: true, + }, +] +//出口征税清单表体栏位 +const ezListColumns = [ + { + title: '序号', + align: 'center', + dataIndex: 'gid', + width: 60, + ellipsis: true, + }, + { + title: '草单', + dataIndex: 'entryOid', + customRender: function (text) { + return !text ? '未生成' : '已生成' + }, + width: 100, + ellipsis: true, + }, + { + title: '料号', + dataIndex: 'copGNo', + width: 100, + ellipsis: true, + }, + { + title: '商品名称', + dataIndex: 'gname', + width: 100, + ellipsis: true, + }, + { + title: '商品编码', + dataIndex: 'codeTs', + width: 100, + ellipsis: true, + }, + { + title: '规格型号', + dataIndex: 'gmodel', + width: 100, + ellipsis: true, + }, + { + title: '申报数量', + align: 'center', + dataIndex: 'qty', + width: 100, + ellipsis: true, + }, + { + title: '单位', + dataIndex: 'unit_dictText', + width: 100, + ellipsis: true, + }, + { + title: '申报单价', + align: 'center', + dataIndex: 'price', + customCell: (record) => { + if (record.diffNote && record.diffNote.indexOf('单价') > -1) { + return { + style: { + color: 'red', + 'font-weight': 'bold', + }, + } + } + return + }, + width: 100, + ellipsis: true, + }, + { + title: '申报总价', + align: 'center', + dataIndex: 'totalPrice', + width: 100, + ellipsis: true, + }, + { + title: '币制', + dataIndex: 'curr_dictText', + width: 100, + ellipsis: true, + }, + { + title: '净重(KG)', + align: 'center', + dataIndex: 'netWt', + customCell: (record) => { + if (record.diffNote && record.diffNote.indexOf('净重') > -1) { + return { + style: { + color: 'red', + 'font-weight': 'bold', + }, + } + } + return + }, + width: 100, + ellipsis: true, + }, + { + title: '法定数量', + align: 'center', + dataIndex: 'qty1', + width: 100, + ellipsis: true, + }, + { + title: '法定单位', + dataIndex: 'unit1_dictText', + width: 100, + ellipsis: true, + }, + { + title: '法定第二数量', + align: 'center', + dataIndex: 'qty2', + width: 100, + ellipsis: true, + }, + { + title: '法定第二单位', + dataIndex: 'unit2_dictText', + width: 100, + ellipsis: true, + }, + { + title: '原产国', + dataIndex: 'country_dictText', + width: 100, + ellipsis: true, + }, + { + title: '最终目的国(地区)', + dataIndex: 'destCountry_dictText', + width: 100, + ellipsis: true, + }, + { + title: '征免方式', + dataIndex: 'dutyMode_dictText', + width: 100, + ellipsis: true, + }, + { + title: '毛重(KG)', + dataIndex: 'grossWt', + width: 100, + ellipsis: true, + }, + { + title: '备注', + dataIndex: 'note', + width: 100, + ellipsis: true, + }, + { + title: '上次单价', + align: 'center', + dataIndex: 'lastPrice', + width: 100, + ellipsis: true, + }, + { + title: '上次净重', + align: 'center', + dataIndex: 'lastNetWt', + width: 100, + ellipsis: true, + }, + { + title: '差异说明', + dataIndex: 'diffNote', + width: 100, + ellipsis: true, + }, + { + title: '发货单号', + dataIndex: 'dnNo', + width: 100, + ellipsis: true, + }, + { + title: '发货单行号', + dataIndex: 'dnItem', + width: 100, + ellipsis: true, + }, + { + title: '订单号', + dataIndex: 'poCode', + width: 100, + ellipsis: true, + }, + { + title: '订单行号', + dataIndex: 'poItem', + width: 100, + ellipsis: true, + }, + { + title: '发票号', + dataIndex: 'invoiceNo', + width: 100, + ellipsis: true, + }, + { + title: '发票行号', + dataIndex: 'invoiceItem', + width: 100, + ellipsis: true, + }, + { + title: '发票日期', + dataIndex: 'invoiceDate', + customRender: function (text) { + return !text ? '' : text.substr(0, 10) + }, + width: 90, + ellipsis: true, + }, + // { + // title: '物料凭证号', + // dataIndex: 'moveNo', + // width: 100, + // ellipsis: true + // }, + // { + // title: '物料凭证行号', + // dataIndex: 'moveItem', + // width: 100, + // ellipsis: true + // }, + // { + // title: '物料凭证年', + // dataIndex: 'moveYear', + // width: 100, + // ellipsis: true + // }, + // { + // title: '发货工厂', + // dataIndex: 'issuePlant', + // width: 100, + // ellipsis: true + // }, + // { + // title: '发货库位', + // dataIndex: 'issueLocation', + // width: 100, + // ellipsis: true + // }, + // { + // title: '收货工厂', + // dataIndex: 'receivePlant', + // width: 100, + // ellipsis: true + // }, + // { + // title: '收货库位', + // dataIndex: 'receiveLocation', + // width: 100, + // ellipsis: true + // }, + // { + // title: 'pull', + // dataIndex: 'pullNo', + // width: 100, + // ellipsis: true + // }, + // { + // title: 'pull line', + // dataIndex: 'pullItem', + // width: 100, + // ellipsis: true + // }, + // { + // title: 'MTM', + // dataIndex: 'mtm', + // width: 100, + // ellipsis: true + // }, + { + title: '报关单内部编号', + dataIndex: 'entrySeqNo', + width: 100, + ellipsis: true, + }, + { + title: '报关单序号', + align: 'center', + dataIndex: 'entryGId', + width: 130, + ellipsis: true, + }, + { + title: '最新分摊总价', + align: 'center', + dataIndex: 'lastTotalPrice', + width: 100, + ellipsis: true, + }, + { + title: '分摊运费', + align: 'center', + dataIndex: 'feeRateSplit', + width: 100, + ellipsis: true, + }, + { + title: '品牌', + dataIndex: 'brand', + width: 100, + ellipsis: true, + }, + { + title: 'VIN', + align: 'center', + dataIndex: 'serialNo', + width: 100, + ellipsis: true, + }, + { + title: '型号', + dataIndex: 'model', + width: 100, + ellipsis: true, + }, + { + title: '涉证代码', + dataIndex: 'certCode', + width: 100, + ellipsis: true, + }, + { + title: '涉证类型', + dataIndex: 'certDataInfo', + width: 100, + ellipsis: true, + }, + { + title: '关联清单编号', + dataIndex: 'relBillNo', + width: 100, + ellipsis: true, + }, + { + title: '关联清单序号', + dataIndex: 'relBillGid', + width: 100, + ellipsis: true, + }, + { + title: '关联报关单号', + dataIndex: 'relEntryId', + width: 100, + ellipsis: true, + }, + { + title: '关联报关单序号', + dataIndex: 'relEntryGid', + width: 100, + ellipsis: true, + }, + { + title: '操作', + dataIndex: 'action', + align: 'center', + width: 120, + fixed: 'right', + scopedSlots: { + customRender: 'action', + }, + }, +] +//进口保税清单表体栏位 +const ibListColumns = [ + { + title: '操作', + dataIndex: 'action', + align: 'center', + width: 120, + scopedSlots: { + customRender: 'action', + }, + }, + { + title: '序号', + align: 'center', + dataIndex: 'gid', + width: 60, + ellipsis: true, + }, + { + title: '草单', + dataIndex: 'entryOid', + customRender: function (text) { + return !text ? '未生成' : '已生成' + }, + width: 100, + ellipsis: true, + }, + { + title: '企业料号', + dataIndex: 'copGNo', + width: 100, + ellipsis: true, + }, + { + title: '备案序号', + align: 'center', + dataIndex: 'gno', + width: 120, + ellipsis: true, + }, + { + title: '备案料号', + dataIndex: 'cusGNo', + width: 100, + ellipsis: true, + }, + { + title: '商品名称', + dataIndex: 'gname', + width: 100, + ellipsis: true, + }, + { + title: '商品编码', + dataIndex: 'codeTs', + width: 100, + ellipsis: true, + }, + { + title: '规格型号', + dataIndex: 'gmodel', + width: 100, + ellipsis: true, + }, + { + title: '申报数量', + align: 'center', + dataIndex: 'qty', + width: 100, + ellipsis: true, + }, + { + title: '单位', + dataIndex: 'unit_dictText', + width: 100, + ellipsis: true, + }, + { + title: '申报单价', + align: 'center', + dataIndex: 'price', + customCell: (record) => { + if (record.diffNote && record.diffNote.indexOf('单价') > -1) { + return { + style: { + color: 'red', + 'font-weight': 'bold', + }, + } + } + return + }, + width: 100, + ellipsis: true, + }, + { + title: '申报总价', + align: 'center', + dataIndex: 'totalPrice', + width: 100, + ellipsis: true, + }, + { + title: '币制', + dataIndex: 'curr_dictText', + width: 100, + ellipsis: true, + }, + { + title: '净重(KG)', + align: 'center', + dataIndex: 'netWt', + customCell: (record) => { + if (record.diffNote && record.diffNote.indexOf('净重') > -1) { + return { + style: { + color: 'red', + 'font-weight': 'bold', + }, + } + } + return + }, + width: 100, + ellipsis: true, + }, + { + title: '法定数量', + align: 'center', + dataIndex: 'qty1', + width: 100, + ellipsis: true, + }, + { + title: '法定单位', + dataIndex: 'unit1_dictText', + width: 100, + ellipsis: true, + }, + { + title: '法定第二数量', + align: 'center', + dataIndex: 'qty2', + width: 100, + ellipsis: true, + }, + { + title: '法定第二单位', + dataIndex: 'unit2_dictText', + width: 100, + ellipsis: true, + }, + { + title: '原产国', + dataIndex: 'country_dictText', + width: 100, + ellipsis: true, + }, + { + title: '最终目的国(地区)', + dataIndex: 'destCountry_dictText', + width: 100, + ellipsis: true, + }, + { + title: '征免方式', + dataIndex: 'dutyMode_dictText', + width: 100, + ellipsis: true, + }, + { + title: '毛重(KG)', + align: 'center', + dataIndex: 'grossWt', + width: 100, + ellipsis: true, + }, + { + title: '单耗版本号', + dataIndex: 'exgVersion', + width: 100, + ellipsis: true, + }, + { + title: '备注', + dataIndex: 'note', + width: 100, + ellipsis: true, + }, + { + title: '上次单价', + align: 'center', + dataIndex: 'lastPrice', + width: 100, + ellipsis: true, + }, + { + title: '上次净重', + align: 'center', + dataIndex: 'lastNetWt', + width: 100, + ellipsis: true, + }, + { + title: '差异说明', + dataIndex: 'diffNote', + width: 100, + ellipsis: true, + }, + { + title: '订单号', + dataIndex: 'poCode', + width: 100, + ellipsis: true, + }, + { + title: '订单行号', + dataIndex: 'poItem', + width: 100, + ellipsis: true, + }, + { + title: '发票号', + dataIndex: 'invoiceNo', + width: 100, + ellipsis: true, + }, + { + title: '发票行号', + dataIndex: 'invoiceItem', + width: 100, + ellipsis: true, + }, + { + title: '发票日期', + dataIndex: 'invoiceDate', + customRender: function (text) { + return !text ? '' : text.substr(0, 10) + }, + width: 90, + ellipsis: true, + }, + // { + // title: '物料凭证号', + // dataIndex: 'moveNo', + // width: 100, + // ellipsis: true + // }, + // { + // title: '物料凭证行号', + // dataIndex: 'moveItem', + // width: 100, + // ellipsis: true + // }, + // { + // title: '物料凭证年', + // dataIndex: 'moveYear', + // width: 100, + // ellipsis: true + // }, + // { + // title: '发货工厂', + // dataIndex: 'issuePlant', + // width: 100, + // ellipsis: true + // }, + // { + // title: '发货库位', + // dataIndex: 'issueLocation', + // width: 100, + // ellipsis: true + // }, + // { + // title: '收货工厂', + // dataIndex: 'receivePlant', + // width: 100, + // ellipsis: true + // }, + // { + // title: '收货库位', + // dataIndex: 'receiveLocation', + // width: 100, + // ellipsis: true + // }, + // { + // title: 'pull', + // dataIndex: 'pullNo', + // width: 100, + // ellipsis: true + // }, + // { + // title: 'pull line', + // dataIndex: 'pullItem', + // width: 100, + // ellipsis: true + // }, + { + title: '报关单内部编号', + dataIndex: 'entrySeqNo', + width: 100, + ellipsis: true, + }, + { + title: '报关单序号', + align: 'center', + width: 130, + dataIndex: 'entryGId', + ellipsis: true, + }, + { + title: '最新分摊总价', + align: 'center', + dataIndex: 'lastTotalPrice', + width: 100, + ellipsis: true, + }, + { + title: '分摊运费', + align: 'center', + dataIndex: 'feeRateSplit', + width: 100, + ellipsis: true, + }, + { + title: '品牌', + dataIndex: 'brand', + width: 100, + ellipsis: true, + }, + { + title: '型号', + dataIndex: 'model', + width: 100, + ellipsis: true, + }, + { + title: '序列号', + align: 'center', + dataIndex: 'serialNo', + width: 100, + ellipsis: true, + }, + { + title: '涉证代码', + dataIndex: 'certCode', + width: 100, + ellipsis: true, + }, + { + title: '涉证类型', + dataIndex: 'certDataInfo', + width: 100, + ellipsis: true, + }, + { + title: '关联清单编号', + dataIndex: 'relBillNo', + width: 100, + ellipsis: true, + }, + { + title: '关联清单序号', + dataIndex: 'relBillGid', + width: 100, + ellipsis: true, + }, + { + title: '关联报关单号', + dataIndex: 'relEntryId', + width: 100, + ellipsis: true, + }, + { + title: '关联报关单序号', + dataIndex: 'relEntryGid', + width: 100, + ellipsis: true, + }, + { + title: '危化品标志', + dataIndex: 'clyMarkcd', + width: 100, + ellipsis: true, + customRender: function (t, r) { + if (t) { + if (r['clyMarkcdName']) { + return t + '-' + r['clyMarkcdName'] + } else { + return t + } + } else { + return '' + } + }, + }, +] +//出口保税清单表体栏位 +const ebListColumns = [ + { + title: '操作', + dataIndex: 'action', + align: 'center', + width: 120, + scopedSlots: { + customRender: 'action', + }, + }, + { + title: '序号', + align: 'center', + dataIndex: 'gid', + width: 60, + ellipsis: true, + }, + { + title: '草单', + dataIndex: 'entryOid', + customRender: function (text) { + return !text ? '未生成' : '已生成' + }, + width: 100, + ellipsis: true, + }, + { + title: '企业料号', + dataIndex: 'copGNo', + width: 100, + ellipsis: true, + }, + { + title: '备案序号', + align: 'center', + dataIndex: 'gno', + width: 120, + ellipsis: true, + }, + { + title: '备案料号', + dataIndex: 'cusGNo', + width: 100, + ellipsis: true, + }, + { + title: '商品名称', + dataIndex: 'gname', + width: 100, + ellipsis: true, + }, + { + title: '商品编码', + dataIndex: 'codeTs', + width: 100, + ellipsis: true, + }, + { + title: '规格型号', + dataIndex: 'gmodel', + width: 100, + ellipsis: true, + }, + { + title: '申报数量', + align: 'center', + dataIndex: 'qty', + width: 100, + ellipsis: true, + }, + { + title: '单位', + dataIndex: 'unit_dictText', + width: 100, + ellipsis: true, + }, + { + title: '申报单价', + align: 'center', + dataIndex: 'price', + customCell: (record) => { + if (record.diffNote && record.diffNote.indexOf('单价') > -1) { + return { + style: { + color: 'red', + 'font-weight': 'bold', + }, + } + } + return + }, + width: 100, + ellipsis: true, + }, + { + title: '申报总价', + align: 'center', + dataIndex: 'totalPrice', + width: 100, + ellipsis: true, + }, + { + title: '币制', + dataIndex: 'curr_dictText', + width: 100, + ellipsis: true, + }, + { + title: '净重(KG)', + align: 'center', + dataIndex: 'netWt', + customCell: (record) => { + if (record.diffNote && record.diffNote.indexOf('净重') > -1) { + return { + style: { + color: 'red', + 'font-weight': 'bold', + }, + } + } + return + }, + width: 100, + ellipsis: true, + }, + { + title: '法定数量', + align: 'center', + dataIndex: 'qty1', + width: 100, + ellipsis: true, + }, + { + title: '法定单位', + dataIndex: 'unit1_dictText', + width: 100, + ellipsis: true, + }, + { + title: '法定第二数量', + align: 'center', + dataIndex: 'qty2', + width: 100, + ellipsis: true, + }, + { + title: '法定第二单位', + dataIndex: 'unit2_dictText', + width: 100, + ellipsis: true, + }, + { + title: '原产国', + dataIndex: 'country_dictText', + width: 100, + ellipsis: true, + }, + { + title: '最终目的国(地区)', + dataIndex: 'destCountry_dictText', + width: 100, + ellipsis: true, + }, + { + title: '征免方式', + dataIndex: 'dutyMode_dictText', + width: 100, + ellipsis: true, + }, + { + title: '毛重(KG)', + align: 'center', + dataIndex: 'grossWt', + width: 100, + ellipsis: true, + }, + + { + title: '单耗版本号', + dataIndex: 'exgVersion', + width: 100, + ellipsis: true, + }, + { + title: '备注', + dataIndex: 'note', + width: 100, + ellipsis: true, + }, + { + title: '上次单价', + align: 'center', + dataIndex: 'lastPrice', + width: 100, + ellipsis: true, + }, + { + title: '上次净重', + align: 'center', + dataIndex: 'lastNetWt', + width: 100, + ellipsis: true, + }, + { + title: '差异说明', + dataIndex: 'diffNote', + width: 100, + ellipsis: true, + }, + { + title: '发货单号', + dataIndex: 'dnNo', + width: 100, + ellipsis: true, + }, + { + title: '发货单行号', + dataIndex: 'dnItem', + width: 100, + ellipsis: true, + }, + { + title: '订单号', + dataIndex: 'poCode', + width: 100, + ellipsis: true, + }, + { + title: '订单行号', + dataIndex: 'poItem', + width: 100, + ellipsis: true, + }, + { + title: '发票号', + dataIndex: 'invoiceNo', + width: 100, + ellipsis: true, + }, + { + title: '发票行号', + dataIndex: 'invoiceItem', + width: 100, + ellipsis: true, + }, + { + title: '发票日期', + dataIndex: 'invoiceDate', + customRender: function (text) { + return !text ? '' : text.substr(0, 10) + }, + width: 90, + ellipsis: true, + }, + // { + // title: '物料凭证号', + // dataIndex: 'moveNo', + // width: 100, + // ellipsis: true + // }, + // { + // title: '物料凭证行号', + // dataIndex: 'moveItem', + // width: 100, + // ellipsis: true + // }, + // { + // title: '物料凭证年', + // dataIndex: 'moveYear', + // width: 100, + // ellipsis: true + // }, + // { + // title: '发货工厂', + // dataIndex: 'issuePlant', + // width: 100, + // ellipsis: true + // }, + // { + // title: '发货库位', + // dataIndex: 'issueLocation', + // width: 100, + // ellipsis: true + // }, + // { + // title: '收货工厂', + // dataIndex: 'receivePlant', + // width: 100, + // ellipsis: true + // }, + // { + // title: '收货库位', + // dataIndex: 'receiveLocation', + // width: 100, + // ellipsis: true + // }, + // { + // title: 'pull', + // dataIndex: 'pullNo', + // width: 100, + // ellipsis: true + // }, + // { + // title: 'pull line', + // dataIndex: 'pullItem', + // width: 100, + // ellipsis: true + // }, + // { + // title: 'MTM', + // dataIndex: 'mtm', + // width: 100, + // ellipsis: true + // }, + { + title: '报关单内部编号', + dataIndex: 'entrySeqNo', + width: 100, + ellipsis: true, + }, + { + title: '报关单序号', + dataIndex: 'entryGId', + width: 130, + ellipsis: true, + }, + { + title: '最新分摊总价', + align: 'center', + dataIndex: 'lastTotalPrice', + width: 100, + ellipsis: true, + }, + { + title: '分摊运费', + align: 'center', + dataIndex: 'feeRateSplit', + width: 100, + ellipsis: true, + }, + { + title: '品牌', + dataIndex: 'brand', + width: 100, + ellipsis: true, + }, + { + title: '型号', + dataIndex: 'model', + width: 100, + ellipsis: true, + }, + { + title: '涉证代码', + dataIndex: 'certCode', + width: 100, + ellipsis: true, + }, + { + title: '涉证类型', + dataIndex: 'certDataInfo', + width: 100, + ellipsis: true, + }, + { + title: '关联清单编号', + dataIndex: 'relBillNo', + width: 100, + ellipsis: true, + }, + { + title: '关联清单序号', + dataIndex: 'relBillGid', + width: 100, + ellipsis: true, + }, + { + title: '关联报关单号', + dataIndex: 'relEntryId', + width: 100, + ellipsis: true, + }, + { + title: '关联报关单序号', + dataIndex: 'relEntryGid', + width: 100, + ellipsis: true, + }, + { + title: '危化品标志', + dataIndex: 'clyMarkcd', + width: 100, + ellipsis: true, + customRender: function (t, r) { + if (t) { + if (r['clyMarkcdName']) { + return t + '-' + r['clyMarkcdName'] + } else { + return t + } + } else { + return '' + } + }, + }, +] +// 保税清单批量编辑页面显示栏位和顺序 +// 序号、报关单序号、三星料号、备案序号、备案料号、商品编码、品名、规格型号、申报数量、单价、总价、币制、净重、原产国、最终目的国、征免方式、危化品标志、单耗版本号; +const batchBListColumns = [ + { + title: '序号', + align: 'center', + dataIndex: 'gid', + width: 60, + ellipsis: true, + }, + { + title: '报关单序号', + align: 'center', + color: '#0000ff', + dataIndex: 'entryGId', + scopedSlots: { customRender: 'entryGId' }, + type: 'input', + width: 100, + ellipsis: true, + }, + { + title: '料号', + dataIndex: 'copGNo', + width: 100, + ellipsis: true, + }, + { + title: '备案序号', + align: 'center', + dataIndex: 'gno', + width: 120, + ellipsis: true, + }, + { + title: '备案料号', + dataIndex: 'cusGNo', + width: 100, + ellipsis: true, + }, + { + title: '商品编码', + dataIndex: 'codeTs', + width: 100, + ellipsis: true, + }, + { + title: '商品名称', + dataIndex: 'gname', + width: 100, + ellipsis: true, + }, + { + title: '规格型号', + color: '#0000ff', + dataIndex: 'gmodel', + scopedSlots: { customRender: 'gmodel' }, + type: 'input', + editing: false, + width: 100, + ellipsis: true, + }, + { + title: '申报数量', + align: 'center', + dataIndex: 'qty', + width: 100, + ellipsis: true, + }, + { + title: '申报单价', + align: 'center', + dataIndex: 'price', + // customCell: (record) => { + // if (record.diffNote && record.diffNote.indexOf('单价') > -1) { + // return { + // style: { + // 'color': 'red', + // 'font-weight': 'bold' + // } + // } + // } + // return + // }, + width: 100, + ellipsis: true, + }, + { + title: '申报总价', + align: 'center', + dataIndex: 'totalPrice', + width: 100, + ellipsis: true, + }, + { + title: '币制', + color: '#d2691e', + dataIndex: 'curr', + scopedSlots: { customRender: 'curr' }, + type: 'select', + dict: 'cus_currency', + editing: false, + width: 100, + ellipsis: true, + }, + { + title: '净重(KG)', + align: 'center', + dataIndex: 'netWt', + // customCell: (record) => { + // if (record.diffNote && record.diffNote.indexOf('净重') > -1) { + // return { + // style: { + // 'color': 'red', + // 'font-weight': 'bold' + // } + // } + // } + // return + // }, + width: 100, + ellipsis: true, + }, + { + title: '原产国', + color: '#d2691e', + dataIndex: 'country', + scopedSlots: { customRender: 'country' }, + type: 'select', + dict: 'cus_country_old', + editing: false, + width: 100, + ellipsis: true, + }, + { + title: '最终目的国(地区)', + color: '#d2691e', + dataIndex: 'destCountry', + scopedSlots: { customRender: 'destCountry' }, + type: 'select', + dict: 'cus_country_old', + editing: false, + width: 100, + ellipsis: true, + }, + { + title: '征免方式', + color: '#d2691e', + dataIndex: 'dutyMode', + scopedSlots: { customRender: 'dutyMode' }, + type: 'select', + dict: 'cus_levy_mode', + editing: false, + width: 100, + ellipsis: true, + }, + { + title: '危化品标志', + color: '#d2691e', + dataIndex: 'clyMarkcd', + scopedSlots: { customRender: 'clyMarkcd' }, + type: 'selectDict', + dict: 'YesNoStatus', + editing: false, + width: 100, + ellipsis: true, + }, + { + title: '单耗版本号', + color: '#d2691e', + dataIndex: 'exgVersion', + scopedSlots: { customRender: 'exgVersion' }, + type: 'input', + editing: false, + width: 100, + ellipsis: true, + }, +] +//征税清单批量编辑页面显示栏位和顺序: +// 序号、报关单序号、三星料号、商品编码、品名、规格型号、申报数量、单价、总价、币制、净重、原产国、最终目的国、征免方式; +const batchZListColumns = [ + { + title: '序号', + align: 'center', + dataIndex: 'gid', + width: 60, + ellipsis: true, + }, + { + title: '报关单序号', + align: 'center', + color: '#0000ff', + dataIndex: 'entryGId', + scopedSlots: { customRender: 'entryGId' }, + type: 'input', + width: 100, + ellipsis: true, + }, + { + title: '料号', + dataIndex: 'copGNo', + width: 100, + ellipsis: true, + }, + { + title: '商品编码', + dataIndex: 'codeTs', + width: 100, + ellipsis: true, + }, + { + title: '商品名称', + dataIndex: 'gname', + width: 100, + ellipsis: true, + }, + { + title: '规格型号', + color: '#0000ff', + dataIndex: 'gmodel', + scopedSlots: { customRender: 'gmodel' }, + type: 'input', + editing: false, + width: 100, + ellipsis: true, + }, + { + title: '申报数量', + align: 'center', + dataIndex: 'qty', + width: 100, + ellipsis: true, + }, + { + title: '申报单价', + align: 'center', + dataIndex: 'price', + // customCell: (record) => { + // if (record.diffNote && record.diffNote.indexOf('单价') > -1) { + // return { + // style: { + // 'color': 'red', + // 'font-weight': 'bold' + // } + // } + // } + // return + // }, + width: 100, + ellipsis: true, + }, + { + title: '申报总价', + align: 'center', + dataIndex: 'totalPrice', + width: 100, + ellipsis: true, + }, + { + title: '币制', + color: '#d2691e', + dataIndex: 'curr', + scopedSlots: { customRender: 'curr' }, + type: 'select', + dict: 'cus_currency', + editing: false, + width: 100, + ellipsis: true, + }, + { + title: '净重(KG)', + align: 'center', + dataIndex: 'netWt', + // customCell: (record) => { + // if (record.diffNote && record.diffNote.indexOf('净重') > -1) { + // return { + // style: { + // 'color': 'red', + // 'font-weight': 'bold' + // } + // } + // } + // return + // }, + width: 100, + ellipsis: true, + }, + { + title: '原产国', + color: '#d2691e', + dataIndex: 'country', + scopedSlots: { customRender: 'country' }, + type: 'select', + dict: 'cus_country_old', + editing: false, + width: 100, + ellipsis: true, + }, + { + title: '最终目的国(地区)', + color: '#d2691e', + dataIndex: 'destCountry', + scopedSlots: { customRender: 'destCountry' }, + type: 'select', + dict: 'cus_country_old', + editing: false, + width: 100, + ellipsis: true, + }, + { + title: '征免方式', + color: '#d2691e', + dataIndex: 'dutyMode', + scopedSlots: { customRender: 'dutyMode' }, + type: 'select', + dict: 'cus_levy_mode', + editing: false, + width: 100, + ellipsis: true, + }, +] + +export { batchBListColumns, batchZListColumns, ebListColumns, ezListColumns, ibListColumns, izListColumns } diff --git a/src/views/bill/modules/BillListListNew.vue b/src/views/bill/modules/BillListListNew.vue new file mode 100644 index 0000000..22d10c5 --- /dev/null +++ b/src/views/bill/modules/BillListListNew.vue @@ -0,0 +1,1398 @@ + + + + + diff --git a/src/views/bill/modules/BillPkginvForm.vue b/src/views/bill/modules/BillPkginvForm.vue new file mode 100644 index 0000000..1e8b50b --- /dev/null +++ b/src/views/bill/modules/BillPkginvForm.vue @@ -0,0 +1,634 @@ + + + diff --git a/src/views/bill/modules/BillPkginvModal.vue b/src/views/bill/modules/BillPkginvModal.vue new file mode 100644 index 0000000..036fe38 --- /dev/null +++ b/src/views/bill/modules/BillPkginvModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/bill/modules/BillStockList.vue b/src/views/bill/modules/BillStockList.vue new file mode 100644 index 0000000..b7e472f --- /dev/null +++ b/src/views/bill/modules/BillStockList.vue @@ -0,0 +1,143 @@ + + + + diff --git a/src/views/bill/modules/BillTemplateForm.vue b/src/views/bill/modules/BillTemplateForm.vue new file mode 100644 index 0000000..072b43a --- /dev/null +++ b/src/views/bill/modules/BillTemplateForm.vue @@ -0,0 +1,1472 @@ + + + + diff --git a/src/views/bill/modules/BillTemplateModal.vue b/src/views/bill/modules/BillTemplateModal.vue new file mode 100644 index 0000000..a48fb12 --- /dev/null +++ b/src/views/bill/modules/BillTemplateModal.vue @@ -0,0 +1,55 @@ + + + diff --git a/src/views/bill/modules/BillTrackForm.vue b/src/views/bill/modules/BillTrackForm.vue new file mode 100644 index 0000000..e85b446 --- /dev/null +++ b/src/views/bill/modules/BillTrackForm.vue @@ -0,0 +1,1191 @@ + + + diff --git a/src/views/bill/modules/BillTrafForm.vue b/src/views/bill/modules/BillTrafForm.vue new file mode 100644 index 0000000..80551d5 --- /dev/null +++ b/src/views/bill/modules/BillTrafForm.vue @@ -0,0 +1,457 @@ + + + diff --git a/src/views/bill/modules/ContainerInfoList.vue b/src/views/bill/modules/ContainerInfoList.vue new file mode 100644 index 0000000..87470f3 --- /dev/null +++ b/src/views/bill/modules/ContainerInfoList.vue @@ -0,0 +1,200 @@ + + + diff --git a/src/views/bill/modules/ContainerInfoModal.vue b/src/views/bill/modules/ContainerInfoModal.vue new file mode 100644 index 0000000..20114d3 --- /dev/null +++ b/src/views/bill/modules/ContainerInfoModal.vue @@ -0,0 +1,66 @@ + + + diff --git a/src/views/bill/modules/EntryListColumns.js b/src/views/bill/modules/EntryListColumns.js new file mode 100644 index 0000000..31e44a3 --- /dev/null +++ b/src/views/bill/modules/EntryListColumns.js @@ -0,0 +1,119 @@ +import { filterDictTextByFormatCusCache } from '@/components/dict/JDictSelectUtil.js' +//批量导出报关表体 +const entryListColumns = [ + { + title: '企业内部编号', + dataIndex: 'compSeqNo', + }, + { + title: '报关单号码', + dataIndex: 'entryId', + }, + { + title: '项号', + dataIndex: 'gid', + }, + { + title: '备案序号', + dataIndex: 'gno', + + }, + { + title: '商品编码', + dataIndex: 'codeTs', + }, + { + title: '监管类别名称', + dataIndex: 'ciqName', + }, + { + title: '商品名称', + dataIndex: 'gname', + }, + { + title: '规格型号', + dataIndex: 'gmodel', + }, + { + title: '原产国', + dataIndex: 'country_dictText', + customRender: (text) => { + return filterDictTextByFormatCusCache('cus_country,code_name,code_value', text) + }, + }, + { + title: '最终目的国', + dataIndex: 'destCountry', + customRender: (text) => { + return filterDictTextByFormatCusCache('cus_country,code_name,code_value', text) + }, + }, + { + title: '数量', + dataIndex: 'qty', + }, + { + title: '单位', + dataIndex: 'unit', + customRender: (text) => { + return filterDictTextByFormatCusCache('cus_unit,code_name,code_value', text) + }, + }, + { + title: '法定数量', + dataIndex: 'qty1', + }, + { + title: '法定单位', + dataIndex: 'unit1', + customRender: (text) => { + return filterDictTextByFormatCusCache('cus_unit,code_name,code_value', text) + }, + }, + { + title: '法定第二数量', + dataIndex: 'qty2', + }, + { + title: '法定第二单位', + dataIndex: 'unit2', + customRender: (text) => { + return filterDictTextByFormatCusCache('cus_unit,code_name,code_value', text) + }, + }, + { + title: '单价', + dataIndex: 'decPrice', + }, + { + title: '总价', + dataIndex: 'decTotal', + }, + { + title: '币制', + dataIndex: 'curr', + customRender: (text) => { + return filterDictTextByFormatCusCache('cus_currency,code_name,code_value', text) + }, + }, + { + title: '净重(KG)', + dataIndex: 'netWt', + }, + { + title: '征免', + dataIndex: 'dutyMode', + customRender: (text) => { + return filterDictTextByFormatCusCache('cus_levy_mode,code_name,code_value', text) + }, + }, + { + title: '版本号', + dataIndex: 'exgVersion', + }, +] + +export { + entryListColumns +} + diff --git a/src/views/bill/modules/Partials/BatchEditModal.vue b/src/views/bill/modules/Partials/BatchEditModal.vue new file mode 100644 index 0000000..f72ea1b --- /dev/null +++ b/src/views/bill/modules/Partials/BatchEditModal.vue @@ -0,0 +1,198 @@ + + + + diff --git a/src/views/bill/modules/Partials/BatchModifyForm.vue b/src/views/bill/modules/Partials/BatchModifyForm.vue new file mode 100644 index 0000000..052457d --- /dev/null +++ b/src/views/bill/modules/Partials/BatchModifyForm.vue @@ -0,0 +1,259 @@ + + \ No newline at end of file diff --git a/src/views/bill/modules/Partials/BatchModifyModal.vue b/src/views/bill/modules/Partials/BatchModifyModal.vue new file mode 100644 index 0000000..ceed286 --- /dev/null +++ b/src/views/bill/modules/Partials/BatchModifyModal.vue @@ -0,0 +1,67 @@ + + + diff --git a/src/views/bill/modules/Partials/JvList.vue b/src/views/bill/modules/Partials/JvList.vue new file mode 100644 index 0000000..07b4816 --- /dev/null +++ b/src/views/bill/modules/Partials/JvList.vue @@ -0,0 +1,342 @@ + + + diff --git a/src/views/bill/modules/Partials/JvListModal.vue b/src/views/bill/modules/Partials/JvListModal.vue new file mode 100644 index 0000000..deb2aa5 --- /dev/null +++ b/src/views/bill/modules/Partials/JvListModal.vue @@ -0,0 +1,49 @@ + + + diff --git a/src/views/bill/modules/Partials/JvListQuery.vue b/src/views/bill/modules/Partials/JvListQuery.vue new file mode 100644 index 0000000..5b7cac9 --- /dev/null +++ b/src/views/bill/modules/Partials/JvListQuery.vue @@ -0,0 +1,362 @@ + + + + diff --git a/src/views/bill/modules/Partials/PkginvDownloadForm.vue b/src/views/bill/modules/Partials/PkginvDownloadForm.vue new file mode 100644 index 0000000..7da8c07 --- /dev/null +++ b/src/views/bill/modules/Partials/PkginvDownloadForm.vue @@ -0,0 +1,120 @@ + + diff --git a/src/views/bill/modules/Partials/PkginvDownloadModal.vue b/src/views/bill/modules/Partials/PkginvDownloadModal.vue new file mode 100644 index 0000000..6340c14 --- /dev/null +++ b/src/views/bill/modules/Partials/PkginvDownloadModal.vue @@ -0,0 +1,55 @@ + + + diff --git a/src/views/bill/modules/Partials/SetNetWtLengthModal.vue b/src/views/bill/modules/Partials/SetNetWtLengthModal.vue new file mode 100644 index 0000000..72f250d --- /dev/null +++ b/src/views/bill/modules/Partials/SetNetWtLengthModal.vue @@ -0,0 +1,110 @@ + + diff --git a/src/views/bill/modules/Partials/ShowBillListSplitForm.vue b/src/views/bill/modules/Partials/ShowBillListSplitForm.vue new file mode 100644 index 0000000..8e0ac9e --- /dev/null +++ b/src/views/bill/modules/Partials/ShowBillListSplitForm.vue @@ -0,0 +1,325 @@ + + + + + diff --git a/src/views/bill/modules/Partials/ShowBillListSplitModal.vue b/src/views/bill/modules/Partials/ShowBillListSplitModal.vue new file mode 100644 index 0000000..3890cee --- /dev/null +++ b/src/views/bill/modules/Partials/ShowBillListSplitModal.vue @@ -0,0 +1,64 @@ + + + diff --git a/src/views/bill/modules/Partials/ShowCertForm.vue b/src/views/bill/modules/Partials/ShowCertForm.vue new file mode 100644 index 0000000..27fdcc9 --- /dev/null +++ b/src/views/bill/modules/Partials/ShowCertForm.vue @@ -0,0 +1,124 @@ + + + diff --git a/src/views/bill/modules/Partials/ShowCertList.vue b/src/views/bill/modules/Partials/ShowCertList.vue new file mode 100644 index 0000000..4c24609 --- /dev/null +++ b/src/views/bill/modules/Partials/ShowCertList.vue @@ -0,0 +1,218 @@ + + + diff --git a/src/views/bill/modules/Partials/ShowCertListForm.vue b/src/views/bill/modules/Partials/ShowCertListForm.vue new file mode 100644 index 0000000..e5ce93a --- /dev/null +++ b/src/views/bill/modules/Partials/ShowCertListForm.vue @@ -0,0 +1,181 @@ + + + diff --git a/src/views/bill/modules/Partials/ShowCertModal.vue b/src/views/bill/modules/Partials/ShowCertModal.vue new file mode 100644 index 0000000..5461e6e --- /dev/null +++ b/src/views/bill/modules/Partials/ShowCertModal.vue @@ -0,0 +1,60 @@ + + + diff --git a/src/views/bill/modules/Partials/ShowGModelForm.vue b/src/views/bill/modules/Partials/ShowGModelForm.vue new file mode 100644 index 0000000..3a2f94e --- /dev/null +++ b/src/views/bill/modules/Partials/ShowGModelForm.vue @@ -0,0 +1,260 @@ + + + + + diff --git a/src/views/bill/modules/Partials/ShowGModelModal.vue b/src/views/bill/modules/Partials/ShowGModelModal.vue new file mode 100644 index 0000000..1a5531f --- /dev/null +++ b/src/views/bill/modules/Partials/ShowGModelModal.vue @@ -0,0 +1,66 @@ + + + diff --git a/src/views/bill/modules/Partials/SplitOtherModel.vue b/src/views/bill/modules/Partials/SplitOtherModel.vue new file mode 100644 index 0000000..7b5d57d --- /dev/null +++ b/src/views/bill/modules/Partials/SplitOtherModel.vue @@ -0,0 +1,115 @@ + + diff --git a/src/views/bill/modules/Partials/TemplateModel.vue b/src/views/bill/modules/Partials/TemplateModel.vue new file mode 100644 index 0000000..7fd9556 --- /dev/null +++ b/src/views/bill/modules/Partials/TemplateModel.vue @@ -0,0 +1,98 @@ + + diff --git a/src/views/bill/modules/Print/AttachForm.vue b/src/views/bill/modules/Print/AttachForm.vue new file mode 100644 index 0000000..ce921ae --- /dev/null +++ b/src/views/bill/modules/Print/AttachForm.vue @@ -0,0 +1,72 @@ + + + diff --git a/src/views/bill/modules/Print/BillDataPrintModel.vue b/src/views/bill/modules/Print/BillDataPrintModel.vue new file mode 100644 index 0000000..eaf3962 --- /dev/null +++ b/src/views/bill/modules/Print/BillDataPrintModel.vue @@ -0,0 +1,57 @@ + + + diff --git a/src/views/bill/modules/ReceiptForm.vue b/src/views/bill/modules/ReceiptForm.vue new file mode 100644 index 0000000..c452b7a --- /dev/null +++ b/src/views/bill/modules/ReceiptForm.vue @@ -0,0 +1,109 @@ + + + diff --git a/src/views/bill/modules/ReceiptModal.vue b/src/views/bill/modules/ReceiptModal.vue new file mode 100644 index 0000000..216cbff --- /dev/null +++ b/src/views/bill/modules/ReceiptModal.vue @@ -0,0 +1,58 @@ + + + diff --git a/src/views/bill/modules/VerifyFormModal.vue b/src/views/bill/modules/VerifyFormModal.vue new file mode 100644 index 0000000..707eaf3 --- /dev/null +++ b/src/views/bill/modules/VerifyFormModal.vue @@ -0,0 +1,810 @@ + + + + + diff --git a/src/views/bill/modules/operationRecord.vue b/src/views/bill/modules/operationRecord.vue new file mode 100644 index 0000000..13e3e6c --- /dev/null +++ b/src/views/bill/modules/operationRecord.vue @@ -0,0 +1,191 @@ + + + diff --git a/src/views/bill/modules/operationRecordDetailModal.vue b/src/views/bill/modules/operationRecordDetailModal.vue new file mode 100644 index 0000000..582b65e --- /dev/null +++ b/src/views/bill/modules/operationRecordDetailModal.vue @@ -0,0 +1,152 @@ + + + + diff --git a/src/views/cert/CertDataHeadList.vue b/src/views/cert/CertDataHeadList.vue new file mode 100644 index 0000000..1be4c8b --- /dev/null +++ b/src/views/cert/CertDataHeadList.vue @@ -0,0 +1,254 @@ + + + + diff --git a/src/views/cert/CertTypeList.vue b/src/views/cert/CertTypeList.vue new file mode 100644 index 0000000..5360c2c --- /dev/null +++ b/src/views/cert/CertTypeList.vue @@ -0,0 +1,314 @@ + + + diff --git a/src/views/cert/LegalCheckInformationList.vue b/src/views/cert/LegalCheckInformationList.vue new file mode 100644 index 0000000..7b2f214 --- /dev/null +++ b/src/views/cert/LegalCheckInformationList.vue @@ -0,0 +1,204 @@ + + + + diff --git a/src/views/cert/LvCertDataList.vue b/src/views/cert/LvCertDataList.vue new file mode 100644 index 0000000..1b6978d --- /dev/null +++ b/src/views/cert/LvCertDataList.vue @@ -0,0 +1,363 @@ + + + diff --git a/src/views/cert/M3cLedgerList.vue b/src/views/cert/M3cLedgerList.vue new file mode 100644 index 0000000..b6c1997 --- /dev/null +++ b/src/views/cert/M3cLedgerList.vue @@ -0,0 +1,410 @@ + + + + diff --git a/src/views/cert/modules/CertDataHeadForm.vue b/src/views/cert/modules/CertDataHeadForm.vue new file mode 100644 index 0000000..31245ec --- /dev/null +++ b/src/views/cert/modules/CertDataHeadForm.vue @@ -0,0 +1,582 @@ + + + diff --git a/src/views/cert/modules/CertDataHeadModal.vue b/src/views/cert/modules/CertDataHeadModal.vue new file mode 100644 index 0000000..7675da0 --- /dev/null +++ b/src/views/cert/modules/CertDataHeadModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/cert/modules/CertDataListForm.vue b/src/views/cert/modules/CertDataListForm.vue new file mode 100644 index 0000000..d966717 --- /dev/null +++ b/src/views/cert/modules/CertDataListForm.vue @@ -0,0 +1,250 @@ + + + diff --git a/src/views/cert/modules/CertDataListList.vue b/src/views/cert/modules/CertDataListList.vue new file mode 100644 index 0000000..67bd0f8 --- /dev/null +++ b/src/views/cert/modules/CertDataListList.vue @@ -0,0 +1,287 @@ + + + + diff --git a/src/views/cert/modules/CertDataTabs.vue b/src/views/cert/modules/CertDataTabs.vue new file mode 100644 index 0000000..c0a3efc --- /dev/null +++ b/src/views/cert/modules/CertDataTabs.vue @@ -0,0 +1,181 @@ + + + diff --git a/src/views/cert/modules/CertDataTabsModal.vue b/src/views/cert/modules/CertDataTabsModal.vue new file mode 100644 index 0000000..dc0db02 --- /dev/null +++ b/src/views/cert/modules/CertDataTabsModal.vue @@ -0,0 +1,53 @@ + + + diff --git a/src/views/cert/modules/CertTypeForm.vue b/src/views/cert/modules/CertTypeForm.vue new file mode 100644 index 0000000..2ceb413 --- /dev/null +++ b/src/views/cert/modules/CertTypeForm.vue @@ -0,0 +1,418 @@ + + + diff --git a/src/views/cert/modules/CertTypeHsCodeTable.vue b/src/views/cert/modules/CertTypeHsCodeTable.vue new file mode 100644 index 0000000..1c79e33 --- /dev/null +++ b/src/views/cert/modules/CertTypeHsCodeTable.vue @@ -0,0 +1,350 @@ + + + + diff --git a/src/views/cert/modules/CertTypeHscodeList.vue b/src/views/cert/modules/CertTypeHscodeList.vue new file mode 100644 index 0000000..3611531 --- /dev/null +++ b/src/views/cert/modules/CertTypeHscodeList.vue @@ -0,0 +1,259 @@ + + + diff --git a/src/views/cert/modules/CertTypeModal.vue b/src/views/cert/modules/CertTypeModal.vue new file mode 100644 index 0000000..e6eb735 --- /dev/null +++ b/src/views/cert/modules/CertTypeModal.vue @@ -0,0 +1,77 @@ + + + + diff --git a/src/views/cert/modules/LegalCheckInformationForm.vue b/src/views/cert/modules/LegalCheckInformationForm.vue new file mode 100644 index 0000000..f725ba9 --- /dev/null +++ b/src/views/cert/modules/LegalCheckInformationForm.vue @@ -0,0 +1,191 @@ + + + diff --git a/src/views/cert/modules/LegalCheckInformationModal.vue b/src/views/cert/modules/LegalCheckInformationModal.vue new file mode 100644 index 0000000..499419a --- /dev/null +++ b/src/views/cert/modules/LegalCheckInformationModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/cert/modules/M3cLedgerForm.vue b/src/views/cert/modules/M3cLedgerForm.vue new file mode 100644 index 0000000..0cd1a6f --- /dev/null +++ b/src/views/cert/modules/M3cLedgerForm.vue @@ -0,0 +1,608 @@ + + + diff --git a/src/views/cert/modules/M3cLedgerModal.vue b/src/views/cert/modules/M3cLedgerModal.vue new file mode 100644 index 0000000..3a42955 --- /dev/null +++ b/src/views/cert/modules/M3cLedgerModal.vue @@ -0,0 +1,57 @@ + + + diff --git a/src/views/comp/ChangePasswordModal.vue b/src/views/comp/ChangePasswordModal.vue new file mode 100644 index 0000000..19cb2a3 --- /dev/null +++ b/src/views/comp/ChangePasswordModal.vue @@ -0,0 +1,200 @@ + + + + + diff --git a/src/views/comp/CompInfo.vue b/src/views/comp/CompInfo.vue new file mode 100644 index 0000000..01c51ae --- /dev/null +++ b/src/views/comp/CompInfo.vue @@ -0,0 +1,131 @@ + + + + diff --git a/src/views/comp/CompModal.vue b/src/views/comp/CompModal.vue new file mode 100644 index 0000000..1bcabf2 --- /dev/null +++ b/src/views/comp/CompModal.vue @@ -0,0 +1,53 @@ + + + diff --git a/src/views/comp/SelectCycleNo.vue b/src/views/comp/SelectCycleNo.vue new file mode 100644 index 0000000..82a8849 --- /dev/null +++ b/src/views/comp/SelectCycleNo.vue @@ -0,0 +1,168 @@ + + + + diff --git a/src/views/comp/SelectCycleNoModal.vue b/src/views/comp/SelectCycleNoModal.vue new file mode 100644 index 0000000..c75e43a --- /dev/null +++ b/src/views/comp/SelectCycleNoModal.vue @@ -0,0 +1,61 @@ + + + diff --git a/src/views/comp/SelectEmsNo.vue b/src/views/comp/SelectEmsNo.vue new file mode 100644 index 0000000..79deae0 --- /dev/null +++ b/src/views/comp/SelectEmsNo.vue @@ -0,0 +1,174 @@ + + + + diff --git a/src/views/comp/SelectEmsNoModal.vue b/src/views/comp/SelectEmsNoModal.vue new file mode 100644 index 0000000..864d073 --- /dev/null +++ b/src/views/comp/SelectEmsNoModal.vue @@ -0,0 +1,69 @@ + + + diff --git a/src/views/dashboard/Analysis.vue b/src/views/dashboard/Analysis.vue new file mode 100644 index 0000000..e3ea73e --- /dev/null +++ b/src/views/dashboard/Analysis.vue @@ -0,0 +1,65 @@ + + + + diff --git a/src/views/dashboard/CustomMenu.vue b/src/views/dashboard/CustomMenu.vue new file mode 100644 index 0000000..0b3f8f6 --- /dev/null +++ b/src/views/dashboard/CustomMenu.vue @@ -0,0 +1,71 @@ + + + + diff --git a/src/views/dashboard/IndexBdc.vue b/src/views/dashboard/IndexBdc.vue new file mode 100644 index 0000000..d43b50e --- /dev/null +++ b/src/views/dashboard/IndexBdc.vue @@ -0,0 +1,645 @@ + + + + + diff --git a/src/views/dashboard/IndexChart.vue b/src/views/dashboard/IndexChart.vue new file mode 100644 index 0000000..1c551a8 --- /dev/null +++ b/src/views/dashboard/IndexChart.vue @@ -0,0 +1,422 @@ + + + + + diff --git a/src/views/dashboard/IndexTask.vue b/src/views/dashboard/IndexTask.vue new file mode 100644 index 0000000..b493eb7 --- /dev/null +++ b/src/views/dashboard/IndexTask.vue @@ -0,0 +1,431 @@ + + + + + + diff --git a/src/views/dashboard/LinkMenuPage.vue b/src/views/dashboard/LinkMenuPage.vue new file mode 100644 index 0000000..cc118e9 --- /dev/null +++ b/src/views/dashboard/LinkMenuPage.vue @@ -0,0 +1,60 @@ + + + + + diff --git a/src/views/dashboard/MidContent.vue b/src/views/dashboard/MidContent.vue new file mode 100644 index 0000000..ab42c7d --- /dev/null +++ b/src/views/dashboard/MidContent.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/src/views/dashboard/Monitor.vue b/src/views/dashboard/Monitor.vue new file mode 100644 index 0000000..16afe09 --- /dev/null +++ b/src/views/dashboard/Monitor.vue @@ -0,0 +1,9 @@ + + + diff --git a/src/views/dashboard/MoreTodoModal.vue b/src/views/dashboard/MoreTodoModal.vue new file mode 100644 index 0000000..d7539a0 --- /dev/null +++ b/src/views/dashboard/MoreTodoModal.vue @@ -0,0 +1,73 @@ + + + + + \ No newline at end of file diff --git a/src/views/dashboard/NumberCard.vue b/src/views/dashboard/NumberCard.vue new file mode 100644 index 0000000..8beeaf9 --- /dev/null +++ b/src/views/dashboard/NumberCard.vue @@ -0,0 +1,155 @@ + + + \ No newline at end of file diff --git a/src/views/dashboard/RightImportantTask.vue b/src/views/dashboard/RightImportantTask.vue new file mode 100644 index 0000000..bee1180 --- /dev/null +++ b/src/views/dashboard/RightImportantTask.vue @@ -0,0 +1,62 @@ + + + diff --git a/src/views/dashboard/RightImportantWaring.vue b/src/views/dashboard/RightImportantWaring.vue new file mode 100644 index 0000000..4710d10 --- /dev/null +++ b/src/views/dashboard/RightImportantWaring.vue @@ -0,0 +1,137 @@ + + + diff --git a/src/views/dashboard/partials/HomeGovPolicyList.vue b/src/views/dashboard/partials/HomeGovPolicyList.vue new file mode 100644 index 0000000..beb2deb --- /dev/null +++ b/src/views/dashboard/partials/HomeGovPolicyList.vue @@ -0,0 +1,70 @@ + diff --git a/src/views/dashboard/partials/InterfaceLink.vue b/src/views/dashboard/partials/InterfaceLink.vue new file mode 100644 index 0000000..d00be7b --- /dev/null +++ b/src/views/dashboard/partials/InterfaceLink.vue @@ -0,0 +1,59 @@ + + + + + diff --git a/src/views/dashboard/partials/menuTree.vue b/src/views/dashboard/partials/menuTree.vue new file mode 100644 index 0000000..777a7ca --- /dev/null +++ b/src/views/dashboard/partials/menuTree.vue @@ -0,0 +1,111 @@ + + + + + diff --git a/src/views/entry/EntryCompareList.vue b/src/views/entry/EntryCompareList.vue new file mode 100644 index 0000000..44215c4 --- /dev/null +++ b/src/views/entry/EntryCompareList.vue @@ -0,0 +1,809 @@ + + + + diff --git a/src/views/entry/EntryCompareListE.vue b/src/views/entry/EntryCompareListE.vue new file mode 100644 index 0000000..0a8e405 --- /dev/null +++ b/src/views/entry/EntryCompareListE.vue @@ -0,0 +1,14 @@ + diff --git a/src/views/entry/EntryCompareListI.vue b/src/views/entry/EntryCompareListI.vue new file mode 100644 index 0000000..6d4a601 --- /dev/null +++ b/src/views/entry/EntryCompareListI.vue @@ -0,0 +1,14 @@ + diff --git a/src/views/entry/EntryDataList.vue b/src/views/entry/EntryDataList.vue new file mode 100644 index 0000000..0f34a95 --- /dev/null +++ b/src/views/entry/EntryDataList.vue @@ -0,0 +1,569 @@ + + + + diff --git a/src/views/entry/EntryDataListColumns.js b/src/views/entry/EntryDataListColumns.js new file mode 100644 index 0000000..bc1df5e --- /dev/null +++ b/src/views/entry/EntryDataListColumns.js @@ -0,0 +1,684 @@ +import { + filterDictTextByFormatCusCache +} from '@/components/dict/JDictSelectUtil.js' +//进口草单查询 +const IEntryHeadColumns = [ + { + title: '操作', + dataIndex: 'action', + align: "center", + width: 60, + scopedSlots: { + customRender: 'action' + }, + ellipsis: true, + }, + { + title: '流程状态', + align: 'center', + dataIndex: 'flowStatus', + width: 90, + ellipsis: true, + }, + { + title: '企业内部编号', + align: 'left', + dataIndex: 'compSeqNo', + width: 150, + scopedSlots: { + customRender: 'compSeqNo' + }, + ellipsis: true, + }, + { + title: '报关状态', + align: 'center', + dataIndex: 'status', + width: 90, + scopedSlots: { + customRender: 'status' + }, + sorter: true, + slots: { + customRender: 'status' + }, + ellipsis: true, + }, + { + title: '报关单号', + align: 'left', + dataIndex: 'entryId', + width: 150, + ellipsis: true, + }, + { + title: '发票号', + align: 'left', + dataIndex: 'invoiceNo', + width: 150, + ellipsis: true, + }, + { + title: '电子口岸统一编号', + align: 'left', + dataIndex: 'seqNo', + width: 150, + ellipsis: true, + }, + { + title: '保税清单统一编号', + align: 'left', + dataIndex: 'billSeqNo', + width: 150, + ellipsis: true, + }, + { + title: '备案号', + align: 'left', + dataIndex: 'manualNo', + width: 150, + ellipsis: true, + }, + { + title: '经营单位名称', + align: 'left', + dataIndex: 'tradeName', + width: 200, + ellipsis: true, + }, + { + title: '申报单位名称', + align: 'left', + dataIndex: 'agentName', + width: 200, + ellipsis: true, + }, + { + title: '申报地海关', + dataIndex: 'masterCustom', + width: 120, + customRender: (text) => { + return filterDictTextByFormatCusCache('cus_customs,code_name,code_value', text) + }, + ellipsis: true, + }, + { + title: '进口日期', + align: 'left', + dataIndex: 'iedate', + customRender: function (text) { + return !text ? '' : text.substr(0, 10) + }, + width: 100, + ellipsis: true, + }, + { + title: '运输方式', + dataIndex: 'trafMode', + width: 100, + customRender: (text) => { + return filterDictTextByFormatCusCache('cus_transport,code_name,code_value', text) + }, + ellipsis: true, + }, + { + title: '运输工具名称', + align: 'left', + dataIndex: 'trafName', + width: 100, + ellipsis: true, + }, + { + title: '航次号', + align: 'left', + dataIndex: 'voyageNo', + width: 130, + ellipsis: true, + }, + { + title: '提运单号', + align: 'left', + dataIndex: 'billNo', + width: 180, + ellipsis: true, + }, + { + title: '监管方式', + dataIndex: 'tradeMode', + width: 130, + customRender: (text) => { + return filterDictTextByFormatCusCache('cus_trade_mode,code_name,code_value', text) + }, + ellipsis: true, + }, + { + title: '征免性质', + dataIndex: 'cutMode', + width: 130, + customRender: (text) => { + return filterDictTextByFormatCusCache('cus_levy_type,code_name,code_value', text) + }, + ellipsis: true, + }, + { + title: '件数', + align: 'center', + dataIndex: 'packNo', + width: 100, + ellipsis: true, + }, + { + title: '包装种类', + dataIndex: 'wrapType', + width: 90, + customRender: (text) => { + return filterDictTextByFormatCusCache('cus_pack_type,code_name,code_value', text) + }, + ellipsis: true, + }, + { + title: '毛重(公斤)', + align: 'center', + dataIndex: 'grossWt', + width: 100, + ellipsis: true, + }, + { + title: '净重(公斤)', + align: 'center', + dataIndex: 'netWt', + width: 100, + ellipsis: true, + }, + { + title: '许可证号', + align: 'left', + dataIndex: 'licenseNo', + width: 150, + ellipsis: true, + }, + { + title: '合同协议号', + align: 'left', + dataIndex: 'contractNo', + width: 150, + ellipsis: true, + }, + { + title: '贸易国', + dataIndex: 'tradeAreaCode', + width: 130, + customRender: (text) => { + return filterDictTextByFormatCusCache('cus_country,code_name,code_value', text) + }, + ellipsis: true, + }, + { + title: '启运国', + dataIndex: 'tradeCountry', + width: 130, + customRender: (text) => { + return filterDictTextByFormatCusCache('cus_country,code_name,code_value', text) + }, + ellipsis: true, + }, + { + title: '启运港', + dataIndex: 'despPortCode', + width: 180, + customRender: (text) => { + return filterDictTextByFormatCusCache('cus_port,code_name,code_value', text) + }, + ellipsis: true, + }, { + title: '成交方式', + dataIndex: 'transMode', + width: 100, + customRender: (text) => { + return filterDictTextByFormatCusCache('cus_transac,code_name,code_value', text) + }, + ellipsis: true, + }, { + title: '供应商名称', + align: 'left', + dataIndex: 'partnerName', + width: 200, + ellipsis: true, + }, { + title: '制单人', + align: 'left', + dataIndex: 'createBy', + width: 100, + }, { + title: '制单时间', + align: 'left', + dataIndex: 'createTime', + width: 150, + ellipsis: true, + }, { + title: '申报类型', + dataIndex: 'uploadType', + width: 100, + ellipsis: true, + },{ + title: '账册号', + dataIndex: 'emsNo', + width: 100, + ellipsis: true, + }, +] +//出口草单查询 +const EEntryHeadColumns = [ + { + title: '操作', + dataIndex: 'action', + align: 'center', + width: 60, + scopedSlots: { + customRender: 'action' + }, + ellipsis: true, + }, + { + title: '流程状态', + align: 'center', + dataIndex: 'flowStatus', + width: 100, + ellipsis: true, + }, + { + title: '企业内部编号', + align: 'left', + dataIndex: 'compSeqNo', + width: 150, + scopedSlots: { + customRender: 'compSeqNo' + }, + ellipsis: true, + }, + { + title: '报关状态', + align: 'center', + dataIndex: 'status', + width: 90, + scopedSlots: { + customRender: 'status' + }, + sorter: true, + slots: { + customRender: 'status' + }, + ellipsis: true, + }, + { + title: '报关单号', + align: 'left', + dataIndex: 'entryId', + width: 150, + ellipsis: true, + }, + { + title: '发票号', + align: 'left', + dataIndex: 'invoiceNo', + width: 150, + ellipsis: true, + }, + { + title: '保税清单统一编号', + align: 'left', + dataIndex: 'billSeqNo', + width: 150, + ellipsis: true, + }, + { + title: '电子口岸统一编号', + align: 'left', + dataIndex: 'seqNo', + width: 150, + ellipsis: true, + }, + { + title: '备案号', + align: 'left', + dataIndex: 'manualNo', + width: 150, + ellipsis: true, + }, + { + title: '经营单位名称', + align: 'left', + dataIndex: 'tradeName', + width: 200, + ellipsis: true, + }, + { + title: '申报单位名称', + align: 'left', + dataIndex: 'agentName', + width: 180, + ellipsis: true, + }, + { + title: '申报地海关', + dataIndex: 'masterCustom', + width: 100, + customRender: (text) => { + return filterDictTextByFormatCusCache('cus_customs,code_name,code_value', text) + }, + ellipsis: true, + }, + { + title: '出口日期', + align: 'left', + dataIndex: 'iedate', + customRender: function (text) { + return !text ? '' : text.substr(0, 10) + }, + width: 100, + ellipsis: true, + }, + { + title: '运输方式', + dataIndex: 'trafMode', + width: 100, + customRender: (text) => { + return filterDictTextByFormatCusCache('cus_transport,code_name,code_value', text) + }, + ellipsis: true, + }, + { + title: '运输工具名称', + align: 'left', + dataIndex: 'trafName', + width: 100, + ellipsis: true, + }, + { + title: '航次号', + align: 'left', + dataIndex: 'voyageNo', + width: 150, + ellipsis: true, + }, + { + title: '提运单号', + align: 'left', + dataIndex: 'billNo', + width: 180, + ellipsis: true, + }, + { + title: '监管方式', + dataIndex: 'tradeMode', + width: 130, + customRender: (text) => { + return filterDictTextByFormatCusCache('cus_trade_mode,code_name,code_value', text) + }, + ellipsis: true, + }, + { + title: '征免性质', + dataIndex: 'cutMode', + width: 130, + customRender: (text) => { + return filterDictTextByFormatCusCache('cus_levy_type,code_name,code_value', text) + }, + ellipsis: true, + }, + { + title: '件数', + align: 'center', + dataIndex: 'packNo', + width: 100, + ellipsis: true, + }, + { + title: '包装种类', + dataIndex: 'wrapType', + width: 90, + customRender: (text) => { + return filterDictTextByFormatCusCache('cus_pack_type,code_name,code_value', text) + }, + ellipsis: true, + }, + { + title: '毛重(公斤)', + align: 'center', + dataIndex: 'grossWt', + width: 100, + ellipsis: true, + }, + { + title: '净重(公斤)', + align: 'center', + dataIndex: 'netWt', + width: 100, + ellipsis: true, + }, + { + title: '许可证号', + align: 'left', + dataIndex: 'licenseNo', + width: 150, + ellipsis: true, + }, + { + title: '合同协议号', + align: 'left', + dataIndex: 'contractNo', + width: 150, + ellipsis: true, + }, + { + title: '贸易国', + dataIndex: 'tradeAreaCode', + width: 130, + customRender: (text) => { + return filterDictTextByFormatCusCache('cus_country,code_name,code_value', text) + }, + ellipsis: true, + }, + { + title: '运抵国', + dataIndex: 'tradeCountry', + width: 130, + customRender: (text) => { + return filterDictTextByFormatCusCache('cus_country,code_name,code_value', text) + }, + ellipsis: true, + }, + { + title: '指运港', + dataIndex: 'distinatePort', + width: 130, + customRender: (text) => { + return filterDictTextByFormatCusCache('cus_port,code_name,code_value', text) + }, + ellipsis: true, + }, { + title: '成交方式', + dataIndex: 'transMode', + width: 100, + customRender: (text) => { + return filterDictTextByFormatCusCache('cus_transac,code_name,code_value', text) + }, + ellipsis: true, + }, { + title: '客户', + align: 'left', + dataIndex: 'partnerName', + width: 200, + ellipsis: true, + }, { + title: '制单人', + align: 'left', + dataIndex: 'createBy', + width: 100, + ellipsis: true, + }, { + title: '制单时间', + align: 'left', + dataIndex: 'createTime', + width: 150, + ellipsis: true, + },{ + title: '账册号', + dataIndex: 'emsNo', + width: 100, + ellipsis: true, + }, +] + +//保税清单批量编辑页面显示栏位和顺序 +const BEntryHeadColumns = [ + { + title: '报关单序号', + align: 'center', + dataIndex: 'gid', + width: 100, + ellipsis: true + }, + { + title: '商品编码', + dataIndex: 'codeTs', + width: 100, + ellipsis: true + }, + { + title: '检验检疫名称', + color:'#0000ff', + dataIndex: 'ciqCode', + scopedSlots: { customRender: 'ciqCode' }, + type: 'input', + width: 100, + ellipsis: true + }, + { + title: '商品名称', + dataIndex: 'gname', + width: 100, + ellipsis: true + }, + { + title: '规格型号', + color:'#0000ff', + dataIndex: 'gmodel', + scopedSlots: { customRender: 'gmodel' }, + type: 'input', + editing:false, + width: 100, + ellipsis: true + }, + { + title: '成交数量', + align: 'center', + dataIndex: 'qty', + width: 100, + ellipsis: true + }, + { + title: '单价', + align: 'center', + dataIndex: 'price', + width: 60, + ellipsis: true + }, + { + title: '总价', + align: 'center', + dataIndex: 'totalPrice', + width: 80, + ellipsis: true + }, + { + title: '币制', + color: '#d2691e', + dataIndex: 'curr', + scopedSlots: { customRender: 'curr' }, + type: 'selectSearch', + dict: `cus_currency,code_name,code_value`, + editing:false, + width: 100, + ellipsis: true + }, + { + title: '原产国', + color: '#d2691e', + dataIndex: 'country', + scopedSlots: { customRender: 'country' }, + type: 'selectSearch', + dict: `cus_country,code_name,code_value`, + editing:false, + width: 100, + ellipsis: true + }, + { + title: '最终目的国(地区)', + color: '#d2691e', + dataIndex: 'destCountry', + scopedSlots: { customRender: 'destCountry' }, + type: 'selectSearch', + dict: `cus_country,code_name,code_value`, + editing:false, + width: 100, + ellipsis: true + }, + { + title: '境内目的地', + color: '#d2691e', + align: 'center', + dataIndex: 'districtCode', + scopedSlots: { customRender: 'districtCode' }, + type: 'select', + dict:'cus_district', + width: 100, + ellipsis: true, + }, + { + title: '产地代码', + color: '#d2691e', + align: 'center', + dataIndex: 'destCode', + scopedSlots: { customRender: 'destCode' }, + type: 'select', + dict:'ciq_city_cn', + width: 100, + ellipsis: true, + }, + { + title: '征免方式', + color: '#d2691e', + dataIndex: 'dutyMode', + scopedSlots: { customRender: 'dutyMode' }, + type: 'select', + dict:'cus_levy_mode', + editing:false, + width: 100, + ellipsis: true + }, + { + title: '货物属性', + color: '#d2691e', + ellipsis: true, + width: 100, + dataIndex: 'goodsAttr', + scopedSlots: { customRender: 'goodsAttr' }, + type: 'selectDict', + dict: 'GoodsAttrs' + }, + { + title: '用途', + color: '#d2691e', + ellipsis: true, + width: 100, + dataIndex: 'goodsPurpose', + scopedSlots: { customRender: 'goodsPurpose' }, + type: 'select', + dict: 'ciq_used_to' + } +] + +export { + BEntryHeadColumns, EEntryHeadColumns, IEntryHeadColumns +} diff --git a/src/views/entry/EntryDataListE.vue b/src/views/entry/EntryDataListE.vue new file mode 100644 index 0000000..03a70f6 --- /dev/null +++ b/src/views/entry/EntryDataListE.vue @@ -0,0 +1,16 @@ + diff --git a/src/views/entry/EntryDataListI.vue b/src/views/entry/EntryDataListI.vue new file mode 100644 index 0000000..d77a37d --- /dev/null +++ b/src/views/entry/EntryDataListI.vue @@ -0,0 +1,16 @@ + diff --git a/src/views/entry/EntryModal.vue b/src/views/entry/EntryModal.vue new file mode 100644 index 0000000..0571ed0 --- /dev/null +++ b/src/views/entry/EntryModal.vue @@ -0,0 +1,139 @@ + + + + +3 diff --git a/src/views/entry/EntryTidyList.vue b/src/views/entry/EntryTidyList.vue new file mode 100644 index 0000000..b4648d0 --- /dev/null +++ b/src/views/entry/EntryTidyList.vue @@ -0,0 +1,848 @@ + + + + diff --git a/src/views/entry/EntryTidyListE.vue b/src/views/entry/EntryTidyListE.vue new file mode 100644 index 0000000..b718d2a --- /dev/null +++ b/src/views/entry/EntryTidyListE.vue @@ -0,0 +1,14 @@ + diff --git a/src/views/entry/EntryTidyListI.vue b/src/views/entry/EntryTidyListI.vue new file mode 100644 index 0000000..1b1340e --- /dev/null +++ b/src/views/entry/EntryTidyListI.vue @@ -0,0 +1,14 @@ + diff --git a/src/views/entry/modules/ButtonPartials/EntryDocumentForm.vue b/src/views/entry/modules/ButtonPartials/EntryDocumentForm.vue new file mode 100644 index 0000000..f6474a8 --- /dev/null +++ b/src/views/entry/modules/ButtonPartials/EntryDocumentForm.vue @@ -0,0 +1,408 @@ + + + + diff --git a/src/views/entry/modules/ButtonPartials/ShowDanagerInfoForm.vue b/src/views/entry/modules/ButtonPartials/ShowDanagerInfoForm.vue new file mode 100644 index 0000000..4912587 --- /dev/null +++ b/src/views/entry/modules/ButtonPartials/ShowDanagerInfoForm.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/src/views/entry/modules/ButtonPartials/ShowDanagerInfoModal.vue b/src/views/entry/modules/ButtonPartials/ShowDanagerInfoModal.vue new file mode 100644 index 0000000..553ac97 --- /dev/null +++ b/src/views/entry/modules/ButtonPartials/ShowDanagerInfoModal.vue @@ -0,0 +1,66 @@ + + + diff --git a/src/views/entry/modules/ButtonPartials/ShowDeclareElementForm.vue b/src/views/entry/modules/ButtonPartials/ShowDeclareElementForm.vue new file mode 100644 index 0000000..19659bd --- /dev/null +++ b/src/views/entry/modules/ButtonPartials/ShowDeclareElementForm.vue @@ -0,0 +1,292 @@ + + + + + diff --git a/src/views/entry/modules/ButtonPartials/ShowDeclareElementModal.vue b/src/views/entry/modules/ButtonPartials/ShowDeclareElementModal.vue new file mode 100644 index 0000000..2794ce6 --- /dev/null +++ b/src/views/entry/modules/ButtonPartials/ShowDeclareElementModal.vue @@ -0,0 +1,64 @@ + + + diff --git a/src/views/entry/modules/ButtonPartials/ShowEntryUserForm.vue b/src/views/entry/modules/ButtonPartials/ShowEntryUserForm.vue new file mode 100644 index 0000000..58998a3 --- /dev/null +++ b/src/views/entry/modules/ButtonPartials/ShowEntryUserForm.vue @@ -0,0 +1,197 @@ + + + + + diff --git a/src/views/entry/modules/ButtonPartials/ShowEntryUserModal.vue b/src/views/entry/modules/ButtonPartials/ShowEntryUserModal.vue new file mode 100644 index 0000000..7a53d19 --- /dev/null +++ b/src/views/entry/modules/ButtonPartials/ShowEntryUserModal.vue @@ -0,0 +1,60 @@ + + + diff --git a/src/views/entry/modules/ButtonPartials/ShowProdPromiseInfoForm.vue b/src/views/entry/modules/ButtonPartials/ShowProdPromiseInfoForm.vue new file mode 100644 index 0000000..407c395 --- /dev/null +++ b/src/views/entry/modules/ButtonPartials/ShowProdPromiseInfoForm.vue @@ -0,0 +1,269 @@ + + + + + diff --git a/src/views/entry/modules/ButtonPartials/ShowProdPromiseInfoModal.vue b/src/views/entry/modules/ButtonPartials/ShowProdPromiseInfoModal.vue new file mode 100644 index 0000000..ace317d --- /dev/null +++ b/src/views/entry/modules/ButtonPartials/ShowProdPromiseInfoModal.vue @@ -0,0 +1,66 @@ + + + diff --git a/src/views/entry/modules/EntryCertificateForm.vue b/src/views/entry/modules/EntryCertificateForm.vue new file mode 100644 index 0000000..bfff5cf --- /dev/null +++ b/src/views/entry/modules/EntryCertificateForm.vue @@ -0,0 +1,161 @@ + + + diff --git a/src/views/entry/modules/EntryCertificateList.vue b/src/views/entry/modules/EntryCertificateList.vue new file mode 100644 index 0000000..ceb6c19 --- /dev/null +++ b/src/views/entry/modules/EntryCertificateList.vue @@ -0,0 +1,213 @@ + + + + + diff --git a/src/views/entry/modules/EntryContainerForm.vue b/src/views/entry/modules/EntryContainerForm.vue new file mode 100644 index 0000000..9f8c294 --- /dev/null +++ b/src/views/entry/modules/EntryContainerForm.vue @@ -0,0 +1,272 @@ + + + diff --git a/src/views/entry/modules/EntryContainerList.vue b/src/views/entry/modules/EntryContainerList.vue new file mode 100644 index 0000000..3088cae --- /dev/null +++ b/src/views/entry/modules/EntryContainerList.vue @@ -0,0 +1,226 @@ + + + + + diff --git a/src/views/entry/modules/EntryHeadForm.vue b/src/views/entry/modules/EntryHeadForm.vue new file mode 100644 index 0000000..e967290 --- /dev/null +++ b/src/views/entry/modules/EntryHeadForm.vue @@ -0,0 +1,1758 @@ + + + + diff --git a/src/views/entry/modules/EntryHeadFormRef.vue b/src/views/entry/modules/EntryHeadFormRef.vue new file mode 100644 index 0000000..890f210 --- /dev/null +++ b/src/views/entry/modules/EntryHeadFormRef.vue @@ -0,0 +1,114 @@ + + + diff --git a/src/views/entry/modules/EntryListForm.vue b/src/views/entry/modules/EntryListForm.vue new file mode 100644 index 0000000..d40d3ab --- /dev/null +++ b/src/views/entry/modules/EntryListForm.vue @@ -0,0 +1,496 @@ + + + diff --git a/src/views/entry/modules/EntryLists.vue b/src/views/entry/modules/EntryLists.vue new file mode 100644 index 0000000..f3ef96c --- /dev/null +++ b/src/views/entry/modules/EntryLists.vue @@ -0,0 +1,680 @@ + + + + diff --git a/src/views/entry/modules/EntryUploadForm.vue b/src/views/entry/modules/EntryUploadForm.vue new file mode 100644 index 0000000..01be84d --- /dev/null +++ b/src/views/entry/modules/EntryUploadForm.vue @@ -0,0 +1,165 @@ + + + diff --git a/src/views/entry/modules/LvEntryHeadModal.vue b/src/views/entry/modules/LvEntryHeadModal.vue new file mode 100644 index 0000000..eb8bfeb --- /dev/null +++ b/src/views/entry/modules/LvEntryHeadModal.vue @@ -0,0 +1,61 @@ + + + diff --git a/src/views/entry/modules/Partials/AgreementBenefitForm.vue b/src/views/entry/modules/Partials/AgreementBenefitForm.vue new file mode 100644 index 0000000..8cfaa08 --- /dev/null +++ b/src/views/entry/modules/Partials/AgreementBenefitForm.vue @@ -0,0 +1,296 @@ + + diff --git a/src/views/entry/modules/Partials/AgreementBenefitModal.vue b/src/views/entry/modules/Partials/AgreementBenefitModal.vue new file mode 100644 index 0000000..175d2f4 --- /dev/null +++ b/src/views/entry/modules/Partials/AgreementBenefitModal.vue @@ -0,0 +1,63 @@ + + + diff --git a/src/views/entry/modules/Partials/BatchModifyForm.vue b/src/views/entry/modules/Partials/BatchModifyForm.vue new file mode 100644 index 0000000..8080578 --- /dev/null +++ b/src/views/entry/modules/Partials/BatchModifyForm.vue @@ -0,0 +1,419 @@ + + + + diff --git a/src/views/entry/modules/Partials/BatchModifyModal.vue b/src/views/entry/modules/Partials/BatchModifyModal.vue new file mode 100644 index 0000000..b0bddf2 --- /dev/null +++ b/src/views/entry/modules/Partials/BatchModifyModal.vue @@ -0,0 +1,73 @@ + + + diff --git a/src/views/entry/modules/Partials/EntryBatchEditModal.vue b/src/views/entry/modules/Partials/EntryBatchEditModal.vue new file mode 100644 index 0000000..680a1c6 --- /dev/null +++ b/src/views/entry/modules/Partials/EntryBatchEditModal.vue @@ -0,0 +1,195 @@ + + + + diff --git a/src/views/entry/modules/Partials/ShowGModelForm.vue b/src/views/entry/modules/Partials/ShowGModelForm.vue new file mode 100644 index 0000000..539d465 --- /dev/null +++ b/src/views/entry/modules/Partials/ShowGModelForm.vue @@ -0,0 +1,267 @@ + + + + + diff --git a/src/views/entry/modules/Partials/ShowGModelModal.vue b/src/views/entry/modules/Partials/ShowGModelModal.vue new file mode 100644 index 0000000..d570e85 --- /dev/null +++ b/src/views/entry/modules/Partials/ShowGModelModal.vue @@ -0,0 +1,66 @@ + + + diff --git a/src/views/entry/modules/Partials/ShowGnoStrForm.vue b/src/views/entry/modules/Partials/ShowGnoStrForm.vue new file mode 100644 index 0000000..ec11cef --- /dev/null +++ b/src/views/entry/modules/Partials/ShowGnoStrForm.vue @@ -0,0 +1,110 @@ + + + diff --git a/src/views/entry/modules/Partials/ShowGnoStrModal.vue b/src/views/entry/modules/Partials/ShowGnoStrModal.vue new file mode 100644 index 0000000..db9560c --- /dev/null +++ b/src/views/entry/modules/Partials/ShowGnoStrModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/entry/modules/Partials/ShowGoodsSpecForm.vue b/src/views/entry/modules/Partials/ShowGoodsSpecForm.vue new file mode 100644 index 0000000..be3b6e7 --- /dev/null +++ b/src/views/entry/modules/Partials/ShowGoodsSpecForm.vue @@ -0,0 +1,213 @@ + + + + + diff --git a/src/views/entry/modules/Partials/ShowGoodsSpecModal.vue b/src/views/entry/modules/Partials/ShowGoodsSpecModal.vue new file mode 100644 index 0000000..c3c5ff2 --- /dev/null +++ b/src/views/entry/modules/Partials/ShowGoodsSpecModal.vue @@ -0,0 +1,62 @@ + + + diff --git a/src/views/entry/modules/Partials/ShowPackingTypeForm.vue b/src/views/entry/modules/Partials/ShowPackingTypeForm.vue new file mode 100644 index 0000000..605d424 --- /dev/null +++ b/src/views/entry/modules/Partials/ShowPackingTypeForm.vue @@ -0,0 +1,130 @@ + + + diff --git a/src/views/entry/modules/Partials/ShowPackingTypeModal.vue b/src/views/entry/modules/Partials/ShowPackingTypeModal.vue new file mode 100644 index 0000000..d78f26f --- /dev/null +++ b/src/views/entry/modules/Partials/ShowPackingTypeModal.vue @@ -0,0 +1,64 @@ + + + diff --git a/src/views/entry/modules/Partials/ShowQualificationsInfoForm.vue b/src/views/entry/modules/Partials/ShowQualificationsInfoForm.vue new file mode 100644 index 0000000..28201d3 --- /dev/null +++ b/src/views/entry/modules/Partials/ShowQualificationsInfoForm.vue @@ -0,0 +1,382 @@ + + + + diff --git a/src/views/entry/modules/Partials/ShowQualificationsInfoModal.vue b/src/views/entry/modules/Partials/ShowQualificationsInfoModal.vue new file mode 100644 index 0000000..6a009a7 --- /dev/null +++ b/src/views/entry/modules/Partials/ShowQualificationsInfoModal.vue @@ -0,0 +1,85 @@ + + + diff --git a/src/views/entry/modules/Partials/ShowReceiptForm.vue b/src/views/entry/modules/Partials/ShowReceiptForm.vue new file mode 100644 index 0000000..ef4bd45 --- /dev/null +++ b/src/views/entry/modules/Partials/ShowReceiptForm.vue @@ -0,0 +1,161 @@ + + + diff --git a/src/views/entry/modules/Partials/ShowReceiptModal.vue b/src/views/entry/modules/Partials/ShowReceiptModal.vue new file mode 100644 index 0000000..f9576b6 --- /dev/null +++ b/src/views/entry/modules/Partials/ShowReceiptModal.vue @@ -0,0 +1,59 @@ + + + diff --git a/src/views/entry/modules/Print/EntryBatchModel.vue b/src/views/entry/modules/Print/EntryBatchModel.vue new file mode 100644 index 0000000..9063f04 --- /dev/null +++ b/src/views/entry/modules/Print/EntryBatchModel.vue @@ -0,0 +1,359 @@ + + + + diff --git a/src/views/entry/modules/Print/EntryBatchPrintForm.vue b/src/views/entry/modules/Print/EntryBatchPrintForm.vue new file mode 100644 index 0000000..05fb2e1 --- /dev/null +++ b/src/views/entry/modules/Print/EntryBatchPrintForm.vue @@ -0,0 +1,105 @@ + + + diff --git a/src/views/entry/modules/Print/EntryBatchPrintModal.vue b/src/views/entry/modules/Print/EntryBatchPrintModal.vue new file mode 100644 index 0000000..bef6eea --- /dev/null +++ b/src/views/entry/modules/Print/EntryBatchPrintModal.vue @@ -0,0 +1,115 @@ + + + diff --git a/src/views/entry/modules/Print/EntryPrintForm.vue b/src/views/entry/modules/Print/EntryPrintForm.vue new file mode 100644 index 0000000..0d66579 --- /dev/null +++ b/src/views/entry/modules/Print/EntryPrintForm.vue @@ -0,0 +1,98 @@ + + + diff --git a/src/views/entry/modules/Print/EntryTidyDocumentForm.vue b/src/views/entry/modules/Print/EntryTidyDocumentForm.vue new file mode 100644 index 0000000..9d9278a --- /dev/null +++ b/src/views/entry/modules/Print/EntryTidyDocumentForm.vue @@ -0,0 +1,182 @@ + + + diff --git a/src/views/entry/modules/Print/EntryTidyPrintForm.vue b/src/views/entry/modules/Print/EntryTidyPrintForm.vue new file mode 100644 index 0000000..b4bf71e --- /dev/null +++ b/src/views/entry/modules/Print/EntryTidyPrintForm.vue @@ -0,0 +1,349 @@ + + + + diff --git a/src/views/excel/ExcelCompModelList.vue b/src/views/excel/ExcelCompModelList.vue new file mode 100644 index 0000000..3adb174 --- /dev/null +++ b/src/views/excel/ExcelCompModelList.vue @@ -0,0 +1,298 @@ + + + diff --git a/src/views/excel/ExcelExportTaskList.vue b/src/views/excel/ExcelExportTaskList.vue new file mode 100644 index 0000000..307f30d --- /dev/null +++ b/src/views/excel/ExcelExportTaskList.vue @@ -0,0 +1,305 @@ + + + diff --git a/src/views/excel/ExcelImportTaskList.vue b/src/views/excel/ExcelImportTaskList.vue new file mode 100644 index 0000000..9bee12f --- /dev/null +++ b/src/views/excel/ExcelImportTaskList.vue @@ -0,0 +1,303 @@ + + + diff --git a/src/views/excel/modules/ExcelCompModal.vue b/src/views/excel/modules/ExcelCompModal.vue new file mode 100644 index 0000000..87acaa5 --- /dev/null +++ b/src/views/excel/modules/ExcelCompModal.vue @@ -0,0 +1,261 @@ + + + diff --git a/src/views/excel/modules/ExcelCompModalInit.vue b/src/views/excel/modules/ExcelCompModalInit.vue new file mode 100644 index 0000000..d2ff3bd --- /dev/null +++ b/src/views/excel/modules/ExcelCompModalInit.vue @@ -0,0 +1,116 @@ + + + diff --git a/src/views/excel/modules/ExcelCompModalInitBatch.vue b/src/views/excel/modules/ExcelCompModalInitBatch.vue new file mode 100644 index 0000000..b55fbff --- /dev/null +++ b/src/views/excel/modules/ExcelCompModalInitBatch.vue @@ -0,0 +1,203 @@ + + + diff --git a/src/views/excel/modules/ExcelExportModel.vue b/src/views/excel/modules/ExcelExportModel.vue new file mode 100644 index 0000000..fc70e3c --- /dev/null +++ b/src/views/excel/modules/ExcelExportModel.vue @@ -0,0 +1,420 @@ + + + + diff --git a/src/views/excel/modules/ExcelExportPage.vue b/src/views/excel/modules/ExcelExportPage.vue new file mode 100644 index 0000000..b2fb43c --- /dev/null +++ b/src/views/excel/modules/ExcelExportPage.vue @@ -0,0 +1,463 @@ + + + + diff --git a/src/views/excel/modules/ExcelImportModel.vue b/src/views/excel/modules/ExcelImportModel.vue new file mode 100644 index 0000000..9c1b0f1 --- /dev/null +++ b/src/views/excel/modules/ExcelImportModel.vue @@ -0,0 +1,459 @@ + + + + diff --git a/src/views/excel/modules/ExcelImportPage.vue b/src/views/excel/modules/ExcelImportPage.vue new file mode 100644 index 0000000..90ffe34 --- /dev/null +++ b/src/views/excel/modules/ExcelImportPage.vue @@ -0,0 +1,428 @@ + + + + diff --git a/src/views/excel/modules/ExcelImportTaskForm.vue b/src/views/excel/modules/ExcelImportTaskForm.vue new file mode 100644 index 0000000..6454d31 --- /dev/null +++ b/src/views/excel/modules/ExcelImportTaskForm.vue @@ -0,0 +1,280 @@ + + + diff --git a/src/views/excel/modules/ExcelImportTaskModal.vue b/src/views/excel/modules/ExcelImportTaskModal.vue new file mode 100644 index 0000000..277d070 --- /dev/null +++ b/src/views/excel/modules/ExcelImportTaskModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/exception/403.vue b/src/views/exception/403.vue new file mode 100644 index 0000000..db9cb65 --- /dev/null +++ b/src/views/exception/403.vue @@ -0,0 +1,13 @@ + + + diff --git a/src/views/exception/404.vue b/src/views/exception/404.vue new file mode 100644 index 0000000..b9fb2f3 --- /dev/null +++ b/src/views/exception/404.vue @@ -0,0 +1,13 @@ + + + diff --git a/src/views/exception/500.vue b/src/views/exception/500.vue new file mode 100644 index 0000000..531c94e --- /dev/null +++ b/src/views/exception/500.vue @@ -0,0 +1,13 @@ + + + diff --git a/src/views/exception/ExceptionPage.vue b/src/views/exception/ExceptionPage.vue new file mode 100644 index 0000000..11a9b13 --- /dev/null +++ b/src/views/exception/ExceptionPage.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/src/views/exception/type.js b/src/views/exception/type.js new file mode 100644 index 0000000..ece3936 --- /dev/null +++ b/src/views/exception/type.js @@ -0,0 +1,19 @@ +const types = { + 403: { + img: 'https://gw.alipayobjects.com/zos/rmsportal/wZcnGqRDyhPOEYFcZDnb.svg', + title: '403', + desc: '抱歉,你无权访问该页面' + }, + 404: { + img: 'https://gw.alipayobjects.com/zos/rmsportal/KpnpchXsobRgLElEozzI.svg', + title: '404', + desc: '抱歉,你访问的页面不存在或无权访问' + }, + 500: { + img: 'https://gw.alipayobjects.com/zos/rmsportal/RVRUAYdCGeYNBWoKiIwB.svg', + title: '500', + desc: '抱歉,服务器出错了' + } +} + +export default types \ No newline at end of file diff --git a/src/views/generate/tableconfig/index.vue b/src/views/generate/tableconfig/index.vue new file mode 100644 index 0000000..857d915 --- /dev/null +++ b/src/views/generate/tableconfig/index.vue @@ -0,0 +1,188 @@ + + + diff --git a/src/views/generate/tableconfig/modules/TableConfigForm.vue b/src/views/generate/tableconfig/modules/TableConfigForm.vue new file mode 100644 index 0000000..66d325b --- /dev/null +++ b/src/views/generate/tableconfig/modules/TableConfigForm.vue @@ -0,0 +1,278 @@ + + + diff --git a/src/views/generate/tableconfig/modules/TableConfigModel.vue b/src/views/generate/tableconfig/modules/TableConfigModel.vue new file mode 100644 index 0000000..a30e1e8 --- /dev/null +++ b/src/views/generate/tableconfig/modules/TableConfigModel.vue @@ -0,0 +1,66 @@ + + + diff --git a/src/views/generate/tableconfig/modules/TableConfigTab.vue b/src/views/generate/tableconfig/modules/TableConfigTab.vue new file mode 100644 index 0000000..d722828 --- /dev/null +++ b/src/views/generate/tableconfig/modules/TableConfigTab.vue @@ -0,0 +1,57 @@ + + diff --git a/src/views/generate/tableconfig/modules/TableConfigTabPageProperties.vue b/src/views/generate/tableconfig/modules/TableConfigTabPageProperties.vue new file mode 100644 index 0000000..3bb53cb --- /dev/null +++ b/src/views/generate/tableconfig/modules/TableConfigTabPageProperties.vue @@ -0,0 +1,191 @@ + + + + + diff --git a/src/views/generate/tableconfig/modules/WlonEventConfigModal.vue b/src/views/generate/tableconfig/modules/WlonEventConfigModal.vue new file mode 100644 index 0000000..dfccc57 --- /dev/null +++ b/src/views/generate/tableconfig/modules/WlonEventConfigModal.vue @@ -0,0 +1,187 @@ + + + diff --git a/src/views/interface/KdPartsOrderList.vue b/src/views/interface/KdPartsOrderList.vue new file mode 100644 index 0000000..f3893a6 --- /dev/null +++ b/src/views/interface/KdPartsOrderList.vue @@ -0,0 +1,240 @@ + + + + diff --git a/src/views/interface/MessageList.vue b/src/views/interface/MessageList.vue new file mode 100644 index 0000000..82611b8 --- /dev/null +++ b/src/views/interface/MessageList.vue @@ -0,0 +1,286 @@ + + + diff --git a/src/views/interface/MessageReceiptList.vue b/src/views/interface/MessageReceiptList.vue new file mode 100644 index 0000000..d2fb8c2 --- /dev/null +++ b/src/views/interface/MessageReceiptList.vue @@ -0,0 +1,285 @@ + + + + diff --git a/src/views/interface/ProduceOrderList.vue b/src/views/interface/ProduceOrderList.vue new file mode 100644 index 0000000..a7ff610 --- /dev/null +++ b/src/views/interface/ProduceOrderList.vue @@ -0,0 +1,406 @@ + + + + diff --git a/src/views/interface/PurchaseOrderList.vue b/src/views/interface/PurchaseOrderList.vue new file mode 100644 index 0000000..d37666e --- /dev/null +++ b/src/views/interface/PurchaseOrderList.vue @@ -0,0 +1,370 @@ + + + + diff --git a/src/views/interface/ReplaceMaterialList.vue b/src/views/interface/ReplaceMaterialList.vue new file mode 100644 index 0000000..b13c83d --- /dev/null +++ b/src/views/interface/ReplaceMaterialList.vue @@ -0,0 +1,209 @@ + + + + diff --git a/src/views/interface/WorkCalendarList.vue b/src/views/interface/WorkCalendarList.vue new file mode 100644 index 0000000..8d39ba7 --- /dev/null +++ b/src/views/interface/WorkCalendarList.vue @@ -0,0 +1,215 @@ + + + + diff --git a/src/views/interface/modules/KdPartsOrderForm.vue b/src/views/interface/modules/KdPartsOrderForm.vue new file mode 100644 index 0000000..3a1fc11 --- /dev/null +++ b/src/views/interface/modules/KdPartsOrderForm.vue @@ -0,0 +1,142 @@ + + + diff --git a/src/views/interface/modules/KdPartsOrderModal.vue b/src/views/interface/modules/KdPartsOrderModal.vue new file mode 100644 index 0000000..7241362 --- /dev/null +++ b/src/views/interface/modules/KdPartsOrderModal.vue @@ -0,0 +1,52 @@ + + + \ No newline at end of file diff --git a/src/views/interface/modules/MessageForm.vue b/src/views/interface/modules/MessageForm.vue new file mode 100644 index 0000000..ba5edf8 --- /dev/null +++ b/src/views/interface/modules/MessageForm.vue @@ -0,0 +1,145 @@ + + + + diff --git a/src/views/interface/modules/MessageModal.vue b/src/views/interface/modules/MessageModal.vue new file mode 100644 index 0000000..5212560 --- /dev/null +++ b/src/views/interface/modules/MessageModal.vue @@ -0,0 +1,60 @@ + + + diff --git a/src/views/interface/modules/MessageReceiptForm.vue b/src/views/interface/modules/MessageReceiptForm.vue new file mode 100644 index 0000000..0a837a4 --- /dev/null +++ b/src/views/interface/modules/MessageReceiptForm.vue @@ -0,0 +1,126 @@ + + + + diff --git a/src/views/interface/modules/MessageReceiptModal.vue b/src/views/interface/modules/MessageReceiptModal.vue new file mode 100644 index 0000000..861fc2a --- /dev/null +++ b/src/views/interface/modules/MessageReceiptModal.vue @@ -0,0 +1,60 @@ + + + diff --git a/src/views/interface/modules/ProduceOrderForm.vue b/src/views/interface/modules/ProduceOrderForm.vue new file mode 100644 index 0000000..eb11e4f --- /dev/null +++ b/src/views/interface/modules/ProduceOrderForm.vue @@ -0,0 +1,244 @@ + + + + diff --git a/src/views/interface/modules/ProduceOrderModal.vue b/src/views/interface/modules/ProduceOrderModal.vue new file mode 100644 index 0000000..27bb934 --- /dev/null +++ b/src/views/interface/modules/ProduceOrderModal.vue @@ -0,0 +1,57 @@ + + + + diff --git a/src/views/interface/modules/PurchaseOrderForm.vue b/src/views/interface/modules/PurchaseOrderForm.vue new file mode 100644 index 0000000..d371faa --- /dev/null +++ b/src/views/interface/modules/PurchaseOrderForm.vue @@ -0,0 +1,216 @@ + + + diff --git a/src/views/interface/modules/PurchaseOrderModal.vue b/src/views/interface/modules/PurchaseOrderModal.vue new file mode 100644 index 0000000..9562591 --- /dev/null +++ b/src/views/interface/modules/PurchaseOrderModal.vue @@ -0,0 +1,52 @@ + + + \ No newline at end of file diff --git a/src/views/interface/modules/ReplaceMaterialForm.vue b/src/views/interface/modules/ReplaceMaterialForm.vue new file mode 100644 index 0000000..7cb6816 --- /dev/null +++ b/src/views/interface/modules/ReplaceMaterialForm.vue @@ -0,0 +1,130 @@ + + + \ No newline at end of file diff --git a/src/views/interface/modules/ReplaceMaterialModal.vue b/src/views/interface/modules/ReplaceMaterialModal.vue new file mode 100644 index 0000000..133cf7a --- /dev/null +++ b/src/views/interface/modules/ReplaceMaterialModal.vue @@ -0,0 +1,52 @@ + + + \ No newline at end of file diff --git a/src/views/interface/modules/WorkCalendarForm.vue b/src/views/interface/modules/WorkCalendarForm.vue new file mode 100644 index 0000000..168d8c5 --- /dev/null +++ b/src/views/interface/modules/WorkCalendarForm.vue @@ -0,0 +1,135 @@ + + + diff --git a/src/views/interface/modules/WorkCalendarModal.vue b/src/views/interface/modules/WorkCalendarModal.vue new file mode 100644 index 0000000..f5586cd --- /dev/null +++ b/src/views/interface/modules/WorkCalendarModal.vue @@ -0,0 +1,52 @@ + + + \ No newline at end of file diff --git a/src/views/jeecg/modules/PdfPreviewModal.vue b/src/views/jeecg/modules/PdfPreviewModal.vue new file mode 100644 index 0000000..d887118 --- /dev/null +++ b/src/views/jeecg/modules/PdfPreviewModal.vue @@ -0,0 +1,50 @@ + + + diff --git a/src/views/merger/mergerapply/AuditMergerList.vue b/src/views/merger/mergerapply/AuditMergerList.vue new file mode 100644 index 0000000..e5cf93d --- /dev/null +++ b/src/views/merger/mergerapply/AuditMergerList.vue @@ -0,0 +1,17 @@ + diff --git a/src/views/merger/mergerapply/AuditMergerListE.vue b/src/views/merger/mergerapply/AuditMergerListE.vue new file mode 100644 index 0000000..a312c1c --- /dev/null +++ b/src/views/merger/mergerapply/AuditMergerListE.vue @@ -0,0 +1,17 @@ + diff --git a/src/views/merger/mergerapply/AuditMergerListI.vue b/src/views/merger/mergerapply/AuditMergerListI.vue new file mode 100644 index 0000000..e6e91e9 --- /dev/null +++ b/src/views/merger/mergerapply/AuditMergerListI.vue @@ -0,0 +1,17 @@ + diff --git a/src/views/merger/mergerapply/CommonMergerListE.vue b/src/views/merger/mergerapply/CommonMergerListE.vue new file mode 100644 index 0000000..d649688 --- /dev/null +++ b/src/views/merger/mergerapply/CommonMergerListE.vue @@ -0,0 +1,17 @@ + diff --git a/src/views/merger/mergerapply/CommonMergerListI.vue b/src/views/merger/mergerapply/CommonMergerListI.vue new file mode 100644 index 0000000..2cd5c9d --- /dev/null +++ b/src/views/merger/mergerapply/CommonMergerListI.vue @@ -0,0 +1,17 @@ + diff --git a/src/views/merger/mergerapply/EngineerFeedbackList.vue b/src/views/merger/mergerapply/EngineerFeedbackList.vue new file mode 100644 index 0000000..30a6541 --- /dev/null +++ b/src/views/merger/mergerapply/EngineerFeedbackList.vue @@ -0,0 +1,71 @@ + + + diff --git a/src/views/merger/mergerapply/LegalPersonOrg.vue b/src/views/merger/mergerapply/LegalPersonOrg.vue new file mode 100644 index 0000000..4238bd6 --- /dev/null +++ b/src/views/merger/mergerapply/LegalPersonOrg.vue @@ -0,0 +1,346 @@ + + + diff --git a/src/views/merger/mergerapply/MaterialMaster.vue b/src/views/merger/mergerapply/MaterialMaster.vue new file mode 100644 index 0000000..9bc7c09 --- /dev/null +++ b/src/views/merger/mergerapply/MaterialMaster.vue @@ -0,0 +1,710 @@ + + + + diff --git a/src/views/merger/mergerapply/MergerAssign.vue b/src/views/merger/mergerapply/MergerAssign.vue new file mode 100644 index 0000000..e38ce38 --- /dev/null +++ b/src/views/merger/mergerapply/MergerAssign.vue @@ -0,0 +1,293 @@ + + + diff --git a/src/views/merger/mergerapply/MergerDataList.vue b/src/views/merger/mergerapply/MergerDataList.vue new file mode 100644 index 0000000..5f69a21 --- /dev/null +++ b/src/views/merger/mergerapply/MergerDataList.vue @@ -0,0 +1,835 @@ + + + + diff --git a/src/views/merger/mergerapply/MergerDataListColumns.js b/src/views/merger/mergerapply/MergerDataListColumns.js new file mode 100644 index 0000000..b697e0d --- /dev/null +++ b/src/views/merger/mergerapply/MergerDataListColumns.js @@ -0,0 +1,747 @@ +const izColumns =[{ + title: '操作', + dataIndex: 'action', + align: 'center', + width: 120, + scopedSlots: { customRender: 'action' }, + }, + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + customRender: function (t, r, index) { + return parseInt(index) + 1 + }, + }, + { + title: '流程状态', + align: 'center', + dataIndex: 'flowStatus', + scopedSlots: { customRender: 'flowStatus' }, + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '状态描述', + dataIndex: 'flowDetailStatus', + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '归类状态', + dataIndex: 'status_dictText', + ellipsis: true, + width: 100, + sorter: true, + }, + // { + // title: '料件标志', + // dataIndex: 'gmark_dictText', + // ellipsis: true, + // width: 100, + // sorter: true, + // }, + { + title: '部门', + dataIndex: 'department_dictText', + // scopedSlots: { customRender: 'department' }, + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '物料标签', + dataIndex: 'materialTag_dictText', + // scopedSlots: { customRender: 'department' }, + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '电池型号', + dataIndex: 'batteryModel', + // scopedSlots: { customRender: 'department' }, + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '电量', + dataIndex: 'batteryCapacity', + // scopedSlots: { customRender: 'department' }, + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '外协件标识', + dataIndex: 'outsourcedIndicator_dictText', + // scopedSlots: { customRender: 'department' }, + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '特许权标识', + dataIndex: 'franchiseIndicator_dictText', + // scopedSlots: { customRender: 'department' }, + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: 'K-ITEM', + dataIndex: 'kitem', + scopedSlots: { customRender: 'kitem' }, + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '交/直流额定电压', + dataIndex: 'voltageRating', + // scopedSlots: { customRender: 'department' }, + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '车型', + dataIndex: 'vehicleModel', + // scopedSlots: { customRender: 'department' }, + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '原产地类型', + dataIndex: 'originType_dictText', + // scopedSlots: { customRender: 'department' }, + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '料号', + dataIndex: 'copGNo', + scopedSlots: { customRender: 'copGNo' }, + ellipsis: true, + width: 100, + sorter: true, + }, + // { + // title: '备案料号', + // dataIndex: 'cusImgNo', + // ellipsis: true, + // width: 100, + // sorter: true, + // }, + // { + // title: '备案品名', + // dataIndex: 'cusGName', + // ellipsis: true, + // width: 100, + // sorter: true, + // }, + { + title: '品牌', + dataIndex: 'brand', + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '型号', + dataIndex: 'model', + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '中文品名', + dataIndex: 'gname', + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '英文品名', + dataIndex: 'gnameEn', + ellipsis: true, + width: 100, + sorter: true, + }, + // { + // title: '新旧状态', + // dataIndex: 'isNewMaterial_dictText', + // ellipsis: true, + // width: 100, + // sorter: true, + // }, + { + title: '英文描述', + dataIndex: 'gdescEn', + ellipsis: true, + width: 200, + sorter: true, + }, + // { + // title: '保税标志', + // dataIndex: 'isBonded_dictText', + // ellipsis: true, + // width: 100, + // sorter: true, + // }, + { + title: '商品编码', + dataIndex: 'hsCode', + ellipsis: true, + width: 100, + sorter: true, + }, + // { + // title: '供应商编码', + // dataIndex: 'supplierCode', + // ellipsis: true, + // width: 100, + // sorter: true, + // }, + // { + // title: '供应商名称', + // dataIndex: 'supplierName', + // ellipsis: true, + // width: 100, + // sorter: true, + // }, + // { + // title: '3C标识', + // dataIndex: 'cccFlag_dictText', + // ellipsis: true, + // width: 100, + // sorter: true, + // }, + { + title: '报关单位', + dataIndex: 'unit_dictText', + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '法定单位转换比例', + align: 'center', + dataIndex: 'lawfUnitcdRate', + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '规格型号', + dataIndex: 'gmodel', + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '单位净重', + align: 'center', + dataIndex: 'netWt', + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '标准单价(USD)', + align: 'center', + dataIndex: 'refPrice', + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '物料类型', + dataIndex: 'materialType_dictText', + ellipsis: true, + width: 100, + sorter: true, + }, + // { + // title: '工厂代码', + // dataIndex: 'plant', + // ellipsis: true, + // width: 100, + // sorter: true, + // }, + // { + // title: '成品料号', + // dataIndex: 'epn', + // ellipsis: true, + // width: 100, + // sorter: true, + // }, + // { + // title: '交易币种', + // dataIndex: 'tradeCurr', + // ellipsis: true, + // width: 100, + // sorter: true, + // }, + { + title: '原产国', + dataIndex: 'countryCode_dictText', + ellipsis: true, + width: 100, + sorter: true, + }, + // { + // title: '申请人', + // dataIndex: 'submitter', + // ellipsis: true, + // width: 100, + // sorter: true, + // }, + // { + // title: '申请时间', + // dataIndex: 'submitTime', + // ellipsis: true, + // width: 100, + // sorter: true, + // }, + { + title: '创建人', + dataIndex: 'createBy', + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '创建时间', + dataIndex: 'createTime', + ellipsis: true, + width: 100, + sorter: true, + }, + + + { + title: '是否上传附件', + dataIndex: 'hasFile_dictText', + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '退回状态', + dataIndex: 'backFlag_dictText', + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '是否可用', + dataIndex: 'enabled_dictText', + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '申请人姓名', + dataIndex: 'applyByName', + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '申请时间', + dataIndex: 'applyTime', + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '证书型号', + dataIndex: 'certType', + ellipsis: true, + width: 100, + sorter: true, + } + ] + +const ezColumns =[ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + customRender: function (t, r, index) { + return parseInt(index) + 1 + }, + }, + { + title: '流程状态', + align: 'center', + dataIndex: 'flowStatus', + scopedSlots: { customRender: 'flowStatus' }, + width: 100, + ellipsis: true, + sorter: true, + }, + { + title: '状态描述', + dataIndex: 'flowDetailStatus', + width: 100, + ellipsis: true, + sorter: true, + }, + { + title: '归类状态', + dataIndex: 'status_dictText', + ellipsis: true, + width: 100, + sorter: true, + }, + // { + // title: '料件标志', + // dataIndex: 'gmark_dictText', + // ellipsis: true, + // width: 100, + // sorter: true, + // }, + { + title: '部门', + dataIndex: 'department_dictText', + // scopedSlots: { customRender: 'department' }, + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '物料标签', + dataIndex: 'materialTag_dictText', + // scopedSlots: { customRender: 'department' }, + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '电池型号', + dataIndex: 'batteryModel', + // scopedSlots: { customRender: 'department' }, + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '电量', + dataIndex: 'batteryCapacity', + // scopedSlots: { customRender: 'department' }, + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '外协件标识', + dataIndex: 'outsourcedIndicator_dictText', + // scopedSlots: { customRender: 'department' }, + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '特许权标识', + dataIndex: 'franchiseIndicator_dictText', + // scopedSlots: { customRender: 'department' }, + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: 'K-ITEM', + dataIndex: 'kitem', + scopedSlots: { customRender: 'kitem' }, + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '交/直流额定电压', + dataIndex: 'voltageRating', + // scopedSlots: { customRender: 'department' }, + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '车型', + dataIndex: 'vehicleModel', + // scopedSlots: { customRender: 'department' }, + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '原产地类型', + dataIndex: 'originType_dictText', + // scopedSlots: { customRender: 'department' }, + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '料号', + dataIndex: 'copGNo', + scopedSlots: { customRender: 'copGNo' }, + ellipsis: true, + width: 100, + sorter: true, + }, + // { + // title: '备案料号', + // dataIndex: 'cusImgNo', + // ellipsis: true, + // width: 100, + // sorter: true, + // }, + // { + // title: '备案品名', + // dataIndex: 'cusGName', + // ellipsis: true, + // width: 100, + // sorter: true, + // }, + // { + // title: '品牌', + // dataIndex: 'brand', + // ellipsis: true, + // width: 100, + // sorter: true, + // }, + { + title: '型号', + dataIndex: 'model', + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '中文品名', + dataIndex: 'gname', + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '英文品名', + dataIndex: 'gnameEn', + ellipsis: true, + width: 100, + sorter: true, + }, + // { + // title: '新旧状态', + // dataIndex: 'isNewMaterial_dictText', + // ellipsis: true, + // width: 100, + // sorter: true, + // }, + { + title: '英文描述', + dataIndex: 'gdescEn', + ellipsis: true, + width: 100, + sorter: true, + }, + // { + // title: '保税标志', + // dataIndex: 'isBonded_dictText', + // ellipsis: true, + // width: 100, + // sorter: true, + // }, + { + title: '商品编码', + dataIndex: 'hsCode', + ellipsis: true, + width: 100, + sorter: true, + }, + // { + // title: '供应商编码', + // dataIndex: 'supplierCode', + // ellipsis: true, + // width: 100, + // sorter: true, + // }, + // { + // title: '供应商名称', + // dataIndex: 'supplierName', + // ellipsis: true, + // width: 100, + // sorter: true, + // }, + // { + // title: '3C标识', + // dataIndex: 'cccFlag_dictText', + // ellipsis: true, + // width: 100, + // sorter: true, + // }, + { + title: '报关单位', + dataIndex: 'unit_dictText', + width: 100, + ellipsis: true, + sorter: true, + }, + { + title: '法定单位转换比例', + align: 'center', + dataIndex: 'lawfUnitcdRate', + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '规格型号', + dataIndex: 'gmodel', + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '单位净重', + align: 'center', + dataIndex: 'netWt', + width: 100, + ellipsis: true, + sorter: true, + }, + { + title: '标准单价(USD)', + align: 'center', + dataIndex: 'refPrice', + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '物料类型', + dataIndex: 'materialType_dictText', + ellipsis: true, + width: 100, + sorter: true, + }, + // { + // title: '工厂代码', + // dataIndex: 'plant', + // ellipsis: true, + // width: 100, + // sorter: true, + // }, + // { + // title: '成品料号', + // dataIndex: 'epn', + // ellipsis: true, + // width: 100, + // sorter: true, + // }, + // { + // title: '交易币种', + // dataIndex: 'tradeCurr', + // ellipsis: true, + // width: 100, + // sorter: true, + // }, + { + title: '原产国', + dataIndex: 'countryCode_dictText', + ellipsis: true, + width: 100, + sorter: true, + }, + // { + // title: '申请人', + // dataIndex: 'submitter', + // ellipsis: true, + // width: 100, + // sorter: true, + // }, + // { + // title: '申请时间', + // dataIndex: 'submitTime', + // ellipsis: true, + // width: 100, + // sorter: true, + // }, + { + title: '创建人', + dataIndex: 'createBy', + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '创建时间', + dataIndex: 'createTime', + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '执行人', + dataIndex: 'actorName', + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '是否上传附件', + dataIndex: 'hasFile_dictText', + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '退回状态', + dataIndex: 'backFlag_dictText', + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '是否可用', + dataIndex: 'enabled_dictText', + ellipsis: true, + width: 100, + sorter: true, + },{ + title: '申请人姓名', + dataIndex: 'applyByName', + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '申请时间', + dataIndex: 'applyTime', + ellipsis: true, + width: 100, + sorter: true, + }, + { + title: '证书型号', + dataIndex: 'certType', + ellipsis: true, + width: 100, + sorter: true, + }] + +export { + izColumns, + ezColumns, +} \ No newline at end of file diff --git a/src/views/merger/mergerapply/MergerQueryList.vue b/src/views/merger/mergerapply/MergerQueryList.vue new file mode 100644 index 0000000..d35e9bd --- /dev/null +++ b/src/views/merger/mergerapply/MergerQueryList.vue @@ -0,0 +1,17 @@ + diff --git a/src/views/merger/mergerapply/MergerQueryListE.vue b/src/views/merger/mergerapply/MergerQueryListE.vue new file mode 100644 index 0000000..2db304e --- /dev/null +++ b/src/views/merger/mergerapply/MergerQueryListE.vue @@ -0,0 +1,17 @@ + diff --git a/src/views/merger/mergerapply/MergerQueryListI.vue b/src/views/merger/mergerapply/MergerQueryListI.vue new file mode 100644 index 0000000..9e5bc22 --- /dev/null +++ b/src/views/merger/mergerapply/MergerQueryListI.vue @@ -0,0 +1,17 @@ + diff --git a/src/views/merger/mergerapply/MergerReqs.vue b/src/views/merger/mergerapply/MergerReqs.vue new file mode 100644 index 0000000..b988226 --- /dev/null +++ b/src/views/merger/mergerapply/MergerReqs.vue @@ -0,0 +1,623 @@ + + + diff --git a/src/views/merger/mergerapply/MergerReqsLv.vue b/src/views/merger/mergerapply/MergerReqsLv.vue new file mode 100644 index 0000000..2d6d39c --- /dev/null +++ b/src/views/merger/mergerapply/MergerReqsLv.vue @@ -0,0 +1,651 @@ + + + diff --git a/src/views/merger/mergerapply/MergerTimeValidity.vue b/src/views/merger/mergerapply/MergerTimeValidity.vue new file mode 100644 index 0000000..1147698 --- /dev/null +++ b/src/views/merger/mergerapply/MergerTimeValidity.vue @@ -0,0 +1,232 @@ + + + diff --git a/src/views/merger/mergerapply/MergeredListE.vue b/src/views/merger/mergerapply/MergeredListE.vue new file mode 100644 index 0000000..bc3d201 --- /dev/null +++ b/src/views/merger/mergerapply/MergeredListE.vue @@ -0,0 +1,17 @@ + diff --git a/src/views/merger/mergerapply/MergeredListI.vue b/src/views/merger/mergerapply/MergeredListI.vue new file mode 100644 index 0000000..e623f38 --- /dev/null +++ b/src/views/merger/mergerapply/MergeredListI.vue @@ -0,0 +1,17 @@ + diff --git a/src/views/merger/mergerapply/ResearchMergerSetup.vue b/src/views/merger/mergerapply/ResearchMergerSetup.vue new file mode 100644 index 0000000..4b55240 --- /dev/null +++ b/src/views/merger/mergerapply/ResearchMergerSetup.vue @@ -0,0 +1,377 @@ + + + diff --git a/src/views/merger/mergerapply/ResearchMergerSetupLv.vue b/src/views/merger/mergerapply/ResearchMergerSetupLv.vue new file mode 100644 index 0000000..d692f45 --- /dev/null +++ b/src/views/merger/mergerapply/ResearchMergerSetupLv.vue @@ -0,0 +1,239 @@ + + + diff --git a/src/views/merger/mergerapply/WaitMergerListE.vue b/src/views/merger/mergerapply/WaitMergerListE.vue new file mode 100644 index 0000000..b035d8a --- /dev/null +++ b/src/views/merger/mergerapply/WaitMergerListE.vue @@ -0,0 +1,17 @@ + diff --git a/src/views/merger/mergerapply/WaitMergerListI.vue b/src/views/merger/mergerapply/WaitMergerListI.vue new file mode 100644 index 0000000..bbb4093 --- /dev/null +++ b/src/views/merger/mergerapply/WaitMergerListI.vue @@ -0,0 +1,17 @@ + diff --git a/src/views/merger/mergerapply/modules/EpnBomList.vue b/src/views/merger/mergerapply/modules/EpnBomList.vue new file mode 100644 index 0000000..8b71935 --- /dev/null +++ b/src/views/merger/mergerapply/modules/EpnBomList.vue @@ -0,0 +1,346 @@ + + + + diff --git a/src/views/merger/mergerapply/modules/EpnMoBomList.vue b/src/views/merger/mergerapply/modules/EpnMoBomList.vue new file mode 100644 index 0000000..6dba696 --- /dev/null +++ b/src/views/merger/mergerapply/modules/EpnMoBomList.vue @@ -0,0 +1,140 @@ + + + diff --git a/src/views/merger/mergerapply/modules/EpnMoBomModal.vue b/src/views/merger/mergerapply/modules/EpnMoBomModal.vue new file mode 100644 index 0000000..c685ba4 --- /dev/null +++ b/src/views/merger/mergerapply/modules/EpnMoBomModal.vue @@ -0,0 +1,56 @@ + + + diff --git a/src/views/merger/mergerapply/modules/KitemDataModal.vue b/src/views/merger/mergerapply/modules/KitemDataModal.vue new file mode 100644 index 0000000..9d52fa6 --- /dev/null +++ b/src/views/merger/mergerapply/modules/KitemDataModal.vue @@ -0,0 +1,291 @@ + + + diff --git a/src/views/merger/mergerapply/modules/KitemModal.vue b/src/views/merger/mergerapply/modules/KitemModal.vue new file mode 100644 index 0000000..81b6507 --- /dev/null +++ b/src/views/merger/mergerapply/modules/KitemModal.vue @@ -0,0 +1,105 @@ + + + diff --git a/src/views/merger/mergerapply/modules/LegalPersonOrgBody.vue b/src/views/merger/mergerapply/modules/LegalPersonOrgBody.vue new file mode 100644 index 0000000..ab5ecdc --- /dev/null +++ b/src/views/merger/mergerapply/modules/LegalPersonOrgBody.vue @@ -0,0 +1,345 @@ + + + diff --git a/src/views/merger/mergerapply/modules/LegalPersonOrgModal.vue b/src/views/merger/mergerapply/modules/LegalPersonOrgModal.vue new file mode 100644 index 0000000..cd6eb0f --- /dev/null +++ b/src/views/merger/mergerapply/modules/LegalPersonOrgModal.vue @@ -0,0 +1,79 @@ + + + diff --git a/src/views/merger/mergerapply/modules/LegalPersonOrgModalForm.vue b/src/views/merger/mergerapply/modules/LegalPersonOrgModalForm.vue new file mode 100644 index 0000000..6b8c69f --- /dev/null +++ b/src/views/merger/mergerapply/modules/LegalPersonOrgModalForm.vue @@ -0,0 +1,284 @@ + + + diff --git a/src/views/merger/mergerapply/modules/MaterialMasterModal.vue b/src/views/merger/mergerapply/modules/MaterialMasterModal.vue new file mode 100644 index 0000000..5493217 --- /dev/null +++ b/src/views/merger/mergerapply/modules/MaterialMasterModal.vue @@ -0,0 +1,57 @@ + + + diff --git a/src/views/merger/mergerapply/modules/MaterialMasterModalCertTable.vue b/src/views/merger/mergerapply/modules/MaterialMasterModalCertTable.vue new file mode 100644 index 0000000..7eab828 --- /dev/null +++ b/src/views/merger/mergerapply/modules/MaterialMasterModalCertTable.vue @@ -0,0 +1,245 @@ + + + diff --git a/src/views/merger/mergerapply/modules/MaterialMasterModalCollect.vue b/src/views/merger/mergerapply/modules/MaterialMasterModalCollect.vue new file mode 100644 index 0000000..7c66114 --- /dev/null +++ b/src/views/merger/mergerapply/modules/MaterialMasterModalCollect.vue @@ -0,0 +1,96 @@ + + + diff --git a/src/views/merger/mergerapply/modules/MaterialMasterModalCopy.vue b/src/views/merger/mergerapply/modules/MaterialMasterModalCopy.vue new file mode 100644 index 0000000..f6e69c6 --- /dev/null +++ b/src/views/merger/mergerapply/modules/MaterialMasterModalCopy.vue @@ -0,0 +1,138 @@ + + + diff --git a/src/views/merger/mergerapply/modules/MaterialMasterModalForm.vue b/src/views/merger/mergerapply/modules/MaterialMasterModalForm.vue new file mode 100644 index 0000000..31bfba4 --- /dev/null +++ b/src/views/merger/mergerapply/modules/MaterialMasterModalForm.vue @@ -0,0 +1,872 @@ + + + + + diff --git a/src/views/merger/mergerapply/modules/MaterialMasterModalHisList.vue b/src/views/merger/mergerapply/modules/MaterialMasterModalHisList.vue new file mode 100644 index 0000000..918e978 --- /dev/null +++ b/src/views/merger/mergerapply/modules/MaterialMasterModalHisList.vue @@ -0,0 +1,117 @@ + + + + diff --git a/src/views/merger/mergerapply/modules/MaterialMasterModalHisModal.vue b/src/views/merger/mergerapply/modules/MaterialMasterModalHisModal.vue new file mode 100644 index 0000000..09b300d --- /dev/null +++ b/src/views/merger/mergerapply/modules/MaterialMasterModalHisModal.vue @@ -0,0 +1,64 @@ + + + + diff --git a/src/views/merger/mergerapply/modules/MaterialMasterModalHisModalList.vue b/src/views/merger/mergerapply/modules/MaterialMasterModalHisModalList.vue new file mode 100644 index 0000000..7a9e623 --- /dev/null +++ b/src/views/merger/mergerapply/modules/MaterialMasterModalHisModalList.vue @@ -0,0 +1,103 @@ + + + + diff --git a/src/views/merger/mergerapply/modules/MaterialMasterModalWorkflow.vue b/src/views/merger/mergerapply/modules/MaterialMasterModalWorkflow.vue new file mode 100644 index 0000000..4e9784a --- /dev/null +++ b/src/views/merger/mergerapply/modules/MaterialMasterModalWorkflow.vue @@ -0,0 +1,121 @@ + + + diff --git a/src/views/merger/mergerapply/modules/MergerAiClassify.vue b/src/views/merger/mergerapply/modules/MergerAiClassify.vue new file mode 100644 index 0000000..2972249 --- /dev/null +++ b/src/views/merger/mergerapply/modules/MergerAiClassify.vue @@ -0,0 +1,342 @@ + + + + + diff --git a/src/views/merger/mergerapply/modules/MergerAssignModal.vue b/src/views/merger/mergerapply/modules/MergerAssignModal.vue new file mode 100644 index 0000000..de90ea8 --- /dev/null +++ b/src/views/merger/mergerapply/modules/MergerAssignModal.vue @@ -0,0 +1,71 @@ + + + diff --git a/src/views/merger/mergerapply/modules/MergerAssignModalForm.vue b/src/views/merger/mergerapply/modules/MergerAssignModalForm.vue new file mode 100644 index 0000000..01f13c9 --- /dev/null +++ b/src/views/merger/mergerapply/modules/MergerAssignModalForm.vue @@ -0,0 +1,262 @@ + + + diff --git a/src/views/merger/mergerapply/modules/MergerDataForm.vue b/src/views/merger/mergerapply/modules/MergerDataForm.vue new file mode 100644 index 0000000..87e17b2 --- /dev/null +++ b/src/views/merger/mergerapply/modules/MergerDataForm.vue @@ -0,0 +1,3915 @@ + + + + + diff --git a/src/views/merger/mergerapply/modules/MergerDataHisForm.vue b/src/views/merger/mergerapply/modules/MergerDataHisForm.vue new file mode 100644 index 0000000..6c52182 --- /dev/null +++ b/src/views/merger/mergerapply/modules/MergerDataHisForm.vue @@ -0,0 +1,1329 @@ + + + diff --git a/src/views/merger/mergerapply/modules/MergerDataHisList.vue b/src/views/merger/mergerapply/modules/MergerDataHisList.vue new file mode 100644 index 0000000..9533ba0 --- /dev/null +++ b/src/views/merger/mergerapply/modules/MergerDataHisList.vue @@ -0,0 +1,118 @@ + + + + diff --git a/src/views/merger/mergerapply/modules/MergerDataHisModal.vue b/src/views/merger/mergerapply/modules/MergerDataHisModal.vue new file mode 100644 index 0000000..3d1ab79 --- /dev/null +++ b/src/views/merger/mergerapply/modules/MergerDataHisModal.vue @@ -0,0 +1,64 @@ + + + diff --git a/src/views/merger/mergerapply/modules/MergerDataModal.vue b/src/views/merger/mergerapply/modules/MergerDataModal.vue new file mode 100644 index 0000000..e8df47f --- /dev/null +++ b/src/views/merger/mergerapply/modules/MergerDataModal.vue @@ -0,0 +1,97 @@ + + + + + diff --git a/src/views/merger/mergerapply/modules/MergerDataModifyList.vue b/src/views/merger/mergerapply/modules/MergerDataModifyList.vue new file mode 100644 index 0000000..2380900 --- /dev/null +++ b/src/views/merger/mergerapply/modules/MergerDataModifyList.vue @@ -0,0 +1,104 @@ + + + diff --git a/src/views/merger/mergerapply/modules/MergerDataQuery.vue b/src/views/merger/mergerapply/modules/MergerDataQuery.vue new file mode 100644 index 0000000..0c63b40 --- /dev/null +++ b/src/views/merger/mergerapply/modules/MergerDataQuery.vue @@ -0,0 +1,698 @@ + + + + diff --git a/src/views/merger/mergerapply/modules/MergerEmsForm.vue b/src/views/merger/mergerapply/modules/MergerEmsForm.vue new file mode 100644 index 0000000..65f8cca --- /dev/null +++ b/src/views/merger/mergerapply/modules/MergerEmsForm.vue @@ -0,0 +1,142 @@ + + + diff --git a/src/views/merger/mergerapply/modules/MergerEmsList.vue b/src/views/merger/mergerapply/modules/MergerEmsList.vue new file mode 100644 index 0000000..669476d --- /dev/null +++ b/src/views/merger/mergerapply/modules/MergerEmsList.vue @@ -0,0 +1,175 @@ + + + + diff --git a/src/views/merger/mergerapply/modules/MergerEmsModal.vue b/src/views/merger/mergerapply/modules/MergerEmsModal.vue new file mode 100644 index 0000000..15e5e0c --- /dev/null +++ b/src/views/merger/mergerapply/modules/MergerEmsModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/merger/mergerapply/modules/MergerEpnMoBomList.vue b/src/views/merger/mergerapply/modules/MergerEpnMoBomList.vue new file mode 100644 index 0000000..27941e9 --- /dev/null +++ b/src/views/merger/mergerapply/modules/MergerEpnMoBomList.vue @@ -0,0 +1,138 @@ + + + diff --git a/src/views/merger/mergerapply/modules/MergerEpnMoBomModal.vue b/src/views/merger/mergerapply/modules/MergerEpnMoBomModal.vue new file mode 100644 index 0000000..77f095d --- /dev/null +++ b/src/views/merger/mergerapply/modules/MergerEpnMoBomModal.vue @@ -0,0 +1,56 @@ + + + diff --git a/src/views/merger/mergerapply/modules/MergerFilePrint.vue b/src/views/merger/mergerapply/modules/MergerFilePrint.vue new file mode 100644 index 0000000..6805da0 --- /dev/null +++ b/src/views/merger/mergerapply/modules/MergerFilePrint.vue @@ -0,0 +1,71 @@ + + + diff --git a/src/views/merger/mergerapply/modules/MergerHsCodeForm.vue b/src/views/merger/mergerapply/modules/MergerHsCodeForm.vue new file mode 100644 index 0000000..b245751 --- /dev/null +++ b/src/views/merger/mergerapply/modules/MergerHsCodeForm.vue @@ -0,0 +1,154 @@ + + + diff --git a/src/views/merger/mergerapply/modules/MergerHsCodeModal.vue b/src/views/merger/mergerapply/modules/MergerHsCodeModal.vue new file mode 100644 index 0000000..04ba822 --- /dev/null +++ b/src/views/merger/mergerapply/modules/MergerHsCodeModal.vue @@ -0,0 +1,62 @@ + + + diff --git a/src/views/merger/mergerapply/modules/MergerInformationForm.vue b/src/views/merger/mergerapply/modules/MergerInformationForm.vue new file mode 100644 index 0000000..86253dc --- /dev/null +++ b/src/views/merger/mergerapply/modules/MergerInformationForm.vue @@ -0,0 +1,256 @@ + + + diff --git a/src/views/merger/mergerapply/modules/MergerInformationList.vue b/src/views/merger/mergerapply/modules/MergerInformationList.vue new file mode 100644 index 0000000..694dc20 --- /dev/null +++ b/src/views/merger/mergerapply/modules/MergerInformationList.vue @@ -0,0 +1,262 @@ + + + diff --git a/src/views/merger/mergerapply/modules/MergerOtherLegalPerson.vue b/src/views/merger/mergerapply/modules/MergerOtherLegalPerson.vue new file mode 100644 index 0000000..36f98f8 --- /dev/null +++ b/src/views/merger/mergerapply/modules/MergerOtherLegalPerson.vue @@ -0,0 +1,159 @@ + + + + diff --git a/src/views/merger/mergerapply/modules/MergerReqsModal.vue b/src/views/merger/mergerapply/modules/MergerReqsModal.vue new file mode 100644 index 0000000..fe8c715 --- /dev/null +++ b/src/views/merger/mergerapply/modules/MergerReqsModal.vue @@ -0,0 +1,174 @@ + + + diff --git a/src/views/merger/mergerapply/modules/MergerReqsModalBody.vue b/src/views/merger/mergerapply/modules/MergerReqsModalBody.vue new file mode 100644 index 0000000..e86b0c1 --- /dev/null +++ b/src/views/merger/mergerapply/modules/MergerReqsModalBody.vue @@ -0,0 +1,617 @@ + + + diff --git a/src/views/merger/mergerapply/modules/MergerReqsModalBodyData.vue b/src/views/merger/mergerapply/modules/MergerReqsModalBodyData.vue new file mode 100644 index 0000000..7de4923 --- /dev/null +++ b/src/views/merger/mergerapply/modules/MergerReqsModalBodyData.vue @@ -0,0 +1,231 @@ + + + diff --git a/src/views/merger/mergerapply/modules/MergerReqsModalBodyDataList.vue b/src/views/merger/mergerapply/modules/MergerReqsModalBodyDataList.vue new file mode 100644 index 0000000..b991426 --- /dev/null +++ b/src/views/merger/mergerapply/modules/MergerReqsModalBodyDataList.vue @@ -0,0 +1,312 @@ + + + + + diff --git a/src/views/merger/mergerapply/modules/MergerReqsModalBodyEleList.vue b/src/views/merger/mergerapply/modules/MergerReqsModalBodyEleList.vue new file mode 100644 index 0000000..8125489 --- /dev/null +++ b/src/views/merger/mergerapply/modules/MergerReqsModalBodyEleList.vue @@ -0,0 +1,309 @@ + + + + + diff --git a/src/views/merger/mergerapply/modules/MergerReqsModalBodyFileUpload.vue b/src/views/merger/mergerapply/modules/MergerReqsModalBodyFileUpload.vue new file mode 100644 index 0000000..fe1c8e2 --- /dev/null +++ b/src/views/merger/mergerapply/modules/MergerReqsModalBodyFileUpload.vue @@ -0,0 +1,345 @@ + + + + + diff --git a/src/views/merger/mergerapply/modules/MergerReqsModalBodyForm.vue b/src/views/merger/mergerapply/modules/MergerReqsModalBodyForm.vue new file mode 100644 index 0000000..93ca39c --- /dev/null +++ b/src/views/merger/mergerapply/modules/MergerReqsModalBodyForm.vue @@ -0,0 +1,303 @@ + + + diff --git a/src/views/merger/mergerapply/modules/MergerReqsModalForm.vue b/src/views/merger/mergerapply/modules/MergerReqsModalForm.vue new file mode 100644 index 0000000..bc2dfcf --- /dev/null +++ b/src/views/merger/mergerapply/modules/MergerReqsModalForm.vue @@ -0,0 +1,278 @@ + + + diff --git a/src/views/merger/mergerapply/modules/MergerReqsModalTransfer.vue b/src/views/merger/mergerapply/modules/MergerReqsModalTransfer.vue new file mode 100644 index 0000000..f2f207f --- /dev/null +++ b/src/views/merger/mergerapply/modules/MergerReqsModalTransfer.vue @@ -0,0 +1,113 @@ + + + diff --git a/src/views/merger/mergerapply/modules/MergerTVModal.vue b/src/views/merger/mergerapply/modules/MergerTVModal.vue new file mode 100644 index 0000000..9b63236 --- /dev/null +++ b/src/views/merger/mergerapply/modules/MergerTVModal.vue @@ -0,0 +1,71 @@ + + + diff --git a/src/views/merger/mergerapply/modules/MergerTVModalForm.vue b/src/views/merger/mergerapply/modules/MergerTVModalForm.vue new file mode 100644 index 0000000..20aa67a --- /dev/null +++ b/src/views/merger/mergerapply/modules/MergerTVModalForm.vue @@ -0,0 +1,183 @@ + + + diff --git a/src/views/merger/mergerapply/modules/ResearchMergerModal.vue b/src/views/merger/mergerapply/modules/ResearchMergerModal.vue new file mode 100644 index 0000000..2af795f --- /dev/null +++ b/src/views/merger/mergerapply/modules/ResearchMergerModal.vue @@ -0,0 +1,83 @@ + + + diff --git a/src/views/merger/mergerapply/modules/ResearchMergerModalForm.vue b/src/views/merger/mergerapply/modules/ResearchMergerModalForm.vue new file mode 100644 index 0000000..f2af2fa --- /dev/null +++ b/src/views/merger/mergerapply/modules/ResearchMergerModalForm.vue @@ -0,0 +1,178 @@ + + + diff --git a/src/views/merger/mergerapply/modules/ResearchMergerModalFormList.vue b/src/views/merger/mergerapply/modules/ResearchMergerModalFormList.vue new file mode 100644 index 0000000..1e94697 --- /dev/null +++ b/src/views/merger/mergerapply/modules/ResearchMergerModalFormList.vue @@ -0,0 +1,617 @@ + + + + diff --git a/src/views/merger/mergerapply/modules/ResearchMergerModalSpliceStr.vue b/src/views/merger/mergerapply/modules/ResearchMergerModalSpliceStr.vue new file mode 100644 index 0000000..6cafaea --- /dev/null +++ b/src/views/merger/mergerapply/modules/ResearchMergerModalSpliceStr.vue @@ -0,0 +1,165 @@ + + + + + diff --git a/src/views/merger/mergerapply/modules/ResearchMergerModalUse.vue b/src/views/merger/mergerapply/modules/ResearchMergerModalUse.vue new file mode 100644 index 0000000..33b4e84 --- /dev/null +++ b/src/views/merger/mergerapply/modules/ResearchMergerModalUse.vue @@ -0,0 +1,140 @@ + + + diff --git a/src/views/merger/mergerconfig/MergerCiqConfigList.vue b/src/views/merger/mergerconfig/MergerCiqConfigList.vue new file mode 100644 index 0000000..ef7b758 --- /dev/null +++ b/src/views/merger/mergerconfig/MergerCiqConfigList.vue @@ -0,0 +1,216 @@ + + + + diff --git a/src/views/merger/mergerconfig/MergerElementFieldConfigList.vue b/src/views/merger/mergerconfig/MergerElementFieldConfigList.vue new file mode 100644 index 0000000..cb653ac --- /dev/null +++ b/src/views/merger/mergerconfig/MergerElementFieldConfigList.vue @@ -0,0 +1,233 @@ + + + + diff --git a/src/views/merger/mergerconfig/modules/MergerCiqConfigForm.vue b/src/views/merger/mergerconfig/modules/MergerCiqConfigForm.vue new file mode 100644 index 0000000..12cee41 --- /dev/null +++ b/src/views/merger/mergerconfig/modules/MergerCiqConfigForm.vue @@ -0,0 +1,160 @@ + + + diff --git a/src/views/merger/mergerconfig/modules/MergerCiqConfigModal.vue b/src/views/merger/mergerconfig/modules/MergerCiqConfigModal.vue new file mode 100644 index 0000000..acaa946 --- /dev/null +++ b/src/views/merger/mergerconfig/modules/MergerCiqConfigModal.vue @@ -0,0 +1,72 @@ + + + diff --git a/src/views/merger/mergerconfig/modules/MergerElementFieldConfigForm.vue b/src/views/merger/mergerconfig/modules/MergerElementFieldConfigForm.vue new file mode 100644 index 0000000..37ba29f --- /dev/null +++ b/src/views/merger/mergerconfig/modules/MergerElementFieldConfigForm.vue @@ -0,0 +1,199 @@ + + + diff --git a/src/views/merger/mergerconfig/modules/MergerElementFieldConfigModal.vue b/src/views/merger/mergerconfig/modules/MergerElementFieldConfigModal.vue new file mode 100644 index 0000000..e5f568d --- /dev/null +++ b/src/views/merger/mergerconfig/modules/MergerElementFieldConfigModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/merger/mergeredConfig/ClassifyPendingReports/index.vue b/src/views/merger/mergeredConfig/ClassifyPendingReports/index.vue new file mode 100644 index 0000000..87ce1ec --- /dev/null +++ b/src/views/merger/mergeredConfig/ClassifyPendingReports/index.vue @@ -0,0 +1,317 @@ + + + diff --git a/src/views/merger/mergeredConfig/hasQueryClassify/index.vue b/src/views/merger/mergeredConfig/hasQueryClassify/index.vue new file mode 100644 index 0000000..1f72e8d --- /dev/null +++ b/src/views/merger/mergeredConfig/hasQueryClassify/index.vue @@ -0,0 +1,22 @@ + diff --git a/src/views/merger/mergeredConfig/productClassify/index.vue b/src/views/merger/mergeredConfig/productClassify/index.vue new file mode 100644 index 0000000..0f126f1 --- /dev/null +++ b/src/views/merger/mergeredConfig/productClassify/index.vue @@ -0,0 +1,1197 @@ + + + diff --git a/src/views/merger/mergeredConfig/productClassify/modules/CNattachmentCode.vue b/src/views/merger/mergeredConfig/productClassify/modules/CNattachmentCode.vue new file mode 100644 index 0000000..d5bec66 --- /dev/null +++ b/src/views/merger/mergeredConfig/productClassify/modules/CNattachmentCode.vue @@ -0,0 +1,128 @@ + + + diff --git a/src/views/merger/mergeredConfig/productClassify/modules/CNhSCodeList.vue b/src/views/merger/mergeredConfig/productClassify/modules/CNhSCodeList.vue new file mode 100644 index 0000000..beeee88 --- /dev/null +++ b/src/views/merger/mergeredConfig/productClassify/modules/CNhSCodeList.vue @@ -0,0 +1,259 @@ + + + + diff --git a/src/views/merger/mergeredConfig/productClassify/modules/CNhSCodeListAll.vue b/src/views/merger/mergeredConfig/productClassify/modules/CNhSCodeListAll.vue new file mode 100644 index 0000000..2fe74d1 --- /dev/null +++ b/src/views/merger/mergeredConfig/productClassify/modules/CNhSCodeListAll.vue @@ -0,0 +1,121 @@ + + + + diff --git a/src/views/merger/mergeredConfig/productClassify/modules/CNhSCodeListOther.vue b/src/views/merger/mergeredConfig/productClassify/modules/CNhSCodeListOther.vue new file mode 100644 index 0000000..923e708 --- /dev/null +++ b/src/views/merger/mergeredConfig/productClassify/modules/CNhSCodeListOther.vue @@ -0,0 +1,183 @@ + + + + diff --git a/src/views/merger/mergeredConfig/productClassify/modules/CNhSCodeModal.vue b/src/views/merger/mergeredConfig/productClassify/modules/CNhSCodeModal.vue new file mode 100644 index 0000000..a948777 --- /dev/null +++ b/src/views/merger/mergeredConfig/productClassify/modules/CNhSCodeModal.vue @@ -0,0 +1,63 @@ + + + diff --git a/src/views/merger/mergeredConfig/productClassify/modules/CNregulatoryConditions.vue b/src/views/merger/mergeredConfig/productClassify/modules/CNregulatoryConditions.vue new file mode 100644 index 0000000..d06f435 --- /dev/null +++ b/src/views/merger/mergeredConfig/productClassify/modules/CNregulatoryConditions.vue @@ -0,0 +1,264 @@ + + + diff --git a/src/views/merger/mergeredConfig/productClassify/modules/CNtaxrateDesc.vue b/src/views/merger/mergeredConfig/productClassify/modules/CNtaxrateDesc.vue new file mode 100644 index 0000000..93cff4d --- /dev/null +++ b/src/views/merger/mergeredConfig/productClassify/modules/CNtaxrateDesc.vue @@ -0,0 +1,80 @@ + + + diff --git a/src/views/merger/mergeredConfig/productClassify/modules/CNtaxrateInfo.vue b/src/views/merger/mergeredConfig/productClassify/modules/CNtaxrateInfo.vue new file mode 100644 index 0000000..8d35594 --- /dev/null +++ b/src/views/merger/mergeredConfig/productClassify/modules/CNtaxrateInfo.vue @@ -0,0 +1,512 @@ + + + diff --git a/src/views/merger/mergeredConfig/productClassify/modules/CNtaxrateInfoCN.vue b/src/views/merger/mergeredConfig/productClassify/modules/CNtaxrateInfoCN.vue new file mode 100644 index 0000000..baf874f --- /dev/null +++ b/src/views/merger/mergeredConfig/productClassify/modules/CNtaxrateInfoCN.vue @@ -0,0 +1,76 @@ + + + diff --git a/src/views/merger/mergeredConfig/productClassify/modules/FlowList.vue b/src/views/merger/mergeredConfig/productClassify/modules/FlowList.vue new file mode 100644 index 0000000..90bfd48 --- /dev/null +++ b/src/views/merger/mergeredConfig/productClassify/modules/FlowList.vue @@ -0,0 +1,133 @@ + + + + diff --git a/src/views/merger/mergeredConfig/productClassify/modules/FlowListModal.vue b/src/views/merger/mergeredConfig/productClassify/modules/FlowListModal.vue new file mode 100644 index 0000000..e85a12c --- /dev/null +++ b/src/views/merger/mergeredConfig/productClassify/modules/FlowListModal.vue @@ -0,0 +1,38 @@ + + + diff --git a/src/views/merger/mergeredConfig/productClassify/modules/MergerFilePrint.vue b/src/views/merger/mergeredConfig/productClassify/modules/MergerFilePrint.vue new file mode 100644 index 0000000..da510cf --- /dev/null +++ b/src/views/merger/mergeredConfig/productClassify/modules/MergerFilePrint.vue @@ -0,0 +1,65 @@ + + + \ No newline at end of file diff --git a/src/views/merger/mergeredConfig/productClassify/modules/MergerGoodsForm.vue b/src/views/merger/mergeredConfig/productClassify/modules/MergerGoodsForm.vue new file mode 100644 index 0000000..99ec6c7 --- /dev/null +++ b/src/views/merger/mergeredConfig/productClassify/modules/MergerGoodsForm.vue @@ -0,0 +1,1442 @@ + + + + diff --git a/src/views/merger/mergeredConfig/productClassify/modules/MergerGoodsModal.vue b/src/views/merger/mergeredConfig/productClassify/modules/MergerGoodsModal.vue new file mode 100644 index 0000000..0a8ce51 --- /dev/null +++ b/src/views/merger/mergeredConfig/productClassify/modules/MergerGoodsModal.vue @@ -0,0 +1,60 @@ + + + diff --git a/src/views/merger/mergeredConfig/productClassify/modules/ModifyRecord.vue b/src/views/merger/mergeredConfig/productClassify/modules/ModifyRecord.vue new file mode 100644 index 0000000..a27c756 --- /dev/null +++ b/src/views/merger/mergeredConfig/productClassify/modules/ModifyRecord.vue @@ -0,0 +1,102 @@ + + + diff --git a/src/views/merger/mergeredConfig/productClassify/modules/ModifyRecordList.vue b/src/views/merger/mergeredConfig/productClassify/modules/ModifyRecordList.vue new file mode 100644 index 0000000..fe61bb9 --- /dev/null +++ b/src/views/merger/mergeredConfig/productClassify/modules/ModifyRecordList.vue @@ -0,0 +1,104 @@ + + + diff --git a/src/views/merger/mergeredConfig/productClassify/modules/ModifyRecordModal.vue b/src/views/merger/mergeredConfig/productClassify/modules/ModifyRecordModal.vue new file mode 100644 index 0000000..64807b6 --- /dev/null +++ b/src/views/merger/mergeredConfig/productClassify/modules/ModifyRecordModal.vue @@ -0,0 +1,61 @@ + + + diff --git a/src/views/merger/mergeredConfig/productClassify/modules/copGNoInfo.vue b/src/views/merger/mergeredConfig/productClassify/modules/copGNoInfo.vue new file mode 100644 index 0000000..d8a9011 --- /dev/null +++ b/src/views/merger/mergeredConfig/productClassify/modules/copGNoInfo.vue @@ -0,0 +1,273 @@ + + + diff --git a/src/views/merger/mergeredConfig/productClassify/modules/devClassify.vue b/src/views/merger/mergeredConfig/productClassify/modules/devClassify.vue new file mode 100644 index 0000000..57a03c3 --- /dev/null +++ b/src/views/merger/mergeredConfig/productClassify/modules/devClassify.vue @@ -0,0 +1,261 @@ + + + + diff --git a/src/views/merger/mergeredConfig/productClassify/modules/mock.json b/src/views/merger/mergeredConfig/productClassify/modules/mock.json new file mode 100644 index 0000000..2ac5923 --- /dev/null +++ b/src/views/merger/mergeredConfig/productClassify/modules/mock.json @@ -0,0 +1,1127 @@ +{ + "code": "0", + "data": { + "descList": [ + { + "id": 66, + "createTime": "2025-08-16 16:46:50", + "updateTime": "2025-08-16 16:51:50", + "createUserCode": "system", + "createUserName": "system", + "updateUserCode": "system", + "updateUserName": "system", + "guanHengId": "DECADE-LIANG-20250814-08168010_**_TH_**_08168010", + "tariffId": "DECADE-LIANG-20250814-08168010", + "hscode": "08168010", + "countryCode": "TH", + "dataVersion": 2025081503, + "hscodeLevelId": "4", + "uom1": "KGM", + "uom2": "KGM", + "uom3": "KGM", + "effectiveDate": "2025-08-11 14:08:00", + "expirationDate": "2100-01-01 12:00:00", + "state": 1, + "effectiveFlag": "Y", + "hscodeFlag": "Y", + "guanHengUpdateDate": "2025-08-11 14:00:00", + "nationalGroup": "CN", + "cultureCode": "ENG", + "description": "- Dried" + }, + { + "id": 66, + "createTime": "2025-08-16 16:46:50", + "updateTime": "2025-08-16 16:51:50", + "createUserCode": "system", + "createUserName": "system", + "updateUserCode": "system", + "updateUserName": "system", + "guanHengId": "DECADE-LIANG-20250814-08168010_**_TH_**_08168010", + "tariffId": "DECADE-LIANG-20250814-08168010", + "hscode": "08168010", + "countryCode": "TH", + "dataVersion": 2025081503, + "hscodeLevelId": "4", + "uom1": "KGM", + "uom2": "KGM", + "uom3": "KGM", + "effectiveDate": "2025-08-11 14:08:00", + "expirationDate": "2100-01-01 12:00:00", + "state": 1, + "effectiveFlag": "Y", + "hscodeFlag": "Y", + "guanHengUpdateDate": "2025-08-11 14:00:00", + "nationalGroup": "CN", + "cultureCode": "THA", + "description": "- แห้ง" + } + ], + "taxRateList": [ + { + "id": 1123, + "createTime": "2025-08-16 16:51:51", + "updateTime": "2025-08-16 16:51:51", + "createUserCode": "system", + "createUserName": "system", + "updateUserCode": "system", + "updateUserName": "system", + "guanHengId": "DECADE-LIANG-20250814-08168010_**_TH_**_08168010", + "tariffId": "DECADE-LIANG-20250814-08168010", + "hscode": "08168010", + "countryCode": "TH", + "dataVersion": 2025081503, + "taxRateId": "0be349d4-7bb9-4cae-8bfc-294c8d8a4912", + "effectiveDate": "2013-12-31 12:00:00", + "expirationDate": "2100-01-01 12:00:00", + "taxRateTypeName": "DUTY", + "taxRateCategoryName": "Preferential Duty", + "taxRateTypeDetailCode": "PREFER", + "taxRateTypeDetailName": "Preferential Duty", + "formulaCode": "PERCENTAGE", + "formulaName": "(RateA*Price)", + "importExportFlag": 2, + "countryGroupImportCode": "TH", + "countryGroupImportName": "THAILAND", + "countryGroupExportCode": "THPCAIN1", + "countryGroupExportName": "India Rate Under India - ASEAN Tariff Agreement (AIN)", + "currencyCode": "THB", + "taxRate": "0.00%", + "taxRateAOperator": "+", + "taxRateA": 0.0, + "taxRateAUnitAmount": 0.0, + "taxRateB": 0.0, + "taxRateBUnitAmount": 0.0, + "taxRateC": 0.0, + "taxRateCUnitAmount": 0.0, + "noteCulture": "eng", + "note": "AIN : ASEAN - India Free Trade Agreement : More details; Exemption and reduction of Customs Duty for the ASEAN - India Free Trade Area", + "notApplyCountryGroupCode": "ALL", + "restrictionEffectiveDate": "1900-01-01 12:00:00", + "restrictionExpirationDate": "2100-01-01 12:00:00", + "nationalFlag": "N" + }, + { + "id": 112, + "createTime": "2025-08-16 16:51:51", + "updateTime": "2025-08-16 16:51:51", + "createUserCode": "system", + "createUserName": "system", + "updateUserCode": "system", + "updateUserName": "system", + "guanHengId": "DECADE-LIANG-20250814-08168010_**_TH_**_08168010", + "tariffId": "DECADE-LIANG-20250814-08168010", + "hscode": "08168010", + "countryCode": "TH", + "dataVersion": 2025081503, + "taxRateId": "0be349d4-7bb9-4cae-8bfc-294c8d8a4912", + "effectiveDate": "2013-12-31 12:00:00", + "expirationDate": "2100-01-01 12:00:00", + "taxRateTypeName": "DUTY", + "taxRateCategoryName": "Preferential Duty", + "taxRateTypeDetailCode": "PREFER", + "taxRateTypeDetailName": "Preferential Duty", + "formulaCode": "PERCENTAGE", + "formulaName": "(RateA*Price)", + "importExportFlag": 2, + "countryGroupImportCode": "TH", + "countryGroupImportName": "THAILAND", + "countryGroupExportCode": "THPCAIN1", + "countryGroupExportName": "India Rate Under India - ASEAN Tariff Agreement (AIN)", + "currencyCode": "THB", + "taxRate": "0.00%", + "taxRateAOperator": "+", + "taxRateA": 0.0, + "taxRateAUnitAmount": 0.0, + "taxRateB": 0.0, + "taxRateBUnitAmount": 0.0, + "taxRateC": 0.0, + "taxRateCUnitAmount": 0.0, + "noteCulture": "eng", + "note": "AIN : ASEAN - India Free Trade Agreement : More details; Exemption and reduction of Customs Duty for the ASEAN - India Free Trade Area", + "notApplyCountryGroupCode": "ALL", + "restrictionEffectiveDate": "1900-01-01 12:00:00", + "restrictionExpirationDate": "2100-01-01 12:00:00", + "nationalFlag": "N" + }, + { + "id": 113, + "createTime": "2025-08-16 16:51:51", + "updateTime": "2025-08-16 16:51:51", + "createUserCode": "system", + "createUserName": "system", + "updateUserCode": "system", + "updateUserName": "system", + "guanHengId": "DECADE-LIANG-20250814-08168010_**_TH_**_08168010", + "tariffId": "DECADE-LIANG-20250814-08168010", + "hscode": "08168010", + "countryCode": "TH", + "dataVersion": 2025081503, + "taxRateId": "0be349d4-7bb9-4cae-8bfc-294c8d8a4912", + "effectiveDate": "2013-12-31 12:00:00", + "expirationDate": "2100-01-01 12:00:00", + "taxRateTypeName": "DUTY", + "taxRateCategoryName": "Preferential Duty", + "taxRateTypeDetailCode": "PREFER", + "taxRateTypeDetailName": "Preferential Duty", + "formulaCode": "PERCENTAGE", + "formulaName": "(RateA*Price)", + "importExportFlag": 2, + "countryGroupImportCode": "TH", + "countryGroupImportName": "THAILAND", + "countryGroupExportCode": "THPCAIN1", + "countryGroupExportName": "India Rate Under India - ASEAN Tariff Agreement (AIN)", + "currencyCode": "THB", + "taxRate": "0.00%", + "taxRateAOperator": "+", + "taxRateA": 0.0, + "taxRateAUnitAmount": 0.0, + "taxRateB": 0.0, + "taxRateBUnitAmount": 0.0, + "taxRateC": 0.0, + "taxRateCUnitAmount": 0.0, + "noteCulture": "eng", + "note": "As per the source, this rate is attached to HS (0806200000), corresponding description is (Dried).", + "notApplyCountryGroupCode": "ALL", + "restrictionEffectiveDate": "1900-01-01 12:00:00", + "restrictionExpirationDate": "2100-01-01 12:00:00", + "nationalFlag": "N" + }, + { + "id": 2, + "createTime": "2025-08-18 15:12:43", + "updateTime": "2025-08-18 15:12:43", + "createUserCode": "system", + "createUserName": "system", + "updateUserCode": "system", + "updateUserName": "system", + "guanHengId": "fd53a796-71ba-4435-a1c9-601", + "tariffId": "fd53a796-71ba-4435-a1c9-693f67c97a11", + "countryCode": "TH", + "dataVersion": 20250708001, + "taxRateId": "0102aabd-8099-41be-b803-7bc159529c6b", + "effectiveDate": "2022-06-09 12:00:00", + "expirationDate": "2100-01-01 00:00:00", + "taxRateTypeName": "EXCISE", + "taxRateCategoryName": "Other Import Charges", + "taxRateTypeDetailCode": "THEX136", + "taxRateTypeDetailName": "Excise Duty: EDI Code: 0601040200; Category Codes: 06.01: Passenger car: (4) Passenger cars (see note for full description)", + "formulaCode": "PERCENTAGE", + "formulaName": "(RateA*Price)", + "importExportFlag": 2, + "countryGroupImportCode": "TH", + "countryGroupImportName": "THAILAND", + "countryGroupExportCode": "ALL", + "countryGroupExportName": "ALL COUNTRIES", + "currencyCode": "THB", + "taxRate": "25.00%", + "taxRateAOperator": "+", + "taxRateA": 0.25, + "taxRateAUnitAmount": 0.0, + "taxRateB": 0.0, + "taxRateBUnitAmount": 0.0, + "taxRateC": 0.0, + "taxRateCUnitAmount": 0.0, + "noteCulture": "eng", + "note": "Full Description : Excise Duty: EDI Code: 0601040200; Category Codes: 06.01: Passenger car: (4) Passenger cars in accordance with the rules, procedures and conditions prescribed by the Director-General made form pick-up truck or chassis with windshield of pick-up truck or modified from pick-up truck(a) Manufactured or modified by an industrial operator who has the qualifications as prescribed by the Director-General: (b) Modified by the modifier under Section 4 which is taxed under Section 29", + "notApplyCountryGroupCode": "ALL", + "restrictedGoodsName": "Restricted Goods Name", + "minimumTaxRate": "5%", + "maximumTaxRate": "20%", + "nationalFlag": "Y" + }, + { + "id": 3, + "createTime": "2025-08-18 15:19:14", + "updateTime": "2025-08-18 15:19:14", + "createUserCode": "system", + "createUserName": "system", + "updateUserCode": "system", + "updateUserName": "system", + "guanHengId": "fd53a796-71ba-4435-a1c9-693f67c97a11_**_TH", + "tariffId": "fd53a796-71ba-4435-a1c9-693f67c97a11", + "countryCode": "TH", + "dataVersion": 20250708001, + "taxRateId": "0102aabd-8099-41be-b803-7bc159529c6b", + "effectiveDate": "2022-06-09 12:00:00", + "expirationDate": "2100-01-01 00:00:00", + "taxRateTypeName": "EXCISE", + "taxRateCategoryName": "Other Import Charges", + "taxRateTypeDetailCode": "THEX136", + "taxRateTypeDetailName": "Excise Duty: EDI Code: 0601040200; Category Codes: 06.01: Passenger car: (4) Passenger cars (see note for full description)", + "formulaCode": "PERCENTAGE", + "formulaName": "(RateA*Price)", + "importExportFlag": 2, + "countryGroupImportCode": "TH", + "countryGroupImportName": "THAILAND", + "countryGroupExportCode": "ALL", + "countryGroupExportName": "ALL COUNTRIES", + "currencyCode": "THB", + "taxRate": "25.00%", + "taxRateAOperator": "+", + "taxRateA": 0.25, + "taxRateAUnitAmount": 0.0, + "taxRateB": 0.0, + "taxRateBUnitAmount": 0.0, + "taxRateC": 0.0, + "taxRateCUnitAmount": 0.0, + "noteCulture": "eng", + "note": "Full Description : Excise Duty: EDI Code: 0601040200; Category Codes: 06.01: Passenger car: (4) Passenger cars in accordance with the rules, procedures and conditions prescribed by the Director-General made form pick-up truck or chassis with windshield of pick-up truck or modified from pick-up truck(a) Manufactured or modified by an industrial operator who has the qualifications as prescribed by the Director-General: (b) Modified by the modifier under Section 4 which is taxed under Section 29", + "notApplyCountryGroupCode": "ALL", + "nationalFlag": "Y" + }, + { + "id": 4, + "createTime": "2025-08-18 15:19:14", + "updateTime": "2025-08-18 15:19:14", + "createUserCode": "system", + "createUserName": "system", + "updateUserCode": "system", + "updateUserName": "system", + "guanHengId": "fd53a796-71ba-4435-a1c9-693f67c97a11_**_TH", + "tariffId": "fd53a796-71ba-4435-a1c9-693f67c97a11", + "countryCode": "TH", + "dataVersion": 20250708001, + "taxRateId": "0102aabd-8099-41be-b803-7bc159529c6b", + "effectiveDate": "2022-06-09 12:00:00", + "expirationDate": "2100-01-01 00:00:00", + "taxRateTypeName": "EXCISE", + "taxRateCategoryName": "Other Import Charges", + "taxRateTypeDetailCode": "THEX136", + "taxRateTypeDetailName": "Excise Duty: EDI Code: 0601040200; Category Codes: 06.01: Passenger car: (4) Passenger cars (see note for full description)", + "formulaCode": "PERCENTAGE", + "formulaName": "(RateA*Price)", + "importExportFlag": 2, + "countryGroupImportCode": "TH", + "countryGroupImportName": "THAILAND", + "countryGroupExportCode": "ALL", + "countryGroupExportName": "ALL COUNTRIES", + "currencyCode": "THB", + "taxRate": "25.00%", + "taxRateAOperator": "+", + "taxRateA": 0.25, + "taxRateAUnitAmount": 0.0, + "taxRateB": 0.0, + "taxRateBUnitAmount": 0.0, + "taxRateC": 0.0, + "taxRateCUnitAmount": 0.0, + "noteCulture": "tha", + "note": "คำอธิบายรายการเพิ่มเติม: อัตราภาษีสรรพสามิต: รหัสสินค้าสรรพสามิต: 0601040200; ประเภทที่: 06.01: รถยนต์นั่ง: (4) รถยนต์นั่ง ตามหลักเกณฑ์ เงื่อนไข และคุณลักษณะ ที่อธิบดีประกาศกำหนดที่ผลิตจากรถยนต์กระบะหรือแชสซีส์และกระจกบังลมหน้า (Chassis with Windshield) ของรถยนต์กระบะ หรือดัดแปลงจากรถยนต์กระบะ: (ก) ที่ผลิตหรือดัดแปลงโดยผู้ประกอบอุตสาหกรรมที่มีคุณสมบัติตามที่อธิบดีประกาศกำหนด: (ข) ที่ดัดแปลงโดยผู้ดัดแปลงตามมาตรา 4 ซึ่งเสียภาษีตามมาตรา 29", + "notApplyCountryGroupCode": "ALL", + "nationalFlag": "Y" + }, + { + "id": 5, + "createTime": "2025-08-18 15:19:14", + "updateTime": "2025-08-18 15:19:14", + "createUserCode": "system", + "createUserName": "system", + "updateUserCode": "system", + "updateUserName": "system", + "guanHengId": "fd53a796-71ba-4435-a1c9-693f67c97a11_**_TH", + "tariffId": "fd53a796-71ba-4435-a1c9-693f67c97a11", + "countryCode": "TH", + "dataVersion": 20250708001, + "taxRateId": "01b0ddf2-ded2-4d86-a50b-807b9022a1b6", + "effectiveDate": "2017-09-16 12:00:00", + "expirationDate": "2100-01-01 00:00:00", + "taxRateTypeName": "EXCISE", + "taxRateCategoryName": "Other Import Charges", + "taxRateTypeDetailCode": "THEX239", + "taxRateTypeDetailName": "Excise Duty: EDI Code: 0801000000; Category Codes: 08.01: Yacht and water vehicle used for recreational activities", + "formulaCode": "PERCENTAGE", + "formulaName": "(RateA*Price)", + "importExportFlag": 2, + "countryGroupImportCode": "TH", + "countryGroupImportName": "THAILAND", + "countryGroupExportCode": "ALL", + "countryGroupExportName": "ALL COUNTRIES", + "currencyCode": "THB", + "taxRate": "0.00%", + "taxRateAOperator": "+", + "taxRateA": 0.0, + "taxRateAUnitAmount": 0.0, + "taxRateB": 0.0, + "taxRateBUnitAmount": 0.0, + "taxRateC": 0.0, + "taxRateCUnitAmount": 0.0, + "noteCulture": "eng", + "note": "Full Description : Excise Duty: EDI Code: 0801000000; Category Codes: 08.01: Yacht and water vehicle used for recreational activities", + "notApplyCountryGroupCode": "ALL", + "nationalFlag": "Y" + }, + { + "id": 6, + "createTime": "2025-08-18 15:19:14", + "updateTime": "2025-08-18 15:19:14", + "createUserCode": "system", + "createUserName": "system", + "updateUserCode": "system", + "updateUserName": "system", + "guanHengId": "fd53a796-71ba-4435-a1c9-693f67c97a11_**_TH", + "tariffId": "fd53a796-71ba-4435-a1c9-693f67c97a11", + "countryCode": "TH", + "dataVersion": 20250708001, + "taxRateId": "01b0ddf2-ded2-4d86-a50b-807b9022a1b6", + "effectiveDate": "2017-09-16 12:00:00", + "expirationDate": "2100-01-01 00:00:00", + "taxRateTypeName": "EXCISE", + "taxRateCategoryName": "Other Import Charges", + "taxRateTypeDetailCode": "THEX239", + "taxRateTypeDetailName": "Excise Duty: EDI Code: 0801000000; Category Codes: 08.01: Yacht and water vehicle used for recreational activities", + "formulaCode": "PERCENTAGE", + "formulaName": "(RateA*Price)", + "importExportFlag": 2, + "countryGroupImportCode": "TH", + "countryGroupImportName": "THAILAND", + "countryGroupExportCode": "ALL", + "countryGroupExportName": "ALL COUNTRIES", + "currencyCode": "THB", + "taxRate": "0.00%", + "taxRateAOperator": "+", + "taxRateA": 0.0, + "taxRateAUnitAmount": 0.0, + "taxRateB": 0.0, + "taxRateBUnitAmount": 0.0, + "taxRateC": 0.0, + "taxRateCUnitAmount": 0.0, + "noteCulture": "tha", + "note": "คำอธิบายรายการเพิ่มเติม: อัตราภาษีสรรพสามิต: รหัสสินค้าสรรพสามิต: 0801000000; ประเภทที่: 08.01: เรือยอชต์ และยานพาหนะทางน้ำที่ใช้เพื่อความสำราญ", + "notApplyCountryGroupCode": "ALL", + "nationalFlag": "Y" + }, + { + "id": 7, + "createTime": "2025-08-18 15:19:14", + "updateTime": "2025-08-18 15:19:14", + "createUserCode": "system", + "createUserName": "system", + "updateUserCode": "system", + "updateUserName": "system", + "guanHengId": "fd53a796-71ba-4435-a1c9-693f67c97a11_**_TH", + "tariffId": "fd53a796-71ba-4435-a1c9-693f67c97a11", + "countryCode": "TH", + "dataVersion": 20250708001, + "taxRateId": "01c216f6-19b9-49ef-9296-543250f1183a", + "effectiveDate": "2022-06-09 12:00:00", + "expirationDate": "2100-01-01 00:00:00", + "taxRateTypeName": "EXCISE", + "taxRateCategoryName": "Other Import Charges", + "taxRateTypeDetailCode": "THEX382", + "taxRateTypeDetailName": "Excise Duty: EDI Code: 0603130200; Category Codes: 06.03: Pick-up truck designed to have the total weight including payload of not exceeding 4,000 kilograms: (14) (see note for full description)", + "formulaCode": "PERCENTAGE", + "formulaName": "(RateA*Price)", + "importExportFlag": 2, + "countryGroupImportCode": "TH", + "countryGroupImportName": "THAILAND", + "countryGroupExportCode": "ALL", + "countryGroupExportName": "ALL COUNTRIES", + "currencyCode": "THB", + "taxRate": "17.00%", + "taxRateAOperator": "+", + "taxRateA": 0.17, + "taxRateAUnitAmount": 0.0, + "taxRateB": 0.0, + "taxRateBUnitAmount": 0.0, + "taxRateC": 0.0, + "taxRateCUnitAmount": 0.0, + "noteCulture": "eng", + "note": "Full Description : Excise Duty: EDI Code: 0603130200; Category Codes: 06.03: Pick-up truck designed to have the total weight including payload of not exceeding 4,000 kilograms: (14) Other than (1) to (13): (1) No Cab and its structure in accordance with the rules, procedure and condition prescribed in the Notification of the Director-General with a cylinder capacity of not exceeding 3,250 cubic centimeters; (2) No Cab that uses biodiesel fuel type methyl ester of fatty acid blend of not less than 19 percent but not exceeding 20% as a mixture with fuel according to the rules, conditions and characteristics as prescribed by the Director-General; (3) Space Cab and its structure in accordance with the rules, procedure and condition prescribed in the Notification of the Director-General with a cylinder capacity of not exceeding 3,250 cubic centimeters; (4) Space Cab that uses biodiesel fuel type methyl ester of fatty acid blend of not less than 19 percent but not exceeding 20% as a mixture with fuel according to the rules, conditions and characteristics as prescribed by the Director-General; (5) Double Cab and its structure in accordance with the rules, procedure and condition prescribed in the Notification of the Director-General with a cylinder capacity of not exceeding 3250 cubic centimeters; (6) Double Cab that uses biodiesel fuel type methyl ester of fatty acid blend of not less than 19 percent but not exceeding 20% as a mixture with fuel according to the rules, conditions and characteristics as prescribed by the Director-General; (7) Double Cab, Hybrid Electric Vehicle and its structure in accordance with the rules, procedure and condition prescribed in the Notification of the Director-General, and must comply with safety standards in the category of preventive safety systems (Active Safety) announced by the Director-General; (8) Double Cab, Plug-in Hybrid Electric Vehicle and its structure in accordance with the rules, procedure and condition prescribed in the Notification of the Director-General; (9) Electric Powered Vehicle; (10) Fuel Cell Powered Vehicle; (11) Pickup, tricycle; (12) Pick-up trucks manufactured or assembled using an engine not used for a particular vehicle to be installed in accordance with the rules and conditions prescribed by the Director-General.; (13) Prototype cars manufactured or imported for the purpose of research, development or performance testing that have never been generally sold in the market in the Kingdom and have never been exempt from excise tax before or have been exempt excise tax but has ceased research and development or has been exempt from excise tax but has ceased research, development or competency test in accordance with the rules, procedures and conditions prescribed by the Director-General: (b) With a cylinder capacity of not exceeding 3,250 cubic centimeters and carbon dioxide emissions exceeding 200 g/km", + "notApplyCountryGroupCode": "ALL", + "nationalFlag": "Y" + }, + { + "id": 8, + "createTime": "2025-08-18 15:19:14", + "updateTime": "2025-08-18 15:19:14", + "createUserCode": "system", + "createUserName": "system", + "updateUserCode": "system", + "updateUserName": "system", + "guanHengId": "fd53a796-71ba-4435-a1c9-693f67c97a11_**_TH", + "tariffId": "fd53a796-71ba-4435-a1c9-693f67c97a11", + "countryCode": "TH", + "dataVersion": 20250708001, + "taxRateId": "01c216f6-19b9-49ef-9296-543250f1183a", + "effectiveDate": "2022-06-09 12:00:00", + "expirationDate": "2100-01-01 00:00:00", + "taxRateTypeName": "EXCISE", + "taxRateCategoryName": "Other Import Charges", + "taxRateTypeDetailCode": "THEX382", + "taxRateTypeDetailName": "Excise Duty: EDI Code: 0603130200; Category Codes: 06.03: Pick-up truck designed to have the total weight including payload of not exceeding 4,000 kilograms: (14) (see note for full description)", + "formulaCode": "PERCENTAGE", + "formulaName": "(RateA*Price)", + "importExportFlag": 2, + "countryGroupImportCode": "TH", + "countryGroupImportName": "THAILAND", + "countryGroupExportCode": "ALL", + "countryGroupExportName": "ALL COUNTRIES", + "currencyCode": "THB", + "taxRate": "17.00%", + "taxRateAOperator": "+", + "taxRateA": 0.17, + "taxRateAUnitAmount": 0.0, + "taxRateB": 0.0, + "taxRateBUnitAmount": 0.0, + "taxRateC": 0.0, + "taxRateCUnitAmount": 0.0, + "noteCulture": "tha", + "note": "คำอธิบายรายการเพิ่มเติม: อัตราภาษีสรรพสามิต: รหัสสินค้าสรรพสามิต: 0603130200; ประเภทที่: 06.03: รถยนต์กระบะที่ออกแบบสำหรับให้มีน้ำหนักรถ รวมน้ำหนักบรรทุกไม่เกิน 4,000 กิโลกรัม: (14) อื่น ๆ นอกจาก (1) ถึง (13): (1) ที่ไม่มีพื้นที่ใส่สัมภาระด้านหลังที่นั่งคนขับ (No Cab) ตามหลักเกณฑ์ เงื่อนไขและคุณลักษณะที่อธิบดีประกาศกำหนด และมีความจุของกระบอกสูบไม่เกิน 3,250 ลูกบาศก์เซนติเมตร; (2) ที่ไม่มีพื้นที่ใส่สัมภาระด้านหลังที่นั่งคนขับ (No Cab) ที่ใช้เชื้อเพลิงประเภทไบโอดีเซล ประเภทเมทิลเอสเตอร์ของกรดไขมันผสมอยู่ ไม่น้อยกว่าร้อยละ 19 แต่ไม่เกินร้อยละ 20 เป็นส่วนผสมกับน้ำมันเชื้อเพลิงได้ ตามหลักเกณฑ์ เงื่อนไข และคุณลักษณะ ที่อธิบดีประกาศกำหนด; (3) ที่มีพื้นที่ใส่สัมภาระด้านหลังที่นั่งคนขับ (Space Cab) ตามหลักเกณฑ์ เงื่อนไข และคุณลักษณะที่อธิบดีประกาศกำหนด และมีความจุของกระบอกสูบไม่เกิน 3,250 ลูกบาศก์เซนติเมตร; (4) ที่มีพื้นที่ใส่สัมภาระด้านหลังที่นั่งคนขับ (Space Cab) ที่ใช้เชื้อเพลิงประเภทไบโอดีเซล ประเภทเมทิลเอสเตอร์ของกรดไขมันผสมอยู่ไม่น้อยกว่าร้อยละ 19 แต่ไม่เกินร้อยละ 20 เป็นส่วนผสมกับน้ำมันเชื้อเพลิงได้ ตามหลักเกณฑ์ เงื่อนไข และคุณลักษณะที่อธิบดีประกาศกำหนด; (5) รถยนต์กระบะ 4 ประตู (Double Cab) ตามหลักเกณฑ์ เงื่อนไข และคุณลักษณะ ที่อธิบดีประกาศกำหนด และมีความจุของกระบอกสูบไม่เกิน 3,250 ลูกบาศก์เซนติเมตร; (6) รถยนต์กระบะ 4 ประตู (Double Cab) ที่ใช้เชื้อเพลิงประเภทไบโอดีเซล ประเภทเมทิล เอสเตอร์ของกรดไขมันผสมอยู่ไม่น้อยกว่าร้อยละ 19 แต่ไม่เกินร้อยละ 20 เป็นส่วนผสมกับน้ำมันเชื้อเพลิงได้ ตามหลักเกณฑ์ เงื่อนไข และคุณลักษณะที่อธิบดีประกาศกำหนด; (7) รถยนต์กระบะ 4 ประตู (Double Cab) แบบผสมที่ใช้พลังงานเชื้อเพลิงและไฟฟ้า (Hybrid Electric Vehicle) ตามหลักเกณฑ์ เงื่อนไข และคุณลักษณะที่อธิบดีประกาศกำหนด และต้องปฏิบัติตามมาตรฐานความปลอดภัยประเภทระบบความปลอดภัยเชิงป้องกันก่อนเกิดเหตุ (Active Safety) ที่อธิบดีประกาศกำหนด; (8) รถยนต์กระบะ 4 ประตู (Double Cab) แบบผสมที่ใช้พลังงานเชื้อเพลิงและไฟฟ้าที่สามารถเสียบปลั๊กประจุไฟฟ้าได้ (Plug-in Hybrid Electric Vehicle) ที่เป็นไปตามหลักเกณฑ์ เงื่อนไข และคุณลักษณะที่อธิบดีประกาศกำหนด; (9) รถยนต์กระบะแบบพลังงานไฟฟ้า (Electric Powered Vehicle); (10) รถยนต์กระบะแบบเซลล์เชื้อเพลิง (Fuel Cell Powered Vehicle); (11) รถยนต์กระบะสามล้อ; (12) รถยนต์กระบะที่ผลิตหรือประกอบขึ้น โดยใช้เครื่องยนต์ซึ่งมิได้ใช้สำหรับรถยนต์โดยเฉพาะมาติดตั้ง ตามหลักเกณฑ์และเงื่อนไขที่อธิบดีประกาศกำหนด; (13) รถยนต์ต้นแบบที่ผลิตหรือนำเข้ามาโดย มีวัตถุประสงค์เพื่อนำไปวิจัย พัฒนา หรือทดสอบสมรรถนะที่ไม่เคยมีการจำหน่ายในท้องตลาดเป็นการทั่วไปในราชอาณาจักรและไม่เคยได้รับยกเว้นภาษีสรรพสามิตมาก่อนหรือเคยได้รับยกเว้นภาษีสรรพสามิตมาแล้วแต่ได้ยุติการวิจัย พัฒนา หรือเคยได้รับยกเว้นภาษีสรรพสามิตมาแล้ว แต่ได้ยุติการวิจัย พัฒนา หรือทดสอบสมรรถนะ ตามหลักเกณฑ์ วิธีการ และเงื่อนไขที่อธิบดีประกาศกำหนด: (ข) ที่มีความจุของกระบอกสูบไม่เกิน 3,250 ลูกบาศก์เซนติเมตร และมีการปล่อยก๊าซคาร์บอนไดออกไซด์เกิน 200 กรัม/กิโลเมตร", + "notApplyCountryGroupCode": "ALL", + "nationalFlag": "Y" + }, + { + "id": 9, + "createTime": "2025-08-18 15:19:14", + "updateTime": "2025-08-18 15:19:14", + "createUserCode": "system", + "createUserName": "system", + "updateUserCode": "system", + "updateUserName": "system", + "guanHengId": "fd53a796-71ba-4435-a1c9-693f67c97a11_**_TH", + "tariffId": "fd53a796-71ba-4435-a1c9-693f67c97a11", + "countryCode": "TH", + "dataVersion": 20250708001, + "taxRateId": "03062760-9519-42fe-9d62-80b9ea3304f4", + "effectiveDate": "2022-10-01 12:00:00", + "expirationDate": "2100-01-01 00:00:00", + "taxRateTypeName": "EXCISE", + "taxRateCategoryName": "Other Import Charges", + "taxRateTypeDetailCode": "THEXZER86", + "taxRateTypeDetailName": "Excise duty on Beverage type: Morning glory juice at a rate of 0% (see note for full description)", + "formulaCode": "PERCENTAGE", + "formulaName": "(RateA*Price)", + "importExportFlag": 2, + "countryGroupImportCode": "TH", + "countryGroupImportName": "THAILAND", + "countryGroupExportCode": "ALL", + "countryGroupExportName": "ALL COUNTRIES", + "currencyCode": "THB", + "taxRate": "0.00%", + "taxRateAOperator": "+", + "taxRateA": 0.0, + "taxRateAUnitAmount": 0.0, + "taxRateB": 0.0, + "taxRateBUnitAmount": 0.0, + "taxRateC": 0.0, + "taxRateCUnitAmount": 0.0, + "noteCulture": "eng", + "note": "Beverage types: Morning glory juice; Properties of raw ingredient used to be considered from: Morning glory juice extract with a soluble content of not less than 2 degrees Brix *; Mixing ratio of fruit juice and vegetable juice per net volume of beverage shall not be less than percent: 20 // Note : (* When measured at 20 °C by a refractometer) and (** The properties of raw ingredient used are determined from the amount of soluble substances or proteins or carbohydrates or substances extracted by hot water not less than those specified in this list means 100% fruit and vegetable juices, except basil seed juice and Malva nut juice.)", + "notApplyCountryGroupCode": "ALL", + "nationalFlag": "Y" + }, + { + "id": 10, + "createTime": "2025-08-18 15:19:14", + "updateTime": "2025-08-18 15:19:14", + "createUserCode": "system", + "createUserName": "system", + "updateUserCode": "system", + "updateUserName": "system", + "guanHengId": "fd53a796-71ba-4435-a1c9-693f67c97a11_**_TH", + "tariffId": "fd53a796-71ba-4435-a1c9-693f67c97a11", + "countryCode": "TH", + "dataVersion": 20250708001, + "taxRateId": "03062760-9519-42fe-9d62-80b9ea3304f4", + "effectiveDate": "2022-10-01 12:00:00", + "expirationDate": "2100-01-01 00:00:00", + "taxRateTypeName": "EXCISE", + "taxRateCategoryName": "Other Import Charges", + "taxRateTypeDetailCode": "THEXZER86", + "taxRateTypeDetailName": "Excise duty on Beverage type: Morning glory juice at a rate of 0% (see note for full description)", + "formulaCode": "PERCENTAGE", + "formulaName": "(RateA*Price)", + "importExportFlag": 2, + "countryGroupImportCode": "TH", + "countryGroupImportName": "THAILAND", + "countryGroupExportCode": "ALL", + "countryGroupExportName": "ALL COUNTRIES", + "currencyCode": "THB", + "taxRate": "0.00%", + "taxRateAOperator": "+", + "taxRateA": 0.0, + "taxRateAUnitAmount": 0.0, + "taxRateB": 0.0, + "taxRateBUnitAmount": 0.0, + "taxRateC": 0.0, + "taxRateCUnitAmount": 0.0, + "noteCulture": "eng", + "note": "Beverages in the category of fruit juices and vegetable juices that are entitled to excise duty at a rate of zero percent must have the following qualifications and characteristics: 3.1 It is a beverage with a list of types of beverages and ingredient rates as specified in the list of ingredients of fruit juice and vegetable juices at the end of this announcement. In the case of beverages containing various types of fruit juices and vegetable juices, both listed and not listed on the list of ingredients of fruit juice and vegetable juices list annexed to this announcement, in considering the mixture ratio, only fruit juices and vegetable juices listed shall be considered as specified in the list of ingredients of fruit juices and vegetable juices annexed to this announcement.; 3.2 Other ingredients in beverages can only be listed as follows:1. Water, 2. Sugar or other sweeteners, 3. Salt, 4. Nutrients and other substances that are naturally present in the fruits and vegetables used to make such beverages, or their imitations of such nutrients and substances. 5. Powdered milk or milk according to (d) in (1) of Chapter 2, beverages in the excise tax rate account, appendix to the Excise Tax Act B.E. 2560, but does not include fermented milk and flavored milk by adding powdered milk or such milk must be added in an amount less than the mixture ratio of fruit juice and vegetable juice. 6. Food additives as prescribed or permitted by the Ministry of Public Health or the Food and Drug Administration. 7. Added substance to prevent clotting but not as food additives under (6) in quantities less than the ratio of fruit juice and vegetable juice mixture; 3.3 It is a beverage having physical characteristics, both color, smell and taste, corresponding to the type of fruits and vegetables used to make beverages and other ingredients added in beverages according to 3.2, including the type of nutrients and other substances not more than than kind of nutrients and other substances that are naturally present in the fruits and vegetables used to make such beverages and not more than the types of nutrients and other substances contained in other ingredients added to beverages according to 3.2.; 4. Taxpayers who are entitled to tax at zero percent are industrial operators and importers of fruit juices and vegetable juices. In this regard, industrial operators and importers of fruit juices and vegetable juices are obliged to comply with the provisions of the Excise Tax Act B.E. 2560 (2017) and perform the following actions: (4.1) Submit samples of beverages in the category of fruit juices and vegetable juices applying for the right to pay tax at the rate of by zero percent value according to this announcement of not less than 3 containers with a total volume of not less than 1 liter and must be a sample of beverages with containers and labels attached to the containers in the form of goods that will actually be sold, along with showing the formula, ingredients and production process for the Excise Department to use for inspection for consideration in the request for the exercise of rights. However, in the case of beverages applying for the right have containers of various sizes, at least 3 containers of any size beverage samples can be delivered, but the total volume must not be less than 1 liter. (4.2) Send raw materials used in the production to the Excise Department in the event that the Excise Official requests.; 5. Who is entitled to tax at a rate of zero percent must display the following details on the container, container label, or beverage container lid.; 5.1 Name of industry operator/importer, 5.2 Location of the factory / establishment of the importer, 5.3 Drink name, 5.4 Trademark, 5.5 The main ingredient of the drink, 5.6 Net volume, 5.7 Date, Month, Year of manufacture and expiration or that should be consumed before, 5.8 Food serial number.; In the case of exporting beverages out of the Kingdom to show the name and establishment of D", + "notApplyCountryGroupCode": "ALL", + "nationalFlag": "Y" + }, + { + "id": 11, + "createTime": "2025-08-18 15:19:14", + "updateTime": "2025-08-18 15:19:14", + "createUserCode": "system", + "createUserName": "system", + "updateUserCode": "system", + "updateUserName": "system", + "guanHengId": "fd53a796-71ba-4435-a1c9-693f67c97a11_**_TH", + "tariffId": "fd53a796-71ba-4435-a1c9-693f67c97a11", + "countryCode": "TH", + "dataVersion": 20250708001, + "taxRateId": "03062760-9519-42fe-9d62-80b9ea3304f4", + "effectiveDate": "2022-10-01 12:00:00", + "expirationDate": "2100-01-01 00:00:00", + "taxRateTypeName": "EXCISE", + "taxRateCategoryName": "Other Import Charges", + "taxRateTypeDetailCode": "THEXZER86", + "taxRateTypeDetailName": "Excise duty on Beverage type: Morning glory juice at a rate of 0% (see note for full description)", + "formulaCode": "PERCENTAGE", + "formulaName": "(RateA*Price)", + "importExportFlag": 2, + "countryGroupImportCode": "TH", + "countryGroupImportName": "THAILAND", + "countryGroupExportCode": "ALL", + "countryGroupExportName": "ALL COUNTRIES", + "currencyCode": "THB", + "taxRate": "0.00%", + "taxRateAOperator": "+", + "taxRateA": 0.0, + "taxRateAUnitAmount": 0.0, + "taxRateB": 0.0, + "taxRateBUnitAmount": 0.0, + "taxRateC": 0.0, + "taxRateCUnitAmount": 0.0, + "noteCulture": "tha", + "note": "เครื่องดื่มประเภทน้ำผลไม้และน้ำพืชผักที่จะได้รับสิทธิเสียภาษีในอัตราตามมูลค่าร้อยละศูนย์ ต้องมีคุณสมบัติและลักษณะ ดังต่อไปนี้ 3.1 เป็นเครื่องดื่มที่มีรายชื่อประเภทเครื่องดื่มและอัตราส่วนผสมตามที่กำหนดในบัญชีอัตราส่วนผสมของเครื่องดื่มประเภทน้ำผลไม้และน้ำพืชผักท้ายประกาศนี้้ในกรณีเครื่องดื่มที่มีส่วนผสมของน้ำผลไม้และน้ำพืชผักหลายชนิด ทั้งชนิดที่มีรายชื่อและไม่มีรายชื่ออยู่ในบัญชีอัตราส่วนผสมของเครื่องดื่มประเภทน้ำผลไม้และน้ำพืชผักท้ายประกาศนี้้ การพิจารณาอัตราส่วนผสมให้พิจารณาเฉพาะน้ำผลไม้และน้ำพืชผักชนิดที่มีรายชื่อประเภทเครื่องดื่ม ตามที่กำหนดในบัญชีอัตราส่วนผสมของเครื่องดื่มประเภทน้ำผลไม้และน้ำพืชผักท้ายประกาศนี้้3.2 ส่วนผสมอื่นในเครื่องดื่ม ตาม 3.1 ให้มีได้เฉพาะรายการ ดังต่อไปนี้้ (1) น้ำ (2) น้ำตาลหรือสารที่ทำให้หวานอื่น ๆ (3) เกลือ (4) สารอาหารและสารอื่นที่มีอยู่ตามธรรมชาติในผลไม้และพืชผักที่ใช้ทำเครื่องดื่มชนิดนั้น หรือสารสังเคราะห์เลียนแบบสารอาหารและสารอื่นดังกล่าว (5) นมผง หรือน้ำนมตาม (ง) ใน (1) ของตอนที่ 2 เครื่องดื่ม ในบัญชี พิกัดอัตราภาษีสรรพสามิต ท้ายพระราชบัญญัติภาษีสรรพสามิต พ.ศ. 2560 แต่ไม่รวมถึงนมเปรี้ยวและนมปรุงแต่ง โดยการเติมนมผงหรือน้ำนมดังกล่าวจะต้องเติมในปริมาณที่น้อยกว่าอัตราส่วนผสมของน้ำผลไม้และน้ำพืชผัก (6) วัตถุเจือปนอาหารตามที่กระทรวงสาธารณสุขหรือสำนักงานคณะกรรมการ อาหารและยาได้ประกาศกำหนดหรืออนุญาตไว้ (7) สารที่เติมเพื่อป้องกันการจับเป็นก้อน แต่มิใช่วัตถุเจือปนอาหารตาม (6) ในปริมาณที่น้อยกว่าอัตราส่วนผสมของน้ำผลไม้และน้ำพืชผัก3.3 เป็นเครื่องดื่มที่มีลักษณะทางกายภาพ ทั้งสี กลิ่น และรส ตรงตามชนิด ของผลไม้และพืชผักที่ใช้ทำเครื่องดื่มและส่วนผสมอื่นที่เติมในเครื่องดื่มตาม 3.2 รวมถึงต้องมีชนิดของสารอาหารและสารอื่นไม่เกินกว่าชนิดของสารอาหารและสารอื่นที่มีอยู่ตามธรรมชาติในผลไม้และพืชผักที่ใช้ทำเครื่องดื่มชนิดนั้น และไม่เกินกว่าชนิดของสาร อาหารและสารอื่นที่มีอยู่ในส่วนผสมอื่นที่เติมในเครื่องดื่มตาม 3.2 ข้อ 4 ผู้มีหน้าที่เสียภาษีที่จะได้รับสิทธิเสียภาษีในอัตราตามมูลค่าร้อยละศูนย์ ได้แก่ ผู้ประกอบอุตสาหกรรมและผู้นำเข้าเครื่องดื่มประเภทน้ำผลไม้และน้ำพืชผัก ทั้งนี้้ ผู้ประกอบอุตสาหกรรมและผู้นำเข้าเครื่องดื่มประเภทน้ำผลไม้และน้ำพืชผัก มีหน้าที่ต้องปฏิบัติตามบทบัญญัติ ในพระราชบัญญัติภาษีสรรพสามิต พ.ศ. 2560 และดำเนินการต่าง ๆ ดังต่อไปนี้้ 4.1 ส่งตัวอย่างเครื่องดื่มประเภทน้ำผลไม้และน้ำพืชผักที่ขอใช้สิทธิเสียภาษีในอัตรา ตามมูลค่าร้อยละศูนย์ตามประกาศนี้้ จำนวนไม่น้อยกว่า 3 ภาชนะบรรจุ โดยมีปริมาตรรวมไม่น้อยกว่า 1 ลิตร และต้องเป็นตัวอย่างเครื่องดื่มที่มีภาชนะบรรจุและแสดงฉลากปิดภาชนะในลักษณะของสินค้า ที่จะวางจำหน่ายจริงพร้อมแสดงสูตรส่วนผสมและกรรมวิธีการผลิตเพื่อให้กรมสรรพสามิตใช้ตรวจสอบ ประกอบการพิจารณาในการขอใช้สิทธิ ทั้งนี้้ กรณีเครื่องดื่มที่ขอใช้สิทธิดังกล่าวมีภาชนะบรรจุหลายขนาด ให้สามารถส่งตัวอย่างเครื่องดื่มภาชนะขนาดใดก็ได้จำนวนไม่น้อยกว่า 3 ภาชนะบรรจุ แต่ต้องมี ปริมาตรรวมไม่น้อยกว่า 1 ลิตร 4.2 ส่งวัตถุดิบที่ใช้ในการผลิตให้กรมสรรพสามิต ในกรณีที่เจ้าพนักงานสรรพสามิตร้องขอข้อ 5 ผู้ที่จะได้รับสิทธิเสียภาษีในอัตราตามมูลค่าร้อยละศูนย์ ต้องแสดงรายละเอียดต่าง ๆ ดังต่อไปนี้ ที่ภาชนะบรรจุ ฉลากปิดภาชนะ หรือฝาปิดภาชนะบรรจุเครื่องดื่ม 5.1 ชื่อผู้ประกอบอุตสาหกรรม/ผู้นำเข้า5.2 สถานที่ตั้งโรงอุตสาหกรรม/สถานประกอบการของผู้นำเข้า 5.3 ชื่อเครื่องดื่ม 5.4 เครื่องหมายการค้า 5.5 ส่วนผสมหลักของเครื่องดื่ม 5.6 ปริมาตรสุทธิ 5.7 วัน เดือน ปี ที่ผลิตและที่หมดอายุ หรือที่ควรบริโภคก่อน 5.8 เลขสารบบอาหารในกรณีส่งเครื่องดื่มออกไปนอกราชอาณาจักร ให้แสดงชื่อและสถานประกอบการของผู้จัดจ้าหน่ายในต่างประเทศแทนรายละเอียดตาม 5.1 และ 5.2 ก็ได้ และจะไม่แสดงเลขสารบบอาหารตาม 5.8 ก็ได้ข้อ 6 ผู้ที่ประสงค์จะใช้สิทธิเสียภาษีในอัตราตามมูลค่าร้อยละศูนย์ ให้ยื่นคำขอใช้สิทธิเสียภาษีในอัตราตามมูลค่าร้อยละศูนย์ ดังนี้้ 6.2 กรณีผู้นำเข้า ให้ยื่นคำขอใช้สิทธิเสียภาษีในอัตราตามมูลค่าร้อยละศูนย์ ณ สำนักงานสรรพสามิตพื้นที่ ที่ได้จดทะเบียนสรรพสามิตไว้ ข้อ 7 การยื่นคำขอใช้สิทธิเสียภาษีในอัตราตามมูลค่าร้อยละศูนย์ตามข้อ 6 ให้แจ้ง รายละเอียดเกี่ยวกับเครื่องดื่มที่จะขอใช้สิทธิเสียภาษีในอัตราตามมูลค่าร้อยละศูนย์ตามข้อ 5 ให้ชัดเจน และยื่นตามกำหนดเวลา ดังนี้้ข้อ 7 การยื่นคำขอใช้สิทธิเสียภาษีในอัตราตามมูลค่าร้อยละศูนย์ตามข้อ 6 ให้แจ้ง รายละเอียดเกี่ยวกับเครื่องดื่มที่จะขอใช้สิทธิเสียภาษีในอัตราตามมูลค่าร้อยละศูนย์ตามข้อ 5 ให้ชัดเจน และยื่นตามกำหนดเวลา ดังนี้้ 7.2 กรณีผู้นำเข้า ให้ยื่น", + "notApplyCountryGroupCode": "ALL", + "nationalFlag": "Y" + }, + { + "id": 12, + "createTime": "2025-08-18 15:19:14", + "updateTime": "2025-08-18 15:19:14", + "createUserCode": "system", + "createUserName": "system", + "updateUserCode": "system", + "updateUserName": "system", + "guanHengId": "fd53a796-71ba-4435-a1c9-693f67c97a11_**_TH", + "tariffId": "fd53a796-71ba-4435-a1c9-693f67c97a11", + "countryCode": "TH", + "dataVersion": 20250708001, + "taxRateId": "03062760-9519-42fe-9d62-80b9ea3304f4", + "effectiveDate": "2022-10-01 12:00:00", + "expirationDate": "2100-01-01 00:00:00", + "taxRateTypeName": "EXCISE", + "taxRateCategoryName": "Other Import Charges", + "taxRateTypeDetailCode": "THEXZER86", + "taxRateTypeDetailName": "Excise duty on Beverage type: Morning glory juice at a rate of 0% (see note for full description)", + "formulaCode": "PERCENTAGE", + "formulaName": "(RateA*Price)", + "importExportFlag": 2, + "countryGroupImportCode": "TH", + "countryGroupImportName": "THAILAND", + "countryGroupExportCode": "ALL", + "countryGroupExportName": "ALL COUNTRIES", + "currencyCode": "THB", + "taxRate": "0.00%", + "taxRateAOperator": "+", + "taxRateA": 0.0, + "taxRateAUnitAmount": 0.0, + "taxRateB": 0.0, + "taxRateBUnitAmount": 0.0, + "taxRateC": 0.0, + "taxRateCUnitAmount": 0.0, + "noteCulture": "tha", + "note": "ประเภทเครื่องดื่ม: น้ำผักบุ้งจีน; คุณสมบัติของวัตถุดิบที่ใช้พิจารณาจาก: น้ำผักบุ้งจีนสกัดที่มีปริมาณสารที่ละลายได้ไม่น้อยกว่า 2 องศาบริกซ์ * ; อัตราส่วนผสมของนํ้าผลไม้ และนํ้าพืชผักต่อปริมาตร สุทธิของเครื่องดื่มต้อง ไม่น้อยกว่าร้อยละ: 20 // อ้างอิง: (* เมื่อวัดที่อุณหภูมิ 20 องศาเซลเซียส โดยรีแฟรคโตมิเตอร์) และ (** คุณสมบัติของวัตถุดิบที่ใช้พิจารณาจากปริมาณสารที่ละลายได้ หรือโปรตีน หรือคาร์โบไฮเดรต หรือสารที่ สกัดด้วยนํ้าร้อนไม่น้อยกว่าที่กำหนดในบัญชีนี้ หมายถึง นํ้าผลไม้และนํ้าพืซผัก 100 เปอร์เซ็นต์ ยกเว้น นํ้าเมล็ดแมงลักและนํ้าสำรอง)", + "notApplyCountryGroupCode": "ALL", + "nationalFlag": "Y" + }, + { + "id": 15, + "createTime": "2025-08-18 16:17:48", + "updateTime": "2025-08-18 16:17:48", + "createUserCode": "system", + "createUserName": "system", + "updateUserCode": "system", + "updateUserName": "system", + "guanHengId": "fd53a796-71ba-4435-a1c9-693f67c97a18", + "tariffId": "fd53a796-71ba-4435-a1c9-693f67c97a11", + "countryCode": "TH", + "dataVersion": 20250708001, + "taxRateId": "0102aabd-8099-41be-b803-7bc159529c6b", + "effectiveDate": "2022-06-09 12:00:00", + "expirationDate": "2100-01-01 00:00:00", + "taxRateTypeName": "EXCISE", + "taxRateCategoryName": "Other Import Charges", + "taxRateTypeDetailCode": "THEX136", + "taxRateTypeDetailName": "Excise Duty: EDI Code: 0601040200; Category Codes: 06.01: Passenger car: (4) Passenger cars (see note for full description)", + "formulaCode": "PERCENTAGE", + "formulaName": "(RateA*Price)", + "importExportFlag": 2, + "countryGroupImportCode": "TH", + "countryGroupImportName": "THAILAND", + "countryGroupExportCode": "ALL", + "countryGroupExportName": "ALL COUNTRIES", + "currencyCode": "THB", + "taxRate": "25.00%", + "taxRateAOperator": "+", + "taxRateA": 0.25, + "taxRateAUnitAmount": 0.0, + "taxRateB": 0.0, + "taxRateBUnitAmount": 0.0, + "taxRateC": 0.0, + "taxRateCUnitAmount": 0.0, + "noteCulture": "eng", + "note": "Full Description : Excise Duty: EDI Code: 0601040200; Category Codes: 06.01: Passenger car: (4) Passenger cars in accordance with the rules, procedures and conditions prescribed by the Director-General made form pick-up truck or chassis with windshield of pick-up truck or modified from pick-up truck(a) Manufactured or modified by an industrial operator who has the qualifications as prescribed by the Director-General: (b) Modified by the modifier under Section 4 which is taxed under Section 29", + "notApplyCountryGroupCode": "ALL", + "restrictedGoodsName": "Restricted Goods Name", + "minimumTaxRate": "5%", + "maximumTaxRate": "20%", + "nationalFlag": "Y" + }, + { + "id": 16, + "createTime": "2025-08-18 18:10:20", + "updateTime": "2025-08-18 18:10:20", + "createUserCode": "system", + "createUserName": "system", + "updateUserCode": "system", + "updateUserName": "system", + "guanHengId": "fd53a796-71ba-4435-a1c9-633", + "tariffId": "fd53a796-71ba-4435-a1c9-633", + "countryCode": "TH", + "dataVersion": 20250708006, + "taxRateId": "0102aabd-8099-41be-b803-7bc159529c44", + "effectiveDate": "2022-06-09 12:00:00", + "expirationDate": "2100-01-01 00:00:00", + "taxRateTypeName": "EXCISE", + "taxRateCategoryName": "Other Import Charges", + "taxRateTypeDetailCode": "THEX136", + "taxRateTypeDetailName": "Excise Duty: EDI Code: 0601040200; Category Codes: 06.01: Passenger car: (4) Passenger cars (see note for full description)", + "formulaCode": "PERCENTAGE", + "formulaName": "(RateA*Price)", + "importExportFlag": 2, + "countryGroupImportCode": "TH", + "countryGroupImportName": "THAILAND", + "countryGroupExportCode": "ALL", + "countryGroupExportName": "ALL COUNTRIES", + "currencyCode": "THB", + "taxRate": "25.00%", + "taxRateAOperator": "+", + "taxRateA": 0.25, + "taxRateAUnit": "Unit A", + "taxRateAUnitAmount": 100.0, + "taxRateBOperator": "-", + "taxRateB": 0.1, + "taxRateBUnit": "Unit B", + "taxRateBUnitAmount": 50.0, + "taxRateCOperator": "*", + "taxRateC": 0.2, + "taxRateCUnit": "Unit C", + "taxRateCUnitAmount": 0.0, + "noteCulture": "eng", + "note": "Full Description : Excise Duty: EDI Code: 0601040200; Category Codes: 06.01: Passenger car: (4) Passenger cars in accordance with the rules, procedures and conditions prescribed by the Director-General made form pick-up truck or chassis with windshield of pick-up truck or modified from pick-up truck(a) Manufactured or modified by an industrial operator who has the qualifications as prescribed by the Director-General: (b) Modified by the modifier under Section 4 which is taxed under Section 29", + "applyCountryGroupCode": "GROUP5,GROUP6", + "notApplyCountryGroupCode": "GROUP7,GROUP8", + "restrictedCode": "RESTRICT123", + "additionalRestrictedCode": "ADDRESTRICT123", + "restrictedCompanyName": "Restricted Company Name", + "restrictedGoodsName": "Restricted Goods Name", + "restrictedCompanyAddress": "123 Example St.", + "restrictedCompanyCountryCode": "US", + "restrictedCompanyCountryName": "United States", + "restrictedCompanyCountryProvinceCode": "CA", + "minimumTaxRate": "5%", + "maximumTaxRate": "20%", + "nationalFlag": "Y" + }, + { + "id": 17, + "createTime": "2025-08-19 09:28:10", + "updateTime": "2025-08-19 09:28:10", + "createUserCode": "system", + "createUserName": "system", + "updateUserCode": "system", + "updateUserName": "system", + "guanHengId": "fd53a79671ba20250819", + "tariffId": "fd53a79671ba20250819", + "countryCode": "TH", + "dataVersion": 2025001, + "taxRateId": "0102aabd-8099-41be-b803-7bc159529c44", + "effectiveDate": "2022-06-09 12:00:00", + "expirationDate": "2100-01-01 00:00:00", + "taxRateTypeName": "EXCISE", + "taxRateCategoryName": "Other Import Charges", + "taxRateTypeDetailCode": "THEX136", + "taxRateTypeDetailName": "Excise Duty: EDI Code: 0601040200; Category Codes: 06.01: Passenger car: (4) Passenger cars (see note for full description)", + "formulaCode": "PERCENTAGE", + "formulaName": "(RateA*Price)", + "importExportFlag": 2, + "countryGroupImportCode": "TH", + "countryGroupImportName": "THAILAND", + "countryGroupExportCode": "ALL", + "countryGroupExportName": "ALL COUNTRIES", + "currencyCode": "THB", + "taxRate": "25.00%", + "taxRateAOperator": "+", + "taxRateA": 0.25, + "taxRateAUnit": "Unit A", + "taxRateAUnitAmount": 100.0, + "taxRateBOperator": "-", + "taxRateB": 0.1, + "taxRateBUnit": "Unit B", + "taxRateBUnitAmount": 50.0, + "taxRateCOperator": "*", + "taxRateC": 0.2, + "taxRateCUnit": "Unit C", + "taxRateCUnitAmount": 0.0, + "noteCulture": "eng", + "note": "Full Description : Excise Duty: EDI Code: 0601040200; Category Codes: 06.01: Passenger car: (4) Passenger cars in accordance with the rules, procedures and conditions prescribed by the Director-General made form pick-up truck or chassis with windshield of pick-up truck or modified from pick-up truck(a) Manufactured or modified by an industrial operator who has the qualifications as prescribed by the Director-General: (b) Modified by the modifier under Section 4 which is taxed under Section 29", + "applyCountryGroupCode": "GROUP5,GROUP6", + "notApplyCountryGroupCode": "GROUP7,GROUP8", + "restrictedCode": "RESTRICT123", + "additionalRestrictedCode": "ADDRESTRICT123", + "restrictedCompanyName": "Restricted Company Name", + "restrictedGoodsName": "Restricted Goods Name", + "restrictedCompanyAddress": "123 Example St.", + "restrictedCompanyCountryCode": "US", + "restrictedCompanyCountryName": "United States", + "restrictedCompanyCountryProvinceCode": "CA", + "minimumTaxRate": "5%", + "maximumTaxRate": "20%", + "nationalFlag": "Y" + }, + { + "id": 1026, + "createTime": "2025-08-19 17:08:02", + "updateTime": "2025-08-19 17:08:02", + "createUserCode": "system", + "createUserName": "system", + "updateUserCode": "system", + "updateUserName": "system", + "guanHengId": "fd53a79671ba20250820", + "tariffId": "fd53a79671ba20250820", + "countryCode": "TH", + "dataVersion": 2025001, + "taxRateId": "0102aabd-8099-41be-b803-7bc159529c44", + "effectiveDate": "2022-06-09 12:00:00", + "expirationDate": "2100-01-01 00:00:00", + "taxRateTypeName": "EXCISE", + "taxRateCategoryName": "Other Import Charges", + "taxRateTypeDetailCode": "THEX136", + "taxRateTypeDetailName": "Excise Duty: EDI Code: 0601040200; Category Codes: 06.01: Passenger car: (4) Passenger cars (see note for full description)", + "formulaCode": "PERCENTAGE", + "formulaName": "(RateA*Price)", + "importExportFlag": 2, + "countryGroupImportCode": "TH", + "countryGroupImportName": "THAILAND", + "countryGroupExportCode": "ALL", + "countryGroupExportName": "ALL COUNTRIES", + "currencyCode": "THB", + "taxRate": "25.00%", + "taxRateAOperator": "+", + "taxRateA": 0.25, + "taxRateAUnit": "Unit A", + "taxRateAUnitAmount": 100.0, + "taxRateBOperator": "-", + "taxRateB": 0.5, + "taxRateBUnit": "Unit B", + "taxRateBUnitAmount": 50.0, + "taxRateCOperator": "*", + "taxRateC": 0.9, + "taxRateCUnit": "Unit C", + "taxRateCUnitAmount": 0.0, + "noteCulture": "eng", + "applyCountryGroupCode": "GROUP5,GROUP6", + "notApplyCountryGroupCode": "GROUP7,GROUP8", + "restrictedCode": "RESTRICT123", + "additionalRestrictedCode": "ADDRESTRICT123", + "restrictedCompanyName": "Restricted Company Name", + "restrictedGoodsName": "Restricted Goods Name", + "restrictedCompanyAddress": "123 Example St.", + "restrictedCompanyCountryCode": "US", + "restrictedCompanyCountryName": "United States", + "restrictedCompanyCountryProvinceCode": "CA", + "minimumTaxRate": "5%", + "maximumTaxRate": "20%", + "nationalFlag": "Y" + }, + { + "id": 1027, + "createTime": "2025-08-19 17:08:02", + "updateTime": "2025-08-19 17:08:02", + "createUserCode": "system", + "createUserName": "system", + "updateUserCode": "system", + "updateUserName": "system", + "guanHengId": "fd53a79671ba20250820", + "tariffId": "fd53a79671ba20250820", + "countryCode": "TH", + "dataVersion": 2025001, + "taxRateId": "0102aabd-8099-41be-b803-7bc159529c44", + "effectiveDate": "2022-06-09 12:00:00", + "expirationDate": "2100-01-01 00:00:00", + "taxRateTypeName": "EXCISE", + "taxRateCategoryName": "Other Import Charges", + "taxRateTypeDetailCode": "THEX136", + "taxRateTypeDetailName": "Excise Duty: EDI Code: 0601040200; Category Codes: 06.01: Passenger car: (4) Passenger cars (see note for full description)", + "formulaCode": "PERCENTAGE", + "formulaName": "(RateA*Price)", + "importExportFlag": 2, + "countryGroupImportCode": "TH", + "countryGroupImportName": "THAILAND", + "countryGroupExportCode": "ALL", + "countryGroupExportName": "ALL COUNTRIES", + "currencyCode": "THB", + "taxRate": "25.00%", + "taxRateAOperator": "+", + "taxRateA": 0.25, + "taxRateAUnit": "Unit A", + "taxRateAUnitAmount": 100.0, + "taxRateBOperator": "-", + "taxRateB": 0.5, + "taxRateBUnit": "Unit B", + "taxRateBUnitAmount": 50.0, + "taxRateCOperator": "*", + "taxRateC": 0.9, + "taxRateCUnit": "Unit C", + "taxRateCUnitAmount": 0.0, + "noteCulture": "eng", + "applyCountryGroupCode": "GROUP5,GROUP6", + "notApplyCountryGroupCode": "GROUP7,GROUP8", + "restrictedCode": "RESTRICT123", + "additionalRestrictedCode": "ADDRESTRICT123", + "restrictedCompanyName": "Restricted Company Name", + "restrictedGoodsName": "Restricted Goods Name", + "restrictedCompanyAddress": "123 Example St.", + "restrictedCompanyCountryCode": "US", + "restrictedCompanyCountryName": "United States", + "restrictedCompanyCountryProvinceCode": "CA", + "minimumTaxRate": "5%", + "maximumTaxRate": "20%" + }, + { + "id": 1030, + "createTime": "2025-08-19 17:47:02", + "updateTime": "2025-08-19 17:47:02", + "createUserCode": "system", + "createUserName": "system", + "updateUserCode": "system", + "updateUserName": "system", + "guanHengId": "fd53a79671ba20250822", + "tariffId": "fd53a79671ba20250822", + "countryCode": "TH", + "dataVersion": 2025002, + "taxRateId": "0102aabd-8099-41be-b803-7bc159529c44", + "effectiveDate": "2022-06-09 12:00:00", + "expirationDate": "2100-01-01 00:00:00", + "taxRateTypeName": "EXCISE", + "taxRateCategoryName": "Other Import Charges", + "taxRateTypeDetailCode": "THEX136", + "taxRateTypeDetailName": "Excise Duty: EDI Code: 0601040200; Category Codes: 06.01: Passenger car: (4) Passenger cars (see note for full description)", + "formulaCode": "PERCENTAGE", + "formulaName": "(RateA*Price)", + "importExportFlag": 2, + "countryGroupImportCode": "TH", + "countryGroupImportName": "THAILAND", + "countryGroupExportCode": "ALL", + "countryGroupExportName": "ALL COUNTRIES", + "currencyCode": "THB", + "taxRate": "25.00%", + "taxRateAOperator": "+", + "taxRateA": 0.25, + "taxRateAUnit": "Unit A", + "taxRateAUnitAmount": 100.0, + "taxRateBOperator": "-", + "taxRateB": 0.5, + "taxRateBUnit": "Unit B", + "taxRateBUnitAmount": 50.0, + "taxRateCOperator": "*", + "taxRateC": 0.9, + "taxRateCUnit": "Unit C", + "taxRateCUnitAmount": 0.0, + "noteCulture": "eng", + "applyCountryGroupCode": "GROUP5,GROUP6", + "notApplyCountryGroupCode": "GROUP7,GROUP8", + "restrictedCode": "RESTRICT123", + "additionalRestrictedCode": "ADDRESTRICT123", + "restrictedCompanyName": "Restricted Company Name", + "restrictedGoodsName": "Restricted Goods Name", + "restrictedCompanyAddress": "123 Example St.", + "restrictedCompanyCountryCode": "US", + "restrictedCompanyCountryName": "United States", + "restrictedCompanyCountryProvinceCode": "CA", + "minimumTaxRate": "5%", + "maximumTaxRate": "20%", + "nationalFlag": "Y" + }, + { + "id": 1031, + "createTime": "2025-08-19 17:47:02", + "updateTime": "2025-08-19 17:47:02", + "createUserCode": "system", + "createUserName": "system", + "updateUserCode": "system", + "updateUserName": "system", + "guanHengId": "fd53a79671ba20250822", + "tariffId": "fd53a79671ba20250822", + "countryCode": "TH", + "dataVersion": 2025002, + "taxRateId": "0102aabd-8099-41be-b803-7bc159529c44", + "importExportFlag": 2, + "nationalFlag": "Y" + } + ], + "regulationList": [ + { + "id": 5, + "createTime": "2025-08-16 13:32:45", + "updateTime": "2025-08-16 17:38:38", + "createUserCode": "system", + "createUserName": "system", + "updateUserCode": "system", + "updateUserName": "system", + "guanHengId": "decade_liang_001", + "tariffId": "3243243242", + "countryCode": "TH", + "dataVersion": 20250816001, + "exportFlag": "Y", + "importFlag": "N", + "controlTypeCode": "TCLDSS", + "controlTypeName": "sdfsd sdfsd", + "controlDescription": "3424324324 32432432", + "cultureCode": "tha", + "agencyCode": "THESJDFF", + "agencyName": "Thailand", + "effectivityDate": "2025-07-31 00:00:00", + "expirationDate": "2026-07-31 00:00:00", + "applyCountryGroupCode": "TH,MY", + "notApplyCountryGroupCode": "US,CN", + "nationalFlag": "Y" + }, + { + "id": 12, + "createTime": "2025-08-18 14:55:17", + "updateTime": "2025-08-18 14:55:17", + "createUserCode": "system", + "createUserName": "system", + "updateUserCode": "system", + "updateUserName": "system", + "guanHengId": "fd53a796-71ba-4435-a1c9-693f67c97a12", + "tariffId": "1", + "countryCode": "TH", + "dataVersion": 20250708002, + "exportFlag": "Y", + "importFlag": "N", + "controlTypeCode": "THEX1019150107", + "controlTypeName": "COUNTRYEXPORT", + "controlDescription": "PROHIBITED GOODS: Pornographic materials", + "cultureCode": "eng", + "agencyCode": "THTCD", + "agencyName": "The Customs Department", + "effectivityDate": "2014-12-01 12:00:00", + "expirationDate": "2100-01-01 00:00:00", + "countrySpecificEffectivityDate": "2025-07-31 00:00:00", + "countrySpecificExpirationDate": "2026-07-31 00:00:00", + "applyCountryGroupCode": "GROUP1,GROUP2", + "notApplyCountryGroupCode": "GROUP3,GROUP4", + "nationalFlag": "Y" + }, + { + "id": 3138, + "createTime": "2025-08-19 16:37:48", + "updateTime": "2025-08-19 16:37:48", + "createUserCode": "system", + "createUserName": "system", + "updateUserCode": "system", + "updateUserName": "system", + "guanHengId": "decade_liang_002", + "tariffId": "", + "countryCode": "TH", + "dataVersion": 20250816001, + "exportFlag": "", + "importFlag": "", + "controlTypeCode": "CTRL123", + "controlTypeName": "", + "controlDescription": "", + "cultureCode": "tha", + "agencyCode": "", + "agencyName": "", + "applyCountryGroupCode": "", + "notApplyCountryGroupCode": "", + "nationalFlag": "" + }, + { + "id": 3668, + "createTime": "2025-08-20 10:17:10", + "updateTime": "2025-08-20 10:17:10", + "createUserCode": "system", + "createUserName": "system", + "updateUserCode": "system", + "updateUserName": "system", + "guanHengId": "d8020f714b6bce60256607b082087859", + "countryCode": "TH", + "dataVersion": 20250708002, + "exportFlag": "Y", + "importFlag": "N", + "controlTypeCode": "THEXPHZDIW48", + "controlTypeName": "COUNTRYEXPORT", + "controlDescription": "ชื่อสินค้า: สารที่เป็นอันตรายต่อสิ่งแวดล้อม(Environmentally hazardous substance) // CAS No.: N/A // ชนิดของวัตถุอันตราย: 1 // เงื่อนไข: เฉพาะที่เป็นสารเดี่ยวหรือสารผสมที่ยังไม่มีหน่วยงานรับผิดชอบในการควบคุมกำกับดูแลการผลิตหรือการนำเข้า ทั้งนี้ ให้เป็นไปตามหลักเกณฑ์วิธีการที่กระทรวงอุตสาหกรรมประกาศกำหนด // หน่วยงานควบคุม: กรมโรงงานอุตสาหกรรม // การควบคุม: วัตถุอันตรายชนิดที่ 1 ได้แก่วัตถุอันตรายที่การผลิต การนําเข้า การส่งออก หรือการมีไว้ในครอบครองต้องปฏิบัติตามหลักเกณฑ์และวิธีการที่กําหนด // การยกเว้น: - EXEMPT2: ไม่ต้องมีใบอนุญาต/ใบรับรอง เนื่องจากวัตถุประสงค์การนำไปใช้งานไม่ต้องขอใบอนุญาต/ใบรับรอง เช่น เป็นของตัวอย่าง หรือนำเข้าเพื่อการศึกษา เป็นต้น; EXEMPT3: ไม่ต้องมีใบอนุญาต/ใบรับรอง เนื่องจากมีกฎหมายอื่นควบคุมและได้รับอนุญาตจากหน่วยงานที่ควบคุมแล้ว; EXEMPT5: ไม่ต้องมีใบอนุญาต/ใบรับรอง เนื่องจากปริมาณไม่ถึงเกณฑ์ที่ต้องขอใบอนุญาต/ใบรับรอง เช่น น้ำหนัก จำนวน ความเข้มข้น เป็นต้น; EXEMPT88: ไม่ต้องมีใบอนุญาต/ใบรับรอง เนื่องจากได้ยื่นใบอนุญาตหรือใบรับรองนำเข้าในเขตปลอดอากรในครั้งแรกแล้ว; EXEMPT99: ไม่ต้องมีใบอนุญาต/ใบรับรอง เนื่องจากกรณีอื่นๆ // เอกสาร: ฐานข้อมูลสินค้าต้องห้าม-ต้องกำกัด พร้อมพิกัดรหัสสถิติปี 2017; ฐานวัตถุอันตราย", + "cultureCode": "tha", + "agencyCode": "THDIW", + "agencyName": "กรมโรงงานอุตสาหกรรม", + "effectivityDate": "2019-11-28 12:00:00", + "expirationDate": "2100-01-01 00:00:00", + "countrySpecificEffectivityDate": "1900-01-01 12:00:00", + "countrySpecificExpirationDate": "2100-01-01 00:00:00", + "nationalFlag": "Y" + }, + { + "id": 3669, + "createTime": "2025-08-20 10:17:10", + "updateTime": "2025-08-20 10:17:10", + "createUserCode": "system", + "createUserName": "system", + "updateUserCode": "system", + "updateUserName": "system", + "guanHengId": "d8020f714b6bce60256607b082087859", + "countryCode": "TH", + "dataVersion": 20250708002, + "exportFlag": "Y", + "importFlag": "N", + "controlTypeCode": "THEXPHZDIW50", + "controlTypeName": "COUNTRYEXPORT", + "controlDescription": "ชื่อสินค้า: สารออกซิไดซ์ (Oxidizing agent) หรือสารเปอร์ออกไซด์ (Peroxide) // CAS No.: N/A // ชนิดของวัตถุอันตราย: 1 // เงื่อนไข: เฉพาะที่เป็นสารเดี่ยวหรือสารผสมที่ยังไม่มีหน่วยงานรับผิดชอบในการควบคุมกำกับดูแลการผลิตหรือการนำเข้า ทั้งนี้ ให้เป็นไปตามหลักเกณฑ์วิธีการที่กระทรวงอุตสาหกรรมประกาศกำหนด // หน่วยงานควบคุม: กรมโรงงานอุตสาหกรรม // การควบคุม: วัตถุอันตรายชนิดที่ 1 ได้แก่วัตถุอันตรายที่การผลิต การนําเข้า การส่งออก หรือการมีไว้ในครอบครองต้องปฏิบัติตามหลักเกณฑ์และวิธีการที่กําหนด // การยกเว้น: - EXEMPT2: ไม่ต้องมีใบอนุญาต/ใบรับรอง เนื่องจากวัตถุประสงค์การนำไปใช้งานไม่ต้องขอใบอนุญาต/ใบรับรอง เช่น เป็นของตัวอย่าง หรือนำเข้าเพื่อการศึกษา เป็นต้น; EXEMPT3: ไม่ต้องมีใบอนุญาต/ใบรับรอง เนื่องจากมีกฎหมายอื่นควบคุมและได้รับอนุญาตจากหน่วยงานที่ควบคุมแล้ว; EXEMPT5: ไม่ต้องมีใบอนุญาต/ใบรับรอง เนื่องจากปริมาณไม่ถึงเกณฑ์ที่ต้องขอใบอนุญาต/ใบรับรอง เช่น น้ำหนัก จำนวน ความเข้มข้น เป็นต้น; EXEMPT88: ไม่ต้องมีใบอนุญาต/ใบรับรอง เนื่องจากได้ยื่นใบอนุญาตหรือใบรับรองนำเข้าในเขตปลอดอากรในครั้งแรกแล้ว; EXEMPT99: ไม่ต้องมีใบอนุญาต/ใบรับรอง เนื่องจากกรณีอื่นๆ // เอกสาร: ฐานข้อมูลสินค้าต้องห้าม-ต้องกำกัด พร้อมพิกัดรหัสสถิติปี 2017; ฐานวัตถุอันตราย", + "cultureCode": "tha", + "agencyCode": "THDIW", + "agencyName": "กรมโรงงานอุตสาหกรรม", + "effectivityDate": "2019-11-28 12:00:00", + "expirationDate": "2100-01-01 00:00:00", + "countrySpecificEffectivityDate": "1900-01-01 12:00:00", + "countrySpecificExpirationDate": "2100-01-01 00:00:00", + "nationalFlag": "Y" + }, + { + "id": 3670, + "createTime": "2025-08-20 10:17:10", + "updateTime": "2025-08-20 10:17:10", + "createUserCode": "system", + "createUserName": "system", + "updateUserCode": "system", + "updateUserName": "system", + "guanHengId": "d8020f714b6bce60256607b082087859", + "countryCode": "TH", + "dataVersion": 20250708002, + "exportFlag": "Y", + "importFlag": "N", + "controlTypeCode": "THEXPHZDIW52", + "controlTypeName": "COUNTRYEXPORT", + "controlDescription": "ชื่อสินค้า: สารที่ทำให้เกิดการเปลี่ยนแปลงทางพันธุกรรม (Mutagen) // CAS No.: N/A // ชนิดของวัตถุอันตราย: 1 // เงื่อนไข: เฉพาะที่เป็นสารเดี่ยวหรือสารผสมที่ยังไม่มีหน่วยงานรับผิดชอบในการควบคุมกำกับดูแลการผลิตหรือการนำเข้า ทั้งนี้ ให้เป็นไปตามหลักเกณฑ์วิธีการที่กระทรวงอุตสาหกรรมประกาศกำหนด // หน่วยงานควบคุม: กรมโรงงานอุตสาหกรรม // การควบคุม: วัตถุอันตรายชนิดที่ 1 ได้แก่วัตถุอันตรายที่การผลิต การนําเข้า การส่งออก หรือการมีไว้ในครอบครองต้องปฏิบัติตามหลักเกณฑ์และวิธีการที่กําหนด // การยกเว้น: - EXEMPT2: ไม่ต้องมีใบอนุญาต/ใบรับรอง เนื่องจากวัตถุประสงค์การนำไปใช้งานไม่ต้องขอใบอนุญาต/ใบรับรอง เช่น เป็นของตัวอย่าง หรือนำเข้าเพื่อการศึกษา เป็นต้น; EXEMPT3: ไม่ต้องมีใบอนุญาต/ใบรับรอง เนื่องจากมีกฎหมายอื่นควบคุมและได้รับอนุญาตจากหน่วยงานที่ควบคุมแล้ว; EXEMPT5: ไม่ต้องมีใบอนุญาต/ใบรับรอง เนื่องจากปริมาณไม่ถึงเกณฑ์ที่ต้องขอใบอนุญาต/ใบรับรอง เช่น น้ำหนัก จำนวน ความเข้มข้น เป็นต้น; EXEMPT88: ไม่ต้องมีใบอนุญาต/ใบรับรอง เนื่องจากได้ยื่นใบอนุญาตหรือใบรับรองนำเข้าในเขตปลอดอากรในครั้งแรกแล้ว; EXEMPT99: ไม่ต้องมีใบอนุญาต/ใบรับรอง เนื่องจากกรณีอื่นๆ // เอกสาร: ฐานข้อมูลสินค้าต้องห้าม-ต้องกำกัด พร้อมพิกัดรหัสสถิติปี 2017; ฐานวัตถุอันตราย", + "cultureCode": "tha", + "agencyCode": "THDIW", + "agencyName": "กรมโรงงานอุตสาหกรรม", + "effectivityDate": "2019-11-28 12:00:00", + "expirationDate": "2100-01-01 00:00:00", + "countrySpecificEffectivityDate": "1900-01-01 12:00:00", + "countrySpecificExpirationDate": "2100-01-01 00:00:00", + "nationalFlag": "Y" + } + ], + "additionalCodeList": [] + }, + "msg": "Success" +} diff --git a/src/views/merger/mergeredConfig/productClassify/modules/otherCountry.vue b/src/views/merger/mergeredConfig/productClassify/modules/otherCountry.vue new file mode 100644 index 0000000..9b00114 --- /dev/null +++ b/src/views/merger/mergeredConfig/productClassify/modules/otherCountry.vue @@ -0,0 +1,163 @@ + + + + diff --git a/src/views/merger/mergeredConfig/productClassify/modules/workFlowList.vue b/src/views/merger/mergeredConfig/productClassify/modules/workFlowList.vue new file mode 100644 index 0000000..d04611e --- /dev/null +++ b/src/views/merger/mergeredConfig/productClassify/modules/workFlowList.vue @@ -0,0 +1,118 @@ + + + diff --git a/src/views/merger/mergeredConfig/queryClassify/index.vue b/src/views/merger/mergeredConfig/queryClassify/index.vue new file mode 100644 index 0000000..6fd1bf2 --- /dev/null +++ b/src/views/merger/mergeredConfig/queryClassify/index.vue @@ -0,0 +1,22 @@ + diff --git a/src/views/merger/mergeredConfig/reviewClassify/index.vue b/src/views/merger/mergeredConfig/reviewClassify/index.vue new file mode 100644 index 0000000..15762b8 --- /dev/null +++ b/src/views/merger/mergeredConfig/reviewClassify/index.vue @@ -0,0 +1,22 @@ + diff --git a/src/views/modules/message/SysMessageList.vue b/src/views/modules/message/SysMessageList.vue new file mode 100644 index 0000000..435d60c --- /dev/null +++ b/src/views/modules/message/SysMessageList.vue @@ -0,0 +1,241 @@ + + + + + diff --git a/src/views/modules/message/SysMessageTemplateList.vue b/src/views/modules/message/SysMessageTemplateList.vue new file mode 100644 index 0000000..3934868 --- /dev/null +++ b/src/views/modules/message/SysMessageTemplateList.vue @@ -0,0 +1,255 @@ + + + + + diff --git a/src/views/modules/message/modules/SysMessageModal.vue b/src/views/modules/message/modules/SysMessageModal.vue new file mode 100644 index 0000000..70b2d0c --- /dev/null +++ b/src/views/modules/message/modules/SysMessageModal.vue @@ -0,0 +1,234 @@ + + + diff --git a/src/views/modules/message/modules/SysMessageTemplateModal.vue b/src/views/modules/message/modules/SysMessageTemplateModal.vue new file mode 100644 index 0000000..d670c53 --- /dev/null +++ b/src/views/modules/message/modules/SysMessageTemplateModal.vue @@ -0,0 +1,250 @@ + + + diff --git a/src/views/modules/message/modules/SysMessageTestModal.vue b/src/views/modules/message/modules/SysMessageTestModal.vue new file mode 100644 index 0000000..6a7e47c --- /dev/null +++ b/src/views/modules/message/modules/SysMessageTestModal.vue @@ -0,0 +1,140 @@ + + + diff --git a/src/views/modules/monitor/DiskMonitoring.vue b/src/views/modules/monitor/DiskMonitoring.vue new file mode 100644 index 0000000..9e0f433 --- /dev/null +++ b/src/views/modules/monitor/DiskMonitoring.vue @@ -0,0 +1,52 @@ + + + diff --git a/src/views/modules/monitor/HttpTrace.vue b/src/views/modules/monitor/HttpTrace.vue new file mode 100644 index 0000000..716e636 --- /dev/null +++ b/src/views/modules/monitor/HttpTrace.vue @@ -0,0 +1,237 @@ + + + diff --git a/src/views/modules/monitor/JvmInfo.vue b/src/views/modules/monitor/JvmInfo.vue new file mode 100644 index 0000000..7742f35 --- /dev/null +++ b/src/views/modules/monitor/JvmInfo.vue @@ -0,0 +1,183 @@ + + diff --git a/src/views/modules/monitor/RedisInfo.vue b/src/views/modules/monitor/RedisInfo.vue new file mode 100644 index 0000000..6118226 --- /dev/null +++ b/src/views/modules/monitor/RedisInfo.vue @@ -0,0 +1,198 @@ + + diff --git a/src/views/modules/monitor/RedisTerminal.vue b/src/views/modules/monitor/RedisTerminal.vue new file mode 100644 index 0000000..9187c1e --- /dev/null +++ b/src/views/modules/monitor/RedisTerminal.vue @@ -0,0 +1,10 @@ + + diff --git a/src/views/modules/monitor/SystemInfo.vue b/src/views/modules/monitor/SystemInfo.vue new file mode 100644 index 0000000..2f154bd --- /dev/null +++ b/src/views/modules/monitor/SystemInfo.vue @@ -0,0 +1,154 @@ + + diff --git a/src/views/modules/monitor/TomcatInfo.vue b/src/views/modules/monitor/TomcatInfo.vue new file mode 100644 index 0000000..b44e44f --- /dev/null +++ b/src/views/modules/monitor/TomcatInfo.vue @@ -0,0 +1,167 @@ + + diff --git a/src/views/modules/oss/OSSFileList.vue b/src/views/modules/oss/OSSFileList.vue new file mode 100644 index 0000000..8f2bca8 --- /dev/null +++ b/src/views/modules/oss/OSSFileList.vue @@ -0,0 +1,191 @@ + + + + + diff --git a/src/views/partner/PartnerLiaison/PartnerLiaisonList.vue b/src/views/partner/PartnerLiaison/PartnerLiaisonList.vue new file mode 100644 index 0000000..d776477 --- /dev/null +++ b/src/views/partner/PartnerLiaison/PartnerLiaisonList.vue @@ -0,0 +1,298 @@ + + + diff --git a/src/views/partner/PartnerLiaison/modules/PartnerLiaisonForm.vue b/src/views/partner/PartnerLiaison/modules/PartnerLiaisonForm.vue new file mode 100644 index 0000000..2420ad2 --- /dev/null +++ b/src/views/partner/PartnerLiaison/modules/PartnerLiaisonForm.vue @@ -0,0 +1,299 @@ + + + diff --git a/src/views/partner/PartnerLiaison/modules/PartnerLiaisonModal.vue b/src/views/partner/PartnerLiaison/modules/PartnerLiaisonModal.vue new file mode 100644 index 0000000..b951efe --- /dev/null +++ b/src/views/partner/PartnerLiaison/modules/PartnerLiaisonModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/partner/partnerInfo/PartnerInfosList.vue b/src/views/partner/partnerInfo/PartnerInfosList.vue new file mode 100644 index 0000000..5fb96cb --- /dev/null +++ b/src/views/partner/partnerInfo/PartnerInfosList.vue @@ -0,0 +1,357 @@ + + + + diff --git a/src/views/partner/partnerInfo/modules/partnerDocumentForm.vue b/src/views/partner/partnerInfo/modules/partnerDocumentForm.vue new file mode 100644 index 0000000..9b8b593 --- /dev/null +++ b/src/views/partner/partnerInfo/modules/partnerDocumentForm.vue @@ -0,0 +1,190 @@ + + + + diff --git a/src/views/partner/partnerInfo/modules/partnerDocumentList.vue b/src/views/partner/partnerInfo/modules/partnerDocumentList.vue new file mode 100644 index 0000000..f6db186 --- /dev/null +++ b/src/views/partner/partnerInfo/modules/partnerDocumentList.vue @@ -0,0 +1,222 @@ + + + diff --git a/src/views/partner/partnerInfo/modules/partnerInfoHead.vue b/src/views/partner/partnerInfo/modules/partnerInfoHead.vue new file mode 100644 index 0000000..d19e7ef --- /dev/null +++ b/src/views/partner/partnerInfo/modules/partnerInfoHead.vue @@ -0,0 +1,534 @@ + + + \ No newline at end of file diff --git a/src/views/partner/partnerInfo/modules/partnerInfoLiaisonForm.vue b/src/views/partner/partnerInfo/modules/partnerInfoLiaisonForm.vue new file mode 100644 index 0000000..5b835bb --- /dev/null +++ b/src/views/partner/partnerInfo/modules/partnerInfoLiaisonForm.vue @@ -0,0 +1,213 @@ + + + diff --git a/src/views/partner/partnerInfo/modules/partnerInfoTabsModal.vue b/src/views/partner/partnerInfo/modules/partnerInfoTabsModal.vue new file mode 100644 index 0000000..a68d121 --- /dev/null +++ b/src/views/partner/partnerInfo/modules/partnerInfoTabsModal.vue @@ -0,0 +1,98 @@ + + + + diff --git a/src/views/pdf/PdfExportTaskList.vue b/src/views/pdf/PdfExportTaskList.vue new file mode 100644 index 0000000..ece81a2 --- /dev/null +++ b/src/views/pdf/PdfExportTaskList.vue @@ -0,0 +1,219 @@ + + + + diff --git a/src/views/pdf/PdfExportTaskModal.vue b/src/views/pdf/PdfExportTaskModal.vue new file mode 100644 index 0000000..bb3dc6c --- /dev/null +++ b/src/views/pdf/PdfExportTaskModal.vue @@ -0,0 +1,75 @@ + + + diff --git a/src/views/policy/BaseBdGovManagementProcessList.vue b/src/views/policy/BaseBdGovManagementProcessList.vue new file mode 100644 index 0000000..d0b218c --- /dev/null +++ b/src/views/policy/BaseBdGovManagementProcessList.vue @@ -0,0 +1,218 @@ + + + + diff --git a/src/views/policy/BaseBdGovPolicyList.vue b/src/views/policy/BaseBdGovPolicyList.vue new file mode 100644 index 0000000..4728353 --- /dev/null +++ b/src/views/policy/BaseBdGovPolicyList.vue @@ -0,0 +1,385 @@ + + + + diff --git a/src/views/policy/modules/BaseBdGovManagementProcessForm.vue b/src/views/policy/modules/BaseBdGovManagementProcessForm.vue new file mode 100644 index 0000000..102a25e --- /dev/null +++ b/src/views/policy/modules/BaseBdGovManagementProcessForm.vue @@ -0,0 +1,243 @@ + + + diff --git a/src/views/policy/modules/BaseBdGovManagementProcessModal.vue b/src/views/policy/modules/BaseBdGovManagementProcessModal.vue new file mode 100644 index 0000000..495cb0c --- /dev/null +++ b/src/views/policy/modules/BaseBdGovManagementProcessModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/policy/modules/BaseBdGovPolicyForm.vue b/src/views/policy/modules/BaseBdGovPolicyForm.vue new file mode 100644 index 0000000..e9fb739 --- /dev/null +++ b/src/views/policy/modules/BaseBdGovPolicyForm.vue @@ -0,0 +1,255 @@ + + + diff --git a/src/views/policy/modules/BaseBdGovPolicyModal.vue b/src/views/policy/modules/BaseBdGovPolicyModal.vue new file mode 100644 index 0000000..0bf2ac2 --- /dev/null +++ b/src/views/policy/modules/BaseBdGovPolicyModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/policy/modules/BaseBdPolicyEnclosureForm.vue b/src/views/policy/modules/BaseBdPolicyEnclosureForm.vue new file mode 100644 index 0000000..a017738 --- /dev/null +++ b/src/views/policy/modules/BaseBdPolicyEnclosureForm.vue @@ -0,0 +1,322 @@ + + + + + diff --git a/src/views/policy/modules/BaseBdPolicySubTableForm.vue b/src/views/policy/modules/BaseBdPolicySubTableForm.vue new file mode 100644 index 0000000..ee5eff3 --- /dev/null +++ b/src/views/policy/modules/BaseBdPolicySubTableForm.vue @@ -0,0 +1,165 @@ + + + diff --git a/src/views/policy/modules/BaseBdPolicySubTableList.vue b/src/views/policy/modules/BaseBdPolicySubTableList.vue new file mode 100644 index 0000000..78e8d2b --- /dev/null +++ b/src/views/policy/modules/BaseBdPolicySubTableList.vue @@ -0,0 +1,196 @@ + + + + diff --git a/src/views/policy/modules/BaseBdPolicySubTableModal.vue b/src/views/policy/modules/BaseBdPolicySubTableModal.vue new file mode 100644 index 0000000..5879359 --- /dev/null +++ b/src/views/policy/modules/BaseBdPolicySubTableModal.vue @@ -0,0 +1,66 @@ + + + diff --git a/src/views/policy/modules/BaseBdPolicyTabsModal.vue b/src/views/policy/modules/BaseBdPolicyTabsModal.vue new file mode 100644 index 0000000..2964922 --- /dev/null +++ b/src/views/policy/modules/BaseBdPolicyTabsModal.vue @@ -0,0 +1,146 @@ + + + + + diff --git a/src/views/record/ems/emsComponent/EmsDownloadModel.vue b/src/views/record/ems/emsComponent/EmsDownloadModel.vue new file mode 100644 index 0000000..db97702 --- /dev/null +++ b/src/views/record/ems/emsComponent/EmsDownloadModel.vue @@ -0,0 +1,116 @@ + + diff --git a/src/views/record/ems/emsComponent/ShowUpdateInfoModel.vue b/src/views/record/ems/emsComponent/ShowUpdateInfoModel.vue new file mode 100644 index 0000000..8dfde90 --- /dev/null +++ b/src/views/record/ems/emsComponent/ShowUpdateInfoModel.vue @@ -0,0 +1,105 @@ + + diff --git a/src/views/record/ems/emsComponent/emsInfosModel/ChangeModel.vue b/src/views/record/ems/emsComponent/emsInfosModel/ChangeModel.vue new file mode 100644 index 0000000..f48a8b3 --- /dev/null +++ b/src/views/record/ems/emsComponent/emsInfosModel/ChangeModel.vue @@ -0,0 +1,122 @@ + + + diff --git a/src/views/record/ems/emsComponent/emsInfosModel/CodeTsWarningList.vue b/src/views/record/ems/emsComponent/emsInfosModel/CodeTsWarningList.vue new file mode 100644 index 0000000..ec72a17 --- /dev/null +++ b/src/views/record/ems/emsComponent/emsInfosModel/CodeTsWarningList.vue @@ -0,0 +1,321 @@ + + + diff --git a/src/views/record/ems/emsComponent/emsInfosModel/EmsHead.vue b/src/views/record/ems/emsComponent/emsInfosModel/EmsHead.vue new file mode 100644 index 0000000..e0de8d5 --- /dev/null +++ b/src/views/record/ems/emsComponent/emsInfosModel/EmsHead.vue @@ -0,0 +1,1480 @@ + + + diff --git a/src/views/record/ems/emsComponent/emsInfosModel/EmsInfosTabs.vue b/src/views/record/ems/emsComponent/emsInfosModel/EmsInfosTabs.vue new file mode 100644 index 0000000..9893f34 --- /dev/null +++ b/src/views/record/ems/emsComponent/emsInfosModel/EmsInfosTabs.vue @@ -0,0 +1,156 @@ + + diff --git a/src/views/record/ems/emsComponent/emsInfosModel/EmsInfosTabsModel.vue b/src/views/record/ems/emsComponent/emsInfosModel/EmsInfosTabsModel.vue new file mode 100644 index 0000000..6f71c2a --- /dev/null +++ b/src/views/record/ems/emsComponent/emsInfosModel/EmsInfosTabsModel.vue @@ -0,0 +1,83 @@ + + + diff --git a/src/views/record/ems/emsComponent/emsInfosModel/EmsMaterialsList.vue b/src/views/record/ems/emsComponent/emsInfosModel/EmsMaterialsList.vue new file mode 100644 index 0000000..67ea447 --- /dev/null +++ b/src/views/record/ems/emsComponent/emsInfosModel/EmsMaterialsList.vue @@ -0,0 +1,778 @@ + + + diff --git a/src/views/record/ems/emsComponent/emsInfosModel/FlowLogList.vue b/src/views/record/ems/emsComponent/emsInfosModel/FlowLogList.vue new file mode 100644 index 0000000..156af14 --- /dev/null +++ b/src/views/record/ems/emsComponent/emsInfosModel/FlowLogList.vue @@ -0,0 +1,90 @@ + + + diff --git a/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/ElementsTab.vue b/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/ElementsTab.vue new file mode 100644 index 0000000..efa3357 --- /dev/null +++ b/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/ElementsTab.vue @@ -0,0 +1,226 @@ + + + diff --git a/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/EmsConsumeCurList.vue b/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/EmsConsumeCurList.vue new file mode 100644 index 0000000..ca5fb27 --- /dev/null +++ b/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/EmsConsumeCurList.vue @@ -0,0 +1,373 @@ + + + diff --git a/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/EmsConsumeCurModel.vue b/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/EmsConsumeCurModel.vue new file mode 100644 index 0000000..c7f8d99 --- /dev/null +++ b/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/EmsConsumeCurModel.vue @@ -0,0 +1,61 @@ + + + diff --git a/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/EmsExtractList.vue b/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/EmsExtractList.vue new file mode 100644 index 0000000..90a5c19 --- /dev/null +++ b/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/EmsExtractList.vue @@ -0,0 +1,219 @@ + + + diff --git a/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/EmsExtractListStopForm.vue b/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/EmsExtractListStopForm.vue new file mode 100644 index 0000000..03808f5 --- /dev/null +++ b/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/EmsExtractListStopForm.vue @@ -0,0 +1,170 @@ + + + + + diff --git a/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/EmsExtractListStopModal.vue b/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/EmsExtractListStopModal.vue new file mode 100644 index 0000000..a3919a3 --- /dev/null +++ b/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/EmsExtractListStopModal.vue @@ -0,0 +1,72 @@ + + + diff --git a/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/EmsGExtractList.vue b/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/EmsGExtractList.vue new file mode 100644 index 0000000..287b302 --- /dev/null +++ b/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/EmsGExtractList.vue @@ -0,0 +1,230 @@ + + + diff --git a/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/EmsGoodsCurList.vue b/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/EmsGoodsCurList.vue new file mode 100644 index 0000000..7a02cfa --- /dev/null +++ b/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/EmsGoodsCurList.vue @@ -0,0 +1,381 @@ + + + diff --git a/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/EmsGoodsCurModel.vue b/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/EmsGoodsCurModel.vue new file mode 100644 index 0000000..ac09a7b --- /dev/null +++ b/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/EmsGoodsCurModel.vue @@ -0,0 +1,61 @@ + + + diff --git a/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/EmsMExtractList.vue b/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/EmsMExtractList.vue new file mode 100644 index 0000000..b10b323 --- /dev/null +++ b/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/EmsMExtractList.vue @@ -0,0 +1,234 @@ + + + diff --git a/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/ExtractModel.vue b/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/ExtractModel.vue new file mode 100644 index 0000000..eec8722 --- /dev/null +++ b/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/ExtractModel.vue @@ -0,0 +1,60 @@ + + + diff --git a/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/GExtractModel.vue b/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/GExtractModel.vue new file mode 100644 index 0000000..2ab1fd4 --- /dev/null +++ b/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/GExtractModel.vue @@ -0,0 +1,60 @@ + + + diff --git a/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/IEForm.vue b/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/IEForm.vue new file mode 100644 index 0000000..ab0a40c --- /dev/null +++ b/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/IEForm.vue @@ -0,0 +1,886 @@ + + + diff --git a/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/IEModel.vue b/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/IEModel.vue new file mode 100644 index 0000000..6a710bd --- /dev/null +++ b/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/IEModel.vue @@ -0,0 +1,70 @@ + + + diff --git a/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/MExtractModel.vue b/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/MExtractModel.vue new file mode 100644 index 0000000..8e52787 --- /dev/null +++ b/src/views/record/ems/emsComponent/emsInfosModel/IEFormComponent/MExtractModel.vue @@ -0,0 +1,57 @@ + + + diff --git a/src/views/record/ems/emsComponent/emsInfosModel/MaterialsListA.vue b/src/views/record/ems/emsComponent/emsInfosModel/MaterialsListA.vue new file mode 100644 index 0000000..d12aed7 --- /dev/null +++ b/src/views/record/ems/emsComponent/emsInfosModel/MaterialsListA.vue @@ -0,0 +1,264 @@ + diff --git a/src/views/record/ems/emsComponent/emsInfosModel/MaterialsListE.vue b/src/views/record/ems/emsComponent/emsInfosModel/MaterialsListE.vue new file mode 100644 index 0000000..cc5e8f6 --- /dev/null +++ b/src/views/record/ems/emsComponent/emsInfosModel/MaterialsListE.vue @@ -0,0 +1,252 @@ + diff --git a/src/views/record/ems/emsComponent/emsInfosModel/MaterialsListI.vue b/src/views/record/ems/emsComponent/emsInfosModel/MaterialsListI.vue new file mode 100644 index 0000000..934c126 --- /dev/null +++ b/src/views/record/ems/emsComponent/emsInfosModel/MaterialsListI.vue @@ -0,0 +1,252 @@ + diff --git a/src/views/record/ems/emsComponent/emsInfosModel/UnitLossComponent/UnitLossForm.vue b/src/views/record/ems/emsComponent/emsInfosModel/UnitLossComponent/UnitLossForm.vue new file mode 100644 index 0000000..7dd361d --- /dev/null +++ b/src/views/record/ems/emsComponent/emsInfosModel/UnitLossComponent/UnitLossForm.vue @@ -0,0 +1,471 @@ + + + diff --git a/src/views/record/ems/emsComponent/emsInfosModel/UnitLossComponent/UnitLossFormModel.vue b/src/views/record/ems/emsComponent/emsInfosModel/UnitLossComponent/UnitLossFormModel.vue new file mode 100644 index 0000000..a67e2c9 --- /dev/null +++ b/src/views/record/ems/emsComponent/emsInfosModel/UnitLossComponent/UnitLossFormModel.vue @@ -0,0 +1,66 @@ + + + diff --git a/src/views/record/ems/emsComponent/emsInfosModel/UnitLossComponent/UnitLossResetStatusModel.vue b/src/views/record/ems/emsComponent/emsInfosModel/UnitLossComponent/UnitLossResetStatusModel.vue new file mode 100644 index 0000000..efda9bd --- /dev/null +++ b/src/views/record/ems/emsComponent/emsInfosModel/UnitLossComponent/UnitLossResetStatusModel.vue @@ -0,0 +1,120 @@ + + + diff --git a/src/views/record/ems/emsComponent/emsInfosModel/UnitLossList.vue b/src/views/record/ems/emsComponent/emsInfosModel/UnitLossList.vue new file mode 100644 index 0000000..d0f8b14 --- /dev/null +++ b/src/views/record/ems/emsComponent/emsInfosModel/UnitLossList.vue @@ -0,0 +1,567 @@ + + + diff --git a/src/views/record/ems/emsComponent/emsInfosModel/WarningList.vue b/src/views/record/ems/emsComponent/emsInfosModel/WarningList.vue new file mode 100644 index 0000000..51ece9f --- /dev/null +++ b/src/views/record/ems/emsComponent/emsInfosModel/WarningList.vue @@ -0,0 +1,184 @@ + + + diff --git a/src/views/record/ems/emsList.vue b/src/views/record/ems/emsList.vue new file mode 100644 index 0000000..f979f6a --- /dev/null +++ b/src/views/record/ems/emsList.vue @@ -0,0 +1,631 @@ + + + + diff --git a/src/views/record/ems/emsListColumnsUrls.js b/src/views/record/ems/emsListColumnsUrls.js new file mode 100644 index 0000000..0dbb0fd --- /dev/null +++ b/src/views/record/ems/emsListColumnsUrls.js @@ -0,0 +1,741 @@ +const columnsEmsCur = [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + customRender: function (t, r, index) { + return parseInt(index) + 1 + }, + }, + { + title: '流程状态', + dataIndex: 'flowStatus', + scopedSlots: { + customRender: 'flowStatus', + }, + width: 80, + ellipsis: true, + sorter: true, + }, + { + title: '申报状态', + dataIndex: 'status', + scopedSlots: { + customRender: 'status', + }, + width: 100, + ellipsis: true, + sorter: true, + }, + { + title: '企业内部编号', + dataIndex: 'etpsPreentNo', + scopedSlots: { + customRender: 'etpsPreentNo', + }, + width: 120, + ellipsis: true, + sorter: true, + slots: { + customRender: 'etpsPreentNo', + }, + }, + { + title: '修改人', + dataIndex: 'updateBy', + scopedSlots: { + customRender: 'updateBy', + }, + width: 120, + ellipsis: true, + sorter: true, + }, + { + title: '账册编号', + dataIndex: 'emsNo', + width: 120, + ellipsis: true, + sorter: true, + slots: { + customRender: 'emsNo', + }, + }, + { + title: '预录入统一编号', + dataIndex: 'seqNo', + width: 150, + ellipsis: true, + sorter: true, + slots: { + customRender: 'seqNo', + }, + }, + { + title: '经营单位', + dataIndex: 'bizopEtpsNm', + width: 200, + ellipsis: true, + sorter: true, + slots: { + customRender: 'bizopEtpsNm', + }, + }, + { + title: '加工单位', + dataIndex: 'rcvgdEtpsNm', + width: 200, + ellipsis: true, + sorter: true, + slots: { + customRender: 'rcvgdEtpsNm', + }, + }, + { + title: '账册类型', + dataIndex: 'emsTypecd_dictText', + width: 100, + ellipsis: true, + sorter: true, + slots: { + customRender: 'emsTypecd', + }, + }, + { + title: '申报日期', + dataIndex: 'dclTime', + width: 130, + ellipsis: true, + sorter: true, + slots: { + customRender: 'dclTime', + }, + }, + { + title: '有效期', + dataIndex: 'finishValidDate', + width: 130, + ellipsis: true, + sorter: true, + slots: { + customRender: 'finishValidDate', + }, + }, + { + title: '申请人', + dataIndex: 'applyByName', + width: 120, + ellipsis: true, + sorter: true, + slots: { + customRender: 'applyByName', + }, + }, + { + title: '申请时间', + dataIndex: 'applyTime', + width: 150, + ellipsis: true, + sorter: true, + slots: { + customRender: 'applyTime', + }, + }, + { + title: '审核人', + dataIndex: 'verifyByName', + width: 120, + ellipsis: true, + sorter: true, + slots: { + customRender: 'verifyByName', + }, + }, + { + title: '审核时间', + dataIndex: 'verifyTime', + width: 150, + ellipsis: true, + sorter: true, + slots: { + customRender: 'verifyTime', + }, + }, +] +const columnsEmsPre = [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + customRender: function (t, r, index) { + return parseInt(index) + 1 + }, + }, + { + title: '流程状态', + dataIndex: 'flowStatus', + scopedSlots: { + customRender: 'flowStatus', + }, + width: 80, + ellipsis: true, + sorter: true, + }, + { + title: '申报状态', + dataIndex: 'status', + scopedSlots: { + customRender: 'status', + }, + width: 100, + ellipsis: true, + sorter: true, + }, + { + title: '企业内部编号', + dataIndex: 'etpsPreentNo', + scopedSlots: { + customRender: 'etpsPreentNo', + }, + width: 120, + ellipsis: true, + sorter: true, + slots: { + customRender: 'etpsPreentNo', + }, + }, + { + title: '修改人', + dataIndex: 'updateBy', + scopedSlots: { + customRender: 'updateBy', + }, + width: 120, + ellipsis: true, + sorter: true, + }, + { + title: '账册编号', + dataIndex: 'emsNo', + width: 120, + ellipsis: true, + sorter: true, + slots: { + customRender: 'emsNo', + }, + }, + { + title: '预录入统一编号', + dataIndex: 'seqNo', + width: 150, + ellipsis: true, + sorter: true, + slots: { + customRender: 'seqNo', + }, + }, + { + title: '经营单位', + dataIndex: 'bizopEtpsNm', + width: 100, + ellipsis: true, + sorter: true, + slots: { + customRender: 'bizopEtpsNm', + }, + }, + { + title: '加工单位', + dataIndex: 'rcvgdEtpsNm', + width: 100, + ellipsis: true, + sorter: true, + slots: { + customRender: 'rcvgdEtpsNm', + }, + }, + { + title: '账册类型', + dataIndex: 'emsTypecd_dictText', + width: 100, + ellipsis: true, + sorter: true, + slots: { + customRender: 'emsTypecd', + }, + }, + { + title: '申报日期', + dataIndex: 'dclTime', + width: 140, + ellipsis: true, + sorter: true, + slots: { + customRender: 'dclTime', + }, + }, + { + title: '有效期', + dataIndex: 'finishValidDate', + width: 140, + ellipsis: true, + sorter: true, + slots: { + customRender: 'finishValidDate', + }, + }, + { + title: '变更次数', + dataIndex: 'chgTmsCnt', + width: 80, + ellipsis: true, + sorter: true, + slots: { + customRender: 'chgTmsCnt', + }, + }, + { + title: '申报类型', + dataIndex: 'dclTypecd_dictText', + width: 100, + ellipsis: true, + sorter: true, + slots: { + customRender: 'dclTypecd', + }, + }, + { + title: '申请人', + dataIndex: 'applyByName', + width: 120, + ellipsis: true, + sorter: true, + slots: { + customRender: 'applyByName', + }, + }, + { + title: '申请时间', + dataIndex: 'applyTime', + width: 150, + ellipsis: true, + sorter: true, + slots: { + customRender: 'applyTime', + }, + }, + { + title: '审核人', + dataIndex: 'verifyByName', + width: 120, + ellipsis: true, + sorter: true, + slots: { + customRender: 'verifyByName', + }, + }, + { + title: '审核时间', + dataIndex: 'verifyTime', + width: 150, + ellipsis: true, + sorter: true, + slots: { + customRender: 'verifyTime', + }, + }, + { + title: '修改标志', + dataIndex: 'modfMarkcd_dictText', + width: 120, + ellipsis: true, + sorter: true, + slots: { + customRender: 'modfMarkcd', + }, + }, +] +const columnsBwlCur = [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + customRender: function (t, r, index) { + return parseInt(index) + 1 + }, + }, + { + title: '流程状态', + dataIndex: 'flowStatus', + scopedSlots: { + customRender: 'flowStatus', + }, + width: 80, + ellipsis: true, + sorter: true, + }, + { + title: '申报状态', + dataIndex: 'status', + scopedSlots: { + customRender: 'status', + }, + width: 100, + ellipsis: true, + sorter: true, + }, + { + title: '企业内部编号', + dataIndex: 'etpsPreentNo', + scopedSlots: { + customRender: 'etpsPreentNo', + }, + width: 120, + ellipsis: true, + sorter: true, + slots: { + customRender: 'etpsPreentNo', + }, + }, + { + title: '修改人', + dataIndex: 'updateBy', + scopedSlots: { + customRender: 'updateBy', + }, + width: 120, + ellipsis: true, + sorter: true, + }, + { + title: '账册编号', + dataIndex: 'emsNo', + width: 120, + ellipsis: true, + sorter: true, + slots: { + customRender: 'emsNo', + }, + }, + { + title: '预录入统一编号', + dataIndex: 'seqNo', + width: 150, + ellipsis: true, + sorter: true, + slots: { + customRender: 'seqNo', + }, + }, + { + title: '经营单位', + dataIndex: 'bizopEtpsNm', + width: 100, + ellipsis: true, + sorter: true, + slots: { + customRender: 'bizopEtpsNm', + }, + }, + { + title: '区域场所类别', + dataIndex: 'bwlTypecd_dictText', + width: 140, + ellipsis: true, + sorter: true, + slots: { + customRender: 'bwlTypecd', + }, + }, + { + title: '申报日期', + dataIndex: 'dclTime', + width: 150, + ellipsis: true, + sorter: true, + slots: { + customRender: 'dclTime', + }, + }, + { + title: '有效期', + dataIndex: 'finishValidDate', + width: 150, + ellipsis: true, + sorter: true, + slots: { + customRender: 'finishValidDate', + }, + }, + { + title: '申请人', + dataIndex: 'applyByName', + width: 120, + ellipsis: true, + sorter: true, + slots: { + customRender: 'applyByName', + }, + }, + { + title: '申请时间', + dataIndex: 'applyTime', + width: 150, + ellipsis: true, + sorter: true, + slots: { + customRender: 'applyTime', + }, + }, + { + title: '审核人', + dataIndex: 'verifyByName', + width: 120, + ellipsis: true, + sorter: true, + slots: { + customRender: 'verifyByName', + }, + }, + { + title: '审核时间', + dataIndex: 'verifyTime', + width: 150, + ellipsis: true, + sorter: true, + slots: { + customRender: 'verifyTime', + }, + }, +] +const columnsBwlPre = [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + customRender: function (t, r, index) { + return parseInt(index) + 1 + }, + scopedSlots: { + customRender: 'flowStatus', + }, + }, + { + title: '流程状态', + dataIndex: 'flowStatus', + scopedSlots: { + customRender: 'flowStatus', + }, + width: 80, + ellipsis: true, + sorter: true, + }, + { + title: '申报状态', + dataIndex: 'status', + scopedSlots: { + customRender: 'status', + }, + width: 100, + ellipsis: true, + sorter: true, + }, + { + title: '企业内部编号', + dataIndex: 'etpsPreentNo', + scopedSlots: { + customRender: 'etpsPreentNo', + }, + width: 150, + ellipsis: true, + sorter: true, + slots: { + customRender: 'etpsPreentNo', + }, + }, + { + title: '修改人', + dataIndex: 'updateBy', + scopedSlots: { + customRender: 'updateBy', + }, + width: 120, + ellipsis: true, + sorter: true, + }, + { + title: '账册编号', + dataIndex: 'emsNo', + width: 150, + ellipsis: true, + sorter: true, + slots: { + customRender: 'emsNo', + }, + }, + { + title: '预录入统一编号', + dataIndex: 'seqNo', + width: 150, + ellipsis: true, + sorter: true, + slots: { + customRender: 'seqNo', + }, + }, + { + title: '经营单位', + dataIndex: 'bizopEtpsNm', + width: 120, + ellipsis: true, + sorter: true, + slots: { + customRender: 'bizopEtpsNm', + }, + }, + { + title: '区域场所类别', + dataIndex: 'bwlTypecd_dictText', + width: 140, + ellipsis: true, + sorter: true, + slots: { + customRender: 'bwlTypecd', + }, + }, + { + title: '申报日期', + dataIndex: 'dclTime', + width: 150, + ellipsis: true, + sorter: true, + slots: { + customRender: 'dclTime', + }, + }, + { + title: '有效期', + dataIndex: 'finishValidDate', + width: 150, + ellipsis: true, + sorter: true, + slots: { + customRender: 'finishValidDate', + }, + }, + { + title: '变更次数', + dataIndex: 'chgTmsCnt', + width: 80, + ellipsis: true, + sorter: true, + slots: { + customRender: 'chgTmsCnt', + }, + }, + { + title: '申报类型', + dataIndex: 'dclTypecd_dictText', + width: 100, + ellipsis: true, + sorter: true, + slots: { + customRender: 'dclTypecd', + }, + }, + { + title: '申请人', + dataIndex: 'applyByName', + width: 120, + ellipsis: true, + sorter: true, + slots: { + customRender: 'applyByName', + }, + }, + { + title: '申请时间', + dataIndex: 'applyTime', + width: 150, + ellipsis: true, + sorter: true, + slots: { + customRender: 'applyTime', + }, + }, + { + title: '审核人', + dataIndex: 'verifyByName', + width: 120, + ellipsis: true, + sorter: true, + slots: { + customRender: 'verifyByName', + }, + }, + { + title: '审核时间', + dataIndex: 'verifyTime', + width: 150, + ellipsis: true, + sorter: true, + slots: { + customRender: 'verifyTime', + }, + }, + { + title: '修改标志', + dataIndex: 'modfMarkcd_dictText', + width: 120, + ellipsis: true, + sorter: true, + slots: { + customRender: 'modfMarkcd', + }, + }, +] +const curUrl = { + list: '/record/recordEmsHeadCur/list', + delete: '/record/recordEmsHeadCur/delete', + deleteBatch: '/record/recordEmsHeadCur/deleteBatch', + exportXlsUrl: '/record/recordEmsHeadCur/exportXls', + importExcelUrl: 'record/recordEmsHeadCur/importExcel', + resetStatus: 'record/recordEmsHeadCur/ResetStatus', + resetBwlStatus: 'record/recordEmsHeadCur/ResetBwlStatus', + resetUploadStatus: 'record/recordEmsHeadCur/ResetUploadStatus', + downloadData: 'record/recordEmsHeadCur/DownloadData', + uploadEms: 'record/recordEmsHeadCur/UploadEms', + checkEmsNo: 'record/recordEmsHeadCur/CheckEmsNo', + exportEms: 'record/recordEmsHeadCur/ExportEms', + flowStatusUrl: '/record/recordEmsHeadCur/queryWorkflowStatusList', + flowLatestUrl: '/record/recordEmsHeadCur/getWorkflowLatest', + resetFlows: '/record/recordEmsHeadCur/resetFlows', + getRecentlyUpdateInfo: '/record/recordEmsHeadCur/getRecentlyUpdateInfo', +} +const preUrl = { + list: '/record/recordEmsHeadPre/list', + delete: '/record/recordEmsHeadPre/delete', + deleteBatch: '/record/recordEmsHeadPre/deleteBatch', + exportXlsUrl: '/record/recordEmsHeadPre/exportXls', + importExcelUrl: 'record/recordEmsHeadPre/importExcel', + resetStatus: 'record/recordEmsHeadPre/ResetStatus', + resetBwlStatus: 'record/recordEmsHeadPre/ResetBwlStatus', + resetUploadStatus: 'record/recordEmsHeadPre/ResetUploadStatus', + uploadEms: 'record/recordEmsHeadPre/UploadEms', + checkEmsNo: 'record/recordEmsHeadPre/CheckEmsNo', + uploadBwl: 'record/recordEmsHeadPre/UploadBwl', + passStatus: 'record/recordEmsHeadPre/PassStatus', + flowStatusUrl: '/record/recordEmsHeadCur/queryWorkflowStatusList', + flowLatestUrl: '/record/recordEmsHeadCur/getWorkflowLatest', + resetFlows: '/record/recordEmsHeadPre/resetFlows', + getRecentlyUpdateInfo: '/record/recordEmsHeadPre/getRecentlyUpdateInfo', +} + +export { columnsBwlCur, columnsBwlPre, columnsEmsCur, columnsEmsPre, curUrl, preUrl } diff --git a/src/views/record/ems/emsListCur.vue b/src/views/record/ems/emsListCur.vue new file mode 100644 index 0000000..c44eb52 --- /dev/null +++ b/src/views/record/ems/emsListCur.vue @@ -0,0 +1,22 @@ + diff --git a/src/views/record/ems/emsListPre.vue b/src/views/record/ems/emsListPre.vue new file mode 100644 index 0000000..b69cdc5 --- /dev/null +++ b/src/views/record/ems/emsListPre.vue @@ -0,0 +1,25 @@ + diff --git a/src/views/record/qualApply/qualApplyView.js b/src/views/record/qualApply/qualApplyView.js new file mode 100644 index 0000000..0da2919 --- /dev/null +++ b/src/views/record/qualApply/qualApplyView.js @@ -0,0 +1,165 @@ +import { + filterDictTextByFormatCache +} from '@/components/dict/JDictSelectUtil' +const columns = [{ + title: '序号', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'left', + customRender: function (t, r, index) { + return parseInt(index) + 1 + }, +}, +{ + title: '流程状态', + dataIndex: 'flowStatus', + align: 'center', + scopedSlots: { + customRender: 'flowStatus' + }, + ellipsis: true, + width: 100, + sorter: true, + slots: { customRender: 'flowStatus' }, +}, +{ + title: '申报状态', + dataIndex: 'status', + align: 'center', + scopedSlots: { + customRender: 'status' + }, + ellipsis: true, + width: 100, + sorter: true, + slots: { customRender: 'status' }, +}, +{ + title: '企业内部编号', + dataIndex: 'etpsPreentNo', + scopedSlots: { + customRender: 'etpsPreentNo' + }, + ellipsis: true, + width: 100, + sorter: true, + slots: { customRender: 'etpsPreentNo' }, +}, +{ + title: '预录入统一编号', + dataIndex: 'seqNo', + width: 180, + ellipsis: true, + sorter: true, + slots: { customRender: 'seqNo' }, +}, +{ + title: '档案库编号', + dataIndex: 'etArcrpNo', + ellipsis: true, + width: 100, + sorter: true, + slots: { customRender: 'etArcrpNo' }, +}, +{ + title: '申报单位类型', + dataIndex: 'dclEtpsTypecd', + customRender: (text) => { + return filterDictTextByFormatCache('DclEtpsType', text) + }, + ellipsis: true, + width: 100, + sorter: true, + slots: { customRender: 'dclEtpsTypecd' }, +}, +{ + title: '经营单位', + dataIndex: 'bizopEtpsNm', + width: 180, + ellipsis: true, + sorter: true, + slots: { customRender: 'bizopEtpsNm' }, +}, +{ + title: '加工单位', + dataIndex: 'rcvgdEtpsNm', + width: 180, + ellipsis: true, + sorter: true, + slots: { customRender: 'rcvgdEtpsNm' }, +}, +{ + title: '申报日期', + dataIndex: 'dclTime', + ellipsis: true, + width: 100, + sorter: true, + slots: { customRender: 'dclTime' }, +}, +{ + title: '结束有效期', + dataIndex: 'finishValidDate', + ellipsis: true, + width: 100, + sorter: true, + slots: { customRender: 'finishValidDate' }, +}, +{ + title: '批准证编号', + dataIndex: 'apcretNo', + ellipsis: true, + width: 100, + sorter: true, + slots: { customRender: 'apcretNo' }, +}, +{ + title: '变更次数', + align:"center", + dataIndex: 'chgTmsCnt', + ellipsis: true, + width: 100, + sorter: true, + slots: { customRender: 'chgTmsCnt' }, +}, + +] +const typeUrl = { + list: '/record/lvEmsQualHead/list', + queryById: '/record/emsQualHead/queryById', + delete: '/record/emsQualHead/delete', + deleteBatch: '/record/emsQualHead/deleteBatch', + exportXlsUrl: '/record/emsQualHead/exportXls', + importExcelUrl: 'record/emsQualHead/importExcel', + resetStatus: 'record/emsQualHead/ResetStatus', + uploadQuals: 'record/emsQualHead/UploadQuals', + flowStatusUrl: '/record/emsQualHead/queryWorkflowStatusList', + flowLatestUrl: '/record/emsQualHead/getWorkflowLatest', + checkBillInfo: '/record/emsQualHead/checkBillInfo', + cancelqualApplys: '/record/emsQualHead/cancelqualApplys', + resetFlows: '/record/emsQualHead/resetFlows', +} +const typeUrlPre = { + list: '/record/lvEmsQualHeadPre/list', + getDefault: '/record/emsQualHeadPre/getDefaultEmsQualHeadPre', + queryById: '/record/emsQualHeadPre/queryById', + delete: '/record/emsQualHeadPre/delete', + deleteBatch: '/record/emsQualHeadPre/deleteBatch', + exportXlsUrl: '/record/emsQualHeadPre/exportXls', + importExcelUrl: 'record/emsQualHeadPre/importExcel', + resetStatus: 'record/emsQualHeadPre/ResetStatus', + uploadQuals: 'record/emsQualHeadPre/UploadQuals', + emsQualChange: 'record/emsQualHeadPre/emsQualChange', + passStatus: 'record/emsQualHeadPre/PassStatus', + flowStatusUrl: '/record/emsQualHead/queryWorkflowStatusList', + flowLatestUrl: '/record/emsQualHead/getWorkflowLatest', + checkBillInfo: '/record/emsQualHeadPre/checkBillInfo', + cancelqualApplys: '/record/emsQualHeadPre/cancelqualApplys', + resetFlows: '/record/emsQualHeadPre/resetFlows', +} + +export { + columns, + typeUrl, + typeUrlPre +} \ No newline at end of file diff --git a/src/views/record/qualApply/qualApplyView.vue b/src/views/record/qualApply/qualApplyView.vue new file mode 100644 index 0000000..b02a83a --- /dev/null +++ b/src/views/record/qualApply/qualApplyView.vue @@ -0,0 +1,582 @@ + + + + diff --git a/src/views/record/qualApply/qualApplyViewComponent/EmsQualChangeModal.vue b/src/views/record/qualApply/qualApplyViewComponent/EmsQualChangeModal.vue new file mode 100644 index 0000000..ef64897 --- /dev/null +++ b/src/views/record/qualApply/qualApplyViewComponent/EmsQualChangeModal.vue @@ -0,0 +1,149 @@ + + diff --git a/src/views/record/qualApply/qualApplyViewComponent/IEFormComponent/IEForm.vue b/src/views/record/qualApply/qualApplyViewComponent/IEFormComponent/IEForm.vue new file mode 100644 index 0000000..445d77b --- /dev/null +++ b/src/views/record/qualApply/qualApplyViewComponent/IEFormComponent/IEForm.vue @@ -0,0 +1,256 @@ + + + diff --git a/src/views/record/qualApply/qualApplyViewComponent/IEFormComponent/IEModel.vue b/src/views/record/qualApply/qualApplyViewComponent/IEFormComponent/IEModel.vue new file mode 100644 index 0000000..564eee0 --- /dev/null +++ b/src/views/record/qualApply/qualApplyViewComponent/IEFormComponent/IEModel.vue @@ -0,0 +1,92 @@ + + + diff --git a/src/views/record/qualApply/qualApplyViewComponent/MaterialsList.vue b/src/views/record/qualApply/qualApplyViewComponent/MaterialsList.vue new file mode 100644 index 0000000..2169420 --- /dev/null +++ b/src/views/record/qualApply/qualApplyViewComponent/MaterialsList.vue @@ -0,0 +1,407 @@ + + + diff --git a/src/views/record/qualApply/qualApplyViewComponent/QualApplyHead.vue b/src/views/record/qualApply/qualApplyViewComponent/QualApplyHead.vue new file mode 100644 index 0000000..b8525ef --- /dev/null +++ b/src/views/record/qualApply/qualApplyViewComponent/QualApplyHead.vue @@ -0,0 +1,620 @@ + + + diff --git a/src/views/record/qualApply/qualApplyViewComponent/QualApplyTabs.vue b/src/views/record/qualApply/qualApplyViewComponent/QualApplyTabs.vue new file mode 100644 index 0000000..0df3b5a --- /dev/null +++ b/src/views/record/qualApply/qualApplyViewComponent/QualApplyTabs.vue @@ -0,0 +1,167 @@ + + diff --git a/src/views/record/qualApply/qualApplyViewComponent/QualApplyViewModal.vue b/src/views/record/qualApply/qualApplyViewComponent/QualApplyViewModal.vue new file mode 100644 index 0000000..ddfbfe1 --- /dev/null +++ b/src/views/record/qualApply/qualApplyViewComponent/QualApplyViewModal.vue @@ -0,0 +1,60 @@ + + + diff --git a/src/views/result/Error.vue b/src/views/result/Error.vue new file mode 100644 index 0000000..52f9365 --- /dev/null +++ b/src/views/result/Error.vue @@ -0,0 +1,42 @@ + + + + diff --git a/src/views/result/Result.vue b/src/views/result/Result.vue new file mode 100644 index 0000000..eecfe6f --- /dev/null +++ b/src/views/result/Result.vue @@ -0,0 +1,102 @@ + + + + + + diff --git a/src/views/result/Success.vue b/src/views/result/Success.vue new file mode 100644 index 0000000..31d308f --- /dev/null +++ b/src/views/result/Success.vue @@ -0,0 +1,94 @@ + + + + diff --git a/src/views/shared/DocumentsAttached.vue b/src/views/shared/DocumentsAttached.vue new file mode 100644 index 0000000..3c1f0da --- /dev/null +++ b/src/views/shared/DocumentsAttached.vue @@ -0,0 +1,241 @@ + + + + diff --git a/src/views/shared/DocumentsAttachedList.vue b/src/views/shared/DocumentsAttachedList.vue new file mode 100644 index 0000000..c94c2d2 --- /dev/null +++ b/src/views/shared/DocumentsAttachedList.vue @@ -0,0 +1,238 @@ + + + diff --git a/src/views/sysConfig/common/approve/ApprovalForm.vue b/src/views/sysConfig/common/approve/ApprovalForm.vue new file mode 100644 index 0000000..606a3d8 --- /dev/null +++ b/src/views/sysConfig/common/approve/ApprovalForm.vue @@ -0,0 +1,151 @@ + + + diff --git a/src/views/sysConfig/common/approve/ApprovalModal.vue b/src/views/sysConfig/common/approve/ApprovalModal.vue new file mode 100644 index 0000000..36ac9c4 --- /dev/null +++ b/src/views/sysConfig/common/approve/ApprovalModal.vue @@ -0,0 +1,73 @@ + + + diff --git a/src/views/sysConfig/common/eventConfig/WlonlCgformFieldEventRelList.vue b/src/views/sysConfig/common/eventConfig/WlonlCgformFieldEventRelList.vue new file mode 100644 index 0000000..3cd79d6 --- /dev/null +++ b/src/views/sysConfig/common/eventConfig/WlonlCgformFieldEventRelList.vue @@ -0,0 +1,184 @@ + + + + diff --git a/src/views/sysConfig/common/eventConfig/modules/WlonlCgformFieldEventRelForm.vue b/src/views/sysConfig/common/eventConfig/modules/WlonlCgformFieldEventRelForm.vue new file mode 100644 index 0000000..a47e5b0 --- /dev/null +++ b/src/views/sysConfig/common/eventConfig/modules/WlonlCgformFieldEventRelForm.vue @@ -0,0 +1,206 @@ + + + diff --git a/src/views/sysConfig/common/eventConfig/modules/WlonlCgformFieldEventRelModal.vue b/src/views/sysConfig/common/eventConfig/modules/WlonlCgformFieldEventRelModal.vue new file mode 100644 index 0000000..51d3ea7 --- /dev/null +++ b/src/views/sysConfig/common/eventConfig/modules/WlonlCgformFieldEventRelModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/sysConfig/common/eventConfig/modules/WlonlCgformFieldEventRelModal__Style.vue b/src/views/sysConfig/common/eventConfig/modules/WlonlCgformFieldEventRelModal__Style.vue new file mode 100644 index 0000000..be10579 --- /dev/null +++ b/src/views/sysConfig/common/eventConfig/modules/WlonlCgformFieldEventRelModal__Style.vue @@ -0,0 +1,102 @@ + + + + + diff --git a/src/views/sysConfig/common/interface/CommonInterfaceList.vue b/src/views/sysConfig/common/interface/CommonInterfaceList.vue new file mode 100644 index 0000000..478019b --- /dev/null +++ b/src/views/sysConfig/common/interface/CommonInterfaceList.vue @@ -0,0 +1,191 @@ + + + + diff --git a/src/views/sysConfig/common/interface/modules/CommonInterfaceForm.vue b/src/views/sysConfig/common/interface/modules/CommonInterfaceForm.vue new file mode 100644 index 0000000..c1a364f --- /dev/null +++ b/src/views/sysConfig/common/interface/modules/CommonInterfaceForm.vue @@ -0,0 +1,220 @@ + + + diff --git a/src/views/sysConfig/common/interface/modules/CommonInterfaceModal.vue b/src/views/sysConfig/common/interface/modules/CommonInterfaceModal.vue new file mode 100644 index 0000000..1b15a91 --- /dev/null +++ b/src/views/sysConfig/common/interface/modules/CommonInterfaceModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/sysConfig/common/interface/modules/CommonInterfaceModal__Style.vue b/src/views/sysConfig/common/interface/modules/CommonInterfaceModal__Style.vue new file mode 100644 index 0000000..7783764 --- /dev/null +++ b/src/views/sysConfig/common/interface/modules/CommonInterfaceModal__Style.vue @@ -0,0 +1,102 @@ + + + + + diff --git a/src/views/sysConfig/common/receiptInformation/ReceiptInformationModal.vue b/src/views/sysConfig/common/receiptInformation/ReceiptInformationModal.vue new file mode 100644 index 0000000..922dacd --- /dev/null +++ b/src/views/sysConfig/common/receiptInformation/ReceiptInformationModal.vue @@ -0,0 +1,174 @@ + + + diff --git a/src/views/sysConfig/common/workflow/modules/WorkflowForm.vue b/src/views/sysConfig/common/workflow/modules/WorkflowForm.vue new file mode 100644 index 0000000..614cc44 --- /dev/null +++ b/src/views/sysConfig/common/workflow/modules/WorkflowForm.vue @@ -0,0 +1,315 @@ + + + diff --git a/src/views/sysConfig/common/workflow/modules/WorkflowList.vue b/src/views/sysConfig/common/workflow/modules/WorkflowList.vue new file mode 100644 index 0000000..c256aea --- /dev/null +++ b/src/views/sysConfig/common/workflow/modules/WorkflowList.vue @@ -0,0 +1,118 @@ + + + + diff --git a/src/views/sysConfig/common/workflow/modules/WorkflowModal.vue b/src/views/sysConfig/common/workflow/modules/WorkflowModal.vue new file mode 100644 index 0000000..d443a29 --- /dev/null +++ b/src/views/sysConfig/common/workflow/modules/WorkflowModal.vue @@ -0,0 +1,209 @@ + + + diff --git a/src/views/sysConfig/common/workflow/modules/WorkflowModalTest.vue b/src/views/sysConfig/common/workflow/modules/WorkflowModalTest.vue new file mode 100644 index 0000000..7fc7b0d --- /dev/null +++ b/src/views/sysConfig/common/workflow/modules/WorkflowModalTest.vue @@ -0,0 +1,133 @@ + + + + + diff --git a/src/views/sysbasedata/BaseAlert/BaseAlertList.vue b/src/views/sysbasedata/BaseAlert/BaseAlertList.vue new file mode 100644 index 0000000..a60f971 --- /dev/null +++ b/src/views/sysbasedata/BaseAlert/BaseAlertList.vue @@ -0,0 +1,180 @@ + + + diff --git a/src/views/sysbasedata/BaseAlert/modules/BaseAlertForm.vue b/src/views/sysbasedata/BaseAlert/modules/BaseAlertForm.vue new file mode 100644 index 0000000..daf4f3b --- /dev/null +++ b/src/views/sysbasedata/BaseAlert/modules/BaseAlertForm.vue @@ -0,0 +1,343 @@ + + + + + diff --git a/src/views/sysbasedata/BaseAlert/modules/BaseAlertModal.vue b/src/views/sysbasedata/BaseAlert/modules/BaseAlertModal.vue new file mode 100644 index 0000000..2b057d2 --- /dev/null +++ b/src/views/sysbasedata/BaseAlert/modules/BaseAlertModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/sysbasedata/BaseBdLimitCountry/BaseBdLimitCountryList.vue b/src/views/sysbasedata/BaseBdLimitCountry/BaseBdLimitCountryList.vue new file mode 100644 index 0000000..bcdbd48 --- /dev/null +++ b/src/views/sysbasedata/BaseBdLimitCountry/BaseBdLimitCountryList.vue @@ -0,0 +1,275 @@ + + + + diff --git a/src/views/sysbasedata/BaseBdLimitCountry/modules/BaseBdLimitCountryForm.vue b/src/views/sysbasedata/BaseBdLimitCountry/modules/BaseBdLimitCountryForm.vue new file mode 100644 index 0000000..f2a1f76 --- /dev/null +++ b/src/views/sysbasedata/BaseBdLimitCountry/modules/BaseBdLimitCountryForm.vue @@ -0,0 +1,294 @@ + + + diff --git a/src/views/sysbasedata/BaseBdLimitCountry/modules/BaseBdLimitCountryModal.vue b/src/views/sysbasedata/BaseBdLimitCountry/modules/BaseBdLimitCountryModal.vue new file mode 100644 index 0000000..4ed87a0 --- /dev/null +++ b/src/views/sysbasedata/BaseBdLimitCountry/modules/BaseBdLimitCountryModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/sysbasedata/BaseBdLocationConfig/BaseBdLocationConfigList.vue b/src/views/sysbasedata/BaseBdLocationConfig/BaseBdLocationConfigList.vue new file mode 100644 index 0000000..6559a85 --- /dev/null +++ b/src/views/sysbasedata/BaseBdLocationConfig/BaseBdLocationConfigList.vue @@ -0,0 +1,274 @@ + + + + diff --git a/src/views/sysbasedata/BaseBdLocationConfig/modules/BaseBdLocationConfigForm.vue b/src/views/sysbasedata/BaseBdLocationConfig/modules/BaseBdLocationConfigForm.vue new file mode 100644 index 0000000..0e59198 --- /dev/null +++ b/src/views/sysbasedata/BaseBdLocationConfig/modules/BaseBdLocationConfigForm.vue @@ -0,0 +1,251 @@ + + + diff --git a/src/views/sysbasedata/BaseBdLocationConfig/modules/BaseBdLocationConfigModal.vue b/src/views/sysbasedata/BaseBdLocationConfig/modules/BaseBdLocationConfigModal.vue new file mode 100644 index 0000000..26bf6de --- /dev/null +++ b/src/views/sysbasedata/BaseBdLocationConfig/modules/BaseBdLocationConfigModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/sysbasedata/BaseBdMatrixConfig/BaseBdMatrixConfigList.vue b/src/views/sysbasedata/BaseBdMatrixConfig/BaseBdMatrixConfigList.vue new file mode 100644 index 0000000..1754d7f --- /dev/null +++ b/src/views/sysbasedata/BaseBdMatrixConfig/BaseBdMatrixConfigList.vue @@ -0,0 +1,244 @@ + + + + diff --git a/src/views/sysbasedata/BaseBdMatrixConfig/modules/BaseBdMatrixConfigForm.vue b/src/views/sysbasedata/BaseBdMatrixConfig/modules/BaseBdMatrixConfigForm.vue new file mode 100644 index 0000000..423cba6 --- /dev/null +++ b/src/views/sysbasedata/BaseBdMatrixConfig/modules/BaseBdMatrixConfigForm.vue @@ -0,0 +1,283 @@ + + + diff --git a/src/views/sysbasedata/BaseBdMatrixConfig/modules/BaseBdMatrixConfigModal.vue b/src/views/sysbasedata/BaseBdMatrixConfig/modules/BaseBdMatrixConfigModal.vue new file mode 100644 index 0000000..23e9227 --- /dev/null +++ b/src/views/sysbasedata/BaseBdMatrixConfig/modules/BaseBdMatrixConfigModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/sysbasedata/BaseCompanyInfo/BaseCompanyInfoList.vue b/src/views/sysbasedata/BaseCompanyInfo/BaseCompanyInfoList.vue new file mode 100644 index 0000000..d6d550a --- /dev/null +++ b/src/views/sysbasedata/BaseCompanyInfo/BaseCompanyInfoList.vue @@ -0,0 +1,121 @@ + + + diff --git a/src/views/sysbasedata/BaseCompanyInfo/modules/BaseInfo.vue b/src/views/sysbasedata/BaseCompanyInfo/modules/BaseInfo.vue new file mode 100644 index 0000000..d50985e --- /dev/null +++ b/src/views/sysbasedata/BaseCompanyInfo/modules/BaseInfo.vue @@ -0,0 +1,567 @@ + + + + + diff --git a/src/views/sysbasedata/BaseCompanyInfo/modules/CertificateList.vue b/src/views/sysbasedata/BaseCompanyInfo/modules/CertificateList.vue new file mode 100644 index 0000000..cd996a2 --- /dev/null +++ b/src/views/sysbasedata/BaseCompanyInfo/modules/CertificateList.vue @@ -0,0 +1,293 @@ + + + + diff --git a/src/views/sysbasedata/BaseCompanyInfo/modules/CustomsCreditList.vue b/src/views/sysbasedata/BaseCompanyInfo/modules/CustomsCreditList.vue new file mode 100644 index 0000000..1c92911 --- /dev/null +++ b/src/views/sysbasedata/BaseCompanyInfo/modules/CustomsCreditList.vue @@ -0,0 +1,264 @@ + + + + diff --git a/src/views/sysbasedata/BaseCompanyInfo/modules/modules/CertificateForm.vue b/src/views/sysbasedata/BaseCompanyInfo/modules/modules/CertificateForm.vue new file mode 100644 index 0000000..8760628 --- /dev/null +++ b/src/views/sysbasedata/BaseCompanyInfo/modules/modules/CertificateForm.vue @@ -0,0 +1,344 @@ + + + + + diff --git a/src/views/sysbasedata/BaseCompanyInfo/modules/modules/CertificateModal.vue b/src/views/sysbasedata/BaseCompanyInfo/modules/modules/CertificateModal.vue new file mode 100644 index 0000000..11e2fcb --- /dev/null +++ b/src/views/sysbasedata/BaseCompanyInfo/modules/modules/CertificateModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/sysbasedata/BaseCompanyInfo/modules/modules/CustomsCreditForm.vue b/src/views/sysbasedata/BaseCompanyInfo/modules/modules/CustomsCreditForm.vue new file mode 100644 index 0000000..30c58f1 --- /dev/null +++ b/src/views/sysbasedata/BaseCompanyInfo/modules/modules/CustomsCreditForm.vue @@ -0,0 +1,266 @@ + + + + diff --git a/src/views/sysbasedata/BaseCompanyInfo/modules/modules/CustomsCreditModal.vue b/src/views/sysbasedata/BaseCompanyInfo/modules/modules/CustomsCreditModal.vue new file mode 100644 index 0000000..adc7556 --- /dev/null +++ b/src/views/sysbasedata/BaseCompanyInfo/modules/modules/CustomsCreditModal.vue @@ -0,0 +1,68 @@ + + + diff --git a/src/views/sysbasedata/BaseCustomerAttributeConfig/BaseCustomerAttributeConfigList.vue b/src/views/sysbasedata/BaseCustomerAttributeConfig/BaseCustomerAttributeConfigList.vue new file mode 100644 index 0000000..bae2a99 --- /dev/null +++ b/src/views/sysbasedata/BaseCustomerAttributeConfig/BaseCustomerAttributeConfigList.vue @@ -0,0 +1,305 @@ + + + + diff --git a/src/views/sysbasedata/BaseCustomerAttributeConfig/modules/BaseCustomerAttributeConfigForm.vue b/src/views/sysbasedata/BaseCustomerAttributeConfig/modules/BaseCustomerAttributeConfigForm.vue new file mode 100644 index 0000000..039ce9a --- /dev/null +++ b/src/views/sysbasedata/BaseCustomerAttributeConfig/modules/BaseCustomerAttributeConfigForm.vue @@ -0,0 +1,179 @@ + + + diff --git a/src/views/sysbasedata/BaseCustomerAttributeConfig/modules/BaseCustomerAttributeConfigModal.vue b/src/views/sysbasedata/BaseCustomerAttributeConfig/modules/BaseCustomerAttributeConfigModal.vue new file mode 100644 index 0000000..3422a23 --- /dev/null +++ b/src/views/sysbasedata/BaseCustomerAttributeConfig/modules/BaseCustomerAttributeConfigModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/sysbasedata/BaseCustomerCodeConfig/BaseCustomerCodeConfigList.vue b/src/views/sysbasedata/BaseCustomerCodeConfig/BaseCustomerCodeConfigList.vue new file mode 100644 index 0000000..1a43883 --- /dev/null +++ b/src/views/sysbasedata/BaseCustomerCodeConfig/BaseCustomerCodeConfigList.vue @@ -0,0 +1,271 @@ + + + + diff --git a/src/views/sysbasedata/BaseCustomerCodeConfig/modules/BaseCustomerCodeConfigForm.vue b/src/views/sysbasedata/BaseCustomerCodeConfig/modules/BaseCustomerCodeConfigForm.vue new file mode 100644 index 0000000..6480487 --- /dev/null +++ b/src/views/sysbasedata/BaseCustomerCodeConfig/modules/BaseCustomerCodeConfigForm.vue @@ -0,0 +1,240 @@ + + + diff --git a/src/views/sysbasedata/BaseCustomerCodeConfig/modules/BaseCustomerCodeConfigModal.vue b/src/views/sysbasedata/BaseCustomerCodeConfig/modules/BaseCustomerCodeConfigModal.vue new file mode 100644 index 0000000..9e1797b --- /dev/null +++ b/src/views/sysbasedata/BaseCustomerCodeConfig/modules/BaseCustomerCodeConfigModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/sysbasedata/BaseEntryPortConfig/BaseEntryPortConfigList.vue b/src/views/sysbasedata/BaseEntryPortConfig/BaseEntryPortConfigList.vue new file mode 100644 index 0000000..adfc83f --- /dev/null +++ b/src/views/sysbasedata/BaseEntryPortConfig/BaseEntryPortConfigList.vue @@ -0,0 +1,65 @@ + + diff --git a/src/views/sysbasedata/BaseEntryPortConfig/modules/BaseBdDespportConfigList.vue b/src/views/sysbasedata/BaseEntryPortConfig/modules/BaseBdDespportConfigList.vue new file mode 100644 index 0000000..5d65e99 --- /dev/null +++ b/src/views/sysbasedata/BaseEntryPortConfig/modules/BaseBdDespportConfigList.vue @@ -0,0 +1,295 @@ + + + + diff --git a/src/views/sysbasedata/BaseEntryPortConfig/modules/BaseBdPortConfigList.vue b/src/views/sysbasedata/BaseEntryPortConfig/modules/BaseBdPortConfigList.vue new file mode 100644 index 0000000..0bfd1d0 --- /dev/null +++ b/src/views/sysbasedata/BaseEntryPortConfig/modules/BaseBdPortConfigList.vue @@ -0,0 +1,301 @@ + + + + diff --git a/src/views/sysbasedata/BaseEntryPortConfig/modules/BaseBdTradecountryConfigList.vue b/src/views/sysbasedata/BaseEntryPortConfig/modules/BaseBdTradecountryConfigList.vue new file mode 100644 index 0000000..4db235a --- /dev/null +++ b/src/views/sysbasedata/BaseEntryPortConfig/modules/BaseBdTradecountryConfigList.vue @@ -0,0 +1,268 @@ + + + + diff --git a/src/views/sysbasedata/BaseEntryPortConfig/modules/modules/BaseBdDespportConfigForm.vue b/src/views/sysbasedata/BaseEntryPortConfig/modules/modules/BaseBdDespportConfigForm.vue new file mode 100644 index 0000000..37b6405 --- /dev/null +++ b/src/views/sysbasedata/BaseEntryPortConfig/modules/modules/BaseBdDespportConfigForm.vue @@ -0,0 +1,169 @@ + + + diff --git a/src/views/sysbasedata/BaseEntryPortConfig/modules/modules/BaseBdDespportConfigModal.vue b/src/views/sysbasedata/BaseEntryPortConfig/modules/modules/BaseBdDespportConfigModal.vue new file mode 100644 index 0000000..37e6d29 --- /dev/null +++ b/src/views/sysbasedata/BaseEntryPortConfig/modules/modules/BaseBdDespportConfigModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/sysbasedata/BaseEntryPortConfig/modules/modules/BaseBdPortConfigForm.vue b/src/views/sysbasedata/BaseEntryPortConfig/modules/modules/BaseBdPortConfigForm.vue new file mode 100644 index 0000000..340c2e6 --- /dev/null +++ b/src/views/sysbasedata/BaseEntryPortConfig/modules/modules/BaseBdPortConfigForm.vue @@ -0,0 +1,184 @@ + + + diff --git a/src/views/sysbasedata/BaseEntryPortConfig/modules/modules/BaseBdPortConfigModal.vue b/src/views/sysbasedata/BaseEntryPortConfig/modules/modules/BaseBdPortConfigModal.vue new file mode 100644 index 0000000..1425885 --- /dev/null +++ b/src/views/sysbasedata/BaseEntryPortConfig/modules/modules/BaseBdPortConfigModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/sysbasedata/BaseEntryPortConfig/modules/modules/BaseBdTradecountryConfigForm.vue b/src/views/sysbasedata/BaseEntryPortConfig/modules/modules/BaseBdTradecountryConfigForm.vue new file mode 100644 index 0000000..2f46409 --- /dev/null +++ b/src/views/sysbasedata/BaseEntryPortConfig/modules/modules/BaseBdTradecountryConfigForm.vue @@ -0,0 +1,153 @@ + + + diff --git a/src/views/sysbasedata/BaseEntryPortConfig/modules/modules/BaseBdTradecountryConfigModal.vue b/src/views/sysbasedata/BaseEntryPortConfig/modules/modules/BaseBdTradecountryConfigModal.vue new file mode 100644 index 0000000..668f3ae --- /dev/null +++ b/src/views/sysbasedata/BaseEntryPortConfig/modules/modules/BaseBdTradecountryConfigModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/sysbasedata/BaseSpecialAttribute/BaseSpecialAttributeList.vue b/src/views/sysbasedata/BaseSpecialAttribute/BaseSpecialAttributeList.vue new file mode 100644 index 0000000..54deb76 --- /dev/null +++ b/src/views/sysbasedata/BaseSpecialAttribute/BaseSpecialAttributeList.vue @@ -0,0 +1,245 @@ + + + + diff --git a/src/views/sysbasedata/BaseSpecialAttribute/modules/BaseSpecialAttributeForm.vue b/src/views/sysbasedata/BaseSpecialAttribute/modules/BaseSpecialAttributeForm.vue new file mode 100644 index 0000000..a298b01 --- /dev/null +++ b/src/views/sysbasedata/BaseSpecialAttribute/modules/BaseSpecialAttributeForm.vue @@ -0,0 +1,247 @@ + + + diff --git a/src/views/sysbasedata/BaseSpecialAttribute/modules/BaseSpecialAttributeModal.vue b/src/views/sysbasedata/BaseSpecialAttribute/modules/BaseSpecialAttributeModal.vue new file mode 100644 index 0000000..62f17f5 --- /dev/null +++ b/src/views/sysbasedata/BaseSpecialAttribute/modules/BaseSpecialAttributeModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/sysbasedata/BaseSpecialMaterials/BaseSpecialMaterialsList.vue b/src/views/sysbasedata/BaseSpecialMaterials/BaseSpecialMaterialsList.vue new file mode 100644 index 0000000..37caed8 --- /dev/null +++ b/src/views/sysbasedata/BaseSpecialMaterials/BaseSpecialMaterialsList.vue @@ -0,0 +1,177 @@ + + + + diff --git a/src/views/sysbasedata/BaseSpecialMaterials/modules/BaseSpecialMaterialsForm.vue b/src/views/sysbasedata/BaseSpecialMaterials/modules/BaseSpecialMaterialsForm.vue new file mode 100644 index 0000000..6546b09 --- /dev/null +++ b/src/views/sysbasedata/BaseSpecialMaterials/modules/BaseSpecialMaterialsForm.vue @@ -0,0 +1,169 @@ + + + diff --git a/src/views/sysbasedata/BaseSpecialMaterials/modules/BaseSpecialMaterialsModal.vue b/src/views/sysbasedata/BaseSpecialMaterials/modules/BaseSpecialMaterialsModal.vue new file mode 100644 index 0000000..b34af4b --- /dev/null +++ b/src/views/sysbasedata/BaseSpecialMaterials/modules/BaseSpecialMaterialsModal.vue @@ -0,0 +1,66 @@ + + + diff --git a/src/views/sysbasedata/BaseTransFeeConfig/BaseTransFeeConfigList.vue b/src/views/sysbasedata/BaseTransFeeConfig/BaseTransFeeConfigList.vue new file mode 100644 index 0000000..7ae2ad3 --- /dev/null +++ b/src/views/sysbasedata/BaseTransFeeConfig/BaseTransFeeConfigList.vue @@ -0,0 +1,215 @@ + + + + diff --git a/src/views/sysbasedata/BaseTransFeeConfig/modules/BaseTransFeeConfigForm.vue b/src/views/sysbasedata/BaseTransFeeConfig/modules/BaseTransFeeConfigForm.vue new file mode 100644 index 0000000..a3f6ad4 --- /dev/null +++ b/src/views/sysbasedata/BaseTransFeeConfig/modules/BaseTransFeeConfigForm.vue @@ -0,0 +1,507 @@ + + + + + diff --git a/src/views/sysbasedata/BaseTransFeeConfig/modules/BaseTransFeeConfigModal.vue b/src/views/sysbasedata/BaseTransFeeConfig/modules/BaseTransFeeConfigModal.vue new file mode 100644 index 0000000..3a4893a --- /dev/null +++ b/src/views/sysbasedata/BaseTransFeeConfig/modules/BaseTransFeeConfigModal.vue @@ -0,0 +1,70 @@ + + + diff --git a/src/views/sysbasedata/BdAlertConfig/BaseBdAlertConfigList.vue b/src/views/sysbasedata/BdAlertConfig/BaseBdAlertConfigList.vue new file mode 100644 index 0000000..e8e0450 --- /dev/null +++ b/src/views/sysbasedata/BdAlertConfig/BaseBdAlertConfigList.vue @@ -0,0 +1,279 @@ + + + + diff --git a/src/views/sysbasedata/BdAlertConfig/modules/BaseBdAlertConfigForm.vue b/src/views/sysbasedata/BdAlertConfig/modules/BaseBdAlertConfigForm.vue new file mode 100644 index 0000000..6a31cc8 --- /dev/null +++ b/src/views/sysbasedata/BdAlertConfig/modules/BaseBdAlertConfigForm.vue @@ -0,0 +1,237 @@ + + + diff --git a/src/views/sysbasedata/BdAlertConfig/modules/BaseBdAlertConfigModal.vue b/src/views/sysbasedata/BdAlertConfig/modules/BaseBdAlertConfigModal.vue new file mode 100644 index 0000000..3ccbb72 --- /dev/null +++ b/src/views/sysbasedata/BdAlertConfig/modules/BaseBdAlertConfigModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/sysbasedata/EnterpriseConfig/EnterpriseConfigList.vue b/src/views/sysbasedata/EnterpriseConfig/EnterpriseConfigList.vue new file mode 100644 index 0000000..ad5beaf --- /dev/null +++ b/src/views/sysbasedata/EnterpriseConfig/EnterpriseConfigList.vue @@ -0,0 +1,195 @@ + + + diff --git a/src/views/sysbasedata/EnterpriseConfig/modules/BaseCiqPoryCnList.vue b/src/views/sysbasedata/EnterpriseConfig/modules/BaseCiqPoryCnList.vue new file mode 100644 index 0000000..6d1dc1a --- /dev/null +++ b/src/views/sysbasedata/EnterpriseConfig/modules/BaseCiqPoryCnList.vue @@ -0,0 +1,249 @@ + + + + diff --git a/src/views/sysbasedata/EnterpriseConfig/modules/BaseCountryList.vue b/src/views/sysbasedata/EnterpriseConfig/modules/BaseCountryList.vue new file mode 100644 index 0000000..bca3024 --- /dev/null +++ b/src/views/sysbasedata/EnterpriseConfig/modules/BaseCountryList.vue @@ -0,0 +1,309 @@ + + + + diff --git a/src/views/sysbasedata/EnterpriseConfig/modules/BaseCurrList.vue b/src/views/sysbasedata/EnterpriseConfig/modules/BaseCurrList.vue new file mode 100644 index 0000000..8239732 --- /dev/null +++ b/src/views/sysbasedata/EnterpriseConfig/modules/BaseCurrList.vue @@ -0,0 +1,251 @@ + + + + diff --git a/src/views/sysbasedata/EnterpriseConfig/modules/BaseCusContainerList.vue b/src/views/sysbasedata/EnterpriseConfig/modules/BaseCusContainerList.vue new file mode 100644 index 0000000..eb15b0a --- /dev/null +++ b/src/views/sysbasedata/EnterpriseConfig/modules/BaseCusContainerList.vue @@ -0,0 +1,243 @@ + + + + diff --git a/src/views/sysbasedata/EnterpriseConfig/modules/BaseCusMappingPackingCodeVList.vue b/src/views/sysbasedata/EnterpriseConfig/modules/BaseCusMappingPackingCodeVList.vue new file mode 100644 index 0000000..4217133 --- /dev/null +++ b/src/views/sysbasedata/EnterpriseConfig/modules/BaseCusMappingPackingCodeVList.vue @@ -0,0 +1,249 @@ + + + + diff --git a/src/views/sysbasedata/EnterpriseConfig/modules/BaseCusMappingPortCodeList.vue b/src/views/sysbasedata/EnterpriseConfig/modules/BaseCusMappingPortCodeList.vue new file mode 100644 index 0000000..2cdc574 --- /dev/null +++ b/src/views/sysbasedata/EnterpriseConfig/modules/BaseCusMappingPortCodeList.vue @@ -0,0 +1,313 @@ + + + + diff --git a/src/views/sysbasedata/EnterpriseConfig/modules/BaseCusTransacList.vue b/src/views/sysbasedata/EnterpriseConfig/modules/BaseCusTransacList.vue new file mode 100644 index 0000000..66b0380 --- /dev/null +++ b/src/views/sysbasedata/EnterpriseConfig/modules/BaseCusTransacList.vue @@ -0,0 +1,260 @@ + + + + diff --git a/src/views/sysbasedata/EnterpriseConfig/modules/BaseCusTransportList.vue b/src/views/sysbasedata/EnterpriseConfig/modules/BaseCusTransportList.vue new file mode 100644 index 0000000..3c8e95a --- /dev/null +++ b/src/views/sysbasedata/EnterpriseConfig/modules/BaseCusTransportList.vue @@ -0,0 +1,246 @@ + + + + diff --git a/src/views/sysbasedata/EnterpriseConfig/modules/BaseCusUnitList.vue b/src/views/sysbasedata/EnterpriseConfig/modules/BaseCusUnitList.vue new file mode 100644 index 0000000..feee25a --- /dev/null +++ b/src/views/sysbasedata/EnterpriseConfig/modules/BaseCusUnitList.vue @@ -0,0 +1,251 @@ + + + + diff --git a/src/views/sysbasedata/EnterpriseConfig/modules/BaseManifestPackageTypeList.vue b/src/views/sysbasedata/EnterpriseConfig/modules/BaseManifestPackageTypeList.vue new file mode 100644 index 0000000..4f791a7 --- /dev/null +++ b/src/views/sysbasedata/EnterpriseConfig/modules/BaseManifestPackageTypeList.vue @@ -0,0 +1,236 @@ + + + + diff --git a/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCiqPoryCnForm.vue b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCiqPoryCnForm.vue new file mode 100644 index 0000000..f3c779e --- /dev/null +++ b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCiqPoryCnForm.vue @@ -0,0 +1,151 @@ + + + diff --git a/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCiqPoryCnModal.vue b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCiqPoryCnModal.vue new file mode 100644 index 0000000..98da1aa --- /dev/null +++ b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCiqPoryCnModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCountryForm.vue b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCountryForm.vue new file mode 100644 index 0000000..397fed1 --- /dev/null +++ b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCountryForm.vue @@ -0,0 +1,235 @@ + + + diff --git a/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCountryModal.vue b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCountryModal.vue new file mode 100644 index 0000000..236b153 --- /dev/null +++ b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCountryModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCurrForm.vue b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCurrForm.vue new file mode 100644 index 0000000..9da0449 --- /dev/null +++ b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCurrForm.vue @@ -0,0 +1,151 @@ + + + diff --git a/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCurrModal.vue b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCurrModal.vue new file mode 100644 index 0000000..223a6be --- /dev/null +++ b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCurrModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusContainerForm.vue b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusContainerForm.vue new file mode 100644 index 0000000..78ddcc8 --- /dev/null +++ b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusContainerForm.vue @@ -0,0 +1,151 @@ + + + diff --git a/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusContainerModal.vue b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusContainerModal.vue new file mode 100644 index 0000000..23c1ebc --- /dev/null +++ b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusContainerModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusMappingPackingCodeVForm.vue b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusMappingPackingCodeVForm.vue new file mode 100644 index 0000000..33601e4 --- /dev/null +++ b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusMappingPackingCodeVForm.vue @@ -0,0 +1,151 @@ + + + diff --git a/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusMappingPackingCodeVModal.vue b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusMappingPackingCodeVModal.vue new file mode 100644 index 0000000..f0b1f67 --- /dev/null +++ b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusMappingPackingCodeVModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusMappingPortCodeForm.vue b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusMappingPortCodeForm.vue new file mode 100644 index 0000000..b542ed5 --- /dev/null +++ b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusMappingPortCodeForm.vue @@ -0,0 +1,210 @@ + + + diff --git a/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusMappingPortCodeModal.vue b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusMappingPortCodeModal.vue new file mode 100644 index 0000000..9ab3c94 --- /dev/null +++ b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusMappingPortCodeModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusTransacForm.vue b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusTransacForm.vue new file mode 100644 index 0000000..8dbec50 --- /dev/null +++ b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusTransacForm.vue @@ -0,0 +1,152 @@ + + + diff --git a/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusTransacModal.vue b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusTransacModal.vue new file mode 100644 index 0000000..3291110 --- /dev/null +++ b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusTransacModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusTransportForm.vue b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusTransportForm.vue new file mode 100644 index 0000000..eefba72 --- /dev/null +++ b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusTransportForm.vue @@ -0,0 +1,151 @@ + + + diff --git a/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusTransportModal.vue b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusTransportModal.vue new file mode 100644 index 0000000..ee1f7c6 --- /dev/null +++ b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusTransportModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusUnitForm.vue b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusUnitForm.vue new file mode 100644 index 0000000..51c5d51 --- /dev/null +++ b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusUnitForm.vue @@ -0,0 +1,152 @@ + + + diff --git a/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusUnitModal.vue b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusUnitModal.vue new file mode 100644 index 0000000..e443a9e --- /dev/null +++ b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseCusUnitModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseManifestPackageTypeForm.vue b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseManifestPackageTypeForm.vue new file mode 100644 index 0000000..37e4940 --- /dev/null +++ b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseManifestPackageTypeForm.vue @@ -0,0 +1,172 @@ + + + diff --git a/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseManifestPackageTypeModal.vue b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseManifestPackageTypeModal.vue new file mode 100644 index 0000000..4df05d9 --- /dev/null +++ b/src/views/sysbasedata/EnterpriseConfig/modules/modules/BaseManifestPackageTypeModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/sysbasedata/ParaLocalLastestVersion/ParaLocalLastestVersionList.vue b/src/views/sysbasedata/ParaLocalLastestVersion/ParaLocalLastestVersionList.vue new file mode 100644 index 0000000..8dbeb23 --- /dev/null +++ b/src/views/sysbasedata/ParaLocalLastestVersion/ParaLocalLastestVersionList.vue @@ -0,0 +1,191 @@ + + + + diff --git a/src/views/sysbasedata/ParaLocalLastestVersion/modules/ParaLocalLastestVersionForm.vue b/src/views/sysbasedata/ParaLocalLastestVersion/modules/ParaLocalLastestVersionForm.vue new file mode 100644 index 0000000..2f71284 --- /dev/null +++ b/src/views/sysbasedata/ParaLocalLastestVersion/modules/ParaLocalLastestVersionForm.vue @@ -0,0 +1,170 @@ + + + diff --git a/src/views/sysbasedata/ParaLocalLastestVersion/modules/ParaLocalLastestVersionModal.vue b/src/views/sysbasedata/ParaLocalLastestVersion/modules/ParaLocalLastestVersionModal.vue new file mode 100644 index 0000000..9a60ccb --- /dev/null +++ b/src/views/sysbasedata/ParaLocalLastestVersion/modules/ParaLocalLastestVersionModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/sysbasedata/custombasedata/customsParameter.vue b/src/views/sysbasedata/custombasedata/customsParameter.vue new file mode 100644 index 0000000..e8bb877 --- /dev/null +++ b/src/views/sysbasedata/custombasedata/customsParameter.vue @@ -0,0 +1,269 @@ + + + diff --git a/src/views/sysbasedata/custombasedata/modules/CusAgreementCountryList.vue b/src/views/sysbasedata/custombasedata/modules/CusAgreementCountryList.vue new file mode 100644 index 0000000..c978941 --- /dev/null +++ b/src/views/sysbasedata/custombasedata/modules/CusAgreementCountryList.vue @@ -0,0 +1,141 @@ + + + + diff --git a/src/views/sysbasedata/custombasedata/modules/CusAgreementRateList.vue b/src/views/sysbasedata/custombasedata/modules/CusAgreementRateList.vue new file mode 100644 index 0000000..75bc741 --- /dev/null +++ b/src/views/sysbasedata/custombasedata/modules/CusAgreementRateList.vue @@ -0,0 +1,286 @@ + + + + diff --git a/src/views/sysbasedata/custombasedata/modules/CusExchrateList.vue b/src/views/sysbasedata/custombasedata/modules/CusExchrateList.vue new file mode 100644 index 0000000..177c436 --- /dev/null +++ b/src/views/sysbasedata/custombasedata/modules/CusExchrateList.vue @@ -0,0 +1,177 @@ + + + + diff --git a/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/AgreementRateList.vue b/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/AgreementRateList.vue new file mode 100644 index 0000000..2f15ede --- /dev/null +++ b/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/AgreementRateList.vue @@ -0,0 +1,127 @@ + + + diff --git a/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/AntiDumpingDutyRateList.vue b/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/AntiDumpingDutyRateList.vue new file mode 100644 index 0000000..7c1935b --- /dev/null +++ b/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/AntiDumpingDutyRateList.vue @@ -0,0 +1,133 @@ + + + diff --git a/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/CIQInfoList.vue b/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/CIQInfoList.vue new file mode 100644 index 0000000..f1b4342 --- /dev/null +++ b/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/CIQInfoList.vue @@ -0,0 +1,117 @@ + + + diff --git a/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/ControlIqList.vue b/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/ControlIqList.vue new file mode 100644 index 0000000..e2ac276 --- /dev/null +++ b/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/ControlIqList.vue @@ -0,0 +1,96 @@ + + + diff --git a/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/ControlMaList.vue b/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/ControlMaList.vue new file mode 100644 index 0000000..110c903 --- /dev/null +++ b/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/ControlMaList.vue @@ -0,0 +1,96 @@ + + + diff --git a/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/ElementForm.vue b/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/ElementForm.vue new file mode 100644 index 0000000..d844ac5 --- /dev/null +++ b/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/ElementForm.vue @@ -0,0 +1,87 @@ + + + diff --git a/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/Elements.vue b/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/Elements.vue new file mode 100644 index 0000000..576fd24 --- /dev/null +++ b/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/Elements.vue @@ -0,0 +1,82 @@ + + + diff --git a/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/HsCodeDyFrom.vue b/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/HsCodeDyFrom.vue new file mode 100644 index 0000000..c2adfdd --- /dev/null +++ b/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/HsCodeDyFrom.vue @@ -0,0 +1,177 @@ + + + + + diff --git a/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/HsCodeDyInfo.vue b/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/HsCodeDyInfo.vue new file mode 100644 index 0000000..b45badc --- /dev/null +++ b/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/HsCodeDyInfo.vue @@ -0,0 +1,426 @@ + + + + + diff --git a/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/HsCodeInfo.vue b/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/HsCodeInfo.vue new file mode 100644 index 0000000..53528b4 --- /dev/null +++ b/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/HsCodeInfo.vue @@ -0,0 +1,528 @@ + + + + + diff --git a/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/HsCodeModel.vue b/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/HsCodeModel.vue new file mode 100644 index 0000000..325a730 --- /dev/null +++ b/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/HsCodeModel.vue @@ -0,0 +1,64 @@ + + + diff --git a/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/HsCodeModelComponent.vue b/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/HsCodeModelComponent.vue new file mode 100644 index 0000000..0bc4c95 --- /dev/null +++ b/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/HsCodeModelComponent.vue @@ -0,0 +1,48 @@ + + + diff --git a/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/HsCodeTabs.vue b/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/HsCodeTabs.vue new file mode 100644 index 0000000..2b58f7c --- /dev/null +++ b/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/HsCodeTabs.vue @@ -0,0 +1,173 @@ + + diff --git a/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/HsCodeTabsModel.vue b/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/HsCodeTabsModel.vue new file mode 100644 index 0000000..9e0142b --- /dev/null +++ b/src/views/sysbasedata/custombasedata/modules/HsCodeComponent/HsCodeTabsModel.vue @@ -0,0 +1,70 @@ + + + diff --git a/src/views/sysbasedata/custombasedata/modules/HsCodeDyTable.vue b/src/views/sysbasedata/custombasedata/modules/HsCodeDyTable.vue new file mode 100644 index 0000000..bacb1c6 --- /dev/null +++ b/src/views/sysbasedata/custombasedata/modules/HsCodeDyTable.vue @@ -0,0 +1,635 @@ + + + + diff --git a/src/views/sysbasedata/custombasedata/modules/HsCodeTable.vue b/src/views/sysbasedata/custombasedata/modules/HsCodeTable.vue new file mode 100644 index 0000000..c3a7e33 --- /dev/null +++ b/src/views/sysbasedata/custombasedata/modules/HsCodeTable.vue @@ -0,0 +1,332 @@ + + + + diff --git a/src/views/sysbasedata/custombasedata/modules/commonParamsList.vue b/src/views/sysbasedata/custombasedata/modules/commonParamsList.vue new file mode 100644 index 0000000..b82e699 --- /dev/null +++ b/src/views/sysbasedata/custombasedata/modules/commonParamsList.vue @@ -0,0 +1,157 @@ + + + + diff --git a/src/views/sysbasedata/eportcard/BaseBdEportCardList.vue b/src/views/sysbasedata/eportcard/BaseBdEportCardList.vue new file mode 100644 index 0000000..6256fee --- /dev/null +++ b/src/views/sysbasedata/eportcard/BaseBdEportCardList.vue @@ -0,0 +1,309 @@ + + + + diff --git a/src/views/sysbasedata/eportcard/modules/BaseBdEportCardForm.vue b/src/views/sysbasedata/eportcard/modules/BaseBdEportCardForm.vue new file mode 100644 index 0000000..021bf21 --- /dev/null +++ b/src/views/sysbasedata/eportcard/modules/BaseBdEportCardForm.vue @@ -0,0 +1,379 @@ + + + diff --git a/src/views/sysbasedata/eportcard/modules/BaseBdEportCardLendForm.vue b/src/views/sysbasedata/eportcard/modules/BaseBdEportCardLendForm.vue new file mode 100644 index 0000000..4bb2e71 --- /dev/null +++ b/src/views/sysbasedata/eportcard/modules/BaseBdEportCardLendForm.vue @@ -0,0 +1,236 @@ + + diff --git a/src/views/sysbasedata/eportcard/modules/BaseBdEportCardLendModal.vue b/src/views/sysbasedata/eportcard/modules/BaseBdEportCardLendModal.vue new file mode 100644 index 0000000..b209835 --- /dev/null +++ b/src/views/sysbasedata/eportcard/modules/BaseBdEportCardLendModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/sysbasedata/eportcard/modules/BaseBdEportCardModal.vue b/src/views/sysbasedata/eportcard/modules/BaseBdEportCardModal.vue new file mode 100644 index 0000000..e511338 --- /dev/null +++ b/src/views/sysbasedata/eportcard/modules/BaseBdEportCardModal.vue @@ -0,0 +1,121 @@ + + + diff --git a/src/views/sysbasedata/eportcard/modules/BaseBdEportCardRecord.vue b/src/views/sysbasedata/eportcard/modules/BaseBdEportCardRecord.vue new file mode 100644 index 0000000..c4a76a6 --- /dev/null +++ b/src/views/sysbasedata/eportcard/modules/BaseBdEportCardRecord.vue @@ -0,0 +1,152 @@ + + + diff --git a/src/views/sysbasedata/eportcard/modules/BaseBdEportCardReturnForm.vue b/src/views/sysbasedata/eportcard/modules/BaseBdEportCardReturnForm.vue new file mode 100644 index 0000000..39fc1ca --- /dev/null +++ b/src/views/sysbasedata/eportcard/modules/BaseBdEportCardReturnForm.vue @@ -0,0 +1,272 @@ + + diff --git a/src/views/sysbasedata/eportcard/modules/BaseBdEportCardReturnModal.vue b/src/views/sysbasedata/eportcard/modules/BaseBdEportCardReturnModal.vue new file mode 100644 index 0000000..a5a7024 --- /dev/null +++ b/src/views/sysbasedata/eportcard/modules/BaseBdEportCardReturnModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/sysbasedata/exgVersion/BaseExgVersionList.vue b/src/views/sysbasedata/exgVersion/BaseExgVersionList.vue new file mode 100644 index 0000000..ac79d3e --- /dev/null +++ b/src/views/sysbasedata/exgVersion/BaseExgVersionList.vue @@ -0,0 +1,177 @@ + + + + diff --git a/src/views/sysbasedata/exgVersion/modules/BaseExgVersionForm.vue b/src/views/sysbasedata/exgVersion/modules/BaseExgVersionForm.vue new file mode 100644 index 0000000..90e9805 --- /dev/null +++ b/src/views/sysbasedata/exgVersion/modules/BaseExgVersionForm.vue @@ -0,0 +1,137 @@ + + + diff --git a/src/views/sysbasedata/exgVersion/modules/BaseExgVersionModal.vue b/src/views/sysbasedata/exgVersion/modules/BaseExgVersionModal.vue new file mode 100644 index 0000000..b160f6b --- /dev/null +++ b/src/views/sysbasedata/exgVersion/modules/BaseExgVersionModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/system/AddressList.vue b/src/views/system/AddressList.vue new file mode 100644 index 0000000..bc8f595 --- /dev/null +++ b/src/views/system/AddressList.vue @@ -0,0 +1,38 @@ + + + + diff --git a/src/views/system/CodeRuleList.vue b/src/views/system/CodeRuleList.vue new file mode 100644 index 0000000..0fc1bd0 --- /dev/null +++ b/src/views/system/CodeRuleList.vue @@ -0,0 +1,191 @@ + + + diff --git a/src/views/system/CompanyConfigList.vue b/src/views/system/CompanyConfigList.vue new file mode 100644 index 0000000..8f176c8 --- /dev/null +++ b/src/views/system/CompanyConfigList.vue @@ -0,0 +1,956 @@ + + + diff --git a/src/views/system/DataLogList.vue b/src/views/system/DataLogList.vue new file mode 100644 index 0000000..a2fbb90 --- /dev/null +++ b/src/views/system/DataLogList.vue @@ -0,0 +1,179 @@ + + + diff --git a/src/views/system/DepartList.vue b/src/views/system/DepartList.vue new file mode 100644 index 0000000..8561d47 --- /dev/null +++ b/src/views/system/DepartList.vue @@ -0,0 +1,805 @@ + + + diff --git a/src/views/system/DepartList2.vue b/src/views/system/DepartList2.vue new file mode 100644 index 0000000..c23b6ba --- /dev/null +++ b/src/views/system/DepartList2.vue @@ -0,0 +1,254 @@ + + + + diff --git a/src/views/system/DepartListSync.vue b/src/views/system/DepartListSync.vue new file mode 100644 index 0000000..742a854 --- /dev/null +++ b/src/views/system/DepartListSync.vue @@ -0,0 +1,677 @@ + + + + diff --git a/src/views/system/DepartUserList.vue b/src/views/system/DepartUserList.vue new file mode 100644 index 0000000..b55b4ca --- /dev/null +++ b/src/views/system/DepartUserList.vue @@ -0,0 +1,252 @@ + + diff --git a/src/views/system/DictDeleteList.vue b/src/views/system/DictDeleteList.vue new file mode 100644 index 0000000..087851e --- /dev/null +++ b/src/views/system/DictDeleteList.vue @@ -0,0 +1,133 @@ + + + + diff --git a/src/views/system/DictItemList.vue b/src/views/system/DictItemList.vue new file mode 100644 index 0000000..67f82a4 --- /dev/null +++ b/src/views/system/DictItemList.vue @@ -0,0 +1,198 @@ + + + + + diff --git a/src/views/system/DictList.vue b/src/views/system/DictList.vue new file mode 100644 index 0000000..9d6d1f0 --- /dev/null +++ b/src/views/system/DictList.vue @@ -0,0 +1,222 @@ + + + diff --git a/src/views/system/LogList.vue b/src/views/system/LogList.vue new file mode 100644 index 0000000..f3434fe --- /dev/null +++ b/src/views/system/LogList.vue @@ -0,0 +1,235 @@ + + + + diff --git a/src/views/system/NewPermissionList.vue b/src/views/system/NewPermissionList.vue new file mode 100644 index 0000000..f4c1a16 --- /dev/null +++ b/src/views/system/NewPermissionList.vue @@ -0,0 +1,308 @@ + + + + diff --git a/src/views/system/PermissionDataRuleList.vue b/src/views/system/PermissionDataRuleList.vue new file mode 100644 index 0000000..eefa45e --- /dev/null +++ b/src/views/system/PermissionDataRuleList.vue @@ -0,0 +1,186 @@ + + + + + diff --git a/src/views/system/PermissionList.vue b/src/views/system/PermissionList.vue new file mode 100644 index 0000000..1b5462c --- /dev/null +++ b/src/views/system/PermissionList.vue @@ -0,0 +1,222 @@ + + + + diff --git a/src/views/system/QuartzJobList.vue b/src/views/system/QuartzJobList.vue new file mode 100644 index 0000000..da34969 --- /dev/null +++ b/src/views/system/QuartzJobList.vue @@ -0,0 +1,284 @@ + + + + diff --git a/src/views/system/RedisManager.vue b/src/views/system/RedisManager.vue new file mode 100644 index 0000000..cfd4d0b --- /dev/null +++ b/src/views/system/RedisManager.vue @@ -0,0 +1,199 @@ + + + + \ No newline at end of file diff --git a/src/views/system/RoleList.vue b/src/views/system/RoleList.vue new file mode 100644 index 0000000..dfa489a --- /dev/null +++ b/src/views/system/RoleList.vue @@ -0,0 +1,236 @@ + + + + diff --git a/src/views/system/RoleUserList.vue b/src/views/system/RoleUserList.vue new file mode 100644 index 0000000..2ec0951 --- /dev/null +++ b/src/views/system/RoleUserList.vue @@ -0,0 +1,670 @@ + + + diff --git a/src/views/system/SysAnnouncementList.vue b/src/views/system/SysAnnouncementList.vue new file mode 100644 index 0000000..a7b5608 --- /dev/null +++ b/src/views/system/SysAnnouncementList.vue @@ -0,0 +1,368 @@ + + + + + diff --git a/src/views/system/SysApiPermsList.vue b/src/views/system/SysApiPermsList.vue new file mode 100644 index 0000000..e165f05 --- /dev/null +++ b/src/views/system/SysApiPermsList.vue @@ -0,0 +1,240 @@ + + + + diff --git a/src/views/system/SysCheckRuleList.vue b/src/views/system/SysCheckRuleList.vue new file mode 100644 index 0000000..0d1b942 --- /dev/null +++ b/src/views/system/SysCheckRuleList.vue @@ -0,0 +1,176 @@ + + + + diff --git a/src/views/system/SysDataSourceList.vue b/src/views/system/SysDataSourceList.vue new file mode 100644 index 0000000..ea542cd --- /dev/null +++ b/src/views/system/SysDataSourceList.vue @@ -0,0 +1,182 @@ + + + + diff --git a/src/views/system/SysFillRuleList.vue b/src/views/system/SysFillRuleList.vue new file mode 100644 index 0000000..9b50c07 --- /dev/null +++ b/src/views/system/SysFillRuleList.vue @@ -0,0 +1,194 @@ + + + + diff --git a/src/views/system/SysGatewayRouteList.vue b/src/views/system/SysGatewayRouteList.vue new file mode 100644 index 0000000..30351ca --- /dev/null +++ b/src/views/system/SysGatewayRouteList.vue @@ -0,0 +1,112 @@ + + + + diff --git a/src/views/system/SysGatewayRouteList2.vue b/src/views/system/SysGatewayRouteList2.vue new file mode 100644 index 0000000..caa0cb0 --- /dev/null +++ b/src/views/system/SysGatewayRouteList2.vue @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/views/system/SysPositionList.vue b/src/views/system/SysPositionList.vue new file mode 100644 index 0000000..ecd9c30 --- /dev/null +++ b/src/views/system/SysPositionList.vue @@ -0,0 +1,180 @@ + + + + diff --git a/src/views/system/SysUserOnlineList.vue b/src/views/system/SysUserOnlineList.vue new file mode 100644 index 0000000..568b33b --- /dev/null +++ b/src/views/system/SysUserOnlineList.vue @@ -0,0 +1,159 @@ + + + + diff --git a/src/views/system/TenantList.vue b/src/views/system/TenantList.vue new file mode 100644 index 0000000..8ecbe5e --- /dev/null +++ b/src/views/system/TenantList.vue @@ -0,0 +1,183 @@ + + + + diff --git a/src/views/system/UserAnnouncementList.vue b/src/views/system/UserAnnouncementList.vue new file mode 100644 index 0000000..3c8d728 --- /dev/null +++ b/src/views/system/UserAnnouncementList.vue @@ -0,0 +1,220 @@ + + + + + diff --git a/src/views/system/UserList.vue b/src/views/system/UserList.vue new file mode 100644 index 0000000..2eacdc8 --- /dev/null +++ b/src/views/system/UserList.vue @@ -0,0 +1,498 @@ + + + + diff --git a/src/views/system/modules/AddressListLeft.vue b/src/views/system/modules/AddressListLeft.vue new file mode 100644 index 0000000..2722271 --- /dev/null +++ b/src/views/system/modules/AddressListLeft.vue @@ -0,0 +1,105 @@ + + + diff --git a/src/views/system/modules/AddressListRight.vue b/src/views/system/modules/AddressListRight.vue new file mode 100644 index 0000000..84b8403 --- /dev/null +++ b/src/views/system/modules/AddressListRight.vue @@ -0,0 +1,266 @@ + + + + + diff --git a/src/views/system/modules/CodeRuleForm.vue b/src/views/system/modules/CodeRuleForm.vue new file mode 100644 index 0000000..f0c1b11 --- /dev/null +++ b/src/views/system/modules/CodeRuleForm.vue @@ -0,0 +1,171 @@ + + + diff --git a/src/views/system/modules/CodeRuleItemForm.vue b/src/views/system/modules/CodeRuleItemForm.vue new file mode 100644 index 0000000..f87aca7 --- /dev/null +++ b/src/views/system/modules/CodeRuleItemForm.vue @@ -0,0 +1,181 @@ + + + + + diff --git a/src/views/system/modules/CodeRuleItemList.vue b/src/views/system/modules/CodeRuleItemList.vue new file mode 100644 index 0000000..b2d518f --- /dev/null +++ b/src/views/system/modules/CodeRuleItemList.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/src/views/system/modules/CodeRuleModal.vue b/src/views/system/modules/CodeRuleModal.vue new file mode 100644 index 0000000..4234397 --- /dev/null +++ b/src/views/system/modules/CodeRuleModal.vue @@ -0,0 +1,60 @@ + + + diff --git a/src/views/system/modules/DataLogCompareModal.vue b/src/views/system/modules/DataLogCompareModal.vue new file mode 100644 index 0000000..f314ba7 --- /dev/null +++ b/src/views/system/modules/DataLogCompareModal.vue @@ -0,0 +1,166 @@ + + + + + + diff --git a/src/views/system/modules/DataLogModal.vue b/src/views/system/modules/DataLogModal.vue new file mode 100644 index 0000000..ed1bcca --- /dev/null +++ b/src/views/system/modules/DataLogModal.vue @@ -0,0 +1,209 @@ + + + diff --git a/src/views/system/modules/DepartAuthModal.vue b/src/views/system/modules/DepartAuthModal.vue new file mode 100644 index 0000000..2358a40 --- /dev/null +++ b/src/views/system/modules/DepartAuthModal.vue @@ -0,0 +1,230 @@ + + + diff --git a/src/views/system/modules/DepartDataruleModal.vue b/src/views/system/modules/DepartDataruleModal.vue new file mode 100644 index 0000000..41ae47e --- /dev/null +++ b/src/views/system/modules/DepartDataruleModal.vue @@ -0,0 +1,133 @@ + + + diff --git a/src/views/system/modules/DepartModal.vue b/src/views/system/modules/DepartModal.vue new file mode 100644 index 0000000..b0fca15 --- /dev/null +++ b/src/views/system/modules/DepartModal.vue @@ -0,0 +1,256 @@ + + + diff --git a/src/views/system/modules/DepartWindow.vue b/src/views/system/modules/DepartWindow.vue new file mode 100644 index 0000000..6cdf31d --- /dev/null +++ b/src/views/system/modules/DepartWindow.vue @@ -0,0 +1,190 @@ + + + + + diff --git a/src/views/system/modules/DeptBaseInfo.vue b/src/views/system/modules/DeptBaseInfo.vue new file mode 100644 index 0000000..183994e --- /dev/null +++ b/src/views/system/modules/DeptBaseInfo.vue @@ -0,0 +1,161 @@ + + \ No newline at end of file diff --git a/src/views/system/modules/DeptRoleAuthModal.vue b/src/views/system/modules/DeptRoleAuthModal.vue new file mode 100644 index 0000000..a213e86 --- /dev/null +++ b/src/views/system/modules/DeptRoleAuthModal.vue @@ -0,0 +1,272 @@ + + + diff --git a/src/views/system/modules/DeptRoleDataruleModal.vue b/src/views/system/modules/DeptRoleDataruleModal.vue new file mode 100644 index 0000000..0aa6abf --- /dev/null +++ b/src/views/system/modules/DeptRoleDataruleModal.vue @@ -0,0 +1,138 @@ + + + diff --git a/src/views/system/modules/DeptRoleInfo.vue b/src/views/system/modules/DeptRoleInfo.vue new file mode 100644 index 0000000..f51e4ce --- /dev/null +++ b/src/views/system/modules/DeptRoleInfo.vue @@ -0,0 +1,189 @@ + + + + + + diff --git a/src/views/system/modules/DeptRoleUserModal.vue b/src/views/system/modules/DeptRoleUserModal.vue new file mode 100644 index 0000000..bcae921 --- /dev/null +++ b/src/views/system/modules/DeptRoleUserModal.vue @@ -0,0 +1,236 @@ + + + + + diff --git a/src/views/system/modules/DeptUserInfo.vue b/src/views/system/modules/DeptUserInfo.vue new file mode 100644 index 0000000..d50630c --- /dev/null +++ b/src/views/system/modules/DeptUserInfo.vue @@ -0,0 +1,340 @@ + + + + + diff --git a/src/views/system/modules/DictItemModal.vue b/src/views/system/modules/DictItemModal.vue new file mode 100644 index 0000000..5289acd --- /dev/null +++ b/src/views/system/modules/DictItemModal.vue @@ -0,0 +1,177 @@ + + + diff --git a/src/views/system/modules/DictModal.vue b/src/views/system/modules/DictModal.vue new file mode 100644 index 0000000..229353e --- /dev/null +++ b/src/views/system/modules/DictModal.vue @@ -0,0 +1,165 @@ + + + diff --git a/src/views/system/modules/GateWayRouteModal.vue b/src/views/system/modules/GateWayRouteModal.vue new file mode 100644 index 0000000..6bf9cd5 --- /dev/null +++ b/src/views/system/modules/GateWayRouteModal.vue @@ -0,0 +1,429 @@ + + + diff --git a/src/views/system/modules/MenuPremsSetting.vue b/src/views/system/modules/MenuPremsSetting.vue new file mode 100644 index 0000000..20ecfd4 --- /dev/null +++ b/src/views/system/modules/MenuPremsSetting.vue @@ -0,0 +1,93 @@ + + + diff --git a/src/views/system/modules/MenuPremsSettingList.vue b/src/views/system/modules/MenuPremsSettingList.vue new file mode 100644 index 0000000..333831f --- /dev/null +++ b/src/views/system/modules/MenuPremsSettingList.vue @@ -0,0 +1,340 @@ + + + + + diff --git a/src/views/system/modules/NoteForm.vue b/src/views/system/modules/NoteForm.vue new file mode 100644 index 0000000..fbd3cb3 --- /dev/null +++ b/src/views/system/modules/NoteForm.vue @@ -0,0 +1,104 @@ + + + diff --git a/src/views/system/modules/NoteModal.vue b/src/views/system/modules/NoteModal.vue new file mode 100644 index 0000000..228f1de --- /dev/null +++ b/src/views/system/modules/NoteModal.vue @@ -0,0 +1,60 @@ + + + diff --git a/src/views/system/modules/PasswordModal.vue b/src/views/system/modules/PasswordModal.vue new file mode 100644 index 0000000..49402d2 --- /dev/null +++ b/src/views/system/modules/PasswordModal.vue @@ -0,0 +1,167 @@ + + + diff --git a/src/views/system/modules/PermissionDataRuleModal.vue b/src/views/system/modules/PermissionDataRuleModal.vue new file mode 100644 index 0000000..c108f7f --- /dev/null +++ b/src/views/system/modules/PermissionDataRuleModal.vue @@ -0,0 +1,197 @@ + + diff --git a/src/views/system/modules/PermissionModal.vue b/src/views/system/modules/PermissionModal.vue new file mode 100644 index 0000000..636cc02 --- /dev/null +++ b/src/views/system/modules/PermissionModal.vue @@ -0,0 +1,489 @@ + + + diff --git a/src/views/system/modules/QuartzJobModal.vue b/src/views/system/modules/QuartzJobModal.vue new file mode 100644 index 0000000..eb06e3f --- /dev/null +++ b/src/views/system/modules/QuartzJobModal.vue @@ -0,0 +1,133 @@ + + + + diff --git a/src/views/system/modules/RoleDataruleModal.vue b/src/views/system/modules/RoleDataruleModal.vue new file mode 100644 index 0000000..8fd7fce --- /dev/null +++ b/src/views/system/modules/RoleDataruleModal.vue @@ -0,0 +1,136 @@ + + + diff --git a/src/views/system/modules/RoleModal.vue b/src/views/system/modules/RoleModal.vue new file mode 100644 index 0000000..42dba37 --- /dev/null +++ b/src/views/system/modules/RoleModal.vue @@ -0,0 +1,175 @@ + + + diff --git a/src/views/system/modules/SelectUserListModal.vue b/src/views/system/modules/SelectUserListModal.vue new file mode 100644 index 0000000..7234857 --- /dev/null +++ b/src/views/system/modules/SelectUserListModal.vue @@ -0,0 +1,349 @@ + + + + diff --git a/src/views/system/modules/SelectUserModal.vue b/src/views/system/modules/SelectUserModal.vue new file mode 100644 index 0000000..b991dac --- /dev/null +++ b/src/views/system/modules/SelectUserModal.vue @@ -0,0 +1,301 @@ + + + + diff --git a/src/views/system/modules/SysAnnouncementModal.vue b/src/views/system/modules/SysAnnouncementModal.vue new file mode 100644 index 0000000..359260e --- /dev/null +++ b/src/views/system/modules/SysAnnouncementModal.vue @@ -0,0 +1,420 @@ + + + diff --git a/src/views/system/modules/SysApiPermsForm.vue b/src/views/system/modules/SysApiPermsForm.vue new file mode 100644 index 0000000..ffb0cc7 --- /dev/null +++ b/src/views/system/modules/SysApiPermsForm.vue @@ -0,0 +1,187 @@ + + + diff --git a/src/views/system/modules/SysApiPermsModal.vue b/src/views/system/modules/SysApiPermsModal.vue new file mode 100644 index 0000000..cbd14de --- /dev/null +++ b/src/views/system/modules/SysApiPermsModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/system/modules/SysCheckRuleModal.vue b/src/views/system/modules/SysCheckRuleModal.vue new file mode 100644 index 0000000..0a7c258 --- /dev/null +++ b/src/views/system/modules/SysCheckRuleModal.vue @@ -0,0 +1,421 @@ + + + + + diff --git a/src/views/system/modules/SysCheckRuleTestModal.vue b/src/views/system/modules/SysCheckRuleTestModal.vue new file mode 100644 index 0000000..e1ed215 --- /dev/null +++ b/src/views/system/modules/SysCheckRuleTestModal.vue @@ -0,0 +1,72 @@ + + + + + diff --git a/src/views/system/modules/SysDataSourceModal.vue b/src/views/system/modules/SysDataSourceModal.vue new file mode 100644 index 0000000..c4e0365 --- /dev/null +++ b/src/views/system/modules/SysDataSourceModal.vue @@ -0,0 +1,329 @@ + + + + + diff --git a/src/views/system/modules/SysDepartRoleModal.vue b/src/views/system/modules/SysDepartRoleModal.vue new file mode 100644 index 0000000..c4eb938 --- /dev/null +++ b/src/views/system/modules/SysDepartRoleModal.vue @@ -0,0 +1,167 @@ + + + \ No newline at end of file diff --git a/src/views/system/modules/SysFillRuleModal.vue b/src/views/system/modules/SysFillRuleModal.vue new file mode 100644 index 0000000..320ee71 --- /dev/null +++ b/src/views/system/modules/SysFillRuleModal.vue @@ -0,0 +1,140 @@ + + + + + + diff --git a/src/views/system/modules/SysPositionModal.vue b/src/views/system/modules/SysPositionModal.vue new file mode 100644 index 0000000..6283ae9 --- /dev/null +++ b/src/views/system/modules/SysPositionModal.vue @@ -0,0 +1,186 @@ + + + diff --git a/src/views/system/modules/SysUserAgentModal.vue b/src/views/system/modules/SysUserAgentModal.vue new file mode 100644 index 0000000..2fd52ea --- /dev/null +++ b/src/views/system/modules/SysUserAgentModal.vue @@ -0,0 +1,198 @@ + + + diff --git a/src/views/system/modules/TenantForm.vue b/src/views/system/modules/TenantForm.vue new file mode 100644 index 0000000..513bc29 --- /dev/null +++ b/src/views/system/modules/TenantForm.vue @@ -0,0 +1,315 @@ + + + + diff --git a/src/views/system/modules/TenantModal.vue b/src/views/system/modules/TenantModal.vue new file mode 100644 index 0000000..3357622 --- /dev/null +++ b/src/views/system/modules/TenantModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/system/modules/TenantRoleModal.vue b/src/views/system/modules/TenantRoleModal.vue new file mode 100644 index 0000000..4493483 --- /dev/null +++ b/src/views/system/modules/TenantRoleModal.vue @@ -0,0 +1,258 @@ + + + diff --git a/src/views/system/modules/UserModal.vue b/src/views/system/modules/UserModal.vue new file mode 100644 index 0000000..8dde643 --- /dev/null +++ b/src/views/system/modules/UserModal.vue @@ -0,0 +1,777 @@ + + + + + diff --git a/src/views/system/modules/UserRecycleBinModal.vue b/src/views/system/modules/UserRecycleBinModal.vue new file mode 100644 index 0000000..eaa3942 --- /dev/null +++ b/src/views/system/modules/UserRecycleBinModal.vue @@ -0,0 +1,199 @@ + + + + + + diff --git a/src/views/system/modules/UserRoleModal.vue b/src/views/system/modules/UserRoleModal.vue new file mode 100644 index 0000000..fa5ba27 --- /dev/null +++ b/src/views/system/modules/UserRoleModal.vue @@ -0,0 +1,269 @@ + + + diff --git a/src/views/system/modules/UserRolePremsListCheckBox.vue b/src/views/system/modules/UserRolePremsListCheckBox.vue new file mode 100644 index 0000000..71445d1 --- /dev/null +++ b/src/views/system/modules/UserRolePremsListCheckBox.vue @@ -0,0 +1,187 @@ + + + + + diff --git a/src/views/system/modules/UserRolePremsSetting.vue b/src/views/system/modules/UserRolePremsSetting.vue new file mode 100644 index 0000000..71287a5 --- /dev/null +++ b/src/views/system/modules/UserRolePremsSetting.vue @@ -0,0 +1,372 @@ + + + diff --git a/src/views/system/modules/icon/Icon.less b/src/views/system/modules/icon/Icon.less new file mode 100644 index 0000000..9e3012d --- /dev/null +++ b/src/views/system/modules/icon/Icon.less @@ -0,0 +1,41 @@ +@active-color: #4a4a48; + +ul { + max-height: 700px; + overflow-y: auto; + padding-left: 0.5rem; + + i { + font-size: 1.5rem; + border: 1px solid #f1f1f1; + padding: 0.2rem; + margin: 0.3rem; + cursor: pointer; + + &.active, + &:hover { + border-radius: 2px; + border-color: @active-color; + background-color: @active-color; + color: #ffffff; + transition: all 0.3s; + } + } + + li { + list-style: none; + float: left; + width: 5%; + text-align: center; + cursor: pointer; + color: #555555; + transition: color 0.3s ease-in-out, background-color 0.3s ease-in-out; + position: relative; + margin: 3px 0; + border-radius: 4px; + background-color: #ffffff; + overflow: hidden; + padding: 10px 0 0; + } +} + diff --git a/src/views/system/modules/icon/Icons.vue b/src/views/system/modules/icon/Icons.vue new file mode 100644 index 0000000..b80d40a --- /dev/null +++ b/src/views/system/modules/icon/Icons.vue @@ -0,0 +1,114 @@ + + + diff --git a/src/views/taxation/CusHscodeList.vue b/src/views/taxation/CusHscodeList.vue new file mode 100644 index 0000000..1894eca --- /dev/null +++ b/src/views/taxation/CusHscodeList.vue @@ -0,0 +1,329 @@ + + + + diff --git a/src/views/taxation/LvTaxOfficialList.vue b/src/views/taxation/LvTaxOfficialList.vue new file mode 100644 index 0000000..9a8062d --- /dev/null +++ b/src/views/taxation/LvTaxOfficialList.vue @@ -0,0 +1,462 @@ + + + diff --git a/src/views/taxation/LvTaxRateList.vue b/src/views/taxation/LvTaxRateList.vue new file mode 100644 index 0000000..61d0353 --- /dev/null +++ b/src/views/taxation/LvTaxRateList.vue @@ -0,0 +1,192 @@ + + + + diff --git a/src/views/taxation/TaxExchangeRateList.vue b/src/views/taxation/TaxExchangeRateList.vue new file mode 100644 index 0000000..2eae0c7 --- /dev/null +++ b/src/views/taxation/TaxExchangeRateList.vue @@ -0,0 +1,155 @@ + + + + diff --git a/src/views/taxation/TaxRateList.vue b/src/views/taxation/TaxRateList.vue new file mode 100644 index 0000000..2c1b775 --- /dev/null +++ b/src/views/taxation/TaxRateList.vue @@ -0,0 +1,206 @@ + + + + diff --git a/src/views/taxation/estimate/BillEstimatedEntryDetail.vue b/src/views/taxation/estimate/BillEstimatedEntryDetail.vue new file mode 100644 index 0000000..528110c --- /dev/null +++ b/src/views/taxation/estimate/BillEstimatedEntryDetail.vue @@ -0,0 +1,245 @@ + + + + diff --git a/src/views/taxation/estimate/BillEstimatedTax.vue b/src/views/taxation/estimate/BillEstimatedTax.vue new file mode 100644 index 0000000..79e7661 --- /dev/null +++ b/src/views/taxation/estimate/BillEstimatedTax.vue @@ -0,0 +1,254 @@ + + \ No newline at end of file diff --git a/src/views/taxation/estimate/BillTaxBackFillInfo.vue b/src/views/taxation/estimate/BillTaxBackFillInfo.vue new file mode 100644 index 0000000..b3b7e73 --- /dev/null +++ b/src/views/taxation/estimate/BillTaxBackFillInfo.vue @@ -0,0 +1,119 @@ + + diff --git a/src/views/taxation/estimate/TaxEntryBillListList.vue b/src/views/taxation/estimate/TaxEntryBillListList.vue new file mode 100644 index 0000000..2b74854 --- /dev/null +++ b/src/views/taxation/estimate/TaxEntryBillListList.vue @@ -0,0 +1,641 @@ + + + + + diff --git a/src/views/taxation/estimate/TaxEntryListList.vue b/src/views/taxation/estimate/TaxEntryListList.vue new file mode 100644 index 0000000..ceb74af --- /dev/null +++ b/src/views/taxation/estimate/TaxEntryListList.vue @@ -0,0 +1,630 @@ + + + + + diff --git a/src/views/taxation/modules/AddTaxGuarantee.vue b/src/views/taxation/modules/AddTaxGuarantee.vue new file mode 100644 index 0000000..bf3ed32 --- /dev/null +++ b/src/views/taxation/modules/AddTaxGuarantee.vue @@ -0,0 +1,336 @@ + + + + + diff --git a/src/views/taxation/modules/CusHscodeForm.vue b/src/views/taxation/modules/CusHscodeForm.vue new file mode 100644 index 0000000..9ad86d5 --- /dev/null +++ b/src/views/taxation/modules/CusHscodeForm.vue @@ -0,0 +1,401 @@ + + + diff --git a/src/views/taxation/modules/CusHscodeModal.vue b/src/views/taxation/modules/CusHscodeModal.vue new file mode 100644 index 0000000..b12a205 --- /dev/null +++ b/src/views/taxation/modules/CusHscodeModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/taxation/modules/LvTaxEstimateForm.vue b/src/views/taxation/modules/LvTaxEstimateForm.vue new file mode 100644 index 0000000..2ff1781 --- /dev/null +++ b/src/views/taxation/modules/LvTaxEstimateForm.vue @@ -0,0 +1,644 @@ + + + diff --git a/src/views/taxation/modules/LvTaxOfficialForm.vue b/src/views/taxation/modules/LvTaxOfficialForm.vue new file mode 100644 index 0000000..6e4accb --- /dev/null +++ b/src/views/taxation/modules/LvTaxOfficialForm.vue @@ -0,0 +1,788 @@ + + + diff --git a/src/views/taxation/modules/LvTaxOfficialModal.vue b/src/views/taxation/modules/LvTaxOfficialModal.vue new file mode 100644 index 0000000..cbce23e --- /dev/null +++ b/src/views/taxation/modules/LvTaxOfficialModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/taxation/modules/LvTaxRateCountryForm.vue b/src/views/taxation/modules/LvTaxRateCountryForm.vue new file mode 100644 index 0000000..78c4073 --- /dev/null +++ b/src/views/taxation/modules/LvTaxRateCountryForm.vue @@ -0,0 +1,123 @@ + + + diff --git a/src/views/taxation/modules/LvTaxRateForm.vue b/src/views/taxation/modules/LvTaxRateForm.vue new file mode 100644 index 0000000..5b1170c --- /dev/null +++ b/src/views/taxation/modules/LvTaxRateForm.vue @@ -0,0 +1,183 @@ + + + diff --git a/src/views/taxation/modules/LvTaxRateListInfo.vue b/src/views/taxation/modules/LvTaxRateListInfo.vue new file mode 100644 index 0000000..16c1197 --- /dev/null +++ b/src/views/taxation/modules/LvTaxRateListInfo.vue @@ -0,0 +1,247 @@ + + + + + diff --git a/src/views/taxation/modules/LvTaxRateModal.vue b/src/views/taxation/modules/LvTaxRateModal.vue new file mode 100644 index 0000000..4c20744 --- /dev/null +++ b/src/views/taxation/modules/LvTaxRateModal.vue @@ -0,0 +1,70 @@ + + + diff --git a/src/views/taxation/modules/OfficialTaxForm.vue b/src/views/taxation/modules/OfficialTaxForm.vue new file mode 100644 index 0000000..70e8f3e --- /dev/null +++ b/src/views/taxation/modules/OfficialTaxForm.vue @@ -0,0 +1,545 @@ + + + diff --git a/src/views/taxation/modules/TaxEntryBillListForm.vue b/src/views/taxation/modules/TaxEntryBillListForm.vue new file mode 100644 index 0000000..4723831 --- /dev/null +++ b/src/views/taxation/modules/TaxEntryBillListForm.vue @@ -0,0 +1,1179 @@ + + + diff --git a/src/views/taxation/modules/TaxEntryBillListModal.vue b/src/views/taxation/modules/TaxEntryBillListModal.vue new file mode 100644 index 0000000..d97e53b --- /dev/null +++ b/src/views/taxation/modules/TaxEntryBillListModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/taxation/modules/TaxEntryListForm.vue b/src/views/taxation/modules/TaxEntryListForm.vue new file mode 100644 index 0000000..4172233 --- /dev/null +++ b/src/views/taxation/modules/TaxEntryListForm.vue @@ -0,0 +1,750 @@ + + + diff --git a/src/views/taxation/modules/TaxEntryListModal.vue b/src/views/taxation/modules/TaxEntryListModal.vue new file mode 100644 index 0000000..339cb3d --- /dev/null +++ b/src/views/taxation/modules/TaxEntryListModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/taxation/modules/TaxExchangeRateForm.vue b/src/views/taxation/modules/TaxExchangeRateForm.vue new file mode 100644 index 0000000..e449332 --- /dev/null +++ b/src/views/taxation/modules/TaxExchangeRateForm.vue @@ -0,0 +1,213 @@ + + + diff --git a/src/views/taxation/modules/TaxExchangeRateModal.vue b/src/views/taxation/modules/TaxExchangeRateModal.vue new file mode 100644 index 0000000..d988ccd --- /dev/null +++ b/src/views/taxation/modules/TaxExchangeRateModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/taxation/modules/TaxRateForm.vue b/src/views/taxation/modules/TaxRateForm.vue new file mode 100644 index 0000000..ae7a66d --- /dev/null +++ b/src/views/taxation/modules/TaxRateForm.vue @@ -0,0 +1,217 @@ + + + diff --git a/src/views/taxation/modules/TaxRateModal.vue b/src/views/taxation/modules/TaxRateModal.vue new file mode 100644 index 0000000..b9e01e2 --- /dev/null +++ b/src/views/taxation/modules/TaxRateModal.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/user/Login.vue b/src/views/user/Login.vue new file mode 100644 index 0000000..705f392 --- /dev/null +++ b/src/views/user/Login.vue @@ -0,0 +1,275 @@ + + + + diff --git a/src/views/user/LoginAccount.vue b/src/views/user/LoginAccount.vue new file mode 100644 index 0000000..8067da3 --- /dev/null +++ b/src/views/user/LoginAccount.vue @@ -0,0 +1,313 @@ + + + diff --git a/src/views/user/LoginAdmin.vue b/src/views/user/LoginAdmin.vue new file mode 100644 index 0000000..90b976a --- /dev/null +++ b/src/views/user/LoginAdmin.vue @@ -0,0 +1,14 @@ + diff --git a/src/views/user/LoginPhone.vue b/src/views/user/LoginPhone.vue new file mode 100644 index 0000000..fda1de3 --- /dev/null +++ b/src/views/user/LoginPhone.vue @@ -0,0 +1,152 @@ + + + diff --git a/src/views/user/LoginSelectTenant.vue b/src/views/user/LoginSelectTenant.vue new file mode 100644 index 0000000..e31eddd --- /dev/null +++ b/src/views/user/LoginSelectTenant.vue @@ -0,0 +1,270 @@ + + + + diff --git a/src/views/user/alteration/Alteration.vue b/src/views/user/alteration/Alteration.vue new file mode 100644 index 0000000..7f726e1 --- /dev/null +++ b/src/views/user/alteration/Alteration.vue @@ -0,0 +1,92 @@ + + + + + diff --git a/src/views/user/alteration/Step1.vue b/src/views/user/alteration/Step1.vue new file mode 100644 index 0000000..0672e18 --- /dev/null +++ b/src/views/user/alteration/Step1.vue @@ -0,0 +1,219 @@ + + + diff --git a/src/views/user/alteration/Step2.vue b/src/views/user/alteration/Step2.vue new file mode 100644 index 0000000..579b4e4 --- /dev/null +++ b/src/views/user/alteration/Step2.vue @@ -0,0 +1,179 @@ + + + + + diff --git a/src/views/user/alteration/Step3.vue b/src/views/user/alteration/Step3.vue new file mode 100644 index 0000000..151063e --- /dev/null +++ b/src/views/user/alteration/Step3.vue @@ -0,0 +1,121 @@ + + + + diff --git a/src/views/user/alteration/Step4.vue b/src/views/user/alteration/Step4.vue new file mode 100644 index 0000000..560356a --- /dev/null +++ b/src/views/user/alteration/Step4.vue @@ -0,0 +1,63 @@ + + + + diff --git a/src/views/user/oauth2/LoginAuthCode.vue b/src/views/user/oauth2/LoginAuthCode.vue new file mode 100644 index 0000000..f6093e4 --- /dev/null +++ b/src/views/user/oauth2/LoginAuthCode.vue @@ -0,0 +1,270 @@ + + + + + + diff --git a/src/views/user/oauth2/OAuth2Login.vue b/src/views/user/oauth2/OAuth2Login.vue new file mode 100644 index 0000000..09a8317 --- /dev/null +++ b/src/views/user/oauth2/OAuth2Login.vue @@ -0,0 +1,127 @@ + + + diff --git a/src/views/user/register/Register.vue b/src/views/user/register/Register.vue new file mode 100644 index 0000000..ae592ef --- /dev/null +++ b/src/views/user/register/Register.vue @@ -0,0 +1,435 @@ + + + + + diff --git a/src/views/user/register/RegisterResult.vue b/src/views/user/register/RegisterResult.vue new file mode 100644 index 0000000..584a7cc --- /dev/null +++ b/src/views/user/register/RegisterResult.vue @@ -0,0 +1,52 @@ + + + diff --git a/src/views/user/third/JeecgThirdLoginMixin.js b/src/views/user/third/JeecgThirdLoginMixin.js new file mode 100644 index 0000000..1addd4d --- /dev/null +++ b/src/views/user/third/JeecgThirdLoginMixin.js @@ -0,0 +1,210 @@ +/** + *第三方登录 + */ +import { mapActions } from 'vuex' +import { postAction } from '@api/manage' +import { timeFix } from '@/utils/util' + +export const JeecgThirdLoginMixin = { + data() { + return { + //第三方登录相关信息 + thirdLoginInfo: '', + thirdPasswordShow: false, + // thirdLoginPwd: '', + thirdLoginUser: '', + thirdConfirmShow: false, + thirdCreateUserLoding: false, + thirdLoginState: false, + //绑定手机号弹窗 + bindingPhoneModal: false, + thirdPhone: '', + thirdCaptcha: '', + //获取验证码按钮30s之内是否可点击 + thirdState: { + time: 30, + smsSendBtn: false + }, + //第三方用户UUID + thirdUserUuid: '', + thirdType: '', + url: { + bindingThirdPhone: '/sys/thirdLogin/bindingThirdPhone' + } + } + }, + created() { + }, + methods: { + ...mapActions(['ThirdLogin']), + //第三方登录 + onThirdLogin(source) { + const url = window._CONFIG['domianURL'] + `/sys/thirdLogin/render/${source}` + window.open(url, `login ${source}`, 'height=500, width=500, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=n o, status=no') + const that = this + that.thirdType = source + that.thirdLoginInfo = '' + that.thirdLoginState = false + const receiveMessage = function(event) { + const token = event.data + if (typeof token === 'string') { + //如果是字符串类型 说明是token信息 + if (token === '登录失败') { + that.$message.warning(token) + } else if (token.includes('绑定手机号')) { + that.bindingPhoneModal = true + const strings = token.split(',') + that.thirdUserUuid = strings[1] + } else { + that.doThirdLogin(token) + } + } else if (typeof token === 'object') { + //对象类型 说明需要提示是否绑定现有账号 + if (token['isObj'] === true) { + that.thirdConfirmShow = true + that.thirdLoginInfo = { ...token } + } + } else { + that.$message.warning('不识别的信息传递') + } + } + window.addEventListener('message', receiveMessage, false) + }, + // 根据token执行登录 + doThirdLogin(token) { + if (this.thirdLoginState === false) { + this.thirdLoginState = true + const param={}; + param.thirdType=this.thirdType + param.token=token + this.ThirdLogin(param).then(res => { + if (res.success) { + this.loginSuccess() + } else { + this.requestFailed(res) + } + }) + } + }, + // 绑定已有账号 需要输入密码 + thirdLoginUserBind() { + // this.thirdLoginPwd = '' + this.thirdLoginUser = this.thirdLoginInfo.uuid + this.thirdConfirmShow = false + this.thirdPasswordShow = true + }, + //创建新账号 + thirdLoginUserCreate() { + this.thirdCreateUserLoding = true + // 账号名后面添加两位随机数 + //this.thirdLoginInfo.operateCode = 123 //测试校验失败 + postAction('/sys/third/user/create', this.thirdLoginInfo).then(res => { + if (res.success) { + const token = res.result + console.log('thirdCreateNewAccount', token) + this.doThirdLogin(token) + this.thirdConfirmShow = false + } else { + this.$message.warning(res.message) + } + }).finally(() => { + this.thirdCreateUserLoding = false + }) + }, + // 核实密码 + thirdLoginCheckPassword() { + //this.thirdLoginInfo.operateCode = 123 //测试校验失败 + // const param = Object.assign({}, this.thirdLoginInfo, { password: this.thirdLoginPwd }) + // postAction('/sys/third/user/checkPassword', param).then(res => { + // if (res.success) { + // this.thirdLoginNoPassword() + // this.doThirdLogin(res.result) + // } else { + // this.$message.warning(res.message) + // } + // }) + }, + // 没有密码 取消操作 + thirdLoginNoPassword() { + this.thirdPasswordShow = false + // this.thirdLoginPwd = '' + this.thirdLoginUser = '' + }, + //获取第三方验证码 + getThirdCaptcha() { + const that = this + if (!this.thirdPhone) { + that.cmsFailed('请输入手机号') + } else { + this.thirdState.smsSendBtn = true + const interval = window.setInterval(() => { + if (that.thirdState.time-- <= 0) { + that.thirdState.time = 30 + that.thirdState.smsSendBtn = false + window.clearInterval(interval) + } + }, 1000) + const hide = this.$message.loading('验证码发送中..', 0) + const smsParams = {} + smsParams.mobile = this.thirdPhone + smsParams.smsmode = '0' + postAction('/sys/sms', smsParams).then(res => { + if (!res.success) { + setTimeout(hide, 0) + this.cmsFailed(res.message) + } + setTimeout(hide, 500) + }).catch(err => { + setTimeout(hide, 1) + clearInterval(interval) + that.thirdState.time = 30 + that.thirdState.smsSendBtn = false + this.requestFailed(err) + }) + } + }, + //绑定手机号点击确定按钮 + thirdHandleOk() { + const bingingParams = {} + bingingParams.mobile = this.thirdPhone + bingingParams.captcha = this.thirdCaptcha + bingingParams.thirdUserUuid = this.thirdUserUuid + postAction(this.url.bindingThirdPhone, bingingParams).then(res => { + if (res.success) { + this.bindingPhoneModal = false + this.doThirdLogin(res.result) + } else { + this.$message.warning(res.message) + } + }) + }, + loginSuccess () { + // update-begin- author:sunjianlei --- date:20190812 --- for: 登录成功后不解除禁用按钮,防止多次点击 + // this.loginBtn = false + // update-end- author:sunjianlei --- date:20190812 --- for: 登录成功后不解除禁用按钮,防止多次点击 + this.$router.push({ path: "/dashboard/analysis" }).catch(()=>{ + console.log('登录跳转首页出错,这个错误从哪里来的') + }) + this.$notification.success({ + message: '欢迎', + description: `${timeFix()},欢迎回来`, + }); + }, + cmsFailed(err){ + this.$notification[ 'error' ]({ + message: "登录失败", + description:err, + duration: 4, + }); + }, + requestFailed (err) { + this.$notification[ 'error' ]({ + message: '登录失败', + description: ((err.response || {}).data || {}).message || err.message || "请求出现错误,请稍后再试", + duration: 4, + }); + this.loginBtn = false; + }, + } + +} \ No newline at end of file diff --git a/src/views/user/third/ThirdLogin.vue b/src/views/user/third/ThirdLogin.vue new file mode 100644 index 0000000..aa3b49c --- /dev/null +++ b/src/views/user/third/ThirdLogin.vue @@ -0,0 +1,194 @@ + + + + + diff --git a/static/mdReset.less b/static/mdReset.less new file mode 100644 index 0000000..644a2d7 --- /dev/null +++ b/static/mdReset.less @@ -0,0 +1,583 @@ +/* stylelint-disable */ +@import url(../src/assets/less/common.less); + +/********************************* 自定义变量 ************************************/ +@font-family: @fant-family; +@modal-form-background-color: #fcfcfc; +@form-control-fontsize: 12px; +@form-label-fontsize: 12px; +@form-lineheight: 12px; +// @form-element-height: 22px; +@form-element-height: 28px; +@form-element-lineheight: 22px; +@btn-height: 26px; +@btn-lineheight: 24px; +@table-fontsize: 12px; +@tab-border-topcolor: @theme-color; +@border-color: #d9d9d9; +@arrow-color: @theme-color; +@table-selected-row-bg: #9ce7fd; // +@table-selected-row-hover-bg: #9ce7fd; // +// @primary-color: #0077ff; +@primary-color: #0077ff; + +html, +body { + font-family: @font-family; + overflow: hidden hidden; +} + +///自定义设置 +.thor-fit { + width: auto; + overflow: auto; + position: relative; +} + +// // 按钮 +// .md-button--primary { +// background-color: @primary-color; +// } +// checkbox +.md-checkbox.is-checked .md-checkbox__inner { + background-color: @primary-color; + border-color: @primary-color; +} + +.md-checkbox.is-checked .md-checkbox__label { + color: @primary-color; +} +// tabs +.md-tabs__item.is-active { + color: @primary-color; +} + +.md-tabs__active-bar { + background-color: @primary-color; +} + +.md-tabs__nav-next, +.md-tabs__nav-prev { + line-height: 28px !important; +} + +.table-operator { + div:has(.md-upload) { + display: inline-block; + } + + .md-button { + margin: 0 8px 4px 0; + line-height: 1.499; + height: @btn-height; + font-size: @form-control-fontsize; + border-radius: 2px; + padding: 0 10px; + } +} + +/**************** serch *******************/ +.md-row > span { + display: block; + width: 100%; +} + +.table-page-search-wrapper { + padding: 6px; + border: 0 solid #e8e8e8; + + .md-form .md-form-item { + height: 34px; + display: flex; + align-items: center; + margin-bottom: 0; + margin-right: 0; + padding-right: 2px; + + .md-form-item__label { + width: 100px; + } + + .md-form-item__content { + flex: 1 1; + flex: 1 1; + display: inline-block; + vertical-align: middle; + } + } + + .md-form.md-form--label-left { + border: 1px solid #e8e8e8; + } + + .table-page-search-submitButtons { + display: flex; + align-items: center; + float: left; + overflow: hidden; + + .md-button { + padding: 0 4px; + + i { + margin-right: 2px !important; + font-size: 14px !important; + } + } + + .unfold-fold-status { + margin-left: 8px; + } + } + + .leftArea { + position: absolute; + top: 2px; + right: 20px; + } + + .filterBox { + cursor: pointer; + border: 1px solid #999999; + width: 26px; + height: 26px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 2px; + + .iconfont { + font-weight: 700; + font-size: 14px; + } + } +} + +/****************** form ************************************/ + +.ant-modal-body { + .md-form { + .md-row { + .md-col { + margin-bottom: 0; + } + } + } +} + +.md-form { + background-color: #ffffff; + font-size: @form-control-fontsize; + + .md-row { + .md-col { + // margin-bottom: 6px; + .md-form-item { + // height: 27px; + display: flex; + // align-items: center; + box-sizing: border-box; + margin: 0; + padding: 0; + color: rgba(0, 0, 0, 65%); + font-size: @form-control-fontsize; + font-variant: tabular-nums; + line-height: 1; + font-feature-settings: 'tnum'; + margin-bottom: 0; + vertical-align: top; + } + } + } +} +.md-textarea { + font-size: 12px; + textarea { + padding: 2px; + } +} +.md-input { + display: flex; + align-items: center; +} + +.md-input-number.md-input-number.is-controls-right { + width: 100%; + + .md-input__inner { + box-sizing: border-box; + font-variant: tabular-nums; + list-style: none; + font-feature-settings: 'tnum'; + position: relative; + width: 100%; + // height: @form-element-height; + // color: rgba(0, 0, 0, 65%); + font-size: @form-control-fontsize; + line-height: @form-lineheight; + // background-color: #ffffff; + background-image: none; + transition: all 0.3s; + display: inline-block; + // margin: 1.5px 0; + border: 1px solid #d9d9d9; + border-radius: 0; + padding: 2px; + } +} + +.mdDatePicker, +.md-select .md-input { + // box-sizing: border-box; + // margin: 1.5px 0; + // padding: 0; + // color: rgba(0, 0, 0, 65%); + // font-size: @form-label-fontsize; + // font-variant: tabular-nums; + // line-height: @btn-lineheight; + // list-style: none; + // font-feature-settings: 'tnum'; + // position: relative; + // display: inline-block; + // outline: 0; + line-height: 26px; + + .md-input__inner { + font-size: @form-label-fontsize; + padding-left: 2px; + } +} + +/**************************************** button ***********************************************/ +.table-operator { + padding-left: 6px; + background: #ffffff; + border-bottom: solid 1px @border-color; + border: solid 1px @border-color; + padding-top: 4px; + margin-bottom: 0; + + .md-button { + margin: 0 8px 4px 0; + } +} + +/** Button按钮间距 */ +.table-operator .table-operator .md-button-group .md-button { + margin: 0; +} + +.table-operator .md-button-group .md-button:last-child { + margin: 8px 8px 4px; +} + +.md-button { + line-height: 1.499; + height: @btn-height; + font-size: @form-control-fontsize; + border-radius: 2px; + padding: 0 10px; +} + +.table-operator > .ant-dropdown-menu { + background-color: @theme-color; + color: #ffffff; +} + +.ant-modal-footer .md-button:last-child { + // background-color: @theme-color; + color: #ffffff; +} + +.md-input__inner { + box-sizing: border-box; + margin: 1.5px 0; + font-variant: tabular-nums; + list-style: none; + font-feature-settings: 'tnum'; + position: relative; + display: inline-block; + width: 100%; + height: 26px; + line-height: 26px; + // height: @form-element-height; + padding: 2px; + color: rgba(0, 0, 0, 65%); + font-size: @form-control-fontsize; + // line-height: @form-lineheight; + background-color: #ffffff; + background-image: none; + border: 1px solid #d9d9d9; + border-radius: 0; + transition: all 0.3s; + // &::-webkit-input-placeholder { + // color: transparent; + // } +} +// .md-row .md-col { +// height: 34px; +// } +// .md-input__inner::-webkit-input-placeholder { +// opacity: 0; +// } + +/* 解决下拉框样式问题 错误情况下样式 20220829 reeve st */ +.has-error .ant-select-selection { + border-color: #f5222d !important; +} + +/* 解决下拉框样式问题 20220829 reeve ed */ +.md-select-dropdown ul li:nth-child(odd) { + background-color: #ffffff; +} + +.md-select-dropdown ul li:nth-child(even) { + background-color: #fafafa; +} + +.md-select-dropdown ul li.md-select-dropdown__item { + height: @form-element-height; + font-size: @form-control-fontsize; + line-height: @form-element-lineheight; + padding: 0 0 0 8px; +} + +.ant-select-dropdown-menu-item { + height: @form-element-height; + font-size: @form-control-fontsize; + line-height: @form-element-lineheight; + padding: 0 0 0 8px; +} + +.ant-select-selection--single { + position: relative; + // height: @form-element-height; + height: 24px; + // line-height: @form-element-lineheight; + cursor: pointer; +} + +.ant-select-selection--multiple { + min-height: @form-element-height; + padding-bottom: 0; + cursor: text; + zoom: 1; +} + +.ant-select-selection__rendered { + line-height: 20px; + margin-left: 0; +} + +.ant-select-selection--multiple > ul > li, +.ant-select-selection--multiple .ant-select-selection__rendered > ul > li { + height: 19px; + margin-top: 0; + line-height: 19px; +} + +.md-input__suffix { + right: 0; +} + +.md-input--suffix .md-input__suffix .md-tooltip { + margin-right: 5px; +} + +.mdDatePicker .md-input__icon { + line-height: 27px !important; +} + +.ant-select-selection__clear { + right: calc(@form-element-height - 4px); +} + +.ant-select-sm .ant-select-selection__clear, +.ant-select-sm .ant-select-arrow { + right: 0; +} + +.md-form { + background-color: #ffffff; + font-size: @form-control-fontsize; +} + +.md-form label { + font-size: @form-label-fontsize; +} + +.md-form-item { + display: flex; + box-sizing: border-box; + margin: 0; + padding: 0; + color: rgba(0, 0, 0, 65%); + font-size: @form-control-fontsize; + font-variant: tabular-nums; + line-height: 1; + font-feature-settings: 'tnum'; + margin-bottom: 0; + vertical-align: top; +} + +.md-form-item__label { + // width: 140px; + width: 150px; + line-height: 35px; + text-align: right; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + padding: 0 12px; +} + +.md-form-item__content { + display: flex; + align-items: center; + flex: 1; + height: 35px !important; + align-content: center; +} + +/* 当内容中包含 textarea、上传组件 时,高度自动 */ +.md-form-item__content:has(textarea), +.md-form-item__content:has(input[type='file']) { + height: auto !important; +} + +.md-form-item__error { + display: none; + top: 80%; +} + +.ant-modal-tab.md-tabs { + .md-tabs__header.is-top { + background-color: #f2f9ff !important; + // height: 30px !important; + // line-height: 30px !important; + margin-bottom: 0; + + .md-tabs__nav.is-top { + border: none; + + .md-tabs__item.is-top { + font-size: 12px; + // width: 100px; + min-width: 100px; + height: 28px; + line-height: 28px; + text-align: center; + background-image: linear-gradient(-77deg, #ffffff 0%, #edf3fb 100%); + box-shadow: 0 2px 6px 0 rgba(33, 91, 188, 40%); + border-radius: 10px 10px 0 0; + + &.is-active { + // color: @primary-color; + color: #ffffff; + background: #0f69ff; + box-shadow: 0 2px 6px 0 rgba(33, 91, 188, 40%); + border-radius: 10px 10px 0 0; + } + } + } + } +} + +// 抽屉 +.md-drawer__header { + position: relative; + height: 31px; + padding: 6px 12px; + color: rgba(0, 0, 0, 65%); + background-color: #ffffff; + border-bottom: 1px solid #e8e8e8; + border-radius: 4px 4px 0 0; + + .md-drawer__title { + font-size: 12px; + font-weight: bolder; + } +} + +.md-radio-group { + .md-radio__label { + font-size: 12px; + } + + .md-radio { + display: inline; + } + + .md-radio__inner { + width: 12px; + height: 12px; + } + + .md-radio__input.is-checked .md-radio__inner { + border-color: @primary-color; + } + + .md-radio__input.is-checked .md-radio__inner::after { + background-color: @primary-color; + } + + .md-radio__input.is-checked + .md-radio__label { + color: @primary-color; + } +} + +.md-input-number.md-input-number.is-controls-right .md-input__inner { + height: 26px; + line-height: 26px; +} + +.md-input-number__decrease { + line-height: 0px !important; + height: 12px !important; + bottom: 4px !important; +} + +.md-input-number__increase { + line-height: 0px !important; + height: 12px !important; + top: 4px !important; +} + +.ant-collapse { + border: none; + background-color: #ffffff; + + .ant-collapse-item { + // border: none; + .ant-collapse-header { + padding: 6px 16px; + color: grey; + font-size: 12px; + font-weight: 700; + width: fit-content; + user-select: none; + + .anticon.ant-collapse-arrow { + left: auto; + right: -10px; + padding: 7px; + } + } + + .ant-collapse-content { + border: none; + + .ant-collapse-content-box { + // padding: 0 16px; + padding: 0; + margin-bottom: 20px; + } + } + } +} + +/* 自定义collapse样式 */ +.collapse-header-custom-show > .ant-collapse-item-disabled > .ant-collapse-header { + cursor: initial !important; + padding: 6px 16px !important; +} diff --git a/static/reset.less b/static/reset.less new file mode 100644 index 0000000..bd3b24c --- /dev/null +++ b/static/reset.less @@ -0,0 +1,1418 @@ +/* stylelint-disable */ +@import url(../src/assets/less/common.less); + +/********************************* 自定义变量 ************************************/ +@font-family: @fant-family; +@modal-form-background-color: #fcfcfc; +@form-control-fontsize: 12px; +@form-label-fontsize: 12px; +@form-lineheight: 12px; +@form-element-height: 22px; +@form-element-lineheight: 22px; +@btn-height: 24px; +@btn-lineheight: 24px; +@table-fontsize: 12px; +@tab-border-topcolor: @theme-color; +@border-color: #d9d9d9; +@arrow-color: @theme-color; +@table-selected-row-bg: #9ce7fd; // +@table-selected-row-hover-bg: #9ce7fd; // + +/********************* body ************************/ + +html, +body { + font-family: @font-family; + overflow: hidden hidden; +} + +///自定义设置 +.thor-fit { + width: auto; + overflow: auto; + position: relative; +} + +/******************************** menu **************************/ +.ant-menu-vertical > .ant-menu-item, +.ant-menu-vertical-left > .ant-menu-item, +.ant-menu-vertical-right > .ant-menu-item, +.ant-menu-inline > .ant-menu-item, +.ant-menu-vertical > .ant-menu-submenu > .ant-menu-submenu-title, +.ant-menu-vertical-left > .ant-menu-submenu > .ant-menu-submenu-title, +.ant-menu-vertical-right > .ant-menu-submenu > .ant-menu-submenu-title, +.ant-menu-inline > .ant-menu-submenu > .ant-menu-submenu-title { + height: 36px; + line-height: 36px; + font-size: 14px !important; + margin: 0; +} + +.ant-menu-vertical .ant-menu-submenu, +.ant-menu-vertical-left .ant-menu-submenu, +.ant-menu-vertical-right .ant-menu-submenu, +.ant-menu-inline .ant-menu-submenu { + padding-bottom: 0; +} + +.ant-menu-vertical .ant-menu-item:not(:last-child), +.ant-menu-vertical-left .ant-menu-item:not(:last-child), +.ant-menu-vertical-right .ant-menu-item:not(:last-child), +.ant-menu-inline .ant-menu-item:not(:last-child) { + margin-bottom: 0; +} + +.ant-menu-sub.ant-menu-inline > .ant-menu-item, +.ant-menu-sub.ant-menu-inline > .ant-menu-submenu > .ant-menu-submenu-title { + height: 36px; + line-height: 36px; + list-style-position: inside; + list-style-type: disc; +} + +.ant-menu-inline > .ant-menu-item { + font-size: 14px !important; + font-weight: 400; +} + +/******************************** tab 导航菜单 **************************/ + +.ant-tabs { + box-sizing: border-box; + margin: 0; + padding: 0; + color: rgb(0 0 0 / 65%); + font-size: @form-control-fontsize; + font-variant: tabular-nums; + line-height: 1.5; + list-style: none; + font-feature-settings: 'tnum'; + position: relative; + overflow: hidden; + zoom: 1; +} + +.ant-tabs-nav-container { + font-family: @font-family; + font: @form-control-fontsize Tahoma; + margin-top: 0; + height: 36px; + background: #f3f3f3; +} + +.tab-layout-tabs { + position: fixed; +} + +/* 修改 ant-tabs 样式 */ +.tab-layout-tabs.ant-tabs { + position: relative; + z-index: top; + width: calc(100vw - 200px); + + .ant-tabs-bar { + margin: 0; + border: none; + height: 40px; + } +} + +.tab-layout-tabs.ant-tabs { + &.ant-tabs-card .ant-tabs-tab, + .ant-tabs-tab-active { + border: 0; + padding: 0 24px !important; + background: #ffffff; + margin-right: 3px !important; + color: #000000; + height: 40px; + line-height: 40px; + + .ant-tabs-close-x { + width: 12px !important; + height: 12px !important; + opacity: 0 !important; + cursor: pointer !important; + font-size: 12px !important; + margin: 0 !important; + position: absolute; + top: 40%; + right: 6px; + } + + &:hover .ant-tabs-close-x { + opacity: 1 !important; + } + } +} + +.tab-layout-tabs.ant-tabs { + &.ant-tabs-card .ant-tabs-tab-active { + background: #ffffff; + } +} + +.tab-layout-tabs.ant-tabs.ant-tabs-card > .ant-tabs-bar { + .ant-tabs-tab { + border-left: 0; + } + + .ant-tabs-tab-active { + border-left: 0; + border-bottom: 3px solid @theme-color !important; + background-color: #ffffff; + } +} + +.ant-tabs-bar { + margin: 0; + border-bottom: 1px solid #e8e8e8; + outline: none; + transition: padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); +} + +.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-nav-container { + height: 40px; +} + +.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab { + height: 40px; + margin: 0; + margin-right: 2px; + padding: 0 16px; + line-height: 40px; + background: @theme-color-container; + color: @theme-color-blur; + border: 0 solid #e8e8e8; + border-radius: 4px 4px 0 0; + transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); +} + +.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active { + height: 40px; + color: @theme-color; + background-color: #ffffff; + border-radius: 4px 4px 0 0; +} + +.ant-tabs .ant-tabs-top-content > .ant-tabs-tabpane, +.ant-tabs .ant-tabs-bottom-content > .ant-tabs-tabpane { + background-color: #ffffff; + box-shadow: 6px 6px 6px 6px rgb(0 0 0 / 16%) !important; +} + +////内部Tab类型,横向的菜单 +.ant-modal-tab { + .ant-tabs-nav-container, + .ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab { + background-color: @theme-color-container !important; + height: 30px !important; + line-height: 30px !important; + } + + .ant-tabs-nav-container { + .ant-tabs-tab { + height: 30px !important; + line-height: 30px !important; + } + + .ant-tabs-tab-active { + height: 30px !important; + background: #ffffff; + border-radius: 6px 6px 0 0 !important; + box-shadow: 0 6px 6px 0 rgb(0 0 0 / 16%) !important; + } + } +} + +.ant-modal-tab.ant-tabs { + box-shadow: 1px 1px 6px 2px rgb(0 0 0 / 16%) !important; +} + +/************************ 固定底部 *************************************/ +.layout .ant-footer-fixedfooter { + position: relative; + bottom: 0; + right: 0; + z-index: 9; + width: 100%; + transition: width 0.2s; + height: 30px; + background-color: @theme-color-container; + color: #cccccc; +} + +/******************************** common.less **********************************/ +/// +.ant-card { + height: 100%; +} + +.ant-card-body { + padding: 0; + zoom: 1; + margin: 0; +} + +/* 列表中有图片的加这个样式 参考用户管理 */ +.anty-img-wrap { + height: 25px; + position: relative; +} + +.anty-img-wrap > img { + max-height: 100%; +} + +/* 列表中范围查询样式 */ +.query-group-cust { + width: calc(50% - 10px); +} + +.query-group-split-cust::before { + content: '~'; + width: 20px; + display: inline-block; + text-align: center; +} + +/* erp风格子表外框padding设置 */ +.ant-card-wider-padding.cust-erp-sub-tab > .ant-card-body { + padding: 5px 12px; +} + +/* 内嵌子表背景颜色 */ +.j-inner-table-wrapper /deep/ .ant-table-expanded-row .ant-table-wrapper .ant-table-tbody .ant-table-row { + background-color: #ffffff; +} + +/** 隐藏样式-modal确定按钮 */ +.jee-hidden { + display: none; +} + +/**************** alter ****************************/ +.ant-alert { + box-sizing: border-box; + bottom: 0; + color: rgb(0 0 0 / 65%); + font-size: @form-control-fontsize; + font-variant: tabular-nums; + line-height: 1.5; + list-style: none; + font-feature-settings: 'tnum'; + padding: 2px 4px 2px 18px; + word-wrap: break-word; + border-radius: 0; + position: absolute; + width: 400px; +} + +.ant-alert-icon { + position: absolute; + top: 4.5px; + left: 2px; +} + +.ant-alert-info { + background-color: #ffffff; + border: 0 solid #e8e8e8; +} + +/******************* model *******************/ + +.ant-modal { + height: calc(100vh - 100px); +} + +.ant-modal-header { + padding: 0; + height: 40px; + color: rgb(0 0 0 / 65%); + background: #ffffff; + border-bottom: 1px solid #e8e8e8; + border-radius: 4px 4px 0 0; +} + +.ant-modal-title { + margin: 0; + color: rgb(0 0 0 / 85%); + font-weight: bolder; + font-size: @form-control-fontsize; + word-wrap: break-word; + height: 30px; + line-height: 30px; +} + +.ant-modal-close { + top: 2px; +} + +.ant-modal-close-x { + display: block; + width: 28px; + height: 28px; + font-size: 16px; + font-style: normal; + line-height: 32px !important; + text-align: center; + text-transform: none; + text-rendering: auto; +} + +.ant-modal-body { + padding: 8px; + font-size: 14px; + line-height: 1.5; + word-wrap: break-word; + // background-color: @theme-color-container; + + .ant-spin-container:first { + box-shadow: 0 0 10px 0 rgb(0 0 0 / 10%); + padding-top: 6px; + padding-bottom: 6px; + background-color: #ffffff; + } +} + +.ant-modal-footer { + padding: 6px 16px; + text-align: right; + background: transparent; + border-top: 1px solid #e8e8e8; + border-radius: 0 0 4px 4px; +} + +.ant-drawer-header { + position: relative; + height: 31px; + padding: 6px 12px; + color: rgb(0 0 0 / 65%); + ///background: linear-gradient(to right, #fff 0%, #c5daf0 50%, #b1cee7 100%); + background-color: #ffffff; + border-bottom: 1px solid #e8e8e8; + border-radius: 4px 4px 0 0; +} + +.ant-drawer-title { + margin: 0; + color: rgb(0 0 0 / 85%); + font-weight: bolder; + font-size: @form-control-fontsize; + line-height: @form-element-lineheight; +} + +.ant-drawer-close { + position: absolute; + top: 0; + right: 0; + z-index: 10; + display: block; + width: 28px; + height: 28px; + padding: 0; + color: rgb(0 0 0 / 45%); + font-weight: 700; + font-size: 16px; + font-style: normal; + line-height: 28px; + text-align: center; + text-transform: none; + text-decoration: none; + background: transparent; + border: 0; + outline: 0; + cursor: pointer; + transition: color 0.3s; + text-rendering: auto; +} + +.drawer-bootom-button { + position: absolute; + bottom: 0; + width: 100%; + border-top: 1px solid #e8e8e8; + padding: 6px 16px; + text-align: right; + left: 0; + background: #ffffff; + border-radius: 0 0 2px 2px; +} + +/* 列表页面弹出modal */ +.ant-modal-cust-warp { + height: 100%; +} + +/* 弹出modal Y轴滚动条 */ +.ant-modal-cust-warp .ant-modal-body { + height: calc(100% - 110px) !important; + overflow-y: auto; +} + +/* 弹出modal 先有content后有body 故滚动条控制在body上 */ +.ant-modal-cust-warp .ant-modal-content { + height: 90% !important; + overflow-y: hidden; +} + +////对话框样式修改 +.ant-modal-confirm { + .ant-modal, + .ant-modal-content, + .ant-modal-body { + border-radius: 6px; + } +} + +/**************** serch *******************/ +.table-page-search-wrapper { + padding: 6px; + border: 0 solid #e8e8e8; +} + +.table-page-search-wrapper .ant-form-inline { + border-bottom: 1px solid #e8e8e8; + border-left: 1px solid #e8e8e8; +} + +.table-page-search-wrapper .ant-form-inline .ant-form-item { + display: flexbox; + display: flex; + margin-bottom: 0; + margin-right: 0; + padding-right: 2px; + border-bottom: 0 solid #e8e8e8; + border-left: 0 solid #e8e8e8; +} + +.table-page-search-wrapper .ant-form-inline .ant-form-item > .ant-form-item-label { + line-height: 32px; + padding-right: 0; + width: auto; +} + +.table-page-search-wrapper .ant-form-inline .ant-form-item .ant-form-item-control-wrapper { + flex: 1 1; + display: inline-block; + vertical-align: middle; +} + +.table-page-search-wrapper .ant-col .ant-form-item-label { + background-color: @modal-form-background-color; + min-width: 100px; + padding-right: 0; +} + +.table-page-search-wrapper { + .w-col.md-col { + display: flex; + align-items: center; + height: 30px; + // line-height: 30px; + } +} + +.table-page-search-wrapper .ant-row .ant-form-item { + background-color: #ffffff; +} + + +/******************************************************** antdesignform ************************************/ +.ant-form { + background-color: #ffffff; + font-size: @form-control-fontsize; + border-right: 1px solid #e8e8e8; + border-top: 1px solid #e8e8e8; +} + +.ant-form label { + font-size: @form-label-fontsize; +} + +.ant-form-item { + box-sizing: border-box; + margin: 0; + padding: 0; + color: rgb(0 0 0 / 65%); + font-size: @form-control-fontsize; + font-variant: tabular-nums; + line-height: 1; + font-feature-settings: 'tnum'; + margin-bottom: 0; + vertical-align: top; + border-bottom: 1px solid #e8e8e8; + border-left: 1px solid #e8e8e8; +} + +.ant-form .ant-form-item { + background-color: #ffffff; +} + +.ant-input { + box-sizing: border-box; + margin: 1.5px 0; + font-variant: tabular-nums; + list-style: none; + font-feature-settings: 'tnum'; + position: relative; + display: inline-block; + width: 100%; + height: @form-element-height; + padding: 2px; + color: rgb(0 0 0 / 65%); + font-size: @form-control-fontsize; + line-height: @form-lineheight; + background-color: #ffffff; + background-image: none; + border: 1px solid #d9d9d9; + border-radius: 0; + transition: all 0.3s; +} + +.ant-input-number { + box-sizing: border-box; + font-variant: tabular-nums; + list-style: none; + font-feature-settings: 'tnum'; + position: relative; + width: 100%; + height: @form-element-height; + color: rgb(0 0 0 / 65%); + font-size: @form-control-fontsize; + line-height: @form-lineheight; + background-color: #ffffff; + background-image: none; + transition: all 0.3s; + display: inline-block; + margin: 1.5px 0; + padding: 0; + border: 1px solid #d9d9d9; + border-radius: 0; +} + +.ant-input-number-input { + width: 100%; + height: @form-element-height; + padding: 2px; + text-align: left; + background-color: transparent; + border: 0; + border-radius: 0; + outline: 0; + transition: all 0.3s linear; + appearance: textfield !important; +} + +.ant-form-item-label { + display: inline-block; + overflow: hidden; + line-height: 26px; + height: 26px; + white-space: nowrap; + text-align: right; + vertical-align: middle; + background-color: @modal-form-background-color; +} + +.ant-form-item-control { + position: relative; + line-height: @form-element-lineheight; + zoom: 1; +} + +.ant-select { + box-sizing: border-box; + margin: 1.5px 0; + padding: 0; + font-size: @form-label-fontsize; + font-variant: tabular-nums; + line-height: @btn-lineheight; + list-style: none; + font-feature-settings: 'tnum'; + position: relative; + display: inline-block; + outline: 0; +} + +.ant-select-disabled .ant-select-selection { + background-color: #f5f5f5 !important; +} + +.ant-select-selection { + display: block; + box-sizing: border-box; + background-color: #ffffff; + border: 1px solid #d9d9d9; + border-top-width: 1.02px; + border-radius: 1px; + outline: none; + transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + user-select: none; +} + +.ant-select-dropdown { + box-shadow: 1px 1px 6px 3px #00000066; + border-radius: 0; + margin-top: -2px; +} + +.ant-select-selection-selected-value { + float: left; + max-width: 100%; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + padding-left: 5px; +} + +/* 解决下拉框样式问题 错误情况下样式 20220829 reeve st */ +.has-error .ant-select-selection { + border-color: #f5222d !important; +} + +/* 解决下拉框样式问题 20220829 reeve ed */ + +.ant-select-dropdown-menu li:nth-child(odd) { + background-color: #ffffff; +} + +.ant-select-dropdown-menu li:nth-child(even) { + background-color: #fafafa; +} + +.ant-select-dropdown-menu-item { + height: @form-element-height; + font-size: @form-control-fontsize; + line-height: @form-element-lineheight; + padding: 0 0 0 8px; +} + +.ant-select-selection--single { + position: relative; + // height: @form-element-height; + height: 24px; + line-height: @form-element-lineheight; + cursor: pointer; +} + +.ant-select-selection--multiple { + min-height: @form-element-height; + padding-bottom: 0; + cursor: text; + zoom: 1; +} + +.ant-select-selection__rendered { + line-height: 20px; + margin-left: 0; +} + +.ant-select-selection--multiple > ul > li, +.ant-select-selection--multiple .ant-select-selection__rendered > ul > li { + height: 19px; + margin-top: 0; + line-height: 19px; +} + +.ant-select-arrow { + display: inline-block; + font-style: normal; + line-height: calc(@form-element-lineheight - 2px); + height: calc(@form-element-height - 2px); + width: calc(@form-element-height - 4px); + border-left: 1px solid @border-color; + text-align: center; + text-transform: none; + vertical-align: -0.125em; + text-rendering: optimizelegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + position: absolute; + top: 0; + right: 0; + margin-top: 0; + color: rgb(0 0 0 / 62%); + font-size: @form-control-fontsize; + transform-origin: 50% 50%; +} + +.ant-select-arrow > * { + line-height: calc(@form-element-lineheight - 2px); +} + +.ant-select-selection__clear { + right: calc(@form-element-height - 4px); +} + +.ant-select-sm .ant-select-selection__clear, +.ant-select-sm .ant-select-arrow { + right: 0; +} + +.ant-form-explain, +.ant-form-extra { + clear: both; + min-height: 22px; + margin-top: -22px; + color: rgb(0 0 0 / 45%); + font-size: @form-control-fontsize; + line-height: 1.5; + transition: color 0.3s cubic-bezier(0.215, 0.61, 0.355, 1); + display: none; +} + +.ant-tree { + box-sizing: border-box; + color: rgb(0 0 0 / 65%); + font-size: @form-control-fontsize; + font-variant: tabular-nums; + line-height: 1.5; + list-style: none; + font-feature-settings: 'tnum'; + margin: 0; + padding: 0; +} + +.ant-radio-button-wrapper { + position: relative; + display: inline-block; + height: 22px; + margin: 0; + padding: 0 10px; + color: rgb(0 0 0 / 65%); + line-height: 20px; + background: #ffffff; + border: 1px solid #d9d9d9; + border-top-width: 1.02px; + border-left: 0; + cursor: pointer; + transition: color 0.3s, background 0.3s, border-color 0.3s, box-shadow 0.3s; +} + +.ant-list-item { + padding: 0; +} + +.ant-input::input-placeholder { + color: transparent; +} + +.ant-input::placeholder { + color: transparent; +} + +.ant-input:placeholder { + color: transparent; +} + +.ant-input:input-placeholder { + color: transparent; +} + +.ant-selct::input-placeholder { + color: transparent; +} + +.ant-selct::placeholder { + color: transparent; +} + +.ant-selct:placeholder { + color: transparent; +} + +.ant-selct:input-placeholder { + color: transparent; +} + +.ant-select-selection__placeholder, +.ant-select-search__field__placeholder { + color: transparent; +} + +.antnumber::input-placeholder { + color: transparent; +} + +.antnumber::placeholder { + color: transparent; +} + +.antnumber:placeholder { + color: transparent; +} + +.antnumber:input-placeholder { + color: transparent; +} + +.antnumber-input::input-placeholder { + color: transparent; +} + +.antnumber-input::placeholder { + color: transparent; +} + +.antnumber-input:placeholder { + color: transparent; +} + +.antnumber-input:input-placeholder { + color: transparent; +} + +/********************************* drawer ************************************/ +.ant-drawer-body { + background-color: @modal-form-background-color; +} + +.ant-drawer-content { + background-color: @modal-form-background-color; +} + +.ant-drawer-title { + margin: 0; + font-weight: bolder; + font-size: 9pt; + line-height: 30px; + padding: 0 20px; + ///background-color: #1890ff; + background-color: #ffffff; + color: #000000; + height: 30px; + left: 0; + top: 0; + position: absolute; +} + +/**************************************** button ***********************************************/ +.table-operator { + padding-left: 6px; + background: #ffffff; + border-bottom: solid 1px @border-color; + border: solid 1px @border-color; + padding-top: 4px; + margin-bottom: 0; +} + +/** Button按钮间距 */ +.table-operator .ant-btn { + margin: 0 8px 4px 0; +} + +.table-operator .ant-btn-group .ant-btn { + margin: 0; +} + +.table-operator .ant-btn-group .ant-btn:last-child { + margin: 8px 8px 4px; +} + +.ant-btn { + line-height: 1.499; + height: @btn-height; + font-size: @form-control-fontsize; + border-radius: 2px; + padding: 0 10px; +} + +///页面按钮样式 +.ant-btn-primary, +.ant-modal-footer .ant-btn { + background: #ffffff; + border: 1px solid @theme-color; + color: @theme-color; +} + + +.table-operator > .ant-dropdown-menu { + background-color: @theme-color; + color: #ffffff; +} + +.ant-modal-footer .ant-btn:last-child { + background-color: @theme-color; + color: #ffffff; +} + +/******************************** table ****************************************/ +.ant-table { + box-sizing: border-box; + margin: 0; + padding: 0; + font-size: @table-fontsize; + font-variant: tabular-nums; + line-height: 1.5; + list-style: none; + font-feature-settings: 'tnum'; + position: relative; + clear: both; +} + +.ant-table-fixed-right{ + height: 100%; +} + +.ant-table-fixed-right > .ant-table-body-outer{ + height: calc(100% - 29px); +} + +.ant-table > table > th { + font-weight: 500; +} + +.ant-table-middle > .ant-table-content > .ant-table-header > table > .ant-table-thead > tr > th, +.ant-table-middle > .ant-table-content > .ant-table-body > table > .ant-table-thead > tr > th, +.ant-table-middle > .ant-table-content > .ant-table-scroll > .ant-table-header > table > .ant-table-thead > tr > th, +.ant-table-middle > .ant-table-content > .ant-table-scroll > .ant-table-body > table > .ant-table-thead > tr > th, +.ant-table-middle > .ant-table-content > .ant-table-fixed-left > .ant-table-header > table > .ant-table-thead > tr > th, +.ant-table-middle + > .ant-table-content + > .ant-table-fixed-right + > .ant-table-header + > table + > .ant-table-thead + > tr + > th, +.ant-table-middle + > .ant-table-content + > .ant-table-fixed-left + > .ant-table-body-outer + > .ant-table-body-inner + > table + > .ant-table-thead + > tr + > th, +.ant-table-middle + > .ant-table-content + > .ant-table-fixed-right + > .ant-table-body-outer + > .ant-table-body-inner + > table + > .ant-table-thead + > tr + > th { + font-weight: 600; +} + +.ant-table-middle > .ant-table-content > .ant-table-header > table > .ant-table-thead > tr > th, +.ant-table-middle > .ant-table-content > .ant-table-body > table > .ant-table-thead > tr > th, +.ant-table-middle > .ant-table-content > .ant-table-scroll > .ant-table-header > table > .ant-table-thead > tr > th, +.ant-table-middle > .ant-table-content > .ant-table-scroll > .ant-table-body > table > .ant-table-thead > tr > th, +.ant-table-middle > .ant-table-content > .ant-table-fixed-left > .ant-table-header > table > .ant-table-thead > tr > th, +.ant-table-middle + > .ant-table-content + > .ant-table-fixed-right + > .ant-table-header + > table + > .ant-table-thead + > tr + > th, +.ant-table-middle + > .ant-table-content + > .ant-table-fixed-left + > .ant-table-body-outer + > .ant-table-body-inner + > table + > .ant-table-thead + > tr + > th, +.ant-table-middle + > .ant-table-content + > .ant-table-fixed-right + > .ant-table-body-outer + > .ant-table-body-inner + > table + > .ant-table-thead + > tr + > th, +.ant-table-middle > .ant-table-content > .ant-table-header > table > .ant-table-tbody > tr > td, +.ant-table-middle > .ant-table-content > .ant-table-body > table > .ant-table-tbody > tr > td, +.ant-table-middle > .ant-table-content > .ant-table-scroll > .ant-table-header > table > .ant-table-tbody > tr > td, +.ant-table-middle > .ant-table-content > .ant-table-scroll > .ant-table-body > table > .ant-table-tbody > tr > td, +.ant-table-middle > .ant-table-content > .ant-table-fixed-left > .ant-table-header > table > .ant-table-tbody > tr > td, +.ant-table-middle + > .ant-table-content + > .ant-table-fixed-right + > .ant-table-header + > table + > .ant-table-tbody + > tr + > td, +.ant-table-middle + > .ant-table-content + > .ant-table-fixed-left + > .ant-table-body-outer + > .ant-table-body-inner + > table + > .ant-table-tbody + > tr + > td, +.ant-table > .ant-table-content > .ant-table-body > table > .ant-table-thead > tr > th, +.ant-table > .ant-table-content > .ant-table-body > table > .ant-table-tbody > tr > td, +.ant-table > .ant-table-content > .ant-table-scroll > .ant-table-header > table > .ant-table-thead > tr > th, +.ant-table > .ant-table-content > .ant-table-scroll > .ant-table-body > table > .ant-table-tbody > tr > td, +.ant-table-middle + > .ant-table-content + > .ant-table-fixed-right + > .ant-table-body-outer + > .ant-table-body-inner + > table + > .ant-table-tbody + > tr + > td { + padding: 2px; + padding: 2px 6px; + height: 28px; +} + + +/* 固定列-滚动条的轨道-颜色透明 起到隐藏小横线的效果 */ +.ant-table-fixed-left .ant-table-body-inner::-webkit-scrollbar-track { + background: transparent !important; +} + +.ant-table-thead > tr > th { + // background-color: @theme-color-table-th; + background-color: #f0f1f6; +} + +.ant-table-tbody > tr.ant-table-row-selected td { + color: inherit; + background: @table-selected-row-bg; +} + +.ant-table-tbody > tr.ant-table-row-selected.ant-table-row-hover td { + color: inherit; + background: @table-selected-row-bg; +} + +.ant-table-thead > tr.ant-table-row-hover:not(.ant-table-expanded-row, .ant-table-row-selected) > td, +.ant-table-tbody > tr.ant-table-row-hover:not(.ant-table-expanded-row, .ant-table-row-selected) > td, +.ant-table-thead > tr:hover:not(.ant-table-expanded-row, .ant-table-row-selected) > td, +.ant-table-tbody > tr:hover:not(.ant-table-expanded-row, .ant-table-row-selected) > td { + background: @table-selected-row-bg; +} + +.ant-table-tbody > tr.ant-table-row-selected > td.ant-table-column-sort, +.ant-table-tbody > tr:hover.ant-table-row-selected > td, +.ant-table-tbody > tr:hover.ant-table-row-selected > td.ant-table-column-sort, +.ant-table-thead > tr.ant-table-row-selected > td.ant-table-column-sort, +.ant-table-thead > tr:hover.ant-table-row-selected > td, +.ant-table-thead > tr:hover.ant-table-row-selected > td.ant-table-column-sort { + background: #99fdfd; +} + +.ant-table-pagination.ant-pagination { + float: right; + margin: 0 20px; + height: 28px; + margin-top: 5px; +} + +.ant-table-tbody > .table-striped td { + background-color: #fafafa !important; +} + +.ant-table-tbody > .table-selected td { + background-color: #fbc9f2 !important; +} + +.ant-table-tbody > .table-bill-selected td { + background-color: #e7a1f5 !important; +} + +.ant-pagination { + box-sizing: border-box; + margin: 0; + padding: 0; + color: rgb(0 0 0 / 65%); + font-size: @form-control-fontsize; + font-variant: tabular-nums; + line-height: 1.5; + list-style: none; + font-feature-settings: 'tnum'; +} + +.ant-table-placeholder { + position: absolute !important; + z-index: 1; + width: 100%; + top: 24px; + border-width: 0; + padding: 0; + margin-top: 16px; + background-color: transparent; +} + +.ant-table-footer { + position: relative; + padding: 5px 0; + border-radius: 0; +} + +.ant-table-bordered.ant-table-empty .ant-table-placeholder { + border: 0 !important; +} + +/******************************* 头像 ************************************/ +.ant-avatar { + height: 22px; + width: 22px; + line-height: 22px; +} + +/***************************************** 字体设置粗体 ******************************/ +.entry.title { + font-weight: bolder; + font-size: 10pt; +} + +/*********************************** 特别按钮 ************************************/ +.round-button { + border-radius: 100%; + color: #ffffff; + background-color: #40a9ff; + border-color: #40a9ff; + text-shadow: 0 -1px 0 rgb(0 0 0 / 12%); + box-shadow: 0 2px 0 rgb(0 0 0 / 5%); + border: 1px solid transparent; +} + +/************************** data-tooltip span标签的提示 ***************************/ +[data-tooltip] { + display: inline-block; + position: relative; + cursor: help; +} + +/* Tooltip styling */ +[data-tooltip]::before { + content: attr(data-tooltip); + display: none; + position: absolute; + background: #000000; + color: #ffffff; + padding: 4px 8px; + font-size: 14px; + line-height: 1.4; + min-width: 100px; + text-align: center; + border-radius: 4px; +} + +/* Dynamic horizontal centering */ +[data-tooltip-position='top']::before, +[data-tooltip-position='bottom']::before { + left: 50%; + transform: translateX(-50%); +} + +/* Dynamic vertical centering */ +[data-tooltip-position='right']::before, +[data-tooltip-position='left']::before { + top: 50%; + transform: translateY(-50%); +} + +[data-tooltip-position='top']::before { + bottom: 100%; + margin-bottom: 6px; +} + +[data-tooltip-position='right']::before { + left: 100%; + margin-left: 6px; +} + +[data-tooltip-position='bottom']::before { + top: 100%; + margin-top: 6px; +} + +[data-tooltip-position='left']::before { + right: 100%; + margin-right: 6px; +} + +/* Tooltip arrow styling/placement */ +[data-tooltip]::after { + content: ''; + display: none; + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +/* Dynamic horizontal centering for the tooltip */ +[data-tooltip-position='top']::after, +[data-tooltip-position='bottom']::after { + left: 50%; + margin-left: -6px; +} + +/* Dynamic vertical centering for the tooltip */ +[data-tooltip-position='right']::after, +[data-tooltip-position='left']::after { + top: 50%; + margin-top: -6px; +} + +[data-tooltip-position='top']::after { + bottom: 100%; + border-width: 6px 6px 0; + border-top-color: #000000; +} + +[data-tooltip-position='right']::after { + left: 100%; + border-width: 6px 6px 6px 0; + border-right-color: #000000; +} + +[data-tooltip-position='bottom']::after { + top: 100%; + border-width: 0 6px 6px; + border-bottom-color: #000000; +} + +[data-tooltip-position='left']::after { + right: 100%; + border-width: 6px 0 6px 6px; + border-left-color: #000000; +} + +/* Show the tooltip when hovering */ +[data-tooltip]:hover::before, +[data-tooltip]:hover::after { + display: block; + z-index: 50; +} + +/***************************************** 页面提示信息 *******************************************/ +.ant-message { + box-sizing: border-box; + margin: 0; + padding: 0; + color: rgb(0 0 0 / 65%); + font-size: 14px; + font-variant: tabular-nums; + line-height: 1.5; + list-style: none; + font-feature-settings: 'tnum'; + position: fixed; + top: 40%; + left: 0; + z-index: 1010; + width: 100%; + pointer-events: none; +} + +/********************************************************************************************** */ +.j-table-force-nowrap { + min-height: 150px; + table{ + .ant-table-selection-column { + min-width: 50px; + padding: 0 !important; + } + td, th { + white-space: nowrap; + } + } +} + +/***************** entryHead **************************************/ +.biz-entry-h, +.biz-entry-l { + .entry-element_lists { + .display_flex; + + float: left; + } + + .table-operator { + .display_flex; + + width: 100%; + padding-top: 4px; + padding-bottom: 4px; + + .ant-btn { + height: 22px; + margin: 0 8px 0 0; + } + } + + .table-operator button { + float: left; + } + + .btn-cycle { + text-align: center; + border-radius: 8px; + background: @theme-color; + color: #ffffff; + font-weight: bold; + font-size: 14px; + line-height: 16px; + position: absolute; + } + + .help { + width: 16px; + height: 16px; + display: inline-block; + cursor: pointer; + margin: 2px 0 0 2px; + position: absolute; + } + + .ant-form-item { + border-bottom: 0 solid #e8e8e8; + border-left: 0; + } + + .center { + text-align: center; + } +} + +.biz-entry-h > .ant-row, +.biz-entry-l > .ant-row { + border-bottom: 1px solid #e8e8e8; + border-left: 1px solid #e8e8e8; + border-right: 1px solid #e8e8e8; +} + +.biz-entry-l { + .table-page-search-wrapper { + padding: 0; + } + + .ant-table-empty .ant-table-body { + min-height: 148px !important; + } + + .ant-empty-normal { + margin: 0 8px !important; + } +} + +.biz-entry-right_container { + .display_flex; + + flex-direction: column; + padding: 6px; + border: 1px solid @theme-color-border; + margin-left: 4px; + box-shadow: 0 1px 1px rgb(99 92 92 / 8.2%) inset; + + .ant-empty-normal { + margin: 0 8px !important; + } +} diff --git a/test.log b/test.log new file mode 100644 index 0000000..3c5424b --- /dev/null +++ b/test.log @@ -0,0 +1,6 @@ +1dddssssdf +sa +df +asg +asggs + diff --git a/vue.config.js b/vue.config.js new file mode 100644 index 0000000..962c69e --- /dev/null +++ b/vue.config.js @@ -0,0 +1,126 @@ +const path = require('path') +const webpack = require('webpack') + +function resolve(dir) { + return path.join(__dirname, dir) +} + +// vue.config.js +module.exports = { + /* + Vue-cli3: + Crashed when using Webpack `import()` #2463 + https://github.com/vuejs/vue-cli/issues/2463 + */ + // 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。 + productionSourceMap: false, + // 多入口配置 + // pages: { + // index: { + // entry: 'src/main.js', + // template: 'public/index.html', + // filename: 'index.html', + // } + // }, + //打包app时放开该配置 + // publicPath:'/iems-winlink/', + configureWebpack: (config) => { + //生产环境取消 console.log + if (process.env.NODE_ENV === 'production' || process.env.NODE_ENV === 'sit' || process.env.NODE_ENV === 'prod' || process.env.NODE_ENV === 'uat') { + config.optimization.minimizer[0].options.terserOptions.compress.drop_console = true + config.plugins.push(new webpack.optimize.LimitChunkCountPlugin({ maxChunks: 20 })) + } + }, + chainWebpack: (config) => { + config.resolve.alias + .set('@$', resolve('src')) + .set('@api', resolve('src/api')) + .set('@assets', resolve('src/assets')) + .set('@comp', resolve('src/components')) + .set('@views', resolve('src/views')) + + //生产环境,开启js\css压缩 + // if (process.env.NODE_ENV === 'production') { + // config.plugin('compressionPlugin').use(new CompressionPlugin({ + // test: /\.(js|css|less)$/, // 匹配文件名 + // threshold: 10240, // 对超过10k的数据压缩 + // deleteOriginalAssets: false // 不删除源文件 + // })) + // } + + // 配置 webpack 识别 markdown 为普通的文件 + config.module.rule('markdown').test(/\.md$/).use().loader('file-loader').end() + + // 编译vxe-table包里的es6代码,解决IE11兼容问题 + config.module + .rule('vxe') + .test(/\.js$/) + .include.add(resolve('node_modules/vxe-table')) + .add(resolve('node_modules/vxe-table-plugin-antd')) + .end() + .use() + .loader('babel-loader') + .end() + }, + + css: { + loaderOptions: { + less: { + modifyVars: { + /* less 变量覆盖,用于自定义 ant design 主题 */ + 'primary-color': '#0077ff', + 'link-color': '#0077ff', + 'border-radius-base': '4px', + }, + javascriptEnabled: true, + }, + }, + }, + + devServer: { + port: 3000, + headers: { + 'Access-Control-Allow-Origin': '*', + }, + // disableHostCheck: true, + // https: true, + proxy: { + /* '/api': { + target: 'https://mock.ihx.me/mock/5baf3052f7da7e07e04a5116/antd-pro', //mock API接口系统 + ws: false, + changeOrigin: true, + pathRewrite: { + '/jeecg-boot': '' //默认所有请求都加了jeecg-boot前缀,需要去掉 + } + },*/ + '/gcs': { + target: process.env.VUE_APP_API_BASE_URL, //请求本地 需要jeecg-boot后台项目 + ws: false, + changeOrigin: true, + secure: false, + pathRewrite: { + '^/gcs': '', + }, + cookieDomainRewrite: 'localhost', + }, + '/sitMuiProxy': { + target: 'https://imipsit.midea.com', + changeOrigin: true, + pathRewrite: { '^/sitMuiProxy': '' }, + }, + '/uatMuiProxy': { + target: 'https://mipuat.midea.com', + changeOrigin: true, + pathRewrite: { '^/uatMuiProxy': '' }, + }, + '/muiProxy': { + target: 'https://imip.midea.com', + changeOrigin: true, + pathRewrite: { '^/muiProxy': '' }, + }, + }, + }, + // 将 lintOnSave 设置为 false 以关闭 ESLint 检查 + lintOnSave: false, +} + diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..799926e --- /dev/null +++ b/yarn.lock @@ -0,0 +1,16920 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@achrinza/node-ipc@^9.2.5": + version "9.2.9" + resolved "https://registry.npmmirror.com/@achrinza/node-ipc/-/node-ipc-9.2.9.tgz" + integrity sha512-7s0VcTwiK/0tNOVdSX9FWMeFdOEcsAOz9HesBldXxFMaGvIak7KC2z9tV9EgsQXn6KUsWsfIkViMNuIo0GoZDQ== + dependencies: + "@node-ipc/js-queue" "2.0.3" + event-pubsub "4.3.0" + js-message "1.0.7" + +"@ampproject/remapping@^2.2.0": + version "2.3.0" + resolved "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@ant-design/colors@^3.1.0": + version "3.2.2" + resolved "https://registry.npmmirror.com/@ant-design/colors/-/colors-3.2.2.tgz" + integrity sha512-YKgNbG2dlzqMhA9NtI3/pbY16m3Yl/EeWBRa+lB1X1YaYxHrxNexiQYCLTWO/uDvAjLFMEDU+zR901waBtMtjQ== + dependencies: + tinycolor2 "^1.4.1" + +"@ant-design/icons-vue@^2.0.0": + version "2.0.0" + resolved "https://registry.npmmirror.com/@ant-design/icons-vue/-/icons-vue-2.0.0.tgz" + integrity sha512-2c0QQE5hL4N48k5NkPG5sdpMl9YnvyNhf0U7YkdZYDlLnspoRU7vIA0UK9eHBs6OpFLcJB6o8eJrIl2ajBskPg== + dependencies: + "@ant-design/colors" "^3.1.0" + babel-runtime "^6.26.0" + +"@ant-design/icons@^2.0.0", "@ant-design/icons@^2.1.1": + version "2.1.1" + resolved "https://registry.npmmirror.com/@ant-design/icons/-/icons-2.1.1.tgz" + integrity sha512-jCH+k2Vjlno4YWl6g535nHR09PwCEmTBKAG6VqF+rhkrSPRLfgpU2maagwbZPLjaHuU5Jd1DFQ2KJpQuI6uG8w== + +"@antv/adjust@~0.1.0": + version "0.1.1" + resolved "https://registry.npmmirror.com/@antv/adjust/-/adjust-0.1.1.tgz" + integrity sha512-9FaMOyBlM4AgoRL0b5o0VhEKAYkexBNUrxV8XmpHU/9NBPJONBOB/NZUlQDqxtLItrt91tCfbAuMQmF529UX2Q== + dependencies: + "@antv/util" "~1.3.1" + +"@antv/attr@~0.1.2": + version "0.1.2" + resolved "https://registry.npmmirror.com/@antv/attr/-/attr-0.1.2.tgz" + integrity sha512-QXjP+T2I+pJQcwZx1oCA4tipG43vgeCeKcGGKahlcxb71OBAzjJZm1QbF4frKXcnOqRkxVXtCr70X9TRair3Ew== + dependencies: + "@antv/util" "~1.3.1" + +"@antv/component@~0.3.3": + version "0.3.10" + resolved "https://registry.npmmirror.com/@antv/component/-/component-0.3.10.tgz" + integrity sha512-8HLkgdhc0jXrnNrkaACPrWx2JB/51VGscL9t0pH2xoLdxiDQVtTUad2geWxbac5k/ZZHG+bDPWWb83CZIR9A9w== + dependencies: + "@antv/attr" "~0.1.2" + "@antv/g" "~3.3.5" + "@antv/util" "~1.3.1" + wolfy87-eventemitter "~5.1.0" + +"@antv/coord@~0.1.0": + version "0.1.0" + resolved "https://registry.npmmirror.com/@antv/coord/-/coord-0.1.0.tgz" + integrity sha512-W1R8h3Jfb3AfMBVfCreFPMVetgEYuwHBIGn0+d3EgYXe2ckOF8XWjkpGF1fZhOMHREMr+Gt27NGiQh8yBdLUgg== + dependencies: + "@antv/util" "~1.3.1" + +"@antv/data-set@^0.11.4": + version "0.11.8" + resolved "https://registry.npmmirror.com/@antv/data-set/-/data-set-0.11.8.tgz" + integrity sha512-8/YDsfk4wNQdo/J9tfmzOuo9Y5nl0mB+sSZO+tEZsHFLUhMrioJGBMPkuW51Pn0zcVZPNivuMBi2sQKYCpCeew== + dependencies: + "@antv/hierarchy" "^0.6.0" + "@antv/util" "^2.0.0" + d3-composite-projections "^1.2.0" + d3-dsv "^1.0.5" + d3-geo "~1.6.4" + d3-geo-projection "~2.1.2" + d3-hexjson "^1.0.1" + d3-hierarchy "^1.1.5" + d3-sankey "^0.9.1" + d3-voronoi "^1.1.2" + dagre "^0.8.2" + point-at-length "^1.0.2" + regression "^2.0.0" + simple-statistics "^6.1.0" + topojson-client "^3.0.0" + wolfy87-eventemitter "^5.1.0" + +"@antv/g@~3.3.5": + version "3.3.6" + resolved "https://registry.npmmirror.com/@antv/g/-/g-3.3.6.tgz" + integrity sha512-2GtyTz++s0BbN6s0ZL2/nrqGYCkd52pVoNH92YkrTdTOvpO6Z4DNoo6jGVgZdPX6Nzwli6yduC8MinVAhE8X6g== + dependencies: + "@antv/gl-matrix" "~2.7.1" + "@antv/util" "~1.3.1" + d3-ease "~1.0.3" + d3-interpolate "~1.1.5" + d3-timer "~1.0.6" + wolfy87-eventemitter "~5.1.0" + +"@antv/g@~3.4.10": + version "3.4.10" + resolved "https://registry.npmmirror.com/@antv/g/-/g-3.4.10.tgz" + integrity sha512-pKy/L1SyRBsXuujdkggqrdBA0/ciAgHiArYBdIJsxHRxCneUP01wGwHdGfDayh2+S0gcSBHynjhoEahsaZaLkw== + dependencies: + "@antv/gl-matrix" "~2.7.1" + "@antv/util" "~1.3.1" + d3-ease "~1.0.3" + d3-interpolate "~1.1.5" + d3-timer "~1.0.6" + detect-browser "^5.1.0" + +"@antv/g2-brush@^0.0.2": + version "0.0.2" + resolved "https://registry.npmmirror.com/@antv/g2-brush/-/g2-brush-0.0.2.tgz" + integrity sha512-7O9szwem19nmEgReXhFB8kVLRaz8J5MHvrzDSDY36YaBOaHSWRGHnvYt2KkkPqgWtHtLY1srssk4X/UmP5govA== + +"@antv/g2-plugin-slider@^2.1.0": + version "2.1.1" + resolved "https://registry.npmmirror.com/@antv/g2-plugin-slider/-/g2-plugin-slider-2.1.1.tgz" + integrity sha512-nB678VEGG3FkrvkDDFADAKjLQIeXzITEYqey5oeOpbf0vT5jOa55lQDyJDZ79cK8PmU/Hz6VPeSb3CNQBA+/FQ== + +"@antv/g2@>=3.2.8", "@antv/g2@~3.5.3": + version "3.5.19" + resolved "https://registry.npmmirror.com/@antv/g2/-/g2-3.5.19.tgz" + integrity sha512-OWWDJof1ghfsxDYO20TxVF9TUhDsyOE/yzbSdSu+N9Ft1zQxKJQlgG43/FO+rOsdC/k1dXoYOBRPQ7kk5EBaJA== + dependencies: + "@antv/adjust" "~0.1.0" + "@antv/attr" "~0.1.2" + "@antv/component" "~0.3.3" + "@antv/coord" "~0.1.0" + "@antv/g" "~3.4.10" + "@antv/scale" "~0.1.1" + "@antv/util" "~1.3.1" + core-js "2" + venn.js "~0.2.20" + wolfy87-eventemitter "~5.1.0" + +"@antv/gl-matrix@^2.7.1", "@antv/gl-matrix@~2.7.1": + version "2.7.1" + resolved "https://registry.npmmirror.com/@antv/gl-matrix/-/gl-matrix-2.7.1.tgz" + integrity sha512-oOWcVNlpELIKi9x+Mm1Vwbz8pXfkbJKykoCIOJ/dNK79hSIANbpXJ5d3Rra9/wZqK6MC961B7sybFhPlLraT3Q== + +"@antv/hierarchy@^0.6.0": + version "0.6.14" + resolved "https://registry.npmmirror.com/@antv/hierarchy/-/hierarchy-0.6.14.tgz" + integrity sha512-V3uknf7bhynOqQDw2sg+9r9DwZ9pc6k/EcqyTFdfXB1+ydr7urisP0MipIuimucvQKN+Qkd+d6w601r1UIroqQ== + +"@antv/scale@~0.1.1": + version "0.1.5" + resolved "https://registry.npmmirror.com/@antv/scale/-/scale-0.1.5.tgz" + integrity sha512-7RAu4iH5+Hk21h6+aBMiDTfmLf4IibK2SWjx/+E4f4AXRpqucO+8u7IbZdFkakAWxvqhJtN3oePJuTKqOMcmlg== + dependencies: + "@antv/util" "~1.3.1" + fecha "~2.3.3" + +"@antv/util@^2.0.0": + version "2.0.17" + resolved "https://registry.npmmirror.com/@antv/util/-/util-2.0.17.tgz" + integrity sha512-o6I9hi5CIUvLGDhth0RxNSFDRwXeywmt6ExR4+RmVAzIi48ps6HUy+svxOCayvrPBN37uE6TAc2KDofRo0nK9Q== + dependencies: + csstype "^3.0.8" + tslib "^2.0.3" + +"@antv/util@~1.3.1": + version "1.3.1" + resolved "https://registry.npmmirror.com/@antv/util/-/util-1.3.1.tgz" + integrity sha512-cbUta0hIJrKEaW3eKoGarz3Ita+9qUPF2YzTj8A6wds/nNiy20G26ztIWHU+5ThLc13B1n5Ik52LbaCaeg9enA== + dependencies: + "@antv/gl-matrix" "^2.7.1" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.25.9", "@babel/code-frame@^7.26.0", "@babel/code-frame@^7.26.2": + version "7.26.2" + resolved "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.26.2.tgz" + integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ== + dependencies: + "@babel/helper-validator-identifier" "^7.25.9" + js-tokens "^4.0.0" + picocolors "^1.0.0" + +"@babel/code-frame@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.27.1.tgz" + integrity sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg== + dependencies: + "@babel/helper-validator-identifier" "^7.27.1" + js-tokens "^4.0.0" + picocolors "^1.1.1" + +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.25.9": + version "7.26.3" + resolved "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.26.3.tgz" + integrity sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g== + +"@babel/compat-data@^7.27.2": + version "7.27.2" + resolved "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.27.2.tgz" + integrity sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ== + +"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.0.0-0 || ^8.0.0-0 <8.0.0", "@babel/core@^7.1.0", "@babel/core@^7.11.0", "@babel/core@^7.12.0", "@babel/core@^7.12.16", "@babel/core@^7.12.3", "@babel/core@^7.13.0", "@babel/core@^7.23.3", "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0", "@babel/core@^7.7.2", "@babel/core@^7.8.0": + version "7.26.0" + resolved "https://registry.npmmirror.com/@babel/core/-/core-7.26.0.tgz" + integrity sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.26.0" + "@babel/generator" "^7.26.0" + "@babel/helper-compilation-targets" "^7.25.9" + "@babel/helper-module-transforms" "^7.26.0" + "@babel/helpers" "^7.26.0" + "@babel/parser" "^7.26.0" + "@babel/template" "^7.25.9" + "@babel/traverse" "^7.25.9" + "@babel/types" "^7.26.0" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/eslint-parser@^7.23.3": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/eslint-parser/-/eslint-parser-7.27.1.tgz" + integrity sha512-q8rjOuadH0V6Zo4XLMkJ3RMQ9MSBqwaDByyYB0izsYdaIWGNLmEblbCOf1vyFHICcg16CD7Fsi51vcQnYxmt6Q== + dependencies: + "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" + eslint-visitor-keys "^2.1.0" + semver "^6.3.1" + +"@babel/generator@^7.26.0", "@babel/generator@^7.26.3", "@babel/generator@^7.7.2": + version "7.26.3" + resolved "https://registry.npmmirror.com/@babel/generator/-/generator-7.26.3.tgz" + integrity sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ== + dependencies: + "@babel/parser" "^7.26.3" + "@babel/types" "^7.26.3" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^3.0.2" + +"@babel/generator@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/generator/-/generator-7.27.1.tgz" + integrity sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w== + dependencies: + "@babel/parser" "^7.27.1" + "@babel/types" "^7.27.1" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^3.0.2" + +"@babel/helper-annotate-as-pure@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.1.tgz" + integrity sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow== + dependencies: + "@babel/types" "^7.27.1" + +"@babel/helper-compilation-targets@^7.12.16", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.25.9": + version "7.25.9" + resolved "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz" + integrity sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ== + dependencies: + "@babel/compat-data" "^7.25.9" + "@babel/helper-validator-option" "^7.25.9" + browserslist "^4.24.0" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-compilation-targets@^7.27.1": + version "7.27.2" + resolved "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz" + integrity sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ== + dependencies: + "@babel/compat-data" "^7.27.2" + "@babel/helper-validator-option" "^7.27.1" + browserslist "^4.24.0" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-compilation-targets@^7.27.2": + version "7.27.2" + resolved "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz" + integrity sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ== + dependencies: + "@babel/compat-data" "^7.27.2" + "@babel/helper-validator-option" "^7.27.1" + browserslist "^4.24.0" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz" + integrity sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-member-expression-to-functions" "^7.27.1" + "@babel/helper-optimise-call-expression" "^7.27.1" + "@babel/helper-replace-supers" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + "@babel/traverse" "^7.27.1" + semver "^6.3.1" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz" + integrity sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.1" + regexpu-core "^6.2.0" + semver "^6.3.1" + +"@babel/helper-define-polyfill-provider@^0.6.3", "@babel/helper-define-polyfill-provider@^0.6.4": + version "0.6.4" + resolved "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.4.tgz" + integrity sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw== + dependencies: + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + +"@babel/helper-member-expression-to-functions@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz" + integrity sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA== + dependencies: + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" + +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.25.9": + version "7.25.9" + resolved "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz" + integrity sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw== + dependencies: + "@babel/traverse" "^7.25.9" + "@babel/types" "^7.25.9" + +"@babel/helper-module-imports@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz" + integrity sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w== + dependencies: + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" + +"@babel/helper-module-transforms@^7.26.0": + version "7.26.0" + resolved "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz" + integrity sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw== + dependencies: + "@babel/helper-module-imports" "^7.25.9" + "@babel/helper-validator-identifier" "^7.25.9" + "@babel/traverse" "^7.25.9" + +"@babel/helper-module-transforms@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.27.1.tgz" + integrity sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g== + dependencies: + "@babel/helper-module-imports" "^7.27.1" + "@babel/helper-validator-identifier" "^7.27.1" + "@babel/traverse" "^7.27.1" + +"@babel/helper-optimise-call-expression@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz" + integrity sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw== + dependencies: + "@babel/types" "^7.27.1" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.25.9", "@babel/helper-plugin-utils@^7.8.0": + version "7.25.9" + resolved "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz" + integrity sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw== + +"@babel/helper-plugin-utils@^7.26.5": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz" + integrity sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw== + +"@babel/helper-plugin-utils@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz" + integrity sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw== + +"@babel/helper-remap-async-to-generator@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz" + integrity sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-wrap-function" "^7.27.1" + "@babel/traverse" "^7.27.1" + +"@babel/helper-replace-supers@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz" + integrity sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.27.1" + "@babel/helper-optimise-call-expression" "^7.27.1" + "@babel/traverse" "^7.27.1" + +"@babel/helper-skip-transparent-expression-wrappers@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz" + integrity sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg== + dependencies: + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" + +"@babel/helper-string-parser@^7.25.9": + version "7.25.9" + resolved "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz" + integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA== + +"@babel/helper-string-parser@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz" + integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== + +"@babel/helper-validator-identifier@^7.25.9": + version "7.25.9" + resolved "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz" + integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== + +"@babel/helper-validator-identifier@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz" + integrity sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow== + +"@babel/helper-validator-option@^7.25.9": + version "7.25.9" + resolved "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz" + integrity sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw== + +"@babel/helper-validator-option@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz" + integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg== + +"@babel/helper-wrap-function@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/helper-wrap-function/-/helper-wrap-function-7.27.1.tgz" + integrity sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ== + dependencies: + "@babel/template" "^7.27.1" + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" + +"@babel/helpers@^7.26.0": + version "7.26.0" + resolved "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.26.0.tgz" + integrity sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw== + dependencies: + "@babel/template" "^7.25.9" + "@babel/types" "^7.26.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.5", "@babel/parser@^7.25.3", "@babel/parser@^7.25.9", "@babel/parser@^7.26.0", "@babel/parser@^7.26.3", "@babel/parser@^7.7.0": + version "7.26.3" + resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.26.3.tgz" + integrity sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA== + dependencies: + "@babel/types" "^7.26.3" + +"@babel/parser@^7.26.9": + version "7.27.2" + resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.27.2.tgz" + integrity sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw== + dependencies: + "@babel/types" "^7.27.1" + +"@babel/parser@^7.27.1", "@babel/parser@^7.27.2": + version "7.27.2" + resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.27.2.tgz" + integrity sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw== + dependencies: + "@babel/types" "^7.27.1" + +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz" + integrity sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/traverse" "^7.27.1" + +"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz" + integrity sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz" + integrity sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz" + integrity sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + "@babel/plugin-transform-optional-chaining" "^7.27.1" + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.27.1.tgz" + integrity sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/traverse" "^7.27.1" + +"@babel/plugin-proposal-class-properties@^7.12.13": + version "7.18.6" + resolved "https://registry.npmmirror.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz" + integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-decorators@^7.12.13": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.27.1.tgz" + integrity sha512-DTxe4LBPrtFdsWzgpmbBKevg3e9PBy+dXRt19kSbucbZvL2uqtdqwwpluL1jfxYE0wIDTFp1nTy/q6gNLsxXrg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/plugin-syntax-decorators" "^7.27.1" + +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-decorators@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.27.1.tgz" + integrity sha512-YMq8Z87Lhl8EGkmb0MwYkt36QnxC+fzCgrl66ereamPlYToRpIk5nUjKUY3QKLWq8mwUB1BgbeXcTJhZOCDg5A== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-import-assertions@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz" + integrity sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-syntax-import-attributes@^7.24.7": + version "7.26.0" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz" + integrity sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-syntax-import-attributes@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz" + integrity sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-syntax-import-meta@^7.10.4": + version "7.10.4" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.12.13", "@babel/plugin-syntax-jsx@^7.2.0", "@babel/plugin-syntax-jsx@^7.25.9": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz" + integrity sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + version "7.10.4" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5": + version "7.14.5" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.7.2": + version "7.25.9" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz" + integrity sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-arrow-functions@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz" + integrity sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-async-generator-functions@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.27.1.tgz" + integrity sha512-eST9RrwlpaoJBDHShc+DS2SG4ATTi2MYNb4OxYkf3n+7eb49LWpnS+HSpVfW4x927qQwgk8A2hGNVaajAEw0EA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-remap-async-to-generator" "^7.27.1" + "@babel/traverse" "^7.27.1" + +"@babel/plugin-transform-async-to-generator@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz" + integrity sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA== + dependencies: + "@babel/helper-module-imports" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-remap-async-to-generator" "^7.27.1" + +"@babel/plugin-transform-block-scoped-functions@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz" + integrity sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-block-scoping@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.1.tgz" + integrity sha512-QEcFlMl9nGTgh1rn2nIeU5bkfb9BAjaQcWbiP4LvKxUot52ABcTkpcyJ7f2Q2U2RuQ84BNLgts3jRme2dTx6Fw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-class-properties@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz" + integrity sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-class-static-block@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.27.1.tgz" + integrity sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-classes@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.27.1.tgz" + integrity sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-compilation-targets" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-replace-supers" "^7.27.1" + "@babel/traverse" "^7.27.1" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz" + integrity sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/template" "^7.27.1" + +"@babel/plugin-transform-destructuring@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.27.1.tgz" + integrity sha512-ttDCqhfvpE9emVkXbPD8vyxxh4TWYACVybGkDj+oReOGwnp066ITEivDlLwe0b1R0+evJ13IXQuLNB5w1fhC5Q== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-dotall-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz" + integrity sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-duplicate-keys@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz" + integrity sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz" + integrity sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-dynamic-import@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz" + integrity sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-exponentiation-operator@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz" + integrity sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-export-namespace-from@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz" + integrity sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-for-of@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz" + integrity sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + +"@babel/plugin-transform-function-name@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz" + integrity sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ== + dependencies: + "@babel/helper-compilation-targets" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/traverse" "^7.27.1" + +"@babel/plugin-transform-json-strings@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz" + integrity sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-literals@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz" + integrity sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-logical-assignment-operators@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz" + integrity sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-member-expression-literals@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz" + integrity sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-modules-amd@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz" + integrity sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA== + dependencies: + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-modules-commonjs@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz" + integrity sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw== + dependencies: + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-modules-systemjs@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz" + integrity sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA== + dependencies: + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-validator-identifier" "^7.27.1" + "@babel/traverse" "^7.27.1" + +"@babel/plugin-transform-modules-umd@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz" + integrity sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w== + dependencies: + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz" + integrity sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-new-target@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz" + integrity sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-nullish-coalescing-operator@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz" + integrity sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-numeric-separator@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz" + integrity sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-object-rest-spread@^7.27.2": + version "7.27.2" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.27.2.tgz" + integrity sha512-AIUHD7xJ1mCrj3uPozvtngY3s0xpv7Nu7DoUSnzNY6Xam1Cy4rUznR//pvMHOhQ4AvbCexhbqXCtpxGHOGOO6g== + dependencies: + "@babel/helper-compilation-targets" "^7.27.2" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/plugin-transform-destructuring" "^7.27.1" + "@babel/plugin-transform-parameters" "^7.27.1" + +"@babel/plugin-transform-object-super@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz" + integrity sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-replace-supers" "^7.27.1" + +"@babel/plugin-transform-optional-catch-binding@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz" + integrity sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-optional-chaining@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz" + integrity sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + +"@babel/plugin-transform-parameters@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.1.tgz" + integrity sha512-018KRk76HWKeZ5l4oTj2zPpSh+NbGdt0st5S6x0pga6HgrjBOJb24mMDHorFopOOd6YHkLgOZ+zaCjZGPO4aKg== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-private-methods@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz" + integrity sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-private-property-in-object@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz" + integrity sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-property-literals@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz" + integrity sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-regenerator@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.1.tgz" + integrity sha512-B19lbbL7PMrKr52BNPjCqg1IyNUIjTcxKj8uX9zHO+PmWN93s19NDr/f69mIkEp2x9nmDJ08a7lgHaTTzvW7mw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-regexp-modifiers@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz" + integrity sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-reserved-words@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz" + integrity sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-runtime@^7.12.15": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.27.1.tgz" + integrity sha512-TqGF3desVsTcp3WrJGj4HfKokfCXCLcHpt4PJF0D8/iT6LPd9RS82Upw3KPeyr6B22Lfd3DO8MVrmp0oRkUDdw== + dependencies: + "@babel/helper-module-imports" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.11.0" + babel-plugin-polyfill-regenerator "^0.6.1" + semver "^6.3.1" + +"@babel/plugin-transform-shorthand-properties@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz" + integrity sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-spread@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz" + integrity sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + +"@babel/plugin-transform-sticky-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz" + integrity sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-template-literals@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz" + integrity sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-typeof-symbol@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz" + integrity sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-unicode-escapes@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz" + integrity sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-unicode-property-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz" + integrity sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-unicode-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz" + integrity sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-unicode-sets-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz" + integrity sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/polyfill@^7.2.5": + version "7.12.1" + resolved "https://registry.npmmirror.com/@babel/polyfill/-/polyfill-7.12.1.tgz" + integrity sha512-X0pi0V6gxLi6lFZpGmeNa4zxtwEmCs42isWLNjZZDE0Y8yVfgu0T2OAHlzBbdYlqbW/YXVvoBHpATEM+goCj8g== + dependencies: + core-js "^2.6.5" + regenerator-runtime "^0.13.4" + +"@babel/preset-env@^7.12.16": + version "7.27.2" + resolved "https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.27.2.tgz" + integrity sha512-Ma4zSuYSlGNRlCLO+EAzLnCmJK2vdstgv+n7aUP+/IKZrOfWHOJVdSJtuub8RzHTj3ahD37k5OKJWvzf16TQyQ== + dependencies: + "@babel/compat-data" "^7.27.2" + "@babel/helper-compilation-targets" "^7.27.2" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-validator-option" "^7.27.1" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.27.1" + "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.27.1" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.27.1" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.27.1" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.27.1" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-import-assertions" "^7.27.1" + "@babel/plugin-syntax-import-attributes" "^7.27.1" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.27.1" + "@babel/plugin-transform-async-generator-functions" "^7.27.1" + "@babel/plugin-transform-async-to-generator" "^7.27.1" + "@babel/plugin-transform-block-scoped-functions" "^7.27.1" + "@babel/plugin-transform-block-scoping" "^7.27.1" + "@babel/plugin-transform-class-properties" "^7.27.1" + "@babel/plugin-transform-class-static-block" "^7.27.1" + "@babel/plugin-transform-classes" "^7.27.1" + "@babel/plugin-transform-computed-properties" "^7.27.1" + "@babel/plugin-transform-destructuring" "^7.27.1" + "@babel/plugin-transform-dotall-regex" "^7.27.1" + "@babel/plugin-transform-duplicate-keys" "^7.27.1" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.27.1" + "@babel/plugin-transform-dynamic-import" "^7.27.1" + "@babel/plugin-transform-exponentiation-operator" "^7.27.1" + "@babel/plugin-transform-export-namespace-from" "^7.27.1" + "@babel/plugin-transform-for-of" "^7.27.1" + "@babel/plugin-transform-function-name" "^7.27.1" + "@babel/plugin-transform-json-strings" "^7.27.1" + "@babel/plugin-transform-literals" "^7.27.1" + "@babel/plugin-transform-logical-assignment-operators" "^7.27.1" + "@babel/plugin-transform-member-expression-literals" "^7.27.1" + "@babel/plugin-transform-modules-amd" "^7.27.1" + "@babel/plugin-transform-modules-commonjs" "^7.27.1" + "@babel/plugin-transform-modules-systemjs" "^7.27.1" + "@babel/plugin-transform-modules-umd" "^7.27.1" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.27.1" + "@babel/plugin-transform-new-target" "^7.27.1" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.27.1" + "@babel/plugin-transform-numeric-separator" "^7.27.1" + "@babel/plugin-transform-object-rest-spread" "^7.27.2" + "@babel/plugin-transform-object-super" "^7.27.1" + "@babel/plugin-transform-optional-catch-binding" "^7.27.1" + "@babel/plugin-transform-optional-chaining" "^7.27.1" + "@babel/plugin-transform-parameters" "^7.27.1" + "@babel/plugin-transform-private-methods" "^7.27.1" + "@babel/plugin-transform-private-property-in-object" "^7.27.1" + "@babel/plugin-transform-property-literals" "^7.27.1" + "@babel/plugin-transform-regenerator" "^7.27.1" + "@babel/plugin-transform-regexp-modifiers" "^7.27.1" + "@babel/plugin-transform-reserved-words" "^7.27.1" + "@babel/plugin-transform-shorthand-properties" "^7.27.1" + "@babel/plugin-transform-spread" "^7.27.1" + "@babel/plugin-transform-sticky-regex" "^7.27.1" + "@babel/plugin-transform-template-literals" "^7.27.1" + "@babel/plugin-transform-typeof-symbol" "^7.27.1" + "@babel/plugin-transform-unicode-escapes" "^7.27.1" + "@babel/plugin-transform-unicode-property-regex" "^7.27.1" + "@babel/plugin-transform-unicode-regex" "^7.27.1" + "@babel/plugin-transform-unicode-sets-regex" "^7.27.1" + "@babel/preset-modules" "0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.11.0" + babel-plugin-polyfill-regenerator "^0.6.1" + core-js-compat "^3.40.0" + semver "^6.3.1" + +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.npmmirror.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/runtime@^7.11.2", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.21.0", "@babel/runtime@^7.23.2", "@babel/runtime@^7.5.5": + version "7.26.0" + resolved "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.26.0.tgz" + integrity sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.25.9", "@babel/template@^7.3.3": + version "7.25.9" + resolved "https://registry.npmmirror.com/@babel/template/-/template-7.25.9.tgz" + integrity sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg== + dependencies: + "@babel/code-frame" "^7.25.9" + "@babel/parser" "^7.25.9" + "@babel/types" "^7.25.9" + +"@babel/template@^7.26.9", "@babel/template@^7.27.1": + version "7.27.2" + resolved "https://registry.npmmirror.com/@babel/template/-/template-7.27.2.tgz" + integrity sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw== + dependencies: + "@babel/code-frame" "^7.27.1" + "@babel/parser" "^7.27.2" + "@babel/types" "^7.27.1" + +"@babel/traverse@^7.25.9", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2": + version "7.26.4" + resolved "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.26.4.tgz" + integrity sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w== + dependencies: + "@babel/code-frame" "^7.26.2" + "@babel/generator" "^7.26.3" + "@babel/parser" "^7.26.3" + "@babel/template" "^7.25.9" + "@babel/types" "^7.26.3" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/traverse@^7.26.9": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.27.1.tgz" + integrity sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg== + dependencies: + "@babel/code-frame" "^7.27.1" + "@babel/generator" "^7.27.1" + "@babel/parser" "^7.27.1" + "@babel/template" "^7.27.1" + "@babel/types" "^7.27.1" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/traverse@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.27.1.tgz" + integrity sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg== + dependencies: + "@babel/code-frame" "^7.27.1" + "@babel/generator" "^7.27.1" + "@babel/parser" "^7.27.1" + "@babel/template" "^7.27.1" + "@babel/types" "^7.27.1" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.25.9", "@babel/types@^7.26.0", "@babel/types@^7.26.3", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0": + version "7.26.3" + resolved "https://registry.npmmirror.com/@babel/types/-/types-7.26.3.tgz" + integrity sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA== + dependencies: + "@babel/helper-string-parser" "^7.25.9" + "@babel/helper-validator-identifier" "^7.25.9" + +"@babel/types@^7.26.9", "@babel/types@^7.27.1": + version "7.27.1" + resolved "https://registry.npmmirror.com/@babel/types/-/types-7.27.1.tgz" + integrity sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q== + dependencies: + "@babel/helper-string-parser" "^7.27.1" + "@babel/helper-validator-identifier" "^7.27.1" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.npmmirror.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@hapi/address@2.x.x": + version "2.1.4" + resolved "https://registry.npmmirror.com/@hapi/address/-/address-2.1.4.tgz" + integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ== + +"@hapi/bourne@1.x.x": + version "1.3.2" + resolved "https://registry.npmmirror.com/@hapi/bourne/-/bourne-1.3.2.tgz" + integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA== + +"@hapi/hoek@^8.3.0", "@hapi/hoek@8.x.x": + version "8.5.1" + resolved "https://registry.npmmirror.com/@hapi/hoek/-/hoek-8.5.1.tgz" + integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow== + +"@hapi/hoek@^9.0.0", "@hapi/hoek@^9.3.0": + version "9.3.0" + resolved "https://registry.npmmirror.com/@hapi/hoek/-/hoek-9.3.0.tgz" + integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== + +"@hapi/joi@^15.0.1": + version "15.1.1" + resolved "https://registry.npmmirror.com/@hapi/joi/-/joi-15.1.1.tgz" + integrity sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ== + dependencies: + "@hapi/address" "2.x.x" + "@hapi/bourne" "1.x.x" + "@hapi/hoek" "8.x.x" + "@hapi/topo" "3.x.x" + +"@hapi/topo@^5.1.0": + version "5.1.0" + resolved "https://registry.npmmirror.com/@hapi/topo/-/topo-5.1.0.tgz" + integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@hapi/topo@3.x.x": + version "3.1.6" + resolved "https://registry.npmmirror.com/@hapi/topo/-/topo-3.1.6.tgz" + integrity sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ== + dependencies: + "@hapi/hoek" "^8.3.0" + +"@intervolga/optimize-cssnano-plugin@^1.0.5": + version "1.0.6" + resolved "https://registry.npmmirror.com/@intervolga/optimize-cssnano-plugin/-/optimize-cssnano-plugin-1.0.6.tgz" + integrity sha512-zN69TnSr0viRSU6cEDIcuPcP67QcpQ6uHACg58FiN9PDrU6SLyGW3MR4tiISbYxy1kDWAVPwD+XwQTWE5cigAA== + dependencies: + cssnano "^4.0.0" + cssnano-preset-default "^4.0.0" + postcss "^7.0.0" + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.npmmirror.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.3" + resolved "https://registry.npmmirror.com/@istanbuljs/schema/-/schema-0.1.3.tgz" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jeecg/antd-online-mini@3.0.0-beta": + version "3.0.0-beta" + resolved "https://registry.npmmirror.com/@jeecg/antd-online-mini/-/antd-online-mini-3.0.0-beta.tgz" + integrity sha512-V2JwKeBy8WinDrIcGaZyr+FwmF63aItR8dEO570qVhw+Gfz+E9p+fE7SNmSDdbjNu4yiKfsavzdl2JvG4pwgXA== + +"@jest/console@^27.5.1": + version "27.5.1" + resolved "https://registry.npmmirror.com/@jest/console/-/console-27.5.1.tgz" + integrity sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg== + dependencies: + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^27.5.1" + jest-util "^27.5.1" + slash "^3.0.0" + +"@jest/core@^27.5.1": + version "27.5.1" + resolved "https://registry.npmmirror.com/@jest/core/-/core-27.5.1.tgz" + integrity sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ== + dependencies: + "@jest/console" "^27.5.1" + "@jest/reporters" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + emittery "^0.8.1" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-changed-files "^27.5.1" + jest-config "^27.5.1" + jest-haste-map "^27.5.1" + jest-message-util "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-resolve-dependencies "^27.5.1" + jest-runner "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" + jest-watcher "^27.5.1" + micromatch "^4.0.4" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^27.5.1": + version "27.5.1" + resolved "https://registry.npmmirror.com/@jest/environment/-/environment-27.5.1.tgz" + integrity sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA== + dependencies: + "@jest/fake-timers" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + jest-mock "^27.5.1" + +"@jest/fake-timers@^27.5.1": + version "27.5.1" + resolved "https://registry.npmmirror.com/@jest/fake-timers/-/fake-timers-27.5.1.tgz" + integrity sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ== + dependencies: + "@jest/types" "^27.5.1" + "@sinonjs/fake-timers" "^8.0.1" + "@types/node" "*" + jest-message-util "^27.5.1" + jest-mock "^27.5.1" + jest-util "^27.5.1" + +"@jest/globals@^27.5.1": + version "27.5.1" + resolved "https://registry.npmmirror.com/@jest/globals/-/globals-27.5.1.tgz" + integrity sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/types" "^27.5.1" + expect "^27.5.1" + +"@jest/reporters@^27.5.1": + version "27.5.1" + resolved "https://registry.npmmirror.com/@jest/reporters/-/reporters-27.5.1.tgz" + integrity sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.2.9" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^5.1.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.1.3" + jest-haste-map "^27.5.1" + jest-resolve "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^4.0.1" + terminal-link "^2.0.0" + v8-to-istanbul "^8.1.0" + +"@jest/source-map@^27.5.1": + version "27.5.1" + resolved "https://registry.npmmirror.com/@jest/source-map/-/source-map-27.5.1.tgz" + integrity sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.9" + source-map "^0.6.0" + +"@jest/test-result@^27.5.1": + version "27.5.1" + resolved "https://registry.npmmirror.com/@jest/test-result/-/test-result-27.5.1.tgz" + integrity sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag== + dependencies: + "@jest/console" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^27.5.1": + version "27.5.1" + resolved "https://registry.npmmirror.com/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz" + integrity sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ== + dependencies: + "@jest/test-result" "^27.5.1" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-runtime "^27.5.1" + +"@jest/transform@^27.5.1": + version "27.5.1" + resolved "https://registry.npmmirror.com/@jest/transform/-/transform-27.5.1.tgz" + integrity sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^27.5.1" + babel-plugin-istanbul "^6.1.1" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-regex-util "^27.5.1" + jest-util "^27.5.1" + micromatch "^4.0.4" + pirates "^4.0.4" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + +"@jest/types@^27.5.1": + version "27.5.1" + resolved "https://registry.npmmirror.com/@jest/types/-/types-27.5.1.tgz" + integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^16.0.0" + chalk "^4.0.0" + +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.8" + resolved "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz" + integrity sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/source-map@^0.3.3": + version "0.3.6" + resolved "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.6.tgz" + integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0": + version "1.5.0" + resolved "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@ljharb/resumer@~0.0.1": + version "0.0.1" + resolved "https://registry.npmmirror.com/@ljharb/resumer/-/resumer-0.0.1.tgz" + integrity sha512-skQiAOrCfO7vRTq53cxznMpks7wS1va95UCidALlOVWqvBAzwPVErwizDwoMqNVMEn1mDq0utxZd02eIrvF1lw== + dependencies: + "@ljharb/through" "^2.3.9" + +"@ljharb/through@^2.3.9", "@ljharb/through@~2.3.9": + version "2.3.13" + resolved "https://registry.npmmirror.com/@ljharb/through/-/through-2.3.13.tgz" + integrity sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ== + dependencies: + call-bind "^1.0.7" + +"@logicflow/core@^1.1.3", "@logicflow/core@^1.2.28": + version "1.2.28" + resolved "https://registry.npmmirror.com/@logicflow/core/-/core-1.2.28.tgz" + integrity sha512-xj9zxYsudK9YLI2UrUa9mXWd4tp8z56Rx4il9Fc/baUWEDwogjqCgblSKepGxEgTX2XX2fQIfUrzqEUoWu2VYQ== + dependencies: + "@types/mousetrap" "^1.6.4" + mousetrap "^1.6.5" + preact "^10.4.8" + +"@logicflow/extension@^1.1.3": + version "1.2.28" + resolved "https://registry.npmmirror.com/@logicflow/extension/-/extension-1.2.28.tgz" + integrity sha512-OHaO57SxjNwDDYVAqrJp/fq9g0NDc4elHmZnWGIqLbkbOMJhiU9IUT2WWK6DctUoYzxhGzTR4Ai5S/TFZ9JjGA== + dependencies: + "@logicflow/core" "^1.2.28" + jest "27.5.1" + lodash-es "^4.17.21" + preact "^10.4.8" + +"@mrmlnc/readdir-enhanced@^2.2.1": + version "2.2.1" + resolved "https://registry.npmmirror.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz" + integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== + dependencies: + call-me-maybe "^1.0.1" + glob-to-regexp "^0.3.0" + +"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": + version "5.1.1-v1" + resolved "https://registry.npmmirror.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz" + integrity sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg== + dependencies: + eslint-scope "5.1.1" + +"@node-ipc/js-queue@2.0.3": + version "2.0.3" + resolved "https://registry.npmmirror.com/@node-ipc/js-queue/-/js-queue-2.0.3.tgz" + integrity sha512-fL1wpr8hhD5gT2dA1qifeVaoDFlQR5es8tFuKqjHX+kdOtdNHnxkVZbtIrR2rxnMFvehkjaZRNV2H/gPXlb0hw== + dependencies: + easy-stack "1.0.1" + +"@nodelib/fs.stat@^1.1.2": + version "1.1.3" + resolved "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz" + integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== + +"@rtsao/scc@^1.1.0": + version "1.1.0" + resolved "https://registry.npmmirror.com/@rtsao/scc/-/scc-1.1.0.tgz" + integrity sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g== + +"@sideway/address@^4.1.5": + version "4.1.5" + resolved "https://registry.npmmirror.com/@sideway/address/-/address-4.1.5.tgz" + integrity sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@sideway/formula@^3.0.1": + version "3.0.1" + resolved "https://registry.npmmirror.com/@sideway/formula/-/formula-3.0.1.tgz" + integrity sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg== + +"@sideway/pinpoint@^2.0.0": + version "2.0.0" + resolved "https://registry.npmmirror.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz" + integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== + +"@simonwep/pickr@~1.7.0": + version "1.7.4" + resolved "https://registry.npmmirror.com/@simonwep/pickr/-/pickr-1.7.4.tgz" + integrity sha512-fq7jgKJT21uWGC1mARBHvvd1JYlEf93o7SuVOB4Lr0x/2UPuNC9Oe9n/GzVeg4oVtqMDfh1wIEJpsdOJEZb+3g== + dependencies: + core-js "^3.6.5" + nanopop "^2.1.0" + +"@sinonjs/commons@^1.7.0": + version "1.8.6" + resolved "https://registry.npmmirror.com/@sinonjs/commons/-/commons-1.8.6.tgz" + integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^8.0.1": + version "8.1.0" + resolved "https://registry.npmmirror.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz" + integrity sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@soda/friendly-errors-webpack-plugin@^1.7.1": + version "1.8.1" + resolved "https://registry.npmmirror.com/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.1.tgz" + integrity sha512-h2ooWqP8XuFqTXT+NyAFbrArzfQA7R6HTezADrvD9Re8fxMLTPPniLdqVTdDaO0eIoLaAwKT+d6w+5GeTk7Vbg== + dependencies: + chalk "^3.0.0" + error-stack-parser "^2.0.6" + string-width "^4.2.3" + strip-ansi "^6.0.1" + +"@tinymce/tinymce-vue@^2.1.0": + version "2.1.0" + resolved "https://registry.npmmirror.com/@tinymce/tinymce-vue/-/tinymce-vue-2.1.0.tgz" + integrity sha512-lDIpeLbkaobS/f00wWaOhGJdiZLdtL0dEDYB4JvqgVeAAoaDFG2PvXXP/kN49xpHpUe8vOdt7xFaN48nrPmsbQ== + dependencies: + vue "^2.5.17" + +"@toast-ui/editor@^2.1.2": + version "2.5.4" + resolved "https://registry.npmmirror.com/@toast-ui/editor/-/editor-2.5.4.tgz" + integrity sha512-XsuYlPQxhec9dHQREFAigjE4enHSuGMF7D0YQ6wW7phmusvAu0FnJfZUPjJBoU/GKz7WP5U6fKU9/P+8j65D8A== + dependencies: + "@types/codemirror" "0.0.71" + codemirror "^5.48.4" + +"@tootallnate/once@1": + version "1.1.2" + resolved "https://registry.npmmirror.com/@tootallnate/once/-/once-1.1.2.tgz" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== + +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": + version "7.20.5" + resolved "https://registry.npmmirror.com/@types/babel__core/-/babel__core-7.20.5.tgz" + integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.8" + resolved "https://registry.npmmirror.com/@types/babel__generator/-/babel__generator-7.6.8.tgz" + integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.4" + resolved "https://registry.npmmirror.com/@types/babel__template/-/babel__template-7.4.4.tgz" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": + version "7.20.6" + resolved "https://registry.npmmirror.com/@types/babel__traverse/-/babel__traverse-7.20.6.tgz" + integrity sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg== + dependencies: + "@babel/types" "^7.20.7" + +"@types/codemirror@0.0.71": + version "0.0.71" + resolved "https://registry.npmmirror.com/@types/codemirror/-/codemirror-0.0.71.tgz" + integrity sha512-b2oEEnno1LIGKMR7uBEsr40al1UijF1HEpRn0+Yf1xOLl24iQgB7DBpZVMM7y54G5wCNoclDrRO65E6KHPNO2w== + dependencies: + "@types/tern" "*" + +"@types/d3-format@*": + version "3.0.4" + resolved "https://registry.npmmirror.com/@types/d3-format/-/d3-format-3.0.4.tgz" + integrity sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g== + +"@types/eslint-scope@^3.7.7": + version "3.7.7" + resolved "https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz" + integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "9.6.1" + resolved "https://registry.npmmirror.com/@types/eslint/-/eslint-9.6.1.tgz" + integrity sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^1.0.6": + version "1.0.6" + resolved "https://registry.npmmirror.com/@types/estree/-/estree-1.0.6.tgz" + integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== + +"@types/glob@^7.1.1": + version "7.2.0" + resolved "https://registry.npmmirror.com/@types/glob/-/glob-7.2.0.tgz" + integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/graceful-fs@^4.1.2": + version "4.1.9" + resolved "https://registry.npmmirror.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz" + integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== + dependencies: + "@types/node" "*" + +"@types/html-minifier-terser@^5.0.0": + version "5.1.2" + resolved "https://registry.npmmirror.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz" + integrity sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w== + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.6" + resolved "https://registry.npmmirror.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== + +"@types/istanbul-lib-report@*": + version "3.0.3" + resolved "https://registry.npmmirror.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.4" + resolved "https://registry.npmmirror.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/json-schema@*", "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": + version "7.0.15" + resolved "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.npmmirror.com/@types/json5/-/json5-0.0.29.tgz" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + +"@types/lodash@*": + version "4.17.13" + resolved "https://registry.npmmirror.com/@types/lodash/-/lodash-4.17.13.tgz" + integrity sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg== + +"@types/minimatch@*": + version "5.1.2" + resolved "https://registry.npmmirror.com/@types/minimatch/-/minimatch-5.1.2.tgz" + integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== + +"@types/mousetrap@^1.6.4": + version "1.6.15" + resolved "https://registry.npmmirror.com/@types/mousetrap/-/mousetrap-1.6.15.tgz" + integrity sha512-qL0hyIMNPow317QWW/63RvL1x5MVMV+Ru3NaY9f/CuEpCqrmb7WeuK2071ZY5hczOnm38qExWM2i2WtkXLSqFw== + +"@types/node@*": + version "22.10.2" + resolved "https://registry.npmmirror.com/@types/node/-/node-22.10.2.tgz" + integrity sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ== + dependencies: + undici-types "~6.20.0" + +"@types/node@^8.0.53": + version "8.10.66" + resolved "https://registry.npmmirror.com/@types/node/-/node-8.10.66.tgz" + integrity sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw== + +"@types/normalize-package-data@^2.4.0": + version "2.4.4" + resolved "https://registry.npmmirror.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz" + integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== + +"@types/prettier@^2.1.5": + version "2.7.3" + resolved "https://registry.npmmirror.com/@types/prettier/-/prettier-2.7.3.tgz" + integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== + +"@types/q@^1.5.1": + version "1.5.8" + resolved "https://registry.npmmirror.com/@types/q/-/q-1.5.8.tgz" + integrity sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw== + +"@types/raf@^3.4.0": + version "3.4.3" + resolved "https://registry.npmmirror.com/@types/raf/-/raf-3.4.3.tgz" + integrity sha512-c4YAvMedbPZ5tEyxzQdMoOhhJ4RD3rngZIdwC2/qDN3d7JpEhB6fiBRKVY1lg5B7Wk+uPBjn5f39j1/2MY1oOw== + +"@types/source-list-map@*": + version "0.1.6" + resolved "https://registry.npmmirror.com/@types/source-list-map/-/source-list-map-0.1.6.tgz" + integrity sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g== + +"@types/stack-utils@^2.0.0": + version "2.0.3" + resolved "https://registry.npmmirror.com/@types/stack-utils/-/stack-utils-2.0.3.tgz" + integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== + +"@types/tapable@^1", "@types/tapable@^1.0.5": + version "1.0.12" + resolved "https://registry.npmmirror.com/@types/tapable/-/tapable-1.0.12.tgz" + integrity sha512-bTHG8fcxEqv1M9+TD14P8ok8hjxoOCkfKc8XXLaaD05kI7ohpeI956jtDOD3XHKBQrlyPughUtzm1jtVhHpA5Q== + +"@types/tern@*": + version "0.23.9" + resolved "https://registry.npmmirror.com/@types/tern/-/tern-0.23.9.tgz" + integrity sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw== + dependencies: + "@types/estree" "*" + +"@types/uglify-js@*": + version "3.17.5" + resolved "https://registry.npmmirror.com/@types/uglify-js/-/uglify-js-3.17.5.tgz" + integrity sha512-TU+fZFBTBcXj/GpDpDaBmgWk/gn96kMZ+uocaFUlV2f8a6WdMzzI44QBCmGcCiYR0Y6ZlNRiyUyKKt5nl/lbzQ== + dependencies: + source-map "^0.6.1" + +"@types/webpack-sources@*": + version "3.2.3" + resolved "https://registry.npmmirror.com/@types/webpack-sources/-/webpack-sources-3.2.3.tgz" + integrity sha512-4nZOdMwSPHZ4pTEZzSp0AsTM4K7Qmu40UKW4tJDiOVs20UzYF9l+qUe4s0ftfN0pin06n+5cWWDJXH+sbhAiDw== + dependencies: + "@types/node" "*" + "@types/source-list-map" "*" + source-map "^0.7.3" + +"@types/webpack@^4.41.8": + version "4.41.40" + resolved "https://registry.npmmirror.com/@types/webpack/-/webpack-4.41.40.tgz" + integrity sha512-u6kMFSBM9HcoTpUXnL6mt2HSzftqb3JgYV6oxIgL2dl6sX6aCa5k6SOkzv5DuZjBTPUE/dJltKtwwuqrkZHpfw== + dependencies: + "@types/node" "*" + "@types/tapable" "^1" + "@types/uglify-js" "*" + "@types/webpack-sources" "*" + anymatch "^3.0.0" + source-map "^0.6.0" + +"@types/yargs-parser@*": + version "21.0.3" + resolved "https://registry.npmmirror.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== + +"@types/yargs@^16.0.0": + version "16.0.9" + resolved "https://registry.npmmirror.com/@types/yargs/-/yargs-16.0.9.tgz" + integrity sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA== + dependencies: + "@types/yargs-parser" "*" + +"@videojs/http-streaming@2.16.3": + version "2.16.3" + resolved "https://registry.npmmirror.com/@videojs/http-streaming/-/http-streaming-2.16.3.tgz" + integrity sha512-91CJv5PnFBzNBvyEjt+9cPzTK/xoVixARj2g7ZAvItA+5bx8VKdk5RxCz/PP2kdzz9W+NiDUMPkdmTsosmy69Q== + dependencies: + "@babel/runtime" "^7.12.5" + "@videojs/vhs-utils" "3.0.5" + aes-decrypter "3.1.3" + global "^4.4.0" + m3u8-parser "4.8.0" + mpd-parser "^0.22.1" + mux.js "6.0.1" + video.js "^6 || ^7" + +"@videojs/vhs-utils@^3.0.4", "@videojs/vhs-utils@^3.0.5", "@videojs/vhs-utils@3.0.5": + version "3.0.5" + resolved "https://registry.npmmirror.com/@videojs/vhs-utils/-/vhs-utils-3.0.5.tgz" + integrity sha512-PKVgdo8/GReqdx512F+ombhS+Bzogiofy1LgAj4tN8PfdBx3HSS7V5WfJotKTqtOWGwVfSWsrYN/t09/DSryrw== + dependencies: + "@babel/runtime" "^7.12.5" + global "^4.4.0" + url-toolkit "^2.2.1" + +"@videojs/xhr@2.6.0": + version "2.6.0" + resolved "https://registry.npmmirror.com/@videojs/xhr/-/xhr-2.6.0.tgz" + integrity sha512-7J361GiN1tXpm+gd0xz2QWr3xNWBE+rytvo8J3KuggFaLg+U37gZQ2BuPLcnkfGffy2e+ozY70RHC8jt7zjA6Q== + dependencies: + "@babel/runtime" "^7.5.5" + global "~4.4.0" + is-function "^1.0.1" + +"@vue-office/docx@^1.6.2": + version "1.6.3" + resolved "https://registry.npmmirror.com/@vue-office/docx/-/docx-1.6.3.tgz" + integrity sha512-Cs+3CAaRBOWOiW4XAhTwwxJ0dy8cPIf6DqfNvYcD3YACiLwO4kuawLF2IAXxyijhbuOeoFsfvoVbOc16A/4bZA== + +"@vue-office/excel@^1.7.11": + version "1.7.12" + resolved "https://registry.npmmirror.com/@vue-office/excel/-/excel-1.7.12.tgz" + integrity sha512-E0BkahhR7WBOCB+iWafsyoJHfxkKDeaRLGPHso4X5Er8whM1+emICcfeULG5bMb2Pl9nez2dESp95tl4OiVehA== + +"@vue-office/pdf@^2.0.9": + version "2.0.10" + resolved "https://registry.npmmirror.com/@vue-office/pdf/-/pdf-2.0.10.tgz" + integrity sha512-yHVLrMAKpMPBkhBwofFyGEtEeJF0Zd7oGmf56Pe5aj/xObdRq3E1CIZqTqhWJNgHV8oLQqaX0vs4p5T1zq+GIA== + +"@vue/babel-helper-vue-jsx-merge-props@^1.4.0": + version "1.4.0" + resolved "https://registry.npmmirror.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.4.0.tgz" + integrity sha512-JkqXfCkUDp4PIlFdDQ0TdXoIejMtTHP67/pvxlgeY+u5k3LEdKuWZ3LK6xkxo52uDoABIVyRwqVkfLQJhk7VBA== + +"@vue/babel-helper-vue-transform-on@1.4.0": + version "1.4.0" + resolved "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.4.0.tgz" + integrity sha512-mCokbouEQ/ocRce/FpKCRItGo+013tHg7tixg3DUNS+6bmIchPt66012kBMm476vyEIJPafrvOf4E5OYj3shSw== + +"@vue/babel-plugin-jsx@^1.0.3": + version "1.4.0" + resolved "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.4.0.tgz" + integrity sha512-9zAHmwgMWlaN6qRKdrg1uKsBKHvnUU+Py+MOCTuYZBoZsopa90Di10QRjB+YPnVss0BZbG/H5XFwJY1fTxJWhA== + dependencies: + "@babel/helper-module-imports" "^7.25.9" + "@babel/helper-plugin-utils" "^7.26.5" + "@babel/plugin-syntax-jsx" "^7.25.9" + "@babel/template" "^7.26.9" + "@babel/traverse" "^7.26.9" + "@babel/types" "^7.26.9" + "@vue/babel-helper-vue-transform-on" "1.4.0" + "@vue/babel-plugin-resolve-type" "1.4.0" + "@vue/shared" "^3.5.13" + +"@vue/babel-plugin-resolve-type@1.4.0": + version "1.4.0" + resolved "https://registry.npmmirror.com/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.4.0.tgz" + integrity sha512-4xqDRRbQQEWHQyjlYSgZsWj44KfiF6D+ktCuXyZ8EnVDYV3pztmXJDf1HveAjUAXxAnR8daCQT51RneWWxtTyQ== + dependencies: + "@babel/code-frame" "^7.26.2" + "@babel/helper-module-imports" "^7.25.9" + "@babel/helper-plugin-utils" "^7.26.5" + "@babel/parser" "^7.26.9" + "@vue/compiler-sfc" "^3.5.13" + +"@vue/babel-plugin-transform-vue-jsx@^1.4.0": + version "1.4.0" + resolved "https://registry.npmmirror.com/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.4.0.tgz" + integrity sha512-Fmastxw4MMx0vlgLS4XBX0XiBbUFzoMGeVXuMV08wyOfXdikAFqBTuYPR0tlk+XskL19EzHc39SgjrPGY23JnA== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.2.0" + "@vue/babel-helper-vue-jsx-merge-props" "^1.4.0" + html-tags "^2.0.0" + lodash.kebabcase "^4.1.1" + svg-tags "^1.0.0" + +"@vue/babel-preset-app@^5.0.8": + version "5.0.8" + resolved "https://registry.npmmirror.com/@vue/babel-preset-app/-/babel-preset-app-5.0.8.tgz" + integrity sha512-yl+5qhpjd8e1G4cMXfORkkBlvtPCIgmRf3IYCWYDKIQ7m+PPa5iTm4feiNmCMD6yGqQWMhhK/7M3oWGL9boKwg== + dependencies: + "@babel/core" "^7.12.16" + "@babel/helper-compilation-targets" "^7.12.16" + "@babel/helper-module-imports" "^7.12.13" + "@babel/plugin-proposal-class-properties" "^7.12.13" + "@babel/plugin-proposal-decorators" "^7.12.13" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-jsx" "^7.12.13" + "@babel/plugin-transform-runtime" "^7.12.15" + "@babel/preset-env" "^7.12.16" + "@babel/runtime" "^7.12.13" + "@vue/babel-plugin-jsx" "^1.0.3" + "@vue/babel-preset-jsx" "^1.1.2" + babel-plugin-dynamic-import-node "^2.3.3" + core-js "^3.8.3" + core-js-compat "^3.8.3" + semver "^7.3.4" + +"@vue/babel-preset-jsx@^1.1.2": + version "1.4.0" + resolved "https://registry.npmmirror.com/@vue/babel-preset-jsx/-/babel-preset-jsx-1.4.0.tgz" + integrity sha512-QmfRpssBOPZWL5xw7fOuHNifCQcNQC1PrOo/4fu6xlhlKJJKSA3HqX92Nvgyx8fqHZTUGMPHmFA+IDqwXlqkSA== + dependencies: + "@vue/babel-helper-vue-jsx-merge-props" "^1.4.0" + "@vue/babel-plugin-transform-vue-jsx" "^1.4.0" + "@vue/babel-sugar-composition-api-inject-h" "^1.4.0" + "@vue/babel-sugar-composition-api-render-instance" "^1.4.0" + "@vue/babel-sugar-functional-vue" "^1.4.0" + "@vue/babel-sugar-inject-h" "^1.4.0" + "@vue/babel-sugar-v-model" "^1.4.0" + "@vue/babel-sugar-v-on" "^1.4.0" + +"@vue/babel-sugar-composition-api-inject-h@^1.4.0": + version "1.4.0" + resolved "https://registry.npmmirror.com/@vue/babel-sugar-composition-api-inject-h/-/babel-sugar-composition-api-inject-h-1.4.0.tgz" + integrity sha512-VQq6zEddJHctnG4w3TfmlVp5FzDavUSut/DwR0xVoe/mJKXyMcsIibL42wPntozITEoY90aBV0/1d2KjxHU52g== + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@vue/babel-sugar-composition-api-render-instance@^1.4.0": + version "1.4.0" + resolved "https://registry.npmmirror.com/@vue/babel-sugar-composition-api-render-instance/-/babel-sugar-composition-api-render-instance-1.4.0.tgz" + integrity sha512-6ZDAzcxvy7VcnCjNdHJ59mwK02ZFuP5CnucloidqlZwVQv5CQLijc3lGpR7MD3TWFi78J7+a8J56YxbCtHgT9Q== + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@vue/babel-sugar-functional-vue@^1.4.0": + version "1.4.0" + resolved "https://registry.npmmirror.com/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.4.0.tgz" + integrity sha512-lTEB4WUFNzYt2In6JsoF9sAYVTo84wC4e+PoZWSgM6FUtqRJz7wMylaEhSRgG71YF+wfLD6cc9nqVeXN2rwBvw== + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@vue/babel-sugar-inject-h@^1.4.0": + version "1.4.0" + resolved "https://registry.npmmirror.com/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.4.0.tgz" + integrity sha512-muwWrPKli77uO2fFM7eA3G1lAGnERuSz2NgAxuOLzrsTlQl8W4G+wwbM4nB6iewlKbwKRae3nL03UaF5ffAPMA== + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@vue/babel-sugar-v-model@^1.4.0": + version "1.4.0" + resolved "https://registry.npmmirror.com/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.4.0.tgz" + integrity sha512-0t4HGgXb7WHYLBciZzN5s0Hzqan4Ue+p/3FdQdcaHAb7s5D9WZFGoSxEZHrR1TFVZlAPu1bejTKGeAzaaG3NCQ== + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + "@vue/babel-helper-vue-jsx-merge-props" "^1.4.0" + "@vue/babel-plugin-transform-vue-jsx" "^1.4.0" + camelcase "^5.0.0" + html-tags "^2.0.0" + svg-tags "^1.0.0" + +"@vue/babel-sugar-v-on@^1.4.0": + version "1.4.0" + resolved "https://registry.npmmirror.com/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.4.0.tgz" + integrity sha512-m+zud4wKLzSKgQrWwhqRObWzmTuyzl6vOP7024lrpeJM4x2UhQtRDLgYjXAw9xBXjCwS0pP9kXjg91F9ZNo9JA== + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + "@vue/babel-plugin-transform-vue-jsx" "^1.4.0" + camelcase "^5.0.0" + +"@vue/cli-overlay@^3.12.1": + version "3.12.1" + resolved "https://registry.npmmirror.com/@vue/cli-overlay/-/cli-overlay-3.12.1.tgz" + integrity sha512-Bym92EN+lj+cNRN2ozbYyH+V8DMXWGbCDUk+hiJ4EYDBZfBkZKvalk1/mOBFwyxiopnnbOEBAAhL/UuMQ1xARg== + +"@vue/cli-plugin-babel@~5.0.0": + version "5.0.8" + resolved "https://registry.npmmirror.com/@vue/cli-plugin-babel/-/cli-plugin-babel-5.0.8.tgz" + integrity sha512-a4qqkml3FAJ3auqB2kN2EMPocb/iu0ykeELwed+9B1c1nQ1HKgslKMHMPavYx3Cd/QAx2mBD4hwKBqZXEI/CsQ== + dependencies: + "@babel/core" "^7.12.16" + "@vue/babel-preset-app" "^5.0.8" + "@vue/cli-shared-utils" "^5.0.8" + babel-loader "^8.2.2" + thread-loader "^3.0.0" + webpack "^5.54.0" + +"@vue/cli-plugin-eslint@^3.3.0": + version "3.12.1" + resolved "https://registry.npmmirror.com/@vue/cli-plugin-eslint/-/cli-plugin-eslint-3.12.1.tgz" + integrity sha512-tVTZlEZsy3sQbO4LLWFK11yzlWwqVAqaM+IY+BeWHITBzEJKh2KmouG+x6x/reXiU3qROsMJ4Ej3Hs8buSMWyQ== + dependencies: + "@vue/cli-shared-utils" "^3.12.1" + babel-eslint "^10.0.1" + eslint-loader "^2.1.2" + globby "^9.2.0" + webpack "^4.0.0" + yorkie "^2.0.0" + optionalDependencies: + eslint "^4.19.1" + eslint-plugin-vue "^4.7.1" + +"@vue/cli-service@^3.0.0 || ^4.0.0 || ^5.0.0-0", "@vue/cli-service@^3.3.0": + version "3.12.1" + resolved "https://registry.npmmirror.com/@vue/cli-service/-/cli-service-3.12.1.tgz" + integrity sha512-PDxNrTGnSKzeV1ruFlsRIAO8JcPizwT0EJXq9GeyooU+p+sOkv7aKkCBJQVYNjZapD1NOGWx6CvAAC/wAW+gew== + dependencies: + "@intervolga/optimize-cssnano-plugin" "^1.0.5" + "@soda/friendly-errors-webpack-plugin" "^1.7.1" + "@vue/cli-overlay" "^3.12.1" + "@vue/cli-shared-utils" "^3.12.1" + "@vue/component-compiler-utils" "^3.0.0" + "@vue/preload-webpack-plugin" "^1.1.0" + "@vue/web-component-wrapper" "^1.2.0" + acorn "^6.1.1" + acorn-walk "^6.1.1" + address "^1.0.3" + autoprefixer "^9.5.1" + browserslist "^4.5.4" + cache-loader "^2.0.1" + case-sensitive-paths-webpack-plugin "^2.2.0" + chalk "^2.4.2" + cli-highlight "^2.1.0" + clipboardy "^2.0.0" + cliui "^5.0.0" + copy-webpack-plugin "^4.6.0" + css-loader "^1.0.1" + cssnano "^4.1.10" + current-script-polyfill "^1.0.0" + debug "^4.1.1" + default-gateway "^5.0.2" + dotenv "^7.0.0" + dotenv-expand "^5.1.0" + escape-string-regexp "^1.0.5" + file-loader "^3.0.1" + fs-extra "^7.0.1" + globby "^9.2.0" + hash-sum "^1.0.2" + html-webpack-plugin "^3.2.0" + launch-editor-middleware "^2.2.1" + lodash.defaultsdeep "^4.6.1" + lodash.mapvalues "^4.6.0" + lodash.transform "^4.6.0" + mini-css-extract-plugin "^0.8.0" + minimist "^1.2.0" + ora "^3.4.0" + portfinder "^1.0.20" + postcss-loader "^3.0.0" + read-pkg "^5.0.0" + semver "^6.0.0" + slash "^2.0.0" + source-map-url "^0.4.0" + ssri "^6.0.1" + string.prototype.padend "^3.0.0" + terser-webpack-plugin "^1.2.3" + thread-loader "^2.1.2" + url-loader "^1.1.2" + vue-loader "^15.7.0" + webpack "^4.0.0" + webpack-bundle-analyzer "^3.3.0" + webpack-chain "^4.11.0" + webpack-dev-server "^3.4.1" + webpack-merge "^4.2.1" + +"@vue/cli-shared-utils@^3.12.1": + version "3.12.1" + resolved "https://registry.npmmirror.com/@vue/cli-shared-utils/-/cli-shared-utils-3.12.1.tgz" + integrity sha512-jFblzRFjutGwu5utOKdVlPlsbA1lBUNNQlAThzNqej+JtTKJjnvjlhjKX0Gq0oOny5FjKWhoyfQ74p9h1qE6JQ== + dependencies: + "@hapi/joi" "^15.0.1" + chalk "^2.4.1" + execa "^1.0.0" + launch-editor "^2.2.1" + lru-cache "^5.1.1" + node-ipc "^9.1.1" + open "^6.3.0" + ora "^3.4.0" + request "^2.87.0" + request-promise-native "^1.0.7" + semver "^6.0.0" + string.prototype.padstart "^3.0.0" + +"@vue/cli-shared-utils@^5.0.8": + version "5.0.8" + resolved "https://registry.npmmirror.com/@vue/cli-shared-utils/-/cli-shared-utils-5.0.8.tgz" + integrity sha512-uK2YB7bBVuQhjOJF+O52P9yFMXeJVj7ozqJkwYE9PlMHL1LMHjtCYm4cSdOebuPzyP+/9p0BimM/OqxsevIopQ== + dependencies: + "@achrinza/node-ipc" "^9.2.5" + chalk "^4.1.2" + execa "^1.0.0" + joi "^17.4.0" + launch-editor "^2.2.1" + lru-cache "^6.0.0" + node-fetch "^2.6.7" + open "^8.0.2" + ora "^5.3.0" + read-pkg "^5.1.1" + semver "^7.3.4" + strip-ansi "^6.0.0" + +"@vue/compiler-core@3.5.13": + version "3.5.13" + resolved "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.13.tgz" + integrity sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q== + dependencies: + "@babel/parser" "^7.25.3" + "@vue/shared" "3.5.13" + entities "^4.5.0" + estree-walker "^2.0.2" + source-map-js "^1.2.0" + +"@vue/compiler-dom@3.5.13": + version "3.5.13" + resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz" + integrity sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA== + dependencies: + "@vue/compiler-core" "3.5.13" + "@vue/shared" "3.5.13" + +"@vue/compiler-sfc@^3.5.13": + version "3.5.13" + resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz" + integrity sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ== + dependencies: + "@babel/parser" "^7.25.3" + "@vue/compiler-core" "3.5.13" + "@vue/compiler-dom" "3.5.13" + "@vue/compiler-ssr" "3.5.13" + "@vue/shared" "3.5.13" + estree-walker "^2.0.2" + magic-string "^0.30.11" + postcss "^8.4.48" + source-map-js "^1.2.0" + +"@vue/compiler-sfc@2.7.16": + version "2.7.16" + resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz" + integrity sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg== + dependencies: + "@babel/parser" "^7.23.5" + postcss "^8.4.14" + source-map "^0.6.1" + optionalDependencies: + prettier "^1.18.2 || ^2.0.0" + +"@vue/compiler-ssr@3.5.13": + version "3.5.13" + resolved "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz" + integrity sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA== + dependencies: + "@vue/compiler-dom" "3.5.13" + "@vue/shared" "3.5.13" + +"@vue/component-compiler-utils@^3.0.0", "@vue/component-compiler-utils@^3.1.0": + version "3.3.0" + resolved "https://registry.npmmirror.com/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz" + integrity sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ== + dependencies: + consolidate "^0.15.1" + hash-sum "^1.0.2" + lru-cache "^4.1.2" + merge-source-map "^1.1.0" + postcss "^7.0.36" + postcss-selector-parser "^6.0.2" + source-map "~0.6.1" + vue-template-es2015-compiler "^1.9.0" + optionalDependencies: + prettier "^1.18.2 || ^2.0.0" + +"@vue/composition-api@^1.0.0-rc.1", "@vue/composition-api@^1.7.1", "@vue/composition-api@^1.7.2": + version "1.7.2" + resolved "https://registry.npmmirror.com/@vue/composition-api/-/composition-api-1.7.2.tgz" + integrity sha512-M8jm9J/laYrYT02665HkZ5l2fWTK4dcVg3BsDHm/pfz+MjDYwX+9FUaZyGwEyXEDonQYRCo0H7aLgdklcIELjw== + +"@vue/eslint-config-standard@^4.0.0": + version "4.0.0" + resolved "https://registry.npmmirror.com/@vue/eslint-config-standard/-/eslint-config-standard-4.0.0.tgz" + integrity sha512-bQghq1cw1BuMRHNhr3tRpAJx1tpGy0QtajQX873kLtA9YVuOIoXR7nAWnTN09bBHnSUh2N288vMsqPi2fI4Hzg== + dependencies: + eslint-config-standard "^12.0.0" + eslint-plugin-import "^2.14.0" + eslint-plugin-node "^8.0.0" + eslint-plugin-promise "^4.0.1" + eslint-plugin-standard "^4.0.0" + +"@vue/preload-webpack-plugin@^1.1.0": + version "1.1.2" + resolved "https://registry.npmmirror.com/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.2.tgz" + integrity sha512-LIZMuJk38pk9U9Ur4YzHjlIyMuxPlACdBIHH9/nGYVTsaGKOSnSuELiE8vS9wa+dJpIYspYUOqk+L1Q4pgHQHQ== + +"@vue/reactivity@^3.2.37": + version "3.5.13" + resolved "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.13.tgz" + integrity sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg== + dependencies: + "@vue/shared" "3.5.13" + +"@vue/shared@^3.5.13", "@vue/shared@3.5.13": + version "3.5.13" + resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.13.tgz" + integrity sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ== + +"@vue/web-component-wrapper@^1.2.0": + version "1.3.0" + resolved "https://registry.npmmirror.com/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz" + integrity sha512-Iu8Tbg3f+emIIMmI2ycSI8QcEuAUgPTgHwesDU1eKMLE4YC/c/sFbGc70QgMq31ijRftV0R7vCm9co6rldCeOA== + +"@webassemblyjs/ast@^1.14.1", "@webassemblyjs/ast@1.14.1": + version "1.14.1" + resolved "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.14.1.tgz" + integrity sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ== + dependencies: + "@webassemblyjs/helper-numbers" "1.13.2" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + +"@webassemblyjs/ast@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.9.0.tgz" + integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== + dependencies: + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + +"@webassemblyjs/floating-point-hex-parser@1.13.2": + version "1.13.2" + resolved "https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz" + integrity sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA== + +"@webassemblyjs/floating-point-hex-parser@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz" + integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== + +"@webassemblyjs/helper-api-error@1.13.2": + version "1.13.2" + resolved "https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz" + integrity sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ== + +"@webassemblyjs/helper-api-error@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz" + integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== + +"@webassemblyjs/helper-buffer@1.14.1": + version "1.14.1" + resolved "https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz" + integrity sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA== + +"@webassemblyjs/helper-buffer@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz" + integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== + +"@webassemblyjs/helper-code-frame@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz" + integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== + dependencies: + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/helper-fsm@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz" + integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== + +"@webassemblyjs/helper-module-context@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz" + integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + +"@webassemblyjs/helper-numbers@1.13.2": + version "1.13.2" + resolved "https://registry.npmmirror.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz" + integrity sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.13.2" + "@webassemblyjs/helper-api-error" "1.13.2" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.13.2": + version "1.13.2" + resolved "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz" + integrity sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA== + +"@webassemblyjs/helper-wasm-bytecode@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz" + integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== + +"@webassemblyjs/helper-wasm-section@1.14.1": + version "1.14.1" + resolved "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz" + integrity sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/wasm-gen" "1.14.1" + +"@webassemblyjs/helper-wasm-section@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz" + integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + +"@webassemblyjs/ieee754@1.13.2": + version "1.13.2" + resolved "https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz" + integrity sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/ieee754@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz" + integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.13.2": + version "1.13.2" + resolved "https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.13.2.tgz" + integrity sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/leb128@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz" + integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.13.2": + version "1.13.2" + resolved "https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.13.2.tgz" + integrity sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ== + +"@webassemblyjs/utf8@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz" + integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== + +"@webassemblyjs/wasm-edit@^1.14.1": + version "1.14.1" + resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz" + integrity sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/helper-wasm-section" "1.14.1" + "@webassemblyjs/wasm-gen" "1.14.1" + "@webassemblyjs/wasm-opt" "1.14.1" + "@webassemblyjs/wasm-parser" "1.14.1" + "@webassemblyjs/wast-printer" "1.14.1" + +"@webassemblyjs/wasm-edit@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz" + integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/helper-wasm-section" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-opt" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/wasm-gen@1.14.1": + version "1.14.1" + resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz" + integrity sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/ieee754" "1.13.2" + "@webassemblyjs/leb128" "1.13.2" + "@webassemblyjs/utf8" "1.13.2" + +"@webassemblyjs/wasm-gen@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz" + integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wasm-opt@1.14.1": + version "1.14.1" + resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz" + integrity sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/wasm-gen" "1.14.1" + "@webassemblyjs/wasm-parser" "1.14.1" + +"@webassemblyjs/wasm-opt@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz" + integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + +"@webassemblyjs/wasm-parser@^1.14.1", "@webassemblyjs/wasm-parser@1.14.1": + version "1.14.1" + resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz" + integrity sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-api-error" "1.13.2" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/ieee754" "1.13.2" + "@webassemblyjs/leb128" "1.13.2" + "@webassemblyjs/utf8" "1.13.2" + +"@webassemblyjs/wasm-parser@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz" + integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wast-parser@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz" + integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/floating-point-hex-parser" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-code-frame" "1.9.0" + "@webassemblyjs/helper-fsm" "1.9.0" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.14.1": + version "1.14.1" + resolved "https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz" + integrity sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz" + integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + "@xtuc/long" "4.2.2" + +"@xmldom/xmldom@^0.8.3": + version "0.8.10" + resolved "https://registry.npmmirror.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz" + integrity sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw== + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +abab@^2.0.3, abab@^2.0.5: + version "2.0.6" + resolved "https://registry.npmmirror.com/abab/-/abab-2.0.6.tgz" + integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== + +abs-svg-path@~0.1.1: + version "0.1.1" + resolved "https://registry.npmmirror.com/abs-svg-path/-/abs-svg-path-0.1.1.tgz" + integrity sha512-d8XPSGjfyzlXC3Xx891DJRyZfqk5JU0BJrDQcsWomFIV1/BIzPW5HDH5iDdWpqWaav0YVIEzT1RHTwWr0FFshA== + +accepts@~1.3.4, accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-dynamic-import@^2.0.0: + version "2.0.2" + resolved "https://registry.npmmirror.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz" + integrity sha512-GKp5tQ8h0KMPWIYGRHHXI1s5tUpZixZ3IHF2jAu42wSCf6In/G873s6/y4DdKdhWvzhu1T6mE1JgvnhAKqyYYQ== + dependencies: + acorn "^4.0.3" + +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.npmmirror.com/acorn-globals/-/acorn-globals-6.0.0.tgz" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + +acorn-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz" + integrity sha512-AU7pnZkguthwBjKgCg6998ByQNIMjbuDQZ8bb78QAFZwPfmKia8AIzgY/gWgqCjnht8JLdXmB4YxA0KaV60ncQ== + dependencies: + acorn "^3.0.4" + +acorn-jsx@^5.0.0: + version "5.3.2" + resolved "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-walk@^6.1.1: + version "6.2.0" + resolved "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-6.2.0.tgz" + integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== + +acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-7.2.0.tgz" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + +acorn@^3.0.4: + version "3.3.0" + resolved "https://registry.npmmirror.com/acorn/-/acorn-3.3.0.tgz" + integrity sha512-OLUyIIZ7mF5oaAUT1w0TFqQS81q3saT46x8t7ukpPjMNk+nbs4ZHhs7ToV8EWnLYLepjETXd4XaCE4uxkMeqUw== + +acorn@^4.0.3: + version "4.0.13" + resolved "https://registry.npmmirror.com/acorn/-/acorn-4.0.13.tgz" + integrity sha512-fu2ygVGuMmlzG8ZeRJ0bvR41nsAkxxhbyk8bZ1SS521Z7vmgJFTQQlfz/Mp/nJexGBz+v8sC9bM6+lNgskt4Ug== + +acorn@^5.0.0: + version "5.7.4" + resolved "https://registry.npmmirror.com/acorn/-/acorn-5.7.4.tgz" + integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== + +acorn@^5.5.0: + version "5.7.4" + resolved "https://registry.npmmirror.com/acorn/-/acorn-5.7.4.tgz" + integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== + +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.14.0, acorn@^8.2.4, acorn@^8.8.2, acorn@^8.9.0: + version "8.14.0" + resolved "https://registry.npmmirror.com/acorn/-/acorn-8.14.0.tgz" + integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== + +acorn@^6.0.7: + version "6.4.2" + resolved "https://registry.npmmirror.com/acorn/-/acorn-6.4.2.tgz" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + +acorn@^6.1.1: + version "6.4.2" + resolved "https://registry.npmmirror.com/acorn/-/acorn-6.4.2.tgz" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + +acorn@^6.4.1: + version "6.4.2" + resolved "https://registry.npmmirror.com/acorn/-/acorn-6.4.2.tgz" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + +acorn@^7.1.1: + version "7.4.1" + resolved "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +add-dom-event-listener@^1.0.2: + version "1.1.0" + resolved "https://registry.npmmirror.com/add-dom-event-listener/-/add-dom-event-listener-1.1.0.tgz" + integrity sha512-WCxx1ixHT0GQU9hb0KI/mhgRQhnU+U3GvwY6ZvVjYq8rsihIGoaIOUbY0yMPBxLH5MDtr0kz3fisWGNcbWW7Jw== + dependencies: + object-assign "4.x" + +address@^1.0.3: + version "1.2.2" + resolved "https://registry.npmmirror.com/address/-/address-1.2.2.tgz" + integrity sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== + +adjust-sourcemap-loader@^1.1.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-1.2.0.tgz" + integrity sha512-958oaHHVEXMvsY7v7cC5gEkNIcoaAVIhZ4mBReYVZJOTP9IgKmzLjIOhTtzpLMu+qriXvLsVjJ155EeInp45IQ== + dependencies: + assert "^1.3.0" + camelcase "^1.2.1" + loader-utils "^1.1.0" + lodash.assign "^4.0.1" + lodash.defaults "^3.1.2" + object-path "^0.9.2" + regex-parser "^2.2.9" + +aes-decrypter@1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/aes-decrypter/-/aes-decrypter-1.0.3.tgz" + integrity sha512-rsx8pfx7wJsn+ziYbpJ8XA5c93hKAtBCrfydxJqJCMT+qfjipd/B5wC2xHtBcoxyvlqJcpeAo3K55t0lXOn9yQ== + dependencies: + pkcs7 "^0.2.3" + +aes-decrypter@3.1.3: + version "3.1.3" + resolved "https://registry.npmmirror.com/aes-decrypter/-/aes-decrypter-3.1.3.tgz" + integrity sha512-VkG9g4BbhMBy+N5/XodDeV6F02chEk9IpgRTq/0bS80y4dzy79VH2Gtms02VXomf3HmyRe3yyJYkJ990ns+d6A== + dependencies: + "@babel/runtime" "^7.12.5" + "@videojs/vhs-utils" "^3.0.5" + global "^4.4.0" + pkcs7 "^1.0.4" + +agent-base@6: + version "6.0.2" + resolved "https://registry.npmmirror.com/agent-base/-/agent-base-6.0.2.tgz" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/aggregate-error/-/aggregate-error-3.1.0.tgz" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/ajv-errors/-/ajv-errors-1.0.1.tgz" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== + +ajv-formats@^2.1.1: + version "2.1.1" + resolved "https://registry.npmmirror.com/ajv-formats/-/ajv-formats-2.1.1.tgz" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + dependencies: + ajv "^8.0.0" + +ajv-keywords@^2.1.0: + version "2.1.1" + resolved "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz" + integrity sha512-ZFztHzVRdGLAzJmpUT9LNFLe1YiVOEylcaNpEutM26PVTCtOD919IMfD01CgbRouB42Dd9atjx1HseC15DgOZA== + +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv-keywords@^5.1.0: + version "5.1.0" + resolved "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz" + integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== + dependencies: + fast-deep-equal "^3.1.3" + +ajv@^5.0.0, ajv@^5.2.3, ajv@^5.3.0, ajv@^6.9.1, ajv@>=5.0.0: + version "5.5.2" + resolved "https://registry.npmmirror.com/ajv/-/ajv-5.5.2.tgz" + integrity sha512-Ajr4IcMXq/2QmMkEmSvxqfLN5zGmJ92gHXAeOXq1OekoH2rfDNsgdDoL2f7QaRCy7G/E6TpxBVdRuNraMztGHw== + dependencies: + co "^4.6.0" + fast-deep-equal "^1.0.0" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.3.0" + +ajv@^6.1.0, ajv@^6.10.2: + version "6.12.6" + resolved "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^6.12.3: + version "6.12.6" + resolved "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^6.12.4, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.0: + version "8.17.1" + resolved "https://registry.npmmirror.com/ajv/-/ajv-8.17.1.tgz" + integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== + dependencies: + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + +ajv@^8.8.2, ajv@^8.9.0: + version "8.17.1" + resolved "https://registry.npmmirror.com/ajv/-/ajv-8.17.1.tgz" + integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== + dependencies: + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + +align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "https://registry.npmmirror.com/align-text/-/align-text-0.1.4.tgz" + integrity sha512-GrTZLRpmp6wIC2ztrWW9MjjTgSKccffgFagbNDOX95/dcjEcYZibYTeaOntySQLcdw1ztBoFkviiUvTMbb9MYg== + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + +alphanum-sort@^1.0.0, alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz" + integrity sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ== + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.npmmirror.com/amdefine/-/amdefine-1.0.1.tgz" + integrity sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg== + +ansi-colors@^3.0.0: + version "3.2.4" + resolved "https://registry.npmmirror.com/ansi-colors/-/ansi-colors-3.2.4.tgz" + integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== + +ansi-escapes@^3.0.0: + version "3.2.0" + resolved "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + +ansi-escapes@^3.2.0: + version "3.2.0" + resolved "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + +ansi-escapes@^4.2.1: + version "4.3.2" + resolved "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-html-community@0.0.8: + version "0.0.8" + resolved "https://registry.npmmirror.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz" + integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== + +ansi-html@0.0.7: + version "0.0.7" + resolved "https://registry.npmmirror.com/ansi-html/-/ansi-html-0.0.7.tgz" + integrity sha512-JoAxEa1DfP9m2xfB/y2r/aKcwXNlltr4+0QSBC4TrLfcxyvepX2Pv0t/xpgGV5bGsDzCYV8SzjWgyCW0T9yYbA== + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz" + integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== + +ansi-regex@^3.0.0: + version "3.0.1" + resolved "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-3.0.1.tgz" + integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== + +ansi-regex@^4.1.0: + version "4.1.1" + resolved "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-4.1.1.tgz" + integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-2.2.1.tgz" + integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-5.2.0.tgz" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +ant-design-vue@^1.7.2, ant-design-vue@>=1.0.0: + version "1.7.8" + resolved "https://registry.npmmirror.com/ant-design-vue/-/ant-design-vue-1.7.8.tgz" + integrity sha512-F1hmiS9vwbyfuFvlamdW5l9bHKqRlj9wHaGDIE41NZMWXyWy8qL0UFa/+I0Wl8gQWZCqODW5pN6Yfoyn85At3A== + dependencies: + "@ant-design/icons" "^2.1.1" + "@ant-design/icons-vue" "^2.0.0" + "@simonwep/pickr" "~1.7.0" + add-dom-event-listener "^1.0.2" + array-tree-filter "^2.1.0" + async-validator "^3.0.3" + babel-helper-vue-jsx-merge-props "^2.0.3" + babel-runtime "6.x" + classnames "^2.2.5" + component-classes "^1.2.6" + dom-align "^1.10.4" + dom-closest "^0.2.0" + dom-scroll-into-view "^2.0.0" + enquire.js "^2.1.6" + intersperse "^1.0.0" + is-mobile "^2.2.1" + is-negative-zero "^2.0.0" + ismobilejs "^1.0.0" + json2mq "^0.2.0" + lodash "^4.17.5" + moment "^2.21.0" + mutationobserver-shim "^0.3.2" + node-emoji "^1.10.0" + omit.js "^1.0.0" + raf "^3.4.0" + resize-observer-polyfill "^1.5.1" + shallow-equal "^1.0.0" + shallowequal "^1.0.2" + vue-ref "^2.0.0" + warning "^4.0.0" + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz" + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/anymatch/-/anymatch-2.0.0.tgz" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@^3.0.0, anymatch@^3.0.3, anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.npmmirror.com/aproba/-/aproba-1.2.0.tgz" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +arch@^2.1.1: + version "2.2.0" + resolved "https://registry.npmmirror.com/arch/-/arch-2.2.0.tgz" + integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/arr-diff/-/arr-diff-4.0.0.tgz" + integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/arr-flatten/-/arr-flatten-1.1.0.tgz" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/arr-union/-/arr-union-3.1.0.tgz" + integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== + +array-buffer-byte-length@^1.0.1, array-buffer-byte-length@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz" + integrity sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw== + dependencies: + call-bound "^1.0.3" + is-array-buffer "^3.0.5" + +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.npmmirror.com/array-find-index/-/array-find-index-1.0.2.tgz" + integrity sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw== + +array-flatten@^2.1.0: + version "2.1.2" + resolved "https://registry.npmmirror.com/array-flatten/-/array-flatten-2.1.2.tgz" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/array-flatten/-/array-flatten-1.1.1.tgz" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +array-includes@^3.0.3, array-includes@^3.1.8: + version "3.1.8" + resolved "https://registry.npmmirror.com/array-includes/-/array-includes-3.1.8.tgz" + integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.4" + is-string "^1.0.7" + +array-tree-filter@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz" + integrity sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw== + +array-union@^1.0.1, array-union@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/array-union/-/array-union-1.0.2.tgz" + integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng== + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.npmmirror.com/array-uniq/-/array-uniq-1.0.3.tgz" + integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.npmmirror.com/array-unique/-/array-unique-0.3.2.tgz" + integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== + +array.prototype.findlastindex@^1.2.5: + version "1.2.5" + resolved "https://registry.npmmirror.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz" + integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-shim-unscopables "^1.0.2" + +array.prototype.flat@^1.3.2: + version "1.3.3" + resolved "https://registry.npmmirror.com/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz" + integrity sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg== + dependencies: + call-bind "^1.0.8" + define-properties "^1.2.1" + es-abstract "^1.23.5" + es-shim-unscopables "^1.0.2" + +array.prototype.flatmap@^1.3.2: + version "1.3.3" + resolved "https://registry.npmmirror.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz" + integrity sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg== + dependencies: + call-bind "^1.0.8" + define-properties "^1.2.1" + es-abstract "^1.23.5" + es-shim-unscopables "^1.0.2" + +array.prototype.reduce@^1.0.6: + version "1.0.8" + resolved "https://registry.npmmirror.com/array.prototype.reduce/-/array.prototype.reduce-1.0.8.tgz" + integrity sha512-DwuEqgXFBwbmZSRqt3BpQigWNUoqw9Ml2dTWdF3B2zQlQX4OeUE0zyuzX0fX0IbTvjdkZbcBTU3idgpO78qkTw== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.4" + define-properties "^1.2.1" + es-abstract "^1.23.9" + es-array-method-boxes-properly "^1.0.0" + es-errors "^1.3.0" + es-object-atoms "^1.1.1" + is-string "^1.1.1" + +arraybuffer.prototype.slice@^1.0.4: + version "1.0.4" + resolved "https://registry.npmmirror.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz" + integrity sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ== + dependencies: + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.8" + define-properties "^1.2.1" + es-abstract "^1.23.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.6" + is-array-buffer "^3.0.4" + +asn1.js@^4.10.1: + version "4.10.1" + resolved "https://registry.npmmirror.com/asn1.js/-/asn1.js-4.10.1.tgz" + integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +asn1@~0.2.3: + version "0.2.6" + resolved "https://registry.npmmirror.com/asn1/-/asn1-0.2.6.tgz" + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@^1.0.0, assert-plus@1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/assert-plus/-/assert-plus-1.0.0.tgz" + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== + +assert@^1.1.1, assert@^1.3.0: + version "1.5.1" + resolved "https://registry.npmmirror.com/assert/-/assert-1.5.1.tgz" + integrity sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A== + dependencies: + object.assign "^4.1.4" + util "^0.10.4" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/assign-symbols/-/assign-symbols-1.0.0.tgz" + integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/astral-regex/-/astral-regex-1.0.0.tgz" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + +async-each@^1.0.1: + version "1.0.6" + resolved "https://registry.npmmirror.com/async-each/-/async-each-1.0.6.tgz" + integrity sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg== + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/async-limiter/-/async-limiter-1.0.1.tgz" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +async-validator@^3.0.3: + version "3.5.2" + resolved "https://registry.npmmirror.com/async-validator/-/async-validator-3.5.2.tgz" + integrity sha512-8eLCg00W9pIRZSB781UUX/H6Oskmm8xloZfr09lz5bikRpBVDlJ3hRVuxxP1SxcwsEYfJ4IU8Q19Y8/893r3rQ== + +async@^2.1.2, async@^2.4.1, async@^2.6.4: + version "2.6.4" + resolved "https://registry.npmmirror.com/async/-/async-2.6.4.tgz" + integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== + dependencies: + lodash "^4.17.14" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.npmmirror.com/atob/-/atob-2.1.2.tgz" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +autoprefixer-loader@^3.2.0: + version "3.2.0" + resolved "https://registry.npmmirror.com/autoprefixer-loader/-/autoprefixer-loader-3.2.0.tgz" + integrity sha512-SFuuyHRMalkU6l3IokGE7p3VVY1FoV87wqP4ju4w2Mg/SlqrCSy5bXAmG35tHcu+cCj3ugWIo+lAN1EMa57QPg== + dependencies: + autoprefixer "^6.0.2" + loader-utils "^0.2.11" + postcss "^5.0.4" + postcss-safe-parser "^1.0.1" + +autoprefixer@^6.0.2, autoprefixer@^6.3.1: + version "6.7.7" + resolved "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-6.7.7.tgz" + integrity sha512-WKExI/eSGgGAkWAO+wMVdFObZV7hQen54UpD1kCCTN3tvlL3W1jL4+lPP/M7MwoP7Q4RHzKtO3JQ4HxYEcd+xQ== + dependencies: + browserslist "^1.7.6" + caniuse-db "^1.0.30000634" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^5.2.16" + postcss-value-parser "^3.2.3" + +autoprefixer@^9.5.1: + version "9.8.8" + resolved "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-9.8.8.tgz" + integrity sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA== + dependencies: + browserslist "^4.12.0" + caniuse-lite "^1.0.30001109" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + picocolors "^0.2.1" + postcss "^7.0.32" + postcss-value-parser "^4.1.0" + +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "https://registry.npmmirror.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== + dependencies: + possible-typed-array-names "^1.0.0" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.npmmirror.com/aws-sign2/-/aws-sign2-0.7.0.tgz" + integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== + +aws4@^1.8.0: + version "1.13.2" + resolved "https://registry.npmmirror.com/aws4/-/aws4-1.13.2.tgz" + integrity sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw== + +axios@^0.18.0: + version "0.18.1" + resolved "https://registry.npmmirror.com/axios/-/axios-0.18.1.tgz" + integrity sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g== + dependencies: + follow-redirects "1.5.10" + is-buffer "^2.0.2" + +babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.npmmirror.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz" + integrity sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g== + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@^6.26.0, babel-core@6: + version "6.26.3" + resolved "https://registry.npmmirror.com/babel-core/-/babel-core-6.26.3.tgz" + integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.1" + debug "^2.6.9" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.8" + slash "^1.0.0" + source-map "^0.5.7" + +babel-eslint@^10.0.1: + version "10.1.0" + resolved "https://registry.npmmirror.com/babel-eslint/-/babel-eslint-10.1.0.tgz" + integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.7.0" + "@babel/traverse" "^7.7.0" + "@babel/types" "^7.7.0" + eslint-visitor-keys "^1.0.0" + resolve "^1.12.0" + +babel-eslint@7.2.3: + version "7.2.3" + resolved "https://registry.npmmirror.com/babel-eslint/-/babel-eslint-7.2.3.tgz" + integrity sha512-i2yKOhjgwUbUrJ8oJm6QqRzltIoFahGNPZ0HF22lUN4H1DW03JQyJm7WSv+I1LURQWjDNhVqFo04acYa07rhOQ== + dependencies: + babel-code-frame "^6.22.0" + babel-traverse "^6.23.1" + babel-types "^6.23.0" + babylon "^6.17.0" + +babel-generator@^6.26.0: + version "6.26.1" + resolved "https://registry.npmmirror.com/babel-generator/-/babel-generator-6.26.1.tgz" + integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.7" + trim-right "^1.0.1" + +babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: + version "6.24.1" + resolved "https://registry.npmmirror.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz" + integrity sha512-gCtfYORSG1fUMX4kKraymq607FWgMWg+j42IFPc18kFQEsmtaibP4UrqsXt8FlEJle25HUd4tsoDR7H2wDhe9Q== + dependencies: + babel-helper-explode-assignable-expression "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-call-delegate@^6.24.1: + version "6.24.1" + resolved "https://registry.npmmirror.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz" + integrity sha512-RL8n2NiEj+kKztlrVJM9JT1cXzzAdvWFh76xh/H1I4nKwunzE4INBXn8ieCZ+wh4zWszZk7NBS1s/8HR5jDkzQ== + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-define-map@^6.24.1: + version "6.26.0" + resolved "https://registry.npmmirror.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz" + integrity sha512-bHkmjcC9lM1kmZcVpA5t2om2nzT/xiZpo6TJq7UlZ3wqKfzia4veeXbIhKvJXAMzhhEBd3cR1IElL5AenWEUpA== + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-explode-assignable-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.npmmirror.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz" + integrity sha512-qe5csbhbvq6ccry9G7tkXbzNtcDiH4r51rrPUbwwoTzZ18AqxWYRZT6AOmxrpxKnQBW0pYlBI/8vh73Z//78nQ== + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.npmmirror.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz" + integrity sha512-Oo6+e2iX+o9eVvJ9Y5eKL5iryeRdsIkwRYheCuhYdVHsdEQysbc2z2QkqCLIYnNxkT5Ss3ggrHdXiDI7Dhrn4Q== + dependencies: + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-get-function-arity@^6.24.1: + version "6.24.1" + resolved "https://registry.npmmirror.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz" + integrity sha512-WfgKFX6swFB1jS2vo+DwivRN4NB8XUdM3ij0Y1gnC21y1tdBoe6xjVnd7NSI6alv+gZXCtJqvrTeMW3fR/c0ng== + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-hoist-variables@^6.24.1: + version "6.24.1" + resolved "https://registry.npmmirror.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz" + integrity sha512-zAYl3tqerLItvG5cKYw7f1SpvIxS9zi7ohyGHaI9cgDUjAT6YcY9jIEH5CstetP5wHIVSceXwNS7Z5BpJg+rOw== + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-optimise-call-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.npmmirror.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz" + integrity sha512-Op9IhEaxhbRT8MDXx2iNuMgciu2V8lDvYCNQbDGjdBNCjaMvyLf4wl4A3b8IgndCyQF8TwfgsQ8T3VD8aX1/pA== + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-regex@^6.24.1: + version "6.26.0" + resolved "https://registry.npmmirror.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz" + integrity sha512-VlPiWmqmGJp0x0oK27Out1D+71nVVCTSdlbhIVoaBAj2lUgrNjBCRR9+llO4lTSb2O4r7PJg+RobRkhBrf6ofg== + dependencies: + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-remap-async-to-generator@^6.24.1: + version "6.24.1" + resolved "https://registry.npmmirror.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz" + integrity sha512-RYqaPD0mQyQIFRu7Ho5wE2yvA/5jxqCIj/Lv4BXNq23mHYu/vxikOy2JueLiBxQknwapwrJeNCesvY0ZcfnlHg== + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-replace-supers@^6.24.1: + version "6.24.1" + resolved "https://registry.npmmirror.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz" + integrity sha512-sLI+u7sXJh6+ToqDr57Bv973kCepItDhMou0xCP2YPVmR1jkHSCY+p1no8xErbV1Siz5QE8qKT1WIwybSWlqjw== + dependencies: + babel-helper-optimise-call-expression "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-vue-jsx-merge-props@^2.0.3: + version "2.0.3" + resolved "https://registry.npmmirror.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz" + integrity sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg== + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.npmmirror.com/babel-helpers/-/babel-helpers-6.24.1.tgz" + integrity sha512-n7pFrqQm44TCYvrCDb0MqabAF+JUBq+ijBvNMUxpkLjJaAu32faIexewMumrH5KLLJ1HDyT0PTEqRyAe/GwwuQ== + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-jest@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/babel-jest/-/babel-jest-27.5.1.tgz" + integrity sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg== + dependencies: + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^27.5.1" + chalk "^4.0.0" + graceful-fs "^4.2.9" + slash "^3.0.0" + +babel-loader@^7.1.2: + version "7.1.5" + resolved "https://registry.npmmirror.com/babel-loader/-/babel-loader-7.1.5.tgz" + integrity sha512-iCHfbieL5d1LfOQeeVJEUyD9rTwBcP/fcEbRCfempxTDuqrKpu0AZjLAQHEQa3Yqyj9ORKe2iHfoj4rHLf7xpw== + dependencies: + find-cache-dir "^1.0.0" + loader-utils "^1.0.2" + mkdirp "^0.5.1" + +babel-loader@^8.2.2: + version "8.4.1" + resolved "https://registry.npmmirror.com/babel-loader/-/babel-loader-8.4.1.tgz" + integrity sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA== + dependencies: + find-cache-dir "^3.3.1" + loader-utils "^2.0.4" + make-dir "^3.1.0" + schema-utils "^2.6.5" + +babel-loader@^9.1.3: + version "9.2.1" + resolved "https://registry.npmmirror.com/babel-loader/-/babel-loader-9.2.1.tgz" + integrity sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA== + dependencies: + find-cache-dir "^4.0.0" + schema-utils "^4.0.0" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.npmmirror.com/babel-messages/-/babel-messages-6.23.0.tgz" + integrity sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w== + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-check-es2015-constants@^6.22.0: + version "6.22.0" + resolved "https://registry.npmmirror.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz" + integrity sha512-B1M5KBP29248dViEo1owyY32lk1ZSH2DaNNrXLGt8lyjjHm7pBqAdQ7VKUPR6EEDO323+OvT3MQXbCin8ooWdA== + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.npmmirror.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-istanbul@^6.1.1: + version "6.1.1" + resolved "https://registry.npmmirror.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz" + integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^5.0.4" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz" + integrity sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" + "@types/babel__traverse" "^7.0.6" + +babel-plugin-polyfill-corejs2@^0.4.10: + version "0.4.13" + resolved "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.13.tgz" + integrity sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g== + dependencies: + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.6.4" + semver "^6.3.1" + +babel-plugin-polyfill-corejs3@^0.11.0: + version "0.11.1" + resolved "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz" + integrity sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.3" + core-js-compat "^3.40.0" + +babel-plugin-polyfill-regenerator@^0.6.1: + version "0.6.4" + resolved "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.4.tgz" + integrity sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.4" + +babel-plugin-syntax-async-functions@^6.8.0: + version "6.13.0" + resolved "https://registry.npmmirror.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz" + integrity sha512-4Zp4unmHgw30A1eWI5EpACji2qMocisdXhAftfhXoSV9j0Tvj6nRFE3tOmRY912E0FMRm/L5xWE7MGVT2FoLnw== + +babel-plugin-syntax-exponentiation-operator@^6.8.0: + version "6.13.0" + resolved "https://registry.npmmirror.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz" + integrity sha512-Z/flU+T9ta0aIEKl1tGEmN/pZiI1uXmCiGFRegKacQfEJzp7iNsKloZmyJlQr+75FCJtiFfGIK03SiCvCt9cPQ== + +babel-plugin-syntax-trailing-function-commas@^6.22.0: + version "6.22.0" + resolved "https://registry.npmmirror.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz" + integrity sha512-Gx9CH3Q/3GKbhs07Bszw5fPTlU+ygrOGfAhEt7W2JICwufpC4SuO0mG0+4NykPBSYPMJhqvVlDBU17qB1D+hMQ== + +babel-plugin-transform-async-to-generator@^6.22.0: + version "6.24.1" + resolved "https://registry.npmmirror.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz" + integrity sha512-7BgYJujNCg0Ti3x0c/DL3tStvnKS6ktIYOmo9wginv/dfZOrbSZ+qG4IRRHMBOzZ5Awb1skTiAsQXg/+IWkZYw== + dependencies: + babel-helper-remap-async-to-generator "^6.24.1" + babel-plugin-syntax-async-functions "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-arrow-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.npmmirror.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz" + integrity sha512-PCqwwzODXW7JMrzu+yZIaYbPQSKjDTAsNNlK2l5Gg9g4rz2VzLnZsStvp/3c46GfXpwkyufb3NCyG9+50FF1Vg== + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.npmmirror.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz" + integrity sha512-2+ujAT2UMBzYFm7tidUsYh+ZoIutxJ3pN9IYrF1/H6dCKtECfhmB8UkHVpyxDwkj0CYbQG35ykoz925TUnBc3A== + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoping@^6.23.0: + version "6.26.0" + resolved "https://registry.npmmirror.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz" + integrity sha512-YiN6sFAQ5lML8JjCmr7uerS5Yc/EMbgg9G8ZNmk2E3nYX4ckHR01wrkeeMijEf5WHNK5TW0Sl0Uu3pv3EdOJWw== + dependencies: + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-plugin-transform-es2015-classes@^6.23.0: + version "6.24.1" + resolved "https://registry.npmmirror.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz" + integrity sha512-5Dy7ZbRinGrNtmWpquZKZ3EGY8sDgIVB4CU8Om8q8tnMLrD/m94cKglVcHps0BCTdZ0TJeeAWOq2TK9MIY6cag== + dependencies: + babel-helper-define-map "^6.24.1" + babel-helper-function-name "^6.24.1" + babel-helper-optimise-call-expression "^6.24.1" + babel-helper-replace-supers "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-computed-properties@^6.22.0: + version "6.24.1" + resolved "https://registry.npmmirror.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz" + integrity sha512-C/uAv4ktFP/Hmh01gMTvYvICrKze0XVX9f2PdIXuriCSvUmV9j+u+BB9f5fJK3+878yMK6dkdcq+Ymr9mrcLzw== + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-destructuring@^6.23.0: + version "6.23.0" + resolved "https://registry.npmmirror.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz" + integrity sha512-aNv/GDAW0j/f4Uy1OEPZn1mqD+Nfy9viFGBfQ5bZyT35YqOiqx7/tXdyfZkJ1sC21NyEsBdfDY6PYmLHF4r5iA== + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-duplicate-keys@^6.22.0: + version "6.24.1" + resolved "https://registry.npmmirror.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz" + integrity sha512-ossocTuPOssfxO2h+Z3/Ea1Vo1wWx31Uqy9vIiJusOP4TbF7tPs9U0sJ9pX9OJPf4lXRGj5+6Gkl/HHKiAP5ug== + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-for-of@^6.23.0: + version "6.23.0" + resolved "https://registry.npmmirror.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz" + integrity sha512-DLuRwoygCoXx+YfxHLkVx5/NpeSbVwfoTeBykpJK7JhYWlL/O8hgAK/reforUnZDlxasOrVPPJVI/guE3dCwkw== + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-function-name@^6.22.0: + version "6.24.1" + resolved "https://registry.npmmirror.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz" + integrity sha512-iFp5KIcorf11iBqu/y/a7DK3MN5di3pNCzto61FqCNnUX4qeBwcV1SLqe10oXNnCaxBUImX3SckX2/o1nsrTcg== + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.npmmirror.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz" + integrity sha512-tjFl0cwMPpDYyoqYA9li1/7mGFit39XiNX5DKC/uCNjBctMxyL1/PT/l4rSlbvBG1pOKI88STRdUsWXB3/Q9hQ== + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: + version "6.24.1" + resolved "https://registry.npmmirror.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz" + integrity sha512-LnIIdGWIKdw7zwckqx+eGjcS8/cl8D74A3BpJbGjKTFFNJSMrjN4bIh22HY1AlkUbeLG6X6OZj56BDvWD+OeFA== + dependencies: + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: + version "6.26.2" + resolved "https://registry.npmmirror.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz" + integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q== + dependencies: + babel-plugin-transform-strict-mode "^6.24.1" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-types "^6.26.0" + +babel-plugin-transform-es2015-modules-systemjs@^6.23.0: + version "6.24.1" + resolved "https://registry.npmmirror.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz" + integrity sha512-ONFIPsq8y4bls5PPsAWYXH/21Hqv64TBxdje0FvU3MhIV6QM2j5YS7KvAzg/nTIVLot2D2fmFQrFWCbgHlFEjg== + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-umd@^6.23.0: + version "6.24.1" + resolved "https://registry.npmmirror.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz" + integrity sha512-LpVbiT9CLsuAIp3IG0tfbVo81QIhn6pE8xBJ7XSeCtFlMltuar5VuBV6y6Q45tpui9QWcy5i0vLQfCfrnF7Kiw== + dependencies: + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-object-super@^6.22.0: + version "6.24.1" + resolved "https://registry.npmmirror.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz" + integrity sha512-8G5hpZMecb53vpD3mjs64NhI1au24TAmokQ4B+TBFBjN9cVoGoOvotdrMMRmHvVZUEvqGUPWL514woru1ChZMA== + dependencies: + babel-helper-replace-supers "^6.24.1" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-parameters@^6.23.0: + version "6.24.1" + resolved "https://registry.npmmirror.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz" + integrity sha512-8HxlW+BB5HqniD+nLkQ4xSAVq3bR/pcYW9IigY+2y0dI+Y7INFeTbfAQr+63T3E4UDsZGjyb+l9txUnABWxlOQ== + dependencies: + babel-helper-call-delegate "^6.24.1" + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-shorthand-properties@^6.22.0: + version "6.24.1" + resolved "https://registry.npmmirror.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz" + integrity sha512-mDdocSfUVm1/7Jw/FIRNw9vPrBQNePy6wZJlR8HAUBLybNp1w/6lr6zZ2pjMShee65t/ybR5pT8ulkLzD1xwiw== + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-spread@^6.22.0: + version "6.22.0" + resolved "https://registry.npmmirror.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz" + integrity sha512-3Ghhi26r4l3d0Js933E5+IhHwk0A1yiutj9gwvzmFbVV0sPMYk2lekhOufHBswX7NCoSeF4Xrl3sCIuSIa+zOg== + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-sticky-regex@^6.22.0: + version "6.24.1" + resolved "https://registry.npmmirror.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz" + integrity sha512-CYP359ADryTo3pCsH0oxRo/0yn6UsEZLqYohHmvLQdfS9xkf+MbCzE3/Kolw9OYIY4ZMilH25z/5CbQbwDD+lQ== + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-template-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.npmmirror.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz" + integrity sha512-x8b9W0ngnKzDMHimVtTfn5ryimars1ByTqsfBDwAqLibmuuQY6pgBQi5z1ErIsUOWBdw1bW9FSz5RZUojM4apg== + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-typeof-symbol@^6.23.0: + version "6.23.0" + resolved "https://registry.npmmirror.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz" + integrity sha512-fz6J2Sf4gYN6gWgRZaoFXmq93X+Li/8vf+fb0sGDVtdeWvxC9y5/bTD7bvfWMEq6zetGEHpWjtzRGSugt5kNqw== + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-unicode-regex@^6.22.0: + version "6.24.1" + resolved "https://registry.npmmirror.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz" + integrity sha512-v61Dbbihf5XxnYjtBN04B/JBvsScY37R1cZT5r9permN1cp+b70DY3Ib3fIkgn1DI9U3tGgBJZVD8p/mE/4JbQ== + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + regexpu-core "^2.0.0" + +babel-plugin-transform-exponentiation-operator@^6.22.0: + version "6.24.1" + resolved "https://registry.npmmirror.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz" + integrity sha512-LzXDmbMkklvNhprr20//RStKVcT8Cu+SQtX18eMHLhjHf2yFzwtQ0S2f0jQ+89rokoNdmwoSqYzAhq86FxlLSQ== + dependencies: + babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" + babel-plugin-syntax-exponentiation-operator "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-regenerator@^6.22.0: + version "6.26.0" + resolved "https://registry.npmmirror.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz" + integrity sha512-LS+dBkUGlNR15/5WHKe/8Neawx663qttS6AGqoOUhICc9d1KciBvtrQSuc0PI+CxQ2Q/S1aKuJ+u64GtLdcEZg== + dependencies: + regenerator-transform "^0.10.0" + +babel-plugin-transform-runtime@^6.23.0: + version "6.23.0" + resolved "https://registry.npmmirror.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz" + integrity sha512-cpGMVC1vt/772y3jx1gwSaTitQVZuFDlllgreMsZ+rTYC6jlYXRyf5FQOgSnckOiA5QmzbXTyBY2A5AmZXF1fA== + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-strict-mode@^6.24.1: + version "6.24.1" + resolved "https://registry.npmmirror.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz" + integrity sha512-j3KtSpjyLSJxNoCDrhwiJad8kw0gJ9REGj8/CqL0HeRyLnvUNYV9zcqluL6QJSXh3nfsLEmSLvwRfGzrgR96Pw== + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-preset-current-node-syntax@^1.0.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz" + integrity sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-import-attributes" "^7.24.7" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + +babel-preset-env@^1.6.0: + version "1.7.0" + resolved "https://registry.npmmirror.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz" + integrity sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg== + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-syntax-trailing-function-commas "^6.22.0" + babel-plugin-transform-async-to-generator "^6.22.0" + babel-plugin-transform-es2015-arrow-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoping "^6.23.0" + babel-plugin-transform-es2015-classes "^6.23.0" + babel-plugin-transform-es2015-computed-properties "^6.22.0" + babel-plugin-transform-es2015-destructuring "^6.23.0" + babel-plugin-transform-es2015-duplicate-keys "^6.22.0" + babel-plugin-transform-es2015-for-of "^6.23.0" + babel-plugin-transform-es2015-function-name "^6.22.0" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.22.0" + babel-plugin-transform-es2015-modules-commonjs "^6.23.0" + babel-plugin-transform-es2015-modules-systemjs "^6.23.0" + babel-plugin-transform-es2015-modules-umd "^6.23.0" + babel-plugin-transform-es2015-object-super "^6.22.0" + babel-plugin-transform-es2015-parameters "^6.23.0" + babel-plugin-transform-es2015-shorthand-properties "^6.22.0" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.22.0" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.23.0" + babel-plugin-transform-es2015-unicode-regex "^6.22.0" + babel-plugin-transform-exponentiation-operator "^6.22.0" + babel-plugin-transform-regenerator "^6.22.0" + browserslist "^3.2.6" + invariant "^2.2.2" + semver "^5.3.0" + +babel-preset-jest@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz" + integrity sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag== + dependencies: + babel-plugin-jest-hoist "^27.5.1" + babel-preset-current-node-syntax "^1.0.0" + +babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.npmmirror.com/babel-register/-/babel-register-6.26.0.tgz" + integrity sha512-veliHlHX06wjaeY8xNITbveXSiI+ASFnOqvne/LaIJIqOWi2Ogmj91KOugEz/hoh/fwMhXNBJPCv8Xaz5CyM4A== + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + +babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0, babel-runtime@^6.9.2, babel-runtime@6.x: + version "6.26.0" + resolved "https://registry.npmmirror.com/babel-runtime/-/babel-runtime-6.26.0.tgz" + integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g== + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.24.1, babel-template@^6.26.0: + version "6.26.0" + resolved "https://registry.npmmirror.com/babel-template/-/babel-template-6.26.0.tgz" + integrity sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg== + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.23.1, babel-traverse@^6.24.1, babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.npmmirror.com/babel-traverse/-/babel-traverse-6.26.0.tgz" + integrity sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA== + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24.1, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.npmmirror.com/babel-types/-/babel-types-6.26.0.tgz" + integrity sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g== + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^6.17.0, babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.npmmirror.com/babylon/-/babylon-6.18.0.tgz" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + +balanced-match@^0.4.2: + version "0.4.2" + resolved "https://registry.npmmirror.com/balanced-match/-/balanced-match-0.4.2.tgz" + integrity sha512-STw03mQKnGUYtoNjmowo4F2cRmIIxYEGiMsjjwla/u5P1lxadj/05WkNaFjNiKTgJkj8KiXbgAiRTmcQRwQNtg== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.npmmirror.com/base/-/base-0.11.2.tgz" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +base64-arraybuffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz" + integrity sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ== + +base64-js@^1.0.2, base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.npmmirror.com/batch/-/batch-0.6.1.tgz" + integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.npmmirror.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" + integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== + dependencies: + tweetnacl "^0.14.3" + +bfj@^6.1.1: + version "6.1.2" + resolved "https://registry.npmmirror.com/bfj/-/bfj-6.1.2.tgz" + integrity sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw== + dependencies: + bluebird "^3.5.5" + check-types "^8.0.3" + hoopy "^0.1.4" + tryer "^1.0.1" + +big.js@^3.1.3: + version "3.2.0" + resolved "https://registry.npmmirror.com/big.js/-/big.js-3.2.0.tgz" + integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-1.13.1.tgz" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +binary-extensions@^2.0.0: + version "2.3.0" + resolved "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + +bl@^4.1.0: + version "4.1.0" + resolved "https://registry.npmmirror.com/bl/-/bl-4.1.0.tgz" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +bluebird@^3.1.1, bluebird@^3.5.1, bluebird@^3.5.5: + version "3.7.2" + resolved "https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +bn.js@^4.0.0: + version "4.12.2" + resolved "https://registry.npmmirror.com/bn.js/-/bn.js-4.12.2.tgz" + integrity sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw== + +bn.js@^4.1.0: + version "4.12.2" + resolved "https://registry.npmmirror.com/bn.js/-/bn.js-4.12.2.tgz" + integrity sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw== + +bn.js@^4.11.9: + version "4.12.2" + resolved "https://registry.npmmirror.com/bn.js/-/bn.js-4.12.2.tgz" + integrity sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw== + +bn.js@^5.2.1: + version "5.2.2" + resolved "https://registry.npmmirror.com/bn.js/-/bn.js-5.2.2.tgz" + integrity sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw== + +body-parser@1.20.3: + version "1.20.3" + resolved "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.3.tgz" + integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g== + dependencies: + bytes "3.1.2" + content-type "~1.0.5" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.13.0" + raw-body "2.5.2" + type-is "~1.6.18" + unpipe "1.0.0" + +bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.npmmirror.com/bonjour/-/bonjour-3.5.0.tgz" + integrity sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg== + dependencies: + array-flatten "^2.1.0" + deep-equal "^1.0.1" + dns-equal "^1.0.0" + dns-txt "^2.0.2" + multicast-dns "^6.0.1" + multicast-dns-service-types "^1.1.0" + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.npmmirror.com/braces/-/braces-2.3.2.tgz" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +braces@^3.0.3, braces@~3.0.2: + version "3.0.3" + resolved "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + +brorand@^1.0.1, brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/brorand/-/brorand-1.1.0.tgz" + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== + +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + +browserify-aes@^1.0.4, browserify-aes@^1.2.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/browserify-aes/-/browserify-aes-1.2.0.tgz" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.npmmirror.com/browserify-des/-/browserify-des-1.0.2.tgz" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0, browserify-rsa@^4.1.0: + version "4.1.1" + resolved "https://registry.npmmirror.com/browserify-rsa/-/browserify-rsa-4.1.1.tgz" + integrity sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ== + dependencies: + bn.js "^5.2.1" + randombytes "^2.1.0" + safe-buffer "^5.2.1" + +browserify-sign@^4.2.3: + version "4.2.3" + resolved "https://registry.npmmirror.com/browserify-sign/-/browserify-sign-4.2.3.tgz" + integrity sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw== + dependencies: + bn.js "^5.2.1" + browserify-rsa "^4.1.0" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.5" + hash-base "~3.0" + inherits "^2.0.4" + parse-asn1 "^5.1.7" + readable-stream "^2.3.8" + safe-buffer "^5.2.1" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + +browserslist@^1.3.6: + version "1.7.7" + resolved "https://registry.npmmirror.com/browserslist/-/browserslist-1.7.7.tgz" + integrity sha512-qHJblDE2bXVRYzuDetv/wAeHOJyO97+9wxC1cdCtyzgNuSozOyRCiiLaCR1f71AN66lQdVVBipWm63V+a7bPOw== + dependencies: + caniuse-db "^1.0.30000639" + electron-to-chromium "^1.2.7" + +browserslist@^1.5.2: + version "1.7.7" + resolved "https://registry.npmmirror.com/browserslist/-/browserslist-1.7.7.tgz" + integrity sha512-qHJblDE2bXVRYzuDetv/wAeHOJyO97+9wxC1cdCtyzgNuSozOyRCiiLaCR1f71AN66lQdVVBipWm63V+a7bPOw== + dependencies: + caniuse-db "^1.0.30000639" + electron-to-chromium "^1.2.7" + +browserslist@^1.7.6: + version "1.7.7" + resolved "https://registry.npmmirror.com/browserslist/-/browserslist-1.7.7.tgz" + integrity sha512-qHJblDE2bXVRYzuDetv/wAeHOJyO97+9wxC1cdCtyzgNuSozOyRCiiLaCR1f71AN66lQdVVBipWm63V+a7bPOw== + dependencies: + caniuse-db "^1.0.30000639" + electron-to-chromium "^1.2.7" + +browserslist@^3.2.6: + version "3.2.8" + resolved "https://registry.npmmirror.com/browserslist/-/browserslist-3.2.8.tgz" + integrity sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ== + dependencies: + caniuse-lite "^1.0.30000844" + electron-to-chromium "^1.3.47" + +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.24.0, browserslist@^4.5.4, "browserslist@>= 4.21.0": + version "4.24.3" + resolved "https://registry.npmmirror.com/browserslist/-/browserslist-4.24.3.tgz" + integrity sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA== + dependencies: + caniuse-lite "^1.0.30001688" + electron-to-chromium "^1.5.73" + node-releases "^2.0.19" + update-browserslist-db "^1.1.1" + +browserslist@^4.24.4: + version "4.24.5" + resolved "https://registry.npmmirror.com/browserslist/-/browserslist-4.24.5.tgz" + integrity sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw== + dependencies: + caniuse-lite "^1.0.30001716" + electron-to-chromium "^1.5.149" + node-releases "^2.0.19" + update-browserslist-db "^1.1.3" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.npmmirror.com/bser/-/bser-2.1.1.tgz" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +btoa@^1.2.1: + version "1.2.1" + resolved "https://registry.npmmirror.com/btoa/-/btoa-1.2.1.tgz" + integrity sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g== + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer-indexof@^1.0.0: + version "1.1.1" + resolved "https://registry.npmmirror.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz" + integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/buffer-xor/-/buffer-xor-1.0.3.tgz" + integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== + +buffer@^4.3.0: + version "4.9.2" + resolved "https://registry.npmmirror.com/buffer/-/buffer-4.9.2.tgz" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz" + integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ== + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +cacache@^10.0.4: + version "10.0.4" + resolved "https://registry.npmmirror.com/cacache/-/cacache-10.0.4.tgz" + integrity sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA== + dependencies: + bluebird "^3.5.1" + chownr "^1.0.1" + glob "^7.1.2" + graceful-fs "^4.1.11" + lru-cache "^4.1.1" + mississippi "^2.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.2" + ssri "^5.2.4" + unique-filename "^1.1.0" + y18n "^4.0.0" + +cacache@^12.0.2: + version "12.0.4" + resolved "https://registry.npmmirror.com/cacache/-/cacache-12.0.4.tgz" + integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== + dependencies: + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + infer-owner "^1.0.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cacache@^13.0.1: + version "13.0.1" + resolved "https://registry.npmmirror.com/cacache/-/cacache-13.0.1.tgz" + integrity sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w== + dependencies: + chownr "^1.1.2" + figgy-pudding "^3.5.1" + fs-minipass "^2.0.0" + glob "^7.1.4" + graceful-fs "^4.2.2" + infer-owner "^1.0.4" + lru-cache "^5.1.1" + minipass "^3.0.0" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.2" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + p-map "^3.0.0" + promise-inflight "^1.0.1" + rimraf "^2.7.1" + ssri "^7.0.0" + unique-filename "^1.1.1" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/cache-base/-/cache-base-1.0.1.tgz" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +cache-loader@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/cache-loader/-/cache-loader-2.0.1.tgz" + integrity sha512-V99T3FOynmGx26Zom+JrVBytLBsmUCzVG2/4NnUKgvXN4bEV42R1ERl1IyiH/cvFIDA1Ytq2lPZ9tXDSahcQpQ== + dependencies: + loader-utils "^1.1.0" + mkdirp "^0.5.1" + neo-async "^2.6.0" + normalize-path "^3.0.0" + schema-utils "^1.0.0" + +call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz" + integrity sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + +call-bind-apply-helpers@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz" + integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + +call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.7, call-bind@^1.0.8, call-bind@~1.0.2: + version "1.0.8" + resolved "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.8.tgz" + integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== + dependencies: + call-bind-apply-helpers "^1.0.0" + es-define-property "^1.0.0" + get-intrinsic "^1.2.4" + set-function-length "^1.2.2" + +call-bound@^1.0.2, call-bound@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/call-bound/-/call-bound-1.0.3.tgz" + integrity sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA== + dependencies: + call-bind-apply-helpers "^1.0.1" + get-intrinsic "^1.2.6" + +call-bound@^1.0.4: + version "1.0.4" + resolved "https://registry.npmmirror.com/call-bound/-/call-bound-1.0.4.tgz" + integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== + dependencies: + call-bind-apply-helpers "^1.0.2" + get-intrinsic "^1.3.0" + +call-me-maybe@^1.0.1: + version "1.0.2" + resolved "https://registry.npmmirror.com/call-me-maybe/-/call-me-maybe-1.0.2.tgz" + integrity sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ== + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/caller-callsite/-/caller-callsite-2.0.0.tgz" + integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== + dependencies: + callsites "^2.0.0" + +caller-path@^0.1.0: + version "0.1.0" + resolved "https://registry.npmmirror.com/caller-path/-/caller-path-0.1.0.tgz" + integrity sha512-UJiE1otjXPF5/x+T3zTnSFiTOEmJoGTD9HmBoxnCUwho61a2eSNn/VwtwuIBDAo2SEOv1AJ7ARI5gCmohFLu/g== + dependencies: + callsites "^0.2.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/caller-path/-/caller-path-2.0.0.tgz" + integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== + dependencies: + caller-callsite "^2.0.0" + +callsites@^0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/callsites/-/callsites-0.2.0.tgz" + integrity sha512-Zv4Dns9IbXXmPkgRRUjAaJQgfN4xX5p6+RQFhWUqscdvvK2xK/ZL8b3IXIJsj+4sD+f24NwnWy2BY8AJ82JB0A== + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/callsites/-/callsites-2.0.0.tgz" + integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@^4.1.1: + version "4.1.2" + resolved "https://registry.npmmirror.com/camel-case/-/camel-case-4.1.2.tgz" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + +camel-case@3.0.x: + version "3.0.0" + resolved "https://registry.npmmirror.com/camel-case/-/camel-case-3.0.0.tgz" + integrity sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w== + dependencies: + no-case "^2.2.0" + upper-case "^1.1.1" + +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz" + integrity sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ== + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase@^1.0.2: + version "1.2.1" + resolved "https://registry.npmmirror.com/camelcase/-/camelcase-1.2.1.tgz" + integrity sha512-wzLkDa4K/mzI1OSITC+DUyjgIl/ETNHE9QvYgy6J6Jvqyyz4C0Xfd+lQhb19sX2jMpZV4IssUn0VDVmglV+s4g== + +camelcase@^1.2.1: + version "1.2.1" + resolved "https://registry.npmmirror.com/camelcase/-/camelcase-1.2.1.tgz" + integrity sha512-wzLkDa4K/mzI1OSITC+DUyjgIl/ETNHE9QvYgy6J6Jvqyyz4C0Xfd+lQhb19sX2jMpZV4IssUn0VDVmglV+s4g== + +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.npmmirror.com/camelcase/-/camelcase-2.1.1.tgz" + integrity sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw== + +camelcase@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/camelcase/-/camelcase-3.0.0.tgz" + integrity sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg== + +camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.npmmirror.com/camelcase/-/camelcase-4.1.0.tgz" + integrity sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw== + +camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.2.0: + version "6.3.0" + resolved "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-api@^1.5.2: + version "1.6.1" + resolved "https://registry.npmmirror.com/caniuse-api/-/caniuse-api-1.6.1.tgz" + integrity sha512-SBTl70K0PkDUIebbkXrxWqZlHNs0wRgRD6QZ8guctShjbh63gEPfF+Wj0Yw+75f5Y8tSzqAI/NcisYv/cCah2Q== + dependencies: + browserslist "^1.3.6" + caniuse-db "^1.0.30000529" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/caniuse-api/-/caniuse-api-3.0.0.tgz" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: + version "1.0.30001690" + resolved "https://registry.npmmirror.com/caniuse-db/-/caniuse-db-1.0.30001690.tgz" + integrity sha512-9Jw0YwFL5OJlEQzfznw033GzuoIv7XfWoLX0MgjuUTFJydhHanHcMt2zohwdPOgvMz4ssJa9WTiR+cT8IsgfnQ== + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001688: + version "1.0.30001690" + resolved "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz" + integrity sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w== + +caniuse-lite@^1.0.30001716: + version "1.0.30001717" + resolved "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001717.tgz" + integrity sha512-auPpttCq6BDEG8ZAuHJIplGw6GODhjw+/11e7IjpnYCxZcW/ONgPs0KVBJ0d1bY3e2+7PRe5RCLyP+PfwVgkYw== + +canvg@^3.0.6: + version "3.0.10" + resolved "https://registry.npmmirror.com/canvg/-/canvg-3.0.10.tgz" + integrity sha512-qwR2FRNO9NlzTeKIPIKpnTY6fqwuYSequ8Ru8c0YkYU7U0oW+hLUvWadLvAu1Rl72OMNiFhoLu4f8eUjQ7l/+Q== + dependencies: + "@babel/runtime" "^7.12.5" + "@types/raf" "^3.4.0" + core-js "^3.8.3" + raf "^3.4.1" + regenerator-runtime "^0.13.7" + rgbcolor "^1.0.1" + stackblur-canvas "^2.0.0" + svg-pathdata "^6.0.3" + +case-sensitive-paths-webpack-plugin@^2.2.0: + version "2.4.0" + resolved "https://registry.npmmirror.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz" + integrity sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.npmmirror.com/caseless/-/caseless-0.12.0.tgz" + integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== + +center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.npmmirror.com/center-align/-/center-align-0.1.3.tgz" + integrity sha512-Baz3aNe2gd2LP2qk5U+sDk/m4oSuwSDcBfayTCTBoWpfIGO5XFxPmjILQII4NGiZjD6DoDI6kf7gKaxkf7s3VQ== + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + +chalk@^1.1.1: + version "1.1.3" + resolved "https://registry.npmmirror.com/chalk/-/chalk-1.1.3.tgz" + integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.npmmirror.com/chalk/-/chalk-1.1.3.tgz" + integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^2.0.1: + version "2.4.2" + resolved "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^2.1.0, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/chalk/-/chalk-3.0.0.tgz" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/char-regex/-/char-regex-1.0.2.tgz" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +chardet@^0.4.0: + version "0.4.2" + resolved "https://registry.npmmirror.com/chardet/-/chardet-0.4.2.tgz" + integrity sha512-j/Toj7f1z98Hh2cYo2BVr85EpIRWqUi7rtRSGxh/cqUjqrnJe9l9UE7IUGd2vQ2p+kSHLkSzObQPZPLUC6TQwg== + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.npmmirror.com/chardet/-/chardet-0.7.0.tgz" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +charenc@0.0.2: + version "0.0.2" + resolved "https://registry.npmmirror.com/charenc/-/charenc-0.0.2.tgz" + integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== + +check-types@^8.0.3: + version "8.0.3" + resolved "https://registry.npmmirror.com/check-types/-/check-types-8.0.3.tgz" + integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ== + +china-area-data@^5.0.1: + version "5.0.1" + resolved "https://registry.npmmirror.com/china-area-data/-/china-area-data-5.0.1.tgz" + integrity sha512-BQDPpiv5Nn+018ekcJK2oSD9PAD+E1bvXB0wgabc//dFVS/KvRqCgg0QOEUt3vBkx9XzB5a9BmkJCEZDBxVjVw== + +chokidar@^2.1.2: + version "2.1.8" + resolved "https://registry.npmmirror.com/chokidar/-/chokidar-2.1.8.tgz" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +chokidar@^2.1.8: + version "2.1.8" + resolved "https://registry.npmmirror.com/chokidar/-/chokidar-2.1.8.tgz" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +chokidar@^3.4.1: + version "3.6.0" + resolved "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^1.0.1, chownr@^1.1.1, chownr@^1.1.2: + version "1.1.4" + resolved "https://registry.npmmirror.com/chownr/-/chownr-1.1.4.tgz" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chrome-trace-event@^1.0.2: + version "1.0.4" + resolved "https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz" + integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== + +ci-info@^1.5.0: + version "1.6.0" + resolved "https://registry.npmmirror.com/ci-info/-/ci-info-1.6.0.tgz" + integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== + +ci-info@^3.2.0: + version "3.9.0" + resolved "https://registry.npmmirror.com/ci-info/-/ci-info-3.9.0.tgz" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.6" + resolved "https://registry.npmmirror.com/cipher-base/-/cipher-base-1.0.6.tgz" + integrity sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw== + dependencies: + inherits "^2.0.4" + safe-buffer "^5.2.1" + +circular-json@^0.3.1: + version "0.3.3" + resolved "https://registry.npmmirror.com/circular-json/-/circular-json-0.3.3.tgz" + integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A== + +cjs-module-lexer@^1.0.0: + version "1.4.1" + resolved "https://registry.npmmirror.com/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz" + integrity sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA== + +clap@^1.0.9: + version "1.2.3" + resolved "https://registry.npmmirror.com/clap/-/clap-1.2.3.tgz" + integrity sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA== + dependencies: + chalk "^1.1.3" + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.npmmirror.com/class-utils/-/class-utils-0.3.6.tgz" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +classnames@^2.2.5: + version "2.5.1" + resolved "https://registry.npmmirror.com/classnames/-/classnames-2.5.1.tgz" + integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow== + +clean-css@^4.2.3: + version "4.2.4" + resolved "https://registry.npmmirror.com/clean-css/-/clean-css-4.2.4.tgz" + integrity sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A== + dependencies: + source-map "~0.6.0" + +clean-css@4.2.x: + version "4.2.4" + resolved "https://registry.npmmirror.com/clean-css/-/clean-css-4.2.4.tgz" + integrity sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A== + dependencies: + source-map "~0.6.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.npmmirror.com/clean-stack/-/clean-stack-2.2.0.tgz" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/cli-cursor/-/cli-cursor-2.1.0.tgz" + integrity sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw== + dependencies: + restore-cursor "^2.0.0" + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/cli-cursor/-/cli-cursor-3.1.0.tgz" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-highlight@^2.1.0: + version "2.1.11" + resolved "https://registry.npmmirror.com/cli-highlight/-/cli-highlight-2.1.11.tgz" + integrity sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg== + dependencies: + chalk "^4.0.0" + highlight.js "^10.7.1" + mz "^2.4.0" + parse5 "^5.1.1" + parse5-htmlparser2-tree-adapter "^6.0.0" + yargs "^16.0.0" + +cli-spinners@^2.0.0, cli-spinners@^2.5.0: + version "2.9.2" + resolved "https://registry.npmmirror.com/cli-spinners/-/cli-spinners-2.9.2.tgz" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== + +cli-width@^2.0.0: + version "2.2.1" + resolved "https://registry.npmmirror.com/cli-width/-/cli-width-2.2.1.tgz" + integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== + +clipboard@^2.0.10: + version "2.0.11" + resolved "https://registry.npmmirror.com/clipboard/-/clipboard-2.0.11.tgz" + integrity sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw== + dependencies: + good-listener "^1.2.2" + select "^1.1.2" + tiny-emitter "^2.0.0" + +clipboardy@^2.0.0: + version "2.3.0" + resolved "https://registry.npmmirror.com/clipboardy/-/clipboardy-2.3.0.tgz" + integrity sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ== + dependencies: + arch "^2.1.1" + execa "^1.0.0" + is-wsl "^2.1.1" + +cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/cliui/-/cliui-2.1.0.tgz" + integrity sha512-GIOYRizG+TGoc7Wgc1LiOTLare95R3mzKgoln+Q/lE4ceiYH19gUpl0l0Ffq4lJDEf3FxujMe6IBfOCs7pfqNA== + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + +cliui@^3.2.0: + version "3.2.0" + resolved "https://registry.npmmirror.com/cliui/-/cliui-3.2.0.tgz" + integrity sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w== + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/cliui/-/cliui-5.0.0.tgz" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.npmmirror.com/cliui/-/cliui-7.0.4.tgz" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.npmmirror.com/clone/-/clone-1.0.4.tgz" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + +clone@^2.1.1: + version "2.1.2" + resolved "https://registry.npmmirror.com/clone/-/clone-2.1.2.tgz" + integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.npmmirror.com/co/-/co-4.6.0.tgz" + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== + +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.npmmirror.com/coa/-/coa-2.0.2.tgz" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== + dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" + q "^1.1.2" + +coa@~1.0.1: + version "1.0.4" + resolved "https://registry.npmmirror.com/coa/-/coa-1.0.4.tgz" + integrity sha512-KAGck/eNAmCL0dcT3BiuYwLbExK6lduR8DxM3C1TyDzaXhZHyZ8ooX5I5+na2e3dPFuibfxrGdorr0/Lr7RYCQ== + dependencies: + q "^1.1.2" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/code-point-at/-/code-point-at-1.1.0.tgz" + integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== + +codemirror@^5.46.0, codemirror@^5.48.4: + version "5.65.18" + resolved "https://registry.npmmirror.com/codemirror/-/codemirror-5.65.18.tgz" + integrity sha512-Gaz4gHnkbHMGgahNt3CA5HBk5lLQBqmD/pBgeB4kQU6OedZmqMBjlRF0LSrp2tJ4wlLNPm2FfaUd1pDy0mdlpA== + +collect-v8-coverage@^1.0.0: + version "1.0.2" + resolved "https://registry.npmmirror.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz" + integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/collection-visit/-/collection-visit-1.0.0.tgz" + integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.3.0: + version "1.9.3" + resolved "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^1.9.0, color-convert@^1.9.3: + version "1.9.3" + resolved "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-string@^0.3.0: + version "0.3.0" + resolved "https://registry.npmmirror.com/color-string/-/color-string-0.3.0.tgz" + integrity sha512-sz29j1bmSDfoAxKIEU6zwoIZXN6BrFbAMIhfYCNyiZXBDuU/aiHlN84lp/xDzL2ubyFhLDobHIlU1X70XRrMDA== + dependencies: + color-name "^1.0.0" + +color-string@^1.6.0: + version "1.9.1" + resolved "https://registry.npmmirror.com/color-string/-/color-string-1.9.1.tgz" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^0.11.0: + version "0.11.4" + resolved "https://registry.npmmirror.com/color/-/color-0.11.4.tgz" + integrity sha512-Ajpjd8asqZ6EdxQeqGzU5WBhhTfJ/0cA4Wlbre7e5vXfmDSmda7Ov6jeKoru+b0vHcb1CqvuroTHp5zIWzhVMA== + dependencies: + clone "^1.0.2" + color-convert "^1.3.0" + color-string "^0.3.0" + +color@^3.0.0: + version "3.2.1" + resolved "https://registry.npmmirror.com/color/-/color-3.2.1.tgz" + integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== + dependencies: + color-convert "^1.9.3" + color-string "^1.6.0" + +colormin@^1.0.5: + version "1.1.2" + resolved "https://registry.npmmirror.com/colormin/-/colormin-1.1.2.tgz" + integrity sha512-XSEQUUQUR/lXqGyddiNH3XYFUPYlYr1vXy9rTFMsSOw+J7Q6EQkdlQIrTlYn4TccpsOaUE1PYQNjBn20gwCdgQ== + dependencies: + color "^0.11.0" + css-color-names "0.0.4" + has "^1.0.1" + +colors@~1.1.2: + version "1.1.2" + resolved "https://registry.npmmirror.com/colors/-/colors-1.1.2.tgz" + integrity sha512-ENwblkFQpqqia6b++zLD/KUWafYlVY/UNnAp7oz7LY7E924wmpye416wBOmvv/HMWzl8gL1kJlfvId/1Dg176w== + +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^2.18.0, commander@^2.20.0, commander@2: + version "2.20.3" + resolved "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^4.1.1: + version "4.1.1" + resolved "https://registry.npmmirror.com/commander/-/commander-4.1.1.tgz" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +commander@~2.19.0: + version "2.19.0" + resolved "https://registry.npmmirror.com/commander/-/commander-2.19.0.tgz" + integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== + +commander@2.17.x: + version "2.17.1" + resolved "https://registry.npmmirror.com/commander/-/commander-2.17.1.tgz" + integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== + +common-path-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz" + integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/commondir/-/commondir-1.0.1.tgz" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + +component-classes@^1.2.6: + version "1.2.6" + resolved "https://registry.npmmirror.com/component-classes/-/component-classes-1.2.6.tgz" + integrity sha512-hPFGULxdwugu1QWW3SvVOCUHLzO34+a2J6Wqy0c5ASQkfi9/8nZcBB0ZohaEbXOQlCflMAEMmEWk7u7BVs4koA== + dependencies: + component-indexof "0.0.3" + +component-emitter@^1.2.1: + version "1.3.1" + resolved "https://registry.npmmirror.com/component-emitter/-/component-emitter-1.3.1.tgz" + integrity sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ== + +component-indexof@0.0.3: + version "0.0.3" + resolved "https://registry.npmmirror.com/component-indexof/-/component-indexof-0.0.3.tgz" + integrity sha512-puDQKvx/64HZXb4hBwIcvQLaLgux8o1CbWl39s41hrIIZDl1lJiD5jc22gj3RBeGK0ovxALDYpIbyjqDUUl0rw== + +compressible@~2.0.18: + version "2.0.18" + resolved "https://registry.npmmirror.com/compressible/-/compressible-2.0.18.tgz" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression-webpack-plugin@^3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/compression-webpack-plugin/-/compression-webpack-plugin-3.1.0.tgz" + integrity sha512-iqTHj3rADN4yHwXMBrQa/xrncex/uEQy8QHlaTKxGchT/hC0SdlJlmL/5eRqffmWq2ep0/Romw6Ld39JjTR/ug== + dependencies: + cacache "^13.0.1" + find-cache-dir "^3.0.0" + neo-async "^2.5.0" + schema-utils "^2.6.1" + serialize-javascript "^2.1.2" + webpack-sources "^1.0.1" + +compression@^1.7.3, compression@^1.7.4: + version "1.7.5" + resolved "https://registry.npmmirror.com/compression/-/compression-1.7.5.tgz" + integrity sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q== + dependencies: + bytes "3.1.2" + compressible "~2.0.18" + debug "2.6.9" + negotiator "~0.6.4" + on-headers "~1.0.2" + safe-buffer "5.2.1" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +concat-stream@^1.5.0, concat-stream@^1.6.0: + version "1.6.2" + resolved "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +connect-history-api-fallback@^1.3.0, connect-history-api-fallback@^1.6.0: + version "1.6.0" + resolved "https://registry.npmmirror.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + +console-browserify@^1.1.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/console-browserify/-/console-browserify-1.2.0.tgz" + integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== + +consolidate@^0.14.0: + version "0.14.5" + resolved "https://registry.npmmirror.com/consolidate/-/consolidate-0.14.5.tgz" + integrity sha512-PZFskfj64QnpKVK9cPdY36pyWEhZNM+srRVqtwMiVTlnViSoZcvX35PpBhhUcyLTHXYvz7pZRmxvsqwzJqg9kA== + dependencies: + bluebird "^3.1.1" + +consolidate@^0.15.1: + version "0.15.1" + resolved "https://registry.npmmirror.com/consolidate/-/consolidate-0.15.1.tgz" + integrity sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw== + dependencies: + bluebird "^3.1.1" + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/constants-browserify/-/constants-browserify-1.0.0.tgz" + integrity sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ== + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.4.tgz" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.npmmirror.com/content-type/-/content-type-1.0.5.tgz" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +contour_plot@^0.0.1: + version "0.0.1" + resolved "https://registry.npmmirror.com/contour_plot/-/contour_plot-0.0.1.tgz" + integrity sha512-Nil2HI76Xux6sVGORvhSS8v66m+/h5CwFkBJDO+U5vWaMdNC0yXNCsGDPbzPhvqOEU5koebhdEvD372LI+IyLw== + +convert-source-map@^0.3.3: + version "0.3.5" + resolved "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-0.3.5.tgz" + integrity sha512-+4nRk0k3oEpwUB7/CalD7xE2z4VmtEnnq0GO2IPTkrooTrAhEsWvuLF5iWP1dXrwluki/azwXV1ve7gtYuPldg== + +convert-source-map@^1.4.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0: + version "1.9.0" + resolved "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.7.1: + version "0.7.1" + resolved "https://registry.npmmirror.com/cookie/-/cookie-0.7.1.tgz" + integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w== + +copy-anything@^2.0.1: + version "2.0.6" + resolved "https://registry.npmmirror.com/copy-anything/-/copy-anything-2.0.6.tgz" + integrity sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw== + dependencies: + is-what "^3.14.1" + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.npmmirror.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.npmmirror.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz" + integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== + +copy-webpack-plugin@^4.6.0: + version "4.6.0" + resolved "https://registry.npmmirror.com/copy-webpack-plugin/-/copy-webpack-plugin-4.6.0.tgz" + integrity sha512-Y+SQCF+0NoWQryez2zXn5J5knmr9z/9qSQt7fbL78u83rxmigOy8X5+BFn8CFSuX+nKT8gpYwJX68ekqtQt6ZA== + dependencies: + cacache "^10.0.4" + find-cache-dir "^1.0.0" + globby "^7.1.1" + is-glob "^4.0.0" + loader-utils "^1.1.0" + minimatch "^3.0.4" + p-limit "^1.0.0" + serialize-javascript "^1.4.0" + +core-js-compat@^3.40.0, core-js-compat@^3.8.3: + version "3.42.0" + resolved "https://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.42.0.tgz" + integrity sha512-bQasjMfyDGyaeWKBIu33lHh9qlSR0MFE/Nmc6nMjf/iU9b3rSMdAYz1Baxrv4lPdGUsTqZudHA4jIGSJy0SWZQ== + dependencies: + browserslist "^4.24.4" + +core-js@^2.4.0: + version "2.6.12" + resolved "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + +core-js@^2.5.0: + version "2.6.12" + resolved "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + +core-js@^2.6.5: + version "2.6.12" + resolved "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + +core-js@^3.22.4: + version "3.39.0" + resolved "https://registry.npmmirror.com/core-js/-/core-js-3.39.0.tgz" + integrity sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g== + +core-js@^3.33.2, core-js@^3.8.3: + version "3.42.0" + resolved "https://registry.npmmirror.com/core-js/-/core-js-3.42.0.tgz" + integrity sha512-Sz4PP4ZA+Rq4II21qkNqOEDTDrCvcANId3xpIgB34NDkWc3UduWj2dqEtN9yZIq8Dk3HyPI33x9sqqU5C8sr0g== + +core-js@^3.6.0: + version "3.39.0" + resolved "https://registry.npmmirror.com/core-js/-/core-js-3.39.0.tgz" + integrity sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g== + +core-js@^3.6.5: + version "3.39.0" + resolved "https://registry.npmmirror.com/core-js/-/core-js-3.39.0.tgz" + integrity sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g== + +core-js@2: + version "2.6.12" + resolved "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.2.tgz" + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== + +cosmiconfig@^2.1.0, cosmiconfig@^2.1.1: + version "2.2.2" + resolved "https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-2.2.2.tgz" + integrity sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A== + dependencies: + is-directory "^0.3.1" + js-yaml "^3.4.3" + minimist "^1.2.0" + object-assign "^4.1.0" + os-homedir "^1.0.1" + parse-json "^2.2.0" + require-from-string "^1.1.0" + +cosmiconfig@^5.0.0: + version "5.2.1" + resolved "https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +create-ecdh@^4.0.4: + version "4.0.4" + resolved "https://registry.npmmirror.com/create-ecdh/-/create-ecdh-4.0.4.tgz" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== + dependencies: + bn.js "^4.1.0" + elliptic "^6.5.3" + +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/create-hash/-/create-hash-1.2.0.tgz" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.4, create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.npmmirror.com/create-hmac/-/create-hmac-1.1.7.tgz" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cron-parser@^2.10.0: + version "2.18.0" + resolved "https://registry.npmmirror.com/cron-parser/-/cron-parser-2.18.0.tgz" + integrity sha512-s4odpheTyydAbTBQepsqd2rNWGa2iV3cyo8g7zbI2QQYGLVsfbhmwukayS1XHppe02Oy1fg7mg6xoaraVJeEcg== + dependencies: + is-nan "^1.3.0" + moment-timezone "^0.5.31" + +cross-env@^5.0.5: + version "5.2.1" + resolved "https://registry.npmmirror.com/cross-env/-/cross-env-5.2.1.tgz" + integrity sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ== + dependencies: + cross-spawn "^6.0.5" + +cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-5.1.0.tgz" + integrity sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A== + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^5.1.0: + version "5.1.0" + resolved "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-5.1.0.tgz" + integrity sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A== + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^6.0.0: + version "6.0.6" + resolved "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-6.0.6.tgz" + integrity sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^6.0.5: + version "6.0.6" + resolved "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-6.0.6.tgz" + integrity sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^7.0.0, cross-spawn@^7.0.3: + version "7.0.6" + resolved "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.6.tgz" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypt@0.0.2: + version "0.0.2" + resolved "https://registry.npmmirror.com/crypt/-/crypt-0.0.2.tgz" + integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== + +crypto-browserify@^3.11.0: + version "3.12.1" + resolved "https://registry.npmmirror.com/crypto-browserify/-/crypto-browserify-3.12.1.tgz" + integrity sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ== + dependencies: + browserify-cipher "^1.0.1" + browserify-sign "^4.2.3" + create-ecdh "^4.0.4" + create-hash "^1.2.0" + create-hmac "^1.1.7" + diffie-hellman "^5.0.3" + hash-base "~3.0.4" + inherits "^2.0.4" + pbkdf2 "^3.1.2" + public-encrypt "^4.0.3" + randombytes "^2.1.0" + randomfill "^1.0.4" + +css-color-names@^0.0.4, css-color-names@0.0.4: + version "0.0.4" + resolved "https://registry.npmmirror.com/css-color-names/-/css-color-names-0.0.4.tgz" + integrity sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q== + +css-declaration-sorter@^4.0.1: + version "4.0.1" + resolved "https://registry.npmmirror.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz" + integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== + dependencies: + postcss "^7.0.1" + timsort "^0.3.0" + +css-line-break@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/css-line-break/-/css-line-break-2.1.0.tgz" + integrity sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w== + dependencies: + utrie "^1.0.2" + +css-loader@*, css-loader@^0.28.7: + version "0.28.11" + resolved "https://registry.npmmirror.com/css-loader/-/css-loader-0.28.11.tgz" + integrity sha512-wovHgjAx8ZIMGSL8pTys7edA1ClmzxHeY6n/d97gg5odgsxEgKjULPR0viqyC+FWMCL9sfqoC/QCUBo62tLvPg== + dependencies: + babel-code-frame "^6.26.0" + css-selector-tokenizer "^0.7.0" + cssnano "^3.10.0" + icss-utils "^2.1.0" + loader-utils "^1.0.2" + lodash.camelcase "^4.3.0" + object-assign "^4.1.1" + postcss "^5.0.6" + postcss-modules-extract-imports "^1.2.0" + postcss-modules-local-by-default "^1.2.0" + postcss-modules-scope "^1.1.0" + postcss-modules-values "^1.3.0" + postcss-value-parser "^3.3.0" + source-list-map "^2.0.0" + +css-loader@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/css-loader/-/css-loader-1.0.1.tgz" + integrity sha512-+ZHAZm/yqvJ2kDtPne3uX0C+Vr3Zn5jFn2N4HywtS5ujwvsVkyg0VArEXpl3BgczDA8anieki1FIzhchX4yrDw== + dependencies: + babel-code-frame "^6.26.0" + css-selector-tokenizer "^0.7.0" + icss-utils "^2.1.0" + loader-utils "^1.0.2" + lodash "^4.17.11" + postcss "^6.0.23" + postcss-modules-extract-imports "^1.2.0" + postcss-modules-local-by-default "^1.2.0" + postcss-modules-scope "^1.1.0" + postcss-modules-values "^1.3.0" + postcss-value-parser "^3.3.0" + source-list-map "^2.0.0" + +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.npmmirror.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== + +css-select@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/css-select/-/css-select-2.1.0.tgz" + integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== + dependencies: + boolbase "^1.0.0" + css-what "^3.2.1" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-select@^4.1.3: + version "4.3.0" + resolved "https://registry.npmmirror.com/css-select/-/css-select-4.3.0.tgz" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== + dependencies: + boolbase "^1.0.0" + css-what "^6.0.1" + domhandler "^4.3.1" + domutils "^2.8.0" + nth-check "^2.0.1" + +css-selector-tokenizer@^0.7.0: + version "0.7.3" + resolved "https://registry.npmmirror.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz" + integrity sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg== + dependencies: + cssesc "^3.0.0" + fastparse "^1.1.2" + +css-tree@^1.1.2: + version "1.1.3" + resolved "https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +css-tree@1.0.0-alpha.37: + version "1.0.0-alpha.37" + resolved "https://registry.npmmirror.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz" + integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== + dependencies: + mdn-data "2.0.4" + source-map "^0.6.1" + +css-what@^3.2.1: + version "3.4.2" + resolved "https://registry.npmmirror.com/css-what/-/css-what-3.4.2.tgz" + integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== + +css-what@^6.0.1: + version "6.1.0" + resolved "https://registry.npmmirror.com/css-what/-/css-what-6.1.0.tgz" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + +css@^2.0.0: + version "2.2.4" + resolved "https://registry.npmmirror.com/css/-/css-2.2.4.tgz" + integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== + dependencies: + inherits "^2.0.3" + source-map "^0.6.1" + source-map-resolve "^0.5.2" + urix "^0.1.0" + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-default@^4.0.0, cssnano-preset-default@^4.0.8: + version "4.0.8" + resolved "https://registry.npmmirror.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz" + integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ== + dependencies: + css-declaration-sorter "^4.0.1" + cssnano-util-raw-cache "^4.0.1" + postcss "^7.0.0" + postcss-calc "^7.0.1" + postcss-colormin "^4.0.3" + postcss-convert-values "^4.0.1" + postcss-discard-comments "^4.0.2" + postcss-discard-duplicates "^4.0.2" + postcss-discard-empty "^4.0.1" + postcss-discard-overridden "^4.0.1" + postcss-merge-longhand "^4.0.11" + postcss-merge-rules "^4.0.3" + postcss-minify-font-values "^4.0.2" + postcss-minify-gradients "^4.0.2" + postcss-minify-params "^4.0.2" + postcss-minify-selectors "^4.0.2" + postcss-normalize-charset "^4.0.1" + postcss-normalize-display-values "^4.0.2" + postcss-normalize-positions "^4.0.2" + postcss-normalize-repeat-style "^4.0.2" + postcss-normalize-string "^4.0.2" + postcss-normalize-timing-functions "^4.0.2" + postcss-normalize-unicode "^4.0.1" + postcss-normalize-url "^4.0.1" + postcss-normalize-whitespace "^4.0.2" + postcss-ordered-values "^4.1.2" + postcss-reduce-initial "^4.0.3" + postcss-reduce-transforms "^4.0.2" + postcss-svgo "^4.0.3" + postcss-unique-selectors "^4.0.1" + +cssnano-util-get-arguments@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz" + integrity sha512-6RIcwmV3/cBMG8Aj5gucQRsJb4vv4I4rn6YjPbVWd5+Pn/fuG+YseGvXGk00XLkoZkaj31QOD7vMUpNPC4FIuw== + +cssnano-util-get-match@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz" + integrity sha512-JPMZ1TSMRUPVIqEalIBNoBtAYbi8okvcFns4O0YIhcdGebeYZK7dMyHJiQ6GqNBA9kE0Hym4Aqym5rPdsV/4Cw== + +cssnano-util-raw-cache@^4.0.1: + version "4.0.1" + resolved "https://registry.npmmirror.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz" + integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== + dependencies: + postcss "^7.0.0" + +cssnano-util-same-parent@^4.0.0: + version "4.0.1" + resolved "https://registry.npmmirror.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz" + integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== + +cssnano@^3.10.0: + version "3.10.0" + resolved "https://registry.npmmirror.com/cssnano/-/cssnano-3.10.0.tgz" + integrity sha512-0o0IMQE0Ezo4b41Yrm8U6Rp9/Ag81vNXY1gZMnT1XhO4DpjEf2utKERqWJbOoz3g1Wdc1d3QSta/cIuJ1wSTEg== + dependencies: + autoprefixer "^6.3.1" + decamelize "^1.1.2" + defined "^1.0.0" + has "^1.0.1" + object-assign "^4.0.1" + postcss "^5.0.14" + postcss-calc "^5.2.0" + postcss-colormin "^2.1.8" + postcss-convert-values "^2.3.4" + postcss-discard-comments "^2.0.4" + postcss-discard-duplicates "^2.0.1" + postcss-discard-empty "^2.0.1" + postcss-discard-overridden "^0.1.1" + postcss-discard-unused "^2.2.1" + postcss-filter-plugins "^2.0.0" + postcss-merge-idents "^2.1.5" + postcss-merge-longhand "^2.0.1" + postcss-merge-rules "^2.0.3" + postcss-minify-font-values "^1.0.2" + postcss-minify-gradients "^1.0.1" + postcss-minify-params "^1.0.4" + postcss-minify-selectors "^2.0.4" + postcss-normalize-charset "^1.1.0" + postcss-normalize-url "^3.0.7" + postcss-ordered-values "^2.1.0" + postcss-reduce-idents "^2.2.2" + postcss-reduce-initial "^1.0.0" + postcss-reduce-transforms "^1.0.3" + postcss-svgo "^2.1.1" + postcss-unique-selectors "^2.0.2" + postcss-value-parser "^3.2.3" + postcss-zindex "^2.0.1" + +cssnano@^4.0.0: + version "4.1.11" + resolved "https://registry.npmmirror.com/cssnano/-/cssnano-4.1.11.tgz" + integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== + dependencies: + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.8" + is-resolvable "^1.0.0" + postcss "^7.0.0" + +cssnano@^4.1.10: + version "4.1.11" + resolved "https://registry.npmmirror.com/cssnano/-/cssnano-4.1.11.tgz" + integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== + dependencies: + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.8" + is-resolvable "^1.0.0" + postcss "^7.0.0" + +csso@^4.0.2: + version "4.2.0" + resolved "https://registry.npmmirror.com/csso/-/csso-4.2.0.tgz" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== + dependencies: + css-tree "^1.1.2" + +csso@~2.3.1: + version "2.3.2" + resolved "https://registry.npmmirror.com/csso/-/csso-2.3.2.tgz" + integrity sha512-FmCI/hmqDeHHLaIQckMhMZneS84yzUZdrWDAvJVVxOwcKE1P1LF9FGmzr1ktIQSxOw6fl3PaQsmfg+GN+VvR3w== + dependencies: + clap "^1.0.9" + source-map "^0.5.3" + +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.npmmirror.com/cssom/-/cssom-0.4.4.tgz" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.npmmirror.com/cssom/-/cssom-0.3.8.tgz" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.3.0: + version "2.3.0" + resolved "https://registry.npmmirror.com/cssstyle/-/cssstyle-2.3.0.tgz" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + +csstype@^3.0.8, csstype@^3.1.0: + version "3.1.3" + resolved "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + +current-script-polyfill@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/current-script-polyfill/-/current-script-polyfill-1.0.0.tgz" + integrity sha512-qv8s+G47V6Hq+g2kRE5th+ASzzrL7b6l+tap1DHKK25ZQJv3yIFhH96XaQ7NGL+zRW3t/RDbweJf/dJDe5Z5KA== + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.npmmirror.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz" + integrity sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng== + dependencies: + array-find-index "^1.0.1" + +cyclist@^1.0.1: + version "1.0.2" + resolved "https://registry.npmmirror.com/cyclist/-/cyclist-1.0.2.tgz" + integrity sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA== + +d@^1.0.1, d@^1.0.2, d@1: + version "1.0.2" + resolved "https://registry.npmmirror.com/d/-/d-1.0.2.tgz" + integrity sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw== + dependencies: + es5-ext "^0.10.64" + type "^2.7.2" + +d3-array@^2.5.0: + version "2.12.1" + resolved "https://registry.npmmirror.com/d3-array/-/d3-array-2.12.1.tgz" + integrity sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ== + dependencies: + internmap "^1.0.0" + +d3-array@1: + version "1.2.4" + resolved "https://registry.npmmirror.com/d3-array/-/d3-array-1.2.4.tgz" + integrity sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw== + +d3-collection@1: + version "1.0.7" + resolved "https://registry.npmmirror.com/d3-collection/-/d3-collection-1.0.7.tgz" + integrity sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A== + +d3-color@1: + version "1.4.1" + resolved "https://registry.npmmirror.com/d3-color/-/d3-color-1.4.1.tgz" + integrity sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q== + +d3-composite-projections@^1.2.0: + version "1.4.0" + resolved "https://registry.npmmirror.com/d3-composite-projections/-/d3-composite-projections-1.4.0.tgz" + integrity sha512-csygyxdRfy7aUYRPea23veM6sjisdHI+DNd0nHcAGMd2LyL2lklr+xLRzHiJ+hy1HGp6YgAtbqdJR8CsLolrNQ== + dependencies: + d3-geo "^2.0.1" + d3-path "^2.0.0" + +d3-dispatch@1: + version "1.0.6" + resolved "https://registry.npmmirror.com/d3-dispatch/-/d3-dispatch-1.0.6.tgz" + integrity sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA== + +d3-dsv@^1.0.5: + version "1.2.0" + resolved "https://registry.npmmirror.com/d3-dsv/-/d3-dsv-1.2.0.tgz" + integrity sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g== + dependencies: + commander "2" + iconv-lite "0.4" + rw "1" + +d3-ease@~1.0.3, d3-ease@1: + version "1.0.7" + resolved "https://registry.npmmirror.com/d3-ease/-/d3-ease-1.0.7.tgz" + integrity sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ== + +d3-format@^1.3.0: + version "1.4.5" + resolved "https://registry.npmmirror.com/d3-format/-/d3-format-1.4.5.tgz" + integrity sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ== + +d3-geo-projection@~2.1.2: + version "2.1.2" + resolved "https://registry.npmmirror.com/d3-geo-projection/-/d3-geo-projection-2.1.2.tgz" + integrity sha512-zft6RRvPaB1qplTodBVcSH5Ftvmvvg0qoDiqpt+fyNthGr/qr+DD30cizNDluXjW7jmo7EKUTjvFCAHofv08Ow== + dependencies: + commander "2" + d3-array "1" + d3-geo "^1.1.0" + +d3-geo@^1.1.0, d3-geo@~1.6.4: + version "1.6.4" + resolved "https://registry.npmmirror.com/d3-geo/-/d3-geo-1.6.4.tgz" + integrity sha512-O5Q3iftLc6/EdU1MHUm+O29NoKKN/cyQtySnD9/yEEcinN+q4ng+H56e2Yn1YWdfZBoiaRVtR2NoJ3ivKX5ptQ== + dependencies: + d3-array "1" + +d3-geo@^2.0.1: + version "2.0.2" + resolved "https://registry.npmmirror.com/d3-geo/-/d3-geo-2.0.2.tgz" + integrity sha512-8pM1WGMLGFuhq9S+FpPURxic+gKzjluCD/CHTuUF3mXMeiCo0i6R0tO1s4+GArRFde96SLcW/kOFRjoAosPsFA== + dependencies: + d3-array "^2.5.0" + +d3-hexjson@^1.0.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/d3-hexjson/-/d3-hexjson-1.1.1.tgz" + integrity sha512-WMF1juFJwAx6LzdEVKlsCGZz+7QUG7VMJDtg8uD3cfNwWOTgMiy6qBRRGU7LSY2KbmEObu3BV5ZQbq9l/BvUZQ== + dependencies: + d3-array "1" + +d3-hierarchy@^1.1.5: + version "1.1.9" + resolved "https://registry.npmmirror.com/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz" + integrity sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ== + +d3-interpolate@~1.1.5, d3-interpolate@1: + version "1.1.6" + resolved "https://registry.npmmirror.com/d3-interpolate/-/d3-interpolate-1.1.6.tgz" + integrity sha512-mOnv5a+pZzkNIHtw/V6I+w9Lqm9L5bG3OTXPM5A+QO0yyVMQ4W1uZhR+VOJmazaOZXri2ppbiZ5BUNWT0pFM9A== + dependencies: + d3-color "1" + +d3-path@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/d3-path/-/d3-path-2.0.0.tgz" + integrity sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA== + +d3-path@1: + version "1.0.9" + resolved "https://registry.npmmirror.com/d3-path/-/d3-path-1.0.9.tgz" + integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== + +d3-sankey@^0.9.1: + version "0.9.1" + resolved "https://registry.npmmirror.com/d3-sankey/-/d3-sankey-0.9.1.tgz" + integrity sha512-nnRkDaUMjBdeuGg+kWGdA+tjG1AVTnJ+Ykw7ff7CZHVI17Hm5sy8n0UXykVffn13aNHwK5wPOdOt1gS1ZEaF+A== + dependencies: + d3-array "1" + d3-collection "1" + d3-shape "^1.2.0" + +d3-selection@^1.0.2, d3-selection@^1.1.0: + version "1.4.2" + resolved "https://registry.npmmirror.com/d3-selection/-/d3-selection-1.4.2.tgz" + integrity sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg== + +d3-shape@^1.2.0: + version "1.3.7" + resolved "https://registry.npmmirror.com/d3-shape/-/d3-shape-1.3.7.tgz" + integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw== + dependencies: + d3-path "1" + +d3-timer@~1.0.6, d3-timer@1: + version "1.0.10" + resolved "https://registry.npmmirror.com/d3-timer/-/d3-timer-1.0.10.tgz" + integrity sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw== + +d3-transition@^1.0.1: + version "1.3.2" + resolved "https://registry.npmmirror.com/d3-transition/-/d3-transition-1.3.2.tgz" + integrity sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA== + dependencies: + d3-color "1" + d3-dispatch "1" + d3-ease "1" + d3-interpolate "1" + d3-selection "^1.1.0" + d3-timer "1" + +d3-voronoi@^1.1.2: + version "1.1.4" + resolved "https://registry.npmmirror.com/d3-voronoi/-/d3-voronoi-1.1.4.tgz" + integrity sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg== + +dagre@^0.8.2: + version "0.8.5" + resolved "https://registry.npmmirror.com/dagre/-/dagre-0.8.5.tgz" + integrity sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw== + dependencies: + graphlib "^2.1.8" + lodash "^4.17.15" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.npmmirror.com/dashdash/-/dashdash-1.14.1.tgz" + integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== + dependencies: + assert-plus "^1.0.0" + +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/data-urls/-/data-urls-2.0.0.tgz" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== + dependencies: + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + +data-view-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/data-view-buffer/-/data-view-buffer-1.0.2.tgz" + integrity sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ== + dependencies: + call-bound "^1.0.3" + es-errors "^1.3.0" + is-data-view "^1.0.2" + +data-view-byte-length@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz" + integrity sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ== + dependencies: + call-bound "^1.0.3" + es-errors "^1.3.0" + is-data-view "^1.0.2" + +data-view-byte-offset@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz" + integrity sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +date-fns@^2.28.0: + version "2.30.0" + resolved "https://registry.npmmirror.com/date-fns/-/date-fns-2.30.0.tgz" + integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== + dependencies: + "@babel/runtime" "^7.21.0" + +dayjs@^1.8.0: + version "1.11.13" + resolved "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz" + integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== + +de-indent@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz" + integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== + +debug@^2.2.0: + version "2.6.9" + resolved "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^2.3.3: + version "2.6.9" + resolved "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^2.6.6: + version "2.6.9" + resolved "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^2.6.8: + version "2.6.9" + resolved "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^2.6.9: + version "2.6.9" + resolved "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^3.1.0: + version "3.2.7" + resolved "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.4, debug@4: + version "4.4.0" + resolved "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz" + integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== + dependencies: + ms "^2.1.3" + +debug@=3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/debug/-/debug-3.1.0.tgz" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +debug@2.6.9: + version "2.6.9" + resolved "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + +decimal.js@^10.2.1: + version "10.4.3" + resolved "https://registry.npmmirror.com/decimal.js/-/decimal.js-10.4.3.tgz" + integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== + +decode-uri-component@^0.2.0: + version "0.2.2" + resolved "https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz" + integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== + +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.npmmirror.com/dedent/-/dedent-0.7.0.tgz" + integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== + +deep-equal@^1.0.1, deep-equal@~1.1.1: + version "1.1.2" + resolved "https://registry.npmmirror.com/deep-equal/-/deep-equal-1.1.2.tgz" + integrity sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg== + dependencies: + is-arguments "^1.1.1" + is-date-object "^1.0.5" + is-regex "^1.1.4" + object-is "^1.1.5" + object-keys "^1.1.1" + regexp.prototype.flags "^1.5.1" + +deep-is@~0.1.3: + version "0.1.4" + resolved "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deepmerge@^1.5.2: + version "1.5.2" + resolved "https://registry.npmmirror.com/deepmerge/-/deepmerge-1.5.2.tgz" + integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ== + +deepmerge@^4.2.2: + version "4.3.1" + resolved "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +default-gateway@^4.2.0: + version "4.2.0" + resolved "https://registry.npmmirror.com/default-gateway/-/default-gateway-4.2.0.tgz" + integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== + dependencies: + execa "^1.0.0" + ip-regex "^2.1.0" + +default-gateway@^5.0.2: + version "5.0.5" + resolved "https://registry.npmmirror.com/default-gateway/-/default-gateway-5.0.5.tgz" + integrity sha512-z2RnruVmj8hVMmAnEJMTIJNijhKCDiGjbLP+BHJFOT7ld3Bo5qcIBpVYDniqhbMIIf+jZDlkP2MkPXiQy/DBLA== + dependencies: + execa "^3.3.0" + +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.npmmirror.com/defaults/-/defaults-1.0.4.tgz" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + +define-data-property@^1.0.1, define-data-property@^1.1.1, define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + +define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz" + integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz" + integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.npmmirror.com/define-property/-/define-property-2.0.2.tgz" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +defined@^1.0.0, defined@~1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/defined/-/defined-1.0.1.tgz" + integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q== + +del@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/del/-/del-3.0.0.tgz" + integrity sha512-7yjqSoVSlJzA4t/VUwazuEagGeANEKB3f/aNI//06pfKgwoCb7f6Q1gETN1sZzYaj6chTQ0AhIwDiPdfOjko4A== + dependencies: + globby "^6.1.0" + is-path-cwd "^1.0.0" + is-path-in-cwd "^1.0.0" + p-map "^1.1.1" + pify "^3.0.0" + rimraf "^2.2.8" + +del@^4.1.1: + version "4.1.1" + resolved "https://registry.npmmirror.com/del/-/del-4.1.1.tgz" + integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== + dependencies: + "@types/glob" "^7.1.1" + globby "^6.1.0" + is-path-cwd "^2.0.0" + is-path-in-cwd "^2.0.0" + p-map "^2.0.0" + pify "^4.0.1" + rimraf "^2.6.3" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +delegate@^3.1.2: + version "3.2.0" + resolved "https://registry.npmmirror.com/delegate/-/delegate-3.2.0.tgz" + integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.npmmirror.com/depd/-/depd-1.1.2.tgz" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +des.js@^1.0.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/des.js/-/des.js-1.1.0.tgz" + integrity sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-browser@^5.1.0: + version "5.3.0" + resolved "https://registry.npmmirror.com/detect-browser/-/detect-browser-5.3.0.tgz" + integrity sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w== + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/detect-indent/-/detect-indent-4.0.0.tgz" + integrity sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A== + dependencies: + repeating "^2.0.0" + +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/detect-newline/-/detect-newline-3.1.0.tgz" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +diff-sequences@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/diff-sequences/-/diff-sequences-27.5.1.tgz" + integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== + +diffie-hellman@^5.0.3: + version "5.0.3" + resolved "https://registry.npmmirror.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dir-glob@^2.0.0, dir-glob@^2.2.2: + version "2.2.2" + resolved "https://registry.npmmirror.com/dir-glob/-/dir-glob-2.2.2.tgz" + integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== + dependencies: + path-type "^3.0.0" + +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/dns-equal/-/dns-equal-1.0.0.tgz" + integrity sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg== + +dns-packet@^1.3.1: + version "1.3.4" + resolved "https://registry.npmmirror.com/dns-packet/-/dns-packet-1.3.4.tgz" + integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA== + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.npmmirror.com/dns-txt/-/dns-txt-2.0.2.tgz" + integrity sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ== + dependencies: + buffer-indexof "^1.0.0" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/doctrine/-/doctrine-2.1.0.tgz" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-align@^1.10.4, dom-align@1.12.0: + version "1.12.0" + resolved "https://registry.npmmirror.com/dom-align/-/dom-align-1.12.0.tgz" + integrity sha512-YkoezQuhp3SLFGdOlr5xkqZ640iXrnHAwVYcDg8ZKRUtO7mSzSC2BA5V0VuyAwPSJA4CLIc6EDDJh4bEsD2+zA== + +dom-closest@^0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/dom-closest/-/dom-closest-0.2.0.tgz" + integrity sha512-6neTn1BtJlTSt+XSISXpnOsF1uni1CHsP/tmzZMGWxasYFHsBOqrHPnzmneqEgKhpagnfnfSfbvRRW0xFsBHAA== + dependencies: + dom-matches ">=1.0.1" + +dom-converter@^0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/dom-converter/-/dom-converter-0.2.0.tgz" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-matches@>=1.0.1: + version "2.0.0" + resolved "https://registry.npmmirror.com/dom-matches/-/dom-matches-2.0.0.tgz" + integrity sha512-2VI856xEDCLXi19W+4BechR5/oIS6bKCKqcf16GR8Pg7dGLJ/eBOWVbCmQx2ISvYH6wTNx5Ef7JTOw1dRGRx6A== + +dom-scroll-into-view@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/dom-scroll-into-view/-/dom-scroll-into-view-2.0.1.tgz" + integrity sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w== + +dom-serializer@^1.0.1: + version "1.4.1" + resolved "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz" + integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-2.0.0.tgz" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + +dom-serializer@0: + version "0.2.2" + resolved "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-0.2.2.tgz" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-walk@^0.1.0: + version "0.1.2" + resolved "https://registry.npmmirror.com/dom-walk/-/dom-walk-0.1.2.tgz" + integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.npmmirror.com/domain-browser/-/domain-browser-1.2.0.tgz" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domelementtype@1: + version "1.3.1" + resolved "https://registry.npmmirror.com/domelementtype/-/domelementtype-1.3.1.tgz" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/domexception/-/domexception-2.0.1.tgz" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== + dependencies: + webidl-conversions "^5.0.0" + +domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.npmmirror.com/domhandler/-/domhandler-4.3.1.tgz" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== + dependencies: + domelementtype "^2.2.0" + +domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.npmmirror.com/domhandler/-/domhandler-5.0.3.tgz" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + +dompurify@^2.5.4: + version "2.5.8" + resolved "https://registry.npmmirror.com/dompurify/-/dompurify-2.5.8.tgz" + integrity sha512-o1vSNgrmYMQObbSSvF/1brBYEQPHhV1+gsmrusO7/GXtp1T9rCS8cXFqVxK/9crT1jA6Ccv+5MTSjBNqr7Sovw== + +domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.npmmirror.com/domutils/-/domutils-1.7.0.tgz" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^2.5.2, domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +domutils@^3.0.1: + version "3.2.2" + resolved "https://registry.npmmirror.com/domutils/-/domutils-3.2.2.tgz" + integrity sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmmirror.com/dot-case/-/dot-case-3.0.4.tgz" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +dot-prop@^5.2.0: + version "5.3.0" + resolved "https://registry.npmmirror.com/dot-prop/-/dot-prop-5.3.0.tgz" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + +dotenv-expand@^5.1.0: + version "5.1.0" + resolved "https://registry.npmmirror.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz" + integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== + +dotenv@^7.0.0: + version "7.0.0" + resolved "https://registry.npmmirror.com/dotenv/-/dotenv-7.0.0.tgz" + integrity sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g== + +dotignore@~0.1.2: + version "0.1.2" + resolved "https://registry.npmmirror.com/dotignore/-/dotignore-0.1.2.tgz" + integrity sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw== + dependencies: + minimatch "^3.0.4" + +dunder-proto@^1.0.0, dunder-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz" + integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== + dependencies: + call-bind-apply-helpers "^1.0.1" + es-errors "^1.3.0" + gopd "^1.2.0" + +duplexer@^0.1.1: + version "0.1.2" + resolved "https://registry.npmmirror.com/duplexer/-/duplexer-0.1.2.tgz" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.npmmirror.com/duplexify/-/duplexify-3.7.1.tgz" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +easy-stack@^1.0.1, easy-stack@1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/easy-stack/-/easy-stack-1.0.1.tgz" + integrity sha512-wK2sCs4feiiJeFXn3zvY0p41mdU5VUgbgs1rNsc/y5ngFUijdWd+iIN8eoyuZHKB8xN6BL4PdWmzqFmxNg6V2w== + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.npmmirror.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" + integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +echarts@^5.4.0: + version "5.5.1" + resolved "https://registry.npmmirror.com/echarts/-/echarts-5.5.1.tgz" + integrity sha512-Fce8upazaAXUVUVsjgV6mBnGuqgO+JNDlcgF79Dksy4+wgGpQB2lmYoO4TSweFg/mZITdpGHomw/cNBJZj1icA== + dependencies: + tslib "2.3.0" + zrender "5.6.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +ejs@^2.6.1: + version "2.7.4" + resolved "https://registry.npmmirror.com/ejs/-/ejs-2.7.4.tgz" + integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== + +electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.47, electron-to-chromium@^1.5.73: + version "1.5.76" + resolved "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.76.tgz" + integrity sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ== + +electron-to-chromium@^1.5.149: + version "1.5.151" + resolved "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.151.tgz" + integrity sha512-Rl6uugut2l9sLojjS4H4SAr3A4IgACMLgpuEMPYCVcKydzfyPrn5absNRju38IhQOf/NwjJY8OGWjlteqYeBCA== + +elliptic@^6.5.3, elliptic@^6.5.5: + version "6.6.1" + resolved "https://registry.npmmirror.com/elliptic/-/elliptic-6.6.1.tgz" + integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + +emittery@^0.8.1: + version "0.8.1" + resolved "https://registry.npmmirror.com/emittery/-/emittery-0.8.1.tgz" + integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-7.0.3.tgz" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/emojis-list/-/emojis-list-2.1.0.tgz" + integrity sha512-knHEZMgs8BB+MInokmNTg/OyPlAddghe1YBgNwJBc5zsJi/uyIcXoSDsL/W9ymOsBoBGdPIHXYJ9+qKFwRwDng== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +encodeurl@~2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/encodeurl/-/encodeurl-2.0.0.tgz" + integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enhanced-resolve@^3.4.0: + version "3.4.1" + resolved "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz" + integrity sha512-ZaAux1rigq1e2nQrztHn4h2ugvpzZxs64qneNah+8Mh/K0CRqJFJc+UoXnUsq+1yX+DmQFPPdVqboKAJ89e0Iw== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.4.0" + object-assign "^4.0.1" + tapable "^0.2.7" + +enhanced-resolve@^4.5.0: + version "4.5.0" + resolved "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz" + integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + +enhanced-resolve@^5.17.1: + version "5.18.1" + resolved "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz" + integrity sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +enquire.js@^2.1.6: + version "2.1.6" + resolved "https://registry.npmmirror.com/enquire.js/-/enquire.js-2.1.6.tgz" + integrity sha512-/KujNpO+PT63F7Hlpu4h3pE3TokKRHN26JYmQpPyjkRD/N57R7bPDNojMXdi7uveAKjYB7yQnartCxZnFWr0Xw== + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +entities@^4.2.0, entities@^4.4.0: + version "4.5.0" + resolved "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +entities@^4.5.0: + version "4.5.0" + resolved "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +errno@^0.1.1, errno@^0.1.3, errno@~0.1.7: + version "0.1.8" + resolved "https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== + dependencies: + prr "~1.0.1" + +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +error-stack-parser@^2.0.6: + version "2.1.4" + resolved "https://registry.npmmirror.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz" + integrity sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ== + dependencies: + stackframe "^1.3.4" + +es-abstract@^1.23.2, es-abstract@^1.23.5, es-abstract@^1.23.6: + version "1.23.7" + resolved "https://registry.npmmirror.com/es-abstract/-/es-abstract-1.23.7.tgz" + integrity sha512-OygGC8kIcDhXX+6yAZRGLqwi2CmEXCbLQixeGUgYeR+Qwlppqmo7DIDr8XibtEBZp+fJcoYpoatp5qwLMEdcqQ== + dependencies: + array-buffer-byte-length "^1.0.2" + arraybuffer.prototype.slice "^1.0.4" + available-typed-arrays "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.3" + data-view-buffer "^1.0.2" + data-view-byte-length "^1.0.2" + data-view-byte-offset "^1.0.1" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-set-tostringtag "^2.0.3" + es-to-primitive "^1.3.0" + function.prototype.name "^1.1.8" + get-intrinsic "^1.2.6" + get-symbol-description "^1.1.0" + globalthis "^1.0.4" + gopd "^1.2.0" + has-property-descriptors "^1.0.2" + has-proto "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + internal-slot "^1.1.0" + is-array-buffer "^3.0.5" + is-callable "^1.2.7" + is-data-view "^1.0.2" + is-regex "^1.2.1" + is-shared-array-buffer "^1.0.4" + is-string "^1.1.1" + is-typed-array "^1.1.15" + is-weakref "^1.1.0" + math-intrinsics "^1.1.0" + object-inspect "^1.13.3" + object-keys "^1.1.1" + object.assign "^4.1.7" + regexp.prototype.flags "^1.5.3" + safe-array-concat "^1.1.3" + safe-regex-test "^1.1.0" + string.prototype.trim "^1.2.10" + string.prototype.trimend "^1.0.9" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.3" + typed-array-byte-length "^1.0.3" + typed-array-byte-offset "^1.0.4" + typed-array-length "^1.0.7" + unbox-primitive "^1.1.0" + which-typed-array "^1.1.18" + +es-abstract@^1.23.9: + version "1.23.9" + resolved "https://registry.npmmirror.com/es-abstract/-/es-abstract-1.23.9.tgz" + integrity sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA== + dependencies: + array-buffer-byte-length "^1.0.2" + arraybuffer.prototype.slice "^1.0.4" + available-typed-arrays "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.3" + data-view-buffer "^1.0.2" + data-view-byte-length "^1.0.2" + data-view-byte-offset "^1.0.1" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-set-tostringtag "^2.1.0" + es-to-primitive "^1.3.0" + function.prototype.name "^1.1.8" + get-intrinsic "^1.2.7" + get-proto "^1.0.0" + get-symbol-description "^1.1.0" + globalthis "^1.0.4" + gopd "^1.2.0" + has-property-descriptors "^1.0.2" + has-proto "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + internal-slot "^1.1.0" + is-array-buffer "^3.0.5" + is-callable "^1.2.7" + is-data-view "^1.0.2" + is-regex "^1.2.1" + is-shared-array-buffer "^1.0.4" + is-string "^1.1.1" + is-typed-array "^1.1.15" + is-weakref "^1.1.0" + math-intrinsics "^1.1.0" + object-inspect "^1.13.3" + object-keys "^1.1.1" + object.assign "^4.1.7" + own-keys "^1.0.1" + regexp.prototype.flags "^1.5.3" + safe-array-concat "^1.1.3" + safe-push-apply "^1.0.0" + safe-regex-test "^1.1.0" + set-proto "^1.0.0" + string.prototype.trim "^1.2.10" + string.prototype.trimend "^1.0.9" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.3" + typed-array-byte-length "^1.0.3" + typed-array-byte-offset "^1.0.4" + typed-array-length "^1.0.7" + unbox-primitive "^1.1.0" + which-typed-array "^1.1.18" + +es-array-method-boxes-properly@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz" + integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== + +es-define-property@^1.0.0, es-define-property@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz" + integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-module-lexer@^1.2.1: + version "1.7.0" + resolved "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.7.0.tgz" + integrity sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA== + +es-object-atoms@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz" + integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== + dependencies: + es-errors "^1.3.0" + +es-object-atoms@^1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz" + integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== + dependencies: + es-errors "^1.3.0" + +es-set-tostringtag@^2.0.3: + version "2.0.3" + resolved "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz" + integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== + dependencies: + get-intrinsic "^1.2.4" + has-tostringtag "^1.0.2" + hasown "^2.0.1" + +es-set-tostringtag@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz" + integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== + dependencies: + es-errors "^1.3.0" + get-intrinsic "^1.2.6" + has-tostringtag "^1.0.2" + hasown "^2.0.2" + +es-shim-unscopables@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz" + integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== + dependencies: + hasown "^2.0.0" + +es-to-primitive@^1.3.0: + version "1.3.0" + resolved "https://registry.npmmirror.com/es-to-primitive/-/es-to-primitive-1.3.0.tgz" + integrity sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g== + dependencies: + is-callable "^1.2.7" + is-date-object "^1.0.5" + is-symbol "^1.0.4" + +es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.62, es5-ext@^0.10.64, es5-ext@~0.10.14: + version "0.10.64" + resolved "https://registry.npmmirror.com/es5-ext/-/es5-ext-0.10.64.tgz" + integrity sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg== + dependencies: + es6-iterator "^2.0.3" + es6-symbol "^3.1.3" + esniff "^2.0.1" + next-tick "^1.1.0" + +es5-shim@^4.5.1: + version "4.6.7" + resolved "https://registry.npmmirror.com/es5-shim/-/es5-shim-4.6.7.tgz" + integrity sha512-jg21/dmlrNQI7JyyA2w7n+yifSxBng0ZralnSfVZjoCawgNTCnS+yBCyVM9DL5itm7SUnDGgv7hcq2XCZX4iRQ== + +es6-iterator@^2.0.3, es6-iterator@~2.0.1, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.npmmirror.com/es6-iterator/-/es6-iterator-2.0.3.tgz" + integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-map@^0.1.3: + version "0.1.5" + resolved "https://registry.npmmirror.com/es6-map/-/es6-map-0.1.5.tgz" + integrity sha512-mz3UqCh0uPCIqsw1SSAkB/p0rOzF/M0V++vyN7JqlPtSW/VsYgQBvVvqMLmfBuyMzTpLnNqi6JmcSizs4jy19A== + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-set "~0.1.5" + es6-symbol "~3.1.1" + event-emitter "~0.3.5" + +es6-promise@^4.2.8: + version "4.2.8" + resolved "https://registry.npmmirror.com/es6-promise/-/es6-promise-4.2.8.tgz" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== + +es6-set@~0.1.5: + version "0.1.6" + resolved "https://registry.npmmirror.com/es6-set/-/es6-set-0.1.6.tgz" + integrity sha512-TE3LgGLDIBX332jq3ypv6bcOpkLO0AslAQo7p2VqX/1N46YNsvIWgvjojjSEnWEGWMhr1qUbYeTSir5J6mFHOw== + dependencies: + d "^1.0.1" + es5-ext "^0.10.62" + es6-iterator "~2.0.3" + es6-symbol "^3.1.3" + event-emitter "^0.3.5" + type "^2.7.2" + +es6-symbol@^3.1.1, es6-symbol@^3.1.3, es6-symbol@~3.1.1: + version "3.1.4" + resolved "https://registry.npmmirror.com/es6-symbol/-/es6-symbol-3.1.4.tgz" + integrity sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg== + dependencies: + d "^1.0.2" + ext "^1.7.0" + +es6-weak-map@^2.0.1: + version "2.0.3" + resolved "https://registry.npmmirror.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz" + integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== + dependencies: + d "1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" + es6-symbol "^3.1.1" + +escalade@^3.1.1, escalade@^3.2.0: + version "3.2.0" + resolved "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@^1.0.2: + version "1.0.5" + resolved "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escodegen@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/escodegen/-/escodegen-2.1.0.tgz" + integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== + dependencies: + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionalDependencies: + source-map "~0.6.1" + +escope@^3.6.0: + version "3.6.0" + resolved "https://registry.npmmirror.com/escope/-/escope-3.6.0.tgz" + integrity sha512-75IUQsusDdalQEW/G/2esa87J7raqdJF+Ca0/Xm5C3Q58Nr4yVYjZGp/P1+2xiEVgXRrA39dpRb8LcshajbqDQ== + dependencies: + es6-map "^0.1.3" + es6-weak-map "^2.0.1" + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-config-standard@^12.0.0: + version "12.0.0" + resolved "https://registry.npmmirror.com/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz" + integrity sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ== + +eslint-import-resolver-node@^0.3.9: + version "0.3.9" + resolved "https://registry.npmmirror.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz" + integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== + dependencies: + debug "^3.2.7" + is-core-module "^2.13.0" + resolve "^1.22.4" + +eslint-loader@^2.1.2: + version "2.2.1" + resolved "https://registry.npmmirror.com/eslint-loader/-/eslint-loader-2.2.1.tgz" + integrity sha512-RLgV9hoCVsMLvOxCuNjdqOrUqIj9oJg8hF44vzJaYqsAHuY9G2YAeN3joQ9nxP0p5Th9iFSIpKo+SD8KISxXRg== + dependencies: + loader-fs-cache "^1.0.0" + loader-utils "^1.0.2" + object-assign "^4.0.1" + object-hash "^1.1.4" + rimraf "^2.6.1" + +eslint-module-utils@^2.12.0: + version "2.12.0" + resolved "https://registry.npmmirror.com/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz" + integrity sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg== + dependencies: + debug "^3.2.7" + +eslint-plugin-es@^1.3.1: + version "1.4.1" + resolved "https://registry.npmmirror.com/eslint-plugin-es/-/eslint-plugin-es-1.4.1.tgz" + integrity sha512-5fa/gR2yR3NxQf+UXkeLeP8FBBl6tSgdrAz1+cF84v1FMM4twGwQoqTnn+QxFLcPOrF4pdKEJKDB/q9GoyJrCA== + dependencies: + eslint-utils "^1.4.2" + regexpp "^2.0.1" + +eslint-plugin-html@^7.0.0: + version "7.1.0" + resolved "https://registry.npmmirror.com/eslint-plugin-html/-/eslint-plugin-html-7.1.0.tgz" + integrity sha512-fNLRraV/e6j8e3XYOC9xgND4j+U7b1Rq+OygMlLcMg+wI/IpVbF+ubQa3R78EjKB9njT6TQOlcK5rFKBVVtdfg== + dependencies: + htmlparser2 "^8.0.1" + +eslint-plugin-import@^2.14.0, eslint-plugin-import@>=2.13.0: + version "2.31.0" + resolved "https://registry.npmmirror.com/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz" + integrity sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A== + dependencies: + "@rtsao/scc" "^1.1.0" + array-includes "^3.1.8" + array.prototype.findlastindex "^1.2.5" + array.prototype.flat "^1.3.2" + array.prototype.flatmap "^1.3.2" + debug "^3.2.7" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.9" + eslint-module-utils "^2.12.0" + hasown "^2.0.2" + is-core-module "^2.15.1" + is-glob "^4.0.3" + minimatch "^3.1.2" + object.fromentries "^2.0.8" + object.groupby "^1.0.3" + object.values "^1.2.0" + semver "^6.3.1" + string.prototype.trimend "^1.0.8" + tsconfig-paths "^3.15.0" + +eslint-plugin-node@^8.0.0, eslint-plugin-node@>=7.0.0: + version "8.0.1" + resolved "https://registry.npmmirror.com/eslint-plugin-node/-/eslint-plugin-node-8.0.1.tgz" + integrity sha512-ZjOjbjEi6jd82rIpFSgagv4CHWzG9xsQAVp1ZPlhRnnYxcTgENUVBvhYmkQ7GvT1QFijUSo69RaiOJKhMu6i8w== + dependencies: + eslint-plugin-es "^1.3.1" + eslint-utils "^1.3.1" + ignore "^5.0.2" + minimatch "^3.0.4" + resolve "^1.8.1" + semver "^5.5.0" + +eslint-plugin-promise@^4.0.1, eslint-plugin-promise@>=4.0.0: + version "4.3.1" + resolved "https://registry.npmmirror.com/eslint-plugin-promise/-/eslint-plugin-promise-4.3.1.tgz" + integrity sha512-bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ== + +eslint-plugin-standard@^4.0.0, eslint-plugin-standard@>=4.0.0: + version "4.1.0" + resolved "https://registry.npmmirror.com/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz" + integrity sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ== + +eslint-plugin-vue@^4.7.1: + version "4.7.1" + resolved "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-4.7.1.tgz" + integrity sha512-esETKhVMI7Vdli70Wt4bvAwnZBJeM0pxVX9Yb0wWKxdCJc2EADalVYK/q2FzMw8oKN0wPMdqVCKS8kmR89recA== + dependencies: + vue-eslint-parser "^2.0.3" + +eslint-plugin-vue@^9.0.0: + version "9.0.0" + resolved "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-9.0.0.tgz" + integrity sha512-UD1uQp8bzMi1b0/YS1ErmZY2/zJ7YVcVp40KniccN+yka0Agji/5X3SJ/gmrjFYXpEaXRebxa49uegZ4NamFHg== + dependencies: + eslint-utils "^3.0.0" + natural-compare "^1.4.0" + nth-check "^2.0.1" + postcss-selector-parser "^6.0.9" + semver "^7.3.5" + vue-eslint-parser "^9.0.1" + xml-name-validator "^4.0.0" + +eslint-scope@^3.7.1: + version "3.7.3" + resolved "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-3.7.3.tgz" + integrity sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-4.0.3.tgz" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-scope@^7.1.1: + version "7.2.2" + resolved "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.2.2.tgz" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-scope@5.1.1: + version "5.1.1" + resolved "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-utils@^1.3.1, eslint-utils@^1.4.2: + version "1.4.3" + resolved "https://registry.npmmirror.com/eslint-utils/-/eslint-utils-1.4.3.tgz" + integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/eslint-utils/-/eslint-utils-3.0.0.tgz" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" + +eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: + version "1.3.0" + resolved "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint-visitor-keys@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: + version "3.4.3" + resolved "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +"eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9", eslint@^5.16.0, "eslint@^6.2.0 || ^7.0.0 || ^8.0.0", "eslint@^7.5.0 || ^8.0.0 || ^9.0.0", "eslint@>=1.6.0 <7.0.0", eslint@>=4.19.1, eslint@>=5, eslint@>=5.0.0, eslint@>=6.0.0: + version "5.16.0" + resolved "https://registry.npmmirror.com/eslint/-/eslint-5.16.0.tgz" + integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg== + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.9.1" + chalk "^2.1.0" + cross-spawn "^6.0.5" + debug "^4.0.1" + doctrine "^3.0.0" + eslint-scope "^4.0.3" + eslint-utils "^1.3.1" + eslint-visitor-keys "^1.0.0" + espree "^5.0.1" + esquery "^1.0.1" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob "^7.1.2" + globals "^11.7.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + inquirer "^6.2.2" + js-yaml "^3.13.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.11" + minimatch "^3.0.4" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.2" + progress "^2.0.0" + regexpp "^2.0.1" + semver "^5.5.1" + strip-ansi "^4.0.0" + strip-json-comments "^2.0.1" + table "^5.2.3" + text-table "^0.2.0" + +"eslint@^3.18.0 || ^4.0.0", eslint@^4.19.1, "eslint@>= 4.12.1", eslint@>=3.9.0: + version "4.19.1" + resolved "https://registry.npmmirror.com/eslint/-/eslint-4.19.1.tgz" + integrity sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ== + dependencies: + ajv "^5.3.0" + babel-code-frame "^6.22.0" + chalk "^2.1.0" + concat-stream "^1.6.0" + cross-spawn "^5.1.0" + debug "^3.1.0" + doctrine "^2.1.0" + eslint-scope "^3.7.1" + eslint-visitor-keys "^1.0.0" + espree "^3.5.4" + esquery "^1.0.0" + esutils "^2.0.2" + file-entry-cache "^2.0.0" + functional-red-black-tree "^1.0.1" + glob "^7.1.2" + globals "^11.0.1" + ignore "^3.3.3" + imurmurhash "^0.1.4" + inquirer "^3.0.6" + is-resolvable "^1.0.0" + js-yaml "^3.9.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.4" + minimatch "^3.0.2" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.2" + pluralize "^7.0.0" + progress "^2.0.0" + regexpp "^1.0.1" + require-uncached "^1.0.3" + semver "^5.3.0" + strip-ansi "^4.0.0" + strip-json-comments "~2.0.1" + table "4.0.2" + text-table "~0.2.0" + +esniff@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/esniff/-/esniff-2.0.1.tgz" + integrity sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg== + dependencies: + d "^1.0.1" + es5-ext "^0.10.62" + event-emitter "^0.3.5" + type "^2.7.2" + +espree@^3.5.2, espree@^3.5.4: + version "3.5.4" + resolved "https://registry.npmmirror.com/espree/-/espree-3.5.4.tgz" + integrity sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A== + dependencies: + acorn "^5.5.0" + acorn-jsx "^3.0.0" + +espree@^5.0.1: + version "5.0.1" + resolved "https://registry.npmmirror.com/espree/-/espree-5.0.1.tgz" + integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A== + dependencies: + acorn "^6.0.7" + acorn-jsx "^5.0.0" + eslint-visitor-keys "^1.0.0" + +espree@^9.3.1: + version "9.6.1" + resolved "https://registry.npmmirror.com/espree/-/espree-9.6.1.tgz" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== + dependencies: + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +esprima@^2.6.0: + version "2.7.3" + resolved "https://registry.npmmirror.com/esprima/-/esprima-2.7.3.tgz" + integrity sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A== + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.0.0, esquery@^1.0.1, esquery@^1.4.0: + version "1.6.0" + resolved "https://registry.npmmirror.com/esquery/-/esquery-1.6.0.tgz" + integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.1.0, esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +event-emitter@^0.3.5, event-emitter@~0.3.5: + version "0.3.5" + resolved "https://registry.npmmirror.com/event-emitter/-/event-emitter-0.3.5.tgz" + integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== + dependencies: + d "1" + es5-ext "~0.10.14" + +event-pubsub@4.3.0: + version "4.3.0" + resolved "https://registry.npmmirror.com/event-pubsub/-/event-pubsub-4.3.0.tgz" + integrity sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ== + +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^3.0.0, events@^3.2.0: + version "3.3.0" + resolved "https://registry.npmmirror.com/events/-/events-3.3.0.tgz" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +eventsource@^2.0.2: + version "2.0.2" + resolved "https://registry.npmmirror.com/eventsource/-/eventsource-2.0.2.tgz" + integrity sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA== + +eventsource@0.1.6: + version "0.1.6" + resolved "https://registry.npmmirror.com/eventsource/-/eventsource-0.1.6.tgz" + integrity sha512-bbB5tEuvC+SuRUG64X8ghvjgiRniuA4WlehWbFnoN4z6TxDXpyX+BMHF7rMgZAqoe+EbyNRUbHN0uuP9phy5jQ== + dependencies: + original ">=0.0.5" + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.npmmirror.com/execa/-/execa-0.7.0.tgz" + integrity sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw== + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^0.8.0: + version "0.8.0" + resolved "https://registry.npmmirror.com/execa/-/execa-0.8.0.tgz" + integrity sha512-zDWS+Rb1E8BlqqhALSt9kUhss8Qq4nN3iof3gsOdyINksElaPyNBtKUMTR62qhvgVWR0CqCX7sdnKe4MnUbFEA== + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/execa/-/execa-1.0.0.tgz" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^3.3.0: + version "3.4.0" + resolved "https://registry.npmmirror.com/execa/-/execa-3.4.0.tgz" + integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + p-finally "^2.0.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.npmmirror.com/execa/-/execa-5.1.1.tgz" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.npmmirror.com/exit/-/exit-0.1.2.tgz" + integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.npmmirror.com/expand-brackets/-/expand-brackets-2.1.4.tgz" + integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expect@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/expect/-/expect-27.5.1.tgz" + integrity sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw== + dependencies: + "@jest/types" "^27.5.1" + jest-get-type "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + +express@^4.16.2, express@^4.16.3, express@^4.17.1: + version "4.21.2" + resolved "https://registry.npmmirror.com/express/-/express-4.21.2.tgz" + integrity sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.3" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.7.1" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~2.0.0" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.3.1" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.3" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.12" + proxy-addr "~2.0.7" + qs "6.13.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.19.0" + serve-static "1.16.2" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +ext@^1.7.0: + version "1.7.0" + resolved "https://registry.npmmirror.com/ext/-/ext-1.7.0.tgz" + integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== + dependencies: + type "^2.7.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz" + integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz" + integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +external-editor@^2.0.4: + version "2.2.0" + resolved "https://registry.npmmirror.com/external-editor/-/external-editor-2.2.0.tgz" + integrity sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A== + dependencies: + chardet "^0.4.0" + iconv-lite "^0.4.17" + tmp "^0.0.33" + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.npmmirror.com/external-editor/-/external-editor-3.1.0.tgz" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.npmmirror.com/extglob/-/extglob-2.0.4.tgz" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extract-text-webpack-plugin@^3.0.1: + version "3.0.2" + resolved "https://registry.npmmirror.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz" + integrity sha512-bt/LZ4m5Rqt/Crl2HiKuAl/oqg0psx1tsTLkvWbJen1CtD+fftkZhMaQ9HOtY2gWsl2Wq+sABmMVi9z3DhKWQQ== + dependencies: + async "^2.4.1" + loader-utils "^1.1.0" + schema-utils "^0.3.0" + webpack-sources "^1.0.1" + +extsprintf@^1.2.0, extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.npmmirror.com/extsprintf/-/extsprintf-1.3.0.tgz" + integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== + +fast-deep-equal@^1.0.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz" + integrity sha512-fueX787WZKCV0Is4/T2cyAdM4+x1S3MXXOAhavE1ys/W42SHAPacLTQhucja22QBYrfGw50M2sRiXPtTGv9Ymw== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^2.2.6: + version "2.2.7" + resolved "https://registry.npmmirror.com/fast-glob/-/fast-glob-2.2.7.tgz" + integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== + dependencies: + "@mrmlnc/readdir-enhanced" "^2.2.1" + "@nodelib/fs.stat" "^1.1.2" + glob-parent "^3.1.0" + is-glob "^4.0.0" + merge2 "^1.2.3" + micromatch "^3.1.10" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fast-uri@^3.0.1: + version "3.0.3" + resolved "https://registry.npmmirror.com/fast-uri/-/fast-uri-3.0.3.tgz" + integrity sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw== + +fastparse@^1.1.2: + version "1.1.2" + resolved "https://registry.npmmirror.com/fastparse/-/fastparse-1.1.2.tgz" + integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== + +faye-websocket@^0.10.0: + version "0.10.0" + resolved "https://registry.npmmirror.com/faye-websocket/-/faye-websocket-0.10.0.tgz" + integrity sha512-Xhj93RXbMSq8urNCUq4p9l0P6hnySJ/7YNRhYNug0bLOuii7pKO7xQFb5mx9xZXWCar88pLPb805PvUkwrLZpQ== + dependencies: + websocket-driver ">=0.5.1" + +faye-websocket@^0.11.3, faye-websocket@^0.11.4: + version "0.11.4" + resolved "https://registry.npmmirror.com/faye-websocket/-/faye-websocket-0.11.4.tgz" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + dependencies: + websocket-driver ">=0.5.1" + +faye-websocket@~0.11.0: + version "0.11.4" + resolved "https://registry.npmmirror.com/faye-websocket/-/faye-websocket-0.11.4.tgz" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + dependencies: + websocket-driver ">=0.5.1" + +fb-watchman@^2.0.0: + version "2.0.2" + resolved "https://registry.npmmirror.com/fb-watchman/-/fb-watchman-2.0.2.tgz" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== + dependencies: + bser "2.1.1" + +fecha@~2.3.3: + version "2.3.3" + resolved "https://registry.npmmirror.com/fecha/-/fecha-2.3.3.tgz" + integrity sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg== + +fflate@^0.8.1: + version "0.8.2" + resolved "https://registry.npmmirror.com/fflate/-/fflate-0.8.2.tgz" + integrity sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A== + +figgy-pudding@^3.5.1: + version "3.5.2" + resolved "https://registry.npmmirror.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz" + integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/figures/-/figures-2.0.0.tgz" + integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA== + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz" + integrity sha512-uXP/zGzxxFvFfcZGgBIwotm+Tdc55ddPAzF7iHshP4YGaXMww7rSF9peD9D1sui5ebONg5UobsZv+FfgEpGv/w== + dependencies: + flat-cache "^1.2.1" + object-assign "^4.0.1" + +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== + dependencies: + flat-cache "^2.0.1" + +file-loader@^1.1.4: + version "1.1.11" + resolved "https://registry.npmmirror.com/file-loader/-/file-loader-1.1.11.tgz" + integrity sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg== + dependencies: + loader-utils "^1.0.2" + schema-utils "^0.4.5" + +file-loader@^3.0.1: + version "3.0.1" + resolved "https://registry.npmmirror.com/file-loader/-/file-loader-3.0.1.tgz" + integrity sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw== + dependencies: + loader-utils "^1.0.2" + schema-utils "^1.0.0" + +filesize@^3.6.1: + version "3.6.1" + resolved "https://registry.npmmirror.com/filesize/-/filesize-3.6.1.tgz" + integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/fill-range/-/fill-range-4.0.0.tgz" + integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.3.1: + version "1.3.1" + resolved "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.3.1.tgz" + integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ== + dependencies: + debug "2.6.9" + encodeurl "~2.0.0" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +find-cache-dir@^0.1.1: + version "0.1.1" + resolved "https://registry.npmmirror.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz" + integrity sha512-Z9XSBoNE7xQiV6MSgPuCfyMokH2K7JdpRkOYE1+mu3d4BFJtx3GW+f6Bo4q8IX6rlf5MYbLBKW0pjl2cWdkm2A== + dependencies: + commondir "^1.0.1" + mkdirp "^0.5.1" + pkg-dir "^1.0.0" + +find-cache-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz" + integrity sha512-46TFiBOzX7xq/PcSWfFwkyjpemdRnMe31UQF+os0y+1W3k95f6R4SEt02Hj4p3X0Mir9gfrkmOtshFidS0VPUg== + dependencies: + commondir "^1.0.1" + make-dir "^1.0.0" + pkg-dir "^2.0.0" + +find-cache-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== + dependencies: + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" + +find-cache-dir@^3.0.0, find-cache-dir@^3.3.1: + version "3.3.2" + resolved "https://registry.npmmirror.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz" + integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + +find-cache-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/find-cache-dir/-/find-cache-dir-4.0.0.tgz" + integrity sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg== + dependencies: + common-path-prefix "^3.0.0" + pkg-dir "^7.0.0" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.npmmirror.com/find-up/-/find-up-1.1.2.tgz" + integrity sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA== + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/find-up/-/find-up-2.1.0.tgz" + integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== + dependencies: + locate-path "^2.0.0" + +find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/find-up/-/find-up-2.1.0.tgz" + integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== + dependencies: + locate-path "^2.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/find-up/-/find-up-3.0.0.tgz" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^6.3.0: + version "6.3.0" + resolved "https://registry.npmmirror.com/find-up/-/find-up-6.3.0.tgz" + integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== + dependencies: + locate-path "^7.1.0" + path-exists "^5.0.0" + +flat-cache@^1.2.1: + version "1.3.4" + resolved "https://registry.npmmirror.com/flat-cache/-/flat-cache-1.3.4.tgz" + integrity sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg== + dependencies: + circular-json "^0.3.1" + graceful-fs "^4.1.2" + rimraf "~2.6.2" + write "^0.2.1" + +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/flat-cache/-/flat-cache-2.0.1.tgz" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flatted@^2.0.0: + version "2.0.2" + resolved "https://registry.npmmirror.com/flatted/-/flatted-2.0.2.tgz" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== + +flatten@^1.0.2: + version "1.0.3" + resolved "https://registry.npmmirror.com/flatten/-/flatten-1.0.3.tgz" + integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== + +flush-write-stream@^1.0.0: + version "1.1.1" + resolved "https://registry.npmmirror.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + +flv.js@^1.6.2: + version "1.6.2" + resolved "https://registry.npmmirror.com/flv.js/-/flv.js-1.6.2.tgz" + integrity sha512-xre4gUbX1MPtgQRKj2pxJENp/RnaHaxYvy3YToVVCrSmAWUu85b9mug6pTXF6zakUjNP2lFWZ1rkSX7gxhB/2A== + dependencies: + es6-promise "^4.2.8" + webworkify-webpack "^2.1.5" + +fmin@0.0.2: + version "0.0.2" + resolved "https://registry.npmmirror.com/fmin/-/fmin-0.0.2.tgz" + integrity sha512-sSi6DzInhl9d8yqssDfGZejChO8d2bAGIpysPsvYsxFe898z89XhCZg6CPNV3nhUhFefeC/AXZK2bAJxlBjN6A== + dependencies: + contour_plot "^0.0.1" + json2module "^0.0.3" + rollup "^0.25.8" + tape "^4.5.1" + uglify-js "^2.6.2" + +follow-redirects@^1.0.0, follow-redirects@1.5.10: + version "1.5.10" + resolved "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.5.10.tgz" + integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== + dependencies: + debug "=3.1.0" + +for-each@^0.3.3, for-each@~0.3.3: + version "0.3.3" + resolved "https://registry.npmmirror.com/for-each/-/for-each-0.3.3.tgz" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/for-in/-/for-in-1.0.2.tgz" + integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.npmmirror.com/forever-agent/-/forever-agent-0.6.1.tgz" + integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== + +form-data@^3.0.0: + version "3.0.2" + resolved "https://registry.npmmirror.com/form-data/-/form-data-3.0.2.tgz" + integrity sha512-sJe+TQb2vIaIyO783qN6BlMYWMw3WBOHA1Ay2qxsnjuafEOQFJ2JakedOQirT6D5XPRxDvS7AHYyem9fTpb4LQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.npmmirror.com/form-data/-/form-data-2.3.3.tgz" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.npmmirror.com/fragment-cache/-/fragment-cache-0.2.1.tgz" + integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.npmmirror.com/from2/-/from2-2.3.0.tgz" + integrity sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g== + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-extra@^7.0.1: + version "7.0.1" + resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-7.0.1.tgz" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/fs-minipass/-/fs-minipass-2.1.0.tgz" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.npmmirror.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz" + integrity sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA== + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +function.prototype.name@^1.1.6, function.prototype.name@^1.1.8: + version "1.1.8" + resolved "https://registry.npmmirror.com/function.prototype.name/-/function.prototype.name-1.1.8.tgz" + integrity sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.3" + define-properties "^1.2.1" + functions-have-names "^1.2.3" + hasown "^2.0.2" + is-callable "^1.2.7" + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" + integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== + +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.npmmirror.com/functions-have-names/-/functions-have-names-1.2.3.tgz" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^1.0.1: + version "1.0.3" + resolved "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-1.0.3.tgz" + integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== + +get-caller-file@^2.0.1, get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6: + version "1.2.6" + resolved "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.6.tgz" + integrity sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA== + dependencies: + call-bind-apply-helpers "^1.0.1" + dunder-proto "^1.0.0" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + function-bind "^1.1.2" + gopd "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + math-intrinsics "^1.0.0" + +get-intrinsic@^1.2.7, get-intrinsic@^1.3.0: + version "1.3.0" + resolved "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz" + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== + dependencies: + call-bind-apply-helpers "^1.0.2" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.1.1" + function-bind "^1.1.2" + get-proto "^1.0.1" + gopd "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + math-intrinsics "^1.1.0" + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.npmmirror.com/get-package-type/-/get-package-type-0.1.0.tgz" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-proto@^1.0.0, get-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz" + integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== + dependencies: + dunder-proto "^1.0.1" + es-object-atoms "^1.0.0" + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.npmmirror.com/get-stdin/-/get-stdin-4.0.1.tgz" + integrity sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw== + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/get-stream/-/get-stream-3.0.0.tgz" + integrity sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ== + +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.0.0: + version "5.2.0" + resolved "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +get-symbol-description@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/get-symbol-description/-/get-symbol-description-1.1.0.tgz" + integrity sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg== + dependencies: + call-bound "^1.0.3" + es-errors "^1.3.0" + get-intrinsic "^1.2.6" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.npmmirror.com/get-value/-/get-value-2.0.6.tgz" + integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.npmmirror.com/getpass/-/getpass-0.1.7.tgz" + integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== + dependencies: + assert-plus "^1.0.0" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-3.1.0.tgz" + integrity sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA== + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-to-regexp@^0.3.0: + version "0.3.0" + resolved "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz" + integrity sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig== + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@~7.2.3: + version "7.2.3" + resolved "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global@^4.3.0, global@^4.3.1, global@^4.4.0, global@~4.4.0: + version "4.4.0" + resolved "https://registry.npmmirror.com/global/-/global-4.4.0.tgz" + integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== + dependencies: + min-document "^2.19.0" + process "^0.11.10" + +global@~4.3.0: + version "4.3.2" + resolved "https://registry.npmmirror.com/global/-/global-4.3.2.tgz" + integrity sha512-/4AybdwIDU4HkCUbJkZdWpe4P6vuw/CUtu+0I1YlLIPe7OlUO7KNJ+q/rO70CW2/NW6Jc6I62++Hzsf5Alu6rQ== + dependencies: + min-document "^2.19.0" + process "~0.5.1" + +global@4.3.2: + version "4.3.2" + resolved "https://registry.npmmirror.com/global/-/global-4.3.2.tgz" + integrity sha512-/4AybdwIDU4HkCUbJkZdWpe4P6vuw/CUtu+0I1YlLIPe7OlUO7KNJ+q/rO70CW2/NW6Jc6I62++Hzsf5Alu6rQ== + dependencies: + min-document "^2.19.0" + process "~0.5.1" + +globals@^11.0.1, globals@^11.1.0, globals@^11.7.0: + version "11.12.0" + resolved "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.npmmirror.com/globals/-/globals-9.18.0.tgz" + integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== + +globalthis@^1.0.4: + version "1.0.4" + resolved "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.4.tgz" + integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== + dependencies: + define-properties "^1.2.1" + gopd "^1.0.1" + +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.npmmirror.com/globby/-/globby-6.1.0.tgz" + integrity sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw== + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +globby@^7.1.1: + version "7.1.1" + resolved "https://registry.npmmirror.com/globby/-/globby-7.1.1.tgz" + integrity sha512-yANWAN2DUcBtuus5Cpd+SKROzXHs2iVXFZt/Ykrfz6SAXqacLX25NZpltE+39ceMexYF4TtEadjuSTw8+3wX4g== + dependencies: + array-union "^1.0.1" + dir-glob "^2.0.0" + glob "^7.1.2" + ignore "^3.3.5" + pify "^3.0.0" + slash "^1.0.0" + +globby@^9.2.0: + version "9.2.0" + resolved "https://registry.npmmirror.com/globby/-/globby-9.2.0.tgz" + integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg== + dependencies: + "@types/glob" "^7.1.1" + array-union "^1.0.2" + dir-glob "^2.2.2" + fast-glob "^2.2.6" + glob "^7.1.3" + ignore "^4.0.3" + pify "^4.0.1" + slash "^2.0.0" + +good-listener@^1.2.2: + version "1.2.2" + resolved "https://registry.npmmirror.com/good-listener/-/good-listener-1.2.2.tgz" + integrity sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw== + dependencies: + delegate "^3.1.2" + +gopd@^1.0.1, gopd@^1.2.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz" + integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== + +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.11, graceful-fs@^4.2.2, graceful-fs@^4.2.4, graceful-fs@^4.2.9: + version "4.2.11" + resolved "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +graphlib@^2.1.8: + version "2.1.8" + resolved "https://registry.npmmirror.com/graphlib/-/graphlib-2.1.8.tgz" + integrity sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A== + dependencies: + lodash "^4.17.15" + +gzip-size@^5.0.0: + version "5.1.1" + resolved "https://registry.npmmirror.com/gzip-size/-/gzip-size-5.1.1.tgz" + integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA== + dependencies: + duplexer "^0.1.1" + pify "^4.0.1" + +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/handle-thing/-/handle-thing-2.0.1.tgz" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/har-schema/-/har-schema-2.0.0.tgz" + integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.npmmirror.com/har-validator/-/har-validator-5.1.5.tgz" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/has-ansi/-/has-ansi-2.0.0.tgz" + integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== + dependencies: + ansi-regex "^2.0.0" + +has-bigints@^1.0.2: + version "1.1.0" + resolved "https://registry.npmmirror.com/has-bigints/-/has-bigints-1.1.0.tgz" + integrity sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg== + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/has-flag/-/has-flag-1.0.0.tgz" + integrity sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA== + +has-flag@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/has-flag/-/has-flag-2.0.0.tgz" + integrity sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.2.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/has-proto/-/has-proto-1.2.0.tgz" + integrity sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ== + dependencies: + dunder-proto "^1.0.0" + +has-symbols@^1.0.3, has-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz" + integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== + +has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.npmmirror.com/has-value/-/has-value-0.3.1.tgz" + integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/has-value/-/has-value-1.0.0.tgz" + integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.npmmirror.com/has-values/-/has-values-0.1.4.tgz" + integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/has-values/-/has-values-1.0.0.tgz" + integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.0, has@^1.0.1, has@~1.0.3: + version "1.0.4" + resolved "https://registry.npmmirror.com/has/-/has-1.0.4.tgz" + integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ== + +hash-base@^3.0.0, hash-base@~3.0, hash-base@~3.0.4: + version "3.0.5" + resolved "https://registry.npmmirror.com/hash-base/-/hash-base-3.0.5.tgz" + integrity sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg== + dependencies: + inherits "^2.0.4" + safe-buffer "^5.2.1" + +hash-sum@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz" + integrity sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA== + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.npmmirror.com/hash.js/-/hash.js-1.1.7.tgz" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +he@^1.2.0, he@1.2.x: + version "1.2.0" + resolved "https://registry.npmmirror.com/he/-/he-1.2.0.tgz" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz" + integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== + +highlight.js@^10.7.1: + version "10.7.3" + resolved "https://registry.npmmirror.com/highlight.js/-/highlight.js-10.7.3.tgz" + integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz" + integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz" + integrity sha512-ycURW7oUxE2sNiPVw1HVEFsW+ecOpJ5zaj7eC0RlwhibhRBod20muUN8qu/gzx956YrLolVvs1MTXwKgC2rVEg== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +hoopy@^0.1.4: + version "0.1.4" + resolved "https://registry.npmmirror.com/hoopy/-/hoopy-0.1.4.tgz" + integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.npmmirror.com/hpack.js/-/hpack.js-2.1.6.tgz" + integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/hsl-regex/-/hsl-regex-1.0.0.tgz" + integrity sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A== + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/hsla-regex/-/hsla-regex-1.0.0.tgz" + integrity sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA== + +html-comment-regex@^1.1.0: + version "1.1.2" + resolved "https://registry.npmmirror.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz" + integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== + +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + dependencies: + whatwg-encoding "^1.0.5" + +html-entities@^1.2.0, html-entities@^1.3.1: + version "1.4.0" + resolved "https://registry.npmmirror.com/html-entities/-/html-entities-1.4.0.tgz" + integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.npmmirror.com/html-escaper/-/html-escaper-2.0.2.tgz" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +html-minifier-terser@^5.0.1: + version "5.1.1" + resolved "https://registry.npmmirror.com/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz" + integrity sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg== + dependencies: + camel-case "^4.1.1" + clean-css "^4.2.3" + commander "^4.1.1" + he "^1.2.0" + param-case "^3.0.3" + relateurl "^0.2.7" + terser "^4.6.3" + +html-minifier@^3.2.3: + version "3.5.21" + resolved "https://registry.npmmirror.com/html-minifier/-/html-minifier-3.5.21.tgz" + integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA== + dependencies: + camel-case "3.0.x" + clean-css "4.2.x" + commander "2.17.x" + he "1.2.x" + param-case "2.1.x" + relateurl "0.2.x" + uglify-js "3.4.x" + +html-tags@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/html-tags/-/html-tags-2.0.0.tgz" + integrity sha512-+Il6N8cCo2wB/Vd3gqy/8TZhTD3QvcVeQLCnZiGkGCH3JP28IgGAY41giccp2W4R3jfyJPAP318FQTa1yU7K7g== + +html-webpack-plugin@^3.2.0: + version "3.2.0" + resolved "https://registry.npmmirror.com/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz" + integrity sha512-Br4ifmjQojUP4EmHnRBoUIYcZ9J7M4bTMcm7u6xoIAIuq2Nte4TzXX0533owvkQKQD1WeMTTTyD4Ni4QKxS0Bg== + dependencies: + html-minifier "^3.2.3" + loader-utils "^0.2.16" + lodash "^4.17.3" + pretty-error "^2.0.2" + tapable "^1.0.0" + toposort "^1.0.0" + util.promisify "1.0.0" + +html-webpack-plugin@^4.2.0, html-webpack-plugin@>=2.26.0: + version "4.5.2" + resolved "https://registry.npmmirror.com/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz" + integrity sha512-q5oYdzjKUIPQVjOosjgvCHQOv9Ett9CYYHlgvJeXG0qQvdSojnBq4vAdQBwn1+yGveAwHCoe/rMR86ozX3+c2A== + dependencies: + "@types/html-minifier-terser" "^5.0.0" + "@types/tapable" "^1.0.5" + "@types/webpack" "^4.41.8" + html-minifier-terser "^5.0.1" + loader-utils "^1.2.3" + lodash "^4.17.20" + pretty-error "^2.1.1" + tapable "^1.1.3" + util.promisify "1.0.0" + +html2canvas@^1.0.0-rc.5, html2canvas@^1.4.1: + version "1.4.1" + resolved "https://registry.npmmirror.com/html2canvas/-/html2canvas-1.4.1.tgz" + integrity sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA== + dependencies: + css-line-break "^2.1.0" + text-segmentation "^1.0.3" + +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-6.1.0.tgz" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + +htmlparser2@^8.0.1: + version "8.0.2" + resolved "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-8.0.2.tgz" + integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.0.1" + entities "^4.4.0" + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.npmmirror.com/http-deceiver/-/http-deceiver-1.2.7.tgz" + integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.npmmirror.com/http-errors/-/http-errors-1.6.3.tgz" + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-parser-js@>=0.5.1: + version "0.5.8" + resolved "https://registry.npmmirror.com/http-parser-js/-/http-parser-js-0.5.8.tgz" + integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== + +http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.npmmirror.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + +http-proxy-middleware@^0.19.1: + version "0.19.2" + resolved "https://registry.npmmirror.com/http-proxy-middleware/-/http-proxy-middleware-0.19.2.tgz" + integrity sha512-aYk1rTKqLTus23X3L96LGNCGNgWpG4cG0XoZIT1GUPhhulEHX/QalnO6Vbo+WmKWi4AL2IidjuC0wZtbpg0yhQ== + dependencies: + http-proxy "^1.18.1" + is-glob "^4.0.0" + lodash "^4.17.11" + micromatch "^3.1.10" + +http-proxy-middleware@0.19.1: + version "0.19.1" + resolved "https://registry.npmmirror.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz" + integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== + dependencies: + http-proxy "^1.17.0" + is-glob "^4.0.0" + lodash "^4.17.11" + micromatch "^3.1.10" + +http-proxy@^1.17.0, http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.npmmirror.com/http-proxy/-/http-proxy-1.18.1.tgz" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/http-signature/-/http-signature-1.2.0.tgz" + integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/https-browserify/-/https-browserify-1.0.0.tgz" + integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg== + +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/human-signals/-/human-signals-1.1.1.tgz" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@0.4, iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +icss-replace-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz" + integrity sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg== + +icss-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/icss-utils/-/icss-utils-2.1.0.tgz" + integrity sha512-bsVoyn/1V4R1kYYjLcWLedozAM4FClZUdjE9nIr8uWY7xs78y9DATgwz2wGU7M+7z55KenmmTkN2DVJ7bqzjAA== + dependencies: + postcss "^6.0.1" + +ieee754@^1.1.13, ieee754@^1.1.4: + version "1.2.1" + resolved "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.npmmirror.com/iferr/-/iferr-0.1.5.tgz" + integrity sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA== + +ignore@^3.3.3, ignore@^3.3.5: + version "3.3.10" + resolved "https://registry.npmmirror.com/ignore/-/ignore-3.3.10.tgz" + integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== + +ignore@^4.0.3: + version "4.0.6" + resolved "https://registry.npmmirror.com/ignore/-/ignore-4.0.6.tgz" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.npmmirror.com/ignore/-/ignore-4.0.6.tgz" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.0.2: + version "5.3.2" + resolved "https://registry.npmmirror.com/ignore/-/ignore-5.3.2.tgz" + integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== + +image-size@~0.5.0: + version "0.5.5" + resolved "https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz" + integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ== + +import-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/import-cwd/-/import-cwd-2.1.0.tgz" + integrity sha512-Ew5AZzJQFqrOV5BTW3EIoHAnoie1LojZLXKcCQ/yTRyVZosBhK1x1ViYjHGf5pAFOq8ZyChZp6m/fSN7pJyZtg== + dependencies: + import-from "^2.1.0" + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/import-fresh/-/import-fresh-2.0.0.tgz" + integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-fresh@^3.0.0: + version "3.3.1" + resolved "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.1.tgz" + integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-from@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/import-from/-/import-from-2.1.0.tgz" + integrity sha512-0vdnLL2wSGnhlRmzHJAg5JHjt1l2vYhzJ7tNLGbeVg0fse56tpGaH0uzH+r9Slej+BSXXEHvBKDEnVSLLE9/+w== + dependencies: + resolve-from "^3.0.0" + +import-local@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/import-local/-/import-local-1.0.0.tgz" + integrity sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ== + dependencies: + pkg-dir "^2.0.0" + resolve-cwd "^2.0.0" + +import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/import-local/-/import-local-2.0.0.tgz" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + +import-local@^3.0.2: + version "3.2.0" + resolved "https://registry.npmmirror.com/import-local/-/import-local-3.2.0.tgz" + integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/indent-string/-/indent-string-2.1.0.tgz" + integrity sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg== + dependencies: + repeating "^2.0.0" + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/indent-string/-/indent-string-4.0.0.tgz" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/indexes-of/-/indexes-of-1.0.1.tgz" + integrity sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA== + +individual@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/individual/-/individual-2.0.0.tgz" + integrity sha512-pWt8hBCqJsUWI/HtcfWod7+N9SgAqyPEaF7JQjwzjn5vGrpg6aQ5qeAFQ7dx//UH4J1O+7xqew+gCeeFt6xN/g== + +infer-owner@^1.0.3, infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.npmmirror.com/infer-owner/-/infer-owner-1.0.4.tgz" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@~2.0.4, inherits@2, inherits@2.0.4: + version "2.0.4" + resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@~2.0.1, inherits@2.0.3: + version "2.0.3" + resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.3.tgz" + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== + +inquirer@^3.0.6: + version "3.3.0" + resolved "https://registry.npmmirror.com/inquirer/-/inquirer-3.3.0.tgz" + integrity sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ== + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^2.0.4" + figures "^2.0.0" + lodash "^4.3.0" + mute-stream "0.0.7" + run-async "^2.2.0" + rx-lite "^4.0.8" + rx-lite-aggregates "^4.0.8" + string-width "^2.1.0" + strip-ansi "^4.0.0" + through "^2.3.6" + +inquirer@^6.2.2: + version "6.5.2" + resolved "https://registry.npmmirror.com/inquirer/-/inquirer-6.5.2.tgz" + integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== + dependencies: + ansi-escapes "^3.2.0" + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^2.0.0" + lodash "^4.17.12" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.4.0" + string-width "^2.1.0" + strip-ansi "^5.1.0" + through "^2.3.6" + +internal-ip@^4.3.0: + version "4.3.0" + resolved "https://registry.npmmirror.com/internal-ip/-/internal-ip-4.3.0.tgz" + integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== + dependencies: + default-gateway "^4.2.0" + ipaddr.js "^1.9.0" + +internal-ip@1.2.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/internal-ip/-/internal-ip-1.2.0.tgz" + integrity sha512-DzGfTasXPmwizQP4XV2rR6r2vp8TjlOpMnJqG9Iy2i1pl1lkZdZj5rSpIc7YFGX2nS46PPgAGEyT+Q5hE2FB2g== + dependencies: + meow "^3.3.0" + +internal-slot@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/internal-slot/-/internal-slot-1.1.0.tgz" + integrity sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw== + dependencies: + es-errors "^1.3.0" + hasown "^2.0.2" + side-channel "^1.1.0" + +internmap@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/internmap/-/internmap-1.0.1.tgz" + integrity sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw== + +interpret@^1.0.0: + version "1.4.0" + resolved "https://registry.npmmirror.com/interpret/-/interpret-1.4.0.tgz" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + +intersperse@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/intersperse/-/intersperse-1.0.0.tgz" + integrity sha512-LGcfug7OTeWkaQ8PEq8XbTy9Jl6uCNg8DrPnQUmwxSY8UETj1Y+LLmpdD0qHdEj6KVchuH3BE3ZzIXQ1t3oFUw== + +invariant@^2.2.2: + version "2.2.4" + resolved "https://registry.npmmirror.com/invariant/-/invariant-2.2.4.tgz" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/invert-kv/-/invert-kv-1.0.0.tgz" + integrity sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ== + +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/ip-regex/-/ip-regex-2.1.0.tgz" + integrity sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw== + +ip@^1.1.0, ip@^1.1.5: + version "1.1.9" + resolved "https://registry.npmmirror.com/ip/-/ip-1.1.9.tgz" + integrity sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ== + +ipaddr.js@^1.9.0, ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz" + integrity sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg== + +is-absolute-url@^3.0.3: + version "3.0.3" + resolved "https://registry.npmmirror.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz" + integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== + +is-accessor-descriptor@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz" + integrity sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA== + dependencies: + hasown "^2.0.0" + +is-arguments@^1.1.1: + version "1.2.0" + resolved "https://registry.npmmirror.com/is-arguments/-/is-arguments-1.2.0.tgz" + integrity sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA== + dependencies: + call-bound "^1.0.2" + has-tostringtag "^1.0.2" + +is-array-buffer@^3.0.4, is-array-buffer@^3.0.5: + version "3.0.5" + resolved "https://registry.npmmirror.com/is-array-buffer/-/is-array-buffer-3.0.5.tgz" + integrity sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.3" + get-intrinsic "^1.2.6" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.3.2.tgz" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-async-function@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/is-async-function/-/is-async-function-2.0.0.tgz" + integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA== + dependencies: + has-tostringtag "^1.0.0" + +is-bigint@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/is-bigint/-/is-bigint-1.1.0.tgz" + integrity sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ== + dependencies: + has-bigints "^1.0.2" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-1.0.1.tgz" + integrity sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q== + dependencies: + binary-extensions "^1.0.0" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.2.1: + version "1.2.1" + resolved "https://registry.npmmirror.com/is-boolean-object/-/is-boolean-object-1.2.1.tgz" + integrity sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng== + dependencies: + call-bound "^1.0.2" + has-tostringtag "^1.0.2" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-buffer@^2.0.2: + version "2.0.5" + resolved "https://registry.npmmirror.com/is-buffer/-/is-buffer-2.0.5.tgz" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + +is-buffer@~1.1.6: + version "1.1.6" + resolved "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-callable@^1.1.3, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.npmmirror.com/is-callable/-/is-callable-1.2.7.tgz" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-ci@^1.0.10: + version "1.2.1" + resolved "https://registry.npmmirror.com/is-ci/-/is-ci-1.2.1.tgz" + integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== + dependencies: + ci-info "^1.5.0" + +is-color-stop@^1.0.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/is-color-stop/-/is-color-stop-1.1.0.tgz" + integrity sha512-H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA== + dependencies: + css-color-names "^0.0.4" + hex-color-regex "^1.1.0" + hsl-regex "^1.0.0" + hsla-regex "^1.0.0" + rgb-regex "^1.0.1" + rgba-regex "^1.0.0" + +is-core-module@^2.13.0, is-core-module@^2.15.1, is-core-module@^2.16.0: + version "2.16.1" + resolved "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.16.1.tgz" + integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== + dependencies: + hasown "^2.0.2" + +is-data-descriptor@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz" + integrity sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw== + dependencies: + hasown "^2.0.0" + +is-data-view@^1.0.1, is-data-view@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/is-data-view/-/is-data-view-1.0.2.tgz" + integrity sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw== + dependencies: + call-bound "^1.0.2" + get-intrinsic "^1.2.6" + is-typed-array "^1.1.13" + +is-date-object@^1.0.5, is-date-object@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/is-date-object/-/is-date-object-1.1.0.tgz" + integrity sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg== + dependencies: + call-bound "^1.0.2" + has-tostringtag "^1.0.2" + +is-descriptor@^0.1.0: + version "0.1.7" + resolved "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.7.tgz" + integrity sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg== + dependencies: + is-accessor-descriptor "^1.0.1" + is-data-descriptor "^1.0.1" + +is-descriptor@^1.0.0: + version "1.0.3" + resolved "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.3.tgz" + integrity sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw== + dependencies: + is-accessor-descriptor "^1.0.1" + is-data-descriptor "^1.0.1" + +is-descriptor@^1.0.2: + version "1.0.3" + resolved "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.3.tgz" + integrity sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw== + dependencies: + is-accessor-descriptor "^1.0.1" + is-data-descriptor "^1.0.1" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.npmmirror.com/is-directory/-/is-directory-0.3.1.tgz" + integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== + +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.npmmirror.com/is-docker/-/is-docker-2.2.1.tgz" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.npmmirror.com/is-extendable/-/is-extendable-0.1.1.tgz" + integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-finalizationregistry@^1.1.0: + version "1.1.1" + resolved "https://registry.npmmirror.com/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz" + integrity sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg== + dependencies: + call-bound "^1.0.3" + +is-finite@^1.0.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/is-finite/-/is-finite-1.1.0.tgz" + integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz" + integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" + integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-function@^1.0.1: + version "1.0.2" + resolved "https://registry.npmmirror.com/is-function/-/is-function-1.0.2.tgz" + integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-generator-function@^1.0.10: + version "1.0.10" + resolved "https://registry.npmmirror.com/is-generator-function/-/is-generator-function-1.0.10.tgz" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/is-glob/-/is-glob-3.1.0.tgz" + integrity sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw== + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/is-interactive/-/is-interactive-1.0.0.tgz" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-map@^2.0.3: + version "2.0.3" + resolved "https://registry.npmmirror.com/is-map/-/is-map-2.0.3.tgz" + integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== + +is-mobile@^2.2.1: + version "2.2.2" + resolved "https://registry.npmmirror.com/is-mobile/-/is-mobile-2.2.2.tgz" + integrity sha512-wW/SXnYJkTjs++tVK5b6kVITZpAZPtUrt9SF80vvxGiF/Oywal+COk1jlRkiVq15RFNEQKQY31TkV24/1T5cVg== + +is-nan@^1.3.0: + version "1.3.2" + resolved "https://registry.npmmirror.com/is-nan/-/is-nan-1.3.2.tgz" + integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + +is-negative-zero@^2.0.0: + version "2.0.3" + resolved "https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz" + integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== + +is-number-object@^1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/is-number-object/-/is-number-object-1.1.1.tgz" + integrity sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw== + dependencies: + call-bound "^1.0.3" + has-tostringtag "^1.0.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/is-number/-/is-number-3.0.0.tgz" + integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== + dependencies: + kind-of "^3.0.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/is-obj/-/is-obj-2.0.0.tgz" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz" + integrity sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw== + +is-path-cwd@^2.0.0: + version "2.2.0" + resolved "https://registry.npmmirror.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + +is-path-in-cwd@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz" + integrity sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ== + dependencies: + is-path-inside "^1.0.0" + +is-path-in-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz" + integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== + dependencies: + is-path-inside "^2.1.0" + +is-path-inside@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/is-path-inside/-/is-path-inside-1.0.1.tgz" + integrity sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g== + dependencies: + path-is-inside "^1.0.1" + +is-path-inside@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/is-path-inside/-/is-path-inside-2.1.0.tgz" + integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== + dependencies: + path-is-inside "^1.0.2" + +is-plain-obj@^1.0.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz" + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-potential-custom-element-name@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz" + integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== + +is-regex@^1.1.4, is-regex@~1.1.4: + version "1.1.4" + resolved "https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-regex@^1.2.1: + version "1.2.1" + resolved "https://registry.npmmirror.com/is-regex/-/is-regex-1.2.1.tgz" + integrity sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g== + dependencies: + call-bound "^1.0.2" + gopd "^1.2.0" + has-tostringtag "^1.0.2" + hasown "^2.0.2" + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/is-resolvable/-/is-resolvable-1.1.0.tgz" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + +is-set@^2.0.3: + version "2.0.3" + resolved "https://registry.npmmirror.com/is-set/-/is-set-2.0.3.tgz" + integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== + +is-shared-array-buffer@^1.0.4: + version "1.0.4" + resolved "https://registry.npmmirror.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz" + integrity sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A== + dependencies: + call-bound "^1.0.3" + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/is-stream/-/is-stream-1.1.0.tgz" + integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.7, is-string@^1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/is-string/-/is-string-1.1.1.tgz" + integrity sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA== + dependencies: + call-bound "^1.0.3" + has-tostringtag "^1.0.2" + +is-svg@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/is-svg/-/is-svg-2.1.0.tgz" + integrity sha512-Ya1giYJUkcL/94quj0+XGcmts6cETPBW1MiFz1ReJrnDJ680F52qpAEGAEGU0nq96FRGIGPx6Yo1CyPXcOoyGw== + dependencies: + html-comment-regex "^1.1.0" + +is-symbol@^1.0.4, is-symbol@^1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/is-symbol/-/is-symbol-1.1.1.tgz" + integrity sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w== + dependencies: + call-bound "^1.0.2" + has-symbols "^1.1.0" + safe-regex-test "^1.1.0" + +is-typed-array@^1.1.13, is-typed-array@^1.1.14, is-typed-array@^1.1.15: + version "1.1.15" + resolved "https://registry.npmmirror.com/is-typed-array/-/is-typed-array-1.1.15.tgz" + integrity sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ== + dependencies: + which-typed-array "^1.1.16" + +is-typedarray@^1.0.0, is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/is-typedarray/-/is-typedarray-1.0.0.tgz" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.npmmirror.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.npmmirror.com/is-utf8/-/is-utf8-0.2.1.tgz" + integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== + +is-weakmap@^2.0.2: + version "2.0.2" + resolved "https://registry.npmmirror.com/is-weakmap/-/is-weakmap-2.0.2.tgz" + integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== + +is-weakref@^1.0.2, is-weakref@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/is-weakref/-/is-weakref-1.1.0.tgz" + integrity sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q== + dependencies: + call-bound "^1.0.2" + +is-weakset@^2.0.3: + version "2.0.4" + resolved "https://registry.npmmirror.com/is-weakset/-/is-weakset-2.0.4.tgz" + integrity sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ== + dependencies: + call-bound "^1.0.3" + get-intrinsic "^1.2.6" + +is-what@^3.14.1: + version "3.14.1" + resolved "https://registry.npmmirror.com/is-what/-/is-what-3.14.1.tgz" + integrity sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA== + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/is-windows/-/is-windows-1.0.2.tgz" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/is-wsl/-/is-wsl-1.1.0.tgz" + integrity sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw== + +is-wsl@^2.1.1: + version "2.2.0" + resolved "https://registry.npmmirror.com/is-wsl/-/is-wsl-2.2.0.tgz" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.npmmirror.com/is-wsl/-/is-wsl-2.2.0.tgz" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +isarray@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.npmmirror.com/isarray/-/isarray-2.0.5.tgz" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isarray@~0.0.1: + version "0.0.1" + resolved "https://registry.npmmirror.com/isarray/-/isarray-0.0.1.tgz" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isarray@1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +ismobilejs@^1.0.0: + version "1.1.1" + resolved "https://registry.npmmirror.com/ismobilejs/-/ismobilejs-1.1.1.tgz" + integrity sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw== + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/isobject/-/isobject-2.1.0.tgz" + integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.npmmirror.com/isstream/-/isstream-0.1.2.tgz" + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== + +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.2" + resolved "https://registry.npmmirror.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz" + integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== + +istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: + version "5.2.1" + resolved "https://registry.npmmirror.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz" + integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^6.3.0" + +istanbul-lib-report@^3.0.0: + version "3.0.1" + resolved "https://registry.npmmirror.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz" + integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^4.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.1" + resolved "https://registry.npmmirror.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz" + integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.1.3: + version "3.1.7" + resolved "https://registry.npmmirror.com/istanbul-reports/-/istanbul-reports-3.1.7.tgz" + integrity sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +javascript-stringify@^1.6.0: + version "1.6.0" + resolved "https://registry.npmmirror.com/javascript-stringify/-/javascript-stringify-1.6.0.tgz" + integrity sha512-fnjC0up+0SjEJtgmmG+teeel68kutkvzfctO/KxE3qJlbunkJYAshgH3boU++gSBHP8z5/r0ts0qRIrHf0RTQQ== + +jest-changed-files@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/jest-changed-files/-/jest-changed-files-27.5.1.tgz" + integrity sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw== + dependencies: + "@jest/types" "^27.5.1" + execa "^5.0.0" + throat "^6.0.1" + +jest-circus@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/jest-circus/-/jest-circus-27.5.1.tgz" + integrity sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^0.7.0" + expect "^27.5.1" + is-generator-fn "^2.0.0" + jest-each "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" + slash "^3.0.0" + stack-utils "^2.0.3" + throat "^6.0.1" + +jest-cli@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/jest-cli/-/jest-cli-27.5.1.tgz" + integrity sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw== + dependencies: + "@jest/core" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + import-local "^3.0.2" + jest-config "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" + prompts "^2.0.1" + yargs "^16.2.0" + +jest-config@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/jest-config/-/jest-config-27.5.1.tgz" + integrity sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA== + dependencies: + "@babel/core" "^7.8.0" + "@jest/test-sequencer" "^27.5.1" + "@jest/types" "^27.5.1" + babel-jest "^27.5.1" + chalk "^4.0.0" + ci-info "^3.2.0" + deepmerge "^4.2.2" + glob "^7.1.1" + graceful-fs "^4.2.9" + jest-circus "^27.5.1" + jest-environment-jsdom "^27.5.1" + jest-environment-node "^27.5.1" + jest-get-type "^27.5.1" + jest-jasmine2 "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-runner "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" + micromatch "^4.0.4" + parse-json "^5.2.0" + pretty-format "^27.5.1" + slash "^3.0.0" + strip-json-comments "^3.1.1" + +jest-diff@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/jest-diff/-/jest-diff-27.5.1.tgz" + integrity sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw== + dependencies: + chalk "^4.0.0" + diff-sequences "^27.5.1" + jest-get-type "^27.5.1" + pretty-format "^27.5.1" + +jest-docblock@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/jest-docblock/-/jest-docblock-27.5.1.tgz" + integrity sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ== + dependencies: + detect-newline "^3.0.0" + +jest-each@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/jest-each/-/jest-each-27.5.1.tgz" + integrity sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ== + dependencies: + "@jest/types" "^27.5.1" + chalk "^4.0.0" + jest-get-type "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" + +jest-environment-jsdom@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz" + integrity sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/fake-timers" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + jest-mock "^27.5.1" + jest-util "^27.5.1" + jsdom "^16.6.0" + +jest-environment-node@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/jest-environment-node/-/jest-environment-node-27.5.1.tgz" + integrity sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/fake-timers" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + jest-mock "^27.5.1" + jest-util "^27.5.1" + +jest-get-type@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/jest-get-type/-/jest-get-type-27.5.1.tgz" + integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== + +jest-haste-map@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/jest-haste-map/-/jest-haste-map-27.5.1.tgz" + integrity sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng== + dependencies: + "@jest/types" "^27.5.1" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.9" + jest-regex-util "^27.5.1" + jest-serializer "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" + micromatch "^4.0.4" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.3.2" + +jest-jasmine2@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz" + integrity sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/source-map" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + expect "^27.5.1" + is-generator-fn "^2.0.0" + jest-each "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" + throat "^6.0.1" + +jest-leak-detector@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz" + integrity sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ== + dependencies: + jest-get-type "^27.5.1" + pretty-format "^27.5.1" + +jest-matcher-utils@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz" + integrity sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw== + dependencies: + chalk "^4.0.0" + jest-diff "^27.5.1" + jest-get-type "^27.5.1" + pretty-format "^27.5.1" + +jest-message-util@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/jest-message-util/-/jest-message-util-27.5.1.tgz" + integrity sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^27.5.1" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^27.5.1" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-mock@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/jest-mock/-/jest-mock-27.5.1.tgz" + integrity sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og== + dependencies: + "@jest/types" "^27.5.1" + "@types/node" "*" + +jest-pnp-resolver@^1.2.2: + version "1.2.3" + resolved "https://registry.npmmirror.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz" + integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== + +jest-regex-util@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz" + integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== + +jest-resolve-dependencies@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz" + integrity sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg== + dependencies: + "@jest/types" "^27.5.1" + jest-regex-util "^27.5.1" + jest-snapshot "^27.5.1" + +jest-resolve@*, jest-resolve@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/jest-resolve/-/jest-resolve-27.5.1.tgz" + integrity sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw== + dependencies: + "@jest/types" "^27.5.1" + chalk "^4.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-pnp-resolver "^1.2.2" + jest-util "^27.5.1" + jest-validate "^27.5.1" + resolve "^1.20.0" + resolve.exports "^1.1.0" + slash "^3.0.0" + +jest-runner@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/jest-runner/-/jest-runner-27.5.1.tgz" + integrity sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ== + dependencies: + "@jest/console" "^27.5.1" + "@jest/environment" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.8.1" + graceful-fs "^4.2.9" + jest-docblock "^27.5.1" + jest-environment-jsdom "^27.5.1" + jest-environment-node "^27.5.1" + jest-haste-map "^27.5.1" + jest-leak-detector "^27.5.1" + jest-message-util "^27.5.1" + jest-resolve "^27.5.1" + jest-runtime "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" + source-map-support "^0.5.6" + throat "^6.0.1" + +jest-runtime@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/jest-runtime/-/jest-runtime-27.5.1.tgz" + integrity sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/fake-timers" "^27.5.1" + "@jest/globals" "^27.5.1" + "@jest/source-map" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + chalk "^4.0.0" + cjs-module-lexer "^1.0.0" + collect-v8-coverage "^1.0.0" + execa "^5.0.0" + glob "^7.1.3" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-message-util "^27.5.1" + jest-mock "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + slash "^3.0.0" + strip-bom "^4.0.0" + +jest-serializer@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/jest-serializer/-/jest-serializer-27.5.1.tgz" + integrity sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.9" + +jest-snapshot@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/jest-snapshot/-/jest-snapshot-27.5.1.tgz" + integrity sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA== + dependencies: + "@babel/core" "^7.7.2" + "@babel/generator" "^7.7.2" + "@babel/plugin-syntax-typescript" "^7.7.2" + "@babel/traverse" "^7.7.2" + "@babel/types" "^7.0.0" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/babel__traverse" "^7.0.4" + "@types/prettier" "^2.1.5" + babel-preset-current-node-syntax "^1.0.0" + chalk "^4.0.0" + expect "^27.5.1" + graceful-fs "^4.2.9" + jest-diff "^27.5.1" + jest-get-type "^27.5.1" + jest-haste-map "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-util "^27.5.1" + natural-compare "^1.4.0" + pretty-format "^27.5.1" + semver "^7.3.2" + +jest-util@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/jest-util/-/jest-util-27.5.1.tgz" + integrity sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw== + dependencies: + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-validate@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/jest-validate/-/jest-validate-27.5.1.tgz" + integrity sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ== + dependencies: + "@jest/types" "^27.5.1" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^27.5.1" + leven "^3.1.0" + pretty-format "^27.5.1" + +jest-watcher@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/jest-watcher/-/jest-watcher-27.5.1.tgz" + integrity sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw== + dependencies: + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + jest-util "^27.5.1" + string-length "^4.0.1" + +jest-worker@^27.4.5, jest-worker@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/jest/-/jest-27.5.1.tgz" + integrity sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ== + dependencies: + "@jest/core" "^27.5.1" + import-local "^3.0.2" + jest-cli "^27.5.1" + +joi@^17.4.0: + version "17.13.3" + resolved "https://registry.npmmirror.com/joi/-/joi-17.13.3.tgz" + integrity sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA== + dependencies: + "@hapi/hoek" "^9.3.0" + "@hapi/topo" "^5.1.0" + "@sideway/address" "^4.1.5" + "@sideway/formula" "^3.0.1" + "@sideway/pinpoint" "^2.0.0" + +js-base64@^2.1.9: + version "2.6.4" + resolved "https://registry.npmmirror.com/js-base64/-/js-base64-2.6.4.tgz" + integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== + +js-cookie@^2.2.0: + version "2.2.1" + resolved "https://registry.npmmirror.com/js-cookie/-/js-cookie-2.2.1.tgz" + integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ== + +js-message@1.0.7: + version "1.0.7" + resolved "https://registry.npmmirror.com/js-message/-/js-message-1.0.7.tgz" + integrity sha512-efJLHhLjIyKRewNS9EGZ4UpI8NguuL6fKkhRxVuMmrGV2xN/0APGdQYwLFky5w9naebSZ0OwAGp0G6/2Cg90rA== + +js-queue@2.0.2: + version "2.0.2" + resolved "https://registry.npmmirror.com/js-queue/-/js-queue-2.0.2.tgz" + integrity sha512-pbKLsbCfi7kriM3s1J4DDCo7jQkI58zPLHi0heXPzPlj0hjUsm+FesPUbE0DSbIVIK503A36aUBoCN7eMFedkA== + dependencies: + easy-stack "^1.0.1" + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.npmmirror.com/js-tokens/-/js-tokens-3.0.2.tgz" + integrity sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg== + +js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.4.3, js-yaml@^3.9.1: + version "3.14.1" + resolved "https://registry.npmmirror.com/js-yaml/-/js-yaml-3.14.1.tgz" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@~3.7.0: + version "3.7.0" + resolved "https://registry.npmmirror.com/js-yaml/-/js-yaml-3.7.0.tgz" + integrity sha512-eIlkGty7HGmntbV6P/ZlAsoncFLGsNoM27lkTzS+oneY/EiNhj+geqD9ezg/ip+SW6Var0BJU2JtV0vEUZpWVQ== + dependencies: + argparse "^1.0.7" + esprima "^2.6.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.npmmirror.com/jsbn/-/jsbn-0.1.1.tgz" + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== + +jsdom@^16.6.0: + version "16.7.0" + resolved "https://registry.npmmirror.com/jsdom/-/jsdom-16.7.0.tgz" + integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== + dependencies: + abab "^2.0.5" + acorn "^8.2.4" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.3.0" + data-urls "^2.0.0" + decimal.js "^10.2.1" + domexception "^2.0.1" + escodegen "^2.0.0" + form-data "^3.0.0" + html-encoding-sniffer "^2.0.1" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-potential-custom-element-name "^1.0.1" + nwsapi "^2.2.0" + parse5 "6.0.1" + saxes "^5.0.1" + symbol-tree "^3.2.4" + tough-cookie "^4.0.0" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.5.0" + ws "^7.4.6" + xml-name-validator "^3.0.0" + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.npmmirror.com/jsesc/-/jsesc-1.3.0.tgz" + integrity sha512-Mke0DA0QjUWuJlhsE0ZPPhYiJkRap642SmI/4ztCFaUs6V2AiH1sfecc+57NgaryfAA2VR3v6O+CSjC1jZJKOA== + +jsesc@^3.0.2: + version "3.1.0" + resolved "https://registry.npmmirror.com/jsesc/-/jsesc-3.1.0.tgz" + integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.npmmirror.com/jsesc/-/jsesc-0.5.0.tgz" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + +jsesc@~3.0.2: + version "3.0.2" + resolved "https://registry.npmmirror.com/jsesc/-/jsesc-3.0.2.tgz" + integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== + +json-loader@^0.5.4: + version "0.5.7" + resolved "https://registry.npmmirror.com/json-loader/-/json-loader-0.5.7.tgz" + integrity sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w== + +json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: + version "2.3.1" + resolved "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.3.0: + version "0.3.1" + resolved "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz" + integrity sha512-4JD/Ivzg7PoW8NzdrBSr3UFwC9mHgvI7Z6z3QGBsSHgKaRTUDmyZAAKJo2UbG1kUVfS9WS8bi36N49U1xw43DA== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-schema@0.4.0: + version "0.4.0" + resolved "https://registry.npmmirror.com/json-schema/-/json-schema-0.4.0.tgz" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +json2module@^0.0.3: + version "0.0.3" + resolved "https://registry.npmmirror.com/json2module/-/json2module-0.0.3.tgz" + integrity sha512-qYGxqrRrt4GbB8IEOy1jJGypkNsjWoIMlZt4bAsmUScCA507Hbc2p1JOhBzqn45u3PWafUgH2OnzyNU7udO/GA== + dependencies: + rw "^1.3.2" + +json2mq@^0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/json2mq/-/json2mq-0.2.0.tgz" + integrity sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA== + dependencies: + string-convert "^0.2.0" + +json3@^3.3.2: + version "3.3.3" + resolved "https://registry.npmmirror.com/json3/-/json3-3.3.3.tgz" + integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== + +json5@^0.5.0: + version "0.5.1" + resolved "https://registry.npmmirror.com/json5/-/json5-0.5.1.tgz" + integrity sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw== + +json5@^0.5.1: + version "0.5.1" + resolved "https://registry.npmmirror.com/json5/-/json5-0.5.1.tgz" + integrity sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw== + +json5@^1.0.1: + version "1.0.2" + resolved "https://registry.npmmirror.com/json5/-/json5-1.0.2.tgz" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + dependencies: + minimist "^1.2.0" + +json5@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/json5/-/json5-1.0.2.tgz" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + dependencies: + minimist "^1.2.0" + +json5@^2.1.2, json5@^2.2.3: + version "2.2.3" + resolved "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + +jspdf@^2.5.1: + version "2.5.2" + resolved "https://registry.npmmirror.com/jspdf/-/jspdf-2.5.2.tgz" + integrity sha512-myeX9c+p7znDWPk0eTrujCzNjT+CXdXyk7YmJq5nD5V7uLLKmSXnlQ/Jn/kuo3X09Op70Apm0rQSnFWyGK8uEQ== + dependencies: + "@babel/runtime" "^7.23.2" + atob "^2.1.2" + btoa "^1.2.1" + fflate "^0.8.1" + optionalDependencies: + canvg "^3.0.6" + core-js "^3.6.0" + dompurify "^2.5.4" + html2canvas "^1.0.0-rc.5" + +jsprim@^1.2.2: + version "1.4.2" + resolved "https://registry.npmmirror.com/jsprim/-/jsprim-1.4.2.tgz" + integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.4.0" + verror "1.10.0" + +keycode@^2.2.0: + version "2.2.1" + resolved "https://registry.npmmirror.com/keycode/-/keycode-2.2.1.tgz" + integrity sha512-Rdgz9Hl9Iv4QKi8b0OlCRQEzp4AgVxyCtz5S/+VIHezDmrDhkp2N2TqBWOLz0/gbeREXOOiI9/4b8BY9uw2vFg== + +killable@^1.0.0, killable@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/killable/-/killable-1.0.1.tgz" + integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz" + integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/kind-of/-/kind-of-4.0.0.tgz" + integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== + dependencies: + is-buffer "^1.1.5" + +kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.npmmirror.com/kleur/-/kleur-3.0.3.tgz" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +launch-editor-middleware@^2.2.1: + version "2.10.0" + resolved "https://registry.npmmirror.com/launch-editor-middleware/-/launch-editor-middleware-2.10.0.tgz" + integrity sha512-RzZu7MeVlE3p1H6Sadc2BhuDGAj7bkeDCBpNq/zSENP4ohJGhso00k5+iYaRwKshIpiOAhMmimce+5D389xmSg== + dependencies: + launch-editor "^2.10.0" + +launch-editor@^2.10.0, launch-editor@^2.2.1: + version "2.10.0" + resolved "https://registry.npmmirror.com/launch-editor/-/launch-editor-2.10.0.tgz" + integrity sha512-D7dBRJo/qcGX9xlvt/6wUYzQxjh5G1RvZPgPv8vi4KRU99DVQL/oW7tnVOCCTm2HGeo3C5HvGE5Yrh6UBoZ0vA== + dependencies: + picocolors "^1.0.0" + shell-quote "^1.8.1" + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.npmmirror.com/lazy-cache/-/lazy-cache-1.0.4.tgz" + integrity sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ== + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/lcid/-/lcid-1.0.0.tgz" + integrity sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw== + dependencies: + invert-kv "^1.0.0" + +less-loader@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/less-loader/-/less-loader-5.0.0.tgz" + integrity sha512-bquCU89mO/yWLaUq0Clk7qCsKhsF/TZpJUzETRvJa9KSVEL9SO3ovCvdEHISBhrC81OwC8QSVX7E0bzElZj9cg== + dependencies: + clone "^2.1.1" + loader-utils "^1.1.0" + pify "^4.0.1" + +"less@^2.3.1 || ^3.0.0", less@^3.13.1: + version "3.13.1" + resolved "https://registry.npmmirror.com/less/-/less-3.13.1.tgz" + integrity sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw== + dependencies: + copy-anything "^2.0.1" + tslib "^1.10.0" + optionalDependencies: + errno "^0.1.1" + graceful-fs "^4.1.2" + image-size "~0.5.0" + make-dir "^2.1.0" + mime "^1.4.1" + native-request "^1.0.5" + source-map "~0.6.0" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/leven/-/leven-3.1.0.tgz" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.npmmirror.com/levn/-/levn-0.3.0.tgz" + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/load-json-file/-/load-json-file-1.1.0.tgz" + integrity sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A== + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/load-json-file/-/load-json-file-2.0.0.tgz" + integrity sha512-3p6ZOGNbiX4CdvEd1VcE6yi78UrGNpjHO33noGwHCnT/o2fyllJDepsm8+mFFv/DvtwFHht5HIHSyOy5a+ChVQ== + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +loader-fs-cache@^1.0.0: + version "1.0.3" + resolved "https://registry.npmmirror.com/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz" + integrity sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA== + dependencies: + find-cache-dir "^0.1.1" + mkdirp "^0.5.1" + +loader-runner@^2.3.0, loader-runner@^2.3.1, loader-runner@^2.4.0: + version "2.4.0" + resolved "https://registry.npmmirror.com/loader-runner/-/loader-runner-2.4.0.tgz" + integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== + +loader-runner@^4.1.0, loader-runner@^4.2.0: + version "4.3.0" + resolved "https://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + +loader-utils@^0.2.11: + version "0.2.17" + resolved "https://registry.npmmirror.com/loader-utils/-/loader-utils-0.2.17.tgz" + integrity sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug== + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + object-assign "^4.0.1" + +loader-utils@^0.2.16: + version "0.2.17" + resolved "https://registry.npmmirror.com/loader-utils/-/loader-utils-0.2.17.tgz" + integrity sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug== + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + object-assign "^4.0.1" + +loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: + version "1.4.2" + resolved "https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.2.tgz" + integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +loader-utils@^2.0.0, loader-utils@^2.0.4: + version "2.0.4" + resolved "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz" + integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/locate-path/-/locate-path-2.0.0.tgz" + integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/locate-path/-/locate-path-3.0.0.tgz" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^7.1.0: + version "7.2.0" + resolved "https://registry.npmmirror.com/locate-path/-/locate-path-7.2.0.tgz" + integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== + dependencies: + p-locate "^6.0.0" + +lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + +lodash._baseassign@^3.0.0: + version "3.2.0" + resolved "https://registry.npmmirror.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz" + integrity sha512-t3N26QR2IdSN+gqSy9Ds9pBu/J1EAFEshKlUHpJG3rvyJOYgcELIxcIeKKfZk7sjOz11cFfzJRsyFry/JyabJQ== + dependencies: + lodash._basecopy "^3.0.0" + lodash.keys "^3.0.0" + +lodash._basecopy@^3.0.0: + version "3.0.1" + resolved "https://registry.npmmirror.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz" + integrity sha512-rFR6Vpm4HeCK1WPGvjZSJ+7yik8d8PVUdCJx5rT2pogG4Ve/2ZS7kfmO5l5T2o5V2mqlNIfSF5MZlr1+xOoYQQ== + +lodash._bindcallback@^3.0.0: + version "3.0.1" + resolved "https://registry.npmmirror.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz" + integrity sha512-2wlI0JRAGX8WEf4Gm1p/mv/SZ+jLijpj0jyaE/AXeuQphzCgD8ZQW4oSpoN8JAopujOFGU3KMuq7qfHBWlGpjQ== + +lodash._createassigner@^3.0.0: + version "3.1.1" + resolved "https://registry.npmmirror.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz" + integrity sha512-LziVL7IDnJjQeeV95Wvhw6G28Z8Q6da87LWKOPWmzBLv4u6FAT/x5v00pyGW0u38UoogNF2JnD3bGgZZDaNEBw== + dependencies: + lodash._bindcallback "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash.restparam "^3.0.0" + +lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.npmmirror.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz" + integrity sha512-RrL9VxMEPyDMHOd9uFbvMe8X55X16/cGM5IgOKgRElQZutpX89iS6vwl64duTV1/16w5JY7tuFNXqoekmh1EmA== + +lodash._isiterateecall@^3.0.0: + version "3.0.9" + resolved "https://registry.npmmirror.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz" + integrity sha512-De+ZbrMu6eThFti/CSzhRvTKMgQToLxbij58LMfM8JnYDNSOjkjTCIaa8ixglOeGh2nyPlakbt5bJWJ7gvpYlQ== + +lodash.assign@^3.0.0: + version "3.2.0" + resolved "https://registry.npmmirror.com/lodash.assign/-/lodash.assign-3.2.0.tgz" + integrity sha512-/VVxzgGBmbphasTg51FrztxQJ/VgAUpol6zmJuSVSGcNg4g7FA4z7rQV8Ovr9V3vFBNWZhvKWHfpAytjTVUfFA== + dependencies: + lodash._baseassign "^3.0.0" + lodash._createassigner "^3.0.0" + lodash.keys "^3.0.0" + +lodash.assign@^4.0.1: + version "4.2.0" + resolved "https://registry.npmmirror.com/lodash.assign/-/lodash.assign-4.2.0.tgz" + integrity sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw== + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + +lodash.defaults@^3.1.2: + version "3.1.2" + resolved "https://registry.npmmirror.com/lodash.defaults/-/lodash.defaults-3.1.2.tgz" + integrity sha512-X7135IXFQt5JDFnYxOVAzVz+kFvwDn3N8DJYf+nrz/mMWEuSu7+OL6rWqsk3+VR1T4TejFCSu5isBJOLSID2bg== + dependencies: + lodash.assign "^3.0.0" + lodash.restparam "^3.0.0" + +lodash.defaults@^4.0.0: + version "4.2.0" + resolved "https://registry.npmmirror.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz" + integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== + +lodash.defaultsdeep@^4.6.1: + version "4.6.1" + resolved "https://registry.npmmirror.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz" + integrity sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA== + +lodash.find@^4.6.0: + version "4.6.0" + resolved "https://registry.npmmirror.com/lodash.find/-/lodash.find-4.6.0.tgz" + integrity sha512-yaRZoAV3Xq28F1iafWN1+a0rflOej93l1DQUejs3SZ41h2O9UJBoS9aueGjPDgAl4B6tPC0NuuchLKaDQQ3Isg== + +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.npmmirror.com/lodash.get/-/lodash.get-4.4.2.tgz" + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== + +lodash.isarguments@^3.0.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz" + integrity sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg== + +lodash.isarray@^3.0.0: + version "3.0.4" + resolved "https://registry.npmmirror.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz" + integrity sha512-JwObCrNJuT0Nnbuecmqr5DgtuBppuCvGD9lxjFpAzwnVtdGoDQ1zig+5W8k5/6Gcn0gZ3936HDAlGd28i7sOGQ== + +lodash.kebabcase@^4.1.1: + version "4.1.1" + resolved "https://registry.npmmirror.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz" + integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== + +lodash.keys@^3.0.0: + version "3.1.2" + resolved "https://registry.npmmirror.com/lodash.keys/-/lodash.keys-3.1.2.tgz" + integrity sha512-CuBsapFjcubOGMn3VD+24HOAPxM79tH+V6ivJL3CHYjtrawauDJHUk//Yew9Hvc6e9rbCrURGk8z6PC+8WJBfQ== + dependencies: + lodash._getnative "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + +lodash.mapvalues@^4.6.0: + version "4.6.0" + resolved "https://registry.npmmirror.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz" + integrity sha512-JPFqXFeZQ7BfS00H58kClY7SPVeHertPE0lNuCyZ26/XlN8TvakYD7b9bGyNmXbT/D3BbtPAAmq90gPWqLkxlQ== + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.npmmirror.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + +lodash.pick@^4.4.0: + version "4.4.0" + resolved "https://registry.npmmirror.com/lodash.pick/-/lodash.pick-4.4.0.tgz" + integrity sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q== + +lodash.restparam@^3.0.0: + version "3.6.1" + resolved "https://registry.npmmirror.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz" + integrity sha512-L4/arjjuq4noiUJpt3yS6KIKDtJwNe2fIYgMqyYYKoeIfV1iEqvPwhCx23o+R9dzouGihDAPN1dTIRWa7zk8tw== + +lodash.transform@^4.6.0: + version "4.6.0" + resolved "https://registry.npmmirror.com/lodash.transform/-/lodash.transform-4.6.0.tgz" + integrity sha512-LO37ZnhmBVx0GvOU/caQuipEh4GN82TcWv3yHlebGDgOxbxiwwzW5Pcx2AcvpIv2WmvmSMoC492yQFNhy/l/UQ== + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.npmmirror.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + +lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0, lodash@^4.7.0: + version "4.17.21" + resolved "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@^2.2.0: + version "2.2.0" + resolved "https://registry.npmmirror.com/log-symbols/-/log-symbols-2.2.0.tgz" + integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== + dependencies: + chalk "^2.0.1" + +log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.npmmirror.com/log-symbols/-/log-symbols-4.1.0.tgz" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +loglevel@^1.4.1, loglevel@^1.6.8: + version "1.9.2" + resolved "https://registry.npmmirror.com/loglevel/-/loglevel-1.9.2.tgz" + integrity sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg== + +longest@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/longest/-/longest-1.0.1.tgz" + integrity sha512-k+yt5n3l48JU4k8ftnKG6V7u32wyH2NfKzeMto9F/QRE0amxy/LayxwlvjjkZEIzqR+19IrtFO8p5kB9QaYUFg== + +loose-envify@^1.0.0: + version "1.4.0" + resolved "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.npmmirror.com/loud-rejection/-/loud-rejection-1.6.0.tgz" + integrity sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ== + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + +lower-case@^1.1.1: + version "1.1.4" + resolved "https://registry.npmmirror.com/lower-case/-/lower-case-1.1.4.tgz" + integrity sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA== + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.npmmirror.com/lower-case/-/lower-case-2.0.2.tgz" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lru-cache@^4.0.1: + version "4.1.5" + resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-4.1.5.tgz" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^4.1.1: + version "4.1.5" + resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-4.1.5.tgz" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^4.1.2: + version "4.1.5" + resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-4.1.5.tgz" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +m3u8-parser@2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/m3u8-parser/-/m3u8-parser-2.1.0.tgz" + integrity sha512-WbEpQ2FUaNGbJ0YanSeyj9D9ruu4FUvz+ZvebIzI2bSME+PUwcPXO1kKXZkjcPUAFruDikoOI5fWQNIA6JCCOQ== + +m3u8-parser@4.8.0: + version "4.8.0" + resolved "https://registry.npmmirror.com/m3u8-parser/-/m3u8-parser-4.8.0.tgz" + integrity sha512-UqA2a/Pw3liR6Df3gwxrqghCP17OpPlQj6RBPLYygf/ZSQ4MoSgvdvhvt35qV+3NaaA0FSZx93Ix+2brT1U7cA== + dependencies: + "@babel/runtime" "^7.12.5" + "@videojs/vhs-utils" "^3.0.5" + global "^4.4.0" + +magic-string@^0.30.11: + version "0.30.17" + resolved "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.17.tgz" + integrity sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.0" + +make-dir@^1.0.0: + version "1.3.0" + resolved "https://registry.npmmirror.com/make-dir/-/make-dir-1.3.0.tgz" + integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== + dependencies: + pify "^3.0.0" + +make-dir@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^3.0.2: + version "3.1.0" + resolved "https://registry.npmmirror.com/make-dir/-/make-dir-3.1.0.tgz" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/make-dir/-/make-dir-3.1.0.tgz" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +make-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/make-dir/-/make-dir-4.0.0.tgz" + integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== + dependencies: + semver "^7.5.3" + +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.npmmirror.com/makeerror/-/makeerror-1.0.12.tgz" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.npmmirror.com/map-cache/-/map-cache-0.2.2.tgz" + integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== + +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/map-obj/-/map-obj-1.0.1.tgz" + integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/map-visit/-/map-visit-1.0.0.tgz" + integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== + dependencies: + object-visit "^1.0.0" + +math-expression-evaluator@^1.2.14: + version "1.4.0" + resolved "https://registry.npmmirror.com/math-expression-evaluator/-/math-expression-evaluator-1.4.0.tgz" + integrity sha512-4vRUvPyxdO8cWULGTh9dZWL2tZK6LDBvj+OGHBER7poH9Qdt7kXEoj20wiz4lQUbUXQZFjPbe5mVDo9nutizCw== + +math-intrinsics@^1.0.0, math-intrinsics@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz" + integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.npmmirror.com/md5.js/-/md5.js-1.3.5.tgz" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +md5@^2.2.1: + version "2.3.0" + resolved "https://registry.npmmirror.com/md5/-/md5-2.3.0.tgz" + integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== + dependencies: + charenc "0.0.2" + crypt "0.0.2" + is-buffer "~1.1.6" + +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.4.tgz" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +mem@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/mem/-/mem-1.1.0.tgz" + integrity sha512-nOBDrc/wgpkd3X/JOhMqYR+/eLqlfLP4oQfoBA6QExIxEl+GU01oyEkwWyueyO8110pUKijtiHGhEmYoOn88oQ== + dependencies: + mimic-fn "^1.0.0" + +memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1: + version "0.4.1" + resolved "https://registry.npmmirror.com/memory-fs/-/memory-fs-0.4.1.tgz" + integrity sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.npmmirror.com/memory-fs/-/memory-fs-0.5.0.tgz" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +meow@^3.3.0: + version "3.7.0" + resolved "https://registry.npmmirror.com/meow/-/meow-3.7.0.tgz" + integrity sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA== + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + +merge-descriptors@1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz" + integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ== + +merge-source-map@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/merge-source-map/-/merge-source-map-1.1.0.tgz" + integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== + dependencies: + source-map "^0.6.1" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.2.3: + version "1.4.1" + resolved "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.npmmirror.com/micromatch/-/micromatch-3.1.10.tgz" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +micromatch@^4.0.4: + version "4.0.8" + resolved "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.8.tgz" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.npmmirror.com/miller-rabin/-/miller-rabin-4.0.1.tgz" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +"mime-db@>= 1.43.0 < 2", mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@^1.4.1, mime@^1.5.0, mime@1.6.0: + version "1.6.0" + resolved "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.0.3: + version "2.6.0" + resolved "https://registry.npmmirror.com/mime/-/mime-2.6.0.tgz" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== + +mime@^2.4.4: + version "2.6.0" + resolved "https://registry.npmmirror.com/mime/-/mime-2.6.0.tgz" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-1.2.0.tgz" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.npmmirror.com/min-document/-/min-document-2.19.0.tgz" + integrity sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ== + dependencies: + dom-walk "^0.1.0" + +mini-css-extract-plugin@^0.8.0: + version "0.8.2" + resolved "https://registry.npmmirror.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.2.tgz" + integrity sha512-a3Y4of27Wz+mqK3qrcd3VhYz6cU0iW5x3Sgvqzbj+XmlrSizmvu8QQMl5oMYJjgHOC4iyt+w7l4umP+dQeW3bw== + dependencies: + loader-utils "^1.1.0" + normalize-url "1.9.1" + schema-utils "^1.0.0" + webpack-sources "^1.1.0" + +mini-css-extract-plugin@^2.4.5: + version "2.9.2" + resolved "https://registry.npmmirror.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz" + integrity sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w== + dependencies: + schema-utils "^4.0.0" + tapable "^2.2.1" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== + +minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.6, minimist@~1.2.8: + version "1.2.8" + resolved "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +minipass-collect@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/minipass-collect/-/minipass-collect-1.0.2.tgz" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== + dependencies: + minipass "^3.0.0" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.npmmirror.com/minipass-flush/-/minipass-flush-1.0.5.tgz" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-pipeline@^1.2.2: + version "1.2.4" + resolved "https://registry.npmmirror.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" + +minipass@^3.0.0, minipass@^3.1.1: + version "3.3.6" + resolved "https://registry.npmmirror.com/minipass/-/minipass-3.3.6.tgz" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" + +mississippi@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/mississippi/-/mississippi-2.0.0.tgz" + integrity sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw== + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^2.0.1" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/mississippi/-/mississippi-3.0.0.tgz" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.npmmirror.com/mixin-deep/-/mixin-deep-1.3.2.tgz" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.6, mkdirp@~0.5.0, mkdirp@~0.5.1: + version "0.5.6" + resolved "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +mock-property@~1.0.0: + version "1.0.3" + resolved "https://registry.npmmirror.com/mock-property/-/mock-property-1.0.3.tgz" + integrity sha512-2emPTb1reeLLYwHxyVx993iYyCHEiRRO+y8NFXFPL5kl5q14sgTK76cXyEKkeKCHeRw35SfdkUJ10Q1KfHuiIQ== + dependencies: + define-data-property "^1.1.1" + functions-have-names "^1.2.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + hasown "^2.0.0" + isarray "^2.0.5" + +moment-timezone@^0.5.31: + version "0.5.46" + resolved "https://registry.npmmirror.com/moment-timezone/-/moment-timezone-0.5.46.tgz" + integrity sha512-ZXm9b36esbe7OmdABqIWJuBBiLLwAjrN7CE+7sYdCCx82Nabt1wHDj8TVseS59QIlfFPbOoiBPm6ca9BioG4hw== + dependencies: + moment "^2.29.4" + +moment@^2.21.0, moment@^2.29.4: + version "2.30.1" + resolved "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz" + integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== + +mousetrap@^1.6.5: + version "1.6.5" + resolved "https://registry.npmmirror.com/mousetrap/-/mousetrap-1.6.5.tgz" + integrity sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA== + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/move-concurrently/-/move-concurrently-1.0.1.tgz" + integrity sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ== + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + +mpd-parser@^0.22.1, mpd-parser@0.22.1: + version "0.22.1" + resolved "https://registry.npmmirror.com/mpd-parser/-/mpd-parser-0.22.1.tgz" + integrity sha512-fwBebvpyPUU8bOzvhX0VQZgSohncbgYwUyJJoTSNpmy7ccD2ryiCvM7oRkn/xQH5cv73/xU7rJSNCLjdGFor0Q== + dependencies: + "@babel/runtime" "^7.12.5" + "@videojs/vhs-utils" "^3.0.5" + "@xmldom/xmldom" "^0.8.3" + global "^4.4.0" + +ms@^2.1.1, ms@^2.1.3, ms@2.1.3: + version "2.1.3" + resolved "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz" + integrity sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ== + +multicast-dns@^6.0.1: + version "6.2.3" + resolved "https://registry.npmmirror.com/multicast-dns/-/multicast-dns-6.2.3.tgz" + integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== + dependencies: + dns-packet "^1.3.1" + thunky "^1.0.2" + +mutationobserver-shim@^0.3.2: + version "0.3.7" + resolved "https://registry.npmmirror.com/mutationobserver-shim/-/mutationobserver-shim-0.3.7.tgz" + integrity sha512-oRIDTyZQU96nAiz2AQyngwx1e89iApl2hN5AOYwyxLUB47UYsU3Wv9lJWqH5y/QdiYkc5HQLi23ZNB3fELdHcQ== + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.npmmirror.com/mute-stream/-/mute-stream-0.0.7.tgz" + integrity sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ== + +mux.js@^6.1.0: + version "6.3.0" + resolved "https://registry.npmmirror.com/mux.js/-/mux.js-6.3.0.tgz" + integrity sha512-/QTkbSAP2+w1nxV+qTcumSDN5PA98P0tjrADijIzQHe85oBK3Akhy9AHlH0ne/GombLMz1rLyvVsmrgRxoPDrQ== + dependencies: + "@babel/runtime" "^7.11.2" + global "^4.4.0" + +mux.js@4.3.2: + version "4.3.2" + resolved "https://registry.npmmirror.com/mux.js/-/mux.js-4.3.2.tgz" + integrity sha512-g0q6DPdvb3yYcoK7ElBGobdSSrhY/RjPt19U7uUc733aqvc5bCS/aCvL9z+448y+IoCZnYDwyZfQBBXMSmGOaQ== + +mux.js@6.0.1: + version "6.0.1" + resolved "https://registry.npmmirror.com/mux.js/-/mux.js-6.0.1.tgz" + integrity sha512-22CHb59rH8pWGcPGW5Og7JngJ9s+z4XuSlYvnxhLuc58cA1WqGDQPzuG8I+sPm1/p0CdgpzVTaKW408k5DNn8w== + dependencies: + "@babel/runtime" "^7.11.2" + global "^4.4.0" + +mz@^2.4.0: + version "2.7.0" + resolved "https://registry.npmmirror.com/mz/-/mz-2.7.0.tgz" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nanoid@^3.3.7: + version "3.3.8" + resolved "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.8.tgz" + integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.npmmirror.com/nanomatch/-/nanomatch-1.2.13.tgz" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +nanopop@^2.1.0: + version "2.4.2" + resolved "https://registry.npmmirror.com/nanopop/-/nanopop-2.4.2.tgz" + integrity sha512-NzOgmMQ+elxxHeIha+OG/Pv3Oc3p4RU2aBhwWwAqDpXrdTbtRylbRLQztLy8dMMwfl6pclznBdfUhccEn9ZIzw== + +native-request@^1.0.5: + version "1.1.2" + resolved "https://registry.npmmirror.com/native-request/-/native-request-1.1.2.tgz" + integrity sha512-/etjwrK0J4Ebbcnt35VMWnfiUX/B04uwGJxyJInagxDqf2z5drSt/lsOvEMWGYunz1kaLZAFrV4NDAbOoDKvAQ== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +negotiator@~0.6.4: + version "0.6.4" + resolved "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.4.tgz" + integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w== + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1, neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/next-tick/-/next-tick-1.1.0.tgz" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.npmmirror.com/nice-try/-/nice-try-1.0.5.tgz" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +no-case@^2.2.0: + version "2.3.2" + resolved "https://registry.npmmirror.com/no-case/-/no-case-2.3.2.tgz" + integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== + dependencies: + lower-case "^1.1.1" + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmmirror.com/no-case/-/no-case-3.0.4.tgz" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +node-emoji@^1.10.0: + version "1.11.0" + resolved "https://registry.npmmirror.com/node-emoji/-/node-emoji-1.11.0.tgz" + integrity sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A== + dependencies: + lodash "^4.17.21" + +node-fetch@^2.6.7: + version "2.7.0" + resolved "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.7.0.tgz" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== + dependencies: + whatwg-url "^5.0.0" + +node-forge@^0.10.0: + version "0.10.0" + resolved "https://registry.npmmirror.com/node-forge/-/node-forge-0.10.0.tgz" + integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.npmmirror.com/node-int64/-/node-int64-0.4.0.tgz" + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== + +node-ipc@^9.1.1: + version "9.2.1" + resolved "https://registry.npmmirror.com/node-ipc/-/node-ipc-9.2.1.tgz" + integrity sha512-mJzaM6O3xHf9VT8BULvJSbdVbmHUKRNOH7zDDkCrA1/T+CVjq2WVIDfLt0azZRXpgArJtl3rtmEozrbXPZ9GaQ== + dependencies: + event-pubsub "4.3.0" + js-message "1.0.7" + js-queue "2.0.2" + +node-libs-browser@^2.0.0, node-libs-browser@^2.2.1: + version "2.2.1" + resolved "https://registry.npmmirror.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz" + integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^3.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.1" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.11.0" + vm-browserify "^1.0.1" + +node-releases@^2.0.19: + version "2.0.19" + resolved "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.19.tgz" + integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== + +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.npmmirror.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/normalize-path/-/normalize-path-1.0.0.tgz" + integrity sha512-7WyT0w8jhpDStXRq5836AMmihQwq2nrUVQrgjvUo/p/NZf9uy/MeJ246lBJVmWuYXMlJuG9BNZHF0hWjfTbQUA== + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.npmmirror.com/normalize-path/-/normalize-path-2.1.1.tgz" + integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + +normalize-url@^1.4.0, normalize-url@1.9.1: + version "1.9.1" + resolved "https://registry.npmmirror.com/normalize-url/-/normalize-url-1.9.1.tgz" + integrity sha512-A48My/mtCklowHBlI8Fq2jFWK4tX4lJ5E6ytFsSOq1fzpvT0SQSgKhSg7lN5c2uYFOrUAOQp6zhhJnpp1eMloQ== + dependencies: + object-assign "^4.0.1" + prepend-http "^1.0.0" + query-string "^4.1.0" + sort-keys "^1.0.0" + +normalize-url@^3.0.0: + version "3.3.0" + resolved "https://registry.npmmirror.com/normalize-url/-/normalize-url-3.3.0.tgz" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== + +normalize-wheel@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/normalize-wheel/-/normalize-wheel-1.0.1.tgz" + integrity sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA== + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-2.0.2.tgz" + integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== + dependencies: + path-key "^2.0.0" + +npm-run-path@^4.0.0, npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +nprogress@^0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/nprogress/-/nprogress-0.2.0.tgz" + integrity sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA== + +nth-check@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/nth-check/-/nth-check-1.0.2.tgz" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.npmmirror.com/num2fraction/-/num2fraction-1.2.2.tgz" + integrity sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg== + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/number-is-nan/-/number-is-nan-1.0.1.tgz" + integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== + +nwsapi@^2.2.0: + version "2.2.16" + resolved "https://registry.npmmirror.com/nwsapi/-/nwsapi-2.2.16.tgz" + integrity sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ== + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.npmmirror.com/oauth-sign/-/oauth-sign-0.9.0.tgz" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1, object-assign@4.x: + version "4.1.1" + resolved "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.npmmirror.com/object-copy/-/object-copy-0.1.0.tgz" + integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-hash@^1.1.4: + version "1.3.1" + resolved "https://registry.npmmirror.com/object-hash/-/object-hash-1.3.1.tgz" + integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== + +object-inspect@^1.13.3: + version "1.13.4" + resolved "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.4.tgz" + integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== + +object-inspect@~1.12.3: + version "1.12.3" + resolved "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.3.tgz" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== + +object-is@^1.1.5: + version "1.1.6" + resolved "https://registry.npmmirror.com/object-is/-/object-is-1.1.6.tgz" + integrity sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-path@^0.9.2: + version "0.9.2" + resolved "https://registry.npmmirror.com/object-path/-/object-path-0.9.2.tgz" + integrity sha512-hPv/mbCYtXOhhqstmodis0boF1ooA8yz3PDJwTnkZvOlaJkd5aCAgA9tq6BUjJW5w8jXHI2qi9+w5N0tz+AAaA== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/object-visit/-/object-visit-1.0.1.tgz" + integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.0, object.assign@^4.1.4, object.assign@^4.1.7: + version "4.1.7" + resolved "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.7.tgz" + integrity sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.3" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + has-symbols "^1.1.0" + object-keys "^1.1.1" + +object.fromentries@^2.0.8: + version "2.0.8" + resolved "https://registry.npmmirror.com/object.fromentries/-/object.fromentries-2.0.8.tgz" + integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + +object.getownpropertydescriptors@^2.0.3: + version "2.1.8" + resolved "https://registry.npmmirror.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz" + integrity sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A== + dependencies: + array.prototype.reduce "^1.0.6" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + gopd "^1.0.1" + safe-array-concat "^1.1.2" + +object.groupby@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/object.groupby/-/object.groupby-1.0.3.tgz" + integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.npmmirror.com/object.pick/-/object.pick-1.3.0.tgz" + integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== + dependencies: + isobject "^3.0.1" + +object.values@^1.1.0, object.values@^1.2.0: + version "1.2.1" + resolved "https://registry.npmmirror.com/object.values/-/object.values-1.2.1.tgz" + integrity sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.3" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.npmmirror.com/obuf/-/obuf-1.1.2.tgz" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +omit.js@^1.0.0: + version "1.0.2" + resolved "https://registry.npmmirror.com/omit.js/-/omit.js-1.0.2.tgz" + integrity sha512-/QPc6G2NS+8d4L/cQhbk6Yit1WTB6Us2g84A7A/1+w9d/eRGHyEqC5kkQtHVoHZ5NFWGG7tUGgrhVZwgZanKrQ== + dependencies: + babel-runtime "^6.23.0" + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/on-headers/-/on-headers-1.0.2.tgz" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.npmmirror.com/once/-/once-1.4.0.tgz" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/onetime/-/onetime-2.0.1.tgz" + integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== + dependencies: + mimic-fn "^1.0.0" + +onetime@^5.1.0, onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +open@^6.3.0: + version "6.4.0" + resolved "https://registry.npmmirror.com/open/-/open-6.4.0.tgz" + integrity sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg== + dependencies: + is-wsl "^1.1.0" + +open@^8.0.2: + version "8.4.2" + resolved "https://registry.npmmirror.com/open/-/open-8.4.2.tgz" + integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + +opencollective-postinstall@^2.0.2: + version "2.0.3" + resolved "https://registry.npmmirror.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz" + integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== + +opener@^1.5.1: + version "1.5.2" + resolved "https://registry.npmmirror.com/opener/-/opener-1.5.2.tgz" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== + +opn@^5.1.0, opn@^5.5.0: + version "5.5.0" + resolved "https://registry.npmmirror.com/opn/-/opn-5.5.0.tgz" + integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== + dependencies: + is-wsl "^1.1.0" + +optionator@^0.8.2: + version "0.8.3" + resolved "https://registry.npmmirror.com/optionator/-/optionator-0.8.3.tgz" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +ora@^3.4.0: + version "3.4.0" + resolved "https://registry.npmmirror.com/ora/-/ora-3.4.0.tgz" + integrity sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg== + dependencies: + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-spinners "^2.0.0" + log-symbols "^2.2.0" + strip-ansi "^5.2.0" + wcwidth "^1.0.1" + +ora@^5.3.0: + version "5.4.1" + resolved "https://registry.npmmirror.com/ora/-/ora-5.4.1.tgz" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +original@>=0.0.5: + version "1.0.2" + resolved "https://registry.npmmirror.com/original/-/original-1.0.2.tgz" + integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== + dependencies: + url-parse "^1.4.3" + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.npmmirror.com/os-browserify/-/os-browserify-0.3.0.tgz" + integrity sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A== + +os-homedir@^1.0.0, os-homedir@^1.0.1: + version "1.0.2" + resolved "https://registry.npmmirror.com/os-homedir/-/os-homedir-1.0.2.tgz" + integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ== + +os-locale@^1.4.0: + version "1.4.0" + resolved "https://registry.npmmirror.com/os-locale/-/os-locale-1.4.0.tgz" + integrity sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g== + dependencies: + lcid "^1.0.0" + +os-locale@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/os-locale/-/os-locale-2.1.0.tgz" + integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA== + dependencies: + execa "^0.7.0" + lcid "^1.0.0" + mem "^1.1.0" + +os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + +own-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/own-keys/-/own-keys-1.0.1.tgz" + integrity sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg== + dependencies: + get-intrinsic "^1.2.6" + object-keys "^1.1.1" + safe-push-apply "^1.0.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/p-finally/-/p-finally-1.0.0.tgz" + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + +p-finally@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/p-finally/-/p-finally-2.0.1.tgz" + integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== + +p-limit@^1.0.0, p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.npmmirror.com/p-limit/-/p-limit-1.3.0.tgz" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/p-limit/-/p-limit-4.0.0.tgz" + integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== + dependencies: + yocto-queue "^1.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/p-locate/-/p-locate-2.0.0.tgz" + integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== + dependencies: + p-limit "^1.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/p-locate/-/p-locate-3.0.0.tgz" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^6.0.0: + version "6.0.0" + resolved "https://registry.npmmirror.com/p-locate/-/p-locate-6.0.0.tgz" + integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== + dependencies: + p-limit "^4.0.0" + +p-map@^1.1.1: + version "1.2.0" + resolved "https://registry.npmmirror.com/p-map/-/p-map-1.2.0.tgz" + integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA== + +p-map@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/p-map/-/p-map-2.1.0.tgz" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + +p-map@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/p-map/-/p-map-3.0.0.tgz" + integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== + dependencies: + aggregate-error "^3.0.0" + +p-retry@^3.0.1: + version "3.0.1" + resolved "https://registry.npmmirror.com/p-retry/-/p-retry-3.0.1.tgz" + integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== + dependencies: + retry "^0.12.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/p-try/-/p-try-1.0.0.tgz" + integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +pako@~1.0.5: + version "1.0.11" + resolved "https://registry.npmmirror.com/pako/-/pako-1.0.11.tgz" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + +parallel-transform@^1.1.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/parallel-transform/-/parallel-transform-1.2.0.tgz" + integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== + dependencies: + cyclist "^1.0.1" + inherits "^2.0.3" + readable-stream "^2.1.5" + +param-case@^3.0.3: + version "3.0.4" + resolved "https://registry.npmmirror.com/param-case/-/param-case-3.0.4.tgz" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +param-case@2.1.x: + version "2.1.1" + resolved "https://registry.npmmirror.com/param-case/-/param-case-2.1.1.tgz" + integrity sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w== + dependencies: + no-case "^2.2.0" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-asn1@^5.0.0, parse-asn1@^5.1.7: + version "5.1.7" + resolved "https://registry.npmmirror.com/parse-asn1/-/parse-asn1-5.1.7.tgz" + integrity sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg== + dependencies: + asn1.js "^4.10.1" + browserify-aes "^1.2.0" + evp_bytestokey "^1.0.3" + hash-base "~3.0" + pbkdf2 "^3.1.2" + safe-buffer "^5.2.1" + +parse-headers@^2.0.0: + version "2.0.5" + resolved "https://registry.npmmirror.com/parse-headers/-/parse-headers-2.0.5.tgz" + integrity sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA== + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.npmmirror.com/parse-json/-/parse-json-2.2.0.tgz" + integrity sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ== + dependencies: + error-ex "^1.2.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/parse-json/-/parse-json-4.0.0.tgz" + integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.0.0, parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse-svg-path@~0.1.1: + version "0.1.2" + resolved "https://registry.npmmirror.com/parse-svg-path/-/parse-svg-path-0.1.2.tgz" + integrity sha512-JyPSBnkTJ0AI8GGJLfMXvKq42cj5c006fnLz6fXy6zfoVjJizi8BNTpu8on8ziI1cKy9d9DGNuY17Ce7wuejpQ== + +parse5-htmlparser2-tree-adapter@^6.0.0: + version "6.0.1" + resolved "https://registry.npmmirror.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz" + integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== + dependencies: + parse5 "^6.0.1" + +parse5@^5.1.1: + version "5.1.1" + resolved "https://registry.npmmirror.com/parse5/-/parse5-5.1.1.tgz" + integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== + +parse5@^6.0.1, parse5@6.0.1: + version "6.0.1" + resolved "https://registry.npmmirror.com/parse5/-/parse5-6.0.1.tgz" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.npmmirror.com/pascal-case/-/pascal-case-3.1.2.tgz" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.npmmirror.com/pascalcase/-/pascalcase-0.1.1.tgz" + integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== + +path-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.npmmirror.com/path-browserify/-/path-browserify-0.0.1.tgz" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.npmmirror.com/path-dirname/-/path-dirname-1.0.2.tgz" + integrity sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q== + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/path-exists/-/path-exists-2.1.0.tgz" + integrity sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ== + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/path-exists/-/path-exists-3.0.0.tgz" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-exists@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/path-exists/-/path-exists-5.0.0.tgz" + integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== + +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-is-inside@^1.0.1, path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/path-is-inside/-/path-is-inside-1.0.2.tgz" + integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/path-key/-/path-key-2.0.1.tgz" + integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-to-regexp@0.1.12: + version "0.1.12" + resolved "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz" + integrity sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ== + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/path-type/-/path-type-1.1.0.tgz" + integrity sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg== + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/path-type/-/path-type-2.0.0.tgz" + integrity sha512-dUnb5dXUf+kzhC/W/F4e5/SkluXIFf5VUHolW1Eg1irn1hGWjPGdsRcvYJ1nD6lhk8Ir7VM0bHJKsYTx8Jx9OQ== + dependencies: + pify "^2.0.0" + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/path-type/-/path-type-3.0.0.tgz" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + +pbkdf2@^3.1.2: + version "3.1.2" + resolved "https://registry.npmmirror.com/pbkdf2/-/pbkdf2-3.1.2.tgz" + integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +pdfobject@^2.2.7: + version "2.3.0" + resolved "https://registry.npmmirror.com/pdfobject/-/pdfobject-2.3.0.tgz" + integrity sha512-w/9pXDXTDs3IDmOri/w8lM/w6LHR0/F4fcBLLzH+4csSoyshQ5su0TE7k0FLHZO7aOjVLDGecqd1M89+PVpVAA== + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/performance-now/-/performance-now-2.1.0.tgz" + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== + +photoswipe@^4.1.2: + version "4.1.3" + resolved "https://registry.npmmirror.com/photoswipe/-/photoswipe-4.1.3.tgz" + integrity sha512-89Z43IRUyw7ycTolo+AaiDn3W1EEIfox54hERmm9bI12IB9cvRfHSHez3XhAyU8XW2EAFrC+2sKMhh7SJwn0bA== + +picocolors@^0.2.1: + version "0.2.1" + resolved "https://registry.npmmirror.com/picocolors/-/picocolors-0.2.1.tgz" + integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== + +picocolors@^1.0.0, picocolors@^1.1.0, picocolors@^1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.npmmirror.com/pify/-/pify-2.3.0.tgz" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz" + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.npmmirror.com/pify/-/pify-4.0.1.tgz" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz" + integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.npmmirror.com/pinkie/-/pinkie-2.0.4.tgz" + integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== + +pirates@^4.0.4: + version "4.0.6" + resolved "https://registry.npmmirror.com/pirates/-/pirates-4.0.6.tgz" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== + +pkcs7@^0.2.3: + version "0.2.3" + resolved "https://registry.npmmirror.com/pkcs7/-/pkcs7-0.2.3.tgz" + integrity sha512-kJRwmADEQUg+qJyRgWLtpEL9q9cFjZschejTEK3GRjKvnsU9G5WWoe/wKqRgbBoqWdVSeTUKP6vIA3Y72M3rWA== + +pkcs7@^1.0.4: + version "1.0.4" + resolved "https://registry.npmmirror.com/pkcs7/-/pkcs7-1.0.4.tgz" + integrity sha512-afRERtHn54AlwaF2/+LFszyAANTCggGilmcmILUzEjvs3XgFZT+xE6+QWQcAGmu4xajy+Xtj7acLOPdx5/eXWQ== + dependencies: + "@babel/runtime" "^7.5.5" + +pkg-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-1.0.0.tgz" + integrity sha512-c6pv3OE78mcZ92ckebVDqg0aWSoKhOTbwCV6qbCWMk546mAL9pZln0+QsN/yQ7fkucd4+yJPLrCBXNt8Ruk+Eg== + dependencies: + find-up "^1.0.0" + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-2.0.0.tgz" + integrity sha512-ojakdnUgL5pzJYWw2AIDEupaQCX5OPbM688ZevubICjdIX01PRSYKqm33fJoCOJBRseYCTUlQRnBNX+Pchaejw== + dependencies: + find-up "^2.1.0" + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-3.0.0.tgz" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +pkg-dir@^4.1.0, pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pkg-dir@^7.0.0: + version "7.0.0" + resolved "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-7.0.0.tgz" + integrity sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA== + dependencies: + find-up "^6.3.0" + +pluralize@^7.0.0: + version "7.0.0" + resolved "https://registry.npmmirror.com/pluralize/-/pluralize-7.0.0.tgz" + integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow== + +point-at-length@^1.0.2: + version "1.1.0" + resolved "https://registry.npmmirror.com/point-at-length/-/point-at-length-1.1.0.tgz" + integrity sha512-nNHDk9rNEh/91o2Y8kHLzBLNpLf80RYd2gCun9ss+V0ytRSf6XhryBTx071fesktjbachRmGuUbId+JQmzhRXw== + dependencies: + abs-svg-path "~0.1.1" + isarray "~0.0.1" + parse-svg-path "~0.1.1" + +portfinder@^1.0.20, portfinder@^1.0.26, portfinder@^1.0.9: + version "1.0.32" + resolved "https://registry.npmmirror.com/portfinder/-/portfinder-1.0.32.tgz" + integrity sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg== + dependencies: + async "^2.6.4" + debug "^3.2.7" + mkdirp "^0.5.6" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.npmmirror.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz" + integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== + +possible-typed-array-names@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz" + integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== + +postcss-calc@^5.2.0: + version "5.3.1" + resolved "https://registry.npmmirror.com/postcss-calc/-/postcss-calc-5.3.1.tgz" + integrity sha512-iBcptYFq+QUh9gzP7ta2btw50o40s4uLI4UDVgd5yRAZtUDWc5APdl5yQDd2h/TyiZNbJrv0HiYhT102CMgN7Q== + dependencies: + postcss "^5.0.2" + postcss-message-helpers "^2.0.0" + reduce-css-calc "^1.2.6" + +postcss-calc@^7.0.1: + version "7.0.5" + resolved "https://registry.npmmirror.com/postcss-calc/-/postcss-calc-7.0.5.tgz" + integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== + dependencies: + postcss "^7.0.27" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.2" + +postcss-colormin@^2.1.8: + version "2.2.2" + resolved "https://registry.npmmirror.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz" + integrity sha512-XXitQe+jNNPf+vxvQXIQ1+pvdQKWKgkx8zlJNltcMEmLma1ypDRDQwlLt+6cP26fBreihNhZxohh1rcgCH2W5w== + dependencies: + colormin "^1.0.5" + postcss "^5.0.13" + postcss-value-parser "^3.2.3" + +postcss-colormin@^4.0.3: + version "4.0.3" + resolved "https://registry.npmmirror.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz" + integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== + dependencies: + browserslist "^4.0.0" + color "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-convert-values@^2.3.4: + version "2.6.1" + resolved "https://registry.npmmirror.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz" + integrity sha512-SE7mf25D3ORUEXpu3WUqQqy0nCbMuM5BEny+ULE/FXdS/0UMA58OdzwvzuHJRpIFlk1uojt16JhaEogtP6W2oA== + dependencies: + postcss "^5.0.11" + postcss-value-parser "^3.1.2" + +postcss-convert-values@^4.0.1: + version "4.0.1" + resolved "https://registry.npmmirror.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz" + integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-discard-comments@^2.0.4: + version "2.0.4" + resolved "https://registry.npmmirror.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz" + integrity sha512-yGbyBDo5FxsImE90LD8C87vgnNlweQkODMkUZlDVM/CBgLr9C5RasLGJxxh9GjVOBeG8NcCMatoqI1pXg8JNXg== + dependencies: + postcss "^5.0.14" + +postcss-discard-comments@^4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz" + integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== + dependencies: + postcss "^7.0.0" + +postcss-discard-duplicates@^2.0.1: + version "2.1.0" + resolved "https://registry.npmmirror.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz" + integrity sha512-+lk5W1uqO8qIUTET+UETgj9GWykLC3LOldr7EehmymV0Wu36kyoHimC4cILrAAYpHQ+fr4ypKcWcVNaGzm0reA== + dependencies: + postcss "^5.0.4" + +postcss-discard-duplicates@^4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz" + integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== + dependencies: + postcss "^7.0.0" + +postcss-discard-empty@^2.0.1: + version "2.1.0" + resolved "https://registry.npmmirror.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz" + integrity sha512-IBFoyrwk52dhF+5z/ZAbzq5Jy7Wq0aLUsOn69JNS+7YeuyHaNzJwBIYE0QlUH/p5d3L+OON72Fsexyb7OK/3og== + dependencies: + postcss "^5.0.14" + +postcss-discard-empty@^4.0.1: + version "4.0.1" + resolved "https://registry.npmmirror.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz" + integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== + dependencies: + postcss "^7.0.0" + +postcss-discard-overridden@^0.1.1: + version "0.1.1" + resolved "https://registry.npmmirror.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz" + integrity sha512-IyKoDL8QNObOiUc6eBw8kMxBHCfxUaERYTUe2QF8k7j/xiirayDzzkmlR6lMQjrAM1p1DDRTvWrS7Aa8lp6/uA== + dependencies: + postcss "^5.0.16" + +postcss-discard-overridden@^4.0.1: + version "4.0.1" + resolved "https://registry.npmmirror.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz" + integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== + dependencies: + postcss "^7.0.0" + +postcss-discard-unused@^2.2.1: + version "2.2.3" + resolved "https://registry.npmmirror.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz" + integrity sha512-nCbFNfqYAbKCw9J6PSJubpN9asnrwVLkRDFc4KCwyUEdOtM5XDE/eTW3OpqHrYY1L4fZxgan7LLRAAYYBzwzrg== + dependencies: + postcss "^5.0.14" + uniqs "^2.0.0" + +postcss-filter-plugins@^2.0.0: + version "2.0.3" + resolved "https://registry.npmmirror.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz" + integrity sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ== + dependencies: + postcss "^5.0.4" + +postcss-load-config@^1.1.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/postcss-load-config/-/postcss-load-config-1.2.0.tgz" + integrity sha512-3fpCfnXo9Qd/O/q/XL4cJUhRsqjVD2V1Vhy3wOEcLE5kz0TGtdDXJSoiTdH4e847KphbEac4+EZSH4qLRYIgLw== + dependencies: + cosmiconfig "^2.1.0" + object-assign "^4.1.0" + postcss-load-options "^1.2.0" + postcss-load-plugins "^2.3.0" + +postcss-load-config@^2.0.0: + version "2.1.2" + resolved "https://registry.npmmirror.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz" + integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== + dependencies: + cosmiconfig "^5.0.0" + import-cwd "^2.0.0" + +postcss-load-options@^1.2.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/postcss-load-options/-/postcss-load-options-1.2.0.tgz" + integrity sha512-WKS5LJMZLWGwtfhs5ahb2ycpoYF3m0kK4QEaM+elr5EpiMt0H296P/9ETa13WXzjPwB0DDTBiUBBWSHoApQIJg== + dependencies: + cosmiconfig "^2.1.0" + object-assign "^4.1.0" + +postcss-load-plugins@^2.3.0: + version "2.3.0" + resolved "https://registry.npmmirror.com/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz" + integrity sha512-/WGUMYhKiryWjYO6c7kAcqMuD7DVkaQ8HcbQenDme/d3OBOmrYMFObOKgUWyUy1uih5U2Dakq8H6VcJi5C9wHQ== + dependencies: + cosmiconfig "^2.1.1" + object-assign "^4.1.0" + +postcss-loader@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/postcss-loader/-/postcss-loader-3.0.0.tgz" + integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== + dependencies: + loader-utils "^1.1.0" + postcss "^7.0.0" + postcss-load-config "^2.0.0" + schema-utils "^1.0.0" + +postcss-merge-idents@^2.1.5: + version "2.1.7" + resolved "https://registry.npmmirror.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz" + integrity sha512-9DHmfCZ7/hNHhIKnNkz4CU0ejtGen5BbTRJc13Z2uHfCedeCUsK2WEQoAJRBL+phs68iWK6Qf8Jze71anuysWA== + dependencies: + has "^1.0.1" + postcss "^5.0.10" + postcss-value-parser "^3.1.1" + +postcss-merge-longhand@^2.0.1: + version "2.0.2" + resolved "https://registry.npmmirror.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz" + integrity sha512-ma7YvxjdLQdifnc1HFsW/AW6fVfubGyR+X4bE3FOSdBVMY9bZjKVdklHT+odknKBB7FSCfKIHC3yHK7RUAqRPg== + dependencies: + postcss "^5.0.4" + +postcss-merge-longhand@^4.0.11: + version "4.0.11" + resolved "https://registry.npmmirror.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz" + integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== + dependencies: + css-color-names "0.0.4" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + stylehacks "^4.0.0" + +postcss-merge-rules@^2.0.3: + version "2.1.2" + resolved "https://registry.npmmirror.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz" + integrity sha512-Wgg2FS6W3AYBl+5L9poL6ZUISi5YzL+sDCJfM7zNw/Q1qsyVQXXZ2cbVui6mu2cYJpt1hOKCGj1xA4mq/obz/Q== + dependencies: + browserslist "^1.5.2" + caniuse-api "^1.5.2" + postcss "^5.0.4" + postcss-selector-parser "^2.2.2" + vendors "^1.0.0" + +postcss-merge-rules@^4.0.3: + version "4.0.3" + resolved "https://registry.npmmirror.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz" + integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + cssnano-util-same-parent "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + vendors "^1.0.0" + +postcss-message-helpers@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz" + integrity sha512-tPLZzVAiIJp46TBbpXtrUAKqedXSyW5xDEo1sikrfEfnTs+49SBZR/xDdqCiJvSSbtr615xDsaMF3RrxS2jZlA== + +postcss-minify-font-values@^1.0.2: + version "1.0.5" + resolved "https://registry.npmmirror.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz" + integrity sha512-vFSPzrJhNe6/8McOLU13XIsERohBJiIFFuC1PolgajOZdRWqRgKITP/A4Z/n4GQhEmtbxmO9NDw3QLaFfE1dFQ== + dependencies: + object-assign "^4.0.1" + postcss "^5.0.4" + postcss-value-parser "^3.0.2" + +postcss-minify-font-values@^4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz" + integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-gradients@^1.0.1: + version "1.0.5" + resolved "https://registry.npmmirror.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz" + integrity sha512-DZhT0OE+RbVqVyGsTIKx84rU/5cury1jmwPa19bViqYPQu499ZU831yMzzsyC8EhiZVd73+h5Z9xb/DdaBpw7Q== + dependencies: + postcss "^5.0.12" + postcss-value-parser "^3.3.0" + +postcss-minify-gradients@^4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz" + integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + is-color-stop "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-params@^1.0.4: + version "1.2.2" + resolved "https://registry.npmmirror.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz" + integrity sha512-hhJdMVgP8vasrHbkKAk+ab28vEmPYgyuDzRl31V3BEB3QOR3L5TTIVEWLDNnZZ3+fiTi9d6Ker8GM8S1h8p2Ow== + dependencies: + alphanum-sort "^1.0.1" + postcss "^5.0.2" + postcss-value-parser "^3.0.2" + uniqs "^2.0.0" + +postcss-minify-params@^4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz" + integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== + dependencies: + alphanum-sort "^1.0.0" + browserslist "^4.0.0" + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + uniqs "^2.0.0" + +postcss-minify-selectors@^2.0.4: + version "2.1.1" + resolved "https://registry.npmmirror.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz" + integrity sha512-e13vxPBSo3ZaPne43KVgM+UETkx3Bs4/Qvm6yXI9HQpQp4nyb7HZ0gKpkF+Wn2x+/dbQ+swNpCdZSbMOT7+TIA== + dependencies: + alphanum-sort "^1.0.2" + has "^1.0.1" + postcss "^5.0.14" + postcss-selector-parser "^2.0.0" + +postcss-minify-selectors@^4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz" + integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== + dependencies: + alphanum-sort "^1.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +postcss-modules-extract-imports@^1.2.0: + version "1.2.1" + resolved "https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz" + integrity sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw== + dependencies: + postcss "^6.0.1" + +postcss-modules-local-by-default@^1.2.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz" + integrity sha512-X4cquUPIaAd86raVrBwO8fwRfkIdbwFu7CTfEOjiZQHVQwlHRSkTgH5NLDmMm5+1hQO8u6dZ+TOOJDbay1hYpA== + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-scope@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz" + integrity sha512-LTYwnA4C1He1BKZXIx1CYiHixdSe9LWYVKadq9lK5aCCMkoOkFyZ7aigt+srfjlRplJY3gIol6KUNefdMQJdlw== + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-values@^1.3.0: + version "1.3.0" + resolved "https://registry.npmmirror.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz" + integrity sha512-i7IFaR9hlQ6/0UgFuqM6YWaCfA1Ej8WMg8A5DggnH1UGKJvTV/ugqq/KaULixzzOi3T/tF6ClBXcHGCzdd5unA== + dependencies: + icss-replace-symbols "^1.1.0" + postcss "^6.0.1" + +postcss-normalize-charset@^1.1.0: + version "1.1.1" + resolved "https://registry.npmmirror.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz" + integrity sha512-RKgjEks83l8w4yEhztOwNZ+nLSrJ+NvPNhpS+mVDzoaiRHZQVoG7NF2TP5qjwnaN9YswUhj6m1E0S0Z+WDCgEQ== + dependencies: + postcss "^5.0.5" + +postcss-normalize-charset@^4.0.1: + version "4.0.1" + resolved "https://registry.npmmirror.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz" + integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== + dependencies: + postcss "^7.0.0" + +postcss-normalize-display-values@^4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz" + integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-positions@^4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz" + integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== + dependencies: + cssnano-util-get-arguments "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-repeat-style@^4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz" + integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-string@^4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz" + integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== + dependencies: + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-timing-functions@^4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz" + integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-unicode@^4.0.1: + version "4.0.1" + resolved "https://registry.npmmirror.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz" + integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-url@^3.0.7: + version "3.0.8" + resolved "https://registry.npmmirror.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz" + integrity sha512-WqtWG6GV2nELsQEFES0RzfL2ebVwmGl/M8VmMbshKto/UClBo+mznX8Zi4/hkThdqx7ijwv+O8HWPdpK7nH/Ig== + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^1.4.0" + postcss "^5.0.14" + postcss-value-parser "^3.2.3" + +postcss-normalize-url@^4.0.1: + version "4.0.1" + resolved "https://registry.npmmirror.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz" + integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-whitespace@^4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz" + integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-ordered-values@^2.1.0: + version "2.2.3" + resolved "https://registry.npmmirror.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz" + integrity sha512-5RB1IUZhkxDCfa5fx/ogp/A82mtq+r7USqS+7zt0e428HJ7+BHCxyeY39ClmkkUtxdOd3mk8gD6d9bjH2BECMg== + dependencies: + postcss "^5.0.4" + postcss-value-parser "^3.0.1" + +postcss-ordered-values@^4.1.2: + version "4.1.2" + resolved "https://registry.npmmirror.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz" + integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== + dependencies: + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-reduce-idents@^2.2.2: + version "2.4.0" + resolved "https://registry.npmmirror.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz" + integrity sha512-0+Ow9e8JLtffjumJJFPqvN4qAvokVbdQPnijUDSOX8tfTwrILLP4ETvrZcXZxAtpFLh/U0c+q8oRMJLr1Kiu4w== + dependencies: + postcss "^5.0.4" + postcss-value-parser "^3.0.2" + +postcss-reduce-initial@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz" + integrity sha512-jJFrV1vWOPCQsIVitawGesRgMgunbclERQ/IRGW7r93uHrVzNQQmHQ7znsOIjJPZ4yWMzs5A8NFhp3AkPHPbDA== + dependencies: + postcss "^5.0.4" + +postcss-reduce-initial@^4.0.3: + version "4.0.3" + resolved "https://registry.npmmirror.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz" + integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + +postcss-reduce-transforms@^1.0.3: + version "1.0.4" + resolved "https://registry.npmmirror.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz" + integrity sha512-lGgRqnSuAR5i5uUg1TA33r9UngfTadWxOyL2qx1KuPoCQzfmtaHjp9PuwX7yVyRxG3BWBzeFUaS5uV9eVgnEgQ== + dependencies: + has "^1.0.1" + postcss "^5.0.8" + postcss-value-parser "^3.0.1" + +postcss-reduce-transforms@^4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz" + integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== + dependencies: + cssnano-util-get-match "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-safe-parser@^1.0.1: + version "1.0.7" + resolved "https://registry.npmmirror.com/postcss-safe-parser/-/postcss-safe-parser-1.0.7.tgz" + integrity sha512-LHsxELCg/Rzv2uFQN/4+pW3g2VLncnUSlUf8WtyQ2Af3PdtzQh0zWseKWrb0l8h2jLNA8bCOabBU9Fuz3+maKg== + dependencies: + postcss "^5.0.18" + +postcss-selector-parser@^2.0.0: + version "2.2.3" + resolved "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz" + integrity sha512-3pqyakeGhrO0BQ5+/tGTfvi5IAUAhHRayGK8WFSu06aEv2BmHoXw/Mhb+w7VY5HERIuC+QoUI7wgrCcq2hqCVA== + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^2.2.2: + version "2.2.3" + resolved "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz" + integrity sha512-3pqyakeGhrO0BQ5+/tGTfvi5IAUAhHRayGK8WFSu06aEv2BmHoXw/Mhb+w7VY5HERIuC+QoUI7wgrCcq2hqCVA== + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^3.0.0: + version "3.1.2" + resolved "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz" + integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== + dependencies: + dot-prop "^5.2.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.9: + version "6.1.2" + resolved "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz" + integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-svgo@^2.1.1: + version "2.1.6" + resolved "https://registry.npmmirror.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz" + integrity sha512-y5AdQdgBoF4rbpdbeWAJuxE953g/ylRfVNp6mvAi61VCN/Y25Tu9p5mh3CyI42WbTRIiwR9a1GdFtmDnNPeskQ== + dependencies: + is-svg "^2.0.0" + postcss "^5.0.14" + postcss-value-parser "^3.2.3" + svgo "^0.7.0" + +postcss-svgo@^4.0.3: + version "4.0.3" + resolved "https://registry.npmmirror.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz" + integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + svgo "^1.0.0" + +postcss-unique-selectors@^2.0.2: + version "2.0.2" + resolved "https://registry.npmmirror.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz" + integrity sha512-WZX8r1M0+IyljoJOJleg3kYm10hxNYF9scqAT7v/xeSX1IdehutOM85SNO0gP9K+bgs86XERr7Ud5u3ch4+D8g== + dependencies: + alphanum-sort "^1.0.1" + postcss "^5.0.4" + uniqs "^2.0.0" + +postcss-unique-selectors@^4.0.1: + version "4.0.1" + resolved "https://registry.npmmirror.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz" + integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== + dependencies: + alphanum-sort "^1.0.0" + postcss "^7.0.0" + uniqs "^2.0.0" + +postcss-value-parser@^3.0.0, postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: + version "3.3.1" + resolved "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss-value-parser@^4.0.2: + version "4.2.0" + resolved "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss-value-parser@^4.1.0: + version "4.2.0" + resolved "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss-zindex@^2.0.1: + version "2.2.0" + resolved "https://registry.npmmirror.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz" + integrity sha512-uhRZ2hRgj0lorxm9cr62B01YzpUe63h0RXMXQ4gWW3oa2rpJh+FJAiEAytaFCPU/VgaBS+uW2SJ1XKyDNz1h4w== + dependencies: + has "^1.0.1" + postcss "^5.0.4" + uniqs "^2.0.0" + +postcss@^5.0.10: + version "5.2.18" + resolved "https://registry.npmmirror.com/postcss/-/postcss-5.2.18.tgz" + integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^5.0.11: + version "5.2.18" + resolved "https://registry.npmmirror.com/postcss/-/postcss-5.2.18.tgz" + integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^5.0.12: + version "5.2.18" + resolved "https://registry.npmmirror.com/postcss/-/postcss-5.2.18.tgz" + integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^5.0.13: + version "5.2.18" + resolved "https://registry.npmmirror.com/postcss/-/postcss-5.2.18.tgz" + integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^5.0.14: + version "5.2.18" + resolved "https://registry.npmmirror.com/postcss/-/postcss-5.2.18.tgz" + integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^5.0.16: + version "5.2.18" + resolved "https://registry.npmmirror.com/postcss/-/postcss-5.2.18.tgz" + integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^5.0.18: + version "5.2.18" + resolved "https://registry.npmmirror.com/postcss/-/postcss-5.2.18.tgz" + integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^5.0.2: + version "5.2.18" + resolved "https://registry.npmmirror.com/postcss/-/postcss-5.2.18.tgz" + integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^5.0.4: + version "5.2.18" + resolved "https://registry.npmmirror.com/postcss/-/postcss-5.2.18.tgz" + integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^5.0.5: + version "5.2.18" + resolved "https://registry.npmmirror.com/postcss/-/postcss-5.2.18.tgz" + integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^5.0.6: + version "5.2.18" + resolved "https://registry.npmmirror.com/postcss/-/postcss-5.2.18.tgz" + integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^5.0.8: + version "5.2.18" + resolved "https://registry.npmmirror.com/postcss/-/postcss-5.2.18.tgz" + integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^5.2.16: + version "5.2.18" + resolved "https://registry.npmmirror.com/postcss/-/postcss-5.2.18.tgz" + integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^6.0.1: + version "6.0.23" + resolved "https://registry.npmmirror.com/postcss/-/postcss-6.0.23.tgz" + integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== + dependencies: + chalk "^2.4.1" + source-map "^0.6.1" + supports-color "^5.4.0" + +postcss@^6.0.23: + version "6.0.23" + resolved "https://registry.npmmirror.com/postcss/-/postcss-6.0.23.tgz" + integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== + dependencies: + chalk "^2.4.1" + source-map "^0.6.1" + supports-color "^5.4.0" + +postcss@^6.0.8: + version "6.0.23" + resolved "https://registry.npmmirror.com/postcss/-/postcss-6.0.23.tgz" + integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== + dependencies: + chalk "^2.4.1" + source-map "^0.6.1" + supports-color "^5.4.0" + +postcss@^7.0.0, postcss@^7.0.27, postcss@^7.0.32: + version "7.0.39" + resolved "https://registry.npmmirror.com/postcss/-/postcss-7.0.39.tgz" + integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== + dependencies: + picocolors "^0.2.1" + source-map "^0.6.1" + +postcss@^7.0.1: + version "7.0.39" + resolved "https://registry.npmmirror.com/postcss/-/postcss-7.0.39.tgz" + integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== + dependencies: + picocolors "^0.2.1" + source-map "^0.6.1" + +postcss@^7.0.36: + version "7.0.39" + resolved "https://registry.npmmirror.com/postcss/-/postcss-7.0.39.tgz" + integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== + dependencies: + picocolors "^0.2.1" + source-map "^0.6.1" + +postcss@^8.4.14, postcss@^8.4.48: + version "8.4.49" + resolved "https://registry.npmmirror.com/postcss/-/postcss-8.4.49.tgz" + integrity sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA== + dependencies: + nanoid "^3.3.7" + picocolors "^1.1.1" + source-map-js "^1.2.1" + +preact@^10.4.8: + version "10.25.3" + resolved "https://registry.npmmirror.com/preact/-/preact-10.25.3.tgz" + integrity sha512-dzQmIFtM970z+fP9ziQ3yG4e3ULIbwZzJ734vaMVUTaKQ2+Ru1Ou/gjshOYVHCcd1rpAelC6ngjvjDXph98unQ== + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.1.2.tgz" + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== + +prepend-http@^1.0.0: + version "1.0.4" + resolved "https://registry.npmmirror.com/prepend-http/-/prepend-http-1.0.4.tgz" + integrity sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg== + +"prettier@^1.18.2 || ^2.0.0": + version "2.8.8" + resolved "https://registry.npmmirror.com/prettier/-/prettier-2.8.8.tgz" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== + +prettier@^1.7.0: + version "1.19.1" + resolved "https://registry.npmmirror.com/prettier/-/prettier-1.19.1.tgz" + integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== + +pretty-error@^2.0.2: + version "2.1.2" + resolved "https://registry.npmmirror.com/pretty-error/-/pretty-error-2.1.2.tgz" + integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== + dependencies: + lodash "^4.17.20" + renderkid "^2.0.4" + +pretty-error@^2.1.1: + version "2.1.2" + resolved "https://registry.npmmirror.com/pretty-error/-/pretty-error-2.1.2.tgz" + integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== + dependencies: + lodash "^4.17.20" + renderkid "^2.0.4" + +pretty-format@^27.5.1: + version "27.5.1" + resolved "https://registry.npmmirror.com/pretty-format/-/pretty-format-27.5.1.tgz" + integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== + dependencies: + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" + react-is "^17.0.1" + +private@^0.1.6, private@^0.1.8: + version "0.1.8" + resolved "https://registry.npmmirror.com/private/-/private-0.1.8.tgz" + integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.npmmirror.com/process/-/process-0.11.10.tgz" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + +process@~0.5.1: + version "0.5.2" + resolved "https://registry.npmmirror.com/process/-/process-0.5.2.tgz" + integrity sha512-oNpcutj+nYX2FjdEW7PGltWhXulAnFlM0My/k48L90hARCOJtvBbQXc/6itV2jDvU5xAAtonP+r6wmQgCcbAUA== + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/promise-inflight/-/promise-inflight-1.0.1.tgz" + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== + +prompts@^2.0.1: + version "2.4.2" + resolved "https://registry.npmmirror.com/prompts/-/prompts-2.4.2.tgz" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz" + integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/pseudomap/-/pseudomap-1.0.2.tgz" + integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== + +psl@^1.1.28, psl@^1.1.33: + version "1.15.0" + resolved "https://registry.npmmirror.com/psl/-/psl-1.15.0.tgz" + integrity sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w== + dependencies: + punycode "^2.3.1" + +public-encrypt@^4.0.3: + version "4.0.3" + resolved "https://registry.npmmirror.com/public-encrypt/-/public-encrypt-4.0.3.tgz" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pump@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/pump/-/pump-2.0.1.tgz" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/pump/-/pump-2.0.1.tgz" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.2" + resolved "https://registry.npmmirror.com/pump/-/pump-3.0.2.tgz" + integrity sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.npmmirror.com/pumpify/-/pumpify-1.5.1.tgz" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@^1.2.4: + version "1.4.1" + resolved "https://registry.npmmirror.com/punycode/-/punycode-1.4.1.tgz" + integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== + +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.npmmirror.com/punycode/-/punycode-1.4.1.tgz" + integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== + +punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.1: + version "2.3.1" + resolved "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +q@^1.1.2: + version "1.5.1" + resolved "https://registry.npmmirror.com/q/-/q-1.5.1.tgz" + integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== + +qs@^6.12.3: + version "6.13.1" + resolved "https://registry.npmmirror.com/qs/-/qs-6.13.1.tgz" + integrity sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg== + dependencies: + side-channel "^1.0.6" + +qs@~6.5.2: + version "6.5.3" + resolved "https://registry.npmmirror.com/qs/-/qs-6.5.3.tgz" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== + +qs@6.13.0: + version "6.13.0" + resolved "https://registry.npmmirror.com/qs/-/qs-6.13.0.tgz" + integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== + dependencies: + side-channel "^1.0.6" + +query-string@^4.1.0: + version "4.3.4" + resolved "https://registry.npmmirror.com/query-string/-/query-string-4.3.4.tgz" + integrity sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q== + dependencies: + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.npmmirror.com/querystring-es3/-/querystring-es3-0.2.1.tgz" + integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA== + +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.npmmirror.com/querystringify/-/querystringify-2.2.0.tgz" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + +raf@^3.4.0, raf@^3.4.1: + version "3.4.1" + resolved "https://registry.npmmirror.com/raf/-/raf-3.4.1.tgz" + integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== + dependencies: + performance-now "^2.1.0" + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.4: + version "1.0.4" + resolved "https://registry.npmmirror.com/randomfill/-/randomfill-1.0.4.tgz" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@^1.0.3, range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.npmmirror.com/raw-body/-/raw-body-2.5.2.tgz" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +react-is@^17.0.1: + version "17.0.2" + resolved "https://registry.npmmirror.com/react-is/-/react-is-17.0.2.tgz" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz" + integrity sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A== + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz" + integrity sha512-1orxQfbWGUiTn9XsPlChs6rLie/AV9jwZTGmu2NZw/CUDJQchXJFYE0Fq5j7+n558T1JhDWLdhyd1Zj+wLY//w== + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/read-pkg/-/read-pkg-1.1.0.tgz" + integrity sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ== + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/read-pkg/-/read-pkg-2.0.0.tgz" + integrity sha512-eFIBOPW7FGjzBuk3hdXEuNSiTZS/xEMlH49HxMyzb0hyPfu4EhVjT2DH32K1hSSmVq4sebAWnZuuY5auISUTGA== + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +read-pkg@^5.0.0: + version "5.2.0" + resolved "https://registry.npmmirror.com/read-pkg/-/read-pkg-5.2.0.tgz" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +read-pkg@^5.1.1: + version "5.2.0" + resolved "https://registry.npmmirror.com/read-pkg/-/read-pkg-5.2.0.tgz" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@^2.3.8, readable-stream@~2.3.6, "readable-stream@1 || 2": + version "2.3.8" + resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.6: + version "3.6.2" + resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@^3.4.0: + version "3.6.2" + resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.npmmirror.com/readdirp/-/readdirp-2.2.1.tgz" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/redent/-/redent-1.0.0.tgz" + integrity sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g== + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + +reduce-css-calc@^1.2.6: + version "1.3.0" + resolved "https://registry.npmmirror.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz" + integrity sha512-0dVfwYVOlf/LBA2ec4OwQ6p3X9mYxn/wOl2xTcLwjnPYrkgEfPx3VI4eGCH3rQLlPISG5v9I9bkZosKsNRTRKA== + dependencies: + balanced-match "^0.4.2" + math-expression-evaluator "^1.2.14" + reduce-function-call "^1.0.1" + +reduce-function-call@^1.0.1: + version "1.0.3" + resolved "https://registry.npmmirror.com/reduce-function-call/-/reduce-function-call-1.0.3.tgz" + integrity sha512-Hl/tuV2VDgWgCSEeWMLwxLZqX7OK59eU1guxXsRKTAyeYimivsKdtcV4fu3r710tpG5GmDKDhQ0HSZLExnNmyQ== + dependencies: + balanced-match "^1.0.0" + +reflect.getprototypeof@^1.0.6, reflect.getprototypeof@^1.0.9: + version "1.0.9" + resolved "https://registry.npmmirror.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.9.tgz" + integrity sha512-r0Ay04Snci87djAsI4U+WNRcSw5S4pOH7qFjd/veA5gC7TbqESR3tcj28ia95L/fYUDw11JKP7uqUKUAfVvV5Q== + dependencies: + call-bind "^1.0.8" + define-properties "^1.2.1" + dunder-proto "^1.0.1" + es-abstract "^1.23.6" + es-errors "^1.3.0" + get-intrinsic "^1.2.6" + gopd "^1.2.0" + which-builtin-type "^1.2.1" + +regenerate-unicode-properties@^10.2.0: + version "10.2.0" + resolved "https://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz" + integrity sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.2.1, regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regenerator-runtime@^0.13.4: + version "0.13.11" + resolved "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + +regenerator-runtime@^0.13.7: + version "0.13.11" + resolved "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + +regenerator-runtime@^0.14.0: + version "0.14.1" + resolved "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + +regenerator-transform@^0.10.0: + version "0.10.1" + resolved "https://registry.npmmirror.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz" + integrity sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q== + dependencies: + babel-runtime "^6.18.0" + babel-types "^6.19.0" + private "^0.1.6" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/regex-not/-/regex-not-1.0.2.tgz" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regex-parser@^2.2.9: + version "2.3.0" + resolved "https://registry.npmmirror.com/regex-parser/-/regex-parser-2.3.0.tgz" + integrity sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg== + +regexp.prototype.flags@^1.5.1, regexp.prototype.flags@^1.5.3: + version "1.5.3" + resolved "https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz" + integrity sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-errors "^1.3.0" + set-function-name "^2.0.2" + +regexpp@^1.0.1: + version "1.1.0" + resolved "https://registry.npmmirror.com/regexpp/-/regexpp-1.1.0.tgz" + integrity sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw== + +regexpp@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/regexpp/-/regexpp-2.0.1.tgz" + integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== + +regexpu-core@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/regexpu-core/-/regexpu-core-2.0.0.tgz" + integrity sha512-tJ9+S4oKjxY8IZ9jmjnp/mtytu1u3iyIQAfmI51IKWH6bFf7XR1ybtaO6j7INhZKXOTYADk7V5qxaqLkmNxiZQ== + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +regexpu-core@^6.2.0: + version "6.2.0" + resolved "https://registry.npmmirror.com/regexpu-core/-/regexpu-core-6.2.0.tgz" + integrity sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA== + dependencies: + regenerate "^1.4.2" + regenerate-unicode-properties "^10.2.0" + regjsgen "^0.8.0" + regjsparser "^0.12.0" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/regjsgen/-/regjsgen-0.2.0.tgz" + integrity sha512-x+Y3yA24uF68m5GA+tBjbGYo64xXVJpbToBaWCoSNSc1hdk6dfctaRWrNFTVJZIIhL5GxW8zwjoixbnifnK59g== + +regjsgen@^0.8.0: + version "0.8.0" + resolved "https://registry.npmmirror.com/regjsgen/-/regjsgen-0.8.0.tgz" + integrity sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== + +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.npmmirror.com/regjsparser/-/regjsparser-0.1.5.tgz" + integrity sha512-jlQ9gYLfk2p3V5Ag5fYhA7fv7OHzd1KUH0PRP46xc3TgwjwgROIW572AfYg/X9kaNq/LJnu6oJcFRXlIrGoTRw== + dependencies: + jsesc "~0.5.0" + +regjsparser@^0.12.0: + version "0.12.0" + resolved "https://registry.npmmirror.com/regjsparser/-/regjsparser-0.12.0.tgz" + integrity sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ== + dependencies: + jsesc "~3.0.2" + +regression@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/regression/-/regression-2.0.1.tgz" + integrity sha512-A4XYsc37dsBaNOgEjkJKzfJlE394IMmUPlI/p3TTI9u3T+2a+eox5Pr/CPUqF0eszeWZJPAc6QkroAhuUpWDJQ== + +relateurl@^0.2.7, relateurl@0.2.x: + version "0.2.7" + resolved "https://registry.npmmirror.com/relateurl/-/relateurl-0.2.7.tgz" + integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.npmmirror.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz" + integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== + +renderkid@^2.0.4: + version "2.0.7" + resolved "https://registry.npmmirror.com/renderkid/-/renderkid-2.0.7.tgz" + integrity sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ== + dependencies: + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^3.0.1" + +repeat-element@^1.1.2: + version "1.1.4" + resolved "https://registry.npmmirror.com/repeat-element/-/repeat-element-1.1.4.tgz" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== + +repeat-string@^1.5.2, repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.npmmirror.com/repeat-string/-/repeat-string-1.6.1.tgz" + integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/repeating/-/repeating-2.0.1.tgz" + integrity sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A== + dependencies: + is-finite "^1.0.0" + +request-promise-core@1.1.4: + version "1.1.4" + resolved "https://registry.npmmirror.com/request-promise-core/-/request-promise-core-1.1.4.tgz" + integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== + dependencies: + lodash "^4.17.19" + +request-promise-native@^1.0.7: + version "1.0.9" + resolved "https://registry.npmmirror.com/request-promise-native/-/request-promise-native-1.0.9.tgz" + integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== + dependencies: + request-promise-core "1.1.4" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request@^2.34, request@^2.87.0: + version "2.88.2" + resolved "https://registry.npmmirror.com/request/-/request-2.88.2.tgz" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-from-string@^1.1.0: + version "1.2.1" + resolved "https://registry.npmmirror.com/require-from-string/-/require-from-string-1.2.1.tgz" + integrity sha512-H7AkJWMobeskkttHyhTVtS0fxpFLjxhbfMa6Bk3wimP7sdPRGL3EyCg3sAQenFfAe+xQ+oAc85Nmtvq0ROM83Q== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.npmmirror.com/require-from-string/-/require-from-string-2.0.2.tgz" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/require-main-filename/-/require-main-filename-1.0.1.tgz" + integrity sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug== + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/require-main-filename/-/require-main-filename-2.0.0.tgz" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +require-uncached@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/require-uncached/-/require-uncached-1.0.3.tgz" + integrity sha512-Xct+41K3twrbBHdxAgMoOS+cNcoqIjfM2/VxBF4LL2hVph7YsF8VSKyQ3BDFZwEVbok9yeDl2le/qo0S77WG2w== + dependencies: + caller-path "^0.1.0" + resolve-from "^1.0.0" + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +resize-observer-polyfill@^1.5.1: + version "1.5.1" + resolved "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz" + integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== + +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz" + integrity sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg== + dependencies: + resolve-from "^3.0.0" + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/resolve-from/-/resolve-from-1.0.1.tgz" + integrity sha512-kT10v4dhrlLNcnO084hEjvXCI1wUG9qZLoz2RogxqDQQYy7IxjI/iMUkOtQTNEh6rzHxvdQWHsJyel1pKOVCxg== + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/resolve-from/-/resolve-from-3.0.0.tgz" + integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/resolve-from/-/resolve-from-5.0.0.tgz" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-url-loader@^2.1.1: + version "2.3.2" + resolved "https://registry.npmmirror.com/resolve-url-loader/-/resolve-url-loader-2.3.2.tgz" + integrity sha512-sc/UVgiADdoTc+4cGPB7cUCnlEkzlxD1NXHw4oa9qA0fp30H8mAQ2ePJBP9MQ029DUuhEPouhNdvzT37pBCV0g== + dependencies: + adjust-sourcemap-loader "^1.1.0" + camelcase "^4.1.0" + convert-source-map "^1.5.1" + loader-utils "^1.1.0" + lodash.defaults "^4.0.0" + rework "^1.0.1" + rework-visit "^1.0.0" + source-map "^0.5.7" + urix "^0.1.0" + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.npmmirror.com/resolve-url/-/resolve-url-0.2.1.tgz" + integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== + +resolve.exports@^1.1.0: + version "1.1.1" + resolved "https://registry.npmmirror.com/resolve.exports/-/resolve.exports-1.1.1.tgz" + integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== + +resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.4, resolve@^1.4.0, resolve@^1.8.1, resolve@~1.22.6: + version "1.22.10" + resolved "https://registry.npmmirror.com/resolve/-/resolve-1.22.10.tgz" + integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== + dependencies: + is-core-module "^2.16.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/restore-cursor/-/restore-cursor-2.0.0.tgz" + integrity sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q== + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/restore-cursor/-/restore-cursor-3.1.0.tgz" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.npmmirror.com/ret/-/ret-0.1.15.tgz" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.npmmirror.com/retry/-/retry-0.12.0.tgz" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + +rework-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/rework-visit/-/rework-visit-1.0.0.tgz" + integrity sha512-W6V2fix7nCLUYX1v6eGPrBOZlc03/faqzP4sUxMAJMBMOPYhfV/RyLegTufn5gJKaOITyi+gvf0LXDZ9NzkHnQ== + +rework@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/rework/-/rework-1.0.1.tgz" + integrity sha512-eEjL8FdkdsxApd0yWVZgBGzfCQiT8yqSc2H1p4jpZpQdtz7ohETiDMoje5PlM8I9WgkqkreVxFUKYOiJdVWDXw== + dependencies: + convert-source-map "^0.3.3" + css "^2.0.0" + +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/rgb-regex/-/rgb-regex-1.0.1.tgz" + integrity sha512-gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w== + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/rgba-regex/-/rgba-regex-1.0.0.tgz" + integrity sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg== + +rgbcolor@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/rgbcolor/-/rgbcolor-1.0.1.tgz" + integrity sha512-9aZLIrhRaD97sgVhtJOW6ckOEh6/GnvQtdVNfdZ6s67+3/XwLS9lBcQYzEEhYVeUowN7pRzMLsyGhK2i/xvWbw== + +right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.npmmirror.com/right-align/-/right-align-0.1.3.tgz" + integrity sha512-yqINtL/G7vs2v+dFIZmFUDbnVyFUJFKd6gK22Kgo6R4jfJGFtisKyncWDDULgjfqf4ASQuIQyjJ7XZ+3aWpsAg== + dependencies: + align-text "^0.1.1" + +rimraf@^2.2.8: + version "2.7.1" + resolved "https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^2.5.4: + version "2.7.1" + resolved "https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^2.6.1: + version "2.7.1" + resolved "https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^2.6.2: + version "2.7.1" + resolved "https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^2.7.1: + version "2.7.1" + resolved "https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.0: + version "3.0.2" + resolved "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rimraf@~2.6.2: + version "2.6.3" + resolved "https://registry.npmmirror.com/rimraf/-/rimraf-2.6.3.tgz" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +rimraf@2.6.3: + version "2.6.3" + resolved "https://registry.npmmirror.com/rimraf/-/rimraf-2.6.3.tgz" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.npmmirror.com/ripemd160/-/ripemd160-2.0.2.tgz" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rollup@^0.25.8: + version "0.25.8" + resolved "https://registry.npmmirror.com/rollup/-/rollup-0.25.8.tgz" + integrity sha512-a2S4Bh3bgrdO4BhKr2E4nZkjTvrJ2m2bWjMTzVYtoqSCn0HnuxosXnaJUHrMEziOWr3CzL9GjilQQKcyCQpJoA== + dependencies: + chalk "^1.1.1" + minimist "^1.2.0" + source-map-support "^0.3.2" + +run-async@^2.2.0: + version "2.4.1" + resolved "https://registry.npmmirror.com/run-async/-/run-async-2.4.1.tgz" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/run-queue/-/run-queue-1.0.3.tgz" + integrity sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg== + dependencies: + aproba "^1.1.1" + +rust-result@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/rust-result/-/rust-result-1.0.0.tgz" + integrity sha512-6cJzSBU+J/RJCF063onnQf0cDUOHs9uZI1oroSGnHOph+CQTIJ5Pp2hK5kEQq1+7yE/EEWfulSNXAQ2jikPthA== + dependencies: + individual "^2.0.0" + +rw@^1.3.2, rw@1: + version "1.3.3" + resolved "https://registry.npmmirror.com/rw/-/rw-1.3.3.tgz" + integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== + +rx-lite-aggregates@^4.0.8: + version "4.0.8" + resolved "https://registry.npmmirror.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz" + integrity sha512-3xPNZGW93oCjiO7PtKxRK6iOVYBWBvtf9QHDfU23Oc+dLIQmAV//UnyXV/yihv81VS/UqoQPk4NegS8EFi55Hg== + dependencies: + rx-lite "*" + +rx-lite@*, rx-lite@^4.0.8: + version "4.0.8" + resolved "https://registry.npmmirror.com/rx-lite/-/rx-lite-4.0.8.tgz" + integrity sha512-Cun9QucwK6MIrp3mry/Y7hqD1oFqTYLQ4pGxaHTjIdaFDWRGGLikqp6u8LcWJnzpoALg9hap+JGk8sFIUuEGNA== + +rxjs@^6.4.0: + version "6.6.7" + resolved "https://registry.npmmirror.com/rxjs/-/rxjs-6.6.7.tgz" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== + dependencies: + tslib "^1.9.0" + +safe-array-concat@^1.1.2, safe-array-concat@^1.1.3: + version "1.1.3" + resolved "https://registry.npmmirror.com/safe-array-concat/-/safe-array-concat-1.1.3.tgz" + integrity sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.2" + get-intrinsic "^1.2.6" + has-symbols "^1.1.0" + isarray "^2.0.5" + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@>=5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@^5.2.1: + version "5.2.1" + resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@5.2.1: + version "5.2.1" + resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-json-parse@4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/safe-json-parse/-/safe-json-parse-4.0.0.tgz" + integrity sha512-RjZPPHugjK0TOzFrLZ8inw44s9bKox99/0AZW9o/BEQVrJfhI+fIHMErnPyRa89/yRXUUr93q+tiN6zhoVV4wQ== + dependencies: + rust-result "^1.0.0" + +safe-push-apply@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/safe-push-apply/-/safe-push-apply-1.0.0.tgz" + integrity sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA== + dependencies: + es-errors "^1.3.0" + isarray "^2.0.5" + +safe-regex-test@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/safe-regex-test/-/safe-regex-test-1.1.0.tgz" + integrity sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + is-regex "^1.2.1" + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/safe-regex/-/safe-regex-1.1.0.tgz" + integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== + dependencies: + ret "~0.1.10" + +safer-buffer@^2.0.2, safer-buffer@^2.1.0, "safer-buffer@>= 2.1.2 < 3", safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sax@~1.2.1, sax@~1.2.4: + version "1.2.4" + resolved "https://registry.npmmirror.com/sax/-/sax-1.2.4.tgz" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +saxes@^5.0.1: + version "5.0.1" + resolved "https://registry.npmmirror.com/saxes/-/saxes-5.0.1.tgz" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + +schema-utils@^0.3.0: + version "0.3.0" + resolved "https://registry.npmmirror.com/schema-utils/-/schema-utils-0.3.0.tgz" + integrity sha512-QaVYBaD9U8scJw2EBWnCBY+LJ0AD+/2edTaigDs0XLDLBfJmSUK9KGqktg1rb32U3z4j/XwvFwHHH1YfbYFd7Q== + dependencies: + ajv "^5.0.0" + +schema-utils@^0.4.5: + version "0.4.7" + resolved "https://registry.npmmirror.com/schema-utils/-/schema-utils-0.4.7.tgz" + integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ== + dependencies: + ajv "^6.1.0" + ajv-keywords "^3.1.0" + +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/schema-utils/-/schema-utils-1.0.0.tgz" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +schema-utils@^2.6.1: + version "2.7.1" + resolved "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.1.tgz" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== + dependencies: + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" + +schema-utils@^2.6.5: + version "2.7.1" + resolved "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.1.tgz" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== + dependencies: + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" + +schema-utils@^3.0.0: + version "3.3.0" + resolved "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.3.0.tgz" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +schema-utils@^4.0.0: + version "4.3.2" + resolved "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.3.2.tgz" + integrity sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.9.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.1.0" + +schema-utils@^4.3.0: + version "4.3.2" + resolved "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.3.2.tgz" + integrity sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.9.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.1.0" + +schema-utils@^4.3.2: + version "4.3.2" + resolved "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.3.2.tgz" + integrity sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.9.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.1.0" + +screenfull@^6.0.2: + version "6.0.2" + resolved "https://registry.npmmirror.com/screenfull/-/screenfull-6.0.2.tgz" + integrity sha512-AQdy8s4WhNvUZ6P8F6PB21tSPIYKniic+Ogx0AacBMjKP1GUHN2E9URxQHtCusiwxudnCKkdy4GrHXPPJSkCCw== + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/select-hose/-/select-hose-2.0.0.tgz" + integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== + +select@^1.1.2: + version "1.1.2" + resolved "https://registry.npmmirror.com/select/-/select-1.1.2.tgz" + integrity sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA== + +selfsigned@^1.10.8, selfsigned@^1.9.1: + version "1.10.14" + resolved "https://registry.npmmirror.com/selfsigned/-/selfsigned-1.10.14.tgz" + integrity sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA== + dependencies: + node-forge "^0.10.0" + +semver@^5.3.0: + version "5.7.2" + resolved "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + +semver@^5.5.0, semver@^5.5.1: + version "5.7.2" + resolved "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + +semver@^5.6.0: + version "5.7.2" + resolved "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + +semver@^6.0.0, semver@^6.3.0: + version "6.3.1" + resolved "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^6.3.1: + version "6.3.1" + resolved "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.6, semver@^7.5.3, semver@^7.6.0: + version "7.6.3" + resolved "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz" + integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== + +"semver@2 || 3 || 4 || 5": + version "5.7.2" + resolved "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + +send@0.19.0: + version "0.19.0" + resolved "https://registry.npmmirror.com/send/-/send-0.19.0.tgz" + integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serialize-javascript@^1.4.0: + version "1.9.1" + resolved "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-1.9.1.tgz" + integrity sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A== + +serialize-javascript@^2.1.2: + version "2.1.2" + resolved "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz" + integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== + +serialize-javascript@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" + +serialize-javascript@^6.0.2: + version "6.0.2" + resolved "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== + dependencies: + randombytes "^2.1.0" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.npmmirror.com/serve-index/-/serve-index-1.9.1.tgz" + integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.16.2: + version "1.16.2" + resolved "https://registry.npmmirror.com/serve-static/-/serve-static-1.16.2.tgz" + integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw== + dependencies: + encodeurl "~2.0.0" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.19.0" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/set-blocking/-/set-blocking-2.0.0.tgz" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + +set-function-length@^1.2.2: + version "1.2.2" + resolved "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.2.tgz" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + +set-function-name@^2.0.2: + version "2.0.2" + resolved "https://registry.npmmirror.com/set-function-name/-/set-function-name-2.0.2.tgz" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.2" + +set-proto@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/set-proto/-/set-proto-1.0.0.tgz" + integrity sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw== + dependencies: + dunder-proto "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/set-value/-/set-value-2.0.1.tgz" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.npmmirror.com/setimmediate/-/setimmediate-1.0.5.tgz" + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.1.0.tgz" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.npmmirror.com/sha.js/-/sha.js-2.4.11.tgz" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shallow-equal@^1.0.0: + version "1.2.1" + resolved "https://registry.npmmirror.com/shallow-equal/-/shallow-equal-1.2.1.tgz" + integrity sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA== + +shallowequal@^1.0.2: + version "1.1.0" + resolved "https://registry.npmmirror.com/shallowequal/-/shallowequal-1.1.0.tgz" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/shebang-command/-/shebang-command-1.2.0.tgz" + integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-1.0.0.tgz" + integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@^1.8.1: + version "1.8.2" + resolved "https://registry.npmmirror.com/shell-quote/-/shell-quote-1.8.2.tgz" + integrity sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA== + +side-channel-list@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/side-channel-list/-/side-channel-list-1.0.0.tgz" + integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA== + dependencies: + es-errors "^1.3.0" + object-inspect "^1.13.3" + +side-channel-map@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/side-channel-map/-/side-channel-map-1.0.1.tgz" + integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + +side-channel-weakmap@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz" + integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + side-channel-map "^1.0.1" + +side-channel@^1.0.6, side-channel@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/side-channel/-/side-channel-1.1.0.tgz" + integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== + dependencies: + es-errors "^1.3.0" + object-inspect "^1.13.3" + side-channel-list "^1.0.0" + side-channel-map "^1.0.1" + side-channel-weakmap "^1.0.2" + +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.7" + resolved "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +simple-statistics@^6.1.0: + version "6.1.1" + resolved "https://registry.npmmirror.com/simple-statistics/-/simple-statistics-6.1.1.tgz" + integrity sha512-zGwn0DDRa9Zel4H4n2pjTFIyGoAGpnpjrGIctreCxj5XWrcx9v7Xy7270FkC967WMmcvuc8ZU7m0ZG+hGN7gAA== + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.npmmirror.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.npmmirror.com/sisteransi/-/sisteransi-1.0.5.tgz" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/slash/-/slash-1.0.0.tgz" + integrity sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg== + +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/slash/-/slash-2.0.0.tgz" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-2.1.0.tgz" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + +slice-ansi@1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-1.0.0.tgz" + integrity sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg== + dependencies: + is-fullwidth-code-point "^2.0.0" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.npmmirror.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.npmmirror.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.npmmirror.com/snapdragon/-/snapdragon-0.8.2.tgz" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +sockjs-client@^1.5.0: + version "1.6.1" + resolved "https://registry.npmmirror.com/sockjs-client/-/sockjs-client-1.6.1.tgz" + integrity sha512-2g0tjOR+fRs0amxENLi/q5TiJTqY+WXFOzb5UwXndlK6TO3U/mirZznpx6w34HVMoc3g7cY24yC/ZMIYnDlfkw== + dependencies: + debug "^3.2.7" + eventsource "^2.0.2" + faye-websocket "^0.11.4" + inherits "^2.0.4" + url-parse "^1.5.10" + +sockjs-client@1.1.5: + version "1.1.5" + resolved "https://registry.npmmirror.com/sockjs-client/-/sockjs-client-1.1.5.tgz" + integrity sha512-PmPRkAYIeuRgX+ZSieViT4Z3Q23bLS2Itm/ck1tSf5P0/yVuFDiI5q9mcnpXoMdToaPSRS9MEyUx/aaBxrFzyw== + dependencies: + debug "^2.6.6" + eventsource "0.1.6" + faye-websocket "~0.11.0" + inherits "^2.0.1" + json3 "^3.3.2" + url-parse "^1.1.8" + +sockjs@^0.3.21: + version "0.3.24" + resolved "https://registry.npmmirror.com/sockjs/-/sockjs-0.3.24.tgz" + integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== + dependencies: + faye-websocket "^0.11.3" + uuid "^8.3.2" + websocket-driver "^0.7.4" + +sockjs@0.3.19: + version "0.3.19" + resolved "https://registry.npmmirror.com/sockjs/-/sockjs-0.3.19.tgz" + integrity sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw== + dependencies: + faye-websocket "^0.10.0" + uuid "^3.0.1" + +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.npmmirror.com/sort-keys/-/sort-keys-1.1.2.tgz" + integrity sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg== + dependencies: + is-plain-obj "^1.0.0" + +sortablejs@1.10.2: + version "1.10.2" + resolved "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.10.2.tgz" + integrity sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A== + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/source-list-map/-/source-list-map-2.0.1.tgz" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-js@^1.2.0, source-map-js@^1.2.1: + version "1.2.1" + resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz" + integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== + +source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: + version "0.5.3" + resolved "https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.3.2: + version "0.3.3" + resolved "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.3.3.tgz" + integrity sha512-9O4+y9n64RewmFoKUZ/5Tx9IHIcXM6Q+RTSw6ehnqybUz4a7iwR3Eaw80uLtqqQ5D0C+5H03D4KKGo9PdP33Gg== + dependencies: + source-map "0.1.32" + +source-map-support@^0.4.15: + version "0.4.18" + resolved "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.4.18.tgz" + integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== + dependencies: + source-map "^0.5.6" + +source-map-support@^0.5.6, source-map-support@~0.5.12, source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.1" + resolved "https://registry.npmmirror.com/source-map-url/-/source-map-url-0.4.1.tgz" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + +source-map@^0.5.3: + version "0.5.7" + resolved "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +source-map@^0.5.7: + version "0.5.7" + resolved "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.3: + version "0.7.4" + resolved "https://registry.npmmirror.com/source-map/-/source-map-0.7.4.tgz" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + +source-map@~0.5.1: + version "0.5.7" + resolved "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +source-map@0.1.32: + version "0.1.32" + resolved "https://registry.npmmirror.com/source-map/-/source-map-0.1.32.tgz" + integrity sha512-htQyLrrRLkQ87Zfrir4/yN+vAUd6DNjVayEjTSHXu29AYQJw57I4/xEL/M6p6E/woPNJwvZt6rVlzc7gFEJccQ== + dependencies: + amdefine ">=0.0.4" + +spdx-correct@^3.0.0: + version "3.2.0" + resolved "https://registry.npmmirror.com/spdx-correct/-/spdx-correct-3.2.0.tgz" + integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.5.0" + resolved "https://registry.npmmirror.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz" + integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.npmmirror.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.20" + resolved "https://registry.npmmirror.com/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz" + integrity sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/spdy-transport/-/spdy-transport-3.0.0.tgz" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.0, spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/spdy/-/spdy-4.0.2.tgz" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.npmmirror.com/split-string/-/split-string-3.1.0.tgz" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +sshpk@^1.7.0: + version "1.18.0" + resolved "https://registry.npmmirror.com/sshpk/-/sshpk-1.18.0.tgz" + integrity sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +ssri@^5.2.4: + version "5.3.0" + resolved "https://registry.npmmirror.com/ssri/-/ssri-5.3.0.tgz" + integrity sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ== + dependencies: + safe-buffer "^5.1.1" + +ssri@^6.0.1: + version "6.0.2" + resolved "https://registry.npmmirror.com/ssri/-/ssri-6.0.2.tgz" + integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== + dependencies: + figgy-pudding "^3.5.1" + +ssri@^7.0.0: + version "7.1.1" + resolved "https://registry.npmmirror.com/ssri/-/ssri-7.1.1.tgz" + integrity sha512-w+daCzXN89PseTL99MkA+fxJEcU3wfaE/ah0i0lnOlpG1CYLJ2ZjzEry68YBKfLs4JfoTShrTEsJkAZuNZ/stw== + dependencies: + figgy-pudding "^3.5.1" + minipass "^3.1.1" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.npmmirror.com/stable/-/stable-0.1.8.tgz" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +stack-utils@^2.0.3: + version "2.0.6" + resolved "https://registry.npmmirror.com/stack-utils/-/stack-utils-2.0.6.tgz" + integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== + dependencies: + escape-string-regexp "^2.0.0" + +stackblur-canvas@^2.0.0: + version "2.7.0" + resolved "https://registry.npmmirror.com/stackblur-canvas/-/stackblur-canvas-2.7.0.tgz" + integrity sha512-yf7OENo23AGJhBriGx0QivY5JP6Y1HbrrDI6WLt6C5auYZXlQrheoY8hD4ibekFKz1HOfE48Ww8kMWMnJD/zcQ== + +stackframe@^1.3.4: + version "1.3.4" + resolved "https://registry.npmmirror.com/stackframe/-/stackframe-1.3.4.tgz" + integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.npmmirror.com/static-extend/-/static-extend-0.1.2.tgz" + integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/stealthy-require/-/stealthy-require-1.1.1.tgz" + integrity sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g== + +stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.npmmirror.com/stream-browserify/-/stream-browserify-2.0.2.tgz" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.npmmirror.com/stream-each/-/stream-each-1.2.3.tgz" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.npmmirror.com/stream-http/-/stream-http-2.8.3.tgz" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-shift@^1.0.0: + version "1.0.3" + resolved "https://registry.npmmirror.com/stream-shift/-/stream-shift-1.0.3.tgz" + integrity sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ== + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz" + integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== + +string_decoder@^1.0.0, string_decoder@^1.1.1, string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +string-convert@^0.2.0: + version "0.2.1" + resolved "https://registry.npmmirror.com/string-convert/-/string-convert-0.2.1.tgz" + integrity sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A== + +string-length@^4.0.1: + version "4.0.2" + resolved "https://registry.npmmirror.com/string-length/-/string-length-4.0.2.tgz" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + +string-width@^1.0.1, string-width@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/string-width/-/string-width-1.0.2.tgz" + integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string-width@^2.0.0: + version "2.1.1" + resolved "https://registry.npmmirror.com/string-width/-/string-width-2.1.1.tgz" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^2.1.0: + version "2.1.1" + resolved "https://registry.npmmirror.com/string-width/-/string-width-2.1.1.tgz" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.npmmirror.com/string-width/-/string-width-2.1.1.tgz" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/string-width/-/string-width-3.1.0.tgz" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string.prototype.padend@^3.0.0: + version "3.1.6" + resolved "https://registry.npmmirror.com/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz" + integrity sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + +string.prototype.padstart@^3.0.0: + version "3.1.7" + resolved "https://registry.npmmirror.com/string.prototype.padstart/-/string.prototype.padstart-3.1.7.tgz" + integrity sha512-hc5ZFzw8H2Bl4AeHxE5s+CniFg+bPcr7lRRS189GCM6KhJQBACNRhtMsdcnpBNbjc1XisnUOqbP0c94RZU4GCw== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.4" + define-properties "^1.2.1" + es-abstract "^1.23.9" + es-object-atoms "^1.1.1" + +string.prototype.trim@^1.2.10, string.prototype.trim@~1.2.8: + version "1.2.10" + resolved "https://registry.npmmirror.com/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz" + integrity sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.2" + define-data-property "^1.1.4" + define-properties "^1.2.1" + es-abstract "^1.23.5" + es-object-atoms "^1.0.0" + has-property-descriptors "^1.0.2" + +string.prototype.trimend@^1.0.8, string.prototype.trimend@^1.0.9: + version "1.0.9" + resolved "https://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz" + integrity sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.2" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://registry.npmmirror.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-3.0.1.tgz" + integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-4.0.0.tgz" + integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-5.2.0.tgz" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/strip-bom/-/strip-bom-2.0.0.tgz" + integrity sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g== + dependencies: + is-utf8 "^0.2.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/strip-bom/-/strip-bom-3.0.0.tgz" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/strip-bom/-/strip-bom-4.0.0.tgz" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/strip-eof/-/strip-eof-1.0.0.tgz" + integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/strip-indent/-/strip-indent-1.0.1.tgz" + integrity sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA== + dependencies: + get-stdin "^4.0.1" + +strip-indent@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/strip-indent/-/strip-indent-2.0.0.tgz" + integrity sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA== + +strip-json-comments@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +style-loader@^0.19.0: + version "0.19.1" + resolved "https://registry.npmmirror.com/style-loader/-/style-loader-0.19.1.tgz" + integrity sha512-IRE+ijgojrygQi3rsqT0U4dd+UcPCqcVvauZpCnQrGAlEe+FUIyrK93bUDScamesjP08JlQNsFJU+KmPedP5Og== + dependencies: + loader-utils "^1.0.2" + schema-utils "^0.3.0" + +stylehacks@^4.0.0: + version "4.0.3" + resolved "https://registry.npmmirror.com/stylehacks/-/stylehacks-4.0.3.tgz" + integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/supports-color/-/supports-color-2.0.0.tgz" + integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== + +supports-color@^3.2.3: + version "3.2.3" + resolved "https://registry.npmmirror.com/supports-color/-/supports-color-3.2.3.tgz" + integrity sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A== + dependencies: + has-flag "^1.0.0" + +supports-color@^4.2.1: + version "4.5.0" + resolved "https://registry.npmmirror.com/supports-color/-/supports-color-4.5.0.tgz" + integrity sha512-ycQR/UbvI9xIlEdQT1TQqwoXtEldExbCEAJgRo5YXlmSKjv6ThHnP9/vwGa1gr19Gfw+LkFd7KqYMhzrRC5JYw== + dependencies: + has-flag "^2.0.0" + +supports-color@^5.1.0: + version "5.5.0" + resolved "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^5.3.0, supports-color@^5.4.0: + version "5.5.0" + resolved "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.npmmirror.com/supports-color/-/supports-color-6.1.0.tgz" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-hyperlinks@^2.0.0: + version "2.3.0" + resolved "https://registry.npmmirror.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz" + integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +svg-pathdata@^6.0.3: + version "6.0.3" + resolved "https://registry.npmmirror.com/svg-pathdata/-/svg-pathdata-6.0.3.tgz" + integrity sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw== + +svg-tags@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/svg-tags/-/svg-tags-1.0.0.tgz" + integrity sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA== + +svgo@^0.7.0: + version "0.7.2" + resolved "https://registry.npmmirror.com/svgo/-/svgo-0.7.2.tgz" + integrity sha512-jT/g9FFMoe9lu2IT6HtAxTA7RR2XOrmcrmCtGnyB/+GQnV6ZjNn+KOHZbZ35yL81+1F/aB6OeEsJztzBQ2EEwA== + dependencies: + coa "~1.0.1" + colors "~1.1.2" + csso "~2.3.1" + js-yaml "~3.7.0" + mkdirp "~0.5.1" + sax "~1.2.1" + whet.extend "~0.9.9" + +svgo@^1.0.0: + version "1.3.2" + resolved "https://registry.npmmirror.com/svgo/-/svgo-1.3.2.tgz" + integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== + dependencies: + chalk "^2.4.1" + coa "^2.0.2" + css-select "^2.0.0" + css-select-base-adapter "^0.1.1" + css-tree "1.0.0-alpha.37" + csso "^4.0.2" + js-yaml "^3.13.1" + mkdirp "~0.5.1" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" + +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.npmmirror.com/symbol-tree/-/symbol-tree-3.2.4.tgz" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +table@^5.2.3: + version "5.4.6" + resolved "https://registry.npmmirror.com/table/-/table-5.4.6.tgz" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== + dependencies: + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" + +table@4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/table/-/table-4.0.2.tgz" + integrity sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA== + dependencies: + ajv "^5.2.3" + ajv-keywords "^2.1.0" + chalk "^2.1.0" + lodash "^4.17.4" + slice-ansi "1.0.0" + string-width "^2.1.1" + +tapable@^0.2.7: + version "0.2.9" + resolved "https://registry.npmmirror.com/tapable/-/tapable-0.2.9.tgz" + integrity sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A== + +tapable@^1.0.0, tapable@^1.1.3: + version "1.1.3" + resolved "https://registry.npmmirror.com/tapable/-/tapable-1.1.3.tgz" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tapable@^2.1.1, tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +tapable@^2.2.1: + version "2.2.1" + resolved "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +tape@^4.5.1: + version "4.17.0" + resolved "https://registry.npmmirror.com/tape/-/tape-4.17.0.tgz" + integrity sha512-KCuXjYxCZ3ru40dmND+oCLsXyuA8hoseu2SS404Px5ouyS0A99v8X/mdiLqsR5MTAyamMBN7PRwt2Dv3+xGIxw== + dependencies: + "@ljharb/resumer" "~0.0.1" + "@ljharb/through" "~2.3.9" + call-bind "~1.0.2" + deep-equal "~1.1.1" + defined "~1.0.1" + dotignore "~0.1.2" + for-each "~0.3.3" + glob "~7.2.3" + has "~1.0.3" + inherits "~2.0.4" + is-regex "~1.1.4" + minimist "~1.2.8" + mock-property "~1.0.0" + object-inspect "~1.12.3" + resolve "~1.22.6" + string.prototype.trim "~1.2.8" + +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.npmmirror.com/terminal-link/-/terminal-link-2.1.1.tgz" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + +terser-webpack-plugin@^1.2.3: + version "1.4.6" + resolved "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.6.tgz" + integrity sha512-2lBVf/VMVIddjSn3GqbT90GvIJ/eYXJkt8cTzU7NbjKqK8fwv18Ftr4PlbF46b/e88743iZFL5Dtr/rC4hjIeA== + dependencies: + cacache "^12.0.2" + find-cache-dir "^2.1.0" + is-wsl "^1.1.0" + schema-utils "^1.0.0" + serialize-javascript "^4.0.0" + source-map "^0.6.1" + terser "^4.1.2" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" + +terser-webpack-plugin@^1.4.3: + version "1.4.6" + resolved "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.6.tgz" + integrity sha512-2lBVf/VMVIddjSn3GqbT90GvIJ/eYXJkt8cTzU7NbjKqK8fwv18Ftr4PlbF46b/e88743iZFL5Dtr/rC4hjIeA== + dependencies: + cacache "^12.0.2" + find-cache-dir "^2.1.0" + is-wsl "^1.1.0" + schema-utils "^1.0.0" + serialize-javascript "^4.0.0" + source-map "^0.6.1" + terser "^4.1.2" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" + +terser-webpack-plugin@^5.3.11: + version "5.3.14" + resolved "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz" + integrity sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw== + dependencies: + "@jridgewell/trace-mapping" "^0.3.25" + jest-worker "^27.4.5" + schema-utils "^4.3.0" + serialize-javascript "^6.0.2" + terser "^5.31.1" + +terser@^4.1.2: + version "4.8.1" + resolved "https://registry.npmmirror.com/terser/-/terser-4.8.1.tgz" + integrity sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +terser@^4.6.3: + version "4.8.1" + resolved "https://registry.npmmirror.com/terser/-/terser-4.8.1.tgz" + integrity sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +terser@^5.31.1: + version "5.39.0" + resolved "https://registry.npmmirror.com/terser/-/terser-5.39.0.tgz" + integrity sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.npmmirror.com/test-exclude/-/test-exclude-6.0.0.tgz" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +text-segmentation@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/text-segmentation/-/text-segmentation-1.0.3.tgz" + integrity sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw== + dependencies: + utrie "^1.0.2" + +text-table@^0.2.0, text-table@~0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.npmmirror.com/thenify-all/-/thenify-all-1.6.0.tgz" + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.npmmirror.com/thenify/-/thenify-3.3.1.tgz" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + +thread-loader@^2.1.2: + version "2.1.3" + resolved "https://registry.npmmirror.com/thread-loader/-/thread-loader-2.1.3.tgz" + integrity sha512-wNrVKH2Lcf8ZrWxDF/khdlLlsTMczdcwPA9VEK4c2exlEPynYWxi9op3nPTo5lAnDIkE0rQEB3VBP+4Zncc9Hg== + dependencies: + loader-runner "^2.3.1" + loader-utils "^1.1.0" + neo-async "^2.6.0" + +thread-loader@^3.0.0: + version "3.0.4" + resolved "https://registry.npmmirror.com/thread-loader/-/thread-loader-3.0.4.tgz" + integrity sha512-ByaL2TPb+m6yArpqQUZvP+5S1mZtXsEP7nWKKlAUTm7fCml8kB5s1uI3+eHRP2bk5mVYfRSBI7FFf+tWEyLZwA== + dependencies: + json-parse-better-errors "^1.0.2" + loader-runner "^4.1.0" + loader-utils "^2.0.0" + neo-async "^2.6.2" + schema-utils "^3.0.0" + +throat@^6.0.1: + version "6.0.2" + resolved "https://registry.npmmirror.com/throat/-/throat-6.0.2.tgz" + integrity sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ== + +throttle-debounce@^5.0.2: + version "5.0.2" + resolved "https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-5.0.2.tgz" + integrity sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A== + +through@^2.3.6: + version "2.3.8" + resolved "https://registry.npmmirror.com/through/-/through-2.3.8.tgz" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +through2@^2.0.0: + version "2.0.5" + resolved "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.npmmirror.com/thunky/-/thunky-1.1.0.tgz" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +time-stamp@^2.0.0: + version "2.2.0" + resolved "https://registry.npmmirror.com/time-stamp/-/time-stamp-2.2.0.tgz" + integrity sha512-zxke8goJQpBeEgD82CXABeMh0LSJcj7CXEd0OHOg45HgcofF7pxNwZm9+RknpxpDhwN4gFpySkApKfFYfRQnUA== + +timers-browserify@^2.0.4: + version "2.0.12" + resolved "https://registry.npmmirror.com/timers-browserify/-/timers-browserify-2.0.12.tgz" + integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== + dependencies: + setimmediate "^1.0.4" + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.npmmirror.com/timsort/-/timsort-0.3.0.tgz" + integrity sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A== + +tiny-emitter@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz" + integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== + +tinycolor2@^1.4.1: + version "1.6.0" + resolved "https://registry.npmmirror.com/tinycolor2/-/tinycolor2-1.6.0.tgz" + integrity sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw== + +tinymce@^5.3.2: + version "5.10.9" + resolved "https://registry.npmmirror.com/tinymce/-/tinymce-5.10.9.tgz" + integrity sha512-5bkrors87X9LhYX2xq8GgPHrIgJYHl87YNs+kBcjQ5I3CiUgzo/vFcGvT3MZQ9QHsEeYMhYO6a5CLGGffR8hMg== + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.npmmirror.com/tmp/-/tmp-0.0.33.tgz" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tmpl@1.0.5: + version "1.0.5" + resolved "https://registry.npmmirror.com/tmpl/-/tmpl-1.0.5.tgz" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz" + integrity sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA== + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz" + integrity sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og== + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.npmmirror.com/to-object-path/-/to-object-path-0.3.0.tgz" + integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-2.1.1.tgz" + integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.npmmirror.com/to-regex/-/to-regex-3.0.2.tgz" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +topojson-client@^3.0.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/topojson-client/-/topojson-client-3.1.0.tgz" + integrity sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw== + dependencies: + commander "2" + +toposort@^1.0.0: + version "1.0.7" + resolved "https://registry.npmmirror.com/toposort/-/toposort-1.0.7.tgz" + integrity sha512-FclLrw8b9bMWf4QlCJuHBEVhSRsqDj6u3nIjAzPeJvgl//1hBlffdlk0MALceL14+koWEdU4ofRAXofbODxQzg== + +tough-cookie@^2.3.3: + version "2.5.0" + resolved "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-2.5.0.tgz" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tough-cookie@^4.0.0: + version "4.1.4" + resolved "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-4.1.4.tgz" + integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.2.0" + url-parse "^1.5.3" + +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-2.5.0.tgz" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tr46@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/tr46/-/tr46-2.1.0.tgz" + integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== + dependencies: + punycode "^2.1.1" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/trim-newlines/-/trim-newlines-1.0.0.tgz" + integrity sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw== + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/trim-right/-/trim-right-1.0.1.tgz" + integrity sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw== + +tryer@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/tryer/-/tryer-1.0.1.tgz" + integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== + +tsconfig-paths@^3.15.0: + version "3.15.0" + resolved "https://registry.npmmirror.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz" + integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.2" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tslib@^1.10.0: + version "1.14.1" + resolved "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^1.9.0: + version "1.14.1" + resolved "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.3: + version "2.8.1" + resolved "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== + +tslib@2.3.0: + version "2.3.0" + resolved "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz" + integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== + +tsml@1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/tsml/-/tsml-1.0.1.tgz" + integrity sha512-3KmepnH9SUsoOVtg013CRrL7c+AK7ECaquAsJdvu4288EDJuraqBlP4PDXT/rLEJ9YDn4jqLAzRJsnFPx+V6lg== + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.npmmirror.com/tty-browserify/-/tty-browserify-0.0.0.tgz" + integrity sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw== + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.npmmirror.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.npmmirror.com/tweetnacl/-/tweetnacl-0.14.5.tgz" + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== + +twtree@^3.8.3: + version "3.8.3" + resolved "https://registry.npmmirror.com/twtree/-/twtree-3.8.3.tgz" + integrity sha512-HMOS6fNEGwTV+tJnYtFZCay4rvQmBeVF+2t+5l09vkpByGZQ96Cc1kYtZCvHhN/OZFf29qQYlWiWYZ5a81JR4w== + dependencies: + core-js "^3.22.4" + vue "2.6.12" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.npmmirror.com/type-check/-/type-check-0.3.2.tgz" + integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.npmmirror.com/type-fest/-/type-fest-0.21.3.tgz" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.npmmirror.com/type-fest/-/type-fest-0.6.0.tgz" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^2.7.2: + version "2.7.3" + resolved "https://registry.npmmirror.com/type/-/type-2.7.3.tgz" + integrity sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ== + +typed-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz" + integrity sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw== + dependencies: + call-bound "^1.0.3" + es-errors "^1.3.0" + is-typed-array "^1.1.14" + +typed-array-byte-length@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz" + integrity sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg== + dependencies: + call-bind "^1.0.8" + for-each "^0.3.3" + gopd "^1.2.0" + has-proto "^1.2.0" + is-typed-array "^1.1.14" + +typed-array-byte-offset@^1.0.4: + version "1.0.4" + resolved "https://registry.npmmirror.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz" + integrity sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.8" + for-each "^0.3.3" + gopd "^1.2.0" + has-proto "^1.2.0" + is-typed-array "^1.1.15" + reflect.getprototypeof "^1.0.9" + +typed-array-length@^1.0.7: + version "1.0.7" + resolved "https://registry.npmmirror.com/typed-array-length/-/typed-array-length-1.0.7.tgz" + integrity sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + is-typed-array "^1.1.13" + possible-typed-array-names "^1.0.0" + reflect.getprototypeof "^1.0.6" + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.npmmirror.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz" + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== + +uglify-js@^2.6.2, uglify-js@^2.8.29: + version "2.8.29" + resolved "https://registry.npmmirror.com/uglify-js/-/uglify-js-2.8.29.tgz" + integrity sha512-qLq/4y2pjcU3vhlhseXGGJ7VbFO4pBANu0kwl8VCa9KEI0V8VfZIx2Fy3w01iSTA/pGwKZSmu/+I4etLNDdt5w== + dependencies: + source-map "~0.5.1" + yargs "~3.10.0" + optionalDependencies: + uglify-to-browserify "~1.0.0" + +uglify-js@3.4.x: + version "3.4.10" + resolved "https://registry.npmmirror.com/uglify-js/-/uglify-js-3.4.10.tgz" + integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw== + dependencies: + commander "~2.19.0" + source-map "~0.6.1" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.npmmirror.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz" + integrity sha512-vb2s1lYx2xBtUgy+ta+b2J/GLVUR+wmpINwHePmPRhOsIVCG2wDzKJ0n14GslH1BifsqVzSOwQhRaCAsZ/nI4Q== + +uglifyjs-webpack-plugin@^0.4.6: + version "0.4.6" + resolved "https://registry.npmmirror.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz" + integrity sha512-TNM20HMW67kxHRNCZdvLyiwE1ST6WyY5Ae+TG55V81NpvNwJ9+V4/po4LHA1R9afV/WrqzfedG2UJCk2+swirw== + dependencies: + source-map "^0.5.6" + uglify-js "^2.8.29" + webpack-sources "^1.0.1" + +unbox-primitive@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.1.0.tgz" + integrity sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw== + dependencies: + call-bound "^1.0.3" + has-bigints "^1.0.2" + has-symbols "^1.1.0" + which-boxed-primitive "^1.1.1" + +undici-types@~6.20.0: + version "6.20.0" + resolved "https://registry.npmmirror.com/undici-types/-/undici-types-6.20.0.tgz" + integrity sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg== + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz" + integrity sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.1.0: + version "2.2.0" + resolved "https://registry.npmmirror.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz" + integrity sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/union-value/-/union-value-1.0.1.tgz" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/uniq/-/uniq-1.0.1.tgz" + integrity sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA== + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/uniqs/-/uniqs-2.0.0.tgz" + integrity sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ== + +unique-filename@^1.1.0, unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/unique-filename/-/unique-filename-1.1.1.tgz" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.npmmirror.com/unique-slug/-/unique-slug-2.0.2.tgz" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + dependencies: + imurmurhash "^0.1.4" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +universalify@^0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/universalify/-/universalify-0.2.0.tgz" + integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== + +unpipe@~1.0.0, unpipe@1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/unquote/-/unquote-1.1.1.tgz" + integrity sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg== + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/unset-value/-/unset-value-1.0.0.tgz" + integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +upath@^1.1.1: + version "1.2.0" + resolved "https://registry.npmmirror.com/upath/-/upath-1.2.0.tgz" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +update-browserslist-db@^1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz" + integrity sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A== + dependencies: + escalade "^3.2.0" + picocolors "^1.1.0" + +update-browserslist-db@^1.1.3: + version "1.1.3" + resolved "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz" + integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw== + dependencies: + escalade "^3.2.0" + picocolors "^1.1.1" + +upper-case@^1.1.1: + version "1.1.3" + resolved "https://registry.npmmirror.com/upper-case/-/upper-case-1.1.3.tgz" + integrity sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.npmmirror.com/urix/-/urix-0.1.0.tgz" + integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== + +url-loader@^1.1.2: + version "1.1.2" + resolved "https://registry.npmmirror.com/url-loader/-/url-loader-1.1.2.tgz" + integrity sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg== + dependencies: + loader-utils "^1.1.0" + mime "^2.0.3" + schema-utils "^1.0.0" + +url-parse@^1.1.8, url-parse@^1.4.3, url-parse@^1.5.10, url-parse@^1.5.3: + version "1.5.10" + resolved "https://registry.npmmirror.com/url-parse/-/url-parse-1.5.10.tgz" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +url-toolkit@^2.1.3, url-toolkit@^2.2.1: + version "2.2.5" + resolved "https://registry.npmmirror.com/url-toolkit/-/url-toolkit-2.2.5.tgz" + integrity sha512-mtN6xk+Nac+oyJ/PrI7tzfmomRVNFIWKUbG8jdYFt52hxbiReFAXIjYskvu64/dvuW71IcB7lV8l0HvZMac6Jg== + +url@^0.11.0: + version "0.11.4" + resolved "https://registry.npmmirror.com/url/-/url-0.11.4.tgz" + integrity sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg== + dependencies: + punycode "^1.4.1" + qs "^6.12.3" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.npmmirror.com/use/-/use-3.1.1.tgz" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +util.promisify@~1.0.0, util.promisify@1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/util.promisify/-/util.promisify-1.0.0.tgz" + integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + +util@^0.10.4: + version "0.10.4" + resolved "https://registry.npmmirror.com/util/-/util-0.10.4.tgz" + integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== + dependencies: + inherits "2.0.3" + +util@^0.11.0: + version "0.11.1" + resolved "https://registry.npmmirror.com/util/-/util-0.11.1.tgz" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== + dependencies: + inherits "2.0.3" + +utila@~0.4: + version "0.4.0" + resolved "https://registry.npmmirror.com/utila/-/utila-0.4.0.tgz" + integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +utrie@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/utrie/-/utrie-1.0.2.tgz" + integrity sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw== + dependencies: + base64-arraybuffer "^1.0.2" + +uuid@^3.0.1, uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.npmmirror.com/uuid/-/uuid-3.4.0.tgz" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-to-istanbul@^8.1.0: + version "8.1.1" + resolved "https://registry.npmmirror.com/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz" + integrity sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.npmmirror.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +vendors@^1.0.0: + version "1.0.4" + resolved "https://registry.npmmirror.com/vendors/-/vendors-1.0.4.tgz" + integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== + +venn.js@~0.2.20: + version "0.2.20" + resolved "https://registry.npmmirror.com/venn.js/-/venn.js-0.2.20.tgz" + integrity sha512-bb5SYq/wamY9fvcuErb9a0FJkgIFHJjkLZWonQ+DoKKuDX3WPH2B4ouI1ce4K2iejBklQy6r1ly8nOGIyOCO6w== + dependencies: + d3-selection "^1.0.2" + d3-transition "^1.0.1" + fmin "0.0.2" + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.npmmirror.com/verror/-/verror-1.10.0.tgz" + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +"video.js@^5.17.0 || ^6.2.0": + version "6.13.0" + resolved "https://registry.npmmirror.com/video.js/-/video.js-6.13.0.tgz" + integrity sha512-36/JR/GhPQSZj0o+GNbhcEYv/b0SkV9SQsjlodAnzMQYN0TA7VhmqrKPYMCi1NGRYu7S9W3OaFCFoUxkYfSVlg== + dependencies: + babel-runtime "^6.9.2" + global "4.3.2" + safe-json-parse "4.0.0" + tsml "1.0.1" + videojs-font "2.1.0" + videojs-ie8 "1.1.2" + videojs-vtt.js "0.12.6" + xhr "2.4.0" + +"video.js@^5.19.1 || ^6.2.0": + version "6.13.0" + resolved "https://registry.npmmirror.com/video.js/-/video.js-6.13.0.tgz" + integrity sha512-36/JR/GhPQSZj0o+GNbhcEYv/b0SkV9SQsjlodAnzMQYN0TA7VhmqrKPYMCi1NGRYu7S9W3OaFCFoUxkYfSVlg== + dependencies: + babel-runtime "^6.9.2" + global "4.3.2" + safe-json-parse "4.0.0" + tsml "1.0.1" + videojs-font "2.1.0" + videojs-ie8 "1.1.2" + videojs-vtt.js "0.12.6" + xhr "2.4.0" + +"video.js@^6 || ^7", video.js@^7.19.2: + version "7.21.6" + resolved "https://registry.npmmirror.com/video.js/-/video.js-7.21.6.tgz" + integrity sha512-m41TbODrUCToVfK1aljVd296CwDQnCRewpIm5tTXMuV87YYSGw1H+VDOaV45HlpcWSsTWWLF++InDgGJfthfUw== + dependencies: + "@babel/runtime" "^7.12.5" + "@videojs/http-streaming" "2.16.3" + "@videojs/vhs-utils" "^3.0.4" + "@videojs/xhr" "2.6.0" + aes-decrypter "3.1.3" + global "^4.4.0" + keycode "^2.2.0" + m3u8-parser "4.8.0" + mpd-parser "0.22.1" + mux.js "6.0.1" + safe-json-parse "4.0.0" + videojs-font "3.2.0" + videojs-vtt.js "^0.15.5" + +videojs-contrib-hls@^5.15.0: + version "5.15.0" + resolved "https://registry.npmmirror.com/videojs-contrib-hls/-/videojs-contrib-hls-5.15.0.tgz" + integrity sha512-18zbMYZ0XRBKTPEayA9bFTWWrqhT9b4G8+zf0czJLD7Epe5PcK1I/3dflTHQeQ5rwlWir+/XnFU3sMg/B2MMcw== + dependencies: + aes-decrypter "1.0.3" + global "^4.3.0" + m3u8-parser "2.1.0" + mux.js "4.3.2" + url-toolkit "^2.1.3" + video.js "^5.19.1 || ^6.2.0" + videojs-contrib-media-sources "4.7.2" + webwackify "0.1.6" + +videojs-contrib-media-sources@4.7.2: + version "4.7.2" + resolved "https://registry.npmmirror.com/videojs-contrib-media-sources/-/videojs-contrib-media-sources-4.7.2.tgz" + integrity sha512-e6iCHWBFuV05EGo7v+pS9iepObXnJ9joms467gzi8ZjpKVb3ifha9M0Ja24Rd8JfvYpzjltsgDVtGFDvIg4hQQ== + dependencies: + global "^4.3.0" + mux.js "4.3.2" + video.js "^5.17.0 || ^6.2.0" + webwackify "0.1.6" + +videojs-font@2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/videojs-font/-/videojs-font-2.1.0.tgz" + integrity sha512-zFqWpLrXf1q8NtYx5qtZhMC6SLUFScDmR6j+UGPogobxR21lvXShhnzcNNMdOxJUuFLiToJ/BPpFUQwX4xhpvA== + +videojs-font@3.2.0: + version "3.2.0" + resolved "https://registry.npmmirror.com/videojs-font/-/videojs-font-3.2.0.tgz" + integrity sha512-g8vHMKK2/JGorSfqAZQUmYYNnXmfec4MLhwtEFS+mMs2IDY398GLysy6BH6K+aS1KMNu/xWZ8Sue/X/mdQPliA== + +videojs-ie8@1.1.2: + version "1.1.2" + resolved "https://registry.npmmirror.com/videojs-ie8/-/videojs-ie8-1.1.2.tgz" + integrity sha512-0Zb2T4MLkpfZbeGMK/Z93b8Lrepr+rLFoHgQV1CoDeFqXvH7b+Vsd/VHoILGxQrgCSHFQ7mAODR6oyMjuiD4/g== + dependencies: + es5-shim "^4.5.1" + +videojs-vtt.js@^0.15.5: + version "0.15.5" + resolved "https://registry.npmmirror.com/videojs-vtt.js/-/videojs-vtt.js-0.15.5.tgz" + integrity sha512-yZbBxvA7QMYn15Lr/ZfhhLPrNpI/RmCSCqgIff57GC2gIrV5YfyzLfLyZMj0NnZSAz8syB4N0nHXpZg9MyrMOQ== + dependencies: + global "^4.3.1" + +videojs-vtt.js@0.12.6: + version "0.12.6" + resolved "https://registry.npmmirror.com/videojs-vtt.js/-/videojs-vtt.js-0.12.6.tgz" + integrity sha512-XFXeGBQiljnElMhwCcZst0RDbZn2n8LU7ZScXryd3a00OaZsHAjdZu/7/RdSr7Z1jHphd45FnOvOQkGK4YrWCQ== + dependencies: + global "^4.3.1" + +viser-vue@^2.4.8: + version "2.4.8" + resolved "https://registry.npmmirror.com/viser-vue/-/viser-vue-2.4.8.tgz" + integrity sha512-ERAREN+6k/ywrwT+swcMo4CDIAq6dBjnB0+lhmsSfaip06BGHSBfNKg6yl7/4GJ9Nk2kioUw3llNhEboJuIKmQ== + dependencies: + "@types/node" "*" + viser "^2.0.0" + vue "^2.5.3" + +viser@^2.0.0: + version "2.4.9" + resolved "https://registry.npmmirror.com/viser/-/viser-2.4.9.tgz" + integrity sha512-DKsqtMa3TZYQHEZ7jp4kpNp1Iqomda7d+3IkkIjIdKQvfL8OeksXfy/ECZUY1hTrGoOe7cq85+6PMS+MPn4mgQ== + dependencies: + "@antv/g2" "~3.5.3" + "@antv/g2-brush" "^0.0.2" + "@antv/g2-plugin-slider" "^2.1.0" + "@types/d3-format" "*" + "@types/lodash" "*" + "@types/node" "^8.0.53" + d3-format "^1.3.0" + lodash "^4.17.4" + +vm-browserify@^1.0.1: + version "1.1.2" + resolved "https://registry.npmmirror.com/vm-browserify/-/vm-browserify-1.1.2.tgz" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== + +vue-area-linkage@^5.1.0: + version "5.1.0" + resolved "https://registry.npmmirror.com/vue-area-linkage/-/vue-area-linkage-5.1.0.tgz" + integrity sha512-86WD4O6PD9e2koWZ81Zlfcyey17U1+3B3fpWoyIZlBIe2V6qfvrg9BTozWdTpdF4CmKBiz138LBRTKhawl/UWw== + dependencies: + lodash.find "^4.6.0" + +vue-class-component@^7.1.0: + version "7.2.6" + resolved "https://registry.npmmirror.com/vue-class-component/-/vue-class-component-7.2.6.tgz" + integrity sha512-+eaQXVrAm/LldalI272PpDe3+i4mPis0ORiMYxF6Ae4hyuCh15W8Idet7wPUEs4N4YptgFHGys4UrgNQOMyO6w== + +vue-cropper@^0.5.4: + version "0.5.11" + resolved "https://registry.npmmirror.com/vue-cropper/-/vue-cropper-0.5.11.tgz" + integrity sha512-UeA3qL2BLCTGkOEAxEsxSNFO+qLYAn6YRHv4oS32cP9lMhF1vFmnAf/z+ZamtR0/Fh3sbZeZUCLVR2Ol2/dpTQ== + +vue-demi@^0.14.10, vue-demi@^0.14.6: + version "0.14.10" + resolved "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.10.tgz" + integrity sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg== + +vue-draggable-resizable@^2.3.0: + version "2.3.0" + resolved "https://registry.npmmirror.com/vue-draggable-resizable/-/vue-draggable-resizable-2.3.0.tgz" + integrity sha512-77CLRj1TPwB30pwsjOf3pkd1UzYanCdKXbqhILJ0Oo5QQl50lvBfyQCXxMFzwWwTc3sbBbQH3FfWSV+BkoSElA== + +vue-eslint-parser@^2.0.3: + version "2.0.3" + resolved "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz" + integrity sha512-ZezcU71Owm84xVF6gfurBQUGg8WQ+WZGxgDEQu1IHFBZNx7BFZg3L1yHxrCBNNwbwFtE1GuvfJKMtb6Xuwc/Bw== + dependencies: + debug "^3.1.0" + eslint-scope "^3.7.1" + eslint-visitor-keys "^1.0.0" + espree "^3.5.2" + esquery "^1.0.0" + lodash "^4.17.4" + +vue-eslint-parser@^9.0.1, vue-eslint-parser@^9.3.2: + version "9.4.3" + resolved "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz" + integrity sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg== + dependencies: + debug "^4.3.4" + eslint-scope "^7.1.1" + eslint-visitor-keys "^3.3.0" + espree "^9.3.1" + esquery "^1.4.0" + lodash "^4.17.21" + semver "^7.3.6" + +vue-hot-reload-api@^2.2.0, vue-hot-reload-api@^2.3.0: + version "2.3.4" + resolved "https://registry.npmmirror.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz" + integrity sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog== + +vue-i18n@^8.28.2: + version "8.28.2" + resolved "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-8.28.2.tgz" + integrity sha512-C5GZjs1tYlAqjwymaaCPDjCyGo10ajUphiwA922jKt9n7KPpqR7oM1PCwYzhB/E7+nT3wfdG3oRre5raIT1rKA== + +vue-json-pretty@^1.8.2: + version "1.9.5" + resolved "https://registry.npmmirror.com/vue-json-pretty/-/vue-json-pretty-1.9.5.tgz" + integrity sha512-fwbiH/ky/raX1D4MXRZZLFeKm157e9AkumMD7Y+djdLU1Sb0Tp5q2iOPvCnkWNzRpUfxx/zUjONUG+MIWsqx/w== + +vue-loader@^13.0.5: + version "13.7.3" + resolved "https://registry.npmmirror.com/vue-loader/-/vue-loader-13.7.3.tgz" + integrity sha512-ACCwbfeC6HjY2pnDii+Zer+MZ6sdOtwvLmDXRK/BoD3WNR551V22R6KEagwHoTRJ0ZlIhpCBkptpCU6+Ri/05w== + dependencies: + consolidate "^0.14.0" + hash-sum "^1.0.2" + loader-utils "^1.1.0" + lru-cache "^4.1.1" + postcss "^6.0.8" + postcss-load-config "^1.1.0" + postcss-selector-parser "^2.0.0" + prettier "^1.7.0" + resolve "^1.4.0" + source-map "^0.6.1" + vue-hot-reload-api "^2.2.0" + vue-style-loader "^3.0.0" + vue-template-es2015-compiler "^1.6.0" + +vue-loader@^15.7.0: + version "15.11.1" + resolved "https://registry.npmmirror.com/vue-loader/-/vue-loader-15.11.1.tgz" + integrity sha512-0iw4VchYLePqJfJu9s62ACWUXeSqM30SQqlIftbYWM3C+jpPcEHKSPUZBLjSF9au4HTHQ/naF6OGnO3Q/qGR3Q== + dependencies: + "@vue/component-compiler-utils" "^3.1.0" + hash-sum "^1.0.2" + loader-utils "^1.1.0" + vue-hot-reload-api "^2.3.0" + vue-style-loader "^4.1.0" + +vue-ls@^3.2.0: + version "3.2.2" + resolved "https://registry.npmmirror.com/vue-ls/-/vue-ls-3.2.2.tgz" + integrity sha512-xros9Zheckv+8x9PerHvWe5SMYud0+ZlPAMrKWKNtDN/usMOKRoluj6kBZyQo6BxwpmiBL8/EjKMYjxmCNXOMg== + dependencies: + opencollective-postinstall "^2.0.2" + +vue-photo-preview@^1.1.3: + version "1.1.3" + resolved "https://registry.npmmirror.com/vue-photo-preview/-/vue-photo-preview-1.1.3.tgz" + integrity sha512-L9JTQh62rYqLHNCdpy7zQdqVisks9dvkmUpM8+7kIKG7l+KkbRLzKWK7lCjCKc6OQT42o6/ngK6B13niXunS9Q== + dependencies: + autoprefixer-loader "^3.2.0" + babel-core "^6.26.0" + babel-loader "^7.1.2" + babel-preset-env "^1.6.0" + cross-env "^5.0.5" + css-loader "^0.28.7" + extract-text-webpack-plugin "^3.0.1" + file-loader "^1.1.4" + photoswipe "^4.1.2" + resolve-url-loader "^2.1.1" + style-loader "^0.19.0" + vue "^2.4.4" + vue-loader "^13.0.5" + vue-template-compiler "^2.4.4" + webpack "^3.6.0" + webpack-dev-server "^2.9.1" + +vue-print-nb-jeecg@^1.0.9: + version "1.0.12" + resolved "https://registry.npmmirror.com/vue-print-nb-jeecg/-/vue-print-nb-jeecg-1.0.12.tgz" + integrity sha512-jHyWm6/TxB1iU2nHL7upQdHVdxb1SJQ9n3XKeYTaruFdbSphLo1vDtTunS2qVCjupk8lui7FlF5rxxSNr0zjZg== + dependencies: + babel-plugin-transform-runtime "^6.23.0" + +vue-property-decorator@^8.0.0: + version "8.5.1" + resolved "https://registry.npmmirror.com/vue-property-decorator/-/vue-property-decorator-8.5.1.tgz" + integrity sha512-O6OUN2OMsYTGPvgFtXeBU3jPnX5ffQ9V4I1WfxFQ6dqz6cOUbR3Usou7kgFpfiXDvV7dJQSFcJ5yUPgOtPPm1Q== + dependencies: + vue-class-component "^7.1.0" + +vue-ref@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/vue-ref/-/vue-ref-2.0.0.tgz" + integrity sha512-uKNKpFOVeWNqS2mrBZqnpLyXJo5Q+vnkex6JvpENvhXHFNBW/SJTP8vJywLuVT3DpxwXcF9N0dyIiZ4/NpTexQ== + +vue-router@^3.0.1: + version "3.6.5" + resolved "https://registry.npmmirror.com/vue-router/-/vue-router-3.6.5.tgz" + integrity sha512-VYXZQLtjuvKxxcshuRAwjHnciqZVoXAjTjcqBTz4rKc8qih9g9pI3hbDjmqXaHdgL3v8pV6P8Z335XvHzESxLQ== + +vue-slider-component@^3.2.18: + version "3.2.24" + resolved "https://registry.npmmirror.com/vue-slider-component/-/vue-slider-component-3.2.24.tgz" + integrity sha512-28hfotAL/CPXPwqHgVFyUwUEV0zweoc2wW0bgraGkoIcRZGlFjk8caYJLE8+Luug5t3b9tJm/NyDXpyIdmcYZg== + dependencies: + core-js "^3.6.5" + vue-property-decorator "^8.0.0" + +vue-splitpane@^1.0.4: + version "1.0.6" + resolved "https://registry.npmmirror.com/vue-splitpane/-/vue-splitpane-1.0.6.tgz" + integrity sha512-6sneVSEeF1VsCD025HP93nRxwzYhv3rotCeYi2Ah1FmGxwtfqbCZEIzaHGberdGNCpMlEzGD/1OIE1kK5QukLA== + +vue-style-loader@^3.0.0: + version "3.1.2" + resolved "https://registry.npmmirror.com/vue-style-loader/-/vue-style-loader-3.1.2.tgz" + integrity sha512-ICtVdK/p+qXWpdSs2alWtsXt9YnDoYjQe0w5616j9+/EhjoxZkbun34uWgsMFnC1MhrMMwaWiImz3K2jK1Yp2Q== + dependencies: + hash-sum "^1.0.2" + loader-utils "^1.0.2" + +vue-style-loader@^4.1.0: + version "4.1.3" + resolved "https://registry.npmmirror.com/vue-style-loader/-/vue-style-loader-4.1.3.tgz" + integrity sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg== + dependencies: + hash-sum "^1.0.2" + loader-utils "^1.0.2" + +vue-template-compiler@^2.0.0, vue-template-compiler@^2.4.4, vue-template-compiler@^2.6.0, vue-template-compiler@^2.6.12, vue-template-compiler@>=2.5.0: + version "2.7.16" + resolved "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz" + integrity sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ== + dependencies: + de-indent "^1.0.2" + he "^1.2.0" + +vue-template-es2015-compiler@^1.6.0, vue-template-es2015-compiler@^1.9.0: + version "1.9.1" + resolved "https://registry.npmmirror.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz" + integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== + +vue@*, "vue@^2 || ^3.2.13", vue@^2.0.0, "vue@^2.0.0 || >=3.0.0", vue@^2.4.4, vue@^2.5.17, vue@^2.5.3, vue@^2.6.0, vue@^2.6.10, "vue@^3.0.0-0 || ^2.6.0", "vue@>= 2.5 < 2.7", "vue@>= 2.6.0 < 3", vue@>=2.2.0, vue@>=2.5.0: + version "2.7.16" + resolved "https://registry.npmmirror.com/vue/-/vue-2.7.16.tgz" + integrity sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw== + dependencies: + "@vue/compiler-sfc" "2.7.16" + csstype "^3.1.0" + +vue@2.6.12: + version "2.6.12" + resolved "https://registry.npmmirror.com/vue/-/vue-2.6.12.tgz" + integrity sha512-uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg== + +vuedraggable@^2.20.0: + version "2.24.3" + resolved "https://registry.npmmirror.com/vuedraggable/-/vuedraggable-2.24.3.tgz" + integrity sha512-6/HDXi92GzB+Hcs9fC6PAAozK1RLt1ewPTLjK0anTYguXLAeySDmcnqE8IC0xa7shvSzRjQXq3/+dsZ7ETGF3g== + dependencies: + sortablejs "1.10.2" + +vuex@^3.1.0: + version "3.6.2" + resolved "https://registry.npmmirror.com/vuex/-/vuex-3.6.2.tgz" + integrity sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw== + +vxe-table-plugin-antd@1.8.10: + version "1.8.10" + resolved "https://registry.npmmirror.com/vxe-table-plugin-antd/-/vxe-table-plugin-antd-1.8.10.tgz" + integrity sha512-XsNToY1zSmuLo/oQfSeDjnD4I03U+YYiMcBiduW8/BhZ7/eSTF4L2Rmu7cSDbLJefPwxsQKRd+jlFeF7T433Mw== + +vxe-table@>=1.15.27, vxe-table@2.9.13: + version "2.9.13" + resolved "https://registry.npmmirror.com/vxe-table/-/vxe-table-2.9.13.tgz" + integrity sha512-MOaJLLJtdgVbiZX8netLqG8+daB7IbjBM9+5Ppt+seyjBrNV2C4dd8JkGpGX5zPThSzkYPGz66vo404Yu5Q/EA== + +w3c-hr-time@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== + dependencies: + xml-name-validator "^3.0.0" + +walker@^1.0.7: + version "1.0.8" + resolved "https://registry.npmmirror.com/walker/-/walker-1.0.8.tgz" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== + dependencies: + makeerror "1.0.12" + +warning@^4.0.0: + version "4.0.3" + resolved "https://registry.npmmirror.com/warning/-/warning-4.0.3.tgz" + integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== + dependencies: + loose-envify "^1.0.0" + +watchpack-chokidar2@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz" + integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== + dependencies: + chokidar "^2.1.8" + +watchpack@^1.4.0, watchpack@^1.7.4: + version "1.7.5" + resolved "https://registry.npmmirror.com/watchpack/-/watchpack-1.7.5.tgz" + integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== + dependencies: + graceful-fs "^4.1.2" + neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.1" + watchpack-chokidar2 "^2.0.1" + +watchpack@^2.4.1: + version "2.4.2" + resolved "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.2.tgz" + integrity sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.npmmirror.com/wbuf/-/wbuf-1.7.3.tgz" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/wcwidth/-/wcwidth-1.0.1.tgz" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + +webpack-bundle-analyzer@^3.3.0: + version "3.9.0" + resolved "https://registry.npmmirror.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.0.tgz" + integrity sha512-Ob8amZfCm3rMB1ScjQVlbYYUEJyEjdEtQ92jqiFUYt5VkEeO2v5UMbv49P/gnmCZm3A6yaFQzCBvpZqN4MUsdA== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + bfj "^6.1.1" + chalk "^2.4.1" + commander "^2.18.0" + ejs "^2.6.1" + express "^4.16.3" + filesize "^3.6.1" + gzip-size "^5.0.0" + lodash "^4.17.19" + mkdirp "^0.5.1" + opener "^1.5.1" + ws "^6.0.0" + +webpack-chain@^4.11.0: + version "4.12.1" + resolved "https://registry.npmmirror.com/webpack-chain/-/webpack-chain-4.12.1.tgz" + integrity sha512-BCfKo2YkDe2ByqkEWe1Rw+zko4LsyS75LVr29C6xIrxAg9JHJ4pl8kaIZ396SUSNp6b4815dRZPSTAS8LlURRQ== + dependencies: + deepmerge "^1.5.2" + javascript-stringify "^1.6.0" + +webpack-dev-middleware@^3.7.2: + version "3.7.3" + resolved "https://registry.npmmirror.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz" + integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== + dependencies: + memory-fs "^0.4.1" + mime "^2.4.4" + mkdirp "^0.5.1" + range-parser "^1.2.1" + webpack-log "^2.0.0" + +webpack-dev-middleware@1.12.2: + version "1.12.2" + resolved "https://registry.npmmirror.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz" + integrity sha512-FCrqPy1yy/sN6U/SaEZcHKRXGlqU0DUaEBL45jkUYoB8foVb6wCnbIJ1HKIx+qUFTW+3JpVcCJCxZ8VATL4e+A== + dependencies: + memory-fs "~0.4.1" + mime "^1.5.0" + path-is-absolute "^1.0.0" + range-parser "^1.0.3" + time-stamp "^2.0.0" + +webpack-dev-server@^2.9.1: + version "2.11.5" + resolved "https://registry.npmmirror.com/webpack-dev-server/-/webpack-dev-server-2.11.5.tgz" + integrity sha512-7TdOKKt7G3sWEhPKV0zP+nD0c4V9YKUJ3wDdBwQsZNo58oZIRoVIu66pg7PYkBW8A74msP9C2kLwmxGHndz/pw== + dependencies: + ansi-html "0.0.7" + array-includes "^3.0.3" + bonjour "^3.5.0" + chokidar "^2.1.2" + compression "^1.7.3" + connect-history-api-fallback "^1.3.0" + debug "^3.1.0" + del "^3.0.0" + express "^4.16.2" + html-entities "^1.2.0" + http-proxy-middleware "^0.19.1" + import-local "^1.0.0" + internal-ip "1.2.0" + ip "^1.1.5" + killable "^1.0.0" + loglevel "^1.4.1" + opn "^5.1.0" + portfinder "^1.0.9" + selfsigned "^1.9.1" + serve-index "^1.9.1" + sockjs "0.3.19" + sockjs-client "1.1.5" + spdy "^4.0.0" + strip-ansi "^3.0.0" + supports-color "^5.1.0" + webpack-dev-middleware "1.12.2" + yargs "6.6.0" + +webpack-dev-server@^3.4.1: + version "3.11.3" + resolved "https://registry.npmmirror.com/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz" + integrity sha512-3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA== + dependencies: + ansi-html-community "0.0.8" + bonjour "^3.5.0" + chokidar "^2.1.8" + compression "^1.7.4" + connect-history-api-fallback "^1.6.0" + debug "^4.1.1" + del "^4.1.1" + express "^4.17.1" + html-entities "^1.3.1" + http-proxy-middleware "0.19.1" + import-local "^2.0.0" + internal-ip "^4.3.0" + ip "^1.1.5" + is-absolute-url "^3.0.3" + killable "^1.0.1" + loglevel "^1.6.8" + opn "^5.5.0" + p-retry "^3.0.1" + portfinder "^1.0.26" + schema-utils "^1.0.0" + selfsigned "^1.10.8" + semver "^6.3.0" + serve-index "^1.9.1" + sockjs "^0.3.21" + sockjs-client "^1.5.0" + spdy "^4.0.2" + strip-ansi "^3.0.1" + supports-color "^6.1.0" + url "^0.11.0" + webpack-dev-middleware "^3.7.2" + webpack-log "^2.0.0" + ws "^6.2.1" + yargs "^13.3.2" + +webpack-log@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/webpack-log/-/webpack-log-2.0.0.tgz" + integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== + dependencies: + ansi-colors "^3.0.0" + uuid "^3.3.2" + +webpack-merge@^4.2.1: + version "4.2.2" + resolved "https://registry.npmmirror.com/webpack-merge/-/webpack-merge-4.2.2.tgz" + integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== + dependencies: + lodash "^4.17.15" + +webpack-sources@^1.0.1, webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1: + version "1.4.3" + resolved "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-1.4.3.tgz" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +"webpack@^1.0.0 || ^2.0.0 || ^3.0.0", "webpack@^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0", "webpack@^1.9 || ^2 || ^2.1.0-beta || ^2.2.0-rc || ^3.0.0", "webpack@^2.0.0 || ^3.0.0 || ^4.0.0", "webpack@^2.2.0 || ^3.0.0", "webpack@^3.0.0 || ^4.0.0", "webpack@^3.0.0 || ^4.1.0 || ^5.0.0-0", webpack@^3.1.0, webpack@^4.0.0, "webpack@^4.0.0 || ^5.0.0", "webpack@^4.3.0 || ^5.0.0", webpack@^4.4.0, webpack@^5.0.0, "webpack@>=2.0.0 <5.0.0", webpack@>=4.0.0, webpack@>=5: + version "4.47.0" + resolved "https://registry.npmmirror.com/webpack/-/webpack-4.47.0.tgz" + integrity sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + acorn "^6.4.1" + ajv "^6.10.2" + ajv-keywords "^3.4.1" + chrome-trace-event "^1.0.2" + enhanced-resolve "^4.5.0" + eslint-scope "^4.0.3" + json-parse-better-errors "^1.0.2" + loader-runner "^2.4.0" + loader-utils "^1.2.3" + memory-fs "^0.4.1" + micromatch "^3.1.10" + mkdirp "^0.5.3" + neo-async "^2.6.1" + node-libs-browser "^2.2.1" + schema-utils "^1.0.0" + tapable "^1.1.3" + terser-webpack-plugin "^1.4.3" + watchpack "^1.7.4" + webpack-sources "^1.4.1" + +webpack@^3.6.0, "webpack@2 || 3 || 4": + version "3.12.0" + resolved "https://registry.npmmirror.com/webpack/-/webpack-3.12.0.tgz" + integrity sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ== + dependencies: + acorn "^5.0.0" + acorn-dynamic-import "^2.0.0" + ajv "^6.1.0" + ajv-keywords "^3.1.0" + async "^2.1.2" + enhanced-resolve "^3.4.0" + escope "^3.6.0" + interpret "^1.0.0" + json-loader "^0.5.4" + json5 "^0.5.1" + loader-runner "^2.3.0" + loader-utils "^1.1.0" + memory-fs "~0.4.1" + mkdirp "~0.5.0" + node-libs-browser "^2.0.0" + source-map "^0.5.3" + supports-color "^4.2.1" + tapable "^0.2.7" + uglifyjs-webpack-plugin "^0.4.6" + watchpack "^1.4.0" + webpack-sources "^1.0.1" + yargs "^8.0.2" + +"webpack@^4.27.0 || ^5.0.0", webpack@^5.1.0, webpack@^5.54.0, webpack@>=2: + version "5.99.8" + resolved "https://registry.npmmirror.com/webpack/-/webpack-5.99.8.tgz" + integrity sha512-lQ3CPiSTpfOnrEGeXDwoq5hIGzSjmwD72GdfVzF7CQAI7t47rJG9eDWvcEkEn3CUQymAElVvDg3YNTlCYj+qUQ== + dependencies: + "@types/eslint-scope" "^3.7.7" + "@types/estree" "^1.0.6" + "@types/json-schema" "^7.0.15" + "@webassemblyjs/ast" "^1.14.1" + "@webassemblyjs/wasm-edit" "^1.14.1" + "@webassemblyjs/wasm-parser" "^1.14.1" + acorn "^8.14.0" + browserslist "^4.24.0" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.17.1" + es-module-lexer "^1.2.1" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.11" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^4.3.2" + tapable "^2.1.1" + terser-webpack-plugin "^5.3.11" + watchpack "^2.4.1" + webpack-sources "^3.2.3" + +websocket-driver@^0.7.4, websocket-driver@>=0.5.1: + version "0.7.4" + resolved "https://registry.npmmirror.com/websocket-driver/-/websocket-driver-0.7.4.tgz" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.npmmirror.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +webwackify@0.1.6: + version "0.1.6" + resolved "https://registry.npmmirror.com/webwackify/-/webwackify-0.1.6.tgz" + integrity sha512-pGcw1T3HpNnM/UTRQqqRkkkzythSLts05mB+7Gr00B+0VbL0m39dFL5g20rSIEUt9Wrpw+/8k+snxRlUFHhcqA== + +webworkify-webpack@^2.1.5: + version "2.1.5" + resolved "https://registry.npmmirror.com/webworkify-webpack/-/webworkify-webpack-2.1.5.tgz" + integrity sha512-2akF8FIyUvbiBBdD+RoHpoTbHMQF2HwjcxfDvgztAX5YwbZNyrtfUMgvfgFVsgDhDPVTlkbb5vyasqDHfIDPQw== + +whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.npmmirror.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.npmmirror.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +whatwg-url@^8.0.0, whatwg-url@^8.5.0: + version "8.7.0" + resolved "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-8.7.0.tgz" + integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== + dependencies: + lodash "^4.7.0" + tr46 "^2.1.0" + webidl-conversions "^6.1.0" + +whet.extend@~0.9.9: + version "0.9.9" + resolved "https://registry.npmmirror.com/whet.extend/-/whet.extend-0.9.9.tgz" + integrity sha512-mmIPAft2vTgEILgPeZFqE/wWh24SEsR/k+N9fJ3Jxrz44iDFy9aemCxdksfURSHYFCLmvs/d/7Iso5XjPpNfrA== + +which-boxed-primitive@^1.1.0, which-boxed-primitive@^1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz" + integrity sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA== + dependencies: + is-bigint "^1.1.0" + is-boolean-object "^1.2.1" + is-number-object "^1.1.1" + is-string "^1.1.1" + is-symbol "^1.1.1" + +which-builtin-type@^1.2.1: + version "1.2.1" + resolved "https://registry.npmmirror.com/which-builtin-type/-/which-builtin-type-1.2.1.tgz" + integrity sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q== + dependencies: + call-bound "^1.0.2" + function.prototype.name "^1.1.6" + has-tostringtag "^1.0.2" + is-async-function "^2.0.0" + is-date-object "^1.1.0" + is-finalizationregistry "^1.1.0" + is-generator-function "^1.0.10" + is-regex "^1.2.1" + is-weakref "^1.0.2" + isarray "^2.0.5" + which-boxed-primitive "^1.1.0" + which-collection "^1.0.2" + which-typed-array "^1.1.16" + +which-collection@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/which-collection/-/which-collection-1.0.2.tgz" + integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== + dependencies: + is-map "^2.0.3" + is-set "^2.0.3" + is-weakmap "^2.0.2" + is-weakset "^2.0.3" + +which-module@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/which-module/-/which-module-1.0.0.tgz" + integrity sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ== + +which-module@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/which-module/-/which-module-2.0.1.tgz" + integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== + +which-typed-array@^1.1.16, which-typed-array@^1.1.18: + version "1.1.18" + resolved "https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.18.tgz" + integrity sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.3" + for-each "^0.3.3" + gopd "^1.2.0" + has-tostringtag "^1.0.2" + +which@^1.2.9: + version "1.3.1" + resolved "https://registry.npmmirror.com/which/-/which-1.3.1.tgz" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.npmmirror.com/which/-/which-2.0.2.tgz" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.npmmirror.com/window-size/-/window-size-0.1.0.tgz" + integrity sha512-1pTPQDKTdd61ozlKGNCjhNRd+KPmgLSGa3mZTHoOliaGcESD8G1PXhh7c1fgiPjVbNVfgy2Faw4BI8/m0cC8Mg== + +wolfy87-eventemitter@^5.1.0: + version "5.2.9" + resolved "https://registry.npmmirror.com/wolfy87-eventemitter/-/wolfy87-eventemitter-5.2.9.tgz" + integrity sha512-P+6vtWyuDw+MB01X7UeF8TaHBvbCovf4HPEMF/SV7BdDc1SMTiBy13SRD71lQh4ExFTG1d/WNzDGDCyOKSMblw== + +wolfy87-eventemitter@~5.1.0: + version "5.1.0" + resolved "https://registry.npmmirror.com/wolfy87-eventemitter/-/wolfy87-eventemitter-5.1.0.tgz" + integrity sha512-VakY4+17DbamV2VW4nZERrSuilclCRcYtfchPWe6jlma8k0AeLJxBR+C5OSFFtICArDFdXk0yw67HUGrTCdrEg== + +word-wrap@~1.2.3: + version "1.2.5" + resolved "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.5.tgz" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.npmmirror.com/wordwrap/-/wordwrap-0.0.2.tgz" + integrity sha512-xSBsCeh+g+dinoBv3GAOWM4LcVVO68wLXRanibtBSdUvkGWQRGeE9P7IwU9EmDDi4jA6L44lz15CGMwdw9N5+Q== + +worker-farm@^1.7.0: + version "1.7.0" + resolved "https://registry.npmmirror.com/worker-farm/-/worker-farm-1.7.0.tgz" + integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== + dependencies: + errno "~0.1.7" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz" + integrity sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw== + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.npmmirror.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +write@^0.2.1: + version "0.2.1" + resolved "https://registry.npmmirror.com/write/-/write-0.2.1.tgz" + integrity sha512-CJ17OoULEKXpA5pef3qLj5AxTJ6mSt7g84he2WIskKwqFO4T97d5V7Tadl0DYDk7qyUOQD5WlUlOMChaYrhxeA== + dependencies: + mkdirp "^0.5.1" + +write@1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/write/-/write-1.0.3.tgz" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== + dependencies: + mkdirp "^0.5.1" + +ws@^6.0.0: + version "6.2.3" + resolved "https://registry.npmmirror.com/ws/-/ws-6.2.3.tgz" + integrity sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA== + dependencies: + async-limiter "~1.0.0" + +ws@^6.2.1: + version "6.2.3" + resolved "https://registry.npmmirror.com/ws/-/ws-6.2.3.tgz" + integrity sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA== + dependencies: + async-limiter "~1.0.0" + +ws@^7.4.6: + version "7.5.10" + resolved "https://registry.npmmirror.com/ws/-/ws-7.5.10.tgz" + integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== + +"xe-utils@>= 2.4.0 < 3", xe-utils@2.4.8: + version "2.4.8" + resolved "https://registry.npmmirror.com/xe-utils/-/xe-utils-2.4.8.tgz" + integrity sha512-/95ZaQK9GJE/EYrpMv9lgKdkEMQwWv4a4TF4dddi4gSzZ33vp/rZvzJNNV9XknaOkMizK9IBSX8CB/nL+SAk0Q== + +xhr@2.4.0: + version "2.4.0" + resolved "https://registry.npmmirror.com/xhr/-/xhr-2.4.0.tgz" + integrity sha512-TUbBsdAuJbX8olk9hsDwGK8P1ri1XlV+PdEWkYw+HQQbpkiBR8PLgD1F3kQDPBs9l4Px34hP9rCYAZOCCAENbw== + dependencies: + global "~4.3.0" + is-function "^1.0.1" + parse-headers "^2.0.0" + xtend "^4.0.0" + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xml-name-validator@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz" + integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.npmmirror.com/xmlchars/-/xmlchars-2.2.0.tgz" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +xtend@^4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^3.2.1: + version "3.2.2" + resolved "https://registry.npmmirror.com/y18n/-/y18n-3.2.2.tgz" + integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== + +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.npmmirror.com/y18n/-/y18n-4.0.3.tgz" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.npmmirror.com/yallist/-/yallist-2.1.2.tgz" + integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-13.1.2.tgz" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.9.tgz" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-parser@^4.2.0: + version "4.2.1" + resolved "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-4.2.1.tgz" + integrity sha512-+QQWqC2xeL0N5/TE+TY6OGEqyNRM+g2/r712PDNYgiCdXYCApXf1vzfmDSLBxfGRwV+moTq/V8FnMI24JCm2Yg== + dependencies: + camelcase "^3.0.0" + +yargs-parser@^7.0.0: + version "7.0.0" + resolved "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-7.0.0.tgz" + integrity sha512-WhzC+xgstid9MbVUktco/bf+KJG+Uu6vMX0LN1sLJvwmbCQVxb4D8LzogobonKycNasCZLdOzTAk1SK7+K7swg== + dependencies: + camelcase "^4.1.0" + +yargs@^13.3.2: + version "13.3.2" + resolved "https://registry.npmmirror.com/yargs/-/yargs-13.3.2.tgz" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.2" + +yargs@^16.0.0, yargs@^16.2.0: + version "16.2.0" + resolved "https://registry.npmmirror.com/yargs/-/yargs-16.2.0.tgz" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yargs@^8.0.2: + version "8.0.2" + resolved "https://registry.npmmirror.com/yargs/-/yargs-8.0.2.tgz" + integrity sha512-3RiZrpLpjrzIAKgGdPktBcMP/eG5bDFlkI+PHle1qwzyVXyDQL+pD/eZaMoOOO0Y7LLBfjpucObuUm/icvbpKQ== + dependencies: + camelcase "^4.1.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + read-pkg-up "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^7.0.0" + +yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.npmmirror.com/yargs/-/yargs-3.10.0.tgz" + integrity sha512-QFzUah88GAGy9lyDKGBqZdkYApt63rCXYBGYnEP4xDJPXNqXXnBDACnbrXnViV6jRSqAePwrATi2i8mfYm4L1A== + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" + +yargs@6.6.0: + version "6.6.0" + resolved "https://registry.npmmirror.com/yargs/-/yargs-6.6.0.tgz" + integrity sha512-6/QWTdisjnu5UHUzQGst+UOEuEVwIzFVGBjq3jMTFNs5WJQsH/X6nMURSaScIdF5txylr1Ao9bvbWiKi2yXbwA== + dependencies: + camelcase "^3.0.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.2" + which-module "^1.0.0" + y18n "^3.2.1" + yargs-parser "^4.2.0" + +yocto-queue@^1.0.0: + version "1.2.1" + resolved "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-1.2.1.tgz" + integrity sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg== + +yorkie@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/yorkie/-/yorkie-2.0.0.tgz" + integrity sha512-jcKpkthap6x63MB4TxwCyuIGkV0oYP/YRyuQU5UO0Yz/E/ZAu+653/uov+phdmO54n6BcvFRyyt0RRrWdN2mpw== + dependencies: + execa "^0.8.0" + is-ci "^1.0.10" + normalize-path "^1.0.0" + strip-indent "^2.0.0" + +zrender@5.6.0: + version "5.6.0" + resolved "https://registry.npmmirror.com/zrender/-/zrender-5.6.0.tgz" + integrity sha512-uzgraf4njmmHAbEUxMJ8Oxg+P3fT04O+9p7gY+wJRVxo8Ge+KmYv0WJev945EH4wFuc4OY2NLXz46FZrWS9xJg== + dependencies: + tslib "2.3.0"