@delon/abc 12.4.1 → 13.0.0

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 (758) hide show
  1. package/abc.d.ts +1 -0
  2. package/auto-focus/{autoFocus.d.ts → auto-focus.d.ts} +1 -0
  3. package/auto-focus/auto-focus.directive.d.ts +7 -2
  4. package/auto-focus/auto-focus.module.d.ts +5 -0
  5. package/auto-focus/package.json +6 -7
  6. package/avatar-list/avatar-list-item.component.d.ts +7 -4
  7. package/avatar-list/avatar-list.component.d.ts +4 -1
  8. package/avatar-list/avatar-list.d.ts +5 -0
  9. package/avatar-list/avatar-list.module.d.ts +9 -0
  10. package/avatar-list/package.json +6 -7
  11. package/avatar-list/style/index.less +6 -0
  12. package/count-down/count-down.component.d.ts +4 -1
  13. package/count-down/count-down.d.ts +1 -0
  14. package/count-down/count-down.module.d.ts +7 -0
  15. package/count-down/package.json +5 -6
  16. package/date-picker/date-picker.d.ts +5 -0
  17. package/date-picker/date-picker.module.d.ts +9 -0
  18. package/date-picker/package.json +6 -7
  19. package/date-picker/public_api.d.ts +1 -0
  20. package/date-picker/range-shortcut.component.d.ts +3 -0
  21. package/date-picker/range.directive.d.ts +3 -0
  22. package/down-file/down-file.d.ts +5 -0
  23. package/down-file/down-file.directive.d.ts +5 -2
  24. package/down-file/down-file.module.d.ts +7 -0
  25. package/down-file/package.json +6 -7
  26. package/ellipsis/ellipsis.component.d.ts +5 -2
  27. package/ellipsis/ellipsis.d.ts +1 -0
  28. package/ellipsis/ellipsis.module.d.ts +8 -0
  29. package/ellipsis/package.json +5 -6
  30. package/ellipsis/style/index.less +4 -0
  31. package/error-collect/error-collect.component.d.ts +3 -0
  32. package/error-collect/error-collect.d.ts +5 -0
  33. package/error-collect/error-collect.module.d.ts +7 -0
  34. package/error-collect/package.json +6 -7
  35. package/error-collect/style/index.less +1 -0
  36. package/{esm2015/abc.js → esm2020/abc.mjs} +0 -0
  37. package/esm2020/auto-focus/auto-focus.directive.mjs +48 -0
  38. package/esm2020/auto-focus/auto-focus.mjs +5 -0
  39. package/esm2020/auto-focus/auto-focus.module.mjs +17 -0
  40. package/{esm2015/auto-focus/index.js → esm2020/auto-focus/index.mjs} +0 -0
  41. package/esm2020/avatar-list/avatar-list-item.component.mjs +26 -0
  42. package/esm2020/avatar-list/avatar-list.component.mjs +89 -0
  43. package/esm2020/avatar-list/avatar-list.mjs +5 -0
  44. package/esm2020/avatar-list/avatar-list.module.mjs +22 -0
  45. package/{esm2015/avatar-list/public_api.js → esm2020/avatar-list/public_api.mjs} +0 -0
  46. package/esm2020/count-down/count-down.component.mjs +45 -0
  47. package/{esm2015/count-down/count-down.js → esm2020/count-down/count-down.mjs} +0 -0
  48. package/esm2020/count-down/count-down.module.mjs +20 -0
  49. package/{esm2015/count-down/public_api.js → esm2020/count-down/public_api.mjs} +0 -0
  50. package/esm2020/date-picker/date-picker.mjs +5 -0
  51. package/esm2020/date-picker/date-picker.module.mjs +22 -0
  52. package/{esm2015/date-picker/public_api.js → esm2020/date-picker/public_api.mjs} +2 -1
  53. package/esm2020/date-picker/range-shortcut.component.mjs +40 -0
  54. package/esm2020/date-picker/range.directive.mjs +174 -0
  55. package/esm2020/down-file/down-file.directive.mjs +114 -0
  56. package/esm2020/down-file/down-file.mjs +5 -0
  57. package/esm2020/down-file/down-file.module.mjs +20 -0
  58. package/{esm2015/down-file/public_api.js → esm2020/down-file/public_api.mjs} +0 -0
  59. package/esm2020/ellipsis/ellipsis.component.mjs +229 -0
  60. package/{esm2015/ellipsis/ellipsis.js → esm2020/ellipsis/ellipsis.mjs} +0 -0
  61. package/esm2020/ellipsis/ellipsis.module.mjs +21 -0
  62. package/{esm2015/ellipsis/public_api.js → esm2020/ellipsis/public_api.mjs} +0 -0
  63. package/esm2020/error-collect/error-collect.component.mjs +118 -0
  64. package/esm2020/error-collect/error-collect.mjs +5 -0
  65. package/esm2020/error-collect/error-collect.module.mjs +20 -0
  66. package/{esm2015/error-collect/public_api.js → esm2020/error-collect/public_api.mjs} +0 -0
  67. package/esm2020/exception/exception.component.mjs +105 -0
  68. package/{esm2015/exception/exception.js → esm2020/exception/exception.mjs} +0 -0
  69. package/esm2020/exception/exception.module.mjs +23 -0
  70. package/{esm2015/exception/public_api.js → esm2020/exception/public_api.mjs} +0 -0
  71. package/esm2020/footer-toolbar/footer-toolbar.component.mjs +44 -0
  72. package/esm2020/footer-toolbar/footer-toolbar.mjs +5 -0
  73. package/esm2020/footer-toolbar/footer-toolbar.module.mjs +21 -0
  74. package/{esm2015/footer-toolbar/public_api.js → esm2020/footer-toolbar/public_api.mjs} +0 -0
  75. package/esm2020/full-content/full-content-toggle.directive.mjs +24 -0
  76. package/esm2020/full-content/full-content.component.mjs +138 -0
  77. package/esm2020/full-content/full-content.mjs +5 -0
  78. package/esm2020/full-content/full-content.module.mjs +20 -0
  79. package/esm2020/full-content/full-content.service.mjs +23 -0
  80. package/{esm2015/full-content/public_api.js → esm2020/full-content/public_api.mjs} +0 -0
  81. package/esm2020/global-footer/global-footer-item.component.mjs +30 -0
  82. package/esm2020/global-footer/global-footer.component.mjs +73 -0
  83. package/esm2020/global-footer/global-footer.mjs +5 -0
  84. package/esm2020/global-footer/global-footer.module.mjs +21 -0
  85. package/{esm2015/global-footer/global-footer.types.js → esm2020/global-footer/global-footer.types.mjs} +0 -0
  86. package/{esm2015/global-footer/public_api.js → esm2020/global-footer/public_api.mjs} +0 -0
  87. package/esm2020/image/image.directive.mjs +146 -0
  88. package/{esm2015/image/image.js → esm2020/image/image.mjs} +0 -0
  89. package/esm2020/image/image.module.mjs +20 -0
  90. package/{esm2015/image/public_api.js → esm2020/image/public_api.mjs} +0 -0
  91. package/{esm2015/let/index.js → esm2020/let/index.mjs} +0 -0
  92. package/esm2020/let/let.directive.mjs +36 -0
  93. package/{esm2015/let/let.js → esm2020/let/let.mjs} +0 -0
  94. package/esm2020/let/let.module.mjs +17 -0
  95. package/esm2020/loading/loading.component.mjs +26 -0
  96. package/{esm2015/loading/loading.js → esm2020/loading/loading.mjs} +0 -0
  97. package/esm2020/loading/loading.module.mjs +24 -0
  98. package/esm2020/loading/loading.service.mjs +88 -0
  99. package/{esm2015/loading/loading.types.js → esm2020/loading/loading.types.mjs} +0 -0
  100. package/{esm2015/loading/public_api.js → esm2020/loading/public_api.mjs} +0 -0
  101. package/{esm2015/lodop/lodop.js → esm2020/lodop/lodop.mjs} +0 -0
  102. package/esm2020/lodop/lodop.module.mjs +12 -0
  103. package/esm2020/lodop/lodop.service.mjs +222 -0
  104. package/esm2020/lodop/lodop.types.mjs +2 -0
  105. package/{esm2015/lodop/public_api.js → esm2020/lodop/public_api.mjs} +0 -0
  106. package/esm2020/media/media.component.mjs +106 -0
  107. package/{esm2015/media/media.js → esm2020/media/media.mjs} +0 -0
  108. package/esm2020/media/media.module.mjs +19 -0
  109. package/esm2020/media/media.service.mjs +46 -0
  110. package/{esm2015/media/plyr.types.js → esm2020/media/plyr.types.mjs} +0 -0
  111. package/{esm2015/media/public_api.js → esm2020/media/public_api.mjs} +0 -0
  112. package/esm2020/notice-icon/notice-icon-tab.component.mjs +34 -0
  113. package/esm2020/notice-icon/notice-icon.component.mjs +80 -0
  114. package/esm2020/notice-icon/notice-icon.mjs +5 -0
  115. package/esm2020/notice-icon/notice-icon.module.mjs +60 -0
  116. package/{esm2015/notice-icon/notice-icon.types.js → esm2020/notice-icon/notice-icon.types.mjs} +0 -0
  117. package/{esm2015/notice-icon/public_api.js → esm2020/notice-icon/public_api.mjs} +0 -0
  118. package/esm2020/onboarding/onboarding.component.mjs +134 -0
  119. package/{esm2015/onboarding/onboarding.js → esm2020/onboarding/onboarding.mjs} +0 -0
  120. package/esm2020/onboarding/onboarding.module.mjs +25 -0
  121. package/esm2020/onboarding/onboarding.service.mjs +185 -0
  122. package/{esm2015/onboarding/onboarding.types.js → esm2020/onboarding/onboarding.types.mjs} +0 -0
  123. package/{esm2015/onboarding/public_api.js → esm2020/onboarding/public_api.mjs} +0 -0
  124. package/esm2020/page-header/page-header.component.mjs +247 -0
  125. package/esm2020/page-header/page-header.mjs +5 -0
  126. package/esm2020/page-header/page-header.module.mjs +24 -0
  127. package/{esm2015/page-header/public_api.js → esm2020/page-header/public_api.mjs} +0 -0
  128. package/esm2020/pdf/pdf.component.mjs +460 -0
  129. package/{esm2015/pdf/pdf.config.js → esm2020/pdf/pdf.config.mjs} +2 -2
  130. package/{esm2015/pdf/pdf.js → esm2020/pdf/pdf.mjs} +0 -0
  131. package/esm2020/pdf/pdf.module.mjs +20 -0
  132. package/{esm2015/pdf/pdf.types.js → esm2020/pdf/pdf.types.mjs} +0 -0
  133. package/{esm2015/pdf/public_api.js → esm2020/pdf/public_api.mjs} +0 -0
  134. package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
  135. package/{esm2015/qr/public_api.js → esm2020/qr/public_api.mjs} +0 -0
  136. package/esm2020/qr/qr.component.mjs +136 -0
  137. package/{esm2015/qr/qr.config.js → esm2020/qr/qr.config.mjs} +2 -2
  138. package/{esm2015/qr/qr.js → esm2020/qr/qr.mjs} +0 -0
  139. package/esm2020/qr/qr.module.mjs +19 -0
  140. package/{esm2015/qr/qr.types.js → esm2020/qr/qr.types.mjs} +0 -0
  141. package/{esm2015/quick-menu/public_api.js → esm2020/quick-menu/public_api.mjs} +0 -0
  142. package/esm2020/quick-menu/quick-menu.component.mjs +89 -0
  143. package/esm2020/quick-menu/quick-menu.mjs +5 -0
  144. package/esm2020/quick-menu/quick-menu.module.mjs +21 -0
  145. package/{esm2015/result/public_api.js → esm2020/result/public_api.mjs} +0 -0
  146. package/esm2020/result/result.component.mjs +61 -0
  147. package/{esm2015/result/result.js → esm2020/result/result.mjs} +0 -0
  148. package/esm2020/result/result.module.mjs +21 -0
  149. package/{esm2015/reuse-tab/lifecycle_hooks.js → esm2020/reuse-tab/lifecycle_hooks.mjs} +0 -0
  150. package/{esm2015/reuse-tab/public_api.js → esm2020/reuse-tab/public_api.mjs} +0 -0
  151. package/esm2020/reuse-tab/reuse-tab-context-menu.component.mjs +76 -0
  152. package/esm2020/reuse-tab/reuse-tab-context.component.mjs +33 -0
  153. package/esm2020/reuse-tab/reuse-tab-context.directive.mjs +35 -0
  154. package/esm2020/reuse-tab/reuse-tab-context.service.mjs +55 -0
  155. package/esm2020/reuse-tab/reuse-tab.component.mjs +318 -0
  156. package/{esm2015/reuse-tab/reuse-tab.interfaces.js → esm2020/reuse-tab/reuse-tab.interfaces.mjs} +0 -0
  157. package/esm2020/reuse-tab/reuse-tab.mjs +5 -0
  158. package/esm2020/reuse-tab/reuse-tab.module.mjs +29 -0
  159. package/esm2020/reuse-tab/reuse-tab.service.mjs +533 -0
  160. package/{esm2015/reuse-tab/reuse-tab.strategy.js → esm2020/reuse-tab/reuse-tab.strategy.mjs} +0 -0
  161. package/esm2020/se/public_api.mjs +5 -0
  162. package/esm2020/se/se-container.component.mjs +173 -0
  163. package/esm2020/se/se.component.mjs +233 -0
  164. package/esm2020/se/se.mjs +5 -0
  165. package/esm2020/se/se.module.mjs +23 -0
  166. package/{esm2015/se/se.types.js → esm2020/se/se.types.mjs} +0 -0
  167. package/{esm2015/sg/public_api.js → esm2020/sg/public_api.mjs} +0 -0
  168. package/esm2020/sg/sg-container.component.mjs +52 -0
  169. package/esm2020/sg/sg.component.mjs +67 -0
  170. package/esm2020/sg/sg.mjs +5 -0
  171. package/esm2020/sg/sg.module.mjs +20 -0
  172. package/{esm2015/st/public_api.js → esm2020/st/public_api.mjs} +0 -0
  173. package/esm2020/st/st-column-source.mjs +470 -0
  174. package/esm2020/st/st-data-source.mjs +448 -0
  175. package/esm2020/st/st-export.mjs +89 -0
  176. package/esm2020/st/st-filter.component.mjs +262 -0
  177. package/esm2020/st/st-row.directive.mjs +45 -0
  178. package/esm2020/st/st-widget-host.directive.mjs +31 -0
  179. package/esm2020/st/st-widget.mjs +26 -0
  180. package/esm2020/st/st.component.mjs +969 -0
  181. package/{esm2015/st/st.config.js → esm2020/st/st.config.mjs} +0 -0
  182. package/esm2020/st/st.interfaces.mjs +2 -0
  183. package/esm2020/st/st.mjs +5 -0
  184. package/esm2020/st/st.module.mjs +98 -0
  185. package/{esm2015/st/st.types.js → esm2020/st/st.types.mjs} +0 -0
  186. package/esm2020/sv/public_api.mjs +5 -0
  187. package/esm2020/sv/sv-container.component.mjs +125 -0
  188. package/esm2020/sv/sv-value.component.mjs +44 -0
  189. package/esm2020/sv/sv.component.mjs +113 -0
  190. package/esm2020/sv/sv.mjs +5 -0
  191. package/esm2020/sv/sv.module.mjs +25 -0
  192. package/{esm2015/tag-select/public_api.js → esm2020/tag-select/public_api.mjs} +0 -0
  193. package/esm2020/tag-select/tag-select.component.mjs +64 -0
  194. package/esm2020/tag-select/tag-select.mjs +5 -0
  195. package/esm2020/tag-select/tag-select.module.mjs +21 -0
  196. package/{esm2015/xlsx/public_api.js → esm2020/xlsx/public_api.mjs} +0 -0
  197. package/esm2020/xlsx/xlsx.directive.mjs +27 -0
  198. package/{esm2015/xlsx/xlsx.js → esm2020/xlsx/xlsx.mjs} +0 -0
  199. package/esm2020/xlsx/xlsx.module.mjs +19 -0
  200. package/esm2020/xlsx/xlsx.service.mjs +128 -0
  201. package/{esm2015/xlsx/xlsx.types.js → esm2020/xlsx/xlsx.types.mjs} +0 -0
  202. package/{esm2015/zip/public_api.js → esm2020/zip/public_api.mjs} +0 -0
  203. package/{esm2015/zip/zip.js → esm2020/zip/zip.mjs} +0 -0
  204. package/esm2020/zip/zip.module.mjs +15 -0
  205. package/esm2020/zip/zip.service.mjs +114 -0
  206. package/{esm2015/zip/zip.types.js → esm2020/zip/zip.types.mjs} +0 -0
  207. package/exception/exception.component.d.ts +3 -0
  208. package/exception/exception.d.ts +1 -0
  209. package/exception/exception.module.d.ts +10 -0
  210. package/exception/package.json +5 -6
  211. package/exception/style/index.less +9 -0
  212. package/fesm2015/{abc.js → abc.mjs} +1 -1
  213. package/fesm2015/abc.mjs.map +1 -0
  214. package/fesm2015/auto-focus.mjs +69 -0
  215. package/fesm2015/auto-focus.mjs.map +1 -0
  216. package/fesm2015/avatar-list.mjs +140 -0
  217. package/fesm2015/avatar-list.mjs.map +1 -0
  218. package/fesm2015/count-down.mjs +69 -0
  219. package/fesm2015/count-down.mjs.map +1 -0
  220. package/fesm2015/{datePicker.js → date-picker.mjs} +63 -40
  221. package/fesm2015/date-picker.mjs.map +1 -0
  222. package/fesm2015/down-file.mjs +141 -0
  223. package/fesm2015/down-file.mjs.map +1 -0
  224. package/fesm2015/ellipsis.mjs +255 -0
  225. package/fesm2015/ellipsis.mjs.map +1 -0
  226. package/fesm2015/error-collect.mjs +144 -0
  227. package/fesm2015/error-collect.mjs.map +1 -0
  228. package/fesm2015/exception.mjs +135 -0
  229. package/fesm2015/exception.mjs.map +1 -0
  230. package/fesm2015/footer-toolbar.mjs +70 -0
  231. package/fesm2015/footer-toolbar.mjs.map +1 -0
  232. package/fesm2015/full-content.mjs +202 -0
  233. package/fesm2015/full-content.mjs.map +1 -0
  234. package/fesm2015/global-footer.mjs +127 -0
  235. package/fesm2015/global-footer.mjs.map +1 -0
  236. package/fesm2015/image.mjs +165 -0
  237. package/fesm2015/image.mjs.map +1 -0
  238. package/fesm2015/let.mjs +59 -0
  239. package/fesm2015/let.mjs.map +1 -0
  240. package/fesm2015/loading.mjs +140 -0
  241. package/fesm2015/loading.mjs.map +1 -0
  242. package/fesm2015/{lodop.js → lodop.mjs} +15 -15
  243. package/fesm2015/lodop.mjs.map +1 -0
  244. package/fesm2015/media.mjs +170 -0
  245. package/fesm2015/media.mjs.map +1 -0
  246. package/fesm2015/notice-icon.mjs +173 -0
  247. package/fesm2015/notice-icon.mjs.map +1 -0
  248. package/fesm2015/onboarding.mjs +335 -0
  249. package/fesm2015/onboarding.mjs.map +1 -0
  250. package/fesm2015/page-header.mjs +277 -0
  251. package/fesm2015/page-header.mjs.map +1 -0
  252. package/fesm2015/{pdf.js → pdf.mjs} +81 -54
  253. package/fesm2015/pdf.mjs.map +1 -0
  254. package/fesm2015/qr.mjs +171 -0
  255. package/fesm2015/qr.mjs.map +1 -0
  256. package/fesm2015/quick-menu.mjs +114 -0
  257. package/fesm2015/quick-menu.mjs.map +1 -0
  258. package/fesm2015/result.mjs +89 -0
  259. package/fesm2015/result.mjs.map +1 -0
  260. package/fesm2015/{reuseTab.js → reuse-tab.mjs} +183 -160
  261. package/fesm2015/reuse-tab.mjs.map +1 -0
  262. package/fesm2015/se.mjs +443 -0
  263. package/fesm2015/se.mjs.map +1 -0
  264. package/fesm2015/sg.mjs +139 -0
  265. package/fesm2015/sg.mjs.map +1 -0
  266. package/fesm2015/{table.js → st.mjs} +610 -492
  267. package/fesm2015/st.mjs.map +1 -0
  268. package/fesm2015/sv.mjs +302 -0
  269. package/fesm2015/sv.mjs.map +1 -0
  270. package/fesm2015/tag-select.mjs +92 -0
  271. package/fesm2015/tag-select.mjs.map +1 -0
  272. package/fesm2015/{xlsx.js → xlsx.mjs} +42 -42
  273. package/fesm2015/xlsx.mjs.map +1 -0
  274. package/fesm2015/{zip.js → zip.mjs} +35 -32
  275. package/fesm2015/zip.mjs.map +1 -0
  276. package/fesm2020/abc.mjs +7 -0
  277. package/fesm2020/abc.mjs.map +1 -0
  278. package/fesm2020/auto-focus.mjs +69 -0
  279. package/fesm2020/auto-focus.mjs.map +1 -0
  280. package/fesm2020/avatar-list.mjs +137 -0
  281. package/fesm2020/avatar-list.mjs.map +1 -0
  282. package/fesm2020/count-down.mjs +69 -0
  283. package/fesm2020/count-down.mjs.map +1 -0
  284. package/fesm2020/date-picker.mjs +236 -0
  285. package/fesm2020/date-picker.mjs.map +1 -0
  286. package/fesm2020/down-file.mjs +138 -0
  287. package/fesm2020/down-file.mjs.map +1 -0
  288. package/fesm2020/ellipsis.mjs +253 -0
  289. package/fesm2020/ellipsis.mjs.map +1 -0
  290. package/fesm2020/error-collect.mjs +141 -0
  291. package/fesm2020/error-collect.mjs.map +1 -0
  292. package/fesm2020/exception.mjs +132 -0
  293. package/fesm2020/exception.mjs.map +1 -0
  294. package/fesm2020/footer-toolbar.mjs +68 -0
  295. package/fesm2020/footer-toolbar.mjs.map +1 -0
  296. package/fesm2020/full-content.mjs +199 -0
  297. package/fesm2020/full-content.mjs.map +1 -0
  298. package/fesm2020/global-footer.mjs +124 -0
  299. package/fesm2020/global-footer.mjs.map +1 -0
  300. package/fesm2020/image.mjs +170 -0
  301. package/fesm2020/image.mjs.map +1 -0
  302. package/fesm2020/let.mjs +57 -0
  303. package/fesm2020/let.mjs.map +1 -0
  304. package/fesm2020/loading.mjs +138 -0
  305. package/fesm2020/loading.mjs.map +1 -0
  306. package/fesm2020/lodop.mjs +239 -0
  307. package/fesm2020/lodop.mjs.map +1 -0
  308. package/fesm2020/media.mjs +172 -0
  309. package/fesm2020/media.mjs.map +1 -0
  310. package/fesm2020/notice-icon.mjs +173 -0
  311. package/fesm2020/notice-icon.mjs.map +1 -0
  312. package/fesm2020/onboarding.mjs +343 -0
  313. package/fesm2020/onboarding.mjs.map +1 -0
  314. package/fesm2020/page-header.mjs +274 -0
  315. package/fesm2020/page-header.mjs.map +1 -0
  316. package/fesm2020/pdf.mjs +506 -0
  317. package/fesm2020/pdf.mjs.map +1 -0
  318. package/fesm2020/qr.mjs +171 -0
  319. package/fesm2020/qr.mjs.map +1 -0
  320. package/fesm2020/quick-menu.mjs +114 -0
  321. package/fesm2020/quick-menu.mjs.map +1 -0
  322. package/fesm2020/result.mjs +86 -0
  323. package/fesm2020/result.mjs.map +1 -0
  324. package/fesm2020/reuse-tab.mjs +1106 -0
  325. package/fesm2020/reuse-tab.mjs.map +1 -0
  326. package/fesm2020/se.mjs +436 -0
  327. package/fesm2020/se.mjs.map +1 -0
  328. package/fesm2020/sg.mjs +137 -0
  329. package/fesm2020/sg.mjs.map +1 -0
  330. package/fesm2020/st.mjs +2469 -0
  331. package/fesm2020/st.mjs.map +1 -0
  332. package/fesm2020/sv.mjs +298 -0
  333. package/fesm2020/sv.mjs.map +1 -0
  334. package/fesm2020/tag-select.mjs +89 -0
  335. package/fesm2020/tag-select.mjs.map +1 -0
  336. package/fesm2020/xlsx.mjs +175 -0
  337. package/fesm2020/xlsx.mjs.map +1 -0
  338. package/fesm2020/zip.mjs +134 -0
  339. package/fesm2020/zip.mjs.map +1 -0
  340. package/footer-toolbar/footer-toolbar.component.d.ts +4 -1
  341. package/footer-toolbar/footer-toolbar.d.ts +5 -0
  342. package/footer-toolbar/footer-toolbar.module.d.ts +8 -0
  343. package/footer-toolbar/package.json +6 -7
  344. package/footer-toolbar/style/index.less +1 -0
  345. package/full-content/full-content-toggle.directive.d.ts +3 -0
  346. package/full-content/full-content.component.d.ts +6 -3
  347. package/full-content/full-content.d.ts +5 -0
  348. package/full-content/full-content.module.d.ts +7 -0
  349. package/full-content/full-content.service.d.ts +3 -0
  350. package/full-content/package.json +6 -7
  351. package/full-content/style/index.less +1 -0
  352. package/global-footer/global-footer-item.component.d.ts +5 -2
  353. package/global-footer/global-footer.component.d.ts +3 -0
  354. package/global-footer/global-footer.d.ts +5 -0
  355. package/global-footer/global-footer.module.d.ts +8 -0
  356. package/global-footer/package.json +6 -7
  357. package/global-footer/style/index.less +5 -0
  358. package/image/image.d.ts +1 -0
  359. package/image/image.directive.d.ts +4 -1
  360. package/image/image.module.d.ts +7 -0
  361. package/image/package.json +5 -6
  362. package/let/let.d.ts +1 -0
  363. package/let/let.directive.d.ts +3 -0
  364. package/let/let.module.d.ts +5 -0
  365. package/let/package.json +5 -6
  366. package/loading/loading.component.d.ts +3 -0
  367. package/loading/loading.d.ts +1 -0
  368. package/loading/loading.module.d.ts +10 -0
  369. package/loading/loading.service.d.ts +4 -1
  370. package/loading/package.json +5 -6
  371. package/loading/style/index.less +3 -0
  372. package/lodop/lodop.d.ts +1 -0
  373. package/lodop/lodop.module.d.ts +4 -0
  374. package/lodop/lodop.service.d.ts +3 -0
  375. package/lodop/lodop.types.d.ts +4 -0
  376. package/lodop/package.json +5 -6
  377. package/media/media.component.d.ts +4 -1
  378. package/media/media.d.ts +1 -0
  379. package/media/media.module.d.ts +6 -0
  380. package/media/media.service.d.ts +3 -0
  381. package/media/package.json +5 -6
  382. package/notice-icon/notice-icon-tab.component.d.ts +3 -0
  383. package/notice-icon/notice-icon.component.d.ts +4 -1
  384. package/notice-icon/notice-icon.d.ts +5 -0
  385. package/notice-icon/notice-icon.module.d.ts +16 -0
  386. package/notice-icon/package.json +6 -7
  387. package/notice-icon/style/index.less +17 -0
  388. package/onboarding/onboarding.component.d.ts +4 -1
  389. package/onboarding/onboarding.d.ts +1 -0
  390. package/onboarding/onboarding.module.d.ts +11 -0
  391. package/onboarding/onboarding.service.d.ts +3 -0
  392. package/onboarding/package.json +5 -6
  393. package/onboarding/schema.json +1 -1
  394. package/onboarding/style/index.less +6 -0
  395. package/package.json +274 -14
  396. package/page-header/package.json +6 -7
  397. package/page-header/page-header.component.d.ts +4 -1
  398. package/page-header/page-header.d.ts +5 -0
  399. package/page-header/page-header.module.d.ts +11 -0
  400. package/page-header/style/index.less +10 -0
  401. package/page-header/style/rtl.less +3 -0
  402. package/pdf/package.json +5 -6
  403. package/pdf/pdf.component.d.ts +5 -2
  404. package/pdf/pdf.d.ts +1 -0
  405. package/pdf/pdf.module.d.ts +7 -0
  406. package/qr/package.json +5 -6
  407. package/qr/qr.component.d.ts +13 -10
  408. package/qr/qr.d.ts +1 -0
  409. package/qr/qr.module.d.ts +6 -0
  410. package/quick-menu/package.json +6 -7
  411. package/quick-menu/quick-menu.component.d.ts +6 -3
  412. package/quick-menu/quick-menu.d.ts +5 -0
  413. package/quick-menu/quick-menu.module.d.ts +8 -0
  414. package/quick-menu/style/index.less +2 -0
  415. package/result/package.json +5 -6
  416. package/result/result.component.d.ts +6 -3
  417. package/result/result.d.ts +1 -0
  418. package/result/result.module.d.ts +8 -0
  419. package/result/style/index.less +7 -0
  420. package/reuse-tab/package.json +6 -7
  421. package/reuse-tab/reuse-tab-context-menu.component.d.ts +3 -0
  422. package/reuse-tab/reuse-tab-context.component.d.ts +4 -1
  423. package/reuse-tab/reuse-tab-context.directive.d.ts +3 -0
  424. package/reuse-tab/reuse-tab-context.service.d.ts +4 -1
  425. package/reuse-tab/reuse-tab.component.d.ts +13 -10
  426. package/reuse-tab/reuse-tab.d.ts +5 -0
  427. package/reuse-tab/reuse-tab.module.d.ts +15 -0
  428. package/reuse-tab/reuse-tab.service.d.ts +7 -4
  429. package/reuse-tab/style/index.less +4 -0
  430. package/se/package.json +6 -7
  431. package/se/public_api.d.ts +0 -1
  432. package/se/se-container.component.d.ts +18 -4
  433. package/se/se.component.d.ts +13 -8
  434. package/{footer-toolbar/footerToolbar.d.ts → se/se.d.ts} +1 -0
  435. package/se/se.module.d.ts +10 -0
  436. package/se/style/index.less +2 -0
  437. package/sg/package.json +6 -7
  438. package/sg/sg-container.component.d.ts +4 -1
  439. package/sg/sg.component.d.ts +4 -1
  440. package/{error-collect/errorCollect.d.ts → sg/sg.d.ts} +1 -0
  441. package/sg/sg.module.d.ts +7 -0
  442. package/st/package.json +6 -7
  443. package/st/st-column-source.d.ts +4 -1
  444. package/st/st-data-source.d.ts +3 -0
  445. package/st/st-export.d.ts +3 -0
  446. package/st/st-filter.component.d.ts +3 -0
  447. package/st/st-row.directive.d.ts +7 -2
  448. package/st/st-widget-host.directive.d.ts +5 -3
  449. package/st/st-widget.d.ts +3 -0
  450. package/st/st.component.d.ts +40 -12
  451. package/{down-file/downFile.d.ts → st/st.d.ts} +1 -0
  452. package/st/st.interfaces.d.ts +2 -2
  453. package/st/st.module.d.ts +27 -0
  454. package/st/style/index.less +8 -0
  455. package/sv/package.json +6 -7
  456. package/sv/public_api.d.ts +0 -1
  457. package/sv/style/index.less +8 -0
  458. package/sv/sv-container.component.d.ts +16 -3
  459. package/sv/sv-value.component.d.ts +3 -0
  460. package/sv/sv.component.d.ts +13 -10
  461. package/{avatar-list/avatarList.d.ts → sv/sv.d.ts} +1 -0
  462. package/sv/sv.module.d.ts +12 -0
  463. package/tag-select/package.json +6 -7
  464. package/tag-select/style/index.less +4 -0
  465. package/tag-select/style/rtl.less +3 -0
  466. package/tag-select/tag-select.component.d.ts +3 -0
  467. package/tag-select/tag-select.d.ts +5 -0
  468. package/tag-select/tag-select.module.d.ts +8 -0
  469. package/xlsx/package.json +5 -6
  470. package/xlsx/xlsx.d.ts +1 -0
  471. package/xlsx/xlsx.directive.d.ts +3 -0
  472. package/xlsx/xlsx.module.d.ts +6 -0
  473. package/xlsx/xlsx.service.d.ts +3 -0
  474. package/zip/package.json +5 -6
  475. package/zip/zip.d.ts +1 -0
  476. package/zip/zip.module.d.ts +5 -0
  477. package/zip/zip.service.d.ts +3 -0
  478. package/abc.metadata.json +0 -1
  479. package/auto-focus/autoFocus.metadata.json +0 -1
  480. package/avatar-list/avatarList.metadata.json +0 -1
  481. package/bundles/abc.umd.js +0 -19
  482. package/bundles/abc.umd.js.map +0 -1
  483. package/bundles/autoFocus.umd.js +0 -394
  484. package/bundles/autoFocus.umd.js.map +0 -1
  485. package/bundles/avatarList.umd.js +0 -465
  486. package/bundles/avatarList.umd.js.map +0 -1
  487. package/bundles/count-down.umd.js +0 -75
  488. package/bundles/count-down.umd.js.map +0 -1
  489. package/bundles/datePicker.umd.js +0 -552
  490. package/bundles/datePicker.umd.js.map +0 -1
  491. package/bundles/downFile.umd.js +0 -474
  492. package/bundles/downFile.umd.js.map +0 -1
  493. package/bundles/edit.umd.js +0 -776
  494. package/bundles/edit.umd.js.map +0 -1
  495. package/bundles/ellipsis.umd.js +0 -578
  496. package/bundles/ellipsis.umd.js.map +0 -1
  497. package/bundles/errorCollect.umd.js +0 -461
  498. package/bundles/errorCollect.umd.js.map +0 -1
  499. package/bundles/exception.umd.js +0 -150
  500. package/bundles/exception.umd.js.map +0 -1
  501. package/bundles/footerToolbar.umd.js +0 -401
  502. package/bundles/footerToolbar.umd.js.map +0 -1
  503. package/bundles/fullContent.umd.js +0 -550
  504. package/bundles/fullContent.umd.js.map +0 -1
  505. package/bundles/globalFooter.umd.js +0 -455
  506. package/bundles/globalFooter.umd.js.map +0 -1
  507. package/bundles/grid.umd.js +0 -470
  508. package/bundles/grid.umd.js.map +0 -1
  509. package/bundles/image.umd.js +0 -482
  510. package/bundles/image.umd.js.map +0 -1
  511. package/bundles/let.umd.js +0 -76
  512. package/bundles/let.umd.js.map +0 -1
  513. package/bundles/loading.umd.js +0 -181
  514. package/bundles/loading.umd.js.map +0 -1
  515. package/bundles/lodop.umd.js +0 -605
  516. package/bundles/lodop.umd.js.map +0 -1
  517. package/bundles/media.umd.js +0 -536
  518. package/bundles/media.umd.js.map +0 -1
  519. package/bundles/noticeIcon.umd.js +0 -468
  520. package/bundles/noticeIcon.umd.js.map +0 -1
  521. package/bundles/onboarding.umd.js +0 -370
  522. package/bundles/onboarding.umd.js.map +0 -1
  523. package/bundles/pageHeader.umd.js +0 -570
  524. package/bundles/pageHeader.umd.js.map +0 -1
  525. package/bundles/pdf.umd.js +0 -863
  526. package/bundles/pdf.umd.js.map +0 -1
  527. package/bundles/qr.umd.js +0 -491
  528. package/bundles/qr.umd.js.map +0 -1
  529. package/bundles/quickMenu.umd.js +0 -442
  530. package/bundles/quickMenu.umd.js.map +0 -1
  531. package/bundles/result.umd.js +0 -100
  532. package/bundles/result.umd.js.map +0 -1
  533. package/bundles/reuseTab.umd.js +0 -1522
  534. package/bundles/reuseTab.umd.js.map +0 -1
  535. package/bundles/table.umd.js +0 -2586
  536. package/bundles/table.umd.js.map +0 -1
  537. package/bundles/tagSelect.umd.js +0 -419
  538. package/bundles/tagSelect.umd.js.map +0 -1
  539. package/bundles/view.umd.js +0 -592
  540. package/bundles/view.umd.js.map +0 -1
  541. package/bundles/xlsx.umd.js +0 -529
  542. package/bundles/xlsx.umd.js.map +0 -1
  543. package/bundles/zip.umd.js +0 -482
  544. package/bundles/zip.umd.js.map +0 -1
  545. package/count-down/count-down.metadata.json +0 -1
  546. package/date-picker/datePicker.d.ts +0 -5
  547. package/date-picker/datePicker.metadata.json +0 -1
  548. package/down-file/downFile.metadata.json +0 -1
  549. package/ellipsis/ellipsis.metadata.json +0 -1
  550. package/error-collect/errorCollect.metadata.json +0 -1
  551. package/esm2015/auto-focus/auto-focus.directive.js +0 -42
  552. package/esm2015/auto-focus/auto-focus.module.js +0 -12
  553. package/esm2015/auto-focus/autoFocus.js +0 -5
  554. package/esm2015/avatar-list/avatar-list-item.component.js +0 -20
  555. package/esm2015/avatar-list/avatar-list.component.js +0 -89
  556. package/esm2015/avatar-list/avatar-list.module.js +0 -17
  557. package/esm2015/avatar-list/avatarList.js +0 -5
  558. package/esm2015/count-down/count-down.component.js +0 -36
  559. package/esm2015/count-down/count-down.module.js +0 -15
  560. package/esm2015/date-picker/date-picker.module.js +0 -17
  561. package/esm2015/date-picker/datePicker.js +0 -6
  562. package/esm2015/date-picker/range-shortcut.component.js +0 -26
  563. package/esm2015/date-picker/range.directive.js +0 -171
  564. package/esm2015/down-file/down-file.directive.js +0 -103
  565. package/esm2015/down-file/down-file.module.js +0 -15
  566. package/esm2015/down-file/downFile.js +0 -5
  567. package/esm2015/ellipsis/ellipsis.component.js +0 -224
  568. package/esm2015/ellipsis/ellipsis.module.js +0 -16
  569. package/esm2015/error-collect/error-collect.component.js +0 -112
  570. package/esm2015/error-collect/error-collect.module.js +0 -15
  571. package/esm2015/error-collect/errorCollect.js +0 -5
  572. package/esm2015/exception/exception.component.js +0 -103
  573. package/esm2015/exception/exception.module.js +0 -18
  574. package/esm2015/footer-toolbar/footer-toolbar.component.js +0 -46
  575. package/esm2015/footer-toolbar/footer-toolbar.module.js +0 -16
  576. package/esm2015/footer-toolbar/footerToolbar.js +0 -5
  577. package/esm2015/full-content/full-content-toggle.directive.js +0 -23
  578. package/esm2015/full-content/full-content.component.js +0 -135
  579. package/esm2015/full-content/full-content.module.js +0 -15
  580. package/esm2015/full-content/full-content.service.js +0 -21
  581. package/esm2015/full-content/fullContent.js +0 -5
  582. package/esm2015/global-footer/global-footer-item.component.js +0 -24
  583. package/esm2015/global-footer/global-footer.component.js +0 -77
  584. package/esm2015/global-footer/global-footer.module.js +0 -16
  585. package/esm2015/global-footer/globalFooter.js +0 -5
  586. package/esm2015/image/image.directive.js +0 -133
  587. package/esm2015/image/image.module.js +0 -15
  588. package/esm2015/let/let.directive.js +0 -31
  589. package/esm2015/let/let.module.js +0 -12
  590. package/esm2015/loading/loading.component.js +0 -26
  591. package/esm2015/loading/loading.module.js +0 -19
  592. package/esm2015/loading/loading.service.js +0 -92
  593. package/esm2015/lodop/lodop.module.js +0 -7
  594. package/esm2015/lodop/lodop.service.js +0 -219
  595. package/esm2015/lodop/lodop.types.js +0 -2
  596. package/esm2015/media/media.component.js +0 -104
  597. package/esm2015/media/media.module.js +0 -14
  598. package/esm2015/media/media.service.js +0 -53
  599. package/esm2015/notice-icon/notice-icon-tab.component.js +0 -30
  600. package/esm2015/notice-icon/notice-icon.component.js +0 -74
  601. package/esm2015/notice-icon/notice-icon.module.js +0 -35
  602. package/esm2015/notice-icon/noticeIcon.js +0 -5
  603. package/esm2015/onboarding/onboarding.component.js +0 -130
  604. package/esm2015/onboarding/onboarding.module.js +0 -20
  605. package/esm2015/onboarding/onboarding.service.js +0 -178
  606. package/esm2015/page-header/page-header.component.js +0 -216
  607. package/esm2015/page-header/page-header.module.js +0 -19
  608. package/esm2015/page-header/pageHeader.js +0 -5
  609. package/esm2015/pdf/pdf.component.js +0 -433
  610. package/esm2015/pdf/pdf.module.js +0 -15
  611. package/esm2015/qr/qr.component.js +0 -128
  612. package/esm2015/qr/qr.module.js +0 -14
  613. package/esm2015/quick-menu/quick-menu.component.js +0 -90
  614. package/esm2015/quick-menu/quick-menu.module.js +0 -16
  615. package/esm2015/quick-menu/quickMenu.js +0 -5
  616. package/esm2015/result/result.component.js +0 -62
  617. package/esm2015/result/result.module.js +0 -16
  618. package/esm2015/reuse-tab/reuse-tab-context-menu.component.js +0 -74
  619. package/esm2015/reuse-tab/reuse-tab-context.component.js +0 -32
  620. package/esm2015/reuse-tab/reuse-tab-context.directive.js +0 -33
  621. package/esm2015/reuse-tab/reuse-tab-context.service.js +0 -53
  622. package/esm2015/reuse-tab/reuse-tab.component.js +0 -300
  623. package/esm2015/reuse-tab/reuse-tab.module.js +0 -24
  624. package/esm2015/reuse-tab/reuse-tab.service.js +0 -534
  625. package/esm2015/reuse-tab/reuseTab.js +0 -5
  626. package/esm2015/se/edit.js +0 -5
  627. package/esm2015/se/public_api.js +0 -6
  628. package/esm2015/se/se-container.component.js +0 -115
  629. package/esm2015/se/se-title.component.js +0 -40
  630. package/esm2015/se/se.component.js +0 -214
  631. package/esm2015/se/se.module.js +0 -19
  632. package/esm2015/sg/grid.js +0 -5
  633. package/esm2015/sg/sg-container.component.js +0 -49
  634. package/esm2015/sg/sg.component.js +0 -65
  635. package/esm2015/sg/sg.module.js +0 -15
  636. package/esm2015/st/index.js +0 -2
  637. package/esm2015/st/st-column-source.js +0 -428
  638. package/esm2015/st/st-data-source.js +0 -429
  639. package/esm2015/st/st-export.js +0 -90
  640. package/esm2015/st/st-filter.component.js +0 -149
  641. package/esm2015/st/st-row.directive.js +0 -40
  642. package/esm2015/st/st-td.component.js +0 -232
  643. package/esm2015/st/st-widget-host.directive.js +0 -34
  644. package/esm2015/st/st-widget.js +0 -24
  645. package/esm2015/st/st.component.js +0 -784
  646. package/esm2015/st/st.interfaces.js +0 -2
  647. package/esm2015/st/st.module.js +0 -56
  648. package/esm2015/st/table.js +0 -8
  649. package/esm2015/sv/public_api.js +0 -6
  650. package/esm2015/sv/sv-container.component.js +0 -63
  651. package/esm2015/sv/sv-title.component.js +0 -40
  652. package/esm2015/sv/sv-value.component.js +0 -32
  653. package/esm2015/sv/sv.component.js +0 -105
  654. package/esm2015/sv/sv.module.js +0 -21
  655. package/esm2015/sv/view.js +0 -5
  656. package/esm2015/tag-select/tag-select.component.js +0 -70
  657. package/esm2015/tag-select/tag-select.module.js +0 -16
  658. package/esm2015/tag-select/tagSelect.js +0 -5
  659. package/esm2015/xlsx/xlsx.directive.js +0 -26
  660. package/esm2015/xlsx/xlsx.module.js +0 -14
  661. package/esm2015/xlsx/xlsx.service.js +0 -129
  662. package/esm2015/zip/zip.module.js +0 -10
  663. package/esm2015/zip/zip.service.js +0 -115
  664. package/exception/exception.metadata.json +0 -1
  665. package/fesm2015/abc.js.map +0 -1
  666. package/fesm2015/autoFocus.js +0 -59
  667. package/fesm2015/autoFocus.js.map +0 -1
  668. package/fesm2015/avatarList.js +0 -128
  669. package/fesm2015/avatarList.js.map +0 -1
  670. package/fesm2015/count-down.js +0 -56
  671. package/fesm2015/count-down.js.map +0 -1
  672. package/fesm2015/datePicker.js.map +0 -1
  673. package/fesm2015/downFile.js +0 -122
  674. package/fesm2015/downFile.js.map +0 -1
  675. package/fesm2015/edit.js +0 -396
  676. package/fesm2015/edit.js.map +0 -1
  677. package/fesm2015/ellipsis.js +0 -244
  678. package/fesm2015/ellipsis.js.map +0 -1
  679. package/fesm2015/errorCollect.js +0 -131
  680. package/fesm2015/errorCollect.js.map +0 -1
  681. package/fesm2015/exception.js +0 -125
  682. package/fesm2015/exception.js.map +0 -1
  683. package/fesm2015/footerToolbar.js +0 -66
  684. package/fesm2015/footerToolbar.js.map +0 -1
  685. package/fesm2015/fullContent.js +0 -191
  686. package/fesm2015/fullContent.js.map +0 -1
  687. package/fesm2015/globalFooter.js +0 -118
  688. package/fesm2015/globalFooter.js.map +0 -1
  689. package/fesm2015/grid.js +0 -129
  690. package/fesm2015/grid.js.map +0 -1
  691. package/fesm2015/image.js +0 -152
  692. package/fesm2015/image.js.map +0 -1
  693. package/fesm2015/let.js +0 -48
  694. package/fesm2015/let.js.map +0 -1
  695. package/fesm2015/loading.js +0 -138
  696. package/fesm2015/loading.js.map +0 -1
  697. package/fesm2015/lodop.js.map +0 -1
  698. package/fesm2015/media.js +0 -174
  699. package/fesm2015/media.js.map +0 -1
  700. package/fesm2015/noticeIcon.js +0 -141
  701. package/fesm2015/noticeIcon.js.map +0 -1
  702. package/fesm2015/onboarding.js +0 -328
  703. package/fesm2015/onboarding.js.map +0 -1
  704. package/fesm2015/pageHeader.js +0 -239
  705. package/fesm2015/pageHeader.js.map +0 -1
  706. package/fesm2015/pdf.js.map +0 -1
  707. package/fesm2015/qr.js +0 -159
  708. package/fesm2015/qr.js.map +0 -1
  709. package/fesm2015/quickMenu.js +0 -111
  710. package/fesm2015/quickMenu.js.map +0 -1
  711. package/fesm2015/result.js +0 -83
  712. package/fesm2015/result.js.map +0 -1
  713. package/fesm2015/reuseTab.js.map +0 -1
  714. package/fesm2015/table.js.map +0 -1
  715. package/fesm2015/tagSelect.js +0 -90
  716. package/fesm2015/tagSelect.js.map +0 -1
  717. package/fesm2015/view.js +0 -256
  718. package/fesm2015/view.js.map +0 -1
  719. package/fesm2015/xlsx.js.map +0 -1
  720. package/fesm2015/zip.js.map +0 -1
  721. package/footer-toolbar/footerToolbar.metadata.json +0 -1
  722. package/full-content/fullContent.d.ts +0 -4
  723. package/full-content/fullContent.metadata.json +0 -1
  724. package/global-footer/globalFooter.d.ts +0 -4
  725. package/global-footer/globalFooter.metadata.json +0 -1
  726. package/image/image.metadata.json +0 -1
  727. package/let/let.metadata.json +0 -1
  728. package/loading/loading.metadata.json +0 -1
  729. package/lodop/lodop.metadata.json +0 -1
  730. package/media/media.metadata.json +0 -1
  731. package/notice-icon/noticeIcon.d.ts +0 -4
  732. package/notice-icon/noticeIcon.metadata.json +0 -1
  733. package/onboarding/onboarding.metadata.json +0 -1
  734. package/page-header/pageHeader.d.ts +0 -4
  735. package/page-header/pageHeader.metadata.json +0 -1
  736. package/pdf/pdf.metadata.json +0 -1
  737. package/qr/qr.metadata.json +0 -1
  738. package/quick-menu/quickMenu.d.ts +0 -4
  739. package/quick-menu/quickMenu.metadata.json +0 -1
  740. package/result/result.metadata.json +0 -1
  741. package/reuse-tab/reuseTab.d.ts +0 -4
  742. package/reuse-tab/reuseTab.metadata.json +0 -1
  743. package/se/edit.d.ts +0 -4
  744. package/se/edit.metadata.json +0 -1
  745. package/se/se-title.component.d.ts +0 -10
  746. package/sg/grid.d.ts +0 -4
  747. package/sg/grid.metadata.json +0 -1
  748. package/st/index.d.ts +0 -1
  749. package/st/st-td.component.d.ts +0 -27
  750. package/st/table.d.ts +0 -7
  751. package/st/table.metadata.json +0 -1
  752. package/sv/sv-title.component.d.ts +0 -10
  753. package/sv/view.d.ts +0 -4
  754. package/sv/view.metadata.json +0 -1
  755. package/tag-select/tagSelect.d.ts +0 -4
  756. package/tag-select/tagSelect.metadata.json +0 -1
  757. package/xlsx/xlsx.metadata.json +0 -1
  758. package/zip/zip.metadata.json +0 -1
@@ -0,0 +1,2469 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, Directive, Host, Input, Optional, Inject, EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Output, ViewChild, NgModule } from '@angular/core';
3
+ import * as i1$1 from '@delon/theme';
4
+ import { ALAIN_I18N_TOKEN, DatePipe, YNPipe } from '@delon/theme';
5
+ import { warn, deepCopy, deepGet, deepMergeKey } from '@delon/util/other';
6
+ import * as i1 from '@angular/platform-browser';
7
+ import * as i3 from '@delon/acl';
8
+ import { DelonACLModule } from '@delon/acl';
9
+ import { HttpParams } from '@angular/common/http';
10
+ import { of, Subject, from, isObservable } from 'rxjs';
11
+ import { map, takeUntil, filter } from 'rxjs/operators';
12
+ import * as i12 from '@angular/common';
13
+ import { DOCUMENT, DecimalPipe, CommonModule } from '@angular/common';
14
+ import * as i3$1 from '@delon/util/format';
15
+ import * as i1$2 from '@delon/abc/xlsx';
16
+ import { __decorate } from 'tslib';
17
+ import { toBoolean, InputNumber, InputBoolean } from '@delon/util/decorator';
18
+ import * as i5$1 from '@delon/util/config';
19
+ import * as i6 from 'ng-zorro-antd/dropdown';
20
+ import { NzDropDownModule } from 'ng-zorro-antd/dropdown';
21
+ import * as i7 from 'ng-zorro-antd/checkbox';
22
+ import { NzCheckboxModule } from 'ng-zorro-antd/checkbox';
23
+ import * as i8$1 from 'ng-zorro-antd/table';
24
+ import { NzTableModule } from 'ng-zorro-antd/table';
25
+ import * as i9 from 'ng-zorro-antd/resizable';
26
+ import { NzResizableModule } from 'ng-zorro-antd/resizable';
27
+ import * as i2 from 'ng-zorro-antd/input-number';
28
+ import { NzInputNumberModule } from 'ng-zorro-antd/input-number';
29
+ import * as i3$2 from 'ng-zorro-antd/date-picker';
30
+ import { NzDatePickerModule } from 'ng-zorro-antd/date-picker';
31
+ import * as i5 from 'ng-zorro-antd/radio';
32
+ import { NzRadioModule } from 'ng-zorro-antd/radio';
33
+ import * as i14 from 'ng-zorro-antd/icon';
34
+ import { NzIconModule } from 'ng-zorro-antd/icon';
35
+ import * as i8 from 'ng-zorro-antd/input';
36
+ import { NzInputModule } from 'ng-zorro-antd/input';
37
+ import * as i15 from '@angular/forms';
38
+ import { FormsModule } from '@angular/forms';
39
+ import * as i11 from 'ng-zorro-antd/menu';
40
+ import { NzMenuModule } from 'ng-zorro-antd/menu';
41
+ import * as i13 from 'ng-zorro-antd/tooltip';
42
+ import { NzToolTipModule } from 'ng-zorro-antd/tooltip';
43
+ import * as i16 from '@delon/abc/let';
44
+ import { LetModule } from '@delon/abc/let';
45
+ import * as i17 from '@angular/router';
46
+ import * as i19 from 'ng-zorro-antd/tag';
47
+ import { NzTagModule } from 'ng-zorro-antd/tag';
48
+ import * as i20 from 'ng-zorro-antd/badge';
49
+ import { NzBadgeModule } from 'ng-zorro-antd/badge';
50
+ import * as i21 from 'ng-zorro-antd/divider';
51
+ import { NzDividerModule } from 'ng-zorro-antd/divider';
52
+ import * as i22 from 'ng-zorro-antd/popconfirm';
53
+ import { NzPopconfirmModule } from 'ng-zorro-antd/popconfirm';
54
+
55
+ class STRowSource {
56
+ constructor() {
57
+ this.titles = {};
58
+ this.rows = {};
59
+ }
60
+ add(type, path, ref) {
61
+ this[type === 'title' ? 'titles' : 'rows'][path] = ref;
62
+ }
63
+ getTitle(path) {
64
+ return this.titles[path];
65
+ }
66
+ getRow(path) {
67
+ return this.rows[path];
68
+ }
69
+ }
70
+ STRowSource.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: STRowSource, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
71
+ STRowSource.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: STRowSource });
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: STRowSource, decorators: [{
73
+ type: Injectable
74
+ }] });
75
+ class STRowDirective {
76
+ constructor(ref, source) {
77
+ this.ref = ref;
78
+ this.source = source;
79
+ }
80
+ ngOnInit() {
81
+ this.source.add(this.type, this.id, this.ref);
82
+ }
83
+ }
84
+ STRowDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: STRowDirective, deps: [{ token: i0.TemplateRef }, { token: STRowSource, host: true }], target: i0.ɵɵFactoryTarget.Directive });
85
+ STRowDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: STRowDirective, selector: "[st-row]", inputs: { id: ["st-row", "id"], type: "type" }, ngImport: i0 });
86
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: STRowDirective, decorators: [{
87
+ type: Directive,
88
+ args: [{ selector: '[st-row]' }]
89
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: STRowSource, decorators: [{
90
+ type: Host
91
+ }] }]; }, propDecorators: { id: [{
92
+ type: Input,
93
+ args: ['st-row']
94
+ }], type: [{
95
+ type: Input
96
+ }] } });
97
+
98
+ class STWidgetRegistry {
99
+ constructor() {
100
+ this._widgets = {};
101
+ }
102
+ get widgets() {
103
+ return this._widgets;
104
+ }
105
+ register(type, widget) {
106
+ this._widgets[type] = widget;
107
+ }
108
+ has(type) {
109
+ return this._widgets.hasOwnProperty(type);
110
+ }
111
+ get(type) {
112
+ return this._widgets[type];
113
+ }
114
+ }
115
+ STWidgetRegistry.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: STWidgetRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
116
+ STWidgetRegistry.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: STWidgetRegistry, providedIn: 'root' });
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: STWidgetRegistry, decorators: [{
118
+ type: Injectable,
119
+ args: [{ providedIn: 'root' }]
120
+ }] });
121
+
122
+ class STColumnSource {
123
+ constructor(dom, rowSource, acl, i18nSrv, stWidgetRegistry) {
124
+ this.dom = dom;
125
+ this.rowSource = rowSource;
126
+ this.acl = acl;
127
+ this.i18nSrv = i18nSrv;
128
+ this.stWidgetRegistry = stWidgetRegistry;
129
+ }
130
+ setCog(val) {
131
+ this.cog = val;
132
+ }
133
+ fixPop(i, def) {
134
+ if (i.pop == null || i.pop === false) {
135
+ i.pop = false;
136
+ return;
137
+ }
138
+ let pop = {
139
+ ...def
140
+ };
141
+ if (typeof i.pop === 'string') {
142
+ pop.title = i.pop;
143
+ }
144
+ else if (typeof i.pop === 'object') {
145
+ pop = {
146
+ ...pop,
147
+ ...i.pop
148
+ };
149
+ }
150
+ if (typeof pop.condition !== 'function') {
151
+ pop.condition = () => false;
152
+ }
153
+ i.pop = pop;
154
+ }
155
+ btnCoerce(list) {
156
+ if (!list)
157
+ return [];
158
+ const ret = [];
159
+ const { modal, drawer, pop, btnIcon } = this.cog;
160
+ for (const item of list) {
161
+ if (this.acl && item.acl && !this.acl.can(item.acl)) {
162
+ continue;
163
+ }
164
+ if (item.type === 'modal' || item.type === 'static') {
165
+ if (item.modal == null || item.modal.component == null) {
166
+ if (typeof ngDevMode === 'undefined' || ngDevMode) {
167
+ console.warn(`[st] Should specify modal parameter when type is modal or static`);
168
+ }
169
+ item.type = 'none';
170
+ }
171
+ else {
172
+ item.modal = { ...{ paramsName: 'record', size: 'lg' }, ...modal, ...item.modal };
173
+ }
174
+ }
175
+ if (item.type === 'drawer') {
176
+ if (item.drawer == null || item.drawer.component == null) {
177
+ if (typeof ngDevMode === 'undefined' || ngDevMode) {
178
+ console.warn(`[st] Should specify drawer parameter when type is drawer`);
179
+ }
180
+ item.type = 'none';
181
+ }
182
+ else {
183
+ item.drawer = { ...{ paramsName: 'record', size: 'lg' }, ...drawer, ...item.drawer };
184
+ }
185
+ }
186
+ if (item.type === 'del' && typeof item.pop === 'undefined') {
187
+ item.pop = true;
188
+ }
189
+ // pop
190
+ this.fixPop(item, pop);
191
+ if (item.icon) {
192
+ item.icon = {
193
+ ...btnIcon,
194
+ ...(typeof item.icon === 'string' ? { type: item.icon } : item.icon)
195
+ };
196
+ }
197
+ item.children = item.children && item.children.length > 0 ? this.btnCoerce(item.children) : [];
198
+ // i18n
199
+ if (item.i18n && this.i18nSrv) {
200
+ item.text = this.i18nSrv.fanyi(item.i18n);
201
+ }
202
+ ret.push(item);
203
+ }
204
+ this.btnCoerceIf(ret);
205
+ return ret;
206
+ }
207
+ btnCoerceIf(list) {
208
+ for (const item of list) {
209
+ if (!item.iif)
210
+ item.iif = () => true;
211
+ item.iifBehavior = item.iifBehavior || this.cog.iifBehavior;
212
+ if (item.children && item.children.length > 0) {
213
+ this.btnCoerceIf(item.children);
214
+ }
215
+ else {
216
+ item.children = [];
217
+ }
218
+ }
219
+ }
220
+ fixedCoerce(list) {
221
+ const countReduce = (a, b) => a + +b.width.toString().replace('px', '');
222
+ // left width
223
+ list
224
+ .filter(w => w.fixed && w.fixed === 'left' && w.width)
225
+ .forEach((item, idx) => (item._left = `${list.slice(0, idx).reduce(countReduce, 0)}px`));
226
+ // right width
227
+ list
228
+ .filter(w => w.fixed && w.fixed === 'right' && w.width)
229
+ .reverse()
230
+ .forEach((item, idx) => (item._right = `${idx > 0 ? list.slice(-idx).reduce(countReduce, 0) : 0}px`));
231
+ }
232
+ sortCoerce(item) {
233
+ const res = this.fixSortCoerce(item);
234
+ res.reName = {
235
+ ...this.cog.sortReName,
236
+ ...res.reName
237
+ };
238
+ return res;
239
+ }
240
+ fixSortCoerce(item) {
241
+ if (typeof item.sort === 'undefined') {
242
+ return { enabled: false };
243
+ }
244
+ let res = {};
245
+ if (typeof item.sort === 'string') {
246
+ res.key = item.sort;
247
+ }
248
+ else if (typeof item.sort !== 'boolean') {
249
+ res = item.sort;
250
+ }
251
+ else if (typeof item.sort === 'boolean') {
252
+ res.compare = (a, b) => a[item.indexKey] - b[item.indexKey];
253
+ }
254
+ if (!res.key) {
255
+ res.key = item.indexKey;
256
+ }
257
+ res.enabled = true;
258
+ return res;
259
+ }
260
+ filterCoerce(item) {
261
+ if (item.filter == null) {
262
+ return null;
263
+ }
264
+ let res = item.filter;
265
+ res.type = res.type || 'default';
266
+ res.showOPArea = res.showOPArea !== false;
267
+ let icon = 'filter';
268
+ let iconTheme = 'fill';
269
+ let fixMenus = true;
270
+ let value = undefined;
271
+ switch (res.type) {
272
+ case 'keyword':
273
+ icon = 'search';
274
+ iconTheme = 'outline';
275
+ break;
276
+ case 'number':
277
+ icon = 'search';
278
+ iconTheme = 'outline';
279
+ res.number = {
280
+ step: 1,
281
+ min: -Infinity,
282
+ max: Infinity,
283
+ ...res.number
284
+ };
285
+ break;
286
+ case 'date':
287
+ icon = 'calendar';
288
+ iconTheme = 'outline';
289
+ res.date = {
290
+ range: false,
291
+ mode: 'date',
292
+ showToday: true,
293
+ showNow: false,
294
+ ...res.date
295
+ };
296
+ break;
297
+ default:
298
+ fixMenus = false;
299
+ break;
300
+ }
301
+ if (fixMenus && (res.menus == null || res.menus.length === 0)) {
302
+ res.menus = [{ value }];
303
+ }
304
+ if (res.menus.length === 0) {
305
+ return null;
306
+ }
307
+ if (typeof res.multiple === 'undefined') {
308
+ res.multiple = true;
309
+ }
310
+ res.confirmText = res.confirmText || this.cog.filterConfirmText;
311
+ res.clearText = res.clearText || this.cog.filterClearText;
312
+ res.key = res.key || item.indexKey;
313
+ res.icon = res.icon || icon;
314
+ const baseIcon = { type: icon, theme: iconTheme };
315
+ if (typeof res.icon === 'string') {
316
+ res.icon = { ...baseIcon, type: res.icon };
317
+ }
318
+ else {
319
+ res.icon = { ...baseIcon, ...res.icon };
320
+ }
321
+ this.updateDefault(res);
322
+ if (this.acl) {
323
+ res.menus = res.menus.filter(w => this.acl.can(w.acl));
324
+ }
325
+ if (res.menus.length <= 0) {
326
+ res = null;
327
+ }
328
+ return res;
329
+ }
330
+ restoreRender(item) {
331
+ if (item.renderTitle) {
332
+ item.__renderTitle =
333
+ typeof item.renderTitle === 'string'
334
+ ? this.rowSource.getTitle(item.renderTitle)
335
+ : item.renderTitle;
336
+ }
337
+ if (item.render) {
338
+ item.__render =
339
+ typeof item.render === 'string' ? this.rowSource.getRow(item.render) : item.render;
340
+ }
341
+ }
342
+ widgetCoerce(item) {
343
+ if (item.type !== 'widget')
344
+ return;
345
+ if (item.widget == null || !this.stWidgetRegistry.has(item.widget.type)) {
346
+ delete item.type;
347
+ if (typeof ngDevMode === 'undefined' || ngDevMode) {
348
+ warn(`st: No widget for type "${item.widget?.type}"`);
349
+ }
350
+ }
351
+ }
352
+ genHeaders(rootColumns) {
353
+ const rows = [];
354
+ const widths = [];
355
+ const fillRowCells = (columns, colIndex, rowIndex = 0) => {
356
+ // Init rows
357
+ rows[rowIndex] = rows[rowIndex] || [];
358
+ let currentColIndex = colIndex;
359
+ const colSpans = columns.map(column => {
360
+ const cell = {
361
+ column,
362
+ colStart: currentColIndex,
363
+ hasSubColumns: false
364
+ };
365
+ let colSpan = 1;
366
+ const subColumns = column.children;
367
+ if (Array.isArray(subColumns) && subColumns.length > 0) {
368
+ colSpan = fillRowCells(subColumns, currentColIndex, rowIndex + 1).reduce((total, count) => total + count, 0);
369
+ cell.hasSubColumns = true;
370
+ }
371
+ else {
372
+ widths.push(cell.column.width || '');
373
+ }
374
+ if ('colSpan' in column) {
375
+ colSpan = column.colSpan;
376
+ }
377
+ if ('rowSpan' in column) {
378
+ cell.rowSpan = column.rowSpan;
379
+ }
380
+ cell.colSpan = colSpan;
381
+ cell.colEnd = cell.colStart + colSpan - 1;
382
+ rows[rowIndex].push(cell);
383
+ currentColIndex += colSpan;
384
+ return colSpan;
385
+ });
386
+ return colSpans;
387
+ };
388
+ fillRowCells(rootColumns, 0);
389
+ // Handle `rowSpan`
390
+ const rowCount = rows.length;
391
+ for (let rowIndex = 0; rowIndex < rowCount; rowIndex += 1) {
392
+ rows[rowIndex].forEach(cell => {
393
+ if (!('rowSpan' in cell) && !cell.hasSubColumns) {
394
+ cell.rowSpan = rowCount - rowIndex;
395
+ }
396
+ });
397
+ }
398
+ return { headers: rows, headerWidths: rowCount > 1 ? widths : null };
399
+ }
400
+ cleanCond(list) {
401
+ const res = [];
402
+ const copyList = deepCopy(list);
403
+ for (const item of copyList) {
404
+ if (item.iif && !item.iif(item)) {
405
+ continue;
406
+ }
407
+ if (this.acl && item.acl && !this.acl.can(item.acl)) {
408
+ continue;
409
+ }
410
+ if (Array.isArray(item.children) && item.children.length > 0) {
411
+ item.children = this.cleanCond(item.children);
412
+ }
413
+ res.push(item);
414
+ }
415
+ return res;
416
+ }
417
+ process(list, options) {
418
+ if (!list || list.length === 0)
419
+ throw new Error(`[st]: the columns property muse be define!`);
420
+ const { noIndex } = this.cog;
421
+ let checkboxCount = 0;
422
+ let radioCount = 0;
423
+ let point = 0;
424
+ const columns = [];
425
+ const processItem = (item) => {
426
+ // index
427
+ if (item.index) {
428
+ if (!Array.isArray(item.index)) {
429
+ item.index = item.index.toString().split('.');
430
+ }
431
+ item.indexKey = item.index.join('.');
432
+ }
433
+ // #region title
434
+ const tit = (typeof item.title === 'string' ? { text: item.title } : item.title) || {};
435
+ if (tit.i18n && this.i18nSrv) {
436
+ tit.text = this.i18nSrv.fanyi(tit.i18n);
437
+ }
438
+ if (tit.text) {
439
+ tit._text = this.dom.bypassSecurityTrustHtml(tit.text);
440
+ }
441
+ item.title = tit;
442
+ // #endregion
443
+ // no
444
+ if (item.type === 'no') {
445
+ item.noIndex = item.noIndex == null ? noIndex : item.noIndex;
446
+ }
447
+ // checkbox
448
+ if (item.selections == null) {
449
+ item.selections = [];
450
+ }
451
+ if (item.type === 'checkbox') {
452
+ ++checkboxCount;
453
+ if (!item.width) {
454
+ item.width = `${item.selections.length > 0 ? 62 : 50}px`;
455
+ }
456
+ }
457
+ if (this.acl) {
458
+ item.selections = item.selections.filter(w => this.acl.can(w.acl));
459
+ }
460
+ // radio
461
+ if (item.type === 'radio') {
462
+ ++radioCount;
463
+ item.selections = [];
464
+ if (!item.width) {
465
+ item.width = '50px';
466
+ }
467
+ }
468
+ // types
469
+ if (item.type === 'yn') {
470
+ item.yn = { truth: true, ...this.cog.yn, ...item.yn };
471
+ }
472
+ // date
473
+ if (item.type === 'date') {
474
+ item.dateFormat = item.dateFormat || this.cog.date?.format;
475
+ }
476
+ if ((item.type === 'link' && typeof item.click !== 'function') ||
477
+ (item.type === 'badge' && item.badge == null) ||
478
+ (item.type === 'tag' && item.tag == null) ||
479
+ (item.type === 'enum' && item.enum == null)) {
480
+ item.type = '';
481
+ }
482
+ item._isTruncate = !!item.width && options.widthMode.strictBehavior === 'truncate' && item.type !== 'img';
483
+ // className
484
+ if (!item.className) {
485
+ item.className = {
486
+ number: 'text-right',
487
+ currency: 'text-right',
488
+ date: 'text-center'
489
+ }[item.type];
490
+ }
491
+ item._className = item.className || (item._isTruncate ? 'text-truncate' : null);
492
+ // width
493
+ if (typeof item.width === 'number') {
494
+ item._width = item.width;
495
+ item.width = `${item.width}px`;
496
+ }
497
+ item._left = false;
498
+ item._right = false;
499
+ item.safeType = item.safeType ?? options.safeType;
500
+ // sorter
501
+ item._sort = this.sortCoerce(item);
502
+ // filter
503
+ item.filter = this.filterCoerce(item);
504
+ // buttons
505
+ item.buttons = this.btnCoerce(item.buttons);
506
+ // widget
507
+ this.widgetCoerce(item);
508
+ // restore custom row
509
+ this.restoreRender(item);
510
+ // resizable
511
+ item.resizable = {
512
+ disabled: true,
513
+ bounds: 'window',
514
+ minWidth: 60,
515
+ maxWidth: 360,
516
+ preview: true,
517
+ ...options.resizable,
518
+ ...(typeof item.resizable === 'boolean' ? { disabled: !item.resizable } : item.resizable)
519
+ };
520
+ item.__point = point++;
521
+ return item;
522
+ };
523
+ const processList = (data) => {
524
+ for (const item of data) {
525
+ columns.push(processItem(item));
526
+ if (Array.isArray(item.children)) {
527
+ processList(item.children);
528
+ }
529
+ }
530
+ };
531
+ const copyList = this.cleanCond(list);
532
+ processList(copyList);
533
+ if (checkboxCount > 1) {
534
+ throw new Error(`[st]: just only one column checkbox`);
535
+ }
536
+ if (radioCount > 1) {
537
+ throw new Error(`[st]: just only one column radio`);
538
+ }
539
+ this.fixedCoerce(columns);
540
+ return {
541
+ columns: columns.filter(w => !Array.isArray(w.children) || w.children.length === 0),
542
+ ...this.genHeaders(copyList)
543
+ };
544
+ }
545
+ restoreAllRender(columns) {
546
+ columns.forEach(i => this.restoreRender(i));
547
+ }
548
+ updateDefault(filter) {
549
+ if (filter.type === 'default') {
550
+ filter.default = filter.menus.findIndex(w => w.checked) !== -1;
551
+ }
552
+ else {
553
+ filter.default = !!filter.menus[0].value;
554
+ }
555
+ return this;
556
+ }
557
+ cleanFilter(col) {
558
+ const f = col.filter;
559
+ f.default = false;
560
+ if (f.type === 'default') {
561
+ f.menus.forEach(i => (i.checked = false));
562
+ }
563
+ else {
564
+ f.menus[0].value = undefined;
565
+ }
566
+ return this;
567
+ }
568
+ }
569
+ STColumnSource.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: STColumnSource, deps: [{ token: i1.DomSanitizer }, { token: STRowSource, host: true }, { token: i3.ACLService, optional: true }, { token: ALAIN_I18N_TOKEN, optional: true }, { token: STWidgetRegistry }], target: i0.ɵɵFactoryTarget.Injectable });
570
+ STColumnSource.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: STColumnSource });
571
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: STColumnSource, decorators: [{
572
+ type: Injectable
573
+ }], ctorParameters: function () { return [{ type: i1.DomSanitizer }, { type: STRowSource, decorators: [{
574
+ type: Host
575
+ }] }, { type: i3.ACLService, decorators: [{
576
+ type: Optional
577
+ }] }, { type: undefined, decorators: [{
578
+ type: Optional
579
+ }, {
580
+ type: Inject,
581
+ args: [ALAIN_I18N_TOKEN]
582
+ }] }, { type: STWidgetRegistry }]; } });
583
+
584
+ class STDataSource {
585
+ constructor(http, datePipe, ynPipe, numberPipe, currencySrv, dom) {
586
+ this.http = http;
587
+ this.datePipe = datePipe;
588
+ this.ynPipe = ynPipe;
589
+ this.numberPipe = numberPipe;
590
+ this.currencySrv = currencySrv;
591
+ this.dom = dom;
592
+ this.sortTick = 0;
593
+ }
594
+ process(options) {
595
+ let data$;
596
+ let isRemote = false;
597
+ const { data, res, total, page, pi, ps, paginator, columns } = options;
598
+ let retTotal;
599
+ let retPs;
600
+ let retList;
601
+ let retPi;
602
+ let rawData;
603
+ let showPage = page.show;
604
+ if (typeof data === 'string') {
605
+ isRemote = true;
606
+ data$ = this.getByRemote(data, options).pipe(map(result => {
607
+ rawData = result;
608
+ let ret;
609
+ if (Array.isArray(result)) {
610
+ ret = result;
611
+ retTotal = ret.length;
612
+ retPs = retTotal;
613
+ showPage = false;
614
+ }
615
+ else {
616
+ // list
617
+ ret = deepGet(result, res.reName.list, []);
618
+ if (ret == null || !Array.isArray(ret)) {
619
+ ret = [];
620
+ }
621
+ // total
622
+ const resultTotal = res.reName.total && deepGet(result, res.reName.total, null);
623
+ retTotal = resultTotal == null ? total || 0 : +resultTotal;
624
+ }
625
+ return deepCopy(ret);
626
+ }));
627
+ }
628
+ else if (Array.isArray(data)) {
629
+ data$ = of(data);
630
+ }
631
+ else {
632
+ // a cold observable
633
+ data$ = data;
634
+ }
635
+ if (!isRemote) {
636
+ data$ = data$.pipe(
637
+ // sort
638
+ map((result) => {
639
+ rawData = result;
640
+ let copyResult = deepCopy(result);
641
+ const sorterFn = this.getSorterFn(columns);
642
+ if (sorterFn) {
643
+ copyResult = copyResult.sort(sorterFn);
644
+ }
645
+ return copyResult;
646
+ }),
647
+ // filter
648
+ map((result) => {
649
+ columns
650
+ .filter(w => w.filter)
651
+ .forEach(c => {
652
+ const filter = c.filter;
653
+ const values = this.getFilteredData(filter);
654
+ if (values.length === 0)
655
+ return;
656
+ const onFilter = filter.fn;
657
+ if (typeof onFilter !== 'function') {
658
+ if (typeof ngDevMode === 'undefined' || ngDevMode) {
659
+ console.warn(`[st] Muse provide the fn function in filter`);
660
+ }
661
+ return;
662
+ }
663
+ result = result.filter(record => values.some(v => onFilter(v, record)));
664
+ });
665
+ return result;
666
+ }),
667
+ // paging
668
+ map((result) => {
669
+ if (paginator && page.front) {
670
+ const maxPageIndex = Math.ceil(result.length / ps);
671
+ retPi = Math.max(1, pi > maxPageIndex ? maxPageIndex : pi);
672
+ retTotal = result.length;
673
+ if (page.show === true) {
674
+ return result.slice((retPi - 1) * ps, retPi * ps);
675
+ }
676
+ }
677
+ return result;
678
+ }));
679
+ }
680
+ // pre-process
681
+ if (typeof res.process === 'function') {
682
+ data$ = data$.pipe(map(result => res.process(result, rawData)));
683
+ }
684
+ data$ = data$.pipe(map(result => this.optimizeData({ result, columns, rowClassName: options.rowClassName })));
685
+ return data$.pipe(map(result => {
686
+ retList = result;
687
+ const realTotal = retTotal || total;
688
+ const realPs = retPs || ps;
689
+ return {
690
+ pi: retPi,
691
+ ps: retPs,
692
+ total: retTotal,
693
+ list: retList,
694
+ statistical: this.genStatistical(columns, retList, rawData),
695
+ pageShow: typeof showPage === 'undefined' ? realTotal > realPs : showPage
696
+ };
697
+ }));
698
+ }
699
+ get(item, col, idx) {
700
+ try {
701
+ const safeHtml = col.safeType === 'safeHtml';
702
+ if (col.format) {
703
+ const formatRes = col.format(item, col, idx) || '';
704
+ return {
705
+ text: formatRes,
706
+ _text: safeHtml ? this.dom.bypassSecurityTrustHtml(formatRes) : formatRes,
707
+ org: formatRes,
708
+ safeType: col.safeType
709
+ };
710
+ }
711
+ const value = deepGet(item, col.index, col.default);
712
+ let text = value;
713
+ let color;
714
+ switch (col.type) {
715
+ case 'no':
716
+ text = this.getNoIndex(item, col, idx);
717
+ break;
718
+ case 'img':
719
+ text = value ? `<img src="${value}" class="img">` : '';
720
+ break;
721
+ case 'number':
722
+ text = this.numberPipe.transform(value, col.numberDigits);
723
+ break;
724
+ case 'currency':
725
+ text = this.currencySrv.format(value, col.currency?.format);
726
+ break;
727
+ case 'date':
728
+ text = value === col.default ? col.default : this.datePipe.transform(value, col.dateFormat);
729
+ break;
730
+ case 'yn':
731
+ text = this.ynPipe.transform(value === col.yn.truth, col.yn.yes, col.yn.no, col.yn.mode, false);
732
+ break;
733
+ case 'enum':
734
+ text = col.enum[value];
735
+ break;
736
+ case 'tag':
737
+ case 'badge':
738
+ const data = col.type === 'tag' ? col.tag : col.badge;
739
+ if (data && data[text]) {
740
+ const dataItem = data[text];
741
+ text = dataItem.text;
742
+ color = dataItem.color;
743
+ }
744
+ else {
745
+ text = '';
746
+ }
747
+ break;
748
+ }
749
+ if (text == null)
750
+ text = '';
751
+ return {
752
+ text,
753
+ _text: safeHtml ? this.dom.bypassSecurityTrustHtml(text) : text,
754
+ org: value,
755
+ color,
756
+ safeType: col.safeType,
757
+ buttons: []
758
+ };
759
+ }
760
+ catch (ex) {
761
+ const text = `INVALID DATA`;
762
+ console.error(`Failed to get data`, item, col, ex);
763
+ return { text, _text: text, org: text, buttons: [], safeType: 'text' };
764
+ }
765
+ }
766
+ getByRemote(url, options) {
767
+ const { req, page, paginator, pi, ps, singleSort, multiSort, columns } = options;
768
+ const method = (req.method || 'GET').toUpperCase();
769
+ let params = {};
770
+ const reName = req.reName;
771
+ if (paginator) {
772
+ if (req.type === 'page') {
773
+ params = {
774
+ [reName.pi]: page.zeroIndexed ? pi - 1 : pi,
775
+ [reName.ps]: ps
776
+ };
777
+ }
778
+ else {
779
+ params = {
780
+ [reName.skip]: (pi - 1) * ps,
781
+ [reName.limit]: ps
782
+ };
783
+ }
784
+ }
785
+ params = {
786
+ ...params,
787
+ ...req.params,
788
+ ...this.getReqSortMap(singleSort, multiSort, columns),
789
+ ...this.getReqFilterMap(columns)
790
+ };
791
+ let reqOptions = {
792
+ params,
793
+ body: req.body,
794
+ headers: req.headers
795
+ };
796
+ if (method === 'POST' && req.allInBody === true) {
797
+ reqOptions = {
798
+ body: { ...req.body, ...params },
799
+ headers: req.headers
800
+ };
801
+ }
802
+ if (typeof req.process === 'function') {
803
+ reqOptions = req.process(reqOptions);
804
+ }
805
+ if (!(reqOptions.params instanceof HttpParams)) {
806
+ reqOptions.params = new HttpParams({ fromObject: reqOptions.params });
807
+ }
808
+ if (typeof options.customRequest === 'function') {
809
+ return options.customRequest({ method, url, options: reqOptions });
810
+ }
811
+ return this.http.request(method, url, reqOptions);
812
+ }
813
+ optimizeData(options) {
814
+ const { result, columns, rowClassName } = options;
815
+ for (let i = 0, len = result.length; i < len; i++) {
816
+ result[i]._values = columns.map(c => {
817
+ if (Array.isArray(c.buttons) && c.buttons.length > 0) {
818
+ return { buttons: this.genButtons(c.buttons, result[i], c), _text: '' };
819
+ }
820
+ return this.get(result[i], c, i);
821
+ });
822
+ result[i]._rowClassName = [rowClassName ? rowClassName(result[i], i) : null, result[i].className]
823
+ .filter(w => !!w)
824
+ .join(' ');
825
+ }
826
+ return result;
827
+ }
828
+ getNoIndex(item, col, idx) {
829
+ return typeof col.noIndex === 'function' ? col.noIndex(item, col, idx) : col.noIndex + idx;
830
+ }
831
+ genButtons(_btns, item, col) {
832
+ const fn = (btns) => {
833
+ return deepCopy(btns).filter(btn => {
834
+ const result = btn.iif(item, btn, col);
835
+ const isRenderDisabled = btn.iifBehavior === 'disabled';
836
+ btn._result = result;
837
+ btn._disabled = !result && isRenderDisabled;
838
+ if (btn.children.length > 0) {
839
+ btn.children = fn(btn.children);
840
+ }
841
+ delete btn.iif;
842
+ return result || isRenderDisabled;
843
+ });
844
+ };
845
+ const res = fn(_btns);
846
+ const fnText = (btns) => {
847
+ for (const btn of btns) {
848
+ btn._text = typeof btn.text === 'function' ? btn.text(item, btn) : btn.text || '';
849
+ if (btn.children.length > 0) {
850
+ btn.children = fnText(btn.children);
851
+ }
852
+ }
853
+ return btns;
854
+ };
855
+ return fnText(res);
856
+ }
857
+ // #region sort
858
+ getValidSort(columns) {
859
+ return columns.filter(item => item._sort && item._sort.enabled && item._sort.default).map(item => item._sort);
860
+ }
861
+ getSorterFn(columns) {
862
+ const sortList = this.getValidSort(columns);
863
+ if (sortList.length === 0) {
864
+ return;
865
+ }
866
+ const sortItem = sortList[0];
867
+ if (sortItem.compare === null) {
868
+ return;
869
+ }
870
+ if (typeof sortItem.compare !== 'function') {
871
+ if (typeof ngDevMode === 'undefined' || ngDevMode) {
872
+ console.warn(`[st] Muse provide the compare function in sort`);
873
+ }
874
+ return;
875
+ }
876
+ return (a, b) => {
877
+ const result = sortItem.compare(a, b);
878
+ if (result !== 0) {
879
+ return sortItem.default === 'descend' ? -result : result;
880
+ }
881
+ return 0;
882
+ };
883
+ }
884
+ get nextSortTick() {
885
+ return ++this.sortTick;
886
+ }
887
+ getReqSortMap(singleSort, multiSort, columns) {
888
+ let ret = {};
889
+ const sortList = this.getValidSort(columns);
890
+ if (multiSort) {
891
+ const ms = {
892
+ key: 'sort',
893
+ separator: '-',
894
+ nameSeparator: '.',
895
+ keepEmptyKey: true,
896
+ arrayParam: false,
897
+ ...multiSort
898
+ };
899
+ const sortMap = sortList
900
+ .sort((a, b) => a.tick - b.tick)
901
+ .map(item => item.key + ms.nameSeparator + ((item.reName || {})[item.default] || item.default));
902
+ ret = { [ms.key]: ms.arrayParam ? sortMap : sortMap.join(ms.separator) };
903
+ return sortMap.length === 0 && ms.keepEmptyKey === false ? {} : ret;
904
+ }
905
+ if (sortList.length === 0)
906
+ return ret;
907
+ const mapData = sortList[0];
908
+ let sortFiled = mapData.key;
909
+ let sortValue = (sortList[0].reName || {})[mapData.default] || mapData.default;
910
+ if (singleSort) {
911
+ sortValue = sortFiled + (singleSort.nameSeparator || '.') + sortValue;
912
+ sortFiled = singleSort.key || 'sort';
913
+ }
914
+ ret[sortFiled] = sortValue;
915
+ return ret;
916
+ }
917
+ // #endregion
918
+ // #region filter
919
+ getFilteredData(filter) {
920
+ return filter.type === 'default' ? filter.menus.filter(f => f.checked === true) : filter.menus.slice(0, 1);
921
+ }
922
+ getReqFilterMap(columns) {
923
+ let ret = {};
924
+ columns
925
+ .filter(w => w.filter && w.filter.default === true)
926
+ .forEach(col => {
927
+ const filter = col.filter;
928
+ const values = this.getFilteredData(filter);
929
+ let obj = {};
930
+ if (filter.reName) {
931
+ obj = filter.reName(filter.menus, col);
932
+ }
933
+ else {
934
+ obj[filter.key] = values.map(i => i.value).join(',');
935
+ }
936
+ ret = { ...ret, ...obj };
937
+ });
938
+ return ret;
939
+ }
940
+ // #endregion
941
+ // #region statistical
942
+ genStatistical(columns, list, rawData) {
943
+ const res = {};
944
+ columns.forEach((col, index) => {
945
+ res[col.key || col.indexKey || index] =
946
+ col.statistical == null ? {} : this.getStatistical(col, index, list, rawData);
947
+ });
948
+ return res;
949
+ }
950
+ getStatistical(col, index, list, rawData) {
951
+ const val = col.statistical;
952
+ const item = {
953
+ digits: 2,
954
+ currency: undefined,
955
+ ...(typeof val === 'string' ? { type: val } : val)
956
+ };
957
+ let res = { value: 0 };
958
+ let currency = false;
959
+ if (typeof item.type === 'function') {
960
+ res = item.type(this.getValues(index, list), col, list, rawData);
961
+ currency = true;
962
+ }
963
+ else {
964
+ switch (item.type) {
965
+ case 'count':
966
+ res.value = list.length;
967
+ break;
968
+ case 'distinctCount':
969
+ res.value = this.getValues(index, list).filter((value, idx, self) => self.indexOf(value) === idx).length;
970
+ break;
971
+ case 'sum':
972
+ res.value = this.toFixed(this.getSum(index, list), item.digits);
973
+ currency = true;
974
+ break;
975
+ case 'average':
976
+ res.value = this.toFixed(this.getSum(index, list) / list.length, item.digits);
977
+ currency = true;
978
+ break;
979
+ case 'max':
980
+ res.value = Math.max(...this.getValues(index, list));
981
+ currency = true;
982
+ break;
983
+ case 'min':
984
+ res.value = Math.min(...this.getValues(index, list));
985
+ currency = true;
986
+ break;
987
+ }
988
+ }
989
+ if (item.currency === true || (item.currency == null && currency === true)) {
990
+ res.text = this.currencySrv.format(res.value, col.currency?.format);
991
+ }
992
+ else {
993
+ res.text = String(res.value);
994
+ }
995
+ return res;
996
+ }
997
+ toFixed(val, digits) {
998
+ if (isNaN(val) || !isFinite(val)) {
999
+ return 0;
1000
+ }
1001
+ return parseFloat(val.toFixed(digits));
1002
+ }
1003
+ getValues(index, list) {
1004
+ return list.map(i => i._values[index].org).map(i => (i === '' || i == null ? 0 : i));
1005
+ }
1006
+ getSum(index, list) {
1007
+ return this.getValues(index, list).reduce((p, i) => (p += parseFloat(String(i))), 0);
1008
+ }
1009
+ }
1010
+ STDataSource.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: STDataSource, deps: [{ token: i1$1._HttpClient }, { token: i1$1.DatePipe, host: true }, { token: i1$1.YNPipe, host: true }, { token: i12.DecimalPipe, host: true }, { token: i3$1.CurrencyService }, { token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Injectable });
1011
+ STDataSource.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: STDataSource });
1012
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: STDataSource, decorators: [{
1013
+ type: Injectable
1014
+ }], ctorParameters: function () { return [{ type: i1$1._HttpClient }, { type: i1$1.DatePipe, decorators: [{
1015
+ type: Host
1016
+ }] }, { type: i1$1.YNPipe, decorators: [{
1017
+ type: Host
1018
+ }] }, { type: i12.DecimalPipe, decorators: [{
1019
+ type: Host
1020
+ }] }, { type: i3$1.CurrencyService }, { type: i1.DomSanitizer }]; } });
1021
+
1022
+ class STExport {
1023
+ constructor(xlsxSrv) {
1024
+ this.xlsxSrv = xlsxSrv;
1025
+ }
1026
+ _stGet(item, col, index, colIndex) {
1027
+ const ret = { t: 's', v: '' };
1028
+ if (col.format) {
1029
+ ret.v = col.format(item, col, index);
1030
+ }
1031
+ else {
1032
+ const val = item._values ? item._values[colIndex].text : deepGet(item, col.index, '');
1033
+ ret.v = val;
1034
+ if (val != null) {
1035
+ switch (col.type) {
1036
+ case 'currency':
1037
+ ret.t = 'n';
1038
+ break;
1039
+ case 'date':
1040
+ // Can't be a empty value, it will cause `#NULL!`
1041
+ // See https://github.com/SheetJS/sheetjs/blob/master/docbits/52_datatype.md
1042
+ if (`${val}`.length > 0) {
1043
+ ret.t = 'd';
1044
+ // Number Formats: https://github.com/SheetJS/sheetjs/blob/master/docbits/63_numfmt.md
1045
+ ret.z = col.dateFormat;
1046
+ }
1047
+ break;
1048
+ case 'yn':
1049
+ const yn = col.yn;
1050
+ ret.v = val === yn.truth ? yn.yes : yn.no;
1051
+ break;
1052
+ }
1053
+ }
1054
+ }
1055
+ ret.v = ret.v || '';
1056
+ return ret;
1057
+ }
1058
+ genSheet(opt) {
1059
+ const sheets = {};
1060
+ const sheet = (sheets[opt.sheetname || 'Sheet1'] = {});
1061
+ const dataLen = opt.data.length;
1062
+ let validColCount = 0;
1063
+ let loseCount = 0;
1064
+ const columns = opt.columens;
1065
+ if (columns.findIndex(w => w._width != null) !== -1) {
1066
+ // wpx: width in screen pixels https://github.com/SheetJS/sheetjs#column-properties
1067
+ sheet['!cols'] = columns.map(col => ({ wpx: col._width }));
1068
+ }
1069
+ for (let colIdx = 0; colIdx < columns.length; colIdx++) {
1070
+ const col = columns[colIdx];
1071
+ if (col.exported === false || !col.index || !(!col.buttons || col.buttons.length === 0)) {
1072
+ ++loseCount;
1073
+ continue;
1074
+ }
1075
+ ++validColCount;
1076
+ const columnName = this.xlsxSrv.numberToSchema(colIdx + 1 - loseCount);
1077
+ sheet[`${columnName}1`] = {
1078
+ t: 's',
1079
+ v: typeof col.title === 'object' ? col.title.text : col.title
1080
+ };
1081
+ for (let dataIdx = 0; dataIdx < dataLen; dataIdx++) {
1082
+ sheet[`${columnName}${dataIdx + 2}`] = this._stGet(opt.data[dataIdx], col, dataIdx, colIdx);
1083
+ }
1084
+ }
1085
+ if (validColCount > 0 && dataLen > 0) {
1086
+ sheet['!ref'] = `A1:${this.xlsxSrv.numberToSchema(validColCount)}${dataLen + 1}`;
1087
+ }
1088
+ return sheets;
1089
+ }
1090
+ async export(opt) {
1091
+ const sheets = this.genSheet(opt);
1092
+ return this.xlsxSrv.export({
1093
+ sheets,
1094
+ filename: opt.filename,
1095
+ callback: opt.callback
1096
+ });
1097
+ }
1098
+ }
1099
+ STExport.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: STExport, deps: [{ token: i1$2.XlsxService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
1100
+ STExport.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: STExport });
1101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: STExport, decorators: [{
1102
+ type: Injectable
1103
+ }], ctorParameters: function () { return [{ type: i1$2.XlsxService, decorators: [{
1104
+ type: Optional
1105
+ }] }]; } });
1106
+
1107
+ class STWidgetHostDirective {
1108
+ constructor(stWidgetRegistry, viewContainerRef) {
1109
+ this.stWidgetRegistry = stWidgetRegistry;
1110
+ this.viewContainerRef = viewContainerRef;
1111
+ }
1112
+ ngOnInit() {
1113
+ const widget = this.column.widget;
1114
+ const componentType = this.stWidgetRegistry.get(widget.type);
1115
+ this.viewContainerRef.clear();
1116
+ const componentRef = this.viewContainerRef.createComponent(componentType);
1117
+ const { record, column } = this;
1118
+ const data = widget.params ? widget.params({ record, column }) : { record };
1119
+ Object.keys(data).forEach(key => {
1120
+ componentRef.instance[key] = data[key];
1121
+ });
1122
+ }
1123
+ }
1124
+ STWidgetHostDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: STWidgetHostDirective, deps: [{ token: STWidgetRegistry }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
1125
+ STWidgetHostDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: STWidgetHostDirective, selector: "[st-widget-host]", inputs: { record: "record", column: "column" }, ngImport: i0 });
1126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: STWidgetHostDirective, decorators: [{
1127
+ type: Directive,
1128
+ args: [{ selector: '[st-widget-host]' }]
1129
+ }], ctorParameters: function () { return [{ type: STWidgetRegistry }, { type: i0.ViewContainerRef }]; }, propDecorators: { record: [{
1130
+ type: Input
1131
+ }], column: [{
1132
+ type: Input
1133
+ }] } });
1134
+
1135
+ const ST_DEFAULT_CONFIG = {
1136
+ pi: 1,
1137
+ ps: 10,
1138
+ size: 'default',
1139
+ responsive: true,
1140
+ responsiveHideHeaderFooter: false,
1141
+ req: {
1142
+ type: 'page',
1143
+ method: 'GET',
1144
+ allInBody: false,
1145
+ lazyLoad: false,
1146
+ reName: { pi: 'pi', ps: 'ps', skip: 'skip', limit: 'limit' }
1147
+ },
1148
+ res: {
1149
+ reName: { list: ['list'], total: ['total'] }
1150
+ },
1151
+ page: {
1152
+ front: true,
1153
+ zeroIndexed: false,
1154
+ position: 'bottom',
1155
+ placement: 'right',
1156
+ show: true,
1157
+ showSize: false,
1158
+ pageSizes: [10, 20, 30, 40, 50],
1159
+ showQuickJumper: false,
1160
+ total: true,
1161
+ toTop: true,
1162
+ toTopOffset: 100,
1163
+ itemRender: null,
1164
+ simple: false
1165
+ },
1166
+ modal: {
1167
+ paramsName: 'record',
1168
+ size: 'lg',
1169
+ exact: true
1170
+ },
1171
+ drawer: {
1172
+ paramsName: 'record',
1173
+ size: 'md',
1174
+ footer: true,
1175
+ footerHeight: 55
1176
+ },
1177
+ pop: {
1178
+ title: '确认删除吗?',
1179
+ trigger: 'click',
1180
+ placement: 'top'
1181
+ },
1182
+ btnIcon: {
1183
+ theme: 'outline',
1184
+ spin: false
1185
+ },
1186
+ noIndex: 1,
1187
+ expandRowByClick: false,
1188
+ expandAccordion: false,
1189
+ widthMode: {
1190
+ type: 'default',
1191
+ strictBehavior: 'truncate'
1192
+ },
1193
+ virtualItemSize: 54,
1194
+ virtualMaxBufferPx: 200,
1195
+ virtualMinBufferPx: 100,
1196
+ iifBehavior: 'hide',
1197
+ loadingDelay: 0,
1198
+ safeType: 'safeHtml',
1199
+ date: {
1200
+ format: `yyyy-MM-dd HH:mm`
1201
+ },
1202
+ yn: {
1203
+ truth: true,
1204
+ yes: '是',
1205
+ mode: 'icon'
1206
+ }
1207
+ };
1208
+
1209
+ class STFilterComponent {
1210
+ constructor() {
1211
+ this.visible = false;
1212
+ this.locale = {};
1213
+ this.n = new EventEmitter();
1214
+ this.handle = new EventEmitter();
1215
+ }
1216
+ get icon() {
1217
+ return this.f.icon;
1218
+ }
1219
+ show($event) {
1220
+ $event.stopPropagation();
1221
+ }
1222
+ checkboxChange() {
1223
+ this.n.emit(this.f.menus?.filter(w => w.checked));
1224
+ }
1225
+ radioChange(item) {
1226
+ this.f.menus.forEach(i => (i.checked = false));
1227
+ item.checked = !item.checked;
1228
+ this.n.emit(item);
1229
+ }
1230
+ confirm() {
1231
+ this.handle.emit(true);
1232
+ }
1233
+ reset() {
1234
+ this.handle.emit(false);
1235
+ }
1236
+ }
1237
+ STFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: STFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1238
+ STFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: STFilterComponent, 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: `
1239
+ <span
1240
+ class="ant-table-filter-trigger"
1241
+ [class.active]="visible || f.default"
1242
+ nz-dropdown
1243
+ [nzDropdownMenu]="filterMenu"
1244
+ nzTrigger="click"
1245
+ [nzClickHide]="false"
1246
+ [(nzVisible)]="visible"
1247
+ nzOverlayClassName="st__filter-wrap"
1248
+ (click)="show($event)"
1249
+ >
1250
+ <i nz-icon [nzType]="icon.type" [nzTheme]="icon.theme!"></i>
1251
+ </span>
1252
+ <nz-dropdown-menu #filterMenu="nzDropdownMenu">
1253
+ <div class="ant-table-filter-dropdown">
1254
+ <ng-container [ngSwitch]="f.type">
1255
+ <div *ngSwitchCase="'keyword'" class="st__filter-keyword">
1256
+ <input
1257
+ type="text"
1258
+ nz-input
1259
+ [attr.placeholder]="f.placeholder"
1260
+ [(ngModel)]="f.menus![0]!.value"
1261
+ (ngModelChange)="n.emit($event)"
1262
+ (keyup.enter)="confirm()"
1263
+ />
1264
+ </div>
1265
+ <div *ngSwitchCase="'number'" class="p-sm st__filter-number">
1266
+ <nz-input-number
1267
+ [(ngModel)]="f.menus![0]!.value"
1268
+ (ngModelChange)="n.emit($event)"
1269
+ [nzMin]="f.number!.min!"
1270
+ [nzMax]="f.number!.max!"
1271
+ [nzStep]="f.number!.step!"
1272
+ [nzPrecision]="f.number!.precision"
1273
+ [nzPlaceHolder]="f.placeholder!"
1274
+ class="width-100"
1275
+ ></nz-input-number>
1276
+ </div>
1277
+ <div *ngSwitchCase="'date'" class="p-sm st__filter-date">
1278
+ <nz-date-picker
1279
+ *ngIf="!f.date!.range"
1280
+ nzInline
1281
+ [nzMode]="f.date!.mode"
1282
+ [(ngModel)]="f.menus![0]!.value"
1283
+ (ngModelChange)="n.emit($event)"
1284
+ [nzShowNow]="f.date!.showNow"
1285
+ [nzShowToday]="f.date!.showToday"
1286
+ [nzDisabledDate]="f.date!.disabledDate"
1287
+ [nzDisabledTime]="f.date!.disabledTime"
1288
+ ></nz-date-picker>
1289
+ <nz-range-picker
1290
+ *ngIf="f.date!.range"
1291
+ nzInline
1292
+ [nzMode]="f.date!.mode"
1293
+ [(ngModel)]="f.menus![0]!.value"
1294
+ (ngModelChange)="n.emit($event)"
1295
+ [nzShowNow]="f.date!.showNow"
1296
+ [nzShowToday]="f.date!.showToday"
1297
+ [nzDisabledDate]="f.date!.disabledDate"
1298
+ [nzDisabledTime]="f.date!.disabledTime"
1299
+ ></nz-range-picker>
1300
+ </div>
1301
+ <div *ngSwitchCase="'time'" class="p-sm st__filter-time"> </div>
1302
+ <div *ngSwitchCase="'custom'" class="st__filter-custom">
1303
+ <ng-template
1304
+ [ngTemplateOutlet]="f.custom!"
1305
+ [ngTemplateOutletContext]="{ $implicit: f, col: col }"
1306
+ ></ng-template>
1307
+ </div>
1308
+ <ul *ngSwitchDefault nz-menu>
1309
+ <ng-container *ngIf="f.multiple">
1310
+ <li nz-menu-item *ngFor="let filter of f.menus">
1311
+ <label nz-checkbox [(ngModel)]="filter.checked" (ngModelChange)="checkboxChange()">
1312
+ {{ filter.text }}
1313
+ </label>
1314
+ </li>
1315
+ </ng-container>
1316
+ <ng-container *ngIf="!f.multiple">
1317
+ <li nz-menu-item *ngFor="let filter of f.menus">
1318
+ <label nz-radio [ngModel]="filter.checked" (ngModelChange)="radioChange(filter)">
1319
+ {{ filter.text }}
1320
+ </label>
1321
+ </li>
1322
+ </ng-container>
1323
+ </ul>
1324
+ </ng-container>
1325
+ <div *ngIf="f.showOPArea" class="ant-table-filter-dropdown-btns">
1326
+ <a class="ant-table-filter-dropdown-link confirm" (click)="visible = false">
1327
+ <span (click)="confirm()">{{ f.confirmText || locale.filterConfirm }}</span>
1328
+ </a>
1329
+ <a class="ant-table-filter-dropdown-link clear" (click)="visible = false">
1330
+ <span (click)="reset()">{{ f.clearText || locale.filterReset }}</span>
1331
+ </a>
1332
+ </div>
1333
+ </div>
1334
+ </nz-dropdown-menu>
1335
+ `, isInline: true, components: [{ type: i6.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { type: i2.NzInputNumberComponent, selector: "nz-input-number", inputs: ["nzSize", "nzMin", "nzMax", "nzParser", "nzPrecision", "nzPrecisionMode", "nzPlaceHolder", "nzStep", "nzInputMode", "nzId", "nzDisabled", "nzAutoFocus", "nzFormatter"], outputs: ["nzBlur", "nzFocus"], exportAs: ["nzInputNumber"] }, { type: i3$2.NzDatePickerComponent, selector: "nz-date-picker,nz-week-picker,nz-month-picker,nz-year-picker,nz-range-picker", inputs: ["nzAllowClear", "nzAutoFocus", "nzDisabled", "nzBorderless", "nzInputReadOnly", "nzInline", "nzOpen", "nzDisabledDate", "nzLocale", "nzPlaceHolder", "nzPopupStyle", "nzDropdownClassName", "nzSize", "nzFormat", "nzDateRender", "nzDisabledTime", "nzRenderExtraFooter", "nzShowToday", "nzMode", "nzShowNow", "nzRanges", "nzDefaultPickerValue", "nzSeparator", "nzSuffixIcon", "nzBackdrop", "nzId", "nzShowTime"], outputs: ["nzOnPanelChange", "nzOnCalendarChange", "nzOnOk", "nzOnOpenChange"], exportAs: ["nzDatePicker"] }, { type: i7.NzCheckboxComponent, selector: "[nz-checkbox]", inputs: ["nzValue", "nzAutoFocus", "nzDisabled", "nzIndeterminate", "nzChecked", "nzId"], outputs: ["nzCheckedChange"], exportAs: ["nzCheckbox"] }, { type: i5.NzRadioComponent, selector: "[nz-radio],[nz-radio-button]", inputs: ["nzValue", "nzDisabled", "nzAutoFocus"], exportAs: ["nzRadio"] }], directives: [{ type: i6.NzDropDownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { type: i14.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { type: i12.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i12.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i8.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "disabled"], exportAs: ["nzInput"] }, { type: i15.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i15.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i15.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$2.NzRangePickerComponent, selector: "nz-range-picker", exportAs: ["nzRangePicker"] }, { type: i12.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i12.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i11.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { type: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.NzMenuItemDirective, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1336
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: STFilterComponent, decorators: [{
1337
+ type: Component,
1338
+ args: [{
1339
+ selector: 'st-filter',
1340
+ template: `
1341
+ <span
1342
+ class="ant-table-filter-trigger"
1343
+ [class.active]="visible || f.default"
1344
+ nz-dropdown
1345
+ [nzDropdownMenu]="filterMenu"
1346
+ nzTrigger="click"
1347
+ [nzClickHide]="false"
1348
+ [(nzVisible)]="visible"
1349
+ nzOverlayClassName="st__filter-wrap"
1350
+ (click)="show($event)"
1351
+ >
1352
+ <i nz-icon [nzType]="icon.type" [nzTheme]="icon.theme!"></i>
1353
+ </span>
1354
+ <nz-dropdown-menu #filterMenu="nzDropdownMenu">
1355
+ <div class="ant-table-filter-dropdown">
1356
+ <ng-container [ngSwitch]="f.type">
1357
+ <div *ngSwitchCase="'keyword'" class="st__filter-keyword">
1358
+ <input
1359
+ type="text"
1360
+ nz-input
1361
+ [attr.placeholder]="f.placeholder"
1362
+ [(ngModel)]="f.menus![0]!.value"
1363
+ (ngModelChange)="n.emit($event)"
1364
+ (keyup.enter)="confirm()"
1365
+ />
1366
+ </div>
1367
+ <div *ngSwitchCase="'number'" class="p-sm st__filter-number">
1368
+ <nz-input-number
1369
+ [(ngModel)]="f.menus![0]!.value"
1370
+ (ngModelChange)="n.emit($event)"
1371
+ [nzMin]="f.number!.min!"
1372
+ [nzMax]="f.number!.max!"
1373
+ [nzStep]="f.number!.step!"
1374
+ [nzPrecision]="f.number!.precision"
1375
+ [nzPlaceHolder]="f.placeholder!"
1376
+ class="width-100"
1377
+ ></nz-input-number>
1378
+ </div>
1379
+ <div *ngSwitchCase="'date'" class="p-sm st__filter-date">
1380
+ <nz-date-picker
1381
+ *ngIf="!f.date!.range"
1382
+ nzInline
1383
+ [nzMode]="f.date!.mode"
1384
+ [(ngModel)]="f.menus![0]!.value"
1385
+ (ngModelChange)="n.emit($event)"
1386
+ [nzShowNow]="f.date!.showNow"
1387
+ [nzShowToday]="f.date!.showToday"
1388
+ [nzDisabledDate]="f.date!.disabledDate"
1389
+ [nzDisabledTime]="f.date!.disabledTime"
1390
+ ></nz-date-picker>
1391
+ <nz-range-picker
1392
+ *ngIf="f.date!.range"
1393
+ nzInline
1394
+ [nzMode]="f.date!.mode"
1395
+ [(ngModel)]="f.menus![0]!.value"
1396
+ (ngModelChange)="n.emit($event)"
1397
+ [nzShowNow]="f.date!.showNow"
1398
+ [nzShowToday]="f.date!.showToday"
1399
+ [nzDisabledDate]="f.date!.disabledDate"
1400
+ [nzDisabledTime]="f.date!.disabledTime"
1401
+ ></nz-range-picker>
1402
+ </div>
1403
+ <div *ngSwitchCase="'time'" class="p-sm st__filter-time"> </div>
1404
+ <div *ngSwitchCase="'custom'" class="st__filter-custom">
1405
+ <ng-template
1406
+ [ngTemplateOutlet]="f.custom!"
1407
+ [ngTemplateOutletContext]="{ $implicit: f, col: col }"
1408
+ ></ng-template>
1409
+ </div>
1410
+ <ul *ngSwitchDefault nz-menu>
1411
+ <ng-container *ngIf="f.multiple">
1412
+ <li nz-menu-item *ngFor="let filter of f.menus">
1413
+ <label nz-checkbox [(ngModel)]="filter.checked" (ngModelChange)="checkboxChange()">
1414
+ {{ filter.text }}
1415
+ </label>
1416
+ </li>
1417
+ </ng-container>
1418
+ <ng-container *ngIf="!f.multiple">
1419
+ <li nz-menu-item *ngFor="let filter of f.menus">
1420
+ <label nz-radio [ngModel]="filter.checked" (ngModelChange)="radioChange(filter)">
1421
+ {{ filter.text }}
1422
+ </label>
1423
+ </li>
1424
+ </ng-container>
1425
+ </ul>
1426
+ </ng-container>
1427
+ <div *ngIf="f.showOPArea" class="ant-table-filter-dropdown-btns">
1428
+ <a class="ant-table-filter-dropdown-link confirm" (click)="visible = false">
1429
+ <span (click)="confirm()">{{ f.confirmText || locale.filterConfirm }}</span>
1430
+ </a>
1431
+ <a class="ant-table-filter-dropdown-link clear" (click)="visible = false">
1432
+ <span (click)="reset()">{{ f.clearText || locale.filterReset }}</span>
1433
+ </a>
1434
+ </div>
1435
+ </div>
1436
+ </nz-dropdown-menu>
1437
+ `,
1438
+ host: {
1439
+ '[class.ant-table-filter-trigger-container]': `true`,
1440
+ '[class.st__filter]': `true`,
1441
+ '[class.ant-table-filter-trigger-container-open]': `visible`
1442
+ },
1443
+ preserveWhitespaces: false,
1444
+ changeDetection: ChangeDetectionStrategy.OnPush,
1445
+ encapsulation: ViewEncapsulation.None
1446
+ }]
1447
+ }], propDecorators: { col: [{
1448
+ type: Input
1449
+ }], locale: [{
1450
+ type: Input
1451
+ }], f: [{
1452
+ type: Input
1453
+ }], n: [{
1454
+ type: Output
1455
+ }], handle: [{
1456
+ type: Output
1457
+ }] } });
1458
+
1459
+ class STComponent {
1460
+ constructor(i18nSrv, cdr, el, exportSrv, doc, columnSource, dataSource, delonI18n, configSrv, cms) {
1461
+ this.cdr = cdr;
1462
+ this.el = el;
1463
+ this.exportSrv = exportSrv;
1464
+ this.doc = doc;
1465
+ this.columnSource = columnSource;
1466
+ this.dataSource = dataSource;
1467
+ this.delonI18n = delonI18n;
1468
+ this.cms = cms;
1469
+ this.destroy$ = new Subject();
1470
+ this.totalTpl = ``;
1471
+ this.customWidthConfig = false;
1472
+ this._widthConfig = [];
1473
+ this.locale = {};
1474
+ this._loading = false;
1475
+ this._data = [];
1476
+ this._statistical = {};
1477
+ this._isPagination = true;
1478
+ this._allChecked = false;
1479
+ this._allCheckedDisabled = false;
1480
+ this._indeterminate = false;
1481
+ this._headers = [];
1482
+ this._columns = [];
1483
+ this.contextmenuList = [];
1484
+ this.columns = [];
1485
+ this.ps = 10;
1486
+ this.pi = 1;
1487
+ this.total = 0;
1488
+ this.loading = null;
1489
+ this.loadingDelay = 0;
1490
+ this.loadingIndicator = null;
1491
+ this.bordered = false;
1492
+ this.scroll = { x: null, y: null };
1493
+ this.showHeader = true;
1494
+ this.expandRowByClick = false;
1495
+ this.expandAccordion = false;
1496
+ this.expand = null;
1497
+ this.responsive = true;
1498
+ this.error = new EventEmitter();
1499
+ this.change = new EventEmitter();
1500
+ this.virtualScroll = false;
1501
+ this.virtualItemSize = 54;
1502
+ this.virtualMaxBufferPx = 200;
1503
+ this.virtualMinBufferPx = 100;
1504
+ this.virtualForTrackBy = index => index;
1505
+ this.setCog(configSrv.merge('st', ST_DEFAULT_CONFIG));
1506
+ this.delonI18n.change.pipe(takeUntil(this.destroy$)).subscribe(() => {
1507
+ this.locale = this.delonI18n.getData('st');
1508
+ if (this._columns.length > 0) {
1509
+ this.updateTotalTpl();
1510
+ this.cd();
1511
+ }
1512
+ });
1513
+ i18nSrv.change
1514
+ .pipe(takeUntil(this.destroy$), filter(() => this._columns.length > 0))
1515
+ .subscribe(() => this.refreshColumns());
1516
+ }
1517
+ get req() {
1518
+ return this._req;
1519
+ }
1520
+ set req(value) {
1521
+ this._req = deepMergeKey({}, true, this.cog.req, value);
1522
+ }
1523
+ /** 返回体配置 */
1524
+ get res() {
1525
+ return this._res;
1526
+ }
1527
+ set res(value) {
1528
+ const item = (this._res = deepMergeKey({}, true, this.cog.res, value));
1529
+ const reName = item.reName;
1530
+ if (!Array.isArray(reName.list))
1531
+ reName.list = reName.list.split('.');
1532
+ if (!Array.isArray(reName.total))
1533
+ reName.total = reName.total.split('.');
1534
+ this._res = item;
1535
+ }
1536
+ get page() {
1537
+ return this._page;
1538
+ }
1539
+ set page(value) {
1540
+ this._page = { ...this.cog.page, ...value };
1541
+ this.updateTotalTpl();
1542
+ }
1543
+ get multiSort() {
1544
+ return this._multiSort;
1545
+ }
1546
+ set multiSort(value) {
1547
+ if ((typeof value === 'boolean' && !toBoolean(value)) ||
1548
+ (typeof value === 'object' && Object.keys(value).length === 0)) {
1549
+ this._multiSort = undefined;
1550
+ return;
1551
+ }
1552
+ this._multiSort = {
1553
+ ...(typeof value === 'object' ? value : {})
1554
+ };
1555
+ }
1556
+ set widthMode(value) {
1557
+ this._widthMode = { ...this.cog.widthMode, ...value };
1558
+ }
1559
+ get widthMode() {
1560
+ return this._widthMode;
1561
+ }
1562
+ set widthConfig(val) {
1563
+ this._widthConfig = val;
1564
+ this.customWidthConfig = val && val.length > 0;
1565
+ }
1566
+ set resizable(val) {
1567
+ this._resizable = typeof val === 'object' ? val : { disabled: !toBoolean(val) };
1568
+ }
1569
+ /**
1570
+ * Get the number of the current page
1571
+ */
1572
+ get count() {
1573
+ return this._data.length;
1574
+ }
1575
+ /**
1576
+ * Get the data of the current page
1577
+ */
1578
+ get list() {
1579
+ return this._data;
1580
+ }
1581
+ setCog(cog) {
1582
+ const copyMultiSort = { ...cog.multiSort };
1583
+ // Because multiSort.global will affect the result, it should be removed first, and multiSort will be operated again after processing.
1584
+ delete cog.multiSort;
1585
+ this.cog = cog;
1586
+ Object.assign(this, cog);
1587
+ if (copyMultiSort.global !== false) {
1588
+ this.multiSort = copyMultiSort;
1589
+ }
1590
+ this.columnSource.setCog(cog);
1591
+ }
1592
+ cd() {
1593
+ this.cdr.detectChanges();
1594
+ return this;
1595
+ }
1596
+ refreshData() {
1597
+ this._data = [...this._data];
1598
+ return this.cd();
1599
+ }
1600
+ renderTotal(total, range) {
1601
+ return this.totalTpl
1602
+ ? this.totalTpl.replace('{{total}}', total).replace('{{range[0]}}', range[0]).replace('{{range[1]}}', range[1])
1603
+ : '';
1604
+ }
1605
+ changeEmit(type, data) {
1606
+ const res = {
1607
+ type,
1608
+ pi: this.pi,
1609
+ ps: this.ps,
1610
+ total: this.total
1611
+ };
1612
+ if (data != null) {
1613
+ res[type] = data;
1614
+ }
1615
+ this.change.emit(res);
1616
+ }
1617
+ // #region data
1618
+ /**
1619
+ * 获取过滤后所有数据
1620
+ * - 本地数据:包含排序、过滤后不分页数据
1621
+ * - 远程数据:不传递 `pi`、`ps` 两个参数
1622
+ */
1623
+ get filteredData() {
1624
+ return this.loadData({ paginator: false }).then(res => res.list);
1625
+ }
1626
+ updateTotalTpl() {
1627
+ const { total } = this.page;
1628
+ if (typeof total === 'string' && total.length) {
1629
+ this.totalTpl = total;
1630
+ }
1631
+ else if (toBoolean(total)) {
1632
+ this.totalTpl = this.locale.total;
1633
+ }
1634
+ else {
1635
+ this.totalTpl = '';
1636
+ }
1637
+ }
1638
+ setLoading(val) {
1639
+ if (this.loading == null) {
1640
+ this._loading = val;
1641
+ this.cdr.detectChanges();
1642
+ }
1643
+ }
1644
+ loadData(options) {
1645
+ const { pi, ps, data, req, res, page, total, singleSort, multiSort, rowClassName } = this;
1646
+ return new Promise((resolvePromise, rejectPromise) => {
1647
+ if (this.data$) {
1648
+ this.data$.unsubscribe();
1649
+ }
1650
+ this.data$ = this.dataSource
1651
+ .process({
1652
+ pi,
1653
+ ps,
1654
+ total,
1655
+ data,
1656
+ req,
1657
+ res,
1658
+ page,
1659
+ columns: this._columns,
1660
+ singleSort,
1661
+ multiSort,
1662
+ rowClassName,
1663
+ paginator: true,
1664
+ customRequest: this.customRequest || this.cog.customRequest,
1665
+ ...options
1666
+ })
1667
+ .pipe(takeUntil(this.destroy$))
1668
+ .subscribe({
1669
+ next: result => resolvePromise(result),
1670
+ error: error => {
1671
+ if (typeof ngDevMode === 'undefined' || ngDevMode) {
1672
+ console.warn('st.loadDate', error);
1673
+ }
1674
+ rejectPromise(error);
1675
+ }
1676
+ });
1677
+ });
1678
+ }
1679
+ async loadPageData() {
1680
+ this.setLoading(true);
1681
+ try {
1682
+ const result = await this.loadData();
1683
+ this.setLoading(false);
1684
+ if (typeof result.pi !== 'undefined') {
1685
+ this.pi = result.pi;
1686
+ }
1687
+ if (typeof result.ps !== 'undefined') {
1688
+ this.ps = result.ps;
1689
+ }
1690
+ if (typeof result.total !== 'undefined') {
1691
+ this.total = result.total;
1692
+ }
1693
+ if (typeof result.pageShow !== 'undefined') {
1694
+ this._isPagination = result.pageShow;
1695
+ }
1696
+ this._data = result.list;
1697
+ this._statistical = result.statistical;
1698
+ this.changeEmit('loaded', result.list);
1699
+ // Should be re-render in next tike when using virtual scroll
1700
+ // https://github.com/ng-alain/ng-alain/issues/1836
1701
+ if (this.cdkVirtualScrollViewport) {
1702
+ Promise.resolve().then(() => this.cdkVirtualScrollViewport.checkViewportSize());
1703
+ }
1704
+ return this._refCheck();
1705
+ }
1706
+ catch (error) {
1707
+ this.setLoading(false);
1708
+ if (!this.destroy$.isStopped) {
1709
+ this.cdr.detectChanges();
1710
+ this.error.emit({ type: 'req', error });
1711
+ }
1712
+ return this;
1713
+ }
1714
+ }
1715
+ /** 清空所有数据 */
1716
+ clear(cleanStatus = true) {
1717
+ if (cleanStatus) {
1718
+ this.clearStatus();
1719
+ }
1720
+ this._data = [];
1721
+ return this.cd();
1722
+ }
1723
+ /** 清空所有状态 */
1724
+ clearStatus() {
1725
+ return this.clearCheck().clearRadio().clearFilter().clearSort();
1726
+ }
1727
+ /**
1728
+ * 根据页码重新加载数据
1729
+ *
1730
+ * @param pi 指定当前页码,默认:`1`
1731
+ * @param extraParams 重新指定 `extraParams` 值
1732
+ * @param options 选项
1733
+ */
1734
+ load(pi = 1, extraParams, options) {
1735
+ if (pi !== -1)
1736
+ this.pi = pi;
1737
+ if (typeof extraParams !== 'undefined') {
1738
+ this.req.params = options && options.merge ? { ...this.req.params, ...extraParams } : extraParams;
1739
+ }
1740
+ this._change('pi', options);
1741
+ return this;
1742
+ }
1743
+ /**
1744
+ * 重新刷新当前页
1745
+ *
1746
+ * @param extraParams 重新指定 `extraParams` 值
1747
+ */
1748
+ reload(extraParams, options) {
1749
+ return this.load(-1, extraParams, options);
1750
+ }
1751
+ /**
1752
+ * 重置且重新设置 `pi` 为 `1`,包含以下值:
1753
+ * - `check` 数据
1754
+ * - `radio` 数据
1755
+ * - `sort` 数据
1756
+ * - `fileter` 数据
1757
+ *
1758
+ * @param extraParams 重新指定 `extraParams` 值
1759
+ */
1760
+ reset(extraParams, options) {
1761
+ this.clearStatus().load(1, extraParams, options);
1762
+ return this;
1763
+ }
1764
+ _toTop(enforce) {
1765
+ if (!(enforce == null ? this.page.toTop : enforce))
1766
+ return;
1767
+ const el = this.el.nativeElement;
1768
+ el.scrollIntoView();
1769
+ // fix header height
1770
+ this.doc.documentElement.scrollTop -= this.page.toTopOffset;
1771
+ if (this.scroll) {
1772
+ if (this.cdkVirtualScrollViewport) {
1773
+ this.cdkVirtualScrollViewport.scrollTo({
1774
+ top: 0,
1775
+ left: 0
1776
+ });
1777
+ }
1778
+ else {
1779
+ el.querySelector('.ant-table-body, .ant-table-content')?.scrollTo(0, 0);
1780
+ }
1781
+ }
1782
+ }
1783
+ _change(type, options) {
1784
+ if (type === 'pi' || (type === 'ps' && this.pi <= Math.ceil(this.total / this.ps))) {
1785
+ this.loadPageData().then(() => this._toTop(options?.toTop));
1786
+ }
1787
+ this.changeEmit(type);
1788
+ }
1789
+ closeOtherExpand(item) {
1790
+ if (this.expandAccordion === false)
1791
+ return;
1792
+ this._data.filter(i => i !== item).forEach(i => (i.expand = false));
1793
+ }
1794
+ _rowClick(e, item, index, dbl) {
1795
+ const el = e.target;
1796
+ if (el.nodeName === 'INPUT')
1797
+ return;
1798
+ const { expand, expandRowByClick } = this;
1799
+ if (!!expand && item.showExpand !== false && expandRowByClick) {
1800
+ item.expand = !item.expand;
1801
+ this.closeOtherExpand(item);
1802
+ this.changeEmit('expand', item);
1803
+ return;
1804
+ }
1805
+ const data = { e, item, index };
1806
+ if (dbl) {
1807
+ this.changeEmit('dblClick', data);
1808
+ }
1809
+ else {
1810
+ this._clickRowClassName(el, item, index);
1811
+ this.changeEmit('click', data);
1812
+ }
1813
+ }
1814
+ _clickRowClassName(el, item, index) {
1815
+ const cr = this.clickRowClassName;
1816
+ if (cr == null)
1817
+ return;
1818
+ const config = {
1819
+ exclusive: false,
1820
+ ...(typeof cr === 'string' ? { fn: () => cr } : cr)
1821
+ };
1822
+ const className = config.fn(item, index);
1823
+ const trEl = el.closest('tr');
1824
+ if (config.exclusive) {
1825
+ trEl.parentElement.querySelectorAll('tr').forEach((a) => a.classList.remove(className));
1826
+ }
1827
+ if (trEl.classList.contains(className)) {
1828
+ trEl.classList.remove(className);
1829
+ }
1830
+ else {
1831
+ trEl.classList.add(className);
1832
+ }
1833
+ }
1834
+ _expandChange(item, expand) {
1835
+ item.expand = expand;
1836
+ this.closeOtherExpand(item);
1837
+ this.changeEmit('expand', item);
1838
+ }
1839
+ _stopPropagation(ev) {
1840
+ ev.stopPropagation();
1841
+ }
1842
+ /**
1843
+ * Remove a row in the table, like this:
1844
+ *
1845
+ * ```
1846
+ * this.st.removeRow(0)
1847
+ * this.st.removeRow(stDataItem)
1848
+ * ```
1849
+ */
1850
+ removeRow(data) {
1851
+ if (typeof data === 'number') {
1852
+ this._data.splice(data, 1);
1853
+ }
1854
+ else {
1855
+ if (!Array.isArray(data)) {
1856
+ data = [data];
1857
+ }
1858
+ data
1859
+ .map(item => this._data.indexOf(item))
1860
+ .filter(pos => pos !== -1)
1861
+ .forEach(pos => this._data.splice(pos, 1));
1862
+ }
1863
+ // recalculate no
1864
+ this._columns
1865
+ .filter(w => w.type === 'no')
1866
+ .forEach(c => this._data.forEach((i, idx) => {
1867
+ const text = `${this.dataSource.getNoIndex(i, c, idx)}`;
1868
+ i._values[c.__point] = { text, _text: text, org: idx, safeType: 'text' };
1869
+ }));
1870
+ return this.refreshData();
1871
+ }
1872
+ /**
1873
+ * Sets the row value for the `index` in the table, like this:
1874
+ *
1875
+ * - `optinos.refreshSchema` Whether to refresh of st schemas
1876
+ * - `optinos.emitReload` Whether to trigger a reload http request when data is url
1877
+ *
1878
+ * ```
1879
+ * this.st.setRow(0, { price: 100 })
1880
+ * this.st.setRow(0, { price: 100, name: 'asdf' })
1881
+ * this.st.setRow(item, { price: 100 })
1882
+ * ```
1883
+ */
1884
+ setRow(index, item, options) {
1885
+ options = { refreshSchema: false, emitReload: false, ...options };
1886
+ if (typeof index !== 'number') {
1887
+ index = this._data.indexOf(index);
1888
+ }
1889
+ this._data[index] = deepMergeKey(this._data[index], false, item);
1890
+ this.optimizeData();
1891
+ if (options.refreshSchema) {
1892
+ this.resetColumns({ emitReload: options.emitReload });
1893
+ return this;
1894
+ }
1895
+ return this.refreshData();
1896
+ }
1897
+ // #endregion
1898
+ // #region sort
1899
+ sort(col, idx, value) {
1900
+ if (this.multiSort) {
1901
+ col._sort.default = value;
1902
+ col._sort.tick = this.dataSource.nextSortTick;
1903
+ }
1904
+ else {
1905
+ this._columns.forEach((item, index) => (item._sort.default = index === idx ? value : null));
1906
+ }
1907
+ this.cdr.detectChanges();
1908
+ this.loadPageData();
1909
+ const res = {
1910
+ value,
1911
+ map: this.dataSource.getReqSortMap(this.singleSort, this.multiSort, this._columns),
1912
+ column: col
1913
+ };
1914
+ this.changeEmit('sort', res);
1915
+ }
1916
+ clearSort() {
1917
+ this._columns.forEach(item => (item._sort.default = null));
1918
+ return this;
1919
+ }
1920
+ // #endregion
1921
+ // #region filter
1922
+ _handleFilter(col, confirm) {
1923
+ if (!confirm) {
1924
+ this.columnSource.cleanFilter(col);
1925
+ }
1926
+ // 过滤表示一种数据的变化应重置页码为 `1`
1927
+ this.pi = 1;
1928
+ this.columnSource.updateDefault(col.filter);
1929
+ this.loadPageData();
1930
+ this.changeEmit('filter', col);
1931
+ }
1932
+ handleFilterNotify(value) {
1933
+ this.changeEmit('filterChange', value);
1934
+ }
1935
+ clearFilter() {
1936
+ this._columns.filter(w => w.filter && w.filter.default === true).forEach(col => this.columnSource.cleanFilter(col));
1937
+ return this;
1938
+ }
1939
+ // #endregion
1940
+ // #region checkbox
1941
+ /** 清除所有 `checkbox` */
1942
+ clearCheck() {
1943
+ return this.checkAll(false);
1944
+ }
1945
+ _refCheck() {
1946
+ const validData = this._data.filter(w => !w.disabled);
1947
+ const checkedList = validData.filter(w => w.checked === true);
1948
+ this._allChecked = checkedList.length > 0 && checkedList.length === validData.length;
1949
+ const allUnChecked = validData.every(value => !value.checked);
1950
+ this._indeterminate = !this._allChecked && !allUnChecked;
1951
+ this._allCheckedDisabled = this._data.length === this._data.filter(w => w.disabled).length;
1952
+ return this.cd();
1953
+ }
1954
+ checkAll(checked) {
1955
+ checked = typeof checked === 'undefined' ? this._allChecked : checked;
1956
+ this._data.filter(w => !w.disabled).forEach(i => (i.checked = checked));
1957
+ return this._refCheck()._checkNotify().refreshData();
1958
+ }
1959
+ _rowSelection(row) {
1960
+ row.select(this._data);
1961
+ return this._refCheck()._checkNotify();
1962
+ }
1963
+ _checkNotify() {
1964
+ const res = this._data.filter(w => !w.disabled && w.checked === true);
1965
+ this.changeEmit('checkbox', res);
1966
+ return this;
1967
+ }
1968
+ // #endregion
1969
+ // #region radio
1970
+ /** 清除所有 `radio` */
1971
+ clearRadio() {
1972
+ this._data.filter(w => w.checked).forEach(item => (item.checked = false));
1973
+ this.changeEmit('radio', null);
1974
+ return this.refreshData();
1975
+ }
1976
+ // #endregion
1977
+ _handleTd(ev) {
1978
+ switch (ev.type) {
1979
+ case 'checkbox':
1980
+ this._refCheck()._checkNotify();
1981
+ break;
1982
+ case 'radio':
1983
+ this.changeEmit('radio', ev.item);
1984
+ this.refreshData();
1985
+ break;
1986
+ }
1987
+ }
1988
+ // #region export
1989
+ /**
1990
+ * 导出当前页,确保已经注册 `XlsxModule`
1991
+ *
1992
+ * @param newData 重新指定数据;若为 `true` 表示使用 `filteredData` 数据
1993
+ * @param opt 额外参数
1994
+ */
1995
+ export(newData, opt) {
1996
+ const data = Array.isArray(newData)
1997
+ ? this.dataSource.optimizeData({ columns: this._columns, result: newData })
1998
+ : this._data;
1999
+ (newData === true ? from(this.filteredData) : of(data)).subscribe((res) => this.exportSrv.export({
2000
+ columens: this._columns,
2001
+ ...opt,
2002
+ data: res
2003
+ }));
2004
+ }
2005
+ // #endregion
2006
+ // #region resizable
2007
+ colResize({ width }, column) {
2008
+ column.width = `${width}px`;
2009
+ this.changeEmit('resize', column);
2010
+ }
2011
+ // #endregion
2012
+ // #region contextmenu
2013
+ onContextmenu(event) {
2014
+ if (!this.contextmenu) {
2015
+ return;
2016
+ }
2017
+ event.preventDefault();
2018
+ event.stopPropagation();
2019
+ const colEl = event.target.closest('[data-col-index]');
2020
+ if (!colEl) {
2021
+ return;
2022
+ }
2023
+ const colIndex = Number(colEl.dataset.colIndex);
2024
+ const rowIndex = Number(colEl.closest('tr').dataset.index);
2025
+ const isTitle = isNaN(rowIndex);
2026
+ const obs$ = this.contextmenu({
2027
+ event,
2028
+ type: isTitle ? 'head' : 'body',
2029
+ rowIndex: isTitle ? null : rowIndex,
2030
+ colIndex,
2031
+ data: isTitle ? null : this.list[rowIndex],
2032
+ column: this._columns[colIndex]
2033
+ });
2034
+ (isObservable(obs$) ? obs$ : of(obs$))
2035
+ .pipe(takeUntil(this.destroy$), filter(res => res.length > 0))
2036
+ .subscribe(res => {
2037
+ this.contextmenuList = res.map(i => {
2038
+ if (!Array.isArray(i.children)) {
2039
+ i.children = [];
2040
+ }
2041
+ return i;
2042
+ });
2043
+ this.cdr.detectChanges();
2044
+ this.cms.create(event, this.contextmenuTpl);
2045
+ });
2046
+ }
2047
+ // #endregion
2048
+ get cdkVirtualScrollViewport() {
2049
+ return this.orgTable.cdkVirtualScrollViewport;
2050
+ }
2051
+ resetColumns(options) {
2052
+ options = { emitReload: true, preClearData: false, ...options };
2053
+ if (typeof options.columns !== 'undefined') {
2054
+ this.columns = options.columns;
2055
+ }
2056
+ if (typeof options.pi !== 'undefined') {
2057
+ this.pi = options.pi;
2058
+ }
2059
+ if (typeof options.ps !== 'undefined') {
2060
+ this.ps = options.ps;
2061
+ }
2062
+ if (options.emitReload) {
2063
+ // Should clean data, Because of changing columns may cause inaccurate data
2064
+ options.preClearData = true;
2065
+ }
2066
+ if (options.preClearData) {
2067
+ this._data = [];
2068
+ }
2069
+ this.refreshColumns();
2070
+ if (options.emitReload) {
2071
+ return this.loadPageData();
2072
+ }
2073
+ else {
2074
+ this.cd();
2075
+ return Promise.resolve(this);
2076
+ }
2077
+ }
2078
+ refreshColumns() {
2079
+ const res = this.columnSource.process(this.columns, {
2080
+ widthMode: this.widthMode,
2081
+ resizable: this._resizable,
2082
+ safeType: this.cog.safeType
2083
+ });
2084
+ this._columns = res.columns;
2085
+ this._headers = res.headers;
2086
+ if (this.customWidthConfig === false && res.headerWidths != null) {
2087
+ this._widthConfig = res.headerWidths;
2088
+ }
2089
+ return this;
2090
+ }
2091
+ optimizeData() {
2092
+ this._data = this.dataSource.optimizeData({
2093
+ columns: this._columns,
2094
+ result: this._data,
2095
+ rowClassName: this.rowClassName
2096
+ });
2097
+ }
2098
+ /**
2099
+ * Return pure data, `st` internally maintains a set of data for caching, this part of data may affect the backend
2100
+ *
2101
+ * 返回纯净数据,`st` 内部会维护一组用于缓存的数据,这部分数据可能会影响后端
2102
+ */
2103
+ pureItem(itemOrIndex) {
2104
+ if (typeof itemOrIndex === 'number') {
2105
+ itemOrIndex = this._data[itemOrIndex];
2106
+ }
2107
+ if (!itemOrIndex) {
2108
+ return null;
2109
+ }
2110
+ const copyItem = deepCopy(itemOrIndex);
2111
+ delete copyItem._values;
2112
+ return copyItem;
2113
+ }
2114
+ ngAfterViewInit() {
2115
+ this.columnSource.restoreAllRender(this._columns);
2116
+ }
2117
+ ngOnChanges(changes) {
2118
+ if (changes.columns) {
2119
+ this.refreshColumns().optimizeData();
2120
+ }
2121
+ const changeData = changes.data;
2122
+ if (changeData && changeData.currentValue && !(this.req.lazyLoad && changeData.firstChange)) {
2123
+ this.loadPageData();
2124
+ }
2125
+ if (changes.loading) {
2126
+ this._loading = changes.loading.currentValue;
2127
+ }
2128
+ }
2129
+ ngOnDestroy() {
2130
+ this.destroy$.next();
2131
+ this.destroy$.complete();
2132
+ }
2133
+ }
2134
+ STComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: STComponent, deps: [{ token: ALAIN_I18N_TOKEN, optional: true }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: STExport }, { token: DOCUMENT }, { token: STColumnSource }, { token: STDataSource }, { token: i1$1.DelonLocaleService }, { token: i5$1.AlainConfigService }, { token: i6.NzContextMenuService }], target: i0.ɵɵFactoryTarget.Component });
2135
+ STComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: STComponent, selector: "st", inputs: { req: "req", res: "res", page: "page", data: "data", columns: "columns", contextmenu: "contextmenu", ps: "ps", pi: "pi", total: "total", loading: "loading", loadingDelay: "loadingDelay", loadingIndicator: "loadingIndicator", bordered: "bordered", size: "size", scroll: "scroll", singleSort: "singleSort", multiSort: "multiSort", rowClassName: "rowClassName", clickRowClassName: "clickRowClassName", widthMode: "widthMode", widthConfig: "widthConfig", resizable: "resizable", header: "header", showHeader: "showHeader", footer: "footer", bodyHeader: "bodyHeader", body: "body", expandRowByClick: "expandRowByClick", expandAccordion: "expandAccordion", expand: "expand", noResult: "noResult", responsive: "responsive", responsiveHideHeaderFooter: "responsiveHideHeaderFooter", virtualScroll: "virtualScroll", virtualItemSize: "virtualItemSize", virtualMaxBufferPx: "virtualMaxBufferPx", virtualMinBufferPx: "virtualMinBufferPx", customRequest: "customRequest", virtualForTrackBy: "virtualForTrackBy" }, 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.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 <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", components: [{ type: i0.forwardRef(function () { return i7.NzCheckboxComponent; }), selector: "[nz-checkbox]", inputs: ["nzValue", "nzAutoFocus", "nzDisabled", "nzIndeterminate", "nzChecked", "nzId"], outputs: ["nzCheckedChange"], exportAs: ["nzCheckbox"] }, { type: i0.forwardRef(function () { return i8$1.NzTableComponent; }), selector: "nz-table", inputs: ["nzTableLayout", "nzShowTotal", "nzItemRender", "nzTitle", "nzFooter", "nzNoResult", "nzPageSizeOptions", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualForTrackBy", "nzLoadingDelay", "nzPageIndex", "nzPageSize", "nzTotal", "nzWidthConfig", "nzData", "nzPaginationPosition", "nzScroll", "nzPaginationType", "nzFrontPagination", "nzTemplateMode", "nzShowPagination", "nzLoading", "nzOuterBordered", "nzLoadingIndicator", "nzBordered", "nzSize", "nzShowSizeChanger", "nzHideOnSinglePage", "nzShowQuickJumper", "nzSimple"], outputs: ["nzPageSizeChange", "nzPageIndexChange", "nzQueryParams", "nzCurrentPageDataChange"], exportAs: ["nzTable"] }, { type: i0.forwardRef(function () { return i8$1.NzTheadComponent; }), selector: "thead:not(.ant-table-thead)", outputs: ["nzSortOrderChange"] }, { type: i0.forwardRef(function () { return i8$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"] }, { type: i0.forwardRef(function () { return i9.NzResizeHandleComponent; }), selector: "nz-resize-handle, [nz-resize-handle]", inputs: ["nzDirection"], outputs: ["nzMouseDown"], exportAs: ["nzResizeHandle"] }, { type: i0.forwardRef(function () { return i6.NzDropdownMenuComponent; }), selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { type: i0.forwardRef(function () { return STFilterComponent; }), selector: "st-filter", inputs: ["col", "locale", "f"], outputs: ["n", "handle"] }, { type: i0.forwardRef(function () { return i8$1.NzTbodyComponent; }), selector: "tbody" }, { type: i0.forwardRef(function () { return i8$1.NzTdAddOnComponent; }), selector: "td[nzChecked], td[nzDisabled], td[nzIndeterminate], td[nzIndentSize], td[nzExpand], td[nzShowExpand], td[nzShowCheckbox]", inputs: ["nzChecked", "nzDisabled", "nzIndeterminate", "nzIndentSize", "nzShowExpand", "nzShowCheckbox", "nzExpand"], outputs: ["nzCheckedChange", "nzExpandChange"] }, { type: i0.forwardRef(function () { return STTdComponent; }), selector: "st-td", inputs: ["c", "cIdx", "data", "i", "index"], outputs: ["n"] }, { type: i0.forwardRef(function () { return i8$1.NzTableFixedRowComponent; }), selector: "tr[nz-table-fixed-row], tr[nzExpand]" }, { type: i0.forwardRef(function () { return i11.NzSubMenuComponent; }), selector: "[nz-submenu]", inputs: ["nzMenuClassName", "nzPaddingLeft", "nzTitle", "nzIcon", "nzOpen", "nzDisabled"], outputs: ["nzOpenChange"], exportAs: ["nzSubmenu"] }], directives: [{ type: i0.forwardRef(function () { return i12.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i0.forwardRef(function () { return i13.NzTooltipDirective; }), selector: "[nz-tooltip]", inputs: ["nzTooltipTitle", "nzTooltipTitleContext", "nz-tooltip", "nzTooltipTrigger", "nzTooltipPlacement", "nzTooltipOrigin", "nzTooltipVisible", "nzTooltipMouseEnterDelay", "nzTooltipMouseLeaveDelay", "nzTooltipOverlayClassName", "nzTooltipOverlayStyle", "nzTooltipArrowPointAtCenter", "nzTooltipColor"], outputs: ["nzTooltipVisibleChange"], exportAs: ["nzTooltip"] }, { type: i0.forwardRef(function () { return i14.NzIconDirective; }), selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { type: i0.forwardRef(function () { return i15.NgControlStatus; }), selector: "[formControlName],[ngModel],[formControl]" }, { type: i0.forwardRef(function () { return i15.NgModel; }), selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i0.forwardRef(function () { return i12.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i0.forwardRef(function () { return i8$1.NzTrDirective; }), selector: "tr:not([mat-row]):not([mat-header-row]):not([nz-table-measure-row]):not([nzExpand]):not([nz-table-fixed-row])" }, { type: i0.forwardRef(function () { return i8$1.NzTableCellDirective; }), selector: "th:not(.nz-disable-th):not([mat-cell]), td:not(.nz-disable-td):not([mat-cell])" }, { type: i0.forwardRef(function () { return i8$1.NzThMeasureDirective; }), selector: "th", inputs: ["nzWidth", "colspan", "colSpan", "rowspan", "rowSpan"] }, { type: i0.forwardRef(function () { return i16.LetDirective; }), selector: "[let]", inputs: ["let"] }, { type: i0.forwardRef(function () { return i8$1.NzCellFixedDirective; }), selector: "td[nzRight],th[nzRight],td[nzLeft],th[nzLeft]", inputs: ["nzRight", "nzLeft", "colspan", "colSpan"] }, { type: i0.forwardRef(function () { return i9.NzResizableDirective; }), selector: "[nz-resizable]", inputs: ["nzBounds", "nzMaxHeight", "nzMaxWidth", "nzMinHeight", "nzMinWidth", "nzGridColumnCount", "nzMaxColumn", "nzMinColumn", "nzLockAspectRatio", "nzPreview", "nzDisabled"], outputs: ["nzResize", "nzResizeEnd", "nzResizeStart"], exportAs: ["nzResizable"] }, { type: i0.forwardRef(function () { return i12.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i0.forwardRef(function () { return i12.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i0.forwardRef(function () { return i12.NgSwitch; }), selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i0.forwardRef(function () { return i12.NgSwitchCase; }), selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i0.forwardRef(function () { return i6.NzDropDownDirective; }), selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { type: i0.forwardRef(function () { return i11.NzMenuDirective; }), selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { type: i0.forwardRef(function () { return i11.NzMenuItemDirective; }), selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { type: i0.forwardRef(function () { return i12.NgSwitchDefault; }), selector: "[ngSwitchDefault]" }, { type: i0.forwardRef(function () { return i8$1.NzTrExpandDirective; }), selector: "tr[nzExpand]", inputs: ["nzExpand"] }, { type: i0.forwardRef(function () { return i8$1.NzTableVirtualScrollDirective; }), selector: "[nz-virtual-scroll]", exportAs: ["nzVirtualScroll"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2136
+ __decorate([
2137
+ InputNumber()
2138
+ ], STComponent.prototype, "ps", void 0);
2139
+ __decorate([
2140
+ InputNumber()
2141
+ ], STComponent.prototype, "pi", void 0);
2142
+ __decorate([
2143
+ InputNumber()
2144
+ ], STComponent.prototype, "total", void 0);
2145
+ __decorate([
2146
+ InputNumber()
2147
+ ], STComponent.prototype, "loadingDelay", void 0);
2148
+ __decorate([
2149
+ InputBoolean()
2150
+ ], STComponent.prototype, "bordered", void 0);
2151
+ __decorate([
2152
+ InputBoolean()
2153
+ ], STComponent.prototype, "showHeader", void 0);
2154
+ __decorate([
2155
+ InputBoolean()
2156
+ ], STComponent.prototype, "expandRowByClick", void 0);
2157
+ __decorate([
2158
+ InputBoolean()
2159
+ ], STComponent.prototype, "expandAccordion", void 0);
2160
+ __decorate([
2161
+ InputBoolean()
2162
+ ], STComponent.prototype, "responsive", void 0);
2163
+ __decorate([
2164
+ InputBoolean()
2165
+ ], STComponent.prototype, "responsiveHideHeaderFooter", void 0);
2166
+ __decorate([
2167
+ InputBoolean()
2168
+ ], STComponent.prototype, "virtualScroll", void 0);
2169
+ __decorate([
2170
+ InputNumber()
2171
+ ], STComponent.prototype, "virtualItemSize", void 0);
2172
+ __decorate([
2173
+ InputNumber()
2174
+ ], STComponent.prototype, "virtualMaxBufferPx", void 0);
2175
+ __decorate([
2176
+ InputNumber()
2177
+ ], STComponent.prototype, "virtualMinBufferPx", void 0);
2178
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: STComponent, decorators: [{
2179
+ type: Component,
2180
+ args: [{ selector: 'st', exportAs: 'st', providers: [STDataSource, STRowSource, STColumnSource, STExport, DatePipe, YNPipe, DecimalPipe], host: {
2181
+ '[class.st]': `true`,
2182
+ '[class.st__p-left]': `page.placement === 'left'`,
2183
+ '[class.st__p-center]': `page.placement === 'center'`,
2184
+ '[class.st__width-strict]': `widthMode.type === 'strict'`,
2185
+ '[class.ant-table-rep]': `responsive`,
2186
+ '[class.ant-table-rep__hide-header-footer]': `responsiveHideHeaderFooter`
2187
+ }, preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, 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" }]
2188
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
2189
+ type: Optional
2190
+ }, {
2191
+ type: Inject,
2192
+ args: [ALAIN_I18N_TOKEN]
2193
+ }] }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: STExport }, { type: undefined, decorators: [{
2194
+ type: Inject,
2195
+ args: [DOCUMENT]
2196
+ }] }, { type: STColumnSource }, { type: STDataSource }, { type: i1$1.DelonLocaleService }, { type: i5$1.AlainConfigService }, { type: i6.NzContextMenuService }]; }, propDecorators: { orgTable: [{
2197
+ type: ViewChild,
2198
+ args: ['table']
2199
+ }], contextmenuTpl: [{
2200
+ type: ViewChild,
2201
+ args: ['contextmenuTpl']
2202
+ }], req: [{
2203
+ type: Input
2204
+ }], res: [{
2205
+ type: Input
2206
+ }], page: [{
2207
+ type: Input
2208
+ }], data: [{
2209
+ type: Input
2210
+ }], columns: [{
2211
+ type: Input
2212
+ }], contextmenu: [{
2213
+ type: Input
2214
+ }], ps: [{
2215
+ type: Input
2216
+ }], pi: [{
2217
+ type: Input
2218
+ }], total: [{
2219
+ type: Input
2220
+ }], loading: [{
2221
+ type: Input
2222
+ }], loadingDelay: [{
2223
+ type: Input
2224
+ }], loadingIndicator: [{
2225
+ type: Input
2226
+ }], bordered: [{
2227
+ type: Input
2228
+ }], size: [{
2229
+ type: Input
2230
+ }], scroll: [{
2231
+ type: Input
2232
+ }], singleSort: [{
2233
+ type: Input
2234
+ }], multiSort: [{
2235
+ type: Input
2236
+ }], rowClassName: [{
2237
+ type: Input
2238
+ }], clickRowClassName: [{
2239
+ type: Input
2240
+ }], widthMode: [{
2241
+ type: Input
2242
+ }], widthConfig: [{
2243
+ type: Input
2244
+ }], resizable: [{
2245
+ type: Input
2246
+ }], header: [{
2247
+ type: Input
2248
+ }], showHeader: [{
2249
+ type: Input
2250
+ }], footer: [{
2251
+ type: Input
2252
+ }], bodyHeader: [{
2253
+ type: Input
2254
+ }], body: [{
2255
+ type: Input
2256
+ }], expandRowByClick: [{
2257
+ type: Input
2258
+ }], expandAccordion: [{
2259
+ type: Input
2260
+ }], expand: [{
2261
+ type: Input
2262
+ }], noResult: [{
2263
+ type: Input
2264
+ }], responsive: [{
2265
+ type: Input
2266
+ }], responsiveHideHeaderFooter: [{
2267
+ type: Input
2268
+ }], error: [{
2269
+ type: Output
2270
+ }], change: [{
2271
+ type: Output
2272
+ }], virtualScroll: [{
2273
+ type: Input
2274
+ }], virtualItemSize: [{
2275
+ type: Input
2276
+ }], virtualMaxBufferPx: [{
2277
+ type: Input
2278
+ }], virtualMinBufferPx: [{
2279
+ type: Input
2280
+ }], customRequest: [{
2281
+ type: Input
2282
+ }], virtualForTrackBy: [{
2283
+ type: Input
2284
+ }] } });
2285
+ class STTdComponent {
2286
+ constructor(stComp, router, modalHelper, drawerHelper) {
2287
+ this.stComp = stComp;
2288
+ this.router = router;
2289
+ this.modalHelper = modalHelper;
2290
+ this.drawerHelper = drawerHelper;
2291
+ this.n = new EventEmitter();
2292
+ }
2293
+ get routerState() {
2294
+ const { pi, ps, total } = this.stComp;
2295
+ return { pi, ps, total };
2296
+ }
2297
+ report(type) {
2298
+ this.n.emit({ type, item: this.i, col: this.c });
2299
+ }
2300
+ _checkbox(value) {
2301
+ this.i.checked = value;
2302
+ this.report('checkbox');
2303
+ }
2304
+ _radio() {
2305
+ this.data.filter(w => !w.disabled).forEach(i => (i.checked = false));
2306
+ this.i.checked = true;
2307
+ this.report('radio');
2308
+ }
2309
+ _link(e) {
2310
+ this._stopPropagation(e);
2311
+ const res = this.c.click(this.i, this.stComp);
2312
+ if (typeof res === 'string') {
2313
+ this.router.navigateByUrl(res, { state: this.routerState });
2314
+ }
2315
+ return false;
2316
+ }
2317
+ _stopPropagation(ev) {
2318
+ ev.preventDefault();
2319
+ ev.stopPropagation();
2320
+ }
2321
+ _btn(btn, ev) {
2322
+ if (ev) {
2323
+ ev.stopPropagation();
2324
+ }
2325
+ const record = this.i;
2326
+ if (btn.type === 'modal' || btn.type === 'static') {
2327
+ const { modal } = btn;
2328
+ const obj = { [modal.paramsName]: record };
2329
+ this.modalHelper[btn.type === 'modal' ? 'create' : 'createStatic'](modal.component, { ...obj, ...(modal.params && modal.params(record)) }, deepMergeKey({}, true, this.stComp['cog'].modal, modal))
2330
+ .pipe(filter(w => typeof w !== 'undefined'))
2331
+ .subscribe((res) => this.btnCallback(record, btn, res));
2332
+ return;
2333
+ }
2334
+ else if (btn.type === 'drawer') {
2335
+ const { drawer } = btn;
2336
+ const obj = { [drawer.paramsName]: record };
2337
+ this.drawerHelper
2338
+ .create(drawer.title, drawer.component, { ...obj, ...(drawer.params && drawer.params(record)) }, deepMergeKey({}, true, this.stComp['cog'].drawer, drawer))
2339
+ .pipe(filter(w => typeof w !== 'undefined'))
2340
+ .subscribe(res => this.btnCallback(record, btn, res));
2341
+ return;
2342
+ }
2343
+ else if (btn.type === 'link') {
2344
+ const clickRes = this.btnCallback(record, btn);
2345
+ if (typeof clickRes === 'string') {
2346
+ this.router.navigateByUrl(clickRes, { state: this.routerState });
2347
+ }
2348
+ return;
2349
+ }
2350
+ this.btnCallback(record, btn);
2351
+ }
2352
+ btnCallback(record, btn, modal) {
2353
+ if (!btn.click)
2354
+ return;
2355
+ if (typeof btn.click === 'string') {
2356
+ switch (btn.click) {
2357
+ case 'load':
2358
+ this.stComp.load();
2359
+ break;
2360
+ case 'reload':
2361
+ this.stComp.reload();
2362
+ break;
2363
+ }
2364
+ }
2365
+ else {
2366
+ return btn.click(record, modal, this.stComp);
2367
+ }
2368
+ }
2369
+ }
2370
+ STTdComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: STTdComponent, deps: [{ token: STComponent, host: true }, { token: i17.Router }, { token: i1$1.ModalHelper }, { token: i1$1.DrawerHelper }], target: i0.ɵɵFactoryTarget.Component });
2371
+ STTdComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: STTdComponent, 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>\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 *ngSwitchCase=\"'badge'\" [nzStatus]=\"i._values[cIdx].color\" [nzText]=\"i._values[cIdx].text\"></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 }\"> </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", components: [{ type: i7.NzCheckboxComponent, selector: "[nz-checkbox]", inputs: ["nzValue", "nzAutoFocus", "nzDisabled", "nzIndeterminate", "nzChecked", "nzId"], outputs: ["nzCheckedChange"], exportAs: ["nzCheckbox"] }, { type: i5.NzRadioComponent, selector: "[nz-radio],[nz-radio-button]", inputs: ["nzValue", "nzDisabled", "nzAutoFocus"], exportAs: ["nzRadio"] }, { type: i19.NzTagComponent, selector: "nz-tag", inputs: ["nzMode", "nzColor", "nzChecked"], outputs: ["nzOnClose", "nzCheckedChange"], exportAs: ["nzTag"] }, { type: i20.NzBadgeComponent, selector: "nz-badge", inputs: ["nzShowZero", "nzShowDot", "nzStandalone", "nzDot", "nzOverflowCount", "nzColor", "nzStyle", "nzText", "nzTitle", "nzStatus", "nzCount", "nzOffset"], exportAs: ["nzBadge"] }, { type: i6.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { type: i21.NzDividerComponent, selector: "nz-divider", inputs: ["nzText", "nzType", "nzOrientation", "nzDashed", "nzPlain"], exportAs: ["nzDivider"] }], directives: [{ type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i12.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i13.NzTooltipDirective, selector: "[nz-tooltip]", inputs: ["nzTooltipTitle", "nzTooltipTitleContext", "nz-tooltip", "nzTooltipTrigger", "nzTooltipPlacement", "nzTooltipOrigin", "nzTooltipVisible", "nzTooltipMouseEnterDelay", "nzTooltipMouseLeaveDelay", "nzTooltipOverlayClassName", "nzTooltipOverlayStyle", "nzTooltipArrowPointAtCenter", "nzTooltipColor"], outputs: ["nzTooltipVisibleChange"], exportAs: ["nzTooltip"] }, { type: i22.NzPopconfirmDirective, selector: "[nz-popconfirm]", inputs: ["nzPopconfirmArrowPointAtCenter", "nzPopconfirmTitle", "nz-popconfirm", "nzPopconfirmTrigger", "nzPopconfirmPlacement", "nzPopconfirmOrigin", "nzPopconfirmMouseEnterDelay", "nzPopconfirmMouseLeaveDelay", "nzPopconfirmOverlayClassName", "nzPopconfirmOverlayStyle", "nzPopconfirmVisible", "nzOkText", "nzOkType", "nzOkDanger", "nzCancelText", "nzIcon", "nzCondition", "nzPopconfirmShowArrow", "nzPopconfirmBackdrop", "nzAutofocus"], outputs: ["nzPopconfirmVisibleChange", "nzOnCancel", "nzOnConfirm"], exportAs: ["nzPopconfirm"] }, { type: i12.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i14.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { type: i12.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i12.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i15.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i15.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: STWidgetHostDirective, selector: "[st-widget-host]", inputs: ["record", "column"] }, { type: i12.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NzDropDownADirective, selector: "a[nz-dropdown]" }, { type: i6.NzDropDownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { type: i11.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { type: i11.NzMenuItemDirective, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { type: i11.NzMenuDividerDirective, selector: "[nz-menu-divider]", exportAs: ["nzMenuDivider"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2372
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: STTdComponent, decorators: [{
2373
+ type: Component,
2374
+ args: [{ selector: 'st-td', preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<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 *ngSwitchCase=\"'badge'\" [nzStatus]=\"i._values[cIdx].color\" [nzText]=\"i._values[cIdx].text\"></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 }\"> </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" }]
2375
+ }], ctorParameters: function () { return [{ type: STComponent, decorators: [{
2376
+ type: Host
2377
+ }] }, { type: i17.Router }, { type: i1$1.ModalHelper }, { type: i1$1.DrawerHelper }]; }, propDecorators: { c: [{
2378
+ type: Input
2379
+ }], cIdx: [{
2380
+ type: Input
2381
+ }], data: [{
2382
+ type: Input
2383
+ }], i: [{
2384
+ type: Input
2385
+ }], index: [{
2386
+ type: Input
2387
+ }], n: [{
2388
+ type: Output
2389
+ }] } });
2390
+
2391
+ const COMPONENTS = [STComponent, STRowDirective, STWidgetHostDirective];
2392
+ class STModule {
2393
+ }
2394
+ STModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: STModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2395
+ STModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: STModule, declarations: [STComponent, STRowDirective, STWidgetHostDirective, STFilterComponent, STTdComponent], imports: [CommonModule,
2396
+ FormsModule,
2397
+ DelonACLModule,
2398
+ LetModule,
2399
+ NzPopconfirmModule,
2400
+ NzTableModule,
2401
+ NzIconModule,
2402
+ NzBadgeModule,
2403
+ NzCheckboxModule,
2404
+ NzDividerModule,
2405
+ NzDropDownModule,
2406
+ NzMenuModule,
2407
+ NzRadioModule,
2408
+ NzTagModule,
2409
+ NzInputModule,
2410
+ NzToolTipModule,
2411
+ NzResizableModule,
2412
+ NzInputNumberModule,
2413
+ NzDatePickerModule], exports: [STComponent, STRowDirective, STWidgetHostDirective] });
2414
+ STModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: STModule, imports: [[
2415
+ CommonModule,
2416
+ FormsModule,
2417
+ DelonACLModule,
2418
+ LetModule,
2419
+ NzPopconfirmModule,
2420
+ NzTableModule,
2421
+ NzIconModule,
2422
+ NzBadgeModule,
2423
+ NzCheckboxModule,
2424
+ NzDividerModule,
2425
+ NzDropDownModule,
2426
+ NzMenuModule,
2427
+ NzRadioModule,
2428
+ NzTagModule,
2429
+ NzInputModule,
2430
+ NzToolTipModule,
2431
+ NzResizableModule,
2432
+ NzInputNumberModule,
2433
+ NzDatePickerModule
2434
+ ]] });
2435
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: STModule, decorators: [{
2436
+ type: NgModule,
2437
+ args: [{
2438
+ imports: [
2439
+ CommonModule,
2440
+ FormsModule,
2441
+ DelonACLModule,
2442
+ LetModule,
2443
+ NzPopconfirmModule,
2444
+ NzTableModule,
2445
+ NzIconModule,
2446
+ NzBadgeModule,
2447
+ NzCheckboxModule,
2448
+ NzDividerModule,
2449
+ NzDropDownModule,
2450
+ NzMenuModule,
2451
+ NzRadioModule,
2452
+ NzTagModule,
2453
+ NzInputModule,
2454
+ NzToolTipModule,
2455
+ NzResizableModule,
2456
+ NzInputNumberModule,
2457
+ NzDatePickerModule
2458
+ ],
2459
+ declarations: [...COMPONENTS, STFilterComponent, STTdComponent],
2460
+ exports: COMPONENTS
2461
+ }]
2462
+ }] });
2463
+
2464
+ /**
2465
+ * Generated bundle index. Do not edit.
2466
+ */
2467
+
2468
+ export { STColumnSource, STComponent, STDataSource, STExport, STModule, STRowDirective, STWidgetHostDirective, STWidgetRegistry, ST_DEFAULT_CONFIG };
2469
+ //# sourceMappingURL=st.mjs.map