@guodun/antdv 1.4.2 → 1.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/es/components/contract-signing-location/src/ContractSigningLocationCanvas.vue.mjs +304 -293
- package/dist/es/components/contract-signing-location/src/coordinates.mjs +23 -23
- package/dist/es/components/contract-signing-location/src/location-rules.mjs +20 -10
- package/dist/es/components/contract-signing-location/src/page-layout.mjs +12 -9
- package/dist/es/components/contract-signing-location/src/template-source.mjs +2 -0
- package/dist/es/components/pro-contract-template-designer/src/ContractTemplateDesignerWorkspaceHeader.vue.mjs +186 -148
- package/dist/es/components/pro-contract-template-designer/src/ContractTemplateTextBubbleMenu.mjs +5 -0
- package/dist/es/components/pro-contract-template-designer/src/ContractTemplateTextBubbleMenu.vue.mjs +179 -0
- package/dist/es/components/pro-contract-template-designer/src/DesignerPage.vue.mjs +104 -81
- package/dist/es/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.mjs +1205 -1035
- package/dist/es/components/pro-contract-template-designer/style/index.css +1 -1
- package/dist/lib/components/contract-signing-location/src/ContractSigningLocationCanvas.vue.cjs +1 -1
- package/dist/lib/components/contract-signing-location/src/coordinates.cjs +1 -1
- package/dist/lib/components/contract-signing-location/src/location-rules.cjs +1 -1
- package/dist/lib/components/contract-signing-location/src/page-layout.cjs +1 -1
- package/dist/lib/components/contract-signing-location/src/template-source.cjs +1 -1
- package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateDesignerWorkspaceHeader.vue.cjs +1 -1
- package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateTextBubbleMenu.cjs +1 -0
- package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateTextBubbleMenu.vue.cjs +1 -0
- package/dist/lib/components/pro-contract-template-designer/src/DesignerPage.vue.cjs +2 -2
- package/dist/lib/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.cjs +1 -1
- package/dist/lib/components/pro-contract-template-designer/style/index.css +1 -1
- package/dist/theme/icon.css +1 -1
- package/dist/theme/index.css +1 -1
- package/dist/types/components/contract-signing-location/src/coordinates.d.ts +2 -2
- package/dist/types/components/contract-signing-location/src/page-layout.d.ts +2 -2
- package/dist/types/components/contract-signing-location/src/template-source.d.ts +2 -0
- package/dist/types/components/contract-signing-location/src/types.d.ts +3 -0
- package/dist/types/components/pro-contract-template-designer/src/ContractTemplateDesignerWorkspaceHeader.vue.d.ts +10 -0
- package/dist/types/components/pro-contract-template-designer/src/ContractTemplateTextBubbleMenu.vue.d.ts +43 -0
- package/dist/types/components/pro-contract-template-designer/src/DesignerPage.vue.d.ts +22 -0
- package/dist/types/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.d.ts +90 -0
- package/dist/types/components/pro-contract-template-designer/src/utils/context-menu-viewport.d.ts +3 -0
- package/package.json +3 -3
|
@@ -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-contract-template-designer{--gd-toolbar-control-height:30px;--gd-toolbar-radius:10px;--gd-toolbar-gap:8px;--gd-toolbar-border:var(--gdant-neutral-200);--gd-toolbar-bg:var(--gdant-neutral-0);--gd-toolbar-muted-bg:var(--gdant-neutral-50);--gd-toolbar-shadow:var(--gdant-shadow-raised);border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-100);min-height:640px;color:var(--gdant-neutral-800);flex-direction:column;font-size:14px;display:flex;overflow:hidden;container-type:inline-size}.gd-contract-template-designer__layout{--gd-sidebar-expanded:260px;--gd-inspector-expanded:300px;flex:auto;grid-template-columns:auto minmax(0,1fr) auto;min-width:0;min-height:0;display:grid}.gd-contract-template-designer__file-bar{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;padding:var(--gdant-spacing-xs) var(--gdant-spacing-md);border-bottom:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);display:flex}.gd-contract-template-designer__file-list{align-items:center;gap:var(--gdant-spacing-xs);min-width:0;scrollbar-color:var(--gdant-neutral-300) transparent;scrollbar-width:thin;flex:auto;padding-block:2px;padding-inline-end:var(--gdant-spacing-xs);display:flex;overflow-x:auto}.gd-contract-template-designer__file-item{border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-50);min-width:128px;max-width:280px;height:34px;transition:border-color var(--gdant-duration-fast) var(--gdant-easing-default), background var(--gdant-duration-fast) var(--gdant-easing-default), box-shadow var(--gdant-duration-fast) var(--gdant-easing-default);flex:none;align-items:center;display:inline-flex}.gd-contract-template-designer__file-item.is-active{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50);box-shadow:inset 3px 0 0 var(--gdant-primary-500)}.gd-contract-template-designer__file-tab{align-items:center;gap:var(--gdant-spacing-xs);min-width:0;height:100%;padding:0 var(--gdant-spacing-sm);color:var(--gdant-neutral-700);cursor:pointer;text-align:left;background:0 0;border:0;flex:auto;display:inline-flex}.gd-contract-template-designer__file-tab small{color:var(--gdant-neutral-500);flex:none;font-size:11px}.gd-contract-template-designer__file-index{background:var(--gdant-neutral-200);width:18px;height:18px;color:var(--gdant-neutral-600);font-size:11px;font-weight:var(--gdant-font-semibold);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.gd-contract-template-designer__file-item.is-active .gd-contract-template-designer__file-index{background:var(--gdant-primary-500);color:var(--gdant-neutral-0)}.gd-contract-template-designer__file-name{min-width:0;font-weight:var(--gdant-font-medium);text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.gd-contract-template-designer__file-actions{flex:none;align-items:center;padding-inline-end:2px;display:inline-flex}.gd-contract-template-designer__file-actions .ant-btn-sm{width:24px;min-width:24px;height:24px;padding:0}.gd-contract-template-designer__file-rename{width:180px;margin-inline:var(--gdant-spacing-xs)}.gd-contract-template-designer__file-add.ant-btn-sm{border-color:var(--gdant-primary-200);height:30px;color:var(--gdant-primary-600);flex:none}.gd-contract-template-designer.is-fullscreen{z-index:980;border-radius:0;width:100vw;min-height:0;position:fixed;inset:0;height:100dvh!important}.gd-contract-template-designer__sidebar,.gd-contract-template-designer__inspector{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-contract-template-designer__sidebar{width:var(--gd-sidebar-expanded);border-right:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__inspector{width:var(--gd-inspector-expanded);border-left:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__sidebar.is-collapsed{border-right-width:0;width:0}.gd-contract-template-designer__inspector.is-collapsed{border-left-width:0;width:0}.gd-contract-template-designer__sidebar.is-collapsed .gd-contract-template-designer__panel-stack,.gd-contract-template-designer__inspector.is-collapsed .gd-contract-template-designer__panel-stack{visibility:hidden}.gd-contract-template-designer__workspace{grid-template-rows:auto auto auto minmax(0,1fr);min-width:0;min-height:0;display:grid;position:relative;overflow:hidden}.gd-contract-template-designer__validation{grid-row:3}.gd-contract-template-designer__canvas{grid-row:4}.gd-contract-template-designer__page-decorations-trigger.ant-btn-sm{align-items:center;gap:var(--gdant-spacing-xs);min-width:156px;height:var(--gd-toolbar-control-height);text-align:left;padding-inline:8px;display:inline-flex}.gd-contract-template-designer__page-decorations-trigger.ant-btn-sm>.anticon{flex:none}.gd-contract-template-designer__page-decorations-trigger.ant-btn-sm .gd-contract-template-designer__page-decorations-trigger-copy{min-width:0;line-height:1.1;display:grid}.gd-contract-template-designer__page-decorations-trigger.ant-btn-sm .gd-contract-template-designer__page-decorations-trigger-copy>span,.gd-contract-template-designer__page-decorations-trigger.ant-btn-sm .gd-contract-template-designer__page-decorations-trigger-copy>small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-contract-template-designer__page-decorations-trigger.ant-btn-sm .gd-contract-template-designer__page-decorations-trigger-copy>small{color:var(--gdant-neutral-500);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.gd-contract-template-designer__page-decorations-trigger.ant-btn-sm.is-selected{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50);color:var(--gdant-primary-600)}.gd-contract-template-designer__page-decorations-studio{z-index:var(--gdant-z-overlay);border-left:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);width:min(480px,68%);min-width:0;box-shadow:var(--gdant-shadow-modal);pointer-events:auto;flex-direction:column;grid-row:4;display:flex;position:absolute;top:0;bottom:0;right:0;overflow:hidden;container:page-decorations-studio/inline-size}.gd-contract-template-designer__page-decorations-studio-head,.gd-contract-template-designer__page-decorations-studio-footer{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);min-width:0;padding:var(--gdant-spacing-sm) var(--gdant-spacing-md);border-bottom:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);flex:none;display:flex}.gd-contract-template-designer__page-decorations-studio-head{z-index:1;position:relative}.gd-contract-template-designer__page-decorations-studio-title,.gd-contract-template-designer__page-decorations-studio-actions,.gd-contract-template-designer__page-decorations-studio-footer>div{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;display:flex}.gd-contract-template-designer__page-decorations-studio-title>div{gap:2px;min-width:0;display:grid}.gd-contract-template-designer__page-decorations-studio-title strong{color:var(--gdant-neutral-900);font-size:15px;font-weight:var(--gdant-font-semibold);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-contract-template-designer__page-decorations-studio-title small,.gd-contract-template-designer__page-decorations-studio-footer>span,.gd-contract-template-designer__page-decorations-studio-section-head small{color:var(--gdant-neutral-500);font-size:var(--gdant-text-caption);line-height:1.5}.gd-contract-template-designer__page-decorations-studio-icon{border-radius:var(--gdant-radius-md);background:var(--gdant-primary-50);width:28px;height:28px;color:var(--gdant-primary-600);flex:none;justify-content:center;align-items:center;display:inline-flex}.gd-contract-template-designer__page-decorations-studio-body{min-width:0;min-height:0;padding:var(--gdant-spacing-md);background:var(--gdant-neutral-50);flex:auto;display:block;overflow:auto}.gd-contract-template-designer__page-decorations-studio-form-section{border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);min-width:0}.gd-contract-template-designer__page-decorations-studio-form-section>.gd-contract-template-designer__panel--decorations{border-bottom:0;width:auto}.gd-contract-template-designer__page-decorations-studio-form-section>.gd-contract-template-designer__panel--decorations.is-embedded{padding:var(--gdant-spacing-md)}.gd-contract-template-designer__decoration-plan{align-items:end;gap:var(--gdant-spacing-sm);grid-template-columns:minmax(0,1fr) auto;display:grid}.gd-contract-template-designer__decoration-plan .gd-contract-template-designer__form-row{margin:0}.gd-contract-template-designer__decoration-errors{margin-block:var(--gdant-spacing-sm)}.gd-contract-template-designer__decoration-errors ul{margin:0;padding-inline-start:var(--gdant-spacing-xl)}.gd-contract-template-designer__decoration-advanced{border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-50)}.gd-contract-template-designer__decoration-advanced summary{padding:var(--gdant-spacing-sm) var(--gdant-spacing-md);color:var(--gdant-neutral-700);cursor:pointer;font-size:var(--gdant-text-body-sm);font-weight:var(--gdant-font-medium)}.gd-contract-template-designer__decoration-advanced-content{gap:var(--gdant-spacing-sm);padding:0 var(--gdant-spacing-md) var(--gdant-spacing-md);display:grid}.gd-contract-template-designer__color-control{align-items:center;gap:var(--gdant-spacing-xs);min-width:0;display:inline-flex}.gd-contract-template-designer__color-control code{color:var(--gdant-neutral-500);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.gd-contract-template-designer__page-decorations-studio-footer{border-top:1px solid var(--gdant-neutral-200);border-bottom:0}.gd-contract-template-designer__workspace-header{border-bottom:1px solid var(--gdant-neutral-200);background:linear-gradient(180deg, var(--gdant-neutral-0) 0%, var(--gdant-neutral-50) 100%);justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:8px 12px;display:flex}.gd-contract-template-designer__workspace-meta{align-content:center;gap:2px;min-width:0;min-height:38px;display:grid}.gd-contract-template-designer__workspace-meta>span{color:var(--gdant-neutral-500);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:600}.gd-contract-template-designer__workspace-meta>strong{color:var(--gdant-neutral-800);text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;overflow:hidden}.gd-contract-template-designer__workspace-meta>small{color:var(--gdant-neutral-500);font-size:12px}.gd-contract-template-designer__draft-cache-status.is-success{color:var(--gdant-success-600)}.gd-contract-template-designer__draft-cache-status.is-warning,.gd-contract-template-designer__draft-cache-status.is-error{color:var(--gdant-warning-700)}.gd-contract-template-designer__workspace-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.gd-contract-template-designer__workspace-controls,.gd-contract-template-designer__workspace-buttons{align-items:center;gap:var(--gd-toolbar-gap);border:1px solid var(--gd-toolbar-border);border-radius:var(--gdant-radius-xl);background:var(--gd-toolbar-bg);box-shadow:var(--gd-toolbar-shadow);padding:4px;display:flex}.gd-contract-template-designer__workspace-buttons{flex-wrap:wrap}.gd-contract-template-designer__toolbar{border-bottom:1px solid var(--gdant-neutral-200);background:linear-gradient(180deg, var(--gdant-neutral-50) 0%, var(--gdant-neutral-50) 100%);align-items:center;gap:8px;min-width:0;padding:8px 12px;display:flex}.gd-contract-template-designer__toolbar-section{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.gd-contract-template-designer__toolbar-section--main{flex-wrap:nowrap;flex:auto;gap:8px 0}.gd-contract-template-designer__toolbar-section--main .gd-contract-template-designer__toolbar-group{flex-wrap:nowrap;flex-shrink:0}.gd-contract-template-designer__toolbar-section--main>.gd-contract-template-designer__toolbar-group:first-child:before{display:none}.gd-contract-template-designer__toolbar-select{flex:none;min-width:80px;max-width:112px}.gd-contract-template-designer__toolbar-select.is-wide{min-width:108px;max-width:132px}.gd-contract-template-designer__block-format-option{line-height:1.4;display:block}.gd-contract-template-designer__block-format-option.is-level-1{font-size:16px;font-weight:var(--gdant-font-semibold)}.gd-contract-template-designer__block-format-option.is-level-2{font-size:15px;font-weight:var(--gdant-font-semibold)}.gd-contract-template-designer__block-format-option.is-level-3{font-size:14px;font-weight:var(--gdant-font-semibold)}.gd-contract-template-designer__block-format-option.is-level-4{font-size:13px;font-weight:var(--gdant-font-semibold)}.gd-contract-template-designer__block-format-option.is-level-5,.gd-contract-template-designer__block-format-option.is-level-6,.gd-contract-template-designer__block-format-option.is-mixed{font-size:13px}.gd-contract-template-designer__toolbar-number{width:78px}.gd-contract-template-designer__icon-button.ant-btn-sm{width:var(--gd-toolbar-control-height);height:var(--gd-toolbar-control-height);min-width:var(--gd-toolbar-control-height);justify-content:center;align-items:center;padding-inline:0;display:inline-flex}.gd-contract-template-designer__icon-button.ant-btn-sm .anticon{font-size:15px}.gd-contract-template-designer__icon-button.ant-btn-sm.is-selected{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50);color:var(--gdant-primary-600)}.gd-contract-template-designer__toolbar-group{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.gd-contract-template-designer__toolbar-group:before{background:var(--gdant-neutral-200);content:"";flex:none;align-self:center;width:1px;height:20px;margin-inline:4px}.gd-contract-template-designer__toolbar .gd-contract-template-designer__icon-button.ant-btn-sm:not(.is-selected):not(.ant-btn-primary):hover:not(:disabled){background:var(--gdant-neutral-100)}.gd-contract-template-designer__toolbar .ant-btn-sm,.gd-contract-template-designer__workspace-actions .ant-btn-sm{min-width:var(--gd-toolbar-control-height);height:var(--gd-toolbar-control-height);border-radius:var(--gdant-radius-lg);padding-inline:10px;font-weight:500}.gd-contract-template-designer__toolbar .ant-btn-sm.ant-btn-icon-only,.gd-contract-template-designer__workspace-actions .ant-btn-sm.ant-btn-icon-only{padding-inline:0}.gd-contract-template-designer__toolbar .ant-select,.gd-contract-template-designer__workspace-actions .ant-select{align-self:stretch}.gd-contract-template-designer__toolbar .ant-select-selector,.gd-contract-template-designer__toolbar .ant-input-number,.gd-contract-template-designer__toolbar .ant-input-number-input-wrap,.gd-contract-template-designer__toolbar .ant-input-number-input,.gd-contract-template-designer__toolbar .ant-btn-sm,.gd-contract-template-designer__toolbar .gd-contract-template-designer__color,.gd-contract-template-designer__workspace-actions .ant-select-selector,.gd-contract-template-designer__workspace-actions .ant-input-number,.gd-contract-template-designer__workspace-actions .ant-input-number-input-wrap,.gd-contract-template-designer__workspace-actions .ant-input-number-input,.gd-contract-template-designer__workspace-actions .ant-btn-sm,.gd-contract-template-designer__workspace-actions .gd-contract-template-designer__color{height:var(--gd-toolbar-control-height)}.gd-contract-template-designer__toolbar .ant-select-selector,.gd-contract-template-designer__toolbar .ant-input-number,.gd-contract-template-designer__workspace-actions .ant-select-selector,.gd-contract-template-designer__workspace-actions .ant-input-number{border-radius:var(--gdant-radius-lg)}.gd-contract-template-designer__toolbar .ant-select-selector,.gd-contract-template-designer__workspace-actions .ant-select-selector{align-items:center;display:flex}.gd-contract-template-designer__toolbar .ant-input-number-input,.gd-contract-template-designer__workspace-actions .ant-input-number-input{height:calc(var(--gd-toolbar-control-height) - 2px)}.gd-contract-template-designer__zoom{align-items:center;gap:var(--gd-toolbar-gap);flex:none;grid-template-columns:32px 56px 32px 32px 32px 32px;display:inline-grid}.gd-contract-template-designer__zoom>span{color:var(--gdant-neutral-600);text-align:center;white-space:nowrap;font-size:12px;line-height:24px}.gd-contract-template-designer__color{width:var(--gd-toolbar-control-height);border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-0);padding:0}.gd-contract-template-designer__popover{gap:10px;min-width:220px;display:grid}.gd-contract-template-designer__popover>strong{color:var(--gdant-neutral-800);font-size:13px}.gd-contract-template-designer__control-insert-popover{--gd-text-context-menu-control-size:calc(var(--gdant-spacing-base) + var(--gdant-spacing-xl) / 2);width:min(304px, 100vw - var(--gdant-spacing-xl))}.gd-contract-template-designer__image-insert-popover{width:min(300px, 100vw - var(--gdant-spacing-xl))}.gd-contract-template-designer__image-size-fields{gap:var(--gdant-spacing-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.gd-contract-template-designer__image-size-fields label{gap:var(--gdant-spacing-xs);min-width:0;color:var(--gdant-neutral-600);font-size:var(--gdant-text-caption);display:grid}.gd-contract-template-designer__image-size-fields .ant-input-number{width:100%}.gd-contract-template-designer__hidden-file-input{display:none}.gd-contract-template-designer__canvas{scrollbar-color:var(--gdant-neutral-300) transparent;scrollbar-gutter:stable both-edges;scrollbar-width:thin;place-content:start center;gap:28px;min-width:0;min-height:0;padding:24px;display:grid;overflow:auto}.gd-contract-template-designer__validation{border-bottom:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);gap:8px;padding:10px 12px;display:grid}.gd-contract-template-designer__validation-list{max-height:126px;scrollbar-color:var(--gdant-neutral-300) transparent;scrollbar-gutter:stable;scrollbar-width:thin;gap:6px;padding-inline-end:var(--gdant-spacing-xs);display:grid;overflow:auto}.gd-contract-template-designer__validation-item{border:1px solid var(--gdant-error-50);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);width:100%;color:var(--gdant-error-700);cursor:pointer;text-align:left;justify-content:space-between;align-items:center;gap:10px;padding:7px 8px;display:flex}.gd-contract-template-designer__validation-item:hover{border-color:var(--gdant-error-300);background:var(--gdant-error-50)}.gd-contract-template-designer__validation-item small{color:var(--gdant-neutral-500);flex:none}.gd-contract-template-designer__panel{gap:var(--gdant-spacing-sm);padding:var(--gdant-spacing-md) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-neutral-200);display:grid}.gd-contract-template-designer__panel-head{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);min-height:20px;color:var(--gdant-neutral-700);display:flex}.gd-contract-template-designer__panel-head>strong{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;color:var(--gdant-neutral-800);font-size:14px;font-weight:var(--gdant-font-semibold);display:inline-flex}.gd-contract-template-designer__panel-head>strong:before{border-radius:var(--gdant-radius-xs);background:var(--gdant-primary-500);content:"";width:4px;height:16px}.gd-contract-template-designer__panel-head>span{color:var(--gdant-neutral-500);flex:none;font-size:12px}.gd-contract-template-designer__panel-actions{gap:8px;display:flex}.gd-contract-template-designer__panel-stack{width:100%;min-width:0;height:100%;min-height:0;scrollbar-color:var(--gdant-neutral-300) transparent;scrollbar-gutter:stable;scrollbar-width:thin;flex:auto;padding-inline-end:var(--gdant-spacing-xs);overflow:hidden auto}.gd-contract-template-designer__file-list::-webkit-scrollbar{width:10px;height:10px}.gd-contract-template-designer__panel-stack::-webkit-scrollbar{width:10px;height:10px}.gd-contract-template-designer__canvas::-webkit-scrollbar{width:10px;height:10px}.gd-contract-template-designer__validation-list::-webkit-scrollbar{width:10px;height:10px}.gd-contract-template-designer__file-list::-webkit-scrollbar-track{background:0 0}.gd-contract-template-designer__panel-stack::-webkit-scrollbar-track{background:0 0}.gd-contract-template-designer__canvas::-webkit-scrollbar-track{background:0 0}.gd-contract-template-designer__validation-list::-webkit-scrollbar-track{background:0 0}.gd-contract-template-designer__file-list::-webkit-scrollbar-thumb{border-radius:var(--gdant-radius-xl);background:var(--gdant-neutral-300);background-clip:padding-box;border:3px solid #0000}.gd-contract-template-designer__panel-stack::-webkit-scrollbar-thumb{border-radius:var(--gdant-radius-xl);background:var(--gdant-neutral-300);background-clip:padding-box;border:3px solid #0000}.gd-contract-template-designer__canvas::-webkit-scrollbar-thumb{border-radius:var(--gdant-radius-xl);background:var(--gdant-neutral-300);background-clip:padding-box;border:3px solid #0000}.gd-contract-template-designer__validation-list::-webkit-scrollbar-thumb{border-radius:var(--gdant-radius-xl);background:var(--gdant-neutral-300);background-clip:padding-box;border:3px solid #0000}.gd-contract-template-designer__file-list::-webkit-scrollbar-thumb:hover{background:var(--gdant-neutral-400);background-clip:padding-box}.gd-contract-template-designer__panel-stack::-webkit-scrollbar-thumb:hover{background:var(--gdant-neutral-400);background-clip:padding-box}.gd-contract-template-designer__canvas::-webkit-scrollbar-thumb:hover{background:var(--gdant-neutral-400);background-clip:padding-box}.gd-contract-template-designer__validation-list::-webkit-scrollbar-thumb:hover{background:var(--gdant-neutral-400);background-clip:padding-box}.gd-contract-template-designer__sidebar .gd-contract-template-designer__panel-stack>*{width:calc(var(--gd-sidebar-expanded) - var(--gdant-spacing-xs));flex:none}.gd-contract-template-designer__inspector .gd-contract-template-designer__panel-stack>*{width:calc(var(--gd-inspector-expanded) - var(--gdant-spacing-xs));flex:none}.gd-contract-template-designer__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-contract-template-designer__panel-handle .anticon{font-size:10px}.gd-contract-template-designer__sidebar .gd-contract-template-designer__panel-handle{border-radius:0 var(--gdant-radius-md) var(--gdant-radius-md) 0;border-left:0;right:-14px}.gd-contract-template-designer__inspector .gd-contract-template-designer__panel-handle{border-radius:var(--gdant-radius-md) 0 0 var(--gdant-radius-md);border-right:0;left:-14px}.gd-contract-template-designer__panel-handle:hover{background:var(--gdant-neutral-50);color:var(--gdant-primary-500)}.gd-contract-template-designer__toolbar-more{flex:none;align-items:center;display:flex;position:relative}.gd-contract-template-designer__toolbar-more:before{background:var(--gdant-neutral-200);content:"";flex:none;align-self:center;width:1px;height:20px;margin-inline:4px}.gd-contract-template-designer__toolbar-more-panel{z-index:var(--gdant-z-modal);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-0);width:236px;max-width:calc(100vw - 24px);box-shadow:var(--gdant-shadow-modal);flex-direction:column;gap:12px;padding:10px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.gd-contract-template-designer__toolbar-more-section{flex-direction:column;gap:6px;display:flex}.gd-contract-template-designer__toolbar-more-title{color:var(--gdant-neutral-500);font-size:12px;line-height:18px}.gd-contract-template-designer__toolbar-more-slot{flex-wrap:wrap;gap:6px;display:flex}.gd-contract-template-designer__toolbar-more-slot .gd-contract-template-designer__toolbar-group{flex-wrap:wrap;flex-shrink:1;gap:6px;width:100%}.gd-contract-template-designer__toolbar-more-slot .gd-contract-template-designer__toolbar-group:before{display:none}.gd-contract-template-designer__toolbar-more-slot .gd-contract-template-designer__toolbar-select,.gd-contract-template-designer__toolbar-more-slot .gd-contract-template-designer__toolbar-select.is-wide{flex:92px;min-width:92px;max-width:none}.gd-contract-template-designer__nav-item,.gd-contract-template-designer__variable-chip,.gd-contract-template-designer__tool-item{border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);width:100%;min-height:36px;color:var(--gdant-neutral-700);cursor:pointer;text-align:left;transition:border-color var(--gdant-duration-normal), background-color var(--gdant-duration-normal), box-shadow var(--gdant-duration-normal);justify-content:space-between;align-items:center;margin:0;padding:8px;display:flex}.gd-contract-template-designer__nav-item:hover,.gd-contract-template-designer__variable-chip:hover,.gd-contract-template-designer__tool-item:hover,.gd-contract-template-designer__nav-item.is-active,.gd-contract-template-designer__variable-chip.is-active,.gd-contract-template-designer__tool-item.is-active{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50)}.gd-contract-template-designer__nav-item:focus-visible,.gd-contract-template-designer__variable-chip:focus-visible,.gd-contract-template-designer__tool-item:focus-visible{border-color:var(--gdant-primary-500);box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 15%, transparent);outline:none}.gd-contract-template-designer__nav-item:disabled,.gd-contract-template-designer__variable-chip:disabled,.gd-contract-template-designer__tool-item:disabled{color:var(--gdant-neutral-400);cursor:not-allowed}.gd-contract-template-designer__tool-item{justify-content:flex-start;gap:var(--gdant-spacing-sm)}.gd-contract-template-designer__tool-item-icon{border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-50);width:28px;height:28px;color:var(--gdant-primary-500);flex:none;justify-content:center;align-items:center;font-size:16px;line-height:1;display:inline-flex}.gd-contract-template-designer__tool-item-icon .anticon,.gd-contract-template-designer__tool-item-icon svg{width:1em;height:1em;color:inherit;fill:currentColor;display:block}.gd-contract-template-designer__tool-item:disabled .gd-contract-template-designer__tool-item-icon{background:var(--gdant-neutral-50);color:var(--gdant-primary-500)}.gd-contract-template-designer__tool-item-copy{gap:var(--gdant-spacing-xs);flex:1;min-width:0;display:grid}.gd-contract-template-designer__nav-item>span{gap:2px;min-width:0;display:grid}.gd-contract-template-designer__page-nav-row{align-items:center;gap:var(--gdant-spacing-xs);margin-bottom:var(--gdant-spacing-xs);grid-template-columns:minmax(0,1fr) auto;display:grid;position:relative}.gd-contract-template-designer__page-nav-row .gd-contract-template-designer__nav-item{min-width:0;margin-bottom:0}.gd-contract-template-designer__page-nav-actions{gap:var(--gdant-spacing-xs);display:flex}.gd-contract-template-designer__page-nav-actions .gd-contract-template-designer__icon-button.ant-btn-sm{width:28px;min-width:28px;height:28px}.gd-contract-template-designer__nav-item small{max-width:92px;color:var(--gdant-neutral-500);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.gd-contract-template-designer__page-config{border-top:1px dashed var(--gdant-neutral-300);gap:8px;margin-top:12px;padding-top:12px;display:grid}.gd-contract-template-designer__page-size-note{color:var(--gdant-neutral-500);font-size:12px}.gd-contract-template-designer__variable-form{gap:8px;margin-bottom:10px;display:grid}.gd-contract-template-designer__page-shell{margin:0 auto;position:relative}.gd-contract-template-designer__page-zoom{border-radius:var(--gdant-radius-lg);width:fit-content;transform:translateX(-50%) scale(var(--gd-contract-page-zoom,1));transform-origin:top;border:1px solid #0000;padding:3px;position:absolute;top:0;left:50%}.gd-contract-template-designer__page-zoom.is-active{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50)}.gd-contract-template-designer__page-title{color:var(--gdant-neutral-600);justify-content:space-between;gap:12px;margin-bottom:8px;font-size:12px;display:flex}.gd-contract-template-designer__page{box-sizing:border-box;border:1px solid var(--gdant-neutral-300);background:var(--gdant-neutral-0);box-shadow:var(--gdant-shadow-overlay);padding:54px 64px;position:relative;overflow:hidden}.gd-contract-template-page.has-contract-header{padding-top:80px}.gd-contract-template-designer__page:has(>.gd-contract-template-page__header){padding-top:80px}.gd-contract-template-page.has-contract-footer{padding-bottom:80px}.gd-contract-template-designer__page:has(>.gd-contract-template-page__footer){padding-bottom:80px}.gd-contract-template-page__content{z-index:1;position:relative}.gd-contract-template-page__header,.gd-contract-template-page__footer{z-index:2;align-items:center;gap:var(--gdant-spacing-sm);min-width:0;padding-block:var(--gdant-spacing-xs);pointer-events:none;grid-template-columns:repeat(3,minmax(0,1fr));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{min-width:0;max-width:100%;font-weight:var(--gdant-font-medium);text-overflow:ellipsis;white-space:nowrap;transform-origin:50%;justify-content:center;align-items:center;line-height:1.5;display:flex;overflow:hidden}.gd-contract-template-designer__page>.gd-contract-template-page__content{min-height:inherit}.gd-contract-template-designer__signing-layer{z-index:var(--gdant-z-overlay);pointer-events:none;position:absolute;inset:0;overflow:hidden}.gd-contract-template-designer__signing-coordinate-guides{z-index:1;pointer-events:none;position:absolute;inset:0}.gd-contract-template-designer__signing-coordinate-guide{border-color:color-mix(in srgb, var(--gdant-primary-500) 70%, transparent);pointer-events:none;border-style:dashed;display:block;position:absolute}.gd-contract-template-designer__signing-coordinate-guide.is-horizontal{top:var(--gd-contract-signing-y);width:var(--gd-contract-signing-x);border-top-width:1px;left:0}.gd-contract-template-designer__signing-coordinate-guide.is-vertical{top:0;left:var(--gd-contract-signing-x);height:var(--gd-contract-signing-y);border-left-width:1px}.gd-contract-template-designer__signing-coordinate-guide small{border-radius:var(--gdant-radius-xs);background:var(--gdant-primary-50);color:var(--gdant-primary-700);font-size:11px;font-weight:var(--gdant-font-medium);white-space:nowrap;padding:1px 4px;line-height:16px;position:absolute}.gd-contract-template-designer__signing-coordinate-guide.is-horizontal small{bottom:3px;right:4px}.gd-contract-template-designer__signing-coordinate-guide.is-vertical small{top:4px;left:3px}.gd-contract-template-designer__signing-placement{z-index:2;place-content:center;gap:var(--gdant-spacing-xs);box-sizing:border-box;min-width:0;min-height:0;padding:var(--gdant-spacing-xs);border:2px dashed var(--gdant-primary-500);border-radius:var(--gdant-radius-md);background:color-mix(in srgb, var(--gdant-primary-50) 76%, transparent);color:var(--gdant-primary-700);cursor:move;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;transition:border-color var(--gdant-duration-normal), background-color var(--gdant-duration-normal), box-shadow var(--gdant-duration-normal);display:grid;position:absolute;overflow:hidden}.gd-contract-template-designer__signing-placement.is-seal{border-color:var(--gdant-error-500);background:color-mix(in srgb, var(--gdant-error-50) 80%, transparent);color:var(--gdant-error-700)}.gd-contract-template-designer__signing-placement.is-date{border-color:var(--gdant-warning-500);background:color-mix(in srgb, var(--gdant-warning-50) 80%, transparent);color:var(--gdant-warning-700)}.gd-contract-template-designer__signing-placement:hover,.gd-contract-template-designer__signing-placement:focus-visible,.gd-contract-template-designer__signing-placement.is-selected{box-shadow:0 0 0 3px color-mix(in srgb, currentColor 20%, transparent);border-style:solid;outline:none}.gd-contract-template-designer__signing-placement-visual{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;width:calc(100% - 12px);height:calc(100% - 12px);position:absolute;inset:6px}.gd-contract-template-designer.is-readonly .gd-contract-template-designer__signing-placement,.gd-contract-template-designer.is-disabled .gd-contract-template-designer__signing-placement{cursor:pointer}.gd-contract-template-designer__signing-placement-label{font-size:13px;font-weight:var(--gdant-font-semibold);text-align:center;text-overflow:ellipsis;white-space:nowrap;line-height:1.2;overflow:hidden}.gd-contract-template-designer__signing-placement-required{text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:1.2;font-weight:var(--gdant-font-semibold);overflow:hidden}.gd-contract-template-designer__signing-tool{justify-content:flex-start;gap:var(--gdant-spacing-sm);border-style:dashed;min-width:0}.gd-contract-template-designer__signing-tool-copy{gap:var(--gdant-spacing-xs);flex:1;min-width:0;display:grid}.gd-contract-template-designer__signing-tool-label{color:var(--gdant-neutral-800);font-weight:var(--gdant-font-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-contract-template-designer__signing-inspector-body{gap:var(--gdant-spacing-md);display:grid}.gd-contract-template-designer__inspector-section{gap:var(--gdant-spacing-sm);display:grid}.gd-contract-template-designer__inspector-section--nested{padding:var(--gdant-spacing-sm);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-50)}.gd-contract-template-designer__inspector-section-title{color:var(--gdant-neutral-600);font-size:12px;font-weight:var(--gdant-font-medium);line-height:1.5}.gd-contract-template-designer__signing-inspector-body .gd-contract-template-designer__switch-row,.gd-contract-template-designer__signing-inspector-body .gd-contract-template-designer__form-row,.gd-contract-template-designer__signing-inspector-body .gd-contract-template-designer__grid-form{margin-bottom:0}.gd-contract-template-designer__signing-inspector-actions{gap:var(--gdant-spacing-sm);display:grid}.gd-contract-template-designer__signing-inspector-actions .ant-btn{width:100%}.gd-contract-template-designer__signing-inspector-danger-action{padding-top:var(--gdant-spacing-sm);border-top:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__signing-empty{color:var(--gdant-neutral-500);margin:0;font-size:12px;line-height:1.6}.gd-contract-template-designer__editor-prose{min-height:var(--gd-contract-page-content-height,1000px);color:var(--gdant-neutral-800);font-family:var(--gd-contract-template-editor-font-family,"Noto Serif SC", "Source Han Serif SC", "Songti SC", serif);outline:none;line-height:1.75}.gd-contract-template-designer__editor-prose p{margin:0 0 10px}.gd-contract-template-designer__editor-prose ul,.gd-contract-template-designer__editor-prose ol{margin:0 0 10px;padding-left:2em;list-style-position:outside}.gd-contract-template-designer__editor-prose ul{list-style-type:disc}.gd-contract-template-designer__editor-prose ul ul{list-style-type:circle}.gd-contract-template-designer__editor-prose ul ul ul{list-style-type:square}.gd-contract-template-designer__editor-prose ol{list-style-type:decimal}.gd-contract-template-designer__editor-prose ol ol{list-style-type:lower-alpha}.gd-contract-template-designer__editor-prose ol ol ol{list-style-type:lower-roman}.gd-contract-template-designer__preview .gd-contract-template-page ul,.gd-contract-template-designer__preview .gd-contract-template-page ol{margin:0 0 10px;padding-left:2em;list-style-position:outside}.gd-contract-template-designer__preview .gd-contract-template-page ul{list-style-type:disc}.gd-contract-template-designer__preview .gd-contract-template-page ul ul{list-style-type:circle}.gd-contract-template-designer__preview .gd-contract-template-page ul ul ul{list-style-type:square}.gd-contract-template-designer__preview .gd-contract-template-page ol{list-style-type:decimal}.gd-contract-template-designer__preview .gd-contract-template-page ol ol{list-style-type:lower-alpha}.gd-contract-template-designer__preview .gd-contract-template-page ol ol ol{list-style-type:lower-roman}.gd-contract-template-renderer__page-frame .gd-contract-template-page ul,.gd-contract-template-renderer__page-frame .gd-contract-template-page ol{margin:0 0 10px;padding-left:2em;list-style-position:outside}.gd-contract-template-renderer__page-frame .gd-contract-template-page ul{list-style-type:disc}.gd-contract-template-renderer__page-frame .gd-contract-template-page ul ul{list-style-type:circle}.gd-contract-template-renderer__page-frame .gd-contract-template-page ul ul ul{list-style-type:square}.gd-contract-template-renderer__page-frame .gd-contract-template-page ol{list-style-type:decimal}.gd-contract-template-renderer__page-frame .gd-contract-template-page ol ol{list-style-type:lower-alpha}.gd-contract-template-renderer__page-frame .gd-contract-template-page ol ol ol{list-style-type:lower-roman}.gd-contract-template-designer__editor-prose img,.gd-contract-template-designer__preview .gd-contract-template-page img,.gd-contract-template-renderer__page-frame .gd-contract-template-page img{object-fit:contain;vertical-align:middle;max-width:100%;display:inline-block}.gd-contract-template-designer__editor-prose img[width],.gd-contract-template-designer__editor-prose img[height],.gd-contract-template-designer__preview .gd-contract-template-page img[width],.gd-contract-template-designer__preview .gd-contract-template-page img[height],.gd-contract-template-renderer__page-frame .gd-contract-template-page img[width],.gd-contract-template-renderer__page-frame .gd-contract-template-page img[height]{max-width:none}.gd-contract-template-designer__editor-prose img:not([height]),.gd-contract-template-designer__preview .gd-contract-template-page img:not([height]),.gd-contract-template-renderer__page-frame .gd-contract-template-page img:not([height]){height:auto}.gd-contract-template-designer__editor-prose sup,.gd-contract-template-designer__editor-prose sub,.gd-contract-template-designer__preview .gd-contract-template-page sup,.gd-contract-template-designer__preview .gd-contract-template-page sub,.gd-contract-template-renderer__page-frame .gd-contract-template-page sup,.gd-contract-template-renderer__page-frame .gd-contract-template-page sub{line-height:0}.gd-contract-template-designer__editor-prose table{border-collapse:collapse;width:100%}.gd-contract-template-designer__editor-prose th,.gd-contract-template-designer__editor-prose td{border:1px solid var(--gdant-neutral-300);min-width:80px;padding:6px 8px}.gd-contract-template-designer__editor-prose .selectedCell:after{background:color-mix(in srgb, var(--gdant-primary-500) 14%, transparent)}.gd-contract-template-designer__page.is-variable-dragging .gd-contract-template-variable{cursor:grabbing}.gd-contract-template-variable{align-items:center;justify-content:var(--gd-contract-variable-justify-content,flex-start);box-sizing:border-box;width:var(--gd-contract-variable-width,160px);min-height:var(--gd-contract-variable-height,32px);border-radius:var(--gdant-radius-xs);background:var(--gd-contract-variable-background,transparent);color:var(--gd-contract-variable-color,var(--gdant-neutral-800));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;margin:0 2px;padding:0 6px;line-height:1.5;transition:border-color .12s,background-color .12s,box-shadow .12s;display:inline-flex;position:relative}.gd-contract-template-variable:hover{border-color:var(--gdant-primary-300);background-color:color-mix(in srgb, var(--gdant-primary-50) 48%, transparent)}.gd-contract-template-variable.has-border{border-color:var(--gd-contract-variable-line-color,var(--gdant-neutral-600));border-style:var(--gd-contract-variable-border-style,solid)}.gd-contract-template-variable.has-underline{border-color:#0000;border-bottom-color:var(--gd-contract-variable-line-color,var(--gdant-neutral-600));border-bottom-style:var(--gd-contract-variable-border-style,solid);border-radius:0}.gd-contract-template-variable.is-placeholder{color:var(--gd-contract-variable-placeholder-color,var(--gdant-neutral-500))}.gd-contract-template-variable.is-active{border-color:var(--gdant-warning-500);background-color:var(--gdant-warning-50);color:var(--gdant-warning-700);box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-warning-500) 18%, transparent)}.gd-contract-template-variable.is-multiline{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;padding:0 6px;display:inline-block;overflow:hidden}.gd-contract-template-variable.is-multiline.has-underline{background-image:linear-gradient(to bottom, transparent calc(100% - 1px), var(--gd-contract-variable-line-color,var(--gdant-neutral-600)) calc(100% - 1px));background-repeat:repeat-y;background-size:100% var(--gd-contract-variable-line-height,28px);border-bottom-color:#0000}.gd-contract-template-variable.is-number{font-variant-numeric:tabular-nums}.gd-contract-template-variable.is-checkbox{width:auto;min-width:var(--gd-contract-variable-width,96px);justify-content:flex-start;gap:6px;padding:0 2px}.gd-contract-template-variable.is-checkbox:before{border-radius:var(--gdant-radius-xs);content:"";border:1px solid;justify-content:center;align-items:center;width:13px;height:13px;font-size:10px;line-height:1;display:inline-flex}.gd-contract-template-variable.is-checkbox.is-checked:before{content:"✓"}.gd-contract-template-variable.is-image{min-height:var(--gd-contract-variable-height,96px);border-color:var(--gd-contract-variable-line-color,var(--gdant-neutral-300));border-style:var(--gd-contract-variable-border-style,dashed);background:var(--gd-contract-variable-background,transparent);color:var(--gd-contract-variable-placeholder-color,var(--gdant-neutral-500));white-space:normal;justify-content:center;overflow:hidden}.gd-contract-template-variable.is-image.has-value{color:#0000}.gd-contract-template-variable.is-image.has-value:before{background-image:var(--gd-contract-variable-image);background-position:50%;background-repeat:no-repeat;background-size:var(--gd-contract-variable-object-fit,contain);content:"";position:absolute;inset:4px}.gd-contract-template-designer__form-row{color:var(--gdant-neutral-600);gap:6px;margin-bottom:12px;font-size:12px;display:grid}.gd-contract-template-designer__form-row.is-compact{margin-bottom:0}.gd-contract-template-designer__switch-row{border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-50);min-height:28px;color:var(--gdant-neutral-600);justify-content:space-between;align-items:center;gap:12px;margin:0;padding:6px 8px;font-size:12px;display:flex}.gd-contract-template-designer__switch-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.gd-contract-template-designer__panel--decorations{flex:none}.gd-contract-template-designer__decoration-tabs{margin-top:var(--gdant-spacing-sm)}.gd-contract-template-designer__decoration-tab-label{align-items:center;gap:var(--gdant-spacing-xs);display:inline-flex}.gd-contract-template-designer__decoration-tab-label i{border-radius:var(--gdant-radius-pill);background:var(--gdant-neutral-300);width:6px;height:6px}.gd-contract-template-designer__decoration-tab-label i.is-enabled{background:var(--gdant-success-500)}.gd-contract-template-designer__decoration-form{gap:var(--gdant-spacing-sm);display:grid}.gd-contract-template-designer__decoration-slots-grid{gap:var(--gdant-spacing-sm);grid-template-columns:repeat(3,minmax(0,1fr));min-width:0;display:grid}.gd-contract-template-designer__decoration-slot-editor{align-items:end;gap:var(--gdant-spacing-xs);grid-template-columns:minmax(0,1fr) auto;min-width:0;display:grid}.gd-contract-template-designer__decoration-slots-grid>.gd-contract-template-designer__decoration-slot-editor{padding:var(--gdant-spacing-sm);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-50);grid-template-columns:minmax(0,1fr);align-content:start;align-items:stretch}.gd-contract-template-designer__decoration-slots-grid .gd-contract-template-designer__form-row>span{color:var(--gdant-neutral-700);font-weight:var(--gdant-font-medium)}.gd-contract-template-designer__decoration-slots-grid .ant-btn{width:100%}@container page-decorations-studio (width<=420px){.gd-contract-template-designer__decoration-plan,.gd-contract-template-designer__decoration-slots-grid,.gd-contract-template-designer__decoration-slot-editor,.gd-contract-template-designer__decoration-control-grid{grid-template-columns:minmax(0,1fr)}.gd-contract-template-designer__decoration-slot-editor>.ant-dropdown-trigger{width:100%}}.gd-contract-template-designer__decoration-control-grid{gap:var(--gdant-spacing-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.gd-contract-template-designer__decoration-control-grid>label{gap:var(--gdant-spacing-xs);min-width:0;color:var(--gdant-neutral-600);font-size:var(--gdant-text-caption);display:grid}.gd-contract-template-designer__decoration-control-grid .ant-select,.gd-contract-template-designer__decoration-control-grid .ant-input-number{width:100%}.gd-contract-template-designer__unit-control{align-items:center;gap:var(--gdant-spacing-xs);grid-template-columns:minmax(0,1fr) auto;min-width:0;display:grid}.gd-contract-template-designer__unit-control small{min-width:16px;color:var(--gdant-neutral-500);font-variant-numeric:tabular-nums}.gd-contract-template-designer__color-row{min-height:32px;color:var(--gdant-neutral-600);font-size:var(--gdant-text-caption);justify-content:space-between;align-items:center;display:flex}.gd-contract-template-designer__decoration-control-grid input[type=color],.gd-contract-template-designer__color-row input[type=color]{border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);width:32px;height:32px;padding:2px}.gd-contract-template-designer__decoration-control-grid .gd-contract-template-designer__color-control{min-height:32px}.gd-contract-template-designer__form-error{color:var(--gdant-error-500);grid-column:1/-1;margin:0;font-size:11px;line-height:1.5;display:block}.gd-contract-template-designer__tool-item small{color:var(--gdant-neutral-500);font-size:11px}.gd-contract-template-designer__grid-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px;display:grid}.gd-contract-template-designer__table-picker{gap:var(--gdant-spacing-sm);margin:var(--gdant-spacing-sm) 0;display:grid}.gd-contract-template-designer__table-picker-label{color:var(--gdant-neutral-700);font-variant-numeric:tabular-nums;font-size:12px}.gd-contract-template-designer__table-picker-grid{gap:3px;width:fit-content;display:grid}.gd-contract-template-designer__table-picker-row{grid-template-columns:repeat(10,18px);gap:3px;display:grid}.gd-contract-template-designer__table-picker-cell{border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-xs);background:var(--gdant-neutral-0);cursor:pointer;width:18px;height:18px;padding:0}.gd-contract-template-designer__table-picker-cell:hover,.gd-contract-template-designer__table-picker-cell.is-previewed{border-color:var(--gdant-primary-500);background:var(--gdant-primary-100)}.gd-contract-template-designer__table-picker-cell:focus-visible{outline:2px solid var(--gdant-primary-500);outline-offset:1px}.gd-contract-template-designer__grid-form label{color:var(--gdant-neutral-600);gap:6px;font-size:12px;display:grid}.gd-contract-template-designer__popover-actions{justify-content:flex-end;gap:8px;display:flex}.gd-contract-template-designer__table-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.gd-contract-template-designer__context-menu{z-index:var(--gdant-z-modal);border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-xl);background:color-mix(in srgb, var(--gdant-neutral-0) 98%, transparent);min-width:240px;max-width:min(360px,100vw - 24px);box-shadow:var(--gdant-shadow-modal);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);gap:8px;padding:10px;display:grid;position:fixed}.gd-contract-template-designer__context-menu-row{flex-wrap:wrap;gap:8px;display:flex}.gd-contract-template-designer__context-menu-group{border-bottom:1px solid var(--gdant-neutral-200);gap:6px;padding-bottom:8px;display:grid}.gd-contract-template-designer__context-menu-group>span{color:var(--gdant-neutral-500);font-size:12px}.gd-contract-template-designer__context-menu-group.is-danger{border-bottom:0;padding-bottom:0}.gd-contract-template-designer__image-context-menu{box-sizing:border-box;width:min(288px, 100vw - var(--gdant-spacing-xl));gap:var(--gdant-spacing-md);border-color:var(--gdant-neutral-200);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-0);min-width:0;box-shadow:var(--gdant-shadow-overlay);-webkit-backdrop-filter:none;backdrop-filter:none}.gd-contract-template-designer__image-context-title{gap:calc(var(--gdant-spacing-xs) / 2);display:grid}.gd-contract-template-designer__image-context-title strong{color:var(--gdant-neutral-800);font-size:var(--gdant-text-body)}.gd-contract-template-designer__image-context-title span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-caption)}.gd-contract-template-designer__text-context-menu{--gd-text-context-menu-gutter:var(--gdant-spacing-md);--gd-text-context-menu-width:calc(var(--gdant-spacing-xl) * 12 + var(--gdant-spacing-sm) * 2);--gd-text-context-menu-control-size:calc(var(--gdant-spacing-base) + var(--gdant-spacing-xl) / 2);--gd-text-context-menu-thin:calc(var(--gdant-spacing-xs) / 2);width:min(var(--gd-text-context-menu-width), 100vw - var(--gd-text-context-menu-gutter) * 2);min-width:0;max-width:none;max-height:calc(100vh - var(--gd-text-context-menu-gutter) * 2);gap:var(--gdant-spacing-xs);padding:var(--gdant-spacing-xs);border-color:var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);box-shadow:var(--gdant-shadow-raised);-webkit-backdrop-filter:none;backdrop-filter:none;overscroll-behavior:contain;overflow-y:auto}.gd-contract-template-designer__text-menu-row{align-items:center;gap:var(--gdant-spacing-xs);min-width:0;padding:0;display:flex}.gd-contract-template-designer__text-menu-row+.gd-contract-template-designer__text-menu-row{padding-top:var(--gdant-spacing-xs);border-top:var(--gd-text-context-menu-thin) solid var(--gdant-neutral-200)}.gd-contract-template-designer__text-menu-quick-insert{gap:var(--gdant-spacing-xs);min-width:0;padding-top:var(--gdant-spacing-xs);border-top:var(--gd-text-context-menu-thin) solid var(--gdant-neutral-200);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.gd-contract-template-designer__text-menu-quick-insert .ant-btn{justify-content:center;align-items:center;gap:var(--gdant-spacing-xs);min-width:0;display:inline-flex;overflow:hidden}.gd-contract-template-designer__text-menu-quick-insert .ant-btn>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-contract-template-designer__text-menu-control-group{gap:var(--gdant-spacing-xs);min-width:0;padding-top:var(--gdant-spacing-xs);border-top:var(--gd-text-context-menu-thin) solid var(--gdant-neutral-200);display:grid}.gd-contract-template-designer__text-menu-control-head{justify-content:space-between;align-items:baseline;gap:var(--gdant-spacing-sm);min-width:0;color:var(--gdant-neutral-700);font-size:var(--gdant-text-body-sm);display:flex}.gd-contract-template-designer__text-menu-control-head>span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-contract-template-designer__text-menu-control-options{gap:var(--gdant-spacing-xs);grid-template-columns:repeat(5,minmax(0,1fr));min-width:0;display:grid}.gd-contract-template-designer__text-menu-control-option{justify-content:center;align-items:center;gap:var(--gdant-spacing-xs);min-width:0;min-height:calc(var(--gd-text-context-menu-control-size) + var(--gdant-spacing-md));padding:var(--gdant-spacing-xs) var(--gdant-spacing-xs);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-sm);background:var(--gdant-neutral-0);color:var(--gdant-neutral-700);cursor:pointer;font-size:var(--gdant-text-body-sm);transition:border-color var(--gdant-duration-normal) var(--gdant-easing-default), background var(--gdant-duration-normal) var(--gdant-easing-default), color var(--gdant-duration-normal) var(--gdant-easing-default);flex-direction:column;line-height:1.2;display:inline-flex;overflow:hidden}.gd-contract-template-designer__text-menu-control-option .anticon{color:var(--gdant-primary-500);font-size:var(--gdant-text-h3);flex:none}.gd-contract-template-designer__text-menu-control-option span{text-overflow:ellipsis;white-space:nowrap;text-align:center;width:100%;display:block;overflow:hidden}.gd-contract-template-designer__text-menu-control-option:hover{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50);color:var(--gdant-primary-700)}.gd-contract-template-designer__text-menu-control-option:focus-visible{outline:calc(var(--gd-text-context-menu-thin) * 2) solid var(--gdant-primary-500);outline-offset:var(--gd-text-context-menu-thin)}.gd-contract-template-designer__text-menu-bind-toggle{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);width:100%;min-height:var(--gd-text-context-menu-control-size);padding:var(--gdant-spacing-xs) var(--gdant-spacing-sm);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-sm);background:var(--gdant-neutral-0);color:var(--gdant-neutral-700);cursor:pointer;font-size:var(--gdant-text-body-sm);transition:border-color var(--gdant-duration-normal) var(--gdant-easing-default), background var(--gdant-duration-normal) var(--gdant-easing-default), color var(--gdant-duration-normal) var(--gdant-easing-default);line-height:1.2;display:inline-flex}.gd-contract-template-designer__text-menu-bind-toggle:hover:not(:disabled){border-color:var(--gdant-primary-300);background:var(--gdant-primary-50);color:var(--gdant-primary-700)}.gd-contract-template-designer__text-menu-bind-toggle:focus-visible{outline:calc(var(--gd-text-context-menu-thin) * 2) solid var(--gdant-primary-500);outline-offset:var(--gd-text-context-menu-thin)}.gd-contract-template-designer__text-menu-bind-toggle:disabled{color:var(--gdant-neutral-400);cursor:not-allowed}.gd-contract-template-designer__text-menu-bind-search{width:100%}.gd-contract-template-designer__text-menu-bind-list{gap:var(--gdant-spacing-xs);max-height:calc(var(--gdant-spacing-xl) * 5 + var(--gdant-spacing-md));display:grid;overflow:auto}.gd-contract-template-designer__text-menu-bind-item{align-items:flex-start;gap:var(--gdant-spacing-xs);width:100%;min-width:0;padding:var(--gdant-spacing-xs) var(--gdant-spacing-sm);border-radius:var(--gdant-radius-sm);color:var(--gdant-neutral-800);cursor:pointer;text-align:left;background:0 0;border:0;flex-direction:column;display:flex}.gd-contract-template-designer__text-menu-bind-item-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.gd-contract-template-designer__text-menu-bind-item-meta,.gd-contract-template-designer__text-menu-bind-empty{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-contract-template-designer__text-menu-bind-empty{padding:var(--gdant-spacing-xs) var(--gdant-spacing-sm);margin:0}.gd-contract-template-designer__text-menu-bind-item:hover,.gd-contract-template-designer__text-menu-bind-item:focus-visible{background:var(--gdant-primary-50);color:var(--gdant-primary-700)}.gd-contract-template-designer__text-menu-bind-item:focus-visible{outline:calc(var(--gd-text-context-menu-thin) * 2) solid var(--gdant-primary-500);outline-offset:var(--gd-text-context-menu-thin)}.gd-contract-template-designer__text-menu-row--controls{gap:var(--gdant-spacing-sm)}.gd-contract-template-designer__text-menu-icon-button.ant-btn-sm{flex:0 0 var(--gd-text-context-menu-control-size);width:var(--gd-text-context-menu-control-size);min-width:var(--gd-text-context-menu-control-size);height:var(--gd-text-context-menu-control-size);border-radius:var(--gdant-radius-sm);color:var(--gdant-neutral-700);background:0 0;border-color:#0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.gd-contract-template-designer__text-menu-icon-button.ant-btn-sm:hover:not(:disabled){background:var(--gdant-neutral-100);color:var(--gdant-neutral-900);border-color:#0000}.gd-contract-template-designer__text-menu-icon-button.ant-btn-sm.is-selected{border-color:var(--gdant-primary-100);background:var(--gdant-primary-50);color:var(--gdant-primary-600)}.gd-contract-template-designer__text-menu-icon-button.ant-btn-sm:focus-visible,.gd-contract-template-designer__text-menu-clear-action.ant-btn-sm:focus-visible,.gd-contract-template-designer__context-menu-color:focus-visible{outline:calc(var(--gd-text-context-menu-thin) * 2) solid var(--gdant-primary-500);outline-offset:var(--gd-text-context-menu-thin)}.gd-contract-template-designer__text-menu-divider{width:var(--gd-text-context-menu-thin);height:var(--gdant-spacing-base);margin:0 var(--gd-text-context-menu-thin);background:var(--gdant-neutral-200)}.gd-contract-template-designer__text-menu-font-size{min-width:calc(var(--gdant-spacing-base) * 5 + var(--gdant-spacing-xs));flex:1 1 calc(var(--gdant-spacing-base) * 5 + var(--gdant-spacing-xs))}.gd-contract-template-designer__text-menu-alignment{min-width:calc(var(--gdant-spacing-base) * 6 + var(--gdant-spacing-xs));flex:1 1 calc(var(--gdant-spacing-base) * 6 + var(--gdant-spacing-xs))}.gd-contract-template-designer__text-menu-row .ant-select-selector{min-height:var(--gd-text-context-menu-control-size);border-radius:var(--gdant-radius-sm)}.gd-contract-template-designer__text-menu-row .ant-select-focused .ant-select-selector{border-color:var(--gdant-primary-500);box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 15%, transparent)}.gd-contract-template-designer__text-menu-row .ant-select-selection-search-input,.gd-contract-template-designer__text-menu-row .ant-select-selection-item{line-height:calc(var(--gd-text-context-menu-control-size) - var(--gdant-spacing-xs) / 2)}.gd-contract-template-designer__text-menu-clear-action.ant-btn-sm{justify-content:center;align-items:center;gap:var(--gdant-spacing-xs);min-width:0;height:var(--gd-text-context-menu-control-size);padding:0 var(--gdant-spacing-sm);border-color:var(--gdant-neutral-200);border-radius:var(--gdant-radius-sm);background:var(--gdant-neutral-0);color:var(--gdant-neutral-600);font-size:var(--gdant-text-body-sm);flex:1 1 0;display:inline-flex}.gd-contract-template-designer__text-menu-clear-action.ant-btn-sm:hover:not(:disabled){border-color:var(--gdant-error-200);background:var(--gdant-error-50);color:var(--gdant-error-600)}.gd-contract-template-designer__table-context-menu{box-sizing:border-box;width:min(240px,100vw - 16px);min-width:0;max-width:none;max-height:min(520px,100vh - 24px);padding:var(--gdant-spacing-xs);border-color:var(--gdant-neutral-200);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-0);box-shadow:var(--gdant-shadow-overlay);-webkit-backdrop-filter:none;backdrop-filter:none;overscroll-behavior:contain;animation:gd-contract-template-table-menu-enter var(--gdant-duration-normal) var(--gdant-easing-default);display:block;overflow:hidden auto}.gd-contract-template-designer__table-menu-group{gap:calc(var(--gdant-spacing-xs) / 2);padding:var(--gdant-spacing-xs) 0;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.gd-contract-template-designer__table-menu-group.is-stacked{grid-template-columns:minmax(0,1fr)}.gd-contract-template-designer__table-menu-group+.gd-contract-template-designer__table-menu-group{border-top:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__table-menu-item{appearance:none;box-sizing:border-box;align-items:center;gap:var(--gdant-spacing-sm);width:100%;min-height:32px;padding:0 var(--gdant-spacing-sm);border-radius:var(--gdant-radius-md);color:var(--gdant-neutral-700);cursor:pointer;font:inherit;font-size:var(--gdant-text-body);letter-spacing:0;text-align:left;white-space:nowrap;transition:background-color var(--gdant-duration-normal) var(--gdant-easing-default), color var(--gdant-duration-normal) var(--gdant-easing-default);background:0 0;border:0;line-height:20px;display:flex}.gd-contract-template-designer__table-menu-item .anticon{width:16px;color:var(--gdant-neutral-500);transition:color var(--gdant-duration-normal) var(--gdant-easing-default);flex:0 0 16px;font-size:15px}.gd-contract-template-designer__table-menu-item:hover:not(:disabled){background:var(--gdant-neutral-100);color:var(--gdant-neutral-900)}.gd-contract-template-designer__table-menu-item:hover:not(:disabled) .anticon{color:var(--gdant-neutral-700)}.gd-contract-template-designer__table-menu-item:focus-visible,.gd-contract-template-designer__table-menu-align-item:focus-visible{outline:2px solid var(--gdant-primary-500);outline-offset:-2px}.gd-contract-template-designer__table-menu-item:disabled,.gd-contract-template-designer__table-menu-align-item:disabled{color:var(--gdant-neutral-400);cursor:not-allowed}.gd-contract-template-designer__table-menu-item:disabled .anticon{color:var(--gdant-neutral-400)}.gd-contract-template-designer__table-menu-item.is-danger{color:var(--gdant-error-700);grid-column:1/-1}.gd-contract-template-designer__table-menu-item.is-danger:hover:not(:disabled){background:var(--gdant-error-50);color:var(--gdant-error-700)}.gd-contract-template-designer__table-menu-item.is-danger:hover:not(:disabled) .anticon{color:var(--gdant-error-600)}.gd-contract-template-designer__table-menu-align{align-items:center;gap:var(--gdant-spacing-sm);min-height:38px;padding:calc(var(--gdant-spacing-xs) / 2) var(--gdant-spacing-sm);grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;display:grid}.gd-contract-template-designer__table-menu-align-label{min-width:0;color:var(--gdant-neutral-600);font-size:var(--gdant-text-body-sm);letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;line-height:18px;overflow:hidden}.gd-contract-template-designer__table-menu-align-options{border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-100);grid-template-columns:repeat(3,30px);gap:2px;padding:2px;display:grid}.gd-contract-template-designer__table-menu-align-item{appearance:none;border-radius:var(--gdant-radius-sm);width:30px;height:28px;color:var(--gdant-neutral-600);cursor:pointer;transition:background-color var(--gdant-duration-normal) var(--gdant-easing-default), box-shadow var(--gdant-duration-normal) var(--gdant-easing-default), color var(--gdant-duration-normal) var(--gdant-easing-default);background:0 0;border:0;place-items:center;padding:0;font-size:15px;display:grid}.gd-contract-template-designer__table-menu-align-item:hover:not(:disabled){background:var(--gdant-neutral-200);color:var(--gdant-neutral-800)}.gd-contract-template-designer__table-menu-align-item.is-selected{background:var(--gdant-neutral-0);box-shadow:var(--gdant-shadow-raised);color:var(--gdant-primary-600)}.gd-contract-template-designer__table-menu-danger{margin-top:var(--gdant-spacing-xs);padding-top:var(--gdant-spacing-sm);border-top:1px solid var(--gdant-neutral-200)}@keyframes gd-contract-template-table-menu-enter{0%{opacity:0;transform:translateY(-2px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.gd-contract-template-designer__table-context-menu{animation:none}.gd-contract-template-designer__table-menu-item,.gd-contract-template-designer__table-menu-item .anticon,.gd-contract-template-designer__table-menu-align-item,.gd-contract-template-designer__sidebar,.gd-contract-template-designer__inspector,.gd-contract-template-designer__panel-handle,.gd-contract-template-renderer__panel-wrap,.gd-contract-template-renderer__panel-handle{transition:none}}@media (width<=260px){.gd-contract-template-designer__table-menu-group{grid-template-columns:minmax(0,1fr)}}.gd-contract-template-designer__sr-status{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.gd-contract-template-designer__context-menu-field{flex:112px;min-width:112px}.gd-contract-template-designer__context-menu-color{border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);cursor:pointer;width:40px;height:32px;padding:0}.gd-contract-template-designer.is-disabled{opacity:.68;pointer-events:none}.gd-contract-template-designer__preview-modal .ant-modal{max-width:calc(100vw - 32px)}.gd-contract-template-designer__preview-modal .ant-modal-body{padding:0}.gd-contract-template-designer__preview{background:var(--gdant-neutral-100);max-height:calc(100vh - 180px);padding:32px;display:block;overflow:auto}.gd-contract-template-designer__preview.is-multi-file{padding:0;overflow:hidden}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-layout{grid-template-columns:220px minmax(0,1fr);height:min(720px,100vh - 180px);min-height:420px;display:grid}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-nav{gap:var(--gdant-spacing-xs);min-width:0;padding:var(--gdant-spacing-md);border-right:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-50);flex-direction:column;display:flex;overflow:auto}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-nav-title{padding:0 var(--gdant-spacing-sm) var(--gdant-spacing-sm);color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm);font-weight:var(--gdant-font-semibold)}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-tab{align-items:center;gap:var(--gdant-spacing-sm);width:100%;min-height:44px;padding:var(--gdant-spacing-sm);border-radius:var(--gdant-radius-md);color:var(--gdant-neutral-700);font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;grid-template-columns:auto minmax(0,1fr) auto;display:grid}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-tab>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-tab>small{color:var(--gdant-neutral-500);font-size:var(--gdant-text-caption)}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-tab:hover,.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-tab.is-active{border-color:var(--gdant-primary-200);background:var(--gdant-neutral-0);color:var(--gdant-primary-600)}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-layout>.gd-contract-template-designer__preview-file{min-width:0;max-height:100%;margin:0;padding:24px;overflow:auto}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-page-shell{width:fit-content;max-width:100%;margin:0 auto 24px}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-page-shell:last-child{margin-bottom:0}.gd-contract-template-designer__preview .gd-contract-template-page{box-sizing:border-box;border:1px solid var(--gdant-neutral-300);background:var(--gdant-neutral-0);box-shadow:var(--gdant-shadow-overlay);color:var(--gdant-neutral-800);padding:54px 64px;line-height:1.75;position:relative;overflow:hidden}.gd-contract-template-designer__preview .gd-contract-template-page p{margin:0 0 10px}.gd-contract-template-designer__preview .gd-contract-template-page table{border-collapse:collapse;width:100%}.gd-contract-template-designer__preview .gd-contract-template-page th,.gd-contract-template-designer__preview .gd-contract-template-page td{border:1px solid var(--gdant-neutral-300);min-width:80px;padding:6px 8px}.gd-contract-template-designer__preview-file+.gd-contract-template-designer__preview-file{margin-top:var(--gdant-spacing-xl);padding-top:var(--gdant-spacing-xl);border-top:1px solid var(--gdant-neutral-300)}.gd-contract-template-designer__preview-file-title{align-items:center;gap:var(--gdant-spacing-sm);width:fit-content;margin:0 auto var(--gdant-spacing-md);color:var(--gdant-neutral-800);font-size:var(--gdant-text-title);display:flex}.gd-contract-template-designer__preview-file-title:before{border-radius:var(--gdant-radius-xs);background:var(--gdant-primary-500);content:"";width:4px;height:16px}.gd-contract-template-designer__preview-signing-layer{z-index:2;pointer-events:none;position:absolute;inset:0 auto auto 0}.gd-contract-template-designer__preview-signing-placement{box-sizing:border-box;border:1px solid var(--gdant-primary-500);background:color-mix(in srgb, var(--gdant-success-50) 60%, transparent);min-width:0;min-height:0;color:var(--gdant-primary-300);text-align:center;justify-content:center;align-items:center;font-size:12px;display:flex;position:absolute;overflow:hidden}.gd-contract-template-designer__preview-signing-placement-add{gap:var(--gdant-spacing-xs);box-sizing:border-box;overflow-wrap:anywhere;max-width:100%;padding:10px;display:grid;overflow:hidden}@media (width<=760px){.gd-contract-template-designer__preview .gd-contract-template-designer__preview-layout{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-nav{border-right:0;border-bottom:1px solid var(--gdant-neutral-200);flex-direction:row}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-nav-title{display:none}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-tab{flex:0 0 min(220px,72vw)}}.gd-contract-template-designer__submit-data-modal .ant-modal-body{padding:0}.gd-contract-template-designer__submit-data{background:var(--gdant-neutral-900);max-height:calc(100vh - 220px);color:var(--gdant-neutral-100);white-space:pre;margin:0;padding:16px 20px;font-family:JetBrains Mono,SF Mono,Consolas,monospace;font-size:12px;line-height:1.6;overflow:auto}.gd-contract-template-renderer{--gd-contract-renderer-background:var(--gdant-neutral-100);--gd-contract-renderer-surface:var(--gdant-neutral-0);--gd-contract-renderer-panel-width:336px;--gd-contract-renderer-page-gap:24px;--gd-contract-renderer-border-color:var(--gdant-neutral-300);--gd-contract-renderer-toolbar-control-height:30px;box-sizing:border-box;border:1px solid var(--gd-contract-renderer-border-color);border-radius:var(--gdant-radius-lg);background:var(--gd-contract-renderer-background);min-height:420px;color:var(--gdant-neutral-800);font-size:var(--gdant-text-body);grid-template-rows:auto auto minmax(0,1fr);grid-template-areas:"header""validation""body";display:grid;overflow:hidden}.gd-contract-template-renderer.is-disabled .gd-contract-template-renderer__field-list{opacity:.72}.gd-contract-template-renderer__header{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);min-height:56px;padding:var(--gdant-spacing-sm) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);flex-wrap:wrap;grid-area:header;display:flex}.gd-contract-template-renderer__title{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;display:flex}.gd-contract-template-renderer__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-contract-template-renderer__header-meta{gap:var(--gdant-spacing-xs);min-width:0;display:grid}.gd-contract-template-renderer__header-meta 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-contract-template-renderer__header-meta span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-contract-template-renderer__progress-pill{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;flex:none}.gd-contract-template-renderer__progress-pill.is-warning{border-color:var(--gdant-warning-100);background:var(--gdant-warning-50);color:var(--gdant-warning-700)}.gd-contract-template-renderer__header-actions{align-items:center;gap:var(--gdant-spacing-sm);flex-wrap:wrap;flex:none;display:flex}.gd-contract-template-renderer__icon-button.ant-btn-sm{width:var(--gd-contract-renderer-toolbar-control-height);height:var(--gd-contract-renderer-toolbar-control-height);min-width:var(--gd-contract-renderer-toolbar-control-height);justify-content:center;align-items:center;padding-inline:0;display:inline-flex}.gd-contract-template-renderer__icon-button.ant-btn-sm .anticon{font-size:15px}.gd-contract-template-renderer__toolbar{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;padding:var(--gdant-spacing-xs);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-xl);background:var(--gd-contract-renderer-surface);box-shadow:var(--gdant-shadow-raised);display:flex}.gd-contract-template-renderer__toolbar-group{align-items:center;gap:var(--gdant-spacing-xs);display:flex}.gd-contract-template-renderer__zoom-value{box-sizing:border-box;width:54px;color:var(--gdant-neutral-700);font-variant-numeric:tabular-nums;text-align:center}.gd-contract-template-renderer__page-select{width:min(240px,36vw)}.gd-contract-template-renderer__validation{gap:var(--gdant-spacing-xs);padding:var(--gdant-spacing-xs) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-neutral-200);font-size:var(--gdant-text-body-sm);grid-area:validation;display:grid}.gd-contract-template-renderer__validation.is-success{background:var(--gdant-success-50);color:var(--gdant-success-600)}.gd-contract-template-renderer__validation.is-error{background:var(--gdant-error-50);color:var(--gdant-error-700);border-bottom-color:var(--gdant-error-100)}.gd-contract-template-renderer__validation-bar{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);min-height:28px;display:flex}.gd-contract-template-renderer__validation-toggle{color:inherit;cursor:pointer;background:0 0;border:0;flex:none;padding:0;text-decoration:underline}.gd-contract-template-renderer__validation-list{gap:var(--gdant-spacing-xs);max-height:132px;display:grid;overflow:auto}.gd-contract-template-renderer__validation-item{width:100%;padding:var(--gdant-spacing-sm) var(--gdant-spacing-md);border:1px solid var(--gdant-warning-100);border-radius:var(--gdant-radius-md);background:var(--gdant-warning-50);color:var(--gdant-error-700);text-align:left;cursor:pointer}.gd-contract-template-renderer__empty{min-height:0;padding:var(--gdant-spacing-base);grid-area:body;place-items:center;display:grid}.gd-contract-template-renderer__workspace{gap:var(--gdant-spacing-base);min-height:0;padding:var(--gdant-spacing-md);grid-area:body;grid-template-columns:minmax(0,1fr) auto;display:grid;overflow:hidden}.gd-contract-template-renderer__workspace.is-inline{grid-template-columns:minmax(0,1fr)}.gd-contract-template-renderer__pages-viewport{min-width:0;min-height:0;padding:var(--gdant-spacing-xs) 0;overscroll-behavior:contain;overflow:auto}.gd-contract-template-renderer__pages{place-content:start center;gap:var(--gd-contract-renderer-page-gap);width:max-content;min-width:100%;padding:0 24px 24px;display:grid}.gd-contract-template-renderer__page-shell{justify-content:center;gap:8px;min-width:0;scroll-margin:12px;display:grid}.gd-contract-template-renderer__page-meta{width:100%;color:var(--gdant-neutral-600);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;font-size:12px;display:grid}.gd-contract-template-renderer__page-meta strong{color:var(--gdant-neutral-800);font-weight:600}.gd-contract-template-renderer__page-meta span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.gd-contract-template-renderer__page-meta small{font-variant-numeric:tabular-nums;font-size:12px}.gd-contract-template-renderer__page-frame{flex:none;transition:width .1s cubic-bezier(.4,0,.2,1),height .1s cubic-bezier(.4,0,.2,1);position:relative}.gd-contract-template-renderer__page-frame .gd-contract-template-page{box-sizing:border-box;border:1px solid var(--gd-contract-renderer-border-color);background:var(--gd-contract-renderer-surface);box-shadow:var(--gdant-shadow-overlay);transform-origin:0 0;padding:54px 64px;line-height:1.75;position:absolute;inset:0 auto auto 0;overflow:hidden}.gd-contract-template-renderer__page-frame .gd-contract-template-page p{margin:0 0 10px}.gd-contract-template-renderer__page-frame .gd-contract-template-page table{border-collapse:collapse;width:100%}.gd-contract-template-renderer__page-frame .gd-contract-template-page th,.gd-contract-template-renderer__page-frame .gd-contract-template-page td{border:1px solid var(--gdant-neutral-300);min-width:80px;padding:6px 8px}.gd-contract-template-renderer__panel-wrap{z-index:1;width:var(--gd-contract-renderer-panel-width);min-width:0;min-height:0;transition:width var(--gdant-duration-slow) var(--gdant-easing-default);position:relative;overflow:visible}.gd-contract-template-renderer__panel-wrap.is-collapsed{width:0}.gd-contract-template-renderer__panel-wrap.is-collapsed .gd-contract-template-renderer__panel-clip{visibility:hidden}.gd-contract-template-renderer__panel-clip{width:100%;height:100%;overflow:hidden}.gd-contract-template-renderer__panel{gap:var(--gdant-spacing-sm);width:var(--gd-contract-renderer-panel-width);min-width:0;height:100%;min-height:0;padding:var(--gdant-spacing-md);border:1px solid var(--gd-contract-renderer-border-color);border-radius:var(--gdant-radius-lg);background:var(--gd-contract-renderer-surface);flex-direction:column;display:flex;overflow:hidden}.gd-contract-template-renderer__panel-handle{z-index:2;box-sizing:border-box;border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md) 0 0 var(--gdant-radius-md);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);border-right:0;justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:absolute;top:50%;left:-14px;transform:translateY(-50%)}.gd-contract-template-renderer__panel-handle .anticon{font-size:10px}.gd-contract-template-renderer__panel-handle:hover{background:var(--gdant-neutral-50);color:var(--gdant-primary-500)}.gd-contract-template-renderer__panel-head{z-index:1;gap:var(--gdant-spacing-sm);padding-bottom:var(--gdant-spacing-sm);background:var(--gd-contract-renderer-surface);display:grid;position:sticky;top:0}.gd-contract-template-renderer__panel-head-row{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-md);display:flex}.gd-contract-template-renderer__panel-head-row>div{gap:var(--gdant-spacing-xs);display:grid}.gd-contract-template-renderer__panel-head-row strong{font-size:15px}.gd-contract-template-renderer__panel-head-row span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-contract-template-renderer__panel-head-actions{gap:var(--gdant-spacing-sm);flex-wrap:wrap;display:flex}.gd-contract-template-renderer__field-list{flex:auto;align-content:start;gap:12px;min-height:0;display:grid;overflow:auto}.gd-contract-template-renderer__field{border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-50);transition:border-color var(--gdant-duration-normal) var(--gdant-easing-default), box-shadow var(--gdant-duration-normal) var(--gdant-easing-default);gap:8px;padding:12px;display:grid}.gd-contract-template-renderer__field.is-active{border-color:var(--gdant-primary-500);box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 12%, transparent)}.gd-contract-template-renderer__field.has-error{border-color:var(--gdant-error-300)}.gd-contract-template-renderer__field .ant-input-number,.gd-contract-template-renderer__field .ant-picker{width:100%}.gd-contract-template-renderer__field-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.gd-contract-template-renderer__field-head strong{overflow-wrap:anywhere;min-width:0;font-size:14px}.gd-contract-template-renderer__field-head small{color:var(--gdant-neutral-500);flex:none;font-size:12px}.gd-contract-template-renderer__field-title{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;max-width:100%;display:inline-flex}.gd-contract-template-renderer__field-type-icon{color:var(--gdant-neutral-500);flex:none;align-items:center;font-size:1em;line-height:1;display:inline-flex}.gd-contract-template-renderer__field-type-icon .anticon,.gd-contract-template-renderer__field-type-icon svg{width:1em;height:1em;color:inherit;fill:currentColor;display:block}.gd-contract-template-renderer__field-title-text{overflow-wrap:anywhere;min-width:0}.gd-contract-template-renderer__field-required{color:var(--gdant-error-600);margin-left:2px}.gd-contract-template-renderer__field-checkbox{align-items:center;gap:8px;min-height:32px;display:inline-flex}.gd-contract-template-renderer__image-field{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.gd-contract-template-renderer__image-preview{border:1px dashed var(--gdant-neutral-300);border-radius:var(--gdant-radius-md);min-width:0;color:var(--gdant-neutral-500);grid-column:1/-1;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:12px;padding:8px;font-size:12px;display:grid}.gd-contract-template-renderer__image-preview .ant-image,.gd-contract-template-renderer__image-preview .ant-image-img{border-radius:var(--gdant-radius-sm);object-fit:contain;width:96px;height:56px}.gd-contract-template-renderer__field-errors{color:var(--gdant-error-600);gap:4px;font-size:12px;display:grid}.gd-contract-template-renderer__control{box-sizing:border-box;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;outline:none;padding:0 4px}.gd-contract-template-renderer__control::placeholder{color:var(--gd-contract-variable-placeholder-color,var(--gdant-neutral-500))}.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-contract-template-renderer__control.has-underline{border-bottom:1px solid var(--gd-contract-variable-line-color,var(--gdant-neutral-600))}.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);resize:vertical;display:inline-block}.gd-contract-template-renderer__preview-control{align-items:center;justify-content:var(--gd-contract-variable-justify-content,flex-start);cursor:pointer;display:inline-flex}.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-contract-template-renderer__preview-control.is-empty{color:var(--gd-contract-variable-placeholder-color,var(--gdant-neutral-500))}.gd-contract-template-renderer__preview-control.is-active{box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 24%, transparent)}.gd-contract-template-renderer__preview-control:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 32%, transparent)}.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}label.gd-contract-template-renderer__control{align-items:center;gap:6px;display:inline-flex}label.gd-contract-template-renderer__control input{margin:0}@media (width<=960px){.gd-contract-template-renderer__header{align-items:flex-start}.gd-contract-template-renderer__workspace{grid-template-columns:minmax(0,1fr)}.gd-contract-template-renderer__panel-wrap,.gd-contract-template-renderer__panel-wrap.is-collapsed{width:auto;overflow:visible}.gd-contract-template-renderer__panel-clip,.gd-contract-template-renderer__panel-wrap.is-collapsed .gd-contract-template-renderer__panel-clip{visibility:visible;height:auto;overflow:visible}.gd-contract-template-renderer__panel,.gd-contract-template-renderer__panel-wrap.is-collapsed .gd-contract-template-renderer__panel{width:100%;max-height:420px}.gd-contract-template-renderer__panel-handle,.gd-contract-template-renderer__panel-toggle{display:none!important}}@media (width<=640px){.gd-contract-template-renderer{min-height:0}.gd-contract-template-renderer__header{padding:var(--gdant-spacing-sm);flex-direction:column;align-items:stretch}.gd-contract-template-renderer__header-actions{justify-content:flex-start}.gd-contract-template-renderer__workspace{padding:var(--gdant-spacing-sm)}.gd-contract-template-renderer__toolbar{flex-direction:column;align-items:stretch}.gd-contract-template-renderer__toolbar-group{justify-content:space-between}.gd-contract-template-renderer__page-select{width:100%}.gd-contract-template-renderer__pages{padding-inline:var(--gdant-spacing-sm);justify-content:start}.gd-contract-template-renderer__page-meta{grid-template-columns:auto minmax(0,1fr)}.gd-contract-template-renderer__page-meta small{grid-column:1/-1}}@media (width<=1180px){.gd-contract-template-designer__workspace-header{flex-direction:column;align-items:flex-start}.gd-contract-template-designer__workspace-actions{justify-content:flex-start;width:100%}.gd-contract-template-designer__toolbar-section--main{flex-basis:100%}.gd-contract-template-designer__toolbar{padding-inline:12px}.gd-contract-template-designer__canvas{justify-content:start}.gd-contract-template-designer__page-shell{margin-inline:0}}@media (height<=820px) and (width>=761px){.gd-contract-template-designer{min-height:560px}.gd-contract-template-designer__file-bar,.gd-contract-template-designer__workspace-header,.gd-contract-template-designer__toolbar{padding-block:var(--gdant-spacing-xs)}.gd-contract-template-designer__panel{gap:var(--gdant-spacing-xs);padding-block:var(--gdant-spacing-sm)}.gd-contract-template-designer__canvas{gap:var(--gdant-spacing-base);padding-block:var(--gdant-spacing-base)}}@media (width<=760px){.gd-contract-template-designer{height:auto;min-height:0;overflow:visible}.gd-contract-template-designer__layout,.gd-contract-template-designer__layout.is-sidebar-collapsed,.gd-contract-template-designer__layout.is-inspector-collapsed,.gd-contract-template-designer__layout.is-sidebar-collapsed.is-inspector-collapsed{grid-template-rows:auto minmax(560px,1fr) auto;grid-template-columns:minmax(0,1fr)}.gd-contract-template-designer__file-bar{flex-direction:column;align-items:stretch}.gd-contract-template-designer__file-add.ant-btn-sm{align-self:flex-start}.gd-contract-template-designer__sidebar,.gd-contract-template-designer__inspector,.gd-contract-template-designer__sidebar.is-collapsed,.gd-contract-template-designer__inspector.is-collapsed{border:0;width:auto;max-height:360px;overflow:auto}.gd-contract-template-designer__sidebar .gd-contract-template-designer__panel-stack,.gd-contract-template-designer__inspector .gd-contract-template-designer__panel-stack,.gd-contract-template-designer__sidebar.is-collapsed .gd-contract-template-designer__panel-stack,.gd-contract-template-designer__inspector.is-collapsed .gd-contract-template-designer__panel-stack,.gd-contract-template-designer__sidebar .gd-contract-template-designer__panel-stack>*,.gd-contract-template-designer__inspector .gd-contract-template-designer__panel-stack>*{visibility:visible;width:100%}.gd-contract-template-designer__panel-handle,.gd-contract-template-designer__toolbar-more{display:none!important}.gd-contract-template-designer__toolbar-section--main{flex-wrap:wrap;row-gap:8px;display:flex}.gd-contract-template-designer__toolbar-section--main .gd-contract-template-designer__toolbar-group{flex-wrap:wrap;flex-shrink:1}.gd-contract-template-designer__sidebar{border-bottom:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__inspector{border-top:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__workspace{min-height:560px}.gd-contract-template-designer__workspace-header{flex-direction:column;align-items:flex-start}.gd-contract-template-designer__workspace-actions{justify-content:flex-start;width:100%}.gd-contract-template-designer__canvas{justify-content:start;padding:16px 8px}}@container (width<=1279px){.gd-contract-template-designer__layout{--gd-sidebar-expanded:220px;--gd-inspector-expanded:260px}.gd-contract-template-designer__workspace-header{flex-direction:column;align-items:flex-start}.gd-contract-template-designer__workspace-actions{justify-content:flex-start;width:100%}.gd-contract-template-designer__toolbar-section--main{flex-basis:100%}.gd-contract-template-designer__canvas{justify-content:start}}@container (width<=1079px){.gd-contract-template-designer__layout{--gd-sidebar-expanded:200px;--gd-inspector-expanded:240px}}@media (width<=760px){.gd-contract-template-designer__page-decorations-studio{border-top:1px solid var(--gdant-neutral-200);border-left:0;grid-row:1/-1;width:auto;height:min(70vh,100%);min-height:0;max-height:100%;inset:auto 0 0}.gd-contract-template-designer__page-decorations-studio-body{padding:var(--gdant-spacing-sm)}.gd-contract-template-designer__page-decorations-studio-head{align-items:flex-start}.gd-contract-template-designer__page-decorations-studio-actions{justify-content:flex-end;gap:var(--gdant-spacing-xs);flex-wrap:wrap}.gd-contract-template-designer__page-decorations-studio-footer{flex-direction:column;align-items:flex-start}.gd-contract-template-designer__page-decorations-studio-footer>div{justify-content:flex-end;width:100%}.gd-contract-template-designer__decoration-plan,.gd-contract-template-designer__decoration-slots-grid,.gd-contract-template-designer__decoration-slot-editor,.gd-contract-template-designer__decoration-control-grid{grid-template-columns:minmax(0,1fr)}.gd-contract-template-designer__decoration-slot-editor>.ant-dropdown-trigger{width:100%}}@media (prefers-reduced-motion:reduce){.gd-contract-template-designer__page-decorations-studio,.gd-contract-template-designer__page-decorations-studio *{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-designer{--gd-toolbar-control-height:30px;--gd-toolbar-radius:10px;--gd-toolbar-gap:8px;--gd-toolbar-border:var(--gdant-neutral-200);--gd-toolbar-bg:var(--gdant-neutral-0);--gd-toolbar-muted-bg:var(--gdant-neutral-50);--gd-toolbar-shadow:var(--gdant-shadow-raised);border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-100);min-height:640px;color:var(--gdant-neutral-800);flex-direction:column;font-size:14px;display:flex;overflow:hidden;container-type:inline-size}.gd-contract-template-designer__layout{--gd-sidebar-expanded:260px;--gd-inspector-expanded:300px;flex:auto;grid-template-columns:auto minmax(0,1fr) auto;min-width:0;min-height:0;display:grid}.gd-contract-template-designer__file-bar{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;padding:var(--gdant-spacing-xs) var(--gdant-spacing-md);border-bottom:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);display:flex}.gd-contract-template-designer__file-list{align-items:center;gap:var(--gdant-spacing-xs);min-width:0;scrollbar-color:var(--gdant-neutral-300) transparent;scrollbar-width:thin;flex:auto;padding-block:2px;padding-inline-end:var(--gdant-spacing-xs);display:flex;overflow-x:auto}.gd-contract-template-designer__file-item{border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-50);min-width:128px;max-width:280px;height:34px;transition:border-color var(--gdant-duration-fast) var(--gdant-easing-default), background var(--gdant-duration-fast) var(--gdant-easing-default), box-shadow var(--gdant-duration-fast) var(--gdant-easing-default);flex:none;align-items:center;display:inline-flex}.gd-contract-template-designer__file-item.is-active{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50);box-shadow:inset 3px 0 0 var(--gdant-primary-500)}.gd-contract-template-designer__file-tab{align-items:center;gap:var(--gdant-spacing-xs);min-width:0;height:100%;padding:0 var(--gdant-spacing-sm);color:var(--gdant-neutral-700);cursor:pointer;text-align:left;background:0 0;border:0;flex:auto;display:inline-flex}.gd-contract-template-designer__file-tab small{color:var(--gdant-neutral-500);flex:none;font-size:11px}.gd-contract-template-designer__file-index{background:var(--gdant-neutral-200);width:18px;height:18px;color:var(--gdant-neutral-600);font-size:11px;font-weight:var(--gdant-font-semibold);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.gd-contract-template-designer__file-item.is-active .gd-contract-template-designer__file-index{background:var(--gdant-primary-500);color:var(--gdant-neutral-0)}.gd-contract-template-designer__file-name{min-width:0;font-weight:var(--gdant-font-medium);text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.gd-contract-template-designer__file-actions{flex:none;align-items:center;padding-inline-end:2px;display:inline-flex}.gd-contract-template-designer__file-actions .ant-btn-sm{width:24px;min-width:24px;height:24px;padding:0}.gd-contract-template-designer__file-rename{width:180px;margin-inline:var(--gdant-spacing-xs)}.gd-contract-template-designer__file-add.ant-btn-sm{border-color:var(--gdant-primary-200);height:30px;color:var(--gdant-primary-600);flex:none}.gd-contract-template-designer.is-fullscreen{z-index:980;border-radius:0;width:100vw;min-height:0;position:fixed;inset:0;height:100dvh!important}.gd-contract-template-designer__sidebar,.gd-contract-template-designer__inspector{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-contract-template-designer__sidebar{width:var(--gd-sidebar-expanded);border-right:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__inspector{width:var(--gd-inspector-expanded);border-left:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__sidebar.is-collapsed{border-right-width:0;width:0}.gd-contract-template-designer__inspector.is-collapsed{border-left-width:0;width:0}.gd-contract-template-designer__sidebar.is-collapsed .gd-contract-template-designer__panel-stack,.gd-contract-template-designer__inspector.is-collapsed .gd-contract-template-designer__panel-stack{visibility:hidden}.gd-contract-template-designer__workspace{grid-template-rows:auto auto auto minmax(0,1fr);min-width:0;min-height:0;display:grid;position:relative;overflow:hidden}.gd-contract-template-designer__validation{grid-row:3}.gd-contract-template-designer__workspace-chrome{display:contents}.gd-contract-template-designer__workspace-chrome-handle{box-sizing:border-box;border:0;border-bottom:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);width:100%;height:14px;color:var(--gdant-neutral-500);cursor:pointer;transition:color var(--gdant-duration-normal) var(--gdant-easing-default), background var(--gdant-duration-normal) var(--gdant-easing-default);grid-row:1;justify-content:center;align-items:center;margin:0;padding:0;display:flex}.gd-contract-template-designer__workspace-chrome-handle .anticon{font-size:10px}.gd-contract-template-designer__workspace-chrome-handle:hover{background:var(--gdant-neutral-50);color:var(--gdant-primary-500)}.gd-contract-template-designer__canvas{grid-row:4}.gd-contract-template-designer__immersive-exit{z-index:3;align-items:center;gap:var(--gdant-spacing-xs);border:1px solid var(--gdant-neutral-200);opacity:.55;background:color-mix(in srgb, var(--gdant-neutral-0) 88%, transparent);height:28px;box-shadow:var(--gdant-shadow-raised);color:var(--gdant-neutral-700);cursor:pointer;transition:opacity var(--gdant-duration-normal) var(--gdant-easing-default), border-color var(--gdant-duration-normal) var(--gdant-easing-default), color var(--gdant-duration-normal) var(--gdant-easing-default);border-radius:999px;margin:0;padding-inline:10px;font-size:12px;display:inline-flex;position:absolute;top:12px;right:16px}.gd-contract-template-designer__immersive-exit .anticon{font-size:13px}.gd-contract-template-designer__immersive-exit kbd{border-radius:var(--gdant-radius-xs);background:var(--gdant-neutral-100);color:var(--gdant-neutral-600);padding-inline:4px;font-family:inherit;font-size:10px;line-height:16px}.gd-contract-template-designer__immersive-exit:hover,.gd-contract-template-designer__immersive-exit:focus-visible{border-color:var(--gdant-primary-300);opacity:1;color:var(--gdant-primary-600)}.gd-contract-template-designer__page-decorations-trigger.ant-btn-sm{align-items:center;gap:var(--gdant-spacing-xs);min-width:156px;height:var(--gd-toolbar-control-height);text-align:left;padding-inline:8px;display:inline-flex}.gd-contract-template-designer__page-decorations-trigger.ant-btn-sm>.anticon{flex:none}.gd-contract-template-designer__page-decorations-trigger.ant-btn-sm .gd-contract-template-designer__page-decorations-trigger-copy{min-width:0;line-height:1.1;display:grid}.gd-contract-template-designer__page-decorations-trigger.ant-btn-sm .gd-contract-template-designer__page-decorations-trigger-copy>span,.gd-contract-template-designer__page-decorations-trigger.ant-btn-sm .gd-contract-template-designer__page-decorations-trigger-copy>small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-contract-template-designer__page-decorations-trigger.ant-btn-sm .gd-contract-template-designer__page-decorations-trigger-copy>small{color:var(--gdant-neutral-500);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.gd-contract-template-designer__page-decorations-trigger.ant-btn-sm.is-selected{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50);color:var(--gdant-primary-600)}.gd-contract-template-designer__page-decorations-studio{z-index:var(--gdant-z-overlay);border-left:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);width:min(480px,68%);min-width:0;box-shadow:var(--gdant-shadow-modal);pointer-events:auto;flex-direction:column;grid-row:4;display:flex;position:absolute;top:0;bottom:0;right:0;overflow:hidden;container:page-decorations-studio/inline-size}.gd-contract-template-designer__page-decorations-studio-head,.gd-contract-template-designer__page-decorations-studio-footer{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);min-width:0;padding:var(--gdant-spacing-sm) var(--gdant-spacing-md);border-bottom:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);flex:none;display:flex}.gd-contract-template-designer__page-decorations-studio-head{z-index:1;position:relative}.gd-contract-template-designer__page-decorations-studio-title,.gd-contract-template-designer__page-decorations-studio-actions,.gd-contract-template-designer__page-decorations-studio-footer>div{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;display:flex}.gd-contract-template-designer__page-decorations-studio-title>div{gap:2px;min-width:0;display:grid}.gd-contract-template-designer__page-decorations-studio-title strong{color:var(--gdant-neutral-900);font-size:15px;font-weight:var(--gdant-font-semibold);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-contract-template-designer__page-decorations-studio-title small,.gd-contract-template-designer__page-decorations-studio-footer>span,.gd-contract-template-designer__page-decorations-studio-section-head small{color:var(--gdant-neutral-500);font-size:var(--gdant-text-caption);line-height:1.5}.gd-contract-template-designer__page-decorations-studio-icon{border-radius:var(--gdant-radius-md);background:var(--gdant-primary-50);width:28px;height:28px;color:var(--gdant-primary-600);flex:none;justify-content:center;align-items:center;display:inline-flex}.gd-contract-template-designer__page-decorations-studio-body{min-width:0;min-height:0;padding:var(--gdant-spacing-md);background:var(--gdant-neutral-50);flex:auto;display:block;overflow:auto}.gd-contract-template-designer__page-decorations-studio-form-section{border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);min-width:0}.gd-contract-template-designer__page-decorations-studio-form-section>.gd-contract-template-designer__panel--decorations{border-bottom:0;width:auto}.gd-contract-template-designer__page-decorations-studio-form-section>.gd-contract-template-designer__panel--decorations.is-embedded{padding:var(--gdant-spacing-md)}.gd-contract-template-designer__decoration-plan{align-items:end;gap:var(--gdant-spacing-sm);grid-template-columns:minmax(0,1fr) auto;display:grid}.gd-contract-template-designer__decoration-plan .gd-contract-template-designer__form-row{margin:0}.gd-contract-template-designer__decoration-errors{margin-block:var(--gdant-spacing-sm)}.gd-contract-template-designer__decoration-errors ul{margin:0;padding-inline-start:var(--gdant-spacing-xl)}.gd-contract-template-designer__decoration-advanced{border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-50)}.gd-contract-template-designer__decoration-advanced summary{padding:var(--gdant-spacing-sm) var(--gdant-spacing-md);color:var(--gdant-neutral-700);cursor:pointer;font-size:var(--gdant-text-body-sm);font-weight:var(--gdant-font-medium)}.gd-contract-template-designer__decoration-advanced-content{gap:var(--gdant-spacing-sm);padding:0 var(--gdant-spacing-md) var(--gdant-spacing-md);display:grid}.gd-contract-template-designer__color-control{align-items:center;gap:var(--gdant-spacing-xs);min-width:0;display:inline-flex}.gd-contract-template-designer__color-control code{color:var(--gdant-neutral-500);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.gd-contract-template-designer__page-decorations-studio-footer{border-top:1px solid var(--gdant-neutral-200);border-bottom:0}.gd-contract-template-designer__workspace-header{border-bottom:1px solid var(--gdant-neutral-200);background:linear-gradient(180deg, var(--gdant-neutral-0) 0%, var(--gdant-neutral-50) 100%);justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:8px 12px;display:flex}.gd-contract-template-designer__workspace-meta{align-content:center;gap:2px;min-width:0;min-height:38px;display:grid}.gd-contract-template-designer__workspace-meta>span{color:var(--gdant-neutral-500);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:600}.gd-contract-template-designer__workspace-meta>strong{color:var(--gdant-neutral-800);text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;overflow:hidden}.gd-contract-template-designer__workspace-meta>small{color:var(--gdant-neutral-500);font-size:12px}.gd-contract-template-designer__draft-cache-status.is-success{color:var(--gdant-success-600)}.gd-contract-template-designer__draft-cache-status.is-warning,.gd-contract-template-designer__draft-cache-status.is-error{color:var(--gdant-warning-700)}.gd-contract-template-designer__workspace-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.gd-contract-template-designer__workspace-controls,.gd-contract-template-designer__workspace-buttons{align-items:center;gap:var(--gd-toolbar-gap);border:1px solid var(--gd-toolbar-border);border-radius:var(--gdant-radius-xl);background:var(--gd-toolbar-bg);box-shadow:var(--gd-toolbar-shadow);padding:4px;display:flex}.gd-contract-template-designer__workspace-buttons{flex-wrap:wrap}.gd-contract-template-designer__toolbar{border-bottom:1px solid var(--gdant-neutral-200);background:linear-gradient(180deg, var(--gdant-neutral-50) 0%, var(--gdant-neutral-50) 100%);align-items:center;gap:8px;min-width:0;padding:8px 12px;display:flex}.gd-contract-template-designer__toolbar-section{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.gd-contract-template-designer__toolbar-section--main{flex-wrap:nowrap;flex:auto;gap:8px 0}.gd-contract-template-designer__toolbar-section--main .gd-contract-template-designer__toolbar-group{flex-wrap:nowrap;flex-shrink:0}.gd-contract-template-designer__toolbar-section--main>.gd-contract-template-designer__toolbar-group:first-child:before{display:none}.gd-contract-template-designer__toolbar-select{flex:none;min-width:80px;max-width:112px}.gd-contract-template-designer__toolbar-select.is-wide{min-width:108px;max-width:132px}.gd-contract-template-designer__block-format-option{line-height:1.4;display:block}.gd-contract-template-designer__block-format-option.is-level-1{font-size:16px;font-weight:var(--gdant-font-semibold)}.gd-contract-template-designer__block-format-option.is-level-2{font-size:15px;font-weight:var(--gdant-font-semibold)}.gd-contract-template-designer__block-format-option.is-level-3{font-size:14px;font-weight:var(--gdant-font-semibold)}.gd-contract-template-designer__block-format-option.is-level-4{font-size:13px;font-weight:var(--gdant-font-semibold)}.gd-contract-template-designer__block-format-option.is-level-5,.gd-contract-template-designer__block-format-option.is-level-6,.gd-contract-template-designer__block-format-option.is-mixed{font-size:13px}.gd-contract-template-designer__toolbar-number{width:78px}.gd-contract-template-designer__icon-button.ant-btn-sm{width:var(--gd-toolbar-control-height);height:var(--gd-toolbar-control-height);min-width:var(--gd-toolbar-control-height);justify-content:center;align-items:center;padding-inline:0;display:inline-flex}.gd-contract-template-designer__icon-button.ant-btn-sm .anticon{font-size:15px}.gd-contract-template-designer__icon-button.ant-btn-sm.is-selected{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50);color:var(--gdant-primary-600)}.gd-contract-template-designer__toolbar-group{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.gd-contract-template-designer__toolbar-group:before{background:var(--gdant-neutral-200);content:"";flex:none;align-self:center;width:1px;height:20px;margin-inline:4px}.gd-contract-template-designer__toolbar .gd-contract-template-designer__icon-button.ant-btn-sm:not(.is-selected):not(.ant-btn-primary):hover:not(:disabled){background:var(--gdant-neutral-100)}.gd-contract-template-designer__toolbar .ant-btn-sm,.gd-contract-template-designer__workspace-actions .ant-btn-sm{min-width:var(--gd-toolbar-control-height);height:var(--gd-toolbar-control-height);border-radius:var(--gdant-radius-lg);padding-inline:10px;font-weight:500}.gd-contract-template-designer__toolbar .ant-btn-sm.ant-btn-icon-only,.gd-contract-template-designer__workspace-actions .ant-btn-sm.ant-btn-icon-only{padding-inline:0}.gd-contract-template-designer__toolbar .ant-select,.gd-contract-template-designer__workspace-actions .ant-select{align-self:stretch}.gd-contract-template-designer__toolbar .ant-select-selector,.gd-contract-template-designer__toolbar .ant-input-number,.gd-contract-template-designer__toolbar .ant-input-number-input-wrap,.gd-contract-template-designer__toolbar .ant-input-number-input,.gd-contract-template-designer__toolbar .ant-btn-sm,.gd-contract-template-designer__toolbar .gd-contract-template-designer__color,.gd-contract-template-designer__workspace-actions .ant-select-selector,.gd-contract-template-designer__workspace-actions .ant-input-number,.gd-contract-template-designer__workspace-actions .ant-input-number-input-wrap,.gd-contract-template-designer__workspace-actions .ant-input-number-input,.gd-contract-template-designer__workspace-actions .ant-btn-sm,.gd-contract-template-designer__workspace-actions .gd-contract-template-designer__color{height:var(--gd-toolbar-control-height)}.gd-contract-template-designer__toolbar .ant-select-selector,.gd-contract-template-designer__toolbar .ant-input-number,.gd-contract-template-designer__workspace-actions .ant-select-selector,.gd-contract-template-designer__workspace-actions .ant-input-number{border-radius:var(--gdant-radius-lg)}.gd-contract-template-designer__toolbar .ant-select-selector,.gd-contract-template-designer__workspace-actions .ant-select-selector{align-items:center;display:flex}.gd-contract-template-designer__toolbar .ant-input-number-input,.gd-contract-template-designer__workspace-actions .ant-input-number-input{height:calc(var(--gd-toolbar-control-height) - 2px)}.gd-contract-template-designer__zoom{align-items:center;gap:var(--gd-toolbar-gap);flex:none;grid-template-columns:32px 56px repeat(5,32px);display:inline-grid}.gd-contract-template-designer__zoom>span{color:var(--gdant-neutral-600);text-align:center;white-space:nowrap;font-size:12px;line-height:24px}.gd-contract-template-designer__color{width:var(--gd-toolbar-control-height);border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-0);padding:0}.gd-contract-template-designer__popover{gap:10px;min-width:220px;display:grid}.gd-contract-template-designer__popover>strong{color:var(--gdant-neutral-800);font-size:13px}.gd-contract-template-designer__control-insert-popover{--gd-text-context-menu-control-size:calc(var(--gdant-spacing-base) + var(--gdant-spacing-xl) / 2);width:min(304px, 100vw - var(--gdant-spacing-xl))}.gd-contract-template-designer__image-insert-popover{width:min(300px, 100vw - var(--gdant-spacing-xl))}.gd-contract-template-designer__image-size-fields{gap:var(--gdant-spacing-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.gd-contract-template-designer__image-size-fields label{gap:var(--gdant-spacing-xs);min-width:0;color:var(--gdant-neutral-600);font-size:var(--gdant-text-caption);display:grid}.gd-contract-template-designer__image-size-fields .ant-input-number{width:100%}.gd-contract-template-designer__hidden-file-input{display:none}.gd-contract-template-designer__canvas{scrollbar-color:var(--gdant-neutral-300) transparent;scrollbar-gutter:stable both-edges;scrollbar-width:thin;place-content:start center;gap:28px;min-width:0;min-height:0;padding:24px;display:grid;overflow:auto}.gd-contract-template-designer__validation{border-bottom:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);gap:8px;padding:10px 12px;display:grid}.gd-contract-template-designer__validation-list{max-height:126px;scrollbar-color:var(--gdant-neutral-300) transparent;scrollbar-gutter:stable;scrollbar-width:thin;gap:6px;padding-inline-end:var(--gdant-spacing-xs);display:grid;overflow:auto}.gd-contract-template-designer__validation-item{border:1px solid var(--gdant-error-50);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);width:100%;color:var(--gdant-error-700);cursor:pointer;text-align:left;justify-content:space-between;align-items:center;gap:10px;padding:7px 8px;display:flex}.gd-contract-template-designer__validation-item:hover{border-color:var(--gdant-error-300);background:var(--gdant-error-50)}.gd-contract-template-designer__validation-item small{color:var(--gdant-neutral-500);flex:none}.gd-contract-template-designer__panel{gap:var(--gdant-spacing-sm);padding:var(--gdant-spacing-md) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-neutral-200);display:grid}.gd-contract-template-designer__panel-head{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);min-height:20px;color:var(--gdant-neutral-700);display:flex}.gd-contract-template-designer__panel-head>strong{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;color:var(--gdant-neutral-800);font-size:14px;font-weight:var(--gdant-font-semibold);display:inline-flex}.gd-contract-template-designer__panel-head>strong:before{border-radius:var(--gdant-radius-xs);background:var(--gdant-primary-500);content:"";width:4px;height:16px}.gd-contract-template-designer__panel-head>span{color:var(--gdant-neutral-500);flex:none;font-size:12px}.gd-contract-template-designer__panel-actions{gap:8px;display:flex}.gd-contract-template-designer__panel-stack{width:100%;min-width:0;height:100%;min-height:0;scrollbar-color:var(--gdant-neutral-300) transparent;scrollbar-gutter:stable;scrollbar-width:thin;flex:auto;padding-inline-end:var(--gdant-spacing-xs);overflow:hidden auto}.gd-contract-template-designer__file-list::-webkit-scrollbar{width:10px;height:10px}.gd-contract-template-designer__panel-stack::-webkit-scrollbar{width:10px;height:10px}.gd-contract-template-designer__canvas::-webkit-scrollbar{width:10px;height:10px}.gd-contract-template-designer__validation-list::-webkit-scrollbar{width:10px;height:10px}.gd-contract-template-designer__file-list::-webkit-scrollbar-track{background:0 0}.gd-contract-template-designer__panel-stack::-webkit-scrollbar-track{background:0 0}.gd-contract-template-designer__canvas::-webkit-scrollbar-track{background:0 0}.gd-contract-template-designer__validation-list::-webkit-scrollbar-track{background:0 0}.gd-contract-template-designer__file-list::-webkit-scrollbar-thumb{border-radius:var(--gdant-radius-xl);background:var(--gdant-neutral-300);background-clip:padding-box;border:3px solid #0000}.gd-contract-template-designer__panel-stack::-webkit-scrollbar-thumb{border-radius:var(--gdant-radius-xl);background:var(--gdant-neutral-300);background-clip:padding-box;border:3px solid #0000}.gd-contract-template-designer__canvas::-webkit-scrollbar-thumb{border-radius:var(--gdant-radius-xl);background:var(--gdant-neutral-300);background-clip:padding-box;border:3px solid #0000}.gd-contract-template-designer__validation-list::-webkit-scrollbar-thumb{border-radius:var(--gdant-radius-xl);background:var(--gdant-neutral-300);background-clip:padding-box;border:3px solid #0000}.gd-contract-template-designer__file-list::-webkit-scrollbar-thumb:hover{background:var(--gdant-neutral-400);background-clip:padding-box}.gd-contract-template-designer__panel-stack::-webkit-scrollbar-thumb:hover{background:var(--gdant-neutral-400);background-clip:padding-box}.gd-contract-template-designer__canvas::-webkit-scrollbar-thumb:hover{background:var(--gdant-neutral-400);background-clip:padding-box}.gd-contract-template-designer__validation-list::-webkit-scrollbar-thumb:hover{background:var(--gdant-neutral-400);background-clip:padding-box}.gd-contract-template-designer__sidebar .gd-contract-template-designer__panel-stack>*{width:calc(var(--gd-sidebar-expanded) - var(--gdant-spacing-xs));flex:none}.gd-contract-template-designer__inspector .gd-contract-template-designer__panel-stack>*{width:calc(var(--gd-inspector-expanded) - var(--gdant-spacing-xs));flex:none}.gd-contract-template-designer__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-contract-template-designer__panel-handle .anticon{font-size:10px}.gd-contract-template-designer__sidebar .gd-contract-template-designer__panel-handle{border-radius:0 var(--gdant-radius-md) var(--gdant-radius-md) 0;border-left:0;right:-14px}.gd-contract-template-designer__inspector .gd-contract-template-designer__panel-handle{border-radius:var(--gdant-radius-md) 0 0 var(--gdant-radius-md);border-right:0;left:-14px}.gd-contract-template-designer__panel-handle:hover{background:var(--gdant-neutral-50);color:var(--gdant-primary-500)}.gd-contract-template-designer__toolbar-more{flex:none;align-items:center;display:flex;position:relative}.gd-contract-template-designer__toolbar-more:before{background:var(--gdant-neutral-200);content:"";flex:none;align-self:center;width:1px;height:20px;margin-inline:4px}.gd-contract-template-designer__toolbar-more-panel{z-index:var(--gdant-z-modal);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-0);width:236px;max-width:calc(100vw - 24px);box-shadow:var(--gdant-shadow-modal);flex-direction:column;gap:12px;padding:10px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.gd-contract-template-designer__toolbar-more-section{flex-direction:column;gap:6px;display:flex}.gd-contract-template-designer__toolbar-more-title{color:var(--gdant-neutral-500);font-size:12px;line-height:18px}.gd-contract-template-designer__toolbar-more-slot{flex-wrap:wrap;gap:6px;display:flex}.gd-contract-template-designer__toolbar-more-slot .gd-contract-template-designer__toolbar-group{flex-wrap:wrap;flex-shrink:1;gap:6px;width:100%}.gd-contract-template-designer__toolbar-more-slot .gd-contract-template-designer__toolbar-group:before{display:none}.gd-contract-template-designer__toolbar-more-slot .gd-contract-template-designer__toolbar-select,.gd-contract-template-designer__toolbar-more-slot .gd-contract-template-designer__toolbar-select.is-wide{flex:92px;min-width:92px;max-width:none}.gd-contract-template-designer__nav-item,.gd-contract-template-designer__variable-chip,.gd-contract-template-designer__tool-item{border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);width:100%;min-height:36px;color:var(--gdant-neutral-700);cursor:pointer;text-align:left;transition:border-color var(--gdant-duration-normal), background-color var(--gdant-duration-normal), box-shadow var(--gdant-duration-normal);justify-content:space-between;align-items:center;margin:0;padding:8px;display:flex}.gd-contract-template-designer__nav-item:hover,.gd-contract-template-designer__variable-chip:hover,.gd-contract-template-designer__tool-item:hover,.gd-contract-template-designer__nav-item.is-active,.gd-contract-template-designer__variable-chip.is-active,.gd-contract-template-designer__tool-item.is-active{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50)}.gd-contract-template-designer__nav-item:focus-visible,.gd-contract-template-designer__variable-chip:focus-visible,.gd-contract-template-designer__tool-item:focus-visible{border-color:var(--gdant-primary-500);box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 15%, transparent);outline:none}.gd-contract-template-designer__nav-item:disabled,.gd-contract-template-designer__variable-chip:disabled,.gd-contract-template-designer__tool-item:disabled{color:var(--gdant-neutral-400);cursor:not-allowed}.gd-contract-template-designer__tool-item{justify-content:flex-start;gap:var(--gdant-spacing-sm)}.gd-contract-template-designer__tool-item-icon{border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-50);width:28px;height:28px;color:var(--gdant-primary-500);flex:none;justify-content:center;align-items:center;font-size:16px;line-height:1;display:inline-flex}.gd-contract-template-designer__tool-item-icon .anticon,.gd-contract-template-designer__tool-item-icon svg{width:1em;height:1em;color:inherit;fill:currentColor;display:block}.gd-contract-template-designer__tool-item:disabled .gd-contract-template-designer__tool-item-icon{background:var(--gdant-neutral-50);color:var(--gdant-primary-500)}.gd-contract-template-designer__tool-item-copy{gap:var(--gdant-spacing-xs);flex:1;min-width:0;display:grid}.gd-contract-template-designer__nav-item>span{gap:2px;min-width:0;display:grid}.gd-contract-template-designer__page-nav-row{align-items:center;gap:var(--gdant-spacing-xs);margin-bottom:var(--gdant-spacing-xs);grid-template-columns:minmax(0,1fr) auto;display:grid;position:relative}.gd-contract-template-designer__page-nav-row .gd-contract-template-designer__nav-item{min-width:0;margin-bottom:0}.gd-contract-template-designer__page-nav-actions{gap:var(--gdant-spacing-xs);display:flex}.gd-contract-template-designer__page-nav-actions .gd-contract-template-designer__icon-button.ant-btn-sm{width:28px;min-width:28px;height:28px}.gd-contract-template-designer__nav-item small{max-width:92px;color:var(--gdant-neutral-500);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.gd-contract-template-designer__page-config{border-top:1px dashed var(--gdant-neutral-300);gap:8px;margin-top:12px;padding-top:12px;display:grid}.gd-contract-template-designer__page-size-note{color:var(--gdant-neutral-500);font-size:12px}.gd-contract-template-designer__variable-form{gap:8px;margin-bottom:10px;display:grid}.gd-contract-template-designer__page-shell{margin:0 auto;position:relative}.gd-contract-template-designer__page-zoom{border-radius:var(--gdant-radius-lg);width:fit-content;transform:translateX(-50%) scale(var(--gd-contract-page-zoom,1));transform-origin:top;border:1px solid #0000;padding:3px;position:absolute;top:0;left:50%}.gd-contract-template-designer__page-zoom.is-active{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50)}.gd-contract-template-designer__page-title{color:var(--gdant-neutral-600);justify-content:space-between;gap:12px;margin-bottom:8px;font-size:12px;display:flex}.gd-contract-template-designer__page{box-sizing:border-box;border:1px solid var(--gdant-neutral-300);background:var(--gdant-neutral-0);box-shadow:var(--gdant-shadow-overlay);padding:54px 64px;position:relative;overflow:hidden}.gd-contract-template-page.has-contract-header{padding-top:80px}.gd-contract-template-designer__page:has(>.gd-contract-template-page__header){padding-top:80px}.gd-contract-template-page.has-contract-footer{padding-bottom:80px}.gd-contract-template-designer__page:has(>.gd-contract-template-page__footer){padding-bottom:80px}.gd-contract-template-page__content{z-index:1;position:relative}.gd-contract-template-page__header,.gd-contract-template-page__footer{z-index:2;align-items:center;gap:var(--gdant-spacing-sm);min-width:0;padding-block:var(--gdant-spacing-xs);pointer-events:none;grid-template-columns:repeat(3,minmax(0,1fr));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{min-width:0;max-width:100%;font-weight:var(--gdant-font-medium);text-overflow:ellipsis;white-space:nowrap;transform-origin:50%;justify-content:center;align-items:center;line-height:1.5;display:flex;overflow:hidden}.gd-contract-template-designer__page>.gd-contract-template-page__content{min-height:inherit}.gd-contract-template-designer__signing-layer{z-index:var(--gdant-z-overlay);pointer-events:none;position:absolute;inset:0;overflow:hidden}.gd-contract-template-designer__signing-coordinate-guides{z-index:1;pointer-events:none;position:absolute;inset:0}.gd-contract-template-designer__signing-coordinate-guide{border-color:color-mix(in srgb, var(--gdant-primary-500) 70%, transparent);pointer-events:none;border-style:dashed;display:block;position:absolute}.gd-contract-template-designer__signing-coordinate-guide.is-horizontal{top:var(--gd-contract-signing-y);width:var(--gd-contract-signing-x);border-top-width:1px;left:0}.gd-contract-template-designer__signing-coordinate-guide.is-vertical{top:0;left:var(--gd-contract-signing-x);height:var(--gd-contract-signing-y);border-left-width:1px}.gd-contract-template-designer__signing-coordinate-guide small{border-radius:var(--gdant-radius-xs);background:var(--gdant-primary-50);color:var(--gdant-primary-700);font-size:11px;font-weight:var(--gdant-font-medium);white-space:nowrap;padding:1px 4px;line-height:16px;position:absolute}.gd-contract-template-designer__signing-coordinate-guide.is-horizontal small{bottom:3px;right:4px}.gd-contract-template-designer__signing-coordinate-guide.is-vertical small{top:4px;left:3px}.gd-contract-template-designer__signing-placement{z-index:2;place-content:center;gap:var(--gdant-spacing-xs);box-sizing:border-box;min-width:0;min-height:0;padding:var(--gdant-spacing-xs);border:2px dashed var(--gdant-primary-500);border-radius:var(--gdant-radius-md);background:color-mix(in srgb, var(--gdant-primary-50) 76%, transparent);color:var(--gdant-primary-700);cursor:move;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;transition:border-color var(--gdant-duration-normal), background-color var(--gdant-duration-normal), box-shadow var(--gdant-duration-normal);display:grid;position:absolute;overflow:hidden}.gd-contract-template-designer__signing-placement.is-seal{border-color:var(--gdant-error-500);background:color-mix(in srgb, var(--gdant-error-50) 80%, transparent);color:var(--gdant-error-700)}.gd-contract-template-designer__signing-placement.is-date{border-color:var(--gdant-warning-500);background:color-mix(in srgb, var(--gdant-warning-50) 80%, transparent);color:var(--gdant-warning-700)}.gd-contract-template-designer__signing-placement:hover,.gd-contract-template-designer__signing-placement:focus-visible,.gd-contract-template-designer__signing-placement.is-selected{box-shadow:0 0 0 3px color-mix(in srgb, currentColor 20%, transparent);border-style:solid;outline:none}.gd-contract-template-designer__signing-placement-visual{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;width:calc(100% - 12px);height:calc(100% - 12px);position:absolute;inset:6px}.gd-contract-template-designer.is-readonly .gd-contract-template-designer__signing-placement,.gd-contract-template-designer.is-disabled .gd-contract-template-designer__signing-placement{cursor:pointer}.gd-contract-template-designer__signing-placement-label{font-size:13px;font-weight:var(--gdant-font-semibold);text-align:center;text-overflow:ellipsis;white-space:nowrap;line-height:1.2;overflow:hidden}.gd-contract-template-designer__signing-placement-required{text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:1.2;font-weight:var(--gdant-font-semibold);overflow:hidden}.gd-contract-template-designer__signing-tool{justify-content:flex-start;gap:var(--gdant-spacing-sm);border-style:dashed;min-width:0}.gd-contract-template-designer__signing-tool-copy{gap:var(--gdant-spacing-xs);flex:1;min-width:0;display:grid}.gd-contract-template-designer__signing-tool-label{color:var(--gdant-neutral-800);font-weight:var(--gdant-font-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-contract-template-designer__signing-inspector-body{gap:var(--gdant-spacing-md);display:grid}.gd-contract-template-designer__inspector-section{gap:var(--gdant-spacing-sm);display:grid}.gd-contract-template-designer__inspector-section--nested{padding:var(--gdant-spacing-sm);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-50)}.gd-contract-template-designer__inspector-section-title{color:var(--gdant-neutral-600);font-size:12px;font-weight:var(--gdant-font-medium);line-height:1.5}.gd-contract-template-designer__signing-inspector-body .gd-contract-template-designer__switch-row,.gd-contract-template-designer__signing-inspector-body .gd-contract-template-designer__form-row,.gd-contract-template-designer__signing-inspector-body .gd-contract-template-designer__grid-form{margin-bottom:0}.gd-contract-template-designer__signing-inspector-actions{gap:var(--gdant-spacing-sm);display:grid}.gd-contract-template-designer__signing-inspector-actions .ant-btn{width:100%}.gd-contract-template-designer__signing-inspector-danger-action{padding-top:var(--gdant-spacing-sm);border-top:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__signing-empty{color:var(--gdant-neutral-500);margin:0;font-size:12px;line-height:1.6}.gd-contract-template-designer__editor-prose{min-height:var(--gd-contract-page-content-height,1000px);color:var(--gdant-neutral-800);font-family:var(--gd-contract-template-editor-font-family,"Noto Serif SC", "Source Han Serif SC", "Songti SC", serif);outline:none;line-height:1.75}.gd-contract-template-designer__editor-prose p{margin:0 0 10px}.gd-contract-template-designer__editor-prose ul,.gd-contract-template-designer__editor-prose ol{margin:0 0 10px;padding-left:2em;list-style-position:outside}.gd-contract-template-designer__editor-prose ul{list-style-type:disc}.gd-contract-template-designer__editor-prose ul ul{list-style-type:circle}.gd-contract-template-designer__editor-prose ul ul ul{list-style-type:square}.gd-contract-template-designer__editor-prose ol{list-style-type:decimal}.gd-contract-template-designer__editor-prose ol ol{list-style-type:lower-alpha}.gd-contract-template-designer__editor-prose ol ol ol{list-style-type:lower-roman}.gd-contract-template-designer__preview .gd-contract-template-page ul,.gd-contract-template-designer__preview .gd-contract-template-page ol{margin:0 0 10px;padding-left:2em;list-style-position:outside}.gd-contract-template-designer__preview .gd-contract-template-page ul{list-style-type:disc}.gd-contract-template-designer__preview .gd-contract-template-page ul ul{list-style-type:circle}.gd-contract-template-designer__preview .gd-contract-template-page ul ul ul{list-style-type:square}.gd-contract-template-designer__preview .gd-contract-template-page ol{list-style-type:decimal}.gd-contract-template-designer__preview .gd-contract-template-page ol ol{list-style-type:lower-alpha}.gd-contract-template-designer__preview .gd-contract-template-page ol ol ol{list-style-type:lower-roman}.gd-contract-template-renderer__page-frame .gd-contract-template-page ul,.gd-contract-template-renderer__page-frame .gd-contract-template-page ol{margin:0 0 10px;padding-left:2em;list-style-position:outside}.gd-contract-template-renderer__page-frame .gd-contract-template-page ul{list-style-type:disc}.gd-contract-template-renderer__page-frame .gd-contract-template-page ul ul{list-style-type:circle}.gd-contract-template-renderer__page-frame .gd-contract-template-page ul ul ul{list-style-type:square}.gd-contract-template-renderer__page-frame .gd-contract-template-page ol{list-style-type:decimal}.gd-contract-template-renderer__page-frame .gd-contract-template-page ol ol{list-style-type:lower-alpha}.gd-contract-template-renderer__page-frame .gd-contract-template-page ol ol ol{list-style-type:lower-roman}.gd-contract-template-designer__editor-prose img,.gd-contract-template-designer__preview .gd-contract-template-page img,.gd-contract-template-renderer__page-frame .gd-contract-template-page img{object-fit:contain;vertical-align:middle;max-width:100%;display:inline-block}.gd-contract-template-designer__editor-prose img[width],.gd-contract-template-designer__editor-prose img[height],.gd-contract-template-designer__preview .gd-contract-template-page img[width],.gd-contract-template-designer__preview .gd-contract-template-page img[height],.gd-contract-template-renderer__page-frame .gd-contract-template-page img[width],.gd-contract-template-renderer__page-frame .gd-contract-template-page img[height]{max-width:none}.gd-contract-template-designer__editor-prose img:not([height]),.gd-contract-template-designer__preview .gd-contract-template-page img:not([height]),.gd-contract-template-renderer__page-frame .gd-contract-template-page img:not([height]){height:auto}.gd-contract-template-designer__editor-prose sup,.gd-contract-template-designer__editor-prose sub,.gd-contract-template-designer__preview .gd-contract-template-page sup,.gd-contract-template-designer__preview .gd-contract-template-page sub,.gd-contract-template-renderer__page-frame .gd-contract-template-page sup,.gd-contract-template-renderer__page-frame .gd-contract-template-page sub{line-height:0}.gd-contract-template-designer__editor-prose table{border-collapse:collapse;width:100%}.gd-contract-template-designer__editor-prose th,.gd-contract-template-designer__editor-prose td{border:1px solid var(--gdant-neutral-300);min-width:80px;padding:6px 8px}.gd-contract-template-designer__editor-prose .selectedCell:after{background:color-mix(in srgb, var(--gdant-primary-500) 14%, transparent)}.gd-contract-template-designer__page.is-variable-dragging .gd-contract-template-variable{cursor:grabbing}.gd-contract-template-variable{align-items:center;justify-content:var(--gd-contract-variable-justify-content,flex-start);box-sizing:border-box;width:var(--gd-contract-variable-width,160px);min-height:var(--gd-contract-variable-height,32px);border-radius:var(--gdant-radius-xs);background:var(--gd-contract-variable-background,transparent);color:var(--gd-contract-variable-color,var(--gdant-neutral-800));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;margin:0 2px;padding:0 6px;line-height:1.5;transition:border-color .12s,background-color .12s,box-shadow .12s;display:inline-flex;position:relative}.gd-contract-template-variable:hover{border-color:var(--gdant-primary-300);background-color:color-mix(in srgb, var(--gdant-primary-50) 48%, transparent)}.gd-contract-template-variable.has-border{border-color:var(--gd-contract-variable-line-color,var(--gdant-neutral-600));border-style:var(--gd-contract-variable-border-style,solid)}.gd-contract-template-variable.has-underline{border-color:#0000;border-bottom-color:var(--gd-contract-variable-line-color,var(--gdant-neutral-600));border-bottom-style:var(--gd-contract-variable-border-style,solid);border-radius:0}.gd-contract-template-variable.is-placeholder{color:var(--gd-contract-variable-placeholder-color,var(--gdant-neutral-500))}.gd-contract-template-variable.is-active{border-color:var(--gdant-warning-500);background-color:var(--gdant-warning-50);color:var(--gdant-warning-700);box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-warning-500) 18%, transparent)}.gd-contract-template-variable.is-multiline{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;padding:0 6px;display:inline-block;overflow:hidden}.gd-contract-template-variable.is-multiline.has-underline{background-image:linear-gradient(to bottom, transparent calc(100% - 1px), var(--gd-contract-variable-line-color,var(--gdant-neutral-600)) calc(100% - 1px));background-repeat:repeat-y;background-size:100% var(--gd-contract-variable-line-height,28px);border-bottom-color:#0000}.gd-contract-template-variable.is-number{font-variant-numeric:tabular-nums}.gd-contract-template-variable.is-checkbox{width:auto;min-width:var(--gd-contract-variable-width,96px);justify-content:flex-start;gap:6px;padding:0 2px}.gd-contract-template-variable.is-checkbox:before{border-radius:var(--gdant-radius-xs);content:"";border:1px solid;justify-content:center;align-items:center;width:13px;height:13px;font-size:10px;line-height:1;display:inline-flex}.gd-contract-template-variable.is-checkbox.is-checked:before{content:"✓"}.gd-contract-template-variable.is-image{min-height:var(--gd-contract-variable-height,96px);border-color:var(--gd-contract-variable-line-color,var(--gdant-neutral-300));border-style:var(--gd-contract-variable-border-style,dashed);background:var(--gd-contract-variable-background,transparent);color:var(--gd-contract-variable-placeholder-color,var(--gdant-neutral-500));white-space:normal;justify-content:center;overflow:hidden}.gd-contract-template-variable.is-image.has-value{color:#0000}.gd-contract-template-variable.is-image.has-value:before{background-image:var(--gd-contract-variable-image);background-position:50%;background-repeat:no-repeat;background-size:var(--gd-contract-variable-object-fit,contain);content:"";position:absolute;inset:4px}.gd-contract-template-designer__form-row{color:var(--gdant-neutral-600);gap:6px;margin-bottom:12px;font-size:12px;display:grid}.gd-contract-template-designer__form-row.is-compact{margin-bottom:0}.gd-contract-template-designer__switch-row{border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-50);min-height:28px;color:var(--gdant-neutral-600);justify-content:space-between;align-items:center;gap:12px;margin:0;padding:6px 8px;font-size:12px;display:flex}.gd-contract-template-designer__switch-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.gd-contract-template-designer__panel--decorations{flex:none}.gd-contract-template-designer__decoration-tabs{margin-top:var(--gdant-spacing-sm)}.gd-contract-template-designer__decoration-tab-label{align-items:center;gap:var(--gdant-spacing-xs);display:inline-flex}.gd-contract-template-designer__decoration-tab-label i{border-radius:var(--gdant-radius-pill);background:var(--gdant-neutral-300);width:6px;height:6px}.gd-contract-template-designer__decoration-tab-label i.is-enabled{background:var(--gdant-success-500)}.gd-contract-template-designer__decoration-form{gap:var(--gdant-spacing-sm);display:grid}.gd-contract-template-designer__decoration-slots-grid{gap:var(--gdant-spacing-sm);grid-template-columns:repeat(3,minmax(0,1fr));min-width:0;display:grid}.gd-contract-template-designer__decoration-slot-editor{align-items:end;gap:var(--gdant-spacing-xs);grid-template-columns:minmax(0,1fr) auto;min-width:0;display:grid}.gd-contract-template-designer__decoration-slots-grid>.gd-contract-template-designer__decoration-slot-editor{padding:var(--gdant-spacing-sm);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-50);grid-template-columns:minmax(0,1fr);align-content:start;align-items:stretch}.gd-contract-template-designer__decoration-slots-grid .gd-contract-template-designer__form-row>span{color:var(--gdant-neutral-700);font-weight:var(--gdant-font-medium)}.gd-contract-template-designer__decoration-slots-grid .ant-btn{width:100%}@container page-decorations-studio (width<=420px){.gd-contract-template-designer__decoration-plan,.gd-contract-template-designer__decoration-slots-grid,.gd-contract-template-designer__decoration-slot-editor,.gd-contract-template-designer__decoration-control-grid{grid-template-columns:minmax(0,1fr)}.gd-contract-template-designer__decoration-slot-editor>.ant-dropdown-trigger{width:100%}}.gd-contract-template-designer__decoration-control-grid{gap:var(--gdant-spacing-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.gd-contract-template-designer__decoration-control-grid>label{gap:var(--gdant-spacing-xs);min-width:0;color:var(--gdant-neutral-600);font-size:var(--gdant-text-caption);display:grid}.gd-contract-template-designer__decoration-control-grid .ant-select,.gd-contract-template-designer__decoration-control-grid .ant-input-number{width:100%}.gd-contract-template-designer__unit-control{align-items:center;gap:var(--gdant-spacing-xs);grid-template-columns:minmax(0,1fr) auto;min-width:0;display:grid}.gd-contract-template-designer__unit-control small{min-width:16px;color:var(--gdant-neutral-500);font-variant-numeric:tabular-nums}.gd-contract-template-designer__color-row{min-height:32px;color:var(--gdant-neutral-600);font-size:var(--gdant-text-caption);justify-content:space-between;align-items:center;display:flex}.gd-contract-template-designer__decoration-control-grid input[type=color],.gd-contract-template-designer__color-row input[type=color]{border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);width:32px;height:32px;padding:2px}.gd-contract-template-designer__decoration-control-grid .gd-contract-template-designer__color-control{min-height:32px}.gd-contract-template-designer__form-error{color:var(--gdant-error-500);grid-column:1/-1;margin:0;font-size:11px;line-height:1.5;display:block}.gd-contract-template-designer__tool-item small{color:var(--gdant-neutral-500);font-size:11px}.gd-contract-template-designer__grid-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px;display:grid}.gd-contract-template-designer__table-picker{gap:var(--gdant-spacing-sm);margin:var(--gdant-spacing-sm) 0;display:grid}.gd-contract-template-designer__table-picker-label{color:var(--gdant-neutral-700);font-variant-numeric:tabular-nums;font-size:12px}.gd-contract-template-designer__table-picker-grid{gap:3px;width:fit-content;display:grid}.gd-contract-template-designer__table-picker-row{grid-template-columns:repeat(10,18px);gap:3px;display:grid}.gd-contract-template-designer__table-picker-cell{border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-xs);background:var(--gdant-neutral-0);cursor:pointer;width:18px;height:18px;padding:0}.gd-contract-template-designer__table-picker-cell:hover,.gd-contract-template-designer__table-picker-cell.is-previewed{border-color:var(--gdant-primary-500);background:var(--gdant-primary-100)}.gd-contract-template-designer__table-picker-cell:focus-visible{outline:2px solid var(--gdant-primary-500);outline-offset:1px}.gd-contract-template-designer__grid-form label{color:var(--gdant-neutral-600);gap:6px;font-size:12px;display:grid}.gd-contract-template-designer__popover-actions{justify-content:flex-end;gap:8px;display:flex}.gd-contract-template-designer__table-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.gd-contract-template-designer__context-menu{z-index:var(--gdant-z-modal);border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-xl);background:color-mix(in srgb, var(--gdant-neutral-0) 98%, transparent);min-width:240px;max-width:min(360px,100vw - 24px);box-shadow:var(--gdant-shadow-modal);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);gap:8px;padding:10px;display:grid;position:fixed}.gd-contract-template-designer__context-menu-row{flex-wrap:wrap;gap:8px;display:flex}.gd-contract-template-designer__context-menu-group{border-bottom:1px solid var(--gdant-neutral-200);gap:6px;padding-bottom:8px;display:grid}.gd-contract-template-designer__context-menu-group>span{color:var(--gdant-neutral-500);font-size:12px}.gd-contract-template-designer__context-menu-group.is-danger{border-bottom:0;padding-bottom:0}.gd-contract-template-designer__image-context-menu{box-sizing:border-box;width:min(288px, 100vw - var(--gdant-spacing-xl));gap:var(--gdant-spacing-md);border-color:var(--gdant-neutral-200);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-0);min-width:0;box-shadow:var(--gdant-shadow-overlay);-webkit-backdrop-filter:none;backdrop-filter:none}.gd-contract-template-designer__image-context-title{gap:calc(var(--gdant-spacing-xs) / 2);display:grid}.gd-contract-template-designer__image-context-title strong{color:var(--gdant-neutral-800);font-size:var(--gdant-text-body)}.gd-contract-template-designer__image-context-title span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-caption)}.gd-contract-template-designer__text-context-menu{--gd-text-context-menu-gutter:var(--gdant-spacing-md);--gd-text-context-menu-width:calc(var(--gdant-spacing-xl) * 12 + var(--gdant-spacing-sm) * 2);--gd-text-context-menu-control-size:calc(var(--gdant-spacing-base) + var(--gdant-spacing-xl) / 2);--gd-text-context-menu-thin:calc(var(--gdant-spacing-xs) / 2);width:min(var(--gd-text-context-menu-width), 100vw - var(--gd-text-context-menu-gutter) * 2);min-width:0;max-width:none;max-height:calc(100vh - var(--gd-text-context-menu-gutter) * 2);gap:var(--gdant-spacing-xs);padding:var(--gdant-spacing-xs);border-color:var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);box-shadow:var(--gdant-shadow-raised);-webkit-backdrop-filter:none;backdrop-filter:none;overscroll-behavior:contain;overflow-y:auto}.gd-contract-template-designer__text-menu-row{align-items:center;gap:var(--gdant-spacing-xs);min-width:0;padding:0;display:flex}.gd-contract-template-designer__text-menu-row+.gd-contract-template-designer__text-menu-row{padding-top:var(--gdant-spacing-xs);border-top:var(--gd-text-context-menu-thin) solid var(--gdant-neutral-200)}.gd-contract-template-designer__text-menu-quick-insert{gap:var(--gdant-spacing-xs);min-width:0;padding-top:var(--gdant-spacing-xs);border-top:var(--gd-text-context-menu-thin) solid var(--gdant-neutral-200);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.gd-contract-template-designer__text-menu-quick-insert .ant-btn{justify-content:center;align-items:center;gap:var(--gdant-spacing-xs);min-width:0;display:inline-flex;overflow:hidden}.gd-contract-template-designer__text-menu-quick-insert .ant-btn>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-contract-template-designer__text-menu-control-group{gap:var(--gdant-spacing-xs);min-width:0;padding-top:var(--gdant-spacing-xs);border-top:var(--gd-text-context-menu-thin) solid var(--gdant-neutral-200);display:grid}.gd-contract-template-designer__text-menu-control-head{justify-content:space-between;align-items:baseline;gap:var(--gdant-spacing-sm);min-width:0;color:var(--gdant-neutral-700);font-size:var(--gdant-text-body-sm);display:flex}.gd-contract-template-designer__text-menu-control-head>span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-contract-template-designer__text-menu-control-options{gap:var(--gdant-spacing-xs);grid-template-columns:repeat(5,minmax(0,1fr));min-width:0;display:grid}.gd-contract-template-designer__text-menu-control-option{justify-content:center;align-items:center;gap:var(--gdant-spacing-xs);min-width:0;min-height:calc(var(--gd-text-context-menu-control-size) + var(--gdant-spacing-md));padding:var(--gdant-spacing-xs) var(--gdant-spacing-xs);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-sm);background:var(--gdant-neutral-0);color:var(--gdant-neutral-700);cursor:pointer;font-size:var(--gdant-text-body-sm);transition:border-color var(--gdant-duration-normal) var(--gdant-easing-default), background var(--gdant-duration-normal) var(--gdant-easing-default), color var(--gdant-duration-normal) var(--gdant-easing-default);flex-direction:column;line-height:1.2;display:inline-flex;overflow:hidden}.gd-contract-template-designer__text-menu-control-option .anticon{color:var(--gdant-primary-500);font-size:var(--gdant-text-h3);flex:none}.gd-contract-template-designer__text-menu-control-option span{text-overflow:ellipsis;white-space:nowrap;text-align:center;width:100%;display:block;overflow:hidden}.gd-contract-template-designer__text-menu-control-option:hover{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50);color:var(--gdant-primary-700)}.gd-contract-template-designer__text-menu-control-option:focus-visible{outline:calc(var(--gd-text-context-menu-thin) * 2) solid var(--gdant-primary-500);outline-offset:var(--gd-text-context-menu-thin)}.gd-contract-template-designer__text-menu-bind-toggle{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);width:100%;min-height:var(--gd-text-context-menu-control-size);padding:var(--gdant-spacing-xs) var(--gdant-spacing-sm);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-sm);background:var(--gdant-neutral-0);color:var(--gdant-neutral-700);cursor:pointer;font-size:var(--gdant-text-body-sm);transition:border-color var(--gdant-duration-normal) var(--gdant-easing-default), background var(--gdant-duration-normal) var(--gdant-easing-default), color var(--gdant-duration-normal) var(--gdant-easing-default);line-height:1.2;display:inline-flex}.gd-contract-template-designer__text-menu-bind-toggle:hover:not(:disabled){border-color:var(--gdant-primary-300);background:var(--gdant-primary-50);color:var(--gdant-primary-700)}.gd-contract-template-designer__text-menu-bind-toggle:focus-visible{outline:calc(var(--gd-text-context-menu-thin) * 2) solid var(--gdant-primary-500);outline-offset:var(--gd-text-context-menu-thin)}.gd-contract-template-designer__text-menu-bind-toggle:disabled{color:var(--gdant-neutral-400);cursor:not-allowed}.gd-contract-template-designer__text-menu-bind-search{width:100%}.gd-contract-template-designer__text-menu-bind-list{gap:var(--gdant-spacing-xs);max-height:calc(var(--gdant-spacing-xl) * 5 + var(--gdant-spacing-md));display:grid;overflow:auto}.gd-contract-template-designer__text-menu-bind-item{align-items:flex-start;gap:var(--gdant-spacing-xs);width:100%;min-width:0;padding:var(--gdant-spacing-xs) var(--gdant-spacing-sm);border-radius:var(--gdant-radius-sm);color:var(--gdant-neutral-800);cursor:pointer;text-align:left;background:0 0;border:0;flex-direction:column;display:flex}.gd-contract-template-designer__text-menu-bind-item-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.gd-contract-template-designer__text-menu-bind-item-meta,.gd-contract-template-designer__text-menu-bind-empty{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-contract-template-designer__text-menu-bind-empty{padding:var(--gdant-spacing-xs) var(--gdant-spacing-sm);margin:0}.gd-contract-template-designer__text-menu-bind-item:hover,.gd-contract-template-designer__text-menu-bind-item:focus-visible{background:var(--gdant-primary-50);color:var(--gdant-primary-700)}.gd-contract-template-designer__text-menu-bind-item:focus-visible{outline:calc(var(--gd-text-context-menu-thin) * 2) solid var(--gdant-primary-500);outline-offset:var(--gd-text-context-menu-thin)}.gd-contract-template-designer__text-menu-row--controls{gap:var(--gdant-spacing-sm)}.gd-contract-template-designer__text-menu-icon-button.ant-btn-sm{flex:0 0 var(--gd-text-context-menu-control-size);width:var(--gd-text-context-menu-control-size);min-width:var(--gd-text-context-menu-control-size);height:var(--gd-text-context-menu-control-size);border-radius:var(--gdant-radius-sm);color:var(--gdant-neutral-700);background:0 0;border-color:#0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.gd-contract-template-designer__text-menu-icon-button.ant-btn-sm:hover:not(:disabled){background:var(--gdant-neutral-100);color:var(--gdant-neutral-900);border-color:#0000}.gd-contract-template-designer__text-menu-icon-button.ant-btn-sm.is-selected{border-color:var(--gdant-primary-100);background:var(--gdant-primary-50);color:var(--gdant-primary-600)}.gd-contract-template-designer__text-menu-icon-button.ant-btn-sm:focus-visible,.gd-contract-template-designer__text-menu-clear-action.ant-btn-sm:focus-visible,.gd-contract-template-designer__context-menu-color:focus-visible{outline:calc(var(--gd-text-context-menu-thin) * 2) solid var(--gdant-primary-500);outline-offset:var(--gd-text-context-menu-thin)}.gd-contract-template-designer__text-menu-divider{width:var(--gd-text-context-menu-thin);height:var(--gdant-spacing-base);margin:0 var(--gd-text-context-menu-thin);background:var(--gdant-neutral-200)}.gd-contract-template-designer__text-menu-font-size{min-width:calc(var(--gdant-spacing-base) * 5 + var(--gdant-spacing-xs));flex:1 1 calc(var(--gdant-spacing-base) * 5 + var(--gdant-spacing-xs))}.gd-contract-template-designer__text-menu-alignment{min-width:calc(var(--gdant-spacing-base) * 6 + var(--gdant-spacing-xs));flex:1 1 calc(var(--gdant-spacing-base) * 6 + var(--gdant-spacing-xs))}.gd-contract-template-designer__text-menu-row .ant-select-selector{min-height:var(--gd-text-context-menu-control-size);border-radius:var(--gdant-radius-sm)}.gd-contract-template-designer__text-menu-row .ant-select-focused .ant-select-selector{border-color:var(--gdant-primary-500);box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 15%, transparent)}.gd-contract-template-designer__text-menu-row .ant-select-selection-search-input,.gd-contract-template-designer__text-menu-row .ant-select-selection-item{line-height:calc(var(--gd-text-context-menu-control-size) - var(--gdant-spacing-xs) / 2)}.gd-contract-template-designer__text-menu-clear-action.ant-btn-sm{justify-content:center;align-items:center;gap:var(--gdant-spacing-xs);min-width:0;height:var(--gd-text-context-menu-control-size);padding:0 var(--gdant-spacing-sm);border-color:var(--gdant-neutral-200);border-radius:var(--gdant-radius-sm);background:var(--gdant-neutral-0);color:var(--gdant-neutral-600);font-size:var(--gdant-text-body-sm);flex:1 1 0;display:inline-flex}.gd-contract-template-designer__text-menu-clear-action.ant-btn-sm:hover:not(:disabled){border-color:var(--gdant-error-200);background:var(--gdant-error-50);color:var(--gdant-error-600)}.gd-contract-template-designer__table-context-menu{box-sizing:border-box;width:min(240px,100vw - 16px);min-width:0;max-width:none;max-height:min(520px,100vh - 24px);padding:var(--gdant-spacing-xs);border-color:var(--gdant-neutral-200);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-0);box-shadow:var(--gdant-shadow-overlay);-webkit-backdrop-filter:none;backdrop-filter:none;overscroll-behavior:contain;animation:gd-contract-template-table-menu-enter var(--gdant-duration-normal) var(--gdant-easing-default);display:block;overflow:hidden auto}.gd-contract-template-designer__table-menu-group{gap:calc(var(--gdant-spacing-xs) / 2);padding:var(--gdant-spacing-xs) 0;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.gd-contract-template-designer__table-menu-group.is-stacked{grid-template-columns:minmax(0,1fr)}.gd-contract-template-designer__table-menu-group+.gd-contract-template-designer__table-menu-group{border-top:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__table-menu-item{appearance:none;box-sizing:border-box;align-items:center;gap:var(--gdant-spacing-sm);width:100%;min-height:32px;padding:0 var(--gdant-spacing-sm);border-radius:var(--gdant-radius-md);color:var(--gdant-neutral-700);cursor:pointer;font:inherit;font-size:var(--gdant-text-body);letter-spacing:0;text-align:left;white-space:nowrap;transition:background-color var(--gdant-duration-normal) var(--gdant-easing-default), color var(--gdant-duration-normal) var(--gdant-easing-default);background:0 0;border:0;line-height:20px;display:flex}.gd-contract-template-designer__table-menu-item .anticon{width:16px;color:var(--gdant-neutral-500);transition:color var(--gdant-duration-normal) var(--gdant-easing-default);flex:0 0 16px;font-size:15px}.gd-contract-template-designer__table-menu-item:hover:not(:disabled){background:var(--gdant-neutral-100);color:var(--gdant-neutral-900)}.gd-contract-template-designer__table-menu-item:hover:not(:disabled) .anticon{color:var(--gdant-neutral-700)}.gd-contract-template-designer__table-menu-item:focus-visible,.gd-contract-template-designer__table-menu-align-item:focus-visible{outline:2px solid var(--gdant-primary-500);outline-offset:-2px}.gd-contract-template-designer__table-menu-item:disabled,.gd-contract-template-designer__table-menu-align-item:disabled{color:var(--gdant-neutral-400);cursor:not-allowed}.gd-contract-template-designer__table-menu-item:disabled .anticon{color:var(--gdant-neutral-400)}.gd-contract-template-designer__table-menu-item.is-danger{color:var(--gdant-error-700);grid-column:1/-1}.gd-contract-template-designer__table-menu-item.is-danger:hover:not(:disabled){background:var(--gdant-error-50);color:var(--gdant-error-700)}.gd-contract-template-designer__table-menu-item.is-danger:hover:not(:disabled) .anticon{color:var(--gdant-error-600)}.gd-contract-template-designer__table-menu-align{align-items:center;gap:var(--gdant-spacing-sm);min-height:38px;padding:calc(var(--gdant-spacing-xs) / 2) var(--gdant-spacing-sm);grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;display:grid}.gd-contract-template-designer__table-menu-align-label{min-width:0;color:var(--gdant-neutral-600);font-size:var(--gdant-text-body-sm);letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;line-height:18px;overflow:hidden}.gd-contract-template-designer__table-menu-align-options{border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-100);grid-template-columns:repeat(3,30px);gap:2px;padding:2px;display:grid}.gd-contract-template-designer__table-menu-align-item{appearance:none;border-radius:var(--gdant-radius-sm);width:30px;height:28px;color:var(--gdant-neutral-600);cursor:pointer;transition:background-color var(--gdant-duration-normal) var(--gdant-easing-default), box-shadow var(--gdant-duration-normal) var(--gdant-easing-default), color var(--gdant-duration-normal) var(--gdant-easing-default);background:0 0;border:0;place-items:center;padding:0;font-size:15px;display:grid}.gd-contract-template-designer__table-menu-align-item:hover:not(:disabled){background:var(--gdant-neutral-200);color:var(--gdant-neutral-800)}.gd-contract-template-designer__table-menu-align-item.is-selected{background:var(--gdant-neutral-0);box-shadow:var(--gdant-shadow-raised);color:var(--gdant-primary-600)}.gd-contract-template-designer__table-menu-danger{margin-top:var(--gdant-spacing-xs);padding-top:var(--gdant-spacing-sm);border-top:1px solid var(--gdant-neutral-200)}@keyframes gd-contract-template-table-menu-enter{0%{opacity:0;transform:translateY(-2px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.gd-contract-template-designer__table-context-menu{animation:none}.gd-contract-template-designer__table-menu-item,.gd-contract-template-designer__table-menu-item .anticon,.gd-contract-template-designer__table-menu-align-item,.gd-contract-template-designer__sidebar,.gd-contract-template-designer__inspector,.gd-contract-template-designer__panel-handle,.gd-contract-template-designer__workspace-chrome-handle,.gd-contract-template-designer__immersive-exit,.gd-contract-template-renderer__panel-wrap,.gd-contract-template-renderer__panel-handle{transition:none}}@media (width<=260px){.gd-contract-template-designer__table-menu-group{grid-template-columns:minmax(0,1fr)}}.gd-contract-template-designer__sr-status{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.gd-contract-template-designer__context-menu-field{flex:112px;min-width:112px}.gd-contract-template-designer__context-menu-color{border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);cursor:pointer;width:40px;height:32px;padding:0}.gd-contract-template-designer__bubble-menu{z-index:var(--gdant-z-modal);box-sizing:border-box;border:1px solid var(--gdant-neutral-200);border-radius:var(--gd-toolbar-radius,10px);background:color-mix(in srgb, var(--gdant-neutral-0) 98%, transparent);box-shadow:var(--gdant-shadow-raised);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:gd-contract-template-designer-bubble-in var(--gdant-duration-normal) var(--gdant-easing-default);align-items:center;gap:2px;padding:4px;display:flex;position:fixed}.gd-contract-template-designer__bubble-menu .gd-contract-template-designer__icon-button.ant-btn-sm{width:28px;min-width:28px;height:28px}.gd-contract-template-designer__bubble-divider{background:var(--gdant-neutral-200);width:1px;height:16px;margin:0 2px}.gd-contract-template-designer__bubble-font-size{width:72px}.gd-contract-template-designer__bubble-color{border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);cursor:pointer;width:32px;height:28px;padding:0}.gd-contract-template-designer__bubble-color:focus-visible{outline:2px solid var(--gdant-primary-500);outline-offset:1px}@keyframes gd-contract-template-designer-bubble-in{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@media (width<=760px){.gd-contract-template-designer__bubble-menu{flex-wrap:wrap;max-width:calc(100vw - 24px)}}@media (prefers-reduced-motion:reduce){.gd-contract-template-designer__bubble-menu{animation:none}}.gd-contract-template-designer.is-disabled{opacity:.68;pointer-events:none}.gd-contract-template-designer__preview-modal .ant-modal{max-width:calc(100vw - 32px)}.gd-contract-template-designer__preview-modal .ant-modal-body{padding:0}.gd-contract-template-designer__preview{background:var(--gdant-neutral-100);max-height:calc(100vh - 180px);padding:32px;display:block;overflow:auto}.gd-contract-template-designer__preview.is-multi-file{padding:0;overflow:hidden}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-layout{grid-template-columns:220px minmax(0,1fr);height:min(720px,100vh - 180px);min-height:420px;display:grid}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-nav{gap:var(--gdant-spacing-xs);min-width:0;padding:var(--gdant-spacing-md);border-right:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-50);flex-direction:column;display:flex;overflow:auto}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-nav-title{padding:0 var(--gdant-spacing-sm) var(--gdant-spacing-sm);color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm);font-weight:var(--gdant-font-semibold)}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-tab{align-items:center;gap:var(--gdant-spacing-sm);width:100%;min-height:44px;padding:var(--gdant-spacing-sm);border-radius:var(--gdant-radius-md);color:var(--gdant-neutral-700);font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;grid-template-columns:auto minmax(0,1fr) auto;display:grid}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-tab>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-tab>small{color:var(--gdant-neutral-500);font-size:var(--gdant-text-caption)}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-tab:hover,.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-tab.is-active{border-color:var(--gdant-primary-200);background:var(--gdant-neutral-0);color:var(--gdant-primary-600)}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-layout>.gd-contract-template-designer__preview-file{min-width:0;max-height:100%;margin:0;padding:24px;overflow:auto}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-page-shell{width:fit-content;max-width:100%;margin:0 auto 24px}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-page-shell:last-child{margin-bottom:0}.gd-contract-template-designer__preview .gd-contract-template-page{box-sizing:border-box;border:1px solid var(--gdant-neutral-300);background:var(--gdant-neutral-0);box-shadow:var(--gdant-shadow-overlay);color:var(--gdant-neutral-800);padding:54px 64px;line-height:1.75;position:relative;overflow:hidden}.gd-contract-template-designer__preview .gd-contract-template-page p{margin:0 0 10px}.gd-contract-template-designer__preview .gd-contract-template-page table{border-collapse:collapse;width:100%}.gd-contract-template-designer__preview .gd-contract-template-page th,.gd-contract-template-designer__preview .gd-contract-template-page td{border:1px solid var(--gdant-neutral-300);min-width:80px;padding:6px 8px}.gd-contract-template-designer__preview-file+.gd-contract-template-designer__preview-file{margin-top:var(--gdant-spacing-xl);padding-top:var(--gdant-spacing-xl);border-top:1px solid var(--gdant-neutral-300)}.gd-contract-template-designer__preview-file-title{align-items:center;gap:var(--gdant-spacing-sm);width:fit-content;margin:0 auto var(--gdant-spacing-md);color:var(--gdant-neutral-800);font-size:var(--gdant-text-title);display:flex}.gd-contract-template-designer__preview-file-title:before{border-radius:var(--gdant-radius-xs);background:var(--gdant-primary-500);content:"";width:4px;height:16px}.gd-contract-template-designer__preview-signing-layer{z-index:2;pointer-events:none;position:absolute;inset:0 auto auto 0}.gd-contract-template-designer__preview-signing-placement{box-sizing:border-box;border:1px solid var(--gdant-primary-500);background:color-mix(in srgb, var(--gdant-success-50) 60%, transparent);min-width:0;min-height:0;color:var(--gdant-primary-300);text-align:center;justify-content:center;align-items:center;font-size:12px;display:flex;position:absolute;overflow:hidden}.gd-contract-template-designer__preview-signing-placement-add{gap:var(--gdant-spacing-xs);box-sizing:border-box;overflow-wrap:anywhere;max-width:100%;padding:10px;display:grid;overflow:hidden}@media (width<=760px){.gd-contract-template-designer__preview .gd-contract-template-designer__preview-layout{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-nav{border-right:0;border-bottom:1px solid var(--gdant-neutral-200);flex-direction:row}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-nav-title{display:none}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-tab{flex:0 0 min(220px,72vw)}}.gd-contract-template-designer__submit-data-modal .ant-modal-body{padding:0}.gd-contract-template-designer__submit-data{background:var(--gdant-neutral-900);max-height:calc(100vh - 220px);color:var(--gdant-neutral-100);white-space:pre;margin:0;padding:16px 20px;font-family:JetBrains Mono,SF Mono,Consolas,monospace;font-size:12px;line-height:1.6;overflow:auto}.gd-contract-template-renderer{--gd-contract-renderer-background:var(--gdant-neutral-100);--gd-contract-renderer-surface:var(--gdant-neutral-0);--gd-contract-renderer-panel-width:336px;--gd-contract-renderer-page-gap:24px;--gd-contract-renderer-border-color:var(--gdant-neutral-300);--gd-contract-renderer-toolbar-control-height:30px;box-sizing:border-box;border:1px solid var(--gd-contract-renderer-border-color);border-radius:var(--gdant-radius-lg);background:var(--gd-contract-renderer-background);min-height:420px;color:var(--gdant-neutral-800);font-size:var(--gdant-text-body);grid-template-rows:auto auto minmax(0,1fr);grid-template-areas:"header""validation""body";display:grid;overflow:hidden}.gd-contract-template-renderer.is-disabled .gd-contract-template-renderer__field-list{opacity:.72}.gd-contract-template-renderer__header{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);min-height:56px;padding:var(--gdant-spacing-sm) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);flex-wrap:wrap;grid-area:header;display:flex}.gd-contract-template-renderer__title{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;display:flex}.gd-contract-template-renderer__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-contract-template-renderer__header-meta{gap:var(--gdant-spacing-xs);min-width:0;display:grid}.gd-contract-template-renderer__header-meta 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-contract-template-renderer__header-meta span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-contract-template-renderer__progress-pill{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;flex:none}.gd-contract-template-renderer__progress-pill.is-warning{border-color:var(--gdant-warning-100);background:var(--gdant-warning-50);color:var(--gdant-warning-700)}.gd-contract-template-renderer__header-actions{align-items:center;gap:var(--gdant-spacing-sm);flex-wrap:wrap;flex:none;display:flex}.gd-contract-template-renderer__icon-button.ant-btn-sm{width:var(--gd-contract-renderer-toolbar-control-height);height:var(--gd-contract-renderer-toolbar-control-height);min-width:var(--gd-contract-renderer-toolbar-control-height);justify-content:center;align-items:center;padding-inline:0;display:inline-flex}.gd-contract-template-renderer__icon-button.ant-btn-sm .anticon{font-size:15px}.gd-contract-template-renderer__toolbar{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;padding:var(--gdant-spacing-xs);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-xl);background:var(--gd-contract-renderer-surface);box-shadow:var(--gdant-shadow-raised);display:flex}.gd-contract-template-renderer__toolbar-group{align-items:center;gap:var(--gdant-spacing-xs);display:flex}.gd-contract-template-renderer__zoom-value{box-sizing:border-box;width:54px;color:var(--gdant-neutral-700);font-variant-numeric:tabular-nums;text-align:center}.gd-contract-template-renderer__page-select{width:min(240px,36vw)}.gd-contract-template-renderer__validation{gap:var(--gdant-spacing-xs);padding:var(--gdant-spacing-xs) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-neutral-200);font-size:var(--gdant-text-body-sm);grid-area:validation;display:grid}.gd-contract-template-renderer__validation.is-success{background:var(--gdant-success-50);color:var(--gdant-success-600)}.gd-contract-template-renderer__validation.is-error{background:var(--gdant-error-50);color:var(--gdant-error-700);border-bottom-color:var(--gdant-error-100)}.gd-contract-template-renderer__validation-bar{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);min-height:28px;display:flex}.gd-contract-template-renderer__validation-toggle{color:inherit;cursor:pointer;background:0 0;border:0;flex:none;padding:0;text-decoration:underline}.gd-contract-template-renderer__validation-list{gap:var(--gdant-spacing-xs);max-height:132px;display:grid;overflow:auto}.gd-contract-template-renderer__validation-item{width:100%;padding:var(--gdant-spacing-sm) var(--gdant-spacing-md);border:1px solid var(--gdant-warning-100);border-radius:var(--gdant-radius-md);background:var(--gdant-warning-50);color:var(--gdant-error-700);text-align:left;cursor:pointer}.gd-contract-template-renderer__empty{min-height:0;padding:var(--gdant-spacing-base);grid-area:body;place-items:center;display:grid}.gd-contract-template-renderer__workspace{gap:var(--gdant-spacing-base);min-height:0;padding:var(--gdant-spacing-md);grid-area:body;grid-template-columns:minmax(0,1fr) auto;display:grid;overflow:hidden}.gd-contract-template-renderer__workspace.is-inline{grid-template-columns:minmax(0,1fr)}.gd-contract-template-renderer__pages-viewport{min-width:0;min-height:0;padding:var(--gdant-spacing-xs) 0;overscroll-behavior:contain;overflow:auto}.gd-contract-template-renderer__pages{place-content:start center;gap:var(--gd-contract-renderer-page-gap);width:max-content;min-width:100%;padding:0 24px 24px;display:grid}.gd-contract-template-renderer__page-shell{justify-content:center;gap:8px;min-width:0;scroll-margin:12px;display:grid}.gd-contract-template-renderer__page-meta{width:100%;color:var(--gdant-neutral-600);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;font-size:12px;display:grid}.gd-contract-template-renderer__page-meta strong{color:var(--gdant-neutral-800);font-weight:600}.gd-contract-template-renderer__page-meta span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.gd-contract-template-renderer__page-meta small{font-variant-numeric:tabular-nums;font-size:12px}.gd-contract-template-renderer__page-frame{flex:none;transition:width .1s cubic-bezier(.4,0,.2,1),height .1s cubic-bezier(.4,0,.2,1);position:relative}.gd-contract-template-renderer__page-frame .gd-contract-template-page{box-sizing:border-box;border:1px solid var(--gd-contract-renderer-border-color);background:var(--gd-contract-renderer-surface);box-shadow:var(--gdant-shadow-overlay);transform-origin:0 0;padding:54px 64px;line-height:1.75;position:absolute;inset:0 auto auto 0;overflow:hidden}.gd-contract-template-renderer__page-frame .gd-contract-template-page p{margin:0 0 10px}.gd-contract-template-renderer__page-frame .gd-contract-template-page table{border-collapse:collapse;width:100%}.gd-contract-template-renderer__page-frame .gd-contract-template-page th,.gd-contract-template-renderer__page-frame .gd-contract-template-page td{border:1px solid var(--gdant-neutral-300);min-width:80px;padding:6px 8px}.gd-contract-template-renderer__panel-wrap{z-index:1;width:var(--gd-contract-renderer-panel-width);min-width:0;min-height:0;transition:width var(--gdant-duration-slow) var(--gdant-easing-default);position:relative;overflow:visible}.gd-contract-template-renderer__panel-wrap.is-collapsed{width:0}.gd-contract-template-renderer__panel-wrap.is-collapsed .gd-contract-template-renderer__panel-clip{visibility:hidden}.gd-contract-template-renderer__panel-clip{width:100%;height:100%;overflow:hidden}.gd-contract-template-renderer__panel{gap:var(--gdant-spacing-sm);width:var(--gd-contract-renderer-panel-width);min-width:0;height:100%;min-height:0;padding:var(--gdant-spacing-md);border:1px solid var(--gd-contract-renderer-border-color);border-radius:var(--gdant-radius-lg);background:var(--gd-contract-renderer-surface);flex-direction:column;display:flex;overflow:hidden}.gd-contract-template-renderer__panel-handle{z-index:2;box-sizing:border-box;border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md) 0 0 var(--gdant-radius-md);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);border-right:0;justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:absolute;top:50%;left:-14px;transform:translateY(-50%)}.gd-contract-template-renderer__panel-handle .anticon{font-size:10px}.gd-contract-template-renderer__panel-handle:hover{background:var(--gdant-neutral-50);color:var(--gdant-primary-500)}.gd-contract-template-renderer__panel-head{z-index:1;gap:var(--gdant-spacing-sm);padding-bottom:var(--gdant-spacing-sm);background:var(--gd-contract-renderer-surface);display:grid;position:sticky;top:0}.gd-contract-template-renderer__panel-head-row{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-md);display:flex}.gd-contract-template-renderer__panel-head-row>div{gap:var(--gdant-spacing-xs);display:grid}.gd-contract-template-renderer__panel-head-row strong{font-size:15px}.gd-contract-template-renderer__panel-head-row span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-contract-template-renderer__panel-head-actions{gap:var(--gdant-spacing-sm);flex-wrap:wrap;display:flex}.gd-contract-template-renderer__field-list{flex:auto;align-content:start;gap:12px;min-height:0;display:grid;overflow:auto}.gd-contract-template-renderer__field{border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-50);transition:border-color var(--gdant-duration-normal) var(--gdant-easing-default), box-shadow var(--gdant-duration-normal) var(--gdant-easing-default);gap:8px;padding:12px;display:grid}.gd-contract-template-renderer__field.is-active{border-color:var(--gdant-primary-500);box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 12%, transparent)}.gd-contract-template-renderer__field.has-error{border-color:var(--gdant-error-300)}.gd-contract-template-renderer__field .ant-input-number,.gd-contract-template-renderer__field .ant-picker{width:100%}.gd-contract-template-renderer__field-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.gd-contract-template-renderer__field-head strong{overflow-wrap:anywhere;min-width:0;font-size:14px}.gd-contract-template-renderer__field-head small{color:var(--gdant-neutral-500);flex:none;font-size:12px}.gd-contract-template-renderer__field-title{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;max-width:100%;display:inline-flex}.gd-contract-template-renderer__field-type-icon{color:var(--gdant-neutral-500);flex:none;align-items:center;font-size:1em;line-height:1;display:inline-flex}.gd-contract-template-renderer__field-type-icon .anticon,.gd-contract-template-renderer__field-type-icon svg{width:1em;height:1em;color:inherit;fill:currentColor;display:block}.gd-contract-template-renderer__field-title-text{overflow-wrap:anywhere;min-width:0}.gd-contract-template-renderer__field-required{color:var(--gdant-error-600);margin-left:2px}.gd-contract-template-renderer__field-checkbox{align-items:center;gap:8px;min-height:32px;display:inline-flex}.gd-contract-template-renderer__image-field{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.gd-contract-template-renderer__image-preview{border:1px dashed var(--gdant-neutral-300);border-radius:var(--gdant-radius-md);min-width:0;color:var(--gdant-neutral-500);grid-column:1/-1;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:12px;padding:8px;font-size:12px;display:grid}.gd-contract-template-renderer__image-preview .ant-image,.gd-contract-template-renderer__image-preview .ant-image-img{border-radius:var(--gdant-radius-sm);object-fit:contain;width:96px;height:56px}.gd-contract-template-renderer__field-errors{color:var(--gdant-error-600);gap:4px;font-size:12px;display:grid}.gd-contract-template-renderer__control{box-sizing:border-box;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;outline:none;padding:0 4px}.gd-contract-template-renderer__control::placeholder{color:var(--gd-contract-variable-placeholder-color,var(--gdant-neutral-500))}.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-contract-template-renderer__control.has-underline{border-bottom:1px solid var(--gd-contract-variable-line-color,var(--gdant-neutral-600))}.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);resize:vertical;display:inline-block}.gd-contract-template-renderer__preview-control{align-items:center;justify-content:var(--gd-contract-variable-justify-content,flex-start);cursor:pointer;display:inline-flex}.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-contract-template-renderer__preview-control.is-empty{color:var(--gd-contract-variable-placeholder-color,var(--gdant-neutral-500))}.gd-contract-template-renderer__preview-control.is-active{box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 24%, transparent)}.gd-contract-template-renderer__preview-control:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 32%, transparent)}.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}label.gd-contract-template-renderer__control{align-items:center;gap:6px;display:inline-flex}label.gd-contract-template-renderer__control input{margin:0}@media (width<=960px){.gd-contract-template-renderer__header{align-items:flex-start}.gd-contract-template-renderer__workspace{grid-template-columns:minmax(0,1fr)}.gd-contract-template-renderer__panel-wrap,.gd-contract-template-renderer__panel-wrap.is-collapsed{width:auto;overflow:visible}.gd-contract-template-renderer__panel-clip,.gd-contract-template-renderer__panel-wrap.is-collapsed .gd-contract-template-renderer__panel-clip{visibility:visible;height:auto;overflow:visible}.gd-contract-template-renderer__panel,.gd-contract-template-renderer__panel-wrap.is-collapsed .gd-contract-template-renderer__panel{width:100%;max-height:420px}.gd-contract-template-renderer__panel-handle,.gd-contract-template-renderer__panel-toggle{display:none!important}}@media (width<=640px){.gd-contract-template-renderer{min-height:0}.gd-contract-template-renderer__header{padding:var(--gdant-spacing-sm);flex-direction:column;align-items:stretch}.gd-contract-template-renderer__header-actions{justify-content:flex-start}.gd-contract-template-renderer__workspace{padding:var(--gdant-spacing-sm)}.gd-contract-template-renderer__toolbar{flex-direction:column;align-items:stretch}.gd-contract-template-renderer__toolbar-group{justify-content:space-between}.gd-contract-template-renderer__page-select{width:100%}.gd-contract-template-renderer__pages{padding-inline:var(--gdant-spacing-sm);justify-content:start}.gd-contract-template-renderer__page-meta{grid-template-columns:auto minmax(0,1fr)}.gd-contract-template-renderer__page-meta small{grid-column:1/-1}}@media (width<=1180px){.gd-contract-template-designer__workspace-header{flex-direction:column;align-items:flex-start}.gd-contract-template-designer__workspace-actions{justify-content:flex-start;width:100%}.gd-contract-template-designer__toolbar-section--main{flex-basis:100%}.gd-contract-template-designer__toolbar{padding-inline:12px}.gd-contract-template-designer__canvas{justify-content:start}.gd-contract-template-designer__page-shell{margin-inline:0}}@media (height<=820px) and (width>=761px){.gd-contract-template-designer{min-height:560px}.gd-contract-template-designer__file-bar,.gd-contract-template-designer__workspace-header,.gd-contract-template-designer__toolbar{padding-block:var(--gdant-spacing-xs)}.gd-contract-template-designer__panel{gap:var(--gdant-spacing-xs);padding-block:var(--gdant-spacing-sm)}.gd-contract-template-designer__canvas{gap:var(--gdant-spacing-base);padding-block:var(--gdant-spacing-base)}}@media (width<=760px){.gd-contract-template-designer{height:auto;min-height:0;overflow:visible}.gd-contract-template-designer__layout,.gd-contract-template-designer__layout.is-sidebar-collapsed,.gd-contract-template-designer__layout.is-inspector-collapsed,.gd-contract-template-designer__layout.is-sidebar-collapsed.is-inspector-collapsed{grid-template-rows:auto minmax(560px,1fr) auto;grid-template-columns:minmax(0,1fr)}.gd-contract-template-designer__file-bar{flex-direction:column;align-items:stretch}.gd-contract-template-designer__file-add.ant-btn-sm{align-self:flex-start}.gd-contract-template-designer__sidebar,.gd-contract-template-designer__inspector,.gd-contract-template-designer__sidebar.is-collapsed,.gd-contract-template-designer__inspector.is-collapsed{border:0;width:auto;max-height:360px;overflow:auto}.gd-contract-template-designer__sidebar .gd-contract-template-designer__panel-stack,.gd-contract-template-designer__inspector .gd-contract-template-designer__panel-stack,.gd-contract-template-designer__sidebar.is-collapsed .gd-contract-template-designer__panel-stack,.gd-contract-template-designer__inspector.is-collapsed .gd-contract-template-designer__panel-stack,.gd-contract-template-designer__sidebar .gd-contract-template-designer__panel-stack>*,.gd-contract-template-designer__inspector .gd-contract-template-designer__panel-stack>*{visibility:visible;width:100%}.gd-contract-template-designer__panel-handle,.gd-contract-template-designer__toolbar-more{display:none!important}.gd-contract-template-designer__toolbar-section--main{flex-wrap:wrap;row-gap:8px;display:flex}.gd-contract-template-designer__toolbar-section--main .gd-contract-template-designer__toolbar-group{flex-wrap:wrap;flex-shrink:1}.gd-contract-template-designer__sidebar{border-bottom:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__inspector{border-top:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__workspace{min-height:560px}.gd-contract-template-designer__workspace-header{flex-direction:column;align-items:flex-start}.gd-contract-template-designer__workspace-actions{justify-content:flex-start;width:100%}.gd-contract-template-designer__zoom{grid-template-columns:32px 44px repeat(5,32px);gap:4px}.gd-contract-template-designer__canvas{justify-content:start;padding:16px 8px}.gd-contract-template-designer__immersive-exit{top:8px;right:8px}.gd-contract-template-designer__immersive-exit-label{display:none}}@container (width<=1279px){.gd-contract-template-designer__layout{--gd-sidebar-expanded:220px;--gd-inspector-expanded:260px}.gd-contract-template-designer__workspace-header{flex-direction:column;align-items:flex-start}.gd-contract-template-designer__workspace-actions{justify-content:flex-start;width:100%}.gd-contract-template-designer__toolbar-section--main{flex-basis:100%}.gd-contract-template-designer__canvas{justify-content:start}}@container (width<=1079px){.gd-contract-template-designer__layout{--gd-sidebar-expanded:200px;--gd-inspector-expanded:240px}}@media (width<=760px){.gd-contract-template-designer__page-decorations-studio{border-top:1px solid var(--gdant-neutral-200);border-left:0;grid-row:1/-1;width:auto;height:min(70vh,100%);min-height:0;max-height:100%;inset:auto 0 0}.gd-contract-template-designer__page-decorations-studio-body{padding:var(--gdant-spacing-sm)}.gd-contract-template-designer__page-decorations-studio-head{align-items:flex-start}.gd-contract-template-designer__page-decorations-studio-actions{justify-content:flex-end;gap:var(--gdant-spacing-xs);flex-wrap:wrap}.gd-contract-template-designer__page-decorations-studio-footer{flex-direction:column;align-items:flex-start}.gd-contract-template-designer__page-decorations-studio-footer>div{justify-content:flex-end;width:100%}.gd-contract-template-designer__decoration-plan,.gd-contract-template-designer__decoration-slots-grid,.gd-contract-template-designer__decoration-slot-editor,.gd-contract-template-designer__decoration-control-grid{grid-template-columns:minmax(0,1fr)}.gd-contract-template-designer__decoration-slot-editor>.ant-dropdown-trigger{width:100%}}@media (prefers-reduced-motion:reduce){.gd-contract-template-designer__page-decorations-studio,.gd-contract-template-designer__page-decorations-studio *{transition:none}}
|
package/dist/lib/components/contract-signing-location/src/ContractSigningLocationCanvas.vue.cjs
CHANGED
|
@@ -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,1);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
|
-
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
|
|
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;
|