@gct-paas/word 0.1.74-beta.27 → 0.1.74-beta.28

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.
@@ -14,5 +14,9 @@ export declare class UnmergeCells extends CommandBase<'unmergeCells'> {
14
14
  pos: number;
15
15
  side: string;
16
16
  wp?: undefined;
17
- } | null | undefined>;
17
+ } | null>;
18
+ /** 光标落在合并格内时,解析其 merge root */
19
+ private resolveRootsFromCursor;
20
+ /** 框选单元格时,收集选区内的 merge roots */
21
+ private resolveRootsFromSelection;
18
22
  }
@@ -151,6 +151,7 @@ export type CommandPayloadMap = {
151
151
  };
152
152
  setFontSize: CommandPayload & {
153
153
  fontSize: number;
154
+ fontSizeOption?: string;
154
155
  };
155
156
  setUnderline: CommandPayload & {
156
157
  underline?: string;
@@ -94,6 +94,8 @@ export declare class WrText extends ModelNode {
94
94
  * @param fontSize 字号大小(半磅单位)
95
95
  */
96
96
  setFontSize(fontSize: number): void;
97
+ /** 记录 Ribbon 选中的字号项,用于同磅值下区分「小六」与「6.5」 */
98
+ setFontSizeOption(fontSizeOption: string): void;
97
99
  /**
98
100
  * 在指定字符位置拆分文本节点
99
101
  * @param index 拆分位置(在此字符之前分割)
@@ -20,6 +20,8 @@ export type TextStyle = {
20
20
  };
21
21
  sz?: number;
22
22
  szCs?: number;
23
+ /** Ribbon 字号选项 id,区分同磅值的号数/数字项 */
24
+ fontSizeOption?: string;
23
25
  spacing?: number;
24
26
  kern?: number;
25
27
  rFonts?: {
@@ -30,6 +30,8 @@ export interface ITextRun {
30
30
  text: string;
31
31
  /** 字号 */
32
32
  fontSize: number;
33
+ /** Ribbon 字号选项 id */
34
+ fontSizeOption?: string;
33
35
  /** 字体 */
34
36
  fontFamily: string;
35
37
  /** 高亮 */
@@ -72,6 +74,8 @@ export declare class TextRun extends LayoutNode implements ITextRun {
72
74
  text: string;
73
75
  /** 字号 */
74
76
  fontSize: number;
77
+ /** Ribbon 字号选项 id */
78
+ fontSizeOption?: string;
75
79
  /** 字体 */
76
80
  fontFamily: string;
77
81
  /** 高亮 */
package/dist/index.es.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! @gct-paas/word v0.1.74-beta.27 */
1
+ /*! @gct-paas/word v0.1.74-beta.28 */
2
2
  import { Fragment, Suspense, Teleport, Transition, TransitionGroup, cloneVNode, computed, createApp, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createStaticVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, getCurrentInstance, getCurrentScope, guardReactiveProps, h, inject, isRef, isVNode, markRaw, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onBeforeMount, onBeforeUnmount, onMounted, onScopeDispose, onUnmounted, openBlock, provide, reactive, readonly, ref, render, renderList, renderSlot, resolveComponent, resolveDynamicComponent, shallowRef, toDisplayString, toHandlers, toRaw, toRef, toValue, unref, useAttrs, useCssVars, useModel, useSlots, vModelRadio, vModelText, vShow, watch, watchEffect, withCtx, withDirectives, withKeys, withModifiers } from "vue";
3
3
  import Mt, { PopperWrapper } from "floating-vue";
4
4
  import VueKonva from "vue-konva";
@@ -14545,6 +14545,11 @@ var init_WrPr = __esmMin((() => {
14545
14545
  const val = (_szElem$Attrs = szElem["@attrs"]) === null || _szElem$Attrs === void 0 ? void 0 : _szElem$Attrs["w:val"];
14546
14546
  style.sz = val ? parseInt(val) : void 0;
14547
14547
  }
14548
+ const fontSizeOptionElem = this.getElement("gct:fontSizeOption");
14549
+ if (fontSizeOptionElem) {
14550
+ var _fontSizeOptionElem$;
14551
+ style.fontSizeOption = (_fontSizeOptionElem$ = fontSizeOptionElem["@attrs"]) === null || _fontSizeOptionElem$ === void 0 ? void 0 : _fontSizeOptionElem$["w:val"];
14552
+ }
14548
14553
  const rFontsElem = this.getElement("w:rFonts");
14549
14554
  if (rFontsElem === null || rFontsElem === void 0 ? void 0 : rFontsElem["@attrs"]) {
14550
14555
  const attrs = rFontsElem["@attrs"];
@@ -14830,6 +14835,10 @@ var init_WrText = __esmMin((() => {
14830
14835
  rPr.setAttr("w:sz", "w:val", sizeStr);
14831
14836
  rPr.setAttr("w:szCs", "w:val", sizeStr);
14832
14837
  }
14838
+ /** 记录 Ribbon 选中的字号项,用于同磅值下区分「小六」与「6.5」 */
14839
+ setFontSizeOption(fontSizeOption) {
14840
+ this.ensureRPr().setAttr("gct:fontSizeOption", "w:val", fontSizeOption);
14841
+ }
14833
14842
  /**
14834
14843
  * 在指定字符位置拆分文本节点
14835
14844
  * @param index 拆分位置(在此字符之前分割)
@@ -14888,7 +14897,7 @@ var init_WrText = __esmMin((() => {
14888
14897
  let rPr;
14889
14898
  const elements = [];
14890
14899
  (_json$elements = json.elements) === null || _json$elements === void 0 || _json$elements.forEach((_) => {
14891
- let el = _;
14900
+ const el = _;
14892
14901
  if (el.name === "w:rPr") rPr = WrPr.fromXmlJson(el);
14893
14902
  else if (el.name === "w:t") {
14894
14903
  var _el$elements;
@@ -109017,6 +109026,7 @@ var init_TextStyleResolver = __esmMin((() => {
109017
109026
  result.color = override.color ?? base.color;
109018
109027
  result.highlight = override.highlight ?? base.highlight;
109019
109028
  result.sz = override.sz ?? base.sz;
109029
+ result.fontSizeOption = override.fontSizeOption;
109020
109030
  result.spacing = override.spacing ?? base.spacing;
109021
109031
  result.kern = override.kern ?? base.kern;
109022
109032
  if (base.rFonts || override.rFonts) {
@@ -109953,6 +109963,12 @@ var init_TextRun = __esmMin((() => {
109953
109963
  "fontSize",
109954
109964
  16
109955
109965
  );
109966
+ _defineProperty(
109967
+ this,
109968
+ /** Ribbon 字号选项 id */
109969
+ "fontSizeOption",
109970
+ void 0
109971
+ );
109956
109972
  _defineProperty(
109957
109973
  this,
109958
109974
  /** 字体 */
@@ -110105,6 +110121,7 @@ var init_TextRun = __esmMin((() => {
110105
110121
  if (!textStyle) return {};
110106
110122
  const layoutStyle = {};
110107
110123
  if (textStyle.sz !== void 0) layoutStyle.fontSize = textStyle.sz / 2 * 96 / 72;
110124
+ if (textStyle.fontSizeOption) layoutStyle.fontSizeOption = textStyle.fontSizeOption;
110108
110125
  const rawFontFamily = pickDocumentFontName(textStyle.rFonts);
110109
110126
  if (rawFontFamily) layoutStyle.fontFamily = normalizeSupportedFontFamily(rawFontFamily);
110110
110127
  if (textStyle.highlight) layoutStyle.highlight = normalizeColor(textStyle.highlight, "none");
@@ -111578,6 +111595,31 @@ function resolveSelectionTableScope(doc) {
111578
111595
  const wtbl = doc.layoutMapper.getModelNodeById(modelId);
111579
111596
  return wtbl === null || wtbl === void 0 ? void 0 : wtbl.getTableScope();
111580
111597
  }
111598
+ /** 从光标向上解析所在段落的 Wp(兼容 placeholder 空行) */
111599
+ function resolveWpFromCursor(doc) {
111600
+ const cursor = doc.cursorManager.getCursor();
111601
+ if (!(cursor === null || cursor === void 0 ? void 0 : cursor.nodeId)) return void 0;
111602
+ const mapper = doc.layoutMapper;
111603
+ let layoutNode = mapper.getLayoutNodeById(cursor.nodeId);
111604
+ while (layoutNode) {
111605
+ var _layoutNode$modelRef2, _layoutNode$modelRef3;
111606
+ if (layoutNode.component === BuiltinComponentTypeConst.Paragraph && ((_layoutNode$modelRef2 = layoutNode.modelRef) === null || _layoutNode$modelRef2 === void 0 ? void 0 : _layoutNode$modelRef2.id)) {
111607
+ const wp = mapper.getModelNodeById(layoutNode.modelRef.id);
111608
+ if ((wp === null || wp === void 0 ? void 0 : wp.name) === "w:p") return wp;
111609
+ }
111610
+ if ((_layoutNode$modelRef3 = layoutNode.modelRef) === null || _layoutNode$modelRef3 === void 0 ? void 0 : _layoutNode$modelRef3.id) {
111611
+ const model = mapper.getModelNodeById(layoutNode.modelRef.id);
111612
+ if (model instanceof Wp) return model;
111613
+ if ((model === null || model === void 0 ? void 0 : model.parent) instanceof Wp) return model.parent;
111614
+ }
111615
+ try {
111616
+ const model = mapper.getModelNodeByLayoutId(layoutNode.id);
111617
+ if (model instanceof Wp) return model;
111618
+ if ((model === null || model === void 0 ? void 0 : model.parent) instanceof Wp) return model.parent;
111619
+ } catch {}
111620
+ layoutNode = layoutNode.parent;
111621
+ }
111622
+ }
111581
111623
  /**
111582
111624
  * 当 focus 跑出 selectionTable 时,尝试从 focus 的祖先路径里
111583
111625
  * 找到 selectionTable 某行的某个 cell,返回该列下标。
@@ -116857,7 +116899,9 @@ var init_SetFontSize = __esmMin((() => {
116857
116899
  this.needsCalculatePostCommandContext = true;
116858
116900
  }
116859
116901
  applyStyle(run) {
116902
+ var _this$payload;
116860
116903
  run.setFontSize(this.payload.fontSize * 2);
116904
+ if ((_this$payload = this.payload) === null || _this$payload === void 0 ? void 0 : _this$payload.fontSizeOption) run.setFontSizeOption(this.payload.fontSizeOption);
116861
116905
  }
116862
116906
  };
116863
116907
  }));
@@ -117242,19 +117286,17 @@ var UnmergeCells_exports = /* @__PURE__ */ __exportAll({ UnmergeCells: () => Unm
117242
117286
  var UnmergeCells;
117243
117287
  var init_UnmergeCells = __esmMin((() => {
117244
117288
  init_CommandBase();
117289
+ init_document();
117290
+ init_logic$1();
117245
117291
  UnmergeCells = class extends CommandBase {
117246
117292
  constructor(doc, payload) {
117247
117293
  super(doc, payload);
117248
117294
  }
117249
117295
  async execute() {
117250
- var _roots$;
117296
+ var _roots$, _cursor$getCursor;
117251
117297
  const cursor = this.doc.cursorManager;
117252
- if (cursor.isCollapsed()) return;
117253
- const { mode, models } = CommandBase.getSelectionResult(this.doc, cursor.getSelection());
117254
- if (mode !== SelectionMode.Tds) return;
117255
- if (models.length === 0) return;
117256
- const roots = models.map(({ model }) => model).filter((cell) => cell.id === cell.mergeId && !cell.mergeFromId);
117257
- if (roots.length === 0) return null;
117298
+ const roots = cursor.isCollapsed() ? this.resolveRootsFromCursor() : this.resolveRootsFromSelection();
117299
+ if (!(roots === null || roots === void 0 ? void 0 : roots.length)) return null;
117258
117300
  const table = (_roots$ = roots[0]) === null || _roots$ === void 0 ? void 0 : _roots$.table;
117259
117301
  if (!table) return null;
117260
117302
  table.runConsistencyMutation({ mutate: () => {
@@ -117263,8 +117305,9 @@ var init_UnmergeCells = __esmMin((() => {
117263
117305
  });
117264
117306
  } });
117265
117307
  const mapper = this.doc.layoutMapper;
117266
- const normalized = this.doc.cursorManager.normalizeRange(cursor.getSelection());
117267
- const start = mapper.getLayoutNodeById(normalized.rangeStart.nodeId);
117308
+ const nodeId = cursor.isCollapsed() ? (_cursor$getCursor = cursor.getCursor()) === null || _cursor$getCursor === void 0 ? void 0 : _cursor$getCursor.nodeId : this.doc.cursorManager.normalizeRange(cursor.getSelection()).rangeStart.nodeId;
117309
+ if (!nodeId) return null;
117310
+ const start = mapper.getLayoutNodeById(nodeId);
117268
117311
  if (start === null || start === void 0 ? void 0 : start.isPlaceholderRun) return {
117269
117312
  wp: mapper.getModelNodeById(start.parent.modelRef.id),
117270
117313
  pos: -1,
@@ -117276,6 +117319,24 @@ var init_UnmergeCells = __esmMin((() => {
117276
117319
  side: "after"
117277
117320
  };
117278
117321
  }
117322
+ /** 光标落在合并格内时,解析其 merge root */
117323
+ resolveRootsFromCursor() {
117324
+ const wp = resolveWpFromCursor(this.doc);
117325
+ let cell = (wp === null || wp === void 0 ? void 0 : wp.parent) instanceof Wtc ? wp.parent : void 0;
117326
+ if (!(cell === null || cell === void 0 ? void 0 : cell.mergeId)) return null;
117327
+ if (cell.mergeFromId) cell = this.doc.layoutMapper.getModelNodeById(cell.mergeFromId);
117328
+ if (!(cell === null || cell === void 0 ? void 0 : cell.isMergeStart)) return null;
117329
+ return [cell];
117330
+ }
117331
+ /** 框选单元格时,收集选区内的 merge roots */
117332
+ resolveRootsFromSelection() {
117333
+ const cursor = this.doc.cursorManager;
117334
+ const { mode, models } = CommandBase.getSelectionResult(this.doc, cursor.getSelection());
117335
+ if (mode !== SelectionMode.Tds) return null;
117336
+ if (models.length === 0) return null;
117337
+ const roots = models.map(({ model }) => model).filter((cell) => cell.id === cell.mergeId && !cell.mergeFromId);
117338
+ return roots.length > 0 ? roots : null;
117339
+ }
117279
117340
  };
117280
117341
  }));
117281
117342
  //#endregion
@@ -149199,168 +149260,227 @@ var FontFamilyOptions = [
149199
149260
  value: "\"LXGW WenKai\", \"LXGWWenKai\", \"KaiTi\", \"楷体\", \"华文楷体\", serif"
149200
149261
  }
149201
149262
  ];
149263
+ var DEFAULT_FONT_SIZE_OPTION = "cn-12";
149202
149264
  var FontSizeOptions = [
149203
149265
  {
149204
149266
  label: "初号",
149205
- value: "42"
149267
+ value: "cn-42",
149268
+ pt: 42
149206
149269
  },
149207
149270
  {
149208
149271
  label: "小初",
149209
- value: "36"
149272
+ value: "cn-36",
149273
+ pt: 36
149210
149274
  },
149211
149275
  {
149212
149276
  label: "一号",
149213
- value: "26"
149277
+ value: "cn-26",
149278
+ pt: 26
149214
149279
  },
149215
149280
  {
149216
149281
  label: "小一",
149217
- value: "24"
149282
+ value: "cn-24",
149283
+ pt: 24
149218
149284
  },
149219
149285
  {
149220
149286
  label: "二号",
149221
- value: "22"
149287
+ value: "cn-22",
149288
+ pt: 22
149222
149289
  },
149223
149290
  {
149224
149291
  label: "小二",
149225
- value: "18"
149292
+ value: "cn-18",
149293
+ pt: 18
149226
149294
  },
149227
149295
  {
149228
149296
  label: "三号",
149229
- value: "16"
149297
+ value: "cn-16",
149298
+ pt: 16
149230
149299
  },
149231
149300
  {
149232
149301
  label: "小三",
149233
- value: "15"
149302
+ value: "cn-15",
149303
+ pt: 15
149234
149304
  },
149235
149305
  {
149236
149306
  label: "四号",
149237
- value: "14"
149307
+ value: "cn-14",
149308
+ pt: 14
149238
149309
  },
149239
149310
  {
149240
149311
  label: "小四",
149241
- value: "12"
149312
+ value: "cn-12",
149313
+ pt: 12
149242
149314
  },
149243
149315
  {
149244
149316
  label: "五号",
149245
- value: "10.5"
149317
+ value: "cn-10.5",
149318
+ pt: 10.5
149246
149319
  },
149247
149320
  {
149248
149321
  label: "小五",
149249
- value: "9"
149322
+ value: "cn-9",
149323
+ pt: 9
149250
149324
  },
149251
149325
  {
149252
149326
  label: "六号",
149253
- value: "7.5"
149327
+ value: "cn-7.5",
149328
+ pt: 7.5
149254
149329
  },
149255
149330
  {
149256
149331
  label: "小六",
149257
- value: "6.5"
149332
+ value: "cn-6.5",
149333
+ pt: 6.5
149258
149334
  },
149259
149335
  {
149260
149336
  label: "七号",
149261
- value: "5.5"
149337
+ value: "cn-5.5",
149338
+ pt: 5.5
149262
149339
  },
149263
149340
  {
149264
149341
  label: "八号",
149265
- value: "5"
149342
+ value: "cn-5",
149343
+ pt: 5
149266
149344
  },
149267
149345
  {
149268
149346
  label: "5",
149269
- value: 5
149347
+ value: "pt-5",
149348
+ pt: 5
149270
149349
  },
149271
149350
  {
149272
149351
  label: "5.5",
149273
- value: 5.5
149352
+ value: "pt-5.5",
149353
+ pt: 5.5
149274
149354
  },
149275
149355
  {
149276
149356
  label: "6.5",
149277
- value: 6.5
149357
+ value: "pt-6.5",
149358
+ pt: 6.5
149278
149359
  },
149279
149360
  {
149280
149361
  label: "7.5",
149281
- value: 7.5
149362
+ value: "pt-7.5",
149363
+ pt: 7.5
149282
149364
  },
149283
149365
  {
149284
149366
  label: "8",
149285
- value: 8
149367
+ value: "pt-8",
149368
+ pt: 8
149286
149369
  },
149287
149370
  {
149288
149371
  label: "9",
149289
- value: 9
149372
+ value: "pt-9",
149373
+ pt: 9
149290
149374
  },
149291
149375
  {
149292
149376
  label: "10",
149293
- value: 10
149377
+ value: "pt-10",
149378
+ pt: 10
149294
149379
  },
149295
149380
  {
149296
149381
  label: "10.5",
149297
- value: 10.5
149382
+ value: "pt-10.5",
149383
+ pt: 10.5
149298
149384
  },
149299
149385
  {
149300
149386
  label: "11",
149301
- value: 11
149387
+ value: "pt-11",
149388
+ pt: 11
149302
149389
  },
149303
149390
  {
149304
149391
  label: "12",
149305
- value: 12
149392
+ value: "pt-12",
149393
+ pt: 12
149306
149394
  },
149307
149395
  {
149308
149396
  label: "14",
149309
- value: 14
149397
+ value: "pt-14",
149398
+ pt: 14
149310
149399
  },
149311
149400
  {
149312
149401
  label: "16",
149313
- value: 16
149402
+ value: "pt-16",
149403
+ pt: 16
149314
149404
  },
149315
149405
  {
149316
149406
  label: "18",
149317
- value: 18
149407
+ value: "pt-18",
149408
+ pt: 18
149318
149409
  },
149319
149410
  {
149320
149411
  label: "20",
149321
- value: 20
149412
+ value: "pt-20",
149413
+ pt: 20
149322
149414
  },
149323
149415
  {
149324
149416
  label: "22",
149325
- value: 22
149417
+ value: "pt-22",
149418
+ pt: 22
149326
149419
  },
149327
149420
  {
149328
149421
  label: "24",
149329
- value: 24
149422
+ value: "pt-24",
149423
+ pt: 24
149330
149424
  },
149331
149425
  {
149332
149426
  label: "26",
149333
- value: 26
149427
+ value: "pt-26",
149428
+ pt: 26
149334
149429
  },
149335
149430
  {
149336
149431
  label: "28",
149337
- value: 28
149432
+ value: "pt-28",
149433
+ pt: 28
149338
149434
  },
149339
149435
  {
149340
149436
  label: "30",
149341
- value: 30
149437
+ value: "pt-30",
149438
+ pt: 30
149342
149439
  },
149343
149440
  {
149344
149441
  label: "36",
149345
- value: 36
149442
+ value: "pt-36",
149443
+ pt: 36
149346
149444
  },
149347
149445
  {
149348
149446
  label: "48",
149349
- value: 48
149447
+ value: "pt-48",
149448
+ pt: 48
149350
149449
  },
149351
149450
  {
149352
149451
  label: "56",
149353
- value: 56
149452
+ value: "pt-56",
149453
+ pt: 56
149354
149454
  },
149355
149455
  {
149356
149456
  label: "72",
149357
- value: 72
149457
+ value: "pt-72",
149458
+ pt: 72
149358
149459
  },
149359
149460
  {
149360
149461
  label: "96",
149361
- value: 96
149462
+ value: "pt-96",
149463
+ pt: 96
149362
149464
  }
149363
149465
  ];
149466
+ function getFontSizeOptionPt(value) {
149467
+ var _FontSizeOptions$find;
149468
+ return (_FontSizeOptions$find = FontSizeOptions.find((o) => o.value === value)) === null || _FontSizeOptions$find === void 0 ? void 0 : _FontSizeOptions$find.pt;
149469
+ }
149470
+ function layoutPxToPt(px) {
149471
+ return px * 72 / 96;
149472
+ }
149473
+ /** 无存储项时,按磅值回退到号数项 */
149474
+ function resolveFontSizeOptionFromLayout(raw) {
149475
+ if (raw.fontSizeOption && FontSizeOptions.some((o) => o.value === raw.fontSizeOption)) return raw.fontSizeOption;
149476
+ if (typeof raw.fontSize !== "number") return DEFAULT_FONT_SIZE_OPTION;
149477
+ const pt = layoutPxToPt(raw.fontSize);
149478
+ const named = FontSizeOptions.find((o) => o.value.startsWith("cn-") && Math.abs(o.pt - pt) < .05);
149479
+ if (named) return named.value;
149480
+ const numeric = FontSizeOptions.find((o) => o.value.startsWith("pt-") && Math.abs(o.pt - pt) < .05);
149481
+ if (numeric) return numeric.value;
149482
+ return DEFAULT_FONT_SIZE_OPTION;
149483
+ }
149364
149484
  //#endregion
149365
149485
  //#region src/runtime/designer/ribbon/tabs/word-tab.vue?vue&type=script&setup=true&name=home-tab&lang.ts
149366
149486
  init_dist();
@@ -149389,7 +149509,7 @@ var word_tab_vue_vue_type_script_setup_true_name_home_tab_lang_default = /*@__PU
149389
149509
  });
149390
149510
  const fontFamily = ref(FontFamilyEnum.Serif);
149391
149511
  const fontFamilyLabel = useSelectLabel(fontFamily, FontFamilyOptions);
149392
- const fontSize = ref("10.5");
149512
+ const fontSize = ref(DEFAULT_FONT_SIZE_OPTION);
149393
149513
  const fontSizeLabel = useSelectLabel(fontSize, FontSizeOptions);
149394
149514
  const textBold = ref(false);
149395
149515
  const textItalic = ref(false);
@@ -149418,9 +149538,15 @@ var word_tab_vue_vue_type_script_setup_true_name_home_tab_lang_default = /*@__PU
149418
149538
  case "font-family":
149419
149539
  docInst.value.execute("setFont", { fontFamily: options });
149420
149540
  break;
149421
- case "font-size":
149422
- docInst.value.execute("setFontSize", { fontSize: +options });
149541
+ case "font-size": {
149542
+ const pt = getFontSizeOptionPt(options);
149543
+ if (pt == null) break;
149544
+ docInst.value.execute("setFontSize", {
149545
+ fontSize: pt,
149546
+ fontSizeOption: options
149547
+ });
149423
149548
  break;
149549
+ }
149424
149550
  case "bold":
149425
149551
  const bold = !textBold.value;
149426
149552
  docInst.value.execute("setBold", { bold });
@@ -149454,7 +149580,10 @@ var word_tab_vue_vue_type_script_setup_true_name_home_tab_lang_default = /*@__PU
149454
149580
  case "image": handleUploadImage();
149455
149581
  }
149456
149582
  };
149457
- const getStyle = (raw) => pick(raw, "fontFamily", "fontSize", "bold", "italic", "underline", "strike", "align");
149583
+ const getStyle = (raw) => ({
149584
+ ...pick(raw, "fontFamily", "bold", "italic", "underline", "strike", "align"),
149585
+ fontSizeOption: resolveFontSizeOptionFromLayout(raw)
149586
+ });
149458
149587
  const getUniqueStyle = (rawList) => {
149459
149588
  if (rawList.length === 0) return null;
149460
149589
  else if (rawList.length === 1) return getStyle(rawList[0]);
@@ -149469,6 +149598,7 @@ var word_tab_vue_vue_type_script_setup_true_name_home_tab_lang_default = /*@__PU
149469
149598
  const rawList = getCursorTextRawList(docInst.value, type);
149470
149599
  const uniqueStyle = getUniqueStyle(rawList);
149471
149600
  fontFamily.value = (uniqueStyle === null || uniqueStyle === void 0 ? void 0 : uniqueStyle.fontFamily) || "\"Noto Sans SC\", \"NotoSansSC\", \"黑体\", \"SimHei\", sans-serif";
149601
+ fontSize.value = (uniqueStyle === null || uniqueStyle === void 0 ? void 0 : uniqueStyle.fontSizeOption) ?? "cn-12";
149472
149602
  textBold.value = (uniqueStyle === null || uniqueStyle === void 0 ? void 0 : uniqueStyle.bold) || false;
149473
149603
  textItalic.value = (uniqueStyle === null || uniqueStyle === void 0 ? void 0 : uniqueStyle.italic) || false;
149474
149604
  textUnderline.value = (uniqueStyle === null || uniqueStyle === void 0 ? void 0 : uniqueStyle.underline) || false;
@@ -149590,7 +149720,7 @@ var word_tab_vue_vue_type_script_setup_true_name_home_tab_lang_default = /*@__PU
149590
149720
  //#endregion
149591
149721
  //#region src/runtime/designer/ribbon/tabs/word-tab.vue
149592
149722
  init__plugin_vue_export_helper();
149593
- var word_tab_default = /*#__PURE__*/ _plugin_vue_export_helper_default(word_tab_vue_vue_type_script_setup_true_name_home_tab_lang_default, [["__scopeId", "data-v-628a3f22"]]);
149723
+ var word_tab_default = /*#__PURE__*/ _plugin_vue_export_helper_default(word_tab_vue_vue_type_script_setup_true_name_home_tab_lang_default, [["__scopeId", "data-v-a478a99a"]]);
149594
149724
  //#endregion
149595
149725
  //#region src/runtime/designer/ribbon/ribbon.vue?vue&type=script&setup=true&name=ribbon-tab&lang.ts
149596
149726
  var _hoisted_1$117 = { class: "ribbon" };
@@ -163836,6 +163966,8 @@ var _hoisted_5$12 = {
163836
163966
  key: 0,
163837
163967
  class: "field-tree-dropdown__empty"
163838
163968
  };
163969
+ var DROPDOWN_MAX_HEIGHT = 280;
163970
+ var DROPDOWN_GAP = 4;
163839
163971
  var field_tree_select_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
163840
163972
  __name: "field-tree-select",
163841
163973
  props: {
@@ -163880,22 +164012,32 @@ var field_tree_select_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*
163880
164012
  if (!rootRef.value) return;
163881
164013
  const rect = rootRef.value.getBoundingClientRect();
163882
164014
  const width = props.popperWidth ?? rect.width;
164015
+ const spaceBelow = window.innerHeight - rect.bottom - DROPDOWN_GAP;
164016
+ const spaceAbove = rect.top - DROPDOWN_GAP;
164017
+ const placeAbove = spaceBelow < DROPDOWN_MAX_HEIGHT && spaceAbove > spaceBelow;
163883
164018
  dropdownStyle.value = {
163884
164019
  position: "fixed",
163885
- top: `${rect.bottom + 4}px`,
163886
164020
  left: `${rect.left}px`,
163887
164021
  width: `${width}px`,
163888
- zIndex: "2147483647"
164022
+ zIndex: "2147483647",
164023
+ ...placeAbove ? {
164024
+ top: "auto",
164025
+ bottom: `${window.innerHeight - rect.top + DROPDOWN_GAP}px`
164026
+ } : {
164027
+ top: `${rect.bottom + DROPDOWN_GAP}px`,
164028
+ bottom: "auto"
164029
+ }
163889
164030
  };
163890
164031
  }
163891
164032
  function open() {
163892
- calcDropdownPosition();
163893
164033
  isOpen.value = true;
163894
164034
  keyword.value = "";
163895
- setTimeout(() => {
164035
+ calcDropdownPosition();
164036
+ nextTick(() => {
163896
164037
  var _inputRef$value;
164038
+ calcDropdownPosition();
163897
164039
  (_inputRef$value = inputRef.value) === null || _inputRef$value === void 0 || _inputRef$value.focus();
163898
- }, 0);
164040
+ });
163899
164041
  }
163900
164042
  function close() {
163901
164043
  isOpen.value = false;
@@ -164040,7 +164182,7 @@ var field_tree_select_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*
164040
164182
  //#endregion
164041
164183
  //#region src/suites/shared/panel/config/editor/ref-autofill-editor/field-tree-select.vue
164042
164184
  init__plugin_vue_export_helper();
164043
- var field_tree_select_default = /*#__PURE__*/ _plugin_vue_export_helper_default(field_tree_select_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-60520932"]]);
164185
+ var field_tree_select_default = /*#__PURE__*/ _plugin_vue_export_helper_default(field_tree_select_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-e4650f63"]]);
164044
164186
  //#endregion
164045
164187
  //#region src/suites/edhr/panel-schema/rule/constants/builtin-field-maps.ts
164046
164188
  var SOURCE_UNIT_KEY = "sourceUnit";
@@ -165855,7 +165997,6 @@ var FieldPanel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
165855
165997
  return openBlock(), createElementBlock("div", _hoisted_1$57, [
165856
165998
  createVNode(unref(collapse_default), {
165857
165999
  title: "字段属性",
165858
- visible: false,
165859
166000
  class: "panel-collapse is-first"
165860
166001
  }, {
165861
166002
  expandIcon: withCtx(({ open }) => [createVNode(field_panel_chevron_default, { expanded: open }, null, 8, ["expanded"])]),
@@ -165942,7 +166083,6 @@ var FieldPanel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
165942
166083
  unref(Renderer) && unref(Renderer).config ? (openBlock(), createBlock(unref(collapse_default), {
165943
166084
  key: 0,
165944
166085
  title: "字段配置",
165945
- visible: false,
165946
166086
  class: "panel-collapse"
165947
166087
  }, {
165948
166088
  expandIcon: withCtx(({ open }) => [createVNode(field_panel_chevron_default, { expanded: open }, null, 8, ["expanded"])]),
@@ -165963,7 +166103,6 @@ var FieldPanel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
165963
166103
  unref(Renderer) && unref(Renderer).style ? (openBlock(), createBlock(unref(collapse_default), {
165964
166104
  key: 1,
165965
166105
  title: "样式配置",
165966
- visible: false,
165967
166106
  class: "panel-collapse"
165968
166107
  }, {
165969
166108
  expandIcon: withCtx(({ open }) => [createVNode(field_panel_chevron_default, { expanded: open }, null, 8, ["expanded"])]),
@@ -165982,7 +166121,6 @@ var FieldPanel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
165982
166121
  unref(Renderer) && unref(fieldMeta).field ? (openBlock(), createBlock(unref(collapse_default), {
165983
166122
  key: 2,
165984
166123
  title: "组件依赖",
165985
- visible: false,
165986
166124
  class: "panel-collapse"
165987
166125
  }, {
165988
166126
  expandIcon: withCtx(({ open }) => [createVNode(field_panel_chevron_default, { expanded: open }, null, 8, ["expanded"])]),
@@ -166020,7 +166158,7 @@ var schema$3 = {
166020
166158
  value: (attachFieldTarget === null || attachFieldTarget === void 0 ? void 0 : attachFieldTarget.attachFieldLabel) ?? "引用字段"
166021
166159
  }];
166022
166160
  },
166023
- render: /* @__PURE__ */ _plugin_vue_export_helper_default(FieldPanel_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-a9a74705"]])
166161
+ render: /* @__PURE__ */ _plugin_vue_export_helper_default(FieldPanel_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-7e6026cd"]])
166024
166162
  };
166025
166163
  //#endregion
166026
166164
  //#region src/suites/edhr/panel-schema/paper-widget/PaperWidgetPanel.vue?vue&type=script&setup=true&lang.ts
@@ -13,13 +13,21 @@ export declare const FontFamilyOptions: {
13
13
  label: string;
14
14
  value: FontFamilyEnum;
15
15
  }[];
16
- export declare const FontSizeOptions: ({
16
+ export type FontSizeOption = {
17
17
  label: string;
18
+ /** 唯一标识,写入文档后用于区分同磅值的号数/数字项 */
18
19
  value: string;
19
- } | {
20
- label: string;
21
- value: number;
22
- })[];
20
+ pt: number;
21
+ };
22
+ export declare const DEFAULT_FONT_SIZE_OPTION = "cn-12";
23
+ export declare const FontSizeOptions: FontSizeOption[];
24
+ export declare function getFontSizeOptionPt(value: string): number | undefined;
25
+ export declare function layoutPxToPt(px: number): number;
26
+ /** 无存储项时,按磅值回退到号数项 */
27
+ export declare function resolveFontSizeOptionFromLayout(raw: {
28
+ fontSize?: number;
29
+ fontSizeOption?: string;
30
+ }): string;
23
31
  export declare const ParagraphTitleOptions: {
24
32
  label: string;
25
33
  value: string;
package/dist/word.css CHANGED
@@ -10423,19 +10423,19 @@ textarea[data-v-a7d89044]::placeholder {
10423
10423
  height: 16px;
10424
10424
  margin-right: 8px;
10425
10425
  }
10426
- .items-container[data-v-628a3f22] {
10426
+ .items-container[data-v-a478a99a] {
10427
10427
  display: inline-flex;
10428
10428
  align-items: center;
10429
10429
  height: 42px;
10430
10430
  overflow: hidden;
10431
10431
  }
10432
- .ribbon-tab-item[data-v-628a3f22] {
10432
+ .ribbon-tab-item[data-v-a478a99a] {
10433
10433
  display: inline-flex;
10434
10434
  flex-shrink: 0;
10435
10435
  align-items: center;
10436
10436
  gap: 6px;
10437
10437
  }
10438
- .split-divider[data-v-628a3f22] {
10438
+ .split-divider[data-v-a478a99a] {
10439
10439
  display: inline-block;
10440
10440
  flex-shrink: 0;
10441
10441
  width: 1px;
@@ -10443,11 +10443,11 @@ textarea[data-v-a7d89044]::placeholder {
10443
10443
  margin: 0 6px;
10444
10444
  background-color: rgba(13, 13, 13, 0.12);
10445
10445
  }
10446
- .title-style-bottom-bar[data-v-628a3f22] {
10446
+ .title-style-bottom-bar[data-v-a478a99a] {
10447
10447
  position: relative;
10448
10448
  padding: 8px;
10449
10449
  }
10450
- .title-style-bottom-bar[data-v-628a3f22]::before {
10450
+ .title-style-bottom-bar[data-v-a478a99a]::before {
10451
10451
  content: '';
10452
10452
  position: absolute;
10453
10453
  top: 0;
@@ -10458,11 +10458,11 @@ textarea[data-v-a7d89044]::placeholder {
10458
10458
  margin-left: 8px;
10459
10459
  background: #f0f0f0;
10460
10460
  }
10461
- .title-style-bottom-bar .content[data-v-628a3f22] {
10461
+ .title-style-bottom-bar .content[data-v-a478a99a] {
10462
10462
  padding: 6px 8px;
10463
10463
  border-radius: 4px;
10464
10464
  }
10465
- .title-style-bottom-bar .content[data-v-628a3f22]:hover {
10465
+ .title-style-bottom-bar .content[data-v-a478a99a]:hover {
10466
10466
  background: rgba(13, 13, 13, 0.06);
10467
10467
  }
10468
10468
  .v-popper__popper.paragraph-title-select-dropdown .option-label {
@@ -12461,86 +12461,86 @@ svg.portrait-icon[data-v-8bdb451e] {
12461
12461
  .field-tree-node[data-v-00885c69] {
12462
12462
  margin-bottom: 3px;
12463
12463
  }
12464
- .field-tree-select[data-v-60520932] {
12465
- position: relative;
12464
+ .field-tree-select[data-v-e4650f63] {
12466
12465
  display: inline-block;
12467
- width: 100%;
12466
+ position: relative;
12468
12467
  box-sizing: border-box;
12468
+ width: 100%;
12469
12469
  }
12470
- .field-tree-select__trigger[data-v-60520932] {
12471
- position: relative;
12470
+ .field-tree-select__trigger[data-v-e4650f63] {
12472
12471
  display: flex;
12472
+ position: relative;
12473
+ box-sizing: border-box;
12473
12474
  align-items: center;
12474
12475
  min-height: 32px;
12475
12476
  padding: 4px 28px 4px 8px;
12477
+ transition: border-color 0.2s;
12476
12478
  border: 1px solid #d9d9d9;
12477
12479
  border-radius: 4px;
12478
12480
  background: #fff;
12479
12481
  cursor: pointer;
12480
- box-sizing: border-box;
12481
- transition: border-color 0.2s;
12482
12482
  }
12483
- .field-tree-select__trigger[data-v-60520932]:hover {
12483
+ .field-tree-select__trigger[data-v-e4650f63]:hover {
12484
12484
  border-color: #026ac8;
12485
12485
  }
12486
- .field-tree-select__trigger.open[data-v-60520932] {
12486
+ .field-tree-select__trigger.open[data-v-e4650f63] {
12487
12487
  border-color: #026ac8;
12488
12488
  box-shadow: 0 0 0 2px rgba(2, 106, 200, 0.1);
12489
12489
  }
12490
- .field-tree-select__trigger-icon[data-v-60520932] {
12490
+ .field-tree-select__trigger-icon[data-v-e4650f63] {
12491
12491
  flex-shrink: 0;
12492
12492
  margin-right: 8px;
12493
12493
  }
12494
- .field-tree-select__input[data-v-60520932] {
12494
+ .field-tree-select__input[data-v-e4650f63] {
12495
12495
  flex: 1;
12496
12496
  min-width: 0;
12497
+ padding: 0;
12497
12498
  border: none;
12498
12499
  outline: none;
12499
12500
  background: transparent;
12501
+ color: #0d0d0d;
12500
12502
  font-size: 13px;
12501
12503
  line-height: 22px;
12502
- color: #0d0d0d;
12503
- padding: 0;
12504
12504
  cursor: pointer;
12505
12505
  }
12506
- .field-tree-select__input[data-v-60520932]::placeholder {
12506
+ .field-tree-select__input[data-v-e4650f63]::placeholder {
12507
12507
  color: rgba(0, 0, 0, 0.45);
12508
12508
  }
12509
- .field-tree-select__input.has-value[data-v-60520932]::placeholder {
12509
+ .field-tree-select__input.has-value[data-v-e4650f63]::placeholder {
12510
12510
  color: #0d0d0d;
12511
12511
  }
12512
- .field-tree-select__trigger.open .field-tree-select__input[data-v-60520932] {
12512
+ .field-tree-select__trigger.open .field-tree-select__input[data-v-e4650f63] {
12513
12513
  cursor: text;
12514
12514
  }
12515
- .field-tree-select__suffix-icon[data-v-60520932] {
12515
+ .field-tree-select__suffix-icon[data-v-e4650f63] {
12516
+ display: flex;
12516
12517
  position: absolute;
12517
- right: 6px;
12518
12518
  top: 50%;
12519
- transform: translateY(-50%);
12520
- display: flex;
12519
+ right: 6px;
12521
12520
  align-items: center;
12521
+ transform: translateY(-50%);
12522
12522
  pointer-events: none;
12523
12523
  }
12524
- .field-tree-select__clear[data-v-60520932] {
12524
+ .field-tree-select__clear[data-v-e4650f63] {
12525
+ display: flex;
12525
12526
  position: absolute;
12526
- right: 6px;
12527
12527
  top: 50%;
12528
- transform: translateY(-50%);
12529
- display: flex;
12528
+ right: 6px;
12530
12529
  align-items: center;
12530
+ transform: translateY(-50%);
12531
12531
  cursor: pointer;
12532
12532
  }
12533
- .field-tree-select__clear[data-v-60520932]:hover {
12533
+ .field-tree-select__clear[data-v-e4650f63]:hover {
12534
12534
  opacity: 0.7;
12535
12535
  }
12536
12536
  .field-tree-dropdown {
12537
- background: #fff;
12537
+ box-sizing: border-box;
12538
+ overflow: hidden;
12538
12539
  border: 1px solid rgba(13, 13, 13, 0.12);
12539
12540
  border-radius: 8px;
12541
+ background: #fff;
12540
12542
  box-shadow: 0 12px 32px rgba(13, 13, 13, 0.08);
12541
- overflow: hidden;
12542
12543
  isolation: isolate;
12543
- box-sizing: border-box;
12544
12544
  }
12545
12545
  .field-tree-dropdown__scrollbar {
12546
12546
  max-height: 280px;
@@ -12549,25 +12549,25 @@ svg.portrait-icon[data-v-8bdb451e] {
12549
12549
  padding: 4px;
12550
12550
  }
12551
12551
  .field-tree-dropdown__empty {
12552
- height: 80px;
12553
12552
  display: flex;
12554
12553
  align-items: center;
12555
12554
  justify-content: center;
12555
+ height: 80px;
12556
12556
  color: #c3c3c3;
12557
12557
  font-size: 13px;
12558
12558
  }
12559
12559
  .field-tree-dropdown .field-tree-option {
12560
- position: relative;
12561
12560
  display: flex;
12561
+ position: relative;
12562
+ box-sizing: border-box;
12562
12563
  align-items: center;
12564
+ padding: 5px 8px;
12565
+ transition: background 0.2s;
12566
+ border-radius: 6px;
12563
12567
  color: #0d0d0d;
12564
12568
  font-size: 14px;
12565
- border-radius: 6px;
12566
12569
  white-space: nowrap;
12567
- padding: 5px 8px;
12568
12570
  cursor: pointer;
12569
- transition: background 0.2s;
12570
- box-sizing: border-box;
12571
12571
  }
12572
12572
  .field-tree-dropdown .field-tree-option:not(.selected):not(.disabled):hover {
12573
12573
  background: rgba(13, 13, 13, 0.06);
@@ -12590,35 +12590,35 @@ svg.portrait-icon[data-v-8bdb451e] {
12590
12590
  background: transparent;
12591
12591
  }
12592
12592
  .field-tree-dropdown .field-tree-option .field-tree-option__switcher {
12593
- width: 16px;
12594
12593
  display: inline-flex;
12594
+ flex-shrink: 0;
12595
12595
  align-items: center;
12596
12596
  justify-content: center;
12597
+ width: 16px;
12597
12598
  margin-right: 4px;
12598
- flex-shrink: 0;
12599
12599
  }
12600
12600
  .field-tree-dropdown .field-tree-option .field-tree-option__switcher.placeholder {
12601
12601
  visibility: hidden;
12602
12602
  }
12603
12603
  .field-tree-dropdown .field-tree-option .field-tree-option__icon {
12604
12604
  display: inline-flex;
12605
+ flex-shrink: 0;
12605
12606
  width: 16px;
12606
12607
  height: 16px;
12607
12608
  margin-right: 8px;
12608
- flex-shrink: 0;
12609
12609
  }
12610
12610
  .field-tree-dropdown .field-tree-option .field-tree-option__label {
12611
12611
  flex: 1;
12612
12612
  min-width: 0;
12613
- line-height: 24px;
12614
12613
  overflow: hidden;
12614
+ color: #1a1d23;
12615
+ line-height: 24px;
12615
12616
  text-overflow: ellipsis;
12616
12617
  white-space: nowrap;
12617
- color: #1a1d23;
12618
12618
  }
12619
12619
  .field-tree-dropdown .field-tree-option .field-tree-option__label .gct-is-highlight {
12620
- color: #026ac8;
12621
12620
  background: transparent;
12621
+ color: #026ac8;
12622
12622
  }
12623
12623
  .field-map-row[data-v-886ee467] {
12624
12624
  display: grid;
@@ -12938,13 +12938,13 @@ svg.portrait-icon[data-v-8bdb451e] {
12938
12938
  display: block;
12939
12939
  flex: none;
12940
12940
  }
12941
- .panel-field[data-v-a9a74705] {
12941
+ .panel-field[data-v-7e6026cd] {
12942
12942
  position: relative;
12943
12943
  }
12944
- .panel-field .container[data-v-a9a74705] {
12944
+ .panel-field .container[data-v-7e6026cd] {
12945
12945
  padding: 15px 16px 16px;
12946
12946
  }
12947
- .panel-field[data-v-a9a74705] .container > .form-item {
12947
+ .panel-field[data-v-7e6026cd] .container > .form-item {
12948
12948
  align-items: flex-start;
12949
12949
  min-height: 18px;
12950
12950
  margin-top: 10px !important;
@@ -12954,10 +12954,10 @@ svg.portrait-icon[data-v-8bdb451e] {
12954
12954
  font-weight: 400;
12955
12955
  line-height: 18px;
12956
12956
  }
12957
- .panel-field[data-v-a9a74705] .container > .form-item:first-child {
12957
+ .panel-field[data-v-7e6026cd] .container > .form-item:first-child {
12958
12958
  margin-top: 0 !important;
12959
12959
  }
12960
- .panel-field[data-v-a9a74705] .container > .form-item > .form-item__label {
12960
+ .panel-field[data-v-7e6026cd] .container > .form-item > .form-item__label {
12961
12961
  flex: 0 0 96px;
12962
12962
  width: 96px;
12963
12963
  overflow: hidden;
@@ -12969,7 +12969,7 @@ svg.portrait-icon[data-v-8bdb451e] {
12969
12969
  text-overflow: ellipsis;
12970
12970
  white-space: nowrap;
12971
12971
  }
12972
- .panel-field[data-v-a9a74705] .container > .form-item > .form-item__content {
12972
+ .panel-field[data-v-7e6026cd] .container > .form-item > .form-item__content {
12973
12973
  min-width: 0;
12974
12974
  overflow: hidden;
12975
12975
  color: #1a1d23;
@@ -12978,7 +12978,7 @@ svg.portrait-icon[data-v-8bdb451e] {
12978
12978
  font-weight: 400;
12979
12979
  line-height: 18px;
12980
12980
  }
12981
- .panel-field[data-v-a9a74705] .collapse.panel-collapse > .collapse-header {
12981
+ .panel-field[data-v-7e6026cd] .collapse.panel-collapse > .collapse-header {
12982
12982
  box-sizing: border-box;
12983
12983
  align-items: center;
12984
12984
  height: 36px;
@@ -12991,11 +12991,11 @@ svg.portrait-icon[data-v-8bdb451e] {
12991
12991
  line-height: 18px;
12992
12992
  background: #f9fafb;
12993
12993
  }
12994
- .panel-field[data-v-a9a74705] .collapse.panel-collapse.is-first > .collapse-header {
12994
+ .panel-field[data-v-7e6026cd] .collapse.panel-collapse.is-first > .collapse-header {
12995
12995
  height: 35px;
12996
12996
  min-height: 35px;
12997
12997
  }
12998
- .panel-field[data-v-a9a74705] .collapse.panel-collapse .expand-icon {
12998
+ .panel-field[data-v-7e6026cd] .collapse.panel-collapse .expand-icon {
12999
12999
  display: flex;
13000
13000
  align-items: center;
13001
13001
  height: 16px;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gct-paas/word",
3
- "version": "0.1.74-beta.27",
3
+ "version": "0.1.74-beta.28",
4
4
  "description": "GCT 在线 word",
5
5
  "keywords": [
6
6
  "vue",