@delon/abc 12.4.2 → 13.1.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 (755) 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} +597 -483
  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/style/index.less +6 -0
  394. package/package.json +274 -14
  395. package/page-header/package.json +6 -7
  396. package/page-header/page-header.component.d.ts +4 -1
  397. package/page-header/page-header.d.ts +5 -0
  398. package/page-header/page-header.module.d.ts +11 -0
  399. package/page-header/style/index.less +10 -0
  400. package/page-header/style/rtl.less +3 -0
  401. package/pdf/package.json +5 -6
  402. package/pdf/pdf.component.d.ts +5 -2
  403. package/pdf/pdf.d.ts +1 -0
  404. package/pdf/pdf.module.d.ts +7 -0
  405. package/qr/package.json +5 -6
  406. package/qr/qr.component.d.ts +13 -10
  407. package/qr/qr.d.ts +1 -0
  408. package/qr/qr.module.d.ts +6 -0
  409. package/quick-menu/package.json +6 -7
  410. package/quick-menu/quick-menu.component.d.ts +6 -3
  411. package/quick-menu/quick-menu.d.ts +5 -0
  412. package/quick-menu/quick-menu.module.d.ts +8 -0
  413. package/quick-menu/style/index.less +2 -0
  414. package/result/package.json +5 -6
  415. package/result/result.component.d.ts +6 -3
  416. package/result/result.d.ts +1 -0
  417. package/result/result.module.d.ts +8 -0
  418. package/result/style/index.less +7 -0
  419. package/reuse-tab/package.json +6 -7
  420. package/reuse-tab/reuse-tab-context-menu.component.d.ts +3 -0
  421. package/reuse-tab/reuse-tab-context.component.d.ts +4 -1
  422. package/reuse-tab/reuse-tab-context.directive.d.ts +3 -0
  423. package/reuse-tab/reuse-tab-context.service.d.ts +4 -1
  424. package/reuse-tab/reuse-tab.component.d.ts +13 -10
  425. package/reuse-tab/reuse-tab.d.ts +5 -0
  426. package/reuse-tab/reuse-tab.module.d.ts +15 -0
  427. package/reuse-tab/reuse-tab.service.d.ts +7 -4
  428. package/reuse-tab/style/index.less +4 -0
  429. package/se/package.json +6 -7
  430. package/se/public_api.d.ts +0 -1
  431. package/se/se-container.component.d.ts +18 -4
  432. package/se/se.component.d.ts +13 -8
  433. package/{footer-toolbar/footerToolbar.d.ts → se/se.d.ts} +1 -0
  434. package/se/se.module.d.ts +10 -0
  435. package/se/style/index.less +2 -0
  436. package/sg/package.json +6 -7
  437. package/sg/sg-container.component.d.ts +4 -1
  438. package/sg/sg.component.d.ts +4 -1
  439. package/{error-collect/errorCollect.d.ts → sg/sg.d.ts} +1 -0
  440. package/sg/sg.module.d.ts +7 -0
  441. package/st/package.json +6 -7
  442. package/st/st-column-source.d.ts +4 -1
  443. package/st/st-data-source.d.ts +3 -0
  444. package/st/st-export.d.ts +3 -0
  445. package/st/st-filter.component.d.ts +3 -0
  446. package/st/st-row.directive.d.ts +7 -2
  447. package/st/st-widget-host.directive.d.ts +5 -3
  448. package/st/st-widget.d.ts +3 -0
  449. package/st/st.component.d.ts +38 -11
  450. package/{down-file/downFile.d.ts → st/st.d.ts} +1 -0
  451. package/st/st.interfaces.d.ts +2 -2
  452. package/st/st.module.d.ts +27 -0
  453. package/st/style/index.less +8 -0
  454. package/sv/package.json +6 -7
  455. package/sv/public_api.d.ts +0 -1
  456. package/sv/style/index.less +8 -0
  457. package/sv/sv-container.component.d.ts +16 -3
  458. package/sv/sv-value.component.d.ts +3 -0
  459. package/sv/sv.component.d.ts +13 -10
  460. package/{avatar-list/avatarList.d.ts → sv/sv.d.ts} +1 -0
  461. package/sv/sv.module.d.ts +12 -0
  462. package/tag-select/package.json +6 -7
  463. package/tag-select/style/index.less +4 -0
  464. package/tag-select/style/rtl.less +3 -0
  465. package/tag-select/tag-select.component.d.ts +3 -0
  466. package/tag-select/tag-select.d.ts +5 -0
  467. package/tag-select/tag-select.module.d.ts +8 -0
  468. package/xlsx/package.json +5 -6
  469. package/xlsx/xlsx.d.ts +1 -0
  470. package/xlsx/xlsx.directive.d.ts +3 -0
  471. package/xlsx/xlsx.module.d.ts +6 -0
  472. package/xlsx/xlsx.service.d.ts +3 -0
  473. package/zip/package.json +5 -6
  474. package/zip/zip.d.ts +1 -0
  475. package/zip/zip.module.d.ts +5 -0
  476. package/zip/zip.service.d.ts +3 -0
  477. package/abc.metadata.json +0 -1
  478. package/auto-focus/autoFocus.metadata.json +0 -1
  479. package/avatar-list/avatarList.metadata.json +0 -1
  480. package/bundles/abc.umd.js +0 -19
  481. package/bundles/abc.umd.js.map +0 -1
  482. package/bundles/autoFocus.umd.js +0 -394
  483. package/bundles/autoFocus.umd.js.map +0 -1
  484. package/bundles/avatarList.umd.js +0 -465
  485. package/bundles/avatarList.umd.js.map +0 -1
  486. package/bundles/count-down.umd.js +0 -75
  487. package/bundles/count-down.umd.js.map +0 -1
  488. package/bundles/datePicker.umd.js +0 -552
  489. package/bundles/datePicker.umd.js.map +0 -1
  490. package/bundles/downFile.umd.js +0 -474
  491. package/bundles/downFile.umd.js.map +0 -1
  492. package/bundles/edit.umd.js +0 -776
  493. package/bundles/edit.umd.js.map +0 -1
  494. package/bundles/ellipsis.umd.js +0 -578
  495. package/bundles/ellipsis.umd.js.map +0 -1
  496. package/bundles/errorCollect.umd.js +0 -461
  497. package/bundles/errorCollect.umd.js.map +0 -1
  498. package/bundles/exception.umd.js +0 -150
  499. package/bundles/exception.umd.js.map +0 -1
  500. package/bundles/footerToolbar.umd.js +0 -401
  501. package/bundles/footerToolbar.umd.js.map +0 -1
  502. package/bundles/fullContent.umd.js +0 -550
  503. package/bundles/fullContent.umd.js.map +0 -1
  504. package/bundles/globalFooter.umd.js +0 -455
  505. package/bundles/globalFooter.umd.js.map +0 -1
  506. package/bundles/grid.umd.js +0 -470
  507. package/bundles/grid.umd.js.map +0 -1
  508. package/bundles/image.umd.js +0 -482
  509. package/bundles/image.umd.js.map +0 -1
  510. package/bundles/let.umd.js +0 -76
  511. package/bundles/let.umd.js.map +0 -1
  512. package/bundles/loading.umd.js +0 -181
  513. package/bundles/loading.umd.js.map +0 -1
  514. package/bundles/lodop.umd.js +0 -605
  515. package/bundles/lodop.umd.js.map +0 -1
  516. package/bundles/media.umd.js +0 -536
  517. package/bundles/media.umd.js.map +0 -1
  518. package/bundles/noticeIcon.umd.js +0 -468
  519. package/bundles/noticeIcon.umd.js.map +0 -1
  520. package/bundles/onboarding.umd.js +0 -370
  521. package/bundles/onboarding.umd.js.map +0 -1
  522. package/bundles/pageHeader.umd.js +0 -570
  523. package/bundles/pageHeader.umd.js.map +0 -1
  524. package/bundles/pdf.umd.js +0 -863
  525. package/bundles/pdf.umd.js.map +0 -1
  526. package/bundles/qr.umd.js +0 -491
  527. package/bundles/qr.umd.js.map +0 -1
  528. package/bundles/quickMenu.umd.js +0 -442
  529. package/bundles/quickMenu.umd.js.map +0 -1
  530. package/bundles/result.umd.js +0 -100
  531. package/bundles/result.umd.js.map +0 -1
  532. package/bundles/reuseTab.umd.js +0 -1522
  533. package/bundles/reuseTab.umd.js.map +0 -1
  534. package/bundles/table.umd.js +0 -2590
  535. package/bundles/table.umd.js.map +0 -1
  536. package/bundles/tagSelect.umd.js +0 -419
  537. package/bundles/tagSelect.umd.js.map +0 -1
  538. package/bundles/view.umd.js +0 -592
  539. package/bundles/view.umd.js.map +0 -1
  540. package/bundles/xlsx.umd.js +0 -529
  541. package/bundles/xlsx.umd.js.map +0 -1
  542. package/bundles/zip.umd.js +0 -482
  543. package/bundles/zip.umd.js.map +0 -1
  544. package/count-down/count-down.metadata.json +0 -1
  545. package/date-picker/datePicker.d.ts +0 -5
  546. package/date-picker/datePicker.metadata.json +0 -1
  547. package/down-file/downFile.metadata.json +0 -1
  548. package/ellipsis/ellipsis.metadata.json +0 -1
  549. package/error-collect/errorCollect.metadata.json +0 -1
  550. package/esm2015/auto-focus/auto-focus.directive.js +0 -42
  551. package/esm2015/auto-focus/auto-focus.module.js +0 -12
  552. package/esm2015/auto-focus/autoFocus.js +0 -5
  553. package/esm2015/avatar-list/avatar-list-item.component.js +0 -20
  554. package/esm2015/avatar-list/avatar-list.component.js +0 -89
  555. package/esm2015/avatar-list/avatar-list.module.js +0 -17
  556. package/esm2015/avatar-list/avatarList.js +0 -5
  557. package/esm2015/count-down/count-down.component.js +0 -36
  558. package/esm2015/count-down/count-down.module.js +0 -15
  559. package/esm2015/date-picker/date-picker.module.js +0 -17
  560. package/esm2015/date-picker/datePicker.js +0 -6
  561. package/esm2015/date-picker/range-shortcut.component.js +0 -26
  562. package/esm2015/date-picker/range.directive.js +0 -171
  563. package/esm2015/down-file/down-file.directive.js +0 -103
  564. package/esm2015/down-file/down-file.module.js +0 -15
  565. package/esm2015/down-file/downFile.js +0 -5
  566. package/esm2015/ellipsis/ellipsis.component.js +0 -224
  567. package/esm2015/ellipsis/ellipsis.module.js +0 -16
  568. package/esm2015/error-collect/error-collect.component.js +0 -112
  569. package/esm2015/error-collect/error-collect.module.js +0 -15
  570. package/esm2015/error-collect/errorCollect.js +0 -5
  571. package/esm2015/exception/exception.component.js +0 -103
  572. package/esm2015/exception/exception.module.js +0 -18
  573. package/esm2015/footer-toolbar/footer-toolbar.component.js +0 -46
  574. package/esm2015/footer-toolbar/footer-toolbar.module.js +0 -16
  575. package/esm2015/footer-toolbar/footerToolbar.js +0 -5
  576. package/esm2015/full-content/full-content-toggle.directive.js +0 -23
  577. package/esm2015/full-content/full-content.component.js +0 -135
  578. package/esm2015/full-content/full-content.module.js +0 -15
  579. package/esm2015/full-content/full-content.service.js +0 -21
  580. package/esm2015/full-content/fullContent.js +0 -5
  581. package/esm2015/global-footer/global-footer-item.component.js +0 -24
  582. package/esm2015/global-footer/global-footer.component.js +0 -77
  583. package/esm2015/global-footer/global-footer.module.js +0 -16
  584. package/esm2015/global-footer/globalFooter.js +0 -5
  585. package/esm2015/image/image.directive.js +0 -133
  586. package/esm2015/image/image.module.js +0 -15
  587. package/esm2015/let/let.directive.js +0 -31
  588. package/esm2015/let/let.module.js +0 -12
  589. package/esm2015/loading/loading.component.js +0 -26
  590. package/esm2015/loading/loading.module.js +0 -19
  591. package/esm2015/loading/loading.service.js +0 -92
  592. package/esm2015/lodop/lodop.module.js +0 -7
  593. package/esm2015/lodop/lodop.service.js +0 -219
  594. package/esm2015/lodop/lodop.types.js +0 -2
  595. package/esm2015/media/media.component.js +0 -104
  596. package/esm2015/media/media.module.js +0 -14
  597. package/esm2015/media/media.service.js +0 -53
  598. package/esm2015/notice-icon/notice-icon-tab.component.js +0 -30
  599. package/esm2015/notice-icon/notice-icon.component.js +0 -74
  600. package/esm2015/notice-icon/notice-icon.module.js +0 -35
  601. package/esm2015/notice-icon/noticeIcon.js +0 -5
  602. package/esm2015/onboarding/onboarding.component.js +0 -130
  603. package/esm2015/onboarding/onboarding.module.js +0 -20
  604. package/esm2015/onboarding/onboarding.service.js +0 -178
  605. package/esm2015/page-header/page-header.component.js +0 -216
  606. package/esm2015/page-header/page-header.module.js +0 -19
  607. package/esm2015/page-header/pageHeader.js +0 -5
  608. package/esm2015/pdf/pdf.component.js +0 -433
  609. package/esm2015/pdf/pdf.module.js +0 -15
  610. package/esm2015/qr/qr.component.js +0 -128
  611. package/esm2015/qr/qr.module.js +0 -14
  612. package/esm2015/quick-menu/quick-menu.component.js +0 -90
  613. package/esm2015/quick-menu/quick-menu.module.js +0 -16
  614. package/esm2015/quick-menu/quickMenu.js +0 -5
  615. package/esm2015/result/result.component.js +0 -62
  616. package/esm2015/result/result.module.js +0 -16
  617. package/esm2015/reuse-tab/reuse-tab-context-menu.component.js +0 -74
  618. package/esm2015/reuse-tab/reuse-tab-context.component.js +0 -32
  619. package/esm2015/reuse-tab/reuse-tab-context.directive.js +0 -33
  620. package/esm2015/reuse-tab/reuse-tab-context.service.js +0 -53
  621. package/esm2015/reuse-tab/reuse-tab.component.js +0 -300
  622. package/esm2015/reuse-tab/reuse-tab.module.js +0 -24
  623. package/esm2015/reuse-tab/reuse-tab.service.js +0 -534
  624. package/esm2015/reuse-tab/reuseTab.js +0 -5
  625. package/esm2015/se/edit.js +0 -5
  626. package/esm2015/se/public_api.js +0 -6
  627. package/esm2015/se/se-container.component.js +0 -115
  628. package/esm2015/se/se-title.component.js +0 -40
  629. package/esm2015/se/se.component.js +0 -214
  630. package/esm2015/se/se.module.js +0 -19
  631. package/esm2015/sg/grid.js +0 -5
  632. package/esm2015/sg/sg-container.component.js +0 -49
  633. package/esm2015/sg/sg.component.js +0 -65
  634. package/esm2015/sg/sg.module.js +0 -15
  635. package/esm2015/st/st-column-source.js +0 -428
  636. package/esm2015/st/st-data-source.js +0 -429
  637. package/esm2015/st/st-export.js +0 -90
  638. package/esm2015/st/st-filter.component.js +0 -149
  639. package/esm2015/st/st-row.directive.js +0 -40
  640. package/esm2015/st/st-td.component.js +0 -232
  641. package/esm2015/st/st-widget-host.directive.js +0 -34
  642. package/esm2015/st/st-widget.js +0 -24
  643. package/esm2015/st/st.component.js +0 -788
  644. package/esm2015/st/st.interfaces.js +0 -2
  645. package/esm2015/st/st.module.js +0 -56
  646. package/esm2015/st/table.js +0 -8
  647. package/esm2015/sv/public_api.js +0 -6
  648. package/esm2015/sv/sv-container.component.js +0 -63
  649. package/esm2015/sv/sv-title.component.js +0 -40
  650. package/esm2015/sv/sv-value.component.js +0 -32
  651. package/esm2015/sv/sv.component.js +0 -105
  652. package/esm2015/sv/sv.module.js +0 -21
  653. package/esm2015/sv/view.js +0 -5
  654. package/esm2015/tag-select/tag-select.component.js +0 -70
  655. package/esm2015/tag-select/tag-select.module.js +0 -16
  656. package/esm2015/tag-select/tagSelect.js +0 -5
  657. package/esm2015/xlsx/xlsx.directive.js +0 -26
  658. package/esm2015/xlsx/xlsx.module.js +0 -14
  659. package/esm2015/xlsx/xlsx.service.js +0 -129
  660. package/esm2015/zip/zip.module.js +0 -10
  661. package/esm2015/zip/zip.service.js +0 -115
  662. package/exception/exception.metadata.json +0 -1
  663. package/fesm2015/abc.js.map +0 -1
  664. package/fesm2015/autoFocus.js +0 -59
  665. package/fesm2015/autoFocus.js.map +0 -1
  666. package/fesm2015/avatarList.js +0 -128
  667. package/fesm2015/avatarList.js.map +0 -1
  668. package/fesm2015/count-down.js +0 -56
  669. package/fesm2015/count-down.js.map +0 -1
  670. package/fesm2015/datePicker.js.map +0 -1
  671. package/fesm2015/downFile.js +0 -122
  672. package/fesm2015/downFile.js.map +0 -1
  673. package/fesm2015/edit.js +0 -396
  674. package/fesm2015/edit.js.map +0 -1
  675. package/fesm2015/ellipsis.js +0 -244
  676. package/fesm2015/ellipsis.js.map +0 -1
  677. package/fesm2015/errorCollect.js +0 -131
  678. package/fesm2015/errorCollect.js.map +0 -1
  679. package/fesm2015/exception.js +0 -125
  680. package/fesm2015/exception.js.map +0 -1
  681. package/fesm2015/footerToolbar.js +0 -66
  682. package/fesm2015/footerToolbar.js.map +0 -1
  683. package/fesm2015/fullContent.js +0 -191
  684. package/fesm2015/fullContent.js.map +0 -1
  685. package/fesm2015/globalFooter.js +0 -118
  686. package/fesm2015/globalFooter.js.map +0 -1
  687. package/fesm2015/grid.js +0 -129
  688. package/fesm2015/grid.js.map +0 -1
  689. package/fesm2015/image.js +0 -152
  690. package/fesm2015/image.js.map +0 -1
  691. package/fesm2015/let.js +0 -48
  692. package/fesm2015/let.js.map +0 -1
  693. package/fesm2015/loading.js +0 -138
  694. package/fesm2015/loading.js.map +0 -1
  695. package/fesm2015/lodop.js.map +0 -1
  696. package/fesm2015/media.js +0 -174
  697. package/fesm2015/media.js.map +0 -1
  698. package/fesm2015/noticeIcon.js +0 -141
  699. package/fesm2015/noticeIcon.js.map +0 -1
  700. package/fesm2015/onboarding.js +0 -328
  701. package/fesm2015/onboarding.js.map +0 -1
  702. package/fesm2015/pageHeader.js +0 -239
  703. package/fesm2015/pageHeader.js.map +0 -1
  704. package/fesm2015/pdf.js.map +0 -1
  705. package/fesm2015/qr.js +0 -159
  706. package/fesm2015/qr.js.map +0 -1
  707. package/fesm2015/quickMenu.js +0 -111
  708. package/fesm2015/quickMenu.js.map +0 -1
  709. package/fesm2015/result.js +0 -83
  710. package/fesm2015/result.js.map +0 -1
  711. package/fesm2015/reuseTab.js.map +0 -1
  712. package/fesm2015/table.js.map +0 -1
  713. package/fesm2015/tagSelect.js +0 -90
  714. package/fesm2015/tagSelect.js.map +0 -1
  715. package/fesm2015/view.js +0 -256
  716. package/fesm2015/view.js.map +0 -1
  717. package/fesm2015/xlsx.js.map +0 -1
  718. package/fesm2015/zip.js.map +0 -1
  719. package/footer-toolbar/footerToolbar.metadata.json +0 -1
  720. package/full-content/fullContent.d.ts +0 -4
  721. package/full-content/fullContent.metadata.json +0 -1
  722. package/global-footer/globalFooter.d.ts +0 -4
  723. package/global-footer/globalFooter.metadata.json +0 -1
  724. package/image/image.metadata.json +0 -1
  725. package/let/let.metadata.json +0 -1
  726. package/loading/loading.metadata.json +0 -1
  727. package/lodop/lodop.metadata.json +0 -1
  728. package/media/media.metadata.json +0 -1
  729. package/notice-icon/noticeIcon.d.ts +0 -4
  730. package/notice-icon/noticeIcon.metadata.json +0 -1
  731. package/onboarding/onboarding.metadata.json +0 -1
  732. package/page-header/pageHeader.d.ts +0 -4
  733. package/page-header/pageHeader.metadata.json +0 -1
  734. package/pdf/pdf.metadata.json +0 -1
  735. package/qr/qr.metadata.json +0 -1
  736. package/quick-menu/quickMenu.d.ts +0 -4
  737. package/quick-menu/quickMenu.metadata.json +0 -1
  738. package/result/result.metadata.json +0 -1
  739. package/reuse-tab/reuseTab.d.ts +0 -4
  740. package/reuse-tab/reuseTab.metadata.json +0 -1
  741. package/se/edit.d.ts +0 -4
  742. package/se/edit.metadata.json +0 -1
  743. package/se/se-title.component.d.ts +0 -10
  744. package/sg/grid.d.ts +0 -4
  745. package/sg/grid.metadata.json +0 -1
  746. package/st/st-td.component.d.ts +0 -27
  747. package/st/table.d.ts +0 -7
  748. package/st/table.metadata.json +0 -1
  749. package/sv/sv-title.component.d.ts +0 -10
  750. package/sv/view.d.ts +0 -4
  751. package/sv/view.metadata.json +0 -1
  752. package/tag-select/tagSelect.d.ts +0 -4
  753. package/tag-select/tagSelect.metadata.json +0 -1
  754. package/xlsx/xlsx.metadata.json +0 -1
  755. package/zip/zip.metadata.json +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"pdf.js","sources":["../../../../packages/abc/pdf/pdf.config.ts","../../../../packages/abc/pdf/pdf.types.ts","../../../../packages/abc/pdf/pdf.component.ts","../../../../packages/abc/pdf/pdf.module.ts","../../../../packages/abc/pdf/pdf.ts"],"sourcesContent":["import { AlainPdfConfig } from '@delon/util/config';\n\nexport const PDF_DEFULAT_CONFIG: AlainPdfConfig = {\n lib: `https://cdn.jsdelivr.net/npm/pdfjs-dist@2.5.207/`,\n showAll: true,\n renderText: true,\n showBorders: false,\n originalSize: true,\n fitToPage: false,\n autoReSize: true\n};\n","import type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nexport type PdfChangeEventType =\n | 'loaded'\n | 'load-progress'\n | 'pages-init'\n | 'page-rendered'\n | 'text-layer-rendered'\n | 'pi'\n | 'error';\nexport type PdfZoomScale = 'page-height' | 'page-fit' | 'page-width';\n\nexport interface PdfChangeEvent {\n type?: PdfChangeEventType;\n pi?: number;\n total?: number;\n pdf?: NzSafeAny;\n ev?: NzSafeAny;\n progress?: { loaded: number; total: number };\n error?: NzSafeAny;\n}\n\nexport enum PdfTextLayerMode {\n DISABLE = 0,\n ENABLE = 1,\n ENABLE_ENHANCE = 2\n}\n\nexport enum PdfExternalLinkTarget {\n NONE = 0, // Default value.\n SELF = 1,\n BLANK = 2,\n PARENT = 3,\n TOP = 4\n}\n","import { Platform } from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n SimpleChange,\n ViewEncapsulation\n} from '@angular/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { debounceTime, filter, takeUntil } from 'rxjs/operators';\n\nimport { AlainConfigService } from '@delon/util/config';\nimport { BooleanInput, InputBoolean, InputNumber, NumberInput, ZoneOutside } from '@delon/util/decorator';\nimport { LazyService } from '@delon/util/other';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { PDF_DEFULAT_CONFIG } from './pdf.config';\nimport { PdfChangeEvent, PdfChangeEventType, PdfExternalLinkTarget, PdfTextLayerMode, PdfZoomScale } from './pdf.types';\n\nconst CSS_UNITS: number = 96.0 / 72.0;\nconst BORDER_WIDTH = 9;\n\n@Component({\n selector: 'pdf',\n exportAs: 'pdf',\n template: `\n <nz-skeleton *ngIf=\"!inited || loading\"></nz-skeleton>\n <div class=\"pdf-container\">\n <div class=\"pdfViewer\"></div>\n </div>\n `,\n host: {\n '[class.d-block]': `true`\n },\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class PdfComponent implements OnChanges, AfterViewInit, OnDestroy {\n static ngAcceptInputType_pi: NumberInput;\n static ngAcceptInputType_delay: NumberInput;\n static ngAcceptInputType_showAllPages: BooleanInput;\n static ngAcceptInputType_stickToPage: BooleanInput;\n static ngAcceptInputType_originalSize: BooleanInput;\n static ngAcceptInputType_fitToPage: BooleanInput;\n static ngAcceptInputType_disableTextLayer: BooleanInput;\n static ngAcceptInputType_removePageBorders: BooleanInput;\n\n inited = false;\n private unsubscribe$ = new Subject<void>();\n private lib: string = '';\n private _pdf: NzSafeAny;\n private loadingTask: NzSafeAny;\n private _src: NzSafeAny;\n private lastSrc: string;\n private _pi = 1;\n private _total = 0;\n private _showAll = true;\n private _rotation = 0;\n private _zoom = 1;\n private _renderText = true;\n private _loading = false;\n\n private multiPageViewer: NzSafeAny;\n private multiPageLinkService: NzSafeAny;\n private multiPageFindController: NzSafeAny;\n private singlePageViewer: NzSafeAny;\n private singlePageLinkService: NzSafeAny;\n private singlePageFindController: NzSafeAny;\n\n @Input() set src(dataOrBuffer: NzSafeAny) {\n this._src = dataOrBuffer;\n this.load();\n }\n @Input()\n @InputNumber()\n set pi(val: number) {\n this._pi = this.getValidPi(val);\n if (this._pdf) {\n this.pageViewer.scrollPageIntoView({ pageNumber: this._pi });\n }\n }\n @Input() @InputBoolean() set showAll(val: boolean) {\n this._showAll = val;\n this.resetDoc();\n }\n @Input() @InputBoolean() set renderText(val: boolean) {\n this._renderText = val;\n if (this._pdf) {\n this.pageViewer.textLayerMode = this._textLayerMode;\n this.resetDoc();\n }\n }\n @Input() textLayerMode: PdfTextLayerMode = PdfTextLayerMode.ENABLE;\n @Input() @InputBoolean() showBorders = false;\n @Input() @InputBoolean() stickToPage = false;\n @Input() @InputBoolean() originalSize = true;\n @Input() @InputBoolean() fitToPage = false;\n @Input() @InputNumber() set zoom(val: number) {\n if (val <= 0) return;\n this._zoom = val;\n }\n @Input() zoomScale: PdfZoomScale = 'page-width';\n @Input() @InputNumber() set rotation(val: number) {\n if (val % 90 !== 0) {\n console.warn(`Invalid rotation angle, shoule be divisible by 90.`);\n return;\n }\n this._rotation = val;\n }\n @Input() @InputBoolean() autoReSize = true;\n @Input() externalLinkTarget: PdfExternalLinkTarget = PdfExternalLinkTarget.BLANK;\n @Input() @InputNumber() delay: number;\n @Output() readonly change = new EventEmitter<PdfChangeEvent>();\n\n get loading(): boolean {\n return this._loading;\n }\n\n get pdf(): NzSafeAny {\n return this._pdf;\n }\n\n get findController(): NzSafeAny {\n return this._showAll ? this.multiPageFindController : this.singlePageFindController;\n }\n\n get pageViewer(): NzSafeAny {\n return this._showAll ? this.multiPageViewer : this.singlePageViewer;\n }\n\n get linkService(): NzSafeAny {\n return this._showAll ? this.multiPageLinkService : this.singlePageLinkService;\n }\n\n private get _textLayerMode(): PdfTextLayerMode {\n return this._renderText ? this.textLayerMode : PdfTextLayerMode.DISABLE;\n }\n\n private get win(): NzSafeAny {\n return this.doc.defaultView || window;\n }\n\n private get el(): HTMLElement {\n return this._el.nativeElement.querySelector('.pdf-container') as HTMLElement;\n }\n\n constructor(\n private ngZone: NgZone,\n configSrv: AlainConfigService,\n private lazySrv: LazyService,\n private platform: Platform,\n private _el: ElementRef<HTMLElement>,\n @Optional() @Inject(DOCUMENT) private doc: NzSafeAny,\n private cdr: ChangeDetectorRef\n ) {\n const cog = configSrv.merge('pdf', PDF_DEFULAT_CONFIG)!;\n Object.assign(this, cog);\n\n const lib = cog.lib!;\n this.lib = lib.endsWith('/') ? lib : `${lib}/`;\n }\n\n private getValidPi(pi: number): number {\n if (pi < 1) return 1;\n const pdf = this._pdf;\n return pdf && pi > pdf.numPages ? pdf.numPages : pi;\n }\n\n private emit(type: PdfChangeEventType, opt?: PdfChangeEvent): void {\n this.ngZone.run(() =>\n this.change.emit({\n type,\n pdf: this._pdf,\n pi: this._pi,\n total: this._total,\n ...opt\n })\n );\n }\n\n private initDelay(): void {\n this.inited = true;\n this.cdr.detectChanges();\n this.win.pdfjsLib.GlobalWorkerOptions.workerSrc = `${this.lib}build/pdf.worker.min.js`;\n\n setTimeout(() => this.load(), this.delay);\n }\n\n setLoading(status: boolean): void {\n this.ngZone.run(() => {\n this._loading = status;\n this.cdr.detectChanges();\n });\n }\n\n @ZoneOutside()\n private load(): void {\n const { _src } = this;\n if (!this.inited || !_src) {\n return;\n }\n\n if (this.lastSrc === _src) {\n this.render();\n return;\n }\n\n this.destroy();\n this.ngZone.run(() => {\n this._loading = true;\n this.cdr.detectChanges();\n });\n this.setLoading(true);\n const loadingTask = (this.loadingTask = this.win.pdfjsLib.getDocument(_src));\n loadingTask.onProgress = (progress: { loaded: number; total: number }) => this.emit('load-progress', { progress });\n (loadingTask.promise as PromiseLike<void>)\n .then(\n (pdf: NzSafeAny) => {\n this._pdf = pdf;\n this.lastSrc = _src;\n this._total = pdf.numPages;\n\n this.emit('loaded');\n\n if (!this.pageViewer) {\n this.setupPageViewer();\n }\n\n this.resetDoc();\n this.render();\n },\n (error: NzSafeAny) => this.emit('error', { error })\n )\n .then(() => this.setLoading(false));\n }\n\n @ZoneOutside()\n private resetDoc(): void {\n const pdf = this._pdf;\n if (!pdf) {\n return;\n }\n this.cleanDoc();\n\n this.findController.setDocument(pdf);\n this.pageViewer.setDocument(pdf);\n this.linkService.setDocument(pdf, null);\n }\n\n private cleanDoc(): void {\n this.multiPageViewer.setDocument(null);\n this.singlePageViewer.setDocument(null);\n\n this.multiPageLinkService.setDocument(null, null);\n this.singlePageLinkService.setDocument(null, null);\n\n this.multiPageFindController.setDocument(null);\n this.singlePageFindController.setDocument(null);\n }\n\n private render(): void {\n const currentViewer = this.pageViewer;\n if (!currentViewer) {\n return;\n }\n\n if (this._rotation !== 0 || currentViewer.pagesRotation !== this._rotation) {\n setTimeout(() => {\n currentViewer.pagesRotation = this._rotation;\n });\n }\n\n if (this.stickToPage) {\n setTimeout(() => {\n currentViewer.currentPageNumber = this._pi;\n });\n }\n\n this.updateSize();\n }\n\n @ZoneOutside()\n private updateSize(): void {\n const currentViewer = this.pageViewer;\n this._pdf.getPage(currentViewer.currentPageNumber).then((page: NzSafeAny) => {\n const { _rotation, _zoom } = this;\n const rotation = _rotation || page.rotate;\n const viewportWidth =\n page.getViewport({\n scale: _zoom,\n rotation\n }).width * CSS_UNITS;\n let scale = _zoom;\n let stickToPage = true;\n\n // Scale the document when it shouldn't be in original size or doesn't fit into the viewport\n if (!this.originalSize || (this.fitToPage && viewportWidth > this.el.clientWidth)) {\n const viewPort = page.getViewport({ scale: 1, rotation });\n scale = this.getScale(viewPort.width, viewPort.height);\n stickToPage = !this.stickToPage;\n }\n\n currentViewer._setScale(scale, stickToPage);\n });\n }\n\n private getScale(viewportWidth: number, viewportHeight: number): number {\n const borderSize = this.showBorders ? 2 * BORDER_WIDTH : 0;\n const el = this.el;\n const containerWidth = el.clientWidth - borderSize;\n const containerHeight = el.clientHeight - borderSize;\n\n if (containerHeight === 0 || viewportHeight === 0 || containerWidth === 0 || viewportWidth === 0) {\n return 1;\n }\n\n let ratio = 1;\n switch (this.zoomScale) {\n case 'page-fit':\n ratio = Math.min(containerHeight / viewportHeight, containerWidth / viewportWidth);\n break;\n case 'page-height':\n ratio = containerHeight / viewportHeight;\n break;\n case 'page-width':\n default:\n ratio = containerWidth / viewportWidth;\n break;\n }\n\n return (this._zoom * ratio) / CSS_UNITS;\n }\n\n @ZoneOutside()\n private destroy(): void {\n const { loadingTask } = this;\n if (loadingTask && !loadingTask.destroyed) {\n loadingTask.destroy();\n }\n if (this._pdf) {\n this._pdf.destroy();\n this._pdf = null;\n this.cleanDoc();\n }\n }\n\n private setupPageViewer(): void {\n this.win.pdfjsLib.disableTextLayer = !this._renderText;\n this.win.pdfjsLib.externalLinkTarget = this.externalLinkTarget;\n\n this.setupMultiPageViewer();\n this.setupSinglePageViewer();\n }\n\n private createEventBus(): NzSafeAny {\n const eventBus = new this.win.pdfjsViewer.EventBus();\n eventBus.on(`pagesinit`, (ev: NzSafeAny) => {\n this.emit('pages-init', { ev });\n });\n eventBus.on(`pagerendered`, (ev: NzSafeAny) => {\n this.emit('page-rendered', { ev });\n });\n eventBus.on(`pagechanging`, (ev: NzSafeAny) => {\n const nowPi = ev.pageNumber;\n if (nowPi !== this._pi) {\n this._pi = nowPi;\n this.emit('pi', { ev });\n }\n });\n eventBus.on(`textlayerrendered`, (ev: NzSafeAny) => {\n this.emit('text-layer-rendered', { ev });\n });\n return eventBus;\n }\n\n private setupMultiPageViewer(): void {\n const VIEWER = this.win.pdfjsViewer;\n\n const eventBus = this.createEventBus();\n const linkService = (this.multiPageLinkService = new VIEWER.PDFLinkService({\n eventBus\n }));\n const findController = (this.multiPageFindController = new VIEWER.PDFFindController({\n eventBus,\n linkService\n }));\n\n const viewer = (this.multiPageViewer = new VIEWER.PDFViewer({\n eventBus,\n container: this.el,\n removePageBorders: !this.showBorders,\n textLayerMode: this._textLayerMode,\n linkService,\n findController\n }));\n linkService.setViewer(viewer);\n }\n\n private setupSinglePageViewer(): void {\n const VIEWER = this.win.pdfjsViewer;\n\n const eventBus = this.createEventBus();\n const linkService = (this.singlePageLinkService = new VIEWER.PDFLinkService({\n eventBus\n }));\n const findController = (this.singlePageFindController = new VIEWER.PDFFindController({\n eventBus,\n linkService\n }));\n\n const pageViewer = (this.singlePageViewer = new VIEWER.PDFSinglePageViewer({\n eventBus,\n container: this.el,\n removePageBorders: !this.showBorders,\n textLayerMode: this._textLayerMode,\n linkService,\n findController\n }));\n linkService.setViewer(pageViewer);\n pageViewer._currentPageNumber = this._pi;\n }\n\n ngAfterViewInit(): void {\n if (!this.platform.isBrowser) {\n return;\n }\n if (this.win.pdfjsLib) {\n this.initDelay();\n return;\n }\n const { lib } = this;\n this.lazySrv\n .load(`${lib}build/pdf.min.js`)\n .then(() => this.lazySrv.load([`${lib}web/pdf_viewer.js`, `${lib}web/pdf_viewer.css`]))\n .then(() => this.initDelay());\n\n this.ngZone.runOutsideAngular(() => this.initResize());\n }\n\n private initResize(): void {\n fromEvent(this.win, 'resize')\n .pipe(\n debounceTime(100),\n filter(() => this.autoReSize && this._pdf),\n takeUntil(this.unsubscribe$)\n )\n .subscribe(() => this.updateSize());\n }\n\n ngOnChanges(changes: { [p in keyof PdfComponent]?: SimpleChange }): void {\n if (this.inited && !changes.src) {\n this.render();\n }\n }\n\n ngOnDestroy(): void {\n const { unsubscribe$ } = this;\n unsubscribe$.next();\n unsubscribe$.complete();\n\n this.destroy();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NzSkeletonModule } from 'ng-zorro-antd/skeleton';\n\nimport { PdfComponent } from './pdf.component';\n\nconst COMPONENTS = [PdfComponent];\n\n@NgModule({\n imports: [CommonModule, NzSkeletonModule],\n declarations: COMPONENTS,\n exports: COMPONENTS\n})\nexport class PdfModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
package/fesm2015/qr.js DELETED
@@ -1,159 +0,0 @@
1
- import { __decorate } from 'tslib';
2
- import { Platform } from '@angular/cdk/platform';
3
- import { EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef, Input, Output, NgModule } from '@angular/core';
4
- import { filter } from 'rxjs/operators';
5
- import { AlainConfigService } from '@delon/util/config';
6
- import { InputNumber } from '@delon/util/decorator';
7
- import { LazyService } from '@delon/util/other';
8
- import { CommonModule } from '@angular/common';
9
-
10
- const QR_DEFULAT_CONFIG = {
11
- lib: `https://cdn.bootcdn.net/ajax/libs/qrious/4.0.2/qrious.min.js`,
12
- background: 'white',
13
- backgroundAlpha: 1,
14
- foreground: 'black',
15
- foregroundAlpha: 1,
16
- level: 'L',
17
- mime: 'image/png',
18
- padding: 10,
19
- size: 220,
20
- delay: 0
21
- };
22
-
23
- class QRComponent {
24
- constructor(cdr, configSrv, lazySrv, platform) {
25
- this.cdr = cdr;
26
- this.lazySrv = lazySrv;
27
- this.platform = platform;
28
- this.inited = false;
29
- this.value = '';
30
- this.change = new EventEmitter();
31
- this.cog = configSrv.merge('qr', QR_DEFULAT_CONFIG);
32
- Object.assign(this, this.cog);
33
- }
34
- init() {
35
- if (!this.inited) {
36
- return;
37
- }
38
- if (this.qr == null) {
39
- this.qr = new window.QRious();
40
- }
41
- this.qr.set(this.option);
42
- this.dataURL = this.qr.toDataURL();
43
- this.change.emit(this.dataURL);
44
- this.cdr.detectChanges();
45
- }
46
- initDelay() {
47
- this.inited = true;
48
- setTimeout(() => this.init(), this.delay);
49
- }
50
- ngAfterViewInit() {
51
- if (!this.platform.isBrowser) {
52
- return;
53
- }
54
- if (window.QRious) {
55
- this.initDelay();
56
- return;
57
- }
58
- const url = this.cog.lib;
59
- this.lazy$ = this.lazySrv.change
60
- .pipe(filter(ls => ls.length === 1 && ls[0].path === url && ls[0].status === 'ok'))
61
- .subscribe(() => this.initDelay());
62
- this.lazySrv.load(url);
63
- }
64
- ngOnChanges() {
65
- const option = {
66
- background: this.background,
67
- backgroundAlpha: this.backgroundAlpha,
68
- foreground: this.foreground,
69
- foregroundAlpha: this.foregroundAlpha,
70
- level: this.level,
71
- mime: this.mime,
72
- padding: this.padding,
73
- size: this.size,
74
- value: this.toUtf8ByteArray(this.value)
75
- };
76
- this.option = option;
77
- this.init();
78
- }
79
- toUtf8ByteArray(str) {
80
- str = encodeURI(str);
81
- const result = [];
82
- for (let i = 0; i < str.length; i++) {
83
- if (str.charAt(i) !== '%') {
84
- result.push(str.charCodeAt(i));
85
- }
86
- else {
87
- result.push(parseInt(str.substr(i + 1, 2), 16));
88
- i += 2;
89
- }
90
- }
91
- return result.map(v => String.fromCharCode(v)).join('');
92
- }
93
- ngOnDestroy() {
94
- if (this.lazy$) {
95
- this.lazy$.unsubscribe();
96
- }
97
- }
98
- }
99
- QRComponent.decorators = [
100
- { type: Component, args: [{
101
- selector: 'qr',
102
- exportAs: 'qr',
103
- template: ` <img *ngIf="dataURL" style="max-width: 100%; max-height: 100%;" [src]="dataURL" /> `,
104
- host: {
105
- '[style.display]': `'inline-block'`,
106
- '[style.height.px]': 'size',
107
- '[style.width.px]': 'size'
108
- },
109
- preserveWhitespaces: false,
110
- changeDetection: ChangeDetectionStrategy.OnPush,
111
- encapsulation: ViewEncapsulation.None
112
- },] }
113
- ];
114
- QRComponent.ctorParameters = () => [
115
- { type: ChangeDetectorRef },
116
- { type: AlainConfigService },
117
- { type: LazyService },
118
- { type: Platform }
119
- ];
120
- QRComponent.propDecorators = {
121
- background: [{ type: Input }],
122
- backgroundAlpha: [{ type: Input }],
123
- foreground: [{ type: Input }],
124
- foregroundAlpha: [{ type: Input }],
125
- level: [{ type: Input }],
126
- mime: [{ type: Input }],
127
- padding: [{ type: Input }],
128
- size: [{ type: Input }],
129
- value: [{ type: Input }],
130
- delay: [{ type: Input }],
131
- change: [{ type: Output }]
132
- };
133
- __decorate([
134
- InputNumber()
135
- ], QRComponent.prototype, "padding", void 0);
136
- __decorate([
137
- InputNumber()
138
- ], QRComponent.prototype, "size", void 0);
139
- __decorate([
140
- InputNumber()
141
- ], QRComponent.prototype, "delay", void 0);
142
-
143
- const COMPONENTS = [QRComponent];
144
- class QRModule {
145
- }
146
- QRModule.decorators = [
147
- { type: NgModule, args: [{
148
- imports: [CommonModule],
149
- declarations: COMPONENTS,
150
- exports: COMPONENTS
151
- },] }
152
- ];
153
-
154
- /**
155
- * Generated bundle index. Do not edit.
156
- */
157
-
158
- export { QRComponent, QRModule, QR_DEFULAT_CONFIG };
159
- //# sourceMappingURL=qr.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"qr.js","sources":["../../../../packages/abc/qr/qr.config.ts","../../../../packages/abc/qr/qr.component.ts","../../../../packages/abc/qr/qr.module.ts","../../../../packages/abc/qr/qr.ts"],"sourcesContent":["import { AlainQRConfig } from '@delon/util/config';\n\nexport const QR_DEFULAT_CONFIG: AlainQRConfig = {\n lib: `https://cdn.bootcdn.net/ajax/libs/qrious/4.0.2/qrious.min.js`,\n background: 'white',\n backgroundAlpha: 1,\n foreground: 'black',\n foregroundAlpha: 1,\n level: 'L',\n mime: 'image/png',\n padding: 10,\n size: 220,\n delay: 0\n};\n","import { Platform } from '@angular/cdk/platform';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { AlainConfigService, AlainQRConfig } from '@delon/util/config';\nimport { InputNumber, NumberInput } from '@delon/util/decorator';\nimport { LazyService } from '@delon/util/other';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { QR_DEFULAT_CONFIG } from './qr.config';\nimport { QROptions } from './qr.types';\n\n@Component({\n selector: 'qr',\n exportAs: 'qr',\n template: ` <img *ngIf=\"dataURL\" style=\"max-width: 100%; max-height: 100%;\" [src]=\"dataURL\" /> `,\n host: {\n '[style.display]': `'inline-block'`,\n '[style.height.px]': 'size',\n '[style.width.px]': 'size'\n },\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class QRComponent implements OnChanges, AfterViewInit, OnDestroy {\n static ngAcceptInputType_padding: NumberInput;\n static ngAcceptInputType_size: NumberInput;\n static ngAcceptInputType_delay: NumberInput;\n\n private lazy$: Subscription;\n private qr: NzSafeAny;\n private cog: AlainQRConfig;\n private option: QROptions;\n private inited = false;\n\n dataURL: string;\n\n @Input() background: string;\n @Input() backgroundAlpha: number;\n @Input() foreground: string;\n @Input() foregroundAlpha: number;\n @Input() level: string;\n @Input() mime: string;\n @Input() @InputNumber() padding: number;\n @Input() @InputNumber() size: number;\n @Input() value = '';\n @Input() @InputNumber() delay: number;\n @Output() readonly change = new EventEmitter<string>();\n\n constructor(\n private cdr: ChangeDetectorRef,\n configSrv: AlainConfigService,\n private lazySrv: LazyService,\n private platform: Platform\n ) {\n this.cog = configSrv.merge('qr', QR_DEFULAT_CONFIG)!;\n Object.assign(this, this.cog);\n }\n\n private init(): void {\n if (!this.inited) {\n return;\n }\n\n if (this.qr == null) {\n this.qr = new (window as NzSafeAny).QRious();\n }\n this.qr.set(this.option);\n this.dataURL = this.qr.toDataURL();\n this.change.emit(this.dataURL);\n this.cdr.detectChanges();\n }\n\n private initDelay(): void {\n this.inited = true;\n setTimeout(() => this.init(), this.delay);\n }\n\n ngAfterViewInit(): void {\n if (!this.platform.isBrowser) {\n return;\n }\n if ((window as NzSafeAny).QRious) {\n this.initDelay();\n return;\n }\n const url = this.cog.lib!;\n this.lazy$ = this.lazySrv.change\n .pipe(filter(ls => ls.length === 1 && ls[0].path === url && ls[0].status === 'ok'))\n .subscribe(() => this.initDelay());\n this.lazySrv.load(url);\n }\n\n ngOnChanges(): void {\n const option: QROptions = {\n background: this.background,\n backgroundAlpha: this.backgroundAlpha,\n foreground: this.foreground,\n foregroundAlpha: this.foregroundAlpha,\n level: this.level as NzSafeAny,\n mime: this.mime,\n padding: this.padding,\n size: this.size,\n value: this.toUtf8ByteArray(this.value)\n };\n this.option = option;\n this.init();\n }\n\n private toUtf8ByteArray(str: string): string {\n str = encodeURI(str);\n const result: number[] = [];\n for (let i = 0; i < str.length; i++) {\n if (str.charAt(i) !== '%') {\n result.push(str.charCodeAt(i));\n } else {\n result.push(parseInt(str.substr(i + 1, 2), 16));\n i += 2;\n }\n }\n return result.map(v => String.fromCharCode(v)).join('');\n }\n\n ngOnDestroy(): void {\n if (this.lazy$) {\n this.lazy$.unsubscribe();\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { QRComponent } from './qr.component';\n\nconst COMPONENTS = [QRComponent];\n\n@NgModule({\n imports: [CommonModule],\n declarations: COMPONENTS,\n exports: COMPONENTS\n})\nexport class QRModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -1,111 +0,0 @@
1
- import { __decorate } from 'tslib';
2
- import { EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef, ElementRef, Renderer2, Input, Output, NgModule } from '@angular/core';
3
- import { InputNumber, InputBoolean } from '@delon/util/decorator';
4
- import { CommonModule } from '@angular/common';
5
- import { NzOutletModule } from 'ng-zorro-antd/core/outlet';
6
- import { NzIconModule } from 'ng-zorro-antd/icon';
7
-
8
- class QuickMenuComponent {
9
- constructor(cdr, el, render) {
10
- this.cdr = cdr;
11
- this.el = el;
12
- this.render = render;
13
- this.ctrlStyle = {};
14
- this.icon = 'question-circle';
15
- this.top = 120;
16
- this.width = 200;
17
- this.expand = false;
18
- this.expandChange = new EventEmitter();
19
- this.show = false;
20
- this.initFlag = false;
21
- }
22
- _click() {
23
- this.show = !this.show;
24
- this.expandChange.emit(this.show);
25
- this.setStyle();
26
- }
27
- setStyle() {
28
- this.ctrlStyle = {
29
- 'background-color': this.bgColor,
30
- 'border-color': this.borderColor
31
- };
32
- const res = [
33
- `top:${this.top}px`,
34
- `width:${this.width}px`,
35
- `margin-right:-${this.show ? 0 : this.width}px`
36
- ];
37
- if (this.bgColor) {
38
- res.push(`background-color:${this.bgColor}`);
39
- }
40
- if (this.borderColor) {
41
- res.push(`border-color:${this.borderColor}`);
42
- }
43
- this.render.setAttribute(this.el.nativeElement, 'style', res.join(';'));
44
- this.cdr.detectChanges();
45
- }
46
- ngOnInit() {
47
- this.initFlag = true;
48
- this.setStyle();
49
- }
50
- ngOnChanges() {
51
- this.show = this.expand;
52
- if (this.initFlag) {
53
- this.setStyle();
54
- }
55
- }
56
- }
57
- QuickMenuComponent.decorators = [
58
- { type: Component, args: [{
59
- selector: 'quick-menu',
60
- exportAs: 'quickMenu',
61
- template: "<div class=\"quick-menu__inner\">\n <div class=\"quick-menu__ctrl\" [ngStyle]=\"ctrlStyle\">\n <div class=\"quick-menu__ctrl-icon\">\n <ng-container *nzStringTemplateOutlet=\"icon\">\n <i nz-icon [nzType]=\"$any(icon)\"></i>\n </ng-container>\n </div>\n </div>\n <ng-content></ng-content>\n</div>\n",
62
- host: {
63
- '[class.quick-menu]': 'true',
64
- '(click)': '_click()'
65
- },
66
- preserveWhitespaces: false,
67
- changeDetection: ChangeDetectionStrategy.OnPush,
68
- encapsulation: ViewEncapsulation.None
69
- },] }
70
- ];
71
- QuickMenuComponent.ctorParameters = () => [
72
- { type: ChangeDetectorRef },
73
- { type: ElementRef },
74
- { type: Renderer2 }
75
- ];
76
- QuickMenuComponent.propDecorators = {
77
- icon: [{ type: Input }],
78
- top: [{ type: Input }],
79
- width: [{ type: Input }],
80
- bgColor: [{ type: Input }],
81
- borderColor: [{ type: Input }],
82
- expand: [{ type: Input }],
83
- expandChange: [{ type: Output }]
84
- };
85
- __decorate([
86
- InputNumber()
87
- ], QuickMenuComponent.prototype, "top", void 0);
88
- __decorate([
89
- InputNumber()
90
- ], QuickMenuComponent.prototype, "width", void 0);
91
- __decorate([
92
- InputBoolean()
93
- ], QuickMenuComponent.prototype, "expand", void 0);
94
-
95
- const COMPONENTS = [QuickMenuComponent];
96
- class QuickMenuModule {
97
- }
98
- QuickMenuModule.decorators = [
99
- { type: NgModule, args: [{
100
- imports: [CommonModule, NzIconModule, NzOutletModule],
101
- declarations: COMPONENTS,
102
- exports: COMPONENTS
103
- },] }
104
- ];
105
-
106
- /**
107
- * Generated bundle index. Do not edit.
108
- */
109
-
110
- export { QuickMenuComponent, QuickMenuModule };
111
- //# sourceMappingURL=quickMenu.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"quickMenu.js","sources":["../../../../packages/abc/quick-menu/quick-menu.component.ts","../../../../packages/abc/quick-menu/quick-menu.module.ts","../../../../packages/abc/quick-menu/quickMenu.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n Renderer2,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { BooleanInput, InputBoolean, InputNumber, NumberInput } from '@delon/util/decorator';\n\n@Component({\n selector: 'quick-menu',\n exportAs: 'quickMenu',\n templateUrl: './quick-menu.component.html',\n host: {\n '[class.quick-menu]': 'true',\n '(click)': '_click()'\n },\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class QuickMenuComponent implements OnInit, OnChanges {\n static ngAcceptInputType_top: NumberInput;\n static ngAcceptInputType_width: NumberInput;\n static ngAcceptInputType_expand: BooleanInput;\n\n constructor(private cdr: ChangeDetectorRef, private el: ElementRef, private render: Renderer2) {}\n ctrlStyle: { [key: string]: string } = {};\n\n @Input() icon: string | TemplateRef<void> = 'question-circle';\n @Input() @InputNumber() top = 120;\n @Input() @InputNumber() width = 200;\n @Input() bgColor: string;\n @Input() borderColor: string;\n @Input() @InputBoolean() expand: boolean = false;\n @Output() readonly expandChange = new EventEmitter<boolean>();\n\n private show = false;\n private initFlag = false;\n\n _click(): void {\n this.show = !this.show;\n this.expandChange.emit(this.show);\n this.setStyle();\n }\n\n private setStyle(): void {\n this.ctrlStyle = {\n 'background-color': this.bgColor,\n 'border-color': this.borderColor\n };\n\n const res: string[] = [\n `top:${this.top}px`,\n `width:${this.width}px`,\n `margin-right:-${this.show ? 0 : this.width}px`\n ];\n if (this.bgColor) {\n res.push(`background-color:${this.bgColor}`);\n }\n if (this.borderColor) {\n res.push(`border-color:${this.borderColor}`);\n }\n this.render.setAttribute(this.el.nativeElement, 'style', res.join(';'));\n this.cdr.detectChanges();\n }\n\n ngOnInit(): void {\n this.initFlag = true;\n this.setStyle();\n }\n\n ngOnChanges(): void {\n this.show = this.expand;\n if (this.initFlag) {\n this.setStyle();\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\n\nimport { QuickMenuComponent } from './quick-menu.component';\n\nconst COMPONENTS = [QuickMenuComponent];\n\n@NgModule({\n imports: [CommonModule, NzIconModule, NzOutletModule],\n declarations: COMPONENTS,\n exports: COMPONENTS\n})\nexport class QuickMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;MA6Ba,kBAAkB;IAK7B,YAAoB,GAAsB,EAAU,EAAc,EAAU,MAAiB;QAAzE,QAAG,GAAH,GAAG,CAAmB;QAAU,OAAE,GAAF,EAAE,CAAY;QAAU,WAAM,GAAN,MAAM,CAAW;QAC7F,cAAS,GAA8B,EAAE,CAAC;QAEjC,SAAI,GAA+B,iBAAiB,CAAC;QACtC,QAAG,GAAG,GAAG,CAAC;QACV,UAAK,GAAG,GAAG,CAAC;QAGX,WAAM,GAAY,KAAK,CAAC;QAC9B,iBAAY,GAAG,IAAI,YAAY,EAAW,CAAC;QAEtD,SAAI,GAAG,KAAK,CAAC;QACb,aAAQ,GAAG,KAAK,CAAC;KAZwE;IAcjG,MAAM;QACJ,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;IAEO,QAAQ;QACd,IAAI,CAAC,SAAS,GAAG;YACf,kBAAkB,EAAE,IAAI,CAAC,OAAO;YAChC,cAAc,EAAE,IAAI,CAAC,WAAW;SACjC,CAAC;QAEF,MAAM,GAAG,GAAa;YACpB,OAAO,IAAI,CAAC,GAAG,IAAI;YACnB,SAAS,IAAI,CAAC,KAAK,IAAI;YACvB,iBAAiB,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI;SAChD,CAAC;QACF,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,GAAG,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;SAC9C;QACD,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;SAC9C;QACD,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC1B;IAED,QAAQ;QACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;IAED,WAAW;QACT,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;QACxB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB;KACF;;;YApEF,SAAS,SAAC;gBACT,QAAQ,EAAE,YAAY;gBACtB,QAAQ,EAAE,WAAW;gBACrB,gVAA0C;gBAC1C,IAAI,EAAE;oBACJ,oBAAoB,EAAE,MAAM;oBAC5B,SAAS,EAAE,UAAU;iBACtB;gBACD,mBAAmB,EAAE,KAAK;gBAC1B,eAAe,EAAE,uBAAuB,CAAC,MAAM;gBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;aACtC;;;YA1BC,iBAAiB;YAEjB,UAAU;YAMV,SAAS;;;mBA2BR,KAAK;kBACL,KAAK;oBACL,KAAK;sBACL,KAAK;0BACL,KAAK;qBACL,KAAK;2BACL,MAAM;;AALiB;IAAd,WAAW,EAAE;+CAAW;AACV;IAAd,WAAW,EAAE;iDAAa;AAGX;IAAf,YAAY,EAAE;kDAAyB;;AClCnD,MAAM,UAAU,GAAG,CAAC,kBAAkB,CAAC,CAAC;MAO3B,eAAe;;;YAL3B,QAAQ,SAAC;gBACR,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,cAAc,CAAC;gBACrD,YAAY,EAAE,UAAU;gBACxB,OAAO,EAAE,UAAU;aACpB;;;ACdD;;;;;;"}
@@ -1,83 +0,0 @@
1
- import { Directionality } from '@angular/cdk/bidi';
2
- import { Component, ChangeDetectionStrategy, ViewEncapsulation, Optional, Input, NgModule } from '@angular/core';
3
- import { Subject } from 'rxjs';
4
- import { takeUntil } from 'rxjs/operators';
5
- import { CommonModule } from '@angular/common';
6
- import { NzOutletModule } from 'ng-zorro-antd/core/outlet';
7
- import { NzIconModule } from 'ng-zorro-antd/icon';
8
-
9
- class ResultComponent {
10
- constructor(directionality) {
11
- this.directionality = directionality;
12
- this.destroy$ = new Subject();
13
- this._type = '';
14
- this._icon = '';
15
- this.dir = 'ltr';
16
- }
17
- set type(value) {
18
- this._type = value;
19
- switch (value) {
20
- case 'success':
21
- this._icon = 'check-circle';
22
- break;
23
- case 'error':
24
- this._icon = 'close-circle';
25
- break;
26
- default:
27
- this._icon = value;
28
- break;
29
- }
30
- }
31
- ngOnInit() {
32
- var _a;
33
- this.dir = this.directionality.value;
34
- (_a = this.directionality.change) === null || _a === void 0 ? void 0 : _a.pipe(takeUntil(this.destroy$)).subscribe((direction) => {
35
- this.dir = direction;
36
- });
37
- }
38
- ngOnDestroy() {
39
- this.destroy$.next();
40
- this.destroy$.complete();
41
- }
42
- }
43
- ResultComponent.decorators = [
44
- { type: Component, args: [{
45
- selector: 'result',
46
- exportAs: 'result',
47
- template: "<div class=\"result__icon\">\n <i nz-icon [nzType]=\"_icon\" class=\"result__icon-{{ _type }}\"></i>\n</div>\n<div class=\"result__title\">\n <ng-container *nzStringTemplateOutlet=\"title\">{{ title }}</ng-container>\n</div>\n<div *ngIf=\"description\" class=\"result__desc\">\n <ng-container *nzStringTemplateOutlet=\"description\">{{ description }}</ng-container>\n</div>\n<div *ngIf=\"extra\" class=\"result__extra\">\n <ng-container *nzStringTemplateOutlet=\"extra\">{{ extra }}</ng-container>\n</div>\n<div class=\"result__actions\">\n <ng-content></ng-content>\n</div>\n",
48
- host: {
49
- '[class.result]': 'true',
50
- '[class.result-rtl]': `dir === 'rtl'`
51
- },
52
- preserveWhitespaces: false,
53
- changeDetection: ChangeDetectionStrategy.OnPush,
54
- encapsulation: ViewEncapsulation.None
55
- },] }
56
- ];
57
- ResultComponent.ctorParameters = () => [
58
- { type: Directionality, decorators: [{ type: Optional }] }
59
- ];
60
- ResultComponent.propDecorators = {
61
- type: [{ type: Input }],
62
- title: [{ type: Input }],
63
- description: [{ type: Input }],
64
- extra: [{ type: Input }]
65
- };
66
-
67
- const COMPONENTS = [ResultComponent];
68
- class ResultModule {
69
- }
70
- ResultModule.decorators = [
71
- { type: NgModule, args: [{
72
- imports: [CommonModule, NzIconModule, NzOutletModule],
73
- declarations: COMPONENTS,
74
- exports: COMPONENTS
75
- },] }
76
- ];
77
-
78
- /**
79
- * Generated bundle index. Do not edit.
80
- */
81
-
82
- export { ResultComponent, ResultModule };
83
- //# sourceMappingURL=result.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"result.js","sources":["../../../../packages/abc/result/result.component.ts","../../../../packages/abc/result/result.module.ts","../../../../packages/abc/result/result.ts"],"sourcesContent":["import { Direction, Directionality } from '@angular/cdk/bidi';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'result',\n exportAs: 'result',\n templateUrl: './result.component.html',\n host: {\n '[class.result]': 'true',\n '[class.result-rtl]': `dir === 'rtl'`\n },\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class ResultComponent implements OnInit, OnDestroy {\n private destroy$ = new Subject<void>();\n _type = '';\n _icon = '';\n @Input()\n set type(value: string) {\n this._type = value;\n switch (value) {\n case 'success':\n this._icon = 'check-circle';\n break;\n case 'error':\n this._icon = 'close-circle';\n break;\n default:\n this._icon = value;\n break;\n }\n }\n\n @Input() title: string | TemplateRef<void>;\n @Input() description: string | TemplateRef<void>;\n @Input() extra: string | TemplateRef<void>;\n dir: Direction = 'ltr';\n\n constructor(@Optional() private directionality: Directionality) {}\n\n ngOnInit(): void {\n this.dir = this.directionality.value;\n this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\n this.dir = direction;\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\n\nimport { ResultComponent } from './result.component';\n\nconst COMPONENTS = [ResultComponent];\n\n@NgModule({\n imports: [CommonModule, NzIconModule, NzOutletModule],\n declarations: COMPONENTS,\n exports: COMPONENTS\n})\nexport class ResultModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;MA0Ba,eAAe;IAyB1B,YAAgC,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QAxBtD,aAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;QACvC,UAAK,GAAG,EAAE,CAAC;QACX,UAAK,GAAG,EAAE,CAAC;QAoBX,QAAG,GAAc,KAAK,CAAC;KAE2C;IArBlE,IACI,IAAI,CAAC,KAAa;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,QAAQ,KAAK;YACX,KAAK,SAAS;gBACZ,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;gBAC5B,MAAM;YACR,KAAK,OAAO;gBACV,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;gBAC5B,MAAM;YACR;gBACE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACnB,MAAM;SACT;KACF;IASD,QAAQ;;QACN,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;QACrC,MAAA,IAAI,CAAC,cAAc,CAAC,MAAM,0CAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,SAAoB;YACxF,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;SACtB,CAAC,CAAC;KACJ;IAED,WAAW;QACT,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC1B;;;YAjDF,SAAS,SAAC;gBACT,QAAQ,EAAE,QAAQ;gBAClB,QAAQ,EAAE,QAAQ;gBAClB,ilBAAsC;gBACtC,IAAI,EAAE;oBACJ,gBAAgB,EAAE,MAAM;oBACxB,oBAAoB,EAAE,eAAe;iBACtC;gBACD,mBAAmB,EAAE,KAAK;gBAC1B,eAAe,EAAE,uBAAuB,CAAC,MAAM;gBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;aACtC;;;YAzBmB,cAAc,uBAmDnB,QAAQ;;;mBArBpB,KAAK;oBAgBL,KAAK;0BACL,KAAK;oBACL,KAAK;;;ACxCR,MAAM,UAAU,GAAG,CAAC,eAAe,CAAC,CAAC;MAOxB,YAAY;;;YALxB,QAAQ,SAAC;gBACR,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,cAAc,CAAC;gBACrD,YAAY,EAAE,UAAU;gBACxB,OAAO,EAAE,UAAU;aACpB;;;ACdD;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"reuseTab.js","sources":["../../../../packages/abc/reuse-tab/reuse-tab-context-menu.component.ts","../../../../packages/abc/reuse-tab/reuse-tab-context.service.ts","../../../../packages/abc/reuse-tab/reuse-tab-context.component.ts","../../../../packages/abc/reuse-tab/reuse-tab-context.directive.ts","../../../../packages/abc/reuse-tab/reuse-tab.interfaces.ts","../../../../packages/abc/reuse-tab/reuse-tab.service.ts","../../../../packages/abc/reuse-tab/reuse-tab.component.ts","../../../../packages/abc/reuse-tab/reuse-tab.strategy.ts","../../../../packages/abc/reuse-tab/reuse-tab.module.ts","../../../../packages/abc/reuse-tab/reuseTab.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { DelonLocaleService } from '@delon/theme';\n\nimport {\n CloseType,\n ReuseContextCloseEvent,\n ReuseContextI18n,\n ReuseCustomContextMenu,\n ReuseItem\n} from './reuse-tab.interfaces';\n\n@Component({\n selector: 'reuse-tab-context-menu',\n templateUrl: './reuse-tab-context-menu.component.html',\n host: {\n '(document:click)': 'closeMenu($event)',\n '(document:contextmenu)': 'closeMenu($event)'\n },\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class ReuseTabContextMenuComponent implements OnInit {\n private _i18n: ReuseContextI18n;\n @Input()\n set i18n(value: ReuseContextI18n) {\n this._i18n = {\n ...this.i18nSrv.getData('reuseTab'),\n ...value\n };\n }\n get i18n(): ReuseContextI18n {\n return this._i18n;\n }\n @Input() item: ReuseItem;\n @Input() event: MouseEvent;\n @Input() customContextMenu: ReuseCustomContextMenu[];\n @Output() readonly close = new EventEmitter<ReuseContextCloseEvent>();\n\n get includeNonCloseable(): boolean {\n return this.event.ctrlKey;\n }\n\n constructor(private i18nSrv: DelonLocaleService) {}\n\n private notify(type: CloseType): void {\n this.close.next({\n type,\n item: this.item,\n includeNonCloseable: this.includeNonCloseable\n });\n }\n\n ngOnInit(): void {\n if (this.includeNonCloseable) this.item.closable = true;\n }\n\n click(e: MouseEvent, type: CloseType, custom?: ReuseCustomContextMenu): void {\n e.preventDefault();\n e.stopPropagation();\n if (type === 'close' && !this.item.closable) return;\n if (type === 'closeRight' && this.item.last) return;\n\n if (custom) {\n if (this.isDisabled(custom)) return;\n custom.fn(this.item, custom);\n }\n this.notify(type);\n }\n\n isDisabled(custom: ReuseCustomContextMenu): boolean {\n return custom.disabled ? custom.disabled(this.item) : false;\n }\n\n closeMenu(event: MouseEvent): void {\n if (event.type === 'click' && event.button === 2) return;\n this.notify(null);\n }\n}\n","import { ConnectionPositionPair, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Injectable } from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\n\nimport { ReuseTabContextMenuComponent } from './reuse-tab-context-menu.component';\nimport {\n ReuseContextCloseEvent,\n ReuseContextEvent,\n ReuseContextI18n,\n ReuseCustomContextMenu\n} from './reuse-tab.interfaces';\n\n@Injectable()\nexport class ReuseTabContextService {\n private ref: OverlayRef | null;\n i18n: ReuseContextI18n;\n\n show: Subject<ReuseContextEvent> = new Subject<ReuseContextEvent>();\n close: Subject<ReuseContextCloseEvent> = new Subject<ReuseContextCloseEvent>();\n\n constructor(private overlay: Overlay) {}\n\n remove(): void {\n if (!this.ref) return;\n this.ref.detach();\n this.ref.dispose();\n this.ref = null;\n }\n\n open(context: ReuseContextEvent): void {\n this.remove();\n const { event, item, customContextMenu } = context;\n const { x, y } = event;\n const positions = [\n new ConnectionPositionPair({ originX: 'start', originY: 'bottom' }, { overlayX: 'start', overlayY: 'top' }),\n new ConnectionPositionPair({ originX: 'start', originY: 'top' }, { overlayX: 'start', overlayY: 'bottom' })\n ];\n const positionStrategy = this.overlay.position().flexibleConnectedTo({ x, y }).withPositions(positions);\n this.ref = this.overlay.create({\n positionStrategy,\n panelClass: 'reuse-tab__cm',\n scrollStrategy: this.overlay.scrollStrategies.close()\n });\n const comp = this.ref.attach(new ComponentPortal(ReuseTabContextMenuComponent));\n const instance = comp.instance;\n instance.i18n = this.i18n;\n instance.item = { ...item };\n instance.customContextMenu = customContextMenu as ReuseCustomContextMenu[];\n instance.event = event;\n\n const sub$ = new Subscription();\n sub$.add(\n instance.close.subscribe((res: ReuseContextCloseEvent) => {\n this.close.next(res);\n this.remove();\n })\n );\n comp.onDestroy(() => sub$.unsubscribe());\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { ReuseTabContextService } from './reuse-tab-context.service';\nimport { ReuseContextCloseEvent, ReuseContextI18n } from './reuse-tab.interfaces';\n\n@Component({\n selector: 'reuse-tab-context',\n template: ``\n})\nexport class ReuseTabContextComponent implements OnDestroy {\n private sub$: Subscription = new Subscription();\n\n @Input()\n set i18n(value: ReuseContextI18n) {\n this.srv.i18n = value;\n }\n\n @Output() readonly change = new EventEmitter<ReuseContextCloseEvent>();\n\n constructor(private srv: ReuseTabContextService) {\n this.sub$.add(srv.show.subscribe(context => this.srv.open(context)));\n this.sub$.add(srv.close.subscribe(res => this.change.emit(res)));\n }\n\n ngOnDestroy(): void {\n this.sub$.unsubscribe();\n }\n}\n","import { Directive, Input } from '@angular/core';\n\nimport { ReuseTabContextService } from './reuse-tab-context.service';\nimport { ReuseCustomContextMenu, ReuseItem } from './reuse-tab.interfaces';\n\n@Directive({\n selector: '[reuse-tab-context-menu]',\n exportAs: 'reuseTabContextMenu',\n host: {\n '(contextmenu)': '_onContextMenu($event)'\n }\n})\nexport class ReuseTabContextDirective {\n @Input('reuse-tab-context-menu') item: ReuseItem;\n @Input() customContextMenu: ReuseCustomContextMenu[];\n\n constructor(private srv: ReuseTabContextService) {}\n\n _onContextMenu(event: MouseEvent): void {\n this.srv.show.next({\n event,\n item: this.item,\n customContextMenu: this.customContextMenu\n });\n event.preventDefault();\n event.stopPropagation();\n }\n}\n","import { ActivatedRouteSnapshot } from '@angular/router';\n\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { ReuseTabContextComponent } from './reuse-tab-context.component';\n\n/**\n * 复用匹配模式\n */\nexport enum ReuseTabMatchMode {\n /**\n * (推荐)按菜单 `Menu` 配置\n *\n * 可复用:\n * - `{ text:'Dashboard' }`\n * - `{ text:'Dashboard', reuse: true }`\n *\n * 不可复用:\n * - `{ text:'Dashboard', reuse: false }`\n */\n Menu,\n /**\n * 按菜单 `Menu` 强制配置\n *\n * 可复用:\n * - `{ text:'Dashboard', reuse: true }`\n *\n * 不可复用:\n * - `{ text:'Dashboard' }`\n * - `{ text:'Dashboard', reuse: false }`\n */\n MenuForce,\n /**\n * 对所有路由有效,可以配合 `excludes` 过滤无须复用路由\n */\n URL\n}\n\nexport type ReuseTabRouteParamMatchMode = 'strict' | 'loose';\n\nexport interface ReuseTitle {\n text?: string;\n i18n?: string;\n}\n\nexport interface ReuseTabCached {\n title: ReuseTitle;\n\n url: string;\n\n /** 是否允许关闭,默认:`true` */\n closable?: boolean;\n\n /** 当前滚动条位置 */\n position?: [number, number] | null;\n\n _snapshot: ActivatedRouteSnapshot;\n\n _handle: ReuseComponentHandle;\n}\n\nexport interface ReuseTabNotify {\n /** 事件类型 */\n active: 'add' | 'override' | 'title' | 'clear' | 'closable' | 'close' | 'closeRight' | 'move' | 'refresh';\n url?: string;\n title?: ReuseTitle;\n item?: ReuseTabCached;\n list?: ReuseTabCached[];\n [key: string]: NzSafeAny;\n}\n\nexport interface ReuseItem {\n url: string;\n title: string;\n closable: boolean;\n index: number;\n active: boolean;\n last: boolean;\n}\n\nexport interface ReuseContextEvent {\n event: MouseEvent;\n item: ReuseItem;\n comp?: ReuseTabContextComponent;\n customContextMenu?: ReuseCustomContextMenu[];\n}\n\nexport type CloseType = 'close' | 'closeOther' | 'closeRight' | 'custom' | 'refresh' | null;\n\nexport interface ReuseContextCloseEvent {\n type: CloseType;\n item: ReuseItem;\n includeNonCloseable: boolean;\n}\n\nexport interface ReuseContextI18n {\n close?: string;\n closeOther?: string;\n closeRight?: string;\n refresh?: string;\n}\n\nexport interface ReuseCustomContextMenu {\n id: string;\n title: string;\n fn: (item: ReuseItem, menu: ReuseCustomContextMenu) => void;\n disabled?: (item: ReuseItem) => boolean;\n}\n\nexport interface ReuseComponentHandle {\n componentRef: ReuseComponentRef;\n}\n\nexport interface ReuseComponentRef {\n instance: ReuseComponentInstance;\n}\n\nexport type ReuseHookTypes = '_onReuseInit' | '_onReuseDestroy';\n\nexport type ReuseHookOnReuseInitType = 'init' | 'refresh';\n\nexport interface ReuseComponentInstance {\n _onReuseInit: (type: ReuseHookOnReuseInitType) => void;\n _onReuseDestroy: () => void;\n destroy: () => void;\n}\n","import { Injectable, Injector, OnDestroy } from '@angular/core';\nimport {\n ActivatedRoute,\n ActivatedRouteSnapshot,\n ExtraOptions,\n NavigationEnd,\n NavigationStart,\n Router,\n ROUTER_CONFIGURATION\n} from '@angular/router';\nimport { BehaviorSubject, Observable, timer, Unsubscribable } from 'rxjs';\n\nimport { Menu, MenuService } from '@delon/theme';\nimport { ScrollService } from '@delon/util/browser';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport {\n ReuseComponentRef,\n ReuseHookOnReuseInitType,\n ReuseHookTypes,\n ReuseTabCached,\n ReuseTabMatchMode,\n ReuseTabNotify,\n ReuseTabRouteParamMatchMode,\n ReuseTitle\n} from './reuse-tab.interfaces';\n\n@Injectable({ providedIn: 'root' })\nexport class ReuseTabService implements OnDestroy {\n private _inited = false;\n private _max = 10;\n private _keepingScroll = false;\n private _cachedChange = new BehaviorSubject<ReuseTabNotify | null>(null);\n private _cached: ReuseTabCached[] = [];\n private _titleCached: { [url: string]: ReuseTitle } = {};\n private _closableCached: { [url: string]: boolean } = {};\n private _router$: Unsubscribable;\n private removeUrlBuffer: string | null;\n private positionBuffer: { [url: string]: [number, number] } = {};\n componentRef: ReuseComponentRef;\n debug = false;\n routeParamMatchMode: ReuseTabRouteParamMatchMode = 'strict';\n mode = ReuseTabMatchMode.Menu;\n /** 排除规则,限 `mode=URL` */\n excludes: RegExp[] = [];\n\n private get snapshot(): ActivatedRouteSnapshot {\n return this.injector.get(ActivatedRoute).snapshot;\n }\n\n // #region public\n\n /**\n * Get init status\n *\n * 是否已经初始化完成\n */\n get inited(): boolean {\n return this._inited;\n }\n\n /**\n * Current routing address\n *\n * 当前路由地址\n */\n get curUrl(): string {\n return this.getUrl(this.snapshot);\n }\n\n /**\n * 允许最多复用多少个页面,取值范围 `2-100`,值发生变更时会强制关闭且忽略可关闭条件\n */\n set max(value: number) {\n this._max = Math.min(Math.max(value, 2), 100);\n for (let i = this._cached.length; i > this._max; i--) {\n this._cached.pop();\n }\n }\n set keepingScroll(value: boolean) {\n this._keepingScroll = value;\n this.initScroll();\n }\n get keepingScroll(): boolean {\n return this._keepingScroll;\n }\n keepingScrollContainer: Element;\n /** 获取已缓存的路由 */\n get items(): ReuseTabCached[] {\n return this._cached;\n }\n /** 获取当前缓存的路由总数 */\n get count(): number {\n return this._cached.length;\n }\n /** 订阅缓存变更通知 */\n get change(): Observable<ReuseTabNotify | null> {\n return this._cachedChange.asObservable(); // .pipe(filter(w => w !== null));\n }\n /** 自定义当前标题 */\n set title(value: string | ReuseTitle) {\n const url = this.curUrl;\n if (typeof value === 'string') value = { text: value };\n this._titleCached[url] = value;\n this.di('update current tag title: ', value);\n this._cachedChange.next({\n active: 'title',\n url,\n title: value,\n list: this._cached\n });\n }\n /** 获取指定路径缓存所在位置,`-1` 表示无缓存 */\n index(url: string): number {\n return this._cached.findIndex(w => w.url === url);\n }\n /** 获取指定路径缓存是否存在 */\n exists(url: string): boolean {\n return this.index(url) !== -1;\n }\n /** 获取指定路径缓存 */\n get(url?: string): ReuseTabCached | null {\n return url ? this._cached.find(w => w.url === url) || null : null;\n }\n private remove(url: string | number, includeNonCloseable: boolean): boolean {\n const idx = typeof url === 'string' ? this.index(url) : url;\n const item = idx !== -1 ? this._cached[idx] : null;\n if (!item || (!includeNonCloseable && !item.closable)) return false;\n\n this.destroy(item._handle);\n\n this._cached.splice(idx, 1);\n delete this._titleCached[url];\n return true;\n }\n /**\n * 根据URL移除标签\n *\n * @param [includeNonCloseable=false] 是否强制包含不可关闭\n */\n close(url: string, includeNonCloseable: boolean = false): boolean {\n this.removeUrlBuffer = url;\n\n this.remove(url, includeNonCloseable);\n\n this._cachedChange.next({ active: 'close', url, list: this._cached });\n\n this.di('close tag', url);\n return true;\n }\n /**\n * 清除右边\n *\n * @param [includeNonCloseable=false] 是否强制包含不可关闭\n */\n closeRight(url: string, includeNonCloseable: boolean = false): boolean {\n const start = this.index(url);\n for (let i = this.count - 1; i > start; i--) {\n this.remove(i, includeNonCloseable);\n }\n\n this.removeUrlBuffer = null;\n\n this._cachedChange.next({ active: 'closeRight', url, list: this._cached });\n\n this.di('close right tages', url);\n return true;\n }\n /**\n * 清除所有缓存\n *\n * @param [includeNonCloseable=false] 是否强制包含不可关闭\n */\n clear(includeNonCloseable: boolean = false): void {\n this._cached.forEach(w => {\n if (!includeNonCloseable && w.closable) this.destroy(w._handle);\n });\n this._cached = this._cached.filter(w => !includeNonCloseable && !w.closable);\n\n this.removeUrlBuffer = null;\n\n this._cachedChange.next({ active: 'clear', list: this._cached });\n\n this.di('clear all catch');\n }\n /**\n * 移动缓存数据\n *\n * @param url 要移动的URL地址\n * @param position 新位置,下标从 `0` 开始\n *\n * @example\n * ```\n * // source\n * [ '/a/1', '/a/2', '/a/3', '/a/4', '/a/5' ]\n * move('/a/1', 2);\n * // output\n * [ '/a/2', '/a/3', '/a/1', '/a/4', '/a/5' ]\n * move('/a/1', -1);\n * // output\n * [ '/a/2', '/a/3', '/a/4', '/a/5', '/a/1' ]\n * ```\n */\n move(url: string, position: number): void {\n const start = this._cached.findIndex(w => w.url === url);\n if (start === -1) return;\n const data = this._cached.slice();\n data.splice(position < 0 ? data.length + position : position, 0, data.splice(start, 1)[0]);\n this._cached = data;\n this._cachedChange.next({\n active: 'move',\n url,\n position,\n list: this._cached\n });\n }\n /**\n * 强制关闭当前路由(包含不可关闭状态),并重新导航至 `newUrl` 路由\n */\n replace(newUrl: string): void {\n const url = this.curUrl;\n if (this.exists(url)) {\n this.close(url, true);\n } else {\n this.removeUrlBuffer = url;\n }\n this.injector.get<Router>(Router).navigateByUrl(newUrl);\n }\n /**\n * 获取标题,顺序如下:\n *\n * 1. 组件内使用 `ReuseTabService.title = 'new title'` 重新指定文本\n * 2. 路由配置中 data 属性中包含 titleI18n > title\n * 3. 菜单数据中 text 属性\n *\n * @param url 指定URL\n * @param route 指定路由快照\n */\n getTitle(url: string, route?: ActivatedRouteSnapshot): ReuseTitle {\n if (this._titleCached[url]) {\n return this._titleCached[url];\n }\n\n if (route && route.data && (route.data.titleI18n || route.data.title)) {\n return {\n text: route.data.title,\n i18n: route.data.titleI18n\n } as ReuseTitle;\n }\n\n const menu = this.getMenu(url);\n return menu ? { text: menu.text, i18n: menu.i18n } : { text: url };\n }\n\n /**\n * 清除标题缓存\n */\n clearTitleCached(): void {\n this._titleCached = {};\n }\n /** 自定义当前 `closable` 状态 */\n set closable(value: boolean) {\n const url = this.curUrl;\n this._closableCached[url] = value;\n this.di('update current tag closable: ', value);\n this._cachedChange.next({\n active: 'closable',\n closable: value,\n list: this._cached\n });\n }\n /**\n * 获取 `closable` 状态,顺序如下:\n *\n * 1. 组件内使用 `ReuseTabService.closable = true` 重新指定 `closable` 状态\n * 2. 路由配置中 data 属性中包含 `reuseClosable`\n * 3. 菜单数据中 `reuseClosable` 属性\n *\n * @param url 指定URL\n * @param route 指定路由快照\n */\n getClosable(url: string, route?: ActivatedRouteSnapshot): boolean {\n if (typeof this._closableCached[url] !== 'undefined') return this._closableCached[url];\n\n if (route && route.data && typeof route.data.reuseClosable === 'boolean') return route.data.reuseClosable;\n\n const menu = this.mode !== ReuseTabMatchMode.URL ? this.getMenu(url) : null;\n if (menu && typeof menu.reuseClosable === 'boolean') return menu.reuseClosable;\n\n return true;\n }\n /**\n * 清空 `closable` 缓存\n */\n clearClosableCached(): void {\n this._closableCached = {};\n }\n getTruthRoute(route: ActivatedRouteSnapshot): ActivatedRouteSnapshot {\n let next = route;\n while (next.firstChild) next = next.firstChild;\n return next;\n }\n /**\n * 根据快照获取URL地址\n */\n getUrl(route: ActivatedRouteSnapshot): string {\n let next = this.getTruthRoute(route);\n const segments: string[] = [];\n while (next) {\n segments.push(next.url.join('/'));\n next = next.parent!;\n }\n const url = `/${segments\n .filter(i => i)\n .reverse()\n .join('/')}`;\n return url;\n }\n /**\n * 检查快照是否允许被复用\n */\n can(route: ActivatedRouteSnapshot): boolean {\n const url = this.getUrl(route);\n if (url === this.removeUrlBuffer) return false;\n\n if (route.data && typeof route.data.reuse === 'boolean') return route.data.reuse;\n\n if (this.mode !== ReuseTabMatchMode.URL) {\n const menu = this.getMenu(url);\n if (!menu) return false;\n if (this.mode === ReuseTabMatchMode.Menu) {\n if (menu.reuse === false) return false;\n } else {\n if (!menu.reuse || menu.reuse !== true) return false;\n }\n return true;\n }\n return !this.isExclude(url);\n }\n\n isExclude(url: string): boolean {\n return this.excludes.findIndex(r => r.test(url)) !== -1;\n }\n\n /**\n * 刷新,触发一个 refresh 类型事件\n */\n refresh(data?: NzSafeAny): void {\n this._cachedChange.next({ active: 'refresh', data });\n }\n // #endregion\n\n // #region privates\n\n private destroy(_handle: NzSafeAny): void {\n if (_handle && _handle.componentRef && _handle.componentRef.destroy) _handle.componentRef.destroy();\n }\n\n private di(...args: NzSafeAny[]): void {\n if (!this.debug) return;\n console.warn(...args);\n }\n\n // #endregion\n\n constructor(private injector: Injector, private menuService: MenuService) {}\n\n init(): void {\n this.initScroll();\n this._inited = true;\n }\n\n private getMenu(url: string): Menu | null | undefined {\n const menus = this.menuService.getPathByUrl(url);\n if (!menus || menus.length === 0) return null;\n return menus.pop();\n }\n\n runHook(method: ReuseHookTypes, comp: ReuseComponentRef | number, type: ReuseHookOnReuseInitType = 'init'): void {\n if (typeof comp === 'number') {\n const item = this._cached[comp];\n comp = item._handle.componentRef;\n }\n const compThis = comp.instance;\n if (comp == null || !compThis) {\n return;\n }\n const fn = compThis[method];\n if (typeof fn !== 'function') {\n return;\n }\n if (method === '_onReuseInit') {\n fn.call(compThis, type);\n } else {\n (fn as () => void).call(compThis);\n }\n }\n\n private hasInValidRoute(route: ActivatedRouteSnapshot): boolean {\n return !route.routeConfig || !!route.routeConfig.loadChildren || !!route.routeConfig.children;\n }\n\n /**\n * 决定是否允许路由复用,若 `true` 会触发 `store`\n */\n shouldDetach(route: ActivatedRouteSnapshot): boolean {\n if (this.hasInValidRoute(route)) return false;\n this.di('#shouldDetach', this.can(route), this.getUrl(route));\n return this.can(route);\n }\n\n /**\n * 存储\n */\n store(_snapshot: ActivatedRouteSnapshot, _handle: NzSafeAny): void {\n const url = this.getUrl(_snapshot);\n const idx = this.index(url);\n const isAdd = idx === -1;\n\n const item: ReuseTabCached = {\n title: this.getTitle(url, _snapshot),\n closable: this.getClosable(url, _snapshot),\n position: this.getKeepingScroll(url, _snapshot) ? this.positionBuffer[url] : null,\n url,\n _snapshot,\n _handle\n };\n if (isAdd) {\n if (this.count >= this._max) {\n // Get the oldest closable location\n const closeIdx = this._cached.findIndex(w => w.closable!);\n if (closeIdx !== -1) this.remove(closeIdx, false);\n }\n this._cached.push(item);\n } else {\n // Current handler is null when activate routes\n // For better reliability, we need to wait for the component to be attached before call _onReuseInit\n const cahcedComponentRef = this._cached[idx]._handle?.componentRef;\n if (_handle == null && cahcedComponentRef != null) {\n timer(100).subscribe(() => this.runHook('_onReuseInit', cahcedComponentRef));\n }\n this._cached[idx] = item;\n }\n this.removeUrlBuffer = null;\n\n this.di('#store', isAdd ? '[new]' : '[override]', url);\n\n if (_handle && _handle.componentRef) {\n this.runHook('_onReuseDestroy', _handle.componentRef);\n }\n\n if (!isAdd) {\n this._cachedChange.next({ active: 'override', item, list: this._cached });\n }\n }\n\n /**\n * 决定是否允许应用缓存数据\n */\n shouldAttach(route: ActivatedRouteSnapshot): boolean {\n if (this.hasInValidRoute(route)) return false;\n const url = this.getUrl(route);\n const data = this.get(url);\n const ret = !!(data && data._handle);\n this.di('#shouldAttach', ret, url);\n if (!ret) {\n this._cachedChange.next({ active: 'add', url, list: this._cached });\n }\n return ret;\n }\n\n /**\n * 提取复用数据\n */\n retrieve(route: ActivatedRouteSnapshot): NzSafeAny | null {\n if (this.hasInValidRoute(route)) return null;\n const url = this.getUrl(route);\n const data = this.get(url);\n const ret = (data && data._handle) || null;\n this.di('#retrieve', url, ret);\n return ret;\n }\n\n /**\n * 决定是否应该进行复用路由处理\n */\n shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {\n let ret = future.routeConfig === curr.routeConfig;\n if (!ret) return false;\n\n const path = ((future.routeConfig && future.routeConfig.path) || '') as string;\n if (path.length > 0 && ~path.indexOf(':')) {\n if (this.routeParamMatchMode === 'strict') {\n ret = this.getUrl(future) === this.getUrl(curr);\n } else {\n ret = path === ((curr.routeConfig && curr.routeConfig.path) || '');\n }\n }\n this.di('=====================');\n this.di('#shouldReuseRoute', ret, `${this.getUrl(curr)}=>${this.getUrl(future)}`, future, curr);\n return ret;\n }\n\n // #region scroll\n\n /**\n * 获取 `keepingScroll` 状态,顺序如下:\n *\n * 1. 路由配置中 data 属性中包含 `keepingScroll`\n * 2. 菜单数据中 `keepingScroll` 属性\n * 3. 组件 `keepingScroll` 值\n */\n getKeepingScroll(url: string, route?: ActivatedRouteSnapshot): boolean {\n if (route && route.data && typeof route.data.keepingScroll === 'boolean') return route.data.keepingScroll;\n\n const menu = this.mode !== ReuseTabMatchMode.URL ? this.getMenu(url) : null;\n if (menu && typeof menu.keepingScroll === 'boolean') return menu.keepingScroll;\n\n return this.keepingScroll;\n }\n\n private get isDisabledInRouter(): boolean {\n const routerConfig = this.injector.get<ExtraOptions>(ROUTER_CONFIGURATION, {} as NzSafeAny);\n return routerConfig.scrollPositionRestoration === 'disabled';\n }\n\n private get ss(): ScrollService {\n return this.injector.get(ScrollService);\n }\n\n private initScroll(): void {\n if (this._router$) {\n this._router$.unsubscribe();\n }\n\n this._router$ = this.injector.get<Router>(Router).events.subscribe(e => {\n if (e instanceof NavigationStart) {\n const url = this.curUrl;\n if (this.getKeepingScroll(url, this.getTruthRoute(this.snapshot))) {\n this.positionBuffer[url] = this.ss.getScrollPosition(this.keepingScrollContainer);\n } else {\n delete this.positionBuffer[url];\n }\n } else if (e instanceof NavigationEnd) {\n const url = this.curUrl;\n const item = this.get(url);\n if (item && item.position && this.getKeepingScroll(url, this.getTruthRoute(this.snapshot))) {\n if (this.isDisabledInRouter) {\n this.ss.scrollToPosition(this.keepingScrollContainer, item.position);\n } else {\n setTimeout(() => this.ss.scrollToPosition(this.keepingScrollContainer, item.position!), 1);\n }\n }\n }\n });\n }\n\n // #endregion\n\n ngOnDestroy(): void {\n const { _cachedChange, _router$ } = this;\n this.clear();\n this._cached = [];\n _cachedChange.complete();\n\n if (_router$) {\n _router$.unsubscribe();\n }\n }\n}\n","import { Platform } from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n SimpleChange,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Subject } from 'rxjs';\nimport { debounceTime, filter, takeUntil } from 'rxjs/operators';\n\nimport { AlainI18NService, ALAIN_I18N_TOKEN } from '@delon/theme';\nimport { BooleanInput, InputBoolean, InputNumber, NumberInput } from '@delon/util/decorator';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { NzTabSetComponent } from 'ng-zorro-antd/tabs';\n\nimport { ReuseTabContextService } from './reuse-tab-context.service';\nimport {\n ReuseContextCloseEvent,\n ReuseContextI18n,\n ReuseCustomContextMenu,\n ReuseItem,\n ReuseTabCached,\n ReuseTabMatchMode,\n ReuseTabNotify,\n ReuseTabRouteParamMatchMode,\n ReuseTitle\n} from './reuse-tab.interfaces';\nimport { ReuseTabService } from './reuse-tab.service';\n\n@Component({\n selector: 'reuse-tab, [reuse-tab]',\n exportAs: 'reuseTab',\n templateUrl: './reuse-tab.component.html',\n host: {\n '[class.reuse-tab]': 'true',\n '[class.reuse-tab__line]': `tabType === 'line'`,\n '[class.reuse-tab__card]': `tabType === 'card'`,\n '[class.reuse-tab__disabled]': `disabled`\n },\n providers: [ReuseTabContextService],\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class ReuseTabComponent implements OnInit, OnChanges, OnDestroy {\n static ngAcceptInputType_debug: BooleanInput;\n static ngAcceptInputType_max: NumberInput;\n static ngAcceptInputType_tabMaxWidth: NumberInput;\n static ngAcceptInputType_allowClose: BooleanInput;\n static ngAcceptInputType_keepingScroll: BooleanInput;\n static ngAcceptInputType_disabled: BooleanInput;\n\n @ViewChild('tabset') private tabset: NzTabSetComponent;\n private destroy$ = new Subject<void>();\n private updatePos$ = new Subject<void>();\n private _keepingScrollContainer: Element;\n list: ReuseItem[] = [];\n item: ReuseItem;\n pos = 0;\n\n // #region fields\n\n @Input() mode: ReuseTabMatchMode = ReuseTabMatchMode.Menu;\n @Input() i18n: ReuseContextI18n;\n @Input() @InputBoolean() debug = false;\n @Input() @InputNumber() max: number;\n @Input() @InputNumber() tabMaxWidth: number;\n @Input() excludes: RegExp[];\n @Input() @InputBoolean() allowClose = true;\n @Input() @InputBoolean() keepingScroll = false;\n @Input()\n set keepingScrollContainer(value: string | Element) {\n this._keepingScrollContainer = typeof value === 'string' ? this.doc.querySelector(value) : value;\n }\n @Input() customContextMenu: ReuseCustomContextMenu[] = [];\n @Input() tabBarExtraContent: TemplateRef<void>;\n @Input() tabBarGutter: number;\n @Input() tabBarStyle: { [key: string]: string };\n @Input() tabType: 'line' | 'card' = 'line';\n @Input() routeParamMatchMode: ReuseTabRouteParamMatchMode = 'strict';\n @Input() @InputBoolean() disabled = false;\n @Input() titleRender?: TemplateRef<{ $implicit: ReuseItem }>;\n @Output() readonly change = new EventEmitter<ReuseItem>();\n @Output() readonly close = new EventEmitter<ReuseItem | null>();\n\n // #endregion\n\n constructor(\n private srv: ReuseTabService,\n private cdr: ChangeDetectorRef,\n private router: Router,\n private route: ActivatedRoute,\n @Optional() @Inject(ALAIN_I18N_TOKEN) private i18nSrv: AlainI18NService,\n @Inject(DOCUMENT) private doc: NzSafeAny,\n private platform: Platform\n ) {}\n\n private genTit(title: ReuseTitle): string {\n return title.i18n && this.i18nSrv ? this.i18nSrv.fanyi(title.i18n) : title.text!;\n }\n\n private get curUrl(): string {\n return this.srv.getUrl(this.route.snapshot);\n }\n\n private genCurItem(): ReuseItem {\n const url = this.curUrl;\n const snapshotTrue = this.srv.getTruthRoute(this.route.snapshot);\n return {\n url,\n title: this.genTit(this.srv.getTitle(url, snapshotTrue)),\n closable: this.allowClose && this.srv.count > 0 && this.srv.getClosable(url, snapshotTrue),\n active: false,\n last: false,\n index: 0\n };\n }\n\n private genList(notify: ReuseTabNotify | null): void {\n const ls = this.srv.items.map(\n (item: ReuseTabCached, index: number) =>\n ({\n url: item.url,\n title: this.genTit(item.title),\n closable: this.allowClose && item.closable && this.srv.count > 0,\n index,\n active: false,\n last: false\n } as ReuseItem)\n );\n\n const url = this.curUrl;\n let addCurrent = ls.findIndex(w => w.url === url) === -1;\n if (notify && notify.active === 'close' && notify.url === url) {\n addCurrent = false;\n let toPos = 0;\n const curItem = this.list.find(w => w.url === url)!;\n if (curItem.index === ls.length) {\n // When closed is last\n toPos = ls.length - 1;\n } else if (curItem.index < ls.length) {\n // Should be actived next tab when closed is middle\n toPos = Math.max(0, curItem.index);\n }\n this.router.navigateByUrl(ls[toPos].url);\n }\n\n if (addCurrent) {\n ls.splice(this.pos + 1, 0, this.genCurItem());\n }\n\n ls.forEach((item, index) => (item.index = index));\n if (ls.length === 1) {\n ls[0].closable = false;\n }\n this.list = ls;\n this.cdr.detectChanges();\n this.updatePos$.next();\n }\n\n private updateTitle(res: ReuseTabNotify): void {\n const item = this.list.find(w => w.url === res!.url);\n if (!item) return;\n item.title = this.genTit(res!.title!);\n this.cdr.detectChanges();\n }\n\n private refresh(item: ReuseItem): void {\n this.srv.runHook('_onReuseInit', this.pos === item.index ? this.srv.componentRef : item.index, 'refresh');\n }\n\n // #region UI\n\n contextMenuChange(res: ReuseContextCloseEvent): void {\n let fn: (() => void) | null = null;\n switch (res.type) {\n case 'refresh':\n this.refresh(res.item);\n break;\n case 'close':\n this._close(null, res.item.index, res.includeNonCloseable);\n break;\n case 'closeRight':\n fn = () => {\n this.srv.closeRight(res.item.url, res.includeNonCloseable);\n this.close.emit(null);\n };\n break;\n case 'closeOther':\n fn = () => {\n this.srv.clear(res.includeNonCloseable);\n this.close.emit(null);\n };\n break;\n }\n if (!fn) {\n return;\n }\n if (!res.item.active && res.item.index <= this.list.find(w => w.active)!.index) {\n this._to(res.item.index, fn);\n } else {\n fn();\n }\n }\n\n _to(index: number, cb?: () => void): void {\n index = Math.max(0, Math.min(index, this.list.length - 1));\n const item = this.list[index];\n this.router.navigateByUrl(item.url).then(res => {\n if (!res) return;\n this.item = item;\n this.change.emit(item);\n if (cb) {\n cb();\n }\n });\n }\n\n _close(e: Event | null, idx: number, includeNonCloseable: boolean): boolean {\n if (e != null) {\n e.preventDefault();\n e.stopPropagation();\n }\n const item = this.list[idx];\n this.srv.close(item.url, includeNonCloseable);\n this.close.emit(item);\n this.cdr.detectChanges();\n return false;\n }\n\n activate(instance: NzSafeAny): void {\n this.srv.componentRef = { instance };\n }\n\n // #endregion\n\n ngOnInit(): void {\n if (!this.platform.isBrowser) {\n return;\n }\n\n this.updatePos$.pipe(takeUntil(this.destroy$), debounceTime(50)).subscribe(() => {\n const url = this.srv.getUrl(this.route.snapshot);\n const ls = this.list.filter(w => w.url === url || !this.srv.isExclude(w.url));\n if (ls.length === 0) {\n return;\n }\n\n const last = ls[ls.length - 1];\n const item = ls.find(w => w.url === url);\n last.last = true;\n const pos = item == null ? last.index : item.index;\n ls.forEach((i, idx) => (i.active = pos === idx));\n this.pos = pos;\n // TODO: 目前无法知道为什么 `pos` 无法通过 `nzSelectedIndex` 生效,因此强制使用组件实例的方式来修改,这种方式是安全的\n // https://github.com/ng-alain/ng-alain/issues/1736\n this.tabset.nzSelectedIndex = pos;\n this.list = ls;\n this.cdr.detectChanges();\n });\n\n this.srv.change.pipe(takeUntil(this.destroy$)).subscribe(res => {\n switch (res?.active) {\n case 'title':\n this.updateTitle(res);\n return;\n case 'override':\n if (res?.list?.length === this.list.length) {\n this.updatePos$.next();\n return;\n }\n break;\n }\n this.genList(res);\n });\n\n this.i18nSrv.change\n .pipe(\n filter(() => this.srv.inited),\n takeUntil(this.destroy$),\n debounceTime(100)\n )\n .subscribe(() => this.genList({ active: 'title' }));\n\n this.srv.init();\n }\n\n ngOnChanges(changes: { [P in keyof this]?: SimpleChange } & SimpleChanges): void {\n if (!this.platform.isBrowser) {\n return;\n }\n\n if (changes.max) this.srv.max = this.max;\n if (changes.excludes) this.srv.excludes = this.excludes;\n if (changes.mode) this.srv.mode = this.mode;\n if (changes.routeParamMatchMode) this.srv.routeParamMatchMode = this.routeParamMatchMode;\n if (changes.keepingScroll) {\n this.srv.keepingScroll = this.keepingScroll;\n this.srv.keepingScrollContainer = this._keepingScrollContainer;\n }\n\n this.srv.debug = this.debug;\n\n this.cdr.detectChanges();\n }\n\n ngOnDestroy(): void {\n const { destroy$: unsubscribe$ } = this;\n unsubscribe$.next();\n unsubscribe$.complete();\n }\n}\n","import { ActivatedRouteSnapshot, RouteReuseStrategy } from '@angular/router';\n\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { ReuseTabService } from './reuse-tab.service';\n\nexport class ReuseTabStrategy implements RouteReuseStrategy {\n constructor(private srv: ReuseTabService) {}\n\n shouldDetach(route: ActivatedRouteSnapshot): boolean {\n return this.srv.shouldDetach(route);\n }\n store(route: ActivatedRouteSnapshot, handle: unknown): void {\n this.srv.store(route, handle);\n }\n shouldAttach(route: ActivatedRouteSnapshot): boolean {\n return this.srv.shouldAttach(route);\n }\n retrieve(route: ActivatedRouteSnapshot): NzSafeAny | null {\n return this.srv.retrieve(route);\n }\n shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {\n return this.srv.shouldReuseRoute(future, curr);\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { DelonLocaleModule } from '@delon/theme';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzMenuModule } from 'ng-zorro-antd/menu';\nimport { NzTabsModule } from 'ng-zorro-antd/tabs';\n\nimport { ReuseTabContextMenuComponent } from './reuse-tab-context-menu.component';\nimport { ReuseTabContextComponent } from './reuse-tab-context.component';\nimport { ReuseTabContextDirective } from './reuse-tab-context.directive';\nimport { ReuseTabComponent } from './reuse-tab.component';\n\nconst COMPONENTS = [ReuseTabComponent];\nconst NOEXPORTS = [ReuseTabContextMenuComponent, ReuseTabContextComponent, ReuseTabContextDirective];\n\n@NgModule({\n imports: [CommonModule, RouterModule, DelonLocaleModule, NzMenuModule, NzTabsModule, NzIconModule, OverlayModule],\n declarations: [...COMPONENTS, ...NOEXPORTS],\n exports: COMPONENTS\n})\nexport class ReuseTabModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}