上記層のz-indexに透かしを修正し、ページ右クリックメニューを追加し、ページを上/下に追加し、ドラッグインジケータを改善
- ModifierLayer: 'above' パスは zIndex 20 を使用しており、フィールドとアノテーションの上部に透かしがレンダリングされます。 - PdfCanvas: コンテキストメニューを右クリックし、回転、削除、ページを上/下に追加する - PageThumbnailSidebar: 同じコンテキ...
ゴーストの正確な視覚的な位置でフィールドをドロップする
代わりにactive.rect.current.translated(DragOverlay ghostのクライアントのrect)を使用してください 翻訳された rect にマッチするので、フィールドはユーザがどこにいるかを正確に埋めます リリースしました.
ドラッグアンドドロップフィールド配置、アノテーションツールバーのフローティング、PDFページスペーシング
- すべてのシグネチャ、アイデンティティの @dnd-kit ドラッグアンドドロップでクリック-to-place を置換します。 フィールドツールを入力すると、ゴーストをドラッグすると、正確な視覚的な外観にマッチします。 フィールドをドロップ (FieldDragPreview は、デフォルトでフィールドコントロールを...
ForwardToApi() を介してすべての esig API 呼び出しをルートして、保存の失敗を修正
Esig の 10 個のエスイグのルート ハンドラが ESIG SERVICE URL を指していました。 非既存のkamowsesigサービスプロキシへ。 すべてのハンドラを置換する ForwardToApi() では、標準 API ゲートウェイを介したリクエストが流れます。 (APIService → ESigSe...
レイヤー位置オプションを透かし修飾子に追加します(コンテンツ上/上)
- WatermarkModifier は 'layer' フィールドを取得: 'behind' | 'above' (デフォルトは 'behind' ) - ModifierLayer は 'pass' プロパティー ('below' | 'above') を取得します。 - 下のパス: レイヤー = 'behind...
ツールボックスにウォーターマーク修飾子を追加
- WatermarkModifierタイプ:ロゴタイプ(フル/シンプル)、スタートページ、エンドページ、回転(-180〜180)、サイズ(ページ幅の10〜90%)、オパシティ(2〜60%)、ソリッドカラートグル、カラー(六角) - フルロゴ、-45°回転、50%のサイズ、15%の不透明度へのデフォルト - Modif...
LM/RM の回転と全 8 位置の格子にラベルの修飾子を拡張して下さい
- LabelModifier.position は ModifierPosition8 (ページ番号の 8 位置グリッド) を使用します。 - LM(Middle Left):各行は、書き込みモードの縦の丸薬としてレンダリング:縦のrl + 回転(180deg) — テキストはCCW(ボトムツートップ)を読み込みます...
ツール/修飾子タブを追加して、ライブキャンバスオーバーレイでツールボックスを割り当てる
- ツールと修飾タブにツールボックス左サイドバーを分割 - 修正タブ:分割リスト+設定パネル(オプションB) - ページ番号の修飾子: 開始/終了ページ、8位置グリッド(TL/TM/TR/LM/BL/BM/BR)、フォーマットプリセット+カスタム({n}/{total}トークン) - ラベルの修飾子: 開始/終わりのペ...
正しい回転サムネイル位置決めと復元回転変換
ThumbnailCanvasの2つのバグ: 1. 高さを置き換える:\${displayAspect * 100}%\`(absのパーセンテージの高さ) 配置された要素 — ブロックの高さを含むときの信頼できない `aspectRatio: String(baseAspect)` でパディングトップ) なので、ブラ...
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, ...
PDF.js のワーカーの飽和を防止するために PDF ダイム ループの後に setTotalPage をディーファーします
50ページ PDF では、getPage() 次元ループマウントの前に setTotalPages を呼び出す 50 個の ThumbnailCanvas コンポーネントをすぐに使用できます。 それぞれがPDF.js(サーバー)に戻ります thumbnails はテンプレートでは生成されません)、共有中の 50 個の同...
SecurityService から ConversionService/DocsService へすべてのイメージング API ルートを移行
ルートをアップロードすると、ConVERSION SERVICE URL からコンバージョンサービスを直接呼び出します。 - POST /api/imaging/upload → /api/conversion/imaging/upload - POST /api/imaging/templates/upload → ...
ページの積み重ねを防ぎ、サムネイルのスライバーを固定し、PDF.jsフォールバックでサーバーサイドのサムネイルを追加します
- flexShrinkを追加する: 0 から PdfCanvas 内のページ divs へページ flex カラムで圧縮しない - flexShrink: 0 を PageThumbnailSidebar に同じ理由でサムネイル項目に追加する - ThumbnailCanvasの自然なスケールを修理して下さい従ってサ...
Eager PDFレンダリング、自然スケールの正規化、水平スクロールなし
- PdfCanvas: IntersectionObserverをエイジャーレンダーオールページで置き換えます。 デザインタブが始まると、オブザーバーベースのアプローチは信頼できませんでした display:none — ブラウザは確実に交差点イベントを直火しない ancestor が display:none から...
PDFのサムネイルレンダリングでremoideChild DOMの競合を排除
ThumbnailCanvasでcontainer.innerHTML + appendChildパターンを置き換える React マネージド <canvas> ref を使って。 古いアプローチはReact-ownedをクリアしました DOM ノードは直接、React の調整を試みたときに失敗させる 今従ったTypo...
プロキシ ルートを OTK auth に変換し、未使用の esigProxy ヘルパーを削除
OTKは正しいauthのメカニズムです。セッション前のアプローチ 確立されたセキュリティパターンをバイパスしました。 すべての esig プロキシ ルート 今使用 apiProxy.ts から apiProxy.ts を再び生成します.
OTK の代わりに、ESigService プロキシ ルートの直接セッション ヘッダーを使用する
Next.js で Redis のセッションを読んで、 orgId/memberId を信頼できるものにします。 内部のK8s DNS経由でESigServiceにヘッダします。 OTKの依存性を削除します.
エディタのロードで imgId によるテンプレートの検索や作成に init エンドポイントを使用する
作成ページは URL で imgId を渡します。 編集ページがコールされました ESignTemplate を見つけるか、または作成する init エンドポイントは、 設計操作とバージョン履歴のUUIDを返します.
E-signatureテンプレートエディタをデザインキャンバス、サイダー、バージョンアップに追加
/doc/sign/editページをタブ付きインターフェイス(Settings & Signers)で完全に書き直し、 デザイン)、ドラッグ可能なフィールドオーバーレイ、アノテーションツール、署名器を備えたPDF.jsキャンバス 管理、ページサムネイルのサイドバー、バージョン履歴、およびundo/redo。 パッケージ...
アクセスレベルの API のバックエンドとフロントエンド間の正しいフィールド名マッピング
バックエンドのセキュリティレベルId→accessLevel、isOrganizationOwner→isOwner、API ルートのmemberType→isTeamMemberをマップします。 MANAGE MEMBER SECURITY の代わりに EDIT MEMBER ACCESS LEVEL を使用するよう...
サブスクリプションプランID配列のJSON解析の回避
バックエンドは JSON 文字列の代わりに適切な配列を返すので、 try/parse/catch フォールバックロジックは、アドオン、バンドル、 そして昇進の格子細胞のレンダー.
アクセスレベルエディタを org 固有のラベル置換でメンバー設定に追加
ImageAccessLevelType.ts の CLIENT→MEMBER と INTERNAL→TEAM MEMBER を {var} のプレースホルダにリネームします。 EDIT MEMBER ACCESS LEVEL でゲートされた編集制御でロールスパーミッションタブにアクセスレベルセクションを追加し、階層の...
次.js 16.2.3、TypeScript 6.0、Node 24, React 19.2
- Next.js 16.0.10 → 16.2.3、TypeScript 5.8 → 6.0.2、Node 20 → 24, React 19.2.3 → 19.2.5 - .eslintrc.json からフラットコンフィグ (eslint.config.mjs) へ ESLint を移行 - TS 6 用の ts...
アカウントページレイアウトに合わせてサポートページとウェビナーウィザードを再設計
両方のページは、埋め込まれたタブで同じグラデーションヒーローヘッダーを使用します ナビゲーション、/accountページパターンをマッチングします。 webinarスケジューリング wizard はヘッダタブと全幅の数値化されたステップインジケータを使用します。 各ステップのためのエンタープライズグレードのカードレイア...
適切にマルチパートFormDataを転送し、ルートハンドラのボディサイズ制限を設定
- フォームデータを解析し、転送のために再構築する(修正) MalformedStreamException(生配列バッファ転送) - ルートを追加するHandlerBodySizeLimit:500mb to next.config.mjs 実験 config は、大規模なファイルアップロードをルート ハンドラで許可...
セクションでサポートドロップダウンを追加し、ウェビナースケジューリングを専用ページに追加
Navボタンをサポートし、ドロップダウン矢印とポップアップを2つのセクションで持っています。 「オンラインサポート」(コンタクトサポート、アクティブチケットの表示)と「トレーニング」 (Webinarリクエスト、Webinarsのスケジュール) ウェビナースケジューリングは、 MyWebinarsTab のダイアログを...
Next.js 10MB ボディサイズ制限を避けるために直接アップロードボディをストリーミング
- リクエストとして読みます arrayBuffer コンテンツタイプで生のバイトを転送する FormData をパースする代わりにヘッダ(Next.js ボディの制限をトリガーする) - Add serverActions bodySizeLimit: 500mb で next.config.mjs - maxDur...
デュアルパーセンテージでWebSocketによるリアルタイム変換の進捗
- メンバーとテンプレートのトピックの両方をサポートする useConversionWebSocket ホックを追加します。 - ページを作成すると、アップロード前にWebSocketを接続し、ライブ変換が表示されます デュアルバー(現在のステップ% +全体的な%)でサーバーからの進捗 - ステージフロー:ハッシュ→ア...
RKE2 DNS 経由で直接 SecurityService を呼び出し、ハッシュの計算を修正し、ステージアップロードの進捗を追加
- すべてのテンプレート API は、内部で SecurityService を直接呼び出します。 APIServiceによるプロキシではなくK8s DNS - fileHashing.ts (SHA3-256) から computeBlake3/computeSha3256 を使用して下さい サーバとハッシュの不一致...