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

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 CHANGED
@@ -150,7 +150,8 @@ function un(f, o, a, e, r, _) {
150
150
  default: E(() => o[0] || (o[0] = [
151
151
  J("取 消")
152
152
  ])),
153
- _: 1
153
+ _: 1,
154
+ __: [0]
154
155
  }, 8, ["onClick"]),
155
156
  u(b, {
156
157
  type: "info",
@@ -159,7 +160,8 @@ function un(f, o, a, e, r, _) {
159
160
  default: E(() => o[1] || (o[1] = [
160
161
  J("确 定")
161
162
  ])),
162
- _: 1
163
+ _: 1,
164
+ __: [1]
163
165
  }, 8, ["onClick"])
164
166
  ])
165
167
  ]),
@@ -173,7 +175,8 @@ function un(f, o, a, e, r, _) {
173
175
  (h(), O(_e(e.BindEventsDialogContent), { dialogVisible: e.dialogVisible }, null, 8, ["dialogVisible"]))
174
176
  ])
175
177
  ]),
176
- _: 1
178
+ _: 1,
179
+ __: [2]
177
180
  }, 8, ["visible", "onClose", "onOpened"]);
178
181
  }
179
182
  const fn = /* @__PURE__ */ H(cn, [["render", un], ["__scopeId", "data-v-db4b4d71"]]), vn = {
@@ -410,7 +413,8 @@ const fn = /* @__PURE__ */ H(cn, [["render", un], ["__scopeId", "data-v-db4b4d71
410
413
  default: E(() => n[2] || (n[2] = [
411
414
  J(" 取消")
412
415
  ])),
413
- _: 1
416
+ _: 1,
417
+ __: [2]
414
418
  }),
415
419
  u(D(ee), {
416
420
  type: "primary",
@@ -419,7 +423,8 @@ const fn = /* @__PURE__ */ H(cn, [["render", un], ["__scopeId", "data-v-db4b4d71
419
423
  default: E(() => n[3] || (n[3] = [
420
424
  J(" 确定")
421
425
  ])),
422
- _: 1
426
+ _: 1,
427
+ __: [3]
423
428
  })
424
429
  ])
425
430
  ]),
@@ -589,7 +594,8 @@ function wn(f, o, a, e, r, _) {
589
594
  o[2] || (o[2] = t("span", null, "绑定事件", -1)),
590
595
  u(b, { class: "icon-chevron-down bind-event-btn-icon" })
591
596
  ]),
592
- _: 1
597
+ _: 1,
598
+ __: [2]
593
599
  })
594
600
  ]),
595
601
  default: E(() => [
@@ -619,7 +625,8 @@ function wn(f, o, a, e, r, _) {
619
625
  }),
620
626
  o[3] || (o[3] = t("span", { class: "custom-event-button-text" }, "添加新事件", -1))
621
627
  ]),
622
- _: 1
628
+ _: 1,
629
+ __: [3]
623
630
  })
624
631
  ]),
625
632
  be(t("ul", Nn, [
@@ -1035,7 +1042,8 @@ function co(f, o, a, e, r, _) {
1035
1042
  default: E(() => o[3] || (o[3] = [
1036
1043
  J("扩展参数设置")
1037
1044
  ])),
1038
- _: 1
1045
+ _: 1,
1046
+ __: [3]
1039
1047
  }, 8, ["modelValue"]),
1040
1048
  t("div", so, [
1041
1049
  o[4] || (o[4] = t("div", null, "扩展参数:调用当前事件传入的真实参数,数组格式,追加在原有事件参数之后", -1)),
@@ -1132,3 +1140,4 @@ const ho = /* @__PURE__ */ H(po, [["render", bo], ["__scopeId", "data-v-0859add1
1132
1140
  export {
1133
1141
  Bo as default
1134
1142
  };
1143
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opentiny/tiny-engine-setting-events",
3
- "version": "2.5.0",
3
+ "version": "2.6.0-alpha.0",
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.5.0",
29
- "@opentiny/tiny-engine-configurator": "2.5.0",
30
- "@opentiny/tiny-engine-meta-register": "2.5.0",
31
- "@opentiny/tiny-engine-utils": "2.5.0"
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"
32
32
  },
33
33
  "devDependencies": {
34
- "@opentiny/tiny-engine-vite-plugin-meta-comments": "2.5.0",
34
+ "@opentiny/tiny-engine-vite-plugin-meta-comments": "2.6.0-alpha.0",
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": "db1033835ed51b30398716070cc73e7ac985b3f3"
44
+ "gitHead": "91ddb45772ee61d827b3ae02a97d3dc9cd599029"
45
45
  }