fantasy-ngzorro 2.2.13 → 2.2.15

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.
@@ -1274,6 +1274,29 @@ function measureTableColWidth(nzTable) {
1274
1274
  }
1275
1275
  return max;
1276
1276
  }
1277
+ /**
1278
+ * 用于判断是否需要 scroll.x 的视口宽。
1279
+ * 有纵向滚动条时 clientWidth 会少一截,若直接拿去比列宽,会「竖滚条导致误开横滚」;
1280
+ * 这里用 offsetWidth(含滚动条槽)作为屏幕可展示宽度。
1281
+ * @param {?} nzTable
1282
+ * @param {?=} hostClass
1283
+ * @return {?}
1284
+ */
1285
+ function getTableScrollXViewportWidth(nzTable, hostClass) {
1286
+ if (hostClass === void 0) { hostClass = "hd-table-container"; }
1287
+ if (!nzTable || !nzTable.tableMainElement) {
1288
+ return 0;
1289
+ }
1290
+ /** @type {?} */
1291
+ var tableMain = (/** @type {?} */ (nzTable.tableMainElement.nativeElement));
1292
+ /** @type {?} */
1293
+ var scrollBody = ((/** @type {?} */ (tableMain.querySelector("cdk-virtual-scroll-viewport.ant-table-body")))) ||
1294
+ ((/** @type {?} */ (tableMain.querySelector(".ant-table-body"))));
1295
+ if (scrollBody && scrollBody.offsetWidth > 0) {
1296
+ return scrollBody.offsetWidth;
1297
+ }
1298
+ return getTableViewportWidth(nzTable, hostClass);
1299
+ }
1277
1300
  /**
1278
1301
  * 无数据或列宽未超出容器时不启用横向 scroll
1279
1302
  * @param {?} nzTable
@@ -1293,9 +1316,10 @@ function resolveAutoTableScroll(nzTable, hasData, colWidth) {
1293
1316
  return null;
1294
1317
  }
1295
1318
  /** @type {?} */
1296
- var viewportWidth = getTableViewportWidth(nzTable);
1319
+ var viewportWidth = getTableScrollXViewportWidth(nzTable);
1297
1320
  if (viewportWidth > 0) {
1298
- return width > viewportWidth ? { x: Math.ceil(width) + "px" } : null;
1321
+ // 允许 1px 误差,避免亚像素导致误开横滚
1322
+ return width > viewportWidth + 1 ? { x: Math.ceil(width) + "px" } : null;
1299
1323
  }
1300
1324
  if (typeof window !== "undefined" && width > window.innerWidth - 32) {
1301
1325
  return { x: Math.ceil(width) + "px" };
@@ -10341,19 +10365,6 @@ if (false) {
10341
10365
  /** @type {?} */
10342
10366
  OperateBtn.prototype.permission;
10343
10367
  }
10344
- var HdTableTotalOption = /** @class */ (function () {
10345
- function HdTableTotalOption() {
10346
- }
10347
- return HdTableTotalOption;
10348
- }());
10349
- if (false) {
10350
- /** @type {?} */
10351
- HdTableTotalOption.prototype.columnNumber;
10352
- /** @type {?} */
10353
- HdTableTotalOption.prototype.insertIndex;
10354
- /** @type {?} */
10355
- HdTableTotalOption.prototype.insertName;
10356
- }
10357
10368
  var TableCacheOption = /** @class */ (function () {
10358
10369
  function TableCacheOption() {
10359
10370
  this.colWidths = new Map(); // name -> width
@@ -10405,8 +10416,9 @@ if (false) {
10405
10416
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
10406
10417
  */
10407
10418
  var HdTableComponent = /** @class */ (function () {
10408
- function HdTableComponent(cdr, commonSessionService) {
10419
+ function HdTableComponent(hostEl, cdr, commonSessionService) {
10409
10420
  var _this = this;
10421
+ this.hostEl = hostEl;
10410
10422
  this.cdr = cdr;
10411
10423
  this.commonSessionService = commonSessionService;
10412
10424
  this.tableCols = [];
@@ -10414,7 +10426,7 @@ var HdTableComponent = /** @class */ (function () {
10414
10426
  this.showOperateColWarpButton = false;
10415
10427
  this.virtualScroll = true;
10416
10428
  this.selectField = "billNumber";
10417
- // 合计区域
10429
+ // 合计区域(类型与 hd-detail-lines 的 TotalOption 一致)
10418
10430
  this.showTableTotal = false;
10419
10431
  this.sortEvent = new EventEmitter();
10420
10432
  this.selectEvent = new EventEmitter();
@@ -10479,8 +10491,9 @@ var HdTableComponent = /** @class */ (function () {
10479
10491
  * 记录当前是否处于虚拟滚动模式,用于切换 pageSize 时重建表格
10480
10492
  */
10481
10493
  this.virtualScrollActive = null;
10494
+ /** 可见列总宽,用于判断是否需要横向滚动 */
10482
10495
  /**
10483
- * 可见列总宽,用于判断是否需要横向滚动
10496
+ * 列宽合计(含勾选/序号),footer 表宽与横向 scroll 共用
10484
10497
  */
10485
10498
  this.tableColWidthTotal = 0;
10486
10499
  /**
@@ -10492,6 +10505,24 @@ var HdTableComponent = /** @class */ (function () {
10492
10505
  */
10493
10506
  this.currentSortKey = null;
10494
10507
  this.currentSortValue = null;
10508
+ this.totalFooterScrollBoundBody = null;
10509
+ this.totalFooterScrollHandler = null;
10510
+ this.totalFooterSyncRetry = 0;
10511
+ /**
10512
+ * 表体有竖滚条时合计 footer 才预留右侧滚动条槽
10513
+ */
10514
+ this.totalFooterNeedYGutter = false;
10515
+ /**
10516
+ * 视口/容器尺寸变化时重算 scroll.x 与合计对齐
10517
+ */
10518
+ this.viewportResizeTimer = null;
10519
+ this.boundOnViewportResize = null;
10520
+ this.hostResizeObserver = null;
10521
+ /**
10522
+ * 序号列固定宽(含 padding,可容纳 6 位如 199995)。
10523
+ * 不锁死时表体会随位数变宽(1→~64px,199995→~67px),合计行对不齐。
10524
+ */
10525
+ this.lineNumberColWidth = 72;
10495
10526
  this.trackByRow = (/**
10496
10527
  * @param {?} index
10497
10528
  * @param {?} data
@@ -10571,6 +10602,16 @@ var HdTableComponent = /** @class */ (function () {
10571
10602
  storeName: "hd-fscm-store",
10572
10603
  });
10573
10604
  }
10605
+ /**
10606
+ * @return {?}
10607
+ */
10608
+ HdTableComponent.prototype.ngOnDestroy = /**
10609
+ * @return {?}
10610
+ */
10611
+ function () {
10612
+ this.unbindTotalFooterScrollSync();
10613
+ this.unbindViewportResizeSync();
10614
+ };
10574
10615
  /**
10575
10616
  * @return {?}
10576
10617
  */
@@ -10596,6 +10637,7 @@ var HdTableComponent = /** @class */ (function () {
10596
10637
  userCode: "dev",
10597
10638
  };
10598
10639
  }
10640
+ this.bindViewportResizeSync();
10599
10641
  this.deleteHideItem();
10600
10642
  if (!this.tableCols || this.tableCols.length === 0) {
10601
10643
  return;
@@ -10627,6 +10669,13 @@ var HdTableComponent = /** @class */ (function () {
10627
10669
  */
10628
10670
  function (changes) {
10629
10671
  var _this = this;
10672
+ if (changes["tableData"] ||
10673
+ changes["tableTotalOption"] ||
10674
+ changes["showTableTotal"] ||
10675
+ changes["columnsNumber"] ||
10676
+ changes["tableCols"]) {
10677
+ this.calculateTableTotal();
10678
+ }
10630
10679
  if (changes &&
10631
10680
  changes["tableData"] &&
10632
10681
  changes["tableData"]["currentValue"] &&
@@ -10892,6 +10941,83 @@ var HdTableComponent = /** @class */ (function () {
10892
10941
  function (col) {
10893
10942
  return col.fixed === "left" ? (col.fixedWidth || 0) + "px" : null;
10894
10943
  };
10944
+ Object.defineProperty(HdTableComponent.prototype, "lineNumberLeft", {
10945
+ /** 开启合计时序号列的 left(勾选列占 40px) */
10946
+ get: /**
10947
+ * 开启合计时序号列的 left(勾选列占 40px)
10948
+ * @return {?}
10949
+ */
10950
+ function () {
10951
+ return this.showSelected ? "40px" : "0px";
10952
+ },
10953
+ enumerable: true,
10954
+ configurable: true
10955
+ });
10956
+ Object.defineProperty(HdTableComponent.prototype, "lineNumberColWidthPx", {
10957
+ get: /**
10958
+ * @return {?}
10959
+ */
10960
+ function () {
10961
+ return this.lineNumberColWidth + "px";
10962
+ },
10963
+ enumerable: true,
10964
+ configurable: true
10965
+ });
10966
+ Object.defineProperty(HdTableComponent.prototype, "isTotalFooterFluid", {
10967
+ /**
10968
+ * 列总宽未超出容器:无横向 scroll,表体列会被撑满,合计走 fluid(width:100%)。
10969
+ * 列总宽超出:有 scroll.x,合计走固定表宽 + 横滚同步。
10970
+ */
10971
+ get: /**
10972
+ * 列总宽未超出容器:无横向 scroll,表体列会被撑满,合计走 fluid(width:100%)。
10973
+ * 列总宽超出:有 scroll.x,合计走固定表宽 + 横滚同步。
10974
+ * @return {?}
10975
+ */
10976
+ function () {
10977
+ return !(this.scroll && this.scroll.x);
10978
+ },
10979
+ enumerable: true,
10980
+ configurable: true
10981
+ });
10982
+ Object.defineProperty(HdTableComponent.prototype, "totalFooterTableWidth", {
10983
+ /** fluid → 100%;固定 → scroll.x(与表体同一套横向宽度) */
10984
+ get: /**
10985
+ * fluid → 100%;固定 → scroll.x(与表体同一套横向宽度)
10986
+ * @return {?}
10987
+ */
10988
+ function () {
10989
+ if (this.isTotalFooterFluid) {
10990
+ return "100%";
10991
+ }
10992
+ return this.scroll && this.scroll.x
10993
+ ? String(this.scroll.x)
10994
+ : this.tableColWidthTotal > 0
10995
+ ? this.tableColWidthTotal + "px"
10996
+ : "100%";
10997
+ },
10998
+ enumerable: true,
10999
+ configurable: true
11000
+ });
11001
+ /** 当前页行号(跨页连续,从 1 开始) */
11002
+ /**
11003
+ * 当前页行号(跨页连续,从 1 开始)
11004
+ * @param {?} index
11005
+ * @return {?}
11006
+ */
11007
+ HdTableComponent.prototype.getLineNumber = /**
11008
+ * 当前页行号(跨页连续,从 1 开始)
11009
+ * @param {?} index
11010
+ * @return {?}
11011
+ */
11012
+ function (index) {
11013
+ /** @type {?} */
11014
+ var page = Number(this.tablePageIndex) > 0 ? Number(this.tablePageIndex) : 1;
11015
+ /** @type {?} */
11016
+ var size = Number(this.tablePageSize) > 0 ? Number(this.tablePageSize) : 0;
11017
+ /** @type {?} */
11018
+ var rowIndex = Number(index) >= 0 ? Number(index) : 0;
11019
+ return (page - 1) * size + rowIndex + 1;
11020
+ };
10895
11021
  /**
10896
11022
  * @return {?}
10897
11023
  */
@@ -11752,6 +11878,7 @@ var HdTableComponent = /** @class */ (function () {
11752
11878
  * @return {?}
11753
11879
  */
11754
11880
  function (_a, col) {
11881
+ var _this = this;
11755
11882
  var width = _a.width;
11756
11883
  this.normalizeTableCacheOption();
11757
11884
  /** @type {?} */
@@ -11773,6 +11900,10 @@ var HdTableComponent = /** @class */ (function () {
11773
11900
  }));
11774
11901
  this.dealScroll();
11775
11902
  this.cdr.markForCheck();
11903
+ setTimeout((/**
11904
+ * @return {?}
11905
+ */
11906
+ function () { return _this.syncTotalFooterWithBody(); }));
11776
11907
  };
11777
11908
  /**
11778
11909
  * @return {?}
@@ -11909,31 +12040,27 @@ var HdTableComponent = /** @class */ (function () {
11909
12040
  this.tableData.content &&
11910
12041
  this.tableData.content.length);
11911
12042
  };
11912
- /** 列总宽超出外层容器才启用横向 scroll(不能用 table 自身宽度,会被 scroll.x 撑宽) */
11913
12043
  /**
11914
- * 列总宽超出外层容器才启用横向 scroll(不能用 table 自身宽度,会被 scroll.x 撑宽)
12044
+ * 列总宽超出外层容器才启用横向 scroll。
12045
+ * 以 dealScroll 累计的声明列宽为准,不用 DOM 自然测宽(内容不截断会偏大,导致列能放下也开横滚)。
12046
+ */
12047
+ /**
12048
+ * 列总宽超出外层容器才启用横向 scroll。
12049
+ * 以 dealScroll 累计的声明列宽为准,不用 DOM 自然测宽(内容不截断会偏大,导致列能放下也开横滚)。
11915
12050
  * @private
11916
12051
  * @param {?} colWidth
11917
12052
  * @return {?}
11918
12053
  */
11919
12054
  HdTableComponent.prototype.resolveScrollX = /**
11920
- * 列总宽超出外层容器才启用横向 scroll(不能用 table 自身宽度,会被 scroll.x 撑宽)
12055
+ * 列总宽超出外层容器才启用横向 scroll。
12056
+ * 以 dealScroll 累计的声明列宽为准,不用 DOM 自然测宽(内容不截断会偏大,导致列能放下也开横滚)。
11921
12057
  * @private
11922
12058
  * @param {?} colWidth
11923
12059
  * @return {?}
11924
12060
  */
11925
12061
  function (colWidth) {
11926
12062
  /** @type {?} */
11927
- var width = colWidth;
11928
- if (this.nzTableComponent) {
11929
- /** @type {?} */
11930
- var measured = measureTableColWidth(this.nzTableComponent);
11931
- if (measured > width) {
11932
- width = measured;
11933
- }
11934
- }
11935
- /** @type {?} */
11936
- var autoScroll = resolveAutoTableScroll(this.nzTableComponent, this.hasTableData(), width);
12063
+ var autoScroll = resolveAutoTableScroll(this.nzTableComponent, this.hasTableData(), colWidth);
11937
12064
  return autoScroll ? autoScroll.x : null;
11938
12065
  };
11939
12066
  /** 表格渲染后按实际容器宽度校正横向 scroll(只改 x,避免触发表头结构变化) */
@@ -11956,6 +12083,10 @@ var HdTableComponent = /** @class */ (function () {
11956
12083
  if (this.scroll &&
11957
12084
  this.scroll.x === scrollX &&
11958
12085
  this.scroll.y === currentY) {
12086
+ setTimeout((/**
12087
+ * @return {?}
12088
+ */
12089
+ function () { return _this.syncTotalFooterWithBody(); }));
11959
12090
  return;
11960
12091
  }
11961
12092
  // 保持 y 不变,防止运行中拆/合 header 导致横向同步失效
@@ -11966,32 +12097,308 @@ var HdTableComponent = /** @class */ (function () {
11966
12097
  */
11967
12098
  function () { return _this.syncHeaderBodyScrollLeft(); }));
11968
12099
  };
11969
- /** 手动把表体横向滚动同步到表头(兜底 ng-zorro 监听丢失的情况) */
12100
+ /** 手动把表体横向滚动同步到表头 / 合计 footer(兜底 ng-zorro 监听丢失的情况) */
11970
12101
  /**
11971
- * 手动把表体横向滚动同步到表头(兜底 ng-zorro 监听丢失的情况)
12102
+ * 手动把表体横向滚动同步到表头 / 合计 footer(兜底 ng-zorro 监听丢失的情况)
11972
12103
  * @private
11973
12104
  * @return {?}
11974
12105
  */
11975
12106
  HdTableComponent.prototype.syncHeaderBodyScrollLeft = /**
11976
- * 手动把表体横向滚动同步到表头(兜底 ng-zorro 监听丢失的情况)
12107
+ * 手动把表体横向滚动同步到表头 / 合计 footer(兜底 ng-zorro 监听丢失的情况)
11977
12108
  * @private
11978
12109
  * @return {?}
11979
12110
  */
11980
12111
  function () {
11981
- if (!this.nzTableComponent || !this.scroll || !this.scroll.x) {
12112
+ if (!this.nzTableComponent) {
11982
12113
  return;
11983
12114
  }
11984
12115
  /** @type {?} */
11985
12116
  var header = (/** @type {?} */ (((/** @type {?} */ (this.nzTableComponent))).tableHeaderNativeElement));
11986
12117
  /** @type {?} */
11987
- var body = (/** @type {?} */ (((/** @type {?} */ (this.nzTableComponent))).mixTableBodyNativeElement));
11988
- if (!header || !body) {
12118
+ var body = this.getTableBodyScrollEl();
12119
+ if (this.scroll && this.scroll.x && header && body) {
12120
+ if (header.scrollLeft !== body.scrollLeft) {
12121
+ header.scrollLeft = body.scrollLeft;
12122
+ }
12123
+ }
12124
+ this.syncTotalFooterWithBody();
12125
+ };
12126
+ /** 取表体横向滚动容器(虚拟滚动优先 viewport) */
12127
+ /**
12128
+ * 取表体横向滚动容器(虚拟滚动优先 viewport)
12129
+ * @private
12130
+ * @return {?}
12131
+ */
12132
+ HdTableComponent.prototype.getTableBodyScrollEl = /**
12133
+ * 取表体横向滚动容器(虚拟滚动优先 viewport)
12134
+ * @private
12135
+ * @return {?}
12136
+ */
12137
+ function () {
12138
+ if (!this.nzTableComponent) {
12139
+ return null;
12140
+ }
12141
+ /** @type {?} */
12142
+ var mix = (/** @type {?} */ (((/** @type {?} */ (this.nzTableComponent))).mixTableBodyNativeElement));
12143
+ if (mix) {
12144
+ return mix;
12145
+ }
12146
+ /** @type {?} */
12147
+ var host = this.hostEl && ((/** @type {?} */ (this.hostEl.nativeElement)));
12148
+ if (!host) {
12149
+ return null;
12150
+ }
12151
+ return (((/** @type {?} */ (host.querySelector("cdk-virtual-scroll-viewport.ant-table-body")))) ||
12152
+ ((/** @type {?} */ (host.querySelector(".ant-table-body")))) ||
12153
+ null);
12154
+ };
12155
+ /**
12156
+ * @private
12157
+ * @return {?}
12158
+ */
12159
+ HdTableComponent.prototype.getTotalFooterScrollEl = /**
12160
+ * @private
12161
+ * @return {?}
12162
+ */
12163
+ function () {
12164
+ /** @type {?} */
12165
+ var host = this.hostEl && ((/** @type {?} */ (this.hostEl.nativeElement)));
12166
+ return host
12167
+ ? ((/** @type {?} */ (host.querySelector(".hd-table-total-footer"))))
12168
+ : null;
12169
+ };
12170
+ /** 表体是否出现纵向滚动条(含滚动条槽宽) */
12171
+ /**
12172
+ * 表体是否出现纵向滚动条(含滚动条槽宽)
12173
+ * @private
12174
+ * @param {?} body
12175
+ * @return {?}
12176
+ */
12177
+ HdTableComponent.prototype.bodyHasVerticalScrollbar = /**
12178
+ * 表体是否出现纵向滚动条(含滚动条槽宽)
12179
+ * @private
12180
+ * @param {?} body
12181
+ * @return {?}
12182
+ */
12183
+ function (body) {
12184
+ if (!body) {
12185
+ return false;
12186
+ }
12187
+ return (body.scrollHeight > body.clientHeight + 1 ||
12188
+ body.offsetWidth - body.clientWidth > 1);
12189
+ };
12190
+ /**
12191
+ * 合计 footer 与表体联动:
12192
+ * - fluid(列未撑满):不横滚、不测宽,表宽 100% 与表体同比例拉伸;
12193
+ * - fixed(有 scroll.x):同步 scrollLeft;
12194
+ * - 仅当表体有竖滚条时预留右侧槽,行少无竖滚时不占位。
12195
+ */
12196
+ /**
12197
+ * 合计 footer 与表体联动:
12198
+ * - fluid(列未撑满):不横滚、不测宽,表宽 100% 与表体同比例拉伸;
12199
+ * - fixed(有 scroll.x):同步 scrollLeft;
12200
+ * - 仅当表体有竖滚条时预留右侧槽,行少无竖滚时不占位。
12201
+ * @private
12202
+ * @return {?}
12203
+ */
12204
+ HdTableComponent.prototype.syncTotalFooterWithBody = /**
12205
+ * 合计 footer 与表体联动:
12206
+ * - fluid(列未撑满):不横滚、不测宽,表宽 100% 与表体同比例拉伸;
12207
+ * - fixed(有 scroll.x):同步 scrollLeft;
12208
+ * - 仅当表体有竖滚条时预留右侧槽,行少无竖滚时不占位。
12209
+ * @private
12210
+ * @return {?}
12211
+ */
12212
+ function () {
12213
+ var _this = this;
12214
+ if (!this.showTableTotal) {
12215
+ this.unbindTotalFooterScrollSync();
12216
+ if (this.totalFooterNeedYGutter) {
12217
+ this.totalFooterNeedYGutter = false;
12218
+ this.cdr.markForCheck();
12219
+ }
11989
12220
  return;
11990
12221
  }
11991
- if (header.scrollLeft !== body.scrollLeft) {
11992
- header.scrollLeft = body.scrollLeft;
12222
+ /** @type {?} */
12223
+ var footer = this.getTotalFooterScrollEl();
12224
+ /** @type {?} */
12225
+ var body = this.getTableBodyScrollEl();
12226
+ if (!footer) {
12227
+ if (this.totalFooterSyncRetry < 10) {
12228
+ this.totalFooterSyncRetry++;
12229
+ setTimeout((/**
12230
+ * @return {?}
12231
+ */
12232
+ function () { return _this.syncTotalFooterWithBody(); }), 50);
12233
+ }
12234
+ return;
12235
+ }
12236
+ this.totalFooterSyncRetry = 0;
12237
+ /** @type {?} */
12238
+ var needYGutter = !!(body && this.bodyHasVerticalScrollbar(body));
12239
+ if (this.totalFooterNeedYGutter !== needYGutter) {
12240
+ this.totalFooterNeedYGutter = needYGutter;
12241
+ this.cdr.markForCheck();
12242
+ }
12243
+ if (this.isTotalFooterFluid) {
12244
+ this.unbindTotalFooterScrollSync();
12245
+ footer.scrollLeft = 0;
12246
+ return;
12247
+ }
12248
+ if (body) {
12249
+ this.syncTotalFooterScrollLeft(body.scrollLeft);
12250
+ this.bindTotalFooterScrollSync(body);
11993
12251
  }
11994
12252
  };
12253
+ /**
12254
+ * @private
12255
+ * @param {?} scrollLeft
12256
+ * @return {?}
12257
+ */
12258
+ HdTableComponent.prototype.syncTotalFooterScrollLeft = /**
12259
+ * @private
12260
+ * @param {?} scrollLeft
12261
+ * @return {?}
12262
+ */
12263
+ function (scrollLeft) {
12264
+ /** @type {?} */
12265
+ var footer = this.getTotalFooterScrollEl();
12266
+ if (footer && footer.scrollLeft !== scrollLeft) {
12267
+ footer.scrollLeft = scrollLeft;
12268
+ }
12269
+ };
12270
+ /**
12271
+ * @private
12272
+ * @param {?} body
12273
+ * @return {?}
12274
+ */
12275
+ HdTableComponent.prototype.bindTotalFooterScrollSync = /**
12276
+ * @private
12277
+ * @param {?} body
12278
+ * @return {?}
12279
+ */
12280
+ function (body) {
12281
+ var _this = this;
12282
+ if (!this.showTableTotal || !body || this.isTotalFooterFluid) {
12283
+ return;
12284
+ }
12285
+ if (this.totalFooterScrollBoundBody === body &&
12286
+ this.totalFooterScrollHandler) {
12287
+ return;
12288
+ }
12289
+ this.unbindTotalFooterScrollSync();
12290
+ this.totalFooterScrollBoundBody = body;
12291
+ this.totalFooterScrollHandler = (/**
12292
+ * @return {?}
12293
+ */
12294
+ function () {
12295
+ _this.syncTotalFooterScrollLeft(body.scrollLeft);
12296
+ });
12297
+ body.addEventListener("scroll", this.totalFooterScrollHandler, (/** @type {?} */ ({
12298
+ passive: true,
12299
+ })));
12300
+ };
12301
+ /**
12302
+ * @private
12303
+ * @return {?}
12304
+ */
12305
+ HdTableComponent.prototype.unbindTotalFooterScrollSync = /**
12306
+ * @private
12307
+ * @return {?}
12308
+ */
12309
+ function () {
12310
+ if (this.totalFooterScrollBoundBody && this.totalFooterScrollHandler) {
12311
+ this.totalFooterScrollBoundBody.removeEventListener("scroll", this.totalFooterScrollHandler);
12312
+ }
12313
+ this.totalFooterScrollBoundBody = null;
12314
+ this.totalFooterScrollHandler = null;
12315
+ };
12316
+ /**
12317
+ * 监听窗口 / 容器宽度变化:重新判定 scroll.x(fluid↔fixed)与合计右侧竖滚槽,
12318
+ * 避免拉宽/缩窄屏幕后合计行宽与表体错位。
12319
+ */
12320
+ /**
12321
+ * 监听窗口 / 容器宽度变化:重新判定 scroll.x(fluid↔fixed)与合计右侧竖滚槽,
12322
+ * 避免拉宽/缩窄屏幕后合计行宽与表体错位。
12323
+ * @private
12324
+ * @return {?}
12325
+ */
12326
+ HdTableComponent.prototype.bindViewportResizeSync = /**
12327
+ * 监听窗口 / 容器宽度变化:重新判定 scroll.x(fluid↔fixed)与合计右侧竖滚槽,
12328
+ * 避免拉宽/缩窄屏幕后合计行宽与表体错位。
12329
+ * @private
12330
+ * @return {?}
12331
+ */
12332
+ function () {
12333
+ var _this = this;
12334
+ this.boundOnViewportResize = (/**
12335
+ * @return {?}
12336
+ */
12337
+ function () { return _this.scheduleViewportScrollSync(); });
12338
+ if (typeof window !== "undefined") {
12339
+ window.addEventListener("resize", this.boundOnViewportResize);
12340
+ }
12341
+ /** @type {?} */
12342
+ var RO = typeof window !== "undefined" ? ((/** @type {?} */ (window))).ResizeObserver : null;
12343
+ if (RO && this.hostEl && this.hostEl.nativeElement) {
12344
+ this.hostResizeObserver = new RO((/**
12345
+ * @return {?}
12346
+ */
12347
+ function () { return _this.scheduleViewportScrollSync(); }));
12348
+ this.hostResizeObserver.observe(this.hostEl.nativeElement);
12349
+ }
12350
+ };
12351
+ /**
12352
+ * @private
12353
+ * @return {?}
12354
+ */
12355
+ HdTableComponent.prototype.unbindViewportResizeSync = /**
12356
+ * @private
12357
+ * @return {?}
12358
+ */
12359
+ function () {
12360
+ if (this.boundOnViewportResize && typeof window !== "undefined") {
12361
+ window.removeEventListener("resize", this.boundOnViewportResize);
12362
+ }
12363
+ this.boundOnViewportResize = null;
12364
+ if (this.hostResizeObserver) {
12365
+ this.hostResizeObserver.disconnect();
12366
+ this.hostResizeObserver = null;
12367
+ }
12368
+ if (this.viewportResizeTimer != null) {
12369
+ clearTimeout(this.viewportResizeTimer);
12370
+ this.viewportResizeTimer = null;
12371
+ }
12372
+ };
12373
+ /**
12374
+ * @private
12375
+ * @return {?}
12376
+ */
12377
+ HdTableComponent.prototype.scheduleViewportScrollSync = /**
12378
+ * @private
12379
+ * @return {?}
12380
+ */
12381
+ function () {
12382
+ var _this = this;
12383
+ if (this.viewportResizeTimer != null) {
12384
+ clearTimeout(this.viewportResizeTimer);
12385
+ }
12386
+ this.viewportResizeTimer = setTimeout((/**
12387
+ * @return {?}
12388
+ */
12389
+ function () {
12390
+ _this.viewportResizeTimer = null;
12391
+ if (!_this.tableCols || !_this.tableCols.length) {
12392
+ return;
12393
+ }
12394
+ _this.syncHorizontalScroll();
12395
+ // 等表体布局稳定后再校合计竖滚槽 / 横滚同步
12396
+ setTimeout((/**
12397
+ * @return {?}
12398
+ */
12399
+ function () { return _this.syncTotalFooterWithBody(); }), 50);
12400
+ }), 100);
12401
+ };
11995
12402
  /**
11996
12403
  * @return {?}
11997
12404
  */
@@ -12004,6 +12411,9 @@ var HdTableComponent = /** @class */ (function () {
12004
12411
  if (this.showSelected) {
12005
12412
  colWidth += 40;
12006
12413
  }
12414
+ if (this.showTableTotal) {
12415
+ colWidth += this.lineNumberColWidth; // 序号列(固定宽,不随位数变化)
12416
+ }
12007
12417
  this.tableCols.forEach((/**
12008
12418
  * @param {?} item
12009
12419
  * @return {?}
@@ -12122,6 +12532,194 @@ var HdTableComponent = /** @class */ (function () {
12122
12532
  this.tableSearchEvent.emit(reset);
12123
12533
  }
12124
12534
  };
12535
+ /**
12536
+ * 底部合计:与 hd-detail-lines 相同,使用 TotalOption(insertIndex / insertValue)。
12537
+ * 开启后强制展示序号列,「合计」落在序号列下;
12538
+ * insertIndex 从 1 起对应可见数据列;未传 insertValue 时按该列 name 对 content 求和。
12539
+ */
12540
+ /**
12541
+ * 底部合计:与 hd-detail-lines 相同,使用 TotalOption(insertIndex / insertValue)。
12542
+ * 开启后强制展示序号列,「合计」落在序号列下;
12543
+ * insertIndex 从 1 起对应可见数据列;未传 insertValue 时按该列 name 对 content 求和。
12544
+ * @return {?}
12545
+ */
12546
+ HdTableComponent.prototype.calculateTableTotal = /**
12547
+ * 底部合计:与 hd-detail-lines 相同,使用 TotalOption(insertIndex / insertValue)。
12548
+ * 开启后强制展示序号列,「合计」落在序号列下;
12549
+ * insertIndex 从 1 起对应可见数据列;未传 insertValue 时按该列 name 对 content 求和。
12550
+ * @return {?}
12551
+ */
12552
+ function () {
12553
+ var _this = this;
12554
+ if (!this.showTableTotal ||
12555
+ !this.tableTotalOption ||
12556
+ !this.tableTotalOption.length) {
12557
+ this.tableTotalOptionList = [];
12558
+ return;
12559
+ }
12560
+ /** @type {?} */
12561
+ var visibleCols = (this.tableCols || []).filter((/**
12562
+ * @param {?} c
12563
+ * @return {?}
12564
+ */
12565
+ function (c) { return c && c.isShow !== false; }));
12566
+ // columnsNumber 含序号列(与 detail-lines 一致),数据槽位数 = columnsNumber - 1
12567
+ /** @type {?} */
12568
+ var configured = Number(this.columnsNumber);
12569
+ /** @type {?} */
12570
+ var columnNumber = configured > 1
12571
+ ? configured - 1
12572
+ : configured === 1
12573
+ ? 1
12574
+ : visibleCols.length;
12575
+ if (!columnNumber || columnNumber < 1) {
12576
+ this.tableTotalOptionList = [];
12577
+ return;
12578
+ }
12579
+ this.tableTotalOptionList = new Array(columnNumber).fill("");
12580
+ /** @type {?} */
12581
+ var content = this.tableData && this.tableData.content ? this.tableData.content : [];
12582
+ this.tableTotalOption.forEach((/**
12583
+ * @param {?} item
12584
+ * @return {?}
12585
+ */
12586
+ function (item) {
12587
+ if (item == null || !item.insertIndex || item.insertIndex < 1) {
12588
+ return;
12589
+ }
12590
+ /** @type {?} */
12591
+ var value = item.insertValue;
12592
+ // 未传 insertValue 时:按 insertIndex 对应可见列 name 自动求和
12593
+ if (value == null || value === "") {
12594
+ /** @type {?} */
12595
+ var col = visibleCols[item.insertIndex - 1];
12596
+ /** @type {?} */
12597
+ var field_1 = col && typeof col.name === "string" ? col.name : null;
12598
+ if (!field_1) {
12599
+ return;
12600
+ }
12601
+ /** @type {?} */
12602
+ var sum_1 = 0;
12603
+ /** @type {?} */
12604
+ var hasValue_1 = false;
12605
+ content.forEach((/**
12606
+ * @param {?} row
12607
+ * @return {?}
12608
+ */
12609
+ function (row) {
12610
+ /** @type {?} */
12611
+ var raw = row ? row[field_1] : null;
12612
+ if (raw == null || raw === "") {
12613
+ return;
12614
+ }
12615
+ /** @type {?} */
12616
+ var num = Number(raw);
12617
+ if (!isNaN(num)) {
12618
+ sum_1 += num;
12619
+ hasValue_1 = true;
12620
+ }
12621
+ }));
12622
+ if (!hasValue_1) {
12623
+ return;
12624
+ }
12625
+ value = sum_1;
12626
+ }
12627
+ /** @type {?} */
12628
+ var colAtIndex = visibleCols[item.insertIndex - 1];
12629
+ _this.tableTotalOptionList[item.insertIndex - 1] = {
12630
+ value: value,
12631
+ align: item.align || (colAtIndex && colAtIndex.align) || "left",
12632
+ showDecimal: item.showDecimal || false,
12633
+ preserveNumber: item.preserveNumber != null ? item.preserveNumber : 2,
12634
+ isHide: item.isHide || false,
12635
+ };
12636
+ }));
12637
+ };
12638
+ /**
12639
+ * @private
12640
+ * @param {?} col
12641
+ * @param {?} colIndex
12642
+ * @return {?}
12643
+ */
12644
+ HdTableComponent.prototype.getTableTotalCellMeta = /**
12645
+ * @private
12646
+ * @param {?} col
12647
+ * @param {?} colIndex
12648
+ * @return {?}
12649
+ */
12650
+ function (col, colIndex) {
12651
+ if (!col || !this.tableTotalOptionList || !this.tableTotalOptionList.length) {
12652
+ return null;
12653
+ }
12654
+ /** @type {?} */
12655
+ var visibleIndex = -1;
12656
+ for (var i = 0; i <= colIndex; i++) {
12657
+ /** @type {?} */
12658
+ var c = this.tableCols[i];
12659
+ if (c && c.isShow !== false) {
12660
+ visibleIndex++;
12661
+ }
12662
+ }
12663
+ if (visibleIndex < 0 || visibleIndex >= this.tableTotalOptionList.length) {
12664
+ return null;
12665
+ }
12666
+ /** @type {?} */
12667
+ var meta = this.tableTotalOptionList[visibleIndex];
12668
+ return meta && typeof meta === "object" ? meta : null;
12669
+ };
12670
+ /** 合计单元格展示文案(对齐 detail-lines 小数规则) */
12671
+ /**
12672
+ * 合计单元格展示文案(对齐 detail-lines 小数规则)
12673
+ * @param {?} col
12674
+ * @param {?} colIndex
12675
+ * @return {?}
12676
+ */
12677
+ HdTableComponent.prototype.getTableTotalCellValue = /**
12678
+ * 合计单元格展示文案(对齐 detail-lines 小数规则)
12679
+ * @param {?} col
12680
+ * @param {?} colIndex
12681
+ * @return {?}
12682
+ */
12683
+ function (col, colIndex) {
12684
+ /** @type {?} */
12685
+ var meta = this.getTableTotalCellMeta(col, colIndex);
12686
+ if (!meta || meta.isHide) {
12687
+ return "";
12688
+ }
12689
+ /** @type {?} */
12690
+ var value = meta.value;
12691
+ if (!(value || value === 0)) {
12692
+ return "";
12693
+ }
12694
+ /** @type {?} */
12695
+ var preserve = meta.preserveNumber != null ? Number(meta.preserveNumber) : 2;
12696
+ if (value % 1 === 0 && !meta.showDecimal) {
12697
+ return value;
12698
+ }
12699
+ /** @type {?} */
12700
+ var factor = Math.pow(10, preserve);
12701
+ return (Math.round(Number(value) * factor) / factor).toFixed(preserve);
12702
+ };
12703
+ /**
12704
+ * @param {?} col
12705
+ * @param {?} colIndex
12706
+ * @return {?}
12707
+ */
12708
+ HdTableComponent.prototype.getTableTotalCellAlign = /**
12709
+ * @param {?} col
12710
+ * @param {?} colIndex
12711
+ * @return {?}
12712
+ */
12713
+ function (col, colIndex) {
12714
+ /** @type {?} */
12715
+ var meta = this.getTableTotalCellMeta(col, colIndex);
12716
+ /** @type {?} */
12717
+ var align = (meta && meta.align) || (col && col.align) || "left";
12718
+ if (align === "right" || align === "center" || align === "left") {
12719
+ return align;
12720
+ }
12721
+ return "left";
12722
+ };
12125
12723
  /** 底部「共 n 条」:非分页/前端分页用 content.length,服务端分页用 totalElements */
12126
12724
  /**
12127
12725
  * 底部「共 n 条」:非分页/前端分页用 content.length,服务端分页用 totalElements
@@ -12731,13 +13329,14 @@ var HdTableComponent = /** @class */ (function () {
12731
13329
  HdTableComponent.decorators = [
12732
13330
  { type: Component, args: [{
12733
13331
  selector: "hd-table",
12734
- template: "<ng-container>\n <hd-button-group>\n <ng-template #buttonGroupLeft>\n <ng-container *ngTemplateOutlet=\"tableLeftButton\"></ng-container>\n <hd-button *ngIf=\"showOperateColWarpButton\" type=\"default\" (click)=\"toggleShowDetail()\">{{showDetail ?\n '\u7F29\u7565\u663E\u793A': '\u5C55\u5F00\u663E\u793A'}}</hd-button>\n </ng-template>\n <ng-template #buttonGroupRight>\n <ng-container *ngTemplateOutlet=\"tableRightButton\"></ng-container>\n <span class=\"hd-table-col-settings\" nz-dropdown nzTrigger=\"click\" [nzDropdownMenu]=\"menu\"\n [nzVisible]=\"isDropdownVisible\" (click)=\"confirmDropdown()\" title=\"\u5217\u8BBE\u7F6E\">\n <svg class=\"hd-table-col-settings-icon\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M4.92031 1.80756C5.02551 1.42884 5.37033 1.16675 5.76339 1.16675H8.23667C8.62973 1.16675 8.97455 1.42884 9.07975 1.80756L9.37802 2.88133L10.4571 2.60273C10.8377 2.50448 11.2371 2.67206 11.4336 3.01245L12.6703 5.15438C12.8668 5.49478 12.8122 5.92445 12.5369 6.20491L11.7561 7.00008L12.5369 7.79525C12.8122 8.07572 12.8668 8.50539 12.6703 8.84579L11.4336 10.9877C11.2371 11.3281 10.8377 11.4957 10.4571 11.3974L9.37802 11.1188L9.07975 12.1926C8.97455 12.5713 8.62973 12.8334 8.23667 12.8334H5.76339C5.37033 12.8334 5.02551 12.5713 4.92031 12.1926L4.62206 11.1189L3.54315 11.3974C3.16258 11.4957 2.76318 11.3281 2.56666 10.9877L1.33001 8.84579C1.13349 8.50539 1.18806 8.07572 1.46343 7.79525L2.24419 7.00008L1.46344 6.20491C1.18806 5.92445 1.13349 5.49478 1.33002 5.15438L2.56666 3.01245C2.76319 2.67206 3.16258 2.50448 3.54316 2.60273L4.62206 2.88127L4.92031 1.80756ZM4.54541 10.843L4.54552 10.8433L4.54541 10.843ZM5.98508 2.33341L5.66952 3.46945C5.54185 3.92906 5.06958 4.20173 4.60771 4.08249L3.46618 3.78778L2.45122 5.54572L3.2773 6.38705C3.6115 6.72742 3.6115 7.27275 3.2773 7.61312L2.45122 8.45444L3.46617 10.2124L4.60771 9.91768C5.06958 9.79844 5.54185 10.0711 5.66952 10.5307L5.98508 11.6667H8.01498L8.33056 10.5307C8.45823 10.071 8.9305 9.79838 9.39237 9.91762L10.5341 10.2124L11.5491 8.45444L10.723 7.61312C10.3888 7.27275 10.3888 6.72742 10.723 6.38705L11.5491 5.54572L10.5341 3.78778L9.39237 4.08254C8.9305 4.20178 8.45823 3.92912 8.33056 3.46951L8.01498 2.33341H5.98508ZM7.00003 5.83342C6.3557 5.83342 5.83337 6.35575 5.83337 7.00008C5.83337 7.64441 6.3557 8.16675 7.00003 8.16675C7.64436 8.16675 8.1667 7.64441 8.1667 7.00008C8.1667 6.35575 7.64436 5.83342 7.00003 5.83342ZM4.6667 7.00008C4.6667 5.71142 5.71137 4.66675 7.00003 4.66675C8.2887 4.66675 9.33337 5.71142 9.33337 7.00008C9.33337 8.28875 8.2887 9.33342 7.00003 9.33342C5.71137 9.33342 4.6667 8.28875 4.6667 7.00008Z\"\n fill=\"currentColor\" />\n </svg>\n </span>\n <nz-dropdown-menu #menu=\"nzDropdownMenu\">\n <div class=\"hd-table-col-settings-dropdown\">\n <div class=\"hd-table-col-settings-list\">\n <div *ngIf=\"showListNodes && nowListNodes.length > 0\" nz-menu style=\"padding: 5px 10px;\">\n <nz-tree *ngIf=\"showListNodes\" [nzData]=\"nowListNodes\" nzCheckable nzDraggable nzBlockNode\n nzShowExpand=\"false\" (nzCheckBoxChange)=\"checkAction($event)\" [nzBeforeDrop]=\"beforeDrop\"\n [nzTreeTemplate]=\"nzTreeTemplate\">\n </nz-tree>\n <ng-template #nzTreeTemplate let-node>\n <span\n class=\"ng-tns-c31-110 draggable ng-star-inserted ant-tree-node-content-wrapper ant-tree-node-content-wrapper-close\"\n [title]=\"node.key\" draggable=\"true\" aria-grabbed=\"true\">\n <span class=\"ant-tree-title\">\n <div class=\"hd-table-tree-node\">\n <span>{{node.key}}</span>\n <div *ngIf=\"!node.origin.disabled\" class=\"hd-table-tree-node-img\">\n <i nz-icon nzType=\"caret-up\" nzTheme=\"outline\"></i>\n <i nz-icon nzType=\"caret-down\" nzTheme=\"outline\"></i>\n </div>\n </div>\n </span>\n </span>\n </ng-template>\n </div>\n <div *ngIf=\"showListNodes && hideListNodes.length > 0\" nz-menu style=\"padding: 5px 10px;\">\n <nz-tree *ngIf=\"showListNodes\" [nzData]=\"hideListNodes\" nzCheckable nzShowExpand=\"false\"\n (nzCheckBoxChange)=\"checkAction($event)\">\n </nz-tree>\n </div>\n </div>\n <div class=\"hd-table-col-settings-footer\">\n <hd-button style=\"margin-right: 4px;\" type=\"default\" size=\"small\" (clickAction)=\"cancelDropdown()\">\u53D6\u6D88\n </hd-button>\n <hd-button type=\"primary\" size=\"small\" (clickAction)=\"submitGrids()\">\u5B8C\u6210</hd-button>\n </div>\n </div>\n </nz-dropdown-menu>\n </ng-template>\n </hd-button-group>\n <hd-space type=\"row\" size=\"12\"></hd-space>\n <ng-container *ngTemplateOutlet=\"tableTotal\"></ng-container>\n <hd-space *ngIf=\"tableTotal\" type=\"row\" size=\"12\"></hd-space>\n <nz-table *ngIf=\"showTable\" #hdTable class=\"hd-table-container\" [class.hd-table--virtual]=\"useVirtualScroll\"\n [class.hd-table--scroll-y]=\"!!(scroll && scroll.y)\" [class.hd-table--scroll-x]=\"!!(scroll && scroll.x)\"\n [nzScroll]=\"scroll\"\n [nzShowPagination]=\"pagination\" [nzShowSizeChanger]=\"pagination\" [nzShowQuickJumper]=\"pagination\"\n [nzFrontPagination]=\"useFrontPagination\" nzSize=\"middle\" [nzData]=\"tableData.content\"\n [nzTotal]=\"getTableTotalCount()\" [(nzPageIndex)]=\"tablePageIndex\" [nzLoading]=\"tableLoading\"\n [nzPageSizeOptions]=\"[ 10, 50, 100, 200, 500, 1000 ]\" [(nzPageSize)]=\"tablePageSize\"\n (nzPageSizeChange)=\"pagination ? search(true) : null\"\n (nzPageIndexChange)=\"pagination ? search(false) : null\"\n (nzCurrentPageDataChange)=\"showSelected ? currentPageDataChange($event) : null\"\n [nzShowTotal]=\"tableTotalTemplate\" [nzVirtualScroll]=\"useVirtualScroll\" [nzVirtualItemSize]=\"useVirtualScroll ? effectiveVirtualItemSize : 0\"\n [nzVirtualForTrackBy]=\"virtualTrackByRow\">\n <thead (nzSortChange)=\"sort($event)\" nzSingleSort>\n <tr>\n <th nzWidth=\"40px\" nzLeft=\"0px\" *ngIf=\"showSelected\" nzShowCheckbox [(nzChecked)]=\"isAllDisplayDataChecked\"\n [nzIndeterminate]=\"isIndeterminate\" (nzCheckedChange)=\"checkAll($event)\"></th>\n <ng-container *ngFor=\"let col of tableCols\">\n <th *ngIf=\"col.isShow\" [nzWidth]=\"col.width + 'px'\" [nzAlign]=\"col.align\"\n [nzLeft]=\"getLeftSticky(col)\"\n [nzRight]=\"getRightSticky(col)\" nz-resizable nzBounds=\"window\" nzPreview\n (nzResizeEnd)=\"onResize($event, col)\" [nzShowSort]=\"col.canSort\" [nzSortKey]=\"col.name\"\n [nzSort]=\"getColSort(col)\">\n <ng-container *ngIf=\"getTitleParts(col) as titleParts; else plainTitle\">\n <span class=\"hd-table-title-with-bar\">{{ titleParts[0] }}<i class=\"hd-table-row-no-bar\"></i>{{ titleParts[1] }}</span>\n </ng-container>\n <ng-template #plainTitle>{{ col.title }}</ng-template>\n <nz-resize-handle nzDirection=\"right\">\n <div class=\"resize-trigger\"></div>\n </nz-resize-handle>\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody>\n <ng-template *ngIf=\"useVirtualScroll\" nz-virtual-scroll let-data let-index=\"index\">\n <tr class=\"hd-table-virtual-row\" [class.hd-table-row-invalid]=\"isInvalidRow(data)\">\n <ng-container *ngTemplateOutlet=\"tableCells; context: { $implicit: data, index: index }\"></ng-container>\n </tr>\n </ng-template>\n <ng-container *ngIf=\"!useVirtualScroll\">\n <tr *ngFor=\"let data of hdTable.data; trackBy: trackByRow; index as i\"\n [class.hd-table-row-invalid]=\"isInvalidRow(data)\">\n <ng-container *ngTemplateOutlet=\"tableCells; context: { $implicit: data, index: i }\"></ng-container>\n </tr>\n </ng-container>\n </tbody>\n <tfoot *ngIf=\"showTableTotal\">\n <tr class=\"hd-table-total\">\n <td>\u5408\u8BA1</td>\n <ng-container *ngFor=\"let tableTotalOption of tableTotalOptionList\">\n <td>{{ tableTotalOption }}</td>\n </ng-container>\n </tr>\n </tfoot>\n <ng-template #tableTotalTemplate>\n \u5171 {{ getTableTotalCount() }} \u6761\u6570\u636E\n </ng-template>\n </nz-table>\n</ng-container>\n\n<ng-template #tableCells let-data let-index=\"index\">\n <td nzLeft=\"0px\" *ngIf=\"showSelected\" nzShowCheckbox [nzChecked]=\"mapOfCheckedId[data[selectField]]\"\n [nzDisabled]=\"isSelectDisabled(data)\" (nzCheckedChange)=\"refreshStatus($event, data)\"></td>\n <ng-container *ngFor=\"let col of tableCols; trackBy: trackByCol\">\n <td *ngIf=\"col.isShow\" [ngStyle]=\"{'max-width': col.width + 'px'}\" [nzAlign]=\"col.align\"\n [nzLeft]=\"getLeftSticky(col)\"\n [nzRight]=\"getRightSticky(col)\"\n [ngClass]=\"(col.canWarp && showDetail) ? 'common-td-wrap' : ''\">\n <ng-container *ngIf=\"col.title === '\u64CD\u4F5C';else notOperateTemplate\">\n <div class=\"common-btn-group\">\n <ng-container *ngFor=\"let btn of col.btnList\">\n <ng-container *ngIf=\"!needShowConfirm(btn, data);else showConfirmTemplate\">\n <a *ngIf=\"btn.permission ? btn.permission(data) : true\"\n [class]=\"isDangerBtn(btn, data) ? 'common-danger-btn': ''\"\n (click)=\"triggerEvent(btn.click || null, data)\">{{ getBtnName(btn, data) }}</a>\n </ng-container>\n <ng-template #showConfirmTemplate>\n <a *ngIf=\"btn.permission ? btn.permission(data) : true\"\n [class]=\"isDangerBtn(btn, data) ? 'common-danger-btn': ''\" nz-popconfirm\n [nzPopconfirmTitle]=\"'\u786E\u8BA4\u8981' + getBtnName(btn, data) + '\u5417?'\"\n (nzOnConfirm)=\"triggerEvent(btn.click || null, data)\">{{\n getBtnName(btn, data) }}</a>\n </ng-template>\n </ng-container>\n </div>\n </ng-container>\n <ng-template #notOperateTemplate>\n <ng-container *ngIf=\"hasInlineEdit(col); else displayCellTpl\">\n <div class=\"hd-table-cell-edit\">\n <ng-container [ngSwitch]=\"col.editType\">\n <input *ngSwitchCase=\"'input'\" nz-input class=\"hd-table-cell-edit-control\"\n [placeholder]=\"col.placeholder || ''\"\n [disabled]=\"isEditDisabled(col, data)\"\n [ngModel]=\"data[col.name]\"\n (ngModelChange)=\"onCellChange(col, data, $event)\" />\n <nz-input-number *ngSwitchCase=\"'inputNumber'\" class=\"hd-table-cell-edit-control\"\n [nzPlaceHolder]=\"col.placeholder || ''\"\n [nzDisabled]=\"isEditDisabled(col, data)\"\n [nzMin]=\"getInputNumberProp(col, 'min', 0)\"\n [nzMax]=\"getInputNumberProp(col, 'max', 99999999)\"\n [nzStep]=\"getInputNumberProp(col, 'step', 1)\"\n [nzPrecision]=\"getInputNumberProp(col, 'precision', 4)\"\n [ngModel]=\"data[col.name]\"\n (ngModelChange)=\"onCellChange(col, data, $event)\">\n </nz-input-number>\n <nz-select *ngSwitchCase=\"'select'\" class=\"hd-table-cell-edit-control\"\n [nzPlaceHolder]=\"col.placeholder || '\u8BF7\u9009\u62E9'\"\n [nzDisabled]=\"isEditDisabled(col, data)\"\n [nzAllowClear]=\"col.selectOption && col.selectOption.hdAllowClear !== false\"\n [nzShowSearch]=\"!col.selectOption || col.selectOption.hdShowSearch !== false\"\n [ngModel]=\"data[col.name]\"\n (ngModelChange)=\"onSelectChange(col, data, $event)\">\n <nz-option *ngFor=\"let selectItem of getSelectList(col, data)\"\n [nzValue]=\"selectItem[col.selectOption.value]\"\n [nzLabel]=\"getSelectOptionLabel(col, selectItem)\">\n </nz-option>\n </nz-select>\n </ng-container>\n </div>\n </ng-container>\n <ng-template #displayCellTpl>\n <div [class.hd-table-cell-with-actions]=\"col.btnList && col.btnList.length\">\n <div class=\"hd-table-cell-value\"\n [class.hd-table-cell-value--rowno]=\"hasRowNo(col)\"\n [class.hd-table-cell-value--edit]=\"isEditable(col, data)\">\n <ng-container *ngIf=\"col.name === 'state' || col.isState;else otherTemplate\">\n <hd-status [status]=\"data[getStateField(col)]\">\n <ng-container *ngIf=\"(data | hdTableCell:col) as cell\">\n <span *ngIf=\"cell.overflow && !(col.canWarp && showDetail)\" class=\"hd-table-cell-ellipsis\" nz-tooltip\n [nzTooltipTitle]=\"cell.title\">{{ cell.display }}</span>\n <span *ngIf=\"!cell.overflow || (col.canWarp && showDetail)\">{{ cell.display }}</span>\n </ng-container>\n </hd-status>\n </ng-container>\n <ng-template #otherTemplate>\n <ng-container *ngIf=\"col.click && (!col.canClick || col.canClick(data));else noClickTemplate\">\n <ng-container *ngIf=\"(data | hdTableCell:col) as cell\">\n <a *ngIf=\"cell.overflow && !(col.canWarp && showDetail)\" class=\"hd-table-cell-ellipsis\" nz-tooltip\n [nzTooltipTitle]=\"cell.title\"\n [ngStyle]=\"{'color': getLinkCellColor(col, data, cell.isEmpty)}\"\n (click)=\"triggerEvent(col.click || null, data)\">{{ cell.display }}</a>\n <a *ngIf=\"!cell.overflow || (col.canWarp && showDetail)\"\n [ngStyle]=\"{'color': getLinkCellColor(col, data, cell.isEmpty)}\"\n (click)=\"triggerEvent(col.click || null, data)\">{{ cell.display }}</a>\n </ng-container>\n </ng-container>\n <ng-template #noClickTemplate>\n <ng-container *ngIf=\"(data | hdTableCell:col) as cell\">\n <span *ngIf=\"cell.overflow && !(col.canWarp && showDetail)\" class=\"hd-table-cell-ellipsis\" nz-tooltip\n [nzTooltipTitle]=\"cell.title\"\n [ngStyle]=\"{'color': getPlainCellColor(col, data)}\">{{ cell.display }}</span>\n <span *ngIf=\"!cell.overflow || (col.canWarp && showDetail)\"\n [ngStyle]=\"{'color': getPlainCellColor(col, data)}\">{{ cell.display }}</span>\n </ng-container>\n </ng-template>\n </ng-template>\n <span class=\"hd-table-row-no\" *ngIf=\"hasRowNo(col) && getRowNoText(col, data, index)\">\n <i class=\"hd-table-row-no-bar\"></i>{{ getRowNoText(col, data, index) }}\n </span>\n <a *ngIf=\"isEditable(col, data)\" class=\"hd-table-edit-icon\" href=\"javascript:;\" title=\"\u7F16\u8F91\"\n (click)=\"onEditClick($event, col, data)\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M8.10797 1.42626C8.44968 1.08456 9.0037 1.08456 9.34541 1.42626L10.9746 3.05542C11.3163 3.39713 11.3163 3.95115 10.9746 4.29286L5.01002 10.2574C4.87077 10.3967 4.68863 10.4849 4.49305 10.5078L2.72936 10.7142C2.18281 10.7782 1.71357 10.3278 1.7551 9.77914L1.89441 7.93871C1.9102 7.73007 2.00024 7.53399 2.14819 7.38604L8.10797 1.42626ZM7.67304 3.51111L8.88972 4.72779L9.94337 3.67414L8.72669 2.45746L7.67304 3.51111ZM8.06477 5.55274L6.84808 4.33606L3.04959 8.13456L2.94515 9.51434L4.25672 9.36079L8.06477 5.55274ZM12.25 12.8333L1.75 12.8333V11.6666L12.25 11.6666V12.8333Z\"\n fill=\"currentColor\" />\n </svg>\n </a>\n </div>\n <div class=\"common-btn-group hd-table-cell-actions\" *ngIf=\"col.btnList && col.btnList.length\">\n <ng-container *ngFor=\"let btn of col.btnList\">\n <ng-container *ngIf=\"!needShowConfirm(btn, data);else cellActionConfirmTpl\">\n <a *ngIf=\"btn.permission ? btn.permission(data) : true\"\n [class]=\"isDangerBtn(btn, data) ? 'common-danger-btn': ''\"\n (click)=\"triggerEvent(btn.click || null, data)\">{{ getBtnName(btn, data) }}</a>\n </ng-container>\n <ng-template #cellActionConfirmTpl>\n <a *ngIf=\"btn.permission ? btn.permission(data) : true\"\n [class]=\"isDangerBtn(btn, data) ? 'common-danger-btn': ''\" nz-popconfirm\n [nzPopconfirmTitle]=\"'\u786E\u8BA4\u8981' + getBtnName(btn, data) + '\u5417?'\"\n (nzOnConfirm)=\"triggerEvent(btn.click || null, data)\">{{\n getBtnName(btn, data) }}</a>\n </ng-template>\n </ng-container>\n </div>\n </div>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n</ng-template>\n",
13332
+ template: "<ng-container>\n <hd-button-group>\n <ng-template #buttonGroupLeft>\n <ng-container *ngTemplateOutlet=\"tableLeftButton\"></ng-container>\n <hd-button *ngIf=\"showOperateColWarpButton\" type=\"default\" (click)=\"toggleShowDetail()\">{{showDetail ?\n '\u7F29\u7565\u663E\u793A': '\u5C55\u5F00\u663E\u793A'}}</hd-button>\n </ng-template>\n <ng-template #buttonGroupRight>\n <ng-container *ngTemplateOutlet=\"tableRightButton\"></ng-container>\n <span class=\"hd-table-col-settings\" nz-dropdown nzTrigger=\"click\" [nzDropdownMenu]=\"menu\"\n [nzVisible]=\"isDropdownVisible\" (click)=\"confirmDropdown()\" title=\"\u5217\u8BBE\u7F6E\">\n <svg class=\"hd-table-col-settings-icon\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M4.92031 1.80756C5.02551 1.42884 5.37033 1.16675 5.76339 1.16675H8.23667C8.62973 1.16675 8.97455 1.42884 9.07975 1.80756L9.37802 2.88133L10.4571 2.60273C10.8377 2.50448 11.2371 2.67206 11.4336 3.01245L12.6703 5.15438C12.8668 5.49478 12.8122 5.92445 12.5369 6.20491L11.7561 7.00008L12.5369 7.79525C12.8122 8.07572 12.8668 8.50539 12.6703 8.84579L11.4336 10.9877C11.2371 11.3281 10.8377 11.4957 10.4571 11.3974L9.37802 11.1188L9.07975 12.1926C8.97455 12.5713 8.62973 12.8334 8.23667 12.8334H5.76339C5.37033 12.8334 5.02551 12.5713 4.92031 12.1926L4.62206 11.1189L3.54315 11.3974C3.16258 11.4957 2.76318 11.3281 2.56666 10.9877L1.33001 8.84579C1.13349 8.50539 1.18806 8.07572 1.46343 7.79525L2.24419 7.00008L1.46344 6.20491C1.18806 5.92445 1.13349 5.49478 1.33002 5.15438L2.56666 3.01245C2.76319 2.67206 3.16258 2.50448 3.54316 2.60273L4.62206 2.88127L4.92031 1.80756ZM4.54541 10.843L4.54552 10.8433L4.54541 10.843ZM5.98508 2.33341L5.66952 3.46945C5.54185 3.92906 5.06958 4.20173 4.60771 4.08249L3.46618 3.78778L2.45122 5.54572L3.2773 6.38705C3.6115 6.72742 3.6115 7.27275 3.2773 7.61312L2.45122 8.45444L3.46617 10.2124L4.60771 9.91768C5.06958 9.79844 5.54185 10.0711 5.66952 10.5307L5.98508 11.6667H8.01498L8.33056 10.5307C8.45823 10.071 8.9305 9.79838 9.39237 9.91762L10.5341 10.2124L11.5491 8.45444L10.723 7.61312C10.3888 7.27275 10.3888 6.72742 10.723 6.38705L11.5491 5.54572L10.5341 3.78778L9.39237 4.08254C8.9305 4.20178 8.45823 3.92912 8.33056 3.46951L8.01498 2.33341H5.98508ZM7.00003 5.83342C6.3557 5.83342 5.83337 6.35575 5.83337 7.00008C5.83337 7.64441 6.3557 8.16675 7.00003 8.16675C7.64436 8.16675 8.1667 7.64441 8.1667 7.00008C8.1667 6.35575 7.64436 5.83342 7.00003 5.83342ZM4.6667 7.00008C4.6667 5.71142 5.71137 4.66675 7.00003 4.66675C8.2887 4.66675 9.33337 5.71142 9.33337 7.00008C9.33337 8.28875 8.2887 9.33342 7.00003 9.33342C5.71137 9.33342 4.6667 8.28875 4.6667 7.00008Z\"\n fill=\"currentColor\" />\n </svg>\n </span>\n <nz-dropdown-menu #menu=\"nzDropdownMenu\">\n <div class=\"hd-table-col-settings-dropdown\">\n <div class=\"hd-table-col-settings-list\">\n <div *ngIf=\"showListNodes && nowListNodes.length > 0\" nz-menu style=\"padding: 5px 10px;\">\n <nz-tree *ngIf=\"showListNodes\" [nzData]=\"nowListNodes\" nzCheckable nzDraggable nzBlockNode\n nzShowExpand=\"false\" (nzCheckBoxChange)=\"checkAction($event)\" [nzBeforeDrop]=\"beforeDrop\"\n [nzTreeTemplate]=\"nzTreeTemplate\">\n </nz-tree>\n <ng-template #nzTreeTemplate let-node>\n <span\n class=\"ng-tns-c31-110 draggable ng-star-inserted ant-tree-node-content-wrapper ant-tree-node-content-wrapper-close\"\n [title]=\"node.key\" draggable=\"true\" aria-grabbed=\"true\">\n <span class=\"ant-tree-title\">\n <div class=\"hd-table-tree-node\">\n <span>{{node.key}}</span>\n <div *ngIf=\"!node.origin.disabled\" class=\"hd-table-tree-node-img\">\n <i nz-icon nzType=\"caret-up\" nzTheme=\"outline\"></i>\n <i nz-icon nzType=\"caret-down\" nzTheme=\"outline\"></i>\n </div>\n </div>\n </span>\n </span>\n </ng-template>\n </div>\n <div *ngIf=\"showListNodes && hideListNodes.length > 0\" nz-menu style=\"padding: 5px 10px;\">\n <nz-tree *ngIf=\"showListNodes\" [nzData]=\"hideListNodes\" nzCheckable nzShowExpand=\"false\"\n (nzCheckBoxChange)=\"checkAction($event)\">\n </nz-tree>\n </div>\n </div>\n <div class=\"hd-table-col-settings-footer\">\n <hd-button style=\"margin-right: 4px;\" type=\"default\" size=\"small\" (clickAction)=\"cancelDropdown()\">\u53D6\u6D88\n </hd-button>\n <hd-button type=\"primary\" size=\"small\" (clickAction)=\"submitGrids()\">\u5B8C\u6210</hd-button>\n </div>\n </div>\n </nz-dropdown-menu>\n </ng-template>\n </hd-button-group>\n <hd-space type=\"row\" size=\"12\"></hd-space>\n <ng-container *ngTemplateOutlet=\"tableTotal\"></ng-container>\n <hd-space *ngIf=\"tableTotal\" type=\"row\" size=\"12\"></hd-space>\n <nz-table *ngIf=\"showTable\" #hdTable class=\"hd-table-container\" [class.hd-table--virtual]=\"useVirtualScroll\"\n [class.hd-table--scroll-y]=\"!!(scroll && scroll.y)\" [class.hd-table--scroll-x]=\"!!(scroll && scroll.x)\"\n [class.hd-table--has-total]=\"showTableTotal\"\n [nzScroll]=\"scroll\"\n [nzShowPagination]=\"pagination\" [nzShowSizeChanger]=\"pagination\" [nzShowQuickJumper]=\"pagination\"\n [nzFrontPagination]=\"useFrontPagination\" nzSize=\"middle\" [nzData]=\"tableData.content\"\n [nzTotal]=\"getTableTotalCount()\" [(nzPageIndex)]=\"tablePageIndex\" [nzLoading]=\"tableLoading\"\n [nzPageSizeOptions]=\"[ 10, 50, 100, 200, 500, 1000 ]\" [(nzPageSize)]=\"tablePageSize\"\n (nzPageSizeChange)=\"pagination ? search(true) : null\"\n (nzPageIndexChange)=\"pagination ? search(false) : null\"\n (nzCurrentPageDataChange)=\"showSelected ? currentPageDataChange($event) : null\"\n [nzShowTotal]=\"tableTotalTemplate\" [nzFooter]=\"showTableTotal ? tableTotalFooter : null\"\n [nzVirtualScroll]=\"useVirtualScroll\" [nzVirtualItemSize]=\"useVirtualScroll ? effectiveVirtualItemSize : 0\"\n [nzVirtualForTrackBy]=\"virtualTrackByRow\">\n <thead (nzSortChange)=\"sort($event)\" nzSingleSort>\n <tr>\n <th nzWidth=\"40px\" nzLeft=\"0px\" *ngIf=\"showSelected\" nzShowCheckbox [(nzChecked)]=\"isAllDisplayDataChecked\"\n [nzIndeterminate]=\"isIndeterminate\" (nzCheckedChange)=\"checkAll($event)\"></th>\n <th class=\"hd-table-line-no-col\" [nzWidth]=\"lineNumberColWidthPx\" [nzLeft]=\"lineNumberLeft\"\n *ngIf=\"showTableTotal\">\u5E8F\u53F7</th>\n <ng-container *ngFor=\"let col of tableCols\">\n <th *ngIf=\"col.isShow\" [nzWidth]=\"col.width + 'px'\" [nzAlign]=\"col.align\"\n [nzLeft]=\"getLeftSticky(col)\"\n [nzRight]=\"getRightSticky(col)\" nz-resizable nzBounds=\"window\" nzPreview\n (nzResizeEnd)=\"onResize($event, col)\" [nzShowSort]=\"col.canSort\" [nzSortKey]=\"col.name\"\n [nzSort]=\"getColSort(col)\">\n <ng-container *ngIf=\"getTitleParts(col) as titleParts; else plainTitle\">\n <span class=\"hd-table-title-with-bar\">{{ titleParts[0] }}<i class=\"hd-table-row-no-bar\"></i>{{ titleParts[1] }}</span>\n </ng-container>\n <ng-template #plainTitle>{{ col.title }}</ng-template>\n <nz-resize-handle nzDirection=\"right\">\n <div class=\"resize-trigger\"></div>\n </nz-resize-handle>\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody>\n <ng-template *ngIf=\"useVirtualScroll\" nz-virtual-scroll let-data let-index=\"index\">\n <tr class=\"hd-table-virtual-row\" [class.hd-table-row-invalid]=\"isInvalidRow(data)\">\n <ng-container *ngTemplateOutlet=\"tableCells; context: { $implicit: data, index: index }\"></ng-container>\n </tr>\n </ng-template>\n <ng-container *ngIf=\"!useVirtualScroll\">\n <tr *ngFor=\"let data of hdTable.data; trackBy: trackByRow; index as i\"\n [class.hd-table-row-invalid]=\"isInvalidRow(data)\">\n <ng-container *ngTemplateOutlet=\"tableCells; context: { $implicit: data, index: i }\"></ng-container>\n </tr>\n </ng-container>\n </tbody>\n <ng-template #tableTotalTemplate>\n \u5171 {{ getTableTotalCount() }} \u6761\u6570\u636E\n </ng-template>\n <ng-template #tableTotalFooter>\n <!--\n \u5217\u603B\u5BBD < \u5BB9\u5668\uFF1Afluid\uFF0C\u8868\u5BBD 100%\uFF0C\u4E0E\u8868\u4F53\u540C\u6BD4\u4F8B\u88AB\u6491\u5F00\uFF0C\u4E0D\u518D\u6309\u58F0\u660E px \u9501\u6B7B\uFF1B\n \u5217\u603B\u5BBD > \u5BB9\u5668\uFF1Afixed\uFF0C\u8868\u5BBD = scroll.x\uFF0C\u6A2A\u6EDA\u4E0E\u8868\u4F53\u540C\u6B65\u3002\n -->\n <div class=\"hd-table-total-footer\"\n [class.hd-table-total-footer--fluid]=\"isTotalFooterFluid\"\n [class.hd-table-total-footer--y-gutter]=\"totalFooterNeedYGutter\">\n <table class=\"hd-table-total-footer-table\" [style.width]=\"totalFooterTableWidth\">\n <colgroup>\n <!-- \u52FE\u9009/\u5E8F\u53F7\u9501\u5BBD\uFF0C\u4E0D\u53C2\u4E0E\u5747\u644A -->\n <col *ngIf=\"showSelected\" style=\"width: 40px; min-width: 40px; max-width: 40px;\" />\n <col *ngIf=\"showTableTotal\"\n [style.width.px]=\"lineNumberColWidth\"\n [style.min-width.px]=\"lineNumberColWidth\"\n [style.max-width.px]=\"lineNumberColWidth\" />\n <ng-container *ngFor=\"let col of tableCols; trackBy: trackByCol\">\n <col *ngIf=\"col.isShow\" [style.width.px]=\"col.width\" />\n </ng-container>\n </colgroup>\n <tr class=\"hd-table-total\">\n <td *ngIf=\"showSelected\" class=\"hd-table-total-footer-cell hd-table-total-footer-select\"\n [class.hd-table-total-footer-sticky-left]=\"!isTotalFooterFluid\"\n style=\"left: 0;\">&nbsp;</td>\n <td class=\"hd-table-total-footer-cell hd-table-total-footer-line-no\"\n [class.hd-table-total-footer-sticky-left]=\"!isTotalFooterFluid\"\n [style.left]=\"!isTotalFooterFluid ? lineNumberLeft : null\">\u5408\u8BA1</td>\n <ng-container *ngFor=\"let col of tableCols; let colIndex = index; trackBy: trackByCol\">\n <td *ngIf=\"col.isShow\" class=\"hd-table-total-footer-cell\"\n [class.hd-table-total-footer-sticky-left]=\"!isTotalFooterFluid && col.fixed === 'left'\"\n [class.hd-table-total-footer-sticky-right]=\"!isTotalFooterFluid && col.fixed === 'right'\"\n [class.hd-table-total-align-left]=\"getTableTotalCellAlign(col, colIndex) === 'left'\"\n [class.hd-table-total-align-center]=\"getTableTotalCellAlign(col, colIndex) === 'center'\"\n [class.hd-table-total-align-right]=\"getTableTotalCellAlign(col, colIndex) === 'right'\"\n [style.left]=\"!isTotalFooterFluid && col.fixed === 'left' ? (col.fixedWidth || 0) + 'px' : null\"\n [style.right]=\"!isTotalFooterFluid && col.fixed === 'right' ? (col.fixedRightWidth || 0) + 'px' : null\"\n [ngStyle]=\"{'text-align': getTableTotalCellAlign(col, colIndex)}\">\n {{ getTableTotalCellValue(col, colIndex) }}\n </td>\n </ng-container>\n </tr>\n </table>\n </div>\n </ng-template>\n </nz-table>\n</ng-container>\n\n<ng-template #tableCells let-data let-index=\"index\">\n <td nzWidth=\"40px\" nzLeft=\"0px\" *ngIf=\"showSelected\" nzShowCheckbox [nzChecked]=\"mapOfCheckedId[data[selectField]]\"\n [nzDisabled]=\"isSelectDisabled(data)\" (nzCheckedChange)=\"refreshStatus($event, data)\"></td>\n <td class=\"hd-table-line-no-col\" [nzWidth]=\"lineNumberColWidthPx\" [nzLeft]=\"lineNumberLeft\"\n *ngIf=\"showTableTotal\">{{ getLineNumber(index) }}</td>\n <ng-container *ngFor=\"let col of tableCols; trackBy: trackByCol\">\n <td *ngIf=\"col.isShow\" [ngStyle]=\"{'max-width': col.width + 'px'}\" [nzAlign]=\"col.align\"\n [nzLeft]=\"getLeftSticky(col)\"\n [nzRight]=\"getRightSticky(col)\"\n [ngClass]=\"(col.canWarp && showDetail) ? 'common-td-wrap' : ''\">\n <ng-container *ngIf=\"col.title === '\u64CD\u4F5C';else notOperateTemplate\">\n <div class=\"common-btn-group\">\n <ng-container *ngFor=\"let btn of col.btnList\">\n <ng-container *ngIf=\"!needShowConfirm(btn, data);else showConfirmTemplate\">\n <a *ngIf=\"btn.permission ? btn.permission(data) : true\"\n [class]=\"isDangerBtn(btn, data) ? 'common-danger-btn': ''\"\n (click)=\"triggerEvent(btn.click || null, data)\">{{ getBtnName(btn, data) }}</a>\n </ng-container>\n <ng-template #showConfirmTemplate>\n <a *ngIf=\"btn.permission ? btn.permission(data) : true\"\n [class]=\"isDangerBtn(btn, data) ? 'common-danger-btn': ''\" nz-popconfirm\n [nzPopconfirmTitle]=\"'\u786E\u8BA4\u8981' + getBtnName(btn, data) + '\u5417?'\"\n (nzOnConfirm)=\"triggerEvent(btn.click || null, data)\">{{\n getBtnName(btn, data) }}</a>\n </ng-template>\n </ng-container>\n </div>\n </ng-container>\n <ng-template #notOperateTemplate>\n <ng-container *ngIf=\"hasInlineEdit(col); else displayCellTpl\">\n <div class=\"hd-table-cell-edit\">\n <ng-container [ngSwitch]=\"col.editType\">\n <input *ngSwitchCase=\"'input'\" nz-input class=\"hd-table-cell-edit-control\"\n [placeholder]=\"col.placeholder || ''\"\n [disabled]=\"isEditDisabled(col, data)\"\n [ngModel]=\"data[col.name]\"\n (ngModelChange)=\"onCellChange(col, data, $event)\" />\n <nz-input-number *ngSwitchCase=\"'inputNumber'\" class=\"hd-table-cell-edit-control\"\n [nzPlaceHolder]=\"col.placeholder || ''\"\n [nzDisabled]=\"isEditDisabled(col, data)\"\n [nzMin]=\"getInputNumberProp(col, 'min', 0)\"\n [nzMax]=\"getInputNumberProp(col, 'max', 99999999)\"\n [nzStep]=\"getInputNumberProp(col, 'step', 1)\"\n [nzPrecision]=\"getInputNumberProp(col, 'precision', 4)\"\n [ngModel]=\"data[col.name]\"\n (ngModelChange)=\"onCellChange(col, data, $event)\">\n </nz-input-number>\n <nz-select *ngSwitchCase=\"'select'\" class=\"hd-table-cell-edit-control\"\n [nzPlaceHolder]=\"col.placeholder || '\u8BF7\u9009\u62E9'\"\n [nzDisabled]=\"isEditDisabled(col, data)\"\n [nzAllowClear]=\"col.selectOption && col.selectOption.hdAllowClear !== false\"\n [nzShowSearch]=\"!col.selectOption || col.selectOption.hdShowSearch !== false\"\n [ngModel]=\"data[col.name]\"\n (ngModelChange)=\"onSelectChange(col, data, $event)\">\n <nz-option *ngFor=\"let selectItem of getSelectList(col, data)\"\n [nzValue]=\"selectItem[col.selectOption.value]\"\n [nzLabel]=\"getSelectOptionLabel(col, selectItem)\">\n </nz-option>\n </nz-select>\n </ng-container>\n </div>\n </ng-container>\n <ng-template #displayCellTpl>\n <div [class.hd-table-cell-with-actions]=\"col.btnList && col.btnList.length\">\n <div class=\"hd-table-cell-value\"\n [class.hd-table-cell-value--rowno]=\"hasRowNo(col)\"\n [class.hd-table-cell-value--edit]=\"isEditable(col, data)\">\n <ng-container *ngIf=\"col.name === 'state' || col.isState;else otherTemplate\">\n <hd-status [status]=\"data[getStateField(col)]\">\n <ng-container *ngIf=\"(data | hdTableCell:col) as cell\">\n <span *ngIf=\"cell.overflow && !(col.canWarp && showDetail)\" class=\"hd-table-cell-ellipsis\" nz-tooltip\n [nzTooltipTitle]=\"cell.title\">{{ cell.display }}</span>\n <span *ngIf=\"!cell.overflow || (col.canWarp && showDetail)\">{{ cell.display }}</span>\n </ng-container>\n </hd-status>\n </ng-container>\n <ng-template #otherTemplate>\n <ng-container *ngIf=\"col.click && (!col.canClick || col.canClick(data));else noClickTemplate\">\n <ng-container *ngIf=\"(data | hdTableCell:col) as cell\">\n <a *ngIf=\"cell.overflow && !(col.canWarp && showDetail)\" class=\"hd-table-cell-ellipsis\" nz-tooltip\n [nzTooltipTitle]=\"cell.title\"\n [ngStyle]=\"{'color': getLinkCellColor(col, data, cell.isEmpty)}\"\n (click)=\"triggerEvent(col.click || null, data)\">{{ cell.display }}</a>\n <a *ngIf=\"!cell.overflow || (col.canWarp && showDetail)\"\n [ngStyle]=\"{'color': getLinkCellColor(col, data, cell.isEmpty)}\"\n (click)=\"triggerEvent(col.click || null, data)\">{{ cell.display }}</a>\n </ng-container>\n </ng-container>\n <ng-template #noClickTemplate>\n <ng-container *ngIf=\"(data | hdTableCell:col) as cell\">\n <span *ngIf=\"cell.overflow && !(col.canWarp && showDetail)\" class=\"hd-table-cell-ellipsis\" nz-tooltip\n [nzTooltipTitle]=\"cell.title\"\n [ngStyle]=\"{'color': getPlainCellColor(col, data)}\">{{ cell.display }}</span>\n <span *ngIf=\"!cell.overflow || (col.canWarp && showDetail)\"\n [ngStyle]=\"{'color': getPlainCellColor(col, data)}\">{{ cell.display }}</span>\n </ng-container>\n </ng-template>\n </ng-template>\n <span class=\"hd-table-row-no\" *ngIf=\"hasRowNo(col) && getRowNoText(col, data, index)\">\n <i class=\"hd-table-row-no-bar\"></i>{{ getRowNoText(col, data, index) }}\n </span>\n <a *ngIf=\"isEditable(col, data)\" class=\"hd-table-edit-icon\" href=\"javascript:;\" title=\"\u7F16\u8F91\"\n (click)=\"onEditClick($event, col, data)\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M8.10797 1.42626C8.44968 1.08456 9.0037 1.08456 9.34541 1.42626L10.9746 3.05542C11.3163 3.39713 11.3163 3.95115 10.9746 4.29286L5.01002 10.2574C4.87077 10.3967 4.68863 10.4849 4.49305 10.5078L2.72936 10.7142C2.18281 10.7782 1.71357 10.3278 1.7551 9.77914L1.89441 7.93871C1.9102 7.73007 2.00024 7.53399 2.14819 7.38604L8.10797 1.42626ZM7.67304 3.51111L8.88972 4.72779L9.94337 3.67414L8.72669 2.45746L7.67304 3.51111ZM8.06477 5.55274L6.84808 4.33606L3.04959 8.13456L2.94515 9.51434L4.25672 9.36079L8.06477 5.55274ZM12.25 12.8333L1.75 12.8333V11.6666L12.25 11.6666V12.8333Z\"\n fill=\"currentColor\" />\n </svg>\n </a>\n </div>\n <div class=\"common-btn-group hd-table-cell-actions\" *ngIf=\"col.btnList && col.btnList.length\">\n <ng-container *ngFor=\"let btn of col.btnList\">\n <ng-container *ngIf=\"!needShowConfirm(btn, data);else cellActionConfirmTpl\">\n <a *ngIf=\"btn.permission ? btn.permission(data) : true\"\n [class]=\"isDangerBtn(btn, data) ? 'common-danger-btn': ''\"\n (click)=\"triggerEvent(btn.click || null, data)\">{{ getBtnName(btn, data) }}</a>\n </ng-container>\n <ng-template #cellActionConfirmTpl>\n <a *ngIf=\"btn.permission ? btn.permission(data) : true\"\n [class]=\"isDangerBtn(btn, data) ? 'common-danger-btn': ''\" nz-popconfirm\n [nzPopconfirmTitle]=\"'\u786E\u8BA4\u8981' + getBtnName(btn, data) + '\u5417?'\"\n (nzOnConfirm)=\"triggerEvent(btn.click || null, data)\">{{\n getBtnName(btn, data) }}</a>\n </ng-template>\n </ng-container>\n </div>\n </div>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n</ng-template>\n",
12735
13333
  changeDetection: ChangeDetectionStrategy.OnPush,
12736
- styles: ["::ng-deep .common-btn-group>a{font-size:14px;font-weight:400;color:#20b95d!important;white-space:nowrap}::ng-deep .common-btn-group .common-danger-btn:hover{color:#f05b24!important}::ng-deep .common-btn-group>a:hover{color:#20bd62!important}::ng-deep .common-btn-group>a:not(:last-child)::after{content:'';margin:0 2px}::ng-deep .common-billNumber>a{color:#3b77e3}button{box-shadow:unset;text-shadow:unset;padding:0 6px!important}::ng-deep .ant-form-item-label>label{color:#4b504e;font-size:14px}::ng-deep .ant-input-number-input{height:32px}::ng-deep .ant-input-number{height:32px}textarea.ant-input{height:auto;min-height:32px}::ng-deep .ant-select-selection--multiple{min-height:32px}::ng-deep .ant-select-selection__rendered>ul>li{height:26px!important;margin-top:3px!important;line-height:26px!important}::ng-deep .ant-advanced-search-form .ant-form-item{margin-bottom:0!important}::ng-deep .ant-select-selection--single{height:32px!important}::ng-deep .ant-input{height:32px}::ng-deep .ant-input[disabled]:hover{border-color:#d9d9d9!important}::ng-deep .ant-select-selection__rendered{line-height:32px!important}::ng-deep .ant-calendar-range-picker-input{text-align:left!important}::ng-deep .ant-calendar-picker{width:100%!important}::ng-deep .ant-row{margin-right:0!important;margin-left:0!important}::ng-deep .ant-col-6{padding-left:12px;padding-right:12px}::ng-deep .ant-col-12{padding-left:12px;padding-right:12px}::ng-deep .ant-col-18{padding-left:12px;padding-right:12px}::ng-deep .ant-col-24{padding-left:12px;padding-right:12px}::ng-deep .ant-alert-info{background-color:#f5f8f6;border:1px solid #cfe3d4}::ng-deep .hd-table-container .ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-th-left-sticky,::ng-deep .hd-table-container .ant-table-th-right-sticky{z-index:2;transform:translateZ(0)}::ng-deep .hd-table-container .ant-table-thead>tr>th.ant-table-th-left-sticky,::ng-deep .hd-table-container .ant-table-thead>tr>th.ant-table-th-right-sticky{background:#f5f8f6!important}::ng-deep .hd-table-container .ant-table-tbody>tr>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr>td.ant-table-td-right-sticky{background:#fff}::ng-deep .hd-table-container .ant-table-tbody>tr.ant-table-row-hover>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr.ant-table-row-hover>td.ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr:hover>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr:hover>td.ant-table-td-right-sticky{background:#ecf8f1!important}::ng-deep .hd-table-container .ant-table-scroll-position-left .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-left .ant-table-th-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-middle .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-middle .ant-table-th-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-right .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-right .ant-table-th-right-sticky{box-shadow:none!important}::ng-deep .hd-table-container .ant-table-fixed-right{right:0!important}:host ::ng-deep th{background:#f5f8f6!important;font-weight:700!important;white-space:nowrap;font-size:14px;font-family:PingFangSC-Medium,PingFang SC;color:#2a3634;padding:8px!important;box-sizing:border-box}:host ::ng-deep td{font-weight:400;font-style:normal;font-size:14px;color:#2a3634;text-align:left;white-space:nowrap;padding:8px!important;box-sizing:border-box}::ng-deep .ant-pagination-options{display:inline-flex;align-items:center}::ng-deep .ant-pagination-options .ant-select,::ng-deep .ant-pagination-options .ant-select-selection--single{min-width:100px}::ng-deep .ant-pagination-options-size-changer.ant-select{min-width:100px}::ng-deep .ant-time-picker{width:100%}::ng-deep .cdk-overlay-pane .hd-cascader-menus.ant-cascader-menus>.ant-cascader-menu:only-child{width:-webkit-max-content!important;width:-moz-max-content!important;width:max-content!important;min-width:var(--hd-cascader-menu-min-width,auto);max-width:560px}::ng-deep .cdk-overlay-pane .hd-cascader-menus.ant-cascader-menus>.ant-cascader-menu:only-child .ant-cascader-menu-item{white-space:nowrap}.ant-input-number-disabled,.ant-input[disabled],.ant-select-disabled{color:#4b504e}.nz-resizable-preview{position:absolute;top:0;left:0;z-index:8;border:1px dashed #d1d1d1}.nz-resizable-handle{position:absolute;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:9}.nz-resizable-handle-top{width:100%;height:10px;top:-5px;left:0}.nz-resizable-handle-right{height:100%}.nz-resizable-handle-bottom{width:100%;height:10px;bottom:-5px;left:0}.nz-resizable-handle-left{width:10px;height:100%;top:0;left:-5px}.nz-resizable-handle-topRight{width:20px;height:20px;top:-5px;right:-5px;z-index:10}.nz-resizable-handle-bottomRight{width:20px;height:20px;right:-5px;bottom:-5px;z-index:10}.nz-resizable-handle-bottomLeft{width:20px;height:20px;bottom:-5px;left:-5px;z-index:10}.nz-resizable-handle-topLeft{width:20px;height:20px;top:-5px;left:-5px;z-index:10}.nz-resizable:not(.nz-resizable-resizing) .nz-resizable-handle-bottom,.nz-resizable:not(.nz-resizable-resizing) .nz-resizable-handle-top{cursor:row-resize}.nz-resizable:not(.nz-resizable-resizing) .nz-resizable-handle-left,.nz-resizable:not(.nz-resizable-resizing) .nz-resizable-handle-right{cursor:col-resize}.nz-resizable:not(.nz-resizable-resizing) .nz-resizable-handle-bottomRight,.nz-resizable:not(.nz-resizable-resizing) .nz-resizable-handle-topLeft{cursor:nwse-resize}.nz-resizable:not(.nz-resizable-resizing) .nz-resizable-handle-bottomLeft,.nz-resizable:not(.nz-resizable-resizing) .nz-resizable-handle-topRight{cursor:nesw-resize}.hd-table-col-settings{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:32px;height:32px;padding:0;margin-left:12px;cursor:pointer;color:#2a3634;background:0 0;border:1px solid #e5e6eb;border-radius:4px;vertical-align:middle;flex-shrink:0}.hd-table-col-settings:hover{color:#20b95d;background:#f5f8f6;border-color:#20b95d}.hd-table-col-settings .hd-table-col-settings-icon{display:block;width:14px;height:14px;flex-shrink:0}.hd-table-cell-with-actions{display:inline-flex;flex-wrap:wrap;align-items:center;-moz-column-gap:12px;column-gap:12px;row-gap:6px;max-width:100%}.hd-table-cell-with-actions .hd-table-cell-value{min-width:0}.hd-table-cell-with-actions .hd-table-cell-actions{flex-shrink:0}.hd-table-col-settings-dropdown{background:#fff;border:1px solid #e5e6eb;border-radius:4px;box-shadow:0 6px 16px rgba(0,0,0,.08),0 3px 6px rgba(0,0,0,.06);overflow:hidden}.hd-table-col-settings-list{max-height:400px;overflow-y:auto}.hd-table-col-settings-footer{text-align:right;background:#fff;padding:4px;border-top:1px solid #f0f0f0}.hd-table-container ::ng-deep .ant-pagination-options-quick-jumper input{border-radius:2px;border:1px solid #d9d9d9}.hd-table-container ::ng-deep .ant-pagination-options .ant-select-selection{border-radius:2px}.hd-table-container ::ng-deep .ant-table-thead>tr>th{border-bottom:1px solid #ecf1ed;white-space:nowrap;text-overflow:ellipsis}.hd-table-container ::ng-deep .ant-table-tbody>tr>td{border-bottom:1px solid #ecf1ed;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.hd-table-container .hd-table-cell-value--edit,.hd-table-container .hd-table-cell-value--rowno{display:inline-flex;align-items:center;min-width:0}.hd-table-container .hd-table-cell-value--edit>a:not(.hd-table-edit-icon),.hd-table-container .hd-table-cell-value--edit>hd-status,.hd-table-container .hd-table-cell-value--edit>span:not(.hd-table-row-no),.hd-table-container .hd-table-cell-value--rowno>a:not(.hd-table-edit-icon),.hd-table-container .hd-table-cell-value--rowno>hd-status,.hd-table-container .hd-table-cell-value--rowno>span:not(.hd-table-row-no){min-width:0}.hd-table-container .hd-table-row-no{display:inline-flex;flex-shrink:0;align-items:center;margin-left:4px;color:#1d1f29;font-size:14px;line-height:22px}.hd-table-container .hd-table-row-no-bar{display:inline-block;flex:0 0 auto;align-self:center;width:1px;height:14px;margin-right:4px;background:#1d1f29;vertical-align:middle}.hd-table-container .hd-table-edit-icon{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;margin-left:2px;width:14px;height:14px;color:#20b95d;line-height:1;cursor:pointer}.hd-table-container .hd-table-edit-icon:hover{color:#20bd62}.hd-table-container .hd-table-edit-icon svg{display:block;width:14px;height:14px}.hd-table-container .hd-table-title-with-bar{display:inline-flex;align-items:center}.hd-table-container .hd-table-title-with-bar .hd-table-row-no-bar{width:1px;height:14px;margin:0 4px;align-self:center}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td.ant-table-td-right-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td.ant-table-td-right-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td.ant-table-td-right-sticky{background:#f7f8fa!important;color:#868a9c!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group>a{color:#20b95d!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group>a:hover{color:#20bd62!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group .common-danger-btn:hover{color:#f05b24!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .hd-table-cell-value>a{color:#20b95d}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-billNumber>a{color:#3b77e3}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .hd-status-text{color:#868a9c!important}.hd-table-container ::ng-deep .hd-table-total>td{border:0!important}.hd-table-container ::ng-deep cdk-virtual-scroll-viewport.ant-table-body .hd-table-virtual-row>td{box-sizing:border-box}.hd-table-container.hd-table--scroll-x ::ng-deep .ant-table-body>table,.hd-table-container.hd-table--scroll-x ::ng-deep .ant-table-header>table,.hd-table-container.hd-table--scroll-x ::ng-deep .cdk-virtual-scroll-content-wrapper>table{table-layout:fixed}.hd-table-container:not(.hd-table--scroll-y):not(.hd-table--scroll-x) ::ng-deep .ant-table-body{max-height:none!important;overflow-y:visible!important}::ng-deep .ant-dropdown-menu{border-radius:0}::ng-deep .ant-dropdown{margin-top:8px!important}.common-td-wrap{white-space:normal!important;word-break:break-all}.hd-table-cell-ellipsis{display:block;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.nz-resizable-preview{border-width:0 1px 0 0}.resize-trigger{width:10px;height:15px;position:relative;top:calc((100% - 15px)/ 2)}.resize-trigger::after{position:absolute;top:calc((100% - 15px)/ 2);left:0;background:#d5d5d5;content:'';width:1px;height:15px;z-index:1}.nz-resizable-handle-right{position:absolute;width:10px;top:0;right:-5px;z-index:inherit}::ng-deep .ant-table-th-right-sticky .nz-resizable-handle-right{right:0}.hd-table-tree-node{display:inline-flex;align-items:center;padding-right:10px}.hd-table-tree-node .hd-table-tree-node-img{display:flex;flex-direction:column;position:absolute;right:0;margin-top:-2.5px}.hd-table-tree-node .hd-table-tree-node-img i{opacity:.3}.hd-table-tree-node .hd-table-tree-node-img i:last-child{margin-top:-5px}img{width:20px;height:20px}.ant-table-th-left-sticky{z-index:2}::ng-deep .ant-table-thead>tr>th .ant-table-header-column .ant-table-column-sorters>:not(.ant-table-column-sorter){position:unset}.hd-table-cell-edit{width:100%;min-width:0}.hd-table-cell-edit-control{width:100%!important}::ng-deep .hd-table-cell-edit .ant-input,::ng-deep .hd-table-cell-edit .ant-input-number,::ng-deep .hd-table-cell-edit .ant-select{width:100%}::ng-deep .hd-table-cell-edit .ant-input,::ng-deep .hd-table-cell-edit .ant-input-number,::ng-deep .hd-table-cell-edit .ant-select-selection{height:32px}::ng-deep .hd-table-cell-edit .ant-input-number-input{height:30px}::ng-deep .hd-table-cell-edit .ant-select-selection__rendered{line-height:30px}"]
13334
+ styles: ["::ng-deep .common-btn-group>a{font-size:14px;font-weight:400;color:#20b95d!important;white-space:nowrap}::ng-deep .common-btn-group .common-danger-btn:hover{color:#f05b24!important}::ng-deep .common-btn-group>a:hover{color:#20bd62!important}::ng-deep .common-btn-group>a:not(:last-child)::after{content:'';margin:0 2px}::ng-deep .common-billNumber>a{color:#3b77e3}button{box-shadow:unset;text-shadow:unset;padding:0 6px!important}::ng-deep .ant-form-item-label>label{color:#4b504e;font-size:14px}::ng-deep .ant-input-number-input{height:32px}::ng-deep .ant-input-number{height:32px}textarea.ant-input{height:auto;min-height:32px}::ng-deep .ant-select-selection--multiple{min-height:32px}::ng-deep .ant-select-selection__rendered>ul>li{height:26px!important;margin-top:3px!important;line-height:26px!important}::ng-deep .ant-advanced-search-form .ant-form-item{margin-bottom:0!important}::ng-deep .ant-select-selection--single{height:32px!important}::ng-deep .ant-input{height:32px}::ng-deep .ant-input[disabled]:hover{border-color:#d9d9d9!important}::ng-deep .ant-select-selection__rendered{line-height:32px!important}::ng-deep .ant-calendar-range-picker-input{text-align:left!important}::ng-deep .ant-calendar-picker{width:100%!important}::ng-deep .ant-row{margin-right:0!important;margin-left:0!important}::ng-deep .ant-col-6{padding-left:12px;padding-right:12px}::ng-deep .ant-col-12{padding-left:12px;padding-right:12px}::ng-deep .ant-col-18{padding-left:12px;padding-right:12px}::ng-deep .ant-col-24{padding-left:12px;padding-right:12px}::ng-deep .ant-alert-info{background-color:#f5f8f6;border:1px solid #cfe3d4}::ng-deep .hd-table-container .ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-th-left-sticky,::ng-deep .hd-table-container .ant-table-th-right-sticky{z-index:2;transform:translateZ(0)}::ng-deep .hd-table-container .ant-table-thead>tr>th.ant-table-th-left-sticky,::ng-deep .hd-table-container .ant-table-thead>tr>th.ant-table-th-right-sticky{background:#f5f8f6!important}::ng-deep .hd-table-container .ant-table-tbody>tr>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr>td.ant-table-td-right-sticky{background:#fff}::ng-deep .hd-table-container .ant-table-tbody>tr.ant-table-row-hover>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr.ant-table-row-hover>td.ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr:hover>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr:hover>td.ant-table-td-right-sticky{background:#ecf8f1!important}::ng-deep .hd-table-container .ant-table-scroll-position-left .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-left .ant-table-th-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-middle .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-middle .ant-table-th-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-right .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-right .ant-table-th-right-sticky{box-shadow:none!important}::ng-deep .hd-table-container .ant-table-fixed-right{right:0!important}:host ::ng-deep th{background:#f5f8f6!important;font-weight:700!important;white-space:nowrap;font-size:14px;font-family:PingFangSC-Medium,PingFang SC;color:#2a3634;padding:8px!important;box-sizing:border-box}:host ::ng-deep td{font-weight:400;font-style:normal;font-size:14px;color:#2a3634;text-align:left;white-space:nowrap;padding:8px!important;box-sizing:border-box}::ng-deep .ant-pagination-options{display:inline-flex;align-items:center}::ng-deep .ant-pagination-options .ant-select,::ng-deep .ant-pagination-options .ant-select-selection--single{min-width:100px}::ng-deep .ant-pagination-options-size-changer.ant-select{min-width:100px}::ng-deep .ant-time-picker{width:100%}::ng-deep .cdk-overlay-pane .hd-cascader-menus.ant-cascader-menus>.ant-cascader-menu:only-child{width:-webkit-max-content!important;width:-moz-max-content!important;width:max-content!important;min-width:var(--hd-cascader-menu-min-width,auto);max-width:560px}::ng-deep .cdk-overlay-pane .hd-cascader-menus.ant-cascader-menus>.ant-cascader-menu:only-child .ant-cascader-menu-item{white-space:nowrap}.ant-input-number-disabled,.ant-input[disabled],.ant-select-disabled{color:#4b504e}.nz-resizable-preview{position:absolute;top:0;left:0;z-index:8;border:1px dashed #d1d1d1}.nz-resizable-handle{position:absolute;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:9}.nz-resizable-handle-top{width:100%;height:10px;top:-5px;left:0}.nz-resizable-handle-right{height:100%}.nz-resizable-handle-bottom{width:100%;height:10px;bottom:-5px;left:0}.nz-resizable-handle-left{width:10px;height:100%;top:0;left:-5px}.nz-resizable-handle-topRight{width:20px;height:20px;top:-5px;right:-5px;z-index:10}.nz-resizable-handle-bottomRight{width:20px;height:20px;right:-5px;bottom:-5px;z-index:10}.nz-resizable-handle-bottomLeft{width:20px;height:20px;bottom:-5px;left:-5px;z-index:10}.nz-resizable-handle-topLeft{width:20px;height:20px;top:-5px;left:-5px;z-index:10}.nz-resizable:not(.nz-resizable-resizing) .nz-resizable-handle-bottom,.nz-resizable:not(.nz-resizable-resizing) .nz-resizable-handle-top{cursor:row-resize}.nz-resizable:not(.nz-resizable-resizing) .nz-resizable-handle-left,.nz-resizable:not(.nz-resizable-resizing) .nz-resizable-handle-right{cursor:col-resize}.nz-resizable:not(.nz-resizable-resizing) .nz-resizable-handle-bottomRight,.nz-resizable:not(.nz-resizable-resizing) .nz-resizable-handle-topLeft{cursor:nwse-resize}.nz-resizable:not(.nz-resizable-resizing) .nz-resizable-handle-bottomLeft,.nz-resizable:not(.nz-resizable-resizing) .nz-resizable-handle-topRight{cursor:nesw-resize}.hd-table-col-settings{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:32px;height:32px;padding:0;margin-left:12px;cursor:pointer;color:#2a3634;background:0 0;border:1px solid #e5e6eb;border-radius:4px;vertical-align:middle;flex-shrink:0}.hd-table-col-settings:hover{color:#20b95d;background:#f5f8f6;border-color:#20b95d}.hd-table-col-settings .hd-table-col-settings-icon{display:block;width:14px;height:14px;flex-shrink:0}.hd-table-cell-with-actions{display:inline-flex;flex-wrap:wrap;align-items:center;-moz-column-gap:12px;column-gap:12px;row-gap:6px;max-width:100%}.hd-table-cell-with-actions .hd-table-cell-value{min-width:0}.hd-table-cell-with-actions .hd-table-cell-actions{flex-shrink:0}.hd-table-col-settings-dropdown{background:#fff;border:1px solid #e5e6eb;border-radius:4px;box-shadow:0 6px 16px rgba(0,0,0,.08),0 3px 6px rgba(0,0,0,.06);overflow:hidden}.hd-table-col-settings-list{max-height:400px;overflow-y:auto}.hd-table-col-settings-footer{text-align:right;background:#fff;padding:4px;border-top:1px solid #f0f0f0}.hd-table-container ::ng-deep .ant-pagination-options-quick-jumper input{border-radius:2px;border:1px solid #d9d9d9}.hd-table-container ::ng-deep .ant-pagination-options .ant-select-selection{border-radius:2px}.hd-table-container ::ng-deep .ant-table-thead>tr>th{border-bottom:1px solid #ecf1ed;white-space:nowrap;text-overflow:ellipsis}.hd-table-container ::ng-deep .ant-table-tbody>tr>td{border-bottom:1px solid #ecf1ed;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.hd-table-container ::ng-deep .ant-table-tbody>tr>td.hd-table-line-no-col,.hd-table-container ::ng-deep .ant-table-thead>tr>th.hd-table-line-no-col{width:72px!important;min-width:72px!important;max-width:72px!important;box-sizing:border-box}.hd-table-container .hd-table-cell-value--edit,.hd-table-container .hd-table-cell-value--rowno{display:inline-flex;align-items:center;min-width:0}.hd-table-container .hd-table-cell-value--edit>a:not(.hd-table-edit-icon),.hd-table-container .hd-table-cell-value--edit>hd-status,.hd-table-container .hd-table-cell-value--edit>span:not(.hd-table-row-no),.hd-table-container .hd-table-cell-value--rowno>a:not(.hd-table-edit-icon),.hd-table-container .hd-table-cell-value--rowno>hd-status,.hd-table-container .hd-table-cell-value--rowno>span:not(.hd-table-row-no){min-width:0}.hd-table-container .hd-table-row-no{display:inline-flex;flex-shrink:0;align-items:center;margin-left:4px;color:#1d1f29;font-size:14px;line-height:22px}.hd-table-container .hd-table-row-no-bar{display:inline-block;flex:0 0 auto;align-self:center;width:1px;height:14px;margin-right:4px;background:#1d1f29;vertical-align:middle}.hd-table-container .hd-table-edit-icon{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;margin-left:2px;width:14px;height:14px;color:#20b95d;line-height:1;cursor:pointer}.hd-table-container .hd-table-edit-icon:hover{color:#20bd62}.hd-table-container .hd-table-edit-icon svg{display:block;width:14px;height:14px}.hd-table-container .hd-table-title-with-bar{display:inline-flex;align-items:center}.hd-table-container .hd-table-title-with-bar .hd-table-row-no-bar{width:1px;height:14px;margin:0 4px;align-self:center}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td.ant-table-td-right-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td.ant-table-td-right-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td.ant-table-td-right-sticky{background:#f7f8fa!important;color:#868a9c!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group>a{color:#20b95d!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group>a:hover{color:#20bd62!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group .common-danger-btn:hover{color:#f05b24!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .hd-table-cell-value>a{color:#20b95d}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-billNumber>a{color:#3b77e3}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .hd-status-text{color:#868a9c!important}.hd-table-container ::ng-deep cdk-virtual-scroll-viewport.ant-table-body .hd-table-virtual-row>td{box-sizing:border-box}.hd-table-container.hd-table--scroll-x ::ng-deep .ant-table-body>table,.hd-table-container.hd-table--scroll-x ::ng-deep .ant-table-header>table,.hd-table-container.hd-table--scroll-x ::ng-deep .cdk-virtual-scroll-content-wrapper>table{table-layout:fixed}.hd-table-container:not(.hd-table--scroll-y):not(.hd-table--scroll-x) ::ng-deep .ant-table-body{max-height:none!important;overflow-y:visible!important}.hd-table-container.hd-table--has-total ::ng-deep .ant-table-footer{padding:0;overflow:hidden;background:#fafafa;border-top:1px solid #e8e8e8}.hd-table-total-footer{width:100%;box-sizing:border-box;overflow-x:auto;overflow-y:hidden;background:#fafafa;scrollbar-width:thin;scrollbar-color:transparent transparent}.hd-table-total-footer::-webkit-scrollbar{width:12px;height:0}.hd-table-total-footer::-webkit-scrollbar-track{background:0 0}.hd-table-total-footer::-webkit-scrollbar-thumb{background:padding-box;border:4px solid transparent}.hd-table-total-footer::-webkit-scrollbar-corner{background:0 0}.hd-table-total-footer.hd-table-total-footer--y-gutter{overflow-y:scroll}.hd-table-total-footer.hd-table-total-footer--fluid{overflow-x:hidden}.hd-table-total-footer-table{table-layout:fixed;border-collapse:separate;border-spacing:0}.hd-table-total-footer-cell{padding:12px 8px;font-weight:500;background:#fafafa;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-bottom:0}.hd-table-total-footer-cell.hd-table-total-align-left{text-align:left!important}.hd-table-total-footer-cell.hd-table-total-align-center{text-align:center!important}.hd-table-total-footer-cell.hd-table-total-align-right{text-align:right!important}.hd-table-total-footer-select{width:40px;min-width:40px;max-width:40px;padding-left:8px;padding-right:8px;text-align:center}.hd-table-total-footer-line-no{width:72px;min-width:72px;max-width:72px}.hd-table-total-footer-sticky-left,.hd-table-total-footer-sticky-right{position:-webkit-sticky;position:sticky;z-index:2;background:#fafafa}::ng-deep .ant-dropdown-menu{border-radius:0}::ng-deep .ant-dropdown{margin-top:8px!important}.common-td-wrap{white-space:normal!important;word-break:break-all}.hd-table-cell-ellipsis{display:block;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.nz-resizable-preview{border-width:0 1px 0 0}.resize-trigger{width:10px;height:15px;position:relative;top:calc((100% - 15px)/ 2)}.resize-trigger::after{position:absolute;top:calc((100% - 15px)/ 2);left:0;background:#d5d5d5;content:'';width:1px;height:15px;z-index:1}.nz-resizable-handle-right{position:absolute;width:10px;top:0;right:-5px;z-index:inherit}::ng-deep .ant-table-th-right-sticky .nz-resizable-handle-right{right:0}.hd-table-tree-node{display:inline-flex;align-items:center;padding-right:10px}.hd-table-tree-node .hd-table-tree-node-img{display:flex;flex-direction:column;position:absolute;right:0;margin-top:-2.5px}.hd-table-tree-node .hd-table-tree-node-img i{opacity:.3}.hd-table-tree-node .hd-table-tree-node-img i:last-child{margin-top:-5px}img{width:20px;height:20px}.ant-table-th-left-sticky{z-index:2}::ng-deep .ant-table-thead>tr>th .ant-table-header-column .ant-table-column-sorters>:not(.ant-table-column-sorter){position:unset}.hd-table-cell-edit{width:100%;min-width:0}.hd-table-cell-edit-control{width:100%!important}::ng-deep .hd-table-cell-edit .ant-input,::ng-deep .hd-table-cell-edit .ant-input-number,::ng-deep .hd-table-cell-edit .ant-select{width:100%}::ng-deep .hd-table-cell-edit .ant-input,::ng-deep .hd-table-cell-edit .ant-input-number,::ng-deep .hd-table-cell-edit .ant-select-selection{height:32px}::ng-deep .hd-table-cell-edit .ant-input-number-input{height:30px}::ng-deep .hd-table-cell-edit .ant-select-selection__rendered{line-height:30px}"]
12737
13335
  }] }
12738
13336
  ];
12739
13337
  /** @nocollapse */
12740
13338
  HdTableComponent.ctorParameters = function () { return [
13339
+ { type: ElementRef },
12741
13340
  { type: ChangeDetectorRef },
12742
13341
  { type: CommonSessionService }
12743
13342
  ]; };
@@ -12754,6 +13353,7 @@ var HdTableComponent = /** @class */ (function () {
12754
13353
  rowInvalidField: [{ type: Input }],
12755
13354
  showTableTotal: [{ type: Input }],
12756
13355
  tableTotalOption: [{ type: Input }],
13356
+ columnsNumber: [{ type: Input }],
12757
13357
  sortEvent: [{ type: Output }],
12758
13358
  selectEvent: [{ type: Output }],
12759
13359
  tableSearchEvent: [{ type: Output }],
@@ -12835,6 +13435,12 @@ if (false) {
12835
13435
  HdTableComponent.prototype.showTableTotal;
12836
13436
  /** @type {?} */
12837
13437
  HdTableComponent.prototype.tableTotalOption;
13438
+ /**
13439
+ * 合计列总数(含序号列,与 hd-detail-lines 一致);
13440
+ * 不传则按当前可见数据列数 + 1(序号)推算。
13441
+ * @type {?}
13442
+ */
13443
+ HdTableComponent.prototype.columnsNumber;
12838
13444
  /** @type {?} */
12839
13445
  HdTableComponent.prototype.sortEvent;
12840
13446
  /** @type {?} */
@@ -12945,9 +13551,8 @@ if (false) {
12945
13551
  */
12946
13552
  HdTableComponent.prototype.virtualScrollActive;
12947
13553
  /**
12948
- * 可见列总宽,用于判断是否需要横向滚动
13554
+ * 列宽合计(含勾选/序号),footer 表宽与横向 scroll 共用
12949
13555
  * @type {?}
12950
- * @private
12951
13556
  */
12952
13557
  HdTableComponent.prototype.tableColWidthTotal;
12953
13558
  /**
@@ -12969,6 +13574,48 @@ if (false) {
12969
13574
  HdTableComponent.prototype.currentSortValue;
12970
13575
  /** @type {?} */
12971
13576
  HdTableComponent.prototype.nzTableComponent;
13577
+ /**
13578
+ * @type {?}
13579
+ * @private
13580
+ */
13581
+ HdTableComponent.prototype.totalFooterScrollBoundBody;
13582
+ /**
13583
+ * @type {?}
13584
+ * @private
13585
+ */
13586
+ HdTableComponent.prototype.totalFooterScrollHandler;
13587
+ /**
13588
+ * @type {?}
13589
+ * @private
13590
+ */
13591
+ HdTableComponent.prototype.totalFooterSyncRetry;
13592
+ /**
13593
+ * 表体有竖滚条时合计 footer 才预留右侧滚动条槽
13594
+ * @type {?}
13595
+ */
13596
+ HdTableComponent.prototype.totalFooterNeedYGutter;
13597
+ /**
13598
+ * 视口/容器尺寸变化时重算 scroll.x 与合计对齐
13599
+ * @type {?}
13600
+ * @private
13601
+ */
13602
+ HdTableComponent.prototype.viewportResizeTimer;
13603
+ /**
13604
+ * @type {?}
13605
+ * @private
13606
+ */
13607
+ HdTableComponent.prototype.boundOnViewportResize;
13608
+ /**
13609
+ * @type {?}
13610
+ * @private
13611
+ */
13612
+ HdTableComponent.prototype.hostResizeObserver;
13613
+ /**
13614
+ * 序号列固定宽(含 padding,可容纳 6 位如 199995)。
13615
+ * 不锁死时表体会随位数变宽(1→~64px,199995→~67px),合计行对不齐。
13616
+ * @type {?}
13617
+ */
13618
+ HdTableComponent.prototype.lineNumberColWidth;
12972
13619
  /** @type {?} */
12973
13620
  HdTableComponent.prototype.trackByRow;
12974
13621
  /**
@@ -12980,6 +13627,11 @@ if (false) {
12980
13627
  HdTableComponent.prototype.trackByCol;
12981
13628
  /** @type {?} */
12982
13629
  HdTableComponent.prototype.beforeDrop;
13630
+ /**
13631
+ * @type {?}
13632
+ * @private
13633
+ */
13634
+ HdTableComponent.prototype.hostEl;
12983
13635
  /**
12984
13636
  * @type {?}
12985
13637
  * @private
@@ -13649,7 +14301,10 @@ var TotalOption = /** @class */ (function () {
13649
14301
  if (false) {
13650
14302
  /** @type {?} */
13651
14303
  TotalOption.prototype.insertIndex;
13652
- /** @type {?} */
14304
+ /**
14305
+ * 合计值;hd-table 可不传,按 insertIndex 对应列对 content 自动求和
14306
+ * @type {?}
14307
+ */
13653
14308
  TotalOption.prototype.insertValue;
13654
14309
  /** @type {?} */
13655
14310
  TotalOption.prototype.align;
@@ -13989,5 +14644,5 @@ var Utils = {
13989
14644
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
13990
14645
  */
13991
14646
 
13992
- export { ButtonSize, ButtonType, CascaderOption, CheckboxOption, ColWidth, ColorOption, ExplainOption, FantasyNgzorroModule, Filter, FilterListType, FormItem, FormLine, FormLineType, FormLinesCacheOption, FormListType, HD_CASCADER_MENU_CLASS, HD_FILTER_DEFAULT_SCHEME_NAME, HD_FILTER_SCHEME_STORE, HdAccessoryFile, HdAccessoryGroup, HdAccessoryListComponent, HdButtonService, HdCurrentTableComponent, HdDetailFormFieldType, HdDetailFormService, HdFilterScheme, HdFilterSchemeStore, HdFilterService, HdFormLinesService, HdFormService, HdLogComponent, HdLogService, HdOption, HdOverlayCleanupService, HdTableCellChange, HdTableColumn, HdTableTotalOption, InputNumber, OperateBtn, Page, RadioOption, SelectOption, SelectOptionTableColumn, SelectOptionTableColumnIcon, StaticConst, TableCacheOption, TableColumn, TableTotalOption, TotalOption, TreeGrid, Utils, ValidatorKey, cascaderPinyinFilter, getCascaderMenuClassName, getCascaderMenuStyle, getCascaderShowSearch, HdComponentModule as ɵa, HdButtonModule as ɵb, HdTableComponent as ɵba, HdTableCellPipe as ɵbb, HdTipModule as ɵbc, HdTipComponent as ɵbd, HdAccessoryListModule as ɵbe, HdPopconfirmModule as ɵbf, HdPopconfirmComponent as ɵbg, HdLogModule as ɵbh, HdButtonComponent as ɵc, HdButtonGroupModule as ɵd, HdButtonGroupComponent as ɵe, HdDetailFormModule as ɵf, HdDetailFormComponent as ɵg, HdDetailLinesModule as ɵh, HdSpaceModule as ɵi, HdSpaceComponent as ɵj, HdDetailLinesComponent as ɵk, HdDetailLinesPageModule as ɵl, HdDetailLinesPageComponent as ɵm, HdDetailTipModule as ɵn, HdDetailTipComponent as ɵo, HdFilterModule as ɵp, HdFormModule as ɵq, HdFormComponent as ɵr, HdFilterComponent as ɵs, HdFormLinesModule as ɵt, HdFormLinesComponent as ɵu, CommonSessionService as ɵv, HdStatusModule as ɵw, HdStatusComponent as ɵx, HdCurrentTableModule as ɵy, HdTableModule as ɵz };
14647
+ export { ButtonSize, ButtonType, CascaderOption, CheckboxOption, ColWidth, ColorOption, ExplainOption, FantasyNgzorroModule, Filter, FilterListType, FormItem, FormLine, FormLineType, FormLinesCacheOption, FormListType, HD_CASCADER_MENU_CLASS, HD_FILTER_DEFAULT_SCHEME_NAME, HD_FILTER_SCHEME_STORE, HdAccessoryFile, HdAccessoryGroup, HdAccessoryListComponent, HdButtonService, HdCurrentTableComponent, HdDetailFormFieldType, HdDetailFormService, HdFilterScheme, HdFilterSchemeStore, HdFilterService, HdFormLinesService, HdFormService, HdLogComponent, HdLogService, HdOption, HdOverlayCleanupService, HdTableCellChange, HdTableColumn, InputNumber, OperateBtn, Page, RadioOption, SelectOption, SelectOptionTableColumn, SelectOptionTableColumnIcon, StaticConst, TableCacheOption, TableColumn, TableTotalOption, TotalOption, TreeGrid, Utils, ValidatorKey, cascaderPinyinFilter, getCascaderMenuClassName, getCascaderMenuStyle, getCascaderShowSearch, HdComponentModule as ɵa, HdButtonModule as ɵb, HdTableComponent as ɵba, HdTableCellPipe as ɵbb, HdTipModule as ɵbc, HdTipComponent as ɵbd, HdAccessoryListModule as ɵbe, HdPopconfirmModule as ɵbf, HdPopconfirmComponent as ɵbg, HdLogModule as ɵbh, HdButtonComponent as ɵc, HdButtonGroupModule as ɵd, HdButtonGroupComponent as ɵe, HdDetailFormModule as ɵf, HdDetailFormComponent as ɵg, HdDetailLinesModule as ɵh, HdSpaceModule as ɵi, HdSpaceComponent as ɵj, HdDetailLinesComponent as ɵk, HdDetailLinesPageModule as ɵl, HdDetailLinesPageComponent as ɵm, HdDetailTipModule as ɵn, HdDetailTipComponent as ɵo, HdFilterModule as ɵp, HdFormModule as ɵq, HdFormComponent as ɵr, HdFilterComponent as ɵs, HdFormLinesModule as ɵt, HdFormLinesComponent as ɵu, CommonSessionService as ɵv, HdStatusModule as ɵw, HdStatusComponent as ɵx, HdCurrentTableModule as ɵy, HdTableModule as ɵz };
13993
14648
  //# sourceMappingURL=fantasy-ngzorro.js.map