@delon/abc 20.1.0 → 21.0.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/fesm2022/auto-focus.mjs +10 -10
  2. package/fesm2022/auto-focus.mjs.map +1 -1
  3. package/fesm2022/cell.mjs +23 -25
  4. package/fesm2022/cell.mjs.map +1 -1
  5. package/fesm2022/chart-observer-size.mjs +21 -34
  6. package/fesm2022/chart-observer-size.mjs.map +1 -1
  7. package/fesm2022/count-down.mjs +24 -31
  8. package/fesm2022/count-down.mjs.map +1 -1
  9. package/fesm2022/date-picker.mjs +89 -85
  10. package/fesm2022/date-picker.mjs.map +1 -1
  11. package/fesm2022/down-file.mjs +24 -44
  12. package/fesm2022/down-file.mjs.map +1 -1
  13. package/fesm2022/ellipsis.mjs +165 -106
  14. package/fesm2022/ellipsis.mjs.map +1 -1
  15. package/fesm2022/error-collect.mjs +12 -14
  16. package/fesm2022/error-collect.mjs.map +1 -1
  17. package/fesm2022/exception.mjs +9 -9
  18. package/fesm2022/exception.mjs.map +1 -1
  19. package/fesm2022/footer-toolbar.mjs +9 -9
  20. package/fesm2022/footer-toolbar.mjs.map +1 -1
  21. package/fesm2022/full-content.mjs +50 -58
  22. package/fesm2022/full-content.mjs.map +1 -1
  23. package/fesm2022/global-footer.mjs +14 -15
  24. package/fesm2022/global-footer.mjs.map +1 -1
  25. package/fesm2022/hotkey.mjs +7 -7
  26. package/fesm2022/hotkey.mjs.map +1 -1
  27. package/fesm2022/loading.mjs +62 -15
  28. package/fesm2022/loading.mjs.map +1 -1
  29. package/fesm2022/lodop.mjs +8 -8
  30. package/fesm2022/lodop.mjs.map +1 -1
  31. package/fesm2022/media.mjs +37 -61
  32. package/fesm2022/media.mjs.map +1 -1
  33. package/fesm2022/notice-icon.mjs +220 -25
  34. package/fesm2022/notice-icon.mjs.map +1 -1
  35. package/fesm2022/onboarding.mjs +163 -65
  36. package/fesm2022/onboarding.mjs.map +1 -1
  37. package/fesm2022/page-header.mjs +252 -155
  38. package/fesm2022/page-header.mjs.map +1 -1
  39. package/fesm2022/pdf.mjs +9 -9
  40. package/fesm2022/pdf.mjs.map +1 -1
  41. package/fesm2022/quick-menu.mjs +79 -71
  42. package/fesm2022/quick-menu.mjs.map +1 -1
  43. package/fesm2022/reuse-tab.mjs +262 -165
  44. package/fesm2022/reuse-tab.mjs.map +1 -1
  45. package/fesm2022/se.mjs +290 -310
  46. package/fesm2022/se.mjs.map +1 -1
  47. package/fesm2022/sg.mjs +32 -69
  48. package/fesm2022/sg.mjs.map +1 -1
  49. package/fesm2022/st.mjs +124 -115
  50. package/fesm2022/st.mjs.map +1 -1
  51. package/fesm2022/sv.mjs +185 -174
  52. package/fesm2022/sv.mjs.map +1 -1
  53. package/fesm2022/tag-select.mjs +44 -25
  54. package/fesm2022/tag-select.mjs.map +1 -1
  55. package/fesm2022/xlsx.mjs +16 -19
  56. package/fesm2022/xlsx.mjs.map +1 -1
  57. package/fesm2022/zip.mjs +4 -4
  58. package/fesm2022/zip.mjs.map +1 -1
  59. package/package.json +40 -40
  60. package/{auto-focus/index.d.ts → types/auto-focus.d.ts} +2 -2
  61. package/{cell/index.d.ts → types/cell.d.ts} +12 -13
  62. package/{observers/index.d.ts → types/chart-observer-size.d.ts} +5 -9
  63. package/{count-down/index.d.ts → types/count-down.d.ts} +6 -10
  64. package/{date-picker/index.d.ts → types/date-picker.d.ts} +6 -10
  65. package/types/down-file.d.ts +32 -0
  66. package/types/ellipsis.d.ts +46 -0
  67. package/types/error-collect.d.ts +34 -0
  68. package/{exception/index.d.ts → types/exception.d.ts} +13 -13
  69. package/{footer-toolbar/index.d.ts → types/footer-toolbar.d.ts} +2 -2
  70. package/{full-content/index.d.ts → types/full-content.d.ts} +8 -13
  71. package/{global-footer/index.d.ts → types/global-footer.d.ts} +7 -7
  72. package/{loading/index.d.ts → types/loading.d.ts} +1 -0
  73. package/{media/index.d.ts → types/media.d.ts} +10 -16
  74. package/{notice-icon/index.d.ts → types/notice-icon.d.ts} +15 -15
  75. package/{onboarding/index.d.ts → types/onboarding.d.ts} +12 -14
  76. package/types/page-header.d.ts +67 -0
  77. package/types/quick-menu.d.ts +31 -0
  78. package/{reuse-tab/index.d.ts → types/reuse-tab.d.ts} +46 -55
  79. package/types/se.d.ts +101 -0
  80. package/types/sg.d.ts +31 -0
  81. package/{st/index.d.ts → types/st.d.ts} +10 -2
  82. package/types/sv.d.ts +81 -0
  83. package/types/tag-select.d.ts +25 -0
  84. package/{xlsx/index.d.ts → types/xlsx.d.ts} +3 -3
  85. package/down-file/index.d.ts +0 -34
  86. package/ellipsis/index.d.ts +0 -55
  87. package/error-collect/index.d.ts +0 -35
  88. package/page-header/index.d.ts +0 -83
  89. package/quick-menu/index.d.ts +0 -38
  90. package/se/index.d.ts +0 -129
  91. package/sg/index.d.ts +0 -44
  92. package/sv/index.d.ts +0 -96
  93. package/tag-select/index.d.ts +0 -27
  94. /package/{index.d.ts → types/abc.d.ts} +0 -0
  95. /package/{hotkey/index.d.ts → types/hotkey.d.ts} +0 -0
  96. /package/{lodop/index.d.ts → types/lodop.d.ts} +0 -0
  97. /package/{pdf/index.d.ts → types/pdf.d.ts} +0 -0
  98. /package/{zip/index.d.ts → types/zip.d.ts} +0 -0
package/fesm2022/st.mjs CHANGED
@@ -24,7 +24,7 @@ import { NzBadgeComponent } from 'ng-zorro-antd/badge';
24
24
  import { NzCheckboxComponent } from 'ng-zorro-antd/checkbox';
25
25
  import { NzDividerComponent } from 'ng-zorro-antd/divider';
26
26
  import * as i3$1 from 'ng-zorro-antd/dropdown';
27
- import { NzDropDownModule, NzContextMenuService } from 'ng-zorro-antd/dropdown';
27
+ import { NzDropdownModule, NzContextMenuService } from 'ng-zorro-antd/dropdown';
28
28
  import { NzIconDirective } from 'ng-zorro-antd/icon';
29
29
  import * as i2$1 from 'ng-zorro-antd/menu';
30
30
  import { NzMenuModule } from 'ng-zorro-antd/menu';
@@ -52,10 +52,10 @@ class STRowSource {
52
52
  getRow(path) {
53
53
  return this.rows[path];
54
54
  }
55
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: STRowSource, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
56
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: STRowSource });
55
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: STRowSource, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
56
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: STRowSource });
57
57
  }
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: STRowSource, decorators: [{
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: STRowSource, decorators: [{
59
59
  type: Injectable
60
60
  }] });
61
61
  class STRowDirective {
@@ -66,10 +66,10 @@ class STRowDirective {
66
66
  ngOnInit() {
67
67
  this.source.add(this.type, this.id, this.ref);
68
68
  }
69
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: STRowDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
70
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.0", type: STRowDirective, isStandalone: true, selector: "[st-row]", inputs: { id: ["st-row", "id"], type: "type" }, ngImport: i0 });
69
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: STRowDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
70
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: STRowDirective, isStandalone: true, selector: "[st-row]", inputs: { id: ["st-row", "id"], type: "type" }, ngImport: i0 });
71
71
  }
72
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: STRowDirective, decorators: [{
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: STRowDirective, decorators: [{
73
73
  type: Directive,
74
74
  args: [{
75
75
  selector: '[st-row]'
@@ -95,10 +95,10 @@ class STWidgetRegistry {
95
95
  get(type) {
96
96
  return this._widgets[type];
97
97
  }
98
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: STWidgetRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
99
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: STWidgetRegistry, providedIn: 'root' });
98
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: STWidgetRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
99
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: STWidgetRegistry, providedIn: 'root' });
100
100
  }
101
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: STWidgetRegistry, decorators: [{
101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: STWidgetRegistry, decorators: [{
102
102
  type: Injectable,
103
103
  args: [{ providedIn: 'root' }]
104
104
  }] });
@@ -186,7 +186,7 @@ class STColumnSource {
186
186
  ...(typeof item.icon === 'string' ? { type: item.icon } : item.icon)
187
187
  };
188
188
  }
189
- item.children = item.children && item.children.length > 0 ? this.btnCoerce(item.children) : [];
189
+ item.children = Array.isArray(item.children) ? this.btnCoerce(item.children) : null;
190
190
  // i18n
191
191
  if (item.i18n && this.i18nSrv) {
192
192
  item.text = this.i18nSrv.fanyi(item.i18n);
@@ -198,13 +198,10 @@ class STColumnSource {
198
198
  }
199
199
  btnCoerceIf(list) {
200
200
  for (const item of list) {
201
- item.iifBehavior = item.iifBehavior || this.cog.iifBehavior;
201
+ item.iifBehavior = item.iifBehavior ?? this.cog.iifBehavior;
202
202
  if (item.children && item.children.length > 0) {
203
203
  this.btnCoerceIf(item.children);
204
204
  }
205
- else {
206
- item.children = [];
207
- }
208
205
  }
209
206
  }
210
207
  fixedCoerce(list, expand) {
@@ -261,7 +258,7 @@ class STColumnSource {
261
258
  return null;
262
259
  }
263
260
  let res = item.filter;
264
- res.type = res.type || 'default';
261
+ res.type = res.type ?? 'default';
265
262
  res.showOPArea = res.showOPArea !== false;
266
263
  let icon = 'filter';
267
264
  let iconTheme = 'fill';
@@ -308,10 +305,10 @@ class STColumnSource {
308
305
  if (typeof res.multiple === 'undefined') {
309
306
  res.multiple = true;
310
307
  }
311
- res.confirmText = res.confirmText || this.cog.filterConfirmText;
312
- res.clearText = res.clearText || this.cog.filterClearText;
313
- res.key = res.key || item.indexKey;
314
- res.icon = res.icon || icon;
308
+ res.confirmText = res.confirmText ?? this.cog.filterConfirmText;
309
+ res.clearText = res.clearText ?? this.cog.filterClearText;
310
+ res.key = res.key ?? item.indexKey;
311
+ res.icon = res.icon ?? icon;
315
312
  const baseIcon = { type: icon, theme: iconTheme };
316
313
  if (typeof res.icon === 'string') {
317
314
  res.icon = { ...baseIcon, type: res.icon };
@@ -352,7 +349,7 @@ class STColumnSource {
352
349
  const widths = [];
353
350
  const fillRowCells = (columns, colIndex, rowIndex = 0) => {
354
351
  // Init rows
355
- rows[rowIndex] = rows[rowIndex] || [];
352
+ rows[rowIndex] = rows[rowIndex] ?? [];
356
353
  let currentColIndex = colIndex;
357
354
  const colSpans = columns.map(column => {
358
355
  const cell = {
@@ -367,7 +364,7 @@ class STColumnSource {
367
364
  cell.hasSubColumns = true;
368
365
  }
369
366
  else {
370
- widths.push(cell.column.width || '');
367
+ widths.push(cell.column.width ?? '');
371
368
  }
372
369
  if ('colSpan' in column) {
373
370
  colSpan = column.colSpan;
@@ -458,7 +455,7 @@ class STColumnSource {
458
455
  item.indexKey = item.index.join('.');
459
456
  }
460
457
  // #region title
461
- const tit = (typeof item.title === 'string' ? { text: item.title } : item.title) || {};
458
+ const tit = (typeof item.title === 'string' ? { text: item.title } : item.title) ?? {};
462
459
  if (tit.i18n && this.i18nSrv) {
463
460
  tit.text = this.i18nSrv.fanyi(tit.i18n);
464
461
  }
@@ -502,7 +499,7 @@ class STColumnSource {
502
499
  }
503
500
  // date
504
501
  if (item.type === 'date') {
505
- item.dateFormat = item.dateFormat || this.cog.date?.format;
502
+ item.dateFormat = item.dateFormat ?? this.cog.date?.format;
506
503
  }
507
504
  if ((item.type === 'link' && typeof item.click !== 'function') ||
508
505
  (item.type === 'badge' && item.badge == null) ||
@@ -590,10 +587,10 @@ class STColumnSource {
590
587
  }
591
588
  return this;
592
589
  }
593
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: STColumnSource, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
594
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: STColumnSource });
590
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: STColumnSource, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
591
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: STColumnSource });
595
592
  }
596
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: STColumnSource, decorators: [{
593
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: STColumnSource, decorators: [{
597
594
  type: Injectable
598
595
  }] });
599
596
 
@@ -620,7 +617,7 @@ class STDataSource {
620
617
  process(options) {
621
618
  let data$;
622
619
  let isRemote = false;
623
- const { data, res, total, page, pi, ps, paginator, columns, headers } = options;
620
+ const { data, res, total, page, pi, ps, paginator, columns, headers, locale } = options;
624
621
  let retTotal;
625
622
  let retPs;
626
623
  let retList;
@@ -653,7 +650,7 @@ class STDataSource {
653
650
  }
654
651
  // total
655
652
  const resultTotal = reName.total && deepGet(result, reName.total, null);
656
- retTotal = resultTotal == null ? total || 0 : +resultTotal;
653
+ retTotal = resultTotal == null ? (total ?? 0) : +resultTotal;
657
654
  }
658
655
  }
659
656
  return deepCopy(ret);
@@ -715,11 +712,11 @@ class STDataSource {
715
712
  if (typeof res.process === 'function') {
716
713
  data$ = data$.pipe(map(result => res.process(result, rawData)));
717
714
  }
718
- data$ = data$.pipe(map(result => this.optimizeData({ result, columns, rowClassName: options.rowClassName })));
715
+ data$ = data$.pipe(map(result => this.optimizeData({ result, columns, rowClassName: options.rowClassName, locale })));
719
716
  return data$.pipe(map(result => {
720
717
  retList = result;
721
- const realTotal = retTotal || total;
722
- const realPs = retPs || ps;
718
+ const realTotal = retTotal ?? total;
719
+ const realPs = retPs ?? ps;
723
720
  return {
724
721
  pi: retPi,
725
722
  ps: retPs,
@@ -734,7 +731,7 @@ class STDataSource {
734
731
  try {
735
732
  const safeHtml = col.safeType === 'safeHtml';
736
733
  if (col.format) {
737
- const formatRes = col.format(item, col, idx) || '';
734
+ const formatRes = col.format(item, col, idx) ?? '';
738
735
  return {
739
736
  text: formatRes,
740
737
  _text: safeHtml ? this.dom.bypassSecurityTrustHtml(formatRes) : formatRes,
@@ -806,7 +803,7 @@ class STDataSource {
806
803
  }
807
804
  getByRemote(url, options) {
808
805
  const { req, page, paginator, pi, ps, singleSort, multiSort, columns, headers } = options;
809
- const method = (req.method || 'GET').toUpperCase();
806
+ const method = (req.method ?? 'GET').toUpperCase();
810
807
  let params = {};
811
808
  const reName = req.reName;
812
809
  if (paginator) {
@@ -867,12 +864,12 @@ class STDataSource {
867
864
  };
868
865
  }
869
866
  optimizeData(options) {
870
- const { result, columns, rowClassName } = options;
867
+ const { result, columns, rowClassName, locale } = options;
871
868
  for (let i = 0, len = result.length; i < len; i++) {
872
869
  result[i]._values = columns.map(c => {
873
870
  const props = this.getCell(c, result[i], i);
874
871
  if (Array.isArray(c.buttons) && c.buttons.length > 0) {
875
- return { buttons: this.genButtons(c.buttons, result[i], c), _text: '', props };
872
+ return { buttons: this.genButtons(c.buttons, result[i], c, locale), _text: '', props };
876
873
  }
877
874
  let cell;
878
875
  if (typeof c.cell === 'function') {
@@ -889,15 +886,20 @@ class STDataSource {
889
886
  getNoIndex(item, col, idx) {
890
887
  return typeof col.noIndex === 'function' ? col.noIndex(item, col, idx) : col.noIndex + idx;
891
888
  }
892
- genButtons(_btns, item, col) {
889
+ genButtons(_btns, item, col, locale) {
893
890
  const fn = (btns) => {
894
891
  return deepCopy(btns).filter(btn => {
895
892
  const result = typeof btn.iif === 'function' ? btn.iif(item, btn, col) : true;
896
893
  const isRenderDisabled = btn.iifBehavior === 'disabled';
897
894
  btn._result = result;
898
895
  btn._disabled = !result && isRenderDisabled;
899
- if (btn.children?.length) {
900
- btn.children = fn(btn.children);
896
+ if (Array.isArray(btn.children)) {
897
+ if (btn.children.length > 0) {
898
+ btn.children = fn(btn.children);
899
+ }
900
+ else {
901
+ return false;
902
+ }
901
903
  }
902
904
  return result || isRenderDisabled;
903
905
  });
@@ -905,7 +907,7 @@ class STDataSource {
905
907
  const res = fn(_btns);
906
908
  const fnText = (btns) => {
907
909
  for (const btn of btns) {
908
- btn._text = typeof btn.text === 'function' ? btn.text(item, btn) : btn.text || '';
910
+ btn._text = typeof btn.text === 'function' ? btn.text(item, btn) : (btn.text ?? '');
909
911
  btn._className = typeof btn.className === 'function' ? btn.className(item, btn) : btn.className;
910
912
  btn._icon = typeof btn.icon === 'function' ? btn.icon(item, btn) : btn.icon;
911
913
  if (btn.children?.length) {
@@ -914,9 +916,9 @@ class STDataSource {
914
916
  }
915
917
  return btns;
916
918
  };
917
- return this.fixMaxMultiple(fnText(res), col);
919
+ return this.fixMaxMultiple(fnText(res), col, locale);
918
920
  }
919
- fixMaxMultiple(btns, col) {
921
+ fixMaxMultiple(btns, col, locale) {
920
922
  const curCog = col.maxMultipleButton;
921
923
  const btnSize = btns.length;
922
924
  if (curCog == null || btnSize <= 0)
@@ -928,7 +930,7 @@ class STDataSource {
928
930
  if (cog.count >= btnSize)
929
931
  return btns;
930
932
  const newBtns = btns.slice(0, cog.count);
931
- newBtns.push({ _text: cog.text, children: btns.slice(cog.count) });
933
+ newBtns.push({ _text: cog.text ?? locale.more, children: btns.slice(cog.count) });
932
934
  return newBtns;
933
935
  }
934
936
  // #region sort
@@ -981,7 +983,7 @@ class STDataSource {
981
983
  };
982
984
  const sortMap = sortList
983
985
  .sort((a, b) => a.tick - b.tick)
984
- .map(item => item.key + ms.nameSeparator + ((item.reName || {})[item.default] || item.default));
986
+ .map(item => item.key + ms.nameSeparator + ((item.reName ?? {})[item.default] ?? item.default));
985
987
  ret = { [ms.key]: ms.arrayParam ? sortMap : sortMap.join(ms.separator) };
986
988
  return sortMap.length === 0 && ms.keepEmptyKey === false ? {} : ret;
987
989
  }
@@ -989,10 +991,10 @@ class STDataSource {
989
991
  return ret;
990
992
  const mapData = sortList[0];
991
993
  let sortFiled = mapData.key;
992
- let sortValue = (sortList[0].reName || {})[mapData.default] || mapData.default;
994
+ let sortValue = (sortList[0].reName ?? {})[mapData.default] ?? mapData.default;
993
995
  if (singleSort) {
994
- sortValue = sortFiled + (singleSort.nameSeparator || '.') + sortValue;
995
- sortFiled = singleSort.key || 'sort';
996
+ sortValue = sortFiled + (singleSort.nameSeparator ?? '.') + sortValue;
997
+ sortFiled = singleSort.key ?? 'sort';
996
998
  }
997
999
  ret[sortFiled] = sortValue;
998
1000
  return ret;
@@ -1025,7 +1027,7 @@ class STDataSource {
1025
1027
  genStatistical(columns, list, rawData) {
1026
1028
  const res = {};
1027
1029
  columns.forEach((col, index) => {
1028
- res[col.key || col.indexKey || index] =
1030
+ res[col.key ?? col.indexKey ?? index] =
1029
1031
  col.statistical == null ? {} : this.getStatistical(col, index, list, rawData);
1030
1032
  });
1031
1033
  return res;
@@ -1089,10 +1091,10 @@ class STDataSource {
1089
1091
  getSum(index, list) {
1090
1092
  return this.getValues(index, list).reduce((p, i) => (p += parseFloat(String(i))), 0);
1091
1093
  }
1092
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: STDataSource, deps: [{ token: i1._HttpClient }, { token: i1.DatePipe, host: true }, { token: i1.YNPipe, host: true }, { token: i2.DecimalPipe, host: true }, { token: i3.CurrencyService }, { token: i4.DomSanitizer }], target: i0.ɵɵFactoryTarget.Injectable });
1093
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: STDataSource });
1094
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: STDataSource, deps: [{ token: i1._HttpClient }, { token: i1.DatePipe, host: true }, { token: i1.YNPipe, host: true }, { token: i2.DecimalPipe, host: true }, { token: i3.CurrencyService }, { token: i4.DomSanitizer }], target: i0.ɵɵFactoryTarget.Injectable });
1095
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: STDataSource });
1094
1096
  }
1095
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: STDataSource, decorators: [{
1097
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: STDataSource, decorators: [{
1096
1098
  type: Injectable
1097
1099
  }], ctorParameters: () => [{ type: i1._HttpClient }, { type: i1.DatePipe, decorators: [{
1098
1100
  type: Host
@@ -1139,7 +1141,7 @@ class STExport {
1139
1141
  }
1140
1142
  genSheet(opt) {
1141
1143
  const sheets = {};
1142
- const sheet = (sheets[opt.sheetname || 'Sheet1'] = {});
1144
+ const sheet = (sheets[opt.sheetname ?? 'Sheet1'] = {});
1143
1145
  const dataLen = opt.data.length;
1144
1146
  const columns = opt.columens;
1145
1147
  let validColCount = 0;
@@ -1177,10 +1179,10 @@ class STExport {
1177
1179
  callback: opt.callback
1178
1180
  });
1179
1181
  }
1180
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: STExport, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1181
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: STExport });
1182
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: STExport, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1183
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: STExport });
1182
1184
  }
1183
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: STExport, decorators: [{
1185
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: STExport, decorators: [{
1184
1186
  type: Injectable
1185
1187
  }] });
1186
1188
 
@@ -1200,10 +1202,10 @@ class STWidgetHostDirective {
1200
1202
  componentRef.instance[key] = data[key];
1201
1203
  });
1202
1204
  }
1203
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: STWidgetHostDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1204
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.0", type: STWidgetHostDirective, isStandalone: true, selector: "[st-widget-host]", inputs: { record: "record", column: "column" }, ngImport: i0 });
1205
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: STWidgetHostDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1206
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: STWidgetHostDirective, isStandalone: true, selector: "[st-widget-host]", inputs: { record: "record", column: "column" }, ngImport: i0 });
1205
1207
  }
1206
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: STWidgetHostDirective, decorators: [{
1208
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: STWidgetHostDirective, decorators: [{
1207
1209
  type: Directive,
1208
1210
  args: [{
1209
1211
  selector: '[st-widget-host]'
@@ -1250,11 +1252,11 @@ class STFilterComponent {
1250
1252
  this.handle.emit(false);
1251
1253
  return this;
1252
1254
  }
1253
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: STFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1254
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.0", type: STFilterComponent, isStandalone: true, selector: "st-filter", inputs: { col: "col", locale: "locale", f: "f" }, outputs: { n: "n", handle: "handle" }, host: { properties: { "class.ant-table-filter-trigger-container": "true", "class.st__filter": "true", "class.ant-table-filter-trigger-container-open": "visible" } }, ngImport: i0, template: `
1255
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: STFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1256
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: STFilterComponent, isStandalone: true, selector: "st-filter", inputs: { col: "col", locale: "locale", f: "f" }, outputs: { n: "n", handle: "handle" }, host: { properties: { "class.ant-table-filter-trigger-container": "true", "class.st__filter": "true", "class.ant-table-filter-trigger-container-open": "visible" } }, ngImport: i0, template: `
1255
1257
  <span
1256
1258
  class="ant-table-filter-trigger"
1257
- [class.active]="visible || f.default"
1259
+ [class.active]="visible ?? f.default"
1258
1260
  nz-dropdown
1259
1261
  [nzDropdownMenu]="filterMenu"
1260
1262
  nzTrigger="click"
@@ -1288,7 +1290,7 @@ class STFilterComponent {
1288
1290
  [nzMin]="f.number!.min!"
1289
1291
  [nzMax]="f.number!.max!"
1290
1292
  [nzStep]="f.number!.step!"
1291
- [nzPrecision]="f.number!.precision || null"
1293
+ [nzPrecision]="f.number!.precision ?? null"
1292
1294
  [nzPlaceHolder]="f.placeholder!"
1293
1295
  class="width-100"
1294
1296
  />
@@ -1350,25 +1352,25 @@ class STFilterComponent {
1350
1352
  @if (f.showOPArea) {
1351
1353
  <div class="ant-table-filter-dropdown-btns">
1352
1354
  <a class="ant-table-filter-dropdown-link confirm" (click)="confirm()">
1353
- <span>{{ f.confirmText || locale.filterConfirm }}</span>
1355
+ <span>{{ f.confirmText ?? locale.filterConfirm }}</span>
1354
1356
  </a>
1355
1357
  <a class="ant-table-filter-dropdown-link clear" (click)="reset()">
1356
- <span>{{ f.clearText || locale.filterReset }}</span>
1358
+ <span>{{ f.clearText ?? locale.filterReset }}</span>
1357
1359
  </a>
1358
1360
  </div>
1359
1361
  }
1360
1362
  </div>
1361
1363
  </nz-dropdown-menu>
1362
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NzDropDownModule }, { kind: "directive", type: i2$1.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i2$1.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "directive", type: i3$1.NzDropDownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzArrow", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { kind: "component", type: i3$1.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "directive", type: NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "directive", type: NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzVariant", "nzSize", "nzStepperless", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "component", type: NzInputNumberComponent, selector: "nz-input-number", inputs: ["nzId", "nzSize", "nzPlaceHolder", "nzStatus", "nzVariant", "nzStep", "nzMin", "nzMax", "nzPrecision", "nzParser", "nzFormatter", "nzDisabled", "nzReadOnly", "nzAutoFocus", "nzBordered", "nzKeyboard", "nzControls"], outputs: ["nzBlur", "nzFocus", "nzOnStep"], exportAs: ["nzInputNumber"] }, { kind: "directive", type: NzRangePickerComponent, selector: "nz-range-picker", exportAs: ["nzRangePicker"] }, { kind: "component", type: NzDatePickerComponent, selector: "nz-date-picker,nz-week-picker,nz-month-picker,nz-quarter-picker,nz-year-picker,nz-range-picker", inputs: ["nzAllowClear", "nzAutoFocus", "nzDisabled", "nzBorderless", "nzInputReadOnly", "nzInline", "nzOpen", "nzDisabledDate", "nzLocale", "nzPlaceHolder", "nzPopupStyle", "nzDropdownClassName", "nzSize", "nzStatus", "nzFormat", "nzVariant", "nzDateRender", "nzDisabledTime", "nzRenderExtraFooter", "nzShowToday", "nzMode", "nzShowNow", "nzRanges", "nzDefaultPickerValue", "nzSeparator", "nzSuffixIcon", "nzBackdrop", "nzId", "nzPlacement", "nzShowWeekNumber", "nzShowTime"], outputs: ["nzOnPanelChange", "nzOnCalendarChange", "nzOnOk", "nzOnOpenChange"], exportAs: ["nzDatePicker"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: NzMenuModule }, { kind: "component", type: NzCheckboxComponent, selector: "[nz-checkbox]", inputs: ["nzValue", "nzAutoFocus", "nzDisabled", "nzIndeterminate", "nzChecked", "nzId", "nzName"], outputs: ["nzCheckedChange"], exportAs: ["nzCheckbox"] }, { kind: "component", type: NzRadioComponent, selector: "[nz-radio],[nz-radio-button]", inputs: ["nzValue", "nzDisabled", "nzAutoFocus", "nz-radio-button"], exportAs: ["nzRadio"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1364
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NzDropdownModule }, { kind: "directive", type: i2$1.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i2$1.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "directive", type: i3$1.NzDropdownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzArrow", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { kind: "component", type: i3$1.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "directive", type: NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "directive", type: NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzVariant", "nzSize", "nzStepperless", "nzStatus", "disabled", "readonly"], exportAs: ["nzInput"] }, { kind: "component", type: NzInputNumberComponent, selector: "nz-input-number", inputs: ["nzId", "nzSize", "nzPlaceHolder", "nzStatus", "nzVariant", "nzStep", "nzMin", "nzMax", "nzPrecision", "nzParser", "nzFormatter", "nzDisabled", "nzReadOnly", "nzAutoFocus", "nzKeyboard", "nzControls", "nzChangeOnWheel", "nzPrefix", "nzSuffix", "nzAddonBefore", "nzAddonAfter"], outputs: ["nzBlur", "nzFocus", "nzOnStep"], exportAs: ["nzInputNumber"] }, { kind: "directive", type: NzRangePickerComponent, selector: "nz-range-picker", exportAs: ["nzRangePicker"] }, { kind: "component", type: NzDatePickerComponent, selector: "nz-date-picker,nz-week-picker,nz-month-picker,nz-quarter-picker,nz-year-picker,nz-range-picker", inputs: ["nzAllowClear", "nzAutoFocus", "nzDisabled", "nzInputReadOnly", "nzInline", "nzOpen", "nzDisabledDate", "nzLocale", "nzPlaceHolder", "nzPopupStyle", "nzDropdownClassName", "nzSize", "nzStatus", "nzFormat", "nzVariant", "nzDateRender", "nzDisabledTime", "nzRenderExtraFooter", "nzShowToday", "nzMode", "nzShowNow", "nzRanges", "nzDefaultPickerValue", "nzSeparator", "nzSuffixIcon", "nzBackdrop", "nzId", "nzPlacement", "nzShowWeekNumber", "nzShowTime"], outputs: ["nzOnPanelChange", "nzOnCalendarChange", "nzOnOk", "nzOnOpenChange"], exportAs: ["nzDatePicker"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: NzMenuModule }, { kind: "component", type: NzCheckboxComponent, selector: "[nz-checkbox]", inputs: ["nzValue", "nzAutoFocus", "nzDisabled", "nzIndeterminate", "nzChecked", "nzId", "nzName"], outputs: ["nzCheckedChange"], exportAs: ["nzCheckbox"] }, { kind: "component", type: NzRadioComponent, selector: "[nz-radio],[nz-radio-button]", inputs: ["nzValue", "nzDisabled", "nzAutoFocus", "nz-radio-button"], exportAs: ["nzRadio"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1363
1365
  }
1364
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: STFilterComponent, decorators: [{
1366
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: STFilterComponent, decorators: [{
1365
1367
  type: Component,
1366
1368
  args: [{
1367
1369
  selector: 'st-filter',
1368
1370
  template: `
1369
1371
  <span
1370
1372
  class="ant-table-filter-trigger"
1371
- [class.active]="visible || f.default"
1373
+ [class.active]="visible ?? f.default"
1372
1374
  nz-dropdown
1373
1375
  [nzDropdownMenu]="filterMenu"
1374
1376
  nzTrigger="click"
@@ -1402,7 +1404,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
1402
1404
  [nzMin]="f.number!.min!"
1403
1405
  [nzMax]="f.number!.max!"
1404
1406
  [nzStep]="f.number!.step!"
1405
- [nzPrecision]="f.number!.precision || null"
1407
+ [nzPrecision]="f.number!.precision ?? null"
1406
1408
  [nzPlaceHolder]="f.placeholder!"
1407
1409
  class="width-100"
1408
1410
  />
@@ -1464,10 +1466,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
1464
1466
  @if (f.showOPArea) {
1465
1467
  <div class="ant-table-filter-dropdown-btns">
1466
1468
  <a class="ant-table-filter-dropdown-link confirm" (click)="confirm()">
1467
- <span>{{ f.confirmText || locale.filterConfirm }}</span>
1469
+ <span>{{ f.confirmText ?? locale.filterConfirm }}</span>
1468
1470
  </a>
1469
1471
  <a class="ant-table-filter-dropdown-link clear" (click)="reset()">
1470
- <span>{{ f.clearText || locale.filterReset }}</span>
1472
+ <span>{{ f.clearText ?? locale.filterReset }}</span>
1471
1473
  </a>
1472
1474
  </div>
1473
1475
  }
@@ -1483,7 +1485,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
1483
1485
  encapsulation: ViewEncapsulation.None,
1484
1486
  imports: [
1485
1487
  FormsModule,
1486
- NzDropDownModule,
1488
+ NzDropdownModule,
1487
1489
  NzIconDirective,
1488
1490
  NzInputDirective,
1489
1491
  NzInputNumberComponent,
@@ -1681,10 +1683,10 @@ class STTdComponent {
1681
1683
  return btn.click(record, modal, this.stComp);
1682
1684
  }
1683
1685
  }
1684
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: STTdComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1685
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.0", type: STTdComponent, isStandalone: true, selector: "st-td", inputs: { c: "c", cIdx: "cIdx", data: "data", i: "i", index: "index" }, outputs: { n: "n" }, ngImport: i0, template: "<ng-template #btnTpl let-i let-child=\"child\">\n @if (i.tooltip) {\n <span nz-tooltip [nzTooltipTitle]=\"i.tooltip\" [class.d-block]=\"child\" [class.width-100]=\"child\">\n <ng-template [ngTemplateOutlet]=\"btnItemTpl\" [ngTemplateOutletContext]=\"{ $implicit: i }\" />\n </span>\n } @else {\n <ng-template [ngTemplateOutlet]=\"btnItemTpl\" [ngTemplateOutletContext]=\"{ $implicit: i }\" />\n }\n</ng-template>\n<ng-template #btnItemTpl let-i>\n @if (i.pop) {\n @let pop = i.pop;\n <a\n nz-popconfirm\n [nzPopconfirmTitle]=\"pop.title\"\n [nzIcon]=\"pop.icon\"\n [nzCondition]=\"pop.condition(i)\"\n [nzCancelText]=\"pop.cancelText\"\n [nzOkText]=\"pop.okText\"\n [nzOkType]=\"pop.okType\"\n (nzOnConfirm)=\"_btn(i)\"\n class=\"st__btn-text\"\n [class]=\"i._className\"\n (click)=\"_stopPropagation($event)\"\n >\n <ng-template [ngTemplateOutlet]=\"btnTextTpl\" [ngTemplateOutletContext]=\"{ $implicit: i }\" />\n </a>\n } @else {\n <a (click)=\"_btn(i, $event)\" class=\"st__btn-text\" [class]=\"i._className\">\n <ng-template [ngTemplateOutlet]=\"btnTextTpl\" [ngTemplateOutletContext]=\"{ $implicit: i }\" />\n </a>\n }\n</ng-template>\n<ng-template #btnTextTpl let-i>\n @if (i._icon) {\n @let icon = i._icon;\n @if (icon.iconfont) {\n <nz-icon [nzIconfont]=\"icon.iconfont\" />\n } @else {\n <nz-icon [nzType]=\"icon.type\" [nzTheme]=\"icon.theme\" [nzSpin]=\"icon.spin\" [nzTwotoneColor]=\"icon.twoToneColor\" />\n }\n }\n <span [innerHTML]=\"i._text\" [class.pl-xs]=\"i._icon\"></span>\n</ng-template>\n@if (c.__render) {\n <ng-template [ngTemplateOutlet]=\"c.__render!\" [ngTemplateOutletContext]=\"{ $implicit: i, index: index, column: c }\" />\n} @else {\n @let col = i._values[cIdx];\n @switch (c.type) {\n @case ('checkbox') {\n <label nz-checkbox [nzDisabled]=\"i.disabled\" [ngModel]=\"i.checked\" (ngModelChange)=\"_checkbox($event)\"></label>\n }\n @case ('radio') {\n <label nz-radio [nzDisabled]=\"i.disabled\" [ngModel]=\"i.checked\" (ngModelChange)=\"_radio()\"></label>\n }\n @case ('link') {\n <a (click)=\"_link($event)\" [innerHTML]=\"col._text\" [attr.title]=\"col.text\"></a>\n }\n @case ('tag') {\n <nz-tag [nzColor]=\"col.color\" [nz-tooltip]=\"col.tooltip\">\n <span [innerHTML]=\"col._text\"></span>\n </nz-tag>\n }\n @case ('badge') {\n <nz-badge [nzStatus]=\"col.color\" [nzText]=\"col.text\" [nz-tooltip]=\"col.tooltip\" />\n }\n @case ('cell') {\n <cell [value]=\"col.text\" [options]=\"col.cell ?? c.cell\" (click)=\"_client()\" />\n }\n @case ('widget') {\n <ng-template st-widget-host [record]=\"i\" [column]=\"c\" />\n }\n @default {\n @if (c.safeType === 'text') {\n <span [innerText]=\"col._text\" [attr.title]=\"c._isTruncate ? col.text : null\"></span>\n } @else {\n <span [innerHTML]=\"col._text\" [attr.title]=\"c._isTruncate ? col.text : null\"></span>\n }\n }\n }\n @for (btn of col.buttons; track $index) {\n @if (btn.children!.length > 0) {\n <a nz-dropdown [nzDropdownMenu]=\"btnMenu\" nzOverlayClassName=\"st__btn-sub\">\n <span [innerHTML]=\"btn._text\"></span>\n <nz-icon nzType=\"down\" />\n </a>\n <nz-dropdown-menu #btnMenu=\"nzDropdownMenu\">\n <ul nz-menu>\n @for (subBtn of btn.children; track $index) {\n @if (subBtn.type === 'divider') {\n <li nz-menu-divider></li>\n } @else {\n <li nz-menu-item [class.st__btn-disabled]=\"subBtn._disabled\">\n <ng-template\n [ngTemplateOutlet]=\"btnTpl\"\n [ngTemplateOutletContext]=\"{ $implicit: subBtn, child: true }\"\n />\n </li>\n }\n }\n </ul>\n </nz-dropdown-menu>\n } @else {\n <span [class.st__btn-disabled]=\"btn._disabled\">\n <ng-template [ngTemplateOutlet]=\"btnTpl\" [ngTemplateOutletContext]=\"{ $implicit: btn, child: false }\" />\n </span>\n }\n @if (!$last) {\n <nz-divider nzType=\"vertical\" />\n }\n }\n}\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NzTooltipDirective, selector: "[nz-tooltip]", inputs: ["nzTooltipTitle", "nzTooltipTitleContext", "nz-tooltip", "nzTooltipTrigger", "nzTooltipPlacement", "nzTooltipOrigin", "nzTooltipVisible", "nzTooltipMouseEnterDelay", "nzTooltipMouseLeaveDelay", "nzTooltipOverlayClassName", "nzTooltipOverlayStyle", "nzTooltipArrowPointAtCenter", "cdkConnectedOverlayPush", "nzTooltipColor"], outputs: ["nzTooltipVisibleChange"], exportAs: ["nzTooltip"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NzPopconfirmDirective, selector: "[nz-popconfirm]", inputs: ["nzPopconfirmArrowPointAtCenter", "nzPopconfirmTitle", "nzPopconfirmTitleContext", "nz-popconfirm", "nzPopconfirmTrigger", "nzPopconfirmPlacement", "nzPopconfirmOrigin", "nzPopconfirmMouseEnterDelay", "nzPopconfirmMouseLeaveDelay", "nzPopconfirmOverlayClassName", "nzPopconfirmOverlayStyle", "nzPopconfirmVisible", "nzBeforeConfirm", "nzIcon", "nzCondition", "nzPopconfirmShowArrow", "nzPopconfirmBackdrop", "nzAutofocus", "nzOkText", "nzOkType", "nzCancelText", "nzOkButtonProps", "nzCancelButtonProps", "nzOkDisabled", "nzOkDanger"], outputs: ["nzPopconfirmVisibleChange", "nzOnCancel", "nzOnConfirm"], exportAs: ["nzPopconfirm"] }, { kind: "directive", type: NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "component", type: NzCheckboxComponent, selector: "[nz-checkbox]", inputs: ["nzValue", "nzAutoFocus", "nzDisabled", "nzIndeterminate", "nzChecked", "nzId", "nzName"], outputs: ["nzCheckedChange"], exportAs: ["nzCheckbox"] }, { kind: "component", type: NzRadioComponent, selector: "[nz-radio],[nz-radio-button]", inputs: ["nzValue", "nzDisabled", "nzAutoFocus", "nz-radio-button"], exportAs: ["nzRadio"] }, { kind: "component", type: NzTagComponent, selector: "nz-tag", inputs: ["nzMode", "nzColor", "nzChecked", "nzBordered"], outputs: ["nzOnClose", "nzCheckedChange"], exportAs: ["nzTag"] }, { kind: "component", type: NzBadgeComponent, selector: "nz-badge", inputs: ["nzShowZero", "nzShowDot", "nzStandalone", "nzDot", "nzOverflowCount", "nzColor", "nzStyle", "nzText", "nzTitle", "nzStatus", "nzCount", "nzOffset", "nzSize"], exportAs: ["nzBadge"] }, { kind: "component", type: CellComponent, selector: "cell, [cell]", inputs: ["value", "options", "loading", "disabled"], outputs: ["valueChange"], exportAs: ["cell"] }, { kind: "directive", type: STWidgetHostDirective, selector: "[st-widget-host]", inputs: ["record", "column"] }, { kind: "ngmodule", type: NzDropDownModule }, { kind: "directive", type: i2$1.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i2$1.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "directive", type: i2$1.NzMenuDividerDirective, selector: "[nz-menu-divider]", exportAs: ["nzMenuDivider"] }, { kind: "directive", type: i3$1.NzDropDownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzArrow", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { kind: "directive", type: i3$1.NzDropDownADirective, selector: "a[nz-dropdown]" }, { kind: "component", type: i3$1.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "ngmodule", type: NzMenuModule }, { kind: "component", type: NzDividerComponent, selector: "nz-divider", inputs: ["nzText", "nzType", "nzOrientation", "nzVariant", "nzSize", "nzDashed", "nzPlain"], exportAs: ["nzDivider"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1686
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: STTdComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1687
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: STTdComponent, isStandalone: true, selector: "st-td", inputs: { c: "c", cIdx: "cIdx", data: "data", i: "i", index: "index" }, outputs: { n: "n" }, ngImport: i0, template: "<ng-template #btnTpl let-i let-child=\"child\">\n @if (i.tooltip) {\n <span nz-tooltip [nzTooltipTitle]=\"i.tooltip\" [class.d-block]=\"child\" [class.width-100]=\"child\">\n <ng-template [ngTemplateOutlet]=\"btnItemTpl\" [ngTemplateOutletContext]=\"{ $implicit: i }\" />\n </span>\n } @else {\n <ng-template [ngTemplateOutlet]=\"btnItemTpl\" [ngTemplateOutletContext]=\"{ $implicit: i }\" />\n }\n</ng-template>\n<ng-template #btnItemTpl let-i>\n @if (i.pop) {\n @let pop = i.pop;\n <a\n nz-popconfirm\n [nzPopconfirmTitle]=\"pop.title\"\n [nzIcon]=\"pop.icon\"\n [nzCondition]=\"pop.condition(i)\"\n [nzCancelText]=\"pop.cancelText\"\n [nzOkText]=\"pop.okText\"\n [nzOkType]=\"pop.okType\"\n (nzOnConfirm)=\"_btn(i)\"\n class=\"st__btn-text\"\n [class]=\"i._className\"\n (click)=\"_stopPropagation($event)\"\n >\n <ng-template [ngTemplateOutlet]=\"btnTextTpl\" [ngTemplateOutletContext]=\"{ $implicit: i }\" />\n </a>\n } @else {\n <a (click)=\"_btn(i, $event)\" class=\"st__btn-text\" [class]=\"i._className\">\n <ng-template [ngTemplateOutlet]=\"btnTextTpl\" [ngTemplateOutletContext]=\"{ $implicit: i }\" />\n </a>\n }\n</ng-template>\n<ng-template #btnTextTpl let-i>\n @if (i._icon) {\n @let icon = i._icon;\n @if (icon.iconfont) {\n <nz-icon [nzIconfont]=\"icon.iconfont\" />\n } @else {\n <nz-icon [nzType]=\"icon.type\" [nzTheme]=\"icon.theme\" [nzSpin]=\"icon.spin\" [nzTwotoneColor]=\"icon.twoToneColor\" />\n }\n }\n <span [innerHTML]=\"i._text\" [class.pl-xs]=\"i._icon\"></span>\n</ng-template>\n@if (c.__render) {\n <ng-template [ngTemplateOutlet]=\"c.__render!\" [ngTemplateOutletContext]=\"{ $implicit: i, index: index, column: c }\" />\n} @else {\n @let col = i._values[cIdx];\n @switch (c.type) {\n @case ('checkbox') {\n <label nz-checkbox [nzDisabled]=\"i.disabled\" [ngModel]=\"i.checked\" (ngModelChange)=\"_checkbox($event)\"></label>\n }\n @case ('radio') {\n <label nz-radio [nzDisabled]=\"i.disabled\" [ngModel]=\"i.checked\" (ngModelChange)=\"_radio()\"></label>\n }\n @case ('link') {\n <a (click)=\"_link($event)\" [innerHTML]=\"col._text\" [attr.title]=\"col.text\"></a>\n }\n @case ('tag') {\n <nz-tag [nzColor]=\"col.color\" [nz-tooltip]=\"col.tooltip\">\n <span [innerHTML]=\"col._text\"></span>\n </nz-tag>\n }\n @case ('badge') {\n <nz-badge [nzStatus]=\"col.color\" [nzText]=\"col.text\" [nz-tooltip]=\"col.tooltip\" />\n }\n @case ('cell') {\n <cell [value]=\"col.text\" [options]=\"col.cell ?? c.cell\" (click)=\"_client()\" />\n }\n @case ('widget') {\n <ng-template st-widget-host [record]=\"i\" [column]=\"c\" />\n }\n @default {\n @if (c.safeType === 'text') {\n <span [innerText]=\"col._text\" [attr.title]=\"c._isTruncate ? col.text : null\"></span>\n } @else {\n <span [innerHTML]=\"col._text\" [attr.title]=\"c._isTruncate ? col.text : null\"></span>\n }\n }\n }\n @for (btn of col.buttons; track $index) {\n @if (btn.children && btn.children.length > 0) {\n <a nz-dropdown [nzDropdownMenu]=\"btnMenu\" nzOverlayClassName=\"st__btn-sub\">\n <span [innerHTML]=\"btn._text\"></span>\n <nz-icon nzType=\"down\" />\n </a>\n <nz-dropdown-menu #btnMenu=\"nzDropdownMenu\">\n <ul nz-menu>\n @for (subBtn of btn.children; track $index) {\n @if (subBtn.type === 'divider') {\n <li nz-menu-divider></li>\n } @else {\n <li nz-menu-item [class.st__btn-disabled]=\"subBtn._disabled\">\n <ng-template\n [ngTemplateOutlet]=\"btnTpl\"\n [ngTemplateOutletContext]=\"{ $implicit: subBtn, child: true }\"\n />\n </li>\n }\n }\n </ul>\n </nz-dropdown-menu>\n } @else {\n <span [class.st__btn-disabled]=\"btn._disabled\">\n <ng-template [ngTemplateOutlet]=\"btnTpl\" [ngTemplateOutletContext]=\"{ $implicit: btn, child: false }\" />\n </span>\n }\n @if (!$last) {\n <nz-divider nzType=\"vertical\" />\n }\n }\n}\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NzTooltipDirective, selector: "[nz-tooltip]", inputs: ["nzTooltipTitle", "nzTooltipTitleContext", "nz-tooltip", "nzTooltipTrigger", "nzTooltipPlacement", "nzTooltipOrigin", "nzTooltipVisible", "nzTooltipMouseEnterDelay", "nzTooltipMouseLeaveDelay", "nzTooltipOverlayClassName", "nzTooltipOverlayStyle", "nzTooltipArrowPointAtCenter", "cdkConnectedOverlayPush", "nzTooltipColor"], outputs: ["nzTooltipVisibleChange"], exportAs: ["nzTooltip"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NzPopconfirmDirective, selector: "[nz-popconfirm]", inputs: ["nzPopconfirmArrowPointAtCenter", "nzPopconfirmTitle", "nzPopconfirmTitleContext", "nz-popconfirm", "nzPopconfirmTrigger", "nzPopconfirmPlacement", "nzPopconfirmOrigin", "nzPopconfirmMouseEnterDelay", "nzPopconfirmMouseLeaveDelay", "nzPopconfirmOverlayClassName", "nzPopconfirmOverlayStyle", "nzPopconfirmVisible", "nzBeforeConfirm", "nzIcon", "nzCondition", "nzPopconfirmShowArrow", "nzPopconfirmBackdrop", "nzAutofocus", "nzOkText", "nzOkType", "nzCancelText", "nzOkButtonProps", "nzCancelButtonProps", "nzOkDisabled", "nzOkDanger"], outputs: ["nzPopconfirmVisibleChange", "nzOnCancel", "nzOnConfirm"], exportAs: ["nzPopconfirm"] }, { kind: "directive", type: NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "component", type: NzCheckboxComponent, selector: "[nz-checkbox]", inputs: ["nzValue", "nzAutoFocus", "nzDisabled", "nzIndeterminate", "nzChecked", "nzId", "nzName"], outputs: ["nzCheckedChange"], exportAs: ["nzCheckbox"] }, { kind: "component", type: NzRadioComponent, selector: "[nz-radio],[nz-radio-button]", inputs: ["nzValue", "nzDisabled", "nzAutoFocus", "nz-radio-button"], exportAs: ["nzRadio"] }, { kind: "component", type: NzTagComponent, selector: "nz-tag", inputs: ["nzMode", "nzColor", "nzChecked", "nzBordered"], outputs: ["nzOnClose", "nzCheckedChange"], exportAs: ["nzTag"] }, { kind: "component", type: NzBadgeComponent, selector: "nz-badge", inputs: ["nzShowZero", "nzShowDot", "nzStandalone", "nzDot", "nzOverflowCount", "nzColor", "nzStyle", "nzText", "nzTitle", "nzStatus", "nzCount", "nzOffset", "nzSize"], exportAs: ["nzBadge"] }, { kind: "component", type: CellComponent, selector: "cell, [cell]", inputs: ["value", "options", "loading", "disabled"], outputs: ["valueChange"], exportAs: ["cell"] }, { kind: "directive", type: STWidgetHostDirective, selector: "[st-widget-host]", inputs: ["record", "column"] }, { kind: "ngmodule", type: NzDropdownModule }, { kind: "directive", type: i2$1.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i2$1.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "directive", type: i2$1.NzMenuDividerDirective, selector: "[nz-menu-divider]", exportAs: ["nzMenuDivider"] }, { kind: "directive", type: i3$1.NzDropdownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzArrow", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { kind: "directive", type: i3$1.NzDropdownADirective, selector: "a[nz-dropdown]" }, { kind: "component", type: i3$1.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "ngmodule", type: NzMenuModule }, { kind: "component", type: NzDividerComponent, selector: "nz-divider", inputs: ["nzText", "nzType", "nzOrientation", "nzVariant", "nzSize", "nzDashed", "nzPlain"], exportAs: ["nzDivider"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1686
1688
  }
1687
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: STTdComponent, decorators: [{
1689
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: STTdComponent, decorators: [{
1688
1690
  type: Component,
1689
1691
  args: [{ selector: 'st-td', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [
1690
1692
  FormsModule,
@@ -1698,10 +1700,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
1698
1700
  NzBadgeComponent,
1699
1701
  CellComponent,
1700
1702
  STWidgetHostDirective,
1701
- NzDropDownModule,
1703
+ NzDropdownModule,
1702
1704
  NzMenuModule,
1703
1705
  NzDividerComponent
1704
- ], template: "<ng-template #btnTpl let-i let-child=\"child\">\n @if (i.tooltip) {\n <span nz-tooltip [nzTooltipTitle]=\"i.tooltip\" [class.d-block]=\"child\" [class.width-100]=\"child\">\n <ng-template [ngTemplateOutlet]=\"btnItemTpl\" [ngTemplateOutletContext]=\"{ $implicit: i }\" />\n </span>\n } @else {\n <ng-template [ngTemplateOutlet]=\"btnItemTpl\" [ngTemplateOutletContext]=\"{ $implicit: i }\" />\n }\n</ng-template>\n<ng-template #btnItemTpl let-i>\n @if (i.pop) {\n @let pop = i.pop;\n <a\n nz-popconfirm\n [nzPopconfirmTitle]=\"pop.title\"\n [nzIcon]=\"pop.icon\"\n [nzCondition]=\"pop.condition(i)\"\n [nzCancelText]=\"pop.cancelText\"\n [nzOkText]=\"pop.okText\"\n [nzOkType]=\"pop.okType\"\n (nzOnConfirm)=\"_btn(i)\"\n class=\"st__btn-text\"\n [class]=\"i._className\"\n (click)=\"_stopPropagation($event)\"\n >\n <ng-template [ngTemplateOutlet]=\"btnTextTpl\" [ngTemplateOutletContext]=\"{ $implicit: i }\" />\n </a>\n } @else {\n <a (click)=\"_btn(i, $event)\" class=\"st__btn-text\" [class]=\"i._className\">\n <ng-template [ngTemplateOutlet]=\"btnTextTpl\" [ngTemplateOutletContext]=\"{ $implicit: i }\" />\n </a>\n }\n</ng-template>\n<ng-template #btnTextTpl let-i>\n @if (i._icon) {\n @let icon = i._icon;\n @if (icon.iconfont) {\n <nz-icon [nzIconfont]=\"icon.iconfont\" />\n } @else {\n <nz-icon [nzType]=\"icon.type\" [nzTheme]=\"icon.theme\" [nzSpin]=\"icon.spin\" [nzTwotoneColor]=\"icon.twoToneColor\" />\n }\n }\n <span [innerHTML]=\"i._text\" [class.pl-xs]=\"i._icon\"></span>\n</ng-template>\n@if (c.__render) {\n <ng-template [ngTemplateOutlet]=\"c.__render!\" [ngTemplateOutletContext]=\"{ $implicit: i, index: index, column: c }\" />\n} @else {\n @let col = i._values[cIdx];\n @switch (c.type) {\n @case ('checkbox') {\n <label nz-checkbox [nzDisabled]=\"i.disabled\" [ngModel]=\"i.checked\" (ngModelChange)=\"_checkbox($event)\"></label>\n }\n @case ('radio') {\n <label nz-radio [nzDisabled]=\"i.disabled\" [ngModel]=\"i.checked\" (ngModelChange)=\"_radio()\"></label>\n }\n @case ('link') {\n <a (click)=\"_link($event)\" [innerHTML]=\"col._text\" [attr.title]=\"col.text\"></a>\n }\n @case ('tag') {\n <nz-tag [nzColor]=\"col.color\" [nz-tooltip]=\"col.tooltip\">\n <span [innerHTML]=\"col._text\"></span>\n </nz-tag>\n }\n @case ('badge') {\n <nz-badge [nzStatus]=\"col.color\" [nzText]=\"col.text\" [nz-tooltip]=\"col.tooltip\" />\n }\n @case ('cell') {\n <cell [value]=\"col.text\" [options]=\"col.cell ?? c.cell\" (click)=\"_client()\" />\n }\n @case ('widget') {\n <ng-template st-widget-host [record]=\"i\" [column]=\"c\" />\n }\n @default {\n @if (c.safeType === 'text') {\n <span [innerText]=\"col._text\" [attr.title]=\"c._isTruncate ? col.text : null\"></span>\n } @else {\n <span [innerHTML]=\"col._text\" [attr.title]=\"c._isTruncate ? col.text : null\"></span>\n }\n }\n }\n @for (btn of col.buttons; track $index) {\n @if (btn.children!.length > 0) {\n <a nz-dropdown [nzDropdownMenu]=\"btnMenu\" nzOverlayClassName=\"st__btn-sub\">\n <span [innerHTML]=\"btn._text\"></span>\n <nz-icon nzType=\"down\" />\n </a>\n <nz-dropdown-menu #btnMenu=\"nzDropdownMenu\">\n <ul nz-menu>\n @for (subBtn of btn.children; track $index) {\n @if (subBtn.type === 'divider') {\n <li nz-menu-divider></li>\n } @else {\n <li nz-menu-item [class.st__btn-disabled]=\"subBtn._disabled\">\n <ng-template\n [ngTemplateOutlet]=\"btnTpl\"\n [ngTemplateOutletContext]=\"{ $implicit: subBtn, child: true }\"\n />\n </li>\n }\n }\n </ul>\n </nz-dropdown-menu>\n } @else {\n <span [class.st__btn-disabled]=\"btn._disabled\">\n <ng-template [ngTemplateOutlet]=\"btnTpl\" [ngTemplateOutletContext]=\"{ $implicit: btn, child: false }\" />\n </span>\n }\n @if (!$last) {\n <nz-divider nzType=\"vertical\" />\n }\n }\n}\n" }]
1706
+ ], template: "<ng-template #btnTpl let-i let-child=\"child\">\n @if (i.tooltip) {\n <span nz-tooltip [nzTooltipTitle]=\"i.tooltip\" [class.d-block]=\"child\" [class.width-100]=\"child\">\n <ng-template [ngTemplateOutlet]=\"btnItemTpl\" [ngTemplateOutletContext]=\"{ $implicit: i }\" />\n </span>\n } @else {\n <ng-template [ngTemplateOutlet]=\"btnItemTpl\" [ngTemplateOutletContext]=\"{ $implicit: i }\" />\n }\n</ng-template>\n<ng-template #btnItemTpl let-i>\n @if (i.pop) {\n @let pop = i.pop;\n <a\n nz-popconfirm\n [nzPopconfirmTitle]=\"pop.title\"\n [nzIcon]=\"pop.icon\"\n [nzCondition]=\"pop.condition(i)\"\n [nzCancelText]=\"pop.cancelText\"\n [nzOkText]=\"pop.okText\"\n [nzOkType]=\"pop.okType\"\n (nzOnConfirm)=\"_btn(i)\"\n class=\"st__btn-text\"\n [class]=\"i._className\"\n (click)=\"_stopPropagation($event)\"\n >\n <ng-template [ngTemplateOutlet]=\"btnTextTpl\" [ngTemplateOutletContext]=\"{ $implicit: i }\" />\n </a>\n } @else {\n <a (click)=\"_btn(i, $event)\" class=\"st__btn-text\" [class]=\"i._className\">\n <ng-template [ngTemplateOutlet]=\"btnTextTpl\" [ngTemplateOutletContext]=\"{ $implicit: i }\" />\n </a>\n }\n</ng-template>\n<ng-template #btnTextTpl let-i>\n @if (i._icon) {\n @let icon = i._icon;\n @if (icon.iconfont) {\n <nz-icon [nzIconfont]=\"icon.iconfont\" />\n } @else {\n <nz-icon [nzType]=\"icon.type\" [nzTheme]=\"icon.theme\" [nzSpin]=\"icon.spin\" [nzTwotoneColor]=\"icon.twoToneColor\" />\n }\n }\n <span [innerHTML]=\"i._text\" [class.pl-xs]=\"i._icon\"></span>\n</ng-template>\n@if (c.__render) {\n <ng-template [ngTemplateOutlet]=\"c.__render!\" [ngTemplateOutletContext]=\"{ $implicit: i, index: index, column: c }\" />\n} @else {\n @let col = i._values[cIdx];\n @switch (c.type) {\n @case ('checkbox') {\n <label nz-checkbox [nzDisabled]=\"i.disabled\" [ngModel]=\"i.checked\" (ngModelChange)=\"_checkbox($event)\"></label>\n }\n @case ('radio') {\n <label nz-radio [nzDisabled]=\"i.disabled\" [ngModel]=\"i.checked\" (ngModelChange)=\"_radio()\"></label>\n }\n @case ('link') {\n <a (click)=\"_link($event)\" [innerHTML]=\"col._text\" [attr.title]=\"col.text\"></a>\n }\n @case ('tag') {\n <nz-tag [nzColor]=\"col.color\" [nz-tooltip]=\"col.tooltip\">\n <span [innerHTML]=\"col._text\"></span>\n </nz-tag>\n }\n @case ('badge') {\n <nz-badge [nzStatus]=\"col.color\" [nzText]=\"col.text\" [nz-tooltip]=\"col.tooltip\" />\n }\n @case ('cell') {\n <cell [value]=\"col.text\" [options]=\"col.cell ?? c.cell\" (click)=\"_client()\" />\n }\n @case ('widget') {\n <ng-template st-widget-host [record]=\"i\" [column]=\"c\" />\n }\n @default {\n @if (c.safeType === 'text') {\n <span [innerText]=\"col._text\" [attr.title]=\"c._isTruncate ? col.text : null\"></span>\n } @else {\n <span [innerHTML]=\"col._text\" [attr.title]=\"c._isTruncate ? col.text : null\"></span>\n }\n }\n }\n @for (btn of col.buttons; track $index) {\n @if (btn.children && btn.children.length > 0) {\n <a nz-dropdown [nzDropdownMenu]=\"btnMenu\" nzOverlayClassName=\"st__btn-sub\">\n <span [innerHTML]=\"btn._text\"></span>\n <nz-icon nzType=\"down\" />\n </a>\n <nz-dropdown-menu #btnMenu=\"nzDropdownMenu\">\n <ul nz-menu>\n @for (subBtn of btn.children; track $index) {\n @if (subBtn.type === 'divider') {\n <li nz-menu-divider></li>\n } @else {\n <li nz-menu-item [class.st__btn-disabled]=\"subBtn._disabled\">\n <ng-template\n [ngTemplateOutlet]=\"btnTpl\"\n [ngTemplateOutletContext]=\"{ $implicit: subBtn, child: true }\"\n />\n </li>\n }\n }\n </ul>\n </nz-dropdown-menu>\n } @else {\n <span [class.st__btn-disabled]=\"btn._disabled\">\n <ng-template [ngTemplateOutlet]=\"btnTpl\" [ngTemplateOutletContext]=\"{ $implicit: btn, child: false }\" />\n </span>\n }\n @if (!$last) {\n <nz-divider nzType=\"vertical\" />\n }\n }\n}\n" }]
1705
1707
  }], propDecorators: { c: [{
1706
1708
  type: Input
1707
1709
  }], cIdx: [{
@@ -1789,31 +1791,18 @@ class STComponent {
1789
1791
  bordered = false;
1790
1792
  size;
1791
1793
  scroll = { x: null, y: null };
1792
- drag = input(null, ...(ngDevMode ? [{ debugName: "drag", transform: v => {
1793
- const obj = typeof v === 'object' ? v : booleanAttribute(v) ? {} : null;
1794
- if (obj == null)
1795
- return null;
1796
- if (typeof obj.dropped !== 'function') {
1797
- obj.dropped = e => {
1798
- moveItemInArray(this._data, e.previousIndex, e.currentIndex);
1799
- this.cd();
1800
- };
1801
- }
1802
- return obj;
1803
- } }] : [{
1804
- transform: v => {
1805
- const obj = typeof v === 'object' ? v : booleanAttribute(v) ? {} : null;
1806
- if (obj == null)
1807
- return null;
1808
- if (typeof obj.dropped !== 'function') {
1809
- obj.dropped = e => {
1810
- moveItemInArray(this._data, e.previousIndex, e.currentIndex);
1811
- this.cd();
1812
- };
1813
- }
1814
- return obj;
1794
+ drag = input(null, { ...(ngDevMode ? { debugName: "drag" } : {}), transform: v => {
1795
+ const obj = typeof v === 'object' ? v : booleanAttribute(v) ? {} : null;
1796
+ if (obj == null)
1797
+ return null;
1798
+ if (typeof obj.dropped !== 'function') {
1799
+ obj.dropped = e => {
1800
+ moveItemInArray(this._data, e.previousIndex, e.currentIndex);
1801
+ this.cd();
1802
+ };
1815
1803
  }
1816
- }]));
1804
+ return obj;
1805
+ } });
1817
1806
  singleSort;
1818
1807
  _multiSort;
1819
1808
  get multiSort() {
@@ -1975,7 +1964,8 @@ class STComponent {
1975
1964
  multiSort,
1976
1965
  rowClassName,
1977
1966
  paginator: true,
1978
- customRequest: this.customRequest || this.cog.customRequest,
1967
+ customRequest: this.customRequest ?? this.cog.customRequest,
1968
+ locale: this.locale(),
1979
1969
  ...options
1980
1970
  })
1981
1971
  .pipe(takeUntilDestroyed(this.destroy$));
@@ -2001,12 +1991,13 @@ class STComponent {
2001
1991
  }
2002
1992
  this._data = result.list ?? [];
2003
1993
  this._statistical = result.statistical;
1994
+ this._restoreCheck();
1995
+ this._refCheck();
2004
1996
  // Should be re-render in next tike when using virtual scroll
2005
1997
  // https://github.com/ng-alain/ng-alain/issues/1836
2006
1998
  if (this.cdkVirtualScrollViewport != null) {
2007
1999
  Promise.resolve().then(() => this.cdkVirtualScrollViewport?.checkViewportSize());
2008
2000
  }
2009
- this._refCheck();
2010
2001
  this.changeEmit('loaded', result.list);
2011
2002
  return this;
2012
2003
  }));
@@ -2017,6 +2008,7 @@ class STComponent {
2017
2008
  this.clearStatus();
2018
2009
  }
2019
2010
  this._data = [];
2011
+ this.checkList = [];
2020
2012
  return this.cd();
2021
2013
  }
2022
2014
  /** 清空所有状态 */
@@ -2260,7 +2252,7 @@ class STComponent {
2260
2252
  // 过滤表示一种数据的变化应重置页码为 `1`
2261
2253
  this.pi = 1;
2262
2254
  this.columnSource.updateDefault(col.filter);
2263
- this.loadPageData().subscribe(() => this.changeEmit('filter', col));
2255
+ this.loadPageData().subscribe(() => this.changeEmit('filter', confirm ? col : null));
2264
2256
  }
2265
2257
  handleFilterNotify(value) {
2266
2258
  this.changeEmit('filterChange', value);
@@ -2271,8 +2263,10 @@ class STComponent {
2271
2263
  }
2272
2264
  // #endregion
2273
2265
  // #region checkbox
2266
+ checkList = [];
2274
2267
  /** 清除所有 `checkbox` */
2275
2268
  clearCheck() {
2269
+ this.checkList = [];
2276
2270
  return this.checkAll(false);
2277
2271
  }
2278
2272
  _refCheck() {
@@ -2295,9 +2289,23 @@ class STComponent {
2295
2289
  }
2296
2290
  _checkNotify() {
2297
2291
  const res = this._data.filter(w => !w.disabled && w.checked === true);
2298
- this.changeEmit('checkbox', res);
2292
+ const idMap = this.page.checkboxIdMap;
2293
+ if (idMap != null) {
2294
+ const rowIds = this.list.map(w => w[idMap]);
2295
+ this.checkList = this.checkList.filter(w => rowIds.indexOf(w[idMap]) === -1).concat(res);
2296
+ }
2297
+ else {
2298
+ this.checkList = res;
2299
+ }
2300
+ this.changeEmit('checkbox', this.checkList);
2299
2301
  return this;
2300
2302
  }
2303
+ _restoreCheck() {
2304
+ const idMap = this.page.checkboxIdMap;
2305
+ if (idMap == null)
2306
+ return;
2307
+ this.list.forEach(u => (u.checked = this.checkList.some(w => w[idMap] === u[idMap])));
2308
+ }
2301
2309
  // #endregion
2302
2310
  // #region radio
2303
2311
  /** 清除所有 `radio` */
@@ -2327,7 +2335,7 @@ class STComponent {
2327
2335
  */
2328
2336
  export(newData, opt) {
2329
2337
  const data = Array.isArray(newData)
2330
- ? this.dataSource.optimizeData({ columns: this._columns, result: newData })
2338
+ ? this.dataSource.optimizeData({ columns: this._columns, result: newData, locale: this.locale() })
2331
2339
  : this._data;
2332
2340
  (newData === true ? this.filteredData : of(data)).subscribe((res) => this.exportSrv.export({
2333
2341
  columens: this._columns,
@@ -2429,7 +2437,8 @@ class STComponent {
2429
2437
  this._data = this.dataSource.optimizeData({
2430
2438
  columns: this._columns,
2431
2439
  result: this._data,
2432
- rowClassName: this.rowClassName
2440
+ rowClassName: this.rowClassName,
2441
+ locale: this.locale()
2433
2442
  });
2434
2443
  return this;
2435
2444
  }
@@ -2469,10 +2478,10 @@ class STComponent {
2469
2478
  this.loadPageData().subscribe();
2470
2479
  }
2471
2480
  }
2472
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: STComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2473
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.0", type: STComponent, isStandalone: true, selector: "st", inputs: { req: { classPropertyName: "req", publicName: "req", isSignal: false, isRequired: false, transformFunction: null }, res: { classPropertyName: "res", publicName: "res", isSignal: false, isRequired: false, transformFunction: null }, page: { classPropertyName: "page", publicName: "page", isSignal: false, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: false, isRequired: false, transformFunction: null }, delay: { classPropertyName: "delay", publicName: "delay", isSignal: false, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: false, isRequired: false, transformFunction: null }, contextmenu: { classPropertyName: "contextmenu", publicName: "contextmenu", isSignal: false, isRequired: false, transformFunction: null }, ps: { classPropertyName: "ps", publicName: "ps", isSignal: false, isRequired: false, transformFunction: (v) => numberAttribute(v, 10) }, pi: { classPropertyName: "pi", publicName: "pi", isSignal: false, isRequired: false, transformFunction: (v) => numberAttribute(v, 1) }, total: { classPropertyName: "total", publicName: "total", isSignal: false, isRequired: false, transformFunction: (v) => numberAttribute(v, 0) }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: false, isRequired: false, transformFunction: null }, loadingDelay: { classPropertyName: "loadingDelay", publicName: "loadingDelay", isSignal: false, isRequired: false, transformFunction: numberAttribute }, loadingIndicator: { classPropertyName: "loadingIndicator", publicName: "loadingIndicator", isSignal: false, isRequired: false, transformFunction: null }, bordered: { classPropertyName: "bordered", publicName: "bordered", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, size: { classPropertyName: "size", publicName: "size", isSignal: false, isRequired: false, transformFunction: null }, scroll: { classPropertyName: "scroll", publicName: "scroll", isSignal: false, isRequired: false, transformFunction: null }, drag: { classPropertyName: "drag", publicName: "drag", isSignal: true, isRequired: false, transformFunction: null }, singleSort: { classPropertyName: "singleSort", publicName: "singleSort", isSignal: false, isRequired: false, transformFunction: null }, multiSort: { classPropertyName: "multiSort", publicName: "multiSort", isSignal: false, isRequired: false, transformFunction: null }, rowClassName: { classPropertyName: "rowClassName", publicName: "rowClassName", isSignal: false, isRequired: false, transformFunction: null }, clickRowClassName: { classPropertyName: "clickRowClassName", publicName: "clickRowClassName", isSignal: false, isRequired: false, transformFunction: null }, widthMode: { classPropertyName: "widthMode", publicName: "widthMode", isSignal: false, isRequired: false, transformFunction: null }, widthConfig: { classPropertyName: "widthConfig", publicName: "widthConfig", isSignal: false, isRequired: false, transformFunction: null }, resizable: { classPropertyName: "resizable", publicName: "resizable", isSignal: false, isRequired: false, transformFunction: null }, header: { classPropertyName: "header", publicName: "header", isSignal: false, isRequired: false, transformFunction: null }, showHeader: { classPropertyName: "showHeader", publicName: "showHeader", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, footer: { classPropertyName: "footer", publicName: "footer", isSignal: false, isRequired: false, transformFunction: null }, bodyHeader: { classPropertyName: "bodyHeader", publicName: "bodyHeader", isSignal: false, isRequired: false, transformFunction: null }, body: { classPropertyName: "body", publicName: "body", isSignal: false, isRequired: false, transformFunction: null }, expandRowByClick: { classPropertyName: "expandRowByClick", publicName: "expandRowByClick", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, expandAccordion: { classPropertyName: "expandAccordion", publicName: "expandAccordion", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, expand: { classPropertyName: "expand", publicName: "expand", isSignal: false, isRequired: false, transformFunction: null }, expandIcon: { classPropertyName: "expandIcon", publicName: "expandIcon", isSignal: false, isRequired: false, transformFunction: null }, noResult: { classPropertyName: "noResult", publicName: "noResult", isSignal: false, isRequired: false, transformFunction: null }, responsive: { classPropertyName: "responsive", publicName: "responsive", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, responsiveHideHeaderFooter: { classPropertyName: "responsiveHideHeaderFooter", publicName: "responsiveHideHeaderFooter", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "virtualScroll", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, virtualItemSize: { classPropertyName: "virtualItemSize", publicName: "virtualItemSize", isSignal: false, isRequired: false, transformFunction: numberAttribute }, virtualMaxBufferPx: { classPropertyName: "virtualMaxBufferPx", publicName: "virtualMaxBufferPx", isSignal: false, isRequired: false, transformFunction: numberAttribute }, virtualMinBufferPx: { classPropertyName: "virtualMinBufferPx", publicName: "virtualMinBufferPx", isSignal: false, isRequired: false, transformFunction: numberAttribute }, customRequest: { classPropertyName: "customRequest", publicName: "customRequest", isSignal: false, isRequired: false, transformFunction: null }, virtualForTrackBy: { classPropertyName: "virtualForTrackBy", publicName: "virtualForTrackBy", isSignal: false, isRequired: false, transformFunction: null }, trackBy: { classPropertyName: "trackBy", publicName: "trackBy", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { error: "error", change: "change" }, host: { properties: { "class.st": "true", "class.st__p-left": "page.placement === 'left'", "class.st__p-center": "page.placement === 'center'", "class.st__width-strict": "widthMode.type === 'strict'", "class.st__row-class": "rowClassName", "class.ant-table-rep": "responsive", "class.ant-table-rep__hide-header-footer": "responsiveHideHeaderFooter" } }, providers: [STDataSource, STRowSource, STColumnSource, STExport, DatePipe, YNPipe, DecimalPipe], viewQueries: [{ propertyName: "orgTable", first: true, predicate: ["table"], descendants: true }, { propertyName: "contextmenuTpl", first: true, predicate: ["contextmenuTpl"], descendants: true }], exportAs: ["st"], usesOnChanges: true, ngImport: i0, template: "<ng-template #titleTpl let-i>\n <span [innerHTML]=\"i._text\"></span>\n @if (i.optional) {\n <small class=\"st__head-optional\" [innerHTML]=\"i.optional\"></small>\n }\n @if (i.optionalHelp) {\n <nz-icon class=\"st__head-tip\" nz-tooltip [nzTooltipTitle]=\"i.optionalHelp\" nzType=\"question-circle\" />\n }\n</ng-template>\n<ng-template #chkAllTpl let-custom>\n <label\n nz-checkbox\n class=\"st__checkall\"\n [nzDisabled]=\"_allCheckedDisabled\"\n [(ngModel)]=\"_allChecked\"\n [nzIndeterminate]=\"_indeterminate\"\n (ngModelChange)=\"checkAll()\"\n [class.ant-table-selection-select-all-custom]=\"custom\"\n ></label>\n</ng-template>\n<nz-table\n #table\n [nzData]=\"_data\"\n [(nzPageIndex)]=\"pi\"\n (nzPageIndexChange)=\"_change('pi')\"\n [(nzPageSize)]=\"ps\"\n (nzPageSizeChange)=\"_change('ps')\"\n [nzTotal]=\"total\"\n [nzShowPagination]=\"_isPagination\"\n [nzFrontPagination]=\"false\"\n [nzBordered]=\"bordered\"\n [nzSize]=\"size\"\n [nzLoading]=\"noColumns || _loading\"\n [nzLoadingDelay]=\"loadingDelay\"\n [nzLoadingIndicator]=\"loadingIndicator\"\n [nzTitle]=\"header!\"\n [nzFooter]=\"footer!\"\n [nzScroll]=\"scroll\"\n [nzVirtualItemSize]=\"virtualItemSize\"\n [nzVirtualMaxBufferPx]=\"virtualMaxBufferPx\"\n [nzVirtualMinBufferPx]=\"virtualMinBufferPx\"\n [nzVirtualForTrackBy]=\"virtualForTrackBy\"\n [nzNoResult]=\"noResult!\"\n [nzPageSizeOptions]=\"page.pageSizes!\"\n [nzShowQuickJumper]=\"page.showQuickJumper\"\n [nzShowSizeChanger]=\"page.showSize\"\n [nzPaginationPosition]=\"page.position!\"\n [nzPaginationType]=\"page.type!\"\n [nzItemRender]=\"page.itemRender!\"\n [nzSimple]=\"page.simple\"\n [nzShowTotal]=\"totalTpl\"\n [nzWidthConfig]=\"_widthConfig\"\n (contextmenu)=\"onContextmenu($event)\"\n [class.st__no-column]=\"noColumns\"\n>\n @if (showHeader) {\n <thead>\n @for (row of _headers; track row) {\n <tr>\n @if ($first && expand) {\n <th nzWidth=\"50px\" [rowSpan]=\"_headers.length\" [nzLeft]=\"row[0].column._left ? true : false\"></th>\n }\n @for (h of row; track h; let index = $index; let last = $last) {\n @let _c = h.column;\n <th\n [colSpan]=\"h.colSpan\"\n [rowSpan]=\"h.rowSpan\"\n [nzWidth]=\"$any(_c).width\"\n [nzLeft]=\"_c._left\"\n [nzRight]=\"_c._right\"\n [class]=\"_c._className\"\n [attr.data-col]=\"_c.indexKey\"\n [attr.data-col-index]=\"index\"\n [nzShowSort]=\"_c._sort.enabled\"\n [nzSortDirections]=\"_c._sort.directions!\"\n [nzSortOrder]=\"$any(_c)._sort.default\"\n (nzSortOrderChange)=\"sort(_c, $event)\"\n [nzCustomFilter]=\"!!_c.filter\"\n [class.st__has-filter]=\"_c.filter\"\n nz-resizable\n [nzDisabled]=\"last || $any(_c).resizable.disabled\"\n [nzMaxWidth]=\"$any(_c).resizable.maxWidth\"\n [nzMinWidth]=\"$any(_c).resizable.minWidth\"\n [nzBounds]=\"$any(_c).resizable.bounds\"\n [nzPreview]=\"$any(_c).resizable.preview\"\n (nzResizeEnd)=\"colResize($event, _c)\"\n >\n @if ($any(!last && !$any(_c).resizable.disabled)) {\n <nz-resize-handle nzDirection=\"right\" (click)=\"_stopPropagation($event)\">\n <i></i>\n </nz-resize-handle>\n }\n @if (_c.__renderTitle) {\n <ng-template\n [ngTemplateOutlet]=\"_c.__renderTitle!\"\n [ngTemplateOutletContext]=\"{ $implicit: h.column, index: index }\"\n />\n } @else {\n @switch (_c.type) {\n @case ('checkbox') {\n @if (_c.selections!.length === 0) {\n <ng-template [ngTemplateOutlet]=\"chkAllTpl\" [ngTemplateOutletContext]=\"{ $implicit: false }\" />\n } @else {\n <div class=\"ant-table-selection\">\n <ng-template [ngTemplateOutlet]=\"chkAllTpl\" [ngTemplateOutletContext]=\"{ $implicit: true }\" />\n @if (_c.selections!.length) {\n <div class=\"ant-table-selection-extra\">\n <div\n nz-dropdown\n nzPlacement=\"bottomLeft\"\n [nzDropdownMenu]=\"selectionMenu\"\n class=\"ant-table-selection-down st__checkall-selection\"\n >\n <nz-icon nzType=\"down\" />\n </div>\n </div>\n }\n <nz-dropdown-menu #selectionMenu=\"nzDropdownMenu\">\n <ul nz-menu class=\"ant-table-selection-menu\">\n @for (rw of _c.selections; track $index) {\n <li nz-menu-item (click)=\"_rowSelection(rw)\" [innerHTML]=\"rw.text\"></li>\n }\n </ul>\n </nz-dropdown-menu>\n </div>\n }\n }\n @default {\n <ng-template [ngTemplateOutlet]=\"titleTpl\" [ngTemplateOutletContext]=\"{ $implicit: _c.title }\" />\n }\n }\n }\n @if (_c.filter) {\n <ng-container *ngTemplateOutlet=\"filterTpl\"></ng-container>\n }\n <ng-template #filterTpl>\n <st-filter\n nz-th-extra\n [col]=\"h.column\"\n [f]=\"_c.filter!\"\n [locale]=\"locale()\"\n (n)=\"handleFilterNotify($event)\"\n (handle)=\"_handleFilter(_c, $event)\"\n />\n </ng-template>\n </th>\n }\n </tr>\n }\n </thead>\n }\n <tbody\n class=\"st__body\"\n cdkDropList\n [cdkDropListDisabled]=\"drag() === null\"\n (cdkDropListDropped)=\"drag()?.dropped?.($event)\"\n (cdkDropListEntered)=\"drag()?.entered?.($event)\"\n (cdkDropListExited)=\"drag()?.exited?.($event)\"\n (cdkDropListSorted)=\"drag()?.sorted?.($event)\"\n >\n @if (!_loading) {\n <ng-template [ngTemplateOutlet]=\"bodyHeader!\" [ngTemplateOutletContext]=\"{ $implicit: _statistical }\" />\n }\n <ng-template #bodyTpl let-i let-index=\"index\">\n <tr\n [attr.data-index]=\"index\"\n (click)=\"_rowClick($event, i, index, false)\"\n (dblclick)=\"_rowClick($event, i, index, true)\"\n [class]=\"i._rowClassName\"\n cdkDrag\n >\n @if (expand) {\n <td\n [nzShowExpand]=\"expand && i.showExpand !== false\"\n [nzExpand]=\"i.expand\"\n [nzExpandIcon]=\"expandIcon ? wrapExpandIcon : null\"\n (nzExpandChange)=\"_expandChange(i, $event)\"\n (click)=\"_stopPropagation($event)\"\n nzWidth=\"50px\"\n [nzLeft]=\"_columns[0]._left ? true : false\"\n ></td>\n <ng-template #wrapExpandIcon>\n <span (click)=\"_expandChange(i, !i.expand)\">\n <ng-template [ngTemplateOutlet]=\"expandIcon\" [ngTemplateOutletContext]=\"{ $implicit: i, index: index }\" />\n </span>\n </ng-template>\n }\n @for (c of _columns; track cIdx; let cIdx = $index) {\n @let props = i._values[cIdx].props;\n @if (props?.colSpan > 0 && props?.rowSpan > 0) {\n <td\n [nzLeft]=\"c._left\"\n [nzRight]=\"c._right\"\n [attr.data-col-index]=\"cIdx\"\n [class]=\"c._className\"\n [attr.colspan]=\"props?.colSpan === 1 ? null : props?.colSpan\"\n [attr.rowspan]=\"props?.rowSpan === 1 ? null : props?.rowSpan\"\n >\n @if (responsive) {\n <span class=\"ant-table-rep__title\">\n <ng-template [ngTemplateOutlet]=\"titleTpl\" [ngTemplateOutletContext]=\"{ $implicit: c.title }\" />\n </span>\n }\n <st-td [data]=\"_data\" [i]=\"i\" [index]=\"index\" [c]=\"c\" [cIdx]=\"cIdx\" (n)=\"_handleTd($event)\" />\n </td>\n }\n }\n </tr>\n <tr [nzExpand]=\"i.expand\">\n <ng-template [ngTemplateOutlet]=\"expand\" [ngTemplateOutletContext]=\"{ $implicit: i, index: index }\" />\n </tr>\n </ng-template>\n @if (virtualScroll) {\n <ng-template nz-virtual-scroll let-i let-index=\"index\">\n <ng-template [ngTemplateOutlet]=\"bodyTpl\" [ngTemplateOutletContext]=\"{ $implicit: i, index: index }\" />\n </ng-template>\n } @else {\n @for (i of _data; track trackBy($index, i)) {\n <ng-template [ngTemplateOutlet]=\"bodyTpl\" [ngTemplateOutletContext]=\"{ $implicit: i, index: $index }\" />\n }\n }\n @if (!_loading) {\n <ng-template [ngTemplateOutlet]=\"body!\" [ngTemplateOutletContext]=\"{ $implicit: _statistical }\" />\n }\n </tbody>\n <ng-template #totalTpl let-range=\"range\" let-total>{{ renderTotal(total, range) }}</ng-template>\n</nz-table>\n<nz-dropdown-menu #contextmenuTpl=\"nzDropdownMenu\">\n <ul nz-menu class=\"st__contextmenu\">\n @for (i of contextmenuList; track $index) {\n @if (i.children!.length === 0) {\n <li nz-menu-item (click)=\"i.fn!(i)\" [innerHTML]=\"i.text\"></li>\n } @else {\n <li nz-submenu [nzTitle]=\"i.text\">\n <ul>\n @for (ci of i.children; track $index) {\n <li nz-menu-item (click)=\"ci.fn!(ci)\" [innerHTML]=\"ci.text\"></li>\n }\n </ul>\n </li>\n }\n }\n </ul>\n</nz-dropdown-menu>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NzTableModule }, { kind: "component", type: i4$1.NzTableComponent, selector: "nz-table", inputs: ["nzTableLayout", "nzShowTotal", "nzItemRender", "nzTitle", "nzFooter", "nzNoResult", "nzPageSizeOptions", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualForTrackBy", "nzLoadingDelay", "nzPageIndex", "nzPageSize", "nzTotal", "nzWidthConfig", "nzData", "nzCustomColumn", "nzPaginationPosition", "nzScroll", "noDataVirtualHeight", "nzPaginationType", "nzFrontPagination", "nzTemplateMode", "nzShowPagination", "nzLoading", "nzOuterBordered", "nzLoadingIndicator", "nzBordered", "nzSize", "nzShowSizeChanger", "nzHideOnSinglePage", "nzShowQuickJumper", "nzSimple"], outputs: ["nzPageSizeChange", "nzPageIndexChange", "nzQueryParams", "nzCurrentPageDataChange", "nzCustomColumnChange"], exportAs: ["nzTable"] }, { kind: "component", type: i4$1.NzThAddOnComponent, selector: "th[nzColumnKey], th[nzSortFn], th[nzSortOrder], th[nzFilters], th[nzShowSort], th[nzShowFilter], th[nzCustomFilter]", inputs: ["nzColumnKey", "nzFilterMultiple", "nzSortOrder", "nzSortPriority", "nzSortDirections", "nzFilters", "nzSortFn", "nzFilterFn", "nzShowSort", "nzShowFilter", "nzCustomFilter"], outputs: ["nzCheckedChange", "nzSortOrderChange", "nzFilterChange"] }, { kind: "directive", type: i4$1.NzTableCellDirective, selector: "th:not(.nz-disable-th), td:not(.nz-disable-td)" }, { kind: "directive", type: i4$1.NzThMeasureDirective, selector: "th", inputs: ["nzWidth", "colspan", "colSpan", "rowspan", "rowSpan"] }, { kind: "component", type: i4$1.NzTdAddOnComponent, selector: "td[nzChecked], td[nzDisabled], td[nzIndeterminate], td[nzIndentSize], td[nzExpand], td[nzShowExpand], td[nzShowCheckbox]", inputs: ["nzChecked", "nzDisabled", "nzIndeterminate", "nzLabel", "nzIndentSize", "nzShowExpand", "nzShowCheckbox", "nzExpand", "nzExpandIcon"], outputs: ["nzCheckedChange", "nzExpandChange"] }, { kind: "component", type: i4$1.NzTheadComponent, selector: "thead:not(.ant-table-thead)", outputs: ["nzSortOrderChange"] }, { kind: "component", type: i4$1.NzTbodyComponent, selector: "tbody" }, { kind: "directive", type: i4$1.NzTrDirective, selector: "tr:not([nz-table-measure-row]):not([nzExpand]):not([nz-table-fixed-row])" }, { kind: "directive", type: i4$1.NzTableVirtualScrollDirective, selector: "[nz-virtual-scroll]", exportAs: ["nzVirtualScroll"] }, { kind: "directive", type: i4$1.NzCellFixedDirective, selector: "td[nzRight],th[nzRight],td[nzLeft],th[nzLeft]", inputs: ["nzRight", "nzLeft", "colspan", "colSpan"] }, { kind: "directive", type: i4$1.NzTrExpandDirective, selector: "tr[nzExpand]", inputs: ["nzExpand"] }, { kind: "component", type: i4$1.NzTableFixedRowComponent, selector: "tr[nz-table-fixed-row], tr[nzExpand]" }, { kind: "directive", type: NzTooltipDirective, selector: "[nz-tooltip]", inputs: ["nzTooltipTitle", "nzTooltipTitleContext", "nz-tooltip", "nzTooltipTrigger", "nzTooltipPlacement", "nzTooltipOrigin", "nzTooltipVisible", "nzTooltipMouseEnterDelay", "nzTooltipMouseLeaveDelay", "nzTooltipOverlayClassName", "nzTooltipOverlayStyle", "nzTooltipArrowPointAtCenter", "cdkConnectedOverlayPush", "nzTooltipColor"], outputs: ["nzTooltipVisibleChange"], exportAs: ["nzTooltip"] }, { kind: "component", type: NzCheckboxComponent, selector: "[nz-checkbox]", inputs: ["nzValue", "nzAutoFocus", "nzDisabled", "nzIndeterminate", "nzChecked", "nzId", "nzName"], outputs: ["nzCheckedChange"], exportAs: ["nzCheckbox"] }, { kind: "ngmodule", type: NzResizableModule }, { kind: "directive", type: i5.NzResizableDirective, selector: "[nz-resizable]", inputs: ["nzBounds", "nzMaxHeight", "nzMaxWidth", "nzMinHeight", "nzMinWidth", "nzGridColumnCount", "nzMaxColumn", "nzMinColumn", "nzLockAspectRatio", "nzPreview", "nzDisabled"], outputs: ["nzResize", "nzResizeEnd", "nzResizeStart"], exportAs: ["nzResizable"] }, { kind: "component", type: i5.NzResizeHandleComponent, selector: "nz-resize-handle, [nz-resize-handle]", inputs: ["nzDirection", "nzCursorType"], outputs: ["nzMouseDown"], exportAs: ["nzResizeHandle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: NzDropDownModule }, { kind: "directive", type: i2$1.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i2$1.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "component", type: i2$1.NzSubMenuComponent, selector: "[nz-submenu]", inputs: ["nzMenuClassName", "nzPaddingLeft", "nzTitle", "nzIcon", "nzTriggerSubMenuAction", "nzOpen", "nzDisabled", "nzPlacement"], outputs: ["nzOpenChange"], exportAs: ["nzSubmenu"] }, { kind: "directive", type: i3$1.NzDropDownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzArrow", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { kind: "component", type: i3$1.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "directive", type: NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzMenuModule }, { kind: "component", type: STFilterComponent, selector: "st-filter", inputs: ["col", "locale", "f"], outputs: ["n", "handle"] }, { kind: "component", type: STTdComponent, selector: "st-td", inputs: ["c", "cIdx", "data", "i", "index"], outputs: ["n"] }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2481
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: STComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2482
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: STComponent, isStandalone: true, selector: "st", inputs: { req: { classPropertyName: "req", publicName: "req", isSignal: false, isRequired: false, transformFunction: null }, res: { classPropertyName: "res", publicName: "res", isSignal: false, isRequired: false, transformFunction: null }, page: { classPropertyName: "page", publicName: "page", isSignal: false, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: false, isRequired: false, transformFunction: null }, delay: { classPropertyName: "delay", publicName: "delay", isSignal: false, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: false, isRequired: false, transformFunction: null }, contextmenu: { classPropertyName: "contextmenu", publicName: "contextmenu", isSignal: false, isRequired: false, transformFunction: null }, ps: { classPropertyName: "ps", publicName: "ps", isSignal: false, isRequired: false, transformFunction: (v) => numberAttribute(v, 10) }, pi: { classPropertyName: "pi", publicName: "pi", isSignal: false, isRequired: false, transformFunction: (v) => numberAttribute(v, 1) }, total: { classPropertyName: "total", publicName: "total", isSignal: false, isRequired: false, transformFunction: (v) => numberAttribute(v, 0) }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: false, isRequired: false, transformFunction: null }, loadingDelay: { classPropertyName: "loadingDelay", publicName: "loadingDelay", isSignal: false, isRequired: false, transformFunction: numberAttribute }, loadingIndicator: { classPropertyName: "loadingIndicator", publicName: "loadingIndicator", isSignal: false, isRequired: false, transformFunction: null }, bordered: { classPropertyName: "bordered", publicName: "bordered", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, size: { classPropertyName: "size", publicName: "size", isSignal: false, isRequired: false, transformFunction: null }, scroll: { classPropertyName: "scroll", publicName: "scroll", isSignal: false, isRequired: false, transformFunction: null }, drag: { classPropertyName: "drag", publicName: "drag", isSignal: true, isRequired: false, transformFunction: null }, singleSort: { classPropertyName: "singleSort", publicName: "singleSort", isSignal: false, isRequired: false, transformFunction: null }, multiSort: { classPropertyName: "multiSort", publicName: "multiSort", isSignal: false, isRequired: false, transformFunction: null }, rowClassName: { classPropertyName: "rowClassName", publicName: "rowClassName", isSignal: false, isRequired: false, transformFunction: null }, clickRowClassName: { classPropertyName: "clickRowClassName", publicName: "clickRowClassName", isSignal: false, isRequired: false, transformFunction: null }, widthMode: { classPropertyName: "widthMode", publicName: "widthMode", isSignal: false, isRequired: false, transformFunction: null }, widthConfig: { classPropertyName: "widthConfig", publicName: "widthConfig", isSignal: false, isRequired: false, transformFunction: null }, resizable: { classPropertyName: "resizable", publicName: "resizable", isSignal: false, isRequired: false, transformFunction: null }, header: { classPropertyName: "header", publicName: "header", isSignal: false, isRequired: false, transformFunction: null }, showHeader: { classPropertyName: "showHeader", publicName: "showHeader", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, footer: { classPropertyName: "footer", publicName: "footer", isSignal: false, isRequired: false, transformFunction: null }, bodyHeader: { classPropertyName: "bodyHeader", publicName: "bodyHeader", isSignal: false, isRequired: false, transformFunction: null }, body: { classPropertyName: "body", publicName: "body", isSignal: false, isRequired: false, transformFunction: null }, expandRowByClick: { classPropertyName: "expandRowByClick", publicName: "expandRowByClick", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, expandAccordion: { classPropertyName: "expandAccordion", publicName: "expandAccordion", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, expand: { classPropertyName: "expand", publicName: "expand", isSignal: false, isRequired: false, transformFunction: null }, expandIcon: { classPropertyName: "expandIcon", publicName: "expandIcon", isSignal: false, isRequired: false, transformFunction: null }, noResult: { classPropertyName: "noResult", publicName: "noResult", isSignal: false, isRequired: false, transformFunction: null }, responsive: { classPropertyName: "responsive", publicName: "responsive", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, responsiveHideHeaderFooter: { classPropertyName: "responsiveHideHeaderFooter", publicName: "responsiveHideHeaderFooter", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "virtualScroll", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, virtualItemSize: { classPropertyName: "virtualItemSize", publicName: "virtualItemSize", isSignal: false, isRequired: false, transformFunction: numberAttribute }, virtualMaxBufferPx: { classPropertyName: "virtualMaxBufferPx", publicName: "virtualMaxBufferPx", isSignal: false, isRequired: false, transformFunction: numberAttribute }, virtualMinBufferPx: { classPropertyName: "virtualMinBufferPx", publicName: "virtualMinBufferPx", isSignal: false, isRequired: false, transformFunction: numberAttribute }, customRequest: { classPropertyName: "customRequest", publicName: "customRequest", isSignal: false, isRequired: false, transformFunction: null }, virtualForTrackBy: { classPropertyName: "virtualForTrackBy", publicName: "virtualForTrackBy", isSignal: false, isRequired: false, transformFunction: null }, trackBy: { classPropertyName: "trackBy", publicName: "trackBy", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { error: "error", change: "change" }, host: { properties: { "class.st": "true", "class.st__p-left": "page.placement === 'left'", "class.st__p-center": "page.placement === 'center'", "class.st__width-strict": "widthMode.type === 'strict'", "class.st__row-class": "rowClassName", "class.ant-table-rep": "responsive", "class.ant-table-rep__hide-header-footer": "responsiveHideHeaderFooter" } }, providers: [STDataSource, STRowSource, STColumnSource, STExport, DatePipe, YNPipe, DecimalPipe], viewQueries: [{ propertyName: "orgTable", first: true, predicate: ["table"], descendants: true }, { propertyName: "contextmenuTpl", first: true, predicate: ["contextmenuTpl"], descendants: true }], exportAs: ["st"], usesOnChanges: true, ngImport: i0, template: "<ng-template #titleTpl let-i>\n <span [innerHTML]=\"i._text\"></span>\n @if (i.optional) {\n <small class=\"st__head-optional\" [innerHTML]=\"i.optional\"></small>\n }\n @if (i.optionalHelp) {\n <nz-icon class=\"st__head-tip\" nz-tooltip [nzTooltipTitle]=\"i.optionalHelp\" nzType=\"question-circle\" />\n }\n</ng-template>\n<ng-template #chkAllTpl let-custom>\n <label\n nz-checkbox\n class=\"st__checkall\"\n [nzDisabled]=\"_allCheckedDisabled\"\n [(ngModel)]=\"_allChecked\"\n [nzIndeterminate]=\"_indeterminate\"\n (ngModelChange)=\"checkAll()\"\n [class.ant-table-selection-select-all-custom]=\"custom\"\n ></label>\n</ng-template>\n<nz-table\n #table\n [nzData]=\"_data\"\n [(nzPageIndex)]=\"pi\"\n (nzPageIndexChange)=\"_change('pi')\"\n [(nzPageSize)]=\"ps\"\n (nzPageSizeChange)=\"_change('ps')\"\n [nzTotal]=\"total\"\n [nzShowPagination]=\"_isPagination\"\n [nzFrontPagination]=\"false\"\n [nzBordered]=\"bordered\"\n [nzSize]=\"size\"\n [nzLoading]=\"noColumns || _loading\"\n [nzLoadingDelay]=\"loadingDelay\"\n [nzLoadingIndicator]=\"loadingIndicator\"\n [nzTitle]=\"header!\"\n [nzFooter]=\"footer!\"\n [nzScroll]=\"scroll\"\n [nzVirtualItemSize]=\"virtualItemSize\"\n [nzVirtualMaxBufferPx]=\"virtualMaxBufferPx\"\n [nzVirtualMinBufferPx]=\"virtualMinBufferPx\"\n [nzVirtualForTrackBy]=\"virtualForTrackBy\"\n [nzNoResult]=\"noResult!\"\n [nzPageSizeOptions]=\"page.pageSizes!\"\n [nzShowQuickJumper]=\"page.showQuickJumper\"\n [nzShowSizeChanger]=\"page.showSize\"\n [nzPaginationPosition]=\"page.position!\"\n [nzPaginationType]=\"page.type!\"\n [nzItemRender]=\"page.itemRender!\"\n [nzSimple]=\"page.simple\"\n [nzShowTotal]=\"totalTpl\"\n [nzWidthConfig]=\"_widthConfig\"\n (contextmenu)=\"onContextmenu($event)\"\n [class.st__no-column]=\"noColumns\"\n>\n @if (showHeader) {\n <thead>\n @for (row of _headers; track row) {\n <tr>\n @if ($first && expand) {\n <th nzWidth=\"50px\" [rowSpan]=\"_headers.length\" [nzLeft]=\"row[0].column._left ? true : false\"></th>\n }\n @for (h of row; track h; let index = $index; let last = $last) {\n @let _c = h.column;\n <th\n [colSpan]=\"h.colSpan\"\n [rowSpan]=\"h.rowSpan\"\n [nzWidth]=\"$any(_c).width\"\n [nzLeft]=\"_c._left\"\n [nzRight]=\"_c._right\"\n [class]=\"_c._className\"\n [attr.data-col]=\"_c.indexKey\"\n [attr.data-col-index]=\"index\"\n [nzShowSort]=\"_c._sort.enabled\"\n [nzSortDirections]=\"_c._sort.directions!\"\n [nzSortOrder]=\"$any(_c)._sort.default\"\n (nzSortOrderChange)=\"sort(_c, $event)\"\n [nzCustomFilter]=\"!!_c.filter\"\n [class.st__has-filter]=\"_c.filter\"\n nz-resizable\n [nzDisabled]=\"last || $any(_c).resizable.disabled\"\n [nzMaxWidth]=\"$any(_c).resizable.maxWidth\"\n [nzMinWidth]=\"$any(_c).resizable.minWidth\"\n [nzBounds]=\"$any(_c).resizable.bounds\"\n [nzPreview]=\"$any(_c).resizable.preview\"\n (nzResizeEnd)=\"colResize($event, _c)\"\n >\n @if ($any(!last && !$any(_c).resizable.disabled)) {\n <nz-resize-handle nzDirection=\"right\" (click)=\"_stopPropagation($event)\">\n <i></i>\n </nz-resize-handle>\n }\n @if (_c.__renderTitle) {\n <ng-template\n [ngTemplateOutlet]=\"_c.__renderTitle!\"\n [ngTemplateOutletContext]=\"{ $implicit: h.column, index: index }\"\n />\n } @else {\n @switch (_c.type) {\n @case ('checkbox') {\n @if (_c.selections!.length === 0) {\n <ng-template [ngTemplateOutlet]=\"chkAllTpl\" [ngTemplateOutletContext]=\"{ $implicit: false }\" />\n } @else {\n <div class=\"ant-table-selection\">\n <ng-template [ngTemplateOutlet]=\"chkAllTpl\" [ngTemplateOutletContext]=\"{ $implicit: true }\" />\n @if (_c.selections!.length) {\n <div class=\"ant-table-selection-extra\">\n <div\n nz-dropdown\n nzPlacement=\"bottomLeft\"\n [nzDropdownMenu]=\"selectionMenu\"\n class=\"ant-table-selection-down st__checkall-selection\"\n >\n <nz-icon nzType=\"down\" />\n </div>\n </div>\n }\n <nz-dropdown-menu #selectionMenu=\"nzDropdownMenu\">\n <ul nz-menu class=\"ant-table-selection-menu\">\n @for (rw of _c.selections; track $index) {\n <li nz-menu-item (click)=\"_rowSelection(rw)\" [innerHTML]=\"rw.text\"></li>\n }\n </ul>\n </nz-dropdown-menu>\n </div>\n }\n }\n @default {\n <ng-template [ngTemplateOutlet]=\"titleTpl\" [ngTemplateOutletContext]=\"{ $implicit: _c.title }\" />\n }\n }\n }\n @if (_c.filter) {\n <ng-container *ngTemplateOutlet=\"filterTpl\"></ng-container>\n }\n <ng-template #filterTpl>\n <st-filter\n nz-th-extra\n [col]=\"h.column\"\n [f]=\"_c.filter!\"\n [locale]=\"locale()\"\n (n)=\"handleFilterNotify($event)\"\n (handle)=\"_handleFilter(_c, $event)\"\n />\n </ng-template>\n </th>\n }\n </tr>\n }\n </thead>\n }\n <tbody\n class=\"st__body\"\n cdkDropList\n [cdkDropListDisabled]=\"drag() === null\"\n (cdkDropListDropped)=\"drag()?.dropped?.($event)\"\n (cdkDropListEntered)=\"drag()?.entered?.($event)\"\n (cdkDropListExited)=\"drag()?.exited?.($event)\"\n (cdkDropListSorted)=\"drag()?.sorted?.($event)\"\n >\n @if (!_loading) {\n <ng-template [ngTemplateOutlet]=\"bodyHeader!\" [ngTemplateOutletContext]=\"{ $implicit: _statistical }\" />\n }\n <ng-template #bodyTpl let-i let-index=\"index\">\n <tr\n [attr.data-index]=\"index\"\n (click)=\"_rowClick($event, i, index, false)\"\n (dblclick)=\"_rowClick($event, i, index, true)\"\n [class]=\"i._rowClassName\"\n cdkDrag\n >\n @if (expand) {\n <td\n [nzShowExpand]=\"expand && i.showExpand !== false\"\n [nzExpand]=\"i.expand\"\n [nzExpandIcon]=\"expandIcon ? wrapExpandIcon : null\"\n (nzExpandChange)=\"_expandChange(i, $event)\"\n (click)=\"_stopPropagation($event)\"\n nzWidth=\"50px\"\n [nzLeft]=\"_columns[0]._left ? true : false\"\n ></td>\n <ng-template #wrapExpandIcon>\n <span (click)=\"_expandChange(i, !i.expand)\">\n <ng-template [ngTemplateOutlet]=\"expandIcon\" [ngTemplateOutletContext]=\"{ $implicit: i, index: index }\" />\n </span>\n </ng-template>\n }\n @for (c of _columns; track cIdx; let cIdx = $index) {\n @let props = i._values[cIdx].props;\n @if (props?.colSpan > 0 && props?.rowSpan > 0) {\n <td\n [nzLeft]=\"c._left\"\n [nzRight]=\"c._right\"\n [attr.data-col-index]=\"cIdx\"\n [class]=\"c._className\"\n [attr.colspan]=\"props?.colSpan === 1 ? null : props?.colSpan\"\n [attr.rowspan]=\"props?.rowSpan === 1 ? null : props?.rowSpan\"\n >\n @if (responsive) {\n <span class=\"ant-table-rep__title\">\n <ng-template [ngTemplateOutlet]=\"titleTpl\" [ngTemplateOutletContext]=\"{ $implicit: c.title }\" />\n </span>\n }\n <st-td [data]=\"_data\" [i]=\"i\" [index]=\"index\" [c]=\"c\" [cIdx]=\"cIdx\" (n)=\"_handleTd($event)\" />\n </td>\n }\n }\n </tr>\n <tr [nzExpand]=\"i.expand\">\n <ng-template [ngTemplateOutlet]=\"expand\" [ngTemplateOutletContext]=\"{ $implicit: i, index: index }\" />\n </tr>\n </ng-template>\n @if (virtualScroll) {\n <ng-template nz-virtual-scroll let-i let-index=\"index\">\n <ng-template [ngTemplateOutlet]=\"bodyTpl\" [ngTemplateOutletContext]=\"{ $implicit: i, index: index }\" />\n </ng-template>\n } @else {\n @for (i of _data; track trackBy($index, i)) {\n <ng-template [ngTemplateOutlet]=\"bodyTpl\" [ngTemplateOutletContext]=\"{ $implicit: i, index: $index }\" />\n }\n }\n @if (!_loading) {\n <ng-template [ngTemplateOutlet]=\"body!\" [ngTemplateOutletContext]=\"{ $implicit: _statistical }\" />\n }\n </tbody>\n <ng-template #totalTpl let-range=\"range\" let-total>{{ renderTotal(total, range) }}</ng-template>\n</nz-table>\n<nz-dropdown-menu #contextmenuTpl=\"nzDropdownMenu\">\n <ul nz-menu class=\"st__contextmenu\">\n @for (i of contextmenuList; track $index) {\n @if (i.children!.length === 0) {\n <li nz-menu-item (click)=\"i.fn!(i)\" [innerHTML]=\"i.text\"></li>\n } @else {\n <li nz-submenu [nzTitle]=\"i.text\">\n <ul>\n @for (ci of i.children; track $index) {\n <li nz-menu-item (click)=\"ci.fn!(ci)\" [innerHTML]=\"ci.text\"></li>\n }\n </ul>\n </li>\n }\n }\n </ul>\n</nz-dropdown-menu>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NzTableModule }, { kind: "component", type: i4$1.NzTableComponent, selector: "nz-table", inputs: ["nzTableLayout", "nzShowTotal", "nzItemRender", "nzTitle", "nzFooter", "nzNoResult", "nzPageSizeOptions", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualForTrackBy", "nzLoadingDelay", "nzPageIndex", "nzPageSize", "nzTotal", "nzWidthConfig", "nzData", "nzCustomColumn", "nzPaginationPosition", "nzScroll", "noDataVirtualHeight", "nzPaginationType", "nzFrontPagination", "nzTemplateMode", "nzShowPagination", "nzLoading", "nzOuterBordered", "nzLoadingIndicator", "nzBordered", "nzSize", "nzShowSizeChanger", "nzHideOnSinglePage", "nzShowQuickJumper", "nzSimple"], outputs: ["nzPageSizeChange", "nzPageIndexChange", "nzQueryParams", "nzCurrentPageDataChange", "nzCustomColumnChange"], exportAs: ["nzTable"] }, { kind: "component", type: i4$1.NzThAddOnComponent, selector: "th[nzColumnKey], th[nzSortFn], th[nzSortOrder], th[nzFilters], th[nzShowSort], th[nzShowFilter], th[nzCustomFilter]", inputs: ["nzColumnKey", "nzFilterMultiple", "nzSortOrder", "nzSortPriority", "nzSortDirections", "nzFilters", "nzSortFn", "nzFilterFn", "nzShowSort", "nzShowFilter", "nzCustomFilter"], outputs: ["nzCheckedChange", "nzSortOrderChange", "nzFilterChange"] }, { kind: "directive", type: i4$1.NzTableCellDirective, selector: "th:not(.nz-disable-th), td:not(.nz-disable-td)" }, { kind: "directive", type: i4$1.NzThMeasureDirective, selector: "th", inputs: ["nzWidth", "colspan", "colSpan", "rowspan", "rowSpan"] }, { kind: "component", type: i4$1.NzTdAddOnComponent, selector: "td[nzChecked], td[nzDisabled], td[nzIndeterminate], td[nzIndentSize], td[nzExpand], td[nzShowExpand], td[nzShowCheckbox]", inputs: ["nzChecked", "nzDisabled", "nzIndeterminate", "nzLabel", "nzIndentSize", "nzShowExpand", "nzShowCheckbox", "nzExpand", "nzExpandIcon"], outputs: ["nzCheckedChange", "nzExpandChange"] }, { kind: "component", type: i4$1.NzTheadComponent, selector: "thead:not(.ant-table-thead)", outputs: ["nzSortOrderChange"] }, { kind: "component", type: i4$1.NzTbodyComponent, selector: "tbody" }, { kind: "directive", type: i4$1.NzTrDirective, selector: "tr:not([nz-table-measure-row]):not([nzExpand]):not([nz-table-fixed-row])" }, { kind: "directive", type: i4$1.NzTableVirtualScrollDirective, selector: "[nz-virtual-scroll]", exportAs: ["nzVirtualScroll"] }, { kind: "directive", type: i4$1.NzCellFixedDirective, selector: "td[nzRight],th[nzRight],td[nzLeft],th[nzLeft]", inputs: ["nzRight", "nzLeft", "colspan", "colSpan"] }, { kind: "directive", type: i4$1.NzTrExpandDirective, selector: "tr[nzExpand]", inputs: ["nzExpand"] }, { kind: "component", type: i4$1.NzTableFixedRowComponent, selector: "tr[nz-table-fixed-row], tr[nzExpand]" }, { kind: "directive", type: NzTooltipDirective, selector: "[nz-tooltip]", inputs: ["nzTooltipTitle", "nzTooltipTitleContext", "nz-tooltip", "nzTooltipTrigger", "nzTooltipPlacement", "nzTooltipOrigin", "nzTooltipVisible", "nzTooltipMouseEnterDelay", "nzTooltipMouseLeaveDelay", "nzTooltipOverlayClassName", "nzTooltipOverlayStyle", "nzTooltipArrowPointAtCenter", "cdkConnectedOverlayPush", "nzTooltipColor"], outputs: ["nzTooltipVisibleChange"], exportAs: ["nzTooltip"] }, { kind: "component", type: NzCheckboxComponent, selector: "[nz-checkbox]", inputs: ["nzValue", "nzAutoFocus", "nzDisabled", "nzIndeterminate", "nzChecked", "nzId", "nzName"], outputs: ["nzCheckedChange"], exportAs: ["nzCheckbox"] }, { kind: "ngmodule", type: NzResizableModule }, { kind: "directive", type: i5.NzResizableDirective, selector: "[nz-resizable]", inputs: ["nzBounds", "nzMaxHeight", "nzMaxWidth", "nzMinHeight", "nzMinWidth", "nzGridColumnCount", "nzMaxColumn", "nzMinColumn", "nzLockAspectRatio", "nzPreview", "nzDisabled"], outputs: ["nzResize", "nzResizeEnd", "nzResizeStart"], exportAs: ["nzResizable"] }, { kind: "component", type: i5.NzResizeHandleComponent, selector: "nz-resize-handle, [nz-resize-handle]", inputs: ["nzDirection", "nzCursorType"], outputs: ["nzMouseDown"], exportAs: ["nzResizeHandle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: NzDropdownModule }, { kind: "directive", type: i2$1.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i2$1.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "component", type: i2$1.NzSubMenuComponent, selector: "[nz-submenu]", inputs: ["nzMenuClassName", "nzPaddingLeft", "nzTitle", "nzIcon", "nzTriggerSubMenuAction", "nzOpen", "nzDisabled", "nzPlacement"], outputs: ["nzOpenChange"], exportAs: ["nzSubmenu"] }, { kind: "directive", type: i3$1.NzDropdownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzArrow", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { kind: "component", type: i3$1.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "directive", type: NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzMenuModule }, { kind: "component", type: STFilterComponent, selector: "st-filter", inputs: ["col", "locale", "f"], outputs: ["n", "handle"] }, { kind: "component", type: STTdComponent, selector: "st-td", inputs: ["c", "cIdx", "data", "i", "index"], outputs: ["n"] }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2474
2483
  }
2475
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: STComponent, decorators: [{
2484
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: STComponent, decorators: [{
2476
2485
  type: Component,
2477
2486
  args: [{ selector: 'st', exportAs: 'st', providers: [STDataSource, STRowSource, STColumnSource, STExport, DatePipe, YNPipe, DecimalPipe], host: {
2478
2487
  '[class.st]': `true`,
@@ -2489,7 +2498,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
2489
2498
  NzCheckboxComponent,
2490
2499
  NzResizableModule,
2491
2500
  NgTemplateOutlet,
2492
- NzDropDownModule,
2501
+ NzDropdownModule,
2493
2502
  NzIconDirective,
2494
2503
  NzMenuModule,
2495
2504
  STFilterComponent,
@@ -2539,7 +2548,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
2539
2548
  type: Input
2540
2549
  }], scroll: [{
2541
2550
  type: Input
2542
- }], singleSort: [{
2551
+ }], drag: [{ type: i0.Input, args: [{ isSignal: true, alias: "drag", required: false }] }], singleSort: [{
2543
2552
  type: Input
2544
2553
  }], multiSort: [{
2545
2554
  type: Input
@@ -2608,11 +2617,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
2608
2617
 
2609
2618
  const COMPONENTS = [STComponent, STRowDirective, STWidgetHostDirective];
2610
2619
  class STModule {
2611
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: STModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2612
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.0", ngImport: i0, type: STModule, imports: [STComponent, STRowDirective, STWidgetHostDirective], exports: [STComponent, STRowDirective, STWidgetHostDirective] });
2613
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: STModule, imports: [STComponent] });
2620
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: STModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2621
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: STModule, imports: [STComponent, STRowDirective, STWidgetHostDirective], exports: [STComponent, STRowDirective, STWidgetHostDirective] });
2622
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: STModule, imports: [STComponent] });
2614
2623
  }
2615
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: STModule, decorators: [{
2624
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: STModule, decorators: [{
2616
2625
  type: NgModule,
2617
2626
  args: [{
2618
2627
  imports: COMPONENTS,