@guodun/antdv 1.7.7 → 1.7.9

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 (47) hide show
  1. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateChoiceOptionsEditor.mjs +5 -0
  2. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateChoiceOptionsEditor.vue.mjs +132 -0
  3. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateDesignerInspector.vue.mjs +209 -246
  4. package/dist/es/components/pro-contract-template-designer/src/DesignerPage.vue.mjs +395 -325
  5. package/dist/es/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.mjs +1047 -1015
  6. package/dist/es/components/pro-contract-template-designer/src/composables/use-auto-pagination.mjs +122 -63
  7. package/dist/es/components/pro-contract-template-designer/src/composables/use-template-designer.mjs +192 -162
  8. package/dist/es/components/pro-contract-template-designer/src/extensions/template-variable.mjs +70 -68
  9. package/dist/es/components/pro-contract-template-designer/src/utils/advanced-controls.mjs +63 -25
  10. package/dist/es/components/pro-contract-template-designer/src/utils/caret-viewport.mjs +41 -0
  11. package/dist/es/components/pro-contract-template-designer/src/utils/template-renderer.mjs +129 -75
  12. package/dist/es/components/pro-contract-template-designer/src/utils/template-variable-render.mjs +17 -5
  13. package/dist/es/components/pro-contract-template-designer/style/index.css +1 -1
  14. package/dist/es/index.mjs +22 -22
  15. package/dist/es/node_modules/@tiptap/pm/dist/transform/index.mjs +1 -0
  16. package/dist/es/node_modules/prosemirror-transform/dist/index.mjs +161 -67
  17. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateChoiceOptionsEditor.cjs +1 -0
  18. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateChoiceOptionsEditor.vue.cjs +1 -0
  19. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateDesignerInspector.vue.cjs +1 -2
  20. package/dist/lib/components/pro-contract-template-designer/src/DesignerPage.vue.cjs +2 -2
  21. package/dist/lib/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.cjs +1 -1
  22. package/dist/lib/components/pro-contract-template-designer/src/composables/use-auto-pagination.cjs +1 -1
  23. package/dist/lib/components/pro-contract-template-designer/src/composables/use-template-designer.cjs +4 -4
  24. package/dist/lib/components/pro-contract-template-designer/src/extensions/template-variable.cjs +1 -1
  25. package/dist/lib/components/pro-contract-template-designer/src/utils/advanced-controls.cjs +1 -1
  26. package/dist/lib/components/pro-contract-template-designer/src/utils/caret-viewport.cjs +1 -0
  27. package/dist/lib/components/pro-contract-template-designer/src/utils/template-renderer.cjs +3 -3
  28. package/dist/lib/components/pro-contract-template-designer/src/utils/template-variable-render.cjs +1 -1
  29. package/dist/lib/components/pro-contract-template-designer/style/index.css +1 -1
  30. package/dist/lib/index.cjs +1 -1
  31. package/dist/lib/node_modules/@tiptap/pm/dist/transform/index.cjs +1 -0
  32. package/dist/lib/node_modules/prosemirror-transform/dist/index.cjs +2 -2
  33. package/dist/theme/icon.css +1 -1
  34. package/dist/theme/index.css +1 -1
  35. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateChoiceOptionsEditor.vue.d.ts +12 -0
  36. package/dist/types/components/pro-contract-template-designer/src/DesignerPage.vue.d.ts +14 -0
  37. package/dist/types/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.d.ts +2 -0
  38. package/dist/types/components/pro-contract-template-designer/src/composables/use-auto-pagination.d.ts +17 -0
  39. package/dist/types/components/pro-contract-template-designer/src/composables/use-template-designer.d.ts +5 -1
  40. package/dist/types/components/pro-contract-template-designer/src/types.d.ts +15 -2
  41. package/dist/types/components/pro-contract-template-designer/src/utils/advanced-controls.d.ts +10 -0
  42. package/dist/types/components/pro-contract-template-designer/src/utils/caret-viewport.d.ts +18 -0
  43. package/dist/types/components/pro-contract-template-designer/src/utils/template-variable-render.d.ts +7 -0
  44. package/package.json +5 -5
  45. package/dist/theme/dept-selector.css +0 -1
  46. package/dist/theme/pro-selector-group.css +0 -1
  47. package/dist/theme/role-selector.css +0 -1
@@ -1,16 +1,28 @@
1
1
  import { ComputedRef, Ref } from 'vue';
2
2
  import { JSONContent } from '@tiptap/core';
3
+ import { Mark } from '@tiptap/pm/model';
4
+ import { Selection } from '@tiptap/pm/state';
3
5
  import { ContractTemplateData, ContractTemplatePage, ContractTemplatePageSize } from '../types';
6
+ /** 溢出正文中的选区;跨异步挂载前须验证源页未发生新输入、选区或焦点变化。 */
7
+ export interface AutoPaginationSelection {
8
+ selection: Selection;
9
+ storedMarks: readonly Mark[] | null;
10
+ isCurrent: () => boolean;
11
+ }
4
12
  export interface AutoPaginationPageRef {
5
13
  isReady?: () => boolean;
6
14
  isComposing?: () => boolean;
15
+ hasOverflowSelection?: () => boolean;
16
+ isUntouchedPaginationBlank?: (ownerPage?: ContractTemplatePage) => boolean;
7
17
  hasOverflowContent: () => boolean;
8
18
  splitOverflowContent: () => {
9
19
  page: ContractTemplatePage;
10
20
  overflowContent: JSONContent[];
11
21
  overflowHtml: string;
22
+ selection?: AutoPaginationSelection;
12
23
  } | undefined;
13
24
  prependContent: (content: JSONContent[]) => ContractTemplatePage | undefined;
25
+ restorePaginationSelection?: (selection: AutoPaginationSelection, expectedHtml: string) => void;
14
26
  }
15
27
  declare function createDocContent(content: JSONContent[]): ContractTemplatePage['contentJson'];
16
28
  /**
@@ -37,6 +49,11 @@ export declare function useAutoPagination(options: {
37
49
  notifyPageLimit: (source: 'add' | 'duplicate' | 'auto-pagination') => void;
38
50
  /** 单批工作预算;超过后通过浏览器 task 真正让出线程,而不是串联 nextTick 微任务。 */
39
51
  timeBudgetMs?: number;
52
+ /**
53
+ * 分页搬运前记录聚焦光标的视口位置,返回的函数在搬运后恢复。
54
+ * 搬运是跨 editor 的文档改动,不能让浏览器或 PM 的滚动锚定决定画布位置。
55
+ */
56
+ captureViewport?: () => (() => void) | undefined;
40
57
  }): {
41
58
  scheduleAutoPaginate: (pageId?: string) => void;
42
59
  scheduleFullPagination: () => void;
@@ -21,7 +21,11 @@ export declare const CONTRACT_TEMPLATE_RESERVED_VARIABLE_KEYS: Set<string>;
21
21
  export declare function validateContractTemplateVariableKey(key: unknown, variables: ContractTemplateVariable[], currentVariableId?: string): string;
22
22
  /** 页数配置只接受正整数;非法值回落到默认 20 页。 */
23
23
  export declare function normalizeContractTemplateMaxPages(value: unknown): number;
24
- /** 正文可插入的变量类型及其默认尺寸。 */
24
+ /** 图片控件的默认标签和尺寸;默认不进控件库,旧模板仍靠它回显。 */
25
+ export declare const DEFAULT_IMAGE_FIELD_TYPE: ContractTemplateFieldTypeOption;
26
+ /** 复选框控件的默认标签和尺寸;默认不进控件库,旧模板仍靠它回显。 */
27
+ export declare const DEFAULT_CHECKBOX_FIELD_TYPE: ContractTemplateFieldTypeOption;
28
+ /** 正文可插入的变量类型及其默认尺寸。图片和复选框改由开关追加。 */
25
29
  export declare const DEFAULT_FIELD_TYPES: ContractTemplateFieldTypeOption[];
26
30
  export declare const DEFAULT_ADVANCED_CHOICE_FIELD_TYPES: ContractTemplateFieldTypeOption[];
27
31
  export declare const DEFAULT_BUILTIN_SELECTOR_FIELD_TYPES: ContractTemplateFieldTypeOption[];
@@ -703,7 +703,7 @@ export interface ContractTemplateDesignerProps {
703
703
  imageUpload?: ContractTemplateImageUploadHandler;
704
704
  /**
705
705
  * 右侧可拖拽模板变量类型配置
706
- * @default 内置 text/date/number/image/checkbox
706
+ * @default 内置 text/date/number/select/radio
707
707
  */
708
708
  variableTypes?: ContractTemplateFieldTypeOption[];
709
709
  /**
@@ -711,7 +711,20 @@ export interface ContractTemplateDesignerProps {
711
711
  * 由宿主加载已有版式;设计器本身不持久化自定义版式。
712
712
  */
713
713
  signingLayoutPresets?: ContractTemplateSigningLayoutPreset[];
714
- /** 展示下拉框与单选框工具;默认关闭,与组织选择器能力独立。 */
714
+ /**
715
+ * 在控件库中展示图片。默认关闭;旧模板里已有的图片变量仍可编辑。
716
+ * @default false
717
+ */
718
+ showImageControl?: boolean;
719
+ /**
720
+ * 在控件库中展示复选框。默认关闭;旧模板里已有的复选框变量仍可编辑。
721
+ * @default false
722
+ */
723
+ showCheckboxControl?: boolean;
724
+ /**
725
+ * 兼容开关。下拉框和单选框已进入默认控件清单;显式开启时仍会并入,并按类型去重。
726
+ * @default false
727
+ */
715
728
  showAdvancedChoiceControls?: boolean;
716
729
  /** 展示用户、部门、角色、组织架构工具;默认关闭。 */
717
730
  showBuiltinSelectorControls?: boolean;
@@ -7,6 +7,16 @@ export declare function formatContractTemplateRenderValue(value: ContractTemplat
7
7
  /** data-* 里使用 URI 编码承载 JSON,避免引号与无 DOM 正则解析互相冲突。 */
8
8
  export declare function encodeContractTemplateJsonAttribute(value: unknown): string;
9
9
  export declare function decodeContractTemplateJsonAttribute<T>(value: unknown): T | undefined;
10
+ /** 单选选项的 HTML。label 已转义,调用方不要再包一层 escape。 */
11
+ export declare function buildRadioOptionsHtml(options: unknown, selectedValue?: unknown): string;
12
+ /** 单选选项的 Tiptap DOM 描述,和 {@link buildRadioOptionsHtml} 同一套圆点与文案。 */
13
+ export declare function buildRadioOptionNodes(options: unknown, selectedValue?: unknown): ["span", {
14
+ class: string;
15
+ }, ["span", {
16
+ class: string;
17
+ }, string], string][];
18
+ /** 节点 attrs 或 data-control-options 里的选项都收成可渲染列表。 */
19
+ export declare function readContractTemplateControlOptions(value: unknown): ContractTemplateControlOption[];
10
20
  export declare function normalizeContractTemplateControlOptions(payload: unknown, source: Extract<ContractTemplateRemoteDataSource, {
11
21
  kind: 'url';
12
22
  }> | undefined, fallbackType: string): ContractTemplateControlOption[];
@@ -0,0 +1,18 @@
1
+ import { EditorView } from '@tiptap/pm/view';
2
+ /** 光标距离画布可视边缘的留白,单位为视口像素。 */
3
+ export declare const CARET_SCROLL_MARGIN = 48;
4
+ /**
5
+ * 以最小滚动让光标在画布中可见。
6
+ *
7
+ * 画布不在 scale 变换内,视口像素差就等于 scrollTop 差,缩放下不需要再换算。
8
+ * 光标若落在纸张被裁切的区域,先夹到纸张可见底边,避免滚到两页之间的空白。
9
+ * 返回 true 表示已经接管滚动;拿不到画布或量不到光标时返回 false,交给 ProseMirror 默认行为。
10
+ */
11
+ export declare function scrollCaretIntoCanvas(view: EditorView, getScrollContainer: () => HTMLElement | undefined, getPageElement: () => HTMLElement | undefined): boolean;
12
+ /**
13
+ * 记录聚焦光标的视口 top;恢复时把画布按位移量反向补偿,保证用户视线不动。
14
+ *
15
+ * `isSafe` 在恢复时再判断:分页循环可能在搬运过程中卸载、切文件或切到只读,
16
+ * 这些情况下直接返回,不滚动、不抛错。光标已交接到别的编辑器时也不补偿。
17
+ */
18
+ export declare function captureCaretViewport(container: HTMLElement | null | undefined, isSafe?: () => boolean): (() => void) | undefined;
@@ -16,6 +16,13 @@ export interface TemplateVariableDisplayOptions {
16
16
  useGrouping?: boolean;
17
17
  checkedText?: string;
18
18
  uncheckedText?: string;
19
+ /** 下拉默认值是选项 value,有选项时映射成 label。 */
20
+ options?: Array<{
21
+ value?: string | number;
22
+ label?: string;
23
+ }>;
24
+ /** 多选下拉的 defaultValue 仍是单个字符串,展示时忽略,避免已保存的默认值被当成选中项。 */
25
+ multiple?: boolean;
19
26
  }
20
27
  /**
21
28
  * 在显示选项之上追加外观选项。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@guodun/antdv",
3
- "version": "1.7.7",
3
+ "version": "1.7.9",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "CHANGELOG.md",
@@ -52,8 +52,8 @@
52
52
  "vite": "^8.0.1",
53
53
  "vite-plugin-dts": "^4.5.4",
54
54
  "vue-tsc": "^3.2.5",
55
- "@guodun/theme": "^1.0.1",
56
- "@guodun/tsconfig": "^1.0.0"
55
+ "@guodun/tsconfig": "^1.0.0",
56
+ "@guodun/theme": "^1.0.1"
57
57
  },
58
58
  "dependencies": {
59
59
  "@ant-design/icons-vue": "^7.0.1",
@@ -83,8 +83,8 @@
83
83
  "vue-types": "3.0.2",
84
84
  "vue": "^3.5.18",
85
85
  "@guodun/utils": "^1.0.0",
86
- "@guodun/contract-template-agent": "^0.1.0",
87
- "@guodun/contract-print-css": "^0.1.1"
86
+ "@guodun/contract-print-css": "^0.1.1",
87
+ "@guodun/contract-template-agent": "^0.1.0"
88
88
  },
89
89
  "scripts": {
90
90
  "build": "rm -rf dist/types && vite build && vite build --config vite.theme.config.ts",
@@ -1 +0,0 @@
1
- .gd-ant-dept-selector__shell{width:100%;min-width:0;container-type:inline-size}.gd-ant-dept-selector{width:100%;min-width:0}.gd-ant-dept-selector__modal-content{background:var(--gdant-neutral-0);grid-template-columns:minmax(0,3fr) minmax(260px,2fr);min-width:0;height:min(520px,68vh);min-height:360px;display:grid;overflow:hidden}.gd-ant-dept-selector__modal-content-left,.gd-ant-dept-selector__modal-content-right{box-sizing:border-box;min-width:0;min-height:0}.gd-ant-dept-selector__modal-content-left{gap:var(--gdant-spacing-sm);padding:var(--gdant-spacing-base);border-right:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);flex-direction:column;display:flex}.gd-ant-dept-selector__modal-content-left .gd-ant-dept-selector__search{flex:0 0 36px;height:36px}.gd-ant-dept-selector__modal-content-left .gd-ant-dept-selector__search .ant-input-prefix{justify-content:center;align-items:center;width:16px;height:16px;line-height:1;display:inline-flex}.gd-ant-dept-selector__modal-content-left .gd-ant-dept-selector__modal-content-left-tree{min-height:0;margin:0 calc(var(--gdant-spacing-xs) * -1);padding:0 var(--gdant-spacing-xs);scrollbar-width:thin;scrollbar-color:var(--gdant-neutral-300) transparent;flex:1;overflow:auto}.gd-ant-dept-selector__modal-content-left .gd-ant-dept-selector__modal-content-left-tree::-webkit-scrollbar{width:6px;height:6px}.gd-ant-dept-selector__modal-content-left .gd-ant-dept-selector__modal-content-left-tree::-webkit-scrollbar-track{background:0 0}.gd-ant-dept-selector__modal-content-left .gd-ant-dept-selector__modal-content-left-tree::-webkit-scrollbar-thumb{background:var(--gdant-neutral-300);border-radius:var(--gdant-radius-pill)}.gd-ant-dept-selector__modal-content-left>.ant-spin-nested-loading{flex:1;min-height:0}.gd-ant-dept-selector__modal-content-left>.ant-spin-nested-loading>.ant-spin-container{height:100%;min-height:0}.gd-ant-dept-selector__modal-content-left .ant-tree-treenode{box-sizing:border-box;align-items:center;width:100%;min-height:44px;display:flex}.gd-ant-dept-selector__modal-content-left .ant-tree-indent{flex:none;align-self:stretch;display:flex}.gd-ant-dept-selector__modal-content-left .ant-tree-indent-unit{flex:0 0 24px;width:24px}.gd-ant-dept-selector__modal-content-left .ant-tree-switcher{flex:0 0 24px;justify-content:center;align-items:center;width:24px;height:40px;margin:0;display:inline-flex}.gd-ant-dept-selector__modal-content-left .ant-tree-checkbox{width:20px;height:20px;margin:0 var(--gdant-spacing-xs) 0 0;box-sizing:border-box;flex:0 0 20px;justify-content:center;align-items:center;display:inline-flex}.gd-ant-dept-selector__modal-content-left .ant-tree-node-content-wrapper{min-width:0;min-height:40px;padding:0 var(--gdant-spacing-sm) 0 0;border-radius:var(--gdant-radius-md);box-sizing:border-box;transition:background-color var(--gdant-duration-normal) var(--gdant-easing-default), border-color var(--gdant-duration-normal) var(--gdant-easing-default);background:0 0;border:1px solid #0000;outline:none;flex:1;align-items:center;display:flex}.gd-ant-dept-selector__modal-content-left .ant-tree-iconEle{width:20px;height:20px;margin-right:var(--gdant-spacing-xs);flex:0 0 20px;justify-content:center;align-items:center;line-height:1;display:inline-flex}.gd-ant-dept-selector__modal-content-left .ant-tree-node-content-wrapper:hover{background:var(--gdant-neutral-50)}.gd-ant-dept-selector__modal-content-left .ant-tree-treenode:has(.ant-tree-checkbox-checked) .ant-tree-node-content-wrapper{border-color:var(--gdant-primary-200);background:var(--gdant-primary-50)}.gd-ant-dept-selector__modal-content-left .ant-tree-node-content-wrapper.ant-tree-node-selected{border-color:var(--gdant-primary-300);background:var(--gdant-primary-100)}.gd-ant-dept-selector__modal-content-left .ant-tree-treenode:focus-within .ant-tree-node-content-wrapper{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50)}.gd-ant-dept-selector__modal-content-left .ant-tree-title{text-overflow:ellipsis;white-space:nowrap;flex:1;align-items:center;min-width:0;min-height:20px;line-height:20px;display:flex;overflow:hidden}.gd-ant-dept-selector__modal-content-right{gap:var(--gdant-spacing-sm);padding:var(--gdant-spacing-base);background:var(--gdant-neutral-50);flex-direction:column;display:flex;overflow:hidden}.gd-ant-dept-selector__modal-content-right .gd-ant-dept-selector__modal-content-right-header{align-items:center;gap:var(--gdant-spacing-xs);color:var(--gdant-neutral-800);font-size:var(--gdant-text-body);font-weight:var(--gdant-font-semibold);flex:none;display:flex}.gd-ant-dept-selector__modal-content-right .gd-ant-dept-selector__modal-content-right-count{border-radius:var(--gdant-radius-pill);background:var(--gdant-primary-100);min-width:22px;color:var(--gdant-primary-600);font-size:var(--gdant-text-body-sm);font-weight:var(--gdant-font-medium);text-align:center;padding:1px 6px}.gd-ant-dept-selector__modal-content-right .gd-ant-dept-selector__modal-content-right-list{gap:var(--gdant-spacing-xs);scrollbar-width:thin;scrollbar-color:var(--gdant-neutral-300) transparent;flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden auto}.gd-ant-dept-selector__modal-content-right .gd-ant-dept-selector__modal-content-right-list::-webkit-scrollbar{width:6px;height:6px}.gd-ant-dept-selector__modal-content-right .gd-ant-dept-selector__modal-content-right-list::-webkit-scrollbar-track{background:0 0}.gd-ant-dept-selector__modal-content-right .gd-ant-dept-selector__modal-content-right-list::-webkit-scrollbar-thumb{background:var(--gdant-neutral-300);border-radius:var(--gdant-radius-pill)}.gd-ant-dept-selector__modal-content-right>.ant-empty{flex-direction:column;flex:1;justify-content:center;min-height:0;display:flex}.gd-ant-dept-selector__modal-content-right .gd-ant-dept-selector__modal-content-right-item{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);min-width:0;min-height:44px;padding:0 var(--gdant-spacing-sm);border-radius:var(--gdant-radius-md);transition:background-color var(--gdant-duration-normal) var(--gdant-easing-default);display:flex}.gd-ant-dept-selector__modal-content-right .gd-ant-dept-selector__modal-content-right-item:hover{background:var(--gdant-neutral-0)}.gd-ant-dept-selector__modal-content-right .gd-ant-dept-selector__modal-content-right-item .gd-ant-dept-selector__modal-content-right-item-label{align-items:center;gap:var(--gdant-spacing-xs);min-width:0;display:flex}.gd-ant-dept-selector__modal-content-right .gd-ant-dept-selector__modal-content-right-item .gd-ant-dept-selector__modal-content-right-item-label>span:first-child{flex:0 0 16px;justify-content:center;align-items:center;width:16px;height:16px;line-height:1;display:inline-flex}.gd-ant-dept-selector__modal-content-right .gd-ant-dept-selector__modal-content-right-item .gd-ant-dept-selector__modal-content-right-item-label>span:last-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--gdant-neutral-800);font-size:var(--gdant-text-body);overflow:hidden}.gd-ant-dept-selector__modal-content-right .gd-ant-dept-selector__modal-content-right-item .gd-ant-dept-selector__modal-content-right-item-del{border-radius:var(--gdant-radius-md);width:28px;height:28px;color:var(--gdant-neutral-500);cursor:pointer;background:0 0;border:0;flex:0 0 28px;place-items:center;padding:0;display:grid}.gd-ant-dept-selector__modal-content-right .gd-ant-dept-selector__modal-content-right-item .gd-ant-dept-selector__modal-content-right-item-del:hover,.gd-ant-dept-selector__modal-content-right .gd-ant-dept-selector__modal-content-right-item .gd-ant-dept-selector__modal-content-right-item-del:focus-visible{outline:2px solid var(--gdant-primary-300);outline-offset:1px;background:var(--gdant-error-50);color:var(--gdant-error-600)}.gd-ant-dept-selector__search-highlight{border-radius:var(--gdant-radius-xs);background:var(--gdant-primary-100);color:var(--gdant-primary-700);font-weight:var(--gdant-font-semibold)}.gd-ant-dept-selector__modal-content-left .ant-alert{flex:none}.gd-ant-dept-selector__modal-content-left .ant-tree-treenode{min-width:0}@container (width<=560px){.gd-ant-dept-selector__modal-content{grid-template-rows:minmax(220px,1.15fr) minmax(180px,.85fr);grid-template-columns:minmax(0,1fr);height:min(680px,74vh)}.gd-ant-dept-selector__modal-content-left{border-right:0;border-bottom:1px solid var(--gdant-neutral-200)}}@media (prefers-reduced-motion:reduce){.gd-ant-dept-selector__modal-content-right-item,.gd-ant-dept-selector__modal-content-left .ant-tree-node-content-wrapper{transition:none}}.gd-ant-dept-selector .selector-tags{width:100%;min-width:0}
@@ -1 +0,0 @@
1
- .gd-ant-pro-selector-group{min-width:0}.gd-ant-pro-selector-group-shell{width:100%;min-width:0;container-type:inline-size}.gd-ant-pro-selector-group-content{box-sizing:border-box;background:var(--gdant-neutral-0);grid-template-columns:minmax(0,3fr) minmax(280px,2fr);width:min(100%,960px);min-width:0;height:min(560px,68vh);min-height:400px;margin:0 auto;display:grid;overflow:hidden}.gd-ant-pro-selector-group-left,.gd-ant-pro-selector-group-right{box-sizing:border-box;min-width:0;min-height:0}.gd-ant-pro-selector-group-left{min-width:0;padding:0 var(--gdant-spacing-base) var(--gdant-spacing-base);background:var(--gdant-neutral-0);flex-direction:column;display:flex}.gd-ant-pro-selector-group-left .ant-tabs{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.gd-ant-pro-selector-group-left .ant-tabs-content-holder,.gd-ant-pro-selector-group-left .ant-tabs-content,.gd-ant-pro-selector-group-left .ant-tabs-tabpane{min-width:0;height:100%;min-height:0}.gd-ant-pro-selector-group-left .ant-tabs-content-holder{flex:1}.gd-ant-pro-selector-group-left .ant-tabs-nav{padding:0 var(--gdant-spacing-xs);margin:0;margin-bottom:var(--gdant-spacing-sm)}.gd-ant-pro-selector-group-left .ant-tabs-tab{margin:0 var(--gdant-spacing-sm) 0 0;padding:var(--gdant-spacing-md) var(--gdant-spacing-sm);color:var(--gdant-neutral-600)}.gd-ant-pro-selector-group-left .ant-tabs-tab:hover,.gd-ant-pro-selector-group-left .ant-tabs-tab-active .ant-tabs-tab-btn{color:var(--gdant-primary-600)}.gd-ant-pro-selector-group-left .ant-tabs-tab-btn:focus-visible{outline:2px solid var(--gdant-primary-300);outline-offset:2px;border-radius:var(--gdant-radius-sm)}.gd-ant-pro-selector-group-left .ant-tabs-ink-bar{border-radius:var(--gdant-radius-pill);background:var(--gdant-primary-500);height:2px}.gd-ant-pro-selector-group-tab-label{align-items:center;gap:var(--gdant-spacing-xs);display:inline-flex}.gd-ant-pro-selector-group-tab-count{min-width:20px;height:20px;padding:0 var(--gdant-spacing-xs);border-radius:var(--gdant-radius-pill);background:var(--gdant-primary-50);color:var(--gdant-primary-600);font-size:var(--gdant-text-body-sm);justify-content:center;align-items:center;line-height:1;display:inline-grid}.gd-ant-pro-selector-group-right{border-left:1px solid var(--gdant-neutral-200);min-width:0;padding:var(--gdant-spacing-base);background:var(--gdant-neutral-50);flex-direction:column;display:flex}.gd-ant-select-box{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.gd-ant-select-box_title{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);border-bottom:1px solid var(--gdant-neutral-200);min-height:40px;display:flex}.gd-ant-select-box_title_summary{align-items:center;gap:var(--gdant-spacing-xs);white-space:nowrap;min-width:0;display:flex}.gd-ant-select-box_title_heading{color:var(--gdant-neutral-700);font-size:var(--gdant-text-body);font-weight:var(--gdant-font-semibold)}.gd-ant-select-box_title_count{min-width:28px;padding:1px var(--gdant-spacing-xs);border-radius:var(--gdant-radius-pill);background:var(--gdant-primary-100);color:var(--gdant-primary-600);font-size:var(--gdant-text-body-sm);font-weight:var(--gdant-font-medium);text-align:center}.gd-ant-select-box_clear{min-width:44px;min-height:28px;padding:0 var(--gdant-spacing-xs);border-radius:var(--gdant-radius-sm);color:var(--gdant-primary-600);cursor:pointer;font:inherit;font-size:var(--gdant-text-body-sm);background:0 0;border:0}.gd-ant-select-box_clear:hover,.gd-ant-select-box_clear:focus-visible{outline:2px solid var(--gdant-primary-200);outline-offset:1px;background:var(--gdant-primary-50)}.gd-ant-select-box_content{min-width:0;min-height:0;padding-top:var(--gdant-spacing-sm);flex:1;overflow:hidden auto}.gd-ant-select-box_content::-webkit-scrollbar{width:6px;height:6px}.gd-ant-select-box_content::-webkit-scrollbar-track{background:var(--gdant-neutral-100);border-radius:var(--gdant-radius-sm)}.gd-ant-select-box_content::-webkit-scrollbar-thumb{background:var(--gdant-neutral-300);border-radius:var(--gdant-radius-sm)}.gd-ant-select-box_content-empty{place-items:center;width:100%;height:100%;min-height:120px;display:grid}.gd-ant-select-box_content-list{gap:var(--gdant-spacing-xs);flex-direction:column;min-width:0;display:flex}.gd-ant-select-box_content-item{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);min-width:0;min-height:44px;padding:0 var(--gdant-spacing-sm);border-radius:var(--gdant-radius-md);transition:background-color var(--gdant-duration-normal) var(--gdant-easing-default), border-color var(--gdant-duration-normal) var(--gdant-easing-default);border:1px solid #0000;display:flex}.gd-ant-select-box_content-item:hover{border-color:var(--gdant-primary-200);background:var(--gdant-neutral-0)}.gd-ant-select-box_content-item_name{min-width:0;color:var(--gdant-neutral-800);font-size:var(--gdant-text-body);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-ant-select-box_content-item_close{flex:none;align-items:center;display:flex}.gd-ant-select-box_content-item_close button{border-radius:var(--gdant-radius-sm);width:28px;height:28px;color:var(--gdant-neutral-500);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid}.gd-ant-select-box_content-item_close button:hover,.gd-ant-select-box_content-item_close button:focus-visible{outline:2px solid var(--gdant-primary-200);outline-offset:1px;background:var(--gdant-primary-50);color:var(--gdant-primary-600)}.gd-ant-pro-selector-group-content .selector-pane{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.gd-ant-pro-selector-group-content .type-selector-box{width:100%;height:100%;min-height:0;display:flex;overflow:hidden}.gd-ant-pro-selector-group-content .selector-feedback{margin-top:var(--gdant-spacing-sm)}.gd-ant-pro-selector-group-content .selector-toolbar{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);min-width:0;min-height:36px;margin-top:var(--gdant-spacing-sm);padding:0 var(--gdant-spacing-sm);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-50);display:flex}.gd-ant-pro-selector-group-content .selector-toolbar__count{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-ant-pro-selector-group-content .selector-option-list{min-width:0;min-height:0;margin-top:var(--gdant-spacing-sm);flex:1;overflow:hidden auto}.gd-ant-pro-selector-group-content .selector-option-list::-webkit-scrollbar{width:6px;height:6px}.gd-ant-pro-selector-group-content .selector-option-list::-webkit-scrollbar-track{background:var(--gdant-neutral-100);border-radius:var(--gdant-radius-sm)}.gd-ant-pro-selector-group-content .selector-option-list::-webkit-scrollbar-thumb{background:var(--gdant-neutral-300);border-radius:var(--gdant-radius-sm)}.gd-ant-pro-selector-group-content .selector-option-list>.ant-checkbox-group,.gd-ant-pro-selector-group-content .selector-option-list>.ant-checkbox-group>div{width:100%;min-width:0;display:block}.gd-ant-pro-selector-group-content .selector-option-list>.ant-checkbox-group>div,.gd-ant-pro-selector-group-content .user-list-region>div:first-child{gap:var(--gdant-spacing-xs);flex-direction:column;min-width:0;display:flex}.gd-ant-pro-selector-group-content .selector-option-row{min-width:0;min-height:44px;padding:0 var(--gdant-spacing-sm);border-radius:var(--gdant-radius-md);transition:background-color var(--gdant-duration-normal) var(--gdant-easing-default), border-color var(--gdant-duration-normal) var(--gdant-easing-default);border:1px solid #0000;align-items:center;display:flex}.gd-ant-pro-selector-group-content .selector-option-row:hover{background:var(--gdant-neutral-50)}.gd-ant-pro-selector-group-content .selector-option-row.is-selected{border-color:var(--gdant-primary-200);background:var(--gdant-primary-50)}.gd-ant-pro-selector-group-content .selector-option-row:focus-within{outline:2px solid var(--gdant-primary-300);outline-offset:1px;background:var(--gdant-primary-50)}.gd-ant-pro-selector-group-content .selector-option-row .ant-checkbox-wrapper{align-items:center;width:100%;min-width:0}.gd-ant-pro-selector-group-content .selector-option-row .ant-checkbox+span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.gd-ant-pro-selector-group-content .selector-empty{min-height:160px;color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm);place-items:center;display:grid}.gd-ant-pro-selector-group-content .selector-highlight{color:var(--gdant-primary-600);font-weight:var(--gdant-font-semibold)}.gd-ant-pro-selector-group-content .dept-tree-panel,.gd-ant-pro-selector-group-content .user-list-pane{flex-direction:column;min-width:0;min-height:0;display:flex}.gd-ant-pro-selector-group-content .user-selector{gap:var(--gdant-spacing-sm);grid-template-columns:minmax(160px,2fr) minmax(0,3fr);min-width:0;min-height:0;display:grid}.gd-ant-pro-selector-group-content .user-select-all{margin:var(--gdant-spacing-md) 0 0 var(--gdant-spacing-xs);flex:none}.gd-ant-pro-selector-group-content .user-list-region{min-width:0;min-height:0;margin-top:var(--gdant-spacing-sm);flex-direction:column;flex:1;display:flex;overflow:hidden auto}.gd-ant-pro-selector-group-content .user-list-region::-webkit-scrollbar{width:6px;height:6px}.gd-ant-pro-selector-group-content .user-list-region::-webkit-scrollbar-track{background:var(--gdant-neutral-100);border-radius:var(--gdant-radius-sm)}.gd-ant-pro-selector-group-content .user-list-region::-webkit-scrollbar-thumb{background:var(--gdant-neutral-300);border-radius:var(--gdant-radius-sm)}.gd-ant-pro-selector-group-content .gd-ant-pro-user-selector-user-avatar{cursor:default;flex:0 0 32px;width:32px;height:32px;margin:0}.gd-ant-pro-selector-group-content .gd-ant-pro-user-selector-user-avatar .gd-ant-user-avatar__img,.gd-ant-pro-selector-group-content .gd-ant-pro-user-selector-user-avatar>div>div>img{border-radius:var(--gdant-radius-pill);object-fit:cover;width:100%;height:100%;display:block}.gd-ant-pro-selector-group-content .user-dept-tree{width:auto;min-width:0}.gd-ant-pro-selector-group-content .selector-search{flex:0 0 36px;height:36px;min-height:36px}.gd-ant-pro-selector-group-content .selector-search.ant-input-affix-wrapper{min-height:36px}.gd-ant-pro-selector-group-content .selector-search .ant-input-prefix{justify-content:center;align-items:center;width:16px;height:16px;line-height:1;display:inline-flex}.gd-ant-pro-selector-group-content .selector-pane>.ant-spin-nested-loading,.gd-ant-pro-selector-group-content .dept-tree-panel>.ant-spin-nested-loading{flex:1;min-height:0}.gd-ant-pro-selector-group-content .selector-pane>.ant-spin-nested-loading>.ant-spin-container,.gd-ant-pro-selector-group-content .dept-tree-panel>.ant-spin-nested-loading>.ant-spin-container{flex-direction:column;height:100%;min-height:0;display:flex}.gd-ant-pro-selector-group-content .selector-tree{min-width:0;min-height:0;margin:var(--gdant-spacing-sm) calc(var(--gdant-spacing-xs) * -1) 0;padding:0 var(--gdant-spacing-xs);flex:1;overflow:hidden auto}.gd-ant-pro-selector-group-content .selector-tree::-webkit-scrollbar{width:6px;height:6px}.gd-ant-pro-selector-group-content .selector-tree::-webkit-scrollbar-track{background:var(--gdant-neutral-100);border-radius:var(--gdant-radius-sm)}.gd-ant-pro-selector-group-content .selector-tree::-webkit-scrollbar-thumb{background:var(--gdant-neutral-300);border-radius:var(--gdant-radius-sm)}.gd-ant-pro-selector-group-content .selector-tree .ant-tree-treenode{box-sizing:border-box;align-items:center;width:100%;min-height:44px;display:flex}.gd-ant-pro-selector-group-content .selector-tree .ant-tree-indent{flex:none;align-self:stretch;display:flex}.gd-ant-pro-selector-group-content .selector-tree .ant-tree-indent-unit{flex:0 0 24px;width:24px}.gd-ant-pro-selector-group-content .selector-tree .ant-tree-switcher{flex:0 0 24px;justify-content:center;align-items:center;width:24px;height:40px;margin:0;display:inline-flex}.gd-ant-pro-selector-group-content .selector-tree .ant-tree-checkbox{width:20px;height:20px;margin:0 var(--gdant-spacing-xs) 0 0;box-sizing:border-box;flex:0 0 20px;justify-content:center;align-items:center;display:inline-flex}.gd-ant-pro-selector-group-content .selector-tree .ant-tree-node-content-wrapper{min-width:0;min-height:40px;padding:0 var(--gdant-spacing-sm) 0 0;border-radius:var(--gdant-radius-md);box-sizing:border-box;transition:background-color var(--gdant-duration-normal) var(--gdant-easing-default), border-color var(--gdant-duration-normal) var(--gdant-easing-default);background:0 0;border:1px solid #0000;outline:none;flex:1;align-items:center;display:flex}.gd-ant-pro-selector-group-content .selector-tree .ant-tree-iconEle{width:20px;height:20px;margin-right:var(--gdant-spacing-xs);flex:0 0 20px;justify-content:center;align-items:center;line-height:1;display:inline-flex}.gd-ant-pro-selector-group-content .selector-tree .ant-tree-node-content-wrapper:hover{background:var(--gdant-neutral-50)}.gd-ant-pro-selector-group-content .selector-tree .ant-tree-node-content-wrapper.ant-tree-node-selected{border-color:var(--gdant-primary-200);background:var(--gdant-primary-50)}.gd-ant-pro-selector-group-content .selector-tree .ant-tree-treenode:focus-within .ant-tree-node-content-wrapper{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50)}.gd-ant-pro-selector-group-content .selector-tree .ant-tree-title{flex:1;align-items:center;min-width:0;min-height:20px;line-height:20px;display:flex;overflow:hidden}.gd-ant-pro-selector-group-content .tree-title{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;display:flex}.gd-ant-pro-selector-group-content .tree-title>.gd-ant-icon,.gd-ant-pro-selector-group-content .tree-title>[class*=icon-gd-ant-]{vertical-align:middle;flex:0 0 16px;justify-content:center;align-items:center;width:16px;height:16px;line-height:1;display:inline-flex}.gd-ant-pro-selector-group-content .tree-title_name{min-width:0;color:var(--gdant-neutral-700);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@container (width<=720px){.gd-ant-pro-selector-group-content{grid-template-rows:minmax(280px,1fr) minmax(150px,40%);grid-template-columns:minmax(0,1fr);height:min(680px,76vh)}.gd-ant-pro-selector-group-right{border-top:1px solid var(--gdant-neutral-200);border-left:0;min-height:150px}}@container (width<=560px){.gd-ant-pro-selector-group-content .user-selector{grid-template-rows:minmax(136px,.8fr) minmax(180px,1.2fr);grid-template-columns:minmax(0,1fr)}.gd-ant-pro-selector-group-content .user-dept-tree,.gd-ant-pro-selector-group-content .user-list-pane{width:100%}}@media (prefers-reduced-motion:reduce){.gd-ant-select-box_content-item,.gd-ant-pro-selector-group-content .selector-option-row,.gd-ant-pro-selector-group-content .selector-tree .ant-tree-node-content-wrapper{transition:none}}
@@ -1 +0,0 @@
1
- .gd-ant-role-selector{min-width:0}.gd-ant-role-selector-shell{width:100%;min-width:0;container-type:inline-size}.gd-ant-role-selector-modal{border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-0);grid-template-columns:minmax(0,3fr) minmax(260px,2fr);width:100%;min-width:0;height:min(440px,62vh);min-height:360px;display:grid;overflow:hidden}.gd-ant-role-selector-left,.gd-ant-role-selector-right{box-sizing:border-box;min-width:0;min-height:0}.gd-ant-role-selector-left{padding:var(--gdant-spacing-base);background:var(--gdant-neutral-0);flex-direction:column;display:flex}.gd-ant-role-selector-left .gd-ant-role-selector__search-row{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;display:flex}.gd-ant-role-selector-left .ant-input-affix-wrapper{flex:1;min-width:0;height:36px;min-height:36px}.gd-ant-role-selector__search-count{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm);white-space:nowrap;flex:none}.gd-ant-role-selector__feedback{margin-top:var(--gdant-spacing-sm)}.gd-ant-role-selector__list-region{min-width:0;min-height:0;margin-top:var(--gdant-spacing-sm);flex-direction:column;flex:1;display:flex}.gd-ant-role-selector__list-region .ant-spin-nested-loading,.gd-ant-role-selector__list-region .ant-spin-container{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.gd-ant-role-selector__role-list{flex:1;min-width:0;min-height:0;overflow:hidden auto}.gd-ant-role-selector__role-list::-webkit-scrollbar{width:6px;height:6px}.gd-ant-role-selector__role-list::-webkit-scrollbar-track{background:var(--gdant-neutral-100);border-radius:var(--gdant-radius-sm)}.gd-ant-role-selector__role-list::-webkit-scrollbar-thumb{background:var(--gdant-neutral-300);border-radius:var(--gdant-radius-sm)}.gd-ant-role-selector__role-list .ant-checkbox-group,.gd-ant-role-selector__role-list .ant-radio-group{width:100%;display:block}.gd-ant-role-selector__options{width:100%}.gd-ant-role-selector__option-row{width:100%;margin-bottom:var(--gdant-spacing-xs)}.gd-ant-role-selector__option-row .ant-checkbox-wrapper,.gd-ant-role-selector__option-row .ant-radio-wrapper{width:100%;min-height:44px;padding:0 var(--gdant-spacing-sm);border-radius:var(--gdant-radius-md);box-sizing:border-box;transition:background-color var(--gdant-duration-normal) var(--gdant-easing-default), border-color var(--gdant-duration-normal) var(--gdant-easing-default);border:1px solid #0000;align-items:center;margin:0;display:flex}.gd-ant-role-selector__option-row .ant-checkbox-wrapper>span:last-child,.gd-ant-role-selector__option-row .ant-radio-wrapper>span:last-child{flex:1;min-width:0;display:flex}.gd-ant-role-selector__option-row .ant-checkbox-wrapper:hover,.gd-ant-role-selector__option-row .ant-radio-wrapper:hover{background:var(--gdant-neutral-50)}.gd-ant-role-selector__option-row .ant-checkbox-wrapper-checked,.gd-ant-role-selector__option-row .ant-radio-wrapper-checked{border-color:var(--gdant-primary-200);background:var(--gdant-primary-50)}.gd-ant-role-selector__option-row .ant-checkbox-wrapper:focus-within,.gd-ant-role-selector__option-row .ant-radio-wrapper:focus-within{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50)}.gd-ant-role-selector__role-item{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);min-width:0;min-height:44px;padding:0 0 0 var(--gdant-spacing-sm);border-radius:var(--gdant-radius-md);box-sizing:border-box;color:var(--gdant-neutral-800);border:1px solid #0000;flex:1;display:flex}.gd-ant-role-selector__selected-list .gd-ant-role-selector__role-item:hover,.gd-ant-role-selector__selected-list .gd-ant-role-selector__role-item:focus-within,.gd-ant-role-selector__selected-list .gd-ant-role-selector__role-item.is-selected{border-color:var(--gdant-primary-200);background:var(--gdant-primary-50)}.gd-ant-role-selector__selected-list .gd-ant-role-selector__role-item:focus-within{border-color:var(--gdant-primary-300)}.gd-ant-role-selector__option-row .gd-ant-role-selector__role-item{cursor:pointer;min-height:40px}.gd-ant-role-selector__role-item-label{align-items:center;gap:var(--gdant-spacing-sm);flex:1;min-width:0;display:flex}.gd-ant-role-selector__label{min-width:0;color:var(--gdant-neutral-700);font-size:var(--gdant-text-body);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-ant-role-selector__role-item-meta{color:var(--gdant-primary-600);flex:none;align-items:center;display:flex}.gd-ant-role-selector__role-item-del{border-radius:var(--gdant-radius-sm);width:28px;height:28px;color:var(--gdant-neutral-500);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid}.gd-ant-role-selector__role-item-del:hover,.gd-ant-role-selector__role-item-del:focus-visible{outline:2px solid var(--gdant-primary-200);outline-offset:1px;background:var(--gdant-primary-50);color:var(--gdant-primary-600)}.gd-ant-role-selector__selected-heading{border-bottom:1px solid var(--gdant-neutral-200);min-height:36px;color:var(--gdant-neutral-700);font-size:var(--gdant-text-body);font-weight:var(--gdant-font-semibold);justify-content:space-between;align-items:center;display:flex}.gd-ant-role-selector-right{border-left:1px solid var(--gdant-neutral-200);padding:var(--gdant-spacing-base);background:var(--gdant-neutral-50);flex-direction:column;display:flex;overflow:hidden}.gd-ant-role-selector__selected-list{flex:1;min-width:0;min-height:0;overflow:hidden auto}.gd-ant-role-selector__selected-list::-webkit-scrollbar{width:6px;height:6px}.gd-ant-role-selector__selected-list::-webkit-scrollbar-track{background:var(--gdant-neutral-100);border-radius:var(--gdant-radius-sm)}.gd-ant-role-selector__selected-list::-webkit-scrollbar-thumb{background:var(--gdant-neutral-300);border-radius:var(--gdant-radius-sm)}.gd-ant-role-selector-right>.gd-ant-role-selector__selected-list{min-width:0}.gd-ant-role-selector__selected-list .gd-ant-role-selector__selected-row .gd-ant-role-selector__role-item{width:100%;margin-top:var(--gdant-spacing-sm);padding:0 var(--gdant-spacing-sm);box-sizing:border-box;margin-bottom:0}.gd-ant-role-selector-right>.ant-empty{margin:auto}@container (width<=560px){.gd-ant-role-selector-modal{grid-template-rows:minmax(240px,1fr) minmax(140px,42%);grid-template-columns:minmax(0,1fr);height:min(640px,72vh)}.gd-ant-role-selector-right{border-top:1px solid var(--gdant-neutral-200);border-left:0;min-height:140px}}@media (prefers-reduced-motion:reduce){.gd-ant-role-selector__option-row .ant-checkbox-wrapper,.gd-ant-role-selector__option-row .ant-radio-wrapper,.gd-ant-role-selector__role-item{transition:none}}.gd-ant-role-selector .selector-tags{width:100%;min-width:0}