@guodun/antdv 1.3.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/es/components/contract-signing-location/src/ContractSigningLocation.vue.mjs +241 -236
  2. package/dist/es/components/pro-contract-signing-flow/src/ContractSigningFlowCanvas.vue.mjs +22 -19
  3. package/dist/es/components/pro-contract-signing-flow/src/ContractSigningFlowInspector.vue.mjs +173 -147
  4. package/dist/es/components/pro-contract-signing-flow/src/ProContractSigningFlow.vue.mjs +83 -74
  5. package/dist/es/components/pro-contract-signing-flow/src/composables/use-contract-signing-flow.mjs +32 -32
  6. package/dist/es/components/pro-contract-signing-flow/style/index.css +1 -1
  7. package/dist/es/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.mjs +8 -4
  8. package/dist/es/components/pro-contract-template-designer/src/extensions/word-paste.mjs +24 -20
  9. package/dist/es/components/pro-contract-template-designer/src/utils/word-paste.mjs +112 -112
  10. package/dist/es/components/pro-contract-template-designer/style/index.css +1 -1
  11. package/dist/lib/components/contract-signing-location/src/ContractSigningLocation.vue.cjs +1 -1
  12. package/dist/lib/components/pro-contract-signing-flow/src/ContractSigningFlowCanvas.vue.cjs +1 -1
  13. package/dist/lib/components/pro-contract-signing-flow/src/ContractSigningFlowInspector.vue.cjs +1 -1
  14. package/dist/lib/components/pro-contract-signing-flow/src/ProContractSigningFlow.vue.cjs +1 -1
  15. package/dist/lib/components/pro-contract-signing-flow/src/composables/use-contract-signing-flow.cjs +1 -1
  16. package/dist/lib/components/pro-contract-signing-flow/style/index.css +1 -1
  17. package/dist/lib/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.cjs +1 -1
  18. package/dist/lib/components/pro-contract-template-designer/src/extensions/word-paste.cjs +1 -1
  19. package/dist/lib/components/pro-contract-template-designer/src/utils/word-paste.cjs +2 -2
  20. package/dist/lib/components/pro-contract-template-designer/style/index.css +1 -1
  21. package/dist/theme/icon.css +1 -1
  22. package/dist/theme/index.css +1 -1
  23. package/dist/theme/pro-contract-signing-flow.css +1 -1
  24. package/dist/types/components/contract-signing-location/src/ContractSigningLocation.vue.d.ts +1 -0
  25. package/dist/types/components/contract-signing-location/src/types.d.ts +5 -0
  26. package/dist/types/components/pro-contract-signing-flow/src/ContractSigningFlowCanvas.vue.d.ts +24 -1
  27. package/dist/types/components/pro-contract-signing-flow/src/ContractSigningFlowInspector.vue.d.ts +1 -0
  28. package/dist/types/components/pro-contract-signing-flow/src/ProContractSigningFlow.vue.d.ts +25 -1
  29. package/dist/types/components/pro-contract-signing-flow/src/composables/use-contract-signing-flow.d.ts +6 -2
  30. package/dist/types/components/pro-contract-signing-flow/src/types.d.ts +5 -0
  31. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateRendererHeader.vue.d.ts +1 -1
  32. package/dist/types/components/pro-contract-template-designer/src/ProContractTemplateRenderer.vue.d.ts +1 -1
  33. package/dist/types/components/pro-contract-template-designer/src/extensions/word-paste.d.ts +1 -1
  34. package/dist/types/components/pro-contract-template-designer/src/types.d.ts +1 -1
  35. package/dist/types/components/pro-contract-template-designer/src/utils/word-paste.d.ts +2 -0
  36. package/package.json +1 -1
@@ -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);height:760px;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.is-fullscreen{z-index:980;border-radius:0;width:100vw;height:100dvh;min-height:0;position:fixed;inset:0}.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;overflow:hidden}.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__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{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{gap:6px;max-height:126px;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{flex:auto;width:100%;min-width:0;height:100%;min-height:0;overflow:hidden auto}.gd-contract-template-designer__sidebar .gd-contract-template-designer__panel-stack>*{width:var(--gd-sidebar-expanded);flex:none}.gd-contract-template-designer__inspector .gd-contract-template-designer__panel-stack>*{width:var(--gd-inspector-expanded);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-extra{flex-wrap:nowrap;flex-shrink:0;align-items:center;gap:0;min-width:0;display:flex}.gd-contract-template-designer__toolbar-more-panel{z-index:var(--gdant-z-modal);gap:var(--gdant-spacing-sm);min-width:280px;max-width:min(420px,100vw - 24px);padding:var(--gdant-spacing-sm);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-0);box-shadow:var(--gdant-shadow-modal);display:grid;position:absolute;top:calc(100% + 4px);right:0}.gd-contract-template-designer__toolbar-more-panel .gd-contract-template-designer__toolbar-extra{flex-flow:column wrap;align-items:stretch}.gd-contract-template-designer__toolbar-more-panel .gd-contract-template-designer__toolbar-group{flex-wrap:wrap}.gd-contract-template-designer__toolbar-more-panel .gd-contract-template-designer__toolbar-group:before{display:none}.gd-contract-template-designer__toolbar-more-panel .gd-contract-template-designer__toolbar-group+.gd-contract-template-designer__toolbar-group{padding-top:var(--gdant-spacing-sm);border-top:1px solid var(--gdant-neutral-200)}.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-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.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,.gd-contract-template-designer__preview .gd-contract-template-page ul,.gd-contract-template-designer__preview .gd-contract-template-page ol,.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}.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__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 .gd-contract-template-designer__preview-page-shell{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-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}.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 (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__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,.gd-contract-template-designer__toolbar-extra{flex-wrap:wrap;row-gap:8px;display:flex}.gd-contract-template-designer__toolbar-section--main .gd-contract-template-designer__toolbar-group,.gd-contract-template-designer__toolbar-extra{flex-shrink:1}.gd-contract-template-designer__toolbar-section--main .gd-contract-template-designer__toolbar-group,.gd-contract-template-designer__toolbar-extra .gd-contract-template-designer__toolbar-group{flex-wrap:wrap}.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}}
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);height:760px;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.is-fullscreen{z-index:980;border-radius:0;width:100vw;height:100dvh;min-height:0;position:fixed;inset:0}.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;overflow:hidden}.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__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{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{gap:6px;max-height:126px;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{flex:auto;width:100%;min-width:0;height:100%;min-height:0;overflow:hidden auto}.gd-contract-template-designer__sidebar .gd-contract-template-designer__panel-stack>*{width:var(--gd-sidebar-expanded);flex:none}.gd-contract-template-designer__inspector .gd-contract-template-designer__panel-stack>*{width:var(--gd-inspector-expanded);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-extra{flex-wrap:nowrap;flex-shrink:0;align-items:center;gap:0;min-width:0;display:flex}.gd-contract-template-designer__toolbar-more-panel{z-index:var(--gdant-z-modal);gap:var(--gdant-spacing-sm);min-width:280px;max-width:min(420px,100vw - 24px);padding:var(--gdant-spacing-sm);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-0);box-shadow:var(--gdant-shadow-modal);display:grid;position:absolute;top:calc(100% + 4px);right:0}.gd-contract-template-designer__toolbar-more-panel .gd-contract-template-designer__toolbar-extra{flex-flow:column wrap;align-items:stretch}.gd-contract-template-designer__toolbar-more-panel .gd-contract-template-designer__toolbar-group{flex-wrap:wrap}.gd-contract-template-designer__toolbar-more-panel .gd-contract-template-designer__toolbar-group:before{display:none}.gd-contract-template-designer__toolbar-more-panel .gd-contract-template-designer__toolbar-group+.gd-contract-template-designer__toolbar-group{padding-top:var(--gdant-spacing-sm);border-top:1px solid var(--gdant-neutral-200)}.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-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.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__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 .gd-contract-template-designer__preview-page-shell{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-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}.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 (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__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,.gd-contract-template-designer__toolbar-extra{flex-wrap:wrap;row-gap:8px;display:flex}.gd-contract-template-designer__toolbar-section--main .gd-contract-template-designer__toolbar-group,.gd-contract-template-designer__toolbar-extra{flex-shrink:1}.gd-contract-template-designer__toolbar-section--main .gd-contract-template-designer__toolbar-group,.gd-contract-template-designer__toolbar-extra .gd-contract-template-designer__toolbar-group{flex-wrap:wrap}.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}}
@@ -1 +1 @@
1
- require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../node_modules/@ant-design/icons-vue/es/icons/LeftOutlined.cjs`),t=require(`../../../node_modules/@ant-design/icons-vue/es/icons/ReloadOutlined.cjs`),n=require(`../../../node_modules/@ant-design/icons-vue/es/icons/RightOutlined.cjs`),r=require(`./constants.cjs`),i=require(`./coordinates.cjs`),a=require(`./location-rules.cjs`),o=require(`./ContractSigningLocationCanvas.cjs`),s=require(`./ContractSigningLocationInspector.cjs`),c=require(`./ContractSigningLocationNavigator.cjs`),l=require(`./preview-requests.cjs`);let u=require(`vue`),d=require(`ant-design-vue`);var ee={class:`gd-ant-contract-signing-location__header`},te={class:`gd-ant-contract-signing-location__header-actions`},ne={class:`gd-ant-contract-signing-location__placement-count`},re={key:0,class:`gd-ant-contract-signing-location__error`,role:`alert`},ie=[`aria-label`,`aria-expanded`],ae={class:`gd-ant-contract-signing-location__panel-stack`},oe=[`aria-label`,`aria-expanded`],se={class:`gd-ant-contract-signing-location__panel-stack`},f=(0,u.defineComponent)({name:`ContractSigningLocation`,__name:`ContractSigningLocation`,props:{modelValue:{default:void 0},contractId:{default:``},dataProvider:{default:void 0},sealTypeOptions:{default:()=>r.CONTRACT_SIGNING_SEAL_TYPE_OPTIONS.map(e=>({...e}))},sizeProfile:{default:`default`},autoLoad:{type:Boolean,default:!0},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},minZoom:{default:.5},maxZoom:{default:1.5},zoom:{default:1},resizable:{type:Boolean,default:!1},sealMinSize:{default:50},sealMaxSize:{default:80},height:{default:void 0}},emits:[`update:modelValue`,`update:zoom`,`change`,`ready`,`file-change`,`page-change`,`submit`,`error`],setup(r,{expose:f,emit:ce}){let p=r,m=ce,h=(0,u.computed)(()=>i.resolveContractSigningSealSizeLimit(p.sealMinSize,p.sealMaxSize)),g=a.normalizeContractSigningLocationValue(p.modelValue??a.createContractSigningLocationValue(p.contractId),{sealSizeLimit:h.value}),_=(0,u.ref)(g),v=(0,u.shallowRef)(a.cloneContractSigningLocationValue(g)),y=(0,u.shallowRef)(g.files[0]?.fileId??``),b=(0,u.shallowRef)(g.files[0]?.pages[0]?.pageIndex??0),x=(0,u.shallowRef)(``),S=(0,u.shallowRef)(!1),C=(0,u.shallowRef)(``),w=(0,u.ref)([]),T=(0,u.ref)({}),E=(0,u.shallowRef)(V(p.zoom)),D=(0,u.ref)(null),O=(0,u.ref)(!1),k=(0,u.ref)(!1),A=0,j=!1,M,N=[],P=0,F=new l.ContractSigningPreviewRequests,I=(0,u.computed)(()=>p.readonly||p.disabled),L=(0,u.computed)(()=>_.value.files.length<=1),le=(0,u.computed)(()=>Re(p.height)),R=(0,u.computed)(()=>_.value.files.find(e=>e.fileId===y.value)??_.value.files[0]),z=(0,u.computed)(()=>R.value?.pages.find(e=>e.pageIndex===b.value)??R.value?.pages[0]),ue=(0,u.computed)(()=>{let e=R.value;return e?_.value.placements.filter(t=>t.fileId===e.fileId):[]}),B=(0,u.computed)(()=>_.value.placements.find(e=>e.id===x.value)),de=(0,u.computed)(()=>{let e=B.value;return e?a.findContractSigningPage(_.value,e.fileId,e.pageIndex)??z.value:z.value}),fe=(0,u.computed)(()=>w.value.filter(e=>e.endsWith(`:thumbnail`)).map(e=>e.slice(0,-10))),pe=(0,u.computed)(()=>Object.keys(T.value).filter(e=>e.endsWith(`:thumbnail`)).map(e=>e.slice(0,-10))),me=(0,u.computed)(()=>w.value.filter(e=>e.endsWith(`:preview`)).map(e=>e.slice(0,-8))),he=(0,u.computed)(()=>{let e={};return Object.entries(T.value).forEach(([t,n])=>{t.endsWith(`:preview`)&&(e[t.slice(0,-8)]=n)}),e});(0,u.watch)(()=>p.modelValue,e=>{if(!e)return;let t=a.normalizeContractSigningLocationValue(e,{sealSizeLimit:h.value});$(t)!==$(_.value)&&(Q(),_.value=t,v.value=a.cloneContractSigningLocationValue(t),q(),(0,u.nextTick)(()=>D.value?.scrollToPage(b.value)))},{deep:!0}),(0,u.watch)(h,()=>{$(a.normalizeContractSigningLocationValue(_.value,{sealSizeLimit:h.value}))!==$(_.value)&&H(_.value)}),(0,u.watch)(()=>p.zoom,e=>{E.value=V(e)}),(0,u.watch)(()=>[p.contractId,p.dataProvider,p.autoLoad],([e,t,n],r)=>{!n||!t||!e||(!r||e!==r[0]||t!==r[1])&&U()},{immediate:!0}),(0,u.onBeforeUnmount)(()=>{j=!0,A+=1,Z(),Q()});function V(e){let t=Math.min(p.minZoom,p.maxZoom),n=Math.max(p.minZoom,p.maxZoom);return i.clampContractSigningZoom(e,t,n)}function ge(e){let t=V(e);E.value=t,m(`update:zoom`,t)}function _e(){return D.value?.fitWidth()??E.value}function H(e,t={}){_.value=a.normalizeContractSigningLocationValue(e,{sealSizeLimit:h.value}),t.clearError!==!1&&(C.value=``),q();let n=a.cloneContractSigningLocationValue(_.value);return m(`update:modelValue`,n),m(`change`,n),n}async function U(){let e=String(p.contractId||_.value.contractId||``).trim();if(!p.dataProvider)return J({code:`CONTRACT_PROVIDER_MISSING`,message:`未配置合同数据提供器,请由宿主传入文件数据`}),!1;if(!e)return J({code:`CONTRACT_ID_MISSING`,message:`缺少用于加载合同的 PaaS contractId`}),!1;let t=++A;Q(),S.value=!0,C.value=``;try{let n=await p.dataProvider.loadContract({contractId:e});if(j||t!==A)return!1;let r=a.normalizeContractSigningProviderValue(n,i.normalizeContractSigningCoordinateScale(p.dataProvider.coordinateScale)),o=a.normalizeContractSigningLocationValue({...r,contractId:e,placements:r.placements.length?r.placements:_.value.contractId===e?_.value.placements:[]},{sealSizeLimit:h.value});_.value=o,v.value=a.cloneContractSigningLocationValue(o),x.value=``,q();let s=a.cloneContractSigningLocationValue(o);return m(`update:modelValue`,s),m(`change`,s),m(`ready`,s),ve(),(0,u.nextTick)(()=>D.value?.scrollToPage(b.value)),s}catch(e){return j||t!==A||J(Y(e,`CONTRACT_LOAD_FAILED`,`合同加载失败,请检查授权后重试`)),!1}finally{!j&&t===A&&(S.value=!1)}}async function ve(){p.dataProvider?.loadPagePreview&&await Promise.allSettled(_.value.files.map(e=>{let t=a.getContractSigningHomePage(e.pages);return t&&!t.thumbnailUrl?W(e.fileId,t.pageIndex,!0):Promise.resolve()}))}async function W(e,t,n){let r=p.dataProvider?.loadPagePreview,o=a.findContractSigningPage(_.value,e,t),s=X(e,t,n);if(!r||!o||w.value.includes(s))return;Ne(s),w.value=[...w.value,s];let c=F.start(s);try{let o=await r({contractId:_.value.contractId||p.contractId,fileId:e,pageIndex:t,thumbnail:n,signal:c.signal});if(j||!F.isCurrent(s,c)||!a.findContractSigningPage(_.value,e,t))return;let l=a.findContractSigningPage(_.value,e,t),u=a.resolveContractSigningPreviewPageSize(l,o,i.normalizeContractSigningCoordinateScale(p.dataProvider?.coordinateScale),n),d=_.value.files.map(r=>r.fileId===e?{...r,pages:r.pages.map(e=>e.pageIndex===t?{...e,...u||{},...n?{thumbnailUrl:o.url}:{previewUrl:o.url}}:e)}:r);H({..._.value,files:d},{clearError:!1})}catch(n){if(!F.isCurrent(s,c)||Pe(n))return;let r=Y(n,`CONTRACT_PREVIEW_FAILED`,`合同页面预览加载失败,可切换页面或重试`,{fileId:e,pageIndex:t});m(`error`,r),T.value={...T.value,[s]:r.message}}finally{F.finish(s,c)&&(w.value=w.value.filter(e=>e!==s))}}function ye(e){if(e===y.value)return;let t=y.value;Z(),t&&(Q(e=>e.startsWith(`${t}:`)&&e.endsWith(`:preview`)),N=N.filter(t=>t.fileId===e)),y.value=e;let n=_.value.files.find(t=>t.fileId===e);b.value=a.getContractSigningHomePage(n?.pages)?.pageIndex??0,x.value=``,m(`file-change`,e),m(`page-change`,e,b.value),(0,u.nextTick)(()=>D.value?.scrollToPage(b.value))}function be(e){b.value=e}function xe(e){b.value!==e&&(b.value=e),m(`page-change`,y.value,e)}function Se(e){Z();let t=y.value;M=setTimeout(()=>{M=void 0,y.value===t&&Ce(t,e)},150)}function Ce(e,t){let n=_.value.files.find(t=>t.fileId===e);!n||e!==y.value||(t.forEach(e=>{let t=n.pages.find(t=>t.pageIndex===e);!t||t.previewUrl||w.value.includes(X(n.fileId,e,!1))||N.some(t=>t.fileId===n.fileId&&t.pageIndex===e)||N.push({fileId:n.fileId,pageIndex:e})}),we())}async function we(){let e=y.value;for(N=N.filter(t=>t.fileId===e);P<3&&N.length;){let t=N.shift();if(!t||t.fileId!==e)continue;let n=a.findContractSigningPage(_.value,t.fileId,t.pageIndex);!n||n.previewUrl||w.value.includes(X(t.fileId,t.pageIndex,!1))||(P+=1,W(t.fileId,t.pageIndex,!1).finally(()=>{P=Math.max(0,P-1),we()}))}}function Te(e){let t=_.value.placements.find(t=>t.id===e);t&&(t.fileId!==y.value&&ye(t.fileId),x.value=e,(0,u.nextTick)(()=>D.value?.scrollToPlacement(e)))}function G(e,t={}){if(I.value)return;let n=t.fileId??R.value?.fileId,r=t.pageIndex??z.value?.pageIndex;if(!n||r===void 0)return;let i=a.findContractSigningPage(_.value,n,r);if(!i||!a.isContractSigningPageUsable(i)){J({code:`CONTRACT_PAGE_SIZE_INVALID`,message:`当前页面缺少有效的原始宽高,暂时不能添加签署位置`,fileId:n,pageIndex:r});return}let o=p.sealTypeOptions.find(e=>String(e.value).trim())?.value;if(e===`seal`&&!o){J({code:`CONTRACT_SEAL_TYPES_MISSING`,message:`当前未配置可用的印章类型,暂时不能添加印章位置`,fileId:n,pageIndex:r});return}let s=a.createContractSigningPlacement(e,n,i,{signLeft:t.signLeft,signTop:t.signTop,sizeProfile:p.sizeProfile,sealSizeLimit:h.value,...e===`seal`?{sealType:[String(o)]}:{}});return H({..._.value,placements:[..._.value.placements,s]}),y.value=n,b.value=r,x.value=s.id,Ie(s)}function Ee(e,t){I.value||H({..._.value,placements:_.value.placements.map(n=>{if(n.id!==e)return n;let r=t.pageIndex===void 0?n.pageIndex:t.pageIndex,i=a.findContractSigningPage(_.value,n.fileId,r);return a.patchContractSigningPlacement(n,t,i,{sealSizeLimit:h.value})})})}function De(){let e=B.value;if(!e||I.value)return;let t=a.findContractSigningPage(_.value,e.fileId,e.pageIndex);if(!t)return;let n=i.clampContractSigningPlacement({...Ie(e),id:Le(),signLeft:e.signLeft+16,signTop:e.signTop+16},t,{sealSizeLimit:h.value});H({..._.value,placements:[..._.value.placements,n]}),x.value=n.id}function K(e){I.value||(H({..._.value,placements:_.value.placements.filter(t=>t.id!==e)}),x.value===e&&(x.value=``))}function Oe(){return a.validateContractSigningLocationValue(_.value,{allowedSealTypes:p.sealTypeOptions.map(e=>e.value)})}function ke(){return a.cloneContractSigningLocationValue(_.value)}function Ae(){return a.buildContractSigningLocationOutput(ke(),{allowedSealTypes:p.sealTypeOptions.map(e=>e.value)})}function je(){try{let e=Ae();return C.value=``,m(`submit`,e),e}catch(e){return J(e instanceof a.ContractSigningLocationBuildError?{...e.errors[0],cause:e}:Y(e,`CONTRACT_SIGNING_LOCATION_INVALID`,`指定签署位置数据不完整`)),!1}}function Me(){let e=H(a.cloneContractSigningLocationValue(v.value));return x.value=``,q(!0),(0,u.nextTick)(()=>D.value?.scrollToPage(b.value)),e}function q(e=!1){let t=(e?void 0:_.value.files.find(e=>e.fileId===y.value))??_.value.files[0];y.value=t?.fileId??``,b.value=((e?void 0:t?.pages.find(e=>e.pageIndex===b.value))??t?.pages[0])?.pageIndex??0,_.value.placements.some(e=>e.id===x.value)||(x.value=``)}function J(e){C.value=e.message,m(`error`,e)}function Y(e,t,n,r={}){let i=typeof e==`object`&&e&&`status`in e?Number(e.status):void 0;return{code:t,message:i===401||i===403?`授权已失效,请重新获取签署凭证`:e instanceof Error&&e.message?e.message:n,...r,cause:e}}function X(e,t,n){return`${e}:${t}:${n?`thumbnail`:`preview`}`}function Ne(e){if(!(e in T.value))return;let t={...T.value};delete t[e],T.value=t}function Z(){M&&=(clearTimeout(M),void 0)}function Q(e){let t=e??(()=>!0),n=new Set(F.abort(t));n.size&&(w.value=w.value.filter(e=>!n.has(e))),e||(N=[])}function Pe(e){return!!(e&&typeof e==`object`&&`cancelled`in e&&e.cancelled)||e instanceof DOMException&&e.name===`AbortError`}function Fe(e){let t=R.value;t&&W(t.fileId,e,!1)}function Ie(e){return{...e,sealType:e.sealType?[...e.sealType]:void 0}}function $(e){return JSON.stringify(e)}function Le(){return typeof crypto<`u`&&`randomUUID`in crypto?`contract-signing-placement-${crypto.randomUUID()}`:`contract-signing-placement-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function Re(e){if(typeof e==`number`&&Number.isFinite(e)&&e>0)return{"--gd-ant-contract-signing-location-height":`${e}px`};if(typeof e==`string`&&e.trim())return{"--gd-ant-contract-signing-location-height":e.trim()}}return f({load:U,validate:Oe,getValue:ke,getOutput:Ae,submit:je,reset:Me,addPlacement:G,removePlacement:K,fitWidth:_e}),(i,a)=>((0,u.openBlock)(),(0,u.createElementBlock)(`section`,{class:(0,u.normalizeClass)([`gd-ant-contract-signing-location`,{"is-readonly":r.readonly,"is-disabled":r.disabled}]),style:(0,u.normalizeStyle)(le.value)},[(0,u.createElementVNode)(`header`,ee,[a[9]||=(0,u.createElementVNode)(`div`,{class:`gd-ant-contract-signing-location__title`},[(0,u.createElementVNode)(`span`,{class:`gd-ant-contract-signing-location__title-bar`,"aria-hidden":`true`}),(0,u.createElementVNode)(`div`,null,[(0,u.createElementVNode)(`strong`,null,`指定合同签署位置`)])],-1),(0,u.createElementVNode)(`div`,te,[(0,u.createElementVNode)(`span`,ne,(0,u.toDisplayString)(_.value.placements.length)+` 个位置`,1),r.dataProvider?((0,u.openBlock)(),(0,u.createBlock)((0,u.unref)(d.Button),{key:0,loading:S.value,onClick:U},{default:(0,u.withCtx)(()=>[(0,u.createVNode)((0,u.unref)(t.default),{"aria-hidden":`true`}),a[6]||=(0,u.createTextVNode)(` 重新加载 `,-1)]),_:1},8,[`loading`])):(0,u.createCommentVNode)(``,!0),(0,u.createVNode)((0,u.unref)(d.Button),{disabled:I.value,onClick:Me},{default:(0,u.withCtx)(()=>[...a[7]||=[(0,u.createTextVNode)(`重置`,-1)]]),_:1},8,[`disabled`]),(0,u.createVNode)((0,u.unref)(d.Button),{type:`primary`,loading:S.value,disabled:r.disabled,onClick:je},{default:(0,u.withCtx)(()=>[...a[8]||=[(0,u.createTextVNode)(`确认并生成规则`,-1)]]),_:1},8,[`loading`,`disabled`])])]),C.value?((0,u.openBlock)(),(0,u.createElementBlock)(`div`,re,[(0,u.createElementVNode)(`span`,null,(0,u.toDisplayString)(C.value),1),r.dataProvider&&r.contractId?((0,u.openBlock)(),(0,u.createBlock)((0,u.unref)(d.Button),{key:0,type:`link`,size:`small`,onClick:U},{default:(0,u.withCtx)(()=>[...a[10]||=[(0,u.createTextVNode)(`重试`,-1)]]),_:1})):(0,u.createCommentVNode)(``,!0)])):(0,u.createCommentVNode)(``,!0),(0,u.createElementVNode)(`div`,{class:(0,u.normalizeClass)([`gd-ant-contract-signing-location__body`,{"is-single-file":L.value}])},[L.value?(0,u.createCommentVNode)(``,!0):((0,u.openBlock)(),(0,u.createElementBlock)(`div`,{key:0,class:(0,u.normalizeClass)([`gd-ant-contract-signing-location__navigator-wrap`,{"is-collapsed":k.value}])},[(0,u.createVNode)((0,u.unref)(d.Tooltip),{title:k.value?`展开页面栏`:`收起页面栏`},{default:(0,u.withCtx)(()=>[(0,u.createElementVNode)(`button`,{type:`button`,class:`gd-ant-contract-signing-location__panel-handle`,"aria-label":k.value?`展开页面栏`:`收起页面栏`,"aria-expanded":!k.value,onClick:a[0]||=e=>k.value=!k.value},[k.value?((0,u.openBlock)(),(0,u.createBlock)((0,u.unref)(n.default),{key:0,"aria-hidden":`true`})):((0,u.openBlock)(),(0,u.createBlock)((0,u.unref)(e.default),{key:1,"aria-hidden":`true`}))],8,ie)]),_:1},8,[`title`]),(0,u.createElementVNode)(`div`,ae,[(0,u.createVNode)(c.default,{files:_.value.files,"active-file-id":y.value,"loading-preview-keys":fe.value,"error-preview-keys":pe.value,onSelect:ye},null,8,[`files`,`active-file-id`,`loading-preview-keys`,`error-preview-keys`])])],2)),(0,u.createVNode)(o.default,{ref_key:`canvasRef`,ref:D,file:R.value,pages:R.value?.pages??[],placements:ue.value,"selected-placement-id":x.value,readonly:I.value,resizable:r.resizable,"seal-size-limit":h.value,zoom:E.value,"preview-loading-keys":me.value,"preview-error-map":he.value,"active-page-index":b.value,"min-zoom":r.minZoom,"max-zoom":r.maxZoom,onSelect:a[1]||=e=>x.value=e,onRetry:Fe,onAdd:a[2]||=(e,t,n,r)=>G(e,{signLeft:t,signTop:n,pageIndex:r}),onUpdate:a[3]||=e=>Ee(e.id,e),onRemove:K,onVisiblePages:Se,onViewPage:be,onPageChange:xe,onZoomChange:ge},null,8,[`file`,`pages`,`placements`,`selected-placement-id`,`readonly`,`resizable`,`seal-size-limit`,`zoom`,`preview-loading-keys`,`preview-error-map`,`active-page-index`,`min-zoom`,`max-zoom`]),(0,u.createElementVNode)(`div`,{class:(0,u.normalizeClass)([`gd-ant-contract-signing-location__inspector-wrap`,{"is-collapsed":O.value}])},[(0,u.createVNode)((0,u.unref)(d.Tooltip),{title:O.value?`展开属性栏`:`收起属性栏`},{default:(0,u.withCtx)(()=>[(0,u.createElementVNode)(`button`,{type:`button`,class:`gd-ant-contract-signing-location__panel-handle`,"aria-label":O.value?`展开属性栏`:`收起属性栏`,"aria-expanded":!O.value,onClick:a[4]||=e=>O.value=!O.value},[O.value?((0,u.openBlock)(),(0,u.createBlock)((0,u.unref)(e.default),{key:0,"aria-hidden":`true`})):((0,u.openBlock)(),(0,u.createBlock)((0,u.unref)(n.default),{key:1,"aria-hidden":`true`}))],8,oe)]),_:1},8,[`title`]),(0,u.createElementVNode)(`div`,se,[(0,u.createVNode)(s.default,{placement:B.value,page:de.value,pages:R.value?.pages??[],placements:ue.value,readonly:I.value,resizable:r.resizable,"seal-size-limit":h.value,"seal-type-options":r.sealTypeOptions,"size-profile":r.sizeProfile,onAdd:G,onUpdate:a[5]||=e=>B.value&&Ee(B.value.id,e),onDuplicate:De,onRemove:K,onLocate:Te},null,8,[`placement`,`page`,`pages`,`placements`,`readonly`,`resizable`,`seal-size-limit`,`seal-type-options`,`size-profile`])])],2)],2)],6))}});exports.default=f;
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../node_modules/@ant-design/icons-vue/es/icons/LeftOutlined.cjs`),t=require(`../../../node_modules/@ant-design/icons-vue/es/icons/ReloadOutlined.cjs`),n=require(`../../../node_modules/@ant-design/icons-vue/es/icons/RightOutlined.cjs`),r=require(`./constants.cjs`),i=require(`./coordinates.cjs`),a=require(`./location-rules.cjs`),o=require(`./ContractSigningLocationCanvas.cjs`),s=require(`./ContractSigningLocationInspector.cjs`),c=require(`./ContractSigningLocationNavigator.cjs`),l=require(`./preview-requests.cjs`);let u=require(`vue`),d=require(`ant-design-vue`);var ee={class:`gd-ant-contract-signing-location__header`},te={class:`gd-ant-contract-signing-location__header-actions`},ne={class:`gd-ant-contract-signing-location__placement-count`},re={key:0,class:`gd-ant-contract-signing-location__error`,role:`alert`},ie=[`aria-label`,`aria-expanded`],ae={class:`gd-ant-contract-signing-location__panel-stack`},oe=[`aria-label`,`aria-expanded`],se={class:`gd-ant-contract-signing-location__panel-stack`},f=(0,u.defineComponent)({name:`ContractSigningLocation`,__name:`ContractSigningLocation`,props:{modelValue:{default:void 0},contractId:{default:``},dataProvider:{default:void 0},sealTypeOptions:{default:()=>r.CONTRACT_SIGNING_SEAL_TYPE_OPTIONS.map(e=>({...e}))},sizeProfile:{default:`default`},autoLoad:{type:Boolean,default:!0},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},minZoom:{default:.5},maxZoom:{default:1.5},zoom:{default:1},resizable:{type:Boolean,default:!1},sealMinSize:{default:50},sealMaxSize:{default:80},height:{default:void 0},showSubmitButton:{type:Boolean,default:!0}},emits:[`update:modelValue`,`update:zoom`,`change`,`ready`,`file-change`,`page-change`,`submit`,`error`],setup(r,{expose:f,emit:ce}){let p=r,m=ce,h=(0,u.computed)(()=>i.resolveContractSigningSealSizeLimit(p.sealMinSize,p.sealMaxSize)),g=a.normalizeContractSigningLocationValue(p.modelValue??a.createContractSigningLocationValue(p.contractId),{sealSizeLimit:h.value}),_=(0,u.ref)(g),v=(0,u.shallowRef)(a.cloneContractSigningLocationValue(g)),y=(0,u.shallowRef)(g.files[0]?.fileId??``),b=(0,u.shallowRef)(g.files[0]?.pages[0]?.pageIndex??0),x=(0,u.shallowRef)(``),S=(0,u.shallowRef)(!1),C=(0,u.shallowRef)(``),w=(0,u.ref)([]),T=(0,u.ref)({}),E=(0,u.shallowRef)(V(p.zoom)),D=(0,u.ref)(null),O=(0,u.ref)(!1),k=(0,u.ref)(!1),A=0,j=!1,M,N=[],P=0,F=new l.ContractSigningPreviewRequests,I=(0,u.computed)(()=>p.readonly||p.disabled),L=(0,u.computed)(()=>_.value.files.length<=1),le=(0,u.computed)(()=>Re(p.height)),R=(0,u.computed)(()=>_.value.files.find(e=>e.fileId===y.value)??_.value.files[0]),z=(0,u.computed)(()=>R.value?.pages.find(e=>e.pageIndex===b.value)??R.value?.pages[0]),ue=(0,u.computed)(()=>{let e=R.value;return e?_.value.placements.filter(t=>t.fileId===e.fileId):[]}),B=(0,u.computed)(()=>_.value.placements.find(e=>e.id===x.value)),de=(0,u.computed)(()=>{let e=B.value;return e?a.findContractSigningPage(_.value,e.fileId,e.pageIndex)??z.value:z.value}),fe=(0,u.computed)(()=>w.value.filter(e=>e.endsWith(`:thumbnail`)).map(e=>e.slice(0,-10))),pe=(0,u.computed)(()=>Object.keys(T.value).filter(e=>e.endsWith(`:thumbnail`)).map(e=>e.slice(0,-10))),me=(0,u.computed)(()=>w.value.filter(e=>e.endsWith(`:preview`)).map(e=>e.slice(0,-8))),he=(0,u.computed)(()=>{let e={};return Object.entries(T.value).forEach(([t,n])=>{t.endsWith(`:preview`)&&(e[t.slice(0,-8)]=n)}),e});(0,u.watch)(()=>p.modelValue,e=>{if(!e)return;let t=a.normalizeContractSigningLocationValue(e,{sealSizeLimit:h.value});$(t)!==$(_.value)&&(Q(),_.value=t,v.value=a.cloneContractSigningLocationValue(t),q(),(0,u.nextTick)(()=>D.value?.scrollToPage(b.value)))},{deep:!0}),(0,u.watch)(h,()=>{$(a.normalizeContractSigningLocationValue(_.value,{sealSizeLimit:h.value}))!==$(_.value)&&H(_.value)}),(0,u.watch)(()=>p.zoom,e=>{E.value=V(e)}),(0,u.watch)(()=>[p.contractId,p.dataProvider,p.autoLoad],([e,t,n],r)=>{!n||!t||!e||(!r||e!==r[0]||t!==r[1])&&U()},{immediate:!0}),(0,u.onBeforeUnmount)(()=>{j=!0,A+=1,Z(),Q()});function V(e){let t=Math.min(p.minZoom,p.maxZoom),n=Math.max(p.minZoom,p.maxZoom);return i.clampContractSigningZoom(e,t,n)}function ge(e){let t=V(e);E.value=t,m(`update:zoom`,t)}function _e(){return D.value?.fitWidth()??E.value}function H(e,t={}){_.value=a.normalizeContractSigningLocationValue(e,{sealSizeLimit:h.value}),t.clearError!==!1&&(C.value=``),q();let n=a.cloneContractSigningLocationValue(_.value);return m(`update:modelValue`,n),m(`change`,n),n}async function U(){let e=String(p.contractId||_.value.contractId||``).trim();if(!p.dataProvider)return J({code:`CONTRACT_PROVIDER_MISSING`,message:`未配置合同数据提供器,请由宿主传入文件数据`}),!1;if(!e)return J({code:`CONTRACT_ID_MISSING`,message:`缺少用于加载合同的 PaaS contractId`}),!1;let t=++A;Q(),S.value=!0,C.value=``;try{let n=await p.dataProvider.loadContract({contractId:e});if(j||t!==A)return!1;let r=a.normalizeContractSigningProviderValue(n,i.normalizeContractSigningCoordinateScale(p.dataProvider.coordinateScale)),o=a.normalizeContractSigningLocationValue({...r,contractId:e,placements:r.placements.length?r.placements:_.value.contractId===e?_.value.placements:[]},{sealSizeLimit:h.value});_.value=o,v.value=a.cloneContractSigningLocationValue(o),x.value=``,q();let s=a.cloneContractSigningLocationValue(o);return m(`update:modelValue`,s),m(`change`,s),m(`ready`,s),ve(),(0,u.nextTick)(()=>D.value?.scrollToPage(b.value)),s}catch(e){return j||t!==A||J(Y(e,`CONTRACT_LOAD_FAILED`,`合同加载失败,请检查授权后重试`)),!1}finally{!j&&t===A&&(S.value=!1)}}async function ve(){p.dataProvider?.loadPagePreview&&await Promise.allSettled(_.value.files.map(e=>{let t=a.getContractSigningHomePage(e.pages);return t&&!t.thumbnailUrl?W(e.fileId,t.pageIndex,!0):Promise.resolve()}))}async function W(e,t,n){let r=p.dataProvider?.loadPagePreview,o=a.findContractSigningPage(_.value,e,t),s=X(e,t,n);if(!r||!o||w.value.includes(s))return;Ne(s),w.value=[...w.value,s];let c=F.start(s);try{let o=await r({contractId:_.value.contractId||p.contractId,fileId:e,pageIndex:t,thumbnail:n,signal:c.signal});if(j||!F.isCurrent(s,c)||!a.findContractSigningPage(_.value,e,t))return;let l=a.findContractSigningPage(_.value,e,t),u=a.resolveContractSigningPreviewPageSize(l,o,i.normalizeContractSigningCoordinateScale(p.dataProvider?.coordinateScale),n),d=_.value.files.map(r=>r.fileId===e?{...r,pages:r.pages.map(e=>e.pageIndex===t?{...e,...u||{},...n?{thumbnailUrl:o.url}:{previewUrl:o.url}}:e)}:r);H({..._.value,files:d},{clearError:!1})}catch(n){if(!F.isCurrent(s,c)||Pe(n))return;let r=Y(n,`CONTRACT_PREVIEW_FAILED`,`合同页面预览加载失败,可切换页面或重试`,{fileId:e,pageIndex:t});m(`error`,r),T.value={...T.value,[s]:r.message}}finally{F.finish(s,c)&&(w.value=w.value.filter(e=>e!==s))}}function ye(e){if(e===y.value)return;let t=y.value;Z(),t&&(Q(e=>e.startsWith(`${t}:`)&&e.endsWith(`:preview`)),N=N.filter(t=>t.fileId===e)),y.value=e;let n=_.value.files.find(t=>t.fileId===e);b.value=a.getContractSigningHomePage(n?.pages)?.pageIndex??0,x.value=``,m(`file-change`,e),m(`page-change`,e,b.value),(0,u.nextTick)(()=>D.value?.scrollToPage(b.value))}function be(e){b.value=e}function xe(e){b.value!==e&&(b.value=e),m(`page-change`,y.value,e)}function Se(e){Z();let t=y.value;M=setTimeout(()=>{M=void 0,y.value===t&&Ce(t,e)},150)}function Ce(e,t){let n=_.value.files.find(t=>t.fileId===e);!n||e!==y.value||(t.forEach(e=>{let t=n.pages.find(t=>t.pageIndex===e);!t||t.previewUrl||w.value.includes(X(n.fileId,e,!1))||N.some(t=>t.fileId===n.fileId&&t.pageIndex===e)||N.push({fileId:n.fileId,pageIndex:e})}),we())}async function we(){let e=y.value;for(N=N.filter(t=>t.fileId===e);P<3&&N.length;){let t=N.shift();if(!t||t.fileId!==e)continue;let n=a.findContractSigningPage(_.value,t.fileId,t.pageIndex);!n||n.previewUrl||w.value.includes(X(t.fileId,t.pageIndex,!1))||(P+=1,W(t.fileId,t.pageIndex,!1).finally(()=>{P=Math.max(0,P-1),we()}))}}function Te(e){let t=_.value.placements.find(t=>t.id===e);t&&(t.fileId!==y.value&&ye(t.fileId),x.value=e,(0,u.nextTick)(()=>D.value?.scrollToPlacement(e)))}function G(e,t={}){if(I.value)return;let n=t.fileId??R.value?.fileId,r=t.pageIndex??z.value?.pageIndex;if(!n||r===void 0)return;let i=a.findContractSigningPage(_.value,n,r);if(!i||!a.isContractSigningPageUsable(i)){J({code:`CONTRACT_PAGE_SIZE_INVALID`,message:`当前页面缺少有效的原始宽高,暂时不能添加签署位置`,fileId:n,pageIndex:r});return}let o=p.sealTypeOptions.find(e=>String(e.value).trim())?.value;if(e===`seal`&&!o){J({code:`CONTRACT_SEAL_TYPES_MISSING`,message:`当前未配置可用的印章类型,暂时不能添加印章位置`,fileId:n,pageIndex:r});return}let s=a.createContractSigningPlacement(e,n,i,{signLeft:t.signLeft,signTop:t.signTop,sizeProfile:p.sizeProfile,sealSizeLimit:h.value,...e===`seal`?{sealType:[String(o)]}:{}});return H({..._.value,placements:[..._.value.placements,s]}),y.value=n,b.value=r,x.value=s.id,Ie(s)}function Ee(e,t){I.value||H({..._.value,placements:_.value.placements.map(n=>{if(n.id!==e)return n;let r=t.pageIndex===void 0?n.pageIndex:t.pageIndex,i=a.findContractSigningPage(_.value,n.fileId,r);return a.patchContractSigningPlacement(n,t,i,{sealSizeLimit:h.value})})})}function De(){let e=B.value;if(!e||I.value)return;let t=a.findContractSigningPage(_.value,e.fileId,e.pageIndex);if(!t)return;let n=i.clampContractSigningPlacement({...Ie(e),id:Le(),signLeft:e.signLeft+16,signTop:e.signTop+16},t,{sealSizeLimit:h.value});H({..._.value,placements:[..._.value.placements,n]}),x.value=n.id}function K(e){I.value||(H({..._.value,placements:_.value.placements.filter(t=>t.id!==e)}),x.value===e&&(x.value=``))}function Oe(){return a.validateContractSigningLocationValue(_.value,{allowedSealTypes:p.sealTypeOptions.map(e=>e.value)})}function ke(){return a.cloneContractSigningLocationValue(_.value)}function Ae(){return a.buildContractSigningLocationOutput(ke(),{allowedSealTypes:p.sealTypeOptions.map(e=>e.value)})}function je(){try{let e=Ae();return C.value=``,m(`submit`,e),e}catch(e){return J(e instanceof a.ContractSigningLocationBuildError?{...e.errors[0],cause:e}:Y(e,`CONTRACT_SIGNING_LOCATION_INVALID`,`指定签署位置数据不完整`)),!1}}function Me(){let e=H(a.cloneContractSigningLocationValue(v.value));return x.value=``,q(!0),(0,u.nextTick)(()=>D.value?.scrollToPage(b.value)),e}function q(e=!1){let t=(e?void 0:_.value.files.find(e=>e.fileId===y.value))??_.value.files[0];y.value=t?.fileId??``,b.value=((e?void 0:t?.pages.find(e=>e.pageIndex===b.value))??t?.pages[0])?.pageIndex??0,_.value.placements.some(e=>e.id===x.value)||(x.value=``)}function J(e){C.value=e.message,m(`error`,e)}function Y(e,t,n,r={}){let i=typeof e==`object`&&e&&`status`in e?Number(e.status):void 0;return{code:t,message:i===401||i===403?`授权已失效,请重新获取签署凭证`:e instanceof Error&&e.message?e.message:n,...r,cause:e}}function X(e,t,n){return`${e}:${t}:${n?`thumbnail`:`preview`}`}function Ne(e){if(!(e in T.value))return;let t={...T.value};delete t[e],T.value=t}function Z(){M&&=(clearTimeout(M),void 0)}function Q(e){let t=e??(()=>!0),n=new Set(F.abort(t));n.size&&(w.value=w.value.filter(e=>!n.has(e))),e||(N=[])}function Pe(e){return!!(e&&typeof e==`object`&&`cancelled`in e&&e.cancelled)||e instanceof DOMException&&e.name===`AbortError`}function Fe(e){let t=R.value;t&&W(t.fileId,e,!1)}function Ie(e){return{...e,sealType:e.sealType?[...e.sealType]:void 0}}function $(e){return JSON.stringify(e)}function Le(){return typeof crypto<`u`&&`randomUUID`in crypto?`contract-signing-placement-${crypto.randomUUID()}`:`contract-signing-placement-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function Re(e){if(typeof e==`number`&&Number.isFinite(e)&&e>0)return{"--gd-ant-contract-signing-location-height":`${e}px`};if(typeof e==`string`&&e.trim())return{"--gd-ant-contract-signing-location-height":e.trim()}}return f({load:U,validate:Oe,getValue:ke,getOutput:Ae,submit:je,reset:Me,addPlacement:G,removePlacement:K,fitWidth:_e}),(i,a)=>((0,u.openBlock)(),(0,u.createElementBlock)(`section`,{class:(0,u.normalizeClass)([`gd-ant-contract-signing-location`,{"is-readonly":r.readonly,"is-disabled":r.disabled}]),style:(0,u.normalizeStyle)(le.value)},[(0,u.createElementVNode)(`header`,ee,[a[9]||=(0,u.createElementVNode)(`div`,{class:`gd-ant-contract-signing-location__title`},[(0,u.createElementVNode)(`span`,{class:`gd-ant-contract-signing-location__title-bar`,"aria-hidden":`true`}),(0,u.createElementVNode)(`div`,null,[(0,u.createElementVNode)(`strong`,null,`指定合同签署位置`)])],-1),(0,u.createElementVNode)(`div`,te,[(0,u.createElementVNode)(`span`,ne,(0,u.toDisplayString)(_.value.placements.length)+` 个位置`,1),r.dataProvider?((0,u.openBlock)(),(0,u.createBlock)((0,u.unref)(d.Button),{key:0,loading:S.value,onClick:U},{default:(0,u.withCtx)(()=>[(0,u.createVNode)((0,u.unref)(t.default),{"aria-hidden":`true`}),a[6]||=(0,u.createTextVNode)(` 重新加载 `,-1)]),_:1},8,[`loading`])):(0,u.createCommentVNode)(``,!0),(0,u.createVNode)((0,u.unref)(d.Button),{disabled:I.value,onClick:Me},{default:(0,u.withCtx)(()=>[...a[7]||=[(0,u.createTextVNode)(`重置`,-1)]]),_:1},8,[`disabled`]),r.showSubmitButton?((0,u.openBlock)(),(0,u.createBlock)((0,u.unref)(d.Button),{key:1,type:`primary`,loading:S.value,disabled:r.disabled,onClick:je},{default:(0,u.withCtx)(()=>[...a[8]||=[(0,u.createTextVNode)(`确认并生成规则`,-1)]]),_:1},8,[`loading`,`disabled`])):(0,u.createCommentVNode)(``,!0)])]),C.value?((0,u.openBlock)(),(0,u.createElementBlock)(`div`,re,[(0,u.createElementVNode)(`span`,null,(0,u.toDisplayString)(C.value),1),r.dataProvider&&r.contractId?((0,u.openBlock)(),(0,u.createBlock)((0,u.unref)(d.Button),{key:0,type:`link`,size:`small`,onClick:U},{default:(0,u.withCtx)(()=>[...a[10]||=[(0,u.createTextVNode)(`重试`,-1)]]),_:1})):(0,u.createCommentVNode)(``,!0)])):(0,u.createCommentVNode)(``,!0),(0,u.createElementVNode)(`div`,{class:(0,u.normalizeClass)([`gd-ant-contract-signing-location__body`,{"is-single-file":L.value}])},[L.value?(0,u.createCommentVNode)(``,!0):((0,u.openBlock)(),(0,u.createElementBlock)(`div`,{key:0,class:(0,u.normalizeClass)([`gd-ant-contract-signing-location__navigator-wrap`,{"is-collapsed":k.value}])},[(0,u.createVNode)((0,u.unref)(d.Tooltip),{title:k.value?`展开页面栏`:`收起页面栏`},{default:(0,u.withCtx)(()=>[(0,u.createElementVNode)(`button`,{type:`button`,class:`gd-ant-contract-signing-location__panel-handle`,"aria-label":k.value?`展开页面栏`:`收起页面栏`,"aria-expanded":!k.value,onClick:a[0]||=e=>k.value=!k.value},[k.value?((0,u.openBlock)(),(0,u.createBlock)((0,u.unref)(n.default),{key:0,"aria-hidden":`true`})):((0,u.openBlock)(),(0,u.createBlock)((0,u.unref)(e.default),{key:1,"aria-hidden":`true`}))],8,ie)]),_:1},8,[`title`]),(0,u.createElementVNode)(`div`,ae,[(0,u.createVNode)(c.default,{files:_.value.files,"active-file-id":y.value,"loading-preview-keys":fe.value,"error-preview-keys":pe.value,onSelect:ye},null,8,[`files`,`active-file-id`,`loading-preview-keys`,`error-preview-keys`])])],2)),(0,u.createVNode)(o.default,{ref_key:`canvasRef`,ref:D,file:R.value,pages:R.value?.pages??[],placements:ue.value,"selected-placement-id":x.value,readonly:I.value,resizable:r.resizable,"seal-size-limit":h.value,zoom:E.value,"preview-loading-keys":me.value,"preview-error-map":he.value,"active-page-index":b.value,"min-zoom":r.minZoom,"max-zoom":r.maxZoom,onSelect:a[1]||=e=>x.value=e,onRetry:Fe,onAdd:a[2]||=(e,t,n,r)=>G(e,{signLeft:t,signTop:n,pageIndex:r}),onUpdate:a[3]||=e=>Ee(e.id,e),onRemove:K,onVisiblePages:Se,onViewPage:be,onPageChange:xe,onZoomChange:ge},null,8,[`file`,`pages`,`placements`,`selected-placement-id`,`readonly`,`resizable`,`seal-size-limit`,`zoom`,`preview-loading-keys`,`preview-error-map`,`active-page-index`,`min-zoom`,`max-zoom`]),(0,u.createElementVNode)(`div`,{class:(0,u.normalizeClass)([`gd-ant-contract-signing-location__inspector-wrap`,{"is-collapsed":O.value}])},[(0,u.createVNode)((0,u.unref)(d.Tooltip),{title:O.value?`展开属性栏`:`收起属性栏`},{default:(0,u.withCtx)(()=>[(0,u.createElementVNode)(`button`,{type:`button`,class:`gd-ant-contract-signing-location__panel-handle`,"aria-label":O.value?`展开属性栏`:`收起属性栏`,"aria-expanded":!O.value,onClick:a[4]||=e=>O.value=!O.value},[O.value?((0,u.openBlock)(),(0,u.createBlock)((0,u.unref)(e.default),{key:0,"aria-hidden":`true`})):((0,u.openBlock)(),(0,u.createBlock)((0,u.unref)(n.default),{key:1,"aria-hidden":`true`}))],8,oe)]),_:1},8,[`title`]),(0,u.createElementVNode)(`div`,se,[(0,u.createVNode)(s.default,{placement:B.value,page:de.value,pages:R.value?.pages??[],placements:ue.value,readonly:I.value,resizable:r.resizable,"seal-size-limit":h.value,"seal-type-options":r.sealTypeOptions,"size-profile":r.sizeProfile,onAdd:G,onUpdate:a[5]||=e=>B.value&&Ee(B.value.id,e),onDuplicate:De,onRemove:K,onLocate:Te},null,8,[`placement`,`page`,`pages`,`placements`,`readonly`,`resizable`,`seal-size-limit`,`seal-type-options`,`size-profile`])])],2)],2)],6))}});exports.default=f;
@@ -1 +1 @@
1
- require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../node_modules/@ant-design/icons-vue/es/icons/PlusOutlined.cjs`),t=require(`./ContractSigningFlowNodeCard.cjs`);let n=require(`vue`),r=require(`ant-design-vue`);var i={class:`gd-contract-signing-flow__canvas-panel`},a={class:`gd-contract-signing-flow__canvas-header`},o={class:`gd-contract-signing-flow__canvas-scroll`},s={class:`gd-contract-signing-flow__canvas`},c={key:0,class:`gd-contract-signing-flow__connector`},l=(0,n.defineComponent)({__name:`ContractSigningFlowCanvas`,props:{nodes:{},selectedKey:{},readonly:{type:Boolean},disabled:{type:Boolean}},emits:[`select`,`add`,`remove`,`move`],setup(l,{emit:u}){let d=u;return(u,f)=>((0,n.openBlock)(),(0,n.createElementBlock)(`section`,i,[(0,n.createElementVNode)(`header`,a,[f[3]||=(0,n.createElementVNode)(`div`,null,[(0,n.createElementVNode)(`h2`,null,`签署流程`),(0,n.createElementVNode)(`p`,null,`节点按从上到下的顺序依次执行`)],-1),l.readonly?(0,n.createCommentVNode)(``,!0):((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(r.Button),{key:0,type:`primary`,disabled:l.disabled,onClick:f[0]||=e=>d(`add`)},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(e.default))]),default:(0,n.withCtx)(()=>[f[2]||=(0,n.createTextVNode)(`添加签署节点`,-1)]),_:1},8,[`disabled`]))]),(0,n.createElementVNode)(`div`,o,[(0,n.createElementVNode)(`div`,s,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(l.nodes,(e,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:e.key,class:`gd-contract-signing-flow__step`},[(0,n.createVNode)(t.default,{node:e,selected:l.selectedKey===e.key,readonly:l.readonly,disabled:l.disabled,"can-move-up":r>1,"can-move-down":r<l.nodes.length-2,onSelect:t=>d(`select`,e),onRemove:t=>d(`remove`,e),onMove:t=>d(`move`,e,t)},null,8,[`node`,`selected`,`readonly`,`disabled`,`can-move-up`,`can-move-down`,`onSelect`,`onRemove`,`onMove`]),r<l.nodes.length-1?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,c,[...f[4]||=[(0,n.createElementVNode)(`span`,null,null,-1),(0,n.createElementVNode)(`i`,null,null,-1)]])):(0,n.createCommentVNode)(``,!0)]))),128)),l.readonly?(0,n.createCommentVNode)(``,!0):((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(r.Button),{key:0,class:`gd-contract-signing-flow__add-node`,type:`dashed`,disabled:l.disabled,onClick:f[1]||=e=>d(`add`)},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(e.default))]),default:(0,n.withCtx)(()=>[f[5]||=(0,n.createTextVNode)(`添加签署节点`,-1)]),_:1},8,[`disabled`]))])])]))}});exports.default=l;
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../node_modules/@ant-design/icons-vue/es/icons/PlusOutlined.cjs`),t=require(`./ContractSigningFlowNodeCard.cjs`);let n=require(`vue`),r=require(`ant-design-vue`);var i={class:`gd-contract-signing-flow__canvas-panel`},a={class:`gd-contract-signing-flow__canvas-header`},o={class:`gd-contract-signing-flow__canvas-actions`},s={class:`gd-contract-signing-flow__canvas-scroll`},c={class:`gd-contract-signing-flow__canvas`},l={key:0,class:`gd-contract-signing-flow__connector`},u=(0,n.defineComponent)({__name:`ContractSigningFlowCanvas`,props:{nodes:{},selectedKey:{},readonly:{type:Boolean},disabled:{type:Boolean}},emits:[`select`,`add`,`remove`,`move`],setup(u,{emit:d}){let f=d;return(d,p)=>((0,n.openBlock)(),(0,n.createElementBlock)(`section`,i,[(0,n.createElementVNode)(`header`,a,[p[3]||=(0,n.createElementVNode)(`div`,null,[(0,n.createElementVNode)(`h2`,null,`签署流程`),(0,n.createElementVNode)(`p`,null,`节点按从上到下的顺序依次执行`)],-1),(0,n.createElementVNode)(`div`,o,[(0,n.renderSlot)(d.$slots,`headerExtra`,{readonly:u.readonly,disabled:u.disabled}),u.readonly?(0,n.createCommentVNode)(``,!0):((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(r.Button),{key:0,type:`primary`,disabled:u.disabled,onClick:p[0]||=e=>f(`add`)},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(e.default))]),default:(0,n.withCtx)(()=>[p[2]||=(0,n.createTextVNode)(`添加签署节点`,-1)]),_:1},8,[`disabled`]))])]),(0,n.createElementVNode)(`div`,s,[(0,n.createElementVNode)(`div`,c,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(u.nodes,(e,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:e.key,class:`gd-contract-signing-flow__step`},[(0,n.createVNode)(t.default,{node:e,selected:u.selectedKey===e.key,readonly:u.readonly,disabled:u.disabled,"can-move-up":r>1,"can-move-down":r<u.nodes.length-2,onSelect:t=>f(`select`,e),onRemove:t=>f(`remove`,e),onMove:t=>f(`move`,e,t)},null,8,[`node`,`selected`,`readonly`,`disabled`,`can-move-up`,`can-move-down`,`onSelect`,`onRemove`,`onMove`]),r<u.nodes.length-1?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,l,[...p[4]||=[(0,n.createElementVNode)(`span`,null,null,-1),(0,n.createElementVNode)(`i`,null,null,-1)]])):(0,n.createCommentVNode)(``,!0)]))),128)),u.readonly?(0,n.createCommentVNode)(``,!0):((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(r.Button),{key:0,class:`gd-contract-signing-flow__add-node`,type:`dashed`,disabled:u.disabled,onClick:p[1]||=e=>f(`add`)},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(e.default))]),default:(0,n.withCtx)(()=>[p[5]||=(0,n.createTextVNode)(`添加签署节点`,-1)]),_:1},8,[`disabled`]))])])]))}});exports.default=u;
@@ -1 +1 @@
1
- require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../node_modules/@ant-design/icons-vue/es/icons/EnvironmentOutlined.cjs`),t=require(`./constants.cjs`);let n=require(`vue`),r=require(`ant-design-vue`);var i={class:`gd-contract-signing-flow__inspector`},a={class:`gd-contract-signing-flow__inspector-header`},o={class:`gd-contract-signing-flow__inspector-scroll`},s={class:`gd-contract-signing-flow__form-section`},c={class:`gd-contract-signing-flow__form-section`},l={class:`gd-contract-signing-flow__setting-list`},u={class:`gd-contract-signing-flow__setting-row`},d={class:`gd-contract-signing-flow__form-section`},f={class:`gd-contract-signing-flow__section-heading`},p={class:`gd-contract-signing-flow__rule-grid`},m={key:0,class:`gd-contract-signing-flow__seal-types`},h={class:`gd-contract-signing-flow__seal-list`},g={class:`gd-contract-signing-flow__form-section`},_={class:`gd-contract-signing-flow__setting-list is-compact`},v={class:`gd-contract-signing-flow__setting-row`},y={class:`gd-contract-signing-flow__setting-row`},b={class:`gd-contract-signing-flow__setting-row`},x={class:`gd-contract-signing-flow__setting-row`},S={class:`gd-contract-signing-flow__setting-row`},C={class:`gd-contract-signing-flow__setting-row`},w={class:`gd-contract-signing-flow__setting-row`},T={class:`gd-contract-signing-flow__setting-row`},E={class:`gd-contract-signing-flow__form-section is-placement`},D={class:`gd-contract-signing-flow__section-heading`},O={key:1,class:`gd-contract-signing-flow__node-overview`},k={class:`gd-contract-signing-flow__node-overview-icon`},A=(0,n.defineComponent)({__name:`ContractSigningFlowInspector`,props:{node:{},readonly:{type:Boolean},disabled:{type:Boolean}},emits:[`change`,`placementRequest`],setup(A,{emit:j}){let M=A,N=j,P=(0,n.computed)(()=>M.readonly||M.disabled),F=[{label:`个人`,value:`person`},{label:`企业`,value:`company`}],I=[{label:`必须`,value:`must`},{label:`允许`,value:`allow`},{label:`禁止`,value:`forbid`}],L=[{label:`任一人通过`,value:`ONE_PASS`},{label:`全部人通过`,value:`ALL_PASS`}];function R(e){if(!M.node||P.value)return;let t=JSON.parse(JSON.stringify(M.node));e(t),N(`change`,t)}function z(){return M.node?.config.signRule}function B(e){let t=z();return t?e===`signature`?t.mustSignature?`must`:t.cannotSignature?`forbid`:`allow`:t.mustSeal?`must`:t.cannotSeal?`forbid`:`allow`:`allow`}function V(e,t){t!==`must`&&t!==`allow`&&t!==`forbid`||R(n=>{let r=n.config.signRule;if(e===`signature`){r.mustSignature=t===`must`,r.cannotSignature=t===`forbid`;return}r.mustSeal=t===`must`,r.cannotSeal=t===`forbid`,t===`must`&&!r.sealType.length&&(r.sealType=[`01`]),t===`forbid`&&(r.sealType=[])})}function H(e,t){R(n=>{e===`description`?n.description=t||null:n[e]=t})}function U(e){e!==`person`&&e!==`company`||R(t=>{if(t.identity=e,e===`person`){let e=t.config.signRule;e.cannotSeal=!0,e.mustSeal=!1,e.sealType=[],e.perforationSealEnable=!1}})}function W(e){R(t=>{t.multi=e===!0})}function G(e){e!==`ONE_PASS`&&e!==`ALL_PASS`||R(t=>{t.multiCompletedCondition={...t.multiCompletedCondition||{refusedType:`ONE_PASS`,value:null},type:e}})}function K(e,t){R(n=>{let r=n.config.signRule;r.sealType=t===!0?Array.from(new Set([...r.sealType,e])):r.sealType.filter(t=>t!==e)})}function q(e,t){R(n=>{n.config.signRule[e]=t===!0})}function J(e,t){R(n=>{let r=n.config.signRule;r[e]=t===!0,t===!0&&(e===`noneVerify`?(r.smsVerify=!1,r.faceVerify=!1,r.passwordVerify=!1):r.noneVerify=!1)})}function Y(){let e=z();return e?e.mustSeal?`必须印章`:e.cannotSignature?`仅印章`:e.cannotSeal?`仅签名`:`签名可选`:`未配置`}function X(e){return e===`sign`?`签署节点`:e===`start`?`开始节点`:e===`end`?`结束节点`:`异常节点`}return(j,M)=>((0,n.openBlock)(),(0,n.createElementBlock)(`aside`,i,[A.node?((0,n.openBlock)(),(0,n.createElementBlock)(n.Fragment,{key:0},[(0,n.createElementVNode)(`header`,a,[(0,n.createElementVNode)(`div`,null,[M[14]||=(0,n.createElementVNode)(`h2`,null,`节点配置`,-1),(0,n.createElementVNode)(`p`,null,(0,n.toDisplayString)(A.node.name||`未命名节点`),1)]),(0,n.createVNode)((0,n.unref)(r.Tag),{color:A.node.type===`sign`?`blue`:void 0},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(X(A.node.type)),1)]),_:1},8,[`color`])]),(0,n.createElementVNode)(`div`,o,[A.node.type===`sign`?((0,n.openBlock)(),(0,n.createElementBlock)(n.Fragment,{key:0},[(0,n.createElementVNode)(`section`,s,[M[15]||=(0,n.createElementVNode)(`div`,{class:`gd-contract-signing-flow__section-heading`},[(0,n.createElementVNode)(`h3`,null,`基础信息`)],-1),(0,n.createVNode)((0,n.unref)(r.Form),{layout:`vertical`,class:`gd-contract-signing-flow__form`},{default:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.FormItem),{label:`节点名称`},{default:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.Input),{value:A.node.name,disabled:P.value,placeholder:`请输入节点名称`,"onUpdate:value":M[0]||=e=>H(`name`,String(e))},null,8,[`value`,`disabled`])]),_:1}),(0,n.createVNode)((0,n.unref)(r.FormItem),{label:`节点标识`},{default:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.Input),{value:A.node.customKey||``,disabled:P.value,placeholder:`请输入唯一标识`,"onUpdate:value":M[1]||=e=>H(`customKey`,String(e))},null,8,[`value`,`disabled`])]),_:1}),(0,n.createVNode)((0,n.unref)(r.FormItem),{label:`节点描述`},{default:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.Input).TextArea,{value:A.node.description||``,disabled:P.value,"auto-size":{minRows:2,maxRows:4},placeholder:`请输入节点描述`,"onUpdate:value":M[2]||=e=>H(`description`,String(e))},null,8,[`value`,`disabled`])]),_:1})]),_:1})]),(0,n.createElementVNode)(`section`,c,[M[17]||=(0,n.createElementVNode)(`div`,{class:`gd-contract-signing-flow__section-heading`},[(0,n.createElementVNode)(`h3`,null,`签署主体`)],-1),(0,n.createVNode)((0,n.unref)(r.RadioGroup),{value:A.node.identity,options:F,"option-type":`button`,"button-style":`solid`,disabled:P.value,"onUpdate:value":U},null,8,[`value`,`disabled`]),(0,n.createElementVNode)(`div`,l,[(0,n.createElementVNode)(`div`,u,[M[16]||=(0,n.createElementVNode)(`div`,null,[(0,n.createElementVNode)(`strong`,null,`多人签署`),(0,n.createElementVNode)(`span`,null,`允许多位签署人共同完成该节点`)],-1),(0,n.createVNode)((0,n.unref)(r.Switch),{checked:A.node.multi,disabled:P.value,size:`small`,"onUpdate:checked":W},null,8,[`checked`,`disabled`])]),A.node.multi?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(r.FormItem),{key:0,label:`完成条件`,class:`gd-contract-signing-flow__inline-form-item`},{default:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.Select),{value:A.node.multiCompletedCondition?.type,options:L,disabled:P.value,"onUpdate:value":G},null,8,[`value`,`disabled`])]),_:1})):(0,n.createCommentVNode)(``,!0)])]),(0,n.createElementVNode)(`section`,d,[(0,n.createElementVNode)(`div`,f,[M[18]||=(0,n.createElementVNode)(`h3`,null,`签署规则`,-1),(0,n.createVNode)((0,n.unref)(r.Tag),{color:`blue`},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(Y()),1)]),_:1})]),(0,n.createElementVNode)(`div`,p,[(0,n.createVNode)((0,n.unref)(r.FormItem),{label:`个人签名`},{default:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.Select),{value:B(`signature`),options:I,disabled:P.value,"onUpdate:value":M[3]||=e=>V(`signature`,e)},null,8,[`value`,`disabled`])]),_:1}),A.node.identity===`company`?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(r.FormItem),{key:0,label:`企业印章`},{default:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.Select),{value:B(`seal`),options:I,disabled:P.value,"onUpdate:value":M[4]||=e=>V(`seal`,e)},null,8,[`value`,`disabled`])]),_:1})):(0,n.createCommentVNode)(``,!0)]),A.node.identity===`company`&&!z()?.cannotSeal?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,m,[M[19]||=(0,n.createElementVNode)(`span`,{class:`gd-contract-signing-flow__field-label`},`允许的印章类型`,-1),(0,n.createElementVNode)(`div`,h,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)((0,n.unref)(t.CONTRACT_SIGNING_FLOW_SEAL_TYPES),e=>((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(r.Checkbox),{key:e.value,checked:z()?.sealType.includes(e.value),disabled:P.value,"onUpdate:checked":t=>K(e.value,t)},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(e.label),1)]),_:2},1032,[`checked`,`disabled`,`onUpdate:checked`]))),128))])])):(0,n.createCommentVNode)(``,!0)]),(0,n.createElementVNode)(`section`,g,[M[28]||=(0,n.createElementVNode)(`div`,{class:`gd-contract-signing-flow__section-heading`},[(0,n.createElementVNode)(`h3`,null,`验证与权限`)],-1),(0,n.createElementVNode)(`div`,_,[(0,n.createElementVNode)(`div`,v,[M[20]||=(0,n.createElementVNode)(`span`,null,`短信验证`,-1),(0,n.createVNode)((0,n.unref)(r.Switch),{checked:z()?.smsVerify,disabled:P.value,size:`small`,"onUpdate:checked":M[5]||=e=>J(`smsVerify`,e)},null,8,[`checked`,`disabled`])]),(0,n.createElementVNode)(`div`,y,[M[21]||=(0,n.createElementVNode)(`span`,null,`人脸验证`,-1),(0,n.createVNode)((0,n.unref)(r.Switch),{checked:z()?.faceVerify,disabled:P.value,size:`small`,"onUpdate:checked":M[6]||=e=>J(`faceVerify`,e)},null,8,[`checked`,`disabled`])]),(0,n.createElementVNode)(`div`,b,[M[22]||=(0,n.createElementVNode)(`span`,null,`密码验证`,-1),(0,n.createVNode)((0,n.unref)(r.Switch),{checked:z()?.passwordVerify,disabled:P.value,size:`small`,"onUpdate:checked":M[7]||=e=>J(`passwordVerify`,e)},null,8,[`checked`,`disabled`])]),(0,n.createElementVNode)(`div`,x,[M[23]||=(0,n.createElementVNode)(`span`,null,`免验证`,-1),(0,n.createVNode)((0,n.unref)(r.Switch),{checked:z()?.noneVerify,disabled:P.value,size:`small`,"onUpdate:checked":M[8]||=e=>J(`noneVerify`,e)},null,8,[`checked`,`disabled`])]),(0,n.createElementVNode)(`div`,S,[M[24]||=(0,n.createElementVNode)(`span`,null,`允许拒签`,-1),(0,n.createVNode)((0,n.unref)(r.Switch),{checked:z()?.refuseFunctionEnable,disabled:P.value,size:`small`,"onUpdate:checked":M[9]||=e=>q(`refuseFunctionEnable`,e)},null,8,[`checked`,`disabled`])]),(0,n.createElementVNode)(`div`,C,[M[25]||=(0,n.createElementVNode)(`span`,null,`批量签署`,-1),(0,n.createVNode)((0,n.unref)(r.Switch),{checked:z()?.batchFunctionEnable,disabled:P.value,size:`small`,"onUpdate:checked":M[10]||=e=>q(`batchFunctionEnable`,e)},null,8,[`checked`,`disabled`])]),(0,n.createElementVNode)(`div`,w,[M[26]||=(0,n.createElementVNode)(`span`,null,`骑缝章`,-1),(0,n.createVNode)((0,n.unref)(r.Switch),{checked:z()?.perforationSealEnable,disabled:P.value||A.node.identity!==`company`,size:`small`,"onUpdate:checked":M[11]||=e=>q(`perforationSealEnable`,e)},null,8,[`checked`,`disabled`])]),(0,n.createElementVNode)(`div`,T,[M[27]||=(0,n.createElementVNode)(`span`,null,`禁止额外签署位置`,-1),(0,n.createVNode)((0,n.unref)(r.Switch),{checked:z()?.cannotExtraLocations,disabled:P.value,size:`small`,"onUpdate:checked":M[12]||=e=>q(`cannotExtraLocations`,e)},null,8,[`checked`,`disabled`])])])]),(0,n.createElementVNode)(`section`,E,[(0,n.createElementVNode)(`div`,D,[M[29]||=(0,n.createElementVNode)(`div`,null,[(0,n.createElementVNode)(`h3`,null,`签署位置`),(0,n.createElementVNode)(`p`,null,`由业务侧位置编辑器配置并回填`)],-1),(0,n.createVNode)((0,n.unref)(r.Tag),null,{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(A.node.config.locationRules?.length||0)+` 个`,1)]),_:1})]),(0,n.createVNode)((0,n.unref)(r.Button),{block:``,disabled:A.disabled,onClick:M[13]||=e=>N(`placementRequest`)},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(e.default))]),default:(0,n.withCtx)(()=>[M[30]||=(0,n.createTextVNode)(`设置签署位置`,-1)]),_:1},8,[`disabled`])])],64)):((0,n.openBlock)(),(0,n.createElementBlock)(`section`,O,[(0,n.createElementVNode)(`div`,k,(0,n.toDisplayString)(A.node.type===`start`?`始`:A.node.type===`end`?`终`:`!`),1),(0,n.createElementVNode)(`h3`,null,(0,n.toDisplayString)(A.node.type===`start`?`流程入口`:A.node.type===`end`?`流程出口`:`异常节点`),1),(0,n.createElementVNode)(`p`,null,(0,n.toDisplayString)(A.node.description||`该节点仅用于展示,不能编辑。`),1),(0,n.createVNode)((0,n.unref)(r.Tag),null,{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(A.node.key),1)]),_:1})]))])],64)):((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(r.Empty),{key:1,class:`gd-contract-signing-flow__empty-inspector`,image:(0,n.unref)(r.Empty).PRESENTED_IMAGE_SIMPLE,description:`请选择一个节点`},null,8,[`image`]))]))}});exports.default=A;
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../node_modules/@ant-design/icons-vue/es/icons/DownOutlined.cjs`),t=require(`../../../node_modules/@ant-design/icons-vue/es/icons/EnvironmentOutlined.cjs`),n=require(`../../../node_modules/@ant-design/icons-vue/es/icons/RightOutlined.cjs`),r=require(`./constants.cjs`);let i=require(`vue`),a=require(`ant-design-vue`);var o={class:`gd-contract-signing-flow__inspector`},s={class:`gd-contract-signing-flow__inspector-header`},c={class:`gd-contract-signing-flow__inspector-scroll`},l={class:`gd-contract-signing-flow__form-section`},u={class:`gd-contract-signing-flow__form-section`},d={class:`gd-contract-signing-flow__setting-list`},f={class:`gd-contract-signing-flow__setting-row`},p={class:`gd-contract-signing-flow__form-section`},m={class:`gd-contract-signing-flow__section-heading`},h={class:`gd-contract-signing-flow__rule-grid`},g={key:0,class:`gd-contract-signing-flow__seal-types`},_={class:`gd-contract-signing-flow__seal-list`},v={class:`gd-contract-signing-flow__section-heading-meta`},y={class:`gd-contract-signing-flow__setting-list is-compact`},b={class:`gd-contract-signing-flow__setting-row`},x={class:`gd-contract-signing-flow__setting-row`},S={class:`gd-contract-signing-flow__setting-row`},C={class:`gd-contract-signing-flow__setting-row`},w={class:`gd-contract-signing-flow__setting-row`},T={class:`gd-contract-signing-flow__setting-row`},E={class:`gd-contract-signing-flow__setting-row`},D={class:`gd-contract-signing-flow__setting-row`},O={key:0,class:`gd-contract-signing-flow__form-section is-placement`},k={class:`gd-contract-signing-flow__section-heading`},A={key:1,class:`gd-contract-signing-flow__node-overview`},j={class:`gd-contract-signing-flow__node-overview-icon`},M=(0,i.defineComponent)({__name:`ContractSigningFlowInspector`,props:{node:{},readonly:{type:Boolean},disabled:{type:Boolean},showPlacement:{type:Boolean}},emits:[`change`,`placementRequest`],setup(M,{emit:N}){let P=M,F=(0,i.ref)(!1),ee=[`smsVerify`,`faceVerify`,`passwordVerify`,`noneVerify`,`refuseFunctionEnable`,`batchFunctionEnable`,`perforationSealEnable`,`cannotExtraLocations`],I=N,L=(0,i.computed)(()=>P.readonly||P.disabled),R=[{label:`个人`,value:`person`},{label:`企业`,value:`company`}],z=[{label:`必须`,value:`must`},{label:`允许`,value:`allow`},{label:`禁止`,value:`forbid`}],B=[{label:`任一人通过`,value:`ONE_PASS`},{label:`全部人通过`,value:`ALL_PASS`}];function V(e){if(!P.node||L.value)return;let t=JSON.parse(JSON.stringify(P.node));e(t),I(`change`,t)}function H(){return P.node?.config.signRule}function U(e){let t=H();return t?e===`signature`?t.mustSignature?`must`:t.cannotSignature?`forbid`:`allow`:t.mustSeal?`must`:t.cannotSeal?`forbid`:`allow`:`allow`}function W(e,t){t!==`must`&&t!==`allow`&&t!==`forbid`||V(n=>{let r=n.config.signRule;if(e===`signature`){r.mustSignature=t===`must`,r.cannotSignature=t===`forbid`;return}r.mustSeal=t===`must`,r.cannotSeal=t===`forbid`,t===`must`&&!r.sealType.length&&(r.sealType=[`01`]),t===`forbid`&&(r.sealType=[])})}function G(e,t){V(n=>{e===`description`?n.description=t||null:n[e]=t})}function K(e){e!==`person`&&e!==`company`||V(t=>{if(t.identity=e,e===`person`){let e=t.config.signRule;e.cannotSeal=!0,e.mustSeal=!1,e.sealType=[],e.perforationSealEnable=!1}})}function q(e){V(t=>{t.multi=e===!0})}function J(e){e!==`ONE_PASS`&&e!==`ALL_PASS`||V(t=>{t.multiCompletedCondition={...t.multiCompletedCondition||{refusedType:`ONE_PASS`,value:null},type:e}})}function Y(e,t){V(n=>{let r=n.config.signRule;r.sealType=t===!0?Array.from(new Set([...r.sealType,e])):r.sealType.filter(t=>t!==e)})}function X(e,t){V(n=>{n.config.signRule[e]=t===!0})}function Z(e,t){V(n=>{let r=n.config.signRule;r[e]=t===!0,t===!0&&(e===`noneVerify`?(r.smsVerify=!1,r.faceVerify=!1,r.passwordVerify=!1):r.noneVerify=!1)})}function Q(){let e=H();return e?e.mustSeal?`必须印章`:e.cannotSignature?`仅印章`:e.cannotSeal?`仅签名`:`签名可选`:`未配置`}let $=(0,i.computed)(()=>{let e=H();return e?ee.filter(t=>e[t]===!0).length:0});function te(e){return e===`sign`?`签署节点`:e===`start`?`开始节点`:e===`end`?`结束节点`:`异常节点`}return(N,P)=>((0,i.openBlock)(),(0,i.createElementBlock)(`aside`,o,[M.node?((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:0},[(0,i.createElementVNode)(`header`,s,[(0,i.createElementVNode)(`div`,null,[P[15]||=(0,i.createElementVNode)(`h2`,null,`节点配置`,-1),(0,i.createElementVNode)(`p`,null,(0,i.toDisplayString)(M.node.name||`未命名节点`),1)]),(0,i.createVNode)((0,i.unref)(a.Tag),{color:M.node.type===`sign`?`blue`:void 0},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)(te(M.node.type)),1)]),_:1},8,[`color`])]),(0,i.createElementVNode)(`div`,c,[M.node.type===`sign`?((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:0},[(0,i.createElementVNode)(`section`,l,[P[16]||=(0,i.createElementVNode)(`div`,{class:`gd-contract-signing-flow__section-heading`},[(0,i.createElementVNode)(`h3`,null,`基础信息`)],-1),(0,i.createVNode)((0,i.unref)(a.Form),{layout:`vertical`,class:`gd-contract-signing-flow__form`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.FormItem),{label:`节点名称`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.Input),{value:M.node.name,disabled:L.value,placeholder:`请输入节点名称`,"onUpdate:value":P[0]||=e=>G(`name`,String(e))},null,8,[`value`,`disabled`])]),_:1}),(0,i.createVNode)((0,i.unref)(a.FormItem),{label:`节点标识`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.Input),{value:M.node.customKey||``,disabled:L.value,placeholder:`请输入唯一标识`,"onUpdate:value":P[1]||=e=>G(`customKey`,String(e))},null,8,[`value`,`disabled`])]),_:1}),(0,i.createVNode)((0,i.unref)(a.FormItem),{label:`节点描述`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.Input).TextArea,{value:M.node.description||``,disabled:L.value,"auto-size":{minRows:2,maxRows:4},placeholder:`请输入节点描述`,"onUpdate:value":P[2]||=e=>G(`description`,String(e))},null,8,[`value`,`disabled`])]),_:1})]),_:1})]),(0,i.createElementVNode)(`section`,u,[P[18]||=(0,i.createElementVNode)(`div`,{class:`gd-contract-signing-flow__section-heading`},[(0,i.createElementVNode)(`h3`,null,`签署主体`)],-1),(0,i.createVNode)((0,i.unref)(a.RadioGroup),{value:M.node.identity,options:R,"option-type":`button`,"button-style":`solid`,disabled:L.value,"onUpdate:value":K},null,8,[`value`,`disabled`]),(0,i.createElementVNode)(`div`,d,[(0,i.createElementVNode)(`div`,f,[P[17]||=(0,i.createElementVNode)(`div`,null,[(0,i.createElementVNode)(`strong`,null,`多人签署`),(0,i.createElementVNode)(`span`,null,`允许多位签署人共同完成该节点`)],-1),(0,i.createVNode)((0,i.unref)(a.Switch),{checked:M.node.multi,disabled:L.value,size:`small`,"onUpdate:checked":q},null,8,[`checked`,`disabled`])]),M.node.multi?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.FormItem),{key:0,label:`完成条件`,class:`gd-contract-signing-flow__inline-form-item`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.Select),{value:M.node.multiCompletedCondition?.type,options:B,disabled:L.value,"onUpdate:value":J},null,8,[`value`,`disabled`])]),_:1})):(0,i.createCommentVNode)(``,!0)])]),(0,i.createElementVNode)(`section`,p,[(0,i.createElementVNode)(`div`,m,[P[19]||=(0,i.createElementVNode)(`h3`,null,`签署规则`,-1),(0,i.createVNode)((0,i.unref)(a.Tag),{color:`blue`},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)(Q()),1)]),_:1})]),(0,i.createElementVNode)(`div`,h,[(0,i.createVNode)((0,i.unref)(a.FormItem),{label:`个人签名`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.Select),{value:U(`signature`),options:z,disabled:L.value,"onUpdate:value":P[3]||=e=>W(`signature`,e)},null,8,[`value`,`disabled`])]),_:1}),M.node.identity===`company`?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.FormItem),{key:0,label:`企业印章`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.Select),{value:U(`seal`),options:z,disabled:L.value,"onUpdate:value":P[4]||=e=>W(`seal`,e)},null,8,[`value`,`disabled`])]),_:1})):(0,i.createCommentVNode)(``,!0)]),M.node.identity===`company`&&!H()?.cannotSeal?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,g,[P[20]||=(0,i.createElementVNode)(`span`,{class:`gd-contract-signing-flow__field-label`},`允许的印章类型`,-1),(0,i.createElementVNode)(`div`,_,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)((0,i.unref)(r.CONTRACT_SIGNING_FLOW_SEAL_TYPES),e=>((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.Checkbox),{key:e.value,checked:H()?.sealType.includes(e.value),disabled:L.value,"onUpdate:checked":t=>Y(e.value,t)},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)(e.label),1)]),_:2},1032,[`checked`,`disabled`,`onUpdate:checked`]))),128))])])):(0,i.createCommentVNode)(``,!0)]),(0,i.createElementVNode)(`section`,{class:(0,i.normalizeClass)([`gd-contract-signing-flow__form-section`,{"is-collapsed":!F.value}])},[(0,i.createElementVNode)(`button`,{type:`button`,class:`gd-contract-signing-flow__section-heading is-toggle`,onClick:P[5]||=e=>F.value=!F.value},[P[21]||=(0,i.createElementVNode)(`h3`,null,`验证与权限`,-1),(0,i.createElementVNode)(`span`,v,[F.value?(0,i.createCommentVNode)(``,!0):((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.Tag),{key:0},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(`已开启 `+(0,i.toDisplayString)($.value)+` 项`,1)]),_:1})),F.value?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(e.default),{key:2})):((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(n.default),{key:1}))])]),(0,i.withDirectives)((0,i.createElementVNode)(`div`,y,[(0,i.createElementVNode)(`div`,b,[P[22]||=(0,i.createElementVNode)(`span`,null,`短信验证`,-1),(0,i.createVNode)((0,i.unref)(a.Switch),{checked:H()?.smsVerify,disabled:L.value,size:`small`,"onUpdate:checked":P[6]||=e=>Z(`smsVerify`,e)},null,8,[`checked`,`disabled`])]),(0,i.createElementVNode)(`div`,x,[P[23]||=(0,i.createElementVNode)(`span`,null,`人脸验证`,-1),(0,i.createVNode)((0,i.unref)(a.Switch),{checked:H()?.faceVerify,disabled:L.value,size:`small`,"onUpdate:checked":P[7]||=e=>Z(`faceVerify`,e)},null,8,[`checked`,`disabled`])]),(0,i.createElementVNode)(`div`,S,[P[24]||=(0,i.createElementVNode)(`span`,null,`密码验证`,-1),(0,i.createVNode)((0,i.unref)(a.Switch),{checked:H()?.passwordVerify,disabled:L.value,size:`small`,"onUpdate:checked":P[8]||=e=>Z(`passwordVerify`,e)},null,8,[`checked`,`disabled`])]),(0,i.createElementVNode)(`div`,C,[P[25]||=(0,i.createElementVNode)(`span`,null,`免验证`,-1),(0,i.createVNode)((0,i.unref)(a.Switch),{checked:H()?.noneVerify,disabled:L.value,size:`small`,"onUpdate:checked":P[9]||=e=>Z(`noneVerify`,e)},null,8,[`checked`,`disabled`])]),(0,i.createElementVNode)(`div`,w,[P[26]||=(0,i.createElementVNode)(`span`,null,`允许拒签`,-1),(0,i.createVNode)((0,i.unref)(a.Switch),{checked:H()?.refuseFunctionEnable,disabled:L.value,size:`small`,"onUpdate:checked":P[10]||=e=>X(`refuseFunctionEnable`,e)},null,8,[`checked`,`disabled`])]),(0,i.createElementVNode)(`div`,T,[P[27]||=(0,i.createElementVNode)(`span`,null,`批量签署`,-1),(0,i.createVNode)((0,i.unref)(a.Switch),{checked:H()?.batchFunctionEnable,disabled:L.value,size:`small`,"onUpdate:checked":P[11]||=e=>X(`batchFunctionEnable`,e)},null,8,[`checked`,`disabled`])]),(0,i.createElementVNode)(`div`,E,[P[28]||=(0,i.createElementVNode)(`span`,null,`骑缝章`,-1),(0,i.createVNode)((0,i.unref)(a.Switch),{checked:H()?.perforationSealEnable,disabled:L.value||M.node.identity!==`company`,size:`small`,"onUpdate:checked":P[12]||=e=>X(`perforationSealEnable`,e)},null,8,[`checked`,`disabled`])]),(0,i.createElementVNode)(`div`,D,[P[29]||=(0,i.createElementVNode)(`span`,null,`禁止额外签署位置`,-1),(0,i.createVNode)((0,i.unref)(a.Switch),{checked:H()?.cannotExtraLocations,disabled:L.value,size:`small`,"onUpdate:checked":P[13]||=e=>X(`cannotExtraLocations`,e)},null,8,[`checked`,`disabled`])])],512),[[i.vShow,F.value]])],2),M.showPlacement===!1?(0,i.createCommentVNode)(``,!0):((0,i.openBlock)(),(0,i.createElementBlock)(`section`,O,[(0,i.createElementVNode)(`div`,k,[P[30]||=(0,i.createElementVNode)(`div`,null,[(0,i.createElementVNode)(`h3`,null,`签署位置`),(0,i.createElementVNode)(`p`,null,`由业务侧位置编辑器配置并回填`)],-1),(0,i.createVNode)((0,i.unref)(a.Tag),null,{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)(M.node.config.locationRules?.length||0)+` 个`,1)]),_:1})]),(0,i.createVNode)((0,i.unref)(a.Button),{block:``,disabled:M.disabled,onClick:P[14]||=e=>I(`placementRequest`)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(t.default))]),default:(0,i.withCtx)(()=>[P[31]||=(0,i.createTextVNode)(`设置签署位置`,-1)]),_:1},8,[`disabled`])]))],64)):((0,i.openBlock)(),(0,i.createElementBlock)(`section`,A,[(0,i.createElementVNode)(`div`,j,(0,i.toDisplayString)(M.node.type===`start`?`始`:M.node.type===`end`?`终`:`!`),1),(0,i.createElementVNode)(`h3`,null,(0,i.toDisplayString)(M.node.type===`start`?`流程入口`:M.node.type===`end`?`流程出口`:`异常节点`),1),(0,i.createElementVNode)(`p`,null,(0,i.toDisplayString)(M.node.description||`该节点仅用于展示,不能编辑。`),1),(0,i.createVNode)((0,i.unref)(a.Tag),null,{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)(M.node.key),1)]),_:1})]))])],64)):((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.Empty),{key:1,class:`gd-contract-signing-flow__empty-inspector`,image:(0,i.unref)(a.Empty).PRESENTED_IMAGE_SIMPLE,description:`请选择一个节点`},null,8,[`image`]))]))}});exports.default=M;
@@ -1 +1 @@
1
- require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./ContractSigningFlowCanvas.cjs`),t=require(`./ContractSigningFlowInspector.cjs`),n=require(`./composables/use-contract-signing-flow.cjs`);let r=require(`vue`);var i={class:`gd-contract-signing-flow__layout`},a=(0,r.defineComponent)({name:`ProContractSigningFlow`,__name:`ProContractSigningFlow`,props:{modelValue:{},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},height:{default:720}},emits:[`update:modelValue`,`change`,`validate`,`node-add`,`node-change`,`node-remove`,`node-move`,`node-select`,`placement-request`],setup(a,{expose:o,emit:s}){let c=a,l=s,u=n.useContractSigningFlow(c.modelValue),d=(0,r.computed)(()=>({height:typeof c.height==`number`?`${c.height}px`:c.height}));function f(e){return JSON.parse(JSON.stringify(e))}function p(){u.value.value.nodeList.some(e=>e.key===u.selectedKey.value)||(u.selectedKey.value=u.value.value.nodeList.find(e=>e.type===`sign`)?.key||u.value.value.nodeList[0]?.key)}(0,r.watch)(()=>c.modelValue,e=>{u.replace(e),p()},{deep:!0});function m(){return n.normalizeContractSigningFlow(u.value.value)}function h(){let e=m();l(`update:modelValue`,e),l(`change`,e)}function g(e){c.disabled||(u.selectedKey.value=e?.key,l(`node-select`,e?f(e):void 0))}function _(){if(c.readonly||c.disabled)return f(u.value.value.nodeList.find(e=>e.type===`sign`));let e=u.addSignNode();return h(),l(`node-add`,f(e)),l(`node-select`,f(e)),f(e)}function v(e){c.readonly||c.disabled||(u.removeSignNode(e),h(),l(`node-remove`,e),l(`node-select`,u.selectedNode.value?f(u.selectedNode.value):void 0))}function y(e,t){c.readonly||c.disabled||(u.moveSignNode(e,t),h(),l(`node-move`,e,t))}function b(e){if(c.readonly||c.disabled)return;let t=u.value.value.nodeList.findIndex(t=>t.key===e.key);t<0||(u.value.value.nodeList[t]=n.normalizeContractSigningFlow({key:null,name:null,description:null,nodeList:[e],connectList:[]}).nodeList[0],h(),l(`node-change`,f(u.value.value.nodeList[t])))}function x(e,t){y(e.key,t)}function S(){let e=u.selectedNode.value;!e||e.type!==`sign`||c.disabled||l(`placement-request`,{node:f(e),locationRules:f(e.config.locationRules||[])})}function C(e,t){if(c.readonly||c.disabled)return;u.setNodeLocationRules(e,t),h();let n=u.value.value.nodeList.find(t=>t.key===e);n&&l(`node-change`,f(n))}function w(){return m()}function T(e){u.replace(e),p(),h()}function E(){let e=u.validate();return l(`validate`,e),e}return o({getValue:w,setValue:T,validate:E,addSignNode:_,removeSignNode:v,moveSignNode:y,setNodeLocationRules:C}),(n,o)=>((0,r.openBlock)(),(0,r.createElementBlock)(`div`,{class:(0,r.normalizeClass)([`gd-contract-signing-flow`,{"is-readonly":a.readonly,"is-disabled":a.disabled}]),style:(0,r.normalizeStyle)(d.value)},[(0,r.createElementVNode)(`div`,i,[(0,r.createVNode)(e.default,{nodes:(0,r.unref)(u).value.value.nodeList,"selected-key":(0,r.unref)(u).selectedKey.value,readonly:a.readonly,disabled:a.disabled,onSelect:g,onAdd:_,onRemove:o[0]||=e=>v(e.key),onMove:x},null,8,[`nodes`,`selected-key`,`readonly`,`disabled`]),(0,r.createVNode)(t.default,{node:(0,r.unref)(u).selectedNode.value,readonly:a.readonly,disabled:a.disabled,onChange:b,onPlacementRequest:S},null,8,[`node`,`readonly`,`disabled`])])],6))}});exports.default=a;
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./ContractSigningFlowCanvas.cjs`),t=require(`./ContractSigningFlowInspector.cjs`),n=require(`./composables/use-contract-signing-flow.cjs`);let r=require(`vue`);var i={class:`gd-contract-signing-flow__layout`},a=(0,r.defineComponent)({name:`ProContractSigningFlow`,__name:`ProContractSigningFlow`,props:{modelValue:{},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},height:{default:720},requireSigningLocation:{type:Boolean,default:!0}},emits:[`update:modelValue`,`change`,`validate`,`node-add`,`node-change`,`node-remove`,`node-move`,`node-select`,`placement-request`],setup(a,{expose:o,emit:s}){let c=a,l=s,u=n.useContractSigningFlow(c.modelValue),d=(0,r.computed)(()=>({height:typeof c.height==`number`?`${c.height}px`:c.height}));function f(e){return JSON.parse(JSON.stringify(e))}function p(){u.value.value.nodeList.some(e=>e.key===u.selectedKey.value)||(u.selectedKey.value=u.value.value.nodeList.find(e=>e.type===`sign`)?.key||u.value.value.nodeList[0]?.key)}(0,r.watch)(()=>c.modelValue,e=>{u.replace(e),p()},{deep:!0});function m(){return n.normalizeContractSigningFlow(u.value.value)}function h(){let e=m();l(`update:modelValue`,e),l(`change`,e)}function g(e){c.disabled||(u.selectedKey.value=e?.key,l(`node-select`,e?f(e):void 0))}function _(){if(c.readonly||c.disabled)return f(u.value.value.nodeList.find(e=>e.type===`sign`));let e=u.addSignNode();return h(),l(`node-add`,f(e)),l(`node-select`,f(e)),f(e)}function v(e){c.readonly||c.disabled||(u.removeSignNode(e),h(),l(`node-remove`,e),l(`node-select`,u.selectedNode.value?f(u.selectedNode.value):void 0))}function y(e,t){c.readonly||c.disabled||(u.moveSignNode(e,t),h(),l(`node-move`,e,t))}function b(e){if(c.readonly||c.disabled)return;let t=u.value.value.nodeList.findIndex(t=>t.key===e.key);t<0||(u.value.value.nodeList[t]=n.normalizeContractSigningFlow({key:null,name:null,description:null,nodeList:[e],connectList:[]}).nodeList[0],h(),l(`node-change`,f(u.value.value.nodeList[t])))}function x(e,t){y(e.key,t)}function S(){let e=u.selectedNode.value;!e||e.type!==`sign`||c.disabled||l(`placement-request`,{node:f(e),locationRules:f(e.config.locationRules||[])})}function C(e,t){if(c.readonly||c.disabled)return;u.setNodeLocationRules(e,t),h();let n=u.value.value.nodeList.find(t=>t.key===e);n&&l(`node-change`,f(n))}function w(){return m()}function T(e){u.replace(e),p(),h()}function E(){let e=u.validate({requireLocation:c.requireSigningLocation});return l(`validate`,e),e}return o({getValue:w,setValue:T,validate:E,addSignNode:_,removeSignNode:v,moveSignNode:y,setNodeLocationRules:C}),(n,o)=>((0,r.openBlock)(),(0,r.createElementBlock)(`div`,{class:(0,r.normalizeClass)([`gd-contract-signing-flow`,{"is-readonly":a.readonly,"is-disabled":a.disabled}]),style:(0,r.normalizeStyle)(d.value)},[(0,r.createElementVNode)(`div`,i,[(0,r.createVNode)(e.default,{nodes:(0,r.unref)(u).value.value.nodeList,"selected-key":(0,r.unref)(u).selectedKey.value,readonly:a.readonly,disabled:a.disabled,onSelect:g,onAdd:_,onRemove:o[0]||=e=>v(e.key),onMove:x},{headerExtra:(0,r.withCtx)(e=>[(0,r.renderSlot)(n.$slots,`headerExtra`,(0,r.normalizeProps)((0,r.guardReactiveProps)(e)))]),_:3},8,[`nodes`,`selected-key`,`readonly`,`disabled`]),(0,r.createVNode)(t.default,{node:(0,r.unref)(u).selectedNode.value,readonly:a.readonly,disabled:a.disabled,"show-placement":a.requireSigningLocation,onChange:b,onPlacementRequest:S},null,8,[`node`,`readonly`,`disabled`,`show-placement`])])],6))}});exports.default=a;
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);let e=require(`vue`);var t=new Set([`signature`,`seal`,`acrossSeal`,`time`]),n=0;function r(e){return n+=1,`${e}_${Date.now().toString(36)}_${n.toString(36)}`}function i(e){return JSON.parse(JSON.stringify(e))}function a(e=`person`){return{cannotSeal:e===`person`,mustSeal:!1,sealType:[],mustSignature:!0,cannotSignature:!1,cannotExtraLocations:!1,batchFunctionEnable:!1,refuseFunctionEnable:!0,perforationSealEnable:!1,smsVerify:!0,faceVerify:!1,passwordVerify:!1,noneVerify:!1}}function o(){return{key:r(`Event`),name:`发起合同`,description:`合同创建后进入签署流程`,type:`start`,customKey:`start`,config:{},properties:null,multi:!1}}function s(){return{key:r(`Event`),name:`签署完成`,description:`所有签署节点完成后结束`,type:`end`,customKey:`end`,config:{},properties:null,multi:!1,autoComplete:!0}}function c(e=1){return{key:r(`Activity`),name:`签署方 ${e}`,description:null,type:`sign`,customKey:`signer_${e}`,config:{signRule:a(`person`),locationRules:[]},properties:null,multi:!1,identity:`person`,multiCompletedCondition:{type:`ONE_PASS`,refusedType:`ONE_PASS`,value:null}}}function l(e){return e.slice(0,-1).map((t,n)=>({key:r(`Flow`),type:`BooleanConnect`,name:null,sourceKey:t.key,targetKey:e[n+1].key,priority:1,description:null,connectName:`是否通过-连接器`,connectClass:`com.kgo.flow.common.engine.domain.connect.BooleanConnect`,configClassName:`java.lang.Object`,configClass:`java.lang.Object`,config:null}))}function u(){let e=[o(),c(1),s()];return{key:null,name:null,description:null,nodeList:e,connectList:l(e)}}function d(e,t){let n=e&&typeof e==`object`?e:{},r=a(t);return{...r,...n,sealType:Array.isArray(n.sealType)?Array.from(new Set(n.sealType.map(String))):r.sealType}}function f(e){let t=e&&typeof e==`object`?e:{},n=t.location&&typeof t.location==`object`?t.location:{},r=n.pageList&&typeof n.pageList==`object`&&!Array.isArray(n.pageList)?Object.fromEntries(Object.entries(n.pageList).map(([e,t])=>[e,Array.isArray(t)?t.map(Number):[]])):{};return{mustSign:t.mustSign!==!1,placementId:t.placementId,pageId:t.pageId,pageIndex:typeof t.pageIndex==`number`?t.pageIndex:void 0,location:{signType:typeof n.signType==`string`?n.signType:`signature`,sealType:Array.isArray(n.sealType)?Array.from(new Set(n.sealType.map(String))):[],signTop:Number.isFinite(Number(n.signTop))?Number(n.signTop):0,signLeft:Number.isFinite(Number(n.signLeft))?Number(n.signLeft):0,signWidth:Number.isFinite(Number(n.signWidth))?Number(n.signWidth):142,signHeight:Number.isFinite(Number(n.signHeight))?Number(n.signHeight):57,pageList:r}}}function p(e){let t=e&&typeof e==`object`?e:u(),n=(Array.isArray(t.nodeList)?t.nodeList:[]).map((e,t)=>{let n=i(e),a=n.identity,o=a===`company`?`company`:`person`;return n.key=typeof n.key==`string`&&n.key?n.key:r(`Node${t}`),n.name=typeof n.name==`string`?n.name:``,n.description=n.description==null?null:String(n.description),n.customKey=n.customKey==null?null:String(n.customKey),n.config=n.config&&typeof n.config==`object`?n.config:{},n.multi=n.multi===!0,n.type===`sign`&&(a===void 0&&(n.identity=o),n.config.signRule=d(n.config.signRule,o),n.config.locationRules=Array.isArray(n.config.locationRules)?n.config.locationRules.map(f):[],n.multiCompletedCondition=n.multiCompletedCondition&&typeof n.multiCompletedCondition==`object`?{type:n.multiCompletedCondition.type===`ALL_PASS`?`ALL_PASS`:`ONE_PASS`,refusedType:n.multiCompletedCondition.refusedType===`ALL_PASS`?`ALL_PASS`:`ONE_PASS`,value:n.multiCompletedCondition.value??null}:{type:`ONE_PASS`,refusedType:`ONE_PASS`,value:null}),n}).sort((e,t)=>m(e.type)-m(t.type));return{key:t.key==null?null:String(t.key),name:t.name==null?null:String(t.name),description:t.description==null?null:String(t.description),nodeList:n,connectList:Array.isArray(t.connectList)?i(t.connectList):[]}}function m(e){return e===`start`?0:e===`sign`?1:e===`end`?3:2}function h(e){let t=[],n=e.nodeList||[],r=n.filter(e=>e.type===`start`),i=n.filter(e=>e.type===`end`),a=n.filter(e=>e.type===`sign`);r.length!==1&&t.push({type:`flow`,code:`FLOW_START_COUNT_INVALID`,message:`流程必须包含一个开始节点`}),i.length!==1&&t.push({type:`flow`,code:`FLOW_END_COUNT_INVALID`,message:`流程必须包含一个结束节点`}),a.length||t.push({type:`flow`,code:`FLOW_SIGN_NODE_REQUIRED`,message:`流程至少需要一个签署节点`}),n[0]?.type!==`start`&&t.push({type:`flow`,code:`FLOW_START_NOT_FIRST`,message:`开始节点必须位于首位`}),n.length&&n[n.length-1]?.type!==`end`&&t.push({type:`flow`,code:`FLOW_END_NOT_LAST`,message:`结束节点必须位于末位`});let o=new Set,s=new Set;for(let e of n){if(o.has(e.key)&&t.push({type:`flow`,code:`FLOW_NODE_KEY_DUPLICATE`,nodeKey:e.key,message:`节点 key 不能重复`}),o.add(e.key),e.type!==`start`&&e.type!==`sign`&&e.type!==`end`&&t.push({type:`node`,code:`FLOW_NODE_TYPE_UNSUPPORTED`,nodeKey:e.key,message:`不支持的节点类型`}),e.customKey&&(s.has(e.customKey)&&t.push({type:`flow`,code:`FLOW_CUSTOM_KEY_DUPLICATE`,nodeKey:e.key,message:`节点标识不能重复`}),s.add(e.customKey)),e.type!==`sign`)continue;let n=e.identity;e.name.trim()||t.push({type:`node`,code:`FLOW_NODE_NAME_REQUIRED`,nodeKey:e.key,message:`签署节点名称不能为空`}),e.customKey?.trim()||t.push({type:`node`,code:`FLOW_NODE_CUSTOM_KEY_REQUIRED`,nodeKey:e.key,message:`签署节点标识不能为空`}),n!==`person`&&n!==`company`&&t.push({type:`node`,code:`FLOW_NODE_IDENTITY_INVALID`,nodeKey:e.key,message:`签署主体必须是个人或企业`});let r=e.config.signRule;r?(r.mustSeal&&r.cannotSeal&&t.push({type:`node`,code:`FLOW_SIGN_RULE_CONFLICT`,nodeKey:e.key,message:`印章规则不能同时必选和禁止`}),r.mustSignature&&r.cannotSignature&&t.push({type:`node`,code:`FLOW_SIGN_RULE_CONFLICT`,nodeKey:e.key,message:`签名规则不能同时必选和禁止`}),r.mustSeal&&!r.sealType.length&&t.push({type:`node`,code:`FLOW_SIGN_RULE_SEAL_TYPE_REQUIRED`,nodeKey:e.key,message:`必须盖章时至少选择一种印章类型`}),r.cannotSeal&&r.sealType.length&&t.push({type:`node`,code:`FLOW_SIGN_RULE_SEAL_TYPE_FORBIDDEN`,nodeKey:e.key,message:`禁止盖章时不能指定印章类型`}),r.noneVerify&&(r.smsVerify||r.faceVerify||r.passwordVerify)&&t.push({type:`node`,code:`FLOW_VERIFY_RULE_CONFLICT`,nodeKey:e.key,message:`免验证不能与短信、人脸或密码验证同时启用`}),n===`person`&&(r.mustSeal||r.sealType.length||r.perforationSealEnable)&&t.push({type:`node`,code:`FLOW_PERSON_SEAL_FORBIDDEN`,nodeKey:e.key,message:`个人节点不能配置印章或骑缝章`})):t.push({type:`node`,code:`FLOW_SIGN_RULE_REQUIRED`,nodeKey:e.key,message:`签署规则不能为空`});let i=e.config.locationRules||[];i.length||t.push({type:`node`,code:`FLOW_LOCATION_REQUIRED`,nodeKey:e.key,message:`请至少设置一个签署位置`});for(let n of i)_(t,e,n,r)}let c=g(n);return(e.connectList.length!==c.length||e.connectList.some((e,t)=>e.sourceKey!==c[t].sourceKey||e.targetKey!==c[t].targetKey))&&t.push({type:`flow`,code:`FLOW_CONNECT_INVALID`,message:`流程连接必须与节点顺序一致`}),t}function g(e){return e.slice(0,-1).map((t,n)=>({sourceKey:t.key,targetKey:e[n+1].key}))}function _(e,n,r,i){let a=r.location,o=a?.signType,s={type:`location`,nodeKey:n.key,placementId:r.placementId};(!a||!t.has(o))&&e.push({...s,code:`FLOW_LOCATION_TYPE_INVALID`,message:`签署位置类型无效`}),(!a||[a.signTop,a.signLeft,a.signWidth,a.signHeight].some(e=>!Number.isFinite(e)||e<0)||a.signWidth<=0||a.signHeight<=0)&&e.push({...s,code:`FLOW_LOCATION_GEOMETRY_INVALID`,message:`签署位置尺寸和坐标必须是正数`}),!a?.pageList||!Object.keys(a.pageList).length?e.push({...s,code:`FLOW_LOCATION_PAGE_REQUIRED`,message:`签署位置必须包含页码`}):Object.entries(a.pageList).some(([e,t])=>!e.trim()||!Array.isArray(t)||!t.length||t.some(e=>!Number.isInteger(e)||e<0))&&e.push({...s,code:`FLOW_LOCATION_PAGE_INVALID`,message:`文件标识不能为空,页码必须是非负整数数组(第一页为 0)`}),r.pageIndex!==void 0&&(!Number.isInteger(r.pageIndex)||r.pageIndex<0)&&e.push({...s,code:`FLOW_LOCATION_PAGE_INDEX_INVALID`,message:`位置页索引必须是非负整数(第一页为 0)`}),(o===`seal`||o===`acrossSeal`)&&!a.sealType?.length&&e.push({...s,code:`FLOW_LOCATION_SEAL_TYPE_REQUIRED`,message:`印章位置必须选择印章类型`}),(o===`seal`||o===`acrossSeal`)&&i?.sealType.length&&a.sealType?.some(e=>!i.sealType.includes(e))&&e.push({...s,code:`FLOW_LOCATION_SEAL_TYPE_MISMATCH`,message:`位置使用的印章类型不在节点允许范围内`}),o!==`seal`&&o!==`acrossSeal`&&a.sealType?.length&&e.push({...s,code:`FLOW_LOCATION_SEAL_TYPE_FORBIDDEN`,message:`非印章位置不能携带印章类型`}),n.identity===`person`&&(o===`seal`||o===`acrossSeal`)&&e.push({...s,code:`FLOW_LOCATION_PERSON_SEAL_FORBIDDEN`,message:`个人节点不能配置印章位置`}),o===`acrossSeal`&&(n.identity!==`company`||!i?.perforationSealEnable)&&e.push({...s,code:`FLOW_LOCATION_ACROSS_SEAL_FORBIDDEN`,message:`骑缝章仅企业节点且开启骑缝章规则时可用`}),i&&(o===`signature`&&i.cannotSignature||(o===`seal`||o===`acrossSeal`)&&i.cannotSeal)&&e.push({...s,code:`FLOW_LOCATION_RULE_MISMATCH`,message:`签署位置类型不符合当前签署规则`})}function v(t){let n=(0,e.ref)(p(t)),r=(0,e.shallowRef)(n.value.nodeList.find(e=>e.type===`sign`)?.key||n.value.nodeList[0]?.key);return{value:n,selectedKey:r,selectedNode:(0,e.computed)(()=>n.value.nodeList.find(e=>e.key===r.value)),replace:e=>{n.value=p(e)},addSignNode:()=>{let e=new Set(n.value.nodeList.map(e=>e.customKey).filter(Boolean)),t=n.value.nodeList.filter(e=>e.type===`sign`).length+1;for(;e.has(`signer_${t}`);)t+=1;let i=c(t);return n.value.nodeList.splice(Math.max(0,n.value.nodeList.length-1),0,i),n.value.connectList=l(n.value.nodeList),r.value=i.key,i},removeSignNode:e=>{let t=n.value.nodeList.findIndex(t=>t.key===e&&t.type===`sign`);t<0||(n.value.nodeList.splice(t,1),n.value.connectList=l(n.value.nodeList),r.value===e&&(r.value=n.value.nodeList.find(e=>e.type===`sign`)?.key||n.value.nodeList[0]?.key))},moveSignNode:(e,t)=>{let r=n.value.nodeList.findIndex(t=>t.key===e&&t.type===`sign`),i=r+t;if(r<1||i<1||i>=n.value.nodeList.length-1)return;let[a]=n.value.nodeList.splice(r,1);n.value.nodeList.splice(i,0,a),n.value.connectList=l(n.value.nodeList)},setNodeLocationRules:(e,t)=>{let r=n.value.nodeList.find(t=>t.key===e);!r||r.type!==`sign`||(r.config.locationRules=i(t))},validate:()=>h(n.value)}}exports.buildConnectList=l,exports.createDefaultSignRule=a,exports.createEndNode=s,exports.createId=r,exports.createInitialFlow=u,exports.createSignNode=c,exports.createStartNode=o,exports.normalizeContractSigningFlow=p,exports.normalizeSignRule=d,exports.useContractSigningFlow=v,exports.validateContractSigningFlow=h;
1
+ require(`../../../../_virtual/_rolldown/runtime.cjs`);let e=require(`vue`);var t=new Set([`signature`,`seal`,`acrossSeal`,`time`]),n=0;function r(e){return n+=1,`${e}_${Date.now().toString(36)}_${n.toString(36)}`}function i(e){return JSON.parse(JSON.stringify(e))}function a(e=`person`){return{cannotSeal:e===`person`,mustSeal:!1,sealType:[],mustSignature:!0,cannotSignature:!1,cannotExtraLocations:!1,batchFunctionEnable:!1,refuseFunctionEnable:!0,perforationSealEnable:!1,smsVerify:!0,faceVerify:!1,passwordVerify:!1,noneVerify:!1}}function o(){return{key:r(`Event`),name:`发起合同`,description:`合同创建后进入签署流程`,type:`start`,customKey:`start`,config:{},properties:null,multi:!1}}function s(){return{key:r(`Event`),name:`签署完成`,description:`所有签署节点完成后结束`,type:`end`,customKey:`end`,config:{},properties:null,multi:!1,autoComplete:!0}}function c(e=1){return{key:r(`Activity`),name:`签署方 ${e}`,description:null,type:`sign`,customKey:`signer_${e}`,config:{signRule:a(`person`),locationRules:[]},properties:null,multi:!1,identity:`person`,multiCompletedCondition:{type:`ONE_PASS`,refusedType:`ONE_PASS`,value:null}}}function l(e){return e.slice(0,-1).map((t,n)=>({key:r(`Flow`),type:`BooleanConnect`,name:null,sourceKey:t.key,targetKey:e[n+1].key,priority:1,description:null,connectName:`是否通过-连接器`,connectClass:`com.kgo.flow.common.engine.domain.connect.BooleanConnect`,configClassName:`java.lang.Object`,configClass:`java.lang.Object`,config:null}))}function u(){let e=[o(),c(1),s()];return{key:null,name:null,description:null,nodeList:e,connectList:l(e)}}function d(e,t){let n=e&&typeof e==`object`?e:{},r=a(t);return{...r,...n,sealType:Array.isArray(n.sealType)?Array.from(new Set(n.sealType.map(String))):r.sealType}}function f(e){let t=e&&typeof e==`object`?e:{},n=t.location&&typeof t.location==`object`?t.location:{},r=n.pageList&&typeof n.pageList==`object`&&!Array.isArray(n.pageList)?Object.fromEntries(Object.entries(n.pageList).map(([e,t])=>[e,Array.isArray(t)?t.map(Number):[]])):{};return{mustSign:t.mustSign!==!1,placementId:t.placementId,pageId:t.pageId,pageIndex:typeof t.pageIndex==`number`?t.pageIndex:void 0,location:{signType:typeof n.signType==`string`?n.signType:`signature`,sealType:Array.isArray(n.sealType)?Array.from(new Set(n.sealType.map(String))):[],signTop:Number.isFinite(Number(n.signTop))?Number(n.signTop):0,signLeft:Number.isFinite(Number(n.signLeft))?Number(n.signLeft):0,signWidth:Number.isFinite(Number(n.signWidth))?Number(n.signWidth):142,signHeight:Number.isFinite(Number(n.signHeight))?Number(n.signHeight):57,pageList:r}}}function p(e){let t=e&&typeof e==`object`?e:u(),n=(Array.isArray(t.nodeList)?t.nodeList:[]).map((e,t)=>{let n=i(e),a=n.identity,o=a===`company`?`company`:`person`;return n.key=typeof n.key==`string`&&n.key?n.key:r(`Node${t}`),n.name=typeof n.name==`string`?n.name:``,n.description=n.description==null?null:String(n.description),n.customKey=n.customKey==null?null:String(n.customKey),n.config=n.config&&typeof n.config==`object`?n.config:{},n.multi=n.multi===!0,n.type===`sign`&&(a===void 0&&(n.identity=o),n.config.signRule=d(n.config.signRule,o),n.config.locationRules=Array.isArray(n.config.locationRules)?n.config.locationRules.map(f):[],n.multiCompletedCondition=n.multiCompletedCondition&&typeof n.multiCompletedCondition==`object`?{type:n.multiCompletedCondition.type===`ALL_PASS`?`ALL_PASS`:`ONE_PASS`,refusedType:n.multiCompletedCondition.refusedType===`ALL_PASS`?`ALL_PASS`:`ONE_PASS`,value:n.multiCompletedCondition.value??null}:{type:`ONE_PASS`,refusedType:`ONE_PASS`,value:null}),n}).sort((e,t)=>m(e.type)-m(t.type));return{key:t.key==null?null:String(t.key),name:t.name==null?null:String(t.name),description:t.description==null?null:String(t.description),nodeList:n,connectList:Array.isArray(t.connectList)?i(t.connectList):[]}}function m(e){return e===`start`?0:e===`sign`?1:e===`end`?3:2}function h(e,t){let n=[],r=e.nodeList||[],i=r.filter(e=>e.type===`start`),a=r.filter(e=>e.type===`end`),o=r.filter(e=>e.type===`sign`);i.length!==1&&n.push({type:`flow`,code:`FLOW_START_COUNT_INVALID`,message:`流程必须包含一个开始节点`}),a.length!==1&&n.push({type:`flow`,code:`FLOW_END_COUNT_INVALID`,message:`流程必须包含一个结束节点`}),o.length||n.push({type:`flow`,code:`FLOW_SIGN_NODE_REQUIRED`,message:`流程至少需要一个签署节点`}),r[0]?.type!==`start`&&n.push({type:`flow`,code:`FLOW_START_NOT_FIRST`,message:`开始节点必须位于首位`}),r.length&&r[r.length-1]?.type!==`end`&&n.push({type:`flow`,code:`FLOW_END_NOT_LAST`,message:`结束节点必须位于末位`});let s=new Set,c=new Set;for(let e of r){if(s.has(e.key)&&n.push({type:`flow`,code:`FLOW_NODE_KEY_DUPLICATE`,nodeKey:e.key,message:`节点 key 不能重复`}),s.add(e.key),e.type!==`start`&&e.type!==`sign`&&e.type!==`end`&&n.push({type:`node`,code:`FLOW_NODE_TYPE_UNSUPPORTED`,nodeKey:e.key,message:`不支持的节点类型`}),e.customKey&&(c.has(e.customKey)&&n.push({type:`flow`,code:`FLOW_CUSTOM_KEY_DUPLICATE`,nodeKey:e.key,message:`节点标识不能重复`}),c.add(e.customKey)),e.type!==`sign`)continue;let r=e.identity;e.name.trim()||n.push({type:`node`,code:`FLOW_NODE_NAME_REQUIRED`,nodeKey:e.key,message:`签署节点名称不能为空`}),e.customKey?.trim()||n.push({type:`node`,code:`FLOW_NODE_CUSTOM_KEY_REQUIRED`,nodeKey:e.key,message:`签署节点标识不能为空`}),r!==`person`&&r!==`company`&&n.push({type:`node`,code:`FLOW_NODE_IDENTITY_INVALID`,nodeKey:e.key,message:`签署主体必须是个人或企业`});let i=e.config.signRule;i?(i.mustSeal&&i.cannotSeal&&n.push({type:`node`,code:`FLOW_SIGN_RULE_CONFLICT`,nodeKey:e.key,message:`印章规则不能同时必选和禁止`}),i.mustSignature&&i.cannotSignature&&n.push({type:`node`,code:`FLOW_SIGN_RULE_CONFLICT`,nodeKey:e.key,message:`签名规则不能同时必选和禁止`}),i.mustSeal&&!i.sealType.length&&n.push({type:`node`,code:`FLOW_SIGN_RULE_SEAL_TYPE_REQUIRED`,nodeKey:e.key,message:`必须盖章时至少选择一种印章类型`}),i.cannotSeal&&i.sealType.length&&n.push({type:`node`,code:`FLOW_SIGN_RULE_SEAL_TYPE_FORBIDDEN`,nodeKey:e.key,message:`禁止盖章时不能指定印章类型`}),i.noneVerify&&(i.smsVerify||i.faceVerify||i.passwordVerify)&&n.push({type:`node`,code:`FLOW_VERIFY_RULE_CONFLICT`,nodeKey:e.key,message:`免验证不能与短信、人脸或密码验证同时启用`}),r===`person`&&(i.mustSeal||i.sealType.length||i.perforationSealEnable)&&n.push({type:`node`,code:`FLOW_PERSON_SEAL_FORBIDDEN`,nodeKey:e.key,message:`个人节点不能配置印章或骑缝章`})):n.push({type:`node`,code:`FLOW_SIGN_RULE_REQUIRED`,nodeKey:e.key,message:`签署规则不能为空`});let a=e.config.locationRules||[];!a.length&&t?.requireLocation!==!1&&n.push({type:`node`,code:`FLOW_LOCATION_REQUIRED`,nodeKey:e.key,message:`请至少设置一个签署位置`});for(let t of a)_(n,e,t,i)}let l=g(r);return(e.connectList.length!==l.length||e.connectList.some((e,t)=>e.sourceKey!==l[t].sourceKey||e.targetKey!==l[t].targetKey))&&n.push({type:`flow`,code:`FLOW_CONNECT_INVALID`,message:`流程连接必须与节点顺序一致`}),n}function g(e){return e.slice(0,-1).map((t,n)=>({sourceKey:t.key,targetKey:e[n+1].key}))}function _(e,n,r,i){let a=r.location,o=a?.signType,s={type:`location`,nodeKey:n.key,placementId:r.placementId};(!a||!t.has(o))&&e.push({...s,code:`FLOW_LOCATION_TYPE_INVALID`,message:`签署位置类型无效`}),(!a||[a.signTop,a.signLeft,a.signWidth,a.signHeight].some(e=>!Number.isFinite(e)||e<0)||a.signWidth<=0||a.signHeight<=0)&&e.push({...s,code:`FLOW_LOCATION_GEOMETRY_INVALID`,message:`签署位置尺寸和坐标必须是正数`}),!a?.pageList||!Object.keys(a.pageList).length?e.push({...s,code:`FLOW_LOCATION_PAGE_REQUIRED`,message:`签署位置必须包含页码`}):Object.entries(a.pageList).some(([e,t])=>!e.trim()||!Array.isArray(t)||!t.length||t.some(e=>!Number.isInteger(e)||e<0))&&e.push({...s,code:`FLOW_LOCATION_PAGE_INVALID`,message:`文件标识不能为空,页码必须是非负整数数组(第一页为 0)`}),r.pageIndex!==void 0&&(!Number.isInteger(r.pageIndex)||r.pageIndex<0)&&e.push({...s,code:`FLOW_LOCATION_PAGE_INDEX_INVALID`,message:`位置页索引必须是非负整数(第一页为 0)`}),(o===`seal`||o===`acrossSeal`)&&!a.sealType?.length&&e.push({...s,code:`FLOW_LOCATION_SEAL_TYPE_REQUIRED`,message:`印章位置必须选择印章类型`}),(o===`seal`||o===`acrossSeal`)&&i?.sealType.length&&a.sealType?.some(e=>!i.sealType.includes(e))&&e.push({...s,code:`FLOW_LOCATION_SEAL_TYPE_MISMATCH`,message:`位置使用的印章类型不在节点允许范围内`}),o!==`seal`&&o!==`acrossSeal`&&a.sealType?.length&&e.push({...s,code:`FLOW_LOCATION_SEAL_TYPE_FORBIDDEN`,message:`非印章位置不能携带印章类型`}),n.identity===`person`&&(o===`seal`||o===`acrossSeal`)&&e.push({...s,code:`FLOW_LOCATION_PERSON_SEAL_FORBIDDEN`,message:`个人节点不能配置印章位置`}),o===`acrossSeal`&&(n.identity!==`company`||!i?.perforationSealEnable)&&e.push({...s,code:`FLOW_LOCATION_ACROSS_SEAL_FORBIDDEN`,message:`骑缝章仅企业节点且开启骑缝章规则时可用`}),i&&(o===`signature`&&i.cannotSignature||(o===`seal`||o===`acrossSeal`)&&i.cannotSeal)&&e.push({...s,code:`FLOW_LOCATION_RULE_MISMATCH`,message:`签署位置类型不符合当前签署规则`})}function v(t){let n=(0,e.ref)(p(t)),r=(0,e.shallowRef)(n.value.nodeList.find(e=>e.type===`sign`)?.key||n.value.nodeList[0]?.key);return{value:n,selectedKey:r,selectedNode:(0,e.computed)(()=>n.value.nodeList.find(e=>e.key===r.value)),replace:e=>{n.value=p(e)},addSignNode:()=>{let e=new Set(n.value.nodeList.map(e=>e.customKey).filter(Boolean)),t=n.value.nodeList.filter(e=>e.type===`sign`).length+1;for(;e.has(`signer_${t}`);)t+=1;let i=c(t);return n.value.nodeList.splice(Math.max(0,n.value.nodeList.length-1),0,i),n.value.connectList=l(n.value.nodeList),r.value=i.key,i},removeSignNode:e=>{let t=n.value.nodeList.findIndex(t=>t.key===e&&t.type===`sign`);t<0||(n.value.nodeList.splice(t,1),n.value.connectList=l(n.value.nodeList),r.value===e&&(r.value=n.value.nodeList.find(e=>e.type===`sign`)?.key||n.value.nodeList[0]?.key))},moveSignNode:(e,t)=>{let r=n.value.nodeList.findIndex(t=>t.key===e&&t.type===`sign`),i=r+t;if(r<1||i<1||i>=n.value.nodeList.length-1)return;let[a]=n.value.nodeList.splice(r,1);n.value.nodeList.splice(i,0,a),n.value.connectList=l(n.value.nodeList)},setNodeLocationRules:(e,t)=>{let r=n.value.nodeList.find(t=>t.key===e);!r||r.type!==`sign`||(r.config.locationRules=i(t))},validate:e=>h(n.value,e)}}exports.buildConnectList=l,exports.createDefaultSignRule=a,exports.createEndNode=s,exports.createId=r,exports.createInitialFlow=u,exports.createSignNode=c,exports.createStartNode=o,exports.normalizeContractSigningFlow=p,exports.normalizeSignRule=d,exports.useContractSigningFlow=v,exports.validateContractSigningFlow=h;