将水印固定在z-index上方,增加右键点击菜单,在上/下方添加页面,改进拖动指示器
- 修正器Layer:“以上”通行证现在使用zIndex 20,因此在字段和说明上涂上水印 - PdfCanvas:用旋转、删除、在上方/下方添加页面的右键上下文菜单 - PageThumbnailSidebar: 相同的上下文菜单; 拖曳指示器现在在缩略图( 不在外溢: 隐藏框内) 之间作为水平规则制成; 拖曳使用插...
在幽灵的直观位置 放置空地
使用活性. rect.current.xxx. 翻译( DragOverlay 鬼的客户端矩形)代替 匹配已翻译的矩形, 因此字段现在精确降落在用户的位置 释出.
拖放字段位置、浮动注释工具栏和 PDF 页面间隔
- 用@dnd-kit拖放替换点击到位置,用于所有签名、身份、 输入字段工具; 拖动鬼魂符合精确的视觉外观 空投字段( FieldDragPreview 使 Field Control 处于默认维度) - 每个 PDF 页面现在都是可用Droppable目标;投放坐标转换为 - 将左工具箱中的注解工具移出一个新的浮动注...
运行所有 esig API 调用 extratToApi () 以修正失败
所有10 esig 路由处理器都指向 ESIG SERVICE URL 解决 到一个不存在的 Kamowsesig 服务代理。 将每个处理器替换为 extendToApi () 所以请求流经标准的 API 网关 (APISERvice → ESigService)使用OTK认证. 此定义 “ 未能保存签名者” 错误和所...
在水印修改器中添加层位置选项( 在内容后/ 以上)
- 水印修改器获得一个“ layer” 字段 : “ 后面” 上方( 默认为“ 后面” ) - 修饰器Layer 现在取出一个"通过"道具("下"-"上") : - 通行证下方:制作页码、标签和有层='后面'的水印 - 上行:只制作有"上"层的水印 - PdfCanvas 制作两张修改器Layer的通行证——一张在外地...
添加水印修改器到签名工具箱
- 水印修正器类型:标志Type(完整/简单)、startPage、endPage、旋转(-180-180)、大小(10-90%的页面宽度)、不透明(2-60%)、固态相色相色相色相相相相色相相相相相相色相相相色相相相相色相相相相色相相相相相相相相色相相相相相相相相色相相相相相相色相相相相相相相相相相相相相相相相相相相...
用 LM/RM 旋转将标签修改器扩展至完整的 8 位置网格
- LabelModifier.position 现在使用ModifierPosition8(与Page Numbers相同的8个位置网格) - LM (中左):每行作为垂直药丸提供,并有写法: 垂直-rl + 旋转(180deg) ——文本读作 CCW (从下到上;行堆左到右行行行行行行行行行行行行行行行行行行行行行...
添加工具/ 修改选项卡到带有活画布覆盖的签名工具箱
- 将工具箱左侧栏分割为工具和修改器标签 - 修改器标签:拆分列表+设置面板(备选B) - 页码修改:起/出页,8-位置网格(TL/TM/TR/LM/RM/BL/BM/BR),格式预设+自定义 ({n}/{total}符号) - 标签修改器:开始/结束页,4个角网格,最多3个堆叠文本行 - 支持各种类型的多个实例 - ...
正确的旋转缩略图定位并恢复旋转变换
缩略图中的两个错误 : 1. 已替换为 " 高度: {${出处-}* 100{} (abs-的高度百分比) 定位元素——当含有块高时不可靠 padding-top)带有 “ spectRatio: String( baseAspect) ” , 因此浏览器会获取 高度从明确设置的宽度。 宽度现在为"BaseAspec...
Fix floating zoom control visibility and polish thumbnail placeholders
- Move floating zoom controls outside the scroll container and use position:absolute so they remain visible at all times regardless of scroll position; offs...
Page selection with animated glow border synced between canvas and thumbnail sidebar
- DesignTab holds selectedPageIndex as the single source of truth - Clicking any page in the main canvas selects it (onPageSelect) - Clicking a thumbnail select...
Move scroll ownership from PdfCanvas to canvasContainerRef
PdfCanvas root Box previously had overflow-auto + h-full, making it its own scroll container. This meant: - scrollbarGutter: stable on canvasContainerRef had no...
Fit to Width calculates actual container width instead of resetting to zoom 1
Reads **************** (which accounts for the stable scrollbar gutter) and the page's natural width via **************** then computes fitZoom = (availableWidt...
Replace all hardcoded purple with var(--color-primary) on Settings & Signers page
Signers icon, icon background, count badge, Add Signer buttons, Add First Signer button, empty-state illustration tint, add-another hover, and the ALL_OF_TYPE s...
Auto-select first signer, fix zoom control scrollbar gap, animate properties panel
- Toolbox auto-selects the first signer's UID when signers go from 0→1 - Canvas container uses scrollbar-gutter: stable so the sticky zoom/undo control mainta...
Reorder tabs, gate field tools by signer, redesign Settings & Signers tab
- Design is now the first tab; Settings & Signers is second - Toolbox shows "Add Signer" CTA (navigates to Settings) when no signers exist - Signature Tools, Id...
Render field controls as actual-looking form elements with signer color tinting
Each field type now renders a visual representation of the real control (text input, checkbox, toggle, dropdown, radio group, date picker, etc.) tinted with the...
Remove fixed height and scroll bars from field properties panel
The panel had two vertical scrollbars: 1. DesignTab wrapper had height: 200 + overflowY: auto 2. FieldPropertiesPanel root had height: 200 + overflow: hidden, ...
拖放设置 TotalPages 直至PDF dim 循环后防止 PDF.js 工人饱和
在一个50页的 PDF 上, 在 GetPage () 尺寸回路挂载前调用 setTotalPages 所有50个缩略图 Canvas组件 立即。 每个都回到PDF.js(服务器) 缩略图不是为模板生成的, 排出共享的50个并行任务 PDF.js 网络工人 — 压倒它并导致阴暗循环的GetPage()呼叫 无限期地停顿...
从安全服务到转换服务/DocsService的所有成像API线路
上传路线现在通过 Conversion Service URL 直接调用转换服务: - POST/api/成像/上载 →/api/转换/成像/上载 - POST/API/成像/平板/上载 ...
Add Thumbnails step to upload progress indicator, track generating_thumbnails WS stage
Prevent page stacking, fix thumbnail slivers, add server-side thumbnails with PDF.js fallback
- Add flexShrink: 0 to page divs in PdfCanvas so pages don't compress in flex column - Add flexShrink: 0 to thumbnail items in PageThumbnailSidebar for same rea...
Eager PDF 渲染、 自然尺度正常化、 无水平滚动
- PdfCanvas:用急切的全页渲染器替换截面观察员。 在开始设计标签时,基于观察员的方法是不可靠的 显示 : 无 —— 浏览器无法可靠地重燃交叉事件 当祖先从显示:无向可见过渡时。 - PdfCanvas: 添加自然尺度正常化(TARGET PAGE WIDTH PQQ-612) 转换服务公司的一些PDF使用非标...
Eliminate removeChild DOM conflict in PDF thumbnail rendering
Replace container.innerHTML + appendChild pattern in ThumbnailCanvas with a React-managed <canvas> ref. The old approach cleared React-owned DOM nodes directly,...
Revert proxy routes to OTK auth, remove unused esigProxy helper
OTK is the correct auth mechanism — the prior session-header approach bypassed the established security pattern. All esig proxy routes now use generateOTK from ...
对 EsigService 代理路由使用直接会话头而不是OTK
从 Redis 在 Next.js 读取 *** 会话,并通过 orgId/ memberId 作为信任 通过内部K8s DNS向ESigService发送信头. 删除 OTK 依赖 .
在编辑器加载时使用内端点查找或创建模板
创建页面通过 imgId 在 URL 中 。 编辑页面现在称为 输入查找或创建 EsignTemplate 的终点,然后使用 返回UUID用于设计操作和版本历史.
添加带有设计画布、签名和版本的电子签名模板编辑器
完全重写/doc/ sign/edit 页面,并带有标签界面(Settings & Signers, 设计), PDF.js 有可拖放字段覆盖的画布,注释工具, 签名器 管理、 页面缩略图侧边栏、 版本历史和撤销/重写 。 包括 Zustand商店,API代理线路通向ESigService,以及13个新组件.
校正访问级别 API 的后端和前端之间的字段名称映射
地图后端安全级Id-accessLevel,是OrganizationOwner-isOwner,成员Type-isTeam Member在API路由中. 修正右侧检查以使用 EDIT member ACCESS LEVEL 而不是 MANAGE MEmber SECURITY 。 固定所有者切换,通过单独的API呼叫...
删除 JSON 为订阅计划 ID 阵列解析工作
后端现在返回合适的数组而不是 JSON 字符串,所以 在附加、捆绑、 并推广电网电池渲染器.
在成员设置中添加访问级别编辑器, 并使用 org 专用标签替换
重命名 CLIENT MEMBER 和 InterNAL TEAM MEMBER 在图像访问级别Type.ts中带有{var}占位符 。 将访问级别部分添加到角色PermissionsTab中,由 EDIT MEMEBER ACCESS LEVEL 右上下级规则进行编辑控制. 更新 DocManager 访问级别标签,...
Next.js 16.2.3, TypeScript 6.0, 节点 24, 反应 19.2
- 下一部.js 16.0.10 → 16.2.3, TypeScript 5.8 → 6.0.2,节点 20 → 24,反应 19.2.3 → 19.2.5 - 将ESLint从.eslintrc.json改为平面配置(eslint.config.mjs) - 更新 TS 6 的 tsconfig : 目标 es20...
重新设计支持页面和webinar向导以匹配账户页面布局
两页现在都使用同样的带有嵌入式标签的梯度英雄头 导航,匹配/账户页面模式。 网点排程 向导在页眉标签和全宽中使用编号的步数指示器 内容中包含每一步的企业级卡布局.
正确转发多段格式数据并设定路由处理器体积限制
- 恢复分析表格数据并重建转发(修正) 错误的 Stream 从原始数组缓冲转发中排除) - 添加路由 HandlerBodySizeLimit: 500mb 到下一个.config.mjs 实验 在路由处理器中允许大文件上传的配置
添加支持下拉, 将 Webinar 排程提取到专用页面
支持导航按钮现在有一个下放箭头和有两节的波波弗: "在线支持"(Contact Support, View Active Tickets)和"训练" (请韦比纳尔,我的网上研讨会) Webinar 调度从 MyWebinarsTab 中的对话框到独立的/支持/计划表-webinar页面 带有相继向导标签(选择类型、选...
将上传正文直接流出以避免下一条.js 10MB 体型限制
- 将请求读取为含有内容类型的数组缓冲和前方原始字节 标题而不是解析FormData(它触发了Next.js 身体限制) - 添加服务器动作正文 - 添加最大期限:300用于长期转换上传
通过WebSocket进行实时转换的进展,有双重百分比
- 添加用户ConconferenceWebSocket hook,支持成员和模板主题 - 在上传前创建连接 WebSocket的页面, 显示活转换 从具有双条的服务器获取的进展(当前步骤% + 总体%) - 阶段流量: 上传(XHR%) 转换(WebSocket%) 完成 - 立即编辑转换为 PDF (同步转换) 的...
通过 RKE2 DNS 直接调用安全服务, 修正散列计算, 添加已上传进度
- 所有模板 API 路由 现在直接通过内部调用安全服务 K8s DNS 而不是通过 APIService 代理 - 使用从文件Hashing.ts(SHA3-256)中计算Blake3/computeSha3256代替 导致与服务器的散列不匹配的 Web Crypto SHA-256 - 将不确定的进展栏替换为已显示...