@oinone/kunlun-vue-admin-layout 6.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (355) hide show
  1. package/README.md +1 -0
  2. package/dist/oinone-kunlun-vue-admin-layout.css +1 -0
  3. package/dist/oinone-kunlun-vue-admin-layout.esm.js +12049 -0
  4. package/dist/oinone-kunlun-vue-admin-layout.scss +1 -0
  5. package/dist/types/index.d.ts +1 -0
  6. package/dist/types/src/basic/MaskWidget.d.ts +17 -0
  7. package/dist/types/src/basic/index.d.ts +2 -0
  8. package/dist/types/src/basic/register/index.d.ts +1 -0
  9. package/dist/types/src/basic/register/manager.d.ts +7 -0
  10. package/dist/types/src/basic/token/BaseMaskWidget.d.ts +55 -0
  11. package/dist/types/src/basic/token/index.d.ts +1 -0
  12. package/dist/types/src/component/app-switcher/AppSwitcher.vue.d.ts +84 -0
  13. package/dist/types/src/component/app-switcher/AppSwitcherMask.vue.d.ts +61 -0
  14. package/dist/types/src/component/app-switcher/AppSwitcherWidget.d.ts +33 -0
  15. package/dist/types/src/component/app-switcher/index.d.ts +3 -0
  16. package/dist/types/src/component/breadcrumb/BreadcrumbWidget.d.ts +33 -0
  17. package/dist/types/src/component/breadcrumb/DefaultBreadcrumb.vue.d.ts +58 -0
  18. package/dist/types/src/component/breadcrumb/index.d.ts +2 -0
  19. package/dist/types/src/component/debug/Debug.vue.d.ts +11 -0
  20. package/dist/types/src/component/debug/DebugWidget.d.ts +8 -0
  21. package/dist/types/src/component/debug/constants.d.ts +2 -0
  22. package/dist/types/src/component/debug/index.d.ts +6 -0
  23. package/dist/types/src/component/debug/spi/DebugMaskEditor.d.ts +6 -0
  24. package/dist/types/src/component/debug/spi/DebugRouterInitializeService.d.ts +4 -0
  25. package/dist/types/src/component/debug/spi/index.d.ts +1 -0
  26. package/dist/types/src/component/debug/typing.d.ts +159 -0
  27. package/dist/types/src/component/debug/view/DebugMainView.vue.d.ts +28 -0
  28. package/dist/types/src/component/debug/view/DebugMainViewWidget.d.ts +9 -0
  29. package/dist/types/src/component/debug/view/components/DebugDefaultInfo.vue.d.ts +22 -0
  30. package/dist/types/src/component/debug/view/components/DebugJsonView.vue.d.ts +26 -0
  31. package/dist/types/src/component/debug/view/components/DebugRequestInfoPanel.vue.d.ts +22 -0
  32. package/dist/types/src/component/debug/view/components/DebugResponsePanel.vue.d.ts +12 -0
  33. package/dist/types/src/component/debug/view/debug-api/DebugApi.vue.d.ts +52 -0
  34. package/dist/types/src/component/debug/view/debug-api/DebugApiWidget.d.ts +32 -0
  35. package/dist/types/src/component/debug/view/debug-utils.d.ts +44 -0
  36. package/dist/types/src/component/debug/view/debug-view/DebugView.vue.d.ts +78 -0
  37. package/dist/types/src/component/debug/view/debug-view/DebugViewWidget.d.ts +26 -0
  38. package/dist/types/src/component/debug/view/index.d.ts +5 -0
  39. package/dist/types/src/component/debug/view/service/DebugRuntimeContextService.d.ts +18 -0
  40. package/dist/types/src/component/debug/view/service/DebugStackInfoService.d.ts +27 -0
  41. package/dist/types/src/component/debug/view/service/impl/runtime-context/DebugDefaultRuntimeContextService.d.ts +6 -0
  42. package/dist/types/src/component/debug/view/service/impl/runtime-context/DebugRuntimeActionService.d.ts +7 -0
  43. package/dist/types/src/component/debug/view/service/impl/runtime-context/DebugRuntimeDslService.d.ts +6 -0
  44. package/dist/types/src/component/debug/view/service/impl/runtime-context/DebugRuntimeFieldService.d.ts +7 -0
  45. package/dist/types/src/component/debug/view/service/impl/runtime-context/DebugRuntimeLayoutService.d.ts +6 -0
  46. package/dist/types/src/component/debug/view/service/impl/runtime-context/DebugRuntimeMaskService.d.ts +6 -0
  47. package/dist/types/src/component/debug/view/service/impl/runtime-context/DebugRuntimeTemplateService.d.ts +6 -0
  48. package/dist/types/src/component/debug/view/service/impl/runtime-context/DebugRuntimeViewService.d.ts +6 -0
  49. package/dist/types/src/component/debug/view/service/impl/stack-info/DebugBizStackService.d.ts +6 -0
  50. package/dist/types/src/component/debug/view/service/impl/stack-info/DebugConfigureService.d.ts +4 -0
  51. package/dist/types/src/component/debug/view/service/impl/stack-info/DebugDefaultStackInfoService.d.ts +8 -0
  52. package/dist/types/src/component/debug/view/service/impl/stack-info/DebugExceptionStackService.d.ts +6 -0
  53. package/dist/types/src/component/debug/view/service/impl/stack-info/DebugFunctionService.d.ts +4 -0
  54. package/dist/types/src/component/debug/view/service/impl/stack-info/DebugHalfBizStackService.d.ts +6 -0
  55. package/dist/types/src/component/debug/view/service/impl/stack-info/DebugModelService.d.ts +4 -0
  56. package/dist/types/src/component/debug/view/service/impl/stack-info/DebugPureBizStackService.d.ts +6 -0
  57. package/dist/types/src/component/debug/view/service/impl/stack-info/DebugStacktraceGqlRequestContextService.d.ts +6 -0
  58. package/dist/types/src/component/debug/view/service/impl/stack-info/DebugStacktraceSceneAnalysisService.d.ts +7 -0
  59. package/dist/types/src/component/debug/view/service/impl/stack-info/DebugStacktraceSessionService.d.ts +6 -0
  60. package/dist/types/src/component/debug/view/service/index.d.ts +20 -0
  61. package/dist/types/src/component/debug/view/storage.d.ts +19 -0
  62. package/dist/types/src/component/debug/view/useDebugRequestInfo.d.ts +7 -0
  63. package/dist/types/src/component/divider/Divider.vue.d.ts +2 -0
  64. package/dist/types/src/component/divider/DividerWidget.d.ts +4 -0
  65. package/dist/types/src/component/divider/index.d.ts +1 -0
  66. package/dist/types/src/component/index.d.ts +14 -0
  67. package/dist/types/src/component/language/DefaultLanguage.vue.d.ts +34 -0
  68. package/dist/types/src/component/language/LanguageWidget.d.ts +16 -0
  69. package/dist/types/src/component/language/index.d.ts +1 -0
  70. package/dist/types/src/component/layout/BaseMaskLayoutWidget.d.ts +4 -0
  71. package/dist/types/src/component/layout/MaskBlock.vue.d.ts +24 -0
  72. package/dist/types/src/component/layout/block/MaskBlockWidget.d.ts +4 -0
  73. package/dist/types/src/component/layout/block/index.d.ts +1 -0
  74. package/dist/types/src/component/layout/container/MaskContainerWidget.d.ts +4 -0
  75. package/dist/types/src/component/layout/container/index.d.ts +1 -0
  76. package/dist/types/src/component/layout/content/MaskContentWidget.d.ts +7 -0
  77. package/dist/types/src/component/layout/content/index.d.ts +1 -0
  78. package/dist/types/src/component/layout/grid/Grid.vue.d.ts +2 -0
  79. package/dist/types/src/component/layout/grid/GridWidget.d.ts +9 -0
  80. package/dist/types/src/component/layout/grid/index.d.ts +1 -0
  81. package/dist/types/src/component/layout/header/MaskHeaderWidget.d.ts +4 -0
  82. package/dist/types/src/component/layout/header/index.d.ts +1 -0
  83. package/dist/types/src/component/layout/index.d.ts +9 -0
  84. package/dist/types/src/component/layout/mask/MaskRootWidget.d.ts +4 -0
  85. package/dist/types/src/component/layout/mask/index.d.ts +1 -0
  86. package/dist/types/src/component/layout/sidebar/MaskSidebarWidget.d.ts +10 -0
  87. package/dist/types/src/component/layout/sidebar/index.d.ts +1 -0
  88. package/dist/types/src/component/layout/widget/MaskCommonWidget.d.ts +14 -0
  89. package/dist/types/src/component/layout/widget/index.d.ts +1 -0
  90. package/dist/types/src/component/menu/DefaultMenu.vue.d.ts +115 -0
  91. package/dist/types/src/component/menu/DefaultSubMenu.vue.d.ts +17 -0
  92. package/dist/types/src/component/menu/MenuWidget.d.ts +71 -0
  93. package/dist/types/src/component/menu/index.d.ts +3 -0
  94. package/dist/types/src/component/multi-tabs/MultiTabs.vue.d.ts +151 -0
  95. package/dist/types/src/component/multi-tabs/MultiTabsWidget.d.ts +60 -0
  96. package/dist/types/src/component/multi-tabs/index.d.ts +2 -0
  97. package/dist/types/src/component/multi-tabs/typing.d.ts +6 -0
  98. package/dist/types/src/component/notification/DefaultNotification.vue.d.ts +61 -0
  99. package/dist/types/src/component/notification/NotificationWidget.d.ts +139 -0
  100. package/dist/types/src/component/notification/index.d.ts +2 -0
  101. package/dist/types/src/component/order-statistic/OrderStatistic.vue.d.ts +8 -0
  102. package/dist/types/src/component/order-statistic/index.d.ts +14 -0
  103. package/dist/types/src/component/partner-switcher/PartnerSwitcher.vue.d.ts +28 -0
  104. package/dist/types/src/component/partner-switcher/PartnerSwitcherWidget.d.ts +15 -0
  105. package/dist/types/src/component/partner-switcher/index.d.ts +6 -0
  106. package/dist/types/src/component/partner-switcher/service/PartnerSwitcherService.d.ts +17 -0
  107. package/dist/types/src/component/partner-switcher/service/impl/PartnerSwitcherServiceImpl.d.ts +17 -0
  108. package/dist/types/src/component/partner-switcher/service/index.d.ts +2 -0
  109. package/dist/types/src/component/partner-switcher/session/PartnerInfoSession.d.ts +26 -0
  110. package/dist/types/src/component/partner-switcher/session/impl/DefaultPartnerInfoSession.d.ts +15 -0
  111. package/dist/types/src/component/partner-switcher/session/index.d.ts +2 -0
  112. package/dist/types/src/component/partner-switcher/spi/PartnerSwitcherMaskEditor.d.ts +6 -0
  113. package/dist/types/src/component/partner-switcher/spi/index.d.ts +1 -0
  114. package/dist/types/src/component/partner-switcher/typing/index.d.ts +1 -0
  115. package/dist/types/src/component/partner-switcher/typing/partner.d.ts +20 -0
  116. package/dist/types/src/component/quick-search/QuickSearch.vue.d.ts +29 -0
  117. package/dist/types/src/component/quick-search/index.d.ts +24 -0
  118. package/dist/types/src/component/user/DefaultUser.vue.d.ts +39 -0
  119. package/dist/types/src/component/user/UserWidget.d.ts +16 -0
  120. package/dist/types/src/component/user/index.d.ts +1 -0
  121. package/dist/types/src/config/DebugConfig.d.ts +16 -0
  122. package/dist/types/src/config/PartnerSwitcherConfig.d.ts +16 -0
  123. package/dist/types/src/config/index.d.ts +2 -0
  124. package/dist/types/src/index.d.ts +10 -0
  125. package/dist/types/src/service/index.d.ts +5 -0
  126. package/dist/types/src/service/menu-service.d.ts +12 -0
  127. package/dist/types/src/service/message-service.d.ts +16 -0
  128. package/dist/types/src/service/module-service.d.ts +7 -0
  129. package/dist/types/src/service/top-bar-service.d.ts +10 -0
  130. package/dist/types/src/service/user-service.d.ts +4 -0
  131. package/dist/types/src/spi/index.d.ts +1 -0
  132. package/dist/types/src/spi/mask-editor.d.ts +54 -0
  133. package/dist/types/src/tags/Block.vue.d.ts +5 -0
  134. package/dist/types/src/tags/Breadcrumb.vue.d.ts +5 -0
  135. package/dist/types/src/tags/Container.vue.d.ts +5 -0
  136. package/dist/types/src/tags/Content.vue.d.ts +5 -0
  137. package/dist/types/src/tags/Header.vue.d.ts +5 -0
  138. package/dist/types/src/tags/Mask.vue.d.ts +5 -0
  139. package/dist/types/src/tags/MultiTabs.vue.d.ts +5 -0
  140. package/dist/types/src/tags/Sidebar.vue.d.ts +5 -0
  141. package/dist/types/src/tags/Widget.vue.d.ts +5 -0
  142. package/dist/types/src/tags/context/context.d.ts +8 -0
  143. package/dist/types/src/tags/context/index.d.ts +1 -0
  144. package/dist/types/src/tags/index.d.ts +6 -0
  145. package/dist/types/src/tags/mixin/MaskWidgetTagMixin.d.ts +2 -0
  146. package/dist/types/src/tags/mixin/index.d.ts +3 -0
  147. package/dist/types/src/tags/mixin/typing.d.ts +6 -0
  148. package/dist/types/src/tags/mixin/use-mask-widget-tag.d.ts +38 -0
  149. package/dist/types/src/tags/register/index.d.ts +1 -0
  150. package/dist/types/src/tags/register/manager.d.ts +9 -0
  151. package/dist/types/src/tags/resolve/index.d.ts +2 -0
  152. package/dist/types/src/tags/resolve/internal/index.d.ts +2 -0
  153. package/dist/types/src/tags/resolve/internal/typing.d.ts +5 -0
  154. package/dist/types/src/tags/resolve/internal/widget-resolve.d.ts +3 -0
  155. package/dist/types/src/tags/resolve/typing.d.ts +26 -0
  156. package/dist/types/src/tags/resolve/widget-resolve.d.ts +5 -0
  157. package/dist/types/src/template/default-mask.d.ts +2 -0
  158. package/dist/types/src/template/index.d.ts +6 -0
  159. package/dist/types/src/theme/index.d.ts +1 -0
  160. package/dist/types/src/typing/constant.d.ts +1 -0
  161. package/dist/types/src/typing/index.d.ts +3 -0
  162. package/dist/types/src/typing/menu.d.ts +12 -0
  163. package/dist/types/src/typing/stream-symble.d.ts +12 -0
  164. package/dist/types/src/util/HomepageUtils.d.ts +3 -0
  165. package/dist/types/src/util/MenuUtil.d.ts +5 -0
  166. package/dist/types/src/util/index.d.ts +3 -0
  167. package/dist/types/src/util/unauthorized-action.d.ts +14 -0
  168. package/dist/types/src/utils.d.ts +86 -0
  169. package/index.ts +1 -0
  170. package/package.json +47 -0
  171. package/rollup.config.js +33 -0
  172. package/src/basic/MaskWidget.ts +74 -0
  173. package/src/basic/index.ts +2 -0
  174. package/src/basic/register/index.ts +1 -0
  175. package/src/basic/register/manager.ts +17 -0
  176. package/src/basic/token/BaseMaskWidget.ts +187 -0
  177. package/src/basic/token/index.ts +1 -0
  178. package/src/component/app-switcher/AppSwitcher.vue +133 -0
  179. package/src/component/app-switcher/AppSwitcherMask.vue +237 -0
  180. package/src/component/app-switcher/AppSwitcherWidget.ts +152 -0
  181. package/src/component/app-switcher/index.ts +3 -0
  182. package/src/component/breadcrumb/BreadcrumbWidget.ts +167 -0
  183. package/src/component/breadcrumb/DefaultBreadcrumb.vue +95 -0
  184. package/src/component/breadcrumb/index.ts +2 -0
  185. package/src/component/debug/Debug.vue +28 -0
  186. package/src/component/debug/DebugWidget.ts +38 -0
  187. package/src/component/debug/constants.ts +3 -0
  188. package/src/component/debug/index.ts +6 -0
  189. package/src/component/debug/spi/DebugMaskEditor.ts +19 -0
  190. package/src/component/debug/spi/DebugRouterInitializeService.ts +21 -0
  191. package/src/component/debug/spi/index.ts +1 -0
  192. package/src/component/debug/typing.ts +191 -0
  193. package/src/component/debug/view/DebugMainView.vue +206 -0
  194. package/src/component/debug/view/DebugMainViewWidget.ts +42 -0
  195. package/src/component/debug/view/components/DebugDefaultInfo.vue +31 -0
  196. package/src/component/debug/view/components/DebugJsonView.vue +107 -0
  197. package/src/component/debug/view/components/DebugRequestInfoPanel.vue +129 -0
  198. package/src/component/debug/view/components/DebugResponsePanel.vue +66 -0
  199. package/src/component/debug/view/components/runtime-context/DebugRuntimeFieldComponent.vue +29 -0
  200. package/src/component/debug/view/debug-api/DebugApi.vue +225 -0
  201. package/src/component/debug/view/debug-api/DebugApiWidget.ts +400 -0
  202. package/src/component/debug/view/debug-utils.ts +114 -0
  203. package/src/component/debug/view/debug-view/DebugView.vue +331 -0
  204. package/src/component/debug/view/debug-view/DebugViewWidget.ts +181 -0
  205. package/src/component/debug/view/index.ts +6 -0
  206. package/src/component/debug/view/service/DebugRuntimeContextService.ts +21 -0
  207. package/src/component/debug/view/service/DebugStackInfoService.ts +33 -0
  208. package/src/component/debug/view/service/impl/runtime-context/DebugDefaultRuntimeContextService.ts +16 -0
  209. package/src/component/debug/view/service/impl/runtime-context/DebugRuntimeActionService.ts +28 -0
  210. package/src/component/debug/view/service/impl/runtime-context/DebugRuntimeDslService.ts +16 -0
  211. package/src/component/debug/view/service/impl/runtime-context/DebugRuntimeFieldService.ts +33 -0
  212. package/src/component/debug/view/service/impl/runtime-context/DebugRuntimeLayoutService.ts +16 -0
  213. package/src/component/debug/view/service/impl/runtime-context/DebugRuntimeMaskService.ts +30 -0
  214. package/src/component/debug/view/service/impl/runtime-context/DebugRuntimeTemplateService.ts +16 -0
  215. package/src/component/debug/view/service/impl/runtime-context/DebugRuntimeViewService.ts +16 -0
  216. package/src/component/debug/view/service/impl/stack-info/DebugBizStackService.ts +19 -0
  217. package/src/component/debug/view/service/impl/stack-info/DebugConfigureService.ts +6 -0
  218. package/src/component/debug/view/service/impl/stack-info/DebugDefaultStackInfoService.ts +62 -0
  219. package/src/component/debug/view/service/impl/stack-info/DebugExceptionStackService.ts +19 -0
  220. package/src/component/debug/view/service/impl/stack-info/DebugFunctionService.ts +6 -0
  221. package/src/component/debug/view/service/impl/stack-info/DebugHalfBizStackService.ts +19 -0
  222. package/src/component/debug/view/service/impl/stack-info/DebugModelService.ts +6 -0
  223. package/src/component/debug/view/service/impl/stack-info/DebugPureBizStackService.ts +19 -0
  224. package/src/component/debug/view/service/impl/stack-info/DebugStacktraceGqlRequestContextService.ts +22 -0
  225. package/src/component/debug/view/service/impl/stack-info/DebugStacktraceSceneAnalysisService.ts +35 -0
  226. package/src/component/debug/view/service/impl/stack-info/DebugStacktraceSessionService.ts +19 -0
  227. package/src/component/debug/view/service/index.ts +22 -0
  228. package/src/component/debug/view/storage.ts +35 -0
  229. package/src/component/debug/view/useDebugRequestInfo.ts +17 -0
  230. package/src/component/divider/Divider.vue +15 -0
  231. package/src/component/divider/DividerWidget.ts +12 -0
  232. package/src/component/divider/index.ts +1 -0
  233. package/src/component/index.ts +15 -0
  234. package/src/component/language/DefaultLanguage.vue +111 -0
  235. package/src/component/language/LanguageWidget.ts +72 -0
  236. package/src/component/language/index.ts +1 -0
  237. package/src/component/layout/BaseMaskLayoutWidget.ts +12 -0
  238. package/src/component/layout/MaskBlock.vue +31 -0
  239. package/src/component/layout/block/MaskBlockWidget.ts +17 -0
  240. package/src/component/layout/block/index.ts +1 -0
  241. package/src/component/layout/container/MaskContainerWidget.ts +13 -0
  242. package/src/component/layout/container/index.ts +1 -0
  243. package/src/component/layout/content/MaskContentWidget.ts +41 -0
  244. package/src/component/layout/content/index.ts +1 -0
  245. package/src/component/layout/grid/Grid.vue +10 -0
  246. package/src/component/layout/grid/GridWidget.ts +62 -0
  247. package/src/component/layout/grid/index.ts +1 -0
  248. package/src/component/layout/header/MaskHeaderWidget.ts +13 -0
  249. package/src/component/layout/header/index.ts +1 -0
  250. package/src/component/layout/index.ts +9 -0
  251. package/src/component/layout/mask/MaskRootWidget.ts +13 -0
  252. package/src/component/layout/mask/index.ts +1 -0
  253. package/src/component/layout/sidebar/MaskSidebarWidget.ts +31 -0
  254. package/src/component/layout/sidebar/index.ts +1 -0
  255. package/src/component/layout/widget/MaskCommonWidget.ts +95 -0
  256. package/src/component/layout/widget/index.ts +1 -0
  257. package/src/component/menu/DefaultMenu.vue +252 -0
  258. package/src/component/menu/DefaultSubMenu.vue +68 -0
  259. package/src/component/menu/MenuWidget.ts +349 -0
  260. package/src/component/menu/index.ts +3 -0
  261. package/src/component/menu/style/common.scss +411 -0
  262. package/src/component/menu/style/index.scss +2 -0
  263. package/src/component/menu/style/menu-theme/index.scss +5 -0
  264. package/src/component/menu/style/menu-theme/theme2.scss +37 -0
  265. package/src/component/menu/style/menu-theme/theme3.scss +59 -0
  266. package/src/component/menu/style/menu-theme/theme4.scss +56 -0
  267. package/src/component/menu/style/menu-theme/theme5.scss +45 -0
  268. package/src/component/menu/style/menu-theme/theme6.scss +45 -0
  269. package/src/component/menu/style/mixin.scss +23 -0
  270. package/src/component/multi-tabs/MultiTabs.vue +475 -0
  271. package/src/component/multi-tabs/MultiTabsWidget.ts +450 -0
  272. package/src/component/multi-tabs/index.ts +2 -0
  273. package/src/component/multi-tabs/style/index.scss +217 -0
  274. package/src/component/multi-tabs/style/mixin.scss +13 -0
  275. package/src/component/multi-tabs/style/parameters.scss +2 -0
  276. package/src/component/multi-tabs/style/theme1.scss +92 -0
  277. package/src/component/multi-tabs/style/theme2.scss +89 -0
  278. package/src/component/multi-tabs/style/theme3.scss +60 -0
  279. package/src/component/multi-tabs/style/theme4.scss +85 -0
  280. package/src/component/multi-tabs/typing.ts +7 -0
  281. package/src/component/notification/DefaultNotification.vue +455 -0
  282. package/src/component/notification/NotificationWidget.ts +332 -0
  283. package/src/component/notification/index.ts +2 -0
  284. package/src/component/order-statistic/OrderStatistic.vue +12 -0
  285. package/src/component/order-statistic/index.ts +146 -0
  286. package/src/component/partner-switcher/PartnerSwitcher.vue +75 -0
  287. package/src/component/partner-switcher/PartnerSwitcherWidget.ts +70 -0
  288. package/src/component/partner-switcher/index.ts +6 -0
  289. package/src/component/partner-switcher/service/PartnerSwitcherService.ts +20 -0
  290. package/src/component/partner-switcher/service/impl/PartnerSwitcherServiceImpl.ts +48 -0
  291. package/src/component/partner-switcher/service/index.ts +2 -0
  292. package/src/component/partner-switcher/session/PartnerInfoSession.ts +32 -0
  293. package/src/component/partner-switcher/session/impl/DefaultPartnerInfoSession.ts +46 -0
  294. package/src/component/partner-switcher/session/index.ts +2 -0
  295. package/src/component/partner-switcher/spi/PartnerSwitcherMaskEditor.ts +24 -0
  296. package/src/component/partner-switcher/spi/index.ts +1 -0
  297. package/src/component/partner-switcher/typing/index.ts +1 -0
  298. package/src/component/partner-switcher/typing/partner.ts +22 -0
  299. package/src/component/quick-search/QuickSearch.vue +34 -0
  300. package/src/component/quick-search/index.ts +237 -0
  301. package/src/component/style/index.scss +4 -0
  302. package/src/component/style/layout.scss +229 -0
  303. package/src/component/user/DefaultUser.vue +92 -0
  304. package/src/component/user/UserWidget.ts +129 -0
  305. package/src/component/user/index.ts +1 -0
  306. package/src/config/DebugConfig.ts +30 -0
  307. package/src/config/PartnerSwitcherConfig.ts +30 -0
  308. package/src/config/index.ts +2 -0
  309. package/src/index.ts +11 -0
  310. package/src/service/index.ts +5 -0
  311. package/src/service/menu-service.ts +105 -0
  312. package/src/service/message-service.ts +65 -0
  313. package/src/service/module-service.ts +69 -0
  314. package/src/service/top-bar-service.ts +144 -0
  315. package/src/service/user-service.ts +10 -0
  316. package/src/shim-translate.d.ts +7 -0
  317. package/src/shim-vue.d.ts +6 -0
  318. package/src/spi/index.ts +1 -0
  319. package/src/spi/mask-editor.ts +102 -0
  320. package/src/tags/Block.vue +16 -0
  321. package/src/tags/Breadcrumb.vue +16 -0
  322. package/src/tags/Container.vue +16 -0
  323. package/src/tags/Content.vue +16 -0
  324. package/src/tags/Header.vue +16 -0
  325. package/src/tags/Mask.vue +16 -0
  326. package/src/tags/MultiTabs.vue +16 -0
  327. package/src/tags/Sidebar.vue +16 -0
  328. package/src/tags/Widget.vue +16 -0
  329. package/src/tags/context/context.ts +24 -0
  330. package/src/tags/context/index.ts +1 -0
  331. package/src/tags/index.ts +48 -0
  332. package/src/tags/mixin/MaskWidgetTagMixin.ts +79 -0
  333. package/src/tags/mixin/index.ts +3 -0
  334. package/src/tags/mixin/typing.ts +8 -0
  335. package/src/tags/mixin/use-mask-widget-tag.ts +172 -0
  336. package/src/tags/register/index.ts +1 -0
  337. package/src/tags/register/manager.ts +43 -0
  338. package/src/tags/resolve/index.ts +2 -0
  339. package/src/tags/resolve/internal/index.ts +2 -0
  340. package/src/tags/resolve/internal/typing.ts +6 -0
  341. package/src/tags/resolve/internal/widget-resolve.ts +57 -0
  342. package/src/tags/resolve/typing.ts +39 -0
  343. package/src/tags/resolve/widget-resolve.ts +64 -0
  344. package/src/template/default-mask.ts +51 -0
  345. package/src/template/index.ts +26 -0
  346. package/src/theme/index.ts +1 -0
  347. package/src/typing/constant.ts +3 -0
  348. package/src/typing/index.ts +3 -0
  349. package/src/typing/menu.ts +15 -0
  350. package/src/typing/stream-symble.ts +14 -0
  351. package/src/util/HomepageUtils.ts +41 -0
  352. package/src/util/MenuUtil.ts +18 -0
  353. package/src/util/index.ts +3 -0
  354. package/src/util/unauthorized-action.ts +98 -0
  355. package/src/utils.ts +716 -0
@@ -0,0 +1,48 @@
1
+ import { SYSTEM_MODULE_NAME } from '@oinone/kunlun-meta';
2
+ import { GQL } from '@oinone/kunlun-request';
3
+ import { SPI } from '@oinone/kunlun-spi';
4
+ import { PartnerInfo, PartnerItem } from '../../typing';
5
+ import { PartnerSwitcherService, PartnerSwitcherServiceToken } from '../PartnerSwitcherService';
6
+
7
+ const SHOW_PARTNERS_MODEL_NAME = 'showPartners';
8
+
9
+ export type QueryShowPartnersResult = {
10
+ partner: { code: string; name: string };
11
+ partnerList: { code: string; name: string }[];
12
+ };
13
+
14
+ @SPI.Service(PartnerSwitcherServiceToken)
15
+ export class PartnerSwitcherServiceImpl implements PartnerSwitcherService {
16
+ public async queryPartnerInfo(): Promise<PartnerInfo | undefined> {
17
+ return GQL.query(SHOW_PARTNERS_MODEL_NAME, 'queryAllPartners')
18
+ .buildResponse((builder) => builder.parameter(['partner', ['code', 'name']], ['partnerList', ['code', 'name']]))
19
+ .request<QueryShowPartnersResult>(SYSTEM_MODULE_NAME.COMMON)
20
+ .then((data) => this.convert(data));
21
+ }
22
+
23
+ public async changePartner(target: PartnerItem): Promise<PartnerInfo | undefined> {
24
+ return GQL.mutation(SHOW_PARTNERS_MODEL_NAME, 'changePartner')
25
+ .buildRequest((builder) => {
26
+ builder.buildObjectParameter('currentPartner', (builder) => {
27
+ builder.stringParameter('code', target.id);
28
+ builder.stringParameter('name', target.name);
29
+ });
30
+ })
31
+ .buildResponse((builder) => builder.parameter(['partner', ['code', 'name']], ['partnerList', ['code', 'name']]))
32
+ .request<QueryShowPartnersResult>(SYSTEM_MODULE_NAME.COMMON)
33
+ .then((data) => this.convert(data));
34
+ }
35
+
36
+ protected convert(data: QueryShowPartnersResult): PartnerInfo | undefined {
37
+ const { partner, partnerList } = data;
38
+ if (partner && partner.code) {
39
+ return {
40
+ currentPartner: {
41
+ id: partner.code,
42
+ name: partner.name
43
+ },
44
+ partnerList: partnerList?.map((v) => ({ id: v.code, name: v.name })) || []
45
+ };
46
+ }
47
+ }
48
+ }
@@ -0,0 +1,2 @@
1
+ export * from './PartnerSwitcherService';
2
+ export * from './impl/PartnerSwitcherServiceImpl';
@@ -0,0 +1,32 @@
1
+ import { ServiceIdentifier } from '@oinone/kunlun-spi';
2
+ import { PartnerInfo, PartnerItem } from '../typing';
3
+
4
+ export interface PartnerInfoSession<T = unknown> {
5
+ /**
6
+ * 获取当前合作伙伴
7
+ */
8
+ getCurrentPartner(): PartnerItem | undefined;
9
+
10
+ /**
11
+ * 获取合作伙伴信息
12
+ */
13
+ getPartnerInfo(): PartnerInfo | undefined;
14
+
15
+ /**
16
+ * 设置当前合作伙伴信息
17
+ * @param target 合作伙伴信息
18
+ */
19
+ setPartnerInfo(target: PartnerInfo | undefined): void;
20
+
21
+ /**
22
+ * 获取当前合作伙伴存储信息
23
+ */
24
+ getCurrentPartnerStore(): T | undefined;
25
+
26
+ /**
27
+ * 清空当前合作伙伴存储信息
28
+ */
29
+ clear(): void;
30
+ }
31
+
32
+ export const PartnerInfoSessionToken = ServiceIdentifier<PartnerInfoSession>('PartnerInfoSession');
@@ -0,0 +1,46 @@
1
+ import { SPI } from '@oinone/kunlun-spi';
2
+ import { PartnerInfo, PartnerItem } from '../../typing';
3
+ import { PartnerInfoSession, PartnerInfoSessionToken } from '../PartnerInfoSession';
4
+
5
+ export interface PartnerSessionStore {
6
+ sid: string | null | undefined;
7
+ lid: string | null | undefined;
8
+ }
9
+
10
+ @SPI.Service(PartnerInfoSessionToken)
11
+ export class DefaultPartnerInfoSession implements PartnerInfoSession<PartnerSessionStore> {
12
+ private static readonly CACHE_KEY = 'pamirs_partner_id';
13
+
14
+ private partnerInfo: PartnerInfo | undefined;
15
+
16
+ public getCurrentPartner(): PartnerItem | undefined {
17
+ return this.getPartnerInfo()?.currentPartner;
18
+ }
19
+
20
+ public getPartnerInfo(): PartnerInfo | undefined {
21
+ return this.partnerInfo;
22
+ }
23
+
24
+ public setPartnerInfo(target: PartnerInfo | undefined): void {
25
+ if (target) {
26
+ sessionStorage.setItem(DefaultPartnerInfoSession.CACHE_KEY, target.currentPartner.id);
27
+ localStorage.setItem(DefaultPartnerInfoSession.CACHE_KEY, target.currentPartner.id);
28
+ } else {
29
+ this.clear();
30
+ }
31
+ }
32
+
33
+ public getCurrentPartnerStore(): PartnerSessionStore | undefined {
34
+ const sid = sessionStorage.getItem(DefaultPartnerInfoSession.CACHE_KEY);
35
+ const lid = localStorage.getItem(DefaultPartnerInfoSession.CACHE_KEY);
36
+ if (sid || lid) {
37
+ return { sid, lid };
38
+ }
39
+ return undefined;
40
+ }
41
+
42
+ public clear(): void {
43
+ sessionStorage.removeItem(DefaultPartnerInfoSession.CACHE_KEY);
44
+ localStorage.removeItem(DefaultPartnerInfoSession.CACHE_KEY);
45
+ }
46
+ }
@@ -0,0 +1,2 @@
1
+ export * from './impl/DefaultPartnerInfoSession';
2
+ export * from './PartnerInfoSession';
@@ -0,0 +1,24 @@
1
+ import { DslDefinition } from '@oinone/kunlun-dsl';
2
+ import { SPI } from '@oinone/kunlun-spi';
3
+ import { PartnerSwitcherConfigManager } from '../../../config';
4
+ import { MaskEditor, MaskEditorContext, MaskEditorToken, MaskEditService, MaskEditServiceToken } from '../../../spi';
5
+
6
+ @SPI.Service(MaskEditorToken, { priority: 10 })
7
+ export class PartnerSwitcherMaskEditor implements MaskEditor {
8
+ @SPI.Autowired(MaskEditServiceToken)
9
+ private maskEditService!: MaskEditService;
10
+
11
+ public edit(context: Readonly<MaskEditorContext>, dsl: DslDefinition): DslDefinition {
12
+ if (PartnerSwitcherConfigManager.isEnabled()) {
13
+ this.maskEditService
14
+ .findTopBarWidgets(dsl)
15
+ ?.splice(
16
+ 0,
17
+ 0,
18
+ this.maskEditService.generatorWidget('partner-switcher'),
19
+ this.maskEditService.generatorDivider()
20
+ );
21
+ }
22
+ return dsl;
23
+ }
24
+ }
@@ -0,0 +1 @@
1
+ export * from './PartnerSwitcherMaskEditor';
@@ -0,0 +1 @@
1
+ export * from './partner';
@@ -0,0 +1,22 @@
1
+ /**
2
+ * 合作伙伴项
3
+ */
4
+ export interface PartnerItem {
5
+ id: string;
6
+ name: string;
7
+ }
8
+
9
+ /**
10
+ * 合作伙伴信息
11
+ */
12
+ export interface PartnerInfo {
13
+ /**
14
+ * 当前合作伙伴
15
+ */
16
+ currentPartner: PartnerItem;
17
+
18
+ /**
19
+ * 可选合作伙伴列表
20
+ */
21
+ partnerList: PartnerItem[];
22
+ }
@@ -0,0 +1,34 @@
1
+ <template>
2
+ <div class="search-content">
3
+ <a-spin :spinning="loading">
4
+ <a-input-search
5
+ class="oio-input"
6
+ :placeholder="dslNode.children[0] ? dslNode.children[0].placeHolderText : ''"
7
+ :value="searchText"
8
+ @change="onChange"
9
+ cleanable
10
+ />
11
+ <a-tree :tree-data="proxyTreeData" show-icon @select="onSelect" :loadData="loadData">
12
+ <template #icon="{ url }" v-if="showLogo">
13
+ <span class="custom-tree-node-logo" v-if="showLogo">
14
+ <!-- <div v-if="!url" class="logo-placeholder"></div> -->
15
+ <img v-if="url" :src="url" alt />
16
+ </span>
17
+ </template>
18
+ </a-tree>
19
+ </a-spin>
20
+ </div>
21
+ </template>
22
+ <script lang="ts">
23
+ import { defineComponent } from 'vue';
24
+ import { Spin, Input, Tree } from 'ant-design-vue';
25
+
26
+ export default defineComponent({
27
+ props: ['loading', 'dslNode', 'searchText', 'onChange', 'proxyTreeData', 'onSelect', 'showLogo', 'loadData'],
28
+ components: {
29
+ ASpin: Spin,
30
+ AInputSearch: Input,
31
+ ATree: Tree
32
+ }
33
+ });
34
+ </script>
@@ -0,0 +1,237 @@
1
+ import { IModel } from '@oinone/kunlun-meta';
2
+ import { queryPage } from '@oinone/kunlun-service';
3
+ import { SPI } from '@oinone/kunlun-spi';
4
+ import { Widget } from '@oinone/kunlun-vue-widget';
5
+ import { MaskWidget } from '../../basic';
6
+ import QuickSearchComponent from './QuickSearch.vue';
7
+
8
+ interface ITreeNode {
9
+ title: string;
10
+ key: string;
11
+ children: ITreeNode[];
12
+ isLeaf: boolean;
13
+ url?: string;
14
+ slots?: {
15
+ icon: string;
16
+ };
17
+ }
18
+
19
+ @SPI.ClassFactory(MaskWidget.Token({ widget: 'quick-search' }))
20
+ export class QuickSearch extends MaskWidget {
21
+ @Widget.Reactive()
22
+ private rawData: Record<string, unknown>[] = [];
23
+
24
+ @Widget.Reactive()
25
+ private showLogo = false;
26
+
27
+ @Widget.Reactive()
28
+ private searchCondition = '';
29
+
30
+ @Widget.Reactive()
31
+ private model!: IModel;
32
+
33
+ @Widget.Reactive()
34
+ private isLazyLoad: boolean = false;
35
+
36
+ public initialize(props) {
37
+ super.initialize(props);
38
+ const { showLogo = false, isLazyLoad = true } = props.dslNode || {};
39
+ this.showLogo = showLogo as boolean;
40
+ this.isLazyLoad = isLazyLoad;
41
+
42
+ this.setComponent(QuickSearchComponent);
43
+ return this;
44
+ }
45
+
46
+ private async loadTreeData(parentCode: string = '') {
47
+ const field = this.model.modelFields.find((mf) => mf.name === this.getDsl().name)!;
48
+ let condition = 'parentCode=isnull=true';
49
+ if (parentCode) {
50
+ condition = `parentCode==${parentCode}`;
51
+ }
52
+ const data = (
53
+ await queryPage(field.references!, { pageSize: 100, condition }, undefined, undefined, {
54
+ maxDepth: 0
55
+ })
56
+ ).content;
57
+ const { labelKey, valueKey } = this.getDsl().children[0];
58
+ return data.map((d) => {
59
+ return {
60
+ ...d,
61
+ title: d[labelKey] as string,
62
+ key: d[valueKey] as string,
63
+ children: [],
64
+ isLeaf: d.hasChild === undefined ? false : !d.hasChild
65
+ };
66
+ });
67
+ }
68
+
69
+ private mergeTreeNode(node, data) {
70
+ if (node.id === data.id) {
71
+ return {
72
+ ...data,
73
+ ...node
74
+ };
75
+ }
76
+ if (data.children && data.children.length) {
77
+ data.children = data.children.map((d) => {
78
+ return this.mergeTreeNode(node, d);
79
+ });
80
+ return data;
81
+ }
82
+ return data;
83
+ }
84
+
85
+ @Widget.Method()
86
+ private async loadData(node) {
87
+ const code = node.dataRef.code;
88
+ const children = await this.loadTreeData(code);
89
+ this.rawData = this.rawData.concat(children);
90
+ if (children.length) {
91
+ node.dataRef.children = [...children];
92
+ this.treeData = this.treeData.map((data) => {
93
+ return this.mergeTreeNode(node.dataRef, data);
94
+ });
95
+ }
96
+ }
97
+
98
+ public async loadMetadata(model: IModel) {
99
+ this.model = model;
100
+ }
101
+
102
+ public async mounted() {
103
+ super.mounted();
104
+ if (this.isLazyLoad) {
105
+ this.rawData = await this.loadTreeData();
106
+ this.treeData = this.rawData as any;
107
+ } else {
108
+ const field = this.model.modelFields.find((mf) => mf.name === this.getDsl().name)!;
109
+ this.rawData = (
110
+ await queryPage(
111
+ field.references!,
112
+ { pageSize: 100, condition: 'parentCode=isnull=true' },
113
+ undefined,
114
+ undefined,
115
+ {
116
+ maxDepth: 0
117
+ }
118
+ )
119
+ ).content;
120
+ this.treeData = this.buildTree(null);
121
+ }
122
+ }
123
+
124
+ @Widget.Reactive()
125
+ private treeData: ITreeNode[] = [];
126
+
127
+ private isLeaf(key) {
128
+ return !this.rawData.find((d) => {
129
+ const parent = d[this.getDsl().children[0].parentKey as string] as Record<string, unknown>;
130
+ return parent && parent[this.getDsl().children[0].valueKey as string] === key;
131
+ });
132
+ }
133
+
134
+ private resolveRsql(data: Record<string, unknown>) {
135
+ return this.getDsl().children[0].rsql;
136
+ }
137
+
138
+ @Widget.Method()
139
+ private onSelect(selectKeys: string[]) {
140
+ const data = this.rawData.find((d) => d[this.getDsl().children[0].valueKey as string] === selectKeys[0]);
141
+
142
+ if (data) {
143
+ const keys: string[] = [];
144
+ const values: any[] = [];
145
+
146
+ for (const key in data) {
147
+ if (data.hasOwnProperty(key)) {
148
+ keys.push(key);
149
+ values.push(data[key]);
150
+ }
151
+ }
152
+
153
+ // eslint-disable-next-line @typescript-eslint/no-implied-eval
154
+ const fun = new Function(...keys, `return \`${this.getDsl().children[0].rsql}\``);
155
+ this.searchCondition = fun.call(null, ...values);
156
+ // fixme @zbh 20230417 改版
157
+ // this.reload$.subject.next(this.searchCondition);
158
+ } else {
159
+ this.searchCondition = '';
160
+ // this.reload$.subject.next(this.searchCondition);
161
+ }
162
+ }
163
+
164
+ public getSearchCondition(): string {
165
+ return this.searchCondition;
166
+ }
167
+
168
+ @Widget.Reactive()
169
+ private get proxyTreeData() {
170
+ const isShowNode = (node: ITreeNode) => {
171
+ if (node.title.indexOf(this.searchText) !== -1) {
172
+ return true;
173
+ }
174
+ if (!node.children.length) {
175
+ return false;
176
+ }
177
+ return node.children.map((c) => isShowNode(c)).includes(true);
178
+ };
179
+
180
+ const filterNode = (node: ITreeNode, arr: ITreeNode[]) => {
181
+ if (isShowNode(node)) {
182
+ const rnode: ITreeNode = { ...node, children: [], slots: { icon: 'icon' } };
183
+ arr.push(rnode);
184
+ node.children.forEach((c) => filterNode(c, rnode.children));
185
+ }
186
+ };
187
+
188
+ const res: ITreeNode[] = [];
189
+ this.treeData.forEach((td) => filterNode(td, res));
190
+ return res;
191
+ }
192
+
193
+ @Widget.Reactive()
194
+ private searchText = '';
195
+
196
+ @Widget.Method()
197
+ private onChange(e) {
198
+ this.searchText = e.target.value;
199
+ }
200
+
201
+ private buildTree(node: ITreeNode | null) {
202
+ const result: ITreeNode[] = [];
203
+ if (!node) {
204
+ this.rawData
205
+ .filter((d) => d[this.getDsl().children[0].parentKey as string] === undefined)
206
+ .forEach((d) =>
207
+ result.push({
208
+ title: d[this.getDsl().children[0].labelKey as string] as string,
209
+ key: d[this.getDsl().children[0].valueKey as string] as string,
210
+ children: [],
211
+ isLeaf: false,
212
+ url: (d.logo as any) ? (d.logo as any).url : ''
213
+ })
214
+ );
215
+ } else {
216
+ this.rawData
217
+ .filter((d) => {
218
+ const parent = d[this.getDsl().children[0].parentKey as string] as Record<string, unknown>;
219
+ return parent && parent[this.getDsl().children[0].valueKey as string] === node.key;
220
+ })
221
+ .forEach((d) =>
222
+ result.push({
223
+ title: d[this.getDsl().children[0].labelKey as string] as string,
224
+ key: d[this.getDsl().children[0].valueKey as string] as string,
225
+ children: [],
226
+ isLeaf: false,
227
+ url: (d.logo as any) ? (d.logo as any).url : ''
228
+ })
229
+ );
230
+ }
231
+ result.forEach((r) => (r.children = this.buildTree(r)));
232
+ if (result.length === 0) {
233
+ node && (node.isLeaf = true);
234
+ }
235
+ return result;
236
+ }
237
+ }
@@ -0,0 +1,4 @@
1
+ @import './layout.scss';
2
+ @import '../menu/style/index.scss';
3
+
4
+ @import '../multi-tabs/style/index.scss';
@@ -0,0 +1,229 @@
1
+ .k-container {
2
+ height: 100vh;
3
+ overflow: hidden;
4
+ }
5
+
6
+ .k-layout * {
7
+ box-sizing: border-box;
8
+ }
9
+
10
+ .k-layout-sidebar-horizontal {
11
+ flex: 1;
12
+ overflow: hidden;
13
+ width: 100%;
14
+ }
15
+
16
+ .k-layout {
17
+ height: 100%;
18
+ display: flex;
19
+ flex-direction: column;
20
+ flex: auto;
21
+ overflow: auto;
22
+
23
+ &.k-layout-row {
24
+ flex-direction: row;
25
+ }
26
+
27
+ &-mask {
28
+ height: 100vh;
29
+ display: flex;
30
+ flex-direction: column;
31
+
32
+ &.collapsed {
33
+ .k-oinone-application {
34
+ width: 80px;
35
+ }
36
+
37
+ .logo-background {
38
+ margin-left: 0px !important;
39
+ background-position: center !important;
40
+ }
41
+
42
+ .k-oinone-menu-wrapper {
43
+ width: 80px;
44
+ }
45
+
46
+ .app-name {
47
+ font-size: 16px !important;
48
+ color: var(--oio-text-color) !important;
49
+ letter-spacing: 0.57px !important;
50
+ text-align: right !important;
51
+ font-weight: 500;
52
+ overflow: initial;
53
+
54
+ svg {
55
+ font-size: 12px;
56
+ color: var(--oio-icon-color);
57
+ }
58
+ }
59
+
60
+ .designer-app-switcher {
61
+ width: 100px;
62
+ }
63
+
64
+ .logo-area {
65
+ margin-left: 0px !important;
66
+ background-position: center !important;
67
+ }
68
+
69
+ .designer-app-switcher-label {
70
+ svg {
71
+ font-size: 12px !important;
72
+ color: rgba(0, 0, 0, 0.25) !important;
73
+ }
74
+
75
+ .app-name {
76
+ font-size: 16px;
77
+ color: rgba(0, 0, 0, 0.85);
78
+ letter-spacing: 0.57px;
79
+ text-align: right;
80
+ font-weight: 500;
81
+
82
+ svg {
83
+ font-size: 12px;
84
+ color: rgba(0, 0, 0, 0.25);
85
+ }
86
+ }
87
+ }
88
+ }
89
+ }
90
+
91
+ &-header,
92
+ &-sider {
93
+ flex: none;
94
+ }
95
+
96
+ &-header {
97
+ height: 48px;
98
+ display: flex;
99
+ justify-content: space-between;
100
+ background: var(--oio-background);
101
+ align-items: center;
102
+ font-size: 14px;
103
+ user-select: none;
104
+ box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.06);
105
+ position: relative;
106
+
107
+ .k-layout-widget,
108
+ .k-layout-block {
109
+ height: 100%;
110
+ }
111
+
112
+ .k-layout-block {
113
+ align-items: center;
114
+ }
115
+ }
116
+
117
+ &-container {
118
+ flex: 1;
119
+ display: flex;
120
+ overflow: auto;
121
+ }
122
+
123
+ &-widget {
124
+ & > div {
125
+ height: 100%;
126
+ }
127
+
128
+ &:has(.view-height-loading-wrapper) {
129
+ position: relative;
130
+
131
+ .view-height-loading-wrapper {
132
+ position: absolute;
133
+ width: 100%;
134
+ }
135
+ }
136
+ }
137
+
138
+ &-lang {
139
+ display: flex;
140
+ align-items: center;
141
+ line-height: 48px;
142
+ cursor: pointer;
143
+
144
+ span {
145
+ height: 100%;
146
+ display: flex;
147
+ align-items: center;
148
+ color: var(--oio-header-color);
149
+ }
150
+
151
+ .oio-icon {
152
+ display: flex;
153
+ align-items: center;
154
+ }
155
+
156
+ .anticon-caret-down {
157
+ margin-left: 10px;
158
+ }
159
+ }
160
+
161
+ &-extra-btn {
162
+ position: relative;
163
+ display: flex;
164
+
165
+ .btn {
166
+ display: flex;
167
+ align-items: center;
168
+ padding: 0 10px;
169
+ margin: 0 5px;
170
+ cursor: pointer;
171
+
172
+ .oio-icon {
173
+ // color: var(--oio-default-icon-color);
174
+ }
175
+ }
176
+
177
+ .msg-text {
178
+ margin-left: 10px;
179
+ color: var(--oio-header-color);
180
+ }
181
+ }
182
+
183
+ &-block {
184
+ display: flex;
185
+ flex-wrap: wrap;
186
+ }
187
+
188
+ &-sider {
189
+ overflow-y: auto;
190
+ border-right: solid 1px #eee;
191
+ }
192
+
193
+ &-sider::-webkit-scrollbar {
194
+ display: none;
195
+ }
196
+
197
+ &-content {
198
+ flex: auto;
199
+ overflow: auto;
200
+ background: var(--oio-body-background);
201
+ display: flex;
202
+ flex-direction: column;
203
+ row-gap: var(--oio-padding-sm);
204
+ padding: var(--oio-padding-lg);
205
+
206
+ & > * {
207
+ flex-grow: 0;
208
+ flex-shrink: 0;
209
+
210
+ &:last-child {
211
+ flex-grow: 1;
212
+ flex-shrink: 1;
213
+ }
214
+ }
215
+ }
216
+ }
217
+
218
+ .k-language-dropdown {
219
+ background-color: var(--oio-background);
220
+
221
+ .ant-dropdown-menu-item,
222
+ .ant-dropdown-menu-submenu-title {
223
+ color: var(--oio-text-color);
224
+
225
+ &:hover {
226
+ color: var(--oio-hover-text-color);
227
+ }
228
+ }
229
+ }