@opentiny/tiny-engine-setting-events 2.6.0-alpha.0 → 2.6.0-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../meta.js","../src/components/BindEventsDialog.vue","../src/commonjs/events.ts","../src/components/AddEventsDialog.vue","../src/components/BindEvents.vue","../src/components/AdvanceConfig.vue","../src/Main.vue","../src/components/constants.ts","../src/components/BindEventsDialogContent.vue","../src/components/BindEventsDialogSidebar.vue","../index.ts"],"sourcesContent":["export default {\n id: 'engine.setting.event',\n title: '高级',\n type: 'setting',\n align: 'rightTop',\n name: 'event',\n icon: 'target'\n}\n","<template>\n <tiny-dialog-box\n :visible=\"dialogVisible\"\n title=\"事件绑定\"\n width=\"50%\"\n dialog-class=\"bind-event-dialog\"\n draggable\n :append-to-body=\"true\"\n @close=\"closeDialog\"\n @opened=\"openedDialog\"\n >\n <div class=\"bind-event-dialog-tip\">\n 选择已有方法或者添加新方法(点击 确定 之后将在JS面板中创建一个该名称的新方法)。\n </div>\n <div class=\"bind-event-dialog-content\">\n <component :is=\"BindEventsDialogSidebar\" :dialogVisible=\"dialogVisible\" :eventBinding=\"eventBinding\"></component>\n <component :is=\"BindEventsDialogContent\" :dialogVisible=\"dialogVisible\"></component>\n </div>\n <template #footer>\n <div class=\"bind-dialog-footer\">\n <tiny-button @click=\"closeDialog\">取 消</tiny-button>\n <tiny-button type=\"info\" @click=\"confirm\">确 定</tiny-button>\n </div>\n </template>\n </tiny-dialog-box>\n</template>\n\n<script>\nimport { ast2String, string2Ast } from '@opentiny/tiny-engine-common/js/ast'\nimport {\n getMergeMeta,\n useCanvas,\n useHistory,\n useLayout,\n getOptions,\n getMetaApi,\n META_APP\n} from '@opentiny/tiny-engine-meta-register'\nimport { Button, DialogBox } from '@opentiny/vue'\nimport { nextTick, provide, reactive, ref } from 'vue'\nimport meta from '../../meta'\n\nconst dialogVisible = ref(false)\n\nexport const open = () => {\n dialogVisible.value = true\n}\n\nexport const close = () => {\n dialogVisible.value = false\n}\n\nexport default {\n components: {\n TinyButton: Button,\n TinyDialogBox: DialogBox\n },\n inheritAttrs: false,\n props: {\n eventBinding: {\n type: Object,\n default: () => ({})\n }\n },\n setup(props) {\n const { BindEventsDialogSidebar, BindEventsDialogContent } = getMergeMeta(meta.id).components\n\n const { PLUGIN_NAME, activePlugin } = useLayout()\n const { pageState } = useCanvas()\n const { getMethods, saveMethod, highlightMethod } = getMetaApi(META_APP.Page)\n\n const state = reactive({\n editorContent: '',\n bindMethodInfo: {},\n tip: '',\n tipError: false,\n enableExtraParams: false,\n isValidParams: true\n })\n\n provide('context', state)\n\n const selectMethod = (data) => {\n state.bindMethodInfo = data\n }\n\n const bindMethod = (data) => {\n if (!data) {\n return\n }\n\n const eventName = props.eventBinding?.eventName\n\n if (!eventName) {\n return\n }\n\n const nodeProps = pageState?.currentSchema?.props\n\n if (!nodeProps) {\n return\n }\n\n const { name, extra } = data\n\n if (!props[eventName]) {\n nodeProps[eventName] = {\n type: 'JSExpression',\n value: ''\n }\n }\n\n if (extra && state.enableExtraParams) {\n nodeProps[eventName].params = extra\n }\n\n nodeProps[eventName].value = `this.${name}`\n\n useHistory().addHistory()\n }\n\n const resetTipError = () => {\n state.tipError = false\n state.tip = ''\n state.isValidParams = true\n }\n\n const getExtraParams = () => {\n let extraParams = ''\n if (state.enableExtraParams) {\n try {\n extraParams = JSON.parse(state.editorContent)\n state.isValidParams = Array.isArray(extraParams)\n } catch (error) {\n state.isValidParams = false\n }\n }\n return extraParams\n }\n\n const getFormatParams = (extraParams) => Array.from({ length: extraParams.length }, (v, i) => `args${i}`).join(',')\n\n const getFunctionBody = () => {\n let method = getMethods()?.[state.bindMethodInfo.name]?.value\n let preBody = '{}'\n let isAsync = false\n let isGenerator = false\n\n if (method) {\n let astStr = {}\n try {\n astStr = string2Ast(method)\n } catch (e) {\n method = method.replace('function', `function ${state.bindMethodInfo.name}`)\n astStr = string2Ast(method)\n }\n\n if (astStr?.program?.body[0]?.body) {\n preBody = ast2String(astStr.program.body[0].body)\n }\n\n if (astStr?.program?.body[0]?.async) {\n isAsync = true\n }\n\n if (astStr?.program?.body[0]?.generator) {\n isGenerator = true\n }\n }\n\n return {\n preBody: preBody || '{\\n}',\n isAsync,\n isGenerator\n }\n }\n\n const activePagePlugin = () => {\n activePlugin(PLUGIN_NAME.Page).then(() => {\n // 确认js面板渲染完成之后再对目标函数进行高亮处理\n nextTick(() => {\n if (highlightMethod) {\n highlightMethod(state.bindMethodInfo?.name)\n }\n })\n })\n }\n\n const confirm = async () => {\n if (state.tipError) {\n return\n }\n\n let params = 'event'\n const extraParams = getExtraParams()\n let formatParams = params\n\n if (!state.isValidParams) {\n return\n }\n\n if (extraParams) {\n params = extraParams.join(',')\n formatParams = getFormatParams(extraParams)\n }\n\n bindMethod({ ...state.bindMethodInfo, params, extra: extraParams })\n\n // 需要在bindMethod之后\n const { preBody: functionBody, isAsync, isGenerator } = getFunctionBody()\n const { name } = state.bindMethodInfo\n const functionName = `${isAsync ? 'async' : ''} function${isGenerator ? '*' : ''} ${name}`\n const method = {\n name,\n content: state.enableExtraParams\n ? `${functionName}(eventArgs,${formatParams}) ${functionBody}`\n : `${functionName}(${formatParams}) ${functionBody}`\n }\n const { beforeSaveMethod } = getOptions(meta.id)\n\n if (typeof beforeSaveMethod === 'function') {\n await beforeSaveMethod(method, state.bindMethodInfo)\n }\n\n saveMethod?.(method)\n\n activePagePlugin()\n close()\n }\n\n const openedDialog = () => {\n state.enableExtraParams = Boolean(props.eventBinding?.params?.length)\n state.editorContent = JSON.stringify(props.eventBinding?.params || [], null, 2)\n resetTipError()\n }\n\n const closeDialog = () => {\n resetTipError()\n close()\n }\n\n return {\n BindEventsDialogSidebar,\n BindEventsDialogContent,\n state,\n dialogVisible,\n confirm,\n closeDialog,\n openedDialog,\n selectMethod\n }\n }\n}\n</script>\n\n<style lang=\"less\" scoped>\n.bind-event-dialog {\n z-index: 99;\n :deep(.tiny-dialog-box) {\n min-width: 760px;\n }\n}\n\n.bind-event-dialog-tip {\n padding: var(--te-common-vertical-item-spacing-normal) 14px;\n margin-bottom: var(--te-common-vertical-item-spacing-normal);\n background-color: var(--te-bind-event-dialog-tip-bg-color);\n color: var(--te-bind-event-dialog-tip-text-color);\n}\n\n.bind-event-dialog-content {\n display: flex;\n min-width: 700px;\n}\n</style>\n","/**\n * Copyright (c) 2023 - present TinyEngine Authors.\n * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd.\n *\n * Use of this source code is governed by an MIT-style license.\n *\n * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,\n * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR\n * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.\n *\n */\n\nexport const commonEvents = {\n onClick: {\n label: {\n zh_CN: '点击事件'\n },\n description: {\n zh_CN: '鼠标单击时触发的回调函数'\n },\n type: 'event',\n functionInfo: {\n params: [],\n returns: {}\n },\n defaultValue: ''\n },\n onChange: {\n label: {\n zh_CN: '值被改变时触发'\n },\n description: {\n zh_CN: '当用户更改 <input>、<select> 和 <textarea> 元素的值时,被触发的回调函数,'\n },\n type: 'event',\n functionInfo: {\n params: [],\n returns: {}\n },\n defaultValue: ''\n },\n onFocus: {\n label: {\n zh_CN: '元素获得焦点'\n },\n description: {\n zh_CN: '元素获得焦点时触发的回调函数'\n },\n type: 'event',\n functionInfo: {\n params: [],\n returns: {}\n },\n defaultValue: ''\n },\n onMousemove: {\n label: {\n zh_CN: '鼠标移动时触发'\n },\n description: {\n zh_CN: '鼠标移动时触发的回调函数'\n },\n type: 'event',\n functionInfo: {\n params: [],\n returns: {}\n },\n defaultValue: ''\n }\n}\n\nconst allEvents = [\n 'onabort',\n 'onafterprint',\n 'onanimationend',\n 'onanimationiteration',\n 'onanimationstart',\n 'onappinstalled',\n 'onauxclick',\n 'onbeforeinstallprompt',\n 'onbeforeprint',\n 'onbeforeunload',\n 'onbeforexrselect',\n 'onblur',\n 'oncancel',\n 'oncanplay',\n 'oncanplaythrough',\n 'onchange',\n 'onclick',\n 'onclose',\n 'oncontextlost',\n 'oncontextmenu',\n 'oncontextrestored',\n 'oncuechange',\n 'ondblclick',\n 'ondrag',\n 'ondragend',\n 'ondragenter',\n 'ondragleave',\n 'ondragover',\n 'ondragstart',\n 'ondrop',\n 'ondurationchange',\n 'onemptied',\n 'onended',\n 'onerror',\n 'onfocus',\n 'onformdata',\n 'ongotpointercapture',\n 'onhashchange',\n 'oninput',\n 'oninvalid',\n 'onkeydown',\n 'onkeypress',\n 'onkeyup',\n 'onlanguagechange',\n 'onload',\n 'onloadeddata',\n 'onloadedmetadata',\n 'onloadstart',\n 'onlostpointercapture',\n 'onmessage',\n 'onmessageerror',\n 'onmousedown',\n 'onmouseenter',\n 'onmouseleave',\n 'onmousemove',\n 'onmouseout',\n 'onmouseover',\n 'onmouseup',\n 'onmousewheel',\n 'onoffline',\n 'ononline',\n 'onpagehide',\n 'onpageshow',\n 'onpause',\n 'onplay',\n 'onplaying',\n 'onpointercancel',\n 'onpointerdown',\n 'onpointerenter',\n 'onpointerleave',\n 'onpointermove',\n 'onpointerout',\n 'onpointerover',\n 'onpointerrawupdate',\n 'onpointerup',\n 'onpopstate',\n 'onprogress',\n 'onratechange',\n 'onrejectionhandled',\n 'onreset',\n 'onresize',\n 'onscroll',\n 'onsearch',\n 'onsecuritypolicyviolation',\n 'onseeked',\n 'onseeking',\n 'onselect',\n 'onselectionchange',\n 'onselectstart',\n 'onslotchange',\n 'onstalled',\n 'onstorage',\n 'onsubmit',\n 'onsuspend',\n 'ontimeupdate',\n 'ontoggle',\n 'ontransitioncancel',\n 'ontransitionend',\n 'ontransitionrun',\n 'ontransitionstart',\n 'onunhandledrejection',\n 'onunload',\n 'onvolumechange',\n 'onwaiting',\n 'onwebkitanimationend',\n 'onwebkitanimationiteration',\n 'onwebkitanimationstart',\n 'onwebkittransitionend',\n 'onwheel'\n]\n\nexport const checkEvent = (event: string) => {\n const checkEventList = allEvents.map((e) => {\n const three = e[2].toUpperCase()\n return `${e.substring(0, 2)}${three}${e.substring(3)}`\n })\n if (!checkEventList.includes(event)) {\n return false\n }\n return true\n}\n","<template>\n <tiny-dialog-box\n :visible=\"visible\"\n title=\"添加新事件\"\n width=\"400px\"\n :append-to-body=\"true\"\n :close-on-click-modal=\"false\"\n @close=\"closeDialog\"\n >\n <tiny-form\n ref=\"ruleForm\"\n :model=\"formData\"\n :rules=\"rules\"\n label-width=\"80px\"\n :inline-message=\"true\"\n validate-type=\"text\"\n label-position=\"left\"\n class=\"add-custom-event-form\"\n >\n <tiny-form-item label=\"事件函数名\" prop=\"eventName\" required>\n <tiny-input v-model=\"formData.eventName\" placeholder=\"小驼峰格式,如:onDrag\"></tiny-input>\n </tiny-form-item>\n <tiny-form-item label=\"事件描述\" prop=\"eventDescription\" required>\n <tiny-input v-model=\"formData.eventDescription\"></tiny-input>\n </tiny-form-item>\n </tiny-form>\n <template #footer>\n <div class=\"footer\">\n <tiny-button @click=\"closeDialog\"> 取消</tiny-button>\n <tiny-button type=\"primary\" @click=\"addMethod\"> 确定</tiny-button>\n </div>\n </template>\n </tiny-dialog-box>\n</template>\n\n<script setup>\nimport { reactive, ref, defineProps, defineEmits } from 'vue'\nimport {\n Input as TinyInput,\n Form as TinyForm,\n FormItem as TinyFormItem,\n Button as TinyButton,\n DialogBox as TinyDialogBox\n} from '@opentiny/vue'\nimport { checkEvent } from '../commonjs/events'\n\nconst props = defineProps({\n visible: {\n type: Boolean,\n default: false\n },\n componentEvents: {\n type: Object,\n default: () => ({})\n }\n})\n\nconst emits = defineEmits(['closeDialog', 'addEvent'])\n\nconst formData = reactive({\n eventDescription: '',\n eventName: ''\n})\n\nconst ruleForm = ref(null)\n\nconst eventNameValidator = (rule, value, callback) => {\n if (props.componentEvents[formData.eventName]) {\n callback(new Error('事件名已存在'))\n\n return\n }\n\n if (!checkEvent(formData.eventName)) {\n callback(new Error('请输入正确的浏览器事件名'))\n\n return\n }\n\n callback()\n}\n\nconst rules = {\n eventDescription: [\n {\n required: true,\n message: '必填'\n }\n ],\n eventName: [\n { required: true, message: '必填' },\n {\n validator: eventNameValidator\n }\n ]\n}\n\nconst closeDialog = () => {\n emits('closeDialog')\n}\n\nconst addMethod = () => {\n if (!ruleForm.value) {\n return\n }\n\n ruleForm.value.validate((valid) => {\n if (!valid) {\n return\n }\n\n const { eventName, eventDescription } = formData\n\n emits('addEvent', { eventName, eventDescription })\n })\n}\n</script>\n\n<style lang=\"less\" scoped>\n.add-custom-event-form.add-custom-event-form {\n :deep(.tiny-form-item__label) {\n padding-left: 0;\n }\n}\n.footer {\n display: flex;\n justify-content: flex-end;\n}\n</style>\n","<template>\n <div class=\"bind-action-list\">\n <div class=\"popover-head\">\n <tiny-popover\n popperClass=\"option-popper setting-advanced-bind-event-list\"\n placement=\"bottom-start\"\n trigger=\"hover\"\n class=\"bind-action-button-item\"\n width=\"256\"\n :visible-arrow=\"false\"\n >\n <template #reference>\n <tiny-button class=\"bind-event-btn\">\n <span>绑定事件</span>\n <icon-chevron-down class=\"icon-chevron-down bind-event-btn-icon\"></icon-chevron-down>\n </tiny-button>\n </template>\n <ul class=\"bind-event-list\">\n <li\n v-for=\"(event, name) in renderEventList\"\n :key=\"name\"\n :class=\"['bind-event-list-item', { 'bind-event-list-item-notallow': state.bindActions[name] }]\"\n @click=\"openActionDialog({ eventName: name }, true)\"\n >\n <div>{{ name }}&nbsp; | &nbsp;{{ event?.label?.[locale] || name }}</div>\n </li>\n </ul>\n </tiny-popover>\n <tiny-button\n class=\"title add-custom-event-button bind-action-button-item\"\n @click=\"handleToggleAddEventDialog(true)\"\n >\n <svg-icon name=\"add\" class=\"custom-event-button-icon\"></svg-icon>\n <span class=\"custom-event-button-text\">添加新事件</span>\n </tiny-button>\n </div>\n <ul v-show=\"!isEmpty\" class=\"bind-actions\">\n <li v-for=\"action in state.bindActions\" :key=\"action.eventName\">\n <div class=\"action-item bind-action-item\">\n <div class=\"binding-name\" @click=\"openActionDialog(action)\">\n <div>\n {{ action.eventName }}<span>{{ renderEventList[action.eventName]?.label?.[locale] }}</span>\n </div>\n <div :class=\"{ linked: action.linked }\">{{ action.linkedEventName }}</div>\n <span class=\"event-bind\">{{ action.ref }}</span>\n </div>\n <div class=\"action-buttons\">\n <block-link-event v-if=\"isBlock\" :data=\"action\"></block-link-event>\n <svg-button\n name=\"plugin-icon-page-schema\"\n tips=\"定位到代码\"\n placement=\"top\"\n :hoverBgColor=\"false\"\n @click=\"openCodePanel(action)\"\n ></svg-button>\n <svg-button name=\"setting\" :hoverBgColor=\"false\" @click=\"openActionDialog(action, false)\"></svg-button>\n <svg-button name=\"delete\" :hoverBgColor=\"false\" @click=\"delEvent(action)\"></svg-button>\n </div>\n </div>\n </li>\n </ul>\n <div v-show=\"isEmpty\" class=\"empty-action\">\n <div class=\"icon\">\n <svg-icon name=\"empty-action\" class=\"empty-action-icon\"></svg-icon>\n </div>\n <div class=\"center\">支持添加原生DOM事件,然后点击 绑定事件 为画布所选元素增加事件</div>\n </div>\n </div>\n <bind-events-dialog :eventBinding=\"state.eventBinding\"></bind-events-dialog>\n <add-events-dialog\n :visible=\"state.showBindEventDialog\"\n :componentEvents=\"renderEventList\"\n @closeDialog=\"handleToggleAddEventDialog(false)\"\n @addEvent=\"handleAddEvent\"\n ></add-events-dialog>\n</template>\n\n<script>\nimport { computed, reactive, watchEffect } from 'vue'\nimport { Popover, Button } from '@opentiny/vue'\nimport {\n useModal,\n getMergeMeta,\n useCanvas,\n useLayout,\n useBlock,\n useMaterial,\n getMetaApi,\n META_APP,\n useMessage\n} from '@opentiny/tiny-engine-meta-register'\nimport i18n from '@opentiny/tiny-engine-common/js/i18n'\nimport { BlockLinkEvent, SvgButton } from '@opentiny/tiny-engine-common'\nimport { iconChevronDown } from '@opentiny/vue-icon'\nimport BindEventsDialog, { open as openDialog } from './BindEventsDialog.vue'\nimport AddEventsDialog from './AddEventsDialog.vue'\n\nexport default {\n components: {\n BlockLinkEvent,\n BindEventsDialog,\n TinyPopover: Popover,\n TinyButton: Button,\n IconChevronDown: iconChevronDown(),\n SvgButton,\n AddEventsDialog\n },\n inheritAttrs: false,\n setup() {\n const { PLUGIN_NAME, activePlugin } = useLayout()\n const { pageState } = useCanvas()\n const { getBlockEvents, getCurrentBlock, removeEventLink } = useBlock()\n const { getMaterial } = useMaterial()\n const { confirm } = useModal()\n const locale = i18n.global.locale.value\n const { highlightMethod } = getMetaApi(META_APP.Page)\n const { commonEvents = {} } = getMergeMeta('engine.setting.event').options\n\n const state = reactive({\n eventName: '', // 事件名称\n eventBinding: null, // 事件绑定的处理方法对象\n componentEvent: {},\n customEvents: commonEvents,\n bindActions: {},\n showBindEventDialog: false\n })\n\n const isBlock = computed(() => Boolean(pageState.isBlock))\n const isEmpty = computed(() => Object.keys(state.bindActions).length === 0)\n const renderEventList = computed(() => ({ ...state.componentEvent, ...state.customEvents }))\n\n watchEffect(() => {\n const componentName = pageState?.currentSchema?.componentName\n const componentSchema = getMaterial(componentName)\n state.componentEvent = componentSchema?.content?.schema?.events || componentSchema?.schema?.events || {}\n const props = pageState?.currentSchema?.props || {}\n const keys = Object.keys(props)\n state.bindActions = {}\n // 遍历组件事件元数据\n Object.entries(renderEventList.value).forEach(([eventName, componentEvent]) => {\n // 查找组件已添加的事件\n if (keys.indexOf(eventName) > -1) {\n const event = props[eventName]\n const { value, params } = event\n const eventArgs = (!params && value.match(/\\((.+)\\)$/)?.[1]?.split(',')) || params\n const action = {\n eventName,\n ref: '',\n event: props[eventName],\n params: eventArgs\n }\n\n if (action.event.type === 'JSExpression') {\n action.ref = action.event.value.replace('this.', '').replace(/\\(.*\\)$/, '')\n }\n\n if (pageState.isBlock) {\n // 区块编辑态时设置选中组件的事件元数据\n action.metaEvent = componentEvent\n\n const blockEvents = getBlockEvents(getCurrentBlock())\n const componentId = pageState?.currentSchema?.id\n\n if (componentId && blockEvents) {\n Object.entries(blockEvents).forEach(([name, event]) => {\n if (componentId === event?.linked?.id && eventName === event?.linked?.event) {\n action.linked = event.linked\n action.linkedEventName = name\n }\n })\n }\n }\n\n state.bindActions[eventName] = action\n }\n })\n })\n\n const openActionDialog = (action, isAdd) => {\n if (isAdd && state.bindActions[action.eventName]) {\n return\n }\n\n state.eventBinding = action\n\n openDialog()\n }\n\n const deleteAction = (action) => {\n const keys = Object.keys(pageState?.currentSchema?.props || {})\n\n if (keys.indexOf(action.eventName) > -1) {\n delete pageState.currentSchema.props[action.eventName]\n\n useMessage().publish({ topic: 'schemaChange', data: { props: pageState.currentSchema.props } })\n }\n }\n\n const delEvent = (action) => {\n confirm({\n title: '提示',\n message: `您确定要删除事件 ${action.eventName} 吗?`,\n exec() {\n if (pageState.isBlock) {\n removeEventLink({ linked: action.linked })\n }\n\n deleteAction(action)\n }\n })\n }\n\n const openCodePanel = (action) => {\n if (action) {\n activePlugin(PLUGIN_NAME.Page).then(() => {\n if (highlightMethod) {\n highlightMethod(action.ref)\n }\n })\n }\n }\n\n const handleToggleAddEventDialog = (visible) => {\n state.showBindEventDialog = visible\n }\n\n const handleAddEvent = (params) => {\n const { eventName, eventDescription } = params\n\n Object.assign(state.customEvents, {\n [eventName]: {\n label: {\n zh_CN: eventDescription\n },\n description: {\n zh_CN: `${eventDescription}的回调函数`\n },\n type: 'event',\n functionInfo: {\n params: [],\n returns: {}\n },\n defaultValue: ''\n }\n })\n\n state.showBindEventDialog = false\n }\n\n return {\n state,\n isBlock,\n isEmpty,\n delEvent,\n openCodePanel,\n openActionDialog,\n handleAddEvent,\n handleToggleAddEventDialog,\n renderEventList,\n locale\n }\n }\n}\n</script>\n\n<style lang=\"less\" scoped>\n.custom-event {\n padding: 10px 20px 10px 10px;\n footer {\n text-align: center;\n }\n}\n.bind-action-list {\n .bind-actions {\n margin-top: 20px;\n .binding-name {\n word-break: break-all;\n }\n .action-buttons {\n display: flex;\n align-items: center;\n justify-content: center;\n .item {\n margin-right: 10px;\n }\n }\n .event-bind {\n color: var(--te-events-event-bind-text-color);\n }\n .bind-action-item {\n display: flex;\n justify-content: space-between;\n padding: 8px 12px;\n cursor: pointer;\n color: var(--te-events-bind-action-item-text-color);\n border-bottom: 1px solid var(--te-events-bind-action-item-border-color);\n &:first-child {\n border-top: 1px solid var(--te-events-bind-action-item-border-color);\n }\n &:hover {\n background: var(--te-events-bind-action-item-bg-color-hover);\n }\n\n .linked {\n color: var(--te-events-bind-action-item-text-color-link);\n }\n }\n }\n .popover-head {\n display: flex;\n justify-content: space-between;\n margin-top: 12px;\n .bind-action-button-item {\n width: 50%;\n &:not(:last-child) {\n margin-right: 12px;\n }\n }\n .add-custom-event-button {\n margin-right: 0;\n }\n .bind-event-btn {\n padding: 0 16px;\n width: 100%;\n .bind-event-btn-icon {\n margin-right: 0;\n margin-left: 4px;\n }\n }\n }\n .empty-action {\n display: flex;\n flex-direction: column;\n align-items: center;\n background-color: var(--te-events-empty-action-bg-color);\n color: var(--te-events-empty-action-text-color);\n padding: 24px 18px;\n margin-top: var(--te-common-vertical-item-spacing-normal);\n .empty-action-icon {\n font-size: 48px;\n }\n .icon {\n text-align: center;\n opacity: 0.4;\n }\n .center {\n margin-top: 4px;\n }\n .text {\n margin-top: 12px;\n }\n }\n}\n.bind-event-list {\n color: var(--te-events-bind-event-list-text-color);\n}\n.bind-event-list-item-notallow {\n cursor: not-allowed;\n pointer-events: none;\n color: var(--te-events-bind-event-list-item-text-color-disabled);\n}\n.bind-event-list-item {\n padding: 0 16px;\n margin: 0 -16px;\n line-height: 24px;\n &:hover {\n cursor: pointer;\n background: var(--te-events-bind-event-list-item-bg-color-hover);\n }\n}\n</style>\n","<template>\n <div class=\"advanced-config-container\">\n <div class=\"advnce-config\">\n <label class=\"text-ellipsis-multiple\">是否渲染</label>\n <div class=\"advanced-config-form-item\">\n <switch-configurator v-if=\"!isBind\" :modelValue=\"condition\" @update:modelValue=\"setConfig\">\n </switch-configurator>\n <div v-else class=\"binding-state text-ellipsis-multiple\" :title=\"condition.value\">\n 已绑定:{{ condition.value }}\n </div>\n <variable-configurator\n v-model=\"condition\"\n name=\"advance\"\n @update:modelValue=\"setConfig\"\n ></variable-configurator>\n </div>\n </div>\n\n <div class=\"advnce-config loop-data-item\">\n <label class=\"text-ellipsis-multiple\">循环数据</label>\n <div class=\"advanced-config-form-item\">\n <code-configurator\n v-if=\"!state.isLoop\"\n v-model=\"state.loopData\"\n data-type=\"JSExpression\"\n @update:modelValue=\"setLoop\"\n @open=\"openEditor\"\n ></code-configurator>\n <div v-else class=\"binding-state text-ellipsis-multiple\" :title=\"state.loopData?.value\">\n 已绑定:{{ state.loopData?.value }}\n </div>\n <variable-configurator\n v-model=\"state.loopData\"\n name=\"advance\"\n @update:modelValue=\"setLoop\"\n ></variable-configurator>\n </div>\n </div>\n <div class=\"advnce-config\">\n <label class=\"text-ellipsis-multiple\">迭代变量名</label>\n <div class=\"advanced-config-form-item\">\n <input-configurator\n v-model=\"state.loopItem\"\n :placeholder=\"`默认值为:${DEFAULT_LOOP_NAME.ITEM}`\"\n @update:modelValue=\"setLoopItem\"\n ></input-configurator>\n </div>\n </div>\n <div class=\"advnce-config\">\n <label class=\"text-ellipsis-multiple\">索引变量名</label>\n <div class=\"advanced-config-form-item\">\n <input-configurator\n v-model=\"state.loopIndex\"\n :placeholder=\"`默认值为:${DEFAULT_LOOP_NAME.INDEX}`\"\n @update:modelValue=\"setLoopIndex\"\n ></input-configurator>\n </div>\n </div>\n <div class=\"advnce-config\">\n <label class=\"text-ellipsis-multiple\">key</label>\n <div class=\"advanced-config-form-item\">\n <tiny-tooltip content=\"建议填写循环项中的唯一值(如item.id),如果填写为数字将不保存\" effect=\"light\">\n <input-configurator\n v-model=\"state.loopKey\"\n :placeholder=\"`默认为索引名:${getIndexName()}`\"\n @update:modelValue=\"setLoopKey\"\n ></input-configurator>\n </tiny-tooltip>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { ref, computed, reactive, watch } from 'vue'\nimport {\n CodeConfigurator,\n InputConfigurator,\n SwitchConfigurator,\n VariableConfigurator\n} from '@opentiny/tiny-engine-configurator'\nimport { useProperties, useCanvas } from '@opentiny/tiny-engine-meta-register'\nimport { PROP_DATA_TYPE } from '@opentiny/tiny-engine-common/js/constants'\nimport { constants, utils } from '@opentiny/tiny-engine-utils'\nimport { Tooltip } from '@opentiny/vue'\n\nconst { DEFAULT_LOOP_NAME } = constants\nconst { string2Obj } = utils\n\nexport default {\n components: {\n SwitchConfigurator,\n TinyTooltip: Tooltip,\n VariableConfigurator,\n InputConfigurator,\n CodeConfigurator\n },\n inheritAttrs: false,\n setup() {\n const { pageState } = useCanvas()\n const condition = ref(false)\n const isBind = computed(() => condition.value?.type === PROP_DATA_TYPE.JSEXPRESSION)\n const getIndexName = () => useProperties().getSchema()?.loopArgs?.[1] || DEFAULT_LOOP_NAME.INDEX\n\n const state = reactive({\n loopData: {\n type: PROP_DATA_TYPE.JSEXPRESSION,\n value: '[]'\n },\n loopItem: 'item',\n loopIndex: 'index',\n isLoop: computed(() => state.loopData?.type === PROP_DATA_TYPE.JSEXPRESSION),\n loopKey: '',\n shouldUpdate: false\n })\n\n watch(\n () => [pageState?.currentSchema, state.shouldUpdate],\n ([value]) => {\n condition.value = value?.condition === undefined ? true : value?.condition\n state.loopData = value?.loop\n state.loopItem = value?.loopArgs?.[0] || ''\n state.loopIndex = value?.loopArgs?.[1] || ''\n state.loopKey = value?.props?.key?.value || ''\n }\n )\n\n const setLoopKey = (value = '') => {\n value = value.replace(/\\s*/g, '')\n const { getSchema, setProp } = useProperties()\n const schema = getSchema()\n\n if (!schema) {\n return\n }\n\n const isNumber = Number(value).toString() !== 'NaN'\n let newPropsKey = schema.props?.key\n\n if (value && !isNumber) {\n newPropsKey = {\n type: PROP_DATA_TYPE.JSEXPRESSION,\n value\n }\n }\n\n if (!value) {\n if (state.isLoop) {\n newPropsKey = {\n type: PROP_DATA_TYPE.JSEXPRESSION,\n value: getIndexName()\n }\n } else {\n newPropsKey = ''\n }\n }\n\n setProp('key', newPropsKey)\n }\n\n watch([() => state.isLoop, () => state.loopIndex], () => {\n if (!state.loopKey && state.isLoop) {\n setLoopKey(getIndexName())\n }\n\n if (!state.isLoop) {\n setLoopKey('')\n }\n })\n\n const openEditor = () => {\n state.loopData = useProperties().getSchema()?.loop\n }\n\n const setConfig = (value) => {\n const { getSchema } = useProperties()\n const schema = getSchema()\n\n if (!schema) {\n return\n }\n\n const { operateNode } = useCanvas()\n\n if (value === false || value?.type) {\n operateNode({ type: 'updateAttributes', id: schema.id, value: { condition: value } })\n } else {\n const { condition: _schemaCondition, children, ...rest } = schema\n operateNode({ type: 'updateAttributes', id: schema.id, value: { ...rest }, overwrite: true })\n }\n\n useCanvas().canvasApi.value.updateRect()\n condition.value = value\n }\n\n const setLoopIndex = (value) => {\n const schema = useProperties().getSchema()\n let loopArgs = schema.loopArgs\n const { operateNode } = useCanvas()\n\n if (loopArgs) {\n loopArgs[1] = value || DEFAULT_LOOP_NAME.INDEX\n } else {\n loopArgs = [DEFAULT_LOOP_NAME.ITEM, value]\n }\n\n operateNode({ type: 'updateAttributes', id: schema.id, value: { loopArgs } })\n }\n\n const setLoop = (value) => {\n const { operateNode } = useCanvas()\n const { getSchema } = useProperties()\n const schema = getSchema()\n\n if (value) {\n const newLoop = value?.type ? value : string2Obj(value)\n\n operateNode({ type: 'updateAttributes', id: schema.id, value: { loop: newLoop } })\n setLoopIndex(DEFAULT_LOOP_NAME.INDEX)\n } else {\n setLoopKey()\n const { loop: _loop, loopArgs: _loopArgs, children: _children, ...rest } = schema\n\n operateNode({ type: 'updateAttributes', id: schema.id, value: rest, overwrite: true })\n }\n\n // 触发更新state\n state.shouldUpdate = !state.shouldUpdate\n }\n\n const setLoopItem = (value) => {\n const schema = useProperties().getSchema()\n let loopArgs = schema.loopArgs\n const { operateNode } = useCanvas()\n\n if (loopArgs) {\n loopArgs[0] = value || DEFAULT_LOOP_NAME.ITEM\n } else {\n loopArgs = [value, DEFAULT_LOOP_NAME.INDEX]\n }\n\n operateNode({ type: 'updateAttributes', id: schema.id, value: { loopArgs } })\n }\n\n return {\n condition,\n setConfig,\n isBind,\n state,\n setLoop,\n setLoopItem,\n DEFAULT_LOOP_NAME,\n openEditor,\n setLoopIndex,\n setLoopKey,\n getIndexName\n }\n }\n}\n</script>\n\n<style lang=\"less\" scoped>\n.advanced-config-container {\n .advnce-config {\n &:not(:last-child) {\n margin-bottom: var(--te-common-vertical-item-spacing-normal);\n }\n align-items: center;\n display: flex;\n column-gap: 12px;\n color: var(--te-events-advanced-config-text-color);\n\n label {\n width: 80px;\n word-break: keep-all;\n color: var(--te-events-advanced-label-text-color);\n flex-shrink: 0;\n }\n\n .advanced-config-form-item {\n display: grid;\n grid-template-columns: 1fr auto;\n flex: 1;\n }\n .binding-state {\n box-sizing: border-box;\n background: var(--te-events-advanced-binding-state-bg-color);\n color: var(--te-events-advanced-binding-state-text-color);\n border: 1px solid var(--te-events-advanced-binding-state-border-color);\n font-size: 12px;\n height: 30px;\n line-height: 22px;\n padding: 4px 8px;\n --ellipsis-line: 1;\n border-radius: 6px;\n }\n\n .advance-config-loop-wrap {\n .advance-item {\n width: 100%;\n }\n }\n }\n .loop-data-item {\n display: block;\n label {\n margin-bottom: 5px;\n }\n }\n}\n</style>\n","<template>\n <plugin-panel\n title=\"高级\"\n :fixed-panels=\"fixedPanels\"\n :fixed-name=\"PLUGIN_NAME.Event\"\n :header-margin-bottom=\"0\"\n @close=\"$emit('close')\"\n >\n <template #content>\n <tiny-collapse v-model=\"activeNames\">\n <tiny-collapse-item title=\"事件绑定\" name=\"bindEvent\">\n <bind-events></bind-events>\n </tiny-collapse-item>\n <tiny-collapse-item title=\"高级配置\" name=\"advancedConfig\">\n <advance-config></advance-config>\n </tiny-collapse-item>\n </tiny-collapse>\n </template>\n </plugin-panel>\n</template>\n\n<script setup>\nimport { ref, reactive, provide, defineProps, defineEmits } from 'vue'\nimport { Collapse as TinyCollapse, CollapseItem as TinyCollapseItem } from '@opentiny/vue'\nimport BindEvents from './components/BindEvents.vue'\nimport AdvanceConfig from './components/AdvanceConfig.vue'\nimport { PluginPanel } from '@opentiny/tiny-engine-common'\nimport { useLayout } from '@opentiny/tiny-engine-meta-register'\n\nconst activeNames = ref(['bindEvent', 'advancedConfig'])\nconst { PLUGIN_NAME } = useLayout()\n\ndefineProps({\n fixedPanels: Array\n})\n\nconst emit = defineEmits([])\n\nconst panelState = reactive({\n emitEvent: emit\n})\n\nprovide('panelState', panelState)\n</script>\n","export const NEW_METHOD_TYPE = 'newMethod'\nexport const INVALID_VARNAME_CHAR_RE = /[^0-9a-zA-Z_$]/\nexport const VALID_VARNAME_RE = /^[a-zA-Z_$][0-9a-zA-Z_$]*$/\n\nexport const METHOD_TIPS_MAP = {\n default: '选择已有方法或者添加新方法(点击 确定 之后将在JS面板中创建一个该名称的新方法)',\n exist: '方法名称已存在',\n ruleInvalid: '请输入有效的方法名,可以由字母、数字、下划线、$ 符号组成,不能以数字开头',\n empty: '方法名称不能为空'\n}\n","<template>\n <div class=\"content-right\">\n <div :class=\"['content-right-top', { 'tip-error': context.tipError }]\">\n <div class=\"content-right-title\">方法名称</div>\n <tiny-input\n v-model=\"context.bindMethodInfo.name\"\n :disabled=\"context.bindMethodInfo.type !== NEW_METHOD_TYPE\"\n :class=\"[{ 'status-error': context.tipError }]\"\n placeholder=\"请从左侧选择一个方法进行绑定,或者选择添加新方法,输入自定义方法名称。\"\n @update:modelValue=\"change\"\n ></tiny-input>\n <div class=\"new-action-tip\">{{ context.tip }}</div>\n </div>\n <div :class=\"['content-right-bottom', { 'tip-error': !context.isValidParams }]\">\n <div class=\"content-right-title\">\n <tiny-checkbox v-model=\"context.enableExtraParams\" name=\"tiny-checkbox\">扩展参数设置</tiny-checkbox>\n <div class=\"set-params-tip\">\n <div>扩展参数:调用当前事件传入的真实参数,数组格式,追加在原有事件参数之后</div>\n 如: {{ context.bindMethodInfo.name }}(eventArgs, extParam1, extParam2, ...)\n </div>\n </div>\n\n <div class=\"content-right-monaco\">\n <monaco-editor\n v-if=\"dialogVisible\"\n :value=\"context.editorContent\"\n :options=\"editorOptions\"\n @change=\"editorContentChange\"\n class=\"monaco-editor\"\n />\n <div v-if=\"!context.enableExtraParams\" class=\"mark\"></div>\n </div>\n <div v-if=\"!context.isValidParams && context.enableExtraParams\" class=\"params-tip\">\n 请输入数组格式的参数,参数可以为表达式。例如:[\"extParam1\", \"item.status\", 1, \"getNames()\"]\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { VueMonaco } from '@opentiny/tiny-engine-common'\nimport { getMetaApi, META_APP } from '@opentiny/tiny-engine-meta-register'\nimport { Input, Checkbox } from '@opentiny/vue'\nimport { inject } from 'vue'\nimport { METHOD_TIPS_MAP, NEW_METHOD_TYPE, VALID_VARNAME_RE } from './constants'\n\nexport default {\n components: {\n MonacoEditor: VueMonaco,\n TinyInput: Input,\n TinyCheckbox: Checkbox\n },\n props: {\n dialogVisible: Boolean\n },\n setup() {\n const { getMethodNameList } = getMetaApi(META_APP.Page)\n\n const context = inject('context')\n\n const editorOptions = {\n language: 'json',\n lineNumbers: false,\n minimap: {\n enabled: false\n }\n }\n\n const editorContentChange = (content) => {\n context.editorContent = content\n }\n\n const validMethodNameEmpty = (name) => !name\n\n const validMethodNameExist = (name) => getMethodNameList?.().includes(name)\n\n const invalidMethodName = (name) => !VALID_VARNAME_RE.test(name)\n\n const change = (value) => {\n const validRules = [\n { validator: validMethodNameEmpty, tip: METHOD_TIPS_MAP.empty },\n { validator: validMethodNameExist, tip: METHOD_TIPS_MAP.exist },\n { validator: invalidMethodName, tip: METHOD_TIPS_MAP.ruleInvalid }\n ]\n for (let i = 0; i < validRules.length; i++) {\n const rule = validRules[i]\n if (rule.validator(value)) {\n context.tipError = true\n context.tip = rule.tip\n\n // 若存在校验不通过的,则直接返回,不继续走下面的流程\n return\n }\n }\n context.tipError = false\n context.tip = ''\n }\n\n return {\n NEW_METHOD_TYPE,\n context,\n editorOptions,\n change,\n editorContentChange\n }\n }\n}\n</script>\n\n<style lang=\"less\" scoped>\n.content-right {\n width: 68%;\n\n .content-right-top {\n .new-action-tip {\n margin: 8px 0;\n color: var(--te-bind-event-dialog-tip-text-color);\n }\n }\n .content-right-bottom {\n .content-right-monaco {\n border: 1px solid var(--te-bind-event-dialog-content-right-monaco-border-color);\n overflow: hidden;\n position: relative;\n\n .monaco-editor {\n width: 100%;\n height: 216px;\n color: var(--te-bind-event-dialog-content-right-monaco-text-color);\n }\n .mark {\n width: 100%;\n height: 216px;\n position: absolute;\n z-index: 1;\n top: 0;\n }\n }\n\n .params-tip {\n margin: 8px 0;\n color: var(--te-bind-event-dialog-danger-tip-text-color);\n }\n }\n .content-right-top .content-right-title,\n .content-right-bottom .content-right-title {\n margin-bottom: var(--te-common-vertical-item-spacing-normal);\n .set-params-tip {\n margin-top: 6px;\n font-weight: 400;\n color: var(--te-bind-event-dialog-tip-text-color);\n }\n }\n\n .tip-error {\n .content-right-monaco {\n border: 1px solid var(--te-bind-event-dialog-danger-border-color);\n }\n .params-tip,\n .new-action-tip {\n color: var(--te-bind-event-dialog-danger-tip-text-color);\n }\n }\n}\n</style>\n","<template>\n <div class=\"dialog-content-left\">\n <div class=\"left-title\">响应方法</div>\n <div class=\"left-list-wrap\">\n <div class=\"left-action-list\">\n <tiny-search v-model=\"searchValue\" placeholder=\"搜索\"></tiny-search>\n <ul class=\"action-list-wrap\">\n <li v-for=\"item in filteredMethodList\" :key=\"item.name\" @click=\"selectMethod(item)\">\n <div :class=\"['action-name', { active: item.name === context.bindMethodInfo.name }]\">\n {{ item.title || item.name }}\n </div>\n </li>\n </ul>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { getMetaApi, META_APP } from '@opentiny/tiny-engine-meta-register'\nimport { Search } from '@opentiny/vue'\nimport { inject, ref, watchEffect } from 'vue'\nimport { INVALID_VARNAME_CHAR_RE, NEW_METHOD_TYPE } from './constants'\n\nexport default {\n components: {\n TinySearch: Search\n },\n props: {\n eventBinding: {\n type: Object,\n default: () => ({})\n }\n },\n setup(props) {\n const { getMethodNameList } = getMetaApi(META_APP.Page)\n\n const searchValue = ref('')\n const filteredMethodList = ref([])\n const context = inject('context')\n\n const generateMethodName = (nameList, eventName) => {\n const max = nameList\n .map((name) => Number.parseInt(name.match(/\\d+$/)?.[0]) || 0)\n .sort((a, b) => a - b)\n .pop()\n\n const functionName = eventName?.replace(INVALID_VARNAME_CHAR_RE, '_') || ''\n let name = `${functionName}New`\n\n if (max > -1) {\n name += `${max + 1}`\n }\n\n return name\n }\n\n const selectMethod = (data) => {\n context.bindMethodInfo = data\n }\n\n watchEffect(() => {\n const eventName = props.eventBinding?.eventName\n\n const nameList = getMethodNameList?.().filter((action) => action.includes(eventName)) || []\n const newMethodName = generateMethodName(nameList, eventName)\n\n const newMethod = {\n title: '添加新方法',\n name: newMethodName,\n type: NEW_METHOD_TYPE\n }\n\n if (props.eventBinding?.ref) {\n selectMethod({ name: props.eventBinding.ref })\n } else {\n selectMethod(newMethod)\n }\n\n const methodList =\n getMethodNameList?.()\n .filter((item) => item.includes(searchValue.value))\n .map((name) => ({ name })) || []\n\n filteredMethodList.value = [newMethod, ...methodList]\n })\n\n return {\n context,\n searchValue,\n filteredMethodList,\n selectMethod\n }\n }\n}\n</script>\n\n<style lang=\"less\" scoped>\n.dialog-content-left {\n margin-right: 30px;\n width: 30%;\n display: flex;\n flex-direction: column;\n\n .left-title {\n font-weight: 400;\n }\n\n .left-list-wrap {\n border: 1px solid var(--te-bind-event-dialog-content-left-border-color);\n border-radius: 4px;\n height: 300px;\n margin-top: var(--te-common-vertical-item-spacing-normal);\n display: flex;\n flex: 1;\n\n .left-action-list {\n flex: 1;\n padding: 12px;\n .action-list-wrap {\n height: 250px;\n margin-top: 8px;\n overflow: auto;\n }\n\n .action-name {\n display: flex;\n justify-content: space-between;\n padding: 8px 12px;\n cursor: pointer;\n color: var(--te-bind-event-dialog-text-color);\n &.active {\n background: var(--te-bind-event-dialog-content-left-list-item-bg-color-active);\n }\n }\n }\n }\n}\n</style>\n","/**\n * Copyright (c) 2023 - present TinyEngine Authors.\n * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd.\n *\n * Use of this source code is governed by an MIT-style license.\n *\n * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,\n * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR\n * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.\n *\n */\n\nimport entry from './src/Main.vue'\nimport metaData from './meta'\nimport { commonEvents } from './src/commonjs/events.ts'\nimport BindEventsDialogContent from './src/components/BindEventsDialogContent.vue'\nimport BindEventsDialogSidebar from './src/components/BindEventsDialogSidebar.vue'\nimport './src/styles/vars.less'\n\nexport default {\n ...metaData,\n entry,\n options: { commonEvents },\n components: {\n BindEventsDialogSidebar,\n BindEventsDialogContent\n }\n}\n"],"names":["metaData","dialogVisible","ref","open","close","_sfc_main","Button","DialogBox","props","BindEventsDialogSidebar","BindEventsDialogContent","getMergeMeta","meta","PLUGIN_NAME","activePlugin","useLayout","pageState","useCanvas","getMethods","saveMethod","highlightMethod","getMetaApi","META_APP","state","reactive","provide","selectMethod","data","bindMethod","eventName","_a","nodeProps","_b","name","extra","useHistory","resetTipError","getExtraParams","extraParams","getFormatParams","v","i","getFunctionBody","method","preBody","isAsync","isGenerator","astStr","string2Ast","_d","_c","ast2String","_f","_e","_h","_g","activePagePlugin","nextTick","params","formatParams","functionBody","functionName","beforeSaveMethod","getOptions","_hoisted_1","_hoisted_2","_createBlock","_component_tiny_dialog_box","$setup","_createElementVNode","_createVNode","_component_tiny_button","_withCtx","_cache","_createTextVNode","_resolveDynamicComponent","$props","_openBlock","commonEvents","allEvents","checkEvent","event","e","three","__props","emits","__emit","formData","ruleForm","rules","rule","value","callback","closeDialog","addMethod","valid","eventDescription","BlockLinkEvent","BindEventsDialog","Popover","iconChevronDown","SvgButton","AddEventsDialog","getBlockEvents","getCurrentBlock","removeEventLink","useBlock","getMaterial","useMaterial","confirm","useModal","locale","i18n","isBlock","computed","isEmpty","renderEventList","watchEffect","componentName","componentSchema","keys","componentEvent","eventArgs","action","blockEvents","componentId","openActionDialog","isAdd","openDialog","deleteAction","useMessage","visible","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_createElementBlock","_Fragment","_component_tiny_popover","_component_icon_chevron_down","_renderList","_normalizeClass","$event","_toDisplayString","_component_svg_icon","_withDirectives","_component_block_link_event","_createCommentVNode","_component_svg_button","_component_bind_events_dialog","_component_add_events_dialog","DEFAULT_LOOP_NAME","constants","string2Obj","utils","SwitchConfigurator","Tooltip","VariableConfigurator","InputConfigurator","CodeConfigurator","condition","isBind","PROP_DATA_TYPE","getIndexName","useProperties","watch","setLoopKey","getSchema","setProp","schema","isNumber","newPropsKey","openEditor","setConfig","operateNode","_schemaCondition","children","rest","setLoopIndex","loopArgs","newLoop","_loop","_loopArgs","_children","_hoisted_12","_hoisted_13","_component_switch_configurator","_component_variable_configurator","_component_code_configurator","_component_input_configurator","_component_tiny_tooltip","activeNames","panelState","NEW_METHOD_TYPE","INVALID_VARNAME_CHAR_RE","VALID_VARNAME_RE","METHOD_TIPS_MAP","VueMonaco","Input","Checkbox","getMethodNameList","context","inject","editorOptions","editorContentChange","content","validMethodNameEmpty","validMethodNameExist","invalidMethodName","validRules","_component_tiny_input","_component_tiny_checkbox","_component_monaco_editor","Search","searchValue","filteredMethodList","generateMethodName","nameList","max","a","b","newMethod","methodList","item","_component_tiny_search","index","entry"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../meta.js","../src/components/BindEventsDialog.vue","../src/commonjs/events.ts","../src/components/AddEventsDialog.vue","../src/components/BindEvents.vue","../src/components/AdvanceConfig.vue","../src/Main.vue","../src/components/constants.ts","../src/components/BindEventsDialogContent.vue","../src/components/BindEventsDialogSidebar.vue","../index.ts"],"sourcesContent":["export default {\n id: 'engine.setting.event',\n title: '高级',\n type: 'setting',\n align: 'rightTop',\n name: 'event',\n icon: 'target'\n}\n","<template>\n <tiny-dialog-box\n :visible=\"dialogVisible\"\n title=\"事件绑定\"\n width=\"50%\"\n dialog-class=\"bind-event-dialog\"\n draggable\n :append-to-body=\"true\"\n @close=\"closeDialog\"\n @opened=\"openedDialog\"\n >\n <div class=\"bind-event-dialog-tip\">\n <tiny-alert\n type=\"info\"\n description=\"选择已有方法或者添加新方法(点击 确定 之后将在JS面板中创建一个该名称的新方法)。\"\n class=\"header-alert\"\n :closable=\"false\"\n ></tiny-alert>\n </div>\n <div class=\"bind-event-dialog-content\">\n <component :is=\"BindEventsDialogSidebar\" :dialogVisible=\"dialogVisible\" :eventBinding=\"eventBinding\"></component>\n <component :is=\"BindEventsDialogContent\" :dialogVisible=\"dialogVisible\"></component>\n </div>\n <template #footer>\n <div class=\"bind-dialog-footer\">\n <tiny-button @click=\"closeDialog\">取 消</tiny-button>\n <tiny-button type=\"info\" @click=\"confirm\">确 定</tiny-button>\n </div>\n </template>\n </tiny-dialog-box>\n</template>\n\n<script>\nimport { ast2String, string2Ast } from '@opentiny/tiny-engine-common/js/ast'\nimport {\n getMergeMeta,\n useCanvas,\n useHistory,\n useLayout,\n getOptions,\n getMetaApi,\n META_APP\n} from '@opentiny/tiny-engine-meta-register'\nimport { Button, DialogBox, TinyAlert } from '@opentiny/vue'\nimport { nextTick, provide, reactive, ref } from 'vue'\nimport meta from '../../meta'\n\nconst dialogVisible = ref(false)\n\nexport const open = () => {\n dialogVisible.value = true\n}\n\nexport const close = () => {\n dialogVisible.value = false\n}\n\nexport default {\n components: {\n TinyButton: Button,\n TinyDialogBox: DialogBox,\n TinyAlert\n },\n inheritAttrs: false,\n props: {\n eventBinding: {\n type: Object,\n default: () => ({})\n }\n },\n setup(props) {\n const { BindEventsDialogSidebar, BindEventsDialogContent } = getMergeMeta(meta.id).components\n\n const { PLUGIN_NAME, activePlugin } = useLayout()\n const { pageState } = useCanvas()\n const { getMethods, saveMethod, highlightMethod } = getMetaApi(META_APP.Page)\n\n const state = reactive({\n editorContent: '',\n bindMethodInfo: {},\n tip: '',\n tipError: false,\n enableExtraParams: false,\n isValidParams: true\n })\n\n provide('context', state)\n\n const selectMethod = (data) => {\n state.bindMethodInfo = data\n }\n\n const bindMethod = (data) => {\n if (!data) {\n return\n }\n\n const eventName = props.eventBinding?.eventName\n\n if (!eventName) {\n return\n }\n\n const nodeProps = pageState?.currentSchema?.props\n\n if (!nodeProps) {\n return\n }\n\n const { name, extra } = data\n\n if (!props[eventName]) {\n nodeProps[eventName] = {\n type: 'JSExpression',\n value: ''\n }\n }\n\n if (extra && state.enableExtraParams) {\n nodeProps[eventName].params = extra\n }\n\n nodeProps[eventName].value = `this.${name}`\n\n useHistory().addHistory()\n }\n\n const resetTipError = () => {\n state.tipError = false\n state.tip = ''\n state.isValidParams = true\n }\n\n const getExtraParams = () => {\n let extraParams = ''\n if (state.enableExtraParams) {\n try {\n extraParams = JSON.parse(state.editorContent)\n state.isValidParams = Array.isArray(extraParams)\n } catch (error) {\n state.isValidParams = false\n }\n }\n return extraParams\n }\n\n const getFormatParams = (extraParams) => Array.from({ length: extraParams.length }, (v, i) => `args${i}`).join(',')\n\n const getFunctionBody = () => {\n let method = getMethods()?.[state.bindMethodInfo.name]?.value\n let preBody = '{}'\n let isAsync = false\n let isGenerator = false\n\n if (method) {\n let astStr = {}\n try {\n astStr = string2Ast(method)\n } catch (e) {\n method = method.replace('function', `function ${state.bindMethodInfo.name}`)\n astStr = string2Ast(method)\n }\n\n if (astStr?.program?.body[0]?.body) {\n preBody = ast2String(astStr.program.body[0].body)\n }\n\n if (astStr?.program?.body[0]?.async) {\n isAsync = true\n }\n\n if (astStr?.program?.body[0]?.generator) {\n isGenerator = true\n }\n }\n\n return {\n preBody: preBody || '{\\n}',\n isAsync,\n isGenerator\n }\n }\n\n const activePagePlugin = () => {\n activePlugin(PLUGIN_NAME.Page).then(() => {\n // 确认js面板渲染完成之后再对目标函数进行高亮处理\n nextTick(() => {\n if (highlightMethod) {\n highlightMethod(state.bindMethodInfo?.name)\n }\n })\n })\n }\n\n const confirm = async () => {\n if (state.tipError) {\n return\n }\n\n let params = 'event'\n const extraParams = getExtraParams()\n let formatParams = params\n\n if (!state.isValidParams) {\n return\n }\n\n if (extraParams) {\n params = extraParams.join(',')\n formatParams = getFormatParams(extraParams)\n }\n\n bindMethod({ ...state.bindMethodInfo, params, extra: extraParams })\n\n // 需要在bindMethod之后\n const { preBody: functionBody, isAsync, isGenerator } = getFunctionBody()\n const { name } = state.bindMethodInfo\n const functionName = `${isAsync ? 'async' : ''} function${isGenerator ? '*' : ''} ${name}`\n const method = {\n name,\n content: state.enableExtraParams\n ? `${functionName}(eventArgs,${formatParams}) ${functionBody}`\n : `${functionName}(${formatParams}) ${functionBody}`\n }\n const { beforeSaveMethod } = getOptions(meta.id)\n\n if (typeof beforeSaveMethod === 'function') {\n await beforeSaveMethod(method, state.bindMethodInfo)\n }\n\n saveMethod?.(method)\n\n activePagePlugin()\n close()\n }\n\n const openedDialog = () => {\n state.enableExtraParams = Boolean(props.eventBinding?.params?.length)\n state.editorContent = JSON.stringify(props.eventBinding?.params || [], null, 2)\n resetTipError()\n }\n\n const closeDialog = () => {\n resetTipError()\n close()\n }\n\n return {\n BindEventsDialogSidebar,\n BindEventsDialogContent,\n state,\n dialogVisible,\n confirm,\n closeDialog,\n openedDialog,\n selectMethod\n }\n }\n}\n</script>\n\n<style lang=\"less\" scoped>\n.bind-event-dialog {\n z-index: 99;\n :deep(.tiny-dialog-box) {\n min-width: 760px;\n }\n}\n\n.bind-event-dialog-tip {\n .tiny-alert.tiny-alert--normal {\n margin: 12px 0;\n }\n}\n\n.bind-event-dialog-content {\n display: flex;\n min-width: 700px;\n}\n</style>\n","/**\n * Copyright (c) 2023 - present TinyEngine Authors.\n * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd.\n *\n * Use of this source code is governed by an MIT-style license.\n *\n * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,\n * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR\n * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.\n *\n */\n\nexport const commonEvents = {\n onClick: {\n label: {\n zh_CN: '点击事件'\n },\n description: {\n zh_CN: '鼠标单击时触发的回调函数'\n },\n type: 'event',\n functionInfo: {\n params: [],\n returns: {}\n },\n defaultValue: ''\n },\n onChange: {\n label: {\n zh_CN: '值被改变时触发'\n },\n description: {\n zh_CN: '当用户更改 <input>、<select> 和 <textarea> 元素的值时,被触发的回调函数,'\n },\n type: 'event',\n functionInfo: {\n params: [],\n returns: {}\n },\n defaultValue: ''\n },\n onFocus: {\n label: {\n zh_CN: '元素获得焦点'\n },\n description: {\n zh_CN: '元素获得焦点时触发的回调函数'\n },\n type: 'event',\n functionInfo: {\n params: [],\n returns: {}\n },\n defaultValue: ''\n },\n onMousemove: {\n label: {\n zh_CN: '鼠标移动时触发'\n },\n description: {\n zh_CN: '鼠标移动时触发的回调函数'\n },\n type: 'event',\n functionInfo: {\n params: [],\n returns: {}\n },\n defaultValue: ''\n }\n}\n\nconst allEvents = [\n 'onabort',\n 'onafterprint',\n 'onanimationend',\n 'onanimationiteration',\n 'onanimationstart',\n 'onappinstalled',\n 'onauxclick',\n 'onbeforeinstallprompt',\n 'onbeforeprint',\n 'onbeforeunload',\n 'onbeforexrselect',\n 'onblur',\n 'oncancel',\n 'oncanplay',\n 'oncanplaythrough',\n 'onchange',\n 'onclick',\n 'onclose',\n 'oncontextlost',\n 'oncontextmenu',\n 'oncontextrestored',\n 'oncuechange',\n 'ondblclick',\n 'ondrag',\n 'ondragend',\n 'ondragenter',\n 'ondragleave',\n 'ondragover',\n 'ondragstart',\n 'ondrop',\n 'ondurationchange',\n 'onemptied',\n 'onended',\n 'onerror',\n 'onfocus',\n 'onformdata',\n 'ongotpointercapture',\n 'onhashchange',\n 'oninput',\n 'oninvalid',\n 'onkeydown',\n 'onkeypress',\n 'onkeyup',\n 'onlanguagechange',\n 'onload',\n 'onloadeddata',\n 'onloadedmetadata',\n 'onloadstart',\n 'onlostpointercapture',\n 'onmessage',\n 'onmessageerror',\n 'onmousedown',\n 'onmouseenter',\n 'onmouseleave',\n 'onmousemove',\n 'onmouseout',\n 'onmouseover',\n 'onmouseup',\n 'onmousewheel',\n 'onoffline',\n 'ononline',\n 'onpagehide',\n 'onpageshow',\n 'onpause',\n 'onplay',\n 'onplaying',\n 'onpointercancel',\n 'onpointerdown',\n 'onpointerenter',\n 'onpointerleave',\n 'onpointermove',\n 'onpointerout',\n 'onpointerover',\n 'onpointerrawupdate',\n 'onpointerup',\n 'onpopstate',\n 'onprogress',\n 'onratechange',\n 'onrejectionhandled',\n 'onreset',\n 'onresize',\n 'onscroll',\n 'onsearch',\n 'onsecuritypolicyviolation',\n 'onseeked',\n 'onseeking',\n 'onselect',\n 'onselectionchange',\n 'onselectstart',\n 'onslotchange',\n 'onstalled',\n 'onstorage',\n 'onsubmit',\n 'onsuspend',\n 'ontimeupdate',\n 'ontoggle',\n 'ontransitioncancel',\n 'ontransitionend',\n 'ontransitionrun',\n 'ontransitionstart',\n 'onunhandledrejection',\n 'onunload',\n 'onvolumechange',\n 'onwaiting',\n 'onwebkitanimationend',\n 'onwebkitanimationiteration',\n 'onwebkitanimationstart',\n 'onwebkittransitionend',\n 'onwheel'\n]\n\nexport const checkEvent = (event: string) => {\n const checkEventList = allEvents.map((e) => {\n const three = e[2].toUpperCase()\n return `${e.substring(0, 2)}${three}${e.substring(3)}`\n })\n if (!checkEventList.includes(event)) {\n return false\n }\n return true\n}\n","<template>\n <tiny-dialog-box\n :visible=\"visible\"\n title=\"添加新事件\"\n width=\"400px\"\n :append-to-body=\"true\"\n :close-on-click-modal=\"false\"\n @close=\"closeDialog\"\n >\n <tiny-form\n ref=\"ruleForm\"\n :model=\"formData\"\n :rules=\"rules\"\n label-width=\"80px\"\n :inline-message=\"true\"\n validate-type=\"text\"\n label-position=\"left\"\n class=\"add-custom-event-form\"\n >\n <tiny-form-item label=\"事件函数名\" prop=\"eventName\" required>\n <tiny-input v-model=\"formData.eventName\" placeholder=\"小驼峰格式,如:onDrag\"></tiny-input>\n </tiny-form-item>\n <tiny-form-item label=\"事件描述\" prop=\"eventDescription\" required>\n <tiny-input v-model=\"formData.eventDescription\"></tiny-input>\n </tiny-form-item>\n </tiny-form>\n <template #footer>\n <div class=\"footer\">\n <tiny-button @click=\"closeDialog\"> 取消</tiny-button>\n <tiny-button type=\"primary\" @click=\"addMethod\"> 确定</tiny-button>\n </div>\n </template>\n </tiny-dialog-box>\n</template>\n\n<script setup>\nimport { reactive, ref, defineProps, defineEmits } from 'vue'\nimport {\n Input as TinyInput,\n Form as TinyForm,\n FormItem as TinyFormItem,\n Button as TinyButton,\n DialogBox as TinyDialogBox\n} from '@opentiny/vue'\nimport { checkEvent } from '../commonjs/events'\n\nconst props = defineProps({\n visible: {\n type: Boolean,\n default: false\n },\n componentEvents: {\n type: Object,\n default: () => ({})\n }\n})\n\nconst emits = defineEmits(['closeDialog', 'addEvent'])\n\nconst formData = reactive({\n eventDescription: '',\n eventName: ''\n})\n\nconst ruleForm = ref(null)\n\nconst eventNameValidator = (rule, value, callback) => {\n if (props.componentEvents[formData.eventName]) {\n callback(new Error('事件名已存在'))\n\n return\n }\n\n if (!checkEvent(formData.eventName)) {\n callback(new Error('请输入正确的浏览器事件名'))\n\n return\n }\n\n callback()\n}\n\nconst rules = {\n eventDescription: [\n {\n required: true,\n message: '必填'\n }\n ],\n eventName: [\n { required: true, message: '必填' },\n {\n validator: eventNameValidator\n }\n ]\n}\n\nconst closeDialog = () => {\n emits('closeDialog')\n}\n\nconst addMethod = () => {\n if (!ruleForm.value) {\n return\n }\n\n ruleForm.value.validate((valid) => {\n if (!valid) {\n return\n }\n\n const { eventName, eventDescription } = formData\n\n emits('addEvent', { eventName, eventDescription })\n })\n}\n</script>\n\n<style lang=\"less\" scoped>\n.add-custom-event-form.add-custom-event-form {\n :deep(.tiny-form-item__label) {\n padding-left: 0;\n }\n}\n.footer {\n display: flex;\n justify-content: flex-end;\n}\n</style>\n","<template>\n <div class=\"bind-action-list\">\n <div class=\"popover-head\">\n <tiny-popover\n popperClass=\"option-popper setting-advanced-bind-event-list\"\n placement=\"bottom-start\"\n trigger=\"hover\"\n class=\"bind-action-button-item\"\n width=\"256\"\n :visible-arrow=\"false\"\n >\n <template #reference>\n <tiny-button class=\"bind-event-btn\">\n <span>绑定事件</span>\n <icon-chevron-down class=\"icon-chevron-down bind-event-btn-icon\"></icon-chevron-down>\n </tiny-button>\n </template>\n <ul class=\"bind-event-list\">\n <li\n v-for=\"(event, name) in renderEventList\"\n :key=\"name\"\n :class=\"['bind-event-list-item', { 'bind-event-list-item-notallow': state.bindActions[name] }]\"\n @click=\"openActionDialog({ eventName: name }, true)\"\n >\n <div>{{ name }}&nbsp; | &nbsp;{{ event?.label?.[locale] || name }}</div>\n </li>\n </ul>\n </tiny-popover>\n <tiny-button\n class=\"title add-custom-event-button bind-action-button-item\"\n @click=\"handleToggleAddEventDialog(true)\"\n >\n <svg-icon name=\"add\" class=\"custom-event-button-icon\"></svg-icon>\n <span class=\"custom-event-button-text\">添加新事件</span>\n </tiny-button>\n </div>\n <ul v-show=\"!isEmpty\" class=\"bind-actions\">\n <li v-for=\"action in state.bindActions\" :key=\"action.eventName\">\n <div class=\"action-item bind-action-item\">\n <div class=\"binding-name\" @click=\"openActionDialog(action)\">\n <div>\n {{ action.eventName }}<span>{{ renderEventList[action.eventName]?.label?.[locale] }}</span>\n </div>\n <div :class=\"{ linked: action.linked }\">{{ action.linkedEventName }}</div>\n <span class=\"event-bind\">{{ action.ref }}</span>\n </div>\n <div class=\"action-buttons\">\n <block-link-event v-if=\"isBlock\" :data=\"action\"></block-link-event>\n <svg-button\n name=\"plugin-icon-page-schema\"\n tips=\"定位到代码\"\n placement=\"top\"\n :hoverBgColor=\"false\"\n @click=\"openCodePanel(action)\"\n ></svg-button>\n <svg-button name=\"setting\" :hoverBgColor=\"false\" @click=\"openActionDialog(action, false)\"></svg-button>\n <svg-button name=\"delete\" :hoverBgColor=\"false\" @click=\"delEvent(action)\"></svg-button>\n </div>\n </div>\n </li>\n </ul>\n <div v-show=\"isEmpty\" class=\"empty-action\">\n <div class=\"icon\">\n <svg-icon name=\"empty-action\" class=\"empty-action-icon\"></svg-icon>\n </div>\n <div class=\"center\">支持添加原生DOM事件,然后点击 绑定事件 为画布所选元素增加事件</div>\n </div>\n </div>\n <bind-events-dialog :eventBinding=\"state.eventBinding\"></bind-events-dialog>\n <add-events-dialog\n :visible=\"state.showBindEventDialog\"\n :componentEvents=\"renderEventList\"\n @closeDialog=\"handleToggleAddEventDialog(false)\"\n @addEvent=\"handleAddEvent\"\n ></add-events-dialog>\n</template>\n\n<script>\nimport { computed, reactive, watchEffect } from 'vue'\nimport { Popover, Button } from '@opentiny/vue'\nimport {\n useModal,\n getMergeMeta,\n useCanvas,\n useLayout,\n useBlock,\n useMaterial,\n getMetaApi,\n META_APP,\n useMessage\n} from '@opentiny/tiny-engine-meta-register'\nimport i18n from '@opentiny/tiny-engine-common/js/i18n'\nimport { BlockLinkEvent, SvgButton } from '@opentiny/tiny-engine-common'\nimport { iconChevronDown } from '@opentiny/vue-icon'\nimport BindEventsDialog, { open as openDialog } from './BindEventsDialog.vue'\nimport AddEventsDialog from './AddEventsDialog.vue'\n\nexport default {\n components: {\n BlockLinkEvent,\n BindEventsDialog,\n TinyPopover: Popover,\n TinyButton: Button,\n IconChevronDown: iconChevronDown(),\n SvgButton,\n AddEventsDialog\n },\n inheritAttrs: false,\n setup() {\n const { PLUGIN_NAME, activePlugin } = useLayout()\n const { pageState } = useCanvas()\n const { getBlockEvents, getCurrentBlock, removeEventLink } = useBlock()\n const { getMaterial } = useMaterial()\n const { confirm } = useModal()\n const locale = i18n.global.locale.value\n const { highlightMethod } = getMetaApi(META_APP.Page)\n const { commonEvents = {} } = getMergeMeta('engine.setting.event').options\n\n const state = reactive({\n eventName: '', // 事件名称\n eventBinding: null, // 事件绑定的处理方法对象\n componentEvent: {},\n customEvents: commonEvents,\n bindActions: {},\n showBindEventDialog: false\n })\n\n const isBlock = computed(() => Boolean(pageState.isBlock))\n const isEmpty = computed(() => Object.keys(state.bindActions).length === 0)\n const renderEventList = computed(() => ({ ...state.componentEvent, ...state.customEvents }))\n\n watchEffect(() => {\n const componentName = pageState?.currentSchema?.componentName\n const componentSchema = getMaterial(componentName)\n state.componentEvent = componentSchema?.content?.schema?.events || componentSchema?.schema?.events || {}\n const props = pageState?.currentSchema?.props || {}\n const keys = Object.keys(props)\n state.bindActions = {}\n // 遍历组件事件元数据\n Object.entries(renderEventList.value).forEach(([eventName, componentEvent]) => {\n // 查找组件已添加的事件\n if (keys.indexOf(eventName) > -1) {\n const event = props[eventName]\n const { value, params } = event\n const eventArgs = (!params && value.match(/\\((.+)\\)$/)?.[1]?.split(',')) || params\n const action = {\n eventName,\n ref: '',\n event: props[eventName],\n params: eventArgs\n }\n\n if (action.event.type === 'JSExpression') {\n action.ref = action.event.value.replace('this.', '').replace(/\\(.*\\)$/, '')\n }\n\n if (pageState.isBlock) {\n // 区块编辑态时设置选中组件的事件元数据\n action.metaEvent = componentEvent\n\n const blockEvents = getBlockEvents(getCurrentBlock())\n const componentId = pageState?.currentSchema?.id\n\n if (componentId && blockEvents) {\n Object.entries(blockEvents).forEach(([name, event]) => {\n if (componentId === event?.linked?.id && eventName === event?.linked?.event) {\n action.linked = event.linked\n action.linkedEventName = name\n }\n })\n }\n }\n\n state.bindActions[eventName] = action\n }\n })\n })\n\n const openActionDialog = (action, isAdd) => {\n if (isAdd && state.bindActions[action.eventName]) {\n return\n }\n\n state.eventBinding = action\n\n openDialog()\n }\n\n const deleteAction = (action) => {\n const keys = Object.keys(pageState?.currentSchema?.props || {})\n\n if (keys.indexOf(action.eventName) > -1) {\n delete pageState.currentSchema.props[action.eventName]\n\n useMessage().publish({ topic: 'schemaChange', data: { props: pageState.currentSchema.props } })\n }\n }\n\n const delEvent = (action) => {\n confirm({\n title: '提示',\n message: `您确定要删除事件 ${action.eventName} 吗?`,\n exec() {\n if (pageState.isBlock) {\n removeEventLink({ linked: action.linked })\n }\n\n deleteAction(action)\n }\n })\n }\n\n const openCodePanel = (action) => {\n if (action) {\n activePlugin(PLUGIN_NAME.Page).then(() => {\n if (highlightMethod) {\n highlightMethod(action.ref)\n }\n })\n }\n }\n\n const handleToggleAddEventDialog = (visible) => {\n state.showBindEventDialog = visible\n }\n\n const handleAddEvent = (params) => {\n const { eventName, eventDescription } = params\n\n Object.assign(state.customEvents, {\n [eventName]: {\n label: {\n zh_CN: eventDescription\n },\n description: {\n zh_CN: `${eventDescription}的回调函数`\n },\n type: 'event',\n functionInfo: {\n params: [],\n returns: {}\n },\n defaultValue: ''\n }\n })\n\n state.showBindEventDialog = false\n }\n\n return {\n state,\n isBlock,\n isEmpty,\n delEvent,\n openCodePanel,\n openActionDialog,\n handleAddEvent,\n handleToggleAddEventDialog,\n renderEventList,\n locale\n }\n }\n}\n</script>\n\n<style lang=\"less\" scoped>\n.custom-event {\n padding: 10px 20px 10px 10px;\n footer {\n text-align: center;\n }\n}\n.bind-action-list {\n .bind-actions {\n margin-top: 20px;\n .binding-name {\n word-break: break-all;\n }\n .action-buttons {\n display: flex;\n align-items: center;\n justify-content: center;\n .item {\n margin-right: 10px;\n }\n }\n .event-bind {\n color: var(--te-events-event-bind-text-color);\n }\n .bind-action-item {\n display: flex;\n justify-content: space-between;\n padding: 8px 12px;\n cursor: pointer;\n color: var(--te-events-bind-action-item-text-color);\n border-bottom: 1px solid var(--te-events-bind-action-item-border-color);\n &:first-child {\n border-top: 1px solid var(--te-events-bind-action-item-border-color);\n }\n &:hover {\n background: var(--te-events-bind-action-item-bg-color-hover);\n }\n\n .linked {\n color: var(--te-events-bind-action-item-text-color-link);\n }\n }\n }\n .popover-head {\n display: flex;\n justify-content: space-between;\n margin-top: 12px;\n .bind-action-button-item {\n width: 50%;\n &:not(:last-child) {\n margin-right: 12px;\n }\n }\n .add-custom-event-button {\n margin-right: 0;\n }\n .bind-event-btn {\n padding: 0 16px;\n width: 100%;\n .bind-event-btn-icon {\n margin-right: 0;\n margin-left: 4px;\n }\n }\n }\n .empty-action {\n display: flex;\n flex-direction: column;\n align-items: center;\n background-color: var(--te-events-empty-action-bg-color);\n color: var(--te-events-empty-action-text-color);\n padding: 24px 18px;\n margin-top: var(--te-common-vertical-item-spacing-normal);\n .empty-action-icon {\n font-size: 48px;\n }\n .icon {\n text-align: center;\n opacity: 0.4;\n }\n .center {\n margin-top: 4px;\n }\n .text {\n margin-top: 12px;\n }\n }\n}\n.bind-event-list {\n color: var(--te-events-bind-event-list-text-color);\n}\n.bind-event-list-item-notallow {\n cursor: not-allowed;\n pointer-events: none;\n color: var(--te-events-bind-event-list-item-text-color-disabled);\n}\n.bind-event-list-item {\n padding: 0 16px;\n margin: 0 -16px;\n line-height: 24px;\n &:hover {\n cursor: pointer;\n background: var(--te-events-bind-event-list-item-bg-color-hover);\n }\n}\n</style>\n","<template>\n <div class=\"advanced-config-container\">\n <div class=\"advnce-config\">\n <label class=\"text-ellipsis-multiple\">是否渲染</label>\n <div class=\"advanced-config-form-item\">\n <switch-configurator v-if=\"!isBind\" :modelValue=\"condition\" @update:modelValue=\"setConfig\">\n </switch-configurator>\n <div v-else class=\"binding-state text-ellipsis-multiple\" :title=\"condition.value\">\n 已绑定:{{ condition.value }}\n </div>\n <variable-configurator\n v-model=\"condition\"\n name=\"advance\"\n @update:modelValue=\"setConfig\"\n ></variable-configurator>\n </div>\n </div>\n\n <div class=\"advnce-config loop-data-item\">\n <label class=\"text-ellipsis-multiple\">循环数据</label>\n <div class=\"advanced-config-form-item\">\n <code-configurator\n v-if=\"!state.isLoop\"\n v-model=\"state.loopData\"\n data-type=\"JSExpression\"\n @update:modelValue=\"setLoop\"\n @open=\"openEditor\"\n ></code-configurator>\n <div v-else class=\"binding-state text-ellipsis-multiple\" :title=\"state.loopData?.value\">\n 已绑定:{{ state.loopData?.value }}\n </div>\n <variable-configurator\n v-model=\"state.loopData\"\n name=\"advance\"\n @update:modelValue=\"setLoop\"\n ></variable-configurator>\n </div>\n </div>\n <div class=\"advnce-config\">\n <label class=\"text-ellipsis-multiple\">迭代变量名</label>\n <div class=\"advanced-config-form-item\">\n <input-configurator\n v-model=\"state.loopItem\"\n :placeholder=\"`默认值为:${DEFAULT_LOOP_NAME.ITEM}`\"\n @update:modelValue=\"setLoopItem\"\n ></input-configurator>\n </div>\n </div>\n <div class=\"advnce-config\">\n <label class=\"text-ellipsis-multiple\">索引变量名</label>\n <div class=\"advanced-config-form-item\">\n <input-configurator\n v-model=\"state.loopIndex\"\n :placeholder=\"`默认值为:${DEFAULT_LOOP_NAME.INDEX}`\"\n @update:modelValue=\"setLoopIndex\"\n ></input-configurator>\n </div>\n </div>\n <div class=\"advnce-config\">\n <label class=\"text-ellipsis-multiple\">key</label>\n <div class=\"advanced-config-form-item\">\n <tiny-tooltip content=\"建议填写循环项中的唯一值(如item.id),如果填写为数字将不保存\" effect=\"light\">\n <input-configurator\n v-model=\"state.loopKey\"\n :placeholder=\"`默认为索引名:${getIndexName()}`\"\n @update:modelValue=\"setLoopKey\"\n ></input-configurator>\n </tiny-tooltip>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { ref, computed, reactive, watch } from 'vue'\nimport {\n CodeConfigurator,\n InputConfigurator,\n SwitchConfigurator,\n VariableConfigurator\n} from '@opentiny/tiny-engine-configurator'\nimport { useProperties, useCanvas } from '@opentiny/tiny-engine-meta-register'\nimport { PROP_DATA_TYPE } from '@opentiny/tiny-engine-common/js/constants'\nimport { constants, utils } from '@opentiny/tiny-engine-utils'\nimport { Tooltip } from '@opentiny/vue'\n\nconst { DEFAULT_LOOP_NAME } = constants\nconst { string2Obj } = utils\n\nexport default {\n components: {\n SwitchConfigurator,\n TinyTooltip: Tooltip,\n VariableConfigurator,\n InputConfigurator,\n CodeConfigurator\n },\n inheritAttrs: false,\n setup() {\n const { pageState } = useCanvas()\n const condition = ref(false)\n const isBind = computed(() => condition.value?.type === PROP_DATA_TYPE.JSEXPRESSION)\n const getIndexName = () => useProperties().getSchema()?.loopArgs?.[1] || DEFAULT_LOOP_NAME.INDEX\n\n const state = reactive({\n loopData: {\n type: PROP_DATA_TYPE.JSEXPRESSION,\n value: '[]'\n },\n loopItem: 'item',\n loopIndex: 'index',\n isLoop: computed(() => state.loopData?.type === PROP_DATA_TYPE.JSEXPRESSION),\n loopKey: '',\n shouldUpdate: false\n })\n\n watch(\n () => [pageState?.currentSchema, state.shouldUpdate],\n ([value]) => {\n condition.value = value?.condition === undefined ? true : value?.condition\n state.loopData = value?.loop\n state.loopItem = value?.loopArgs?.[0] || ''\n state.loopIndex = value?.loopArgs?.[1] || ''\n state.loopKey = value?.props?.key?.value || ''\n }\n )\n\n const setLoopKey = (value = '') => {\n value = value.replace(/\\s*/g, '')\n const { getSchema, setProp } = useProperties()\n const schema = getSchema()\n\n if (!schema) {\n return\n }\n\n const isNumber = Number(value).toString() !== 'NaN'\n let newPropsKey = schema.props?.key\n\n if (value && !isNumber) {\n newPropsKey = {\n type: PROP_DATA_TYPE.JSEXPRESSION,\n value\n }\n }\n\n if (!value) {\n if (state.isLoop) {\n newPropsKey = {\n type: PROP_DATA_TYPE.JSEXPRESSION,\n value: getIndexName()\n }\n } else {\n newPropsKey = ''\n }\n }\n\n setProp('key', newPropsKey)\n }\n\n watch([() => state.isLoop, () => state.loopIndex], () => {\n if (!state.loopKey && state.isLoop) {\n setLoopKey(getIndexName())\n }\n\n if (!state.isLoop) {\n setLoopKey('')\n }\n })\n\n const openEditor = () => {\n state.loopData = useProperties().getSchema()?.loop\n }\n\n const setConfig = (value) => {\n const { getSchema } = useProperties()\n const schema = getSchema()\n\n if (!schema) {\n return\n }\n\n const { operateNode } = useCanvas()\n\n if (value === false || value?.type) {\n operateNode({ type: 'updateAttributes', id: schema.id, value: { condition: value } })\n } else {\n const { condition: _schemaCondition, children, ...rest } = schema\n operateNode({ type: 'updateAttributes', id: schema.id, value: { ...rest }, overwrite: true })\n }\n\n useCanvas().canvasApi.value.updateRect()\n condition.value = value\n }\n\n const setLoopIndex = (value) => {\n const schema = useProperties().getSchema()\n let loopArgs = schema.loopArgs\n const { operateNode } = useCanvas()\n\n if (loopArgs) {\n loopArgs[1] = value || DEFAULT_LOOP_NAME.INDEX\n } else {\n loopArgs = [DEFAULT_LOOP_NAME.ITEM, value]\n }\n\n operateNode({ type: 'updateAttributes', id: schema.id, value: { loopArgs } })\n }\n\n const setLoop = (value) => {\n const { operateNode } = useCanvas()\n const { getSchema } = useProperties()\n const schema = getSchema()\n\n if (value) {\n const newLoop = value?.type ? value : string2Obj(value)\n\n operateNode({ type: 'updateAttributes', id: schema.id, value: { loop: newLoop } })\n setLoopIndex(DEFAULT_LOOP_NAME.INDEX)\n } else {\n setLoopKey()\n const { loop: _loop, loopArgs: _loopArgs, children: _children, ...rest } = schema\n\n operateNode({ type: 'updateAttributes', id: schema.id, value: rest, overwrite: true })\n }\n\n // 触发更新state\n state.shouldUpdate = !state.shouldUpdate\n }\n\n const setLoopItem = (value) => {\n const schema = useProperties().getSchema()\n let loopArgs = schema.loopArgs\n const { operateNode } = useCanvas()\n\n if (loopArgs) {\n loopArgs[0] = value || DEFAULT_LOOP_NAME.ITEM\n } else {\n loopArgs = [value, DEFAULT_LOOP_NAME.INDEX]\n }\n\n operateNode({ type: 'updateAttributes', id: schema.id, value: { loopArgs } })\n }\n\n return {\n condition,\n setConfig,\n isBind,\n state,\n setLoop,\n setLoopItem,\n DEFAULT_LOOP_NAME,\n openEditor,\n setLoopIndex,\n setLoopKey,\n getIndexName\n }\n }\n}\n</script>\n\n<style lang=\"less\" scoped>\n.advanced-config-container {\n .advnce-config {\n &:not(:last-child) {\n margin-bottom: var(--te-common-vertical-item-spacing-normal);\n }\n align-items: center;\n display: flex;\n column-gap: 12px;\n color: var(--te-events-advanced-config-text-color);\n\n label {\n width: 80px;\n word-break: keep-all;\n color: var(--te-events-advanced-label-text-color);\n flex-shrink: 0;\n }\n\n .advanced-config-form-item {\n display: grid;\n grid-template-columns: 1fr auto;\n flex: 1;\n }\n .binding-state {\n box-sizing: border-box;\n background: var(--te-events-advanced-binding-state-bg-color);\n color: var(--te-events-advanced-binding-state-text-color);\n border: 1px solid var(--te-events-advanced-binding-state-border-color);\n font-size: 12px;\n height: 24px;\n line-height: 14px;\n padding: 4px 8px;\n --ellipsis-line: 1;\n border-radius: var(--te-base-border-radius-1);\n }\n\n .advance-config-loop-wrap {\n .advance-item {\n width: 100%;\n }\n }\n }\n .loop-data-item {\n display: block;\n label {\n margin-bottom: 5px;\n }\n }\n}\n</style>\n","<template>\n <plugin-panel\n title=\"高级\"\n :fixed-panels=\"fixedPanels\"\n :fixed-name=\"PLUGIN_NAME.Event\"\n :header-margin-bottom=\"0\"\n @close=\"$emit('close')\"\n >\n <template #content>\n <tiny-collapse v-model=\"activeNames\">\n <tiny-collapse-item title=\"事件绑定\" name=\"bindEvent\">\n <bind-events></bind-events>\n </tiny-collapse-item>\n <tiny-collapse-item title=\"高级配置\" name=\"advancedConfig\">\n <advance-config></advance-config>\n </tiny-collapse-item>\n </tiny-collapse>\n </template>\n </plugin-panel>\n</template>\n\n<script setup>\nimport { ref, reactive, provide, defineProps, defineEmits } from 'vue'\nimport { Collapse as TinyCollapse, CollapseItem as TinyCollapseItem } from '@opentiny/vue'\nimport BindEvents from './components/BindEvents.vue'\nimport AdvanceConfig from './components/AdvanceConfig.vue'\nimport { PluginPanel } from '@opentiny/tiny-engine-common'\nimport { useLayout } from '@opentiny/tiny-engine-meta-register'\n\nconst activeNames = ref(['bindEvent', 'advancedConfig'])\nconst { PLUGIN_NAME } = useLayout()\n\ndefineProps({\n fixedPanels: Array\n})\n\nconst emit = defineEmits([])\n\nconst panelState = reactive({\n emitEvent: emit\n})\n\nprovide('panelState', panelState)\n</script>\n","export const NEW_METHOD_TYPE = 'newMethod'\nexport const INVALID_VARNAME_CHAR_RE = /[^0-9a-zA-Z_$]/\nexport const VALID_VARNAME_RE = /^[a-zA-Z_$][0-9a-zA-Z_$]*$/\n\nexport const METHOD_TIPS_MAP = {\n default: '选择已有方法或者添加新方法(点击 确定 之后将在JS面板中创建一个该名称的新方法)',\n exist: '方法名称已存在',\n ruleInvalid: '请输入有效的方法名,可以由字母、数字、下划线、$ 符号组成,不能以数字开头',\n empty: '方法名称不能为空'\n}\n","<template>\n <div class=\"content-right\">\n <div :class=\"['content-right-top', { 'tip-error': context.tipError }]\">\n <div class=\"content-right-title\">方法名称</div>\n <tiny-input\n v-model=\"context.bindMethodInfo.name\"\n :disabled=\"context.bindMethodInfo.type !== NEW_METHOD_TYPE\"\n :class=\"[{ 'status-error': context.tipError }]\"\n placeholder=\"请从左侧选择一个方法进行绑定,或者选择添加新方法,输入自定义方法名称。\"\n @update:modelValue=\"change\"\n ></tiny-input>\n <div class=\"new-action-tip\">{{ context.tip }}</div>\n </div>\n <div :class=\"['content-right-bottom', { 'tip-error': !context.isValidParams }]\">\n <div class=\"content-right-title\">\n <tiny-checkbox v-model=\"context.enableExtraParams\" name=\"tiny-checkbox\">扩展参数设置</tiny-checkbox>\n <div class=\"set-params-tip\">\n <div>扩展参数:调用当前事件传入的真实参数,数组格式,追加在原有事件参数之后</div>\n 如: {{ context.bindMethodInfo.name }}(eventArgs, extParam1, extParam2, ...)\n </div>\n </div>\n\n <div class=\"content-right-monaco\">\n <monaco-editor\n v-if=\"dialogVisible\"\n :value=\"context.editorContent\"\n :options=\"editorOptions\"\n @change=\"editorContentChange\"\n class=\"monaco-editor\"\n />\n <div v-if=\"!context.enableExtraParams\" class=\"mark\"></div>\n </div>\n <div v-if=\"!context.isValidParams && context.enableExtraParams\" class=\"params-tip\">\n 请输入数组格式的参数,参数可以为表达式。例如:[\"extParam1\", \"item.status\", 1, \"getNames()\"]\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { VueMonaco } from '@opentiny/tiny-engine-common'\nimport { getMetaApi, META_APP } from '@opentiny/tiny-engine-meta-register'\nimport { Input, Checkbox } from '@opentiny/vue'\nimport { inject } from 'vue'\nimport { METHOD_TIPS_MAP, NEW_METHOD_TYPE, VALID_VARNAME_RE } from './constants'\n\nexport default {\n components: {\n MonacoEditor: VueMonaco,\n TinyInput: Input,\n TinyCheckbox: Checkbox\n },\n props: {\n dialogVisible: Boolean\n },\n setup() {\n const { getMethodNameList } = getMetaApi(META_APP.Page)\n\n const context = inject('context')\n\n const editorOptions = {\n language: 'json',\n lineNumbers: false,\n minimap: {\n enabled: false\n }\n }\n\n const editorContentChange = (content) => {\n context.editorContent = content\n }\n\n const validMethodNameEmpty = (name) => !name\n\n const validMethodNameExist = (name) => getMethodNameList?.().includes(name)\n\n const invalidMethodName = (name) => !VALID_VARNAME_RE.test(name)\n\n const change = (value) => {\n const validRules = [\n { validator: validMethodNameEmpty, tip: METHOD_TIPS_MAP.empty },\n { validator: validMethodNameExist, tip: METHOD_TIPS_MAP.exist },\n { validator: invalidMethodName, tip: METHOD_TIPS_MAP.ruleInvalid }\n ]\n for (let i = 0; i < validRules.length; i++) {\n const rule = validRules[i]\n if (rule.validator(value)) {\n context.tipError = true\n context.tip = rule.tip\n\n // 若存在校验不通过的,则直接返回,不继续走下面的流程\n return\n }\n }\n context.tipError = false\n context.tip = ''\n }\n\n return {\n NEW_METHOD_TYPE,\n context,\n editorOptions,\n change,\n editorContentChange\n }\n }\n}\n</script>\n\n<style lang=\"less\" scoped>\n.content-right {\n width: 68%;\n\n .content-right-top {\n .new-action-tip {\n margin: 8px 0;\n color: var(--te-bind-event-dialog-tip-text-color);\n }\n }\n .content-right-bottom {\n .content-right-monaco {\n border: 1px solid var(--te-bind-event-dialog-content-right-monaco-border-color);\n overflow: hidden;\n position: relative;\n\n .monaco-editor {\n width: 100%;\n height: 216px;\n color: var(--te-bind-event-dialog-content-right-monaco-text-color);\n }\n .mark {\n width: 100%;\n height: 216px;\n position: absolute;\n z-index: 1;\n top: 0;\n }\n }\n\n .params-tip {\n margin: 8px 0;\n color: var(--te-bind-event-dialog-danger-tip-text-color);\n }\n }\n .content-right-top .content-right-title,\n .content-right-bottom .content-right-title {\n margin-bottom: var(--te-common-vertical-item-spacing-normal);\n .set-params-tip {\n margin-top: 6px;\n font-weight: 400;\n color: var(--te-bind-event-dialog-tip-text-color);\n }\n }\n\n .tip-error {\n .content-right-monaco {\n border: 1px solid var(--te-bind-event-dialog-danger-border-color);\n }\n .params-tip,\n .new-action-tip {\n color: var(--te-bind-event-dialog-danger-tip-text-color);\n }\n }\n}\n</style>\n","<template>\n <div class=\"dialog-content-left\">\n <div class=\"left-title\">响应方法</div>\n <div class=\"left-list-wrap\">\n <div class=\"left-action-list\">\n <tiny-search v-model=\"searchValue\" placeholder=\"搜索\"></tiny-search>\n <ul class=\"action-list-wrap\">\n <li v-for=\"item in filteredMethodList\" :key=\"item.name\" @click=\"selectMethod(item)\">\n <div :class=\"['action-name', { active: item.name === context.bindMethodInfo.name }]\">\n {{ item.title || item.name }}\n </div>\n </li>\n </ul>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { getMetaApi, META_APP } from '@opentiny/tiny-engine-meta-register'\nimport { Search } from '@opentiny/vue'\nimport { inject, ref, watchEffect } from 'vue'\nimport { INVALID_VARNAME_CHAR_RE, NEW_METHOD_TYPE } from './constants'\n\nexport default {\n components: {\n TinySearch: Search\n },\n props: {\n eventBinding: {\n type: Object,\n default: () => ({})\n }\n },\n setup(props) {\n const { getMethodNameList } = getMetaApi(META_APP.Page)\n\n const searchValue = ref('')\n const filteredMethodList = ref([])\n const context = inject('context')\n\n const generateMethodName = (nameList, eventName) => {\n const max = nameList\n .map((name) => Number.parseInt(name.match(/\\d+$/)?.[0]) || 0)\n .sort((a, b) => a - b)\n .pop()\n\n const functionName = eventName?.replace(INVALID_VARNAME_CHAR_RE, '_') || ''\n let name = `${functionName}New`\n\n if (max > -1) {\n name += `${max + 1}`\n }\n\n return name\n }\n\n const selectMethod = (data) => {\n context.bindMethodInfo = data\n }\n\n watchEffect(() => {\n const eventName = props.eventBinding?.eventName\n\n const nameList = getMethodNameList?.().filter((action) => action.includes(eventName)) || []\n const newMethodName = generateMethodName(nameList, eventName)\n\n const newMethod = {\n title: '添加新方法',\n name: newMethodName,\n type: NEW_METHOD_TYPE\n }\n\n if (props.eventBinding?.ref) {\n selectMethod({ name: props.eventBinding.ref })\n } else {\n selectMethod(newMethod)\n }\n\n const methodList =\n getMethodNameList?.()\n .filter((item) => item.includes(searchValue.value))\n .map((name) => ({ name })) || []\n\n filteredMethodList.value = [newMethod, ...methodList]\n })\n\n return {\n context,\n searchValue,\n filteredMethodList,\n selectMethod\n }\n }\n}\n</script>\n\n<style lang=\"less\" scoped>\n.dialog-content-left {\n margin-right: 30px;\n width: 30%;\n display: flex;\n flex-direction: column;\n\n .left-title {\n font-weight: 400;\n }\n\n .left-list-wrap {\n border: 1px solid var(--te-bind-event-dialog-content-left-border-color);\n border-radius: 4px;\n height: 300px;\n margin-top: var(--te-common-vertical-item-spacing-normal);\n display: flex;\n flex: 1;\n\n .left-action-list {\n flex: 1;\n padding: 12px;\n .action-list-wrap {\n height: 250px;\n margin-top: 8px;\n overflow: auto;\n }\n\n .action-name {\n display: flex;\n justify-content: space-between;\n padding: 8px 12px;\n cursor: pointer;\n color: var(--te-bind-event-dialog-text-color);\n &.active {\n background: var(--te-bind-event-dialog-content-left-list-item-bg-color-active);\n }\n }\n }\n }\n}\n</style>\n","/**\n * Copyright (c) 2023 - present TinyEngine Authors.\n * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd.\n *\n * Use of this source code is governed by an MIT-style license.\n *\n * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,\n * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR\n * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.\n *\n */\n\nimport entry from './src/Main.vue'\nimport metaData from './meta'\nimport { commonEvents } from './src/commonjs/events.ts'\nimport BindEventsDialogContent from './src/components/BindEventsDialogContent.vue'\nimport BindEventsDialogSidebar from './src/components/BindEventsDialogSidebar.vue'\nimport './src/styles/vars.less'\n\nexport default {\n ...metaData,\n entry,\n options: { commonEvents },\n components: {\n BindEventsDialogSidebar,\n BindEventsDialogContent\n }\n}\n"],"names":["metaData","dialogVisible","ref","open","close","_sfc_main","Button","DialogBox","TinyAlert","props","BindEventsDialogSidebar","BindEventsDialogContent","getMergeMeta","meta","PLUGIN_NAME","activePlugin","useLayout","pageState","useCanvas","getMethods","saveMethod","highlightMethod","getMetaApi","META_APP","state","reactive","provide","selectMethod","data","bindMethod","eventName","_a","nodeProps","_b","name","extra","useHistory","resetTipError","getExtraParams","extraParams","getFormatParams","v","i","getFunctionBody","method","preBody","isAsync","isGenerator","astStr","string2Ast","_d","_c","ast2String","_f","_e","_h","_g","activePagePlugin","nextTick","params","formatParams","functionBody","functionName","beforeSaveMethod","getOptions","_hoisted_1","_hoisted_2","_hoisted_3","_createBlock","_component_tiny_dialog_box","$setup","_createElementVNode","_createVNode","_component_tiny_button","_cache","_component_tiny_alert","_openBlock","_resolveDynamicComponent","$props","commonEvents","allEvents","checkEvent","event","e","three","__props","emits","__emit","formData","ruleForm","rules","rule","value","callback","closeDialog","addMethod","valid","eventDescription","_unref","TinyDialogBox","TinyButton","TinyForm","TinyFormItem","TinyInput","$event","BlockLinkEvent","BindEventsDialog","Popover","iconChevronDown","SvgButton","AddEventsDialog","getBlockEvents","getCurrentBlock","removeEventLink","useBlock","getMaterial","useMaterial","confirm","useModal","locale","i18n","isBlock","computed","isEmpty","renderEventList","watchEffect","componentName","componentSchema","keys","componentEvent","eventArgs","action","blockEvents","componentId","openActionDialog","isAdd","openDialog","deleteAction","useMessage","visible","_hoisted_5","_hoisted_6","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_component_tiny_popover","_component_icon_chevron_down","_createElementBlock","_Fragment","_renderList","_normalizeClass","_toDisplayString","_component_svg_icon","_withDirectives","_createTextVNode","_component_block_link_event","_component_svg_button","_component_bind_events_dialog","_component_add_events_dialog","DEFAULT_LOOP_NAME","constants","string2Obj","utils","SwitchConfigurator","Tooltip","VariableConfigurator","InputConfigurator","CodeConfigurator","condition","isBind","PROP_DATA_TYPE","getIndexName","useProperties","watch","setLoopKey","getSchema","setProp","schema","isNumber","newPropsKey","openEditor","setConfig","operateNode","_schemaCondition","children","rest","setLoopIndex","loopArgs","newLoop","_loop","_loopArgs","_children","_hoisted_12","_hoisted_13","_hoisted_4","_component_switch_configurator","_component_variable_configurator","_hoisted_7","_component_code_configurator","_component_input_configurator","_component_tiny_tooltip","activeNames","panelState","PluginPanel","$emit","TinyCollapse","TinyCollapseItem","BindEvents","AdvanceConfig","NEW_METHOD_TYPE","INVALID_VARNAME_CHAR_RE","VALID_VARNAME_RE","METHOD_TIPS_MAP","VueMonaco","Input","Checkbox","getMethodNameList","context","inject","editorOptions","editorContentChange","content","validMethodNameEmpty","validMethodNameExist","invalidMethodName","validRules","_component_tiny_input","_component_tiny_checkbox","_component_monaco_editor","Search","searchValue","filteredMethodList","generateMethodName","nameList","max","a","b","newMethod","methodList","item","_component_tiny_search","index","entry"],"mappings":"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"}
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .bind-event-dialog[data-v-db4b4d71]{z-index:99}.bind-event-dialog[data-v-db4b4d71] .tiny-dialog-box{min-width:760px}.bind-event-dialog-tip[data-v-db4b4d71]{padding:var(--te-common-vertical-item-spacing-normal) 14px;margin-bottom:var(--te-common-vertical-item-spacing-normal);background-color:var(--te-bind-event-dialog-tip-bg-color);color:var(--te-bind-event-dialog-tip-text-color)}.bind-event-dialog-content[data-v-db4b4d71]{display:flex;min-width:700px}.add-custom-event-form.add-custom-event-form[data-v-5033228a] .tiny-form-item__label{padding-left:0}.footer[data-v-5033228a]{display:flex;justify-content:flex-end}.custom-event[data-v-3bfab6f4]{padding:10px 20px 10px 10px}.custom-event footer[data-v-3bfab6f4]{text-align:center}.bind-action-list .bind-actions[data-v-3bfab6f4]{margin-top:20px}.bind-action-list .bind-actions .binding-name[data-v-3bfab6f4]{word-break:break-all}.bind-action-list .bind-actions .action-buttons[data-v-3bfab6f4]{display:flex;align-items:center;justify-content:center}.bind-action-list .bind-actions .action-buttons .item[data-v-3bfab6f4]{margin-right:10px}.bind-action-list .bind-actions .event-bind[data-v-3bfab6f4]{color:var(--te-events-event-bind-text-color)}.bind-action-list .bind-actions .bind-action-item[data-v-3bfab6f4]{display:flex;justify-content:space-between;padding:8px 12px;cursor:pointer;color:var(--te-events-bind-action-item-text-color);border-bottom:1px solid var(--te-events-bind-action-item-border-color)}.bind-action-list .bind-actions .bind-action-item[data-v-3bfab6f4]:first-child{border-top:1px solid var(--te-events-bind-action-item-border-color)}.bind-action-list .bind-actions .bind-action-item[data-v-3bfab6f4]:hover{background:var(--te-events-bind-action-item-bg-color-hover)}.bind-action-list .bind-actions .bind-action-item .linked[data-v-3bfab6f4]{color:var(--te-events-bind-action-item-text-color-link)}.bind-action-list .popover-head[data-v-3bfab6f4]{display:flex;justify-content:space-between;margin-top:12px}.bind-action-list .popover-head .bind-action-button-item[data-v-3bfab6f4]{width:50%}.bind-action-list .popover-head .bind-action-button-item[data-v-3bfab6f4]:not(:last-child){margin-right:12px}.bind-action-list .popover-head .add-custom-event-button[data-v-3bfab6f4]{margin-right:0}.bind-action-list .popover-head .bind-event-btn[data-v-3bfab6f4]{padding:0 16px;width:100%}.bind-action-list .popover-head .bind-event-btn .bind-event-btn-icon[data-v-3bfab6f4]{margin-right:0;margin-left:4px}.bind-action-list .empty-action[data-v-3bfab6f4]{display:flex;flex-direction:column;align-items:center;background-color:var(--te-events-empty-action-bg-color);color:var(--te-events-empty-action-text-color);padding:24px 18px;margin-top:var(--te-common-vertical-item-spacing-normal)}.bind-action-list .empty-action .empty-action-icon[data-v-3bfab6f4]{font-size:48px}.bind-action-list .empty-action .icon[data-v-3bfab6f4]{text-align:center;opacity:.4}.bind-action-list .empty-action .center[data-v-3bfab6f4]{margin-top:4px}.bind-action-list .empty-action .text[data-v-3bfab6f4]{margin-top:12px}.bind-event-list[data-v-3bfab6f4]{color:var(--te-events-bind-event-list-text-color)}.bind-event-list-item-notallow[data-v-3bfab6f4]{cursor:not-allowed;pointer-events:none;color:var(--te-events-bind-event-list-item-text-color-disabled)}.bind-event-list-item[data-v-3bfab6f4]{padding:0 16px;margin:0 -16px;line-height:24px}.bind-event-list-item[data-v-3bfab6f4]:hover{cursor:pointer;background:var(--te-events-bind-event-list-item-bg-color-hover)}.advanced-config-container .advnce-config[data-v-2254f006]{align-items:center;display:flex;column-gap:12px;color:var(--te-events-advanced-config-text-color)}.advanced-config-container .advnce-config[data-v-2254f006]:not(:last-child){margin-bottom:var(--te-common-vertical-item-spacing-normal)}.advanced-config-container .advnce-config label[data-v-2254f006]{width:80px;word-break:keep-all;color:var(--te-events-advanced-label-text-color);flex-shrink:0}.advanced-config-container .advnce-config .advanced-config-form-item[data-v-2254f006]{display:grid;grid-template-columns:1fr auto;flex:1}.advanced-config-container .advnce-config .binding-state[data-v-2254f006]{box-sizing:border-box;background:var(--te-events-advanced-binding-state-bg-color);color:var(--te-events-advanced-binding-state-text-color);border:1px solid var(--te-events-advanced-binding-state-border-color);font-size:12px;height:30px;line-height:22px;padding:4px 8px;--ellipsis-line: 1;border-radius:6px}.advanced-config-container .advnce-config .advance-config-loop-wrap .advance-item[data-v-2254f006]{width:100%}.advanced-config-container .loop-data-item[data-v-2254f006]{display:block}.advanced-config-container .loop-data-item label[data-v-2254f006]{margin-bottom:5px}.content-right[data-v-f2c9b5af]{width:68%}.content-right .content-right-top .new-action-tip[data-v-f2c9b5af]{margin:8px 0;color:var(--te-bind-event-dialog-tip-text-color)}.content-right .content-right-bottom .content-right-monaco[data-v-f2c9b5af]{border:1px solid var(--te-bind-event-dialog-content-right-monaco-border-color);overflow:hidden;position:relative}.content-right .content-right-bottom .content-right-monaco .monaco-editor[data-v-f2c9b5af]{width:100%;height:216px;color:var(--te-bind-event-dialog-content-right-monaco-text-color)}.content-right .content-right-bottom .content-right-monaco .mark[data-v-f2c9b5af]{width:100%;height:216px;position:absolute;z-index:1;top:0}.content-right .content-right-bottom .params-tip[data-v-f2c9b5af]{margin:8px 0;color:var(--te-bind-event-dialog-danger-tip-text-color)}.content-right .content-right-top .content-right-title[data-v-f2c9b5af],.content-right .content-right-bottom .content-right-title[data-v-f2c9b5af]{margin-bottom:var(--te-common-vertical-item-spacing-normal)}.content-right .content-right-top .content-right-title .set-params-tip[data-v-f2c9b5af],.content-right .content-right-bottom .content-right-title .set-params-tip[data-v-f2c9b5af]{margin-top:6px;font-weight:400;color:var(--te-bind-event-dialog-tip-text-color)}.content-right .tip-error .content-right-monaco[data-v-f2c9b5af]{border:1px solid var(--te-bind-event-dialog-danger-border-color)}.content-right .tip-error .params-tip[data-v-f2c9b5af],.content-right .tip-error .new-action-tip[data-v-f2c9b5af]{color:var(--te-bind-event-dialog-danger-tip-text-color)}.dialog-content-left[data-v-0859add1]{margin-right:30px;width:30%;display:flex;flex-direction:column}.dialog-content-left .left-title[data-v-0859add1]{font-weight:400}.dialog-content-left .left-list-wrap[data-v-0859add1]{border:1px solid var(--te-bind-event-dialog-content-left-border-color);border-radius:4px;height:300px;margin-top:var(--te-common-vertical-item-spacing-normal);display:flex;flex:1}.dialog-content-left .left-list-wrap .left-action-list[data-v-0859add1]{flex:1;padding:12px}.dialog-content-left .left-list-wrap .left-action-list .action-list-wrap[data-v-0859add1]{height:250px;margin-top:8px;overflow:auto}.dialog-content-left .left-list-wrap .left-action-list .action-name[data-v-0859add1]{display:flex;justify-content:space-between;padding:8px 12px;cursor:pointer;color:var(--te-bind-event-dialog-text-color)}.dialog-content-left .left-list-wrap .left-action-list .action-name.active[data-v-0859add1]{background:var(--te-bind-event-dialog-content-left-list-item-bg-color-active)}:root{--te-events-advanced-config-text-color: var(--te-common-text-secondary);--te-events-advanced-label-text-color: var(--te-common-text-secondary);--te-events-advanced-binding-state-bg-color: var(--te-common-bg-info);--te-events-advanced-binding-state-border-color: var(--te-common-border-info);--te-events-advanced-binding-state-text-color: var(--te-common-text-emphasize);--te-bind-event-dialog-text-color: var(--te-common-text-secondary);--te-bind-event-dialog-content-left-border-color: var(--te-common-border-divider);--te-bind-event-dialog-content-right-monaco-text-color: var(--te-common-text-secondary);--te-bind-event-dialog-content-right-monaco-border-color: var(--te-common-border-divider);--te-bind-event-dialog-content-left-list-item-bg-color-active: var(--te-common-bg-container);--te-bind-event-dialog-tip-text-color: var(--te-common-text-weaken);--te-bind-event-dialog-tip-bg-color: var(--te-common-bg-container);--te-bind-event-dialog-danger-tip-text-color: var(--te-common-color-error);--te-bind-event-dialog-danger-border-color: var(--te-common-color-error);--te-events-bind-action-item-border-color: var(--te-common-border-divider);--te-events-event-bind-text-color: var(--te-common-text-weaken);--te-events-bind-action-item-text-color: var(--te-common-text-primary);--te-events-bind-action-item-bg-color-hover: var(--te-common-bg-container);--te-events-bind-action-item-text-color-link: var(--te-common-text-emphasize);--te-events-empty-action-bg-color: var(--te-common-bg-container);--te-events-empty-action-text-color: var(--te-common-text-weaken);--te-events-bind-event-list-text-color: var(--te-common-text-primary);--te-events-bind-event-list-item-text-color-disabled: var(--te-common-text-disabled);--te-events-bind-event-list-item-bg-color-hover: var(--te-common-bg-container)}
1
+ .bind-event-dialog[data-v-070f73c9]{z-index:99}.bind-event-dialog[data-v-070f73c9] .tiny-dialog-box{min-width:760px}.bind-event-dialog-tip .tiny-alert.tiny-alert--normal[data-v-070f73c9]{margin:12px 0}.bind-event-dialog-content[data-v-070f73c9]{display:flex;min-width:700px}.add-custom-event-form.add-custom-event-form[data-v-5033228a] .tiny-form-item__label{padding-left:0}.footer[data-v-5033228a]{display:flex;justify-content:flex-end}.custom-event[data-v-3bfab6f4]{padding:10px 20px 10px 10px}.custom-event footer[data-v-3bfab6f4]{text-align:center}.bind-action-list .bind-actions[data-v-3bfab6f4]{margin-top:20px}.bind-action-list .bind-actions .binding-name[data-v-3bfab6f4]{word-break:break-all}.bind-action-list .bind-actions .action-buttons[data-v-3bfab6f4]{display:flex;align-items:center;justify-content:center}.bind-action-list .bind-actions .action-buttons .item[data-v-3bfab6f4]{margin-right:10px}.bind-action-list .bind-actions .event-bind[data-v-3bfab6f4]{color:var(--te-events-event-bind-text-color)}.bind-action-list .bind-actions .bind-action-item[data-v-3bfab6f4]{display:flex;justify-content:space-between;padding:8px 12px;cursor:pointer;color:var(--te-events-bind-action-item-text-color);border-bottom:1px solid var(--te-events-bind-action-item-border-color)}.bind-action-list .bind-actions .bind-action-item[data-v-3bfab6f4]:first-child{border-top:1px solid var(--te-events-bind-action-item-border-color)}.bind-action-list .bind-actions .bind-action-item[data-v-3bfab6f4]:hover{background:var(--te-events-bind-action-item-bg-color-hover)}.bind-action-list .bind-actions .bind-action-item .linked[data-v-3bfab6f4]{color:var(--te-events-bind-action-item-text-color-link)}.bind-action-list .popover-head[data-v-3bfab6f4]{display:flex;justify-content:space-between;margin-top:12px}.bind-action-list .popover-head .bind-action-button-item[data-v-3bfab6f4]{width:50%}.bind-action-list .popover-head .bind-action-button-item[data-v-3bfab6f4]:not(:last-child){margin-right:12px}.bind-action-list .popover-head .add-custom-event-button[data-v-3bfab6f4]{margin-right:0}.bind-action-list .popover-head .bind-event-btn[data-v-3bfab6f4]{padding:0 16px;width:100%}.bind-action-list .popover-head .bind-event-btn .bind-event-btn-icon[data-v-3bfab6f4]{margin-right:0;margin-left:4px}.bind-action-list .empty-action[data-v-3bfab6f4]{display:flex;flex-direction:column;align-items:center;background-color:var(--te-events-empty-action-bg-color);color:var(--te-events-empty-action-text-color);padding:24px 18px;margin-top:var(--te-common-vertical-item-spacing-normal)}.bind-action-list .empty-action .empty-action-icon[data-v-3bfab6f4]{font-size:48px}.bind-action-list .empty-action .icon[data-v-3bfab6f4]{text-align:center;opacity:.4}.bind-action-list .empty-action .center[data-v-3bfab6f4]{margin-top:4px}.bind-action-list .empty-action .text[data-v-3bfab6f4]{margin-top:12px}.bind-event-list[data-v-3bfab6f4]{color:var(--te-events-bind-event-list-text-color)}.bind-event-list-item-notallow[data-v-3bfab6f4]{cursor:not-allowed;pointer-events:none;color:var(--te-events-bind-event-list-item-text-color-disabled)}.bind-event-list-item[data-v-3bfab6f4]{padding:0 16px;margin:0 -16px;line-height:24px}.bind-event-list-item[data-v-3bfab6f4]:hover{cursor:pointer;background:var(--te-events-bind-event-list-item-bg-color-hover)}.advanced-config-container .advnce-config[data-v-40bd3762]{align-items:center;display:flex;column-gap:12px;color:var(--te-events-advanced-config-text-color)}.advanced-config-container .advnce-config[data-v-40bd3762]:not(:last-child){margin-bottom:var(--te-common-vertical-item-spacing-normal)}.advanced-config-container .advnce-config label[data-v-40bd3762]{width:80px;word-break:keep-all;color:var(--te-events-advanced-label-text-color);flex-shrink:0}.advanced-config-container .advnce-config .advanced-config-form-item[data-v-40bd3762]{display:grid;grid-template-columns:1fr auto;flex:1}.advanced-config-container .advnce-config .binding-state[data-v-40bd3762]{box-sizing:border-box;background:var(--te-events-advanced-binding-state-bg-color);color:var(--te-events-advanced-binding-state-text-color);border:1px solid var(--te-events-advanced-binding-state-border-color);font-size:12px;height:24px;line-height:14px;padding:4px 8px;--ellipsis-line: 1;border-radius:var(--te-base-border-radius-1)}.advanced-config-container .advnce-config .advance-config-loop-wrap .advance-item[data-v-40bd3762]{width:100%}.advanced-config-container .loop-data-item[data-v-40bd3762]{display:block}.advanced-config-container .loop-data-item label[data-v-40bd3762]{margin-bottom:5px}.content-right[data-v-f2c9b5af]{width:68%}.content-right .content-right-top .new-action-tip[data-v-f2c9b5af]{margin:8px 0;color:var(--te-bind-event-dialog-tip-text-color)}.content-right .content-right-bottom .content-right-monaco[data-v-f2c9b5af]{border:1px solid var(--te-bind-event-dialog-content-right-monaco-border-color);overflow:hidden;position:relative}.content-right .content-right-bottom .content-right-monaco .monaco-editor[data-v-f2c9b5af]{width:100%;height:216px;color:var(--te-bind-event-dialog-content-right-monaco-text-color)}.content-right .content-right-bottom .content-right-monaco .mark[data-v-f2c9b5af]{width:100%;height:216px;position:absolute;z-index:1;top:0}.content-right .content-right-bottom .params-tip[data-v-f2c9b5af]{margin:8px 0;color:var(--te-bind-event-dialog-danger-tip-text-color)}.content-right .content-right-top .content-right-title[data-v-f2c9b5af],.content-right .content-right-bottom .content-right-title[data-v-f2c9b5af]{margin-bottom:var(--te-common-vertical-item-spacing-normal)}.content-right .content-right-top .content-right-title .set-params-tip[data-v-f2c9b5af],.content-right .content-right-bottom .content-right-title .set-params-tip[data-v-f2c9b5af]{margin-top:6px;font-weight:400;color:var(--te-bind-event-dialog-tip-text-color)}.content-right .tip-error .content-right-monaco[data-v-f2c9b5af]{border:1px solid var(--te-bind-event-dialog-danger-border-color)}.content-right .tip-error .params-tip[data-v-f2c9b5af],.content-right .tip-error .new-action-tip[data-v-f2c9b5af]{color:var(--te-bind-event-dialog-danger-tip-text-color)}.dialog-content-left[data-v-0859add1]{margin-right:30px;width:30%;display:flex;flex-direction:column}.dialog-content-left .left-title[data-v-0859add1]{font-weight:400}.dialog-content-left .left-list-wrap[data-v-0859add1]{border:1px solid var(--te-bind-event-dialog-content-left-border-color);border-radius:4px;height:300px;margin-top:var(--te-common-vertical-item-spacing-normal);display:flex;flex:1}.dialog-content-left .left-list-wrap .left-action-list[data-v-0859add1]{flex:1;padding:12px}.dialog-content-left .left-list-wrap .left-action-list .action-list-wrap[data-v-0859add1]{height:250px;margin-top:8px;overflow:auto}.dialog-content-left .left-list-wrap .left-action-list .action-name[data-v-0859add1]{display:flex;justify-content:space-between;padding:8px 12px;cursor:pointer;color:var(--te-bind-event-dialog-text-color)}.dialog-content-left .left-list-wrap .left-action-list .action-name.active[data-v-0859add1]{background:var(--te-bind-event-dialog-content-left-list-item-bg-color-active)}:root{--te-events-advanced-config-text-color: var(--te-common-text-secondary);--te-events-advanced-label-text-color: var(--te-common-text-secondary);--te-events-advanced-binding-state-bg-color: var(--te-common-bg-info);--te-events-advanced-binding-state-border-color: var(--te-common-border-info);--te-events-advanced-binding-state-text-color: var(--te-common-text-emphasize);--te-bind-event-dialog-text-color: var(--te-common-text-secondary);--te-bind-event-dialog-content-left-border-color: var(--te-common-border-divider);--te-bind-event-dialog-content-right-monaco-text-color: var(--te-common-text-secondary);--te-bind-event-dialog-content-right-monaco-border-color: var(--te-common-border-divider);--te-bind-event-dialog-content-left-list-item-bg-color-active: var(--te-common-bg-container);--te-bind-event-dialog-tip-text-color: var(--te-common-text-weaken);--te-bind-event-dialog-tip-bg-color: var(--te-common-bg-container);--te-bind-event-dialog-danger-tip-text-color: var(--te-common-color-error);--te-bind-event-dialog-danger-border-color: var(--te-common-color-error);--te-events-bind-action-item-border-color: var(--te-common-border-divider);--te-events-event-bind-text-color: var(--te-common-text-weaken);--te-events-bind-action-item-text-color: var(--te-common-text-primary);--te-events-bind-action-item-bg-color-hover: var(--te-common-bg-container);--te-events-bind-action-item-text-color-link: var(--te-common-text-emphasize);--te-events-empty-action-bg-color: var(--te-common-bg-container);--te-events-empty-action-text-color: var(--te-common-text-weaken);--te-events-bind-event-list-text-color: var(--te-common-text-primary);--te-events-bind-event-list-item-text-color-disabled: var(--te-common-text-disabled);--te-events-bind-event-list-item-bg-color-hover: var(--te-common-bg-container)}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opentiny/tiny-engine-setting-events",
3
- "version": "2.6.0-alpha.0",
3
+ "version": "2.6.0-alpha.10",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -25,13 +25,13 @@
25
25
  "license": "MIT",
26
26
  "homepage": "https://opentiny.design/tiny-engine",
27
27
  "dependencies": {
28
- "@opentiny/tiny-engine-common": "2.6.0-alpha.0",
29
- "@opentiny/tiny-engine-configurator": "2.6.0-alpha.0",
30
- "@opentiny/tiny-engine-meta-register": "2.6.0-alpha.0",
31
- "@opentiny/tiny-engine-utils": "2.6.0-alpha.0"
28
+ "@opentiny/tiny-engine-common": "2.6.0-alpha.10",
29
+ "@opentiny/tiny-engine-configurator": "2.6.0-alpha.10",
30
+ "@opentiny/tiny-engine-meta-register": "2.6.0-alpha.10",
31
+ "@opentiny/tiny-engine-utils": "2.6.0-alpha.10"
32
32
  },
33
33
  "devDependencies": {
34
- "@opentiny/tiny-engine-vite-plugin-meta-comments": "2.6.0-alpha.0",
34
+ "@opentiny/tiny-engine-vite-plugin-meta-comments": "2.6.0-alpha.10",
35
35
  "@vitejs/plugin-vue": "^5.1.2",
36
36
  "@vitejs/plugin-vue-jsx": "^4.0.1",
37
37
  "vite": "^5.4.2"
@@ -41,5 +41,5 @@
41
41
  "@opentiny/vue-icon": "^3.20.0",
42
42
  "vue": "^3.4.15"
43
43
  },
44
- "gitHead": "91ddb45772ee61d827b3ae02a97d3dc9cd599029"
44
+ "gitHead": "5f2a0daecfa5d064ce48ab2c24a919369ef997d6"
45
45
  }