@delon/abc 12.2.3 → 12.4.2

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 (84) hide show
  1. package/bundles/abc.umd.js +1 -1
  2. package/bundles/autoFocus.umd.js +1 -1
  3. package/bundles/avatarList.umd.js +1 -1
  4. package/bundles/count-down.umd.js +1 -1
  5. package/bundles/datePicker.umd.js +1 -1
  6. package/bundles/downFile.umd.js +1 -1
  7. package/bundles/edit.umd.js +1 -1
  8. package/bundles/ellipsis.umd.js +1 -1
  9. package/bundles/errorCollect.umd.js +1 -1
  10. package/bundles/exception.umd.js +11 -8
  11. package/bundles/exception.umd.js.map +1 -1
  12. package/bundles/footerToolbar.umd.js +1 -1
  13. package/bundles/fullContent.umd.js +1 -1
  14. package/bundles/globalFooter.umd.js +1 -1
  15. package/bundles/grid.umd.js +1 -1
  16. package/bundles/image.umd.js +1 -1
  17. package/bundles/let.umd.js +1 -1
  18. package/bundles/loading.umd.js +1 -1
  19. package/bundles/lodop.umd.js +1 -1
  20. package/bundles/lodop.umd.js.map +1 -1
  21. package/bundles/media.umd.js +1 -1
  22. package/bundles/noticeIcon.umd.js +1 -1
  23. package/bundles/onboarding.umd.js +1 -1
  24. package/bundles/pageHeader.umd.js +1 -1
  25. package/bundles/pdf.umd.js +1 -1
  26. package/bundles/qr.umd.js +1 -1
  27. package/bundles/quickMenu.umd.js +1 -1
  28. package/bundles/result.umd.js +1 -1
  29. package/bundles/reuseTab.umd.js +9 -18
  30. package/bundles/reuseTab.umd.js.map +1 -1
  31. package/bundles/table.umd.js +250 -146
  32. package/bundles/table.umd.js.map +1 -1
  33. package/bundles/tagSelect.umd.js +1 -1
  34. package/bundles/view.umd.js +1 -1
  35. package/bundles/xlsx.umd.js +27 -32
  36. package/bundles/xlsx.umd.js.map +1 -1
  37. package/bundles/zip.umd.js +1 -1
  38. package/bundles/zip.umd.js.map +1 -1
  39. package/esm2015/exception/exception.component.js +7 -4
  40. package/esm2015/exception/exception.module.js +3 -2
  41. package/esm2015/lodop/lodop.service.js +1 -1
  42. package/esm2015/reuse-tab/reuse-tab-context-menu.component.js +2 -2
  43. package/esm2015/reuse-tab/reuse-tab-context.service.js +4 -13
  44. package/esm2015/reuse-tab/reuse-tab.component.js +6 -6
  45. package/esm2015/st/st-column-source.js +28 -7
  46. package/esm2015/st/st-data-source.js +4 -4
  47. package/esm2015/st/st-filter.component.js +149 -0
  48. package/esm2015/st/st-td.component.js +232 -0
  49. package/esm2015/st/st.component.js +39 -125
  50. package/esm2015/st/st.config.js +1 -2
  51. package/esm2015/st/st.interfaces.js +1 -1
  52. package/esm2015/st/st.module.js +9 -3
  53. package/esm2015/st/st.types.js +1 -1
  54. package/esm2015/st/table.js +3 -1
  55. package/esm2015/xlsx/xlsx.service.js +23 -29
  56. package/esm2015/xlsx/xlsx.types.js +1 -1
  57. package/esm2015/zip/zip.service.js +1 -1
  58. package/exception/exception.component.d.ts +3 -2
  59. package/exception/exception.metadata.json +1 -1
  60. package/fesm2015/exception.js +8 -4
  61. package/fesm2015/exception.js.map +1 -1
  62. package/fesm2015/lodop.js.map +1 -1
  63. package/fesm2015/reuseTab.js +9 -18
  64. package/fesm2015/reuseTab.js.map +1 -1
  65. package/fesm2015/table.js +450 -137
  66. package/fesm2015/table.js.map +1 -1
  67. package/fesm2015/xlsx.js +22 -28
  68. package/fesm2015/xlsx.js.map +1 -1
  69. package/fesm2015/zip.js.map +1 -1
  70. package/onboarding/schema.json +1 -1
  71. package/package.json +4 -4
  72. package/reuse-tab/reuse-tab.component.d.ts +1 -1
  73. package/reuse-tab/reuseTab.metadata.json +1 -1
  74. package/st/st-filter.component.d.ts +18 -0
  75. package/st/st-td.component.d.ts +27 -0
  76. package/st/st.component.d.ts +10 -24
  77. package/st/st.interfaces.d.ts +57 -3
  78. package/st/st.types.d.ts +6 -0
  79. package/st/style/index.less +8 -0
  80. package/st/table.d.ts +2 -0
  81. package/st/table.metadata.json +1 -1
  82. package/sv/style/index.less +1 -0
  83. package/xlsx/xlsx.metadata.json +1 -1
  84. package/xlsx/xlsx.types.d.ts +3 -0
@@ -1,13 +1,13 @@
1
1
  /**
2
- * @license ng-alain(cipchk@qq.com) v12.2.3
2
+ * @license ng-alain(cipchk@qq.com) v12.4.2
3
3
  * (c) 2020 cipchk https://ng-alain.com/
4
4
  * License: MIT
5
5
  */
6
6
  (function (global, factory) {
7
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/platform-browser'), require('@delon/acl'), require('@delon/theme'), require('@delon/util/other'), require('@angular/common'), require('@angular/common/http'), require('rxjs'), require('rxjs/operators'), require('@delon/util/format'), require('@delon/abc/xlsx'), require('@angular/router'), require('@delon/util/config'), require('@delon/util/decorator'), require('ng-zorro-antd/dropdown'), require('@angular/forms'), require('@delon/abc/let'), require('ng-zorro-antd/badge'), require('ng-zorro-antd/checkbox'), require('ng-zorro-antd/divider'), require('ng-zorro-antd/icon'), require('ng-zorro-antd/input'), require('ng-zorro-antd/menu'), require('ng-zorro-antd/popconfirm'), require('ng-zorro-antd/radio'), require('ng-zorro-antd/resizable'), require('ng-zorro-antd/table'), require('ng-zorro-antd/tag'), require('ng-zorro-antd/tooltip')) :
8
- typeof define === 'function' && define.amd ? define('@delon/abc/st', ['exports', '@angular/core', '@angular/platform-browser', '@delon/acl', '@delon/theme', '@delon/util/other', '@angular/common', '@angular/common/http', 'rxjs', 'rxjs/operators', '@delon/util/format', '@delon/abc/xlsx', '@angular/router', '@delon/util/config', '@delon/util/decorator', 'ng-zorro-antd/dropdown', '@angular/forms', '@delon/abc/let', 'ng-zorro-antd/badge', 'ng-zorro-antd/checkbox', 'ng-zorro-antd/divider', 'ng-zorro-antd/icon', 'ng-zorro-antd/input', 'ng-zorro-antd/menu', 'ng-zorro-antd/popconfirm', 'ng-zorro-antd/radio', 'ng-zorro-antd/resizable', 'ng-zorro-antd/table', 'ng-zorro-antd/tag', 'ng-zorro-antd/tooltip'], factory) :
9
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.delon = global.delon || {}, global.delon.abc = global.delon.abc || {}, global.delon.abc.st = {}), global.ng.core, global.ng.platformBrowser, global.delon.acl, global.delon.theme, global.other, global.ng.common, global.ng.common.http, global.rxjs, global.rxjs.operators, global.format, global.delon.abc.xlsx, global.ng.router, global.config, global.decorator, global["ng-zorro-antd/dropdown"], global.ng.forms, global.delon.abc["let"], global["ng-zorro-antd/badge"], global["ng-zorro-antd/checkbox"], global["ng-zorro-antd/divider"], global["ng-zorro-antd/icon"], global["ng-zorro-antd/input"], global["ng-zorro-antd/menu"], global["ng-zorro-antd/popconfirm"], global["ng-zorro-antd/radio"], global.resizable, global["ng-zorro-antd/table"], global["ng-zorro-antd/tag"], global["ng-zorro-antd/tooltip"]));
10
- })(this, (function (exports, i0, platformBrowser, acl, theme, other, common, http, rxjs, operators, format, xlsx, router, config, decorator, dropdown, forms, _let, badge, checkbox, divider, icon, input, menu, popconfirm, radio, resizable, table, tag, tooltip) { 'use strict';
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/platform-browser'), require('@delon/acl'), require('@delon/theme'), require('@delon/util/other'), require('@angular/common'), require('@angular/common/http'), require('rxjs'), require('rxjs/operators'), require('@delon/util/format'), require('@delon/abc/xlsx'), require('@delon/util/config'), require('@delon/util/decorator'), require('ng-zorro-antd/dropdown'), require('@angular/forms'), require('@delon/abc/let'), require('ng-zorro-antd/badge'), require('ng-zorro-antd/checkbox'), require('ng-zorro-antd/date-picker'), require('ng-zorro-antd/divider'), require('ng-zorro-antd/icon'), require('ng-zorro-antd/input'), require('ng-zorro-antd/input-number'), require('ng-zorro-antd/menu'), require('ng-zorro-antd/popconfirm'), require('ng-zorro-antd/radio'), require('ng-zorro-antd/resizable'), require('ng-zorro-antd/table'), require('ng-zorro-antd/tag'), require('ng-zorro-antd/tooltip'), require('@angular/router')) :
8
+ typeof define === 'function' && define.amd ? define('@delon/abc/st', ['exports', '@angular/core', '@angular/platform-browser', '@delon/acl', '@delon/theme', '@delon/util/other', '@angular/common', '@angular/common/http', 'rxjs', 'rxjs/operators', '@delon/util/format', '@delon/abc/xlsx', '@delon/util/config', '@delon/util/decorator', 'ng-zorro-antd/dropdown', '@angular/forms', '@delon/abc/let', 'ng-zorro-antd/badge', 'ng-zorro-antd/checkbox', 'ng-zorro-antd/date-picker', 'ng-zorro-antd/divider', 'ng-zorro-antd/icon', 'ng-zorro-antd/input', 'ng-zorro-antd/input-number', 'ng-zorro-antd/menu', 'ng-zorro-antd/popconfirm', 'ng-zorro-antd/radio', 'ng-zorro-antd/resizable', 'ng-zorro-antd/table', 'ng-zorro-antd/tag', 'ng-zorro-antd/tooltip', '@angular/router'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.delon = global.delon || {}, global.delon.abc = global.delon.abc || {}, global.delon.abc.st = {}), global.ng.core, global.ng.platformBrowser, global.delon.acl, global.delon.theme, global.other, global.ng.common, global.ng.common.http, global.rxjs, global.rxjs.operators, global.format, global.delon.abc.xlsx, global.config, global.decorator, global["ng-zorro-antd/dropdown"], global.ng.forms, global.delon.abc["let"], global["ng-zorro-antd/badge"], global["ng-zorro-antd/checkbox"], global.datePicker, global["ng-zorro-antd/divider"], global["ng-zorro-antd/icon"], global["ng-zorro-antd/input"], global.inputNumber, global["ng-zorro-antd/menu"], global["ng-zorro-antd/popconfirm"], global["ng-zorro-antd/radio"], global.resizable, global["ng-zorro-antd/table"], global["ng-zorro-antd/tag"], global["ng-zorro-antd/tooltip"], global.ng.router));
10
+ })(this, (function (exports, i0, platformBrowser, acl, theme, other, common, http, rxjs, operators, format, xlsx, config, decorator, dropdown, forms, _let, badge, checkbox, datePicker, divider, icon, input, inputNumber, menu, popconfirm, radio, resizable, table, tag, tooltip, router) { 'use strict';
11
11
 
12
12
  function _interopNamespace(e) {
13
13
  if (e && e.__esModule) return e;
@@ -567,14 +567,32 @@
567
567
  }
568
568
  var res = item.filter;
569
569
  res.type = res.type || 'default';
570
+ res.showOPArea = res.showOPArea !== false;
570
571
  var icon = 'filter';
571
572
  var iconTheme = 'fill';
572
- if (res.type === 'keyword') {
573
- if (res.menus == null || res.menus.length === 0) {
574
- res.menus = [{ value: '' }];
575
- }
576
- icon = 'search';
577
- iconTheme = 'outline';
573
+ var fixMenus = true;
574
+ var value = undefined;
575
+ switch (res.type) {
576
+ case 'keyword':
577
+ icon = 'search';
578
+ iconTheme = 'outline';
579
+ break;
580
+ case 'number':
581
+ icon = 'search';
582
+ iconTheme = 'outline';
583
+ res.number = Object.assign({ step: 1, min: -Infinity, max: Infinity }, res.number);
584
+ break;
585
+ case 'date':
586
+ icon = 'calendar';
587
+ iconTheme = 'outline';
588
+ res.date = Object.assign({ range: false, mode: 'date', showToday: true, showNow: false }, res.date);
589
+ break;
590
+ default:
591
+ fixMenus = false;
592
+ break;
593
+ }
594
+ if (fixMenus && (res.menus == null || res.menus.length === 0)) {
595
+ res.menus = [{ value: value }];
578
596
  }
579
597
  if (res.menus.length === 0) {
580
598
  return null;
@@ -688,6 +706,9 @@
688
706
  if (this.acl && item.acl && !this.acl.can(item.acl)) {
689
707
  continue;
690
708
  }
709
+ if (Array.isArray(item.children) && item.children.length > 0) {
710
+ item.children = this.cleanCond(item.children);
711
+ }
691
712
  res.push(item);
692
713
  }
693
714
  }
@@ -1102,9 +1123,9 @@
1102
1123
  }
1103
1124
  return _this.get(result[i], c, i);
1104
1125
  });
1105
- if (rowClassName) {
1106
- result[i]._rowClassName = rowClassName(result[i], i);
1107
- }
1126
+ result[i]._rowClassName = [rowClassName ? rowClassName(result[i], i) : null, result[i].className]
1127
+ .filter(function (w) { return !!w; })
1128
+ .join(' ');
1108
1129
  };
1109
1130
  for (var i = 0, len = result.length; i < len; i++) {
1110
1131
  _loop_1(i, len);
@@ -1482,7 +1503,6 @@
1482
1503
  trigger: 'click',
1483
1504
  placement: 'top'
1484
1505
  },
1485
- rowClickTime: 200,
1486
1506
  btnIcon: {
1487
1507
  theme: 'outline',
1488
1508
  spin: false
@@ -1511,14 +1531,11 @@
1511
1531
  };
1512
1532
 
1513
1533
  var STComponent = /** @class */ (function () {
1514
- function STComponent(i18nSrv, cdr, router, el, exportSrv, modalHelper, drawerHelper, doc, columnSource, dataSource, delonI18n, configSrv, cms) {
1534
+ function STComponent(i18nSrv, cdr, el, exportSrv, doc, columnSource, dataSource, delonI18n, configSrv, cms) {
1515
1535
  var _this = this;
1516
1536
  this.cdr = cdr;
1517
- this.router = router;
1518
1537
  this.el = el;
1519
1538
  this.exportSrv = exportSrv;
1520
- this.modalHelper = modalHelper;
1521
- this.drawerHelper = drawerHelper;
1522
1539
  this.doc = doc;
1523
1540
  this.columnSource = columnSource;
1524
1541
  this.dataSource = dataSource;
@@ -1526,7 +1543,6 @@
1526
1543
  this.cms = cms;
1527
1544
  this.destroy$ = new rxjs.Subject();
1528
1545
  this.totalTpl = "";
1529
- this.rowClickCount = 0;
1530
1546
  this.customWidthConfig = false;
1531
1547
  this._widthConfig = [];
1532
1548
  this.locale = {};
@@ -1550,7 +1566,6 @@
1550
1566
  this.showHeader = true;
1551
1567
  this.expandRowByClick = false;
1552
1568
  this.expandAccordion = false;
1553
- this.rowClickTime = 200;
1554
1569
  this.responsive = true;
1555
1570
  this.error = new i0.EventEmitter();
1556
1571
  this.change = new i0.EventEmitter();
@@ -1669,14 +1684,6 @@
1669
1684
  enumerable: false,
1670
1685
  configurable: true
1671
1686
  });
1672
- Object.defineProperty(STComponent.prototype, "routerState", {
1673
- get: function () {
1674
- var _b = this, pi = _b.pi, ps = _b.ps, total = _b.total;
1675
- return { pi: pi, ps: ps, total: total };
1676
- },
1677
- enumerable: false,
1678
- configurable: true
1679
- });
1680
1687
  STComponent.prototype.setCog = function (cog) {
1681
1688
  var copyMultiSort = Object.assign({}, cog.multiSort);
1682
1689
  // Because multiSort.global will affect the result, it should be removed first, and multiSort will be operated again after processing.
@@ -1692,6 +1699,10 @@
1692
1699
  this.cdr.detectChanges();
1693
1700
  return this;
1694
1701
  };
1702
+ STComponent.prototype.refreshData = function () {
1703
+ this._data = __spreadArray([], __read(this._data));
1704
+ return this.cd();
1705
+ };
1695
1706
  STComponent.prototype.renderTotal = function (total, range) {
1696
1707
  return this.totalTpl
1697
1708
  ? this.totalTpl.replace('{{total}}', total).replace('{{range[0]}}', range[0]).replace('{{range[1]}}', range[1])
@@ -1883,46 +1894,30 @@
1883
1894
  }
1884
1895
  this.changeEmit(type);
1885
1896
  };
1886
- STComponent.prototype._click = function (e, item, col) {
1887
- e.preventDefault();
1888
- e.stopPropagation();
1889
- var res = col.click(item, this);
1890
- if (typeof res === 'string') {
1891
- this.router.navigateByUrl(res, { state: this.routerState });
1892
- }
1893
- return false;
1894
- };
1895
1897
  STComponent.prototype.closeOtherExpand = function (item) {
1896
1898
  if (this.expandAccordion === false)
1897
1899
  return;
1898
1900
  this._data.filter(function (i) { return i !== item; }).forEach(function (i) { return (i.expand = false); });
1899
1901
  };
1900
- STComponent.prototype._rowClick = function (e, item, index) {
1901
- var _this = this;
1902
+ STComponent.prototype._rowClick = function (e, item, index, dbl) {
1902
1903
  var el = e.target;
1903
1904
  if (el.nodeName === 'INPUT')
1904
1905
  return;
1905
- var _b = this, expand = _b.expand, expandRowByClick = _b.expandRowByClick, rowClickTime = _b.rowClickTime;
1906
+ var _b = this, expand = _b.expand, expandRowByClick = _b.expandRowByClick;
1906
1907
  if (!!expand && item.showExpand !== false && expandRowByClick) {
1907
1908
  item.expand = !item.expand;
1908
1909
  this.closeOtherExpand(item);
1909
1910
  this.changeEmit('expand', item);
1910
1911
  return;
1911
1912
  }
1912
- ++this.rowClickCount;
1913
- if (this.rowClickCount !== 1)
1914
- return;
1915
- setTimeout(function () {
1916
- var data = { e: e, item: item, index: index };
1917
- if (_this.rowClickCount === 1) {
1918
- _this._clickRowClassName(el, item, index);
1919
- _this.changeEmit('click', data);
1920
- }
1921
- else {
1922
- _this.changeEmit('dblClick', data);
1923
- }
1924
- _this.rowClickCount = 0;
1925
- }, rowClickTime);
1913
+ var data = { e: e, item: item, index: index };
1914
+ if (dbl) {
1915
+ this.changeEmit('dblClick', data);
1916
+ }
1917
+ else {
1918
+ this._clickRowClassName(el, item, index);
1919
+ this.changeEmit('click', data);
1920
+ }
1926
1921
  };
1927
1922
  STComponent.prototype._clickRowClassName = function (el, item, index) {
1928
1923
  var cr = this.clickRowClassName;
@@ -1978,7 +1973,7 @@
1978
1973
  var text = "" + _this.dataSource.getNoIndex(i, c, idx);
1979
1974
  i._values[c.__point] = { text: text, _text: text, org: idx, safeType: 'text' };
1980
1975
  }); });
1981
- return this.cd();
1976
+ return this.refreshData();
1982
1977
  };
1983
1978
  /**
1984
1979
  * Sets the row value for the `index` in the table, like this:
@@ -2003,8 +1998,7 @@
2003
1998
  this.resetColumns({ emitReload: options.emitReload });
2004
1999
  return this;
2005
2000
  }
2006
- this.cdr.detectChanges();
2007
- return this;
2001
+ return this.refreshData();
2008
2002
  };
2009
2003
  // #endregion
2010
2004
  // #region sort
@@ -2031,37 +2025,29 @@
2031
2025
  };
2032
2026
  // #endregion
2033
2027
  // #region filter
2034
- STComponent.prototype.handleFilter = function (col) {
2028
+ STComponent.prototype._handleFilter = function (col, confirm) {
2029
+ if (!confirm) {
2030
+ this.columnSource.cleanFilter(col);
2031
+ }
2035
2032
  // 过滤表示一种数据的变化应重置页码为 `1`
2036
2033
  this.pi = 1;
2037
2034
  this.columnSource.updateDefault(col.filter);
2038
2035
  this.loadPageData();
2039
2036
  this.changeEmit('filter', col);
2040
2037
  };
2041
- STComponent.prototype._filterConfirm = function (col) {
2042
- this.handleFilter(col);
2043
- };
2044
- STComponent.prototype._filterRadio = function (col, item, checked) {
2045
- col.filter.menus.forEach(function (i) { return (i.checked = false); });
2046
- item.checked = checked;
2047
- };
2048
- STComponent.prototype._filterClear = function (col) {
2049
- this.columnSource.cleanFilter(col);
2050
- this.handleFilter(col);
2038
+ STComponent.prototype.handleFilterNotify = function (value) {
2039
+ this.changeEmit('filterChange', value);
2051
2040
  };
2052
2041
  STComponent.prototype.clearFilter = function () {
2053
2042
  var _this = this;
2054
2043
  this._columns.filter(function (w) { return w.filter && w.filter.default === true; }).forEach(function (col) { return _this.columnSource.cleanFilter(col); });
2055
2044
  return this;
2056
2045
  };
2057
- STComponent.prototype._filterClick = function ($event) {
2058
- $event.stopPropagation();
2059
- };
2060
2046
  // #endregion
2061
2047
  // #region checkbox
2062
2048
  /** 清除所有 `checkbox` */
2063
2049
  STComponent.prototype.clearCheck = function () {
2064
- return this._checkAll(false);
2050
+ return this.checkAll(false);
2065
2051
  };
2066
2052
  STComponent.prototype._refCheck = function () {
2067
2053
  var validData = this._data.filter(function (w) { return !w.disabled; });
@@ -2072,14 +2058,10 @@
2072
2058
  this._allCheckedDisabled = this._data.length === this._data.filter(function (w) { return w.disabled; }).length;
2073
2059
  return this.cd();
2074
2060
  };
2075
- STComponent.prototype._checkAll = function (checked) {
2061
+ STComponent.prototype.checkAll = function (checked) {
2076
2062
  checked = typeof checked === 'undefined' ? this._allChecked : checked;
2077
2063
  this._data.filter(function (w) { return !w.disabled; }).forEach(function (i) { return (i.checked = checked); });
2078
- return this._refCheck()._checkNotify();
2079
- };
2080
- STComponent.prototype._checkSelection = function (i, value) {
2081
- i.checked = value;
2082
- return this._refCheck()._checkNotify();
2064
+ return this._refCheck()._checkNotify().refreshData();
2083
2065
  };
2084
2066
  STComponent.prototype._rowSelection = function (row) {
2085
2067
  row.select(this._data);
@@ -2096,67 +2078,20 @@
2096
2078
  STComponent.prototype.clearRadio = function () {
2097
2079
  this._data.filter(function (w) { return w.checked; }).forEach(function (item) { return (item.checked = false); });
2098
2080
  this.changeEmit('radio', null);
2099
- return this;
2100
- };
2101
- STComponent.prototype._refRadio = function (checked, item) {
2102
- // if (item.disabled === true) return;
2103
- this._data.filter(function (w) { return !w.disabled; }).forEach(function (i) { return (i.checked = false); });
2104
- item.checked = checked;
2105
- this.changeEmit('radio', item);
2106
- return this;
2081
+ return this.refreshData();
2107
2082
  };
2108
2083
  // #endregion
2109
- // #region buttons
2110
- STComponent.prototype._btnClick = function (record, btn, ev) {
2111
- var _b, _c;
2112
- var _this = this;
2113
- if (ev) {
2114
- ev.stopPropagation();
2084
+ STComponent.prototype._handleTd = function (ev) {
2085
+ switch (ev.type) {
2086
+ case 'checkbox':
2087
+ this._refCheck()._checkNotify();
2088
+ break;
2089
+ case 'radio':
2090
+ this.changeEmit('radio', ev.item);
2091
+ this.refreshData();
2092
+ break;
2115
2093
  }
2116
- if (btn.type === 'modal' || btn.type === 'static') {
2117
- var modal = btn.modal;
2118
- var obj = (_b = {}, _b[modal.paramsName] = record, _b);
2119
- this.modalHelper[btn.type === 'modal' ? 'create' : 'createStatic'](modal.component, Object.assign(Object.assign({}, obj), (modal.params && modal.params(record))), other.deepMergeKey({}, true, this.cog.modal, modal))
2120
- .pipe(operators.filter(function (w) { return typeof w !== 'undefined'; }))
2121
- .subscribe(function (res) { return _this.btnCallback(record, btn, res); });
2122
- return;
2123
- }
2124
- else if (btn.type === 'drawer') {
2125
- var drawer = btn.drawer;
2126
- var obj = (_c = {}, _c[drawer.paramsName] = record, _c);
2127
- this.drawerHelper
2128
- .create(drawer.title, drawer.component, Object.assign(Object.assign({}, obj), (drawer.params && drawer.params(record))), other.deepMergeKey({}, true, this.cog.drawer, drawer))
2129
- .pipe(operators.filter(function (w) { return typeof w !== 'undefined'; }))
2130
- .subscribe(function (res) { return _this.btnCallback(record, btn, res); });
2131
- return;
2132
- }
2133
- else if (btn.type === 'link') {
2134
- var clickRes = this.btnCallback(record, btn);
2135
- if (typeof clickRes === 'string') {
2136
- this.router.navigateByUrl(clickRes, { state: this.routerState });
2137
- }
2138
- return;
2139
- }
2140
- this.btnCallback(record, btn);
2141
2094
  };
2142
- STComponent.prototype.btnCallback = function (record, btn, modal) {
2143
- if (!btn.click)
2144
- return;
2145
- if (typeof btn.click === 'string') {
2146
- switch (btn.click) {
2147
- case 'load':
2148
- this.load();
2149
- break;
2150
- case 'reload':
2151
- this.reload();
2152
- break;
2153
- }
2154
- }
2155
- else {
2156
- return btn.click(record, modal, this);
2157
- }
2158
- };
2159
- // #endregion
2160
2095
  // #region export
2161
2096
  /**
2162
2097
  * 导出当前页,确保已经注册 `XlsxModule`
@@ -2311,7 +2246,7 @@
2311
2246
  { type: i0.Component, args: [{
2312
2247
  selector: 'st',
2313
2248
  exportAs: 'st',
2314
- template: "<ng-template #btnTpl let-i let-btn=\"btn\">\n <ng-container *ngIf=\"!btn.tooltip\">\n <ng-template [ngTemplateOutlet]=\"btnItemTpl\" [ngTemplateOutletContext]=\"{ $implicit: i, btn: btn }\"></ng-template>\n </ng-container>\n <span *ngIf=\"btn.tooltip\" nz-tooltip [nzTooltipTitle]=\"btn.tooltip\">\n <ng-template [ngTemplateOutlet]=\"btnItemTpl\" [ngTemplateOutletContext]=\"{ $implicit: i, btn: btn }\"></ng-template>\n </span>\n</ng-template>\n<ng-template #btnItemTpl let-i let-btn=\"btn\">\n <a\n *ngIf=\"btn.pop\"\n nz-popconfirm\n [nzPopconfirmTitle]=\"btn.pop.title\"\n [nzIcon]=\"btn.pop.icon\"\n [nzCondition]=\"btn.pop.condition(i)\"\n [nzCancelText]=\"btn.pop.cancelText\"\n [nzOkText]=\"btn.pop.okText\"\n [nzOkType]=\"btn.pop.okType\"\n (nzOnConfirm)=\"_btnClick(i, btn)\"\n class=\"st__btn-text\"\n [ngClass]=\"btn.className\"\n (click)=\"_stopPropagation($event)\"\n >\n <ng-template [ngTemplateOutlet]=\"btnTextTpl\" [ngTemplateOutletContext]=\"{ $implicit: i, btn: btn }\"></ng-template>\n </a>\n <a *ngIf=\"!btn.pop\" (click)=\"_btnClick(i, btn, $event)\" class=\"st__btn-text\" [ngClass]=\"btn.className\">\n <ng-template [ngTemplateOutlet]=\"btnTextTpl\" [ngTemplateOutletContext]=\"{ $implicit: i, btn: btn }\"></ng-template>\n </a>\n</ng-template>\n<ng-template #btnTextTpl let-i let-btn=\"btn\">\n <ng-container *ngIf=\"btn.icon\">\n <i\n *ngIf=\"!btn.icon.iconfont\"\n nz-icon\n [nzType]=\"btn.icon.type\"\n [nzTheme]=\"btn.icon.theme\"\n [nzSpin]=\"btn.icon.spin\"\n [nzTwotoneColor]=\"btn.icon.twoToneColor\"\n ></i>\n <i *ngIf=\"btn.icon.iconfont\" nz-icon [nzIconfont]=\"btn.icon.iconfont\"></i>\n </ng-container>\n <span [innerHTML]=\"btn._text\" [ngClass]=\"{ 'pl-xs': btn.icon }\"></span>\n</ng-template>\n<ng-template #titleTpl let-i>\n <span [innerHTML]=\"i._text\"></span>\n <small *ngIf=\"i.optional\" class=\"st__head-optional\" [innerHTML]=\"i.optional\"></small>\n <i\n *ngIf=\"i.optionalHelp\"\n class=\"st__head-tip\"\n nz-tooltip\n [nzTooltipTitle]=\"i.optionalHelp\"\n nz-icon\n nzType=\"question-circle\"\n ></i>\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]=\"_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>\n <thead *ngIf=\"showHeader\">\n <tr *ngFor=\"let row of _headers; let rowFirst = first\">\n <th *ngIf=\"rowFirst && expand\" nzWidth=\"50px\" [rowSpan]=\"_headers.length\"></th>\n <ng-container *ngFor=\"let h of row; let index = index; let last = last\">\n <th\n *let=\"h.column as _c\"\n [colSpan]=\"h.colSpan\"\n [rowSpan]=\"h.rowSpan\"\n [nzWidth]=\"$any(_c).width\"\n [nzLeft]=\"_c._left!\"\n [nzRight]=\"_c._right!\"\n [ngClass]=\"_c.className!\"\n [attr.data-col]=\"_c.indexKey\"\n [attr.data-col-index]=\"index\"\n [nzShowSort]=\"_c._sort.enabled\"\n [nzSortOrder]=\"$any(_c)._sort.default\"\n (nzSortOrderChange)=\"sort(_c, index, $event)\"\n [nzCustomFilter]=\"$any(_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 <nz-resize-handle *ngIf=\"$any(!last && !$any(_c).resizable.disabled)\" nzDirection=\"right\">\n <i></i>\n </nz-resize-handle>\n <ng-template\n #renderTitle\n [ngTemplateOutlet]=\"_c.__renderTitle!\"\n [ngTemplateOutletContext]=\"{ $implicit: h.column, index: index }\"\n ></ng-template>\n <ng-container *ngIf=\"!_c.__renderTitle; else renderTitle\">\n <ng-container [ngSwitch]=\"_c.type\">\n <ng-container *ngSwitchCase=\"'checkbox'\">\n <ng-container *ngIf=\"_c.selections!.length === 0\">\n <ng-template [ngTemplateOutlet]=\"chkAllTpl\" [ngTemplateOutletContext]=\"{ $implicit: false }\">\n </ng-template>\n </ng-container>\n <div *ngIf=\"_c.selections!.length > 0\" class=\"ant-table-selection\">\n <ng-template [ngTemplateOutlet]=\"chkAllTpl\" [ngTemplateOutletContext]=\"{ $implicit: true }\">\n </ng-template>\n <div\n *ngIf=\"_c.selections!.length\"\n nz-dropdown\n nzPlacement=\"bottomLeft\"\n [nzDropdownMenu]=\"selectionMenu\"\n class=\"ant-table-selection-down st__checkall-selection\"\n >\n <i nz-icon nzType=\"down\"></i>\n </div>\n <nz-dropdown-menu #selectionMenu=\"nzDropdownMenu\">\n <ul nz-menu class=\"ant-table-selection-menu\">\n <li\n nz-menu-item\n *ngFor=\"let rw of _c.selections\"\n (click)=\"_rowSelection(rw)\"\n [innerHTML]=\"rw.text\"\n ></li>\n </ul>\n </nz-dropdown-menu>\n </div>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ng-template\n [ngTemplateOutlet]=\"titleTpl\"\n [ngTemplateOutletContext]=\"{ $implicit: _c.title }\"\n ></ng-template>\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"_c.filter\">\n <div\n nz-th-extra\n *let=\"_c.filter as _f\"\n class=\"ant-table-filter-trigger-container st__filter\"\n [class.ant-table-filter-trigger-container-open]=\"$any(_f).visible\"\n >\n <span\n class=\"ant-table-filter-trigger\"\n [class.active]=\"$any(_f).visible || _f.default\"\n nz-dropdown\n [nzDropdownMenu]=\"filterMenu\"\n nzTrigger=\"click\"\n [nzClickHide]=\"false\"\n [(nzVisible)]=\"$any(_f).visible\"\n nzOverlayClassName=\"st__filter-wrap\"\n (click)=\"_filterClick($event)\"\n >\n <i nz-icon [nzType]=\"$any(_f).icon.type\" [nzTheme]=\"$any(_f).icon.theme\"></i>\n </span>\n <nz-dropdown-menu #filterMenu=\"nzDropdownMenu\">\n <div class=\"ant-table-filter-dropdown\">\n <ng-container [ngSwitch]=\"_f.type\">\n <div *ngSwitchCase=\"'keyword'\" class=\"st__filter-keyword\">\n <input\n type=\"text\"\n nz-input\n [attr.placeholder]=\"$any(_f).menus[0].text\"\n [(ngModel)]=\"$any(_f).menus[0].value\"\n />\n </div>\n <ul *ngSwitchDefault nz-menu>\n <ng-container *ngIf=\"_f.multiple\">\n <li nz-menu-item *ngFor=\"let filter of _f.menus\">\n <label nz-checkbox [(ngModel)]=\"filter.checked\">{{ filter.text }}</label>\n </li>\n </ng-container>\n <ng-container *ngIf=\"!_f.multiple\">\n <li nz-menu-item *ngFor=\"let filter of _f.menus\">\n <label\n nz-radio\n [ngModel]=\"filter.checked\"\n (ngModelChange)=\"_filterRadio(h.column, filter, $event)\"\n >{{ filter.text }}</label\n >\n </li>\n </ng-container>\n </ul>\n </ng-container>\n <div class=\"ant-table-filter-dropdown-btns\">\n <a class=\"ant-table-filter-dropdown-link confirm\" (click)=\"$any(_f).visible = false\">\n <span (click)=\"_filterConfirm(h.column)\">{{ _f.confirmText || locale.filterConfirm }}</span>\n </a>\n <a class=\"ant-table-filter-dropdown-link clear\" (click)=\"$any(_f).visible = false\">\n <span (click)=\"_filterClear(h.column)\">{{ _f.clearText || locale.filterReset }}</span>\n </a>\n </div>\n </div>\n </nz-dropdown-menu>\n </div>\n </ng-container>\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody class=\"st__body\">\n <ng-container *ngIf=\"!_loading\">\n <ng-template\n [ngTemplateOutlet]=\"bodyHeader!\"\n [ngTemplateOutletContext]=\"{ $implicit: _statistical }\"\n ></ng-template>\n </ng-container>\n <ng-template #bodyTpl let-i let-index=\"index\">\n <tr [attr.data-index]=\"index\" (click)=\"_rowClick($event, i, index)\" [ngClass]=\"i._rowClassName\">\n <td\n *ngIf=\"expand\"\n [nzShowExpand]=\"expand && i.showExpand !== false\"\n [nzExpand]=\"i.expand\"\n (nzExpandChange)=\"_expandChange(i, $event)\"\n (click)=\"_stopPropagation($event)\"\n nzWidth=\"50px\"\n ></td>\n <td\n *ngFor=\"let c of _columns; let cIdx = index\"\n [nzLeft]=\"!!c._left\"\n [nzRight]=\"!!c._right\"\n [attr.data-col-index]=\"cIdx\"\n [ngClass]=\"c._className!\"\n [attr.colspan]=\"c.colSpan\"\n >\n <span *ngIf=\"responsive\" class=\"ant-table-rep__title\">\n <ng-template [ngTemplateOutlet]=\"titleTpl\" [ngTemplateOutletContext]=\"{ $implicit: c.title }\"></ng-template>\n </span>\n <span>\n <ng-template\n #render\n [ngTemplateOutlet]=\"c.__render!\"\n [ngTemplateOutletContext]=\"{ $implicit: i, index: index, column: c }\"\n ></ng-template>\n <ng-container *ngIf=\"!c.__render; else render\">\n <ng-container [ngSwitch]=\"c.type\">\n <label\n *ngSwitchCase=\"'checkbox'\"\n nz-checkbox\n [nzDisabled]=\"i.disabled\"\n [ngModel]=\"i.checked\"\n (ngModelChange)=\"_checkSelection(i, $event)\"\n ></label>\n <label\n *ngSwitchCase=\"'radio'\"\n nz-radio\n [nzDisabled]=\"i.disabled\"\n [ngModel]=\"i.checked\"\n (ngModelChange)=\"_refRadio($event, i)\"\n ></label>\n <a\n *ngSwitchCase=\"'link'\"\n (click)=\"_click($event, i, c)\"\n [innerHTML]=\"i._values[cIdx]._text\"\n [attr.title]=\"i._values[cIdx].text\"\n ></a>\n <ng-container *ngIf=\"i._values[cIdx].text\">\n <nz-tag *ngSwitchCase=\"'tag'\" [nzColor]=\"i._values[cIdx].color\">\n <span [innerHTML]=\"i._values[cIdx]._text\"></span>\n </nz-tag>\n <nz-badge\n *ngSwitchCase=\"'badge'\"\n [nzStatus]=\"i._values[cIdx].color\"\n [nzText]=\"i._values[cIdx].text\"\n ></nz-badge>\n </ng-container>\n <ng-template *ngSwitchCase=\"'widget'\" st-widget-host [record]=\"i\" [column]=\"c\"></ng-template>\n <ng-container *ngSwitchDefault>\n <span\n *ngIf=\"c.safeType !== 'text'\"\n [innerHTML]=\"i._values[cIdx]._text\"\n [attr.title]=\"c._isTruncate ? i._values[cIdx].text : null\"\n ></span>\n <span\n *ngIf=\"c.safeType === 'text'\"\n [innerText]=\"i._values[cIdx]._text\"\n [attr.title]=\"c._isTruncate ? i._values[cIdx].text : null\"\n ></span>\n </ng-container>\n </ng-container>\n <ng-container *ngFor=\"let btn of i._values[cIdx].buttons; let last = last\">\n <a\n *ngIf=\"btn.children!.length > 0\"\n nz-dropdown\n [nzDropdownMenu]=\"btnMenu\"\n nzOverlayClassName=\"st__btn-sub\"\n >\n <span [innerHTML]=\"btn._text\"></span>\n <i nz-icon nzType=\"down\"></i>\n </a>\n <nz-dropdown-menu #btnMenu=\"nzDropdownMenu\">\n <ul nz-menu>\n <ng-container *ngFor=\"let subBtn of btn.children!\">\n <li *ngIf=\"subBtn.type !== 'divider'\" nz-menu-item [class.st__btn-disabled]=\"subBtn._disabled\">\n <ng-template\n [ngTemplateOutlet]=\"btnTpl\"\n [ngTemplateOutletContext]=\"{ $implicit: i, btn: subBtn }\"\n >\n </ng-template>\n </li>\n <li *ngIf=\"subBtn.type === 'divider'\" nz-menu-divider></li>\n </ng-container>\n </ul>\n </nz-dropdown-menu>\n <span *ngIf=\"btn.children!.length === 0\" [class.st__btn-disabled]=\"btn._disabled\">\n <ng-template [ngTemplateOutlet]=\"btnTpl\" [ngTemplateOutletContext]=\"{ $implicit: i, btn: btn }\">\n </ng-template>\n </span>\n <nz-divider *ngIf=\"!last\" nzType=\"vertical\"></nz-divider>\n </ng-container>\n </ng-container>\n </span>\n </td>\n </tr>\n <tr [nzExpand]=\"i.expand\">\n <ng-template\n [ngTemplateOutlet]=\"expand\"\n [ngTemplateOutletContext]=\"{ $implicit: i, index: index }\"\n ></ng-template>\n </tr>\n </ng-template>\n <ng-container *ngIf=\"!virtualScroll\">\n <ng-container *ngFor=\"let i of _data; let index = index\">\n <ng-template [ngTemplateOutlet]=\"bodyTpl\" [ngTemplateOutletContext]=\"{ $implicit: i, index: index }\">\n </ng-template>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"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 </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!_loading\">\n <ng-template [ngTemplateOutlet]=\"body!\" [ngTemplateOutletContext]=\"{ $implicit: _statistical }\"></ng-template>\n </ng-container>\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 <ng-container *ngFor=\"let i of contextmenuList\">\n <li nz-menu-item *ngIf=\"i.children!.length === 0\" (click)=\"i.fn!(i)\" [innerHTML]=\"i.text\"></li>\n <li nz-submenu *ngIf=\"i.children!.length > 0\" [nzTitle]=\"i.text\">\n <ul>\n <li nz-menu-item *ngFor=\"let ci of i.children\" (click)=\"ci.fn!(ci)\" [innerHTML]=\"ci.text\"></li>\n </ul>\n </li>\n </ng-container>\n </ul>\n</nz-dropdown-menu>\n",
2249
+ template: "<ng-template #titleTpl let-i>\n <span [innerHTML]=\"i._text\"></span>\n <small *ngIf=\"i.optional\" class=\"st__head-optional\" [innerHTML]=\"i.optional\"></small>\n <i\n *ngIf=\"i.optionalHelp\"\n class=\"st__head-tip\"\n nz-tooltip\n [nzTooltipTitle]=\"i.optionalHelp\"\n nz-icon\n nzType=\"question-circle\"\n ></i>\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]=\"_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>\n <thead *ngIf=\"showHeader\">\n <tr *ngFor=\"let row of _headers; let rowFirst = first\">\n <th *ngIf=\"rowFirst && expand\" nzWidth=\"50px\" [rowSpan]=\"_headers.length\"></th>\n <ng-container *ngFor=\"let h of row; let index = index; let last = last\">\n <th\n *let=\"h.column as _c\"\n [colSpan]=\"h.colSpan\"\n [rowSpan]=\"h.rowSpan\"\n [nzWidth]=\"$any(_c).width\"\n [nzLeft]=\"_c._left!\"\n [nzRight]=\"_c._right!\"\n [ngClass]=\"_c.className!\"\n [attr.data-col]=\"_c.indexKey\"\n [attr.data-col-index]=\"index\"\n [nzShowSort]=\"_c._sort.enabled\"\n [nzSortOrder]=\"$any(_c)._sort.default\"\n (nzSortOrderChange)=\"sort(_c, index, $event)\"\n [nzCustomFilter]=\"$any(_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 <nz-resize-handle *ngIf=\"$any(!last && !$any(_c).resizable.disabled)\" nzDirection=\"right\">\n <i></i>\n </nz-resize-handle>\n <ng-template\n #renderTitle\n [ngTemplateOutlet]=\"_c.__renderTitle!\"\n [ngTemplateOutletContext]=\"{ $implicit: h.column, index: index }\"\n ></ng-template>\n <ng-container *ngIf=\"!_c.__renderTitle; else renderTitle\">\n <ng-container [ngSwitch]=\"_c.type\">\n <ng-container *ngSwitchCase=\"'checkbox'\">\n <ng-container *ngIf=\"_c.selections!.length === 0\">\n <ng-template [ngTemplateOutlet]=\"chkAllTpl\" [ngTemplateOutletContext]=\"{ $implicit: false }\">\n </ng-template>\n </ng-container>\n <div *ngIf=\"_c.selections!.length > 0\" class=\"ant-table-selection\">\n <ng-template [ngTemplateOutlet]=\"chkAllTpl\" [ngTemplateOutletContext]=\"{ $implicit: true }\">\n </ng-template>\n <div *ngIf=\"_c.selections!.length\" 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 <i nz-icon nzType=\"down\"></i>\n </div>\n </div>\n <nz-dropdown-menu #selectionMenu=\"nzDropdownMenu\">\n <ul nz-menu class=\"ant-table-selection-menu\">\n <li\n nz-menu-item\n *ngFor=\"let rw of _c.selections\"\n (click)=\"_rowSelection(rw)\"\n [innerHTML]=\"rw.text\"\n ></li>\n </ul>\n </nz-dropdown-menu>\n </div>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ng-template\n [ngTemplateOutlet]=\"titleTpl\"\n [ngTemplateOutletContext]=\"{ $implicit: _c.title }\"\n ></ng-template>\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"_c.filter\">\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 ></st-filter>\n </ng-container>\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody class=\"st__body\">\n <ng-container *ngIf=\"!_loading\">\n <ng-template\n [ngTemplateOutlet]=\"bodyHeader!\"\n [ngTemplateOutletContext]=\"{ $implicit: _statistical }\"\n ></ng-template>\n </ng-container>\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 [ngClass]=\"i._rowClassName\"\n >\n <td\n *ngIf=\"expand\"\n [nzShowExpand]=\"expand && i.showExpand !== false\"\n [nzExpand]=\"i.expand\"\n (nzExpandChange)=\"_expandChange(i, $event)\"\n (click)=\"_stopPropagation($event)\"\n nzWidth=\"50px\"\n ></td>\n <td\n *ngFor=\"let c of _columns; let cIdx = index\"\n [nzLeft]=\"!!c._left\"\n [nzRight]=\"!!c._right\"\n [attr.data-col-index]=\"cIdx\"\n [ngClass]=\"c._className!\"\n [attr.colspan]=\"c.colSpan\"\n >\n <span *ngIf=\"responsive\" class=\"ant-table-rep__title\">\n <ng-template [ngTemplateOutlet]=\"titleTpl\" [ngTemplateOutletContext]=\"{ $implicit: c.title }\"></ng-template>\n </span>\n <st-td [data]=\"_data\" [i]=\"i\" [index]=\"index\" [c]=\"c\" [cIdx]=\"cIdx\" (n)=\"_handleTd($event)\"></st-td>\n </td>\n </tr>\n <tr [nzExpand]=\"i.expand\">\n <ng-template\n [ngTemplateOutlet]=\"expand\"\n [ngTemplateOutletContext]=\"{ $implicit: i, index: index }\"\n ></ng-template>\n </tr>\n </ng-template>\n <ng-container *ngIf=\"!virtualScroll\">\n <ng-container *ngFor=\"let i of _data; let index = index\">\n <ng-template [ngTemplateOutlet]=\"bodyTpl\" [ngTemplateOutletContext]=\"{ $implicit: i, index: index }\">\n </ng-template>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"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 </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!_loading\">\n <ng-template [ngTemplateOutlet]=\"body!\" [ngTemplateOutletContext]=\"{ $implicit: _statistical }\"></ng-template>\n </ng-container>\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 <ng-container *ngFor=\"let i of contextmenuList\">\n <li nz-menu-item *ngIf=\"i.children!.length === 0\" (click)=\"i.fn!(i)\" [innerHTML]=\"i.text\"></li>\n <li nz-submenu *ngIf=\"i.children!.length > 0\" [nzTitle]=\"i.text\">\n <ul>\n <li nz-menu-item *ngFor=\"let ci of i.children\" (click)=\"ci.fn!(ci)\" [innerHTML]=\"ci.text\"></li>\n </ul>\n </li>\n </ng-container>\n </ul>\n</nz-dropdown-menu>\n",
2315
2250
  providers: [STDataSource, STRowSource, STColumnSource, STExport, theme.DatePipe, theme.YNPipe, common.DecimalPipe],
2316
2251
  host: {
2317
2252
  '[class.st]': "true",
@@ -2329,11 +2264,8 @@
2329
2264
  STComponent.ctorParameters = function () { return [
2330
2265
  { type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [theme.ALAIN_I18N_TOKEN,] }] },
2331
2266
  { type: i0.ChangeDetectorRef },
2332
- { type: router.Router },
2333
2267
  { type: i0.ElementRef },
2334
2268
  { type: STExport },
2335
- { type: theme.ModalHelper },
2336
- { type: theme.DrawerHelper },
2337
2269
  { type: undefined, decorators: [{ type: i0.Inject, args: [common.DOCUMENT,] }] },
2338
2270
  { type: STColumnSource },
2339
2271
  { type: STDataSource },
@@ -2375,7 +2307,6 @@
2375
2307
  expandAccordion: [{ type: i0.Input }],
2376
2308
  expand: [{ type: i0.Input }],
2377
2309
  noResult: [{ type: i0.Input }],
2378
- rowClickTime: [{ type: i0.Input }],
2379
2310
  responsive: [{ type: i0.Input }],
2380
2311
  responsiveHideHeaderFooter: [{ type: i0.Input }],
2381
2312
  error: [{ type: i0.Output }],
@@ -2411,9 +2342,6 @@
2411
2342
  __decorate([
2412
2343
  decorator.InputBoolean()
2413
2344
  ], STComponent.prototype, "expandAccordion", void 0);
2414
- __decorate([
2415
- decorator.InputNumber()
2416
- ], STComponent.prototype, "rowClickTime", void 0);
2417
2345
  __decorate([
2418
2346
  decorator.InputBoolean()
2419
2347
  ], STComponent.prototype, "responsive", void 0);
@@ -2433,6 +2361,178 @@
2433
2361
  decorator.InputNumber()
2434
2362
  ], STComponent.prototype, "virtualMinBufferPx", void 0);
2435
2363
 
2364
+ var STFilterComponent = /** @class */ (function () {
2365
+ function STFilterComponent() {
2366
+ this.visible = false;
2367
+ this.locale = {};
2368
+ this.n = new i0.EventEmitter();
2369
+ this.handle = new i0.EventEmitter();
2370
+ }
2371
+ Object.defineProperty(STFilterComponent.prototype, "icon", {
2372
+ get: function () {
2373
+ return this.f.icon;
2374
+ },
2375
+ enumerable: false,
2376
+ configurable: true
2377
+ });
2378
+ STFilterComponent.prototype.show = function ($event) {
2379
+ $event.stopPropagation();
2380
+ };
2381
+ STFilterComponent.prototype.checkboxChange = function () {
2382
+ var _a;
2383
+ this.n.emit((_a = this.f.menus) === null || _a === void 0 ? void 0 : _a.filter(function (w) { return w.checked; }));
2384
+ };
2385
+ STFilterComponent.prototype.radioChange = function (item) {
2386
+ this.f.menus.forEach(function (i) { return (i.checked = false); });
2387
+ item.checked = !item.checked;
2388
+ this.n.emit(item);
2389
+ };
2390
+ STFilterComponent.prototype.confirm = function () {
2391
+ this.handle.emit(true);
2392
+ };
2393
+ STFilterComponent.prototype.reset = function () {
2394
+ this.handle.emit(false);
2395
+ };
2396
+ return STFilterComponent;
2397
+ }());
2398
+ STFilterComponent.decorators = [
2399
+ { type: i0.Component, args: [{
2400
+ selector: 'st-filter',
2401
+ template: "\n <span\n class=\"ant-table-filter-trigger\"\n [class.active]=\"visible || f.default\"\n nz-dropdown\n [nzDropdownMenu]=\"filterMenu\"\n nzTrigger=\"click\"\n [nzClickHide]=\"false\"\n [(nzVisible)]=\"visible\"\n nzOverlayClassName=\"st__filter-wrap\"\n (click)=\"show($event)\"\n >\n <i nz-icon [nzType]=\"icon.type\" [nzTheme]=\"icon.theme!\"></i>\n </span>\n <nz-dropdown-menu #filterMenu=\"nzDropdownMenu\">\n <div class=\"ant-table-filter-dropdown\">\n <ng-container [ngSwitch]=\"f.type\">\n <div *ngSwitchCase=\"'keyword'\" class=\"st__filter-keyword\">\n <input\n type=\"text\"\n nz-input\n [attr.placeholder]=\"f.placeholder\"\n [(ngModel)]=\"f.menus![0]!.value\"\n (ngModelChange)=\"n.emit($event)\"\n (keyup.enter)=\"confirm()\"\n />\n </div>\n <div *ngSwitchCase=\"'number'\" class=\"p-sm st__filter-number\">\n <nz-input-number\n [(ngModel)]=\"f.menus![0]!.value\"\n (ngModelChange)=\"n.emit($event)\"\n [nzMin]=\"f.number!.min!\"\n [nzMax]=\"f.number!.max!\"\n [nzStep]=\"f.number!.step!\"\n [nzPrecision]=\"f.number!.precision\"\n [nzPlaceHolder]=\"f.placeholder!\"\n class=\"width-100\"\n ></nz-input-number>\n </div>\n <div *ngSwitchCase=\"'date'\" class=\"p-sm st__filter-date\">\n <nz-date-picker\n *ngIf=\"!f.date!.range\"\n nzInline\n [nzMode]=\"f.date!.mode\"\n [(ngModel)]=\"f.menus![0]!.value\"\n (ngModelChange)=\"n.emit($event)\"\n [nzShowNow]=\"f.date!.showNow\"\n [nzShowToday]=\"f.date!.showToday\"\n [nzDisabledDate]=\"f.date!.disabledDate\"\n [nzDisabledTime]=\"f.date!.disabledTime\"\n ></nz-date-picker>\n <nz-range-picker\n *ngIf=\"f.date!.range\"\n nzInline\n [nzMode]=\"f.date!.mode\"\n [(ngModel)]=\"f.menus![0]!.value\"\n (ngModelChange)=\"n.emit($event)\"\n [nzShowNow]=\"f.date!.showNow\"\n [nzShowToday]=\"f.date!.showToday\"\n [nzDisabledDate]=\"f.date!.disabledDate\"\n [nzDisabledTime]=\"f.date!.disabledTime\"\n ></nz-range-picker>\n </div>\n <div *ngSwitchCase=\"'time'\" class=\"p-sm st__filter-time\"> </div>\n <div *ngSwitchCase=\"'custom'\" class=\"st__filter-custom\">\n <ng-template\n [ngTemplateOutlet]=\"f.custom!\"\n [ngTemplateOutletContext]=\"{ $implicit: f, col: col }\"\n ></ng-template>\n </div>\n <ul *ngSwitchDefault nz-menu>\n <ng-container *ngIf=\"f.multiple\">\n <li nz-menu-item *ngFor=\"let filter of f.menus\">\n <label nz-checkbox [(ngModel)]=\"filter.checked\" (ngModelChange)=\"checkboxChange()\">\n {{ filter.text }}\n </label>\n </li>\n </ng-container>\n <ng-container *ngIf=\"!f.multiple\">\n <li nz-menu-item *ngFor=\"let filter of f.menus\">\n <label nz-radio [ngModel]=\"filter.checked\" (ngModelChange)=\"radioChange(filter)\">\n {{ filter.text }}\n </label>\n </li>\n </ng-container>\n </ul>\n </ng-container>\n <div *ngIf=\"f.showOPArea\" class=\"ant-table-filter-dropdown-btns\">\n <a class=\"ant-table-filter-dropdown-link confirm\" (click)=\"visible = false\">\n <span (click)=\"confirm()\">{{ f.confirmText || locale.filterConfirm }}</span>\n </a>\n <a class=\"ant-table-filter-dropdown-link clear\" (click)=\"visible = false\">\n <span (click)=\"reset()\">{{ f.clearText || locale.filterReset }}</span>\n </a>\n </div>\n </div>\n </nz-dropdown-menu>\n ",
2402
+ host: {
2403
+ '[class.ant-table-filter-trigger-container]': "true",
2404
+ '[class.st__filter]': "true",
2405
+ '[class.ant-table-filter-trigger-container-open]': "visible"
2406
+ },
2407
+ preserveWhitespaces: false,
2408
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
2409
+ encapsulation: i0.ViewEncapsulation.None
2410
+ },] }
2411
+ ];
2412
+ STFilterComponent.propDecorators = {
2413
+ col: [{ type: i0.Input }],
2414
+ locale: [{ type: i0.Input }],
2415
+ f: [{ type: i0.Input }],
2416
+ n: [{ type: i0.Output }],
2417
+ handle: [{ type: i0.Output }]
2418
+ };
2419
+
2420
+ var STTdComponent = /** @class */ (function () {
2421
+ function STTdComponent(stComp, router, modalHelper, drawerHelper) {
2422
+ this.stComp = stComp;
2423
+ this.router = router;
2424
+ this.modalHelper = modalHelper;
2425
+ this.drawerHelper = drawerHelper;
2426
+ this.n = new i0.EventEmitter();
2427
+ }
2428
+ Object.defineProperty(STTdComponent.prototype, "routerState", {
2429
+ get: function () {
2430
+ var _a = this.stComp, pi = _a.pi, ps = _a.ps, total = _a.total;
2431
+ return { pi: pi, ps: ps, total: total };
2432
+ },
2433
+ enumerable: false,
2434
+ configurable: true
2435
+ });
2436
+ STTdComponent.prototype.report = function (type) {
2437
+ this.n.emit({ type: type, item: this.i, col: this.c });
2438
+ };
2439
+ STTdComponent.prototype._checkbox = function (value) {
2440
+ this.i.checked = value;
2441
+ this.report('checkbox');
2442
+ };
2443
+ STTdComponent.prototype._radio = function () {
2444
+ this.data.filter(function (w) { return !w.disabled; }).forEach(function (i) { return (i.checked = false); });
2445
+ this.i.checked = true;
2446
+ this.report('radio');
2447
+ };
2448
+ STTdComponent.prototype._link = function (e) {
2449
+ this._stopPropagation(e);
2450
+ var res = this.c.click(this.i, this.stComp);
2451
+ if (typeof res === 'string') {
2452
+ this.router.navigateByUrl(res, { state: this.routerState });
2453
+ }
2454
+ return false;
2455
+ };
2456
+ STTdComponent.prototype._stopPropagation = function (ev) {
2457
+ ev.preventDefault();
2458
+ ev.stopPropagation();
2459
+ };
2460
+ STTdComponent.prototype._btn = function (btn, ev) {
2461
+ var _a, _b;
2462
+ var _this = this;
2463
+ if (ev) {
2464
+ ev.stopPropagation();
2465
+ }
2466
+ var record = this.i;
2467
+ if (btn.type === 'modal' || btn.type === 'static') {
2468
+ var modal = btn.modal;
2469
+ var obj = (_a = {}, _a[modal.paramsName] = record, _a);
2470
+ this.modalHelper[btn.type === 'modal' ? 'create' : 'createStatic'](modal.component, Object.assign(Object.assign({}, obj), (modal.params && modal.params(record))), other.deepMergeKey({}, true, this.stComp['cog'].modal, modal))
2471
+ .pipe(operators.filter(function (w) { return typeof w !== 'undefined'; }))
2472
+ .subscribe(function (res) { return _this.btnCallback(record, btn, res); });
2473
+ return;
2474
+ }
2475
+ else if (btn.type === 'drawer') {
2476
+ var drawer = btn.drawer;
2477
+ var obj = (_b = {}, _b[drawer.paramsName] = record, _b);
2478
+ this.drawerHelper
2479
+ .create(drawer.title, drawer.component, Object.assign(Object.assign({}, obj), (drawer.params && drawer.params(record))), other.deepMergeKey({}, true, this.stComp['cog'].drawer, drawer))
2480
+ .pipe(operators.filter(function (w) { return typeof w !== 'undefined'; }))
2481
+ .subscribe(function (res) { return _this.btnCallback(record, btn, res); });
2482
+ return;
2483
+ }
2484
+ else if (btn.type === 'link') {
2485
+ var clickRes = this.btnCallback(record, btn);
2486
+ if (typeof clickRes === 'string') {
2487
+ this.router.navigateByUrl(clickRes, { state: this.routerState });
2488
+ }
2489
+ return;
2490
+ }
2491
+ this.btnCallback(record, btn);
2492
+ };
2493
+ STTdComponent.prototype.btnCallback = function (record, btn, modal) {
2494
+ if (!btn.click)
2495
+ return;
2496
+ if (typeof btn.click === 'string') {
2497
+ switch (btn.click) {
2498
+ case 'load':
2499
+ this.stComp.load();
2500
+ break;
2501
+ case 'reload':
2502
+ this.stComp.reload();
2503
+ break;
2504
+ }
2505
+ }
2506
+ else {
2507
+ return btn.click(record, modal, this.stComp);
2508
+ }
2509
+ };
2510
+ return STTdComponent;
2511
+ }());
2512
+ STTdComponent.decorators = [
2513
+ { type: i0.Component, args: [{
2514
+ selector: 'st-td',
2515
+ template: "\n <ng-template #btnTpl let-i>\n <ng-container *ngIf=\"!i.tooltip\">\n <ng-template [ngTemplateOutlet]=\"btnItemTpl\" [ngTemplateOutletContext]=\"{ $implicit: i }\"></ng-template>\n </ng-container>\n <span *ngIf=\"i.tooltip\" nz-tooltip [nzTooltipTitle]=\"i.tooltip\">\n <ng-template [ngTemplateOutlet]=\"btnItemTpl\" [ngTemplateOutletContext]=\"{ $implicit: i }\"></ng-template>\n </span>\n </ng-template>\n <ng-template #btnItemTpl let-i>\n <a\n *ngIf=\"i.pop\"\n nz-popconfirm\n [nzPopconfirmTitle]=\"i.pop.title\"\n [nzIcon]=\"i.pop.icon\"\n [nzCondition]=\"i.pop.condition(i)\"\n [nzCancelText]=\"i.pop.cancelText\"\n [nzOkText]=\"i.pop.okText\"\n [nzOkType]=\"i.pop.okType\"\n (nzOnConfirm)=\"_btn(i)\"\n class=\"st__btn-text\"\n [ngClass]=\"i.className\"\n (click)=\"_stopPropagation($event)\"\n >\n <ng-template [ngTemplateOutlet]=\"btnTextTpl\" [ngTemplateOutletContext]=\"{ $implicit: i }\"></ng-template>\n </a>\n <a *ngIf=\"!i.pop\" (click)=\"_btn(i, $event)\" class=\"st__btn-text\" [ngClass]=\"i.className\">\n <ng-template [ngTemplateOutlet]=\"btnTextTpl\" [ngTemplateOutletContext]=\"{ $implicit: i }\"></ng-template>\n </a>\n </ng-template>\n <ng-template #btnTextTpl let-i>\n <ng-container *ngIf=\"i.icon\">\n <i\n *ngIf=\"!i.icon.iconfont\"\n nz-icon\n [nzType]=\"i.icon.type\"\n [nzTheme]=\"i.icon.theme\"\n [nzSpin]=\"i.icon.spin\"\n [nzTwotoneColor]=\"i.icon.twoToneColor\"\n ></i>\n <i *ngIf=\"i.icon.iconfont\" nz-icon [nzIconfont]=\"i.icon.iconfont\"></i>\n </ng-container>\n <span [innerHTML]=\"i._text\" [ngClass]=\"{ 'pl-xs': i.icon }\"></span>\n </ng-template>\n <ng-template\n #render\n [ngTemplateOutlet]=\"c.__render!\"\n [ngTemplateOutletContext]=\"{ $implicit: i, index: index, column: c }\"\n ></ng-template>\n <ng-container *ngIf=\"!c.__render; else render\">\n <ng-container [ngSwitch]=\"c.type\">\n <label\n *ngSwitchCase=\"'checkbox'\"\n nz-checkbox\n [nzDisabled]=\"i.disabled\"\n [ngModel]=\"i.checked\"\n (ngModelChange)=\"_checkbox($event)\"\n ></label>\n <label\n *ngSwitchCase=\"'radio'\"\n nz-radio\n [nzDisabled]=\"i.disabled\"\n [ngModel]=\"i.checked\"\n (ngModelChange)=\"_radio()\"\n ></label>\n <a\n *ngSwitchCase=\"'link'\"\n (click)=\"_link($event)\"\n [innerHTML]=\"i._values[cIdx]._text\"\n [attr.title]=\"i._values[cIdx].text\"\n ></a>\n <ng-container *ngIf=\"i._values[cIdx].text\">\n <nz-tag *ngSwitchCase=\"'tag'\" [nzColor]=\"i._values[cIdx].color\">\n <span [innerHTML]=\"i._values[cIdx]._text\"></span>\n </nz-tag>\n <nz-badge\n *ngSwitchCase=\"'badge'\"\n [nzStatus]=\"i._values[cIdx].color\"\n [nzText]=\"i._values[cIdx].text\"\n ></nz-badge>\n </ng-container>\n <ng-template *ngSwitchCase=\"'widget'\" st-widget-host [record]=\"i\" [column]=\"c\"></ng-template\n ><ng-container *ngSwitchDefault>\n <span\n *ngIf=\"c.safeType !== 'text'\"\n [innerHTML]=\"i._values[cIdx]._text\"\n [attr.title]=\"c._isTruncate ? i._values[cIdx].text : null\"\n ></span>\n <span\n *ngIf=\"c.safeType === 'text'\"\n [innerText]=\"i._values[cIdx]._text\"\n [attr.title]=\"c._isTruncate ? i._values[cIdx].text : null\"\n ></span>\n </ng-container>\n </ng-container>\n <ng-container *ngFor=\"let btn of i._values[cIdx].buttons; let last = last\">\n <a *ngIf=\"btn.children!.length > 0\" nz-dropdown [nzDropdownMenu]=\"btnMenu\" nzOverlayClassName=\"st__btn-sub\">\n <span [innerHTML]=\"btn._text\"></span>\n <i nz-icon nzType=\"down\"></i>\n </a>\n <nz-dropdown-menu #btnMenu=\"nzDropdownMenu\">\n <ul nz-menu>\n <ng-container *ngFor=\"let subBtn of btn.children!\">\n <li *ngIf=\"subBtn.type !== 'divider'\" nz-menu-item [class.st__btn-disabled]=\"subBtn._disabled\">\n <ng-template [ngTemplateOutlet]=\"btnTpl\" [ngTemplateOutletContext]=\"{ $implicit: subBtn }\">\n </ng-template>\n </li>\n <li *ngIf=\"subBtn.type === 'divider'\" nz-menu-divider></li>\n </ng-container>\n </ul>\n </nz-dropdown-menu>\n <span *ngIf=\"btn.children!.length === 0\" [class.st__btn-disabled]=\"btn._disabled\">\n <ng-template [ngTemplateOutlet]=\"btnTpl\" [ngTemplateOutletContext]=\"{ $implicit: btn }\"> </ng-template>\n </span>\n <nz-divider *ngIf=\"!last\" nzType=\"vertical\"></nz-divider>\n </ng-container>\n </ng-container>\n ",
2516
+ preserveWhitespaces: false,
2517
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
2518
+ encapsulation: i0.ViewEncapsulation.None
2519
+ },] }
2520
+ ];
2521
+ STTdComponent.ctorParameters = function () { return [
2522
+ { type: STComponent, decorators: [{ type: i0.Host }] },
2523
+ { type: router.Router },
2524
+ { type: theme.ModalHelper },
2525
+ { type: theme.DrawerHelper }
2526
+ ]; };
2527
+ STTdComponent.propDecorators = {
2528
+ c: [{ type: i0.Input }],
2529
+ cIdx: [{ type: i0.Input }],
2530
+ data: [{ type: i0.Input }],
2531
+ i: [{ type: i0.Input }],
2532
+ index: [{ type: i0.Input }],
2533
+ n: [{ type: i0.Output }]
2534
+ };
2535
+
2436
2536
  var COMPONENTS = [STComponent, STRowDirective, STWidgetHostDirective];
2437
2537
  var STModule = /** @class */ (function () {
2438
2538
  function STModule() {
@@ -2458,9 +2558,11 @@
2458
2558
  tag.NzTagModule,
2459
2559
  input.NzInputModule,
2460
2560
  tooltip.NzToolTipModule,
2461
- resizable.NzResizableModule
2561
+ resizable.NzResizableModule,
2562
+ inputNumber.NzInputNumberModule,
2563
+ datePicker.NzDatePickerModule
2462
2564
  ],
2463
- declarations: COMPONENTS,
2565
+ declarations: __spreadArray(__spreadArray([], __read(COMPONENTS)), [STFilterComponent, STTdComponent]),
2464
2566
  exports: COMPONENTS
2465
2567
  },] }
2466
2568
  ];
@@ -2479,6 +2581,8 @@
2479
2581
  exports.STWidgetRegistry = STWidgetRegistry;
2480
2582
  exports.ST_DEFAULT_CONFIG = ST_DEFAULT_CONFIG;
2481
2583
  exports["ɵa"] = STRowSource;
2584
+ exports["ɵb"] = STFilterComponent;
2585
+ exports["ɵc"] = STTdComponent;
2482
2586
 
2483
2587
  Object.defineProperty(exports, '__esModule', { value: true });
2484
2588