imatrix-ui 0.0.15 → 0.1.1-up

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 (171) hide show
  1. package/.vscode/extensions.json +3 -0
  2. package/README.md +7 -0
  3. package/components/dynamic-source-select/dynamic-source-select-service.js +106 -0
  4. package/components/dynamic-source-select/dynamic-source-select.vue +673 -0
  5. package/components/dynamic-source-select/events.js +77 -0
  6. package/components/fs-preview/fs-preview.vue +287 -0
  7. package/components/index.js +26 -0
  8. package/components/plugins/export-data-new.js +623 -0
  9. package/components/plugins/export-data.js +431 -0
  10. package/components/plugins/index.js +15 -0
  11. package/components/plugins/public-method.js +47 -0
  12. package/components/rich-editor/index-bak.vue +306 -0
  13. package/components/rich-editor/index.vue +236 -0
  14. package/components/rich-editor/langs/zh-Hans.js +438 -0
  15. package/components/rich-editor/viewer.vue +105 -0
  16. package/components/super-grid/apis.js +1065 -0
  17. package/components/super-grid/columns-config.vue +430 -0
  18. package/components/super-grid/custom-formatter.js +330 -0
  19. package/components/super-grid/dynamic-input.vue +1706 -0
  20. package/components/super-grid/eventBus.js +2 -0
  21. package/components/super-grid/events.js +56 -0
  22. package/components/super-grid/formValidatorUtil.js +300 -0
  23. package/components/super-grid/formatter.js +190 -0
  24. package/components/super-grid/group-column.vue +100 -0
  25. package/components/super-grid/header-context-menu.vue +82 -0
  26. package/components/super-grid/index-column.vue +69 -0
  27. package/components/super-grid/normal-column.vue +1148 -0
  28. package/components/super-grid/public-methods.js +30 -0
  29. package/components/super-grid/row-operation.vue +193 -0
  30. package/components/super-grid/search-button.vue +74 -0
  31. package/components/super-grid/search-condition-input.vue +73 -0
  32. package/components/super-grid/search-condition-list.vue +68 -0
  33. package/components/super-grid/search-form-advancedQuery.vue +820 -0
  34. package/components/super-grid/search-form-dialog.vue +77 -0
  35. package/components/super-grid/search-form-item.vue +470 -0
  36. package/components/super-grid/search-form-number.vue +111 -0
  37. package/components/super-grid/search-form-open.vue +178 -0
  38. package/components/super-grid/search-form-ordinarySearch.vue +218 -0
  39. package/components/super-grid/search-form.vue +756 -0
  40. package/components/super-grid/search-methods.js +484 -0
  41. package/components/super-grid/selection-column.vue +46 -0
  42. package/components/super-grid/store.js +3 -0
  43. package/components/super-grid/super-grid-service.js +682 -0
  44. package/components/super-grid/super-grid.vue +2893 -0
  45. package/components/super-grid/utils.js +851 -0
  46. package/components/super-grid/view-image-dialog.vue +173 -0
  47. package/components/utils/gogocodeTransfer.js +59 -0
  48. package/components/utils/utils.js +180 -0
  49. package/components/utils/value-set.js +98 -0
  50. package/components/z-test-utton/index.vue +82 -0
  51. package/package.json +29 -40
  52. package/public/index.html +13 -0
  53. package/public/vite.svg +1 -0
  54. package/src/api/sso-service.js +172 -19
  55. package/src/api/tab.js +36 -0
  56. package/src/api/user-service.js +11 -11
  57. package/src/assets/401/401.gif +0 -0
  58. package/src/assets/404/404-cloud.png +0 -0
  59. package/src/assets/404/404.png +0 -0
  60. package/src/assets/cloud.png +0 -0
  61. package/src/directives/permission/index.js +13 -13
  62. package/src/directives/permission/permission.js +20 -15
  63. package/src/i18n/i18n.js +16 -0
  64. package/src/i18n/langs/cn.js +254 -0
  65. package/src/i18n/langs/en.js +264 -0
  66. package/src/permission.js +157 -71
  67. package/src/plugins.js +18 -18
  68. package/src/router/index.js +96 -69
  69. package/src/store/getters.js +15 -10
  70. package/src/store/index.js +19 -19
  71. package/src/store/modules/app.js +54 -42
  72. package/src/store/modules/permission.js +137 -73
  73. package/src/store/modules/tab-content.js +36 -0
  74. package/src/store/modules/user.js +293 -80
  75. package/src/styles/display-layout.scss +34 -0
  76. package/src/styles/element-ui.scss +29 -29
  77. package/src/styles/index.scss +157 -78
  78. package/src/styles/mixin.scss +27 -27
  79. package/src/styles/theme/black/font-style.scss +70 -0
  80. package/src/styles/theme/black/index.scss +306 -0
  81. package/src/styles/theme/black/sidebar.scss +189 -0
  82. package/src/styles/theme/blue/font-style.scss +46 -0
  83. package/src/styles/theme/blue/index.scss +172 -0
  84. package/src/styles/{sidebar.scss → theme/blue/sidebar.scss} +171 -141
  85. package/src/styles/theme/blue2/font-style.scss +70 -0
  86. package/src/styles/theme/blue2/index.scss +188 -0
  87. package/src/styles/theme/blue2/sidebar.scss +201 -0
  88. package/src/styles/theme/dark-blue/button.scss +9 -0
  89. package/src/styles/theme/dark-blue/card.scss +62 -0
  90. package/src/styles/theme/dark-blue/checkbox.scss +10 -0
  91. package/src/styles/theme/dark-blue/dark-blue-var.scss +8 -0
  92. package/src/styles/theme/dark-blue/dialog.scss +21 -0
  93. package/src/styles/theme/dark-blue/element-variables.scss +7 -0
  94. package/src/styles/theme/dark-blue/font.scss +71 -0
  95. package/src/styles/theme/dark-blue/form.scss +51 -0
  96. package/src/styles/theme/dark-blue/index.scss +269 -0
  97. package/src/styles/theme/dark-blue/input.scss +15 -0
  98. package/src/styles/theme/dark-blue/message.scss +8 -0
  99. package/src/styles/theme/dark-blue/pagination.scss +14 -0
  100. package/src/styles/theme/dark-blue/scrollbar-style.scss +32 -0
  101. package/src/styles/theme/dark-blue/sidebar.scss +266 -0
  102. package/src/styles/theme/dark-blue/tab.scss +83 -0
  103. package/src/styles/theme/dark-blue/table.scss +60 -0
  104. package/src/styles/theme/dark-blue/tree.scss +31 -0
  105. package/src/styles/theme/dark-blue/var.scss +1028 -0
  106. package/src/styles/theme/gray/card-style.scss +54 -0
  107. package/src/styles/theme/gray/font-style.scss +70 -0
  108. package/src/styles/theme/gray/index.scss +172 -0
  109. package/src/styles/theme/gray/input-style.scss +19 -0
  110. package/src/styles/theme/gray/scrollbar-style.scss +32 -0
  111. package/src/styles/theme/gray/sidebar.scss +231 -0
  112. package/src/styles/theme/gray/tab-style.scss +81 -0
  113. package/src/styles/transition.scss +47 -46
  114. package/src/utils/auth-api.js +159 -0
  115. package/src/utils/auth.js +61 -15
  116. package/src/utils/calculator/calculator-factory-wf.js +558 -0
  117. package/src/utils/calculator/calculator-factory.js +145 -0
  118. package/src/utils/calculator/calculator-util.js +166 -0
  119. package/src/utils/common-util.js +305 -0
  120. package/src/utils/eventBus.js +2 -0
  121. package/src/utils/iconUtils.js +28 -0
  122. package/src/utils/index.js +102 -86
  123. package/src/utils/jump-page-utils.js +814 -0
  124. package/src/utils/local-storage.js +33 -31
  125. package/src/utils/menu.js +19 -0
  126. package/src/utils/permission.js +31 -26
  127. package/src/utils/permissionAuth.js +90 -0
  128. package/src/utils/range-selector.js +188 -0
  129. package/src/utils/request.js +270 -116
  130. package/src/utils/restful-interface-utils.js +57 -0
  131. package/src/utils/util.js +698 -0
  132. package/src/utils/validate.js +34 -33
  133. package/src/utils/watermark.js +108 -0
  134. package/src/utils/workflow-util.js +93 -0
  135. package/src/views/404.vue +248 -228
  136. package/src/views/dsc-component/Sidebar/Item.vue +84 -0
  137. package/src/views/dsc-component/Sidebar/Link.vue +38 -0
  138. package/src/views/dsc-component/Sidebar/SidebarItem.vue +196 -0
  139. package/src/views/dsc-component/Sidebar/index.vue +220 -0
  140. package/src/views/dsc-component/tabs/tab-content.vue +199 -0
  141. package/src/views/error-page/401.vue +106 -91
  142. package/src/views/error-page/404.vue +248 -228
  143. package/src/views/layout/EmptyLayout.vue +3 -0
  144. package/src/views/layout/Layout.vue +81 -68
  145. package/src/views/layout/NewLayout.vue +18 -0
  146. package/src/views/layout/components/AppMain.vue +39 -29
  147. package/src/views/layout/components/Breadcrumb/index.vue +156 -0
  148. package/src/views/layout/components/Menubar/Item.vue +57 -0
  149. package/src/views/layout/components/Menubar/Link.vue +38 -0
  150. package/src/views/layout/components/Menubar/SidebarItem.vue +164 -0
  151. package/src/views/layout/components/Menubar/index.vue +210 -0
  152. package/src/views/layout/components/Sidebar/Item.vue +53 -29
  153. package/src/views/layout/components/Sidebar/Link.vue +38 -39
  154. package/src/views/layout/components/Sidebar/SidebarItem.vue +135 -100
  155. package/src/views/layout/components/Sidebar/index.vue +141 -48
  156. package/src/views/layout/components/iframe-page.vue +38 -0
  157. package/src/views/layout/components/index.js +4 -3
  158. package/src/views/layout/components/tabs/tab-content.vue +207 -0
  159. package/src/views/layout/mixin/ResizeHandler.js +41 -41
  160. package/src/views/layout/tab-content-iframe-index.vue +38 -0
  161. package/src/views/layout/tab-content-index.vue +93 -0
  162. package/src/views/login/authredirect.vue +10 -10
  163. package/src/views/login/index.vue +296 -203
  164. package/src/views/login/update-password.vue +243 -0
  165. package/src/views/redirect/index.vue +14 -12
  166. package/src/views/wf-history/tache-subprocess-history.vue +45 -0
  167. package/vite.config.js +31 -0
  168. package/lib/super-ui.css +0 -1
  169. package/lib/super-ui.umd.min.js +0 -2
  170. package/src/styles/variables.scss +0 -4
  171. package/src/views/layout/components/Navbar.vue +0 -92
@@ -1,203 +1,296 @@
1
- <template>
2
- <div class="login-container">
3
- <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form" auto-complete="on" label-position="left">
4
- <h3 class="title">
5
- ***管理系统
6
- </h3>
7
- <el-form-item prop="username">
8
- <span class="svg-container">
9
- <svg-icon icon-class="user" />
10
- </span>
11
- <el-input v-model="loginForm.username" name="username" type="text" auto-complete="on" placeholder="username" />
12
- </el-form-item>
13
- <el-form-item prop="password">
14
- <span class="svg-container">
15
- <svg-icon icon-class="password" />
16
- </span>
17
- <el-input
18
- v-model="loginForm.password"
19
- :type="pwdType"
20
- name="password"
21
- auto-complete="on"
22
- placeholder="password"
23
- @keyup.enter.native="handleLogin"
24
- />
25
- <span class="show-pwd" @click="showPwd">
26
- <svg-icon icon-class="eye" />
27
- </span>
28
- </el-form-item>
29
- <el-form-item>
30
- <el-button :loading="loading" type="primary" style="width:100%;" @click.native.prevent="handleLogin">
31
- Sign in
32
- </el-button>
33
- </el-form-item>
34
- <div class="tips">
35
- <span style="margin-right:20px;">
36
- ***公司
37
- </span>
38
- </div>
39
- </el-form>
40
- </div>
41
- </template>
42
-
43
- <script>
44
- import { validUsername } from '../../utils/validate'
45
- export default {
46
- name: 'Login',
47
- data() {
48
- const validateUsername = (rule, value, callback) => {
49
- if (!validUsername(value)) {
50
- callback(new Error('请输入正确的用户名'))
51
- } else {
52
- callback()
53
- }
54
- }
55
- const validatePass = (rule, value, callback) => {
56
- if (value.length < 1) {
57
- callback(new Error('密码不能小于5位'))
58
- } else {
59
- callback()
60
- }
61
- }
62
- return {
63
- loginForm: {
64
- username: 'huhongchun',
65
- password: '123'
66
- },
67
- loginRules: {
68
- username: [{ required: true, trigger: 'blur', validator: validateUsername }],
69
- password: [{ required: true, trigger: 'blur', validator: validatePass }]
70
- },
71
- loading: false,
72
- pwdType: 'password',
73
- redirect: undefined
74
- }
75
- },
76
- watch: {
77
- $route: {
78
- handler: function(route) {
79
- this.redirect = route.query && route.query.redirect
80
- },
81
- immediate: true
82
- }
83
- },
84
- created: function() {
85
- // 子系统是嵌套在iframe中的,所以需要把整个页面都显示为登录页面,而不要只在iframe中显示登录页面
86
- window.top.location.href = '/#/login'
87
- },
88
- methods: {
89
- showPwd() {
90
- if (this.pwdType === 'password') {
91
- this.pwdType = ''
92
- } else {
93
- this.pwdType = 'password'
94
- }
95
- },
96
- handleLogin() {
97
- this.$refs.loginForm.validate(valid => {
98
- if (valid) {
99
- this.loading = true
100
- this.$store.dispatch('login', this.loginForm).then(() => {
101
- this.loading = false
102
- this.$router.push({ path: this.redirect || '/' })
103
- }).catch(() => {
104
- this.loading = false
105
- })
106
- } else {
107
- console.log('error submit!!')
108
- return false
109
- }
110
- })
111
- }
112
- }
113
- }
114
- </script>
115
-
116
- <style rel="stylesheet/scss" lang="scss">
117
- $bg:#2d3a4b;
118
- $light_gray:#eee;
119
-
120
- /* reset element-ui css */
121
- .login-container {
122
- .el-input {
123
- display: inline-block;
124
- height: 47px;
125
- width: 85%;
126
- input {
127
- background: transparent;
128
- border: 0px;
129
- -webkit-appearance: none;
130
- border-radius: 0px;
131
- padding: 12px 5px 12px 15px;
132
- color: $light_gray;
133
- height: 47px;
134
- &:-webkit-autofill {
135
- -webkit-box-shadow: 0 0 0px 1000px $bg inset !important;
136
- -webkit-text-fill-color: #fff !important;
137
- }
138
- }
139
- }
140
- .el-form-item {
141
- border: 1px solid rgba(255, 255, 255, 0.1);
142
- background: rgba(0, 0, 0, 0.1);
143
- border-radius: 5px;
144
- color: #454545;
145
- }
146
- }
147
-
148
- </style>
149
-
150
- <style rel="stylesheet/scss" lang="scss" scoped>
151
- $bg:#2d3a4b;
152
- $dark_gray:#889aa4;
153
- $light_gray:#eee;
154
- .login-container {
155
- position: fixed;
156
- height: 100%;
157
- width: 100%;
158
- background-color: $bg;
159
- .login-form {
160
- position: absolute;
161
- left: 0;
162
- right: 0;
163
- width: 520px;
164
- max-width: 100%;
165
- padding: 35px 35px 15px 35px;
166
- margin: 120px auto;
167
- }
168
- .tips {
169
- font-size: 14px;
170
- color: #fff;
171
- margin-bottom: 10px;
172
- span {
173
- &:first-of-type {
174
- margin-right: 16px;
175
- }
176
- }
177
- }
178
- .svg-container {
179
- padding: 6px 5px 6px 15px;
180
- color: $dark_gray;
181
- vertical-align: middle;
182
- width: 30px;
183
- display: inline-block;
184
- }
185
- .title {
186
- font-size: 26px;
187
- font-weight: 400;
188
- color: $light_gray;
189
- margin: 0px auto 40px auto;
190
- text-align: center;
191
- font-weight: bold;
192
- }
193
- .show-pwd {
194
- position: absolute;
195
- right: 10px;
196
- top: 7px;
197
- font-size: 16px;
198
- color: $dark_gray;
199
- cursor: pointer;
200
- user-select: none;
201
- }
202
- }
203
- </style>
1
+ <template>
2
+ <div class="login-container">
3
+ <el-form
4
+ ref="loginForm"
5
+ :model="loginForm"
6
+ :rules="loginRules"
7
+ class="login-form"
8
+ auto-complete="on"
9
+ label-position="left"
10
+ >
11
+ <h3 class="title">***管理系统</h3>
12
+ <el-form-item prop="username">
13
+ <span class="svg-container">
14
+ <svg-icon icon-class="user" />
15
+ </span>
16
+ <el-input
17
+ v-model="loginForm.username"
18
+ name="username"
19
+ type="text"
20
+ auto-complete="on"
21
+ placeholder="username"
22
+ />
23
+ </el-form-item>
24
+ <el-form-item prop="password">
25
+ <span class="svg-container">
26
+ <svg-icon icon-class="password" />
27
+ </span>
28
+ <el-input
29
+ v-model="loginForm.password"
30
+ :type="pwdType"
31
+ name="password"
32
+ auto-complete="on"
33
+ placeholder="password"
34
+ @keyup.enter="handleLogin"
35
+ />
36
+ <span class="show-pwd" @click="showPwd">
37
+ <svg-icon icon-class="eye" />
38
+ </span>
39
+ </el-form-item>
40
+ <el-form-item>
41
+ <el-button
42
+ :loading="loading"
43
+ type="primary"
44
+ style="width: 100%"
45
+ @click.prevent="handleLogin"
46
+ >
47
+ Sign in
48
+ </el-button>
49
+ </el-form-item>
50
+ <div class="tips">
51
+ <span style="margin-right: 20px"> ***公司 </span>
52
+ </div>
53
+ </el-form>
54
+ </div>
55
+ </template>
56
+
57
+ <script>
58
+ import { ElMessage as Message } from 'element-plus'
59
+ export default {
60
+ name: 'Login',
61
+ data() {
62
+ const checkValidCode = (rule, value, callback) => {
63
+ // console.log('value=', value, 'this.validCode=', this.validCode)
64
+ if (!value) {
65
+ callback(new Error('请输入验证码'))
66
+ } else if (value.toUpperCase() !== this.validCode.toUpperCase()) {
67
+ // this.refreshCode = Math.random()
68
+ callback(new Error('验证码不正确'))
69
+ } else {
70
+ callback()
71
+ }
72
+ }
73
+ return {
74
+ loginForm: {
75
+ username: '',
76
+ password: '',
77
+ validCode: '',
78
+ },
79
+ loginRules: {
80
+ username: [
81
+ { required: true, trigger: 'blur', message: '请输入用户名' },
82
+ ],
83
+ password: [{ required: true, trigger: 'blur', message: '请输入密码' }],
84
+ validCode: [
85
+ { required: true, trigger: 'blur', validator: checkValidCode },
86
+ ],
87
+ },
88
+ loading: false,
89
+ pwdType: 'password',
90
+ redirect: undefined,
91
+ validCodeVisible: false,
92
+ // 刷新验证码
93
+ refreshCode: 0,
94
+ validCode: '',
95
+ }
96
+ },
97
+ watch: {
98
+ $route: {
99
+ deep: true,
100
+
101
+ handler: function (route) {
102
+ this.redirect = route.query && route.query.redirect
103
+ // console.log('login--redirect', this.redirect)
104
+ const errorCode = route.query && route.query.errorCode
105
+ if (errorCode === 'sso.1021') {
106
+ // 表示超过失败登录次数,需要显示验证码
107
+ this.validCodeVisible = true
108
+ this.loginForm.validCode = ''
109
+ this.refreshCode = Math.random()
110
+ }
111
+ },
112
+
113
+ immediate: true,
114
+ },
115
+ },
116
+ created: function () {
117
+ // 子系统是嵌套在iframe中的,所以需要把整个页面都显示为登录页面,而不要只在iframe中显示登录页面
118
+ window.top.location.href = process.env.BASE_URL + '#/login'
119
+ },
120
+ methods: {
121
+ showPwd() {
122
+ if (this.pwdType === 'password') {
123
+ this.pwdType = ''
124
+ } else {
125
+ this.pwdType = 'password'
126
+ }
127
+ },
128
+ login() {
129
+ // return new Promise((resolve, reject) => {
130
+ this.$store
131
+ .dispatch('login', this.loginForm)
132
+ .then(() => {
133
+ this.loading = false
134
+ this.$router.push({ path: this.redirect || '/' })
135
+ // resolve()
136
+ })
137
+ .catch((error) => {
138
+ this.loading = false
139
+ if (error.response.status === 401) {
140
+ // console.log('error.response login==', error.response)
141
+ const errorData = error.response.data
142
+
143
+ if (errorData.code === 'sso.1021') {
144
+ // 表示超过失败登录次数,需要显示验证码
145
+ this.validCodeVisible = true
146
+ Message({
147
+ message: errorData.message,
148
+ showClose: true,
149
+ type: 'error',
150
+ duration: 5 * 1000,
151
+ })
152
+ } else {
153
+ // 表示超过失败登录次数,需要锁定用户,显示提示信息
154
+ this.validCodeVisible = false
155
+ Message({
156
+ message: errorData.message,
157
+ showClose: true,
158
+ type: 'error',
159
+ duration: 5 * 1000,
160
+ })
161
+ }
162
+ }
163
+ // reject(error)
164
+ })
165
+ // })
166
+ },
167
+ handleLogin() {
168
+ if (!this.validCodeVisible) {
169
+ this.validCode = 'aaaa'
170
+ }
171
+ this.$refs.loginForm.validate((valid) => {
172
+ if (valid) {
173
+ this.loading = true
174
+ this.$store
175
+ .dispatch('isPasswordExpired', this.loginForm)
176
+ .then((message) => {
177
+ if (
178
+ typeof message !== 'undefined' &&
179
+ message !== null &&
180
+ message !== false
181
+ ) {
182
+ // 表示密码已过期,需要重置密码
183
+ this.$router.push({
184
+ path:
185
+ '/update-password?errorMessage=' +
186
+ message +
187
+ '&username=' +
188
+ this.loginForm.username +
189
+ '&redirect=' +
190
+ (this.redirect || '/'),
191
+ })
192
+ } else {
193
+ this.login()
194
+ }
195
+ })
196
+ .catch((error) => {
197
+ this.loading = false
198
+ console.log('error isPasswordExpired', error)
199
+ })
200
+ } else {
201
+ // console.log('error submit!!')
202
+ return false
203
+ }
204
+ })
205
+ },
206
+ },
207
+ }
208
+ </script>
209
+
210
+ <style lang="scss" rel="stylesheet/scss">
211
+ $bg: #2d3a4b;
212
+ $light_gray: #eee;
213
+
214
+ /* reset element-ui css */
215
+ .login-container {
216
+ .el-input {
217
+ display: inline-block;
218
+ height: 47px;
219
+ width: 85%;
220
+ input {
221
+ background: transparent;
222
+ border: 0px;
223
+ -webkit-appearance: none;
224
+ border-radius: 0px;
225
+ padding: 12px 5px 12px 15px;
226
+ color: $light_gray;
227
+ height: 47px;
228
+ &:-webkit-autofill {
229
+ -webkit-box-shadow: 0 0 0px 1000px $bg inset !important;
230
+ -webkit-text-fill-color: #fff !important;
231
+ }
232
+ }
233
+ }
234
+ .el-form-item {
235
+ border: 1px solid rgba(255, 255, 255, 0.1);
236
+ background: rgba(0, 0, 0, 0.1);
237
+ border-radius: 5px;
238
+ color: #454545;
239
+ }
240
+ }
241
+ </style>
242
+
243
+ <style lang="scss" rel="stylesheet/scss" scoped>
244
+ $bg: #2d3a4b;
245
+ $dark_gray: #889aa4;
246
+ $light_gray: #eee;
247
+ .login-container {
248
+ position: fixed;
249
+ height: 100%;
250
+ width: 100%;
251
+ background-color: $bg;
252
+ .login-form {
253
+ position: absolute;
254
+ left: 0;
255
+ right: 0;
256
+ width: 520px;
257
+ max-width: 100%;
258
+ padding: 35px 35px 15px 35px;
259
+ margin: 120px auto;
260
+ }
261
+ .tips {
262
+ font-size: 14px;
263
+ color: #fff;
264
+ margin-bottom: 10px;
265
+ span {
266
+ &:first-of-type {
267
+ margin-right: 16px;
268
+ }
269
+ }
270
+ }
271
+ .svg-container {
272
+ padding: 6px 5px 6px 15px;
273
+ color: $dark_gray;
274
+ vertical-align: middle;
275
+ width: 30px;
276
+ display: inline-block;
277
+ }
278
+ .title {
279
+ font-size: 26px;
280
+ font-weight: 400;
281
+ color: $light_gray;
282
+ margin: 0px auto 40px auto;
283
+ text-align: center;
284
+ font-weight: bold;
285
+ }
286
+ .show-pwd {
287
+ position: absolute;
288
+ right: 10px;
289
+ top: 7px;
290
+ font-size: 16px;
291
+ color: $dark_gray;
292
+ cursor: pointer;
293
+ user-select: none;
294
+ }
295
+ }
296
+ </style>