#51562023年5月31日作者 loclovepop3 个回答
GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? Chrome,IOS可复制演示链接 https://www.lovepoptestsite.com/products/disney-s-hocus-pocus-black-flame-candle-pop-up-card?variant=40356218077273&preview_link=124907487321 密码:ilovecards描述一下那个虫子 如何复现这个漏洞? 我试过用手机屏幕单独拖拽 grapejs 编辑,一切都没问题。但当我尝试在注入编辑器测试存储后这样做时,效果并不如预期。 预期的行为是什么? ...它应该允许拖放组件...
loclovepop
[screencast-www.lovepoptestsite.com-2023.06.01-001711.webm](https://github.com/GrapesJS/grapesjs/assets/124012807/a171fbbb-dd8b-45a6-901c-d0c2519c8304) 这是关于bug的视频
artf
我看到触摸插件是正常工作的,确保加载时启用移动设备(比如加载后不要模拟),这样聚合物填充才能正确加载。
GJS Helper
你遇到的拖放功能在移动屏幕上无法正常工作的问题,尽管GrapesJS嵌入在你的“测试商店”环境中,尽管使用了grapesjs-touch,这在复杂的网页应用中很常见。这通常源于CSS冲突或事件处理干扰,扰乱了GrapesJS的基于触摸的拖拽逻辑。 根本原因解释: 当GrapesJS独立运行时,它对DOM和CSS拥有完全控制权。然而,当嵌入时,尤其是在像“测试商店”这样的平台上(它很可能拥有自己的全局样式、脚本和事件监听器),这些可能会干扰GrapesJS预期的行为。特别是触...
#51542023年5月31日作者 jmtt894 个回答
GrapesJS版本 [X] 我确认使用最新版本GrapesJS 你用的是什么浏览器? ---- 可复制演示链接 https://codesandbox.io/p/sandbox/pensive-browser-mfhxp8 描述一下那个虫子 如何复现这个bug?创建Angular项目添加grapeJS依赖关系在TSCONFIG中包含"allowSyntheticDefaultImports": true(用于骨干网)为GrapeJS 创建包装组件 在项目中使用包装组件 预期的行为是什么? 渲染GrapeJS编辑器目前的行为如何? 构建时就坏了 行为准则 [X] 我同意遵守本项目的行为准则
marktamis
我把一些tsconfig设置从一个正在运行的vite gjs项目复制到我的stenciljs项目里,现在它运行正常了。我觉得你需要对你的 Angular TSCONFIG 做些调整,这样它就不会再抛出错误了 下面是我正在运行的 Stencilsjs TSCONFIG: 似乎正是这个功能让编译成为可能的原因
Deepakanandrao
“skipLibCheck”:true, “skipLibCheck”: true “”成功了。谢谢@marktamis 👍
artf
是的,在我找到该TS输出😞的修复之前,这里需要用“skipLibCheck”: true”
#51492023年5月29日作者 jchautreux4 个回答
GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 全部都没有,bug出在构建过程中 可复制演示链接 没必要 描述一下那个虫子 如何复现这个漏洞? 使用 NPM 安装 GrapesJS 以便在 TypeScript 项目中使用。 根据文档,要设置非命名插件的选项,我们必须定义如下 init: 预期的行为是什么? 项目建设顺利进行 目前的行为是什么? 该版本因以下错误而失败: A computed property name must be of type 'string', 'number', 'symbol', or 'any'. 供参考 我们可以使用命名插件,但这种做法是将“弃用”标记为...
artf
这似乎和 https://github.com/microsoft/TypeScript/issues/35945 有关 作为一个临时的变通方法,你可以先这样做: “''js pluginsOpts: { [myPlugin.toString()]: { customField: 'customValue' } }
artf
添加了辅助工具[这里](https://github.com/GrapesJS/grapesjs/commit/7d5d074e4d2735245541bfcbaad666e7bc37ea56)(我稍后也会更新文档中的使用情况)
#51482023年5月29日作者 jchautreux4 个回答
GrapesJS版本 [X] 我确认使用最新版本GrapesJS 你用的是什么浏览器? 全部都没有,bug出在构建过程中 可复制演示链接 没必要 描述一下那个虫子 如何复现这个漏洞?创建一个空白项目使用 NPM 安装GrapesJS和插件(本例中为预设网页,但对所有官方插件“有效”)使用import GrapeJS from 'grapesjs'加载GrapesJS 尝试用import plugin from 'grapesjs-preset-webpage';加载preset-webpage 预期的行为是什么? 项目正确构建,插件可用 目前的行为是什么? 项目未能建成,因为GrapeJS的 d.ts 已经改变 供参考 我本可以在...
artf
我决定以 https://github.com/GrapesJS/grapesjs/issues/5149 相关为由结束此事
jchautreux
这其实不是同一个问题,在#5149中,bug是关于如何在工具初始化时设置插件选项。 这里的漏洞与项目最后一次更新有关,该更新定义了一个新index.d.ts,但该新代码与之前插件使用方式不兼容
artf
在上一个版本中,'index.d.ts' 插件签名是一样的,所以我不确定你说的是什么变化 https://github.com/GrapesJS/grapesjs/blob/095466c8cc8034e54888d67beef4cb9296c823e4/index.d.ts#L50-L53 你能分享一下组装过程中的具体错误吗?
#51442023年5月25日作者 duclet3 个回答
GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 全部 可复制演示链接 没有 描述一下那个虫子 函数定义如下:https://github.com/GrapesJS/grapesjs/blob/v0.21.1/src/panels/index.ts#L82 需要以完整的面板实例本身或属性数组的形式给出数据。网站上的文档(https://grapesjs.com/docs/getting-started.html#panels-buttons)说,给出的参数只能是具有属性的对象(本质上是面板属性的部分)。 行为准则 [X] 我同意遵守本项目的行为准则
duclet
@artf - 你没读完整句子。你可以清楚地看到代码本身,它要求作为完整的“面板”对象给出的参数。在你的文档(如链接所示)中,你并没有给它完整的“面板”对象,而是给它一个带有这些项目的对象。你的例子如下: TypeScript 会抱怨的是,分配给它的对象既不是“面板”的实例,也不是对象属性的数组。
artf
网站上的文档说给出的参数只能是具有以下属性的对象 抱歉,你具体在哪里读到这句话?
GJS Helper
感谢你举报并提醒我们。确保类型定义与文档之间的清晰非常重要。 在查看了GrapesJS v0.21.1 源代码和文档后,似乎并没有差异,而是对 TypeScript 类型定义的潜在误解PanelManager.addPanel。 理解类型定义 PanelManager.addPanel方法(定义在src/panels/index.ts#L82(v0.21.1)中具有以下特征: 让我们来拆解一下“Panel”和“PanelProps”的含义: Panel:这指已经实例化的Gr...
#51412023年5月24日作者 rajevar3 个回答
GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome 版本 113.0.5672.63 可复制演示链接 https://jsfiddle.net/rajevar/zLs8q97f/4/ 描述一下那个虫子 这是针对本次讨论 https://github.com/GrapesJS/grapesjs/discussions/4759 如何复现这个漏洞? https://jsfiddle.net/rajevar/zLs8q97f/4/从块中选择Text CAT:Basic组件,拖曳到画布。HTML 步骤1之后的代码 <div class="text-primary" id="ixci">...
artf
@rajevar我无法用最新版本复现,你确定你用的是最新版本吗?
GJS Helper
你发现了GrapesJS中常见的与组件属性管理方式相关的同步问题,尤其是在通过样式管理器修改类,然后其他特征(如id或title)首次更新时。这种行为确实可能导致类意外丢失。 根本原因解释 问题的核心在于组件DOM元素上的实际class属性与组件内部attributes模型属性之间的暂时不同步。以下是分解: 初始组件状态: 当组件首次添加到画布时,其初始属性(包括class和id)会同时设置在DOM元素和组件的内部attributes模型属性上。 通过样式管理器进行类修改:...
#51352023年5月22日作者 duclet2 个回答
GrapesJS版本 [X] 我确认使用最新版本GrapesJS 你用的是什么浏览器? 全部 可复制演示链接 没有 描述一下那个虫子 如何复现这个漏洞?根据这里的定义:https://github.com/GrapesJS/grapesjs/blob/dev/src/stylemanager/index.ts#L304,你应该提供optionsPropertyProps的选项。然而,这里定义的PropertyProps:https://github.com/GrapesJS/grapesjs/blob/dev/src/stylemanager/model/Property.ts#L9,并不具备此类属性。这导致TS编译器发出了投诉。...
SachinPuthiyoth
看起来 StyleManagerConfig.sectors 中的类型定义没有变化 : https://github.com/GrapesJS/grapesjs/blob/5c890449a52f526bc480d6dc649ff5e01ec59140/src/stylemanager/config/config.ts#L8 我们是不是应该更新它,使用像 PropertyTypes 这样的功能: https://github.com/GrapesJS/grapesjs/bl...
GJS Helper
感谢您报告此问题。在查看GrapesJS源代码,特别是 dev 分支和最新的稳定版本(0.21.10时),发现 PropertyProps 接口确实包含了 options 属性。因此,StyleManager.addProperty 的类型定义应是正确的,允许你在 PropertyProps 对象中提供options而不会导致 TypeScript 编译器错误。 让我们澄清当前类型的定义: 1.PropertyProps 接口 PropertyProps接口定义于src/s...
#51342023年5月20日作者 yashvi20261 个回答
GrapesJS 版本 [x] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome v91 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 我想用一个命令触发rte,我找到了enableEditing但不起作用,有没有命令可以触发RTE吗 行为准则 [X] 我同意遵守本项目的行为准则
GJS Helper
你遇到的问题是, enableEditing 并不是一个用于程序触发富文本编辑器(RTE)的公开命令或方法 GrapesJS。 GrapesJS 中的 RTE 通常在选择并聚焦某个文本组件时会自动启用。不过,你可以通过创建自定义命令,直接与组件的 RTE 实例交互来实现程序激活。 根本原因 GrapesJS的 RichTextEditor 模块管理 RTE 实例。当选择文本组件时, GrapesJS 内部检查是否可编辑,然后启用其关联的 RTE。没有像 enableEdit...
#51312023年5月20日作者 sdimitrenco2 个回答
GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? 铬可复制演示链接 https://jsfiddle.net/sdimitrenco/rn8u4pc0/7/描述一下那个虫子 我不确定这是不是bug,但对我来说,这种行为看起来很奇怪 我有一个组件列表,包含组件ol和组件LI。 那个代码,代表阻挡 组件列表的模型 这个模型用于 ol 分量 以及锂分量的模型 如你所见,所有模型都包含类型和标签名称,内部 grapes 正常,但如果我尝试转换成json,比如JSON.stringify(this.grapesInstance.getComponents()),我有个带有标签名的json缺失所有字段,看...
artf
如果属性的值与默认定义相同,则跳过。这由 ['avoidDefaults'](https://github.com/GrapesJS/grapesjs/blob/e217dc75d463a84333ee4d9f37216f4f56c77024/src/editor/config/config.ts#L250-L256) 配置选项控制,强烈建议尽量保持 JSON 小。
GJS Helper
这种行为不是bug,而是GrapesJS内部的有意优化,利用了Backbone.js模型。当你将GrapesJS组件序列化为JSON时,通常会省略与该组件类型默认值相符的属性,以减少序列化数据的大小。 根本原因 默认值优化:GrapesJS组件是骨干模型。当调用模型的toJSON()方法(JSON.stringify隐式使用)时,通常只序列化那些与模型定义的defaults值不同的属性。这是保持数据负载精简的常见模式。 你的自定义组件(list,ol,li):你在defau...
#51122023年5月14日作者 putzwasser4 个回答
GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 版本 1.51.110 Chromium:113.0.5672.77(Offizieller 版本)(64位) 可复制演示链接 https://grapesjs.com/docs/getting-started.html#add-blocks 描述一下那个虫子 在Linux版Wayland(Arch Linux和Gnome)上,使用Brave时无法添加方块。拖放方块后它们在松开鼠标按钮后会消失,导致 GrapeJS 变得坏掉或没用。 我试过禁用Brave Shields和无痕模式,确保没有干扰JS。结果一样 如何复现这个漏洞?打开 grap...
artf
通过用同一个 Brave 版本(Mac 版)检查,拖放功能似乎正常,所以看起来不像是 GrapesJS 本身或浏览器的问题。 如果有其他人有类似经历或对这个问题有更多了解,请告诉我们。
gxanshu
我在Tauri上也遇到同样的问题。他们用的是WebGTK,拖放功能也没用
putzwasser
通过用同一个 Brave 版本(Mac 版)检查,拖放功能似乎正常,所以看起来不像是 GrapesJS 本身或浏览器的问题。 我觉得这不是一个有效的检查。你用Mac得到了完全不同的设置。我本以为这个问题可能和我具体的配置有关,但这并不意味着 grapesjs 方面没办法。 我不指望你去解决,因为这可能是个角落问题,资源有限。也许这甚至和在Wayland上使用Brave有关。