adtec-core-package 2.4.9 → 2.5.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 (344) hide show
  1. package/.editorconfig +6 -6
  2. package/.prettierrc.json +7 -7
  3. package/.vscode/extensions.json +8 -8
  4. package/README.en.md +36 -36
  5. package/README.md +39 -39
  6. package/env.d.ts +1 -1
  7. package/eslint.config.js +56 -56
  8. package/index.html +13 -13
  9. package/package.json +71 -71
  10. package/src/App.vue +9 -9
  11. package/src/api/BasicApi.ts +26 -26
  12. package/src/api/DeptInfoApi.ts +19 -19
  13. package/src/api/DocumentApi.ts +27 -27
  14. package/src/api/EmployeeInfoApi.ts +17 -17
  15. package/src/api/SysDictCacheApi.ts +29 -29
  16. package/src/api/SysUserApi.ts +35 -35
  17. package/src/api/framework.ts +12 -12
  18. package/src/api/workflow/workflow.ts +31 -31
  19. package/src/api/workflow/workflowCommentApi.ts +23 -23
  20. package/src/api/workflow/workflowInstApi.ts +72 -72
  21. package/src/assets/base.css +86 -86
  22. package/src/assets/logo.svg +1 -1
  23. package/src/assets/main.css +35 -35
  24. package/src/assets/style/ant.scss +19 -19
  25. package/src/assets/style/index.less +180 -180
  26. package/src/assets/style/transition.scss +49 -49
  27. package/src/components/ElCardList.vue +64 -64
  28. package/src/components/ElFlex/ElFlex.vue +297 -297
  29. package/src/components/ElTotalTools.vue +70 -70
  30. package/src/components/OperationAuth/operationAuth.vue +43 -43
  31. package/src/components/RichTextEditor/RichTextEditor.vue +442 -442
  32. package/src/components/Scrollbars/ElScrollbars.vue +21 -21
  33. package/src/components/Search/ElIconSearch.vue +267 -267
  34. package/src/components/Search/ElSearch.vue +154 -154
  35. package/src/components/SelectInDicators/SelectInDicators.vue +225 -225
  36. package/src/components/SelectInDicators/api/DataIndicatorsApi.ts +28 -28
  37. package/src/components/SelectInDicators/interface/IComIndex.ts +26 -26
  38. package/src/components/SelectInDicators/interface/IComIndexAttri.ts +18 -18
  39. package/src/components/Table/ElTableColumnDynamic.vue +25 -25
  40. package/src/components/Table/ElTableColumnEdit.vue +265 -265
  41. package/src/components/Table/ElTableTool.ts +37 -37
  42. package/src/components/Title/ElTitle.vue +53 -53
  43. package/src/components/autoToolTip/ElAutoToolTip.vue +62 -62
  44. package/src/components/baseEcharts/index.vue +48 -48
  45. package/src/components/bpmntree/api/modules/role.ts +31 -31
  46. package/src/components/bpmntree/api/modules/user.ts +17 -17
  47. package/src/components/bpmntree/components/AdvancedFilter/Operator.vue +112 -112
  48. package/src/components/bpmntree/components/AdvancedFilter/Trigger.vue +23 -23
  49. package/src/components/bpmntree/components/AdvancedFilter/index.vue +230 -230
  50. package/src/components/bpmntree/components/AdvancedFilter/type.ts +20 -20
  51. package/src/components/bpmntree/components/FlowIcon/index.scss +7 -7
  52. package/src/components/bpmntree/components/FlowIcon/index.tsx +68 -68
  53. package/src/components/bpmntree/components/Render/render.vue +90 -90
  54. package/src/components/bpmntree/components/Render/type.ts +12 -12
  55. package/src/components/bpmntree/components/RoleSelector/RolePicker.vue +264 -264
  56. package/src/components/bpmntree/components/RoleSelector/RoleTag.vue +48 -48
  57. package/src/components/bpmntree/components/RoleSelector/index.vue +113 -113
  58. package/src/components/bpmntree/components/UserSelector/UserTag.vue +73 -73
  59. package/src/components/bpmntree/components/UserSelector/index.vue +140 -140
  60. package/src/components/bpmntree/hooks/useDraggableScroll.ts +44 -44
  61. package/src/components/bpmntree/typings/index.d.ts +1 -1
  62. package/src/components/bpmntree/views/flowDesign/index.vue +653 -653
  63. package/src/components/bpmntree/views/flowDesign/nodes/Add.vue +184 -184
  64. package/src/components/bpmntree/views/flowDesign/nodes/ApprovalNode.vue +127 -127
  65. package/src/components/bpmntree/views/flowDesign/nodes/CcNode.vue +93 -93
  66. package/src/components/bpmntree/views/flowDesign/nodes/ConcurrentNode.vue +61 -61
  67. package/src/components/bpmntree/views/flowDesign/nodes/ConditionNode.vue +60 -60
  68. package/src/components/bpmntree/views/flowDesign/nodes/EndNode.vue +80 -80
  69. package/src/components/bpmntree/views/flowDesign/nodes/ExclusiveNode.vue +20 -20
  70. package/src/components/bpmntree/views/flowDesign/nodes/GatewayNode.vue +173 -173
  71. package/src/components/bpmntree/views/flowDesign/nodes/InclusiveNode.vue +20 -20
  72. package/src/components/bpmntree/views/flowDesign/nodes/JumpNode.vue +49 -49
  73. package/src/components/bpmntree/views/flowDesign/nodes/Node.vue +346 -346
  74. package/src/components/bpmntree/views/flowDesign/nodes/NotifyNode.vue +115 -115
  75. package/src/components/bpmntree/views/flowDesign/nodes/ParallelNode.vue +20 -20
  76. package/src/components/bpmntree/views/flowDesign/nodes/PopoverView.vue +78 -78
  77. package/src/components/bpmntree/views/flowDesign/nodes/StartNode.vue +84 -84
  78. package/src/components/bpmntree/views/flowDesign/nodes/TimerNode.vue +50 -50
  79. package/src/components/bpmntree/views/flowDesign/nodes/TreeNode.vue +45 -45
  80. package/src/components/bpmntree/views/flowDesign/nodes/type.ts +204 -204
  81. package/src/components/bpmntree/views/flowDesign/panels/ApprovalPanel.vue +581 -581
  82. package/src/components/bpmntree/views/flowDesign/panels/AssigneePanel.vue +120 -120
  83. package/src/components/bpmntree/views/flowDesign/panels/CcPanel.vue +99 -99
  84. package/src/components/bpmntree/views/flowDesign/panels/ConditionPanel.vue +41 -41
  85. package/src/components/bpmntree/views/flowDesign/panels/EndPanel.vue +18 -18
  86. package/src/components/bpmntree/views/flowDesign/panels/ExecutionListeners.vue +110 -110
  87. package/src/components/bpmntree/views/flowDesign/panels/JumpPanel.vue +32 -32
  88. package/src/components/bpmntree/views/flowDesign/panels/NotifyPanel.vue +101 -101
  89. package/src/components/bpmntree/views/flowDesign/panels/ParaPanel.vue +248 -248
  90. package/src/components/bpmntree/views/flowDesign/panels/StartPanel.vue +160 -160
  91. package/src/components/bpmntree/views/flowDesign/panels/TaskListeners.vue +110 -110
  92. package/src/components/bpmntree/views/flowDesign/panels/TimerPanel.vue +51 -51
  93. package/src/components/bpmntree/views/flowDesign/panels/index.vue +85 -85
  94. package/src/components/bpmntree/views/view.index.vue +291 -291
  95. package/src/components/business/comp.selectUser.vue +60 -60
  96. package/src/components/business/comp.userForm.vue +311 -311
  97. package/src/components/business/userSelect.vue +413 -413
  98. package/src/components/icon/ElIconBtn.vue +243 -243
  99. package/src/components/icon/ElIcons.vue +38 -38
  100. package/src/components/kFrame/IframeOptions.ts +116 -116
  101. package/src/components/kFrame/KFrame.vue +161 -161
  102. package/src/components/tooltip/index.ts +11 -11
  103. package/src/components/tooltip/src/tooltip.ts +518 -518
  104. package/src/components/upload/ElUploads.vue +364 -364
  105. package/src/components/upload/FileView.vue +214 -214
  106. package/src/components/upload/FileViewComponents.vue +56 -56
  107. package/src/components/vxeGrid/index.vue +36 -36
  108. package/src/components/workflow/TaskOperation.vue +247 -247
  109. package/src/components/workflow/WorkflowTodoDialog.vue +91 -91
  110. package/src/components/workflow/components/AddOrMinusMultiDialog.vue +159 -159
  111. package/src/components/workflow/components/CheckDialog.vue +367 -367
  112. package/src/components/workflow/components/ProcessDetailComp.vue +157 -157
  113. package/src/components/workflow/components/ProcessDetailDialog.vue +129 -129
  114. package/src/components/workflow/components/ProcessInstance.vue +117 -117
  115. package/src/components/workflow/components/ProcessInstanceStep.vue +377 -377
  116. package/src/components/workflow/components/SelectAssigneeDialog.vue +109 -109
  117. package/src/components/workflow/components/SelectReturnActivityDialog.vue +104 -104
  118. package/src/config/ElementPlusConfig.ts +95 -95
  119. package/src/config/VxeTableConfig.ts +254 -254
  120. package/src/css/elementUI/affix.scss +7 -7
  121. package/src/css/elementUI/alert.scss +115 -115
  122. package/src/css/elementUI/anchor-link.scss +41 -41
  123. package/src/css/elementUI/anchor.scss +88 -88
  124. package/src/css/elementUI/aside.scss +8 -8
  125. package/src/css/elementUI/autocomplete.scss +89 -89
  126. package/src/css/elementUI/avatar.scss +55 -55
  127. package/src/css/elementUI/backtop.scss +29 -29
  128. package/src/css/elementUI/badge.scss +58 -58
  129. package/src/css/elementUI/base.scss +3 -3
  130. package/src/css/elementUI/breadcrumb.scss +62 -62
  131. package/src/css/elementUI/button-group.scss +80 -80
  132. package/src/css/elementUI/button.scss +304 -304
  133. package/src/css/elementUI/calendar.scss +80 -80
  134. package/src/css/elementUI/card.scss +45 -45
  135. package/src/css/elementUI/carousel-item.scss +58 -58
  136. package/src/css/elementUI/carousel.scss +188 -188
  137. package/src/css/elementUI/cascader-panel.scss +138 -138
  138. package/src/css/elementUI/cascader.scss +230 -230
  139. package/src/css/elementUI/check-tag.scss +60 -60
  140. package/src/css/elementUI/checkbox-button.scss +140 -140
  141. package/src/css/elementUI/checkbox-group.scss +7 -7
  142. package/src/css/elementUI/checkbox.scss +298 -298
  143. package/src/css/elementUI/col.scss +48 -48
  144. package/src/css/elementUI/collapse.scss +70 -70
  145. package/src/css/elementUI/color/index.scss +20 -20
  146. package/src/css/elementUI/color-picker.scss +392 -392
  147. package/src/css/elementUI/common/popup.scss +47 -47
  148. package/src/css/elementUI/common/transition.scss +122 -122
  149. package/src/css/elementUI/common/var.scss +1549 -1549
  150. package/src/css/elementUI/container.scss +14 -14
  151. package/src/css/elementUI/dark/css-vars.scss +39 -39
  152. package/src/css/elementUI/dark/var.scss +222 -222
  153. package/src/css/elementUI/date-picker/date-picker.scss +110 -110
  154. package/src/css/elementUI/date-picker/date-range-picker.scss +113 -113
  155. package/src/css/elementUI/date-picker/date-table.scss +158 -158
  156. package/src/css/elementUI/date-picker/month-table.scss +112 -112
  157. package/src/css/elementUI/date-picker/picker-panel.scss +131 -131
  158. package/src/css/elementUI/date-picker/picker.scss +219 -219
  159. package/src/css/elementUI/date-picker/time-picker.scss +90 -90
  160. package/src/css/elementUI/date-picker/time-range-picker.scss +33 -33
  161. package/src/css/elementUI/date-picker/time-spinner.scss +111 -111
  162. package/src/css/elementUI/date-picker/year-table.scss +108 -108
  163. package/src/css/elementUI/date-picker.scss +9 -9
  164. package/src/css/elementUI/descriptions-item.scss +73 -73
  165. package/src/css/elementUI/descriptions.scss +152 -152
  166. package/src/css/elementUI/dialog.scss +199 -199
  167. package/src/css/elementUI/display.scss +12 -12
  168. package/src/css/elementUI/divider.scss +48 -48
  169. package/src/css/elementUI/drawer.scss +164 -164
  170. package/src/css/elementUI/dropdown.scss +208 -208
  171. package/src/css/elementUI/empty.scss +49 -49
  172. package/src/css/elementUI/footer.scss +12 -12
  173. package/src/css/elementUI/form.scss +243 -243
  174. package/src/css/elementUI/header.scss +12 -12
  175. package/src/css/elementUI/icon.scss +45 -45
  176. package/src/css/elementUI/image-viewer.scss +139 -139
  177. package/src/css/elementUI/image.scss +49 -49
  178. package/src/css/elementUI/index.scss +110 -110
  179. package/src/css/elementUI/input-number.scss +178 -178
  180. package/src/css/elementUI/input.scss +478 -478
  181. package/src/css/elementUI/link.scss +90 -90
  182. package/src/css/elementUI/loading.scss +104 -104
  183. package/src/css/elementUI/main.scss +14 -14
  184. package/src/css/elementUI/mention.scss +88 -88
  185. package/src/css/elementUI/menu.scss +339 -339
  186. package/src/css/elementUI/message-box.scss +213 -213
  187. package/src/css/elementUI/message.scss +98 -98
  188. package/src/css/elementUI/mixins/_button.scss +165 -165
  189. package/src/css/elementUI/mixins/_col.scss +33 -33
  190. package/src/css/elementUI/mixins/_var.scss +67 -67
  191. package/src/css/elementUI/mixins/config.scss +5 -5
  192. package/src/css/elementUI/mixins/function.scss +88 -88
  193. package/src/css/elementUI/mixins/mixins.scss +237 -237
  194. package/src/css/elementUI/mixins/utils.scss +39 -39
  195. package/src/css/elementUI/notification.scss +104 -104
  196. package/src/css/elementUI/option-group.scss +33 -33
  197. package/src/css/elementUI/option.scss +71 -71
  198. package/src/css/elementUI/overlay.scss +17 -17
  199. package/src/css/elementUI/page-header.scss +60 -60
  200. package/src/css/elementUI/pagination.scss +238 -238
  201. package/src/css/elementUI/popconfirm.scss +16 -16
  202. package/src/css/elementUI/popover.scss +61 -61
  203. package/src/css/elementUI/popper.scss +106 -106
  204. package/src/css/elementUI/progress.scss +179 -179
  205. package/src/css/elementUI/radio-button.scss +169 -169
  206. package/src/css/elementUI/radio-group.scss +9 -9
  207. package/src/css/elementUI/radio.scss +215 -215
  208. package/src/css/elementUI/rate.scss +108 -108
  209. package/src/css/elementUI/reset.scss +98 -98
  210. package/src/css/elementUI/result.scss +57 -57
  211. package/src/css/elementUI/row.scss +35 -35
  212. package/src/css/elementUI/scrollbar.scss +97 -97
  213. package/src/css/elementUI/segmented.scss +183 -183
  214. package/src/css/elementUI/select-dropdown-v2.scss +1 -1
  215. package/src/css/elementUI/select-dropdown.scss +57 -57
  216. package/src/css/elementUI/select-v2.scss +4 -4
  217. package/src/css/elementUI/select.scss +253 -253
  218. package/src/css/elementUI/skeleton-item.scss +83 -83
  219. package/src/css/elementUI/skeleton.scss +44 -44
  220. package/src/css/elementUI/slider.scss +212 -212
  221. package/src/css/elementUI/space.scss +20 -20
  222. package/src/css/elementUI/spinner.scss +43 -43
  223. package/src/css/elementUI/statistic.scss +35 -35
  224. package/src/css/elementUI/step.scss +316 -316
  225. package/src/css/elementUI/steps.scss +21 -21
  226. package/src/css/elementUI/switch.scss +300 -300
  227. package/src/css/elementUI/table-column.scss +98 -98
  228. package/src/css/elementUI/table-v2.scss +236 -236
  229. package/src/css/elementUI/table.scss +697 -697
  230. package/src/css/elementUI/tabs.scss +659 -659
  231. package/src/css/elementUI/tag.scss +181 -181
  232. package/src/css/elementUI/text.scss +51 -51
  233. package/src/css/elementUI/time-picker.scss +5 -5
  234. package/src/css/elementUI/time-select.scss +37 -37
  235. package/src/css/elementUI/timeline-item.scss +84 -84
  236. package/src/css/elementUI/timeline.scss +46 -46
  237. package/src/css/elementUI/tooltip-v2.scss +95 -95
  238. package/src/css/elementUI/tour.scss +187 -187
  239. package/src/css/elementUI/transfer.scss +203 -203
  240. package/src/css/elementUI/tree-select.scss +41 -41
  241. package/src/css/elementUI/tree.scss +134 -134
  242. package/src/css/elementUI/upload.scss +654 -654
  243. package/src/css/elementUI/var.scss +87 -87
  244. package/src/css/elementUI/virtual-list.scss +40 -40
  245. package/src/css/vxeTableUI/all.scss +9 -9
  246. package/src/css/vxeTableUI/base.scss +16 -16
  247. package/src/css/vxeTableUI/components/colgroup.scss +0 -0
  248. package/src/css/vxeTableUI/components/column.scss +0 -0
  249. package/src/css/vxeTableUI/components/grid.scss +83 -83
  250. package/src/css/vxeTableUI/components/icon.scss +1017 -1017
  251. package/src/css/vxeTableUI/components/iconTable.scss +205 -205
  252. package/src/css/vxeTableUI/components/old-icon.scss +715 -715
  253. package/src/css/vxeTableUI/components/table-module/all.scss +6 -6
  254. package/src/css/vxeTableUI/components/table-module/custom.scss +490 -490
  255. package/src/css/vxeTableUI/components/table-module/edit.scss +0 -0
  256. package/src/css/vxeTableUI/components/table-module/export.scss +130 -130
  257. package/src/css/vxeTableUI/components/table-module/filter.scss +127 -127
  258. package/src/css/vxeTableUI/components/table-module/keyboard.scss +0 -0
  259. package/src/css/vxeTableUI/components/table-module/menu.scss +85 -85
  260. package/src/css/vxeTableUI/components/table-module/validator.scss +0 -0
  261. package/src/css/vxeTableUI/components/table.scss +2256 -2256
  262. package/src/css/vxeTableUI/components/toolbar.scss +99 -99
  263. package/src/css/vxeTableUI/components/ui.scss +0 -0
  264. package/src/css/vxeTableUI/components/v-x-e-table.scss +0 -0
  265. package/src/css/vxeTableUI/cssvar.scss +2 -2
  266. package/src/css/vxeTableUI/default.scss +2 -2
  267. package/src/css/vxeTableUI/helpers/baseMixin.scss +82 -82
  268. package/src/css/vxeTableUI/icon/iconfont.ttf +0 -0
  269. package/src/css/vxeTableUI/icon/iconfont.woff +0 -0
  270. package/src/css/vxeTableUI/icon/iconfont.woff2 +0 -0
  271. package/src/css/vxeTableUI/index.scss +4 -4
  272. package/src/css/vxeTableUI/modules.scss +5 -5
  273. package/src/css/vxeTableUI/theme/base.scss +88 -88
  274. package/src/css/vxeTableUI/theme/dark.scss +46 -46
  275. package/src/css/vxeTableUI/theme/light.scss +41 -41
  276. package/src/css/vxeTableUI/variable.scss +41 -41
  277. package/src/directives/vKeydown.ts +91 -91
  278. package/src/hooks/useDictHooks.ts +120 -119
  279. package/src/hooks/useEcharts.ts +58 -58
  280. package/src/hooks/useFileView.ts +11 -11
  281. package/src/hooks/useListenerHooks.ts +137 -137
  282. package/src/hooks/useMessageHooks.ts +132 -132
  283. package/src/hooks/useOpenNewMenu.ts +30 -30
  284. package/src/hooks/usePermissionHooks.ts +139 -139
  285. package/src/hooks/usePermissionToolHooks.ts +21 -21
  286. package/src/hooks/useResetRefHooks.ts +18 -18
  287. package/src/hooks/userWorkflowHooks.ts +112 -112
  288. package/src/hooks/workflowTodo.ts +85 -85
  289. package/src/interface/BaseEntity.ts +30 -30
  290. package/src/interface/IMdmDept.ts +84 -84
  291. package/src/interface/IMdmEmployee.ts +153 -153
  292. package/src/interface/IMdmEmployeeQuery.ts +21 -21
  293. package/src/interface/IMdmOrg.ts +29 -29
  294. package/src/interface/IMdmOrgQuery.ts +13 -13
  295. package/src/interface/IOrgDeptInfo.ts +12 -12
  296. package/src/interface/ISortList.ts +6 -6
  297. package/src/interface/ISysDictDataCacheVo.ts +46 -46
  298. package/src/interface/ISysDictType.ts +37 -37
  299. package/src/interface/ISysMenuDataVo.ts +22 -22
  300. package/src/interface/ISysMenuInfoVo.ts +83 -83
  301. package/src/interface/ISysMenuOperationVo.ts +21 -21
  302. package/src/interface/ISysUploadFiles.ts +16 -16
  303. package/src/interface/ISysUserInfo.ts +70 -70
  304. package/src/interface/IUserBaseInfo.ts +90 -90
  305. package/src/interface/IUserPermissionVo.ts +44 -44
  306. package/src/interface/IVxeTable.ts +1 -1
  307. package/src/interface/Message.ts +73 -73
  308. package/src/interface/PageData.ts +17 -17
  309. package/src/interface/ResponseData.ts +16 -16
  310. package/src/interface/dictMapType.ts +11 -11
  311. package/src/interface/enum/FlexEnum.ts +85 -85
  312. package/src/interface/enum/MessageEnum.ts +41 -41
  313. package/src/interface/workflow/IWfProcessDefVo.ts +14 -14
  314. package/src/interface/workflow/IWfReturnNodeVo.ts +16 -16
  315. package/src/interface/workflow/IWfTaskAskVo.ts +70 -70
  316. package/src/interface/workflow/IWfTaskQueryVo.ts +30 -30
  317. package/src/interface/workflow/IWfTaskUsersVo.ts +21 -21
  318. package/src/interface/workflow/IWfTaskVo.ts +192 -192
  319. package/src/interface/workflow/IWorkflowCommentVo.ts +24 -24
  320. package/src/interface/workflow/workflow.ts +22 -22
  321. package/src/main.ts +14 -14
  322. package/src/mixin/globalMixin.ts +48 -48
  323. package/src/packages/index.ts +18 -18
  324. package/src/packages/text.vue +13 -13
  325. package/src/plugins/echartsConfig.ts +74 -74
  326. package/src/plugins/plugins.ts +12 -12
  327. package/src/plugins/renderDialog.ts +74 -74
  328. package/src/router/index.ts +23 -23
  329. package/src/stores/dictStore.ts +51 -51
  330. package/src/stores/messageStore.ts +49 -49
  331. package/src/stores/permissionStore.ts +112 -112
  332. package/src/stores/storeConfig.ts +23 -23
  333. package/src/stores/userInfoStore.ts +31 -31
  334. package/src/utils/AxiosConfig.ts +226 -226
  335. package/src/utils/FrameworkUtils.ts +370 -370
  336. package/src/utils/commonUtils.ts +335 -335
  337. package/src/utils/encrypt.ts +18 -18
  338. package/src/utils/modules.ts +8 -8
  339. package/src/utils/request.ts +76 -76
  340. package/src/utils/tree.ts +50 -50
  341. package/tsconfig.app.json +12 -12
  342. package/tsconfig.json +11 -11
  343. package/tsconfig.node.json +18 -18
  344. package/vite.config.ts +38 -38
@@ -1,659 +1,659 @@
1
- @use 'mixins/mixins' as *;
2
- @use 'common/var' as *;
3
-
4
- @include b(tabs) {
5
- @include set-component-css-var('tabs', $tabs);
6
- display: flex;
7
-
8
- @include e(header) {
9
- padding: 0;
10
- position: relative;
11
- margin: 0 0 8px;
12
- display: flex;
13
- align-items: center;
14
- justify-content: space-between;
15
- }
16
- @include e(header-vertical) {
17
- flex-direction: column;
18
- }
19
- @include e(active-bar) {
20
- position: absolute;
21
- bottom: 0;
22
- left: 0;
23
- height: 2px;
24
- background-color: getCssVar('color-primary');
25
- z-index: 1;
26
- transition: width getCssVar('transition-duration')
27
- getCssVar('transition-function-ease-in-out-bezier'),
28
- transform getCssVar('transition-duration')
29
- getCssVar('transition-function-ease-in-out-bezier');
30
- list-style: none;
31
- }
32
- @include e(new-tab) {
33
- display: flex;
34
- align-items: center;
35
- justify-content: center;
36
- border: 1px solid getCssVar('border-color');
37
- height: 20px;
38
- width: 20px;
39
- line-height: 20px;
40
- margin: 10px 0 10px 10px;
41
- border-radius: 3px;
42
- text-align: center;
43
- font-size: 12px;
44
- color: getCssVar('text-color', 'primary');
45
- cursor: pointer;
46
- transition: all 0.15s;
47
-
48
- .is-icon-plus {
49
- height: inherit;
50
- width: inherit;
51
- transform: scale(0.8, 0.8);
52
-
53
- svg {
54
- vertical-align: middle;
55
- }
56
- }
57
-
58
- &:hover {
59
- color: getCssVar('color-primary');
60
- }
61
- }
62
- @include e(new-tab-vertical) {
63
- margin-left: 0;
64
- }
65
- @include e(nav-wrap) {
66
- overflow: hidden;
67
- margin-bottom: -1px;
68
- position: relative;
69
- flex: 1 auto;
70
-
71
- &::after {
72
- content: '';
73
- position: absolute;
74
- left: 0;
75
- bottom: 0;
76
- width: 100%;
77
- height: 2px;
78
- background-color: getCssVar('border-color-light');
79
- z-index: getCssVar('index-normal');
80
- }
81
-
82
- @include when(scrollable) {
83
- padding: 0 20px;
84
- box-sizing: border-box;
85
- }
86
- }
87
- @include e(nav-scroll) {
88
- overflow: hidden;
89
- }
90
- @include e((nav-next, nav-prev)) {
91
- position: absolute;
92
- cursor: pointer;
93
- line-height: 44px;
94
- font-size: 12px;
95
- color: getCssVar('text-color', 'secondary');
96
- width: 20px;
97
- text-align: center;
98
- }
99
- @include e(nav-next) {
100
- right: 0;
101
- }
102
- @include e(nav-prev) {
103
- left: 0;
104
- }
105
- @include e(nav) {
106
- display: flex;
107
- white-space: nowrap;
108
- position: relative;
109
- transition: transform getCssVar('transition-duration');
110
- float: left;
111
- z-index: calc(#{getCssVar('index-normal')} + 1);
112
-
113
- @include when(stretch) {
114
- min-width: 100%;
115
- display: flex;
116
- & > * {
117
- flex: 1;
118
- text-align: center;
119
- }
120
- }
121
- }
122
- @include e(item) {
123
- padding: 0 20px;
124
- height: getCssVar('tabs', 'header-height');
125
- box-sizing: border-box;
126
- display: flex;
127
- align-items: center;
128
- justify-content: center;
129
- list-style: none;
130
- font-size: getCssVar('font-size-base');
131
- font-weight: 500;
132
- color: getCssVar('text-color', 'primary');
133
- position: relative;
134
-
135
- &:focus,
136
- &:focus:active {
137
- outline: none;
138
- }
139
-
140
- &:focus-visible {
141
- box-shadow: 0 0 2px 2px getCssVar('color-primary') inset;
142
- border-radius: 3px;
143
- }
144
-
145
- & .is-icon-close {
146
- border-radius: 50%;
147
- text-align: center;
148
- transition: all getCssVar('transition-duration')
149
- getCssVar('transition-function-ease-in-out-bezier');
150
- margin-left: 5px;
151
-
152
- &:before {
153
- transform: scale(0.9);
154
- display: inline-block;
155
- }
156
-
157
- &:hover {
158
- background-color: getCssVar('text-color', 'placeholder');
159
- color: $color-white;
160
- }
161
- }
162
-
163
- @include when(active) {
164
- color: getCssVar('color-primary');
165
- }
166
-
167
- &:hover {
168
- color: getCssVar('color-primary');
169
- cursor: pointer;
170
- }
171
-
172
- @include when(disabled) {
173
- color: getCssVar('disabled-text-color');
174
- cursor: not-allowed;
175
- }
176
- }
177
- @include e(content) {
178
- overflow: hidden;
179
- position: relative;
180
- flex-grow: 1;
181
- }
182
- @include m((top, bottom)) {
183
- > .#{$namespace}-tabs__header {
184
- .#{$namespace}-tabs__item:nth-child(2) {
185
- padding-left: 0;
186
- }
187
- .#{$namespace}-tabs__item:last-child {
188
- padding-right: 0;
189
- }
190
- }
191
-
192
- &.#{$namespace}-tabs--border-card,
193
- &.#{$namespace}-tabs--card {
194
- > .#{$namespace}-tabs__header {
195
- .#{$namespace}-tabs__item:nth-child(2) {
196
- padding-left: 20px;
197
- }
198
- .#{$namespace}-tabs__item:last-child {
199
- padding-right: 20px;
200
- }
201
- }
202
- }
203
- }
204
- @include m(card) {
205
- > .#{$namespace}-tabs__header {
206
- border-bottom: 1px solid getCssVar('border-color-light');
207
- height: getCssVar('tabs', 'header-height');
208
- }
209
- > .#{$namespace}-tabs__header .#{$namespace}-tabs__nav-wrap::after {
210
- content: none;
211
- }
212
- > .#{$namespace}-tabs__header .#{$namespace}-tabs__nav {
213
- border: 1px solid getCssVar('border-color-light');
214
- border-bottom: none;
215
- border-radius: 4px 4px 0 0;
216
- box-sizing: border-box;
217
- }
218
- > .#{$namespace}-tabs__header .#{$namespace}-tabs__active-bar {
219
- display: none;
220
- }
221
- > .#{$namespace}-tabs__header .#{$namespace}-tabs__item .is-icon-close {
222
- position: relative;
223
- font-size: 12px;
224
- width: 0;
225
- height: 14px;
226
- overflow: hidden;
227
- right: -2px;
228
- transform-origin: 100% 50%;
229
- }
230
- > .#{$namespace}-tabs__header .#{$namespace}-tabs__item {
231
- border-bottom: 1px solid transparent;
232
- border-left: 1px solid getCssVar('border-color-light');
233
- transition: color getCssVar('transition-duration')
234
- getCssVar('transition-function-ease-in-out-bezier'),
235
- padding getCssVar('transition-duration')
236
- getCssVar('transition-function-ease-in-out-bezier');
237
-
238
- &:first-child {
239
- border-left: none;
240
- }
241
-
242
- &.is-closable {
243
- &:hover {
244
- padding-left: 13px;
245
- padding-right: 13px;
246
-
247
- & .is-icon-close {
248
- width: 14px;
249
- }
250
- }
251
- }
252
-
253
- &.is-active {
254
- border-bottom-color: getCssVar('bg-color');
255
-
256
- &.is-closable {
257
- padding-left: 20px;
258
- padding-right: 20px;
259
-
260
- .is-icon-close {
261
- width: 14px;
262
- }
263
- }
264
- }
265
- }
266
- }
267
- @include m(border-card) {
268
- background: getCssVar('bg-color', 'overlay');
269
- border: 1px solid getCssVar('border-color');
270
-
271
- > .#{$namespace}-tabs__content {
272
- padding: 15px;
273
- }
274
- > .#{$namespace}-tabs__header {
275
- background-color: getCssVar('fill-color', 'light');
276
- border-bottom: 1px solid getCssVar('border-color-light');
277
- margin: 0;
278
- }
279
- > .#{$namespace}-tabs__header .#{$namespace}-tabs__nav-wrap::after {
280
- content: none;
281
- }
282
- > .#{$namespace}-tabs__header .#{$namespace}-tabs__item {
283
- transition: all getCssVar('transition-duration')
284
- getCssVar('transition-function-ease-in-out-bezier');
285
- border: 1px solid transparent;
286
- margin-top: -1px;
287
- color: getCssVar('text-color', 'secondary');
288
-
289
- &:first-child {
290
- margin-left: -1px;
291
- }
292
-
293
- & + .#{$namespace}-tabs__item {
294
- margin-left: -1px;
295
- }
296
-
297
- &.is-active {
298
- color: getCssVar('color-primary');
299
- background-color: getCssVar('bg-color', 'overlay');
300
- border-right-color: getCssVar('border-color');
301
- border-left-color: getCssVar('border-color');
302
- }
303
-
304
- &:not(.is-disabled):hover {
305
- color: getCssVar('color-primary');
306
- }
307
-
308
- &.is-disabled {
309
- color: getCssVar('disabled-text-color');
310
- }
311
- }
312
-
313
- > .#{$namespace}-tabs__header
314
- .is-scrollable
315
- .#{$namespace}-tabs__item:first-child {
316
- margin-left: 0;
317
- }
318
- }
319
- @include m(bottom) {
320
- flex-direction: column;
321
-
322
- .#{$namespace}-tabs__header.is-bottom {
323
- margin-bottom: 0;
324
- margin-top: 10px;
325
- }
326
- &.#{$namespace}-tabs--border-card {
327
- .#{$namespace}-tabs__header.is-bottom {
328
- border-bottom: 0;
329
- border-top: 1px solid getCssVar('border-color');
330
- }
331
-
332
- .#{$namespace}-tabs__nav-wrap.is-bottom {
333
- margin-top: -1px;
334
- margin-bottom: 0;
335
- }
336
-
337
- .#{$namespace}-tabs__item.is-bottom:not(.is-active) {
338
- border: 1px solid transparent;
339
- }
340
-
341
- .#{$namespace}-tabs__item.is-bottom {
342
- margin: 0 -1px -1px;
343
- }
344
- }
345
- }
346
- @include m((left, right)) {
347
- overflow: hidden;
348
-
349
- .#{$namespace}-tabs__header.is-left,
350
- .#{$namespace}-tabs__header.is-right,
351
- .#{$namespace}-tabs__nav-wrap.is-left,
352
- .#{$namespace}-tabs__nav-wrap.is-right,
353
- .#{$namespace}-tabs__nav-scroll {
354
- height: 100%;
355
- }
356
-
357
- .#{$namespace}-tabs__active-bar.is-left,
358
- .#{$namespace}-tabs__active-bar.is-right {
359
- top: 0;
360
- bottom: auto;
361
- width: 2px;
362
- height: auto;
363
- }
364
-
365
- .#{$namespace}-tabs__nav-wrap.is-left,
366
- .#{$namespace}-tabs__nav-wrap.is-right {
367
- margin-bottom: 0;
368
-
369
- > .#{$namespace}-tabs__nav-prev,
370
- > .#{$namespace}-tabs__nav-next {
371
- height: 30px;
372
- line-height: 30px;
373
- width: 100%;
374
- text-align: center;
375
- cursor: pointer;
376
-
377
- i {
378
- transform: rotateZ(90deg);
379
- }
380
- }
381
-
382
- > .#{$namespace}-tabs__nav-prev {
383
- left: auto;
384
- top: 0;
385
- }
386
-
387
- > .#{$namespace}-tabs__nav-next {
388
- right: auto;
389
- bottom: 0;
390
- }
391
-
392
- &.is-scrollable {
393
- padding: 30px 0;
394
- }
395
-
396
- &::after {
397
- height: 100%;
398
- width: 2px;
399
- bottom: auto;
400
- top: 0;
401
- }
402
- }
403
-
404
- .#{$namespace}-tabs__nav.is-left,
405
- .#{$namespace}-tabs__nav.is-right {
406
- flex-direction: column;
407
- }
408
-
409
- .#{$namespace}-tabs__item.is-left {
410
- justify-content: flex-end;
411
- }
412
-
413
- .#{$namespace}-tabs__item.is-right {
414
- justify-content: flex-start;
415
- }
416
- }
417
- @include m(left) {
418
- flex-direction: row-reverse;
419
-
420
- .#{$namespace}-tabs__header.is-left {
421
- margin-bottom: 0;
422
- margin-right: 10px;
423
- }
424
- .#{$namespace}-tabs__nav-wrap.is-left {
425
- margin-right: -1px;
426
-
427
- &::after {
428
- left: auto;
429
- right: 0;
430
- }
431
- }
432
- .#{$namespace}-tabs__active-bar.is-left {
433
- right: 0;
434
- left: auto;
435
- }
436
- .#{$namespace}-tabs__item.is-left {
437
- text-align: right;
438
- }
439
-
440
- &.#{$namespace}-tabs--card {
441
- .#{$namespace}-tabs__active-bar.is-left {
442
- display: none;
443
- }
444
-
445
- .#{$namespace}-tabs__item.is-left {
446
- border-left: none;
447
- border-right: 1px solid getCssVar('border-color-light');
448
- border-bottom: none;
449
- border-top: 1px solid getCssVar('border-color-light');
450
- text-align: left;
451
- }
452
-
453
- .#{$namespace}-tabs__item.is-left:first-child {
454
- border-right: 1px solid getCssVar('border-color-light');
455
- border-top: none;
456
- }
457
-
458
- .#{$namespace}-tabs__item.is-left.is-active {
459
- border: 1px solid getCssVar('border-color-light');
460
- border-right-color: #fff;
461
- border-left: none;
462
- border-bottom: none;
463
-
464
- &:first-child {
465
- border-top: none;
466
- }
467
-
468
- &:last-child {
469
- border-bottom: none;
470
- }
471
- }
472
-
473
- .#{$namespace}-tabs__nav {
474
- border-radius: 4px 0 0 4px;
475
- border-bottom: 1px solid getCssVar('border-color-light');
476
- border-right: none;
477
- }
478
-
479
- .#{$namespace}-tabs__new-tab {
480
- float: none;
481
- }
482
- }
483
-
484
- &.#{$namespace}-tabs--border-card {
485
- .#{$namespace}-tabs__header.is-left {
486
- border-right: 1px solid getCssVar('border-color');
487
- }
488
-
489
- .#{$namespace}-tabs__item.is-left {
490
- border: 1px solid transparent;
491
- margin: -1px 0 -1px -1px;
492
-
493
- &.is-active {
494
- border-color: transparent;
495
- border-top-color: rgb(209, 219, 229);
496
- border-bottom-color: rgb(209, 219, 229);
497
- }
498
- }
499
- }
500
- }
501
- @include m(right) {
502
- .#{$namespace}-tabs__header.is-right {
503
- margin-bottom: 0;
504
- margin-left: 10px;
505
- }
506
-
507
- .#{$namespace}-tabs__nav-wrap.is-right {
508
- margin-left: -1px;
509
-
510
- &::after {
511
- left: 0;
512
- right: auto;
513
- }
514
- }
515
-
516
- .#{$namespace}-tabs__active-bar.is-right {
517
- left: 0;
518
- }
519
-
520
- &.#{$namespace}-tabs--card {
521
- .#{$namespace}-tabs__active-bar.is-right {
522
- display: none;
523
- }
524
-
525
- .#{$namespace}-tabs__item.is-right {
526
- border-bottom: none;
527
- border-top: 1px solid getCssVar('border-color-light');
528
- }
529
-
530
- .#{$namespace}-tabs__item.is-right:first-child {
531
- border-left: 1px solid getCssVar('border-color-light');
532
- border-top: none;
533
- }
534
-
535
- .#{$namespace}-tabs__item.is-right.is-active {
536
- border: 1px solid getCssVar('border-color-light');
537
- border-left-color: #fff;
538
- border-right: none;
539
- border-bottom: none;
540
-
541
- &:first-child {
542
- border-top: none;
543
- }
544
-
545
- &:last-child {
546
- border-bottom: none;
547
- }
548
- }
549
-
550
- .#{$namespace}-tabs__nav {
551
- border-radius: 0 4px 4px 0;
552
- border-bottom: 1px solid getCssVar('border-color-light');
553
- border-left: none;
554
- }
555
- }
556
- &.#{$namespace}-tabs--border-card {
557
- .#{$namespace}-tabs__header.is-right {
558
- border-left: 1px solid getCssVar('border-color');
559
- }
560
-
561
- .#{$namespace}-tabs__item.is-right {
562
- border: 1px solid transparent;
563
- margin: -1px -1px -1px 0;
564
-
565
- &.is-active {
566
- border-color: transparent;
567
- border-top-color: rgb(209, 219, 229);
568
- border-bottom-color: rgb(209, 219, 229);
569
- }
570
- }
571
- }
572
- }
573
- @include m(top) {
574
- flex-direction: column-reverse;
575
- }
576
- }
577
-
578
- .slideInRight-transition,
579
- .slideInLeft-transition {
580
- display: inline-block;
581
- }
582
-
583
- .slideInRight-enter {
584
- animation: slideInRight-enter getCssVar('transition-duration');
585
- }
586
-
587
- .slideInRight-leave {
588
- position: absolute;
589
- left: 0;
590
- right: 0;
591
- animation: slideInRight-leave getCssVar('transition-duration');
592
- }
593
-
594
- .slideInLeft-enter {
595
- animation: slideInLeft-enter getCssVar('transition-duration');
596
- }
597
-
598
- .slideInLeft-leave {
599
- position: absolute;
600
- left: 0;
601
- right: 0;
602
- animation: slideInLeft-leave getCssVar('transition-duration');
603
- }
604
-
605
- @keyframes slideInRight-enter {
606
- 0% {
607
- opacity: 0;
608
- transform-origin: 0 0;
609
- transform: translateX(100%);
610
- }
611
-
612
- to {
613
- opacity: 1;
614
- transform-origin: 0 0;
615
- transform: translateX(0);
616
- }
617
- }
618
-
619
- @keyframes slideInRight-leave {
620
- 0% {
621
- transform-origin: 0 0;
622
- transform: translateX(0);
623
- opacity: 1;
624
- }
625
-
626
- 100% {
627
- transform-origin: 0 0;
628
- transform: translateX(100%);
629
- opacity: 0;
630
- }
631
- }
632
-
633
- @keyframes slideInLeft-enter {
634
- 0% {
635
- opacity: 0;
636
- transform-origin: 0 0;
637
- transform: translateX(-100%);
638
- }
639
-
640
- to {
641
- opacity: 1;
642
- transform-origin: 0 0;
643
- transform: translateX(0);
644
- }
645
- }
646
-
647
- @keyframes slideInLeft-leave {
648
- 0% {
649
- transform-origin: 0 0;
650
- transform: translateX(0);
651
- opacity: 1;
652
- }
653
-
654
- 100% {
655
- transform-origin: 0 0;
656
- transform: translateX(-100%);
657
- opacity: 0;
658
- }
659
- }
1
+ @use 'mixins/mixins' as *;
2
+ @use 'common/var' as *;
3
+
4
+ @include b(tabs) {
5
+ @include set-component-css-var('tabs', $tabs);
6
+ display: flex;
7
+
8
+ @include e(header) {
9
+ padding: 0;
10
+ position: relative;
11
+ margin: 0 0 8px;
12
+ display: flex;
13
+ align-items: center;
14
+ justify-content: space-between;
15
+ }
16
+ @include e(header-vertical) {
17
+ flex-direction: column;
18
+ }
19
+ @include e(active-bar) {
20
+ position: absolute;
21
+ bottom: 0;
22
+ left: 0;
23
+ height: 2px;
24
+ background-color: getCssVar('color-primary');
25
+ z-index: 1;
26
+ transition: width getCssVar('transition-duration')
27
+ getCssVar('transition-function-ease-in-out-bezier'),
28
+ transform getCssVar('transition-duration')
29
+ getCssVar('transition-function-ease-in-out-bezier');
30
+ list-style: none;
31
+ }
32
+ @include e(new-tab) {
33
+ display: flex;
34
+ align-items: center;
35
+ justify-content: center;
36
+ border: 1px solid getCssVar('border-color');
37
+ height: 20px;
38
+ width: 20px;
39
+ line-height: 20px;
40
+ margin: 10px 0 10px 10px;
41
+ border-radius: 3px;
42
+ text-align: center;
43
+ font-size: 12px;
44
+ color: getCssVar('text-color', 'primary');
45
+ cursor: pointer;
46
+ transition: all 0.15s;
47
+
48
+ .is-icon-plus {
49
+ height: inherit;
50
+ width: inherit;
51
+ transform: scale(0.8, 0.8);
52
+
53
+ svg {
54
+ vertical-align: middle;
55
+ }
56
+ }
57
+
58
+ &:hover {
59
+ color: getCssVar('color-primary');
60
+ }
61
+ }
62
+ @include e(new-tab-vertical) {
63
+ margin-left: 0;
64
+ }
65
+ @include e(nav-wrap) {
66
+ overflow: hidden;
67
+ margin-bottom: -1px;
68
+ position: relative;
69
+ flex: 1 auto;
70
+
71
+ &::after {
72
+ content: '';
73
+ position: absolute;
74
+ left: 0;
75
+ bottom: 0;
76
+ width: 100%;
77
+ height: 2px;
78
+ background-color: getCssVar('border-color-light');
79
+ z-index: getCssVar('index-normal');
80
+ }
81
+
82
+ @include when(scrollable) {
83
+ padding: 0 20px;
84
+ box-sizing: border-box;
85
+ }
86
+ }
87
+ @include e(nav-scroll) {
88
+ overflow: hidden;
89
+ }
90
+ @include e((nav-next, nav-prev)) {
91
+ position: absolute;
92
+ cursor: pointer;
93
+ line-height: 44px;
94
+ font-size: 12px;
95
+ color: getCssVar('text-color', 'secondary');
96
+ width: 20px;
97
+ text-align: center;
98
+ }
99
+ @include e(nav-next) {
100
+ right: 0;
101
+ }
102
+ @include e(nav-prev) {
103
+ left: 0;
104
+ }
105
+ @include e(nav) {
106
+ display: flex;
107
+ white-space: nowrap;
108
+ position: relative;
109
+ transition: transform getCssVar('transition-duration');
110
+ float: left;
111
+ z-index: calc(#{getCssVar('index-normal')} + 1);
112
+
113
+ @include when(stretch) {
114
+ min-width: 100%;
115
+ display: flex;
116
+ & > * {
117
+ flex: 1;
118
+ text-align: center;
119
+ }
120
+ }
121
+ }
122
+ @include e(item) {
123
+ padding: 0 20px;
124
+ height: getCssVar('tabs', 'header-height');
125
+ box-sizing: border-box;
126
+ display: flex;
127
+ align-items: center;
128
+ justify-content: center;
129
+ list-style: none;
130
+ font-size: getCssVar('font-size-base');
131
+ font-weight: 500;
132
+ color: getCssVar('text-color', 'primary');
133
+ position: relative;
134
+
135
+ &:focus,
136
+ &:focus:active {
137
+ outline: none;
138
+ }
139
+
140
+ &:focus-visible {
141
+ box-shadow: 0 0 2px 2px getCssVar('color-primary') inset;
142
+ border-radius: 3px;
143
+ }
144
+
145
+ & .is-icon-close {
146
+ border-radius: 50%;
147
+ text-align: center;
148
+ transition: all getCssVar('transition-duration')
149
+ getCssVar('transition-function-ease-in-out-bezier');
150
+ margin-left: 5px;
151
+
152
+ &:before {
153
+ transform: scale(0.9);
154
+ display: inline-block;
155
+ }
156
+
157
+ &:hover {
158
+ background-color: getCssVar('text-color', 'placeholder');
159
+ color: $color-white;
160
+ }
161
+ }
162
+
163
+ @include when(active) {
164
+ color: getCssVar('color-primary');
165
+ }
166
+
167
+ &:hover {
168
+ color: getCssVar('color-primary');
169
+ cursor: pointer;
170
+ }
171
+
172
+ @include when(disabled) {
173
+ color: getCssVar('disabled-text-color');
174
+ cursor: not-allowed;
175
+ }
176
+ }
177
+ @include e(content) {
178
+ overflow: hidden;
179
+ position: relative;
180
+ flex-grow: 1;
181
+ }
182
+ @include m((top, bottom)) {
183
+ > .#{$namespace}-tabs__header {
184
+ .#{$namespace}-tabs__item:nth-child(2) {
185
+ padding-left: 0;
186
+ }
187
+ .#{$namespace}-tabs__item:last-child {
188
+ padding-right: 0;
189
+ }
190
+ }
191
+
192
+ &.#{$namespace}-tabs--border-card,
193
+ &.#{$namespace}-tabs--card {
194
+ > .#{$namespace}-tabs__header {
195
+ .#{$namespace}-tabs__item:nth-child(2) {
196
+ padding-left: 20px;
197
+ }
198
+ .#{$namespace}-tabs__item:last-child {
199
+ padding-right: 20px;
200
+ }
201
+ }
202
+ }
203
+ }
204
+ @include m(card) {
205
+ > .#{$namespace}-tabs__header {
206
+ border-bottom: 1px solid getCssVar('border-color-light');
207
+ height: getCssVar('tabs', 'header-height');
208
+ }
209
+ > .#{$namespace}-tabs__header .#{$namespace}-tabs__nav-wrap::after {
210
+ content: none;
211
+ }
212
+ > .#{$namespace}-tabs__header .#{$namespace}-tabs__nav {
213
+ border: 1px solid getCssVar('border-color-light');
214
+ border-bottom: none;
215
+ border-radius: 4px 4px 0 0;
216
+ box-sizing: border-box;
217
+ }
218
+ > .#{$namespace}-tabs__header .#{$namespace}-tabs__active-bar {
219
+ display: none;
220
+ }
221
+ > .#{$namespace}-tabs__header .#{$namespace}-tabs__item .is-icon-close {
222
+ position: relative;
223
+ font-size: 12px;
224
+ width: 0;
225
+ height: 14px;
226
+ overflow: hidden;
227
+ right: -2px;
228
+ transform-origin: 100% 50%;
229
+ }
230
+ > .#{$namespace}-tabs__header .#{$namespace}-tabs__item {
231
+ border-bottom: 1px solid transparent;
232
+ border-left: 1px solid getCssVar('border-color-light');
233
+ transition: color getCssVar('transition-duration')
234
+ getCssVar('transition-function-ease-in-out-bezier'),
235
+ padding getCssVar('transition-duration')
236
+ getCssVar('transition-function-ease-in-out-bezier');
237
+
238
+ &:first-child {
239
+ border-left: none;
240
+ }
241
+
242
+ &.is-closable {
243
+ &:hover {
244
+ padding-left: 13px;
245
+ padding-right: 13px;
246
+
247
+ & .is-icon-close {
248
+ width: 14px;
249
+ }
250
+ }
251
+ }
252
+
253
+ &.is-active {
254
+ border-bottom-color: getCssVar('bg-color');
255
+
256
+ &.is-closable {
257
+ padding-left: 20px;
258
+ padding-right: 20px;
259
+
260
+ .is-icon-close {
261
+ width: 14px;
262
+ }
263
+ }
264
+ }
265
+ }
266
+ }
267
+ @include m(border-card) {
268
+ background: getCssVar('bg-color', 'overlay');
269
+ border: 1px solid getCssVar('border-color');
270
+
271
+ > .#{$namespace}-tabs__content {
272
+ padding: 15px;
273
+ }
274
+ > .#{$namespace}-tabs__header {
275
+ background-color: getCssVar('fill-color', 'light');
276
+ border-bottom: 1px solid getCssVar('border-color-light');
277
+ margin: 0;
278
+ }
279
+ > .#{$namespace}-tabs__header .#{$namespace}-tabs__nav-wrap::after {
280
+ content: none;
281
+ }
282
+ > .#{$namespace}-tabs__header .#{$namespace}-tabs__item {
283
+ transition: all getCssVar('transition-duration')
284
+ getCssVar('transition-function-ease-in-out-bezier');
285
+ border: 1px solid transparent;
286
+ margin-top: -1px;
287
+ color: getCssVar('text-color', 'secondary');
288
+
289
+ &:first-child {
290
+ margin-left: -1px;
291
+ }
292
+
293
+ & + .#{$namespace}-tabs__item {
294
+ margin-left: -1px;
295
+ }
296
+
297
+ &.is-active {
298
+ color: getCssVar('color-primary');
299
+ background-color: getCssVar('bg-color', 'overlay');
300
+ border-right-color: getCssVar('border-color');
301
+ border-left-color: getCssVar('border-color');
302
+ }
303
+
304
+ &:not(.is-disabled):hover {
305
+ color: getCssVar('color-primary');
306
+ }
307
+
308
+ &.is-disabled {
309
+ color: getCssVar('disabled-text-color');
310
+ }
311
+ }
312
+
313
+ > .#{$namespace}-tabs__header
314
+ .is-scrollable
315
+ .#{$namespace}-tabs__item:first-child {
316
+ margin-left: 0;
317
+ }
318
+ }
319
+ @include m(bottom) {
320
+ flex-direction: column;
321
+
322
+ .#{$namespace}-tabs__header.is-bottom {
323
+ margin-bottom: 0;
324
+ margin-top: 10px;
325
+ }
326
+ &.#{$namespace}-tabs--border-card {
327
+ .#{$namespace}-tabs__header.is-bottom {
328
+ border-bottom: 0;
329
+ border-top: 1px solid getCssVar('border-color');
330
+ }
331
+
332
+ .#{$namespace}-tabs__nav-wrap.is-bottom {
333
+ margin-top: -1px;
334
+ margin-bottom: 0;
335
+ }
336
+
337
+ .#{$namespace}-tabs__item.is-bottom:not(.is-active) {
338
+ border: 1px solid transparent;
339
+ }
340
+
341
+ .#{$namespace}-tabs__item.is-bottom {
342
+ margin: 0 -1px -1px;
343
+ }
344
+ }
345
+ }
346
+ @include m((left, right)) {
347
+ overflow: hidden;
348
+
349
+ .#{$namespace}-tabs__header.is-left,
350
+ .#{$namespace}-tabs__header.is-right,
351
+ .#{$namespace}-tabs__nav-wrap.is-left,
352
+ .#{$namespace}-tabs__nav-wrap.is-right,
353
+ .#{$namespace}-tabs__nav-scroll {
354
+ height: 100%;
355
+ }
356
+
357
+ .#{$namespace}-tabs__active-bar.is-left,
358
+ .#{$namespace}-tabs__active-bar.is-right {
359
+ top: 0;
360
+ bottom: auto;
361
+ width: 2px;
362
+ height: auto;
363
+ }
364
+
365
+ .#{$namespace}-tabs__nav-wrap.is-left,
366
+ .#{$namespace}-tabs__nav-wrap.is-right {
367
+ margin-bottom: 0;
368
+
369
+ > .#{$namespace}-tabs__nav-prev,
370
+ > .#{$namespace}-tabs__nav-next {
371
+ height: 30px;
372
+ line-height: 30px;
373
+ width: 100%;
374
+ text-align: center;
375
+ cursor: pointer;
376
+
377
+ i {
378
+ transform: rotateZ(90deg);
379
+ }
380
+ }
381
+
382
+ > .#{$namespace}-tabs__nav-prev {
383
+ left: auto;
384
+ top: 0;
385
+ }
386
+
387
+ > .#{$namespace}-tabs__nav-next {
388
+ right: auto;
389
+ bottom: 0;
390
+ }
391
+
392
+ &.is-scrollable {
393
+ padding: 30px 0;
394
+ }
395
+
396
+ &::after {
397
+ height: 100%;
398
+ width: 2px;
399
+ bottom: auto;
400
+ top: 0;
401
+ }
402
+ }
403
+
404
+ .#{$namespace}-tabs__nav.is-left,
405
+ .#{$namespace}-tabs__nav.is-right {
406
+ flex-direction: column;
407
+ }
408
+
409
+ .#{$namespace}-tabs__item.is-left {
410
+ justify-content: flex-end;
411
+ }
412
+
413
+ .#{$namespace}-tabs__item.is-right {
414
+ justify-content: flex-start;
415
+ }
416
+ }
417
+ @include m(left) {
418
+ flex-direction: row-reverse;
419
+
420
+ .#{$namespace}-tabs__header.is-left {
421
+ margin-bottom: 0;
422
+ margin-right: 10px;
423
+ }
424
+ .#{$namespace}-tabs__nav-wrap.is-left {
425
+ margin-right: -1px;
426
+
427
+ &::after {
428
+ left: auto;
429
+ right: 0;
430
+ }
431
+ }
432
+ .#{$namespace}-tabs__active-bar.is-left {
433
+ right: 0;
434
+ left: auto;
435
+ }
436
+ .#{$namespace}-tabs__item.is-left {
437
+ text-align: right;
438
+ }
439
+
440
+ &.#{$namespace}-tabs--card {
441
+ .#{$namespace}-tabs__active-bar.is-left {
442
+ display: none;
443
+ }
444
+
445
+ .#{$namespace}-tabs__item.is-left {
446
+ border-left: none;
447
+ border-right: 1px solid getCssVar('border-color-light');
448
+ border-bottom: none;
449
+ border-top: 1px solid getCssVar('border-color-light');
450
+ text-align: left;
451
+ }
452
+
453
+ .#{$namespace}-tabs__item.is-left:first-child {
454
+ border-right: 1px solid getCssVar('border-color-light');
455
+ border-top: none;
456
+ }
457
+
458
+ .#{$namespace}-tabs__item.is-left.is-active {
459
+ border: 1px solid getCssVar('border-color-light');
460
+ border-right-color: #fff;
461
+ border-left: none;
462
+ border-bottom: none;
463
+
464
+ &:first-child {
465
+ border-top: none;
466
+ }
467
+
468
+ &:last-child {
469
+ border-bottom: none;
470
+ }
471
+ }
472
+
473
+ .#{$namespace}-tabs__nav {
474
+ border-radius: 4px 0 0 4px;
475
+ border-bottom: 1px solid getCssVar('border-color-light');
476
+ border-right: none;
477
+ }
478
+
479
+ .#{$namespace}-tabs__new-tab {
480
+ float: none;
481
+ }
482
+ }
483
+
484
+ &.#{$namespace}-tabs--border-card {
485
+ .#{$namespace}-tabs__header.is-left {
486
+ border-right: 1px solid getCssVar('border-color');
487
+ }
488
+
489
+ .#{$namespace}-tabs__item.is-left {
490
+ border: 1px solid transparent;
491
+ margin: -1px 0 -1px -1px;
492
+
493
+ &.is-active {
494
+ border-color: transparent;
495
+ border-top-color: rgb(209, 219, 229);
496
+ border-bottom-color: rgb(209, 219, 229);
497
+ }
498
+ }
499
+ }
500
+ }
501
+ @include m(right) {
502
+ .#{$namespace}-tabs__header.is-right {
503
+ margin-bottom: 0;
504
+ margin-left: 10px;
505
+ }
506
+
507
+ .#{$namespace}-tabs__nav-wrap.is-right {
508
+ margin-left: -1px;
509
+
510
+ &::after {
511
+ left: 0;
512
+ right: auto;
513
+ }
514
+ }
515
+
516
+ .#{$namespace}-tabs__active-bar.is-right {
517
+ left: 0;
518
+ }
519
+
520
+ &.#{$namespace}-tabs--card {
521
+ .#{$namespace}-tabs__active-bar.is-right {
522
+ display: none;
523
+ }
524
+
525
+ .#{$namespace}-tabs__item.is-right {
526
+ border-bottom: none;
527
+ border-top: 1px solid getCssVar('border-color-light');
528
+ }
529
+
530
+ .#{$namespace}-tabs__item.is-right:first-child {
531
+ border-left: 1px solid getCssVar('border-color-light');
532
+ border-top: none;
533
+ }
534
+
535
+ .#{$namespace}-tabs__item.is-right.is-active {
536
+ border: 1px solid getCssVar('border-color-light');
537
+ border-left-color: #fff;
538
+ border-right: none;
539
+ border-bottom: none;
540
+
541
+ &:first-child {
542
+ border-top: none;
543
+ }
544
+
545
+ &:last-child {
546
+ border-bottom: none;
547
+ }
548
+ }
549
+
550
+ .#{$namespace}-tabs__nav {
551
+ border-radius: 0 4px 4px 0;
552
+ border-bottom: 1px solid getCssVar('border-color-light');
553
+ border-left: none;
554
+ }
555
+ }
556
+ &.#{$namespace}-tabs--border-card {
557
+ .#{$namespace}-tabs__header.is-right {
558
+ border-left: 1px solid getCssVar('border-color');
559
+ }
560
+
561
+ .#{$namespace}-tabs__item.is-right {
562
+ border: 1px solid transparent;
563
+ margin: -1px -1px -1px 0;
564
+
565
+ &.is-active {
566
+ border-color: transparent;
567
+ border-top-color: rgb(209, 219, 229);
568
+ border-bottom-color: rgb(209, 219, 229);
569
+ }
570
+ }
571
+ }
572
+ }
573
+ @include m(top) {
574
+ flex-direction: column-reverse;
575
+ }
576
+ }
577
+
578
+ .slideInRight-transition,
579
+ .slideInLeft-transition {
580
+ display: inline-block;
581
+ }
582
+
583
+ .slideInRight-enter {
584
+ animation: slideInRight-enter getCssVar('transition-duration');
585
+ }
586
+
587
+ .slideInRight-leave {
588
+ position: absolute;
589
+ left: 0;
590
+ right: 0;
591
+ animation: slideInRight-leave getCssVar('transition-duration');
592
+ }
593
+
594
+ .slideInLeft-enter {
595
+ animation: slideInLeft-enter getCssVar('transition-duration');
596
+ }
597
+
598
+ .slideInLeft-leave {
599
+ position: absolute;
600
+ left: 0;
601
+ right: 0;
602
+ animation: slideInLeft-leave getCssVar('transition-duration');
603
+ }
604
+
605
+ @keyframes slideInRight-enter {
606
+ 0% {
607
+ opacity: 0;
608
+ transform-origin: 0 0;
609
+ transform: translateX(100%);
610
+ }
611
+
612
+ to {
613
+ opacity: 1;
614
+ transform-origin: 0 0;
615
+ transform: translateX(0);
616
+ }
617
+ }
618
+
619
+ @keyframes slideInRight-leave {
620
+ 0% {
621
+ transform-origin: 0 0;
622
+ transform: translateX(0);
623
+ opacity: 1;
624
+ }
625
+
626
+ 100% {
627
+ transform-origin: 0 0;
628
+ transform: translateX(100%);
629
+ opacity: 0;
630
+ }
631
+ }
632
+
633
+ @keyframes slideInLeft-enter {
634
+ 0% {
635
+ opacity: 0;
636
+ transform-origin: 0 0;
637
+ transform: translateX(-100%);
638
+ }
639
+
640
+ to {
641
+ opacity: 1;
642
+ transform-origin: 0 0;
643
+ transform: translateX(0);
644
+ }
645
+ }
646
+
647
+ @keyframes slideInLeft-leave {
648
+ 0% {
649
+ transform-origin: 0 0;
650
+ transform: translateX(0);
651
+ opacity: 1;
652
+ }
653
+
654
+ 100% {
655
+ transform-origin: 0 0;
656
+ transform: translateX(-100%);
657
+ opacity: 0;
658
+ }
659
+ }