@delon/abc 12.3.0 → 13.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (729) hide show
  1. package/abc.d.ts +1 -0
  2. package/auto-focus/auto-focus.directive.d.ts +7 -2
  3. package/auto-focus/auto-focus.module.d.ts +5 -0
  4. package/auto-focus/autoFocus.d.ts +1 -0
  5. package/auto-focus/package.json +5 -6
  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.module.d.ts +9 -0
  9. package/avatar-list/avatarList.d.ts +1 -0
  10. package/avatar-list/package.json +5 -6
  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.module.d.ts +9 -0
  17. package/date-picker/datePicker.d.ts +1 -1
  18. package/date-picker/package.json +5 -6
  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.directive.d.ts +5 -2
  23. package/down-file/down-file.module.d.ts +7 -0
  24. package/down-file/downFile.d.ts +1 -0
  25. package/down-file/package.json +5 -6
  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.module.d.ts +7 -0
  33. package/error-collect/errorCollect.d.ts +1 -0
  34. package/error-collect/package.json +5 -6
  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.module.mjs +17 -0
  39. package/{esm2015/auto-focus/autoFocus.js → esm2020/auto-focus/autoFocus.mjs} +0 -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.module.mjs +22 -0
  44. package/{esm2015/avatar-list/avatarList.js → esm2020/avatar-list/avatarList.mjs} +0 -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.module.mjs +22 -0
  51. package/esm2020/date-picker/datePicker.mjs +5 -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.module.mjs +20 -0
  57. package/{esm2015/down-file/downFile.js → esm2020/down-file/downFile.mjs} +0 -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.module.mjs +20 -0
  65. package/{esm2015/error-collect/errorCollect.js → esm2020/error-collect/errorCollect.mjs} +0 -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.module.mjs +21 -0
  73. package/{esm2015/footer-toolbar/footerToolbar.js → esm2020/footer-toolbar/footerToolbar.mjs} +0 -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.module.mjs +20 -0
  78. package/esm2020/full-content/full-content.service.mjs +23 -0
  79. package/{esm2015/full-content/fullContent.js → esm2020/full-content/fullContent.mjs} +0 -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.module.mjs +21 -0
  84. package/{esm2015/global-footer/global-footer.types.js → esm2020/global-footer/global-footer.types.mjs} +0 -0
  85. package/{esm2015/global-footer/globalFooter.js → esm2020/global-footer/globalFooter.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.module.mjs +60 -0
  115. package/{esm2015/notice-icon/notice-icon.types.js → esm2020/notice-icon/notice-icon.types.mjs} +0 -0
  116. package/{esm2015/notice-icon/noticeIcon.js → esm2020/notice-icon/noticeIcon.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.module.mjs +24 -0
  126. package/{esm2015/page-header/pageHeader.js → esm2020/page-header/pageHeader.mjs} +0 -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.module.mjs +21 -0
  144. package/{esm2015/quick-menu/quickMenu.js → esm2020/quick-menu/quickMenu.mjs} +0 -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.module.mjs +29 -0
  158. package/esm2020/reuse-tab/reuse-tab.service.mjs +533 -0
  159. package/{esm2015/reuse-tab/reuse-tab.strategy.js → esm2020/reuse-tab/reuse-tab.strategy.mjs} +0 -0
  160. package/{esm2015/reuse-tab/reuseTab.js → esm2020/reuse-tab/reuseTab.mjs} +0 -0
  161. package/{esm2015/se/edit.js → esm2020/se/edit.mjs} +0 -0
  162. package/esm2020/se/public_api.mjs +5 -0
  163. package/esm2020/se/se-container.component.mjs +173 -0
  164. package/esm2020/se/se.component.mjs +233 -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/grid.js → esm2020/sg/grid.mjs} +0 -0
  168. package/{esm2015/sg/public_api.js → esm2020/sg/public_api.mjs} +0 -0
  169. package/esm2020/sg/sg-container.component.mjs +52 -0
  170. package/esm2020/sg/sg.component.mjs +67 -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} +1 -2
  182. package/esm2020/st/st.interfaces.mjs +2 -0
  183. package/esm2020/st/st.module.mjs +98 -0
  184. package/esm2020/st/st.types.mjs +2 -0
  185. package/esm2020/st/table.mjs +5 -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.module.mjs +25 -0
  191. package/{esm2015/sv/view.js → esm2020/sv/view.mjs} +0 -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.module.mjs +21 -0
  195. package/{esm2015/tag-select/tagSelect.js → esm2020/tag-select/tagSelect.mjs} +0 -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 +6 -2
  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/autoFocus.mjs +69 -0
  215. package/fesm2015/autoFocus.mjs.map +1 -0
  216. package/fesm2015/avatarList.mjs +140 -0
  217. package/fesm2015/avatarList.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 → datePicker.mjs} +63 -40
  221. package/fesm2015/datePicker.mjs.map +1 -0
  222. package/fesm2015/downFile.mjs +141 -0
  223. package/fesm2015/downFile.mjs.map +1 -0
  224. package/fesm2015/edit.mjs +443 -0
  225. package/fesm2015/edit.mjs.map +1 -0
  226. package/fesm2015/ellipsis.mjs +255 -0
  227. package/fesm2015/ellipsis.mjs.map +1 -0
  228. package/fesm2015/errorCollect.mjs +144 -0
  229. package/fesm2015/errorCollect.mjs.map +1 -0
  230. package/fesm2015/exception.mjs +135 -0
  231. package/fesm2015/exception.mjs.map +1 -0
  232. package/fesm2015/footerToolbar.mjs +70 -0
  233. package/fesm2015/footerToolbar.mjs.map +1 -0
  234. package/fesm2015/fullContent.mjs +202 -0
  235. package/fesm2015/fullContent.mjs.map +1 -0
  236. package/fesm2015/globalFooter.mjs +127 -0
  237. package/fesm2015/globalFooter.mjs.map +1 -0
  238. package/fesm2015/grid.mjs +139 -0
  239. package/fesm2015/grid.mjs.map +1 -0
  240. package/fesm2015/image.mjs +165 -0
  241. package/fesm2015/image.mjs.map +1 -0
  242. package/fesm2015/let.mjs +59 -0
  243. package/fesm2015/let.mjs.map +1 -0
  244. package/fesm2015/loading.mjs +140 -0
  245. package/fesm2015/loading.mjs.map +1 -0
  246. package/fesm2015/{lodop.js → lodop.mjs} +15 -15
  247. package/fesm2015/lodop.mjs.map +1 -0
  248. package/fesm2015/media.mjs +170 -0
  249. package/fesm2015/media.mjs.map +1 -0
  250. package/fesm2015/noticeIcon.mjs +173 -0
  251. package/fesm2015/noticeIcon.mjs.map +1 -0
  252. package/fesm2015/onboarding.mjs +335 -0
  253. package/fesm2015/onboarding.mjs.map +1 -0
  254. package/fesm2015/pageHeader.mjs +277 -0
  255. package/fesm2015/pageHeader.mjs.map +1 -0
  256. package/fesm2015/{pdf.js → pdf.mjs} +81 -54
  257. package/fesm2015/pdf.mjs.map +1 -0
  258. package/fesm2015/qr.mjs +171 -0
  259. package/fesm2015/qr.mjs.map +1 -0
  260. package/fesm2015/quickMenu.mjs +114 -0
  261. package/fesm2015/quickMenu.mjs.map +1 -0
  262. package/fesm2015/result.mjs +89 -0
  263. package/fesm2015/result.mjs.map +1 -0
  264. package/fesm2015/{reuseTab.js → reuseTab.mjs} +188 -174
  265. package/fesm2015/reuseTab.mjs.map +1 -0
  266. package/fesm2015/table.mjs +2426 -0
  267. package/fesm2015/table.mjs.map +1 -0
  268. package/fesm2015/tagSelect.mjs +92 -0
  269. package/fesm2015/tagSelect.mjs.map +1 -0
  270. package/fesm2015/view.mjs +302 -0
  271. package/fesm2015/view.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/autoFocus.mjs +69 -0
  279. package/fesm2020/autoFocus.mjs.map +1 -0
  280. package/fesm2020/avatarList.mjs +137 -0
  281. package/fesm2020/avatarList.mjs.map +1 -0
  282. package/fesm2020/count-down.mjs +69 -0
  283. package/fesm2020/count-down.mjs.map +1 -0
  284. package/fesm2020/datePicker.mjs +236 -0
  285. package/fesm2020/datePicker.mjs.map +1 -0
  286. package/fesm2020/downFile.mjs +138 -0
  287. package/fesm2020/downFile.mjs.map +1 -0
  288. package/fesm2020/edit.mjs +436 -0
  289. package/fesm2020/edit.mjs.map +1 -0
  290. package/fesm2020/ellipsis.mjs +253 -0
  291. package/fesm2020/ellipsis.mjs.map +1 -0
  292. package/fesm2020/errorCollect.mjs +141 -0
  293. package/fesm2020/errorCollect.mjs.map +1 -0
  294. package/fesm2020/exception.mjs +132 -0
  295. package/fesm2020/exception.mjs.map +1 -0
  296. package/fesm2020/footerToolbar.mjs +68 -0
  297. package/fesm2020/footerToolbar.mjs.map +1 -0
  298. package/fesm2020/fullContent.mjs +199 -0
  299. package/fesm2020/fullContent.mjs.map +1 -0
  300. package/fesm2020/globalFooter.mjs +124 -0
  301. package/fesm2020/globalFooter.mjs.map +1 -0
  302. package/fesm2020/grid.mjs +137 -0
  303. package/fesm2020/grid.mjs.map +1 -0
  304. package/fesm2020/image.mjs +170 -0
  305. package/fesm2020/image.mjs.map +1 -0
  306. package/fesm2020/let.mjs +57 -0
  307. package/fesm2020/let.mjs.map +1 -0
  308. package/fesm2020/loading.mjs +138 -0
  309. package/fesm2020/loading.mjs.map +1 -0
  310. package/fesm2020/lodop.mjs +239 -0
  311. package/fesm2020/lodop.mjs.map +1 -0
  312. package/fesm2020/media.mjs +172 -0
  313. package/fesm2020/media.mjs.map +1 -0
  314. package/fesm2020/noticeIcon.mjs +173 -0
  315. package/fesm2020/noticeIcon.mjs.map +1 -0
  316. package/fesm2020/onboarding.mjs +343 -0
  317. package/fesm2020/onboarding.mjs.map +1 -0
  318. package/fesm2020/pageHeader.mjs +274 -0
  319. package/fesm2020/pageHeader.mjs.map +1 -0
  320. package/fesm2020/pdf.mjs +506 -0
  321. package/fesm2020/pdf.mjs.map +1 -0
  322. package/fesm2020/qr.mjs +171 -0
  323. package/fesm2020/qr.mjs.map +1 -0
  324. package/fesm2020/quickMenu.mjs +114 -0
  325. package/fesm2020/quickMenu.mjs.map +1 -0
  326. package/fesm2020/result.mjs +86 -0
  327. package/fesm2020/result.mjs.map +1 -0
  328. package/fesm2020/reuseTab.mjs +1106 -0
  329. package/fesm2020/reuseTab.mjs.map +1 -0
  330. package/fesm2020/table.mjs +2469 -0
  331. package/fesm2020/table.mjs.map +1 -0
  332. package/fesm2020/tagSelect.mjs +89 -0
  333. package/fesm2020/tagSelect.mjs.map +1 -0
  334. package/fesm2020/view.mjs +298 -0
  335. package/fesm2020/view.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.module.d.ts +8 -0
  342. package/footer-toolbar/footerToolbar.d.ts +1 -0
  343. package/footer-toolbar/package.json +5 -6
  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.module.d.ts +7 -0
  348. package/full-content/full-content.service.d.ts +3 -0
  349. package/full-content/fullContent.d.ts +1 -0
  350. package/full-content/package.json +5 -6
  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.module.d.ts +8 -0
  355. package/global-footer/globalFooter.d.ts +1 -0
  356. package/global-footer/package.json +5 -6
  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.module.d.ts +16 -0
  385. package/notice-icon/noticeIcon.d.ts +1 -0
  386. package/notice-icon/package.json +5 -6
  387. package/notice-icon/style/index.less +17 -0
  388. package/onboarding/onboarding.component.d.ts +4 -1
  389. package/onboarding/onboarding.d.ts +1 -0
  390. package/onboarding/onboarding.module.d.ts +11 -0
  391. package/onboarding/onboarding.service.d.ts +3 -0
  392. package/onboarding/package.json +5 -6
  393. package/onboarding/schema.json +1 -1
  394. package/onboarding/style/index.less +6 -0
  395. package/package.json +274 -14
  396. package/page-header/package.json +5 -6
  397. package/page-header/page-header.component.d.ts +4 -1
  398. package/page-header/page-header.module.d.ts +11 -0
  399. package/page-header/pageHeader.d.ts +1 -0
  400. package/page-header/style/index.less +10 -0
  401. package/page-header/style/rtl.less +3 -0
  402. package/pdf/package.json +5 -6
  403. package/pdf/pdf.component.d.ts +5 -2
  404. package/pdf/pdf.d.ts +1 -0
  405. package/pdf/pdf.module.d.ts +7 -0
  406. package/qr/package.json +5 -6
  407. package/qr/qr.component.d.ts +13 -10
  408. package/qr/qr.d.ts +1 -0
  409. package/qr/qr.module.d.ts +6 -0
  410. package/quick-menu/package.json +5 -6
  411. package/quick-menu/quick-menu.component.d.ts +6 -3
  412. package/quick-menu/quick-menu.module.d.ts +8 -0
  413. package/quick-menu/quickMenu.d.ts +1 -0
  414. package/quick-menu/style/index.less +2 -0
  415. package/result/package.json +5 -6
  416. package/result/result.component.d.ts +6 -3
  417. package/result/result.d.ts +1 -0
  418. package/result/result.module.d.ts +8 -0
  419. package/result/style/index.less +7 -0
  420. package/reuse-tab/package.json +5 -6
  421. package/reuse-tab/reuse-tab-context-menu.component.d.ts +3 -0
  422. package/reuse-tab/reuse-tab-context.component.d.ts +4 -1
  423. package/reuse-tab/reuse-tab-context.directive.d.ts +3 -0
  424. package/reuse-tab/reuse-tab-context.service.d.ts +4 -1
  425. package/reuse-tab/reuse-tab.component.d.ts +14 -11
  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/reuseTab.d.ts +1 -0
  429. package/reuse-tab/style/index.less +4 -0
  430. package/se/edit.d.ts +1 -0
  431. package/se/package.json +5 -6
  432. package/se/public_api.d.ts +0 -1
  433. package/se/se-container.component.d.ts +18 -4
  434. package/se/se.component.d.ts +13 -8
  435. package/se/se.module.d.ts +10 -0
  436. package/se/style/index.less +2 -0
  437. package/sg/grid.d.ts +1 -0
  438. package/sg/package.json +5 -6
  439. package/sg/sg-container.component.d.ts +4 -1
  440. package/sg/sg.component.d.ts +4 -1
  441. package/sg/sg.module.d.ts +7 -0
  442. package/st/package.json +5 -6
  443. package/st/st-column-source.d.ts +4 -1
  444. package/st/st-data-source.d.ts +3 -0
  445. package/st/st-export.d.ts +3 -0
  446. package/st/st-filter.component.d.ts +21 -0
  447. package/st/st-row.directive.d.ts +7 -2
  448. package/st/st-widget-host.directive.d.ts +5 -3
  449. package/st/st-widget.d.ts +3 -0
  450. package/st/st.component.d.ts +44 -31
  451. package/st/st.interfaces.d.ts +59 -5
  452. package/st/st.module.d.ts +27 -0
  453. package/st/st.types.d.ts +6 -0
  454. package/st/style/index.less +16 -0
  455. package/st/table.d.ts +1 -1
  456. package/sv/package.json +5 -6
  457. package/sv/public_api.d.ts +0 -1
  458. package/sv/style/index.less +9 -0
  459. package/sv/sv-container.component.d.ts +16 -3
  460. package/sv/sv-value.component.d.ts +3 -0
  461. package/sv/sv.component.d.ts +13 -10
  462. package/sv/sv.module.d.ts +12 -0
  463. package/sv/view.d.ts +1 -0
  464. package/tag-select/package.json +5 -6
  465. package/tag-select/style/index.less +4 -0
  466. package/tag-select/style/rtl.less +3 -0
  467. package/tag-select/tag-select.component.d.ts +3 -0
  468. package/tag-select/tag-select.module.d.ts +8 -0
  469. package/tag-select/tagSelect.d.ts +1 -0
  470. package/xlsx/package.json +5 -6
  471. package/xlsx/xlsx.d.ts +1 -0
  472. package/xlsx/xlsx.directive.d.ts +3 -0
  473. package/xlsx/xlsx.module.d.ts +6 -0
  474. package/xlsx/xlsx.service.d.ts +3 -0
  475. package/zip/package.json +5 -6
  476. package/zip/zip.d.ts +1 -0
  477. package/zip/zip.module.d.ts +5 -0
  478. package/zip/zip.service.d.ts +3 -0
  479. package/abc.metadata.json +0 -1
  480. package/auto-focus/autoFocus.metadata.json +0 -1
  481. package/avatar-list/avatarList.metadata.json +0 -1
  482. package/bundles/abc.umd.js +0 -19
  483. package/bundles/abc.umd.js.map +0 -1
  484. package/bundles/autoFocus.umd.js +0 -394
  485. package/bundles/autoFocus.umd.js.map +0 -1
  486. package/bundles/avatarList.umd.js +0 -465
  487. package/bundles/avatarList.umd.js.map +0 -1
  488. package/bundles/count-down.umd.js +0 -75
  489. package/bundles/count-down.umd.js.map +0 -1
  490. package/bundles/datePicker.umd.js +0 -552
  491. package/bundles/datePicker.umd.js.map +0 -1
  492. package/bundles/downFile.umd.js +0 -474
  493. package/bundles/downFile.umd.js.map +0 -1
  494. package/bundles/edit.umd.js +0 -776
  495. package/bundles/edit.umd.js.map +0 -1
  496. package/bundles/ellipsis.umd.js +0 -578
  497. package/bundles/ellipsis.umd.js.map +0 -1
  498. package/bundles/errorCollect.umd.js +0 -461
  499. package/bundles/errorCollect.umd.js.map +0 -1
  500. package/bundles/exception.umd.js +0 -147
  501. package/bundles/exception.umd.js.map +0 -1
  502. package/bundles/footerToolbar.umd.js +0 -401
  503. package/bundles/footerToolbar.umd.js.map +0 -1
  504. package/bundles/fullContent.umd.js +0 -550
  505. package/bundles/fullContent.umd.js.map +0 -1
  506. package/bundles/globalFooter.umd.js +0 -455
  507. package/bundles/globalFooter.umd.js.map +0 -1
  508. package/bundles/grid.umd.js +0 -470
  509. package/bundles/grid.umd.js.map +0 -1
  510. package/bundles/image.umd.js +0 -482
  511. package/bundles/image.umd.js.map +0 -1
  512. package/bundles/let.umd.js +0 -76
  513. package/bundles/let.umd.js.map +0 -1
  514. package/bundles/loading.umd.js +0 -181
  515. package/bundles/loading.umd.js.map +0 -1
  516. package/bundles/lodop.umd.js +0 -605
  517. package/bundles/lodop.umd.js.map +0 -1
  518. package/bundles/media.umd.js +0 -536
  519. package/bundles/media.umd.js.map +0 -1
  520. package/bundles/noticeIcon.umd.js +0 -468
  521. package/bundles/noticeIcon.umd.js.map +0 -1
  522. package/bundles/onboarding.umd.js +0 -370
  523. package/bundles/onboarding.umd.js.map +0 -1
  524. package/bundles/pageHeader.umd.js +0 -570
  525. package/bundles/pageHeader.umd.js.map +0 -1
  526. package/bundles/pdf.umd.js +0 -863
  527. package/bundles/pdf.umd.js.map +0 -1
  528. package/bundles/qr.umd.js +0 -491
  529. package/bundles/qr.umd.js.map +0 -1
  530. package/bundles/quickMenu.umd.js +0 -442
  531. package/bundles/quickMenu.umd.js.map +0 -1
  532. package/bundles/result.umd.js +0 -100
  533. package/bundles/result.umd.js.map +0 -1
  534. package/bundles/reuseTab.umd.js +0 -1531
  535. package/bundles/reuseTab.umd.js.map +0 -1
  536. package/bundles/table.umd.js +0 -2489
  537. package/bundles/table.umd.js.map +0 -1
  538. package/bundles/tagSelect.umd.js +0 -419
  539. package/bundles/tagSelect.umd.js.map +0 -1
  540. package/bundles/view.umd.js +0 -592
  541. package/bundles/view.umd.js.map +0 -1
  542. package/bundles/xlsx.umd.js +0 -529
  543. package/bundles/xlsx.umd.js.map +0 -1
  544. package/bundles/zip.umd.js +0 -482
  545. package/bundles/zip.umd.js.map +0 -1
  546. package/count-down/count-down.metadata.json +0 -1
  547. package/date-picker/datePicker.metadata.json +0 -1
  548. package/down-file/downFile.metadata.json +0 -1
  549. package/ellipsis/ellipsis.metadata.json +0 -1
  550. package/error-collect/errorCollect.metadata.json +0 -1
  551. package/esm2015/auto-focus/auto-focus.directive.js +0 -42
  552. package/esm2015/auto-focus/auto-focus.module.js +0 -12
  553. package/esm2015/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/count-down/count-down.component.js +0 -36
  557. package/esm2015/count-down/count-down.module.js +0 -15
  558. package/esm2015/date-picker/date-picker.module.js +0 -17
  559. package/esm2015/date-picker/datePicker.js +0 -6
  560. package/esm2015/date-picker/range-shortcut.component.js +0 -26
  561. package/esm2015/date-picker/range.directive.js +0 -171
  562. package/esm2015/down-file/down-file.directive.js +0 -103
  563. package/esm2015/down-file/down-file.module.js +0 -15
  564. package/esm2015/ellipsis/ellipsis.component.js +0 -224
  565. package/esm2015/ellipsis/ellipsis.module.js +0 -16
  566. package/esm2015/error-collect/error-collect.component.js +0 -112
  567. package/esm2015/error-collect/error-collect.module.js +0 -15
  568. package/esm2015/exception/exception.component.js +0 -100
  569. package/esm2015/exception/exception.module.js +0 -17
  570. package/esm2015/footer-toolbar/footer-toolbar.component.js +0 -46
  571. package/esm2015/footer-toolbar/footer-toolbar.module.js +0 -16
  572. package/esm2015/full-content/full-content-toggle.directive.js +0 -23
  573. package/esm2015/full-content/full-content.component.js +0 -135
  574. package/esm2015/full-content/full-content.module.js +0 -15
  575. package/esm2015/full-content/full-content.service.js +0 -21
  576. package/esm2015/global-footer/global-footer-item.component.js +0 -24
  577. package/esm2015/global-footer/global-footer.component.js +0 -77
  578. package/esm2015/global-footer/global-footer.module.js +0 -16
  579. package/esm2015/image/image.directive.js +0 -133
  580. package/esm2015/image/image.module.js +0 -15
  581. package/esm2015/let/let.directive.js +0 -31
  582. package/esm2015/let/let.module.js +0 -12
  583. package/esm2015/loading/loading.component.js +0 -26
  584. package/esm2015/loading/loading.module.js +0 -19
  585. package/esm2015/loading/loading.service.js +0 -92
  586. package/esm2015/lodop/lodop.module.js +0 -7
  587. package/esm2015/lodop/lodop.service.js +0 -219
  588. package/esm2015/lodop/lodop.types.js +0 -2
  589. package/esm2015/media/media.component.js +0 -104
  590. package/esm2015/media/media.module.js +0 -14
  591. package/esm2015/media/media.service.js +0 -53
  592. package/esm2015/notice-icon/notice-icon-tab.component.js +0 -30
  593. package/esm2015/notice-icon/notice-icon.component.js +0 -74
  594. package/esm2015/notice-icon/notice-icon.module.js +0 -35
  595. package/esm2015/onboarding/onboarding.component.js +0 -130
  596. package/esm2015/onboarding/onboarding.module.js +0 -20
  597. package/esm2015/onboarding/onboarding.service.js +0 -178
  598. package/esm2015/page-header/page-header.component.js +0 -216
  599. package/esm2015/page-header/page-header.module.js +0 -19
  600. package/esm2015/pdf/pdf.component.js +0 -433
  601. package/esm2015/pdf/pdf.module.js +0 -15
  602. package/esm2015/qr/qr.component.js +0 -128
  603. package/esm2015/qr/qr.module.js +0 -14
  604. package/esm2015/quick-menu/quick-menu.component.js +0 -90
  605. package/esm2015/quick-menu/quick-menu.module.js +0 -16
  606. package/esm2015/result/result.component.js +0 -62
  607. package/esm2015/result/result.module.js +0 -16
  608. package/esm2015/reuse-tab/reuse-tab-context-menu.component.js +0 -74
  609. package/esm2015/reuse-tab/reuse-tab-context.component.js +0 -32
  610. package/esm2015/reuse-tab/reuse-tab-context.directive.js +0 -33
  611. package/esm2015/reuse-tab/reuse-tab-context.service.js +0 -62
  612. package/esm2015/reuse-tab/reuse-tab.component.js +0 -300
  613. package/esm2015/reuse-tab/reuse-tab.module.js +0 -24
  614. package/esm2015/reuse-tab/reuse-tab.service.js +0 -534
  615. package/esm2015/se/public_api.js +0 -6
  616. package/esm2015/se/se-container.component.js +0 -115
  617. package/esm2015/se/se-title.component.js +0 -40
  618. package/esm2015/se/se.component.js +0 -214
  619. package/esm2015/se/se.module.js +0 -19
  620. package/esm2015/sg/sg-container.component.js +0 -49
  621. package/esm2015/sg/sg.component.js +0 -65
  622. package/esm2015/sg/sg.module.js +0 -15
  623. package/esm2015/st/st-column-source.js +0 -410
  624. package/esm2015/st/st-data-source.js +0 -429
  625. package/esm2015/st/st-export.js +0 -90
  626. package/esm2015/st/st-row.directive.js +0 -40
  627. package/esm2015/st/st-widget-host.directive.js +0 -34
  628. package/esm2015/st/st-widget.js +0 -24
  629. package/esm2015/st/st.component.js +0 -874
  630. package/esm2015/st/st.interfaces.js +0 -2
  631. package/esm2015/st/st.module.js +0 -50
  632. package/esm2015/st/st.types.js +0 -2
  633. package/esm2015/st/table.js +0 -6
  634. package/esm2015/sv/public_api.js +0 -6
  635. package/esm2015/sv/sv-container.component.js +0 -63
  636. package/esm2015/sv/sv-title.component.js +0 -40
  637. package/esm2015/sv/sv-value.component.js +0 -32
  638. package/esm2015/sv/sv.component.js +0 -105
  639. package/esm2015/sv/sv.module.js +0 -21
  640. package/esm2015/tag-select/tag-select.component.js +0 -70
  641. package/esm2015/tag-select/tag-select.module.js +0 -16
  642. package/esm2015/xlsx/xlsx.directive.js +0 -26
  643. package/esm2015/xlsx/xlsx.module.js +0 -14
  644. package/esm2015/xlsx/xlsx.service.js +0 -129
  645. package/esm2015/zip/zip.module.js +0 -10
  646. package/esm2015/zip/zip.service.js +0 -115
  647. package/exception/exception.metadata.json +0 -1
  648. package/fesm2015/abc.js.map +0 -1
  649. package/fesm2015/autoFocus.js +0 -59
  650. package/fesm2015/autoFocus.js.map +0 -1
  651. package/fesm2015/avatarList.js +0 -128
  652. package/fesm2015/avatarList.js.map +0 -1
  653. package/fesm2015/count-down.js +0 -56
  654. package/fesm2015/count-down.js.map +0 -1
  655. package/fesm2015/datePicker.js.map +0 -1
  656. package/fesm2015/downFile.js +0 -122
  657. package/fesm2015/downFile.js.map +0 -1
  658. package/fesm2015/edit.js +0 -396
  659. package/fesm2015/edit.js.map +0 -1
  660. package/fesm2015/ellipsis.js +0 -244
  661. package/fesm2015/ellipsis.js.map +0 -1
  662. package/fesm2015/errorCollect.js +0 -131
  663. package/fesm2015/errorCollect.js.map +0 -1
  664. package/fesm2015/exception.js +0 -121
  665. package/fesm2015/exception.js.map +0 -1
  666. package/fesm2015/footerToolbar.js +0 -66
  667. package/fesm2015/footerToolbar.js.map +0 -1
  668. package/fesm2015/fullContent.js +0 -191
  669. package/fesm2015/fullContent.js.map +0 -1
  670. package/fesm2015/globalFooter.js +0 -118
  671. package/fesm2015/globalFooter.js.map +0 -1
  672. package/fesm2015/grid.js +0 -129
  673. package/fesm2015/grid.js.map +0 -1
  674. package/fesm2015/image.js +0 -152
  675. package/fesm2015/image.js.map +0 -1
  676. package/fesm2015/let.js +0 -48
  677. package/fesm2015/let.js.map +0 -1
  678. package/fesm2015/loading.js +0 -138
  679. package/fesm2015/loading.js.map +0 -1
  680. package/fesm2015/lodop.js.map +0 -1
  681. package/fesm2015/media.js +0 -174
  682. package/fesm2015/media.js.map +0 -1
  683. package/fesm2015/noticeIcon.js +0 -141
  684. package/fesm2015/noticeIcon.js.map +0 -1
  685. package/fesm2015/onboarding.js +0 -328
  686. package/fesm2015/onboarding.js.map +0 -1
  687. package/fesm2015/pageHeader.js +0 -239
  688. package/fesm2015/pageHeader.js.map +0 -1
  689. package/fesm2015/pdf.js.map +0 -1
  690. package/fesm2015/qr.js +0 -159
  691. package/fesm2015/qr.js.map +0 -1
  692. package/fesm2015/quickMenu.js +0 -111
  693. package/fesm2015/quickMenu.js.map +0 -1
  694. package/fesm2015/result.js +0 -83
  695. package/fesm2015/result.js.map +0 -1
  696. package/fesm2015/reuseTab.js.map +0 -1
  697. package/fesm2015/table.js +0 -2002
  698. package/fesm2015/table.js.map +0 -1
  699. package/fesm2015/tagSelect.js +0 -90
  700. package/fesm2015/tagSelect.js.map +0 -1
  701. package/fesm2015/view.js +0 -256
  702. package/fesm2015/view.js.map +0 -1
  703. package/fesm2015/xlsx.js.map +0 -1
  704. package/fesm2015/zip.js.map +0 -1
  705. package/footer-toolbar/footerToolbar.metadata.json +0 -1
  706. package/full-content/fullContent.metadata.json +0 -1
  707. package/global-footer/globalFooter.metadata.json +0 -1
  708. package/image/image.metadata.json +0 -1
  709. package/let/let.metadata.json +0 -1
  710. package/loading/loading.metadata.json +0 -1
  711. package/lodop/lodop.metadata.json +0 -1
  712. package/media/media.metadata.json +0 -1
  713. package/notice-icon/noticeIcon.metadata.json +0 -1
  714. package/onboarding/onboarding.metadata.json +0 -1
  715. package/page-header/pageHeader.metadata.json +0 -1
  716. package/pdf/pdf.metadata.json +0 -1
  717. package/qr/qr.metadata.json +0 -1
  718. package/quick-menu/quickMenu.metadata.json +0 -1
  719. package/result/result.metadata.json +0 -1
  720. package/reuse-tab/reuseTab.metadata.json +0 -1
  721. package/se/edit.metadata.json +0 -1
  722. package/se/se-title.component.d.ts +0 -10
  723. package/sg/grid.metadata.json +0 -1
  724. package/st/table.metadata.json +0 -1
  725. package/sv/sv-title.component.d.ts +0 -10
  726. package/sv/view.metadata.json +0 -1
  727. package/tag-select/tagSelect.metadata.json +0 -1
  728. package/xlsx/xlsx.metadata.json +0 -1
  729. package/zip/zip.metadata.json +0 -1
@@ -1,130 +0,0 @@
1
- import { Platform } from '@angular/cdk/platform';
2
- import { DOCUMENT } from '@angular/common';
3
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Inject, Optional, ViewChild, ViewEncapsulation } from '@angular/core';
4
- export class OnboardingComponent {
5
- constructor(el, doc, platform, cdr) {
6
- this.el = el;
7
- this.doc = doc;
8
- this.platform = platform;
9
- this.cdr = cdr;
10
- this.active = 0;
11
- this.max = 0;
12
- this.op = new EventEmitter();
13
- this.running = false;
14
- this.dir = 'ltr';
15
- }
16
- get first() {
17
- return this.active === 0;
18
- }
19
- get last() {
20
- return this.active === this.max - 1;
21
- }
22
- _getDoc() {
23
- return this.doc;
24
- }
25
- _getWin() {
26
- return this._getDoc().defaultView || window;
27
- }
28
- getLightData() {
29
- const doc = this._getDoc();
30
- const win = this._getWin();
31
- const el = doc.querySelector(this.item.selectors);
32
- if (!el) {
33
- return null;
34
- }
35
- const scrollTop = win.pageYOffset || doc.documentElement.scrollTop || doc.body.scrollTop;
36
- const scrollLeft = win.pageXOffset || doc.documentElement.scrollLeft || doc.body.scrollLeft;
37
- const rect = el.getBoundingClientRect();
38
- const top = rect.top + scrollTop;
39
- const left = rect.left + scrollLeft;
40
- const padding = 8;
41
- const needPadding = top > padding && left > padding;
42
- const offsetPos = needPadding ? padding : 0;
43
- const offsetWH = needPadding ? padding * 2 : 0;
44
- return {
45
- top: top - offsetPos,
46
- left: left - offsetPos,
47
- width: rect.width + offsetWH,
48
- height: rect.height + offsetWH,
49
- el,
50
- clientWidth: doc.body.clientWidth,
51
- clientHeight: doc.body.clientHeight
52
- };
53
- }
54
- ngAfterViewInit() {
55
- // Waiting https://github.com/NG-ZORRO/ng-zorro-antd/issues/6491
56
- this.popover.component.onClickOutside = () => { };
57
- }
58
- scroll(pos) {
59
- this.prevSelectorEl = pos.el;
60
- const scrollY = pos.top - (pos.clientHeight - pos.height) / 2;
61
- this._getWin().scrollTo({ top: scrollY });
62
- this.updatePrevElStatus(true);
63
- }
64
- updateRunning(status) {
65
- this.running = status;
66
- this.cdr.detectChanges();
67
- if (!status) {
68
- this.updatePosition();
69
- }
70
- }
71
- updatePosition() {
72
- if (!this.platform.isBrowser) {
73
- return;
74
- }
75
- const pos = this.getLightData();
76
- if (pos == null) {
77
- console.warn(`Did not matches selectors [${this.item.selectors}]`);
78
- return;
79
- }
80
- const lightStyle = this.el.nativeElement.querySelector('.onboarding__light').style;
81
- lightStyle.top = `${pos.top}px`;
82
- lightStyle.left = `${pos.left}px`;
83
- lightStyle.width = `${pos.width}px`;
84
- lightStyle.height = `${pos.height}px`;
85
- this.updatePrevElStatus(false);
86
- this.scroll(pos);
87
- }
88
- updatePrevElStatus(status) {
89
- if (this.prevSelectorEl) {
90
- this.prevSelectorEl.classList[status ? 'add' : 'remove']('onboarding__light-el');
91
- }
92
- }
93
- to(type) {
94
- this.op.emit(type);
95
- }
96
- handleMask() {
97
- if (this.config.maskClosable === true) {
98
- this.popover.component.hide();
99
- this.to('done');
100
- }
101
- }
102
- ngOnDestroy() {
103
- clearTimeout(this.time);
104
- this.updatePrevElStatus(false);
105
- }
106
- }
107
- OnboardingComponent.decorators = [
108
- { type: Component, args: [{
109
- selector: 'onboarding',
110
- template: "<div *ngIf=\"!running && config.mask\" class=\"onboarding__mask\" (click)=\"handleMask()\"></div>\n<div\n *ngIf=\"item\"\n class=\"onboarding__light\"\n [class.onboarding__light-hide]=\"running\"\n [attr.style]=\"item.lightStyle\"\n nz-popover\n #popover=\"nzPopover\"\n [nzPopoverTitle]=\"item.title\"\n [nzPopoverContent]=\"content\"\n [nzPopoverVisible]=\"!running\"\n [nzPopoverTrigger]=\"null\"\n [nzPopoverPlacement]=\"item.position\"\n [nzPopoverOverlayClassName]=\"item.className\"\n [nzPopoverOverlayStyle]=\"{ 'max-width.px': item.width, direction: dir }\"\n [nzNoAnimation]=\"true\"\n></div>\n<ng-template #content>\n <ng-container *nzStringTemplateOutlet=\"item.content\">\n <div [innerHTML]=\"item.content\"></div>\n </ng-container>\n <div class=\"flex-center-between onboarding__footer\">\n <span class=\"onboarding__total\">\n <ng-container *ngIf=\"config.showTotal\">{{ active + 1 }}/{{ max }}</ng-container>\n </span>\n <div class=\"onboarding__btns\">\n <a\n *ngIf=\"!last && item.skip !== null && item.skip !== undefined\"\n nz-button\n nzType=\"link\"\n (click)=\"to('skip')\"\n nzSize=\"small\"\n data-btnType=\"skip\"\n >\n <ng-container *nzStringTemplateOutlet=\"item.skip\">{{ item.skip }}</ng-container>\n </a>\n <a *ngIf=\"!first && item.prev !== null\" nz-button (click)=\"to('prev')\" nzSize=\"small\" data-btnType=\"prev\">\n <ng-container *nzStringTemplateOutlet=\"item.prev\">{{ item.prev }}</ng-container>\n </a>\n <a\n *ngIf=\"!last && item.next !== null && item.next !== undefined\"\n nz-button\n (click)=\"to('next')\"\n nzType=\"primary\"\n nzSize=\"small\"\n data-btnType=\"next\"\n >\n <ng-container *nzStringTemplateOutlet=\"item.next\">{{ item.next }}</ng-container>\n </a>\n <a\n *ngIf=\"last && item.done !== null && item.done !== undefined\"\n nz-button\n (click)=\"to('done')\"\n nzType=\"primary\"\n nzSize=\"small\"\n data-btnType=\"done\"\n >\n <ng-container *nzStringTemplateOutlet=\"item.done\">{{ item.done }}</ng-container>\n </a>\n </div>\n </div>\n</ng-template>\n",
111
- host: {
112
- '[class.onboarding]': `true`,
113
- '[class.onboarding-rtl]': `dir === 'rtl'`,
114
- '[attr.data-onboarding-active]': `active`
115
- },
116
- preserveWhitespaces: false,
117
- changeDetection: ChangeDetectionStrategy.OnPush,
118
- encapsulation: ViewEncapsulation.None
119
- },] }
120
- ];
121
- OnboardingComponent.ctorParameters = () => [
122
- { type: ElementRef },
123
- { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DOCUMENT,] }] },
124
- { type: Platform },
125
- { type: ChangeDetectorRef }
126
- ];
127
- OnboardingComponent.propDecorators = {
128
- popover: [{ type: ViewChild, args: ['popover', { static: false },] }]
129
- };
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25ib2FyZGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hYmMvb25ib2FyZGluZy9vbmJvYXJkaW5nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFFTixRQUFRLEVBQ1IsU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQTZCdkIsTUFBTSxPQUFPLG1CQUFtQjtJQTRCOUIsWUFDVSxFQUEyQixFQUNHLEdBQWMsRUFDNUMsUUFBa0IsRUFDbEIsR0FBc0I7UUFIdEIsT0FBRSxHQUFGLEVBQUUsQ0FBeUI7UUFDRyxRQUFHLEdBQUgsR0FBRyxDQUFXO1FBQzVDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUEzQmhDLFdBQU0sR0FBRyxDQUFDLENBQUM7UUFDWCxRQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ0MsT0FBRSxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO1FBQ25ELFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsUUFBRyxHQUFjLEtBQUssQ0FBQztJQXdCcEIsQ0FBQztJQXJCSixJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVPLE9BQU87UUFDYixPQUFPLElBQUksQ0FBQyxHQUFHLENB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LEtBQUssSUFBSSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBVSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDakI7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7OztZQXhJRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLG91RUFBMEM7Z0JBQzFDLElBQUksRUFBRTtvQkFDSixvQkFBb0IsRUFBRSxNQUFNO29CQUM1Qix3QkFBd0IsRUFBRSxlQUFlO29CQUN6QywrQkFBK0IsRUFBRSxRQUFRO2lCQUMxQztnQkFDRCxtQkFBbUIsRUFBRSxLQUFLO2dCQUMxQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtnQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQW5DQyxVQUFVOzRDQWtFUCxRQUFRLFlBQUksTUFBTSxTQUFDLFFBQVE7WUF6RXZCLFFBQVE7WUFLZixpQkFBaUI7OztzQkFnRGhCLFNBQVMsU0FBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHsgUGxhdGZvcm0gfSBmcm9tICdAYW5ndWxhci9jZGsvcGxhdGZvcm0nO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgdHlwZSB7IE56U2FmZUFueSB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS90eXBlcyc7XG5pbXBvcnQgeyBOelBvcG92ZXJEaXJlY3RpdmUgfSBmcm9tICduZy16b3Jyby1hbnRkL3BvcG92ZXInO1xuXG5pbXBvcnQgeyBPbmJvYXJkaW5nQ29uZmlnLCBPbmJvYXJkaW5nSXRlbSwgT25ib2FyZGluZ09wVHlwZSB9IGZyb20gJy4vb25ib2FyZGluZy50eXBlcyc7XG5cbmludGVyZmFjZSBPbmJvYXJkaW5nTGlnaHREYXRhIHtcbiAgZWw6IEhUTUxFbGVtZW50O1xuICB0b3A6IG51bWJlcjtcbiAgbGVmdDogbnVtYmVyO1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAgY2xpZW50SGVpZ2h0OiBudW1iZXI7XG4gIGNsaWVudFdpZHRoOiBudW1iZXI7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29uYm9hcmRpbmcnLFxuICB0ZW1wbGF0ZVVybDogJy4vb25ib2FyZGluZy5jb21wb25lbnQuaHRtbCcsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLm9uYm9hcmRpbmddJzogYHRydWVgLFxuICAgICdbY2xhc3Mub25ib2FyZGluZy1ydGxdJzogYGRpciA9PT0gJ3J0bCdgLFxuICAgICdbYXR0ci5kYXRhLW9uYm9hcmRpbmctYWN0aXZlXSc6IGBhY3RpdmVgXG4gIH0sXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBPbmJvYXJkaW5nQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgcHJpdmF0ZSB0aW1lOiBOelNhZmVBbnk7XG4gIHByaXZhdGUgcHJldlNlbGVjdG9yRWw6IEhUTUxFbGVtZW50O1xuICBjb25maWc6IE9uYm9hcmRpbmdDb25maWc7XG4gIGl0ZW06IE9uYm9hcmRpbmdJdGVtO1xuICBhY3RpdmUgPSAwO1xuICBtYXggPSAwO1xuICByZWFkb25seSBvcCA9IG5ldyBFdmVudEVtaXR0ZXI8T25ib2FyZGluZ09wVHlwZT4oKTtcbiAgcnVubmluZyA9IGZhbHNlO1xuICBkaXI6IERpcmVjdGlvbiA9ICdsdHInO1xuICBAVmlld0NoaWxkKCdwb3BvdmVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIHByaXZhdGUgcG9wb3ZlciE6IE56UG9wb3ZlckRpcmVjdGl2ZTtcblxuICBnZXQgZmlyc3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlID09PSAwO1xuICB9XG5cbiAgZ2V0IGxhc3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlID09PSB0aGlzLm1heCAtIDE7XG4gIH1cblxuICBwcml2YXRlIF9nZXREb2MoKTogRG9jdW1lbnQge1xuICAgIHJldHVybiB0aGlzLmRvYztcbiAgfVxuXG4gIHByaXZhdGUgX2dldFdpbigpOiBXaW5kb3cge1xuICAgIHJldHVybiB0aGlzLl9nZXREb2MoKS5kZWZhdWx0VmlldyB8fCB3aW5kb3c7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvYzogTnpTYWZlQW55LFxuICAgIHByaXZhdGUgcGxhdGZvcm06IFBsYXRmb3JtLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgcHJpdmF0ZSBnZXRMaWdodERhdGEoKTogT25ib2FyZGluZ0xpZ2h0RGF0YSB8IG51bGwge1xuICAgIGNvbnN0IGRvYyA9IHRoaXMuX2dldERvYygpO1xuICAgIGNvbnN0IHdpbiA9IHRoaXMuX2dldFdpbigpO1xuICAgIGNvbnN0IGVsID0gZG9jLnF1ZXJ5U2VsZWN0b3IodGhpcy5pdGVtLnNlbGVjdG9ycykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgaWYgKCFlbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3Qgc2Nyb2xsVG9wID0gd2luLnBhZ2VZT2Zmc2V0IHx8IGRvYy5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wIHx8IGRvYy5ib2R5LnNjcm9sbFRvcDtcbiAgICBjb25zdCBzY3JvbGxMZWZ0ID0gd2luLnBhZ2VYT2Zmc2V0IHx8IGRvYy5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdCB8fCBkb2MuYm9keS5zY3JvbGxMZWZ0O1xuICAgIGNvbnN0IHJlY3QgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCB0b3AgPSByZWN0LnRvcCArIHNjcm9sbFRvcDtcbiAgICBjb25zdCBsZWZ0ID0gcmVjdC5sZWZ0ICsgc2Nyb2xsTGVmdDtcbiAgICBjb25zdCBwYWRkaW5nID0gODtcbiAgICBjb25zdCBuZWVkUGFkZGluZyA9IHRvcCA+IHBhZGRpbmcgJiYgbGVmdCA+IHBhZGRpbmc7XG4gICAgY29uc3Qgb2Zmc2V0UG9zID0gbmVlZFBhZGRpbmcgPyBwYWRkaW5nIDogMDtcbiAgICBjb25zdCBvZmZzZXRXSCA9IG5lZWRQYWRkaW5nID8gcGFkZGluZyAqIDIgOiAwO1xuICAgIHJldHVybiB7XG4gICAgICB0b3A6IHRvcCAtIG9mZnNldFBvcyxcbiAgICAgIGxlZnQ6IGxlZnQgLSBvZmZzZXRQb3MsXG4gICAgICB3aWR0aDogcmVjdC53aWR0aCArIG9mZnNldFdILFxuICAgICAgaGVpZ2h0OiByZWN0LmhlaWdodCArIG9mZnNldFdILFxuICAgICAgZWwsXG4gICAgICBjbGllbnRXaWR0aDogZG9jLmJvZHkuY2xpZW50V2lkdGgsXG4gICAgICBjbGllbnRIZWlnaHQ6IGRvYy5ib2R5LmNsaWVudEhlaWdodFxuICAgIH07XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgLy8gV2FpdGluZyBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9pc3N1ZXMvNjQ5MVxuICAgIHRoaXMucG9wb3Zlci5jb21wb25lbnQhLm9uQ2xpY2tPdXRzaWRlID0gKCkgPT4ge307XG4gIH1cblxuICBwcml2YXRlIHNjcm9sbChwb3M6IE9uYm9hcmRpbmdMaWdodERhdGEpOiB2b2lkIHtcbiAgICB0aGlzLnByZXZTZWxlY3RvckVsID0gcG9zLmVsO1xuICAgIGNvbnN0IHNjcm9sbFkgPSBwb3MudG9wIC0gKHBvcy5jbGllbnRIZWlnaHQgLSBwb3MuaGVpZ2h0KSAvIDI7XG4gICAgdGhpcy5fZ2V0V2luKCkuc2Nyb2xsVG8oeyB0b3A6IHNjcm9sbFkgfSk7XG4gICAgdGhpcy51cGRhdGVQcmV2RWxTdGF0dXModHJ1ZSk7XG4gIH1cblxuICB1cGRhdGVSdW5uaW5nKHN0YXR1czogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMucnVubmluZyA9IHN0YXR1cztcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHRoaXMudXBkYXRlUG9zaXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVBvc2l0aW9uKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wbGF0Zm9ybS5pc0Jyb3dzZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwb3MgPSB0aGlzLmdldExpZ2h0RGF0YSgpO1xuICAgIGlmIChwb3MgPT0gbnVsbCkge1xuICAgICAgY29uc29sZS53YXJuKGBEaWQgbm90IG1hdGNoZXMgc2VsZWN0b3JzIFske3RoaXMuaXRlbS5zZWxlY3RvcnN9XWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGxpZ2h0U3R5bGUgPSAodGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5vbmJvYXJkaW5nX19saWdodCcpIGFzIEhUTUxFbGVtZW50KS5zdHlsZTtcbiAgICBsaWdodFN0eWxlLnRvcCA9IGAke3Bvcy50b3B9cHhgO1xuICAgIGxpZ2h0U3R5bGUubGVmdCA9IGAke3Bvcy5sZWZ0fXB4YDtcbiAgICBsaWdodFN0eWxlLndpZHRoID0gYCR7cG9zLndpZHRofXB4YDtcbiAgICBsaWdodFN0eWxlLmhlaWdodCA9IGAke3Bvcy5oZWlnaHR9cHhgO1xuXG4gICAgdGhpcy51cGRhdGVQcmV2RWxTdGF0dXMoZmFsc2UpO1xuICAgIHRoaXMuc2Nyb2xsKHBvcyk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVByZXZFbFN0YXR1cyhzdGF0dXM6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcmV2U2VsZWN0b3JFbCkge1xuICAgICAgdGhpcy5wcmV2U2VsZWN0b3JFbC5jbGFzc0xpc3Rbc3RhdHVzID8gJ2FkZCcgOiAncmVtb3ZlJ10oJ29uYm9hcmRpbmdfX2xpZ2h0LWVsJyk7XG4gICAgfVxuICB9XG5cbiAgdG8odHlwZTogT25ib2FyZGluZ09wVHlwZSk6IHZvaWQge1xuICAgIHRoaXMub3AuZW1pdCh0eXBlKTtcbiAgfVxuXG4gIGhhbmRsZU1hc2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29uZmlnLm1hc2tDbG9zYWJsZSA9PT0gdHJ1ZSkge1xuICAgICAgdGhpcy5wb3BvdmVyLmNvbXBvbmVudCEuaGlkZSgpO1xuICAgICAgdGhpcy50bygnZG9uZScpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWUpO1xuICAgIHRoaXMudXBkYXRlUHJldkVsU3RhdHVzKGZhbHNlKTtcbiAgfVxufVxuIl19
@@ -1,20 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { DelonLocaleModule } from '@delon/theme';
4
- import { NzButtonModule } from 'ng-zorro-antd/button';
5
- import { NzNoAnimationModule } from 'ng-zorro-antd/core/no-animation';
6
- import { NzOutletModule } from 'ng-zorro-antd/core/outlet';
7
- import { NzPopoverModule } from 'ng-zorro-antd/popover';
8
- import { OnboardingComponent } from './onboarding.component';
9
- const COMPONENTS = [OnboardingComponent];
10
- export class OnboardingModule {
11
- }
12
- OnboardingModule.decorators = [
13
- { type: NgModule, args: [{
14
- imports: [CommonModule, DelonLocaleModule, NzPopoverModule, NzOutletModule, NzButtonModule, NzNoAnimationModule],
15
- declarations: COMPONENTS,
16
- entryComponents: COMPONENTS,
17
- exports: COMPONENTS
18
- },] }
19
- ];
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25ib2FyZGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hYmMvb25ib2FyZGluZy9vbmJvYXJkaW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFN0QsTUFBTSxVQUFVLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBUXpDLE1BQU0sT0FBTyxnQkFBZ0I7OztZQU41QixRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixDQUFDO2dCQUNoSCxZQUFZLEVBQUUsVUFBVTtnQkFDeEIsZUFBZSxFQUFFLFVBQVU7Z0JBQzNCLE9BQU8sRUFBRSxVQUFVO2FBQ3BCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IERlbG9uTG9jYWxlTW9kdWxlIH0gZnJvbSAnQGRlbG9uL3RoZW1lJztcbmltcG9ydCB7IE56QnV0dG9uTW9kdWxlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9idXR0b24nO1xuaW1wb3J0IHsgTnpOb0FuaW1hdGlvbk1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS9uby1hbmltYXRpb24nO1xuaW1wb3J0IHsgTnpPdXRsZXRNb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvb3V0bGV0JztcbmltcG9ydCB7IE56UG9wb3Zlck1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvcG9wb3Zlcic7XG5cbmltcG9ydCB7IE9uYm9hcmRpbmdDb21wb25lbnQgfSBmcm9tICcuL29uYm9hcmRpbmcuY29tcG9uZW50JztcblxuY29uc3QgQ09NUE9ORU5UUyA9IFtPbmJvYXJkaW5nQ29tcG9uZW50XTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRGVsb25Mb2NhbGVNb2R1bGUsIE56UG9wb3Zlck1vZHVsZSwgTnpPdXRsZXRNb2R1bGUsIE56QnV0dG9uTW9kdWxlLCBOek5vQW5pbWF0aW9uTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBDT01QT05FTlRTLFxuICBlbnRyeUNvbXBvbmVudHM6IENPTVBPTkVOVFMsXG4gIGV4cG9ydHM6IENPTVBPTkVOVFNcbn0pXG5leHBvcnQgY2xhc3MgT25ib2FyZGluZ01vZHVsZSB7fVxuIl19
@@ -1,178 +0,0 @@
1
- import { Directionality } from '@angular/cdk/bidi';
2
- import { DOCUMENT } from '@angular/common';
3
- import { ApplicationRef, ComponentFactoryResolver, Inject, Injectable, Injector, Optional } from '@angular/core';
4
- import { Router } from '@angular/router';
5
- import { of, pipe } from 'rxjs';
6
- import { delay, switchMap } from 'rxjs/operators';
7
- import { DelonLocaleService } from '@delon/theme';
8
- import { AlainConfigService } from '@delon/util/config';
9
- import { OnboardingComponent } from './onboarding.component';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "@delon/theme";
12
- import * as i2 from "@angular/router";
13
- import * as i3 from "@angular/common";
14
- import * as i4 from "@delon/util/config";
15
- import * as i5 from "@angular/cdk/bidi";
16
- export class OnboardingService {
17
- constructor(i18n, appRef, resolver, router, injector, doc, configSrv, directionality) {
18
- this.i18n = i18n;
19
- this.appRef = appRef;
20
- this.resolver = resolver;
21
- this.router = router;
22
- this.injector = injector;
23
- this.doc = doc;
24
- this.configSrv = configSrv;
25
- this.directionality = directionality;
26
- this.active = 0;
27
- this.running$ = null;
28
- this._running = false;
29
- this.type = null;
30
- }
31
- _getDoc() {
32
- return this.doc;
33
- }
34
- /**
35
- * Get whether it is booting
36
- *
37
- * 获取是否正在引导中
38
- */
39
- get running() {
40
- return this._running;
41
- }
42
- attach() {
43
- const compRef = (this.compRef = this.resolver.resolveComponentFactory(OnboardingComponent).create(this.injector));
44
- this.appRef.attachView(compRef.hostView);
45
- const compNode = compRef.hostView.rootNodes[0];
46
- const doc = this._getDoc();
47
- const cdk = doc.querySelector('.cdk-overlay-container');
48
- if (cdk) {
49
- doc.body.insertBefore(compNode, cdk);
50
- }
51
- else {
52
- doc.body.appendChild(compNode);
53
- }
54
- this.op$ = this.compRef.instance.op.subscribe((type) => {
55
- switch (type) {
56
- case 'next':
57
- this.next();
58
- break;
59
- case 'prev':
60
- this.prev();
61
- break;
62
- default:
63
- this.done();
64
- break;
65
- }
66
- });
67
- }
68
- cancelRunning() {
69
- if (this.running$) {
70
- this.running$.unsubscribe();
71
- this.running$ = null;
72
- }
73
- return this;
74
- }
75
- updateRunning(status) {
76
- this._running = status;
77
- this.compRef.instance.updateRunning(status);
78
- return this;
79
- }
80
- destroy() {
81
- this.cancelRunning();
82
- if (this.compRef) {
83
- this.appRef.detachView(this.compRef.hostView);
84
- this.compRef.destroy();
85
- this.op$.unsubscribe();
86
- }
87
- }
88
- showItem(isStart = false) {
89
- const items = this.config.items;
90
- const item = Object.assign(Object.assign({ position: 'bottomLeft', before: of(true), after: of(true) }, this.i18n.getData('onboarding')), items[this.active]);
91
- const dir = this.configSrv.get('onboarding').direction || this.directionality.value;
92
- Object.assign(this.compRef.instance, { item, config: this.config, active: this.active, max: items.length, dir });
93
- const pipes = [
94
- switchMap(() => (item.url ? this.router.navigateByUrl(item.url) : of(true))),
95
- switchMap(() => {
96
- const obs = this.type === 'prev' ? item.after : item.before;
97
- return typeof obs === 'number' ? of(true).pipe(delay(obs)) : obs;
98
- })
99
- ];
100
- if (!isStart) {
101
- pipes.push(delay(1));
102
- }
103
- this.updateRunning(true);
104
- this.running$ = of(true)
105
- .pipe(pipe.apply(this, pipes))
106
- .subscribe(() => this.cancelRunning().updateRunning(false), () => this.done());
107
- }
108
- /**
109
- * Start a new user guidance
110
- *
111
- * 开启新的用户引导流程
112
- */
113
- start(config) {
114
- if (this.running) {
115
- return;
116
- }
117
- this.destroy();
118
- this.config = Object.assign({ items: [], mask: true, maskClosable: true, showTotal: false }, config);
119
- this.active = 0;
120
- this.type = null;
121
- this.attach();
122
- this.showItem(true);
123
- }
124
- /**
125
- * Next
126
- *
127
- * 下一步
128
- */
129
- next() {
130
- if (this._running || this.active + 1 >= this.config.items.length) {
131
- this.done();
132
- return;
133
- }
134
- this.type = 'next';
135
- ++this.active;
136
- this.showItem();
137
- }
138
- /**
139
- * Prev
140
- *
141
- * 上一步
142
- */
143
- prev() {
144
- if (this._running || this.active - 1 < 0) {
145
- return;
146
- }
147
- this.type = 'prev';
148
- --this.active;
149
- this.showItem();
150
- }
151
- /**
152
- * Done
153
- *
154
- * 完成
155
- */
156
- done() {
157
- this.type = 'done';
158
- this.destroy();
159
- }
160
- ngOnDestroy() {
161
- this.destroy();
162
- }
163
- }
164
- OnboardingService.ɵprov = i0.ɵɵdefineInjectable({ factory: function OnboardingService_Factory() { return new OnboardingService(i0.ɵɵinject(i1.DelonLocaleService), i0.ɵɵinject(i0.ApplicationRef), i0.ɵɵinject(i0.ComponentFactoryResolver), i0.ɵɵinject(i2.Router), i0.ɵɵinject(i0.INJECTOR), i0.ɵɵinject(i3.DOCUMENT), i0.ɵɵinject(i4.AlainConfigService), i0.ɵɵinject(i5.Directionality, 8)); }, token: OnboardingService, providedIn: "root" });
165
- OnboardingService.decorators = [
166
- { type: Injectable, args: [{ providedIn: 'root' },] }
167
- ];
168
- OnboardingService.ctorParameters = () => [
169
- { type: DelonLocaleService },
170
- { type: ApplicationRef },
171
- { type: ComponentFactoryResolver },
172
- { type: Router },
173
- { type: Injector },
174
- { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
175
- { type: AlainConfigService },
176
- { type: Directionality, decorators: [{ type: Optional }] }
177
- ];
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25ib2FyZGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWJjL29uYm9hcmRpbmcvb25ib2FyZGluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNMLGNBQWMsRUFDZCx3QkFBd0IsRUFHeEIsTUFBTSxFQUNOLFVBQVUsRUFDVixRQUFRLEVBRVIsUUFBUSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7QUFJN0QsTUFBTSxPQUFPLGlCQUFpQjtJQXNCNUIsWUFDVSxJQUF3QixFQUN4QixNQUFzQixFQUN0QixRQUFrQyxFQUNsQyxNQUFjLEVBQ2QsUUFBa0IsRUFDQSxHQUFjLEVBQ2hDLFNBQTZCLEVBQ2pCLGNBQThCO1FBUDFDLFNBQUksR0FBSixJQUFJLENBQW9CO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQTBCO1FBQ2xDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ0EsUUFBRyxHQUFILEdBQUcsQ0FBVztRQUNoQyxjQUFTLEdBQVQsU0FBUyxDQUFvQjtRQUNqQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUExQjVDLFdBQU0sR0FBRyxDQUFDLENBQUM7UUFDWCxhQUFRLEdBQXdCLElBQUksQ0FBQztRQUNyQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLFNBQUksR0FBNEIsSUFBSSxDQUFDO0lBd0IxQyxDQUFDO0lBdEJJLE9BQU87UUFDYixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQWFPLE1BQU07UUFDWixNQUFNLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNsSCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekMsTUFBTSxRQUFRLEdBQUksT0FBTyxDQUFDLFFBQXVDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9FLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMzQixNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUFnQixDQUFDO1FBQ3ZFLElBQUksR0FBRyxFQUFFO1lBQ1AsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ3RDO2FBQU07WUFDTCxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNoQztRQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQXNCLEVBQUUsRUFBRTtZQUN2RSxRQUFRLElBQUksRUFBRTtnQkFDWixLQUFLLE1BQU07b0JBQ1QsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO29CQUNaLE1BQU07Z0JBQ1IsS0FBSyxNQUFNO29CQUNULElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDWixNQUFNO2dCQUNSO29CQUNFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDWixNQUFNO2FBQ1Q7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1NBQ3RCO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU8sYUFBYSxDQUFDLE1BQWU7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7UUFDdkIsSUFBSSxDQUFDLE9BQVEsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLE9BQU87UUFDYixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQUVPLFFBQVEsQ0FBQyxVQUFtQixLQUFLO1FBQ3ZDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBTSxDQUFDO1FBQ2pDLE1BQU0sSUFBSSxHQUFHLDhCQUNYLFFBQVEsRUFBRSxZQUFZLEVBQ3RCLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQ2hCLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQy9CLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQ0osQ0FBQztRQUNwQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUUsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7UUFDckYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ2pILE1BQU0sS0FBSyxHQUFHO1lBQ1osU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUM1RSxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNiLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTyxDQUFDO2dCQUM5RCxPQUFPLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ25FLENBQUMsQ0FBQztTQUNILENBQUM7UUFDRixJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN0QjtRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO2FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQzthQUM3QixTQUFTLENBQ1IsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFDL0MsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUNsQixDQUFDO0lBQ04sQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsTUFBd0I7UUFDNUIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxNQUFNLG1CQUNULEtBQUssRUFBRSxFQUFFLEVBQ1QsSUFBSSxFQUFFLElBQUksRUFDVixZQUFZLEVBQUUsSUFBSSxFQUNsQixTQUFTLEVBQUUsS0FBSyxJQUNiLE1BQU0sQ0FDVixDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDaEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUk7UUFDRixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFNLENBQUMsTUFBTSxFQUFFO1lBQ2pFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNaLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDO1FBQ25CLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNkLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUk7UUFDRixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3hDLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDO1FBQ25CLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNkLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUk7UUFDRixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztRQUNuQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQzs7OztZQW5MRixVQUFVLFNBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzs7WUFQekIsa0JBQWtCO1lBZHpCLGNBQWM7WUFDZCx3QkFBd0I7WUFTakIsTUFBTTtZQUpiLFFBQVE7NENBNENMLE1BQU0sU0FBQyxRQUFRO1lBbkNYLGtCQUFrQjtZQWxCbEIsY0FBYyx1QkF1RGxCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFwcGxpY2F0aW9uUmVmLFxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIENvbXBvbmVudFJlZixcbiAgRW1iZWRkZWRWaWV3UmVmLFxuICBJbmplY3QsXG4gIEluamVjdGFibGUsXG4gIEluamVjdG9yLFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IG9mLCBwaXBlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IERlbG9uTG9jYWxlU2VydmljZSB9IGZyb20gJ0BkZWxvbi90aGVtZSc7XG5pbXBvcnQgeyBBbGFpbkNvbmZpZ1NlcnZpY2UgfSBmcm9tICdAZGVsb24vdXRpbC9jb25maWcnO1xuaW1wb3J0IHR5cGUgeyBOelNhZmVBbnkgfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdHlwZXMnO1xuXG5pbXBvcnQgeyBPbmJvYXJkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9vbmJvYXJkaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPbmJvYXJkaW5nQ29uZmlnLCBPbmJvYXJkaW5nSXRlbSwgT25ib2FyZGluZ09wVHlwZSB9IGZyb20gJy4vb25ib2FyZGluZy50eXBlcyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgT25ib2FyZGluZ1NlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGNvbXBSZWY6IENvbXBvbmVudFJlZjxPbmJvYXJkaW5nQ29tcG9uZW50PjtcbiAgcHJpdmF0ZSBvcCQ6IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBjb25maWc6IE9uYm9hcmRpbmdDb25maWc7XG4gIHByaXZhdGUgYWN0aXZlID0gMDtcbiAgcHJpdmF0ZSBydW5uaW5nJDogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX3J1bm5pbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSB0eXBlOiBPbmJvYXJkaW5nT3BUeXBlIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfZ2V0RG9jKCk6IERvY3VtZW50IHtcbiAgICByZXR1cm4gdGhpcy5kb2M7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHdoZXRoZXIgaXQgaXMgYm9vdGluZ1xuICAgKlxuICAgKiDojrflj5bmmK/lkKbmraPlnKjlvJXlr7zkuK1cbiAgICovXG4gIGdldCBydW5uaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9ydW5uaW5nO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpMThuOiBEZWxvbkxvY2FsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgIHByaXZhdGUgcmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jOiBOelNhZmVBbnksXG4gICAgcHJpdmF0ZSBjb25maWdTcnY6IEFsYWluQ29uZmlnU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGRpcmVjdGlvbmFsaXR5OiBEaXJlY3Rpb25hbGl0eVxuICApIHt9XG5cbiAgcHJpdmF0ZSBhdHRhY2goKTogdm9pZCB7XG4gICAgY29uc3QgY29tcFJlZiA9ICh0aGlzLmNvbXBSZWYgPSB0aGlzLnJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KE9uYm9hcmRpbmdDb21wb25lbnQpLmNyZWF0ZSh0aGlzLmluamVjdG9yKSk7XG4gICAgdGhpcy5hcHBSZWYuYXR0YWNoVmlldyhjb21wUmVmLmhvc3RWaWV3KTtcbiAgICBjb25zdCBjb21wTm9kZSA9IChjb21wUmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxOelNhZmVBbnk+KS5yb290Tm9kZXNbMF07XG4gICAgY29uc3QgZG9jID0gdGhpcy5fZ2V0RG9jKCk7XG4gICAgY29uc3QgY2RrID0gZG9jLnF1ZXJ5U2VsZWN0b3IoJy5jZGstb3ZlcmxheS1jb250YWluZXInKSBhcyBIVE1MRWxlbWVudDtcbiAgICBpZiAoY2RrKSB7XG4gICAgICBkb2MuYm9keS5pbnNlcnRCZWZvcmUoY29tcE5vZGUsIGNkayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRvYy5ib2R5LmFwcGVuZENoaWxkKGNvbXBOb2RlKTtcbiAgICB9XG4gICAgdGhpcy5vcCQgPSB0aGlzLmNvbXBSZWYuaW5zdGFuY2Uub3Auc3Vic2NyaWJlKCh0eXBlOiBPbmJvYXJkaW5nT3BUeXBlKSA9PiB7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSAnbmV4dCc6XG4gICAgICAgICAgdGhpcy5uZXh0KCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3ByZXYnOlxuICAgICAgICAgIHRoaXMucHJldigpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRoaXMuZG9uZSgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjYW5jZWxSdW5uaW5nKCk6IHRoaXMge1xuICAgIGlmICh0aGlzLnJ1bm5pbmckKSB7XG4gICAgICB0aGlzLnJ1bm5pbmckLnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLnJ1bm5pbmckID0gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVJ1bm5pbmcoc3RhdHVzOiBib29sZWFuKTogdGhpcyB7XG4gICAgdGhpcy5fcnVubmluZyA9IHN0YXR1cztcbiAgICB0aGlzLmNvbXBSZWYhLmluc3RhbmNlLnVwZGF0ZVJ1bm5pbmcoc3RhdHVzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbmNlbFJ1bm5pbmcoKTtcbiAgICBpZiAodGhpcy5jb21wUmVmKSB7XG4gICAgICB0aGlzLmFwcFJlZi5kZXRhY2hWaWV3KHRoaXMuY29tcFJlZi5ob3N0Vmlldyk7XG4gICAgICB0aGlzLmNvbXBSZWYuZGVzdHJveSgpO1xuICAgICAgdGhpcy5vcCQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNob3dJdGVtKGlzU3RhcnQ6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5jb25maWcuaXRlbXMhO1xuICAgIGNvbnN0IGl0ZW0gPSB7XG4gICAgICBwb3NpdGlvbjogJ2JvdHRvbUxlZnQnLFxuICAgICAgYmVmb3JlOiBvZih0cnVlKSxcbiAgICAgIGFmdGVyOiBvZih0cnVlKSxcbiAgICAgIC4uLnRoaXMuaTE4bi5nZXREYXRhKCdvbmJvYXJkaW5nJyksXG4gICAgICAuLi5pdGVtc1t0aGlzLmFjdGl2ZV1cbiAgICB9IGFzIE9uYm9hcmRpbmdJdGVtO1xuICAgIGNvbnN0IGRpciA9IHRoaXMuY29uZmlnU3J2LmdldCgnb25ib2FyZGluZycpIS5kaXJlY3Rpb24gfHwgdGhpcy5kaXJlY3Rpb25hbGl0eS52YWx1ZTtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMuY29tcFJlZi5pbnN0YW5jZSwgeyBpdGVtLCBjb25maWc6IHRoaXMuY29uZmlnLCBhY3RpdmU6IHRoaXMuYWN0aXZlLCBtYXg6IGl0ZW1zLmxlbmd0aCwgZGlyIH0pO1xuICAgIGNvbnN0IHBpcGVzID0gW1xuICAgICAgc3dpdGNoTWFwKCgpID0+IChpdGVtLnVybCA/IHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoaXRlbS51cmwpIDogb2YodHJ1ZSkpKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IG9icyA9IHRoaXMudHlwZSA9PT0gJ3ByZXYnID8gaXRlbS5hZnRlciEgOiBpdGVtLmJlZm9yZSE7XG4gICAgICAgIHJldHVybiB0eXBlb2Ygb2JzID09PSAnbnVtYmVyJyA/IG9mKHRydWUpLnBpcGUoZGVsYXkob2JzKSkgOiBvYnM7XG4gICAgICB9KVxuICAgIF07XG4gICAgaWYgKCFpc1N0YXJ0KSB7XG4gICAgICBwaXBlcy5wdXNoKGRlbGF5KDEpKTtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZVJ1bm5pbmcodHJ1ZSk7XG5cbiAgICB0aGlzLnJ1bm5pbmckID0gb2YodHJ1ZSlcbiAgICAgIC5waXBlKHBpcGUuYXBwbHkodGhpcywgcGlwZXMpKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKCkgPT4gdGhpcy5jYW5jZWxSdW5uaW5nKCkudXBkYXRlUnVubmluZyhmYWxzZSksXG4gICAgICAgICgpID0+IHRoaXMuZG9uZSgpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0IGEgbmV3IHVzZXIgZ3VpZGFuY2VcbiAgICpcbiAgICog5byA5ZCv5paw55qE55So5oi35byV5a+85rWB56iLXG4gICAqL1xuICBzdGFydChjb25maWc6IE9uYm9hcmRpbmdDb25maWcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ydW5uaW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZGVzdHJveSgpO1xuICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgaXRlbXM6IFtdLFxuICAgICAgbWFzazogdHJ1ZSxcbiAgICAgIG1hc2tDbG9zYWJsZTogdHJ1ZSxcbiAgICAgIHNob3dUb3RhbDogZmFsc2UsXG4gICAgICAuLi5jb25maWdcbiAgICB9O1xuICAgIHRoaXMuYWN0aXZlID0gMDtcbiAgICB0aGlzLnR5cGUgPSBudWxsO1xuICAgIHRoaXMuYXR0YWNoKCk7XG4gICAgdGhpcy5zaG93SXRlbSh0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOZXh0XG4gICAqXG4gICAqIOS4i+S4gOatpVxuICAgKi9cbiAgbmV4dCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fcnVubmluZyB8fCB0aGlzLmFjdGl2ZSArIDEgPj0gdGhpcy5jb25maWcuaXRlbXMhLmxlbmd0aCkge1xuICAgICAgdGhpcy5kb25lKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudHlwZSA9ICduZXh0JztcbiAgICArK3RoaXMuYWN0aXZlO1xuICAgIHRoaXMuc2hvd0l0ZW0oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmV2XG4gICAqXG4gICAqIOS4iuS4gOatpVxuICAgKi9cbiAgcHJldigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fcnVubmluZyB8fCB0aGlzLmFjdGl2ZSAtIDEgPCAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudHlwZSA9ICdwcmV2JztcbiAgICAtLXRoaXMuYWN0aXZlO1xuICAgIHRoaXMuc2hvd0l0ZW0oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEb25lXG4gICAqXG4gICAqIOWujOaIkFxuICAgKi9cbiAgZG9uZSgpOiB2b2lkIHtcbiAgICB0aGlzLnR5cGUgPSAnZG9uZSc7XG4gICAgdGhpcy5kZXN0cm95KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3koKTtcbiAgfVxufVxuIl19
@@ -1,216 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Directionality } from '@angular/cdk/bidi';
3
- import { Platform } from '@angular/cdk/platform';
4
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, Optional, Renderer2, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';
5
- import { NavigationEnd, Router } from '@angular/router';
6
- import { merge, Subject } from 'rxjs';
7
- import { filter, takeUntil } from 'rxjs/operators';
8
- import { ReuseTabService } from '@delon/abc/reuse-tab';
9
- import { ALAIN_I18N_TOKEN, MenuService, SettingsService, TitleService } from '@delon/theme';
10
- import { isEmpty } from '@delon/util/browser';
11
- import { AlainConfigService } from '@delon/util/config';
12
- import { InputBoolean, InputNumber } from '@delon/util/decorator';
13
- export class PageHeaderComponent {
14
- // #endregion
15
- constructor(settings, renderer, router, menuSrv, i18nSrv, titleSrv, reuseSrv, cdr, configSrv, platform, directionality) {
16
- this.renderer = renderer;
17
- this.router = router;
18
- this.menuSrv = menuSrv;
19
- this.i18nSrv = i18nSrv;
20
- this.titleSrv = titleSrv;
21
- this.reuseSrv = reuseSrv;
22
- this.cdr = cdr;
23
- this.directionality = directionality;
24
- this.destroy$ = new Subject();
25
- this.inited = false;
26
- this.isBrowser = true;
27
- this.dir = 'ltr';
28
- this._titleVal = '';
29
- this.paths = [];
30
- this.loading = false;
31
- this.wide = false;
32
- this.breadcrumb = null;
33
- this.logo = null;
34
- this.action = null;
35
- this.content = null;
36
- this.extra = null;
37
- this.tab = null;
38
- this.isBrowser = platform.isBrowser;
39
- configSrv.attach(this, 'pageHeader', {
40
- home: '首页',
41
- homeLink: '/',
42
- autoBreadcrumb: true,
43
- recursiveBreadcrumb: false,
44
- autoTitle: true,
45
- syncTitle: true,
46
- fixed: false,
47
- fixedOffsetTop: 64
48
- });
49
- settings.notify
50
- .pipe(takeUntil(this.destroy$), filter(w => this.affix && w.type === 'layout' && w.name === 'collapsed'))
51
- .subscribe(() => this.affix.updatePosition({}));
52
- merge(menuSrv.change, router.events.pipe(filter(ev => ev instanceof NavigationEnd)), i18nSrv.change)
53
- .pipe(filter(() => this.inited), takeUntil(this.destroy$))
54
- .subscribe(() => this.refresh());
55
- }
56
- get menus() {
57
- return this.menuSrv.getPathByUrl(this.router.url, this.recursiveBreadcrumb);
58
- }
59
- set title(value) {
60
- if (value instanceof TemplateRef) {
61
- this._title = null;
62
- this._titleTpl = value;
63
- this._titleVal = '';
64
- }
65
- else {
66
- this._title = value;
67
- this._titleVal = this._title;
68
- }
69
- }
70
- refresh() {
71
- this.setTitle().genBreadcrumb();
72
- this.cdr.detectChanges();
73
- }
74
- genBreadcrumb() {
75
- if (this.breadcrumb || !this.autoBreadcrumb || this.menus.length <= 0) {
76
- this.paths = [];
77
- return;
78
- }
79
- const paths = [];
80
- this.menus.forEach(item => {
81
- if (typeof item.hideInBreadcrumb !== 'undefined' && item.hideInBreadcrumb)
82
- return;
83
- let title = item.text;
84
- if (item.i18n && this.i18nSrv)
85
- title = this.i18nSrv.fanyi(item.i18n);
86
- paths.push({ title, link: (item.link && [item.link]) });
87
- });
88
- // add home
89
- if (this.home) {
90
- paths.splice(0, 0, {
91
- title: (this.homeI18n && this.i18nSrv && this.i18nSrv.fanyi(this.homeI18n)) || this.home,
92
- link: [this.homeLink]
93
- });
94
- }
95
- this.paths = paths;
96
- }
97
- setTitle() {
98
- if (this._title == null && this._titleTpl == null && this.autoTitle && this.menus.length > 0) {
99
- const item = this.menus[this.menus.length - 1];
100
- let title = item.text;
101
- if (item.i18n && this.i18nSrv) {
102
- title = this.i18nSrv.fanyi(item.i18n);
103
- }
104
- this._titleVal = title;
105
- }
106
- if (this._titleVal && this.syncTitle) {
107
- if (this.titleSrv) {
108
- this.titleSrv.setTitle(this._titleVal);
109
- }
110
- if (!this.inited && this.reuseSrv) {
111
- this.reuseSrv.title = this._titleVal;
112
- }
113
- }
114
- return this;
115
- }
116
- checkContent() {
117
- if (isEmpty(this.conTpl.nativeElement)) {
118
- this.renderer.setAttribute(this.conTpl.nativeElement, 'hidden', '');
119
- }
120
- else {
121
- this.renderer.removeAttribute(this.conTpl.nativeElement, 'hidden');
122
- }
123
- }
124
- ngOnInit() {
125
- var _a;
126
- this.dir = this.directionality.value;
127
- (_a = this.directionality.change) === null || _a === void 0 ? void 0 : _a.pipe(takeUntil(this.destroy$)).subscribe((direction) => {
128
- this.dir = direction;
129
- this.cdr.detectChanges();
130
- });
131
- this.refresh();
132
- this.inited = true;
133
- }
134
- ngAfterViewInit() {
135
- this.checkContent();
136
- }
137
- ngOnChanges() {
138
- if (this.inited) {
139
- this.refresh();
140
- }
141
- }
142
- ngOnDestroy() {
143
- this.destroy$.next();
144
- this.destroy$.complete();
145
- }
146
- }
147
- PageHeaderComponent.decorators = [
148
- { type: Component, args: [{
149
- selector: 'page-header',
150
- exportAs: 'pageHeader',
151
- template: "<nz-affix #affix *ngIf=\"isBrowser && fixed; else phTpl\" [nzOffsetTop]=\"fixedOffsetTop\">\n <ng-template [ngTemplateOutlet]=\"phTpl\"></ng-template>\n</nz-affix>\n<ng-template #phTpl>\n <div class=\"page-header\" [class.page-header-rtl]=\"dir === 'rtl'\">\n <div [ngClass]=\"{ 'page-header__wide': wide }\">\n <nz-skeleton\n [nzLoading]=\"loading\"\n [nzTitle]=\"false\"\n [nzActive]=\"true\"\n [nzParagraph]=\"{ rows: 3 }\"\n [nzAvatar]=\"{ size: 'large', shape: 'circle' }\"\n class=\"d-block\"\n >\n <ng-container *ngIf=\"!breadcrumb; else breadcrumb!\">\n <nz-breadcrumb *ngIf=\"paths && paths.length > 0\">\n <nz-breadcrumb-item *ngFor=\"let i of paths\">\n <ng-container *ngIf=\"i.link\">\n <a [routerLink]=\"i.link\">{{ i.title }}</a>\n </ng-container>\n <ng-container *ngIf=\"!i.link\">{{ i.title }}</ng-container>\n </nz-breadcrumb-item>\n </nz-breadcrumb>\n </ng-container>\n <div class=\"page-header__detail\">\n <div *ngIf=\"logo\" class=\"page-header__logo\">\n <ng-template [ngTemplateOutlet]=\"logo\"></ng-template>\n </div>\n <div class=\"page-header__main\">\n <div class=\"page-header__row\">\n <h1 *ngIf=\"_titleVal || _titleTpl\" class=\"page-header__title\">\n <ng-container *ngIf=\"_titleVal; else _titleTpl\">{{ _titleVal }}</ng-container>\n </h1>\n <div *ngIf=\"action\" class=\"page-header__action\">\n <ng-template [ngTemplateOutlet]=\"action\"></ng-template>\n </div>\n </div>\n <div class=\"page-header__row\">\n <div class=\"page-header__desc\" (cdkObserveContent)=\"checkContent()\" #conTpl>\n <ng-content></ng-content>\n <ng-template [ngTemplateOutlet]=\"content!\"></ng-template>\n </div>\n <div *ngIf=\"extra\" class=\"page-header__extra\">\n <ng-template [ngTemplateOutlet]=\"extra\"></ng-template>\n </div>\n </div>\n </div>\n </div>\n <ng-template [ngTemplateOutlet]=\"tab!\"></ng-template>\n </nz-skeleton>\n </div>\n </div>\n</ng-template>\n",
152
- preserveWhitespaces: false,
153
- changeDetection: ChangeDetectionStrategy.OnPush,
154
- encapsulation: ViewEncapsulation.None
155
- },] }
156
- ];
157
- PageHeaderComponent.ctorParameters = () => [
158
- { type: SettingsService },
159
- { type: Renderer2 },
160
- { type: Router },
161
- { type: MenuService },
162
- { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [ALAIN_I18N_TOKEN,] }] },
163
- { type: TitleService, decorators: [{ type: Optional }, { type: Inject, args: [TitleService,] }] },
164
- { type: ReuseTabService, decorators: [{ type: Optional }, { type: Inject, args: [ReuseTabService,] }] },
165
- { type: ChangeDetectorRef },
166
- { type: AlainConfigService },
167
- { type: Platform },
168
- { type: Directionality, decorators: [{ type: Optional }] }
169
- ];
170
- PageHeaderComponent.propDecorators = {
171
- conTpl: [{ type: ViewChild, args: ['conTpl', { static: false },] }],
172
- affix: [{ type: ViewChild, args: ['affix', { static: false },] }],
173
- title: [{ type: Input }],
174
- loading: [{ type: Input }],
175
- wide: [{ type: Input }],
176
- home: [{ type: Input }],
177
- homeLink: [{ type: Input }],
178
- homeI18n: [{ type: Input }],
179
- autoBreadcrumb: [{ type: Input }],
180
- autoTitle: [{ type: Input }],
181
- syncTitle: [{ type: Input }],
182
- fixed: [{ type: Input }],
183
- fixedOffsetTop: [{ type: Input }],
184
- breadcrumb: [{ type: Input }],
185
- recursiveBreadcrumb: [{ type: Input }],
186
- logo: [{ type: Input }],
187
- action: [{ type: Input }],
188
- content: [{ type: Input }],
189
- extra: [{ type: Input }],
190
- tab: [{ type: Input }]
191
- };
192
- __decorate([
193
- InputBoolean()
194
- ], PageHeaderComponent.prototype, "loading", void 0);
195
- __decorate([
196
- InputBoolean()
197
- ], PageHeaderComponent.prototype, "wide", void 0);
198
- __decorate([
199
- InputBoolean()
200
- ], PageHeaderComponent.prototype, "autoBreadcrumb", void 0);
201
- __decorate([
202
- InputBoolean()
203
- ], PageHeaderComponent.prototype, "autoTitle", void 0);
204
- __decorate([
205
- InputBoolean()
206
- ], PageHeaderComponent.prototype, "syncTitle", void 0);
207
- __decorate([
208
- InputBoolean()
209
- ], PageHeaderComponent.prototype, "fixed", void 0);
210
- __decorate([
211
- InputNumber()
212
- ], PageHeaderComponent.prototype, "fixedOffsetTop", void 0);
213
- __decorate([
214
- InputBoolean()
215
- ], PageHeaderComponent.prototype, "recursiveBreadcrumb", void 0);
216
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWJjL3BhZ2UtaGVhZGVyL3BhZ2UtaGVhZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFhLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBRVQsTUFBTSxFQUNOLEtBQUssRUFJTCxRQUFRLEVBQ1IsU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFvQixnQkFBZ0IsRUFBUSxXQUFXLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwSCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFnQixZQUFZLEVBQUUsV0FBVyxFQUFlLE1BQU0sdUJBQXVCLENBQUM7QUFpQjdGLE1BQU0sT0FBTyxtQkFBbUI7SUEwRDlCLGFBQWE7SUFFYixZQUNFLFFBQXlCLEVBQ2pCLFFBQW1CLEVBQ25CLE1BQWMsRUFDZCxPQUFvQixFQUNrQixP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REFBb0I7QUFDbkI7SUFBZixZQUFZLEVBQUU7c0RBQW9CO0FBQ25CO0lBQWYsWUFBWSxFQUFFO2tEQUFnQjtBQUNoQjtJQUFkLFdBQVcsRUFBRTsyREFBd0I7QUFFdEI7SUFBZixZQUFZLEVBQUU7Z0VBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aW9uLCBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BsYXRmb3JtJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgUmVuZGVyZXIyLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBtZXJnZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFJldXNlVGFiU2VydmljZSB9IGZyb20gJ0BkZWxvbi9hYmMvcmV1c2UtdGFiJztcbmltcG9ydCB7IEFsYWluSTE4TlNlcnZpY2UsIEFMQUlOX0kxOE5fVE9LRU4sIE1lbnUsIE1lbnVTZXJ2aWNlLCBTZXR0aW5nc1NlcnZpY2UsIFRpdGxlU2VydmljZSB9IGZyb20gJ0BkZWxvbi90aGVtZSc7XG5pbXBvcnQgeyBpc0VtcHR5IH0gZnJvbSAnQGRlbG9uL3V0aWwvYnJvd3Nlcic7XG5pbXBvcnQgeyBBbGFpbkNvbmZpZ1NlcnZpY2UgfSBmcm9tICdAZGVsb24vdXRpbC9jb25maWcnO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBJbnB1dEJvb2xlYW4sIElucHV0TnVtYmVyLCBOdW1iZXJJbnB1dCB9IGZyb20gJ0BkZWxvbi91dGlsL2RlY29yYXRvcic7XG5pbXBvcnQgeyBOekFmZml4Q29tcG9uZW50IH0gZnJvbSAnbmctem9ycm8tYW50ZC9hZmZpeCc7XG5pbXBvcnQgdHlwZSB7IE56U2FmZUFueSB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS90eXBlcyc7XG5cbmludGVyZmFjZSBQYWdlSGVhZGVyUGF0aCB7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBsaW5rPzogc3RyaW5nW107XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BhZ2UtaGVhZGVyJyxcbiAgZXhwb3J0QXM6ICdwYWdlSGVhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2UtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2xvYWRpbmc6IEJvb2xlYW5JbnB1dDtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3dpZGU6IEJvb2xlYW5JbnB1dDtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2F1dG9CcmVhZGNydW1iOiBCb29sZWFuSW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9hdXRvVGl0bGU6IEJvb2xlYW5JbnB1dDtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3N5bmNUaXRsZTogQm9vbGVhbklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZml4ZWQ6IEJvb2xlYW5JbnB1dDtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2ZpeGVkT2Zmc2V0VG9wOiBOdW1iZXJJbnB1dDtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3JlY3Vyc2l2ZUJyZWFkY3J1bWI6IEJvb2xlYW5JbnB1dDtcblxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgQFZpZXdDaGlsZCgnY29uVHBsJywgeyBzdGF0aWM6IGZhbHNlIH0pIHByaXZhdGUgY29uVHBsOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdhZmZpeCcsIHsgc3RhdGljOiBmYWxzZSB9KSBwcml2YXRlIGFmZml4OiBOekFmZml4Q29tcG9uZW50O1xuICBpbml0ZWQgPSBmYWxzZTtcbiAgaXNCcm93c2VyID0gdHJ1ZTtcbiAgZGlyOiBEaXJlY3Rpb24gPSAnbHRyJztcblxuICBwcml2YXRlIGdldCBtZW51cygpOiBNZW51W10ge1xuICAgIHJldHVybiB0aGlzLm1lbnVTcnYuZ2V0UGF0aEJ5VXJsKHRoaXMucm91dGVyLnVybCwgdGhpcy5yZWN1cnNpdmVCcmVhZGNydW1iKTtcbiAgfVxuXG4gIF90aXRsZVZhbDogc3RyaW5nIHwgbnVsbCA9ICcnO1xuICBwYXRoczogUGFnZUhlYWRlclBhdGhbXSA9IFtdO1xuXG4gIC8vICNyZWdpb24gZmllbGRzXG5cbiAgX3RpdGxlOiBzdHJpbmcgfCBudWxsO1xuICBfdGl0bGVUcGw6IFRlbXBsYXRlUmVmPE56U2FmZUFueT47XG4gIEBJbnB1dCgpXG4gIHNldCB0aXRsZSh2YWx1ZTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dm9pZD4gfCBudWxsKSB7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHtcbiAgICAgIHRoaXMuX3RpdGxlID0gbnVsbDtcbiAgICAgIHRoaXMuX3RpdGxlVHBsID0gdmFsdWU7XG4gICAgICB0aGlzLl90aXRsZVZhbCA9ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl90aXRsZSA9IHZhbHVlO1xuICAgICAgdGhpcy5fdGl0bGVWYWwgPSB0aGlzLl90aXRsZTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgbG9hZGluZyA9IGZhbHNlO1xuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgd2lkZSA9IGZhbHNlO1xuICBASW5wdXQoKSBob21lPzogc3RyaW5nO1xuICBASW5wdXQoKSBob21lTGluaz86IHN0cmluZztcbiAgQElucHV0KCkgaG9tZUkxOG4/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBhdXRvQnJlYWRjcnVtYjogYm9vbGVhbjtcbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIGF1dG9UaXRsZTogYm9vbGVhbjtcbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHN5bmNUaXRsZTogYm9vbGVhbjtcbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIGZpeGVkOiBib29sZWFuO1xuICBASW5wdXQoKSBASW5wdXROdW1iZXIoKSBmaXhlZE9mZnNldFRvcDogbnVtYmVyO1xuICBASW5wdXQoKSBicmVhZGNydW1iPzogVGVtcGxhdGVSZWY8TnpTYWZlQW55PiB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgcmVjdXJzaXZlQnJlYWRjcnVtYjogYm9vbGVhbjtcbiAgQElucHV0KCkgbG9nbz86IFRlbXBsYXRlUmVmPHZvaWQ+IHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGFjdGlvbj86IFRlbXBsYXRlUmVmPHZvaWQ+IHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGNvbnRlbnQ/OiBUZW1wbGF0ZVJlZjx2b2lkPiB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBleHRyYT86IFRlbXBsYXRlUmVmPHZvaWQ+IHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIHRhYj86IFRlbXBsYXRlUmVmPHZvaWQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgLy8gI2VuZHJlZ2lvblxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBtZW51U3J2OiBNZW51U2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFMQUlOX0kxOE5fVE9LRU4pIHByaXZhdGUgaTE4blNydjogQWxhaW5JMThOU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFRpdGxlU2VydmljZSkgcHJpdmF0ZSB0aXRsZVNydjogVGl0bGVTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoUmV1c2VUYWJTZXJ2aWNlKSBwcml2YXRlIHJldXNlU3J2OiBSZXVzZVRhYlNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIGNvbmZpZ1NydjogQWxhaW5Db25maWdTZXJ2aWNlLFxuICAgIHBsYXRmb3JtOiBQbGF0Zm9ybSxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGRpcmVjdGlvbmFsaXR5OiBEaXJlY3Rpb25hbGl0eVxuICApIHtcbiAgICB0aGlzLmlzQnJvd3NlciA9IHBsYXRmb3JtLmlzQnJvd3NlcjtcbiAgICBjb25maWdTcnYuYXR0YWNoKHRoaXMsICdwYWdlSGVhZGVyJywge1xuICAgICAgaG9tZTogJ+mmlumhtScsXG4gICAgICBob21lTGluazogJy8nLFxuICAgICAgYXV0b0JyZWFkY3J1bWI6IHRydWUsXG4gICAgICByZWN1cnNpdmVCcmVhZGNydW1iOiBmYWxzZSxcbiAgICAgIGF1dG9UaXRsZTogdHJ1ZSxcbiAgICAgIHN5bmNUaXRsZTogdHJ1ZSxcbiAgICAgIGZpeGVkOiBmYWxzZSxcbiAgICAgIGZpeGVkT2Zmc2V0VG9wOiA2NFxuICAgIH0pO1xuICAgIHNldHRpbmdzLm5vdGlmeVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgZmlsdGVyKHcgPT4gdGhpcy5hZmZpeCAmJiB3LnR5cGUgPT09ICdsYXlvdXQnICYmIHcubmFtZSA9PT0gJ2NvbGxhcHNlZCcpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuYWZmaXgudXBkYXRlUG9zaXRpb24oe30gYXMgTnpTYWZlQW55KSk7XG5cbiAgICBtZXJnZShtZW51U3J2LmNoYW5nZSwgcm91dGVyLmV2ZW50cy5waXBlKGZpbHRlcihldiA9PiBldiBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKSwgaTE4blNydi5jaGFuZ2UpXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuaW5pdGVkKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVmcmVzaCgpKTtcbiAgfVxuXG4gIHJlZnJlc2goKTogdm9pZCB7XG4gICAgdGhpcy5zZXRUaXRsZSgpLmdlbkJyZWFkY3J1bWIoKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIGdlbkJyZWFkY3J1bWIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYnJlYWRjcnVtYiB8fCAhdGhpcy5hdXRvQnJlYWRjcnVtYiB8fCB0aGlzLm1lbnVzLmxlbmd0aCA8PSAwKSB7XG4gICAgICB0aGlzLnBhdGhzID0gW107XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHBhdGhzOiBQYWdlSGVhZGVyUGF0aFtdID0gW107XG4gICAgdGhpcy5tZW51cy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgaWYgKHR5cGVvZiBpdGVtLmhpZGVJbkJyZWFkY3J1bWIgIT09ICd1bmRlZmluZWQnICYmIGl0ZW0uaGlkZUluQnJlYWRjcnVtYikgcmV0dXJuO1xuICAgICAgbGV0IHRpdGxlID0gaXRlbS50ZXh0O1xuICAgICAgaWYgKGl0ZW0uaTE4biAmJiB0aGlzLmkxOG5TcnYpIHRpdGxlID0gdGhpcy5pMThuU3J2LmZhbnlpKGl0ZW0uaTE4bik7XG4gICAgICBwYXRocy5wdXNoKHsgdGl0bGUsIGxpbms6IChpdGVtLmxpbmsgJiYgW2l0ZW0ubGlua10pIGFzIHN0cmluZ1tdIH0pO1xuICAgIH0pO1xuICAgIC8vIGFkZCBob21lXG4gICAgaWYgKHRoaXMuaG9tZSkge1xuICAgICAgcGF0aHMuc3BsaWNlKDAsIDAsIHtcbiAgICAgICAgdGl0bGU6ICh0aGlzLmhvbWVJMThuICYmIHRoaXMuaTE4blNydiAmJiB0aGlzLmkxOG5TcnYuZmFueWkodGhpcy5ob21lSTE4bikpIHx8IHRoaXMuaG9tZSxcbiAgICAgICAgbGluazogW3RoaXMuaG9tZUxpbmshXVxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMucGF0aHMgPSBwYXRocztcbiAgfVxuXG4gIHByaXZhdGUgc2V0VGl0bGUoKTogdGhpcyB7XG4gICAgaWYgKHRoaXMuX3RpdGxlID09IG51bGwgJiYgdGhpcy5fdGl0bGVUcGwgPT0gbnVsbCAmJiB0aGlzLmF1dG9UaXRsZSAmJiB0aGlzLm1lbnVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLm1lbnVzW3RoaXMubWVudXMubGVuZ3RoIC0gMV07XG4gICAgICBsZXQgdGl0bGUgPSBpdGVtLnRleHQ7XG4gICAgICBpZiAoaXRlbS5pMThuICYmIHRoaXMuaTE4blNydikge1xuICAgICAgICB0aXRsZSA9IHRoaXMuaTE4blNydi5mYW55aShpdGVtLmkxOG4pO1xuICAgICAgfVxuICAgICAgdGhpcy5fdGl0bGVWYWwgPSB0aXRsZSE7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3RpdGxlVmFsICYmIHRoaXMuc3luY1RpdGxlKSB7XG4gICAgICBpZiAodGhpcy50aXRsZVNydikge1xuICAgICAgICB0aGlzLnRpdGxlU3J2LnNldFRpdGxlKHRoaXMuX3RpdGxlVmFsKTtcbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5pbml0ZWQgJiYgdGhpcy5yZXVzZVNydikge1xuICAgICAgICB0aGlzLnJldXNlU3J2LnRpdGxlID0gdGhpcy5fdGl0bGVWYWw7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBjaGVja0NvbnRlbnQoKTogdm9pZCB7XG4gICAgaWYgKGlzRW1wdHkodGhpcy5jb25UcGwubmF0aXZlRWxlbWVudCkpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuY29uVHBsLm5hdGl2ZUVsZW1lbnQsICdoaWRkZW4nLCAnJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuY29uVHBsLm5hdGl2ZUVsZW1lbnQsICdoaWRkZW4nKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRpciA9IHRoaXMuZGlyZWN0aW9uYWxpdHkudmFsdWU7XG4gICAgdGhpcy5kaXJlY3Rpb25hbGl0eS5jaGFuZ2U/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGRpcmVjdGlvbjogRGlyZWN0aW9uKSA9PiB7XG4gICAgICB0aGlzLmRpciA9IGRpcmVjdGlvbjtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgICB0aGlzLmluaXRlZCA9IHRydWU7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jaGVja0NvbnRlbnQoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmluaXRlZCkge1xuICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=