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 classes
4 4 node_modules
5 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>
\ No newline at end of file
1   -<component name="ProjectDictionaryState">
2   - <dictionary name="WWN">
3   - <words>
4   - <w>layui</w>
5   - </words>
6   - </dictionary>
7   -</component>
\ No newline at end of file
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>
\ No newline at end of file
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>
\ No newline at end of file
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>
\ No newline at end of file
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>
\ No newline at end of file
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>
\ No newline at end of file
... ... @@ -78,4 +78,13 @@ class ConfigurationNodeApi {
78 78 static updateNodeAct(data) {
79 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 4894 const graphId = ss.vertices[0].id;
4895 4895
4896 4896 // 解构全局属性layui要用到的模块
4897   - const { layer, form, tree: layuiTree, jquery: $ } = layui;
  4897 + const { layer, form, jquery: $ } = layui;
4898 4898
4899 4899 const CONTAINER_FILTER = 'containerFilter'
4900 4900 $(container).addClass('layui-form').attr('lay-filter', CONTAINER_FILTER)
... ... @@ -4947,69 +4947,77 @@ DataFormatPanel.prototype.addDataFont = function (container) {
4947 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 4972 label: "按下",
4953   - checkboxName: "pressInput",
4954   - value: "pressEdit",
4955   - type: 'DOWN'
  4973 + type: enumInteractionType.DOWN,
  4974 + category: enumCategory.EVENT
4956 4975 },
4957 4976 {
4958 4977 label: "抬起",
4959   - checkboxName: "upliftInput",
4960   - value: "upliftEdit",
4961   - type: 'UP'
  4978 + type: enumInteractionType.UP,
  4979 + category: enumCategory.EVENT
4962 4980 },
4963 4981 {
4964 4982 label: "单击",
4965   - checkboxName: "clickInput",
4966   - value: "clickEdit",
4967   - type: 'SINGLE'
  4983 + type: enumInteractionType.SINGLE,
  4984 + category: enumCategory.EVENT
4968 4985 },
4969 4986 {
4970 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 4995 label: "闪烁",
4980   - checkboxName: "flashingInput",
4981   - value: "flashingEdit",
4982   - type: 'FLASH'
  4996 + type: enumDynamicEffectType.FLASH,
  4997 + category: enumCategory.ACT
4983 4998 },
4984 4999 {
4985 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 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 5022 // 获取url的请求参数函数
5015 5023 function getRequest() {
... ... @@ -5051,68 +5059,11 @@ DataFormatPanel.prototype.addDataFont = function (container) {
5051 5059 createInteractionPanel()
5052 5060 createDynamicEffectPanel()
5053 5061 createSubmitPanel()
5054   - echoData()
5055 5062 }
5056 5063
5057 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 5068 * @description 获取节点绑定信息
5118 5069 */
... ... @@ -5129,13 +5080,13 @@ DataFormatPanel.prototype.addDataFont = function (container) {
5129 5080 function generateDataEventNode() {
5130 5081 const eventList = []
5131 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 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 5090 eventList.push(template)
5140 5091 }
5141 5092 return eventList
... ... @@ -5149,12 +5100,12 @@ DataFormatPanel.prototype.addDataFont = function (container) {
5149 5100 const eventList = []
5150 5101 const eventNodeCls = 'interaction__container'
5151 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 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 5109 eventList.push(template)
5159 5110 }
5160 5111 return eventList
... ... @@ -5170,15 +5121,6 @@ DataFormatPanel.prototype.addDataFont = function (container) {
5170 5121 DEVICE_EL: 'dataSourceDevice',
5171 5122 SLAVE_DEVICE_EL: 'dataSourceSlaveDevice',
5172 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 5126 const fragment = document.createDocumentFragment()
... ... @@ -5208,7 +5150,7 @@ DataFormatPanel.prototype.addDataFont = function (container) {
5208 5150
5209 5151 UseLayUi.createTreeSelect({
5210 5152 elem: `#${enumActionEl.ORG_EL}`,
5211   - layFilter: enumConst.ORG_ID,
  5153 + layFilter: enumDataSourceConst.ORG_ID,
5212 5154 className: 'data-source__org--override',
5213 5155 label: '组织',
5214 5156 singleUsage: false,
... ... @@ -5232,14 +5174,14 @@ DataFormatPanel.prototype.addDataFont = function (container) {
5232 5174 devicePanel = defaultPanel.cloneNode(false)
5233 5175 const deviceSelect = UseLayUi.createSelect({
5234 5176 label: '设备',
5235   - layFilter: enumConst.DEVICE_ID,
  5177 + layFilter: enumDataSourceConst.DEVICE_ID,
5236 5178 className: 'data-panel__select',
5237 5179 onClick(data) {
5238 5180 const { value } = data
5239 5181 const selected = deviceList.find(item => item.id === value)
5240   - if (selected.deviceType === enumConst.GATEWAY) {
  5182 + if (selected.deviceType === enumDataSourceConst.GATEWAY) {
5241 5183 $(`#${enumActionEl.SLAVE_DEVICE_EL}`).css({ display: 'block' })
5242   - getSlaveDeviceByMasterDeviceId(selected.id)
  5184 + getSlaveDeviceByMasterDeviceId(currentCheckedOrgNode, selected.id)
5243 5185 } else {
5244 5186 $(`#${enumActionEl.SLAVE_DEVICE_EL}`).css({ display: 'none' })
5245 5187 getAttrByDeviceId(selected.id)
... ... @@ -5256,7 +5198,7 @@ DataFormatPanel.prototype.addDataFont = function (container) {
5256 5198 slaveDevicePanel = defaultPanel.cloneNode(false)
5257 5199 const slaveDeviceSelect = UseLayUi.createSelect({
5258 5200 label: '子设备',
5259   - layFilter: enumConst.SLAVE_DEVICE_ID,
  5201 + layFilter: enumDataSourceConst.SLAVE_DEVICE_ID,
5260 5202 className: 'data-panel__select',
5261 5203 onClick(data) {
5262 5204 const { value } = data
... ... @@ -5273,7 +5215,7 @@ DataFormatPanel.prototype.addDataFont = function (container) {
5273 5215 attrsPanel = defaultPanel.cloneNode(false)
5274 5216 const attrsSelect = UseLayUi.createSelect({
5275 5217 label: '属性',
5276   - layFilter: enumConst.ATTR,
  5218 + layFilter: enumDataSourceConst.ATTR,
5277 5219 className: 'data-panel__select'
5278 5220 })
5279 5221 $(attrsPanel).attr('id', enumActionEl.ATTR_EL).append(attrsSelect)
... ... @@ -5296,9 +5238,9 @@ DataFormatPanel.prototype.addDataFont = function (container) {
5296 5238 /**
5297 5239 * @description 通过主设备ID获取从设备
5298 5240 */
5299   - async function getSlaveDeviceByMasterDeviceId(deviceId) {
  5241 + async function getSlaveDeviceByMasterDeviceId(orgId, deviceId) {
5300 5242 if (deviceId && currentCheckedOrgNode) {
5301   - const items = await ConfigurationNodeApi.getSlaveDevice(currentCheckedOrgNode, deviceId);
  5243 + const items = await ConfigurationNodeApi.getSlaveDevice(orgId, deviceId);
5302 5244 $(`#${enumActionEl.SLAVE_DEVICE_EL}`).find('select').html(UseLayUi.generateOptionTemplate({ dataSource: items }))
5303 5245 form.render('select', CONTAINER_FILTER)
5304 5246 }
... ... @@ -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 5313 function mount() {
5320 5314 generatorOrgTres()
5321 5315 generatorDeviceSelect()
5322 5316 generatoSlaveDevice()
5323 5317 generatorAttrSelect()
  5318 + echoData()
5324 5319
5325 5320 $(fragment).append(title).append(orgPanel).append(devicePanel).append(slaveDevicePanel).append(attrsPanel)
5326 5321
... ... @@ -5359,7 +5354,7 @@ DataFormatPanel.prototype.addDataFont = function (container) {
5359 5354 const title = createTitle('数据动效')
5360 5355 $(title).addClass('override__title--default')
5361 5356 fragment.append(title)
5362   - generateActionEventNode(dynamicEffect).forEach(item => {
  5357 + generateActionEventNode(dynamicEffectList).forEach(item => {
5363 5358 const panel = createPanel()
5364 5359 $(panel).addClass('override__panel--default').append(item)
5365 5360 $(fragment).append(panel)
... ... @@ -5376,22 +5371,36 @@ DataFormatPanel.prototype.addDataFont = function (container) {
5376 5371 $(panel).addClass('data-source__submit-panel').append(`<button type="button" lay-submit lay-filter="formDataSource" class="layui-btn">保存</button>`)
5377 5372 $(container).append(panel)
5378 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 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 5404 return false;
5396 5405 });
5397 5406 }
... ... @@ -6293,14 +6302,14 @@ DataFormatPanel.prototype.addDataFont = function (container) {
6293 6302 setTimeout(() => {
6294 6303
6295 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 10402 laySkin = 'primary',
10394 10403 dataSource = [],
10395 10404 customSetValue,
  10405 + labelField = 'name',
  10406 + valueField = 'id',
  10407 + checkedField = 'checked',
10396 10408 onChange
10397 10409 } = options
10398 10410 customSetValue = customSetValue || ((record) => ({ value: record.id, title: record.name }))
... ... @@ -10404,11 +10416,11 @@ class UseLayUi {
10404 10416 return dataSource.map((record) => {
10405 10417 return `<input
10406 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 10421 ${UseLayUi.dynamicAttr('lay-filter', layFilter)}
10410 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=