Commit 04bfec3ee91d323d00b2a3d296e57c53de80a298

Authored by xp.Huang
2 parents a16337a4 df4c41a0

Merge branch 'ww' into 'main'

chore: add git ignore file

See merge request huang/thingskit-drawio!8
@@ -3,3 +3,5 @@ build @@ -3,3 +3,5 @@ build
3 classes 3 classes
4 node_modules 4 node_modules
5 .vscode/settings.json 5 .vscode/settings.json
  6 +.idea
  7 +yarn.lock
1 -# Default ignored files  
2 -/shelf/  
3 -/workspace.xml  
4 -# Datasource local storage ignored files  
5 -/dataSources/  
6 -/dataSources.local.xml  
7 -# Editor-based HTTP Client requests  
8 -/httpRequests/  
9 -# Zeppelin ignored files  
10 -/ZeppelinRemoteNotebooks/  
1 -<?xml version="1.0" encoding="UTF-8"?>  
2 -<project version="4">  
3 - <component name="AzureSettings">  
4 - <option name="appInsights" value="rO0ABXVyAEtbTGNvbS5taWNyb3NvZnQuYXBwbGljYXRpb25pbnNpZ2h0cy5wcmVmZXJlbmNlLkFwcGxpY2F0aW9uSW5zaWdodHNSZXNvdXJjZTvCzxEP0C2HbAIAAHhwAAAAAA==" />  
5 - </component>  
6 -</project>  
1 -<component name="ProjectDictionaryState">  
2 - <dictionary name="WWN">  
3 - <words>  
4 - <w>layui</w>  
5 - </words>  
6 - </dictionary>  
7 -</component>  
1 -<?xml version="1.0" encoding="UTF-8"?>  
2 -<project version="4">  
3 - <component name="GoogleJavaFormatSettings">  
4 - <option name="enabled" value="false" />  
5 - </component>  
6 -</project>  
1 -<?xml version="1.0" encoding="UTF-8"?>  
2 -<project version="4">  
3 - <component name="ProjectModuleManager">  
4 - <modules>  
5 - <module fileurl="file://$PROJECT_DIR$/.idea/thingskit-drawio.iml" filepath="$PROJECT_DIR$/.idea/thingskit-drawio.iml" />  
6 - </modules>  
7 - </component>  
8 -</project>  
1 -<?xml version="1.0" encoding="UTF-8"?>  
2 -<project version="4">  
3 - <component name="RunConfigurationProducerService">  
4 - <option name="ignoredProducers">  
5 - <set>  
6 - <option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" />  
7 - </set>  
8 - </option>  
9 - </component>  
10 -</project>  
1 -<?xml version="1.0" encoding="UTF-8"?>  
2 -<module type="JAVA_MODULE" version="4">  
3 - <component name="NewModuleRootManager" inherit-compiler-output="true">  
4 - <exclude-output />  
5 - <content url="file://$MODULE_DIR$" />  
6 - <orderEntry type="inheritedJdk" />  
7 - <orderEntry type="sourceFolder" forTests="false" />  
8 - </component>  
9 -</module>  
1 -<?xml version="1.0" encoding="UTF-8"?>  
2 -<project version="4">  
3 - <component name="VcsDirectoryMappings">  
4 - <mapping directory="$PROJECT_DIR$" vcs="Git" />  
5 - </component>  
6 -</project>  
@@ -78,4 +78,13 @@ class ConfigurationNodeApi { @@ -78,4 +78,13 @@ class ConfigurationNodeApi {
78 static updateNodeAct(data) { 78 static updateNodeAct(data) {
79 return defHttp.post('/yt/configuration/node/act', data) 79 return defHttp.post('/yt/configuration/node/act', data)
80 } 80 }
  81 +
  82 + /**
  83 + * @description 更新节点绑定信息
  84 + * @param {*} data
  85 + * @returns
  86 + */
  87 + static updateNodeInfo(data) {
  88 + return defHttp.post('/yt/configuration/node', data)
  89 + }
81 } 90 }
@@ -4894,7 +4894,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { @@ -4894,7 +4894,7 @@ DataFormatPanel.prototype.addDataFont = function (container) {
4894 const graphId = ss.vertices[0].id; 4894 const graphId = ss.vertices[0].id;
4895 4895
4896 // 解构全局属性layui要用到的模块 4896 // 解构全局属性layui要用到的模块
4897 - const { layer, form, tree: layuiTree, jquery: $ } = layui; 4897 + const { layer, form, jquery: $ } = layui;
4898 4898
4899 const CONTAINER_FILTER = 'containerFilter' 4899 const CONTAINER_FILTER = 'containerFilter'
4900 $(container).addClass('layui-form').attr('lay-filter', CONTAINER_FILTER) 4900 $(container).addClass('layui-form').attr('lay-filter', CONTAINER_FILTER)
@@ -4947,69 +4947,77 @@ DataFormatPanel.prototype.addDataFont = function (container) { @@ -4947,69 +4947,77 @@ DataFormatPanel.prototype.addDataFont = function (container) {
4947 return {} 4947 return {}
4948 } 4948 }
4949 4949
4950 - const interactionItems = [ 4950 + const enumCategory = {
  4951 + ACT: 'act',
  4952 + EVENT: 'event',
  4953 + DATA_SOURCE: 'dataSources'
  4954 + }
  4955 +
  4956 + const enumInteractionType = {
  4957 + DOWN: 'DOWN',
  4958 + UP: 'UP',
  4959 + SINGLE: 'SINGLE',
  4960 + DOUBLE: 'DOUBLE',
  4961 + }
  4962 +
  4963 + const enumDynamicEffectType = {
  4964 + DISPLAY: 'DISPLAY',
  4965 + FLASH: 'FLASH',
  4966 + ROTATE: 'ROTATE',
  4967 + }
  4968 +
  4969 +
  4970 + const interactionList = [
4951 { 4971 {
4952 label: "按下", 4972 label: "按下",
4953 - checkboxName: "pressInput",  
4954 - value: "pressEdit",  
4955 - type: 'DOWN' 4973 + type: enumInteractionType.DOWN,
  4974 + category: enumCategory.EVENT
4956 }, 4975 },
4957 { 4976 {
4958 label: "抬起", 4977 label: "抬起",
4959 - checkboxName: "upliftInput",  
4960 - value: "upliftEdit",  
4961 - type: 'UP' 4978 + type: enumInteractionType.UP,
  4979 + category: enumCategory.EVENT
4962 }, 4980 },
4963 { 4981 {
4964 label: "单击", 4982 label: "单击",
4965 - checkboxName: "clickInput",  
4966 - value: "clickEdit",  
4967 - type: 'SINGLE' 4983 + type: enumInteractionType.SINGLE,
  4984 + category: enumCategory.EVENT
4968 }, 4985 },
4969 { 4986 {
4970 label: "双击", 4987 label: "双击",
4971 - checkboxName: "dbClickInput",  
4972 - value: "dbClickEdit",  
4973 - type: 'DOUBLE' 4988 + type: enumInteractionType.DOUBLE,
  4989 + category: enumCategory.EVENT
4974 }, 4990 },
4975 ]; 4991 ];
4976 4992
4977 - const dynamicEffect = [ 4993 + const dynamicEffectList = [
4978 { 4994 {
4979 label: "闪烁", 4995 label: "闪烁",
4980 - checkboxName: "flashingInput",  
4981 - value: "flashingEdit",  
4982 - type: 'FLASH' 4996 + type: enumDynamicEffectType.FLASH,
  4997 + category: enumCategory.ACT
4983 }, 4998 },
4984 { 4999 {
4985 label: "显示/隐藏", 5000 label: "显示/隐藏",
4986 - checkboxName: "showOrHiddenInput",  
4987 - value: "showOrHiddenEdit",  
4988 - type: 'DISPLAY'  
4989 - 5001 + type: enumDynamicEffectType.DISPLAY,
  5002 + category: enumCategory.ACT
4990 }, 5003 },
4991 { 5004 {
4992 label: "旋转", 5005 label: "旋转",
4993 - checkboxName: "rotateInput",  
4994 - value: "rotateEdit",  
4995 - type: 'ROTATE' 5006 + type: enumDynamicEffectType.ROTATE,
  5007 + category: enumCategory.ACT
4996 }, 5008 },
4997 ]; 5009 ];
4998 5010
4999 - /**  
5000 - * @description 操作映射表  
5001 - * @returns {Map}  
5002 - */  
5003 - const interactionItemsMap = (() => {  
5004 - const map = new Map()  
5005 - interactionItems.forEach(item => {  
5006 - map.set(item.type, item)  
5007 - })  
5008 - dynamicEffect.forEach(item => {  
5009 - map.set(item.type, item)  
5010 - })  
5011 - return map  
5012 - })(); 5011 + const enumDataSourceConst = (() => {
  5012 + return {
  5013 + ORG_ID: 'orgId',
  5014 + DEVICE_ID: 'deviceId',
  5015 + SLAVE_DEVICE_ID: 'slaveDeviceId',
  5016 + ATTR: 'attr',
  5017 + GATEWAY: 'GATEWAY'
  5018 + }
  5019 + })()
  5020 +
5013 5021
5014 // 获取url的请求参数函数 5022 // 获取url的请求参数函数
5015 function getRequest() { 5023 function getRequest() {
@@ -5051,68 +5059,11 @@ DataFormatPanel.prototype.addDataFont = function (container) { @@ -5051,68 +5059,11 @@ DataFormatPanel.prototype.addDataFont = function (container) {
5051 createInteractionPanel() 5059 createInteractionPanel()
5052 createDynamicEffectPanel() 5060 createDynamicEffectPanel()
5053 createSubmitPanel() 5061 createSubmitPanel()
5054 - echoData()  
5055 } 5062 }
5056 5063
5057 initNode(); 5064 initNode();
5058 5065
5059 5066
5060 - // /**  
5061 - // * @description 数据回显  
5062 - // */  
5063 - async function echoData() {  
5064 - const [err, res] = await to(getNodeBindInfo())  
5065 - if (err || !Object.keys(res).length) return  
5066 - currentNodeData = res  
5067 - const all = [...(res.act ?? []), ...(res.event ?? [])]  
5068 - let needUpdateCheckbox = []  
5069 - for (const item of all) {  
5070 - if (!item.enabled) {  
5071 - needUpdateCheckbox.push(interactionItemsMap.get(item.type))  
5072 - }  
5073 - }  
5074 - needUpdateCheckbox = needUpdateCheckbox.filter(Boolean)  
5075 -  
5076 - needUpdateCheckbox.forEach((item) => {  
5077 - $('.interaction__container').find(`input[name="${item.value}"]`).prop('checked', true)  
5078 - })  
5079 - form.render('checkbox')  
5080 - }  
5081 -  
5082 - /**  
5083 - // * @description 组织树重载  
5084 - // */  
5085 - // async function getOrgTree() {  
5086 - // const [err, res] = await to(ConfigurationNodeApi.getOrgTree())  
5087 - // if (err) return  
5088 - // treeList = res  
5089 -  
5090 - // function formatTreeData(data) {  
5091 - // return data.reduce((prev, next) => {  
5092 - // let children = []  
5093 - // if (next.children && next.children.length) {  
5094 - // children = formatTreeData(next.children)  
5095 - // }  
5096 - // return [...prev, { id: next.id, title: next.name, children }]  
5097 - // }, [])  
5098 - // }  
5099 -  
5100 - // const treeData = formatTreeData(res)  
5101 -  
5102 - // layuiTree.render({  
5103 - // elem: '#organizationTree',  
5104 - // data: treeData,  
5105 - // onlyIconControl: true,  
5106 - // accordion: true,  
5107 - // click(node) {  
5108 - // currentCheckedOrgNode = node.data.id  
5109 - // // 获取组织下的设备  
5110 - // getDevicesByOrganizationId(node.data.id);  
5111 - // },  
5112 - // })  
5113 - // }  
5114 -  
5115 -  
5116 /** 5067 /**
5117 * @description 获取节点绑定信息 5068 * @description 获取节点绑定信息
5118 */ 5069 */
@@ -5129,13 +5080,13 @@ DataFormatPanel.prototype.addDataFont = function (container) { @@ -5129,13 +5080,13 @@ DataFormatPanel.prototype.addDataFont = function (container) {
5129 function generateDataEventNode() { 5080 function generateDataEventNode() {
5130 const eventList = [] 5081 const eventList = []
5131 const eventNodeCls = 'interaction__container' 5082 const eventNodeCls = 'interaction__container'
5132 - for (const item of interactionItems) {  
5133 - const checkbox = UseLayUi.createCheckBox({ dataSource: item, layFilter: item.checkboxName }) 5083 + for (const item of interactionList) {
  5084 + const checkbox = UseLayUi.createCheckBox({ dataSource: item, layFilter: item.type, valueField: 'type', labelField: 'label' })
5134 const template = ` 5085 const template = `
5135 - <div class="${eventNodeCls}">  
5136 - ${checkbox}  
5137 - <i id="${item.value}"></i>  
5138 - </div>` 5086 + <div class="${eventNodeCls}">
  5087 + ${checkbox}
  5088 + <i id="${item.type}"></i>
  5089 + </div>`
5139 eventList.push(template) 5090 eventList.push(template)
5140 } 5091 }
5141 return eventList 5092 return eventList
@@ -5149,12 +5100,12 @@ DataFormatPanel.prototype.addDataFont = function (container) { @@ -5149,12 +5100,12 @@ DataFormatPanel.prototype.addDataFont = function (container) {
5149 const eventList = [] 5100 const eventList = []
5150 const eventNodeCls = 'interaction__container' 5101 const eventNodeCls = 'interaction__container'
5151 for (const item of list) { 5102 for (const item of list) {
5152 - const checkbox = UseLayUi.createCheckBox({ dataSource: item, layFilter: item.checkboxName }) 5103 + const checkbox = UseLayUi.createCheckBox({ dataSource: item, layFilter: item.checkboxName, valueField: 'type', labelField: 'label' })
5153 const template = ` 5104 const template = `
5154 - <div class="${eventNodeCls}">  
5155 - ${checkbox}  
5156 - <i id="${item.value}"></i>  
5157 - </div>` 5105 + <div class="${eventNodeCls}">
  5106 + ${checkbox}
  5107 + <i id="${item.type}"></i>
  5108 + </div>`
5158 eventList.push(template) 5109 eventList.push(template)
5159 } 5110 }
5160 return eventList 5111 return eventList
@@ -5170,15 +5121,6 @@ DataFormatPanel.prototype.addDataFont = function (container) { @@ -5170,15 +5121,6 @@ DataFormatPanel.prototype.addDataFont = function (container) {
5170 DEVICE_EL: 'dataSourceDevice', 5121 DEVICE_EL: 'dataSourceDevice',
5171 SLAVE_DEVICE_EL: 'dataSourceSlaveDevice', 5122 SLAVE_DEVICE_EL: 'dataSourceSlaveDevice',
5172 ATTR_EL: 'dataSourceAttr', 5123 ATTR_EL: 'dataSourceAttr',
5173 -  
5174 - }  
5175 -  
5176 - const enumConst = {  
5177 - ORG_ID: 'orgId',  
5178 - DEVICE_ID: 'deviceId',  
5179 - SLAVE_DEVICE_ID: 'slaveDeviceId',  
5180 - ATTR: 'attr',  
5181 - GATEWAY: 'GATEWAY'  
5182 } 5124 }
5183 5125
5184 const fragment = document.createDocumentFragment() 5126 const fragment = document.createDocumentFragment()
@@ -5208,7 +5150,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { @@ -5208,7 +5150,7 @@ DataFormatPanel.prototype.addDataFont = function (container) {
5208 5150
5209 UseLayUi.createTreeSelect({ 5151 UseLayUi.createTreeSelect({
5210 elem: `#${enumActionEl.ORG_EL}`, 5152 elem: `#${enumActionEl.ORG_EL}`,
5211 - layFilter: enumConst.ORG_ID, 5153 + layFilter: enumDataSourceConst.ORG_ID,
5212 className: 'data-source__org--override', 5154 className: 'data-source__org--override',
5213 label: '组织', 5155 label: '组织',
5214 singleUsage: false, 5156 singleUsage: false,
@@ -5232,14 +5174,14 @@ DataFormatPanel.prototype.addDataFont = function (container) { @@ -5232,14 +5174,14 @@ DataFormatPanel.prototype.addDataFont = function (container) {
5232 devicePanel = defaultPanel.cloneNode(false) 5174 devicePanel = defaultPanel.cloneNode(false)
5233 const deviceSelect = UseLayUi.createSelect({ 5175 const deviceSelect = UseLayUi.createSelect({
5234 label: '设备', 5176 label: '设备',
5235 - layFilter: enumConst.DEVICE_ID, 5177 + layFilter: enumDataSourceConst.DEVICE_ID,
5236 className: 'data-panel__select', 5178 className: 'data-panel__select',
5237 onClick(data) { 5179 onClick(data) {
5238 const { value } = data 5180 const { value } = data
5239 const selected = deviceList.find(item => item.id === value) 5181 const selected = deviceList.find(item => item.id === value)
5240 - if (selected.deviceType === enumConst.GATEWAY) { 5182 + if (selected.deviceType === enumDataSourceConst.GATEWAY) {
5241 $(`#${enumActionEl.SLAVE_DEVICE_EL}`).css({ display: 'block' }) 5183 $(`#${enumActionEl.SLAVE_DEVICE_EL}`).css({ display: 'block' })
5242 - getSlaveDeviceByMasterDeviceId(selected.id) 5184 + getSlaveDeviceByMasterDeviceId(currentCheckedOrgNode, selected.id)
5243 } else { 5185 } else {
5244 $(`#${enumActionEl.SLAVE_DEVICE_EL}`).css({ display: 'none' }) 5186 $(`#${enumActionEl.SLAVE_DEVICE_EL}`).css({ display: 'none' })
5245 getAttrByDeviceId(selected.id) 5187 getAttrByDeviceId(selected.id)
@@ -5256,7 +5198,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { @@ -5256,7 +5198,7 @@ DataFormatPanel.prototype.addDataFont = function (container) {
5256 slaveDevicePanel = defaultPanel.cloneNode(false) 5198 slaveDevicePanel = defaultPanel.cloneNode(false)
5257 const slaveDeviceSelect = UseLayUi.createSelect({ 5199 const slaveDeviceSelect = UseLayUi.createSelect({
5258 label: '子设备', 5200 label: '子设备',
5259 - layFilter: enumConst.SLAVE_DEVICE_ID, 5201 + layFilter: enumDataSourceConst.SLAVE_DEVICE_ID,
5260 className: 'data-panel__select', 5202 className: 'data-panel__select',
5261 onClick(data) { 5203 onClick(data) {
5262 const { value } = data 5204 const { value } = data
@@ -5273,7 +5215,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { @@ -5273,7 +5215,7 @@ DataFormatPanel.prototype.addDataFont = function (container) {
5273 attrsPanel = defaultPanel.cloneNode(false) 5215 attrsPanel = defaultPanel.cloneNode(false)
5274 const attrsSelect = UseLayUi.createSelect({ 5216 const attrsSelect = UseLayUi.createSelect({
5275 label: '属性', 5217 label: '属性',
5276 - layFilter: enumConst.ATTR, 5218 + layFilter: enumDataSourceConst.ATTR,
5277 className: 'data-panel__select' 5219 className: 'data-panel__select'
5278 }) 5220 })
5279 $(attrsPanel).attr('id', enumActionEl.ATTR_EL).append(attrsSelect) 5221 $(attrsPanel).attr('id', enumActionEl.ATTR_EL).append(attrsSelect)
@@ -5296,9 +5238,9 @@ DataFormatPanel.prototype.addDataFont = function (container) { @@ -5296,9 +5238,9 @@ DataFormatPanel.prototype.addDataFont = function (container) {
5296 /** 5238 /**
5297 * @description 通过主设备ID获取从设备 5239 * @description 通过主设备ID获取从设备
5298 */ 5240 */
5299 - async function getSlaveDeviceByMasterDeviceId(deviceId) { 5241 + async function getSlaveDeviceByMasterDeviceId(orgId, deviceId) {
5300 if (deviceId && currentCheckedOrgNode) { 5242 if (deviceId && currentCheckedOrgNode) {
5301 - const items = await ConfigurationNodeApi.getSlaveDevice(currentCheckedOrgNode, deviceId); 5243 + const items = await ConfigurationNodeApi.getSlaveDevice(orgId, deviceId);
5302 $(`#${enumActionEl.SLAVE_DEVICE_EL}`).find('select').html(UseLayUi.generateOptionTemplate({ dataSource: items })) 5244 $(`#${enumActionEl.SLAVE_DEVICE_EL}`).find('select').html(UseLayUi.generateOptionTemplate({ dataSource: items }))
5303 form.render('select', CONTAINER_FILTER) 5245 form.render('select', CONTAINER_FILTER)
5304 } 5246 }
@@ -5316,11 +5258,64 @@ DataFormatPanel.prototype.addDataFont = function (container) { @@ -5316,11 +5258,64 @@ DataFormatPanel.prototype.addDataFont = function (container) {
5316 } 5258 }
5317 5259
5318 5260
  5261 + /**
  5262 + * @description 数据回显
  5263 + */
  5264 + async function echoData() {
  5265 + const [err, res] = await to(getNodeBindInfo())
  5266 + if (err || !Object.keys(res).length) return
  5267 + currentNodeData = res
  5268 +
  5269 + echoDataSource()
  5270 + echoActionType()
  5271 +
  5272 + function echoDataSource() {
  5273 + const { dataSources = [] } = currentNodeData
  5274 + const [ dataSource = {} ] = dataSources
  5275 + const { orgId, deviceId, slaveDeviceId, attr: [bindAttr] = [] } = dataSource
  5276 + const queue = []
  5277 + if (orgId) {
  5278 + currentCheckedOrgNode = orgId
  5279 + queue.push(() => getDevicesByOrgId(orgId))
  5280 + }
  5281 + if (slaveDeviceId) {
  5282 + queue.push(() => getSlaveDeviceByMasterDeviceId(orgId, deviceId))
  5283 + queue.push(() => getAttrByDeviceId(slaveDeviceId))
  5284 + } else {
  5285 + queue.push(() => getAttrByDeviceId(deviceId))
  5286 + }
  5287 + Promise.all(queue.map(item => item()))
  5288 + .finally(() => {
  5289 + const orgNode = UseLayUi.findTreeObjectByField(treeList, orgId)
  5290 + $(`#${enumActionEl.ORG_EL} input`).parent().find('span').html(orgNode.name)
  5291 + form.val(CONTAINER_FILTER, {
  5292 + orgId,
  5293 + deviceId,
  5294 + slaveDeviceId,
  5295 + attr: bindAttr
  5296 + })
  5297 + })
  5298 + }
  5299 +
  5300 + async function echoActionType() {
  5301 + const all = [...(currentNodeData.act ?? []), ...(currentNodeData.event ?? [])]
  5302 + const actionType = {}
  5303 + for (const item of all) {
  5304 + if (!item.enabled) {
  5305 + actionType[item.type] = 'on'
  5306 + }
  5307 + }
  5308 + console.log(actionType)
  5309 + form.val(CONTAINER_FILTER, actionType)
  5310 + }
  5311 + }
  5312 +
5319 function mount() { 5313 function mount() {
5320 generatorOrgTres() 5314 generatorOrgTres()
5321 generatorDeviceSelect() 5315 generatorDeviceSelect()
5322 generatoSlaveDevice() 5316 generatoSlaveDevice()
5323 generatorAttrSelect() 5317 generatorAttrSelect()
  5318 + echoData()
5324 5319
5325 $(fragment).append(title).append(orgPanel).append(devicePanel).append(slaveDevicePanel).append(attrsPanel) 5320 $(fragment).append(title).append(orgPanel).append(devicePanel).append(slaveDevicePanel).append(attrsPanel)
5326 5321
@@ -5359,7 +5354,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { @@ -5359,7 +5354,7 @@ DataFormatPanel.prototype.addDataFont = function (container) {
5359 const title = createTitle('数据动效') 5354 const title = createTitle('数据动效')
5360 $(title).addClass('override__title--default') 5355 $(title).addClass('override__title--default')
5361 fragment.append(title) 5356 fragment.append(title)
5362 - generateActionEventNode(dynamicEffect).forEach(item => { 5357 + generateActionEventNode(dynamicEffectList).forEach(item => {
5363 const panel = createPanel() 5358 const panel = createPanel()
5364 $(panel).addClass('override__panel--default').append(item) 5359 $(panel).addClass('override__panel--default').append(item)
5365 $(fragment).append(panel) 5360 $(fragment).append(panel)
@@ -5376,22 +5371,36 @@ DataFormatPanel.prototype.addDataFont = function (container) { @@ -5376,22 +5371,36 @@ DataFormatPanel.prototype.addDataFont = function (container) {
5376 $(panel).addClass('data-source__submit-panel').append(`<button type="button" lay-submit lay-filter="formDataSource" class="layui-btn">保存</button>`) 5371 $(panel).addClass('data-source__submit-panel').append(`<button type="button" lay-submit lay-filter="formDataSource" class="layui-btn">保存</button>`)
5377 $(container).append(panel) 5372 $(container).append(panel)
5378 form.on('submit(formDataSource)', function (data) { 5373 form.on('submit(formDataSource)', function (data) {
5379 - /**  
5380 - * @description 同步createDataSourcePanel 中的 enumConst  
5381 - */  
5382 - const enumConst = {  
5383 - ORG_ID: 'orgId',  
5384 - DEVICE_ID: 'deviceId',  
5385 - SLAVE_DEVICE_ID: 'slaveDeviceId',  
5386 - ATTR: 'attr',  
5387 - GATEWAY: 'GATEWAY'  
5388 - } 5374 + const ENABLED_FLAG = 'on'
5389 const { field } = data 5375 const { field } = data
5390 - console.log(data)  
5391 - const orgId = field[enumConst.ORG_ID]  
5392 - const deviceId = field[enumConst.DEVICE_ID]  
5393 - const slaveDeviceId = field[enumConst.SLAVE_DEVICE_ID]  
5394 - const attr = field[enumConst.ATTR] 5376 + const value = { [enumCategory.ACT]: [], [enumCategory.EVENT]: [], [enumCategory.DATA_SOURCE]: [] }
  5377 + const allType = [...interactionList, ...dynamicEffectList]
  5378 + for (const item of allType) {
  5379 + if (field[item.type] === ENABLED_FLAG) {
  5380 + const enableItem = currentNodeData[item.category].find(each => each.type === item.type)
  5381 + if (!enableItem) continue
  5382 + value[item.category].push({
  5383 + configurationId,
  5384 + contentId: currentPageId.id,
  5385 + id: graphId,
  5386 + type: item.type,
  5387 + enabled: true
  5388 + })
  5389 + }
  5390 + }
  5391 + value[enumCategory.DATA_SOURCE].push({
  5392 + [enumDataSourceConst.ORG_ID]: field[enumDataSourceConst.ORG_ID],
  5393 + [enumDataSourceConst.DEVICE_ID]: field[enumDataSourceConst.DEVICE_ID],
  5394 + [enumDataSourceConst.SLAVE_DEVICE_ID]: field[enumDataSourceConst.SLAVE_DEVICE_ID],
  5395 + [enumDataSourceConst.ATTR]: [field[enumDataSourceConst.ATTR]],
  5396 + })
  5397 +
  5398 + ConfigurationNodeApi.updateNodeInfo(value)
  5399 + .then(res => {
  5400 + console.log(res)
  5401 + }).catch(err => {
  5402 + console.log(err)
  5403 + })
5395 return false; 5404 return false;
5396 }); 5405 });
5397 } 5406 }
@@ -6293,14 +6302,14 @@ DataFormatPanel.prototype.addDataFont = function (container) { @@ -6293,14 +6302,14 @@ DataFormatPanel.prototype.addDataFont = function (container) {
6293 setTimeout(() => { 6302 setTimeout(() => {
6294 6303
6295 // TODO 数据交互事件 6304 // TODO 数据交互事件
6296 - $("#pressEdit").click({ type: "DOWN", }, handleDownOrUpEvent);  
6297 - $("#upliftEdit").click({ type: "UP" }, handleDownOrUpEvent);  
6298 - $("#clickEdit").click({ type: "SINGLE" }, handleClickOrDbClick);  
6299 - $("#dbClickEdit").click({ type: "DOUBLE" }, handleClickOrDbClick); 6305 + $(`#${enumInteractionType.DOWN}`).click({ type: enumInteractionType.DOWN, }, handleDownOrUpEvent);
  6306 + $(`#${enumInteractionType.UP}`).click({ type: enumInteractionType.UP }, handleDownOrUpEvent);
  6307 + $(`#${enumInteractionType.SINGLE}`).click({ type: enumInteractionType.SINGLE }, handleClickOrDbClick);
  6308 + $(`#${enumInteractionType.DOUBLE}`).click({ type: enumInteractionType.DOUBLE }, handleClickOrDbClick);
6300 // 数据动效事件 6309 // 数据动效事件
6301 - $("#flashingEdit").click({ type: "FLASH" }, handleDataDynamicEffect);  
6302 - $("#showOrHiddenEdit").click({ type: "DISPLAY" }, handleDataDynamicEffect);  
6303 - $("#rotateEdit").click({ type: "ROTATE" }, handleDataDynamicEffect); 6310 + $(`#${enumDynamicEffectType.FLASH}`).click({ type: enumDynamicEffectType.FLASH }, handleDataDynamicEffect);
  6311 + $(`#${enumDynamicEffectType.DISPLAY}`).click({ type: enumDynamicEffectType.DISPLAY }, handleDataDynamicEffect);
  6312 + $(`#${enumDynamicEffectType.ROTATE}`).click({ type: enumDynamicEffectType.ROTATE }, handleDataDynamicEffect);
6304 }); 6313 });
6305 }; 6314 };
6306 6315
@@ -10393,6 +10402,9 @@ class UseLayUi { @@ -10393,6 +10402,9 @@ class UseLayUi {
10393 laySkin = 'primary', 10402 laySkin = 'primary',
10394 dataSource = [], 10403 dataSource = [],
10395 customSetValue, 10404 customSetValue,
  10405 + labelField = 'name',
  10406 + valueField = 'id',
  10407 + checkedField = 'checked',
10396 onChange 10408 onChange
10397 } = options 10409 } = options
10398 customSetValue = customSetValue || ((record) => ({ value: record.id, title: record.name })) 10410 customSetValue = customSetValue || ((record) => ({ value: record.id, title: record.name }))
@@ -10404,11 +10416,11 @@ class UseLayUi { @@ -10404,11 +10416,11 @@ class UseLayUi {
10404 return dataSource.map((record) => { 10416 return dataSource.map((record) => {
10405 return `<input 10417 return `<input
10406 type="checkbox" lay-skin="${laySkin}" 10418 type="checkbox" lay-skin="${laySkin}"
10407 - ${UseLayUi.dynamicAttr('name', record.value)}  
10408 - ${UseLayUi.dynamicAttr('title', record.label)} 10419 + ${UseLayUi.dynamicAttr('name', record[valueField])}
  10420 + ${UseLayUi.dynamicAttr('title', record[labelField])}
10409 ${UseLayUi.dynamicAttr('lay-filter', layFilter)} 10421 ${UseLayUi.dynamicAttr('lay-filter', layFilter)}
10410 ${UseLayUi.dynamicAttr('lay-verify', layVerify)} 10422 ${UseLayUi.dynamicAttr('lay-verify', layVerify)}
10411 - ${UseLayUi.dynamicAttr('checked', record.checked)} 10423 + ${UseLayUi.dynamicAttr('checked', record[checkedField])}
10412 >` 10424 >`
10413 }) 10425 })
10414 } 10426 }
yarn.lock deleted 100644 → 0
1 -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.  
2 -# yarn lockfile v1  
3 -  
4 -  
5 -"@zeit/schemas@2.6.0":  
6 - version "2.6.0"  
7 - resolved "https://registry.yarnpkg.com/@zeit/schemas/-/schemas-2.6.0.tgz#004e8e553b4cd53d538bd38eac7bcbf58a867fe3"  
8 - integrity sha512-uUrgZ8AxS+Lio0fZKAipJjAh415JyrOZowliZAzmnJSsf7piVL5w+G0+gFJ0KSu3QRhvui/7zuvpLz03YjXAhg==  
9 -  
10 -accepts@~1.3.5:  
11 - version "1.3.8"  
12 - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"  
13 - integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==  
14 - dependencies:  
15 - mime-types "~2.1.34"  
16 - negotiator "0.6.3"  
17 -  
18 -ajv@6.12.6:  
19 - version "6.12.6"  
20 - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"  
21 - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==  
22 - dependencies:  
23 - fast-deep-equal "^3.1.1"  
24 - fast-json-stable-stringify "^2.0.0"  
25 - json-schema-traverse "^0.4.1"  
26 - uri-js "^4.2.2"  
27 -  
28 -ansi-align@^3.0.0:  
29 - version "3.0.1"  
30 - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59"  
31 - integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==  
32 - dependencies:  
33 - string-width "^4.1.0"  
34 -  
35 -ansi-regex@^5.0.1:  
36 - version "5.0.1"  
37 - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"  
38 - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==  
39 -  
40 -ansi-styles@^3.2.1:  
41 - version "3.2.1"  
42 - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"  
43 - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==  
44 - dependencies:  
45 - color-convert "^1.9.0"  
46 -  
47 -ansi-styles@^4.0.0, ansi-styles@^4.1.0:  
48 - version "4.3.0"  
49 - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"  
50 - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==  
51 - dependencies:  
52 - color-convert "^2.0.1"  
53 -  
54 -arch@^2.1.1:  
55 - version "2.2.0"  
56 - resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11"  
57 - integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==  
58 -  
59 -arg@2.0.0:  
60 - version "2.0.0"  
61 - resolved "https://registry.yarnpkg.com/arg/-/arg-2.0.0.tgz#c06e7ff69ab05b3a4a03ebe0407fac4cba657545"  
62 - integrity sha512-XxNTUzKnz1ctK3ZIcI2XUPlD96wbHP2nGqkPKpvk/HNRlPveYrXIVSTk9m3LcqOgDPg3B1nMvdV/K8wZd7PG4w==  
63 -  
64 -balanced-match@^1.0.0:  
65 - version "1.0.2"  
66 - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"  
67 - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==  
68 -  
69 -boxen@5.1.2:  
70 - version "5.1.2"  
71 - resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50"  
72 - integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==  
73 - dependencies:  
74 - ansi-align "^3.0.0"  
75 - camelcase "^6.2.0"  
76 - chalk "^4.1.0"  
77 - cli-boxes "^2.2.1"  
78 - string-width "^4.2.2"  
79 - type-fest "^0.20.2"  
80 - widest-line "^3.1.0"  
81 - wrap-ansi "^7.0.0"  
82 -  
83 -brace-expansion@^1.1.7:  
84 - version "1.1.11"  
85 - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"  
86 - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==  
87 - dependencies:  
88 - balanced-match "^1.0.0"  
89 - concat-map "0.0.1"  
90 -  
91 -bytes@3.0.0:  
92 - version "3.0.0"  
93 - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"  
94 - integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==  
95 -  
96 -camelcase@^6.2.0:  
97 - version "6.3.0"  
98 - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"  
99 - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==  
100 -  
101 -chalk@2.4.1:  
102 - version "2.4.1"  
103 - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e"  
104 - integrity sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==  
105 - dependencies:  
106 - ansi-styles "^3.2.1"  
107 - escape-string-regexp "^1.0.5"  
108 - supports-color "^5.3.0"  
109 -  
110 -chalk@^4.1.0:  
111 - version "4.1.2"  
112 - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"  
113 - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==  
114 - dependencies:  
115 - ansi-styles "^4.1.0"  
116 - supports-color "^7.1.0"  
117 -  
118 -cli-boxes@^2.2.1:  
119 - version "2.2.1"  
120 - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f"  
121 - integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==  
122 -  
123 -clipboardy@2.3.0:  
124 - version "2.3.0"  
125 - resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-2.3.0.tgz#3c2903650c68e46a91b388985bc2774287dba290"  
126 - integrity sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==  
127 - dependencies:  
128 - arch "^2.1.1"  
129 - execa "^1.0.0"  
130 - is-wsl "^2.1.1"  
131 -  
132 -color-convert@^1.9.0:  
133 - version "1.9.3"  
134 - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"  
135 - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==  
136 - dependencies:  
137 - color-name "1.1.3"  
138 -  
139 -color-convert@^2.0.1:  
140 - version "2.0.1"  
141 - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"  
142 - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==  
143 - dependencies:  
144 - color-name "~1.1.4"  
145 -  
146 -color-name@1.1.3:  
147 - version "1.1.3"  
148 - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"  
149 - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=  
150 -  
151 -color-name@~1.1.4:  
152 - version "1.1.4"  
153 - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"  
154 - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==  
155 -  
156 -compressible@~2.0.14:  
157 - version "2.0.18"  
158 - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba"  
159 - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==  
160 - dependencies:  
161 - mime-db ">= 1.43.0 < 2"  
162 -  
163 -compression@1.7.3:  
164 - version "1.7.3"  
165 - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.3.tgz#27e0e176aaf260f7f2c2813c3e440adb9f1993db"  
166 - integrity sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==  
167 - dependencies:  
168 - accepts "~1.3.5"  
169 - bytes "3.0.0"  
170 - compressible "~2.0.14"  
171 - debug "2.6.9"  
172 - on-headers "~1.0.1"  
173 - safe-buffer "5.1.2"  
174 - vary "~1.1.2"  
175 -  
176 -concat-map@0.0.1:  
177 - version "0.0.1"  
178 - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"  
179 - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=  
180 -  
181 -content-disposition@0.5.2:  
182 - version "0.5.2"  
183 - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4"  
184 - integrity sha1-DPaLud318r55YcOoUXjLhdunjLQ=  
185 -  
186 -cross-spawn@^6.0.0:  
187 - version "6.0.5"  
188 - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"  
189 - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==  
190 - dependencies:  
191 - nice-try "^1.0.4"  
192 - path-key "^2.0.1"  
193 - semver "^5.5.0"  
194 - shebang-command "^1.2.0"  
195 - which "^1.2.9"  
196 -  
197 -debug@2.6.9:  
198 - version "2.6.9"  
199 - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"  
200 - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==  
201 - dependencies:  
202 - ms "2.0.0"  
203 -  
204 -deep-extend@^0.6.0:  
205 - version "0.6.0"  
206 - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"  
207 - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==  
208 -  
209 -emoji-regex@^8.0.0:  
210 - version "8.0.0"  
211 - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"  
212 - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==  
213 -  
214 -end-of-stream@^1.1.0:  
215 - version "1.4.4"  
216 - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"  
217 - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==  
218 - dependencies:  
219 - once "^1.4.0"  
220 -  
221 -escape-string-regexp@^1.0.5:  
222 - version "1.0.5"  
223 - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"  
224 - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=  
225 -  
226 -execa@^1.0.0:  
227 - version "1.0.0"  
228 - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"  
229 - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==  
230 - dependencies:  
231 - cross-spawn "^6.0.0"  
232 - get-stream "^4.0.0"  
233 - is-stream "^1.1.0"  
234 - npm-run-path "^2.0.0"  
235 - p-finally "^1.0.0"  
236 - signal-exit "^3.0.0"  
237 - strip-eof "^1.0.0"  
238 -  
239 -fast-deep-equal@^3.1.1:  
240 - version "3.1.3"  
241 - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"  
242 - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==  
243 -  
244 -fast-json-stable-stringify@^2.0.0:  
245 - version "2.1.0"  
246 - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"  
247 - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==  
248 -  
249 -fast-url-parser@1.1.3:  
250 - version "1.1.3"  
251 - resolved "https://registry.yarnpkg.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d"  
252 - integrity sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0=  
253 - dependencies:  
254 - punycode "^1.3.2"  
255 -  
256 -get-stream@^4.0.0:  
257 - version "4.1.0"  
258 - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"  
259 - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==  
260 - dependencies:  
261 - pump "^3.0.0"  
262 -  
263 -has-flag@^3.0.0:  
264 - version "3.0.0"  
265 - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"  
266 - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=  
267 -  
268 -has-flag@^4.0.0:  
269 - version "4.0.0"  
270 - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"  
271 - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==  
272 -  
273 -ini@~1.3.0:  
274 - version "1.3.8"  
275 - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"  
276 - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==  
277 -  
278 -is-docker@^2.0.0:  
279 - version "2.2.1"  
280 - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"  
281 - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==  
282 -  
283 -is-fullwidth-code-point@^3.0.0:  
284 - version "3.0.0"  
285 - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"  
286 - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==  
287 -  
288 -is-stream@^1.1.0:  
289 - version "1.1.0"  
290 - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"  
291 - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=  
292 -  
293 -is-wsl@^2.1.1:  
294 - version "2.2.0"  
295 - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"  
296 - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==  
297 - dependencies:  
298 - is-docker "^2.0.0"  
299 -  
300 -isexe@^2.0.0:  
301 - version "2.0.0"  
302 - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"  
303 - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=  
304 -  
305 -json-schema-traverse@^0.4.1:  
306 - version "0.4.1"  
307 - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"  
308 - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==  
309 -  
310 -mime-db@1.52.0, "mime-db@>= 1.43.0 < 2":  
311 - version "1.52.0"  
312 - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"  
313 - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==  
314 -  
315 -mime-db@~1.33.0:  
316 - version "1.33.0"  
317 - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db"  
318 - integrity sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==  
319 -  
320 -mime-types@2.1.18:  
321 - version "2.1.18"  
322 - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8"  
323 - integrity sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==  
324 - dependencies:  
325 - mime-db "~1.33.0"  
326 -  
327 -mime-types@~2.1.34:  
328 - version "2.1.35"  
329 - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"  
330 - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==  
331 - dependencies:  
332 - mime-db "1.52.0"  
333 -  
334 -minimatch@3.0.4:  
335 - version "3.0.4"  
336 - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"  
337 - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==  
338 - dependencies:  
339 - brace-expansion "^1.1.7"  
340 -  
341 -minimist@^1.2.0:  
342 - version "1.2.6"  
343 - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"  
344 - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==  
345 -  
346 -ms@2.0.0:  
347 - version "2.0.0"  
348 - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"  
349 - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=  
350 -  
351 -negotiator@0.6.3:  
352 - version "0.6.3"  
353 - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"  
354 - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==  
355 -  
356 -nice-try@^1.0.4:  
357 - version "1.0.5"  
358 - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"  
359 - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==  
360 -  
361 -npm-run-path@^2.0.0:  
362 - version "2.0.2"  
363 - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"  
364 - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=  
365 - dependencies:  
366 - path-key "^2.0.0"  
367 -  
368 -on-headers@~1.0.1:  
369 - version "1.0.2"  
370 - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f"  
371 - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==  
372 -  
373 -once@^1.3.1, once@^1.4.0:  
374 - version "1.4.0"  
375 - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"  
376 - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=  
377 - dependencies:  
378 - wrappy "1"  
379 -  
380 -p-finally@^1.0.0:  
381 - version "1.0.0"  
382 - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"  
383 - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=  
384 -  
385 -path-is-inside@1.0.2:  
386 - version "1.0.2"  
387 - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"  
388 - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=  
389 -  
390 -path-key@^2.0.0, path-key@^2.0.1:  
391 - version "2.0.1"  
392 - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"  
393 - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=  
394 -  
395 -path-to-regexp@2.2.1:  
396 - version "2.2.1"  
397 - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-2.2.1.tgz#90b617025a16381a879bc82a38d4e8bdeb2bcf45"  
398 - integrity sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==  
399 -  
400 -pump@^3.0.0:  
401 - version "3.0.0"  
402 - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"  
403 - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==  
404 - dependencies:  
405 - end-of-stream "^1.1.0"  
406 - once "^1.3.1"  
407 -  
408 -punycode@^1.3.2:  
409 - version "1.4.1"  
410 - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"  
411 - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=  
412 -  
413 -punycode@^2.1.0:  
414 - version "2.1.1"  
415 - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"  
416 - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==  
417 -  
418 -range-parser@1.2.0:  
419 - version "1.2.0"  
420 - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"  
421 - integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=  
422 -  
423 -rc@^1.0.1, rc@^1.1.6:  
424 - version "1.2.8"  
425 - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"  
426 - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==  
427 - dependencies:  
428 - deep-extend "^0.6.0"  
429 - ini "~1.3.0"  
430 - minimist "^1.2.0"  
431 - strip-json-comments "~2.0.1"  
432 -  
433 -registry-auth-token@3.3.2:  
434 - version "3.3.2"  
435 - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20"  
436 - integrity sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==  
437 - dependencies:  
438 - rc "^1.1.6"  
439 - safe-buffer "^5.0.1"  
440 -  
441 -registry-url@3.1.0:  
442 - version "3.1.0"  
443 - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942"  
444 - integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI=  
445 - dependencies:  
446 - rc "^1.0.1"  
447 -  
448 -safe-buffer@5.1.2:  
449 - version "5.1.2"  
450 - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"  
451 - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==  
452 -  
453 -safe-buffer@^5.0.1:  
454 - version "5.2.1"  
455 - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"  
456 - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==  
457 -  
458 -semver@^5.5.0:  
459 - version "5.7.1"  
460 - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"  
461 - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==  
462 -  
463 -serve-handler@6.1.3:  
464 - version "6.1.3"  
465 - resolved "https://registry.yarnpkg.com/serve-handler/-/serve-handler-6.1.3.tgz#1bf8c5ae138712af55c758477533b9117f6435e8"  
466 - integrity sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w==  
467 - dependencies:  
468 - bytes "3.0.0"  
469 - content-disposition "0.5.2"  
470 - fast-url-parser "1.1.3"  
471 - mime-types "2.1.18"  
472 - minimatch "3.0.4"  
473 - path-is-inside "1.0.2"  
474 - path-to-regexp "2.2.1"  
475 - range-parser "1.2.0"  
476 -  
477 -serve@^13.0.2:  
478 - version "13.0.2"  
479 - resolved "https://registry.yarnpkg.com/serve/-/serve-13.0.2.tgz#b19ccb854dfdf3085613cd3a4033c7807aeaf85b"  
480 - integrity sha512-71R6fKvNgKrqARAag6lYJNnxDzpH7DCNrMuvPY5PLVaC2PDhJsGTj/34o4o4tPWhTuLgEXqvgnAWbATQ9zGZTQ==  
481 - dependencies:  
482 - "@zeit/schemas" "2.6.0"  
483 - ajv "6.12.6"  
484 - arg "2.0.0"  
485 - boxen "5.1.2"  
486 - chalk "2.4.1"  
487 - clipboardy "2.3.0"  
488 - compression "1.7.3"  
489 - serve-handler "6.1.3"  
490 - update-check "1.5.2"  
491 -  
492 -shebang-command@^1.2.0:  
493 - version "1.2.0"  
494 - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"  
495 - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=  
496 - dependencies:  
497 - shebang-regex "^1.0.0"  
498 -  
499 -shebang-regex@^1.0.0:  
500 - version "1.0.0"  
501 - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"  
502 - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=  
503 -  
504 -signal-exit@^3.0.0:  
505 - version "3.0.7"  
506 - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"  
507 - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==  
508 -  
509 -string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.2:  
510 - version "4.2.3"  
511 - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"  
512 - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==  
513 - dependencies:  
514 - emoji-regex "^8.0.0"  
515 - is-fullwidth-code-point "^3.0.0"  
516 - strip-ansi "^6.0.1"  
517 -  
518 -strip-ansi@^6.0.0, strip-ansi@^6.0.1:  
519 - version "6.0.1"  
520 - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"  
521 - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==  
522 - dependencies:  
523 - ansi-regex "^5.0.1"  
524 -  
525 -strip-eof@^1.0.0:  
526 - version "1.0.0"  
527 - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"  
528 - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=  
529 -  
530 -strip-json-comments@~2.0.1:  
531 - version "2.0.1"  
532 - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"  
533 - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=  
534 -  
535 -supports-color@^5.3.0:  
536 - version "5.5.0"  
537 - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"  
538 - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==  
539 - dependencies:  
540 - has-flag "^3.0.0"  
541 -  
542 -supports-color@^7.1.0:  
543 - version "7.2.0"  
544 - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"  
545 - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==  
546 - dependencies:  
547 - has-flag "^4.0.0"  
548 -  
549 -type-fest@^0.20.2:  
550 - version "0.20.2"  
551 - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"  
552 - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==  
553 -  
554 -update-check@1.5.2:  
555 - version "1.5.2"  
556 - resolved "https://registry.yarnpkg.com/update-check/-/update-check-1.5.2.tgz#2fe09f725c543440b3d7dabe8971f2d5caaedc28"  
557 - integrity sha512-1TrmYLuLj/5ZovwUS7fFd1jMH3NnFDN1y1A8dboedIDt7zs/zJMo6TwwlhYKkSeEwzleeiSBV5/3c9ufAQWDaQ==  
558 - dependencies:  
559 - registry-auth-token "3.3.2"  
560 - registry-url "3.1.0"  
561 -  
562 -uri-js@^4.2.2:  
563 - version "4.4.1"  
564 - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"  
565 - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==  
566 - dependencies:  
567 - punycode "^2.1.0"  
568 -  
569 -vary@~1.1.2:  
570 - version "1.1.2"  
571 - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"  
572 - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=  
573 -  
574 -which@^1.2.9:  
575 - version "1.3.1"  
576 - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"  
577 - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==  
578 - dependencies:  
579 - isexe "^2.0.0"  
580 -  
581 -widest-line@^3.1.0:  
582 - version "3.1.0"  
583 - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca"  
584 - integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==  
585 - dependencies:  
586 - string-width "^4.0.0"  
587 -  
588 -wrap-ansi@^7.0.0:  
589 - version "7.0.0"  
590 - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"  
591 - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==  
592 - dependencies:  
593 - ansi-styles "^4.0.0"  
594 - string-width "^4.1.0"  
595 - strip-ansi "^6.0.0"  
596 -  
597 -wrappy@1:  
598 - version "1.0.2"  
599 - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"  
600 - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=