@guodun/antdv 1.4.2 → 1.4.4

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.
Files changed (59) hide show
  1. package/dist/es/components/contract-signing-location/src/ContractSigningLocationCanvas.vue.mjs +304 -293
  2. package/dist/es/components/contract-signing-location/src/ContractSigningTemplatePage.vue.mjs +66 -13
  3. package/dist/es/components/contract-signing-location/src/constants.mjs +27 -17
  4. package/dist/es/components/contract-signing-location/src/coordinates.mjs +23 -23
  5. package/dist/es/components/contract-signing-location/src/location-rules.mjs +20 -10
  6. package/dist/es/components/contract-signing-location/src/page-layout.mjs +12 -9
  7. package/dist/es/components/contract-signing-location/src/template-source.mjs +52 -34
  8. package/dist/es/components/contract-signing-location/style/index.css +1 -1
  9. package/dist/es/components/index.mjs +1 -1
  10. package/dist/es/components/pro-contract-template-designer/index.mjs +1 -1
  11. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateDesignerWorkspaceHeader.vue.mjs +186 -148
  12. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePreviewPage.vue.mjs +4 -4
  13. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateTextBubbleMenu.mjs +5 -0
  14. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateTextBubbleMenu.vue.mjs +179 -0
  15. package/dist/es/components/pro-contract-template-designer/src/DesignerPage.vue.mjs +149 -126
  16. package/dist/es/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.mjs +1229 -1059
  17. package/dist/es/components/pro-contract-template-designer/src/composables/use-template-designer.mjs +34 -34
  18. package/dist/es/components/pro-contract-template-designer/src/utils/page-decorations.mjs +17 -17
  19. package/dist/es/components/pro-contract-template-designer/src/utils/signing-placement.mjs +14 -14
  20. package/dist/es/components/pro-contract-template-designer/src/utils/template-renderer.mjs +89 -89
  21. package/dist/es/components/pro-contract-template-designer/style/index.css +1 -1
  22. package/dist/es/index.mjs +25 -25
  23. package/dist/lib/components/contract-signing-location/src/ContractSigningLocationCanvas.vue.cjs +1 -1
  24. package/dist/lib/components/contract-signing-location/src/ContractSigningTemplatePage.vue.cjs +1 -1
  25. package/dist/lib/components/contract-signing-location/src/constants.cjs +1 -1
  26. package/dist/lib/components/contract-signing-location/src/coordinates.cjs +1 -1
  27. package/dist/lib/components/contract-signing-location/src/location-rules.cjs +1 -1
  28. package/dist/lib/components/contract-signing-location/src/page-layout.cjs +1 -1
  29. package/dist/lib/components/contract-signing-location/src/template-source.cjs +1 -1
  30. package/dist/lib/components/contract-signing-location/style/index.css +1 -1
  31. package/dist/lib/components/index.cjs +1 -1
  32. package/dist/lib/components/pro-contract-template-designer/index.cjs +1 -1
  33. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateDesignerWorkspaceHeader.vue.cjs +1 -1
  34. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePreviewPage.vue.cjs +1 -1
  35. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateTextBubbleMenu.cjs +1 -0
  36. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateTextBubbleMenu.vue.cjs +1 -0
  37. package/dist/lib/components/pro-contract-template-designer/src/DesignerPage.vue.cjs +2 -2
  38. package/dist/lib/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.cjs +1 -1
  39. package/dist/lib/components/pro-contract-template-designer/src/composables/use-template-designer.cjs +3 -3
  40. package/dist/lib/components/pro-contract-template-designer/src/utils/page-decorations.cjs +1 -1
  41. package/dist/lib/components/pro-contract-template-designer/src/utils/signing-placement.cjs +1 -1
  42. package/dist/lib/components/pro-contract-template-designer/src/utils/template-renderer.cjs +2 -2
  43. package/dist/lib/components/pro-contract-template-designer/style/index.css +1 -1
  44. package/dist/lib/index.cjs +1 -1
  45. package/dist/theme/contract-signing-location.css +1 -1
  46. package/dist/theme/icon.css +1 -1
  47. package/dist/theme/index.css +1 -1
  48. package/dist/types/components/contract-signing-location/src/ContractSigningTemplatePage.vue.d.ts +3 -1
  49. package/dist/types/components/contract-signing-location/src/constants.d.ts +18 -0
  50. package/dist/types/components/contract-signing-location/src/coordinates.d.ts +8 -2
  51. package/dist/types/components/contract-signing-location/src/page-layout.d.ts +2 -2
  52. package/dist/types/components/contract-signing-location/src/template-source.d.ts +19 -0
  53. package/dist/types/components/contract-signing-location/src/types.d.ts +3 -0
  54. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateDesignerWorkspaceHeader.vue.d.ts +10 -0
  55. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateTextBubbleMenu.vue.d.ts +43 -0
  56. package/dist/types/components/pro-contract-template-designer/src/DesignerPage.vue.d.ts +22 -0
  57. package/dist/types/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.d.ts +90 -0
  58. package/dist/types/components/pro-contract-template-designer/src/utils/context-menu-viewport.d.ts +3 -0
  59. package/package.json +5 -3
package/dist/es/index.mjs CHANGED
@@ -53,28 +53,28 @@ import ge from "./components/pro-selector-group/index.mjs";
53
53
  import _e from "./components/pro-dynamic-tags/index.mjs";
54
54
  import { DRAWER_SIZE_WIDTH as ve } from "./components/pro-drawer/src/types.mjs";
55
55
  import ye from "./components/pro-drawer/index.mjs";
56
- import { CONTRACT_SIGNING_AUTO_SCROLL_EDGE_PX as be, CONTRACT_SIGNING_MIN_PLACEMENT_SIZE as xe, CONTRACT_SIGNING_PLACEMENT_LABELS as Se, CONTRACT_SIGNING_PLACEMENT_MIME as Ce, CONTRACT_SIGNING_PREVIEW_CONCURRENCY as we, CONTRACT_SIGNING_PX_PER_MM as Te, CONTRACT_SIGNING_SEAL_MAX_SIZE as Ee, CONTRACT_SIGNING_SEAL_MIN_SIZE as De, CONTRACT_SIGNING_SEAL_TYPE_OPTIONS as Q, CONTRACT_SIGNING_SEAL_TYPE_PRESETS as Oe, CONTRACT_SIGNING_SIZE_PROFILES as ke, CONTRACT_SIGNING_VISIBLE_PAGES_DEBOUNCE_MS as Ae, millimetersToContractSigningCssPixels as je, millimetersToContractSigningPixels as Me, resolveContractSigningSealSizeInCssPixels as Ne, resolveContractSigningSealSizeInPixels as Pe, resolveContractSigningSealTypeOption as Fe } from "./components/contract-signing-location/src/constants.mjs";
57
- import { CONTRACT_SIGNING_RENDER_ORIGIN_OFFSET as Ie, CONTRACT_SIGNING_SNAP_THRESHOLD_PX as Le, canResizeContractSigningPlacement as Re, clampContractSigningPlacement as ze, clampContractSigningZoom as Be, displayPointToContractPoint as Ve, getContractSigningPlacementDistances as He, getContractSigningPlacementSize as Ue, getContractSigningRuleGeometry as We, moveContractSigningPlacementByDisplayDelta as Ge, normalizeContractSigningCoordinateDimension as Ke, normalizeContractSigningCoordinateScale as qe, resizeContractSigningSealGeometry as Je, resolveContractSigningSealSizeLimit as Ye, resolveContractSigningSizeProfile as Xe, snapContractSigningPlacement as Ze } from "./components/contract-signing-location/src/coordinates.mjs";
58
- import { isContractTemplateFieldType as Qe } from "./components/pro-contract-template-designer/src/types.mjs";
59
- import { ContractTemplateLocationRuleBuildError as $e, SIGNING_PLACEMENT_DEFAULT_SIZES as et, SIGNING_PLACEMENT_MIME as tt, SIGNING_PLACEMENT_MIN_SIZE as nt, SIGNING_PLACEMENT_TYPE_LABELS as rt, applySigningPlacementPatch as it, buildContractLocationRules as at, buildSigningPlacementLocationRules as ot, canMutateSigningPlacements as st, clampSigningPlacement as ct, createSigningPlacement as lt, getSigningPlacementDefaultSize as ut, getSigningPlacementTypeLabel as dt, moveSigningPlacementByDisplayDelta as ft, normalizeSigningPlacements as pt, parseSigningPlacementDragPayload as mt, resizeSigningPlacement as ht, resolveSigningPlacementToolItems as gt, scaleSigningPlacementToPage as _t, serializeSigningPlacementDragPayload as vt, validateSigningPlacements as yt } from "./components/pro-contract-template-designer/src/utils/signing-placement.mjs";
60
- import { CONTRACT_TEXT_STYLE_PRESETS as bt, CONTRACT_TEXT_STYLE_PRESET_COMMANDS as xt, DEFAULT_CONTRACT_FONT_FAMILY as St, DEFAULT_FONT_FAMILY_OPTIONS as Ct, DEFAULT_FONT_SIZE_PRESETS as wt, DEFAULT_TEXT_ALIGN_OPTIONS as Tt, getContractTextStylePreset as Et, normalizeFontFamilyValue as Dt, resolveContractTextStylePresetCommands as Ot, resolveFontFamilyOptions as kt } from "./components/pro-contract-template-designer/src/constants.mjs";
61
- import { CONTRACT_TEMPLATE_RENDERER_VERSION as At, CONTRACT_TEMPLATE_RESERVED_VARIABLE_KEYS as jt, CONTRACT_TEMPLATE_STYLE_VERSION as Mt, CONTRACT_TEMPLATE_VARIABLE_KEY_PATTERN as Nt, ContractTemplatePageDecorationValidationError as Pt, DEFAULT_FIELD_STYLE as Ft, DEFAULT_FIELD_TYPES as It, DEFAULT_MULTILINE_LINE_HEIGHT as Lt, DEFAULT_MULTILINE_ROWS as Rt, DEFAULT_PAGE_SIZE as zt, PAGE_SIZE_OPTIONS as Bt, buildTemplateExpressionHtml as Vt, buildTemplateHtml as Ht, buildTemplatePreviewHtml as Ut, buildTemplatePreviewPages as Wt, cloneTemplateValue as Gt, collectTemplateLocationRuleExportErrors as Kt, collectTemplateValueVariableKeys as qt, collectTemplateVariableKeys as Jt, constrainTemplatePageSizes as Yt, createBlankPage as Xt, createBlankTemplate as Zt, createDefaultPage as Qt, createDefaultTemplate as $t, createDesignerId as en, createTemplateVariable as tn, exportTemplateValue as nn, findPageSizeOption as $, getFieldOption as rn, getPageSizeKey as an, getPageSizeOption as on, inferPageFormat as sn, normalizeContractTemplateMaxPages as cn, normalizePageSizeOptions as ln, normalizeTemplateValue as un, resolvePageSize as dn, splitPageContentByMeasurements as fn, syncTemplateVariablesWithPages as pn, validateContractTemplateVariableKey as mn, validateTemplateValue as hn } from "./components/pro-contract-template-designer/src/composables/use-template-designer.mjs";
62
- import { isSafeContractImageUrl as gn } from "./components/pro-contract-template-designer/src/utils/image-url.mjs";
63
- import { buildInitialRenderValues as _n, buildTemplateRenderHtml as vn, buildTemplateRenderPages as yn, isEmptyRenderValue as bn, normalizeRenderValues as xn, resolveTemplateRenderSubmitErrors as Sn, sanitizeContractRendererHtml as Cn, validateTemplateRenderStructure as wn, validateTemplateRenderValues as Tn } from "./components/pro-contract-template-designer/src/utils/template-renderer.mjs";
64
- import { buildContractSigningTemplateRenderPages as En, getContractSigningTemplateDisplayError as Dn, isContractSigningTemplateFile as On, isContractSigningTemplateSource as kn, validateContractSigningTemplateFile as An } from "./components/contract-signing-location/src/template-source.mjs";
65
- import { ContractSigningLocationBuildError as jn, buildContractSigningLocationOutput as Mn, buildContractSigningLocationRules as Nn, cloneContractSigningLocationValue as Pn, createContractSigningLocationValue as Fn, createContractSigningPlacement as In, findContractSigningPage as Ln, getContractSigningHomePage as Rn, isContractSigningPageUsable as zn, normalizeContractSigningLocationValue as Bn, normalizeContractSigningProviderValue as Vn, patchContractSigningPlacement as Hn, resolveContractSigningPreviewPageSize as Un, validateContractSigningLocationValue as Wn } from "./components/contract-signing-location/src/location-rules.mjs";
66
- import { CONTRACT_SIGNING_FALLBACK_PAGE_SIZE as Gn, CONTRACT_SIGNING_PAGE_GAP as Kn, CONTRACT_SIGNING_VIRTUAL_BUFFER_PAGES as qn, buildPageLayouts as Jn, contentPointToPagePoint as Yn, findPageAtOffset as Xn, getContractSigningAutoScrollDelta as Zn, getPageLayoutScrollTop as Qn, getPageLayoutsContentSize as $n, getVisibleRange as er } from "./components/contract-signing-location/src/page-layout.mjs";
67
- import { formatContractSigningDate as tr, getContractSigningDateDataUrl as nr, getContractSigningDateSvgDataUrl as rr, getContractSigningPlacementDataUrl as ir, getContractSigningPlacementVisual as ar, getContractSigningSealDataUrl as or, getContractSigningSealLabel as sr, getContractSigningSealSvgDataUrl as cr, getContractSigningSignatureDataUrl as lr, getContractSigningSignaturePngDataUrl as ur, getContractSigningSignatureSvgDataUrl as dr, isContractSigningVisualDataUrl as fr, isSafeContractSigningVisualDataUrl as pr, resolveContractSigningSealLabel as mr, toContractSigningSvgDataUrl as hr } from "./components/contract-signing-location/src/signing-visuals.mjs";
68
- import gr from "./components/contract-signing-location/index.mjs";
69
- import { DEFAULT_CONTRACT_IMAGE_COMPRESSION as _r, MAX_CONTRACT_IMAGE_BYTES as vr, MAX_CONTRACT_IMAGE_DIMENSION as yr, MIN_CONTRACT_IMAGE_DIMENSION as br, compressContractImage as xr, normalizeContractImageCompression as Sr, normalizeContractImageDimension as Cr, processContractImageFile as wr, readContractImageFileAsDataUrl as Tr, resolveContractImageResizeDimensions as Er } from "./components/pro-contract-template-designer/src/utils/content-image.mjs";
70
- import { CONTRACT_TEMPLATE_DRAFT_CACHE_VERSION as Dr, CONTRACT_TEMPLATE_FILES_DRAFT_CACHE_VERSION as Or, DEFAULT_DRAFT_CACHE_INTERVAL as kr, DEFAULT_DRAFT_CACHE_KEY as Ar, DEFAULT_DRAFT_CACHE_MAX_BYTES as jr, clearTemplateDraftCache as Mr, createDraftCacheStatus as Nr, estimateDraftCacheBytes as Pr, formatDraftCacheSavedAt as Fr, getBrowserDraftCacheStorage as Ir, isBlankTemplateDraftValue as Lr, isBlankTemplateFilesDraftValue as Rr, loadTemplateDraftCache as zr, loadTemplateFilesDraftCache as Br, saveTemplateDraftCache as Vr, saveTemplateFilesDraftCache as Hr } from "./components/pro-contract-template-designer/src/composables/use-template-draft-cache.mjs";
71
- import { cloneContractTemplateFiles as Ur, constrainContractTemplateFiles as Wr, createContractTemplateFile as Gr, exportContractTemplateFiles as Kr, moveContractTemplateFile as qr, normalizeContractTemplateFiles as Jr, removeContractTemplateFile as Yr, renameContractTemplateFile as Xr, replaceContractTemplateFile as Zr, resolveContractTemplateActiveFileId as Qr } from "./components/pro-contract-template-designer/src/composables/use-template-files.mjs";
72
- import $r, { GdAntProContractTemplateRenderer as ei } from "./components/pro-contract-template-designer/index.mjs";
73
- import { CONTRACT_SIGNING_FLOW_ACTION_LABELS as ti, CONTRACT_SIGNING_FLOW_IDENTITY_OPTIONS as ni, CONTRACT_SIGNING_FLOW_MAX_ZOOM as ri, CONTRACT_SIGNING_FLOW_MIN_ZOOM as ii, CONTRACT_SIGNING_FLOW_SEAL_TYPES as ai, CONTRACT_SIGNING_FLOW_SIGN_ACTIONS as oi, CONTRACT_SIGNING_FLOW_ZOOM_STEP as si, isContractSigningFlowInteractiveTarget as ci, normalizeContractSigningFlowZoom as li, resolveContractSigningFlowZoomShortcut as ui, resolveContractSigningFlowZoomShortcutForTarget as di } from "./components/pro-contract-signing-flow/src/constants.mjs";
74
- import { buildConnectList as fi, createDefaultSignRule as pi, createEndNode as mi, createId as hi, createInitialFlow as gi, createSignNode as _i, createStartNode as vi, normalizeContractSigningFlow as yi, normalizeSignRule as bi, useContractSigningFlow as xi, validateContractSigningFlow as Si } from "./components/pro-contract-signing-flow/src/composables/use-contract-signing-flow.mjs";
75
- import Ci from "./components/pro-contract-signing-flow/index.mjs";
76
- import { useContractTemplateAgent as wi } from "./components/pro-contract-template-agent/src/composables/use-contract-template-agent.mjs";
77
- import { adaptContractTemplateAgentSpec as Ti } from "./components/pro-contract-template-agent/src/utils/contract-template-agent-adapter.mjs";
78
- import Ei, { GdAntProContractTemplateAgentPanel as Di, GdAntProContractTemplateAgentPreview as Oi } from "./components/pro-contract-template-agent/index.mjs";
79
- import { setupAppConfig as ki, useBasicAppConfig as Ai } from "./components/hooks/use-basic-app-config.mjs";
80
- export { be as CONTRACT_SIGNING_AUTO_SCROLL_EDGE_PX, Gn as CONTRACT_SIGNING_FALLBACK_PAGE_SIZE, ti as CONTRACT_SIGNING_FLOW_ACTION_LABELS, ni as CONTRACT_SIGNING_FLOW_IDENTITY_OPTIONS, ri as CONTRACT_SIGNING_FLOW_MAX_ZOOM, ii as CONTRACT_SIGNING_FLOW_MIN_ZOOM, ai as CONTRACT_SIGNING_FLOW_SEAL_TYPES, oi as CONTRACT_SIGNING_FLOW_SIGN_ACTIONS, si as CONTRACT_SIGNING_FLOW_ZOOM_STEP, xe as CONTRACT_SIGNING_MIN_PLACEMENT_SIZE, Kn as CONTRACT_SIGNING_PAGE_GAP, Se as CONTRACT_SIGNING_PLACEMENT_LABELS, Ce as CONTRACT_SIGNING_PLACEMENT_MIME, we as CONTRACT_SIGNING_PREVIEW_CONCURRENCY, Te as CONTRACT_SIGNING_PX_PER_MM, Ie as CONTRACT_SIGNING_RENDER_ORIGIN_OFFSET, Ee as CONTRACT_SIGNING_SEAL_MAX_SIZE, De as CONTRACT_SIGNING_SEAL_MIN_SIZE, Q as CONTRACT_SIGNING_SEAL_TYPE_OPTIONS, Oe as CONTRACT_SIGNING_SEAL_TYPE_PRESETS, ke as CONTRACT_SIGNING_SIZE_PROFILES, Le as CONTRACT_SIGNING_SNAP_THRESHOLD_PX, qn as CONTRACT_SIGNING_VIRTUAL_BUFFER_PAGES, Ae as CONTRACT_SIGNING_VISIBLE_PAGES_DEBOUNCE_MS, Dr as CONTRACT_TEMPLATE_DRAFT_CACHE_VERSION, Or as CONTRACT_TEMPLATE_FILES_DRAFT_CACHE_VERSION, At as CONTRACT_TEMPLATE_RENDERER_VERSION, jt as CONTRACT_TEMPLATE_RESERVED_VARIABLE_KEYS, Mt as CONTRACT_TEMPLATE_STYLE_VERSION, Nt as CONTRACT_TEMPLATE_VARIABLE_KEY_PATTERN, bt as CONTRACT_TEXT_STYLE_PRESETS, xt as CONTRACT_TEXT_STYLE_PRESET_COMMANDS, jn as ContractSigningLocationBuildError, $e as ContractTemplateLocationRuleBuildError, Pt as ContractTemplatePageDecorationValidationError, l as CoverScrollbarProps, St as DEFAULT_CONTRACT_FONT_FAMILY, _r as DEFAULT_CONTRACT_IMAGE_COMPRESSION, kr as DEFAULT_DRAFT_CACHE_INTERVAL, Ar as DEFAULT_DRAFT_CACHE_KEY, jr as DEFAULT_DRAFT_CACHE_MAX_BYTES, Ft as DEFAULT_FIELD_STYLE, It as DEFAULT_FIELD_TYPES, Ct as DEFAULT_FONT_FAMILY_OPTIONS, wt as DEFAULT_FONT_SIZE_PRESETS, Lt as DEFAULT_MULTILINE_LINE_HEIGHT, Rt as DEFAULT_MULTILINE_ROWS, zt as DEFAULT_PAGE_SIZE, Tt as DEFAULT_TEXT_ALIGN_OPTIONS, ve as DRAWER_SIZE_WIDTH, ce as FORM_RENDER_CONTEXT_KEY, le as FormItemProps, ue as FormRenderProps, q as GET_DEPT_TREE_URL, H as GTE_OPTIONS_URL, j as GTE_ORGTREE_URL, ne as GdAntCollapseTranstion, gr as GdAntContractSigningLocation, u as GdAntCoverScrollBar, X as GdAntDeptSelector, w as GdAntIcon, k as GdAntPlusUpload, y as GdAntProArea, pe as GdAntProCell, me as GdAntProCellGroup, Ci as GdAntProContractSigningFlow, Di as GdAntProContractTemplateAgentPanel, Oi as GdAntProContractTemplateAgentPreview, Ei as GdAntProContractTemplateAgentWorkbench, $r as GdAntProContractTemplateDesigner, ei as GdAntProContractTemplateRenderer, ye as GdAntProDrawer, _e as GdAntProDynamicTags, de as GdAntProFormRender, O as GdAntProLoading, ae as GdAntProMenuTree, i as GdAntProModal, A as GdAntProOverlay, g as GdAntProPicker, K as GdAntProRoleSelector, ge as GdAntProSelectorGroup, x as GdAntProSignature, C as GdAntProTable, p as GdAntProTag, se as GdAntProTagGroup, o as GdAntProTitle, D as GdAntProUpload, V as GdAntProUserAvatar, O as GdAntProloading, G as GdAntRoleSelector, d as GdAntScaleVirtualList, c as GdAntScrollBar, B as GdAntUserAvatar, R as GdAntUserSelector, z as GdAntUserSelectorCheckbox, vr as MAX_CONTRACT_IMAGE_BYTES, yr as MAX_CONTRACT_IMAGE_DIMENSION, Z as MENU_TREE_URL, br as MIN_CONTRACT_IMAGE_DIMENSION, Bt as PAGE_SIZE_OPTIONS, fe as PRO_CELL_GROUP_KEY, m as PickerApiEnum, _ as ProAreaProps, h as ProPickerProps, b as ProSignatureProps, oe as ProTagGroupProps, I as ProUserSelector, F as ProUserSelectorCheckbox, et as SIGNING_PLACEMENT_DEFAULT_SIZES, tt as SIGNING_PLACEMENT_MIME, nt as SIGNING_PLACEMENT_MIN_SIZE, Q as SIGNING_PLACEMENT_SEAL_TYPE_OPTIONS, rt as SIGNING_PLACEMENT_TYPE_LABELS, a as TitleProps, T as UploadContextKey, M as UserSelectorProps, Ti as adaptContractTemplateAgentSpec, it as applySigningPlacementPatch, fi as buildConnectList, at as buildContractLocationRules, Mn as buildContractSigningLocationOutput, Nn as buildContractSigningLocationRules, En as buildContractSigningTemplateRenderPages, _n as buildInitialRenderValues, Jn as buildPageLayouts, ot as buildSigningPlacementLocationRules, Vt as buildTemplateExpressionHtml, Ht as buildTemplateHtml, Ut as buildTemplatePreviewHtml, Wt as buildTemplatePreviewPages, vn as buildTemplateRenderHtml, yn as buildTemplateRenderPages, st as canMutateSigningPlacements, Re as canResizeContractSigningPlacement, ze as clampContractSigningPlacement, Be as clampContractSigningZoom, ct as clampSigningPlacement, Mr as clearTemplateDraftCache, Pn as cloneContractSigningLocationValue, Ur as cloneContractTemplateFiles, Gt as cloneTemplateValue, e as collapseProps, Kt as collectTemplateLocationRuleExportErrors, qt as collectTemplateValueVariableKeys, Jt as collectTemplateVariableKeys, xr as compressContractImage, Wr as constrainContractTemplateFiles, Yt as constrainTemplatePageSizes, Yn as contentPointToPagePoint, Xt as createBlankPage, Zt as createBlankTemplate, Fn as createContractSigningLocationValue, In as createContractSigningPlacement, Gr as createContractTemplateFile, Qt as createDefaultPage, pi as createDefaultSignRule, $t as createDefaultTemplate, en as createDesignerId, Nr as createDraftCacheStatus, mi as createEndNode, hi as createId, gi as createInitialFlow, _i as createSignNode, lt as createSigningPlacement, vi as createStartNode, tn as createTemplateVariable, J as deptSelectorEmits, Y as deptSelectorProps, Ve as displayPointToContractPoint, Pr as estimateDraftCacheBytes, Kr as exportContractTemplateFiles, nn as exportTemplateValue, Ln as findContractSigningPage, Xn as findPageAtOffset, $ as findPageSizeOption, tr as formatContractSigningDate, Fr as formatDraftCacheSavedAt, ee as generatePalette, Ir as getBrowserDraftCacheStorage, Zn as getContractSigningAutoScrollDelta, nr as getContractSigningDateDataUrl, rr as getContractSigningDateSvgDataUrl, Rn as getContractSigningHomePage, ir as getContractSigningPlacementDataUrl, He as getContractSigningPlacementDistances, Ue as getContractSigningPlacementSize, ar as getContractSigningPlacementVisual, We as getContractSigningRuleGeometry, or as getContractSigningSealDataUrl, sr as getContractSigningSealLabel, cr as getContractSigningSealSvgDataUrl, lr as getContractSigningSignatureDataUrl, ur as getContractSigningSignaturePngDataUrl, dr as getContractSigningSignatureSvgDataUrl, Dn as getContractSigningTemplateDisplayError, Et as getContractTextStylePreset, rn as getFieldOption, Qn as getPageLayoutScrollTop, $n as getPageLayoutsContentSize, an as getPageSizeKey, on as getPageSizeOption, ut as getSigningPlacementDefaultSize, dt as getSigningPlacementTypeLabel, er as getVisibleRange, sn as inferPageFormat, Lr as isBlankTemplateDraftValue, Rr as isBlankTemplateFilesDraftValue, ci as isContractSigningFlowInteractiveTarget, zn as isContractSigningPageUsable, On as isContractSigningTemplateFile, kn as isContractSigningTemplateSource, fr as isContractSigningVisualDataUrl, Qe as isContractTemplateFieldType, bn as isEmptyRenderValue, gn as isSafeContractImageUrl, pr as isSafeContractSigningVisualDataUrl, zr as loadTemplateDraftCache, Br as loadTemplateFilesDraftCache, je as millimetersToContractSigningCssPixels, Me as millimetersToContractSigningPixels, Ge as moveContractSigningPlacementByDisplayDelta, qr as moveContractTemplateFile, ft as moveSigningPlacementByDisplayDelta, Sr as normalizeContractImageCompression, Cr as normalizeContractImageDimension, Ke as normalizeContractSigningCoordinateDimension, qe as normalizeContractSigningCoordinateScale, yi as normalizeContractSigningFlow, li as normalizeContractSigningFlowZoom, Bn as normalizeContractSigningLocationValue, Vn as normalizeContractSigningProviderValue, Jr as normalizeContractTemplateFiles, cn as normalizeContractTemplateMaxPages, Dt as normalizeFontFamilyValue, ln as normalizePageSizeOptions, xn as normalizeRenderValues, bi as normalizeSignRule, pt as normalizeSigningPlacements, un as normalizeTemplateValue, mt as parseSigningPlacementDragPayload, Hn as patchContractSigningPlacement, re as proMenuTreeEmits, ie as proMenuTreeProps, t as proModalEmits, f as proTagProps, wr as processContractImageFile, Tr as readContractImageFileAsDataUrl, Yr as removeContractTemplateFile, Xr as renameContractTemplateFile, Zr as replaceContractTemplateFile, Je as resizeContractSigningSealGeometry, ht as resizeSigningPlacement, Er as resolveContractImageResizeDimensions, ui as resolveContractSigningFlowZoomShortcut, di as resolveContractSigningFlowZoomShortcutForTarget, Un as resolveContractSigningPreviewPageSize, mr as resolveContractSigningSealLabel, Ne as resolveContractSigningSealSizeInCssPixels, Pe as resolveContractSigningSealSizeInPixels, Ye as resolveContractSigningSealSizeLimit, Fe as resolveContractSigningSealTypeOption, Xe as resolveContractSigningSizeProfile, Qr as resolveContractTemplateActiveFileId, Ot as resolveContractTextStylePresetCommands, kt as resolveFontFamilyOptions, dn as resolvePageSize, gt as resolveSigningPlacementToolItems, Sn as resolveTemplateRenderSubmitErrors, U as roleSelectorEmits, W as roleSelectorProps, Cn as sanitizeContractRendererHtml, Vr as saveTemplateDraftCache, Hr as saveTemplateFilesDraftCache, _t as scaleSigningPlacementToPage, s as scrollbarProps, he as selectContextKey, N as selectUserContextKey, vt as serializeSigningPlacementDragPayload, ki as setupAppConfig, te as setupTheme, Ze as snapContractSigningPlacement, fn as splitPageContentByMeasurements, pn as syncTemplateVariablesWithPages, hr as toContractSigningSvgDataUrl, Ai as useBasicAppConfig, xi as useContractSigningFlow, wi as useContractTemplateAgent, v as useProArea, n as useProModal, r as useProModalInit, S as useProTable, E as useUpload, L as useUserSelector, P as userSelectorEmits, Si as validateContractSigningFlow, Wn as validateContractSigningLocationValue, An as validateContractSigningTemplateFile, mn as validateContractTemplateVariableKey, yt as validateSigningPlacements, wn as validateTemplateRenderStructure, Tn as validateTemplateRenderValues, hn as validateTemplateValue };
56
+ import { CONTRACT_TEXT_STYLE_PRESETS as be, CONTRACT_TEXT_STYLE_PRESET_COMMANDS as xe, DEFAULT_CONTRACT_FONT_FAMILY as Se, DEFAULT_FONT_FAMILY_OPTIONS as Ce, DEFAULT_FONT_SIZE_PRESETS as we, DEFAULT_TEXT_ALIGN_OPTIONS as Te, getContractTextStylePreset as Ee, normalizeFontFamilyValue as De, resolveContractTextStylePresetCommands as Oe, resolveFontFamilyOptions as ke } from "./components/pro-contract-template-designer/src/constants.mjs";
57
+ import { CONTRACT_SIGNING_AUTO_SCROLL_EDGE_PX as Ae, CONTRACT_SIGNING_CSS_PX_PER_POINT as je, CONTRACT_SIGNING_MIN_PLACEMENT_SIZE as Me, CONTRACT_SIGNING_PLACEMENT_LABELS as Ne, CONTRACT_SIGNING_PLACEMENT_MIME as Pe, CONTRACT_SIGNING_PREVIEW_CONCURRENCY as Fe, CONTRACT_SIGNING_PX_PER_MM as Ie, CONTRACT_SIGNING_SEAL_MAX_SIZE as Le, CONTRACT_SIGNING_SEAL_MIN_SIZE as Re, CONTRACT_SIGNING_SEAL_TYPE_OPTIONS as Q, CONTRACT_SIGNING_SEAL_TYPE_PRESETS as ze, CONTRACT_SIGNING_SIZE_PROFILES as Be, CONTRACT_SIGNING_VISIBLE_PAGES_DEBOUNCE_MS as Ve, millimetersToContractSigningCssPixels as He, millimetersToContractSigningPixels as Ue, resolveContractSigningSealSizeInCssPixels as We, resolveContractSigningSealSizeInPixels as Ge, resolveContractSigningSealTypeOption as Ke, toContractSigningRulePageSize as qe } from "./components/contract-signing-location/src/constants.mjs";
58
+ import { CONTRACT_SIGNING_RENDER_ORIGIN_OFFSET as Je, CONTRACT_SIGNING_SNAP_THRESHOLD_PX as Ye, canResizeContractSigningPlacement as Xe, clampContractSigningPlacement as Ze, clampContractSigningZoom as Qe, displayPointToContractPoint as $e, getContractSigningPlacementDistances as et, getContractSigningPlacementSize as tt, getContractSigningRuleGeometry as nt, moveContractSigningPlacementByDisplayDelta as rt, normalizeContractSigningCoordinateDimension as it, normalizeContractSigningCoordinateScale as at, resizeContractSigningSealGeometry as ot, resolveContractSigningSealSizeLimit as st, resolveContractSigningSizeProfile as ct, snapContractSigningPlacement as lt } from "./components/contract-signing-location/src/coordinates.mjs";
59
+ import { isContractTemplateFieldType as ut } from "./components/pro-contract-template-designer/src/types.mjs";
60
+ import { ContractTemplateLocationRuleBuildError as dt, SIGNING_PLACEMENT_DEFAULT_SIZES as ft, SIGNING_PLACEMENT_MIME as pt, SIGNING_PLACEMENT_MIN_SIZE as mt, SIGNING_PLACEMENT_TYPE_LABELS as ht, applySigningPlacementPatch as gt, buildContractLocationRules as _t, buildSigningPlacementLocationRules as vt, canMutateSigningPlacements as yt, clampSigningPlacement as bt, createSigningPlacement as xt, getSigningPlacementDefaultSize as St, getSigningPlacementTypeLabel as Ct, moveSigningPlacementByDisplayDelta as wt, normalizeSigningPlacements as Tt, parseSigningPlacementDragPayload as Et, resizeSigningPlacement as Dt, resolveSigningPlacementToolItems as Ot, scaleSigningPlacementToPage as kt, serializeSigningPlacementDragPayload as At, validateSigningPlacements as jt } from "./components/pro-contract-template-designer/src/utils/signing-placement.mjs";
61
+ import { CONTRACT_TEMPLATE_RENDERER_VERSION as Mt, CONTRACT_TEMPLATE_RESERVED_VARIABLE_KEYS as Nt, CONTRACT_TEMPLATE_STYLE_VERSION as Pt, CONTRACT_TEMPLATE_VARIABLE_KEY_PATTERN as Ft, ContractTemplatePageDecorationValidationError as It, DEFAULT_FIELD_STYLE as Lt, DEFAULT_FIELD_TYPES as Rt, DEFAULT_MULTILINE_LINE_HEIGHT as zt, DEFAULT_MULTILINE_ROWS as Bt, DEFAULT_PAGE_SIZE as Vt, PAGE_SIZE_OPTIONS as Ht, buildTemplateExpressionHtml as Ut, buildTemplateHtml as Wt, buildTemplatePreviewHtml as Gt, buildTemplatePreviewPages as Kt, cloneTemplateValue as qt, collectTemplateLocationRuleExportErrors as Jt, collectTemplateValueVariableKeys as Yt, collectTemplateVariableKeys as Xt, constrainTemplatePageSizes as Zt, createBlankPage as Qt, createBlankTemplate as $t, createDefaultPage as en, createDefaultTemplate as tn, createDesignerId as nn, createTemplateVariable as $, exportTemplateValue as rn, findPageSizeOption as an, getFieldOption as on, getPageSizeKey as sn, getPageSizeOption as cn, inferPageFormat as ln, normalizeContractTemplateMaxPages as un, normalizePageSizeOptions as dn, normalizeTemplateValue as fn, resolvePageSize as pn, splitPageContentByMeasurements as mn, syncTemplateVariablesWithPages as hn, validateContractTemplateVariableKey as gn, validateTemplateValue as _n } from "./components/pro-contract-template-designer/src/composables/use-template-designer.mjs";
62
+ import { isSafeContractImageUrl as vn } from "./components/pro-contract-template-designer/src/utils/image-url.mjs";
63
+ import { buildInitialRenderValues as yn, buildTemplateRenderHtml as bn, buildTemplateRenderPages as xn, isEmptyRenderValue as Sn, normalizeRenderValues as Cn, resolveTemplateRenderSubmitErrors as wn, sanitizeContractRendererHtml as Tn, validateTemplateRenderStructure as En, validateTemplateRenderValues as Dn } from "./components/pro-contract-template-designer/src/utils/template-renderer.mjs";
64
+ import { buildContractSigningTemplateRenderPages as On, getContractSigningTemplateDisplayError as kn, isContractSigningTemplateFile as An, isContractSigningTemplateSource as jn, validateContractSigningTemplateFile as Mn } from "./components/contract-signing-location/src/template-source.mjs";
65
+ import { ContractSigningLocationBuildError as Nn, buildContractSigningLocationOutput as Pn, buildContractSigningLocationRules as Fn, cloneContractSigningLocationValue as In, createContractSigningLocationValue as Ln, createContractSigningPlacement as Rn, findContractSigningPage as zn, getContractSigningHomePage as Bn, isContractSigningPageUsable as Vn, normalizeContractSigningLocationValue as Hn, normalizeContractSigningProviderValue as Un, patchContractSigningPlacement as Wn, resolveContractSigningPreviewPageSize as Gn, validateContractSigningLocationValue as Kn } from "./components/contract-signing-location/src/location-rules.mjs";
66
+ import { CONTRACT_SIGNING_FALLBACK_PAGE_SIZE as qn, CONTRACT_SIGNING_PAGE_GAP as Jn, CONTRACT_SIGNING_VIRTUAL_BUFFER_PAGES as Yn, buildPageLayouts as Xn, contentPointToPagePoint as Zn, findPageAtOffset as Qn, getContractSigningAutoScrollDelta as $n, getPageLayoutScrollTop as er, getPageLayoutsContentSize as tr, getVisibleRange as nr } from "./components/contract-signing-location/src/page-layout.mjs";
67
+ import { formatContractSigningDate as rr, getContractSigningDateDataUrl as ir, getContractSigningDateSvgDataUrl as ar, getContractSigningPlacementDataUrl as or, getContractSigningPlacementVisual as sr, getContractSigningSealDataUrl as cr, getContractSigningSealLabel as lr, getContractSigningSealSvgDataUrl as ur, getContractSigningSignatureDataUrl as dr, getContractSigningSignaturePngDataUrl as fr, getContractSigningSignatureSvgDataUrl as pr, isContractSigningVisualDataUrl as mr, isSafeContractSigningVisualDataUrl as hr, resolveContractSigningSealLabel as gr, toContractSigningSvgDataUrl as _r } from "./components/contract-signing-location/src/signing-visuals.mjs";
68
+ import vr from "./components/contract-signing-location/index.mjs";
69
+ import { DEFAULT_CONTRACT_IMAGE_COMPRESSION as yr, MAX_CONTRACT_IMAGE_BYTES as br, MAX_CONTRACT_IMAGE_DIMENSION as xr, MIN_CONTRACT_IMAGE_DIMENSION as Sr, compressContractImage as Cr, normalizeContractImageCompression as wr, normalizeContractImageDimension as Tr, processContractImageFile as Er, readContractImageFileAsDataUrl as Dr, resolveContractImageResizeDimensions as Or } from "./components/pro-contract-template-designer/src/utils/content-image.mjs";
70
+ import { CONTRACT_TEMPLATE_DRAFT_CACHE_VERSION as kr, CONTRACT_TEMPLATE_FILES_DRAFT_CACHE_VERSION as Ar, DEFAULT_DRAFT_CACHE_INTERVAL as jr, DEFAULT_DRAFT_CACHE_KEY as Mr, DEFAULT_DRAFT_CACHE_MAX_BYTES as Nr, clearTemplateDraftCache as Pr, createDraftCacheStatus as Fr, estimateDraftCacheBytes as Ir, formatDraftCacheSavedAt as Lr, getBrowserDraftCacheStorage as Rr, isBlankTemplateDraftValue as zr, isBlankTemplateFilesDraftValue as Br, loadTemplateDraftCache as Vr, loadTemplateFilesDraftCache as Hr, saveTemplateDraftCache as Ur, saveTemplateFilesDraftCache as Wr } from "./components/pro-contract-template-designer/src/composables/use-template-draft-cache.mjs";
71
+ import { cloneContractTemplateFiles as Gr, constrainContractTemplateFiles as Kr, createContractTemplateFile as qr, exportContractTemplateFiles as Jr, moveContractTemplateFile as Yr, normalizeContractTemplateFiles as Xr, removeContractTemplateFile as Zr, renameContractTemplateFile as Qr, replaceContractTemplateFile as $r, resolveContractTemplateActiveFileId as ei } from "./components/pro-contract-template-designer/src/composables/use-template-files.mjs";
72
+ import ti, { GdAntProContractTemplateRenderer as ni } from "./components/pro-contract-template-designer/index.mjs";
73
+ import { CONTRACT_SIGNING_FLOW_ACTION_LABELS as ri, CONTRACT_SIGNING_FLOW_IDENTITY_OPTIONS as ii, CONTRACT_SIGNING_FLOW_MAX_ZOOM as ai, CONTRACT_SIGNING_FLOW_MIN_ZOOM as oi, CONTRACT_SIGNING_FLOW_SEAL_TYPES as si, CONTRACT_SIGNING_FLOW_SIGN_ACTIONS as ci, CONTRACT_SIGNING_FLOW_ZOOM_STEP as li, isContractSigningFlowInteractiveTarget as ui, normalizeContractSigningFlowZoom as di, resolveContractSigningFlowZoomShortcut as fi, resolveContractSigningFlowZoomShortcutForTarget as pi } from "./components/pro-contract-signing-flow/src/constants.mjs";
74
+ import { buildConnectList as mi, createDefaultSignRule as hi, createEndNode as gi, createId as _i, createInitialFlow as vi, createSignNode as yi, createStartNode as bi, normalizeContractSigningFlow as xi, normalizeSignRule as Si, useContractSigningFlow as Ci, validateContractSigningFlow as wi } from "./components/pro-contract-signing-flow/src/composables/use-contract-signing-flow.mjs";
75
+ import Ti from "./components/pro-contract-signing-flow/index.mjs";
76
+ import { useContractTemplateAgent as Ei } from "./components/pro-contract-template-agent/src/composables/use-contract-template-agent.mjs";
77
+ import { adaptContractTemplateAgentSpec as Di } from "./components/pro-contract-template-agent/src/utils/contract-template-agent-adapter.mjs";
78
+ import Oi, { GdAntProContractTemplateAgentPanel as ki, GdAntProContractTemplateAgentPreview as Ai } from "./components/pro-contract-template-agent/index.mjs";
79
+ import { setupAppConfig as ji, useBasicAppConfig as Mi } from "./components/hooks/use-basic-app-config.mjs";
80
+ export { Ae as CONTRACT_SIGNING_AUTO_SCROLL_EDGE_PX, je as CONTRACT_SIGNING_CSS_PX_PER_POINT, qn as CONTRACT_SIGNING_FALLBACK_PAGE_SIZE, ri as CONTRACT_SIGNING_FLOW_ACTION_LABELS, ii as CONTRACT_SIGNING_FLOW_IDENTITY_OPTIONS, ai as CONTRACT_SIGNING_FLOW_MAX_ZOOM, oi as CONTRACT_SIGNING_FLOW_MIN_ZOOM, si as CONTRACT_SIGNING_FLOW_SEAL_TYPES, ci as CONTRACT_SIGNING_FLOW_SIGN_ACTIONS, li as CONTRACT_SIGNING_FLOW_ZOOM_STEP, Me as CONTRACT_SIGNING_MIN_PLACEMENT_SIZE, Jn as CONTRACT_SIGNING_PAGE_GAP, Ne as CONTRACT_SIGNING_PLACEMENT_LABELS, Pe as CONTRACT_SIGNING_PLACEMENT_MIME, Fe as CONTRACT_SIGNING_PREVIEW_CONCURRENCY, Ie as CONTRACT_SIGNING_PX_PER_MM, Je as CONTRACT_SIGNING_RENDER_ORIGIN_OFFSET, Le as CONTRACT_SIGNING_SEAL_MAX_SIZE, Re as CONTRACT_SIGNING_SEAL_MIN_SIZE, Q as CONTRACT_SIGNING_SEAL_TYPE_OPTIONS, ze as CONTRACT_SIGNING_SEAL_TYPE_PRESETS, Be as CONTRACT_SIGNING_SIZE_PROFILES, Ye as CONTRACT_SIGNING_SNAP_THRESHOLD_PX, Yn as CONTRACT_SIGNING_VIRTUAL_BUFFER_PAGES, Ve as CONTRACT_SIGNING_VISIBLE_PAGES_DEBOUNCE_MS, kr as CONTRACT_TEMPLATE_DRAFT_CACHE_VERSION, Ar as CONTRACT_TEMPLATE_FILES_DRAFT_CACHE_VERSION, Mt as CONTRACT_TEMPLATE_RENDERER_VERSION, Nt as CONTRACT_TEMPLATE_RESERVED_VARIABLE_KEYS, Pt as CONTRACT_TEMPLATE_STYLE_VERSION, Ft as CONTRACT_TEMPLATE_VARIABLE_KEY_PATTERN, be as CONTRACT_TEXT_STYLE_PRESETS, xe as CONTRACT_TEXT_STYLE_PRESET_COMMANDS, Nn as ContractSigningLocationBuildError, dt as ContractTemplateLocationRuleBuildError, It as ContractTemplatePageDecorationValidationError, l as CoverScrollbarProps, Se as DEFAULT_CONTRACT_FONT_FAMILY, yr as DEFAULT_CONTRACT_IMAGE_COMPRESSION, jr as DEFAULT_DRAFT_CACHE_INTERVAL, Mr as DEFAULT_DRAFT_CACHE_KEY, Nr as DEFAULT_DRAFT_CACHE_MAX_BYTES, Lt as DEFAULT_FIELD_STYLE, Rt as DEFAULT_FIELD_TYPES, Ce as DEFAULT_FONT_FAMILY_OPTIONS, we as DEFAULT_FONT_SIZE_PRESETS, zt as DEFAULT_MULTILINE_LINE_HEIGHT, Bt as DEFAULT_MULTILINE_ROWS, Vt as DEFAULT_PAGE_SIZE, Te as DEFAULT_TEXT_ALIGN_OPTIONS, ve as DRAWER_SIZE_WIDTH, ce as FORM_RENDER_CONTEXT_KEY, le as FormItemProps, ue as FormRenderProps, q as GET_DEPT_TREE_URL, H as GTE_OPTIONS_URL, j as GTE_ORGTREE_URL, ne as GdAntCollapseTranstion, vr as GdAntContractSigningLocation, u as GdAntCoverScrollBar, X as GdAntDeptSelector, w as GdAntIcon, k as GdAntPlusUpload, y as GdAntProArea, pe as GdAntProCell, me as GdAntProCellGroup, Ti as GdAntProContractSigningFlow, ki as GdAntProContractTemplateAgentPanel, Ai as GdAntProContractTemplateAgentPreview, Oi as GdAntProContractTemplateAgentWorkbench, ti as GdAntProContractTemplateDesigner, ni as GdAntProContractTemplateRenderer, ye as GdAntProDrawer, _e as GdAntProDynamicTags, de as GdAntProFormRender, O as GdAntProLoading, ae as GdAntProMenuTree, i as GdAntProModal, A as GdAntProOverlay, g as GdAntProPicker, K as GdAntProRoleSelector, ge as GdAntProSelectorGroup, x as GdAntProSignature, C as GdAntProTable, p as GdAntProTag, se as GdAntProTagGroup, o as GdAntProTitle, D as GdAntProUpload, V as GdAntProUserAvatar, O as GdAntProloading, G as GdAntRoleSelector, d as GdAntScaleVirtualList, c as GdAntScrollBar, B as GdAntUserAvatar, R as GdAntUserSelector, z as GdAntUserSelectorCheckbox, br as MAX_CONTRACT_IMAGE_BYTES, xr as MAX_CONTRACT_IMAGE_DIMENSION, Z as MENU_TREE_URL, Sr as MIN_CONTRACT_IMAGE_DIMENSION, Ht as PAGE_SIZE_OPTIONS, fe as PRO_CELL_GROUP_KEY, m as PickerApiEnum, _ as ProAreaProps, h as ProPickerProps, b as ProSignatureProps, oe as ProTagGroupProps, I as ProUserSelector, F as ProUserSelectorCheckbox, ft as SIGNING_PLACEMENT_DEFAULT_SIZES, pt as SIGNING_PLACEMENT_MIME, mt as SIGNING_PLACEMENT_MIN_SIZE, Q as SIGNING_PLACEMENT_SEAL_TYPE_OPTIONS, ht as SIGNING_PLACEMENT_TYPE_LABELS, a as TitleProps, T as UploadContextKey, M as UserSelectorProps, Di as adaptContractTemplateAgentSpec, gt as applySigningPlacementPatch, mi as buildConnectList, _t as buildContractLocationRules, Pn as buildContractSigningLocationOutput, Fn as buildContractSigningLocationRules, On as buildContractSigningTemplateRenderPages, yn as buildInitialRenderValues, Xn as buildPageLayouts, vt as buildSigningPlacementLocationRules, Ut as buildTemplateExpressionHtml, Wt as buildTemplateHtml, Gt as buildTemplatePreviewHtml, Kt as buildTemplatePreviewPages, bn as buildTemplateRenderHtml, xn as buildTemplateRenderPages, yt as canMutateSigningPlacements, Xe as canResizeContractSigningPlacement, Ze as clampContractSigningPlacement, Qe as clampContractSigningZoom, bt as clampSigningPlacement, Pr as clearTemplateDraftCache, In as cloneContractSigningLocationValue, Gr as cloneContractTemplateFiles, qt as cloneTemplateValue, e as collapseProps, Jt as collectTemplateLocationRuleExportErrors, Yt as collectTemplateValueVariableKeys, Xt as collectTemplateVariableKeys, Cr as compressContractImage, Kr as constrainContractTemplateFiles, Zt as constrainTemplatePageSizes, Zn as contentPointToPagePoint, Qt as createBlankPage, $t as createBlankTemplate, Ln as createContractSigningLocationValue, Rn as createContractSigningPlacement, qr as createContractTemplateFile, en as createDefaultPage, hi as createDefaultSignRule, tn as createDefaultTemplate, nn as createDesignerId, Fr as createDraftCacheStatus, gi as createEndNode, _i as createId, vi as createInitialFlow, yi as createSignNode, xt as createSigningPlacement, bi as createStartNode, $ as createTemplateVariable, J as deptSelectorEmits, Y as deptSelectorProps, $e as displayPointToContractPoint, Ir as estimateDraftCacheBytes, Jr as exportContractTemplateFiles, rn as exportTemplateValue, zn as findContractSigningPage, Qn as findPageAtOffset, an as findPageSizeOption, rr as formatContractSigningDate, Lr as formatDraftCacheSavedAt, ee as generatePalette, Rr as getBrowserDraftCacheStorage, $n as getContractSigningAutoScrollDelta, ir as getContractSigningDateDataUrl, ar as getContractSigningDateSvgDataUrl, Bn as getContractSigningHomePage, or as getContractSigningPlacementDataUrl, et as getContractSigningPlacementDistances, tt as getContractSigningPlacementSize, sr as getContractSigningPlacementVisual, nt as getContractSigningRuleGeometry, cr as getContractSigningSealDataUrl, lr as getContractSigningSealLabel, ur as getContractSigningSealSvgDataUrl, dr as getContractSigningSignatureDataUrl, fr as getContractSigningSignaturePngDataUrl, pr as getContractSigningSignatureSvgDataUrl, kn as getContractSigningTemplateDisplayError, Ee as getContractTextStylePreset, on as getFieldOption, er as getPageLayoutScrollTop, tr as getPageLayoutsContentSize, sn as getPageSizeKey, cn as getPageSizeOption, St as getSigningPlacementDefaultSize, Ct as getSigningPlacementTypeLabel, nr as getVisibleRange, ln as inferPageFormat, zr as isBlankTemplateDraftValue, Br as isBlankTemplateFilesDraftValue, ui as isContractSigningFlowInteractiveTarget, Vn as isContractSigningPageUsable, An as isContractSigningTemplateFile, jn as isContractSigningTemplateSource, mr as isContractSigningVisualDataUrl, ut as isContractTemplateFieldType, Sn as isEmptyRenderValue, vn as isSafeContractImageUrl, hr as isSafeContractSigningVisualDataUrl, Vr as loadTemplateDraftCache, Hr as loadTemplateFilesDraftCache, He as millimetersToContractSigningCssPixels, Ue as millimetersToContractSigningPixels, rt as moveContractSigningPlacementByDisplayDelta, Yr as moveContractTemplateFile, wt as moveSigningPlacementByDisplayDelta, wr as normalizeContractImageCompression, Tr as normalizeContractImageDimension, it as normalizeContractSigningCoordinateDimension, at as normalizeContractSigningCoordinateScale, xi as normalizeContractSigningFlow, di as normalizeContractSigningFlowZoom, Hn as normalizeContractSigningLocationValue, Un as normalizeContractSigningProviderValue, Xr as normalizeContractTemplateFiles, un as normalizeContractTemplateMaxPages, De as normalizeFontFamilyValue, dn as normalizePageSizeOptions, Cn as normalizeRenderValues, Si as normalizeSignRule, Tt as normalizeSigningPlacements, fn as normalizeTemplateValue, Et as parseSigningPlacementDragPayload, Wn as patchContractSigningPlacement, re as proMenuTreeEmits, ie as proMenuTreeProps, t as proModalEmits, f as proTagProps, Er as processContractImageFile, Dr as readContractImageFileAsDataUrl, Zr as removeContractTemplateFile, Qr as renameContractTemplateFile, $r as replaceContractTemplateFile, ot as resizeContractSigningSealGeometry, Dt as resizeSigningPlacement, Or as resolveContractImageResizeDimensions, fi as resolveContractSigningFlowZoomShortcut, pi as resolveContractSigningFlowZoomShortcutForTarget, Gn as resolveContractSigningPreviewPageSize, gr as resolveContractSigningSealLabel, We as resolveContractSigningSealSizeInCssPixels, Ge as resolveContractSigningSealSizeInPixels, st as resolveContractSigningSealSizeLimit, Ke as resolveContractSigningSealTypeOption, ct as resolveContractSigningSizeProfile, ei as resolveContractTemplateActiveFileId, Oe as resolveContractTextStylePresetCommands, ke as resolveFontFamilyOptions, pn as resolvePageSize, Ot as resolveSigningPlacementToolItems, wn as resolveTemplateRenderSubmitErrors, U as roleSelectorEmits, W as roleSelectorProps, Tn as sanitizeContractRendererHtml, Ur as saveTemplateDraftCache, Wr as saveTemplateFilesDraftCache, kt as scaleSigningPlacementToPage, s as scrollbarProps, he as selectContextKey, N as selectUserContextKey, At as serializeSigningPlacementDragPayload, ji as setupAppConfig, te as setupTheme, lt as snapContractSigningPlacement, mn as splitPageContentByMeasurements, hn as syncTemplateVariablesWithPages, qe as toContractSigningRulePageSize, _r as toContractSigningSvgDataUrl, Mi as useBasicAppConfig, Ci as useContractSigningFlow, Ei as useContractTemplateAgent, v as useProArea, n as useProModal, r as useProModalInit, S as useProTable, E as useUpload, L as useUserSelector, P as userSelectorEmits, wi as validateContractSigningFlow, Kn as validateContractSigningLocationValue, Mn as validateContractSigningTemplateFile, gn as validateContractTemplateVariableKey, jt as validateSigningPlacements, En as validateTemplateRenderStructure, Dn as validateTemplateRenderValues, _n as validateTemplateValue };
@@ -1 +1 @@
1
- require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./ContractSigningTemplatePage.cjs`);require(`./constants.cjs`);const t=require(`./coordinates.cjs`),n=require(`./template-source.cjs`),r=require(`./location-rules.cjs`),i=require(`./page-layout.cjs`),a=require(`../../pro-contract-template-designer/src/composables/use-fit-width-zoom.cjs`),o=require(`./signing-visuals.cjs`);let s=require(`vue`),c=require(`ant-design-vue`),l=require(`@vueuse/core`),u=require(`@ant-design/icons-vue`);var d={class:`gd-ant-contract-signing-location__workspace`},f={class:`gd-ant-contract-signing-location__workspace-head`},p={key:0},m={class:`gd-ant-contract-signing-location__workspace-tools`},h={class:`gd-ant-contract-signing-location__page-jumper`,"aria-label":`页码跳转`},g=[`value`,`max`],ee={class:`gd-ant-contract-signing-location__zoom-tools`,"aria-label":`页面缩放`},te=[`aria-label`],ne={key:1,class:`gd-ant-contract-signing-location__page-placeholder is-error`,role:`alert`},re=[`src`],ie={key:3,class:`gd-ant-contract-signing-location__page-placeholder`},ae=[`onClick`],oe=[`onClick`],se={class:`gd-ant-contract-signing-location__render-region`},ce={class:`gd-ant-contract-signing-location__render-region-content`},le={class:`is-horizontal is-top`},ue={class:`is-horizontal is-bottom`},de={class:`is-vertical is-left`},fe={class:`is-vertical is-right`},pe={key:1,class:`gd-ant-contract-signing-location__snap-guides`,"aria-hidden":`true`},me=[`title`,`aria-label`,`aria-pressed`,`onClick`,`onPointerdown`,`onKeydown`],he={class:`gd-ant-contract-signing-location__placement-body`},ge=[`src`,`alt`],_e={key:0,class:`gd-ant-contract-signing-location__placement-badge`},ve=[`onPointerdown`],_=(0,s.defineComponent)({name:`ContractSigningLocationCanvas`,__name:`ContractSigningLocationCanvas`,props:{file:{},pages:{},placements:{},selectedPlacementId:{},readonly:{type:Boolean},resizable:{type:Boolean},zoom:{},previewLoadingKeys:{},previewErrorMap:{},activePageIndex:{},minZoom:{},maxZoom:{},sealSizeLimit:{},sealTypeOptions:{}},emits:[`select`,`add`,`update`,`remove`,`retry`,`visible-pages`,`view-page`,`page-change`,`zoom-change`,`scroll-to-ready`],setup(_,{expose:ye,emit:be}){let xe=[`nw`,`n`,`ne`,`e`,`se`,`s`,`sw`,`w`],v=_,y=be,b=(0,s.ref)(null),x=(0,s.ref)(null),S=(0,s.shallowRef)(1),C=(0,s.shallowRef)(v.activePageIndex),w=(0,s.shallowRef)({start:0,end:-1}),{width:Se}=(0,l.useElementSize)(b),Ce=(0,s.computed)(()=>Math.max(...v.pages.map(e=>e.width||i.CONTRACT_SIGNING_FALLBACK_PAGE_SIZE.width),i.CONTRACT_SIGNING_FALLBACK_PAGE_SIZE.width)),{fitWidth:we,markUserAdjusted:Te}=a.useFitWidthZoom({viewportWidth:Se,widestPageWidth:Ce,padding:48,minZoom:()=>v.minZoom,maxZoom:()=>v.maxZoom,getZoom:()=>v.zoom,applyZoom:e=>(y(`zoom-change`,e),e)}),T=(0,s.shallowRef)([]),E=(0,s.shallowRef)(),D=(0,s.shallowRef)(),O,k=0,A,j,M,N,P=(0,s.computed)(()=>i.buildPageLayouts(v.pages,v.zoom,16)),Ee=(0,s.computed)(()=>i.getPageLayoutsContentSize(P.value)),F=(0,s.computed)(()=>n.isContractSigningTemplateFile(v.file)),De=(0,s.computed)(()=>n.buildContractSigningTemplateRenderPages(v.file?.source)),Oe=(0,s.computed)(()=>new Map(De.value.map(e=>[e.pageIndex,e]))),I=(0,s.computed)(()=>n.getContractSigningTemplateDisplayError(v.file)),ke=(0,s.computed)(()=>{let e=w.value;return P.value.length?e.end<e.start?P.value.slice(0,2):P.value.slice(e.start,e.end+1):[]}),Ae=(0,s.computed)(()=>ke.value.flatMap(e=>{let t=B(e.pageIndex);return t?[{layout:e,page:t,logical:Le(t),templatePage:Oe.value.get(e.pageIndex)}]:[]})),L=(0,s.computed)(()=>v.pages.find(e=>e.pageIndex===C.value)??v.pages[0]),je=(0,s.computed)(()=>Math.min(v.minZoom,v.maxZoom)),Me=(0,s.computed)(()=>Math.max(v.minZoom,v.maxZoom)),R=(0,s.computed)(()=>v.placements.find(e=>e.id===v.selectedPlacementId)),Ne=new Date,z=new Map;function Pe(e){return JSON.stringify([e.signType,e.sealType??[],v.sealTypeOptions??[]])}function Fe(e){let t=Pe(e),n=z.get(t);if(n)return n;let r=o.getContractSigningPlacementVisual(e,{sealTypeOptions:v.sealTypeOptions,date:Ne});if(z.size>=128){let e=z.keys().next().value;e!==void 0&&z.delete(e)}return z.set(t,r),r}let Ie=(0,s.computed)(()=>{let e=new WeakMap;return v.placements.forEach(t=>{e.set(t,Fe(t))}),e});(0,s.watch)(()=>v.activePageIndex,e=>{C.value=e,Ke()||Y(e)}),(0,s.watch)(()=>v.pages.map(e=>e.pageIndex).join(`,`),()=>{(0,s.nextTick)(()=>{K(),q(),y(`scroll-to-ready`)})}),(0,s.watch)(()=>v.zoom,(e,t)=>{if(!b.value||t==null||e===t)return;let n=W(),r=i.buildPageLayouts(v.pages,t,16),a=i.findPageAtOffset(r,n.layoutScrollTop+1)??r[0];if(!a)return;M={pageIndex:a.pageIndex,offsetInPage:n.layoutScrollTop-a.top};let o=e/Math.max(.01,t);(0,s.nextTick)(()=>Je(o))}),(0,s.onMounted)(()=>{K(),q(),y(`scroll-to-ready`),!(typeof ResizeObserver>`u`||!b.value)&&(N=new ResizeObserver(()=>{K(),q()}),N.observe(b.value))}),(0,s.onBeforeUnmount)(()=>{$(),Z(),A&&clearTimeout(A),N?.disconnect(),N=void 0});function B(e){return v.pages.find(t=>t.pageIndex===e)}function Le(e){return r.isContractSigningPageUsable(e)?{width:e.width,height:e.height}:{...i.CONTRACT_SIGNING_FALLBACK_PAGE_SIZE}}function Re(e){return`${v.file?.fileId??``}:${e}`}function ze(e){return v.previewLoadingKeys.includes(Re(e))}function Be(e){return v.previewErrorMap[Re(e)]||``}function Ve(e){return v.placements.filter(t=>t.pageIndex===e)}function V(e){let n=R.value;return n&&n.pageIndex===e.pageIndex?t.getContractSigningPlacementDistances(n,e):void 0}function He(e){let n=t.getContractSigningRuleGeometry(e);return{left:`${n.signLeft}px`,top:`${n.signTop}px`,width:`${n.signWidth}px`,height:`${n.signHeight}px`}}function Ue(e){let n=t.getContractSigningRuleGeometry(e);return{"--gd-contract-sign-left":`${n.signLeft}px`,"--gd-contract-sign-top":`${n.signTop}px`,"--gd-contract-sign-right":`${n.signLeft+n.signWidth}px`,"--gd-contract-sign-bottom":`${n.signTop+n.signHeight}px`}}function H(e,n){return t.clampContractSigningPlacement(e,n,{sealSizeLimit:v.sealSizeLimit,sealTypes:e.sealType,sealTypeOptions:v.sealTypeOptions})}function U(e){return Ie.value.get(e)??Fe(e)}function We(e){return t.canResizeContractSigningPlacement(e,v.resizable,v.readonly)&&e.id===v.selectedPlacementId}function Ge(e){return{...e,sealType:e.sealType?[...e.sealType]:void 0}}function W(){let e=b.value,t=x.value;if(!e)return{layoutScrollTop:0,viewportHeight:0};let n=t?.offsetTop??0;return{layoutScrollTop:e.scrollTop-n,viewportHeight:e.clientHeight}}function G(e,t){let n=x.value;if(n){let r=n.getBoundingClientRect();return{x:e-r.left,y:t-r.top}}let r=b.value;if(!r)return{x:e,y:t};let i=r.getBoundingClientRect(),a=Number.parseFloat(getComputedStyle(r).paddingLeft)||0,o=Number.parseFloat(getComputedStyle(r).paddingTop)||0;return{x:e-i.left+r.scrollLeft-a,y:t-i.top+r.scrollTop-o}}function Ke(){return!!(document.activeElement&&document.activeElement.tagName===`INPUT`)}function K(){let e=W();w.value=i.getVisibleRange(P.value,e.layoutScrollTop,e.viewportHeight,1);let t=i.findPageAtOffset(P.value,e.layoutScrollTop+1);if(t){let e=C.value!==t.pageIndex;C.value=t.pageIndex,Ke()||Y(t.pageIndex),e&&y(`view-page`,t.pageIndex)}}function q(){let e=w.value;y(`visible-pages`,P.value.slice(Math.max(0,e.start),e.end+1).map(e=>e.pageIndex))}function qe(){K(),A&&clearTimeout(A),A=setTimeout(()=>{q(),C.value!==j&&(j=C.value,y(`page-change`,C.value))},80)}function Je(e){let t=b.value,n=x.value,r=M;if(M=void 0,!t||!n||!r)return;let i=P.value.find(e=>e.pageIndex===r.pageIndex);i&&(t.scrollTop=n.offsetTop+i.top+r.offsetInPage*e,K())}function J(e){let t=b.value,n=x.value;t&&(C.value=e,Y(e),y(`page-change`,e),j=e,(0,s.nextTick)(()=>{let r=i.getPageLayoutScrollTop(P.value,e);t.scrollTop=(n?.offsetTop??0)+r,K(),q()}))}function Ye(e){let n=v.placements.find(t=>t.id===e),r=b.value,i=x.value;if(!n||!r)return;let a=P.value.find(e=>e.pageIndex===n.pageIndex);a&&(C.value=n.pageIndex,Y(n.pageIndex),(0,s.nextTick)(()=>{let e=W(),o=a.top+t.getContractSigningRuleGeometry(n).signTop*v.zoom,s=o+t.getContractSigningRuleGeometry(n).signHeight*v.zoom,c=e.layoutScrollTop,l=c+e.viewportHeight;(o<c||s>l)&&(r.scrollTop=(i?.offsetTop??0)+Math.max(0,o-24)),K(),q(),y(`page-change`,n.pageIndex)}))}function Y(e){let t=v.pages.findIndex(t=>t.pageIndex===e);S.value=t>=0?t+1:1}function Xe(e){let t=v.pages.findIndex(e=>e.pageIndex===C.value),n=Math.min(v.pages.length-1,Math.max(0,(t<0?0:t)+e)),r=v.pages[n];r&&J(r.pageIndex)}function Ze(e){let t=Number(e.target.value);if(!Number.isFinite(t)){Y(C.value);return}let n=Math.min(v.pages.length,Math.max(1,Math.round(t)))-1,r=v.pages[n];r?J(r.pageIndex):Y(C.value)}function X(e,t=`user`){t===`user`&&Te(),y(`zoom-change`,e)}function Qe(e){e.target.closest(`.gd-ant-contract-signing-location__placement`)||y(`select`,``)}function $e(){window.addEventListener(`pointermove`,nt,{passive:!1}),window.addEventListener(`pointerup`,Q),window.addEventListener(`pointercancel`,Q)}function Z(){window.removeEventListener(`pointermove`,nt),window.removeEventListener(`pointerup`,Q),window.removeEventListener(`pointercancel`,Q)}function et(e,t,n){e.stopPropagation(),y(`select`,t.id);let a=B(t.pageIndex);if(v.readonly||!a||!r.isContractSigningPageUsable(a)||e.button!==0)return;let o=G(e.clientX,e.clientY),s=i.contentPointToPagePoint(P.value,v.pages,o.x,o.y),c=e.currentTarget;c.focus({preventScroll:!0}),D.value={pointerId:e.pointerId,mode:n?`resize`:`move`,handle:n,placementId:t.id,startX:e.clientX,startY:e.clientY,origin:Ge(t),grabOffsetX:(s?.x??t.signLeft)-t.signLeft,grabOffsetY:(s?.y??t.signTop)-t.signTop},O={clientX:e.clientX,clientY:e.clientY,pointerId:e.pointerId},$e(),st();try{c.setPointerCapture(e.pointerId)}catch{}}function tt(e,t,n){et(e,t,n)}function nt(e){let t=D.value;!t||t.pointerId!==e.pointerId||(e.preventDefault(),O={clientX:e.clientX,clientY:e.clientY,pointerId:e.pointerId},rt(O))}function Q(e){D.value?.pointerId===e.pointerId&&(D.value=void 0,O=void 0,T.value=[],E.value=void 0,$(),Z())}function rt(e){let n=D.value;if(!n)return;if(n.mode===`resize`){it(n,e);return}let a=G(e.clientX,e.clientY),o=i.contentPointToPagePoint(P.value,v.pages,a.x,a.y);if(!o)return;let s=ot(o.pageIndex,n.origin.pageIndex);if(!s||!r.isContractSigningPageUsable(s))return;let c=H({...n.origin,pageIndex:s.pageIndex,signLeft:o.x-n.grabOffsetX,signTop:o.y-n.grabOffsetY},s),l=t.snapContractSigningPlacement(c,Ve(s.pageIndex),v.zoom),u=H(l.placement,s);T.value=l.guides,E.value=s.pageIndex,y(`update`,u)}function it(e,n){let i=B(e.origin.pageIndex),a=e.handle;if(!i||!a||!r.isContractSigningPageUsable(i))return;let o=P.value.find(e=>e.pageIndex===i.pageIndex);if(!o)return;let s=G(n.clientX,n.clientY),c=i.width/Math.max(1,o.width),l=i.height/Math.max(1,o.height),u=(s.x-o.left)*c,d=(s.y-o.top)*l;if(e.origin.signType===`seal`){at(e,i,a,u,d);return}let f=t.getContractSigningRuleGeometry(e.origin),p=f.signLeft,m=f.signTop,h=f.signLeft+f.signWidth,g=f.signTop+f.signHeight;a.includes(`w`)&&(p=u),a.includes(`e`)&&(h=u),a.includes(`n`)&&(m=d),a.includes(`s`)&&(g=d),h-p<8&&(a.includes(`w`)?p=h-8:h=p+8),g-m<8&&(a.includes(`n`)?m=g-8:g=m+8),y(`update`,H({...e.origin,signLeft:p,signTop:m,signWidth:h-p,signHeight:g-m},i))}function at(e,n,r,i,a){let o=t.resizeContractSigningSealGeometry(e.origin,r,i,a,n,v.sealSizeLimit);y(`update`,H({...e.origin,...o},n))}function ot(e,t){let n=B(e);return n&&r.isContractSigningPageUsable(n)?n:B(t)}function st(){$();let e=()=>{let t=D.value,n=b.value;if(!t||!n||!O){k=0;return}let r=n.getBoundingClientRect(),a=i.getContractSigningAutoScrollDelta(O.clientY,r);a!==0&&(n.scrollTop+=a,K(),rt(O)),k=requestAnimationFrame(e)};k=requestAnimationFrame(e)}function $(){k&&=(cancelAnimationFrame(k),0)}function ct(e,n){let i=B(n.pageIndex);if(v.readonly||!i||!r.isContractSigningPageUsable(i))return;if(e.key===`Delete`||e.key===`Backspace`){e.preventDefault(),y(`remove`,n.id);return}let a=e.shiftKey?10:1,o=0,s=0;if(e.key===`ArrowLeft`)o=-a;else if(e.key===`ArrowRight`)o=a;else if(e.key===`ArrowUp`)s=-a;else if(e.key===`ArrowDown`)s=a;else return;e.preventDefault(),y(`update`,t.moveContractSigningPlacementByDisplayDelta(n,o,s,i,{width:i.width,height:i.height},{sealSizeLimit:v.sealSizeLimit}))}function lt(e){let t=e.dataTransfer?.getData(`application/x-gd-contract-signing-location`)||e.dataTransfer?.getData(`text/plain`);if(t)try{let e=JSON.parse(t);return dt(e.type)?e.type:void 0}catch{return dt(t)?t:void 0}}function ut(e){if(v.readonly)return;let t=lt(e);if(!t)return;e.preventDefault();let n=G(e.clientX,e.clientY),r=i.contentPointToPagePoint(P.value,v.pages,n.x,n.y,1);r&&y(`add`,t,r.x,r.y,r.pageIndex)}function dt(e){return e===`seal`||e===`signature`||e===`date`}return ye({scrollToPage:J,scrollToPlacement:Ye,fitWidth:we}),(t,n)=>((0,s.openBlock)(),(0,s.createElementBlock)(`main`,d,[(0,s.createElementVNode)(`header`,f,[(0,s.createElementVNode)(`div`,null,[(0,s.createElementVNode)(`strong`,null,(0,s.toDisplayString)(_.file?.fileName||`合同页面`),1),L.value?((0,s.openBlock)(),(0,s.createElementBlock)(`span`,p,`第 `+(0,s.toDisplayString)(L.value.displayPageNumber)+` 页 · `+(0,s.toDisplayString)(F.value?`HTML`:`PDF`)+` `+(0,s.toDisplayString)(L.value.width)+` × `+(0,s.toDisplayString)(L.value.height),1)):(0,s.createCommentVNode)(``,!0)]),(0,s.createElementVNode)(`div`,m,[(0,s.createElementVNode)(`div`,h,[(0,s.createVNode)((0,s.unref)(c.Button),{size:`small`,disabled:S.value<=1,"aria-label":`上一页`,onClick:n[0]||=e=>Xe(-1)},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(u.LeftOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`]),(0,s.createElementVNode)(`label`,null,[n[6]||=(0,s.createTextVNode)(` 第 `,-1),(0,s.createElementVNode)(`input`,{value:S.value,type:`number`,min:`1`,max:Math.max(1,_.pages.length),onChange:Ze,onKeydown:(0,s.withKeys)(Ze,[`enter`])},null,40,g),(0,s.createTextVNode)(` / `+(0,s.toDisplayString)(_.pages.length)+` 页 `,1)]),(0,s.createVNode)((0,s.unref)(c.Button),{size:`small`,disabled:S.value>=_.pages.length,"aria-label":`下一页`,onClick:n[1]||=e=>Xe(1)},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(u.RightOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),(0,s.createElementVNode)(`div`,ee,[(0,s.createVNode)((0,s.unref)(c.Button),{size:`small`,disabled:_.zoom<=je.value,"aria-label":`缩小页面`,onClick:n[2]||=e=>X(_.zoom-.1)},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(u.ZoomOutOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`]),(0,s.createElementVNode)(`button`,{type:`button`,onClick:n[3]||=e=>X(1)},(0,s.toDisplayString)(Math.round(_.zoom*100))+`%`,1),(0,s.createVNode)((0,s.unref)(c.Button),{size:`small`,disabled:_.zoom>=Me.value,"aria-label":`放大页面`,onClick:n[4]||=e=>X(_.zoom+.1)},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(u.ZoomInOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`]),(0,s.createVNode)((0,s.unref)(c.Button),{size:`small`,"aria-label":`适应宽度`,title:`适应宽度`,onClick:(0,s.unref)(we)},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(u.ColumnWidthOutlined),{"aria-hidden":`true`})]),_:1},8,[`onClick`])])])]),(0,s.createElementVNode)(`div`,{ref_key:`scrollRef`,ref:b,class:`gd-ant-contract-signing-location__canvas-scroll`,onScrollPassive:qe,onClick:Qe,onDragover:n[5]||=(0,s.withModifiers)(()=>{},[`prevent`]),onDrop:ut},[_.pages.length?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:1,ref_key:`stackRef`,ref:x,class:`gd-ant-contract-signing-location__page-stack`,style:(0,s.normalizeStyle)({width:`${Ee.value.width}px`,height:`${Ee.value.height}px`})},[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(Ae.value,t=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:t.layout.pageIndex,class:`gd-ant-contract-signing-location__page-shell`,style:(0,s.normalizeStyle)({top:`${t.layout.top}px`,left:`${t.layout.left}px`,width:`${t.layout.width}px`,height:`${t.layout.height}px`})},[(0,s.createElementVNode)(`div`,{class:`gd-ant-contract-signing-location__page`,style:(0,s.normalizeStyle)({width:`${t.logical.width}px`,height:`${t.logical.height}px`,transform:`scale(${_.zoom})`}),"aria-label":`${_.file?.fileName||`合同`}第 ${t.page.displayPageNumber} 页`},[F.value&&t.templatePage?((0,s.openBlock)(),(0,s.createBlock)(e.default,{key:0,page:t.templatePage},null,8,[`page`])):F.value?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,ne,[n[8]||=(0,s.createElementVNode)(`strong`,null,`模板页面无法渲染`,-1),(0,s.createElementVNode)(`span`,null,(0,s.toDisplayString)(I.value||`页面结构无效,请回到模板设计器修复后重试。`),1)])):t.page.previewUrl?((0,s.openBlock)(),(0,s.createElementBlock)(`img`,{key:2,class:`gd-ant-contract-signing-location__page-image`,src:t.page.previewUrl,alt:`合同页面预览`},null,8,re)):((0,s.openBlock)(),(0,s.createElementBlock)(`div`,ie,[ze(t.layout.pageIndex)?((0,s.openBlock)(),(0,s.createElementBlock)(s.Fragment,{key:0},[(0,s.createElementVNode)(`strong`,null,`第 `+(0,s.toDisplayString)(t.page.displayPageNumber)+` 页加载中…`,1),(0,s.createElementVNode)(`span`,null,(0,s.toDisplayString)(t.page.width)+` × `+(0,s.toDisplayString)(t.page.height),1)],64)):Be(t.layout.pageIndex)?((0,s.openBlock)(),(0,s.createElementBlock)(s.Fragment,{key:1},[n[9]||=(0,s.createElementVNode)(`strong`,null,`合同页面预览加载失败`,-1),(0,s.createElementVNode)(`span`,null,(0,s.toDisplayString)(Be(t.layout.pageIndex)),1),(0,s.createElementVNode)(`button`,{type:`button`,onClick:(0,s.withModifiers)(e=>y(`retry`,t.layout.pageIndex),[`stop`])},`重试当前页`,8,ae)],64)):(0,s.unref)(r.isContractSigningPageUsable)(t.page)?((0,s.openBlock)(),(0,s.createElementBlock)(s.Fragment,{key:3},[(0,s.createElementVNode)(`strong`,null,`第 `+(0,s.toDisplayString)(t.page.displayPageNumber)+` 页`,1),(0,s.createElementVNode)(`span`,null,(0,s.toDisplayString)(t.page.width)+` × `+(0,s.toDisplayString)(t.page.height),1),n[12]||=(0,s.createElementVNode)(`small`,null,`等待 dataProvider 返回页面预览图`,-1)],64)):((0,s.openBlock)(),(0,s.createElementBlock)(s.Fragment,{key:2},[n[10]||=(0,s.createElementVNode)(`strong`,null,`页面元数据不完整`,-1),n[11]||=(0,s.createElementVNode)(`span`,null,`缺少有效的原始宽高,无法安全计算签署坐标。`,-1),(0,s.createElementVNode)(`button`,{type:`button`,onClick:(0,s.withModifiers)(e=>y(`retry`,t.layout.pageIndex),[`stop`])},`重新加载页面`,8,oe)],64))])),(0,s.createElementVNode)(`div`,se,[(0,s.createElementVNode)(`div`,ce,[R.value&&R.value.pageIndex===t.layout.pageIndex?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:0,class:`gd-ant-contract-signing-location__coordinate-guides`,style:(0,s.normalizeStyle)(Ue(R.value)),"aria-hidden":`true`},[(0,s.createElementVNode)(`span`,le,[(0,s.createElementVNode)(`small`,null,`上 `+(0,s.toDisplayString)(V(t.page)?.top),1)]),(0,s.createElementVNode)(`span`,ue,[(0,s.createElementVNode)(`small`,null,`下 `+(0,s.toDisplayString)(V(t.page)?.bottom),1)]),(0,s.createElementVNode)(`span`,de,[(0,s.createElementVNode)(`small`,null,`左 `+(0,s.toDisplayString)(V(t.page)?.left),1)]),(0,s.createElementVNode)(`span`,fe,[(0,s.createElementVNode)(`small`,null,`右 `+(0,s.toDisplayString)(V(t.page)?.right),1)])],4)):(0,s.createCommentVNode)(``,!0),T.value.length&&E.value===t.layout.pageIndex?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,pe,[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(T.value,(e,t)=>((0,s.openBlock)(),(0,s.createElementBlock)(`span`,{key:`${e.axis}-${t}`,class:(0,s.normalizeClass)(e.axis===`x`?`is-vertical`:`is-horizontal`),style:(0,s.normalizeStyle)(e.axis===`x`?{left:`${e.position}px`}:{top:`${e.position}px`})},null,6))),128))])):(0,s.createCommentVNode)(``,!0),((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(Ve(t.layout.pageIndex),e=>((0,s.openBlock)(),(0,s.createElementBlock)(`button`,{key:e.id,type:`button`,class:(0,s.normalizeClass)([`gd-ant-contract-signing-location__placement`,[`is-${e.signType}`,{"is-selected":e.id===_.selectedPlacementId}]]),style:(0,s.normalizeStyle)(He(e)),title:U(e).alt,"aria-label":U(e).alt,"aria-pressed":e.id===_.selectedPlacementId,onClick:(0,s.withModifiers)(t=>y(`select`,e.id),[`stop`]),onPointerdown:t=>et(t,e),onLostpointercapture:Q,onKeydown:t=>ct(t,e)},[(0,s.createElementVNode)(`span`,he,[(0,s.createElementVNode)(`img`,{class:`gd-ant-contract-signing-location__placement-visual`,src:U(e).dataUrl,alt:U(e).alt,draggable:`false`},null,8,ge)]),e.mustSign?((0,s.openBlock)(),(0,s.createElementBlock)(`span`,_e,`必签`)):(0,s.createCommentVNode)(``,!0),((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(We(e)?xe:[],t=>((0,s.openBlock)(),(0,s.createElementBlock)(`i`,{key:t,class:(0,s.normalizeClass)([`gd-ant-contract-signing-location__resize-handle`,`is-${t}`]),onPointerdown:(0,s.withModifiers)(n=>tt(n,e,t),[`stop`])},null,42,ve))),128))],46,me))),128))])])],12,te)],4))),128))],4)):((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:0,class:(0,s.normalizeClass)([`gd-ant-contract-signing-location__canvas-state`,{"is-error":F.value&&I.value}]),role:`status`},[F.value&&I.value?((0,s.openBlock)(),(0,s.createElementBlock)(s.Fragment,{key:0},[n[7]||=(0,s.createElementVNode)(`strong`,null,`合同模板无法渲染`,-1),(0,s.createElementVNode)(`span`,null,(0,s.toDisplayString)(I.value),1)],64)):((0,s.openBlock)(),(0,s.createElementBlock)(s.Fragment,{key:1},[(0,s.createTextVNode)(`请选择可用的合同页面`)],64))],2))],544)]))}});exports.default=_;
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./ContractSigningTemplatePage.cjs`);require(`./constants.cjs`);const t=require(`./coordinates.cjs`),n=require(`./template-source.cjs`),r=require(`./location-rules.cjs`),i=require(`./page-layout.cjs`),a=require(`../../pro-contract-template-designer/src/composables/use-fit-width-zoom.cjs`),o=require(`./signing-visuals.cjs`);let s=require(`vue`),c=require(`ant-design-vue`),l=require(`@vueuse/core`),u=require(`@ant-design/icons-vue`);var d={class:`gd-ant-contract-signing-location__workspace`},f={class:`gd-ant-contract-signing-location__workspace-head`},p={key:0},m={class:`gd-ant-contract-signing-location__workspace-tools`},h={class:`gd-ant-contract-signing-location__page-jumper`,"aria-label":`页码跳转`},g=[`value`,`max`],_={class:`gd-ant-contract-signing-location__zoom-tools`,"aria-label":`页面缩放`},ee=[`aria-label`],te={key:1,class:`gd-ant-contract-signing-location__page-placeholder is-error`,role:`alert`},ne=[`src`],re={key:3,class:`gd-ant-contract-signing-location__page-placeholder`},ie=[`onClick`],ae=[`onClick`],oe={class:`gd-ant-contract-signing-location__render-region`},se={class:`gd-ant-contract-signing-location__render-region-content`},ce={class:`is-horizontal is-top`},le={class:`is-horizontal is-bottom`},ue={class:`is-vertical is-left`},de={class:`is-vertical is-right`},fe={key:1,class:`gd-ant-contract-signing-location__snap-guides`,"aria-hidden":`true`},pe=[`title`,`aria-label`,`aria-pressed`,`onClick`,`onPointerdown`,`onKeydown`],me={class:`gd-ant-contract-signing-location__placement-body`},he=[`src`,`alt`],ge={key:0,class:`gd-ant-contract-signing-location__placement-badge`},_e=[`onPointerdown`],v=(0,s.defineComponent)({name:`ContractSigningLocationCanvas`,__name:`ContractSigningLocationCanvas`,props:{file:{},pages:{},placements:{},selectedPlacementId:{},readonly:{type:Boolean},resizable:{type:Boolean},zoom:{},previewLoadingKeys:{},previewErrorMap:{},activePageIndex:{},minZoom:{},maxZoom:{},sealSizeLimit:{},sealTypeOptions:{}},emits:[`select`,`add`,`update`,`remove`,`retry`,`visible-pages`,`view-page`,`page-change`,`zoom-change`,`scroll-to-ready`],setup(v,{expose:ve,emit:ye}){let be=[`nw`,`n`,`ne`,`e`,`se`,`s`,`sw`,`w`],y=v,b=ye,x=(0,s.ref)(null),S=(0,s.ref)(null),C=(0,s.shallowRef)(1),w=(0,s.shallowRef)(y.activePageIndex),T=(0,s.shallowRef)({start:0,end:-1}),{width:xe}=(0,l.useElementSize)(x),Se=(0,s.computed)(()=>Math.max(...y.pages.map(e=>e.displayWidth||e.width||i.CONTRACT_SIGNING_FALLBACK_PAGE_SIZE.width),i.CONTRACT_SIGNING_FALLBACK_PAGE_SIZE.width)),{fitWidth:Ce,markUserAdjusted:we}=a.useFitWidthZoom({viewportWidth:xe,widestPageWidth:Se,padding:48,minZoom:()=>y.minZoom,maxZoom:()=>y.maxZoom,getZoom:()=>y.zoom,applyZoom:e=>(b(`zoom-change`,e),e)}),E=(0,s.shallowRef)([]),D=(0,s.shallowRef)(),O=(0,s.shallowRef)(),k,A=0,j,M,N,P,F=(0,s.computed)(()=>i.buildPageLayouts(y.pages,y.zoom,16)),Te=(0,s.computed)(()=>i.getPageLayoutsContentSize(F.value)),I=(0,s.computed)(()=>n.isContractSigningTemplateFile(y.file)),Ee=(0,s.computed)(()=>n.buildContractSigningTemplateRenderPages(y.file?.source)),De=(0,s.computed)(()=>new Map(Ee.value.map(e=>[e.pageIndex,e]))),L=(0,s.computed)(()=>n.getContractSigningTemplateDisplayError(y.file)),Oe=(0,s.computed)(()=>{let e=T.value;return F.value.length?e.end<e.start?F.value.slice(0,2):F.value.slice(e.start,e.end+1):[]}),ke=(0,s.computed)(()=>Oe.value.flatMap(e=>{let t=V(e.pageIndex);return t?[{layout:e,page:t,logical:H(t),templatePage:De.value.get(e.pageIndex)}]:[]})),R=(0,s.computed)(()=>y.pages.find(e=>e.pageIndex===w.value)??y.pages[0]),Ae=(0,s.computed)(()=>Math.min(y.minZoom,y.maxZoom)),je=(0,s.computed)(()=>Math.max(y.minZoom,y.maxZoom)),z=(0,s.computed)(()=>y.placements.find(e=>e.id===y.selectedPlacementId)),Me=new Date,B=new Map;function Ne(e){return JSON.stringify([e.signType,e.sealType??[],y.sealTypeOptions??[]])}function Pe(e){let t=Ne(e),n=B.get(t);if(n)return n;let r=o.getContractSigningPlacementVisual(e,{sealTypeOptions:y.sealTypeOptions,date:Me});if(B.size>=128){let e=B.keys().next().value;e!==void 0&&B.delete(e)}return B.set(t,r),r}let Fe=(0,s.computed)(()=>{let e=new WeakMap;return y.placements.forEach(t=>{e.set(t,Pe(t))}),e});(0,s.watch)(()=>y.activePageIndex,e=>{w.value=e,Ge()||Q(e)}),(0,s.watch)(()=>y.pages.map(e=>e.pageIndex).join(`,`),()=>{(0,s.nextTick)(()=>{Y(),X(),b(`scroll-to-ready`)})}),(0,s.watch)(()=>y.zoom,(e,t)=>{if(!x.value||t==null||e===t)return;let n=q(),r=i.buildPageLayouts(y.pages,t,16),a=i.findPageAtOffset(r,n.layoutScrollTop+1)??r[0];if(!a)return;N={pageIndex:a.pageIndex,offsetInPage:n.layoutScrollTop-a.top};let o=e/Math.max(.01,t);(0,s.nextTick)(()=>qe(o))}),(0,s.onMounted)(()=>{Y(),X(),b(`scroll-to-ready`),!(typeof ResizeObserver>`u`||!x.value)&&(P=new ResizeObserver(()=>{Y(),X()}),P.observe(x.value))}),(0,s.onBeforeUnmount)(()=>{lt(),et(),j&&clearTimeout(j),P?.disconnect(),P=void 0});function V(e){return y.pages.find(t=>t.pageIndex===e)}function H(e){return e&&r.isContractSigningPageUsable(e)?{width:e.width,height:e.height}:{...i.CONTRACT_SIGNING_FALLBACK_PAGE_SIZE}}function U(e){if(!e||!r.isContractSigningPageUsable(e))return{...i.CONTRACT_SIGNING_FALLBACK_PAGE_SIZE};let t=Number(e.displayWidth),n=Number(e.displayHeight);return{width:Number.isFinite(t)&&t>0?t:e.width,height:Number.isFinite(n)&&n>0?n:e.height}}function Ie(e){return`${y.file?.fileId??``}:${e}`}function Le(e){return y.previewLoadingKeys.includes(Ie(e))}function Re(e){return y.previewErrorMap[Ie(e)]||``}function ze(e){return y.placements.filter(t=>t.pageIndex===e)}function W(e){let n=z.value;return n&&n.pageIndex===e.pageIndex?t.getContractSigningPlacementDistances(n,e):void 0}function Be(e){let n=t.getContractSigningRuleGeometry(e),r=V(e.pageIndex),i=U(r),a=H(r);return{left:`${n.signLeft*i.width/Math.max(1,a.width)}px`,top:`${n.signTop*i.height/Math.max(1,a.height)}px`,width:`${n.signWidth*i.width/Math.max(1,a.width)}px`,height:`${n.signHeight*i.height/Math.max(1,a.height)}px`}}function Ve(e){let n=t.getContractSigningRuleGeometry(e),r=V(e.pageIndex),i=U(r),a=H(r),o=i.width/Math.max(1,a.width),s=i.height/Math.max(1,a.height);return{"--gd-contract-sign-left":`${n.signLeft*o}px`,"--gd-contract-sign-top":`${n.signTop*s}px`,"--gd-contract-sign-right":`${(n.signLeft+n.signWidth)*o}px`,"--gd-contract-sign-bottom":`${(n.signTop+n.signHeight)*s}px`}}function He(e,t){let n=U(t),r=H(t),i=e.axis===`x`?n.width/Math.max(1,r.width):n.height/Math.max(1,r.height);return e.axis===`x`?{left:`${e.position*i}px`}:{top:`${e.position*i}px`}}function G(e,n){return t.clampContractSigningPlacement(e,n,{sealSizeLimit:y.sealSizeLimit,sealTypes:e.sealType,sealTypeOptions:y.sealTypeOptions})}function K(e){return Fe.value.get(e)??Pe(e)}function Ue(e){return t.canResizeContractSigningPlacement(e,y.resizable,y.readonly)&&e.id===y.selectedPlacementId}function We(e){return{...e,sealType:e.sealType?[...e.sealType]:void 0}}function q(){let e=x.value,t=S.value;if(!e)return{layoutScrollTop:0,viewportHeight:0};let n=t?.offsetTop??0;return{layoutScrollTop:e.scrollTop-n,viewportHeight:e.clientHeight}}function J(e,t){let n=S.value;if(n){let r=n.getBoundingClientRect();return{x:e-r.left,y:t-r.top}}let r=x.value;if(!r)return{x:e,y:t};let i=r.getBoundingClientRect(),a=Number.parseFloat(getComputedStyle(r).paddingLeft)||0,o=Number.parseFloat(getComputedStyle(r).paddingTop)||0;return{x:e-i.left+r.scrollLeft-a,y:t-i.top+r.scrollTop-o}}function Ge(){return!!(document.activeElement&&document.activeElement.tagName===`INPUT`)}function Y(){let e=q();T.value=i.getVisibleRange(F.value,e.layoutScrollTop,e.viewportHeight,1);let t=i.findPageAtOffset(F.value,e.layoutScrollTop+1);if(t){let e=w.value!==t.pageIndex;w.value=t.pageIndex,Ge()||Q(t.pageIndex),e&&b(`view-page`,t.pageIndex)}}function X(){let e=T.value;b(`visible-pages`,F.value.slice(Math.max(0,e.start),e.end+1).map(e=>e.pageIndex))}function Ke(){Y(),j&&clearTimeout(j),j=setTimeout(()=>{X(),w.value!==M&&(M=w.value,b(`page-change`,w.value))},80)}function qe(e){let t=x.value,n=S.value,r=N;if(N=void 0,!t||!n||!r)return;let i=F.value.find(e=>e.pageIndex===r.pageIndex);i&&(t.scrollTop=n.offsetTop+i.top+r.offsetInPage*e,Y())}function Z(e){let t=x.value,n=S.value;t&&(w.value=e,Q(e),b(`page-change`,e),M=e,(0,s.nextTick)(()=>{let r=i.getPageLayoutScrollTop(F.value,e);t.scrollTop=(n?.offsetTop??0)+r,Y(),X()}))}function Je(e){let n=y.placements.find(t=>t.id===e),r=x.value,i=S.value;if(!n||!r)return;let a=F.value.find(e=>e.pageIndex===n.pageIndex);a&&(w.value=n.pageIndex,Q(n.pageIndex),(0,s.nextTick)(()=>{let e=q(),o=V(n.pageIndex),s=U(o),c=H(o),l=a.top+t.getContractSigningRuleGeometry(n).signTop*s.height/Math.max(1,c.height)*y.zoom,u=l+t.getContractSigningRuleGeometry(n).signHeight*s.height/Math.max(1,c.height)*y.zoom,d=e.layoutScrollTop,f=d+e.viewportHeight;(l<d||u>f)&&(r.scrollTop=(i?.offsetTop??0)+Math.max(0,l-24)),Y(),X(),b(`page-change`,n.pageIndex)}))}function Q(e){let t=y.pages.findIndex(t=>t.pageIndex===e);C.value=t>=0?t+1:1}function Ye(e){let t=y.pages.findIndex(e=>e.pageIndex===w.value),n=Math.min(y.pages.length-1,Math.max(0,(t<0?0:t)+e)),r=y.pages[n];r&&Z(r.pageIndex)}function Xe(e){let t=Number(e.target.value);if(!Number.isFinite(t)){Q(w.value);return}let n=Math.min(y.pages.length,Math.max(1,Math.round(t)))-1,r=y.pages[n];r?Z(r.pageIndex):Q(w.value)}function Ze(e,t=`user`){t===`user`&&we(),b(`zoom-change`,e)}function Qe(e){e.target.closest(`.gd-ant-contract-signing-location__placement`)||b(`select`,``)}function $e(){window.addEventListener(`pointermove`,rt,{passive:!1}),window.addEventListener(`pointerup`,$),window.addEventListener(`pointercancel`,$)}function et(){window.removeEventListener(`pointermove`,rt),window.removeEventListener(`pointerup`,$),window.removeEventListener(`pointercancel`,$)}function tt(e,t,n){e.stopPropagation(),b(`select`,t.id);let a=V(t.pageIndex);if(y.readonly||!a||!r.isContractSigningPageUsable(a)||e.button!==0)return;let o=J(e.clientX,e.clientY),s=i.contentPointToPagePoint(F.value,y.pages,o.x,o.y),c=e.currentTarget;c.focus({preventScroll:!0}),O.value={pointerId:e.pointerId,mode:n?`resize`:`move`,handle:n,placementId:t.id,startX:e.clientX,startY:e.clientY,origin:We(t),grabOffsetX:(s?.x??t.signLeft)-t.signLeft,grabOffsetY:(s?.y??t.signTop)-t.signTop},k={clientX:e.clientX,clientY:e.clientY,pointerId:e.pointerId},$e(),ct();try{c.setPointerCapture(e.pointerId)}catch{}}function nt(e,t,n){tt(e,t,n)}function rt(e){let t=O.value;!t||t.pointerId!==e.pointerId||(e.preventDefault(),k={clientX:e.clientX,clientY:e.clientY,pointerId:e.pointerId},it(k))}function $(e){O.value?.pointerId===e.pointerId&&(O.value=void 0,k=void 0,E.value=[],D.value=void 0,lt(),et())}function it(e){let n=O.value;if(!n)return;if(n.mode===`resize`){at(n,e);return}let a=J(e.clientX,e.clientY),o=i.contentPointToPagePoint(F.value,y.pages,a.x,a.y);if(!o)return;let s=st(o.pageIndex,n.origin.pageIndex);if(!s||!r.isContractSigningPageUsable(s))return;let c=G({...n.origin,pageIndex:s.pageIndex,signLeft:o.x-n.grabOffsetX,signTop:o.y-n.grabOffsetY},s),l=t.snapContractSigningPlacement(c,ze(s.pageIndex),y.zoom,void 0,s),u=G(l.placement,s);E.value=l.guides,D.value=s.pageIndex,b(`update`,u)}function at(e,n){let i=V(e.origin.pageIndex),a=e.handle;if(!i||!a||!r.isContractSigningPageUsable(i))return;let o=F.value.find(e=>e.pageIndex===i.pageIndex);if(!o)return;let s=J(n.clientX,n.clientY),c=U(i),l=i.width/Math.max(1,c.width*y.zoom),u=i.height/Math.max(1,c.height*y.zoom),d=(s.x-o.left)*l,f=(s.y-o.top)*u;if(e.origin.signType===`seal`){ot(e,i,a,d,f);return}let p=t.getContractSigningRuleGeometry(e.origin),m=p.signLeft,h=p.signTop,g=p.signLeft+p.signWidth,_=p.signTop+p.signHeight;a.includes(`w`)&&(m=d),a.includes(`e`)&&(g=d),a.includes(`n`)&&(h=f),a.includes(`s`)&&(_=f),g-m<8&&(a.includes(`w`)?m=g-8:g=m+8),_-h<8&&(a.includes(`n`)?h=_-8:_=h+8),b(`update`,G({...e.origin,signLeft:m,signTop:h,signWidth:g-m,signHeight:_-h},i))}function ot(e,n,r,i,a){let o=t.resizeContractSigningSealGeometry(e.origin,r,i,a,n,y.sealSizeLimit);b(`update`,G({...e.origin,...o},n))}function st(e,t){let n=V(e);return n&&r.isContractSigningPageUsable(n)?n:V(t)}function ct(){lt();let e=()=>{let t=O.value,n=x.value;if(!t||!n||!k){A=0;return}let r=n.getBoundingClientRect(),a=i.getContractSigningAutoScrollDelta(k.clientY,r);a!==0&&(n.scrollTop+=a,Y(),it(k)),A=requestAnimationFrame(e)};A=requestAnimationFrame(e)}function lt(){A&&=(cancelAnimationFrame(A),0)}function ut(e,n){let i=V(n.pageIndex);if(y.readonly||!i||!r.isContractSigningPageUsable(i))return;if(e.key===`Delete`||e.key===`Backspace`){e.preventDefault(),b(`remove`,n.id);return}let a=e.shiftKey?10:1,o=0,s=0;if(e.key===`ArrowLeft`)o=-a;else if(e.key===`ArrowRight`)o=a;else if(e.key===`ArrowUp`)s=-a;else if(e.key===`ArrowDown`)s=a;else return;e.preventDefault();let c=U(i),l=H(i);b(`update`,t.moveContractSigningPlacementByDisplayDelta(n,o*c.width/Math.max(1,l.width),s*c.height/Math.max(1,l.height),i,U(i),{sealSizeLimit:y.sealSizeLimit}))}function dt(e){let t=e.dataTransfer?.getData(`application/x-gd-contract-signing-location`)||e.dataTransfer?.getData(`text/plain`);if(t)try{let e=JSON.parse(t);return pt(e.type)?e.type:void 0}catch{return pt(t)?t:void 0}}function ft(e){if(y.readonly)return;let t=dt(e);if(!t)return;e.preventDefault();let n=J(e.clientX,e.clientY),r=i.contentPointToPagePoint(F.value,y.pages,n.x,n.y);r&&b(`add`,t,r.x,r.y,r.pageIndex)}function pt(e){return e===`seal`||e===`signature`||e===`date`}return ve({scrollToPage:Z,scrollToPlacement:Je,fitWidth:Ce}),(t,n)=>((0,s.openBlock)(),(0,s.createElementBlock)(`main`,d,[(0,s.createElementVNode)(`header`,f,[(0,s.createElementVNode)(`div`,null,[(0,s.createElementVNode)(`strong`,null,(0,s.toDisplayString)(v.file?.fileName||`合同页面`),1),R.value?((0,s.openBlock)(),(0,s.createElementBlock)(`span`,p,`第 `+(0,s.toDisplayString)(R.value.displayPageNumber)+` 页 · `+(0,s.toDisplayString)(I.value?`HTML`:`PDF`)+` `+(0,s.toDisplayString)(R.value.width)+` × `+(0,s.toDisplayString)(R.value.height),1)):(0,s.createCommentVNode)(``,!0)]),(0,s.createElementVNode)(`div`,m,[(0,s.createElementVNode)(`div`,h,[(0,s.createVNode)((0,s.unref)(c.Button),{size:`small`,disabled:C.value<=1,"aria-label":`上一页`,onClick:n[0]||=e=>Ye(-1)},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(u.LeftOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`]),(0,s.createElementVNode)(`label`,null,[n[6]||=(0,s.createTextVNode)(` 第 `,-1),(0,s.createElementVNode)(`input`,{value:C.value,type:`number`,min:`1`,max:Math.max(1,v.pages.length),onChange:Xe,onKeydown:(0,s.withKeys)(Xe,[`enter`])},null,40,g),(0,s.createTextVNode)(` / `+(0,s.toDisplayString)(v.pages.length)+` 页 `,1)]),(0,s.createVNode)((0,s.unref)(c.Button),{size:`small`,disabled:C.value>=v.pages.length,"aria-label":`下一页`,onClick:n[1]||=e=>Ye(1)},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(u.RightOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),(0,s.createElementVNode)(`div`,_,[(0,s.createVNode)((0,s.unref)(c.Button),{size:`small`,disabled:v.zoom<=Ae.value,"aria-label":`缩小页面`,onClick:n[2]||=e=>Ze(v.zoom-.1)},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(u.ZoomOutOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`]),(0,s.createElementVNode)(`button`,{type:`button`,onClick:n[3]||=e=>Ze(1)},(0,s.toDisplayString)(Math.round(v.zoom*100))+`%`,1),(0,s.createVNode)((0,s.unref)(c.Button),{size:`small`,disabled:v.zoom>=je.value,"aria-label":`放大页面`,onClick:n[4]||=e=>Ze(v.zoom+.1)},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(u.ZoomInOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`]),(0,s.createVNode)((0,s.unref)(c.Button),{size:`small`,"aria-label":`适应宽度`,title:`适应宽度`,onClick:(0,s.unref)(Ce)},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(u.ColumnWidthOutlined),{"aria-hidden":`true`})]),_:1},8,[`onClick`])])])]),(0,s.createElementVNode)(`div`,{ref_key:`scrollRef`,ref:x,class:`gd-ant-contract-signing-location__canvas-scroll`,onScrollPassive:Ke,onClick:Qe,onDragover:n[5]||=(0,s.withModifiers)(()=>{},[`prevent`]),onDrop:ft},[v.pages.length?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:1,ref_key:`stackRef`,ref:S,class:`gd-ant-contract-signing-location__page-stack`,style:(0,s.normalizeStyle)({width:`${Te.value.width}px`,height:`${Te.value.height}px`})},[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(ke.value,t=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:t.layout.pageIndex,class:`gd-ant-contract-signing-location__page-shell`,style:(0,s.normalizeStyle)({top:`${t.layout.top}px`,left:`${t.layout.left}px`,width:`${t.layout.width}px`,height:`${t.layout.height}px`})},[(0,s.createElementVNode)(`div`,{class:`gd-ant-contract-signing-location__page`,style:(0,s.normalizeStyle)({width:`${U(t.page).width}px`,height:`${U(t.page).height}px`,transform:`scale(${v.zoom})`}),"aria-label":`${v.file?.fileName||`合同`}第 ${t.page.displayPageNumber} 页`},[I.value&&t.templatePage?((0,s.openBlock)(),(0,s.createBlock)(e.default,{key:0,page:t.templatePage},null,8,[`page`])):I.value?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,te,[n[8]||=(0,s.createElementVNode)(`strong`,null,`模板页面无法渲染`,-1),(0,s.createElementVNode)(`span`,null,(0,s.toDisplayString)(L.value||`页面结构无效,请回到模板设计器修复后重试。`),1)])):t.page.previewUrl?((0,s.openBlock)(),(0,s.createElementBlock)(`img`,{key:2,class:`gd-ant-contract-signing-location__page-image`,src:t.page.previewUrl,alt:`合同页面预览`},null,8,ne)):((0,s.openBlock)(),(0,s.createElementBlock)(`div`,re,[Le(t.layout.pageIndex)?((0,s.openBlock)(),(0,s.createElementBlock)(s.Fragment,{key:0},[(0,s.createElementVNode)(`strong`,null,`第 `+(0,s.toDisplayString)(t.page.displayPageNumber)+` 页加载中…`,1),(0,s.createElementVNode)(`span`,null,(0,s.toDisplayString)(t.page.width)+` × `+(0,s.toDisplayString)(t.page.height),1)],64)):Re(t.layout.pageIndex)?((0,s.openBlock)(),(0,s.createElementBlock)(s.Fragment,{key:1},[n[9]||=(0,s.createElementVNode)(`strong`,null,`合同页面预览加载失败`,-1),(0,s.createElementVNode)(`span`,null,(0,s.toDisplayString)(Re(t.layout.pageIndex)),1),(0,s.createElementVNode)(`button`,{type:`button`,onClick:(0,s.withModifiers)(e=>b(`retry`,t.layout.pageIndex),[`stop`])},`重试当前页`,8,ie)],64)):(0,s.unref)(r.isContractSigningPageUsable)(t.page)?((0,s.openBlock)(),(0,s.createElementBlock)(s.Fragment,{key:3},[(0,s.createElementVNode)(`strong`,null,`第 `+(0,s.toDisplayString)(t.page.displayPageNumber)+` 页`,1),(0,s.createElementVNode)(`span`,null,(0,s.toDisplayString)(t.page.width)+` × `+(0,s.toDisplayString)(t.page.height),1),n[12]||=(0,s.createElementVNode)(`small`,null,`等待 dataProvider 返回页面预览图`,-1)],64)):((0,s.openBlock)(),(0,s.createElementBlock)(s.Fragment,{key:2},[n[10]||=(0,s.createElementVNode)(`strong`,null,`页面元数据不完整`,-1),n[11]||=(0,s.createElementVNode)(`span`,null,`缺少有效的原始宽高,无法安全计算签署坐标。`,-1),(0,s.createElementVNode)(`button`,{type:`button`,onClick:(0,s.withModifiers)(e=>b(`retry`,t.layout.pageIndex),[`stop`])},`重新加载页面`,8,ae)],64))])),(0,s.createElementVNode)(`div`,oe,[(0,s.createElementVNode)(`div`,se,[z.value&&z.value.pageIndex===t.layout.pageIndex?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:0,class:`gd-ant-contract-signing-location__coordinate-guides`,style:(0,s.normalizeStyle)(Ve(z.value)),"aria-hidden":`true`},[(0,s.createElementVNode)(`span`,ce,[(0,s.createElementVNode)(`small`,null,`上 `+(0,s.toDisplayString)(W(t.page)?.top),1)]),(0,s.createElementVNode)(`span`,le,[(0,s.createElementVNode)(`small`,null,`下 `+(0,s.toDisplayString)(W(t.page)?.bottom),1)]),(0,s.createElementVNode)(`span`,ue,[(0,s.createElementVNode)(`small`,null,`左 `+(0,s.toDisplayString)(W(t.page)?.left),1)]),(0,s.createElementVNode)(`span`,de,[(0,s.createElementVNode)(`small`,null,`右 `+(0,s.toDisplayString)(W(t.page)?.right),1)])],4)):(0,s.createCommentVNode)(``,!0),E.value.length&&D.value===t.layout.pageIndex?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,fe,[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(E.value,(e,n)=>((0,s.openBlock)(),(0,s.createElementBlock)(`span`,{key:`${e.axis}-${n}`,class:(0,s.normalizeClass)(e.axis===`x`?`is-vertical`:`is-horizontal`),style:(0,s.normalizeStyle)(He(e,t.page))},null,6))),128))])):(0,s.createCommentVNode)(``,!0),((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(ze(t.layout.pageIndex),e=>((0,s.openBlock)(),(0,s.createElementBlock)(`button`,{key:e.id,type:`button`,class:(0,s.normalizeClass)([`gd-ant-contract-signing-location__placement`,[`is-${e.signType}`,{"is-selected":e.id===v.selectedPlacementId}]]),style:(0,s.normalizeStyle)(Be(e)),title:K(e).alt,"aria-label":K(e).alt,"aria-pressed":e.id===v.selectedPlacementId,onClick:(0,s.withModifiers)(t=>b(`select`,e.id),[`stop`]),onPointerdown:t=>tt(t,e),onLostpointercapture:$,onKeydown:t=>ut(t,e)},[(0,s.createElementVNode)(`span`,me,[(0,s.createElementVNode)(`img`,{class:`gd-ant-contract-signing-location__placement-visual`,src:K(e).dataUrl,alt:K(e).alt,draggable:`false`},null,8,he)]),e.mustSign?((0,s.openBlock)(),(0,s.createElementBlock)(`span`,ge,`必签`)):(0,s.createCommentVNode)(``,!0),((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(Ue(e)?be:[],t=>((0,s.openBlock)(),(0,s.createElementBlock)(`i`,{key:t,class:(0,s.normalizeClass)([`gd-ant-contract-signing-location__resize-handle`,`is-${t}`]),onPointerdown:(0,s.withModifiers)(n=>nt(n,e,t),[`stop`])},null,42,_e))),128))],46,pe))),128))])])],12,ee)],4))),128))],4)):((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:0,class:(0,s.normalizeClass)([`gd-ant-contract-signing-location__canvas-state`,{"is-error":I.value&&L.value}]),role:`status`},[I.value&&L.value?((0,s.openBlock)(),(0,s.createElementBlock)(s.Fragment,{key:0},[n[7]||=(0,s.createElementVNode)(`strong`,null,`合同模板无法渲染`,-1),(0,s.createElementVNode)(`span`,null,(0,s.toDisplayString)(L.value),1)],64)):((0,s.openBlock)(),(0,s.createElementBlock)(s.Fragment,{key:1},[(0,s.createTextVNode)(`请选择可用的合同页面`)],64))],2))],544)]))}});exports.default=v;
@@ -1 +1 @@
1
- require(`../../../_virtual/_rolldown/runtime.cjs`);let e=require(`vue`);var t=[`data-template-page-id`,`data-template-page-index`],n=[`innerHTML`],r={key:0,class:`gd-ant-contract-signing-location__template-warning`,role:`alert`},i=(0,e.defineComponent)({name:`ContractSigningTemplatePage`,__name:`ContractSigningTemplatePage`,props:{page:{}},setup(i){return(a,o)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:`gd-ant-contract-signing-location__template-page gd-contract-template-page`,"data-template-page-id":i.page.pageId,"data-template-page-index":i.page.pageIndex},[(0,e.createElementVNode)(`div`,{class:`gd-ant-contract-signing-location__template-page-content`,innerHTML:i.page.contentHtml},null,8,n),i.page.errors.length?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,r,[o[0]||=(0,e.createElementVNode)(`strong`,null,`模板已安全降级展示`,-1),(0,e.createElementVNode)(`span`,null,(0,e.toDisplayString)(i.page.errors[0]),1)])):(0,e.createCommentVNode)(``,!0)],8,t))}});exports.default=i;
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../pro-contract-template-designer/src/utils/page-decorations.cjs`),t=require(`../../pro-contract-template-designer/src/ContractTemplatePageDecorations.cjs`);let n=require(`vue`);var r=[`data-page-id`,`data-template-page-index`,`data-page-width`,`data-page-height`],i=[`innerHTML`],a={key:0,class:`gd-ant-contract-signing-location__template-warning`,role:`alert`},o=(0,n.defineComponent)({name:`ContractSigningTemplatePage`,__name:`ContractSigningTemplatePage`,props:{page:{}},setup(o){let s=o,c=(0,n.ref)(),l=(0,n.ref)(0),u=(0,n.computed)(()=>({"has-contract-header":e.hasEnabledPageHeader(s.page.pageDecorations,s.page.pageNumber),"has-contract-footer":e.hasEnabledPageFooter(s.page.pageDecorations,s.page.pageNumber)})),d=(0,n.computed)(()=>({width:`${s.page.displayWidth}px`,minHeight:`${s.page.displayHeight}px`,paddingTop:`${s.page.paddingTop}px`,paddingBottom:`${s.page.paddingBottom}px`})),f=(0,n.computed)(()=>l.value>1?`第 ${s.page.pageNumber} 页正文超出纸张 ${Math.round(l.value)}px,生成 PDF 时会分页,请回模板设计器调整后再指定位置。`:``),p=(0,n.computed)(()=>s.page.errors[0]||f.value),m=(0,n.computed)(()=>s.page.errors.length?`模板已安全降级展示`:`该页签署位置不可信`),h;function g(){let e=c.value;if(!e){l.value=0;return}l.value=Math.max(0,e.offsetHeight-s.page.displayHeight)}return(0,n.watch)(c,e=>{if(h?.disconnect(),h=void 0,!e||typeof ResizeObserver>`u`){g();return}h=new ResizeObserver(g),h.observe(e),g()},{immediate:!0}),(0,n.watch)(()=>[s.page.contentHtml,s.page.displayHeight],g),(0,n.onBeforeUnmount)(()=>{h?.disconnect(),h=void 0}),(e,s)=>((0,n.openBlock)(),(0,n.createElementBlock)(`section`,{ref_key:`pageEl`,ref:c,class:(0,n.normalizeClass)([`gd-contract-template-page gd-ant-contract-signing-location__template-page`,u.value]),"data-page-id":o.page.pageId,"data-template-page-index":o.page.pageIndex,"data-page-width":o.page.displayWidth,"data-page-height":o.page.displayHeight,style:(0,n.normalizeStyle)(d.value)},[(0,n.createVNode)(t.default,{decorations:o.page.pageDecorations,"page-number":o.page.pageNumber,"total-pages":o.page.totalPages,variables:o.page.decorationVariables,values:o.page.decorationValues},null,8,[`decorations`,`page-number`,`total-pages`,`variables`,`values`]),(0,n.createElementVNode)(`div`,{class:`gd-contract-template-page__content`,innerHTML:o.page.contentHtml},null,8,i),p.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,a,[(0,n.createElementVNode)(`strong`,null,(0,n.toDisplayString)(m.value),1),(0,n.createElementVNode)(`span`,null,(0,n.toDisplayString)(p.value),1)])):(0,n.createCommentVNode)(``,!0)],14,r))}});exports.default=o;
@@ -1 +1 @@
1
- var e=[{value:`01`,label:`单位专用章`},{value:`02`,label:`财务专用章`},{value:`03`,label:`发票专用章`},{value:`04`,label:`合同专用章`},{value:`05`,label:`法定代表人名章`}],t=`application/x-gd-contract-signing-location`,n={seal:`印章`,signature:`签名`,date:`签署日期`},r=8,i=640,a=72/25.4,o={"01":{shape:`circle`,widthMm:40,heightMm:40,centerPattern:`star`,fontFamily:`SimSun, STSong, serif`},"02":{shape:`circle`,widthMm:40,heightMm:40,centerPattern:`star`,fontFamily:`SimSun, STSong, serif`},"03":{shape:`ellipse`,widthMm:40,heightMm:30,centerPattern:`none`,fontFamily:`FangSong, STFangsong, serif`},"04":{shape:`circle`,widthMm:40,heightMm:40,centerPattern:`star`,fontFamily:`SimSun, STSong, serif`},"05":{shape:`square`,widthMm:20,heightMm:20,centerPattern:`none`,fontFamily:`SimSun, STSong, serif`}};function s(e){return Math.round(e*a*100)/100}function c(e,t=96){return Math.round(e/25.4*t*100)/100}function l(t,n=e){let r=String(t??``).trim(),i=n.find(e=>String(e.value).trim()===r),a=e.find(e=>String(e.value).trim()===r),s=o[r]??o[`04`];if(!(!i&&!a))return{...a??{},...i??{},...s,...i?.shape?{shape:i.shape}:{},...i?.widthMm?{widthMm:i.widthMm}:{},...i?.heightMm?{heightMm:i.heightMm}:{},...i?.centerPattern?{centerPattern:i.centerPattern}:{},fontFamily:i?.fontFamily||s.fontFamily}}function u(t,n=e){let r=(Array.isArray(t)?t:t==null?[]:[t]).map(e=>l(e,n)).filter(e=>!!e);return r.length?{width:Math.max(...r.map(e=>s(Number(e.widthMm)))),height:Math.max(...r.map(e=>s(Number(e.heightMm))))}:{width:s(40),height:s(40)}}function d(t,n=e,r=96){let i=u(t,n);return{width:c(i.width/a,r),height:c(i.height/a,r)}}var f={default:{seal:{width:113.39,height:113.39},signature:{width:142,height:57},date:{width:170,height:57}}},p=8,m=48,h=3,g=150;exports.CONTRACT_SIGNING_AUTO_SCROLL_EDGE_PX=m,exports.CONTRACT_SIGNING_MIN_PLACEMENT_SIZE=p,exports.CONTRACT_SIGNING_PLACEMENT_LABELS=n,exports.CONTRACT_SIGNING_PLACEMENT_MIME=t,exports.CONTRACT_SIGNING_PREVIEW_CONCURRENCY=h,exports.CONTRACT_SIGNING_PX_PER_MM=a,exports.CONTRACT_SIGNING_SEAL_MAX_SIZE=i,exports.CONTRACT_SIGNING_SEAL_MIN_SIZE=r,exports.CONTRACT_SIGNING_SEAL_TYPE_OPTIONS=e,exports.CONTRACT_SIGNING_SEAL_TYPE_PRESETS=o,exports.CONTRACT_SIGNING_SIZE_PROFILES=f,exports.CONTRACT_SIGNING_VISIBLE_PAGES_DEBOUNCE_MS=g,exports.millimetersToContractSigningCssPixels=c,exports.millimetersToContractSigningPixels=s,exports.resolveContractSigningSealSizeInCssPixels=d,exports.resolveContractSigningSealSizeInPixels=u,exports.resolveContractSigningSealTypeOption=l;
1
+ var e=[{value:`01`,label:`单位专用章`},{value:`02`,label:`财务专用章`},{value:`03`,label:`发票专用章`},{value:`04`,label:`合同专用章`},{value:`05`,label:`法定代表人名章`}],t=`application/x-gd-contract-signing-location`,n={seal:`印章`,signature:`签名`,date:`签署日期`},r=8,i=640,a=72/25.4,o={"01":{shape:`circle`,widthMm:40,heightMm:40,centerPattern:`star`,fontFamily:`SimSun, STSong, serif`},"02":{shape:`circle`,widthMm:40,heightMm:40,centerPattern:`star`,fontFamily:`SimSun, STSong, serif`},"03":{shape:`ellipse`,widthMm:40,heightMm:30,centerPattern:`none`,fontFamily:`FangSong, STFangsong, serif`},"04":{shape:`circle`,widthMm:40,heightMm:40,centerPattern:`star`,fontFamily:`SimSun, STSong, serif`},"05":{shape:`square`,widthMm:20,heightMm:20,centerPattern:`none`,fontFamily:`SimSun, STSong, serif`}},s=96/72;function c(e){return{width:l(e?.width),height:l(e?.height)}}function l(e){let t=Number(e);return!Number.isFinite(t)||t<=0?0:Math.round(t/s*100)/100}function u(e){return Math.round(e*a*100)/100}function d(e,t=96){return Math.round(e/25.4*t*100)/100}function f(t,n=e){let r=String(t??``).trim(),i=n.find(e=>String(e.value).trim()===r),a=e.find(e=>String(e.value).trim()===r),s=o[r]??o[`04`];if(!(!i&&!a))return{...a??{},...i??{},...s,...i?.shape?{shape:i.shape}:{},...i?.widthMm?{widthMm:i.widthMm}:{},...i?.heightMm?{heightMm:i.heightMm}:{},...i?.centerPattern?{centerPattern:i.centerPattern}:{},fontFamily:i?.fontFamily||s.fontFamily}}function p(t,n=e){let r=(Array.isArray(t)?t:t==null?[]:[t]).map(e=>f(e,n)).filter(e=>!!e);return r.length?{width:Math.max(...r.map(e=>u(Number(e.widthMm)))),height:Math.max(...r.map(e=>u(Number(e.heightMm))))}:{width:u(40),height:u(40)}}function m(t,n=e,r=96){let i=p(t,n);return{width:d(i.width/a,r),height:d(i.height/a,r)}}var h={default:{seal:{width:113.39,height:113.39},signature:{width:142,height:57},date:{width:170,height:57}}},g=8,_=48,v=3,y=150;exports.CONTRACT_SIGNING_AUTO_SCROLL_EDGE_PX=_,exports.CONTRACT_SIGNING_CSS_PX_PER_POINT=s,exports.CONTRACT_SIGNING_MIN_PLACEMENT_SIZE=g,exports.CONTRACT_SIGNING_PLACEMENT_LABELS=n,exports.CONTRACT_SIGNING_PLACEMENT_MIME=t,exports.CONTRACT_SIGNING_PREVIEW_CONCURRENCY=v,exports.CONTRACT_SIGNING_PX_PER_MM=a,exports.CONTRACT_SIGNING_SEAL_MAX_SIZE=i,exports.CONTRACT_SIGNING_SEAL_MIN_SIZE=r,exports.CONTRACT_SIGNING_SEAL_TYPE_OPTIONS=e,exports.CONTRACT_SIGNING_SEAL_TYPE_PRESETS=o,exports.CONTRACT_SIGNING_SIZE_PROFILES=h,exports.CONTRACT_SIGNING_VISIBLE_PAGES_DEBOUNCE_MS=y,exports.millimetersToContractSigningCssPixels=d,exports.millimetersToContractSigningPixels=u,exports.resolveContractSigningSealSizeInCssPixels=m,exports.resolveContractSigningSealSizeInPixels=p,exports.resolveContractSigningSealTypeOption=f,exports.toContractSigningRulePageSize=c;
@@ -1 +1 @@
1
- const e=require(`./constants.cjs`);var t=1,n=4;function r(e,t,n,r,i,a){let o=x(e.signLeft,0),s=x(e.signTop,0),c=Math.max(1,S(e.signWidth,1)),l=Math.max(1,S(e.signHeight,1)),d=o+c,f=s+l,p=l/c,m=Math.max(.01,p),h;if(t.length===2){let e=t.includes(`e`)?o:d,i=t.includes(`s`)?s:f;h=Math.max(Math.abs(n-e),Math.abs(r-i)/m)}else h=t===`e`?n-o:t===`w`?d-n:t===`s`?(r-s)/m:(f-r)/m;let g=Math.max(1,S(i.width,1)),_=Math.max(1,S(i.height,1)),v=t.includes(`w`)?d:g-o,y=t.includes(`n`)?f:_-s,b=Math.min(v,y/m),C=u(a.min,a.max),w=Math.min(C.max,Math.max(1,b)),T=Math.min(C.min,w);h=Math.min(Math.max(h,T),w);let E=h*p;return{signLeft:t.includes(`w`)?d-h:o,signTop:t.includes(`n`)?f-E:s,signWidth:h,signHeight:E}}function i(e){let t=Number(e);return Number.isFinite(t)&&t>0?t:1}function a(e,t=1){let n=Number(e);if(!Number.isFinite(n)||n<=0)return 0;let r=i(t);return Math.floor(n/r)}function o(e){return{signLeft:Math.round(x(e.signLeft,0)),signTop:Math.round(x(e.signTop,0)),signWidth:Math.round(x(e.signWidth,0)),signHeight:Math.round(x(e.signHeight,0))}}function s(t){let n=typeof t==`string`?e.CONTRACT_SIGNING_SIZE_PROFILES[t]??e.CONTRACT_SIGNING_SIZE_PROFILES.default:t??e.CONTRACT_SIGNING_SIZE_PROFILES.default;return{seal:b(n.seal,e.CONTRACT_SIGNING_SIZE_PROFILES.default.seal),signature:b(n.signature,e.CONTRACT_SIGNING_SIZE_PROFILES.default.signature),date:b(n.date,e.CONTRACT_SIGNING_SIZE_PROFILES.default.date)}}function c(e,t){return{...s(t)[e]}}function l(e){let t=e.page.width/Math.max(1,e.canvasRect.width),n=e.page.height/Math.max(1,e.canvasRect.height),r=x(e.originOffset,0);return{x:w((e.clientX-e.canvasRect.left)*t-r),y:w((e.clientY-e.canvasRect.top)*n-r)}}function u(e,t){let n=Number(e),r=Number(t),i=Number.isFinite(n)&&n>0?n:8,a=Number.isFinite(r)&&r>0?r:640;if(i>a){let e=i;i=a,a=e}return{min:i,max:a}}function d(e,t,n,r,i,a){return f({...e,signLeft:e.signLeft+t*r.width/Math.max(1,i.width),signTop:e.signTop+n*r.height/Math.max(1,i.height)},r,a)}function f(e,t,n){let r=S(t.width,1),i=S(t.height,1),a=n?.minSize??8,{width:o,height:s}=e.signType===`seal`?y(e,r,i,n?.sealSizeLimit,n?.sealTypes??e.sealType,n?.sealTypeOptions):{width:C(S(e.signWidth,a),Math.min(a,r),r),height:C(S(e.signHeight,a),Math.min(a,i),i)},c=C(x(e.signLeft,0),0,Math.max(0,r-o)),l=C(x(e.signTop,0),0,Math.max(0,i-s)),u={...e,signLeft:w(c),signTop:w(l),signWidth:w(o),signHeight:w(s),mustSign:e.mustSign!==!1};return delete u.sealType,e.signType===`seal`&&Array.isArray(e.sealType)&&e.sealType.length&&(u.sealType=Array.from(new Set(e.sealType.map(String).map(e=>e.trim()).filter(Boolean)))),u}function p(e,t){let n=o(e);return{left:n.signLeft,top:n.signTop,right:w(Math.max(0,t.width-n.signLeft-n.signWidth)),bottom:w(Math.max(0,t.height-n.signTop-n.signHeight))}}function m(e,t=.5,n=1.5){return w(C(x(e,1),t,n))}function h(e,t,n=!1){return!e||n?!1:e.signType===`seal`?!0:!!t}function g(e,t,n,r=4){let i=o(e),a=Math.max(0,x(r,4))/Math.max(.01,x(n,1)),s=i.signWidth,c=i.signHeight,l=v([{value:i.signLeft,toOrigin:e=>e},{value:i.signLeft+s,toOrigin:e=>e-s},{value:i.signLeft+s/2,toOrigin:e=>e-s/2}],_(t,e,`x`),a),u=v([{value:i.signTop,toOrigin:e=>e},{value:i.signTop+c,toOrigin:e=>e-c},{value:i.signTop+c/2,toOrigin:e=>e-c/2}],_(t,e,`y`),a),d={...e,signLeft:w(l?.origin??i.signLeft),signTop:w(u?.origin??i.signTop)},f=[];return l&&f.push({axis:`x`,position:w(l.guide)}),u&&f.push({axis:`y`,position:w(u.guide)}),{placement:d,guides:f}}function _(e,t,n){let r=[];return e.forEach(e=>{if(e.id===t.id||e.pageIndex!==t.pageIndex)return;let i=o(e);if(n===`x`){r.push(i.signLeft,i.signLeft+i.signWidth,i.signLeft+i.signWidth/2);return}r.push(i.signTop,i.signTop+i.signHeight,i.signTop+i.signHeight/2)}),r}function v(e,t,n){let r;return e.forEach(e=>{t.forEach(t=>{let i=Math.abs(e.value-t);i>n||(!r||i<r.distance)&&(r={origin:e.toOrigin(t),guide:t,distance:i})})}),r}function y(t,n,r,i,a,o){let s=u(i?.min,i?.max),c=e.resolveContractSigningSealSizeInPixels(a,o),l=Number(t.signWidth),d=Number(t.signHeight),f=Number.isFinite(l)&&l>0,p=Number.isFinite(d)&&d>0,m=C(f?l:p?d:c.width,Math.min(s.min,n),Math.min(s.max,n));return f&&p?{width:m,height:C(d,Math.min(s.min,r),Math.min(s.max,r))}:{width:m,height:C(m*(c.height/Math.max(1,c.width)),Math.min(s.min,r),Math.min(s.max,r))}}function b(e,t){return{width:S(e?.width,t.width),height:S(e?.height,t.height)}}function x(e,t){let n=Number(e);return Number.isFinite(n)?n:t}function S(e,t){return Math.max(1,x(e,t))}function C(e,t,n){return Math.min(Math.max(e,t),Math.max(t,n))}function w(e){return Math.round(e*100)/100}exports.CONTRACT_SIGNING_RENDER_ORIGIN_OFFSET=t,exports.CONTRACT_SIGNING_SNAP_THRESHOLD_PX=n,exports.canResizeContractSigningPlacement=h,exports.clampContractSigningPlacement=f,exports.clampContractSigningZoom=m,exports.displayPointToContractPoint=l,exports.getContractSigningPlacementDistances=p,exports.getContractSigningPlacementSize=c,exports.getContractSigningRuleGeometry=o,exports.moveContractSigningPlacementByDisplayDelta=d,exports.normalizeContractSigningCoordinateDimension=a,exports.normalizeContractSigningCoordinateScale=i,exports.resizeContractSigningSealGeometry=r,exports.resolveContractSigningSealSizeLimit=u,exports.resolveContractSigningSizeProfile=s,exports.snapContractSigningPlacement=g;
1
+ const e=require(`./constants.cjs`);var t=1,n=4;function r(e,t,n,r,i,a){let o=x(e.signLeft,0),s=x(e.signTop,0),c=Math.max(1,S(e.signWidth,1)),l=Math.max(1,S(e.signHeight,1)),d=o+c,f=s+l,p=l/c,m=Math.max(.01,p),h;if(t.length===2){let e=t.includes(`e`)?o:d,i=t.includes(`s`)?s:f;h=Math.max(Math.abs(n-e),Math.abs(r-i)/m)}else h=t===`e`?n-o:t===`w`?d-n:t===`s`?(r-s)/m:(f-r)/m;let g=Math.max(1,S(i.width,1)),_=Math.max(1,S(i.height,1)),v=t.includes(`w`)?d:g-o,y=t.includes(`n`)?f:_-s,b=Math.min(v,y/m),C=u(a.min,a.max),w=Math.min(C.max,Math.max(1,b)),T=Math.min(C.min,w);h=Math.min(Math.max(h,T),w);let E=h*p;return{signLeft:t.includes(`w`)?d-h:o,signTop:t.includes(`n`)?f-E:s,signWidth:h,signHeight:E}}function i(e){let t=Number(e);return Number.isFinite(t)&&t>0?t:1}function a(e,t=1){let n=Number(e);if(!Number.isFinite(n)||n<=0)return 0;let r=i(t);return Math.floor(n/r)}function o(e){return{signLeft:Math.round(x(e.signLeft,0)),signTop:Math.round(x(e.signTop,0)),signWidth:Math.round(x(e.signWidth,0)),signHeight:Math.round(x(e.signHeight,0))}}function s(t){let n=typeof t==`string`?e.CONTRACT_SIGNING_SIZE_PROFILES[t]??e.CONTRACT_SIGNING_SIZE_PROFILES.default:t??e.CONTRACT_SIGNING_SIZE_PROFILES.default;return{seal:b(n.seal,e.CONTRACT_SIGNING_SIZE_PROFILES.default.seal),signature:b(n.signature,e.CONTRACT_SIGNING_SIZE_PROFILES.default.signature),date:b(n.date,e.CONTRACT_SIGNING_SIZE_PROFILES.default.date)}}function c(e,t){return{...s(t)[e]}}function l(e){let t=e.page.width/Math.max(1,e.canvasRect.width),n=e.page.height/Math.max(1,e.canvasRect.height),r=x(e.originOffset,0);return{x:w((e.clientX-e.canvasRect.left)*t-r),y:w((e.clientY-e.canvasRect.top)*n-r)}}function u(e,t){let n=Number(e),r=Number(t),i=Number.isFinite(n)&&n>0?n:8,a=Number.isFinite(r)&&r>0?r:640;if(i>a){let e=i;i=a,a=e}return{min:i,max:a}}function d(e,t,n,r,i,a){return f({...e,signLeft:e.signLeft+t*r.width/Math.max(1,i.width),signTop:e.signTop+n*r.height/Math.max(1,i.height)},r,a)}function f(e,t,n){let r=S(t.width,1),i=S(t.height,1),a=n?.minSize??8,{width:o,height:s}=e.signType===`seal`?y(e,r,i,n?.sealSizeLimit,n?.sealTypes??e.sealType,n?.sealTypeOptions):{width:C(S(e.signWidth,a),Math.min(a,r),r),height:C(S(e.signHeight,a),Math.min(a,i),i)},c=C(x(e.signLeft,0),0,Math.max(0,r-o)),l=C(x(e.signTop,0),0,Math.max(0,i-s)),u={...e,signLeft:w(c),signTop:w(l),signWidth:w(o),signHeight:w(s),mustSign:e.mustSign!==!1};return delete u.sealType,e.signType===`seal`&&Array.isArray(e.sealType)&&e.sealType.length&&(u.sealType=Array.from(new Set(e.sealType.map(String).map(e=>e.trim()).filter(Boolean)))),u}function p(e,t){let n=o(e);return{left:n.signLeft,top:n.signTop,right:w(Math.max(0,t.width-n.signLeft-n.signWidth)),bottom:w(Math.max(0,t.height-n.signTop-n.signHeight))}}function m(e,t=.5,n=1.5){return w(C(x(e,1),t,n))}function h(e,t,n=!1){return!e||n?!1:e.signType===`seal`?!0:!!t}function g(e,t,n,r=4,i){let a=o(e),s=Math.max(0,x(r,4)),c=Math.max(.01,x(n,1)),l=Math.max(1,x(i?.width,1)),u=Math.max(1,x(i?.height,1)),d=Math.max(1,x(i?.displayWidth,l)),f=Math.max(1,x(i?.displayHeight,u)),p=s/c*l/d,m=s/c*u/f,h=a.signWidth,g=a.signHeight,y=v([{value:a.signLeft,toOrigin:e=>e},{value:a.signLeft+h,toOrigin:e=>e-h},{value:a.signLeft+h/2,toOrigin:e=>e-h/2}],_(t,e,`x`),p),b=v([{value:a.signTop,toOrigin:e=>e},{value:a.signTop+g,toOrigin:e=>e-g},{value:a.signTop+g/2,toOrigin:e=>e-g/2}],_(t,e,`y`),m),S={...e,signLeft:w(y?.origin??a.signLeft),signTop:w(b?.origin??a.signTop)},C=[];return y&&C.push({axis:`x`,position:w(y.guide)}),b&&C.push({axis:`y`,position:w(b.guide)}),{placement:S,guides:C}}function _(e,t,n){let r=[];return e.forEach(e=>{if(e.id===t.id||e.pageIndex!==t.pageIndex)return;let i=o(e);if(n===`x`){r.push(i.signLeft,i.signLeft+i.signWidth,i.signLeft+i.signWidth/2);return}r.push(i.signTop,i.signTop+i.signHeight,i.signTop+i.signHeight/2)}),r}function v(e,t,n){let r;return e.forEach(e=>{t.forEach(t=>{let i=Math.abs(e.value-t);i>n||(!r||i<r.distance)&&(r={origin:e.toOrigin(t),guide:t,distance:i})})}),r}function y(t,n,r,i,a,o){let s=u(i?.min,i?.max),c=e.resolveContractSigningSealSizeInPixels(a,o),l=Number(t.signWidth),d=Number(t.signHeight),f=Number.isFinite(l)&&l>0,p=Number.isFinite(d)&&d>0,m=C(f?l:p?d:c.width,Math.min(s.min,n),Math.min(s.max,n));return f&&p?{width:m,height:C(d,Math.min(s.min,r),Math.min(s.max,r))}:{width:m,height:C(m*(c.height/Math.max(1,c.width)),Math.min(s.min,r),Math.min(s.max,r))}}function b(e,t){return{width:S(e?.width,t.width),height:S(e?.height,t.height)}}function x(e,t){let n=Number(e);return Number.isFinite(n)?n:t}function S(e,t){return Math.max(1,x(e,t))}function C(e,t,n){return Math.min(Math.max(e,t),Math.max(t,n))}function w(e){return Math.round(e*100)/100}exports.CONTRACT_SIGNING_RENDER_ORIGIN_OFFSET=t,exports.CONTRACT_SIGNING_SNAP_THRESHOLD_PX=n,exports.canResizeContractSigningPlacement=h,exports.clampContractSigningPlacement=f,exports.clampContractSigningZoom=m,exports.displayPointToContractPoint=l,exports.getContractSigningPlacementDistances=p,exports.getContractSigningPlacementSize=c,exports.getContractSigningRuleGeometry=o,exports.moveContractSigningPlacementByDisplayDelta=d,exports.normalizeContractSigningCoordinateDimension=a,exports.normalizeContractSigningCoordinateScale=i,exports.resizeContractSigningSealGeometry=r,exports.resolveContractSigningSealSizeLimit=u,exports.resolveContractSigningSizeProfile=s,exports.snapContractSigningPlacement=g;
@@ -1 +1 @@
1
- const e=require(`./constants.cjs`),t=require(`./coordinates.cjs`),n=require(`./template-source.cjs`);var r=0;function i(e=``){return{contractId:e,files:[],placements:[]}}function a(e,n){let r=v(e?.files),i=T(r);return{contractId:String(e?.contractId??``).trim(),files:r,placements:Array.isArray(e?.placements)?e.placements.map(C).map(e=>{let r=i.get(E(e.fileId,e.pageIndex));return r?t.clampContractSigningPlacement(e,r,{sealSizeLimit:n?.sealSizeLimit,sealTypes:e.sealType,sealTypeOptions:n?.sealTypeOptions}):e}):[]}}function o(e){return{contractId:e.contractId,files:e.files.map(e=>({...e,pages:e.pages.map(e=>({...e})),...e.source?.type===`template`?{source:{type:`template`,template:S(e.source.template),...e.source.values?{values:{...e.source.values}}:{}}}:e.source?{source:{type:`preview`}}:{}})),placements:e.placements.map(e=>({...e,sealType:e.sealType?[...e.sealType]:void 0}))}}function s(e,r=1){let i=a(e),o=t.normalizeContractSigningCoordinateScale(r);if(o===1)return i;let s=e=>t.normalizeContractSigningCoordinateDimension(e,o);return{...i,files:i.files.map(e=>n.isContractSigningTemplateFile(e)?e:{...e,pages:e.pages.map(e=>({...e,width:s(e.width),height:s(e.height)}))}),placements:i.placements.map(e=>{let t=i.files.find(t=>t.fileId===e.fileId);return n.isContractSigningTemplateFile(t)?e:{...e,signLeft:s(e.signLeft),signTop:s(e.signTop),signWidth:s(e.signWidth),signHeight:s(e.signHeight)}})}}function c(e,t,n){return e.files.find(e=>e.fileId===t)?.pages.find(e=>e.pageIndex===n)}function l(e){if(e?.length)return e.reduce((e,t)=>t.pageIndex<e.pageIndex?t:e)}function u(n,r,i,a){let o={...n,...r,id:n.id,fileId:n.fileId,pageIndex:r.pageIndex===void 0?n.pageIndex:r.pageIndex};if(n.signType===`seal`){if(o.signType=`seal`,r.sealType!==void 0&&Array.isArray(r.sealType)){let t=e.resolveContractSigningSealSizeInPixels(r.sealType,a?.sealTypeOptions);o.signWidth=t.width,o.signHeight=t.height}if(r.sealType===void 0){let e=Number(r.signWidth),t=Number(r.signHeight);if(Number.isFinite(e)&&e>0&&Number.isFinite(t)&&t>0)o.signWidth=e,o.signHeight=t;else{let r=Number.isFinite(e)&&e>0?e:Number.isFinite(t)&&t>0?t:n.signWidth;o.signWidth=r,o.signHeight=r}}}return i?t.clampContractSigningPlacement(o,i,{sealSizeLimit:a?.sealSizeLimit,sealTypes:o.sealType,sealTypeOptions:a?.sealTypeOptions}):o}function d(e){return!!(e&&j(e.width)&&j(e.height))}function f(e,n,r=1,i=!1){if(i||d(e)||!n.width||!n.height)return;let a=t.normalizeContractSigningCoordinateDimension(n.width,r),o=t.normalizeContractSigningCoordinateDimension(n.height,r);return a>0&&o>0?{width:a,height:o}:void 0}function p(n,i,a,o={}){let s=n===`seal`?e.resolveContractSigningSealSizeInPixels(o.sealType??[`04`],o.sealTypeOptions):t.getContractSigningPlacementSize(n,o.sizeProfile);return r+=1,t.clampContractSigningPlacement({id:`contract-signing-placement-${Date.now().toString(36)}-${r.toString(36)}`,fileId:i,pageIndex:a.pageIndex,signType:n,signLeft:o.signLeft??(a.width-s.width)/2,signTop:o.signTop??(a.height-s.height)/2,signWidth:s.width,signHeight:s.height,mustSign:!0,...n===`seal`?{sealType:o.sealType===void 0?[`04`]:w(o.sealType)}:{}},a,{sealSizeLimit:o.sealSizeLimit,sealTypes:o.sealType,sealTypeOptions:o.sealTypeOptions})}function m(t,r={}){let i=[],a=r.allowedSealTypes?new Set(Array.from(r.allowedSealTypes,e=>String(e).trim()).filter(Boolean)):void 0;t.files.length||i.push({code:`CONTRACT_FILES_MISSING`,message:`合同没有可用文件`}),t.placements.length||i.push({code:`SIGNING_PLACEMENTS_MISSING`,message:`请至少添加一个签署位置`});let o=new Set,s=new Set;return t.files.forEach(e=>{e.fileId?o.has(e.fileId)&&i.push({code:`CONTRACT_FILE_ID_DUPLICATE`,message:`合同文件 ID ${e.fileId} 重复`,fileId:e.fileId}):i.push({code:`CONTRACT_FILE_ID_MISSING`,message:`合同文件缺少真实 fileId`}),o.add(e.fileId),e.pages.length||i.push({code:`CONTRACT_PAGES_MISSING`,message:`文件 ${e.fileName||e.fileId} 没有页面元数据`,fileId:e.fileId}),i.push(...n.validateContractSigningTemplateFile(e));let t=new Set;e.pages.forEach(n=>{!Number.isInteger(n.pageIndex)||n.pageIndex<0?i.push({code:`CONTRACT_PAGE_INDEX_INVALID`,message:`页面索引必须是非负整数`,fileId:e.fileId,pageIndex:n.pageIndex}):t.has(n.pageIndex)&&i.push({code:`CONTRACT_PAGE_INDEX_DUPLICATE`,message:`文件 ${e.fileName||e.fileId} 的页面索引 ${n.pageIndex} 重复`,fileId:e.fileId,pageIndex:n.pageIndex}),t.add(n.pageIndex),d(n)||i.push({code:`CONTRACT_PAGE_SIZE_INVALID`,message:`页面缺少有效的原始宽高`,fileId:e.fileId,pageIndex:n.pageIndex})})}),t.placements.forEach(n=>{let r=e.CONTRACT_SIGNING_PLACEMENT_LABELS[n.signType]??`签署位置`;n.id?s.has(n.id)&&i.push({code:`SIGNING_PLACEMENT_ID_DUPLICATE`,message:`签署位置 ID ${n.id} 重复`,placementId:n.id}):i.push({code:`SIGNING_PLACEMENT_ID_MISSING`,message:`${r}缺少唯一 ID`}),s.add(n.id);let o=c(t,n.fileId,n.pageIndex);if(!o){i.push({code:`SIGNING_PLACEMENT_PAGE_MISSING`,message:`${r}引用了不存在的文件或页面`,placementId:n.id,fileId:n.fileId,pageIndex:n.pageIndex});return}[n.signLeft,n.signTop,n.signWidth,n.signHeight].some(e=>!Number.isFinite(e))?i.push({code:`SIGNING_PLACEMENT_GEOMETRY_INVALID`,message:`${r}坐标和尺寸必须是有限数字`,placementId:n.id}):n.signWidth<=0||n.signHeight<=0?i.push({code:`SIGNING_PLACEMENT_SIZE_INVALID`,message:`${r}宽高必须大于 0`,placementId:n.id}):(n.signLeft<0||n.signTop<0||n.signLeft+n.signWidth>o.width||n.signTop+n.signHeight>o.height)&&i.push({code:`SIGNING_PLACEMENT_OUT_OF_BOUNDS`,message:`${r}不能超出所属页面`,placementId:n.id,fileId:n.fileId,pageIndex:n.pageIndex}),n.signType!==`seal`&&n.sealType!==void 0&&i.push({code:`SIGNING_PLACEMENT_SEAL_TYPE_INVALID`,message:`只有印章位置可以配置印章类型`,placementId:n.id}),n.signType===`seal`&&(!Array.isArray(n.sealType)||!n.sealType.length||n.sealType.some(e=>!String(e).trim()))?i.push({code:`SIGNING_PLACEMENT_SEAL_TYPE_INVALID`,message:`印章位置必须至少选择一种有效印章类型`,placementId:n.id}):n.signType===`seal`&&a&&n.sealType?.some(e=>!a.has(String(e).trim()))&&i.push({code:`SIGNING_PLACEMENT_SEAL_TYPE_UNSUPPORTED`,message:`印章位置包含未配置的印章类型`,placementId:n.id})}),i}function h(e,n={}){let r=m(e,n);if(r.length)throw new _(r);return e.placements.map(e=>{let n=t.getContractSigningRuleGeometry(e);return{mustSign:e.mustSign,location:{signType:e.signType,signTop:n.signTop,signLeft:n.signLeft,signWidth:n.signWidth,signHeight:n.signHeight,pageList:{[e.fileId]:[e.pageIndex]},...e.signType===`seal`&&e.sealType?.length?{sealType:[...e.sealType]}:{}}}})}function g(e,t={}){let n=o(e);return{...n,locationRules:h(n,t)}}var _=class extends Error{constructor(e){super(e[0]?.message||`指定签署位置数据不完整`),this.code=`CONTRACT_SIGNING_LOCATION_INVALID`,this.name=`ContractSigningLocationBuildError`,this.errors=e}};function v(e){return Array.isArray(e)?e.map((e,t)=>{let n=e&&typeof e==`object`?e:{},r=String(n.fileId??``).trim(),i=y(n.source),a=i?.type===`template`?b(i.template,i.values):Array.isArray(n.pages)?n.pages.map((e,t)=>x(e,t)):[];return{fileId:r,fileName:String(n.fileName??`合同文件 ${t+1}`),pages:a,...i?{source:i}:{}}}):[]}function y(e){if(!e||typeof e!=`object`)return;let t=e;return t.type===`template`?{type:`template`,template:S(t.template),...t.values&&typeof t.values==`object`&&!Array.isArray(t.values)?{values:{...t.values}}:{}}:t.type===`preview`?{type:`preview`}:void 0}function b(e,t){return n.buildContractSigningTemplateRenderPages({type:`template`,template:e,...t?{values:t}:{}}).map(e=>({pageIndex:e.pageIndex,displayPageNumber:e.pageIndex+1,pageId:e.pageId,width:O(e.width,0),height:O(e.height,0)}))}function x(e,t){let n=e&&typeof e==`object`?e:{},r=k(n.pageIndex,t);return{pageIndex:r,displayPageNumber:A(n.displayPageNumber,r+1),width:O(n.width,0),height:O(n.height,0),...n.pageId?{pageId:String(n.pageId)}:{},...n.previewUrl?{previewUrl:String(n.previewUrl)}:{},...n.thumbnailUrl?{thumbnailUrl:String(n.thumbnailUrl)}:{}}}function S(e){if(e==null)return e;try{return JSON.parse(JSON.stringify(e))}catch{return e}}function C(e){let t=e?.signType===`seal`||e?.signType===`signature`||e?.signType===`date`?e.signType:`signature`;return{id:String(e?.id??``),fileId:String(e?.fileId??``).trim(),pageIndex:k(e?.pageIndex,0),signType:t,signLeft:D(e?.signLeft,0),signTop:D(e?.signTop,0),signWidth:D(e?.signWidth,0),signHeight:D(e?.signHeight,0),mustSign:e?.mustSign!==!1,...t===`seal`&&Array.isArray(e?.sealType)?{sealType:e.sealType.map(String)}:{}}}function w(e){return Array.isArray(e)?Array.from(new Set(e.map(String).map(e=>e.trim()).filter(Boolean))):[]}function T(e){return new Map(e.flatMap(e=>e.pages.map(t=>[E(e.fileId,t.pageIndex),t])))}function E(e,t){return`${e}\u0000${t}`}function D(e,t){let n=Number(e);return Number.isFinite(n)?n:t}function O(e,t){return Math.max(0,D(e,t))}function k(e,t){return Math.max(0,Math.round(D(e,t)))}function A(e,t){return Math.max(1,Math.round(D(e,t)))}function j(e){return typeof e==`number`&&Number.isFinite(e)&&e>0}exports.ContractSigningLocationBuildError=_,exports.buildContractSigningLocationOutput=g,exports.buildContractSigningLocationRules=h,exports.cloneContractSigningLocationValue=o,exports.createContractSigningLocationValue=i,exports.createContractSigningPlacement=p,exports.findContractSigningPage=c,exports.getContractSigningHomePage=l,exports.isContractSigningPageUsable=d,exports.normalizeContractSigningLocationValue=a,exports.normalizeContractSigningProviderValue=s,exports.patchContractSigningPlacement=u,exports.resolveContractSigningPreviewPageSize=f,exports.validateContractSigningLocationValue=m;
1
+ const e=require(`./constants.cjs`),t=require(`./coordinates.cjs`),n=require(`./template-source.cjs`);var r=0;function i(e=``){return{contractId:e,files:[],placements:[]}}function a(e,n){let r=v(e?.files),i=T(r);return{contractId:String(e?.contractId??``).trim(),files:r,placements:Array.isArray(e?.placements)?e.placements.map(C).map(e=>{let r=i.get(E(e.fileId,e.pageIndex));return r?t.clampContractSigningPlacement(e,r,{sealSizeLimit:n?.sealSizeLimit,sealTypes:e.sealType,sealTypeOptions:n?.sealTypeOptions}):e}):[]}}function o(e){return{contractId:e.contractId,files:e.files.map(e=>({...e,pages:e.pages.map(e=>({...e})),...e.source?.type===`template`?{source:{type:`template`,template:S(e.source.template),...e.source.values?{values:{...e.source.values}}:{}}}:e.source?{source:{type:`preview`}}:{}})),placements:e.placements.map(e=>({...e,sealType:e.sealType?[...e.sealType]:void 0}))}}function s(e,r=1){let i=a(e),o=t.normalizeContractSigningCoordinateScale(r);if(o===1)return i;let s=e=>t.normalizeContractSigningCoordinateDimension(e,o);return{...i,files:i.files.map(e=>n.isContractSigningTemplateFile(e)?e:{...e,pages:e.pages.map(e=>({...e,width:s(e.width),height:s(e.height)}))}),placements:i.placements.map(e=>{let t=i.files.find(t=>t.fileId===e.fileId);return n.isContractSigningTemplateFile(t)?e:{...e,signLeft:s(e.signLeft),signTop:s(e.signTop),signWidth:s(e.signWidth),signHeight:s(e.signHeight)}})}}function c(e,t,n){return e.files.find(e=>e.fileId===t)?.pages.find(e=>e.pageIndex===n)}function l(e){if(e?.length)return e.reduce((e,t)=>t.pageIndex<e.pageIndex?t:e)}function u(n,r,i,a){let o={...n,...r,id:n.id,fileId:n.fileId,pageIndex:r.pageIndex===void 0?n.pageIndex:r.pageIndex};if(n.signType===`seal`){if(o.signType=`seal`,r.sealType!==void 0&&Array.isArray(r.sealType)){let t=e.resolveContractSigningSealSizeInPixels(r.sealType,a?.sealTypeOptions);o.signWidth=t.width,o.signHeight=t.height}if(r.sealType===void 0){let e=Number(r.signWidth),t=Number(r.signHeight);if(Number.isFinite(e)&&e>0&&Number.isFinite(t)&&t>0)o.signWidth=e,o.signHeight=t;else{let r=Number.isFinite(e)&&e>0?e:Number.isFinite(t)&&t>0?t:n.signWidth;o.signWidth=r,o.signHeight=r}}}return i?t.clampContractSigningPlacement(o,i,{sealSizeLimit:a?.sealSizeLimit,sealTypes:o.sealType,sealTypeOptions:a?.sealTypeOptions}):o}function d(e){return!!(e&&j(e.width)&&j(e.height))}function f(e,n,r=1,i=!1){if(i||d(e)||!n.width||!n.height)return;let a=t.normalizeContractSigningCoordinateDimension(n.width,r),o=t.normalizeContractSigningCoordinateDimension(n.height,r);return a>0&&o>0?{width:a,height:o}:void 0}function p(n,i,a,o={}){let s=n===`seal`?e.resolveContractSigningSealSizeInPixels(o.sealType??[`04`],o.sealTypeOptions):t.getContractSigningPlacementSize(n,o.sizeProfile);return r+=1,t.clampContractSigningPlacement({id:`contract-signing-placement-${Date.now().toString(36)}-${r.toString(36)}`,fileId:i,pageIndex:a.pageIndex,signType:n,signLeft:o.signLeft??(a.width-s.width)/2,signTop:o.signTop??(a.height-s.height)/2,signWidth:s.width,signHeight:s.height,mustSign:!0,...n===`seal`?{sealType:o.sealType===void 0?[`04`]:w(o.sealType)}:{}},a,{sealSizeLimit:o.sealSizeLimit,sealTypes:o.sealType,sealTypeOptions:o.sealTypeOptions})}function m(t,r={}){let i=[],a=r.allowedSealTypes?new Set(Array.from(r.allowedSealTypes,e=>String(e).trim()).filter(Boolean)):void 0;t.files.length||i.push({code:`CONTRACT_FILES_MISSING`,message:`合同没有可用文件`}),t.placements.length||i.push({code:`SIGNING_PLACEMENTS_MISSING`,message:`请至少添加一个签署位置`});let o=new Set,s=new Set;return t.files.forEach(e=>{e.fileId?o.has(e.fileId)&&i.push({code:`CONTRACT_FILE_ID_DUPLICATE`,message:`合同文件 ID ${e.fileId} 重复`,fileId:e.fileId}):i.push({code:`CONTRACT_FILE_ID_MISSING`,message:`合同文件缺少真实 fileId`}),o.add(e.fileId),e.pages.length||i.push({code:`CONTRACT_PAGES_MISSING`,message:`文件 ${e.fileName||e.fileId} 没有页面元数据`,fileId:e.fileId}),i.push(...n.validateContractSigningTemplateFile(e));let t=new Set;e.pages.forEach(n=>{!Number.isInteger(n.pageIndex)||n.pageIndex<0?i.push({code:`CONTRACT_PAGE_INDEX_INVALID`,message:`页面索引必须是非负整数`,fileId:e.fileId,pageIndex:n.pageIndex}):t.has(n.pageIndex)&&i.push({code:`CONTRACT_PAGE_INDEX_DUPLICATE`,message:`文件 ${e.fileName||e.fileId} 的页面索引 ${n.pageIndex} 重复`,fileId:e.fileId,pageIndex:n.pageIndex}),t.add(n.pageIndex),d(n)||i.push({code:`CONTRACT_PAGE_SIZE_INVALID`,message:`页面缺少有效的原始宽高`,fileId:e.fileId,pageIndex:n.pageIndex})})}),t.placements.forEach(n=>{let r=e.CONTRACT_SIGNING_PLACEMENT_LABELS[n.signType]??`签署位置`;n.id?s.has(n.id)&&i.push({code:`SIGNING_PLACEMENT_ID_DUPLICATE`,message:`签署位置 ID ${n.id} 重复`,placementId:n.id}):i.push({code:`SIGNING_PLACEMENT_ID_MISSING`,message:`${r}缺少唯一 ID`}),s.add(n.id);let o=c(t,n.fileId,n.pageIndex);if(!o){i.push({code:`SIGNING_PLACEMENT_PAGE_MISSING`,message:`${r}引用了不存在的文件或页面`,placementId:n.id,fileId:n.fileId,pageIndex:n.pageIndex});return}[n.signLeft,n.signTop,n.signWidth,n.signHeight].some(e=>!Number.isFinite(e))?i.push({code:`SIGNING_PLACEMENT_GEOMETRY_INVALID`,message:`${r}坐标和尺寸必须是有限数字`,placementId:n.id}):n.signWidth<=0||n.signHeight<=0?i.push({code:`SIGNING_PLACEMENT_SIZE_INVALID`,message:`${r}宽高必须大于 0`,placementId:n.id}):(n.signLeft<0||n.signTop<0||n.signLeft+n.signWidth>o.width||n.signTop+n.signHeight>o.height)&&i.push({code:`SIGNING_PLACEMENT_OUT_OF_BOUNDS`,message:`${r}不能超出所属页面`,placementId:n.id,fileId:n.fileId,pageIndex:n.pageIndex}),n.signType!==`seal`&&n.sealType!==void 0&&i.push({code:`SIGNING_PLACEMENT_SEAL_TYPE_INVALID`,message:`只有印章位置可以配置印章类型`,placementId:n.id}),n.signType===`seal`&&(!Array.isArray(n.sealType)||!n.sealType.length||n.sealType.some(e=>!String(e).trim()))?i.push({code:`SIGNING_PLACEMENT_SEAL_TYPE_INVALID`,message:`印章位置必须至少选择一种有效印章类型`,placementId:n.id}):n.signType===`seal`&&a&&n.sealType?.some(e=>!a.has(String(e).trim()))&&i.push({code:`SIGNING_PLACEMENT_SEAL_TYPE_UNSUPPORTED`,message:`印章位置包含未配置的印章类型`,placementId:n.id})}),i}function h(e,n={}){let r=m(e,n);if(r.length)throw new _(r);return e.placements.map(e=>{let n=t.getContractSigningRuleGeometry(e);return{mustSign:e.mustSign,location:{signType:e.signType,signTop:n.signTop,signLeft:n.signLeft,signWidth:n.signWidth,signHeight:n.signHeight,pageList:{[e.fileId]:[e.pageIndex]},...e.signType===`seal`&&e.sealType?.length?{sealType:[...e.sealType]}:{}}}})}function g(e,t={}){let n=o(e);return{...n,locationRules:h(n,t)}}var _=class extends Error{constructor(e){super(e[0]?.message||`指定签署位置数据不完整`),this.code=`CONTRACT_SIGNING_LOCATION_INVALID`,this.name=`ContractSigningLocationBuildError`,this.errors=e}};function v(e){return Array.isArray(e)?e.map((e,t)=>{let n=e&&typeof e==`object`?e:{},r=String(n.fileId??``).trim(),i=y(n.source),a=i?.type===`template`?b(i.template,i.values,n.pages):Array.isArray(n.pages)?n.pages.map((e,t)=>x(e,t)):[];return{fileId:r,fileName:String(n.fileName??`合同文件 ${t+1}`),pages:a,...i?{source:i}:{}}}):[]}function y(e){if(!e||typeof e!=`object`)return;let t=e;return t.type===`template`?{type:`template`,template:S(t.template),...t.values&&typeof t.values==`object`&&!Array.isArray(t.values)?{values:{...t.values}}:{}}:t.type===`preview`?{type:`preview`}:void 0}function b(e,t,r){let i=n.buildContractSigningTemplateRenderPages({type:`template`,template:e,...t?{values:t}:{}}),a=Array.isArray(r)?r:[];return i.map(e=>{let t=a.find(t=>k((t&&typeof t==`object`?t:{}).pageIndex,-1)===e.pageIndex),n=t&&typeof t==`object`?t:{},r=O(e.displayWidth||e.width,0),i=O(e.displayHeight||e.height,0);return{pageIndex:e.pageIndex,displayPageNumber:e.pageIndex+1,pageId:e.pageId,width:O(n.width,e.width),height:O(n.height,e.height),displayWidth:r,displayHeight:i,...n.previewUrl?{previewUrl:String(n.previewUrl)}:{},...n.thumbnailUrl?{thumbnailUrl:String(n.thumbnailUrl)}:{}}})}function x(e,t){let n=e&&typeof e==`object`?e:{},r=k(n.pageIndex,t);return{pageIndex:r,displayPageNumber:A(n.displayPageNumber,r+1),width:O(n.width,0),height:O(n.height,0),...O(n.displayWidth,0)>0?{displayWidth:O(n.displayWidth,0)}:{},...O(n.displayHeight,0)>0?{displayHeight:O(n.displayHeight,0)}:{},...n.pageId?{pageId:String(n.pageId)}:{},...n.previewUrl?{previewUrl:String(n.previewUrl)}:{},...n.thumbnailUrl?{thumbnailUrl:String(n.thumbnailUrl)}:{}}}function S(e){if(e==null)return e;try{return JSON.parse(JSON.stringify(e))}catch{return e}}function C(e){let t=e?.signType===`seal`||e?.signType===`signature`||e?.signType===`date`?e.signType:`signature`;return{id:String(e?.id??``),fileId:String(e?.fileId??``).trim(),pageIndex:k(e?.pageIndex,0),signType:t,signLeft:D(e?.signLeft,0),signTop:D(e?.signTop,0),signWidth:D(e?.signWidth,0),signHeight:D(e?.signHeight,0),mustSign:e?.mustSign!==!1,...t===`seal`&&Array.isArray(e?.sealType)?{sealType:e.sealType.map(String)}:{}}}function w(e){return Array.isArray(e)?Array.from(new Set(e.map(String).map(e=>e.trim()).filter(Boolean))):[]}function T(e){return new Map(e.flatMap(e=>e.pages.map(t=>[E(e.fileId,t.pageIndex),t])))}function E(e,t){return`${e}\u0000${t}`}function D(e,t){let n=Number(e);return Number.isFinite(n)?n:t}function O(e,t){return Math.max(0,D(e,t))}function k(e,t){return Math.max(0,Math.round(D(e,t)))}function A(e,t){return Math.max(1,Math.round(D(e,t)))}function j(e){return typeof e==`number`&&Number.isFinite(e)&&e>0}exports.ContractSigningLocationBuildError=_,exports.buildContractSigningLocationOutput=g,exports.buildContractSigningLocationRules=h,exports.cloneContractSigningLocationValue=o,exports.createContractSigningLocationValue=i,exports.createContractSigningPlacement=p,exports.findContractSigningPage=c,exports.getContractSigningHomePage=l,exports.isContractSigningPageUsable=d,exports.normalizeContractSigningLocationValue=a,exports.normalizeContractSigningProviderValue=s,exports.patchContractSigningPlacement=u,exports.resolveContractSigningPreviewPageSize=f,exports.validateContractSigningLocationValue=m;
@@ -1 +1 @@
1
- require(`./constants.cjs`);const e=require(`./location-rules.cjs`);var t=16,n={width:595,height:842},r=1;function i(e,t,n=16){let r=p(t,1),i=e.map(e=>{let t=d(e);return{pageIndex:e.pageIndex,width:t.width*r,height:t.height*r}}),a=i.reduce((e,t)=>Math.max(e,t.width),0),o=0;return i.map(e=>{let t={pageIndex:e.pageIndex,top:o,height:e.height,width:e.width,left:(a-e.width)/2};return o+=e.height+Math.max(0,n),t})}function a(e){if(!e.length)return{width:0,height:0};let t=e[e.length-1];return{width:e.reduce((e,t)=>Math.max(e,t.left+t.width),0),height:t.top+t.height}}function o(e,t,n=48){let r=Math.max(1,p(n,48)),i=e-t.top,a=t.bottom-e;return i<r?-(2+(1-Math.max(0,i)/r)*22):a<r?2+(1-Math.max(0,a)/r)*22:0}function s(e,t){if(!e.length)return;let n=0,r=e.length-1;for(;n<=r;){let i=n+r>>1,a=e[i];if(t<a.top)r=i-1;else if(t>=a.top+a.height)n=i+1;else return a}if(r<0)return e[0];if(n>=e.length)return e[e.length-1];let i=e[r],a=e[n],o=t-(i.top+i.height);return a.top-t<o?a:i}function c(e,t,n,r=1){if(!e.length)return{start:0,end:-1};let i=t,a=t+Math.max(0,n),o=0,s=e.length-1;for(let t=0;t<e.length;t+=1){if(e[t].top+e[t].height>i){o=t;break}o=e.length-1}for(let t=e.length-1;t>=0;--t){if(e[t].top<a){s=t;break}s=0}s<o&&([o,s]=[s,o]);let c=Math.max(0,Math.round(r));return{start:Math.max(0,o-c),end:Math.min(e.length-1,s+c)}}function l(e,t,n,r,i=0){let a=s(e,r);if(!a)return;let o=d(t.find(e=>e.pageIndex===a.pageIndex)),c=f(i,0);return{pageIndex:a.pageIndex,x:m((n-a.left)*o.width/Math.max(1,a.width)-c),y:m((r-a.top)*o.height/Math.max(1,a.height)-c)}}function u(e,t){return e.find(e=>e.pageIndex===t)?.top??0}function d(t){return e.isContractSigningPageUsable(t)&&t?{width:t.width,height:t.height}:{...n}}function f(e,t){let n=Number(e);return Number.isFinite(n)?n:t}function p(e,t){let n=f(e,t);return n>0?n:t}function m(e){return Math.round(e*100)/100}exports.CONTRACT_SIGNING_FALLBACK_PAGE_SIZE=n,exports.CONTRACT_SIGNING_PAGE_GAP=t,exports.CONTRACT_SIGNING_VIRTUAL_BUFFER_PAGES=r,exports.buildPageLayouts=i,exports.contentPointToPagePoint=l,exports.findPageAtOffset=s,exports.getContractSigningAutoScrollDelta=o,exports.getPageLayoutScrollTop=u,exports.getPageLayoutsContentSize=a,exports.getVisibleRange=c;
1
+ require(`./constants.cjs`);const e=require(`./location-rules.cjs`);var t=16,n={width:595,height:842},r=1;function i(e,t,n=16){let r=p(t,1),i=e.map(e=>{let t=d(e);return{pageIndex:e.pageIndex,width:t.width*r,height:t.height*r}}),a=i.reduce((e,t)=>Math.max(e,t.width),0),o=0;return i.map(e=>{let t={pageIndex:e.pageIndex,top:o,height:e.height,width:e.width,left:(a-e.width)/2};return o+=e.height+Math.max(0,n),t})}function a(e){if(!e.length)return{width:0,height:0};let t=e[e.length-1];return{width:e.reduce((e,t)=>Math.max(e,t.left+t.width),0),height:t.top+t.height}}function o(e,t,n=48){let r=Math.max(1,p(n,48)),i=e-t.top,a=t.bottom-e;return i<r?-(2+(1-Math.max(0,i)/r)*22):a<r?2+(1-Math.max(0,a)/r)*22:0}function s(e,t){if(!e.length)return;let n=0,r=e.length-1;for(;n<=r;){let i=n+r>>1,a=e[i];if(t<a.top)r=i-1;else if(t>=a.top+a.height)n=i+1;else return a}if(r<0)return e[0];if(n>=e.length)return e[e.length-1];let i=e[r],a=e[n],o=t-(i.top+i.height);return a.top-t<o?a:i}function c(e,t,n,r=1){if(!e.length)return{start:0,end:-1};let i=t,a=t+Math.max(0,n),o=0,s=e.length-1;for(let t=0;t<e.length;t+=1){if(e[t].top+e[t].height>i){o=t;break}o=e.length-1}for(let t=e.length-1;t>=0;--t){if(e[t].top<a){s=t;break}s=0}s<o&&([o,s]=[s,o]);let c=Math.max(0,Math.round(r));return{start:Math.max(0,o-c),end:Math.min(e.length-1,s+c)}}function l(t,r,i,a,o=0){let c=s(t,a);if(!c)return;let l=r.find(e=>e.pageIndex===c.pageIndex),u=e.isContractSigningPageUsable(l)&&l?{width:l.width,height:l.height}:{...n},d=f(o,0);return{pageIndex:c.pageIndex,x:m((i-c.left)*u.width/Math.max(1,c.width)-d),y:m((a-c.top)*u.height/Math.max(1,c.height)-d)}}function u(e,t){return e.find(e=>e.pageIndex===t)?.top??0}function d(t){return e.isContractSigningPageUsable(t)&&t?{width:p(t.displayWidth,t.width),height:p(t.displayHeight,t.height)}:{...n}}function f(e,t){let n=Number(e);return Number.isFinite(n)?n:t}function p(e,t){let n=f(e,t);return n>0?n:t}function m(e){return Math.round(e*100)/100}exports.CONTRACT_SIGNING_FALLBACK_PAGE_SIZE=n,exports.CONTRACT_SIGNING_PAGE_GAP=t,exports.CONTRACT_SIGNING_VIRTUAL_BUFFER_PAGES=r,exports.buildPageLayouts=i,exports.contentPointToPagePoint=l,exports.findPageAtOffset=s,exports.getContractSigningAutoScrollDelta=o,exports.getPageLayoutScrollTop=u,exports.getPageLayoutsContentSize=a,exports.getVisibleRange=c;
@@ -1 +1 @@
1
- const e=require(`../../pro-contract-template-designer/src/utils/template-renderer.cjs`);function t(e){return!!(e&&typeof e==`object`&&e.type===`template`)}function n(e){return t(e?.source)}function r(n){if(!t(n)||!s(n.template))return[];try{let t=n.template,r=Array.isArray(t.pages)?t.pages:[],i=e.normalizeRenderValues(t,n.values),a=o(t);return r.flatMap((n,r)=>{let o=e.buildTemplateRenderPages({...t,pages:[n]},i,{readonly:!0,disabled:!0,mode:`display`})[0];if(!o)return[];let s=c(n?.pageSize,t.pageSize,o);return[{pageIndex:r,pageId:o.id,title:o.title,width:s.width,height:s.height,contentHtml:o.contentHtml,errors:a.filter(e=>!e.pageId||e.pageId===o.id).map(e=>e.message)}]})}catch{return[]}}function i(e){if(!t(e.source))return[];if(!s(e.source.template))return[{code:`CONTRACT_TEMPLATE_MISSING`,message:`文件 ${e.fileName||e.fileId} 缺少可渲染的合同模板`,fileId:e.fileId}];try{let t=Array.isArray(e.source.template.pages)?e.source.template.pages:[];return o(e.source.template).map(n=>{let r=n.pageId?t.findIndex(e=>e?.id===n.pageId):-1;return{code:`CONTRACT_${n.code||`TEMPLATE_INVALID`}`,message:`${e.fileName||e.fileId}:${n.message}`,fileId:e.fileId,...r>=0?{pageIndex:r}:{}}})}catch(t){return[{code:`CONTRACT_TEMPLATE_RENDER_FAILED`,message:`文件 ${e.fileName||e.fileId} 的模板数据无法安全渲染`,fileId:e.fileId,cause:t}]}}function a(e){return!e||!t(e.source)?``:i(e)[0]?.message??``}function o(t){return e.validateTemplateRenderStructure(t)}function s(e){return!!(e&&typeof e==`object`)}function c(e,t,n){return{width:l(e?.width,l(t?.width,n.width)),height:l(e?.height,l(t?.height,n.height))}}function l(e,t){let n=Number(e);return Number.isFinite(n)&&n>0?n:t}exports.buildContractSigningTemplateRenderPages=r,exports.getContractSigningTemplateDisplayError=a,exports.isContractSigningTemplateFile=n,exports.isContractSigningTemplateSource=t,exports.validateContractSigningTemplateFile=i;
1
+ const e=require(`../../pro-contract-template-designer/src/utils/page-decorations.cjs`),t=require(`./constants.cjs`),n=require(`../../pro-contract-template-designer/src/utils/template-renderer.cjs`);function r(e){return!!(e&&typeof e==`object`&&e.type===`template`)}function i(e){return r(e?.source)}function a(e){if(!r(e)||!u(e.template))return[];try{let r=e.template,i=Array.isArray(r.pages)?r.pages:[],a=n.normalizeRenderValues(r,e.values),s=l(r),c=i.length;return i.flatMap((e,i)=>{let l=n.buildTemplateRenderPages({...r,pages:[e]},a,{readonly:!0,disabled:!0,mode:`display`})[0];if(!l)return[];let u=d(e?.pageSize,r.pageSize,l),f=t.toContractSigningRulePageSize(u),p=i+1,m=o(l.pageDecorations,p);return[{pageIndex:i,pageId:l.id,title:l.title,width:f.width||u.width,height:f.height||u.height,displayWidth:u.width,displayHeight:u.height,contentHtml:l.contentHtml,...l.pageDecorations?{pageDecorations:l.pageDecorations}:{},decorationVariables:l.decorationVariables,decorationValues:l.decorationValues,pageNumber:p,totalPages:c,paddingTop:m.top,paddingBottom:m.bottom,errors:s.filter(e=>!e.pageId||e.pageId===l.id).map(e=>e.message)}]})}catch{return[]}}function o(t,n){let r=e.normalizePageDecorations(t);return{top:e.hasEnabledPageHeader(r,n)?e.getPageDecorationSafePadding(r.header):e.CONTRACT_PAGE_BASE_PADDING.top,bottom:e.hasEnabledPageFooter(r,n)?e.getPageDecorationSafePadding(r.footer):e.CONTRACT_PAGE_BASE_PADDING.bottom}}function s(e){if(!r(e.source))return[];if(!u(e.source.template))return[{code:`CONTRACT_TEMPLATE_MISSING`,message:`文件 ${e.fileName||e.fileId} 缺少可渲染的合同模板`,fileId:e.fileId}];try{let t=Array.isArray(e.source.template.pages)?e.source.template.pages:[];return l(e.source.template).map(n=>{let r=n.pageId?t.findIndex(e=>e?.id===n.pageId):-1;return{code:`CONTRACT_${n.code||`TEMPLATE_INVALID`}`,message:`${e.fileName||e.fileId}:${n.message}`,fileId:e.fileId,...r>=0?{pageIndex:r}:{}}})}catch(t){return[{code:`CONTRACT_TEMPLATE_RENDER_FAILED`,message:`文件 ${e.fileName||e.fileId} 的模板数据无法安全渲染`,fileId:e.fileId,cause:t}]}}function c(e){return!e||!r(e.source)?``:s(e)[0]?.message??``}function l(e){return n.validateTemplateRenderStructure(e)}function u(e){return!!(e&&typeof e==`object`)}function d(e,t,n){return{width:f(e?.width,f(t?.width,n.width)),height:f(e?.height,f(t?.height,n.height))}}function f(e,t){let n=Number(e);return Number.isFinite(n)&&n>0?n:t}exports.buildContractSigningTemplateRenderPages=a,exports.getContractSigningTemplateDisplayError=c,exports.isContractSigningTemplateFile=i,exports.isContractSigningTemplateSource=r,exports.validateContractSigningTemplateFile=s;
@@ -1 +1 @@
1
- :root{--gdant-primary-50:var(--primary-50,#f4f9ff);--gdant-primary-100:var(--primary-100,#e9f1f6);--gdant-primary-200:var(--primary-200,#bcd7ff);--gdant-primary-300:var(--primary-300,#7fb0ff);--gdant-primary-400:var(--primary-400,#3b87ff);--gdant-primary-500:var(--primary-500,#1161ff);--gdant-primary-600:var(--primary-600,#0d4ed1);--gdant-primary-700:var(--primary-700,#0a3da5);--gdant-primary-800:var(--primary-800,#082c79);--gdant-primary-900:var(--primary-900,#05204d);--gdant-neutral-0:var(--neutral-0,#fff);--gdant-neutral-50:var(--neutral-50,#fafbfc);--gdant-neutral-100:var(--neutral-100,#f5f6f8);--gdant-neutral-200:var(--neutral-200,#eaecef);--gdant-neutral-300:var(--neutral-300,#d9dce0);--gdant-neutral-400:var(--neutral-400,#aab0b7);--gdant-neutral-500:var(--neutral-500,#7a818b);--gdant-neutral-600:var(--neutral-600,#565b66);--gdant-neutral-700:var(--neutral-700,#383d47);--gdant-neutral-800:var(--neutral-800,#262a33);--gdant-neutral-900:var(--neutral-900,#0f131a);--gdant-success-50:var(--success-50,#e8f9ed);--gdant-success-500:var(--success-500,#00b42a);--gdant-success-600:var(--success-600,#009023);--gdant-warning-50:var(--warning-50,#fff3e8);--gdant-warning-100:var(--warning-100,#ffe4cc);--gdant-warning-500:var(--warning-500,#f58634);--gdant-warning-600:var(--warning-600,#d96c1c);--gdant-warning-700:var(--warning-700,#b35316);--gdant-error-50:var(--error-50,#fde9e9);--gdant-error-100:var(--error-100,#fcd4d4);--gdant-error-300:var(--error-300,#f47070);--gdant-error-500:var(--error-500,#ee3939);--gdant-error-600:var(--error-600,#c92626);--gdant-error-700:var(--error-700,#a31c1c);--gdant-radius-xs:var(--radius-xs,2px);--gdant-radius-sm:var(--radius-sm,4px);--gdant-radius-md:var(--radius-md,6px);--gdant-radius-lg:var(--radius-lg,8px);--gdant-radius-xl:var(--radius-xl,12px);--gdant-radius-pill:var(--radius-pill,9999px);--gdant-shadow-raised:var(--shadow-raised,0 1px 2px #0f172a0a, 0 1px 4px #0f172a0f);--gdant-shadow-overlay:var(--shadow-overlay,0 4px 12px #0f172a14, 0 2px 6px #0f172a0a);--gdant-shadow-modal:var(--shadow-modal,0 16px 48px #0f172a29, 0 4px 12px #0f172a14);--gdant-spacing-xs:var(--spacing-xs,4px);--gdant-spacing-sm:var(--spacing-sm,8px);--gdant-spacing-md:var(--spacing-md,12px);--gdant-spacing-base:var(--spacing-base,16px);--gdant-spacing-lg:var(--spacing-lg,20px);--gdant-spacing-xl:var(--spacing-xl,24px);--gdant-text-body:var(--text-body,14px);--gdant-text-body-sm:var(--text-body-sm,12px);--gdant-text-h3:var(--text-h3,16px);--gdant-font-medium:var(--font-medium,500);--gdant-font-semibold:var(--font-semibold,600);--gdant-duration-normal:var(--duration-normal,.2s);--gdant-duration-slow:var(--duration-slow,.3s);--gdant-easing-default:var(--easing-default,cubic-bezier(.2, 0, 0, 1));--gdant-overlay-bg:#ffffffb8;--gdant-z-overlay:var(--z-overlay,1040);--gdant-z-modal:var(--z-modal,1050)}.gd-ant-contract-signing-location{height:var(--gd-ant-contract-signing-location-height,clamp(720px, 100vh - 180px, 980px));border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-0);min-width:0;color:var(--gdant-neutral-800);font-size:var(--gdant-text-body);grid-template-rows:auto auto minmax(0,1fr);grid-template-areas:"header""error""body";display:grid;overflow:hidden;container-type:inline-size}.gd-ant-contract-signing-location__header,.gd-ant-contract-signing-location__header-actions,.gd-ant-contract-signing-location__panel-head,.gd-ant-contract-signing-location__workspace-head,.gd-ant-contract-signing-location__workspace-tools,.gd-ant-contract-signing-location__page-jumper,.gd-ant-contract-signing-location__switch-row,.gd-ant-contract-signing-location__distance-summary,.gd-ant-contract-signing-location__zoom-tools,.gd-ant-contract-signing-location__error{align-items:center;display:flex}.gd-ant-contract-signing-location__header{justify-content:space-between;gap:var(--gdant-spacing-base);min-height:60px;padding:var(--gdant-spacing-sm) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-neutral-200);grid-area:header}.gd-ant-contract-signing-location__title{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;display:flex}.gd-ant-contract-signing-location__title>div{gap:var(--gdant-spacing-xs);min-width:0;display:grid}.gd-ant-contract-signing-location__title strong{color:var(--gdant-neutral-900);font-size:var(--gdant-text-h3);font-weight:var(--gdant-font-semibold);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-ant-contract-signing-location__title span:last-child{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location__title-bar{width:var(--gdant-spacing-xs);height:var(--gdant-spacing-base);border-radius:var(--gdant-radius-xs);background:var(--gdant-primary-500);flex:none}.gd-ant-contract-signing-location__header-actions{gap:var(--gdant-spacing-sm);flex:none}.gd-ant-contract-signing-location__placement-count{padding:var(--gdant-spacing-xs) var(--gdant-spacing-sm);border:1px solid var(--gdant-primary-200);border-radius:var(--gdant-radius-pill);background:var(--gdant-primary-50);color:var(--gdant-primary-600);font-size:var(--gdant-text-body-sm);white-space:nowrap}.gd-ant-contract-signing-location__error{justify-content:space-between;gap:var(--gdant-spacing-sm);min-height:40px;padding:var(--gdant-spacing-xs) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-error-100);background:var(--gdant-error-50);color:var(--gdant-error-700);font-size:var(--gdant-text-body-sm);grid-area:error}.gd-ant-contract-signing-location__body{--gd-navigator-expanded:220px;--gd-inspector-expanded:280px;grid-area:body;grid-template-columns:auto minmax(0,1fr) auto;min-height:0;display:grid;overflow:hidden}.gd-ant-contract-signing-location__body.is-single-file{grid-template-columns:minmax(0,1fr) auto}.gd-ant-contract-signing-location__body.is-inspector-hidden{grid-template-columns:auto minmax(0,1fr)}.gd-ant-contract-signing-location__body.is-single-file.is-inspector-hidden{grid-template-columns:minmax(0,1fr)}.gd-ant-contract-signing-location__navigator,.gd-ant-contract-signing-location__inspector{background:var(--gdant-neutral-0);flex-direction:column;min-width:0;min-height:0;display:flex;overflow:auto}.gd-ant-contract-signing-location__inspector{overflow:hidden}.gd-ant-contract-signing-location__navigator-wrap,.gd-ant-contract-signing-location__inspector-wrap{z-index:1;background:var(--gdant-neutral-0);min-width:0;min-height:0;transition:width var(--gdant-duration-slow) var(--gdant-easing-default);flex-direction:column;display:flex;position:relative;overflow:visible}.gd-ant-contract-signing-location__navigator-wrap{width:var(--gd-navigator-expanded);border-right:1px solid var(--gdant-neutral-200)}.gd-ant-contract-signing-location__inspector-wrap{width:var(--gd-inspector-expanded);border-left:1px solid var(--gdant-neutral-200)}.gd-ant-contract-signing-location__navigator-wrap.is-collapsed{border-right-width:0;width:0}.gd-ant-contract-signing-location__inspector-wrap.is-collapsed{border-left-width:0;width:0}.gd-ant-contract-signing-location__navigator-wrap.is-collapsed .gd-ant-contract-signing-location__panel-stack,.gd-ant-contract-signing-location__inspector-wrap.is-collapsed .gd-ant-contract-signing-location__panel-stack{visibility:hidden}.gd-ant-contract-signing-location__panel-stack{flex:auto;width:100%;min-width:0;height:100%;min-height:0;overflow:hidden}.gd-ant-contract-signing-location__panel-stack>.gd-ant-contract-signing-location__navigator,.gd-ant-contract-signing-location__panel-stack>.gd-ant-contract-signing-location__inspector{height:100%}.gd-ant-contract-signing-location__navigator-wrap .gd-ant-contract-signing-location__panel-stack>*{width:var(--gd-navigator-expanded);flex:none}.gd-ant-contract-signing-location__inspector-wrap .gd-ant-contract-signing-location__panel-stack>*{width:var(--gd-inspector-expanded);flex:none}.gd-ant-contract-signing-location__panel-handle{z-index:2;box-sizing:border-box;border:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);width:14px;height:44px;color:var(--gdant-neutral-500);cursor:pointer;pointer-events:auto;transition:color var(--gdant-duration-normal) var(--gdant-easing-default), background var(--gdant-duration-normal) var(--gdant-easing-default);justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.gd-ant-contract-signing-location__panel-handle .anticon{font-size:10px}.gd-ant-contract-signing-location__navigator-wrap .gd-ant-contract-signing-location__panel-handle{border-radius:0 var(--gdant-radius-md) var(--gdant-radius-md) 0;border-left:0;right:-14px}.gd-ant-contract-signing-location__inspector-wrap .gd-ant-contract-signing-location__panel-handle{border-radius:var(--gdant-radius-md) 0 0 var(--gdant-radius-md);border-right:0;left:-14px}.gd-ant-contract-signing-location__panel-handle:hover{background:var(--gdant-neutral-50);color:var(--gdant-primary-500)}.gd-ant-contract-signing-location__panel-head,.gd-ant-contract-signing-location__property-head{justify-content:space-between;gap:var(--gdant-spacing-sm);padding:var(--gdant-spacing-md) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-neutral-200);flex:none}.gd-ant-contract-signing-location__panel-head>div,.gd-ant-contract-signing-location__property-head>div{gap:var(--gdant-spacing-xs);display:grid}.gd-ant-contract-signing-location__panel-head strong,.gd-ant-contract-signing-location__property-head strong{color:var(--gdant-neutral-800);font-weight:var(--gdant-font-semibold)}.gd-ant-contract-signing-location__panel-head>div>span,.gd-ant-contract-signing-location__property-head>div>span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location__file-list{gap:var(--gdant-spacing-base);padding:var(--gdant-spacing-md);display:grid}.gd-ant-contract-signing-location__file-group,.gd-ant-contract-signing-location__thumbnail-list,.gd-ant-contract-signing-location__tool-list,.gd-ant-contract-signing-location__property-body,.gd-ant-contract-signing-location__inspector-actions{gap:var(--gdant-spacing-sm);display:grid}.gd-ant-contract-signing-location__file-title{align-items:center;gap:var(--gdant-spacing-sm);color:var(--gdant-neutral-700);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.gd-ant-contract-signing-location__file-title>svg{color:var(--gdant-error-600)}.gd-ant-contract-signing-location__file-title>span{font-weight:var(--gdant-font-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-ant-contract-signing-location__file-title>small{color:var(--gdant-neutral-500);white-space:nowrap}.gd-ant-contract-signing-location__thumbnail-list{grid-template-columns:minmax(0,1fr)}.gd-ant-contract-signing-location__thumbnail{gap:var(--gdant-spacing-xs);min-width:0;padding:var(--gdant-spacing-xs);border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);color:var(--gdant-neutral-600);font:inherit;font-size:var(--gdant-text-body-sm);cursor:pointer;transition:border-color var(--gdant-duration-normal) var(--gdant-easing-default), box-shadow var(--gdant-duration-normal) var(--gdant-easing-default);display:grid}.gd-ant-contract-signing-location__thumbnail:hover,.gd-ant-contract-signing-location__thumbnail.is-active{border-color:var(--gdant-primary-500)}.gd-ant-contract-signing-location__thumbnail.is-active{color:var(--gdant-primary-600);box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 16%, transparent)}.gd-ant-contract-signing-location__thumbnail.is-error:not(.is-active){border-color:var(--gdant-error-500);color:var(--gdant-error-600)}.gd-ant-contract-signing-location__thumbnail:focus-visible{outline:2px solid var(--gdant-primary-500);outline-offset:2px}.gd-ant-contract-signing-location__thumbnail-preview{aspect-ratio:3/4;border-radius:var(--gdant-radius-sm);background:var(--gdant-neutral-100);color:var(--gdant-neutral-400);place-items:center;display:grid;overflow:hidden}.gd-ant-contract-signing-location__thumbnail-preview img{object-fit:cover;object-position:top center;width:100%;height:100%}.gd-ant-contract-signing-location__workspace{background:var(--gdant-neutral-100);grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;display:grid;overflow:hidden}.gd-ant-contract-signing-location__workspace-head{z-index:2;justify-content:space-between;gap:var(--gdant-spacing-sm);min-height:54px;padding:var(--gdant-spacing-sm) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0)}.gd-ant-contract-signing-location__workspace-head>div:first-child{gap:var(--gdant-spacing-xs);min-width:0;display:grid}.gd-ant-contract-signing-location__workspace-head strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-ant-contract-signing-location__workspace-head>div:first-child>span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm);white-space:nowrap}.gd-ant-contract-signing-location__workspace-tools{gap:var(--gdant-spacing-md);flex:none}.gd-ant-contract-signing-location__page-jumper{gap:var(--gdant-spacing-xs);color:var(--gdant-neutral-600);font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location__page-jumper label{align-items:center;gap:var(--gdant-spacing-xs);white-space:nowrap;display:inline-flex}.gd-ant-contract-signing-location__page-jumper input{width:52px;height:28px;padding:0 var(--gdant-spacing-xs);border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);color:var(--gdant-neutral-800);font:inherit;text-align:center}.gd-ant-contract-signing-location__page-jumper input:focus-visible{outline:2px solid color-mix(in srgb, var(--gdant-primary-500) 15%, transparent);border-color:var(--gdant-primary-500)}.gd-ant-contract-signing-location__canvas-scroll{min-height:0;padding:var(--gdant-spacing-xl);position:relative;overflow:auto}.gd-ant-contract-signing-location__canvas-state,.gd-ant-contract-signing-location__panel-empty{place-content:center;gap:var(--gdant-spacing-sm);color:var(--gdant-neutral-500);text-align:center;display:grid}.gd-ant-contract-signing-location__canvas-state{min-height:440px}.gd-ant-contract-signing-location__canvas-state.is-error{color:var(--gdant-error-600)}.gd-ant-contract-signing-location__canvas-state.is-error strong{color:var(--gdant-error-700)}.gd-ant-contract-signing-location__canvas-state.is-error button{padding:var(--gdant-spacing-xs) var(--gdant-spacing-sm);border:1px solid var(--gdant-error-300);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);color:var(--gdant-error-600);font:inherit;cursor:pointer;justify-self:center}.gd-ant-contract-signing-location__page-stack{min-height:100%;margin:0 auto;position:relative}.gd-ant-contract-signing-location__page-shell{position:absolute;overflow:hidden}.gd-ant-contract-signing-location__page-stage{min-height:100%;margin:0 auto;position:relative}.gd-ant-contract-signing-location__page{transform-origin:0 0;border-radius:var(--gdant-radius-xs);background:var(--gdant-neutral-0);box-shadow:var(--gdant-shadow-overlay);-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.gd-ant-contract-signing-location__page-image{object-fit:fill;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.gd-ant-contract-signing-location__page-placeholder{place-content:center;gap:var(--gdant-spacing-sm);background:var(--gdant-neutral-50);color:var(--gdant-neutral-500);text-align:center;display:grid;position:absolute;inset:0}.gd-ant-contract-signing-location__page-placeholder strong{color:var(--gdant-neutral-700);font-size:var(--gdant-text-h3)}.gd-ant-contract-signing-location__page-placeholder.is-error{color:var(--gdant-error-600)}.gd-ant-contract-signing-location__page-placeholder.is-error strong{color:var(--gdant-error-700)}.gd-ant-contract-signing-location__template-page{box-sizing:border-box;background:var(--gdant-neutral-0);width:100%;height:100%;color:var(--gdant-neutral-800);pointer-events:none;padding:54px 64px;line-height:1.75;position:relative;overflow:hidden}.gd-ant-contract-signing-location__template-page-content{z-index:0;min-height:100%;position:relative}.gd-ant-contract-signing-location__template-page-content p{margin:0 0 10px}.gd-ant-contract-signing-location__template-page-content table{border-collapse:collapse;width:100%}.gd-ant-contract-signing-location__template-page-content th,.gd-ant-contract-signing-location__template-page-content td{border:1px solid var(--gdant-neutral-300);min-width:80px;padding:6px 8px}.gd-ant-contract-signing-location__template-page-content img{object-fit:contain;vertical-align:middle;max-width:100%;display:inline-block}.gd-ant-contract-signing-location__template-page-content img[width],.gd-ant-contract-signing-location__template-page-content img[height]{max-width:none}.gd-ant-contract-signing-location__template-page-content ul,.gd-ant-contract-signing-location__template-page-content ol{margin:0 0 10px;padding-left:2em;list-style-position:outside}.gd-ant-contract-signing-location__template-page-content ul{list-style-type:disc}.gd-ant-contract-signing-location__template-page-content ul ul{list-style-type:circle}.gd-ant-contract-signing-location__template-page-content ul ul ul{list-style-type:square}.gd-ant-contract-signing-location__template-page-content ol{list-style-type:decimal}.gd-ant-contract-signing-location__template-page-content ol ol{list-style-type:lower-alpha}.gd-ant-contract-signing-location__template-page-content ol ol ol{list-style-type:lower-roman}.gd-ant-contract-signing-location__template-page-content .gd-contract-template-renderer__control{box-sizing:border-box;align-items:center;justify-content:var(--gd-contract-variable-justify-content,flex-start);width:var(--gd-contract-variable-width,160px);min-width:var(--gd-contract-variable-width,160px);min-height:var(--gd-contract-variable-height,32px);color:var(--gd-contract-variable-color,var(--gdant-neutral-800));background:var(--gd-contract-variable-background,transparent);font-family:var(--gd-contract-variable-font-family,inherit);font-size:var(--gd-contract-variable-font-size,14px);text-align:var(--gd-contract-variable-text-align,left);vertical-align:baseline;border:0;border-radius:0;padding:0 4px;display:inline-flex}.gd-ant-contract-signing-location__template-page-content .gd-contract-template-renderer__control.has-border{border:1px var(--gd-contract-variable-border-style,solid) var(--gd-contract-variable-line-color,var(--gdant-neutral-600))}.gd-ant-contract-signing-location__template-page-content .gd-contract-template-renderer__control.has-underline{border-bottom:1px solid var(--gd-contract-variable-line-color,var(--gdant-neutral-600))}.gd-ant-contract-signing-location__template-page-content .gd-contract-template-renderer__control.is-multiline{min-height:var(--gd-contract-variable-multiline-height,84px);line-height:var(--gd-contract-variable-line-height,28px)}.gd-ant-contract-signing-location__template-page-content .gd-contract-template-renderer__preview-control.is-image{background-image:var(--gd-contract-variable-image);background-position:50%;background-repeat:no-repeat;background-size:var(--gd-contract-variable-object-fit,contain)}.gd-ant-contract-signing-location__template-page-content .gd-contract-template-renderer__preview-control.is-empty{color:var(--gd-contract-variable-placeholder-color,var(--gdant-neutral-500))}.gd-ant-contract-signing-location__template-page-content .gd-contract-template-renderer__checkbox-mark{border:1px solid var(--gd-contract-variable-line-color,var(--gdant-neutral-600));justify-content:center;align-items:center;width:14px;height:14px;font-size:12px;line-height:1;display:inline-flex}.gd-ant-contract-signing-location__template-warning{right:var(--gdant-spacing-md);bottom:var(--gdant-spacing-md);left:var(--gdant-spacing-md);z-index:1;gap:var(--gdant-spacing-xs);padding:var(--gdant-spacing-sm) var(--gdant-spacing-md);border:1px solid var(--gdant-warning-200);border-radius:var(--gdant-radius-md);background:color-mix(in srgb, var(--gdant-warning-50) 94%, transparent);color:var(--gdant-warning-700);font-size:var(--gdant-text-body-sm);display:grid;position:absolute}.gd-ant-contract-signing-location__render-region{z-index:2;box-sizing:border-box;border:1px solid #0000;position:absolute;inset:0}.gd-ant-contract-signing-location__render-region-content{width:100%;height:100%;position:relative;overflow:hidden}.gd-ant-contract-signing-location__placement{z-index:3;border-radius:var(--gdant-radius-xs);min-width:0;min-height:0;color:var(--gdant-primary-500);font:inherit;appearance:none;cursor:move;touch-action:none;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;overflow:visible}.gd-ant-contract-signing-location__placement:hover,.gd-ant-contract-signing-location__placement:focus-visible,.gd-ant-contract-signing-location__placement.is-selected{outline-offset:2px;box-shadow:0 0 0 3px color-mix(in srgb, currentColor 18%, transparent);outline:1px solid}.gd-ant-contract-signing-location__placement:focus-visible{outline-width:2px}.gd-ant-contract-signing-location__placement.is-seal{color:var(--gdant-error-500)}.gd-ant-contract-signing-location__placement.is-date{color:var(--gdant-warning-600)}.gd-ant-contract-signing-location__placement-body{pointer-events:none;justify-content:center;align-items:center;width:100%;min-width:0;height:100%;display:flex;overflow:hidden}.gd-ant-contract-signing-location__placement-visual{object-fit:contain;-webkit-user-select:none;user-select:none;width:100%;min-width:0;height:100%;min-height:0;display:block}.gd-ant-contract-signing-location__placement-badge{z-index:4;padding:0 var(--gdant-spacing-xs);border-radius:var(--gdant-radius-pill);background:var(--gdant-primary-500);color:var(--gdant-neutral-0);font-size:var(--gdant-text-body-sm);pointer-events:none;white-space:nowrap;line-height:1.4;position:absolute;top:0;right:0;transform:translate(30%,-40%)}.gd-ant-contract-signing-location__placement.is-seal .gd-ant-contract-signing-location__placement-badge{background:var(--gdant-error-500)}.gd-ant-contract-signing-location__placement.is-date .gd-ant-contract-signing-location__placement-badge{background:var(--gdant-warning-500)}.gd-ant-contract-signing-location__resize-handle{z-index:5;border:1px solid var(--gdant-primary-500);border-radius:var(--gdant-radius-xs);background:var(--gdant-neutral-0);width:8px;height:8px;position:absolute}.gd-ant-contract-signing-location__resize-handle.is-n,.gd-ant-contract-signing-location__resize-handle.is-s{cursor:ns-resize;left:50%;transform:translate(-50%)}.gd-ant-contract-signing-location__resize-handle.is-e,.gd-ant-contract-signing-location__resize-handle.is-w{cursor:ew-resize;top:50%;transform:translateY(-50%)}.gd-ant-contract-signing-location__resize-handle.is-n{top:-5px}.gd-ant-contract-signing-location__resize-handle.is-s{bottom:-5px}.gd-ant-contract-signing-location__resize-handle.is-e{right:-5px}.gd-ant-contract-signing-location__resize-handle.is-w{left:-5px}.gd-ant-contract-signing-location__resize-handle.is-nw{cursor:nwse-resize;top:-5px;left:-5px}.gd-ant-contract-signing-location__resize-handle.is-ne{cursor:nesw-resize;top:-5px;right:-5px}.gd-ant-contract-signing-location__resize-handle.is-se{cursor:nwse-resize;bottom:-5px;right:-5px}.gd-ant-contract-signing-location__resize-handle.is-sw{cursor:nesw-resize;bottom:-5px;left:-5px}.gd-ant-contract-signing-location__coordinate-guides{z-index:2;pointer-events:none;position:absolute;inset:0}.gd-ant-contract-signing-location__coordinate-guides>span{border-color:var(--gdant-primary-500);border-style:dashed;display:block;position:absolute}.gd-ant-contract-signing-location__coordinate-guides>span small{padding:0 var(--gdant-spacing-xs);border-radius:var(--gdant-radius-sm);background:var(--gdant-primary-600);color:var(--gdant-neutral-0);font-size:var(--gdant-text-body-sm);line-height:var(--gdant-spacing-lg);white-space:nowrap;position:absolute}.gd-ant-contract-signing-location__coordinate-guides .is-horizontal{border-width:1px 0 0;width:100%;left:0}.gd-ant-contract-signing-location__coordinate-guides .is-horizontal small{left:var(--gd-contract-sign-left);transform:translate(-50%)}.gd-ant-contract-signing-location__coordinate-guides .is-vertical{border-width:0 0 0 1px;height:100%;top:0}.gd-ant-contract-signing-location__coordinate-guides .is-vertical small{top:var(--gd-contract-sign-top);transform:translate(-50%,-50%)rotate(-90deg)}.gd-ant-contract-signing-location__coordinate-guides .is-top{top:var(--gd-contract-sign-top)}.gd-ant-contract-signing-location__coordinate-guides .is-top small{bottom:var(--gdant-spacing-xs)}.gd-ant-contract-signing-location__coordinate-guides .is-bottom{top:var(--gd-contract-sign-bottom)}.gd-ant-contract-signing-location__coordinate-guides .is-bottom small{top:var(--gdant-spacing-xs)}.gd-ant-contract-signing-location__coordinate-guides .is-left{left:var(--gd-contract-sign-left)}.gd-ant-contract-signing-location__coordinate-guides .is-left small{right:var(--gdant-spacing-xs)}.gd-ant-contract-signing-location__coordinate-guides .is-right{left:var(--gd-contract-sign-right)}.gd-ant-contract-signing-location__coordinate-guides .is-right small{left:var(--gdant-spacing-lg)}.gd-ant-contract-signing-location__snap-guides{z-index:2;pointer-events:none;position:absolute;inset:0}.gd-ant-contract-signing-location__snap-guides>span{border-color:var(--gdant-primary-400);border-style:solid;display:block;position:absolute}.gd-ant-contract-signing-location__snap-guides .is-horizontal{border-width:1px 0 0;width:100%;left:0}.gd-ant-contract-signing-location__snap-guides .is-vertical{border-width:0 0 0 1px;height:100%;top:0}.gd-ant-contract-signing-location__tool-list{padding:var(--gdant-spacing-sm);flex:none;grid-template-columns:repeat(3,minmax(0,1fr))}.gd-ant-contract-signing-location__tool{place-items:center;gap:var(--gdant-spacing-xs);min-width:0;min-height:74px;padding:var(--gdant-spacing-sm);border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);color:var(--gdant-neutral-700);font:inherit;text-align:center;cursor:grab;transition:border-color var(--gdant-duration-normal) var(--gdant-easing-default), background var(--gdant-duration-normal) var(--gdant-easing-default);grid-template-columns:minmax(0,1fr);display:grid}.gd-ant-contract-signing-location__tool>svg{color:var(--gdant-primary-500);font-size:var(--gdant-spacing-lg)}.gd-ant-contract-signing-location__tool>span{gap:var(--gdant-spacing-xs);min-width:0;display:grid}.gd-ant-contract-signing-location__tool strong,.gd-ant-contract-signing-location__tool small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-ant-contract-signing-location__tool strong{font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location__tool small{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location__tool:hover:not(:disabled){border-color:var(--gdant-primary-500);background:var(--gdant-primary-50)}.gd-ant-contract-signing-location__tool:disabled{cursor:not-allowed;opacity:.55}.gd-ant-contract-signing-location__inspector-divider{height:var(--gdant-spacing-sm);border-block:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-50)}.gd-ant-contract-signing-location__placement-list{flex-direction:column;flex:1 1 0;min-height:168px;display:flex;overflow:hidden}.gd-ant-contract-signing-location__list-head{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);padding:var(--gdant-spacing-sm) var(--gdant-spacing-base);color:var(--gdant-neutral-800);flex:none;display:flex}.gd-ant-contract-signing-location__list-head span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location__placement-groups{gap:var(--gdant-spacing-md);min-height:0;padding:0 var(--gdant-spacing-md) var(--gdant-spacing-md);display:grid;overflow:auto}.gd-ant-contract-signing-location__placement-group{gap:var(--gdant-spacing-xs);display:grid}.gd-ant-contract-signing-location__placement-group h3{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm);font-weight:var(--gdant-font-medium);margin:0}.gd-ant-contract-signing-location__placement-row{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;padding:var(--gdant-spacing-sm);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);color:var(--gdant-neutral-700);font:inherit;text-align:left;cursor:pointer;grid-template-columns:auto minmax(0,1fr) auto auto;display:grid}.gd-ant-contract-signing-location__placement-row>svg{color:var(--gdant-primary-500)}.gd-ant-contract-signing-location__placement-row>span{min-width:0;display:grid}.gd-ant-contract-signing-location__placement-row strong,.gd-ant-contract-signing-location__placement-row small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-ant-contract-signing-location__placement-row small{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location__placement-row em{color:var(--gdant-error-600);font-style:normal;font-size:var(--gdant-text-body-sm);flex:none}.gd-ant-contract-signing-location__placement-row:hover,.gd-ant-contract-signing-location__placement-row.is-active{border-color:var(--gdant-primary-500);background:var(--gdant-primary-50)}.gd-ant-contract-signing-location__placement-row-delete{border-radius:var(--gdant-radius-sm);width:24px;height:24px;color:var(--gdant-neutral-500);place-items:center;display:grid}.gd-ant-contract-signing-location__placement-row-delete:hover{background:var(--gdant-neutral-100);color:var(--gdant-error-600)}.gd-ant-contract-signing-location__property-head{flex:none}.gd-ant-contract-signing-location__property-body{min-height:176px;padding:var(--gdant-spacing-base);flex:1.2 1 0;overflow:auto}.gd-ant-contract-signing-location__switch-row,.gd-ant-contract-signing-location__distance-summary{justify-content:space-between;gap:var(--gdant-spacing-sm)}.gd-ant-contract-signing-location__form-row{gap:var(--gdant-spacing-xs);color:var(--gdant-neutral-600);font-size:var(--gdant-text-body-sm);display:grid}.gd-ant-contract-signing-location__form-row.is-wide .ant-select,.gd-ant-contract-signing-location__form-row .ant-input-number{width:100%}.gd-ant-contract-signing-location__coordinate-grid{gap:var(--gdant-spacing-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.gd-ant-contract-signing-location__distance-summary{padding:var(--gdant-spacing-sm);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-50);color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location__distance-summary b{color:var(--gdant-neutral-700);font-weight:var(--gdant-font-medium)}.gd-ant-contract-signing-location__panel-empty{min-height:220px;padding:var(--gdant-spacing-xl);flex:1}.gd-ant-contract-signing-location__panel-empty>svg{color:var(--gdant-neutral-400);font-size:var(--gdant-spacing-xl);justify-self:center}.gd-ant-contract-signing-location__panel-empty strong{color:var(--gdant-neutral-700)}.gd-ant-contract-signing-location__panel-empty span{font-size:var(--gdant-text-body-sm);line-height:1.6}.gd-ant-contract-signing-location__panel-empty.is-inspector,.gd-ant-contract-signing-location__panel-empty.is-list{flex:none;min-height:120px}.gd-ant-contract-signing-location__zoom-tools{gap:var(--gdant-spacing-xs)}.gd-ant-contract-signing-location__zoom-tools>button:not(.ant-btn){min-width:52px;color:var(--gdant-neutral-600);font:inherit;font-size:var(--gdant-text-body-sm);cursor:pointer;background:0 0;border:0}.gd-ant-contract-signing-location__muted{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location.is-readonly .gd-ant-contract-signing-location__placement{cursor:pointer}.gd-ant-contract-signing-location.is-disabled{opacity:.72}@media (width<=1024px){.gd-ant-contract-signing-location__workspace-head,.gd-ant-contract-signing-location__workspace-tools{flex-wrap:wrap}}@media (width<=768px){.gd-ant-contract-signing-location{grid-template-rows:auto auto auto;height:auto}.gd-ant-contract-signing-location__header{flex-direction:column;align-items:stretch}.gd-ant-contract-signing-location__header-actions{justify-content:space-between}.gd-ant-contract-signing-location__body,.gd-ant-contract-signing-location__body.is-single-file{grid-template-columns:1fr;min-height:0;overflow:visible}.gd-ant-contract-signing-location__navigator,.gd-ant-contract-signing-location__inspector,.gd-ant-contract-signing-location__navigator-wrap,.gd-ant-contract-signing-location__inspector-wrap,.gd-ant-contract-signing-location__navigator-wrap.is-collapsed,.gd-ant-contract-signing-location__inspector-wrap.is-collapsed{border:0;width:auto;overflow:visible}.gd-ant-contract-signing-location__navigator-wrap .gd-ant-contract-signing-location__panel-stack,.gd-ant-contract-signing-location__inspector-wrap .gd-ant-contract-signing-location__panel-stack,.gd-ant-contract-signing-location__navigator-wrap.is-collapsed .gd-ant-contract-signing-location__panel-stack,.gd-ant-contract-signing-location__inspector-wrap.is-collapsed .gd-ant-contract-signing-location__panel-stack,.gd-ant-contract-signing-location__navigator-wrap .gd-ant-contract-signing-location__panel-stack>*,.gd-ant-contract-signing-location__inspector-wrap .gd-ant-contract-signing-location__panel-stack>*{visibility:visible;width:100%}.gd-ant-contract-signing-location__navigator-wrap{border-bottom:1px solid var(--gdant-neutral-200)}.gd-ant-contract-signing-location__inspector-wrap{border-top:1px solid var(--gdant-neutral-200)}.gd-ant-contract-signing-location__panel-handle{display:none!important}.gd-ant-contract-signing-location__file-list{max-height:300px;overflow:auto}.gd-ant-contract-signing-location__tool-list{grid-template-columns:minmax(0,1fr)}.gd-ant-contract-signing-location__placement-list,.gd-ant-contract-signing-location__property-body{flex:none;min-height:auto}.gd-ant-contract-signing-location__workspace{min-height:520px}.gd-ant-contract-signing-location__canvas-scroll{max-height:70vh}.gd-ant-contract-signing-location__workspace-head,.gd-ant-contract-signing-location__workspace-tools,.gd-ant-contract-signing-location__page-jumper{justify-content:flex-start}.gd-ant-contract-signing-location__zoom-tools{justify-content:center;margin-right:0}}@media (width<=480px){.gd-ant-contract-signing-location__header-actions,.gd-ant-contract-signing-location__thumbnail-list,.gd-ant-contract-signing-location__coordinate-grid{grid-template-columns:1fr}.gd-ant-contract-signing-location__header-actions{display:grid}.gd-ant-contract-signing-location__placement-count{justify-self:start}.gd-ant-contract-signing-location__canvas-scroll{padding:var(--gdant-spacing-md)}.gd-ant-contract-signing-location__workspace{min-height:440px}}@container (width<=1119px){.gd-ant-contract-signing-location__body{--gd-navigator-expanded:184px;--gd-inspector-expanded:244px}.gd-ant-contract-signing-location__workspace-head,.gd-ant-contract-signing-location__workspace-tools{flex-wrap:wrap}}@container (width<=919px){.gd-ant-contract-signing-location__body{--gd-navigator-expanded:160px;--gd-inspector-expanded:220px}}@media (prefers-reduced-motion:reduce){.gd-ant-contract-signing-location__navigator-wrap,.gd-ant-contract-signing-location__inspector-wrap,.gd-ant-contract-signing-location__panel-handle{transition:none}}
1
+ :root{--gdant-primary-50:var(--primary-50,#f4f9ff);--gdant-primary-100:var(--primary-100,#e9f1f6);--gdant-primary-200:var(--primary-200,#bcd7ff);--gdant-primary-300:var(--primary-300,#7fb0ff);--gdant-primary-400:var(--primary-400,#3b87ff);--gdant-primary-500:var(--primary-500,#1161ff);--gdant-primary-600:var(--primary-600,#0d4ed1);--gdant-primary-700:var(--primary-700,#0a3da5);--gdant-primary-800:var(--primary-800,#082c79);--gdant-primary-900:var(--primary-900,#05204d);--gdant-neutral-0:var(--neutral-0,#fff);--gdant-neutral-50:var(--neutral-50,#fafbfc);--gdant-neutral-100:var(--neutral-100,#f5f6f8);--gdant-neutral-200:var(--neutral-200,#eaecef);--gdant-neutral-300:var(--neutral-300,#d9dce0);--gdant-neutral-400:var(--neutral-400,#aab0b7);--gdant-neutral-500:var(--neutral-500,#7a818b);--gdant-neutral-600:var(--neutral-600,#565b66);--gdant-neutral-700:var(--neutral-700,#383d47);--gdant-neutral-800:var(--neutral-800,#262a33);--gdant-neutral-900:var(--neutral-900,#0f131a);--gdant-success-50:var(--success-50,#e8f9ed);--gdant-success-500:var(--success-500,#00b42a);--gdant-success-600:var(--success-600,#009023);--gdant-warning-50:var(--warning-50,#fff3e8);--gdant-warning-100:var(--warning-100,#ffe4cc);--gdant-warning-500:var(--warning-500,#f58634);--gdant-warning-600:var(--warning-600,#d96c1c);--gdant-warning-700:var(--warning-700,#b35316);--gdant-error-50:var(--error-50,#fde9e9);--gdant-error-100:var(--error-100,#fcd4d4);--gdant-error-300:var(--error-300,#f47070);--gdant-error-500:var(--error-500,#ee3939);--gdant-error-600:var(--error-600,#c92626);--gdant-error-700:var(--error-700,#a31c1c);--gdant-radius-xs:var(--radius-xs,2px);--gdant-radius-sm:var(--radius-sm,4px);--gdant-radius-md:var(--radius-md,6px);--gdant-radius-lg:var(--radius-lg,8px);--gdant-radius-xl:var(--radius-xl,12px);--gdant-radius-pill:var(--radius-pill,9999px);--gdant-shadow-raised:var(--shadow-raised,0 1px 2px #0f172a0a, 0 1px 4px #0f172a0f);--gdant-shadow-overlay:var(--shadow-overlay,0 4px 12px #0f172a14, 0 2px 6px #0f172a0a);--gdant-shadow-modal:var(--shadow-modal,0 16px 48px #0f172a29, 0 4px 12px #0f172a14);--gdant-spacing-xs:var(--spacing-xs,4px);--gdant-spacing-sm:var(--spacing-sm,8px);--gdant-spacing-md:var(--spacing-md,12px);--gdant-spacing-base:var(--spacing-base,16px);--gdant-spacing-lg:var(--spacing-lg,20px);--gdant-spacing-xl:var(--spacing-xl,24px);--gdant-text-body:var(--text-body,14px);--gdant-text-body-sm:var(--text-body-sm,12px);--gdant-text-h3:var(--text-h3,16px);--gdant-font-medium:var(--font-medium,500);--gdant-font-semibold:var(--font-semibold,600);--gdant-duration-normal:var(--duration-normal,.2s);--gdant-duration-slow:var(--duration-slow,.3s);--gdant-easing-default:var(--easing-default,cubic-bezier(.2, 0, 0, 1));--gdant-overlay-bg:#ffffffb8;--gdant-z-overlay:var(--z-overlay,1040);--gdant-z-modal:var(--z-modal,1050)}.gd-contract-template-page{box-sizing:border-box;color:#262a33;padding:54px 64px;font-family:Noto Serif CJK SC,Noto Serif SC,Source Han Serif SC,Songti SC,serif;font-size:16px;line-height:1.75;position:relative;overflow:hidden}.gd-contract-template-page *,.gd-contract-template-page :before,.gd-contract-template-page :after{box-sizing:border-box}.gd-contract-template-page.has-contract-header{padding-top:var(--gd-contract-header-safe-padding,80px)}.gd-contract-template-page.has-contract-footer{padding-bottom:var(--gd-contract-footer-safe-padding,80px)}.gd-contract-template-page__content{z-index:1;position:relative}.gd-contract-template-page__header,.gd-contract-template-page__footer{z-index:2;pointer-events:none;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:8px;min-width:0;padding-block:4px;line-height:1.5;display:grid;position:absolute;left:64px;right:64px}.gd-contract-template-page__header{top:24px}.gd-contract-template-page__footer{bottom:24px}.gd-contract-template-page__decoration-slot{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.gd-contract-template-page__decoration-slot.is-left{text-align:left}.gd-contract-template-page__decoration-slot.is-center{text-align:center}.gd-contract-template-page__decoration-slot.is-right{text-align:right}.gd-contract-template-page__watermark{z-index:0;letter-spacing:0;pointer-events:none;-webkit-user-select:none;user-select:none;display:grid;position:absolute;inset:0;overflow:hidden}.gd-contract-template-page__watermark.is-single{place-items:center}.gd-contract-template-page__watermark.is-tiled{grid-template-columns:repeat(var(--gd-watermark-columns), minmax(0, 1fr));grid-template-rows:repeat(var(--gd-watermark-rows), minmax(0, 1fr));padding:72px 40px}.gd-contract-template-page__watermark-item{text-overflow:ellipsis;white-space:nowrap;transform-origin:50%;justify-content:center;align-items:center;min-width:0;max-width:100%;font-weight:500;line-height:1.5;display:flex;overflow:hidden}.gd-contract-template-page p{margin:0 0 10px}.gd-contract-template-page table{border-collapse:collapse;width:100%}.gd-contract-template-page th,.gd-contract-template-page td{border:1px solid #d9dce0;min-width:80px;padding:6px 8px}.gd-contract-template-page img{object-fit:contain;vertical-align:middle;max-width:100%;display:inline-block}.gd-contract-template-page img[width],.gd-contract-template-page img[height]{max-width:none}.gd-contract-template-page img:not([height]){height:auto}.gd-contract-template-page h1,.gd-contract-template-page h2,.gd-contract-template-page h3,.gd-contract-template-page h4,.gd-contract-template-page h5,.gd-contract-template-page h6{font-weight:700;display:block}.gd-contract-template-page h1{margin:.67em 0;font-size:2em}.gd-contract-template-page h2{margin:.83em 0;font-size:1.5em}.gd-contract-template-page h3{margin:1em 0;font-size:1.17em}.gd-contract-template-page h4{margin:1.33em 0;font-size:1em}.gd-contract-template-page h5{margin:1.67em 0;font-size:.83em}.gd-contract-template-page h6{margin:2.33em 0;font-size:.67em}.gd-contract-template-page ul,.gd-contract-template-page ol{margin:1em 0;padding-inline-start:40px;list-style-position:outside;display:block}.gd-contract-template-page ul ul,.gd-contract-template-page ul ol,.gd-contract-template-page ol ul,.gd-contract-template-page ol ol{margin-block:0}.gd-contract-template-page ul{list-style-type:disc}.gd-contract-template-page ul ul,.gd-contract-template-page ol ul{list-style-type:circle}.gd-contract-template-page ul ul ul,.gd-contract-template-page ul ol ul,.gd-contract-template-page ol ul ul,.gd-contract-template-page ol ol ul{list-style-type:square}.gd-contract-template-page ol{list-style-type:decimal}.gd-contract-template-page li{text-align:match-parent;display:list-item}.gd-contract-template-page blockquote{margin:1em 40px;display:block}.gd-contract-template-page pre{white-space:pre;margin:1em 0;font-family:monospace;display:block}.gd-contract-template-page code,.gd-contract-template-page kbd,.gd-contract-template-page samp{font-family:monospace}.gd-contract-template-page hr{border-style:inset;border-width:1px;margin:.5em auto;display:block;overflow:hidden}.gd-contract-template-page b,.gd-contract-template-page strong{font-weight:bolder}.gd-contract-template-page i,.gd-contract-template-page em,.gd-contract-template-page cite,.gd-contract-template-page var,.gd-contract-template-page dfn,.gd-contract-template-page address{font-style:italic}.gd-contract-template-page s,.gd-contract-template-page strike,.gd-contract-template-page del{text-decoration:line-through}.gd-contract-template-page u,.gd-contract-template-page ins{text-decoration:underline}.gd-contract-template-page sup{vertical-align:super;font-size:smaller;line-height:normal}.gd-contract-template-page sub{vertical-align:sub;font-size:smaller;line-height:normal}.gd-contract-template-page small{font-size:smaller}.gd-contract-template-page .gd-contract-template-variable,.gd-contract-template-page [data-template-variable=true]:not(.gd-contract-template-page__variable){box-sizing:border-box;align-items:center;justify-content:var(--gd-contract-variable-justify-content,flex-start);width:var(--gd-contract-variable-width,160px);min-width:0;min-height:var(--gd-contract-variable-height,32px);background:var(--gd-contract-variable-background,transparent);color:var(--gd-contract-variable-color,#1f2937);font-size:var(--gd-contract-variable-font-size,14px);font-family:var(--gd-contract-variable-font-family,inherit);text-align:var(--gd-contract-variable-text-align,left);vertical-align:middle;white-space:nowrap;border:1px solid #0000;border-radius:2px;margin:0 2px;padding:0 6px;line-height:1.5;display:inline-flex;position:relative}.gd-contract-template-page .gd-contract-template-variable.has-border,.gd-contract-template-page [data-template-variable=true][data-border=true]:not(.gd-contract-template-page__variable){border-color:var(--gd-contract-variable-line-color,#565b66);border-style:var(--gd-contract-variable-border-style,solid)}.gd-contract-template-page .gd-contract-template-variable.has-underline,.gd-contract-template-page [data-template-variable=true][data-underline=true]:not(.gd-contract-template-page__variable){border-color:#0000;border-bottom-color:var(--gd-contract-variable-line-color,#565b66);border-bottom-style:var(--gd-contract-variable-border-style,solid);border-radius:0}.gd-contract-template-page .gd-contract-template-variable.is-multiline,.gd-contract-template-page [data-template-variable=true][data-multiline=true]:not(.gd-contract-template-page__variable){width:var(--gd-contract-variable-width,160px);height:var(--gd-contract-variable-multiline-height,84px);min-height:var(--gd-contract-variable-multiline-height,84px);line-height:var(--gd-contract-variable-line-height,28px);vertical-align:top;white-space:pre-wrap;display:inline-block;overflow:hidden}.gd-contract-template-page .gd-contract-template-variable.is-multiline.has-underline,.gd-contract-template-page [data-template-variable=true][data-multiline=true][data-underline=true]:not(.gd-contract-template-page__variable){background-image:linear-gradient(to bottom, transparent calc(100% - 1px), var(--gd-contract-variable-line-color,#565b66) calc(100% - 1px));background-repeat:repeat-y;background-size:100% var(--gd-contract-variable-line-height,28px);border-bottom-color:#0000}.gd-contract-template-page .gd-contract-template-variable.is-image,.gd-contract-template-page [data-template-variable=true][data-variable-type=image]:not(.gd-contract-template-page__variable){justify-content:var(--gd-contract-variable-justify-content,flex-start);min-height:var(--gd-contract-variable-height,32px);background-image:var(--gd-contract-variable-image,none);background-position:50%;background-repeat:no-repeat;background-size:var(--gd-contract-variable-object-fit,contain);white-space:nowrap;border-style:solid;border-color:#0000}.gd-contract-template-page .gd-contract-template-variable.is-image.has-value{color:#0000}.gd-contract-template-page .gd-contract-template-variable.is-image.has-value:before{content:none}.gd-contract-template-page .gd-contract-template-variable.is-checkbox{width:var(--gd-contract-variable-width,160px);gap:6px;min-width:0;padding:0 6px}.gd-ant-contract-signing-location{height:var(--gd-ant-contract-signing-location-height,clamp(720px, 100vh - 180px, 980px));border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-0);min-width:0;color:var(--gdant-neutral-800);font-size:var(--gdant-text-body);grid-template-rows:auto auto minmax(0,1fr);grid-template-areas:"header""error""body";display:grid;overflow:hidden;container-type:inline-size}.gd-ant-contract-signing-location__header,.gd-ant-contract-signing-location__header-actions,.gd-ant-contract-signing-location__panel-head,.gd-ant-contract-signing-location__workspace-head,.gd-ant-contract-signing-location__workspace-tools,.gd-ant-contract-signing-location__page-jumper,.gd-ant-contract-signing-location__switch-row,.gd-ant-contract-signing-location__distance-summary,.gd-ant-contract-signing-location__zoom-tools,.gd-ant-contract-signing-location__error{align-items:center;display:flex}.gd-ant-contract-signing-location__header{justify-content:space-between;gap:var(--gdant-spacing-base);min-height:60px;padding:var(--gdant-spacing-sm) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-neutral-200);grid-area:header}.gd-ant-contract-signing-location__title{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;display:flex}.gd-ant-contract-signing-location__title>div{gap:var(--gdant-spacing-xs);min-width:0;display:grid}.gd-ant-contract-signing-location__title strong{color:var(--gdant-neutral-900);font-size:var(--gdant-text-h3);font-weight:var(--gdant-font-semibold);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-ant-contract-signing-location__title span:last-child{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location__title-bar{width:var(--gdant-spacing-xs);height:var(--gdant-spacing-base);border-radius:var(--gdant-radius-xs);background:var(--gdant-primary-500);flex:none}.gd-ant-contract-signing-location__header-actions{gap:var(--gdant-spacing-sm);flex:none}.gd-ant-contract-signing-location__placement-count{padding:var(--gdant-spacing-xs) var(--gdant-spacing-sm);border:1px solid var(--gdant-primary-200);border-radius:var(--gdant-radius-pill);background:var(--gdant-primary-50);color:var(--gdant-primary-600);font-size:var(--gdant-text-body-sm);white-space:nowrap}.gd-ant-contract-signing-location__error{justify-content:space-between;gap:var(--gdant-spacing-sm);min-height:40px;padding:var(--gdant-spacing-xs) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-error-100);background:var(--gdant-error-50);color:var(--gdant-error-700);font-size:var(--gdant-text-body-sm);grid-area:error}.gd-ant-contract-signing-location__body{--gd-navigator-expanded:220px;--gd-inspector-expanded:280px;grid-area:body;grid-template-columns:auto minmax(0,1fr) auto;min-height:0;display:grid;overflow:hidden}.gd-ant-contract-signing-location__body.is-single-file{grid-template-columns:minmax(0,1fr) auto}.gd-ant-contract-signing-location__body.is-inspector-hidden{grid-template-columns:auto minmax(0,1fr)}.gd-ant-contract-signing-location__body.is-single-file.is-inspector-hidden{grid-template-columns:minmax(0,1fr)}.gd-ant-contract-signing-location__navigator,.gd-ant-contract-signing-location__inspector{background:var(--gdant-neutral-0);flex-direction:column;min-width:0;min-height:0;display:flex;overflow:auto}.gd-ant-contract-signing-location__inspector{overflow:hidden}.gd-ant-contract-signing-location__navigator-wrap,.gd-ant-contract-signing-location__inspector-wrap{z-index:1;background:var(--gdant-neutral-0);min-width:0;min-height:0;transition:width var(--gdant-duration-slow) var(--gdant-easing-default);flex-direction:column;display:flex;position:relative;overflow:visible}.gd-ant-contract-signing-location__navigator-wrap{width:var(--gd-navigator-expanded);border-right:1px solid var(--gdant-neutral-200)}.gd-ant-contract-signing-location__inspector-wrap{width:var(--gd-inspector-expanded);border-left:1px solid var(--gdant-neutral-200)}.gd-ant-contract-signing-location__navigator-wrap.is-collapsed{border-right-width:0;width:0}.gd-ant-contract-signing-location__inspector-wrap.is-collapsed{border-left-width:0;width:0}.gd-ant-contract-signing-location__navigator-wrap.is-collapsed .gd-ant-contract-signing-location__panel-stack,.gd-ant-contract-signing-location__inspector-wrap.is-collapsed .gd-ant-contract-signing-location__panel-stack{visibility:hidden}.gd-ant-contract-signing-location__panel-stack{flex:auto;width:100%;min-width:0;height:100%;min-height:0;overflow:hidden}.gd-ant-contract-signing-location__panel-stack>.gd-ant-contract-signing-location__navigator,.gd-ant-contract-signing-location__panel-stack>.gd-ant-contract-signing-location__inspector{height:100%}.gd-ant-contract-signing-location__navigator-wrap .gd-ant-contract-signing-location__panel-stack>*{width:var(--gd-navigator-expanded);flex:none}.gd-ant-contract-signing-location__inspector-wrap .gd-ant-contract-signing-location__panel-stack>*{width:var(--gd-inspector-expanded);flex:none}.gd-ant-contract-signing-location__panel-handle{z-index:2;box-sizing:border-box;border:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);width:14px;height:44px;color:var(--gdant-neutral-500);cursor:pointer;pointer-events:auto;transition:color var(--gdant-duration-normal) var(--gdant-easing-default), background var(--gdant-duration-normal) var(--gdant-easing-default);justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.gd-ant-contract-signing-location__panel-handle .anticon{font-size:10px}.gd-ant-contract-signing-location__navigator-wrap .gd-ant-contract-signing-location__panel-handle{border-radius:0 var(--gdant-radius-md) var(--gdant-radius-md) 0;border-left:0;right:-14px}.gd-ant-contract-signing-location__inspector-wrap .gd-ant-contract-signing-location__panel-handle{border-radius:var(--gdant-radius-md) 0 0 var(--gdant-radius-md);border-right:0;left:-14px}.gd-ant-contract-signing-location__panel-handle:hover{background:var(--gdant-neutral-50);color:var(--gdant-primary-500)}.gd-ant-contract-signing-location__panel-head,.gd-ant-contract-signing-location__property-head{justify-content:space-between;gap:var(--gdant-spacing-sm);padding:var(--gdant-spacing-md) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-neutral-200);flex:none}.gd-ant-contract-signing-location__panel-head>div,.gd-ant-contract-signing-location__property-head>div{gap:var(--gdant-spacing-xs);display:grid}.gd-ant-contract-signing-location__panel-head strong,.gd-ant-contract-signing-location__property-head strong{color:var(--gdant-neutral-800);font-weight:var(--gdant-font-semibold)}.gd-ant-contract-signing-location__panel-head>div>span,.gd-ant-contract-signing-location__property-head>div>span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location__file-list{gap:var(--gdant-spacing-base);padding:var(--gdant-spacing-md);display:grid}.gd-ant-contract-signing-location__file-group,.gd-ant-contract-signing-location__thumbnail-list,.gd-ant-contract-signing-location__tool-list,.gd-ant-contract-signing-location__property-body,.gd-ant-contract-signing-location__inspector-actions{gap:var(--gdant-spacing-sm);display:grid}.gd-ant-contract-signing-location__file-title{align-items:center;gap:var(--gdant-spacing-sm);color:var(--gdant-neutral-700);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.gd-ant-contract-signing-location__file-title>svg{color:var(--gdant-error-600)}.gd-ant-contract-signing-location__file-title>span{font-weight:var(--gdant-font-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-ant-contract-signing-location__file-title>small{color:var(--gdant-neutral-500);white-space:nowrap}.gd-ant-contract-signing-location__thumbnail-list{grid-template-columns:minmax(0,1fr)}.gd-ant-contract-signing-location__thumbnail{gap:var(--gdant-spacing-xs);min-width:0;padding:var(--gdant-spacing-xs);border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);color:var(--gdant-neutral-600);font:inherit;font-size:var(--gdant-text-body-sm);cursor:pointer;transition:border-color var(--gdant-duration-normal) var(--gdant-easing-default), box-shadow var(--gdant-duration-normal) var(--gdant-easing-default);display:grid}.gd-ant-contract-signing-location__thumbnail:hover,.gd-ant-contract-signing-location__thumbnail.is-active{border-color:var(--gdant-primary-500)}.gd-ant-contract-signing-location__thumbnail.is-active{color:var(--gdant-primary-600);box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 16%, transparent)}.gd-ant-contract-signing-location__thumbnail.is-error:not(.is-active){border-color:var(--gdant-error-500);color:var(--gdant-error-600)}.gd-ant-contract-signing-location__thumbnail:focus-visible{outline:2px solid var(--gdant-primary-500);outline-offset:2px}.gd-ant-contract-signing-location__thumbnail-preview{aspect-ratio:3/4;border-radius:var(--gdant-radius-sm);background:var(--gdant-neutral-100);color:var(--gdant-neutral-400);place-items:center;display:grid;overflow:hidden}.gd-ant-contract-signing-location__thumbnail-preview img{object-fit:cover;object-position:top center;width:100%;height:100%}.gd-ant-contract-signing-location__workspace{background:var(--gdant-neutral-100);grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;display:grid;overflow:hidden}.gd-ant-contract-signing-location__workspace-head{z-index:2;justify-content:space-between;gap:var(--gdant-spacing-sm);min-height:54px;padding:var(--gdant-spacing-sm) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0)}.gd-ant-contract-signing-location__workspace-head>div:first-child{gap:var(--gdant-spacing-xs);min-width:0;display:grid}.gd-ant-contract-signing-location__workspace-head strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-ant-contract-signing-location__workspace-head>div:first-child>span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm);white-space:nowrap}.gd-ant-contract-signing-location__workspace-tools{gap:var(--gdant-spacing-md);flex:none}.gd-ant-contract-signing-location__page-jumper{gap:var(--gdant-spacing-xs);color:var(--gdant-neutral-600);font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location__page-jumper label{align-items:center;gap:var(--gdant-spacing-xs);white-space:nowrap;display:inline-flex}.gd-ant-contract-signing-location__page-jumper input{width:52px;height:28px;padding:0 var(--gdant-spacing-xs);border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);color:var(--gdant-neutral-800);font:inherit;text-align:center}.gd-ant-contract-signing-location__page-jumper input:focus-visible{outline:2px solid color-mix(in srgb, var(--gdant-primary-500) 15%, transparent);border-color:var(--gdant-primary-500)}.gd-ant-contract-signing-location__canvas-scroll{min-height:0;padding:var(--gdant-spacing-xl);position:relative;overflow:auto}.gd-ant-contract-signing-location__canvas-state,.gd-ant-contract-signing-location__panel-empty{place-content:center;gap:var(--gdant-spacing-sm);color:var(--gdant-neutral-500);text-align:center;display:grid}.gd-ant-contract-signing-location__canvas-state{min-height:440px}.gd-ant-contract-signing-location__canvas-state.is-error{color:var(--gdant-error-600)}.gd-ant-contract-signing-location__canvas-state.is-error strong{color:var(--gdant-error-700)}.gd-ant-contract-signing-location__canvas-state.is-error button{padding:var(--gdant-spacing-xs) var(--gdant-spacing-sm);border:1px solid var(--gdant-error-300);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);color:var(--gdant-error-600);font:inherit;cursor:pointer;justify-self:center}.gd-ant-contract-signing-location__page-stack{min-height:100%;margin:0 auto;position:relative}.gd-ant-contract-signing-location__page-shell{position:absolute;overflow:hidden}.gd-ant-contract-signing-location__page-stage{min-height:100%;margin:0 auto;position:relative}.gd-ant-contract-signing-location__page{transform-origin:0 0;border-radius:var(--gdant-radius-xs);background:var(--gdant-neutral-0);box-shadow:var(--gdant-shadow-overlay);-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.gd-ant-contract-signing-location__page-image{object-fit:fill;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.gd-ant-contract-signing-location__page-placeholder{place-content:center;gap:var(--gdant-spacing-sm);background:var(--gdant-neutral-50);color:var(--gdant-neutral-500);text-align:center;display:grid;position:absolute;inset:0}.gd-ant-contract-signing-location__page-placeholder strong{color:var(--gdant-neutral-700);font-size:var(--gdant-text-h3)}.gd-ant-contract-signing-location__page-placeholder.is-error{color:var(--gdant-error-600)}.gd-ant-contract-signing-location__page-placeholder.is-error strong{color:var(--gdant-error-700)}.gd-ant-contract-signing-location__template-page{background:var(--gdant-neutral-0);pointer-events:none}.gd-ant-contract-signing-location__template-warning{right:var(--gdant-spacing-md);bottom:var(--gdant-spacing-md);left:var(--gdant-spacing-md);z-index:1;gap:var(--gdant-spacing-xs);padding:var(--gdant-spacing-sm) var(--gdant-spacing-md);border:1px solid var(--gdant-warning-200);border-radius:var(--gdant-radius-md);background:color-mix(in srgb, var(--gdant-warning-50) 94%, transparent);color:var(--gdant-warning-700);font-size:var(--gdant-text-body-sm);display:grid;position:absolute}.gd-ant-contract-signing-location__render-region{z-index:2;box-sizing:border-box;border:1px solid #0000;position:absolute;inset:0}.gd-ant-contract-signing-location__render-region-content{width:100%;height:100%;position:relative;overflow:hidden}.gd-ant-contract-signing-location__placement{z-index:3;border-radius:var(--gdant-radius-xs);min-width:0;min-height:0;color:var(--gdant-primary-500);font:inherit;appearance:none;cursor:move;touch-action:none;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;overflow:visible}.gd-ant-contract-signing-location__placement:hover,.gd-ant-contract-signing-location__placement:focus-visible,.gd-ant-contract-signing-location__placement.is-selected{outline-offset:2px;box-shadow:0 0 0 3px color-mix(in srgb, currentColor 18%, transparent);outline:1px solid}.gd-ant-contract-signing-location__placement:focus-visible{outline-width:2px}.gd-ant-contract-signing-location__placement.is-seal{color:var(--gdant-error-500)}.gd-ant-contract-signing-location__placement.is-date{color:var(--gdant-warning-600)}.gd-ant-contract-signing-location__placement-body{pointer-events:none;justify-content:center;align-items:center;width:100%;min-width:0;height:100%;display:flex;overflow:hidden}.gd-ant-contract-signing-location__placement-visual{object-fit:contain;-webkit-user-select:none;user-select:none;width:100%;min-width:0;height:100%;min-height:0;display:block}.gd-ant-contract-signing-location__placement-badge{z-index:4;padding:0 var(--gdant-spacing-xs);border-radius:var(--gdant-radius-pill);background:var(--gdant-primary-500);color:var(--gdant-neutral-0);font-size:var(--gdant-text-body-sm);pointer-events:none;white-space:nowrap;line-height:1.4;position:absolute;top:0;right:0;transform:translate(30%,-40%)}.gd-ant-contract-signing-location__placement.is-seal .gd-ant-contract-signing-location__placement-badge{background:var(--gdant-error-500)}.gd-ant-contract-signing-location__placement.is-date .gd-ant-contract-signing-location__placement-badge{background:var(--gdant-warning-500)}.gd-ant-contract-signing-location__resize-handle{z-index:5;border:1px solid var(--gdant-primary-500);border-radius:var(--gdant-radius-xs);background:var(--gdant-neutral-0);width:8px;height:8px;position:absolute}.gd-ant-contract-signing-location__resize-handle.is-n,.gd-ant-contract-signing-location__resize-handle.is-s{cursor:ns-resize;left:50%;transform:translate(-50%)}.gd-ant-contract-signing-location__resize-handle.is-e,.gd-ant-contract-signing-location__resize-handle.is-w{cursor:ew-resize;top:50%;transform:translateY(-50%)}.gd-ant-contract-signing-location__resize-handle.is-n{top:-5px}.gd-ant-contract-signing-location__resize-handle.is-s{bottom:-5px}.gd-ant-contract-signing-location__resize-handle.is-e{right:-5px}.gd-ant-contract-signing-location__resize-handle.is-w{left:-5px}.gd-ant-contract-signing-location__resize-handle.is-nw{cursor:nwse-resize;top:-5px;left:-5px}.gd-ant-contract-signing-location__resize-handle.is-ne{cursor:nesw-resize;top:-5px;right:-5px}.gd-ant-contract-signing-location__resize-handle.is-se{cursor:nwse-resize;bottom:-5px;right:-5px}.gd-ant-contract-signing-location__resize-handle.is-sw{cursor:nesw-resize;bottom:-5px;left:-5px}.gd-ant-contract-signing-location__coordinate-guides{z-index:2;pointer-events:none;position:absolute;inset:0}.gd-ant-contract-signing-location__coordinate-guides>span{border-color:var(--gdant-primary-500);border-style:dashed;display:block;position:absolute}.gd-ant-contract-signing-location__coordinate-guides>span small{padding:0 var(--gdant-spacing-xs);border-radius:var(--gdant-radius-sm);background:var(--gdant-primary-600);color:var(--gdant-neutral-0);font-size:var(--gdant-text-body-sm);line-height:var(--gdant-spacing-lg);white-space:nowrap;position:absolute}.gd-ant-contract-signing-location__coordinate-guides .is-horizontal{border-width:1px 0 0;width:100%;left:0}.gd-ant-contract-signing-location__coordinate-guides .is-horizontal small{left:var(--gd-contract-sign-left);transform:translate(-50%)}.gd-ant-contract-signing-location__coordinate-guides .is-vertical{border-width:0 0 0 1px;height:100%;top:0}.gd-ant-contract-signing-location__coordinate-guides .is-vertical small{top:var(--gd-contract-sign-top);transform:translate(-50%,-50%)rotate(-90deg)}.gd-ant-contract-signing-location__coordinate-guides .is-top{top:var(--gd-contract-sign-top)}.gd-ant-contract-signing-location__coordinate-guides .is-top small{bottom:var(--gdant-spacing-xs)}.gd-ant-contract-signing-location__coordinate-guides .is-bottom{top:var(--gd-contract-sign-bottom)}.gd-ant-contract-signing-location__coordinate-guides .is-bottom small{top:var(--gdant-spacing-xs)}.gd-ant-contract-signing-location__coordinate-guides .is-left{left:var(--gd-contract-sign-left)}.gd-ant-contract-signing-location__coordinate-guides .is-left small{right:var(--gdant-spacing-xs)}.gd-ant-contract-signing-location__coordinate-guides .is-right{left:var(--gd-contract-sign-right)}.gd-ant-contract-signing-location__coordinate-guides .is-right small{left:var(--gdant-spacing-lg)}.gd-ant-contract-signing-location__snap-guides{z-index:2;pointer-events:none;position:absolute;inset:0}.gd-ant-contract-signing-location__snap-guides>span{border-color:var(--gdant-primary-400);border-style:solid;display:block;position:absolute}.gd-ant-contract-signing-location__snap-guides .is-horizontal{border-width:1px 0 0;width:100%;left:0}.gd-ant-contract-signing-location__snap-guides .is-vertical{border-width:0 0 0 1px;height:100%;top:0}.gd-ant-contract-signing-location__tool-list{padding:var(--gdant-spacing-sm);flex:none;grid-template-columns:repeat(3,minmax(0,1fr))}.gd-ant-contract-signing-location__tool{place-items:center;gap:var(--gdant-spacing-xs);min-width:0;min-height:74px;padding:var(--gdant-spacing-sm);border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);color:var(--gdant-neutral-700);font:inherit;text-align:center;cursor:grab;transition:border-color var(--gdant-duration-normal) var(--gdant-easing-default), background var(--gdant-duration-normal) var(--gdant-easing-default);grid-template-columns:minmax(0,1fr);display:grid}.gd-ant-contract-signing-location__tool>svg{color:var(--gdant-primary-500);font-size:var(--gdant-spacing-lg)}.gd-ant-contract-signing-location__tool>span{gap:var(--gdant-spacing-xs);min-width:0;display:grid}.gd-ant-contract-signing-location__tool strong,.gd-ant-contract-signing-location__tool small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-ant-contract-signing-location__tool strong{font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location__tool small{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location__tool:hover:not(:disabled){border-color:var(--gdant-primary-500);background:var(--gdant-primary-50)}.gd-ant-contract-signing-location__tool:disabled{cursor:not-allowed;opacity:.55}.gd-ant-contract-signing-location__inspector-divider{height:var(--gdant-spacing-sm);border-block:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-50)}.gd-ant-contract-signing-location__placement-list{flex-direction:column;flex:1 1 0;min-height:168px;display:flex;overflow:hidden}.gd-ant-contract-signing-location__list-head{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);padding:var(--gdant-spacing-sm) var(--gdant-spacing-base);color:var(--gdant-neutral-800);flex:none;display:flex}.gd-ant-contract-signing-location__list-head span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location__placement-groups{gap:var(--gdant-spacing-md);min-height:0;padding:0 var(--gdant-spacing-md) var(--gdant-spacing-md);display:grid;overflow:auto}.gd-ant-contract-signing-location__placement-group{gap:var(--gdant-spacing-xs);display:grid}.gd-ant-contract-signing-location__placement-group h3{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm);font-weight:var(--gdant-font-medium);margin:0}.gd-ant-contract-signing-location__placement-row{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;padding:var(--gdant-spacing-sm);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);color:var(--gdant-neutral-700);font:inherit;text-align:left;cursor:pointer;grid-template-columns:auto minmax(0,1fr) auto auto;display:grid}.gd-ant-contract-signing-location__placement-row>svg{color:var(--gdant-primary-500)}.gd-ant-contract-signing-location__placement-row>span{min-width:0;display:grid}.gd-ant-contract-signing-location__placement-row strong,.gd-ant-contract-signing-location__placement-row small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-ant-contract-signing-location__placement-row small{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location__placement-row em{color:var(--gdant-error-600);font-style:normal;font-size:var(--gdant-text-body-sm);flex:none}.gd-ant-contract-signing-location__placement-row:hover,.gd-ant-contract-signing-location__placement-row.is-active{border-color:var(--gdant-primary-500);background:var(--gdant-primary-50)}.gd-ant-contract-signing-location__placement-row-delete{border-radius:var(--gdant-radius-sm);width:24px;height:24px;color:var(--gdant-neutral-500);place-items:center;display:grid}.gd-ant-contract-signing-location__placement-row-delete:hover{background:var(--gdant-neutral-100);color:var(--gdant-error-600)}.gd-ant-contract-signing-location__property-head{flex:none}.gd-ant-contract-signing-location__property-body{min-height:176px;padding:var(--gdant-spacing-base);flex:1.2 1 0;overflow:auto}.gd-ant-contract-signing-location__switch-row,.gd-ant-contract-signing-location__distance-summary{justify-content:space-between;gap:var(--gdant-spacing-sm)}.gd-ant-contract-signing-location__form-row{gap:var(--gdant-spacing-xs);color:var(--gdant-neutral-600);font-size:var(--gdant-text-body-sm);display:grid}.gd-ant-contract-signing-location__form-row.is-wide .ant-select,.gd-ant-contract-signing-location__form-row .ant-input-number{width:100%}.gd-ant-contract-signing-location__coordinate-grid{gap:var(--gdant-spacing-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.gd-ant-contract-signing-location__distance-summary{padding:var(--gdant-spacing-sm);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-50);color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location__distance-summary b{color:var(--gdant-neutral-700);font-weight:var(--gdant-font-medium)}.gd-ant-contract-signing-location__panel-empty{min-height:220px;padding:var(--gdant-spacing-xl);flex:1}.gd-ant-contract-signing-location__panel-empty>svg{color:var(--gdant-neutral-400);font-size:var(--gdant-spacing-xl);justify-self:center}.gd-ant-contract-signing-location__panel-empty strong{color:var(--gdant-neutral-700)}.gd-ant-contract-signing-location__panel-empty span{font-size:var(--gdant-text-body-sm);line-height:1.6}.gd-ant-contract-signing-location__panel-empty.is-inspector,.gd-ant-contract-signing-location__panel-empty.is-list{flex:none;min-height:120px}.gd-ant-contract-signing-location__zoom-tools{gap:var(--gdant-spacing-xs)}.gd-ant-contract-signing-location__zoom-tools>button:not(.ant-btn){min-width:52px;color:var(--gdant-neutral-600);font:inherit;font-size:var(--gdant-text-body-sm);cursor:pointer;background:0 0;border:0}.gd-ant-contract-signing-location__muted{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location.is-readonly .gd-ant-contract-signing-location__placement{cursor:pointer}.gd-ant-contract-signing-location.is-disabled{opacity:.72}@media (width<=1024px){.gd-ant-contract-signing-location__workspace-head,.gd-ant-contract-signing-location__workspace-tools{flex-wrap:wrap}}@media (width<=768px){.gd-ant-contract-signing-location{grid-template-rows:auto auto auto;height:auto}.gd-ant-contract-signing-location__header{flex-direction:column;align-items:stretch}.gd-ant-contract-signing-location__header-actions{justify-content:space-between}.gd-ant-contract-signing-location__body,.gd-ant-contract-signing-location__body.is-single-file{grid-template-columns:1fr;min-height:0;overflow:visible}.gd-ant-contract-signing-location__navigator,.gd-ant-contract-signing-location__inspector,.gd-ant-contract-signing-location__navigator-wrap,.gd-ant-contract-signing-location__inspector-wrap,.gd-ant-contract-signing-location__navigator-wrap.is-collapsed,.gd-ant-contract-signing-location__inspector-wrap.is-collapsed{border:0;width:auto;overflow:visible}.gd-ant-contract-signing-location__navigator-wrap .gd-ant-contract-signing-location__panel-stack,.gd-ant-contract-signing-location__inspector-wrap .gd-ant-contract-signing-location__panel-stack,.gd-ant-contract-signing-location__navigator-wrap.is-collapsed .gd-ant-contract-signing-location__panel-stack,.gd-ant-contract-signing-location__inspector-wrap.is-collapsed .gd-ant-contract-signing-location__panel-stack,.gd-ant-contract-signing-location__navigator-wrap .gd-ant-contract-signing-location__panel-stack>*,.gd-ant-contract-signing-location__inspector-wrap .gd-ant-contract-signing-location__panel-stack>*{visibility:visible;width:100%}.gd-ant-contract-signing-location__navigator-wrap{border-bottom:1px solid var(--gdant-neutral-200)}.gd-ant-contract-signing-location__inspector-wrap{border-top:1px solid var(--gdant-neutral-200)}.gd-ant-contract-signing-location__panel-handle{display:none!important}.gd-ant-contract-signing-location__file-list{max-height:300px;overflow:auto}.gd-ant-contract-signing-location__tool-list{grid-template-columns:minmax(0,1fr)}.gd-ant-contract-signing-location__placement-list,.gd-ant-contract-signing-location__property-body{flex:none;min-height:auto}.gd-ant-contract-signing-location__workspace{min-height:520px}.gd-ant-contract-signing-location__canvas-scroll{max-height:70vh}.gd-ant-contract-signing-location__workspace-head,.gd-ant-contract-signing-location__workspace-tools,.gd-ant-contract-signing-location__page-jumper{justify-content:flex-start}.gd-ant-contract-signing-location__zoom-tools{justify-content:center;margin-right:0}}@media (width<=480px){.gd-ant-contract-signing-location__header-actions,.gd-ant-contract-signing-location__thumbnail-list,.gd-ant-contract-signing-location__coordinate-grid{grid-template-columns:1fr}.gd-ant-contract-signing-location__header-actions{display:grid}.gd-ant-contract-signing-location__placement-count{justify-self:start}.gd-ant-contract-signing-location__canvas-scroll{padding:var(--gdant-spacing-md)}.gd-ant-contract-signing-location__workspace{min-height:440px}}@container (width<=1119px){.gd-ant-contract-signing-location__body{--gd-navigator-expanded:184px;--gd-inspector-expanded:244px}.gd-ant-contract-signing-location__workspace-head,.gd-ant-contract-signing-location__workspace-tools{flex-wrap:wrap}}@container (width<=919px){.gd-ant-contract-signing-location__body{--gd-navigator-expanded:160px;--gd-inspector-expanded:220px}}@media (prefers-reduced-motion:reduce){.gd-ant-contract-signing-location__navigator-wrap,.gd-ant-contract-signing-location__inspector-wrap,.gd-ant-contract-signing-location__panel-handle{transition:none}}