vxe-pc-ui 4.17.1 → 4.17.2

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 (57) hide show
  1. package/dist/all.esm.js +265 -144
  2. package/dist/style.css +1 -1
  3. package/dist/style.min.css +1 -1
  4. package/es/icon/style.css +1 -1
  5. package/es/input/src/input.js +73 -49
  6. package/es/number-input/src/number-input.js +28 -24
  7. package/es/password-input/src/password-input.js +128 -61
  8. package/es/password-input/style.css +5 -0
  9. package/es/password-input/style.min.css +1 -1
  10. package/es/style.css +1 -1
  11. package/es/style.min.css +1 -1
  12. package/es/textarea/src/textarea.js +37 -11
  13. package/es/ui/index.js +1 -1
  14. package/es/ui/src/log.js +1 -1
  15. package/es/vxe-password-input/style.css +5 -0
  16. package/es/vxe-password-input/style.min.css +1 -1
  17. package/lib/icon/style/style.css +1 -1
  18. package/lib/icon/style/style.min.css +1 -1
  19. package/lib/index.umd.js +287 -164
  20. package/lib/index.umd.min.js +1 -1
  21. package/lib/input/src/input.js +77 -52
  22. package/lib/input/src/input.min.js +1 -1
  23. package/lib/number-input/src/number-input.js +31 -26
  24. package/lib/number-input/src/number-input.min.js +1 -1
  25. package/lib/password-input/src/password-input.js +134 -70
  26. package/lib/password-input/src/password-input.min.js +1 -1
  27. package/lib/password-input/style/style.css +5 -0
  28. package/lib/password-input/style/style.min.css +1 -1
  29. package/lib/style.css +1 -1
  30. package/lib/style.min.css +1 -1
  31. package/lib/textarea/src/textarea.js +40 -12
  32. package/lib/textarea/src/textarea.min.js +1 -1
  33. package/lib/ui/index.js +1 -1
  34. package/lib/ui/index.min.js +1 -1
  35. package/lib/ui/src/log.js +1 -1
  36. package/lib/ui/src/log.min.js +1 -1
  37. package/lib/vxe-password-input/style/style.css +5 -0
  38. package/lib/vxe-password-input/style/style.min.css +1 -1
  39. package/package.json +1 -1
  40. package/packages/input/src/input.ts +79 -54
  41. package/packages/number-input/src/number-input.ts +29 -26
  42. package/packages/password-input/src/password-input.ts +140 -68
  43. package/packages/textarea/src/textarea.ts +43 -15
  44. package/styles/components/password-input.scss +4 -0
  45. package/types/components/password-input.d.ts +2 -0
  46. /package/es/icon/{iconfont.1786796113388.ttf → iconfont.1786868252000.ttf} +0 -0
  47. /package/es/icon/{iconfont.1786796113388.woff → iconfont.1786868252000.woff} +0 -0
  48. /package/es/icon/{iconfont.1786796113388.woff2 → iconfont.1786868252000.woff2} +0 -0
  49. /package/es/{iconfont.1786796113388.ttf → iconfont.1786868252000.ttf} +0 -0
  50. /package/es/{iconfont.1786796113388.woff → iconfont.1786868252000.woff} +0 -0
  51. /package/es/{iconfont.1786796113388.woff2 → iconfont.1786868252000.woff2} +0 -0
  52. /package/lib/icon/style/{iconfont.1786796113388.ttf → iconfont.1786868252000.ttf} +0 -0
  53. /package/lib/icon/style/{iconfont.1786796113388.woff → iconfont.1786868252000.woff} +0 -0
  54. /package/lib/icon/style/{iconfont.1786796113388.woff2 → iconfont.1786868252000.woff2} +0 -0
  55. /package/lib/{iconfont.1786796113388.ttf → iconfont.1786868252000.ttf} +0 -0
  56. /package/lib/{iconfont.1786796113388.woff → iconfont.1786868252000.woff} +0 -0
  57. /package/lib/{iconfont.1786796113388.woff2 → iconfont.1786868252000.woff2} +0 -0
@@ -1,8 +1,8 @@
1
- import { h, ref, computed, reactive, inject, nextTick, watch } from 'vue';
1
+ import { h, ref, computed, reactive, inject, nextTick, watch, onMounted } from 'vue';
2
2
  import { defineVxeComponent } from '../../ui/src/comp';
3
3
  import XEUtils from 'xe-utils';
4
4
  import { getConfig, getIcon, getI18n, createEvent, useSize, renderEmptyElement } from '../../ui';
5
- import { getFuncText } from '../../ui/src/utils';
5
+ import { getFuncText, getText } from '../../ui/src/utils';
6
6
  import { getSlotVNs } from '../../ui/src/vn';
7
7
  export default defineVxeComponent({
8
8
  name: 'VxePasswordInput',
@@ -40,6 +40,10 @@ export default defineVxeComponent({
40
40
  type: Boolean,
41
41
  default: () => getConfig().passwordInput.controls
42
42
  },
43
+ editable: {
44
+ type: Boolean,
45
+ default: true
46
+ },
43
47
  // 已废弃
44
48
  autocomplete: String
45
49
  },
@@ -80,14 +84,9 @@ export default defineVxeComponent({
80
84
  reactData,
81
85
  getRefMaps: () => refMaps
82
86
  };
83
- let passwordInputMethods = {};
84
87
  const computeIsClearable = computed(() => {
85
88
  return props.clearable;
86
89
  });
87
- const computeInpReadonly = computed(() => {
88
- const { readonly } = props;
89
- return readonly;
90
- });
91
90
  const computeInpPlaceholder = computed(() => {
92
91
  const { placeholder } = props;
93
92
  if (placeholder) {
@@ -99,6 +98,32 @@ export default defineVxeComponent({
99
98
  }
100
99
  return getI18n('vxe.base.pleaseInput');
101
100
  });
101
+ const computeFormReadonly = computed(() => {
102
+ if (getConfig().inputReadonly === 'obsolete') {
103
+ if ($xeForm) {
104
+ return $xeForm.props.readonly;
105
+ }
106
+ return false;
107
+ }
108
+ const { readonly } = props;
109
+ if (readonly === null) {
110
+ if ($xeForm) {
111
+ return $xeForm.props.readonly;
112
+ }
113
+ return false;
114
+ }
115
+ return readonly;
116
+ });
117
+ const computeIsDisabled = computed(() => {
118
+ const { disabled } = props;
119
+ if (disabled === null) {
120
+ if ($xeForm) {
121
+ return $xeForm.props.disabled;
122
+ }
123
+ return false;
124
+ }
125
+ return disabled;
126
+ });
102
127
  const computeInputType = computed(() => {
103
128
  const { showPwd } = reactData;
104
129
  if (showPwd) {
@@ -110,9 +135,28 @@ export default defineVxeComponent({
110
135
  const { immediate } = props;
111
136
  return immediate;
112
137
  });
138
+ const computeInputReadonly = computed(() => {
139
+ const { editable } = props;
140
+ const formReadonly = computeFormReadonly.value;
141
+ return formReadonly || !editable;
142
+ });
143
+ const computeDomValue = computed(() => {
144
+ const { inputValue } = reactData;
145
+ return inputValue;
146
+ });
147
+ const dispatchEvent = (type, params, evnt) => {
148
+ emit(type, createEvent(evnt, { $passwordInput: $xePasswordInput }, params));
149
+ };
150
+ const updateDomValue = () => {
151
+ const domValue = computeDomValue.value;
152
+ const inputElem = refInputTarget.value;
153
+ if (inputElem) {
154
+ inputElem.value = XEUtils.eqNull(domValue) ? '' : ('' + domValue);
155
+ }
156
+ };
113
157
  const triggerEvent = (evnt) => {
114
158
  const { inputValue } = reactData;
115
- passwordInputMethods.dispatchEvent(evnt.type, { value: inputValue }, evnt);
159
+ dispatchEvent(evnt.type, { value: inputValue }, evnt);
116
160
  };
117
161
  const emitInputEvent = (value, evnt) => {
118
162
  const inpImmediate = computeInpImmediate.value;
@@ -121,7 +165,7 @@ export default defineVxeComponent({
121
165
  handleChange(value, evnt);
122
166
  }
123
167
  else {
124
- passwordInputMethods.dispatchEvent('input', { value }, evnt);
168
+ dispatchEvent('input', { value }, evnt);
125
169
  }
126
170
  };
127
171
  const inputEvent = (evnt) => {
@@ -132,9 +176,9 @@ export default defineVxeComponent({
132
176
  const handleChange = (value, evnt) => {
133
177
  reactData.inputValue = value;
134
178
  emit('update:modelValue', value);
135
- passwordInputMethods.dispatchEvent('input', { value }, evnt);
179
+ dispatchEvent('input', { value }, evnt);
136
180
  if (XEUtils.toValueString(props.modelValue) !== value) {
137
- passwordInputMethods.dispatchEvent('change', { value }, evnt);
181
+ dispatchEvent('change', { value }, evnt);
138
182
  // 自动更新校验状态
139
183
  if ($xeForm && formItemInfo) {
140
184
  $xeForm.triggerItemEvent(evnt, formItemInfo.itemConfig.field, value);
@@ -143,7 +187,7 @@ export default defineVxeComponent({
143
187
  };
144
188
  const changeEvent = (evnt) => {
145
189
  triggerEvent(evnt);
146
- $xePasswordInput.dispatchEvent('lazy-change', { value: reactData.inputValue }, evnt);
190
+ dispatchEvent('lazy-change', { value: reactData.inputValue }, evnt);
147
191
  // 自动更新校验状态
148
192
  if ($xeForm && formItemInfo) {
149
193
  $xeForm.triggerItemEvent(evnt, formItemInfo.itemConfig.field, reactData.inputValue);
@@ -157,19 +201,20 @@ export default defineVxeComponent({
157
201
  const { inputValue } = reactData;
158
202
  const value = inputValue;
159
203
  reactData.isActivated = false;
160
- $xePasswordInput.dispatchEvent('blur', { value }, evnt);
204
+ dispatchEvent('blur', { value }, evnt);
161
205
  // 自动更新校验状态
162
206
  if ($xeForm && formItemInfo) {
163
207
  $xeForm.triggerItemEvent(evnt, formItemInfo.itemConfig.field, value);
164
208
  }
165
209
  };
166
210
  const passwordToggleEvent = (evnt) => {
167
- const { readonly, disabled } = props;
168
211
  const { showPwd } = reactData;
169
- if (!disabled && !readonly) {
212
+ const isDisabled = computeIsDisabled.value;
213
+ const formReadonly = computeFormReadonly.value;
214
+ if (!isDisabled && !formReadonly) {
170
215
  reactData.showPwd = !showPwd;
171
216
  }
172
- $xePasswordInput.dispatchEvent('toggle-visible', { visible: reactData.showPwd }, evnt);
217
+ dispatchEvent('toggle-visible', { visible: reactData.showPwd }, evnt);
173
218
  };
174
219
  const clickEvent = (evnt) => {
175
220
  triggerEvent(evnt);
@@ -177,23 +222,45 @@ export default defineVxeComponent({
177
222
  const clearValueEvent = (evnt, value) => {
178
223
  focus();
179
224
  handleChange('', evnt);
180
- $xePasswordInput.dispatchEvent('clear', { value }, evnt);
181
- $xePasswordInput.dispatchEvent('lazy-change', { value: reactData.inputValue }, evnt);
225
+ dispatchEvent('clear', { value }, evnt);
226
+ dispatchEvent('lazy-change', { value: reactData.inputValue }, evnt);
182
227
  };
183
228
  const clickSuffixEvent = (evnt) => {
184
- const { disabled } = props;
185
- if (!disabled) {
229
+ const isDisabled = computeIsDisabled.value;
230
+ if (!isDisabled) {
186
231
  const { inputValue } = reactData;
187
- $xePasswordInput.dispatchEvent('suffix-click', { value: inputValue }, evnt);
232
+ dispatchEvent('suffix-click', { value: inputValue }, evnt);
188
233
  }
189
234
  };
190
235
  const clickPrefixEvent = (evnt) => {
191
- const { disabled } = props;
192
- if (!disabled) {
236
+ const isDisabled = computeIsDisabled.value;
237
+ if (!isDisabled) {
193
238
  const { inputValue } = reactData;
194
- $xePasswordInput.dispatchEvent('prefix-click', { value: inputValue }, evnt);
239
+ dispatchEvent('prefix-click', { value: inputValue }, evnt);
195
240
  }
196
241
  };
242
+ const passwordInputMethods = {
243
+ dispatchEvent,
244
+ focus() {
245
+ const inputElem = refInputTarget.value;
246
+ reactData.isActivated = true;
247
+ inputElem.focus();
248
+ return nextTick();
249
+ },
250
+ blur() {
251
+ const inputElem = refInputTarget.value;
252
+ inputElem.blur();
253
+ reactData.isActivated = false;
254
+ return nextTick();
255
+ },
256
+ select() {
257
+ const inputElem = refInputTarget.value;
258
+ inputElem.select();
259
+ reactData.isActivated = false;
260
+ return nextTick();
261
+ }
262
+ };
263
+ Object.assign($xePasswordInput, passwordInputMethods);
197
264
  const renderPasswordIcon = () => {
198
265
  const { showPwd } = reactData;
199
266
  return h('div', {
@@ -226,14 +293,15 @@ export default defineVxeComponent({
226
293
  : null;
227
294
  };
228
295
  const renderSuffixIcon = () => {
229
- const { disabled, suffixIcon, controls } = props;
296
+ const { suffixIcon, controls } = props;
230
297
  const { inputValue } = reactData;
231
- const suffixSlot = slots.suffix;
298
+ const isDisabled = computeIsDisabled.value;
232
299
  const isClearable = computeIsClearable.value;
300
+ const suffixSlot = slots.suffix;
233
301
  return isClearable || controls || suffixSlot || suffixIcon
234
302
  ? h('div', {
235
303
  class: ['vxe-password-input--suffix', {
236
- 'is--clear': isClearable && !disabled && !(inputValue === '' || XEUtils.eqNull(inputValue))
304
+ 'is--clear': isClearable && !isDisabled && !(inputValue === '' || XEUtils.eqNull(inputValue))
237
305
  }]
238
306
  }, [
239
307
  isClearable
@@ -262,41 +330,22 @@ export default defineVxeComponent({
262
330
  ])
263
331
  : null;
264
332
  };
265
- passwordInputMethods = {
266
- dispatchEvent(type, params, evnt) {
267
- emit(type, createEvent(evnt, { $passwordInput: $xePasswordInput }, params));
268
- },
269
- focus() {
270
- const inputElem = refInputTarget.value;
271
- reactData.isActivated = true;
272
- inputElem.focus();
273
- return nextTick();
274
- },
275
- blur() {
276
- const inputElem = refInputTarget.value;
277
- inputElem.blur();
278
- reactData.isActivated = false;
279
- return nextTick();
280
- },
281
- select() {
282
- const inputElem = refInputTarget.value;
283
- inputElem.select();
284
- reactData.isActivated = false;
285
- return nextTick();
286
- }
287
- };
288
- Object.assign($xePasswordInput, passwordInputMethods);
289
- watch(() => props.modelValue, (val) => {
290
- reactData.inputValue = val;
291
- });
292
333
  const renderVN = () => {
293
- const { className, inputClassName, name, disabled, readonly, autocomplete, autoComplete, maxLength } = props;
334
+ const { className, inputClassName, name, readonly, autocomplete, autoComplete, maxLength } = props;
294
335
  const { inputValue, isActivated } = reactData;
336
+ const isDisabled = computeIsDisabled.value;
337
+ const formReadonly = computeFormReadonly.value;
338
+ if (formReadonly) {
339
+ return h('div', {
340
+ ref: refElem,
341
+ class: ['vxe-password-input--readonly', className]
342
+ }, getText(inputValue));
343
+ }
295
344
  const vSize = computeSize.value;
296
- const inpReadonly = computeInpReadonly.value;
297
345
  const inputType = computeInputType.value;
298
346
  const inpPlaceholder = computeInpPlaceholder.value;
299
347
  const isClearable = computeIsClearable.value;
348
+ const inputReadonly = computeInputReadonly.value;
300
349
  const prefix = renderPrefixIcon();
301
350
  const suffix = renderSuffixIcon();
302
351
  return h('div', {
@@ -306,9 +355,9 @@ export default defineVxeComponent({
306
355
  'is--prefix': !!prefix,
307
356
  'is--suffix': !!suffix,
308
357
  'is--readonly': readonly,
309
- 'is--disabled': disabled,
358
+ 'is--disabled': isDisabled,
310
359
  'is--active': isActivated,
311
- 'show--clear': isClearable && !disabled && !(inputValue === '' || XEUtils.eqNull(inputValue))
360
+ 'show--clear': isClearable && !isDisabled && !(inputValue === '' || XEUtils.eqNull(inputValue))
312
361
  }],
313
362
  spellcheck: false
314
363
  }, [
@@ -319,12 +368,11 @@ export default defineVxeComponent({
319
368
  h('input', {
320
369
  ref: refInputTarget,
321
370
  class: 'vxe-password-input--inner' + (inputClassName ? (' ' + inputClassName) : ''),
322
- value: inputValue,
323
371
  name,
324
372
  type: inputType,
325
373
  placeholder: inpPlaceholder,
326
- readonly: inpReadonly,
327
- disabled,
374
+ readonly: inputReadonly,
375
+ disabled: isDisabled,
328
376
  autocomplete: autocomplete || autoComplete,
329
377
  maxlength: maxLength,
330
378
  onClick: clickEvent,
@@ -337,6 +385,25 @@ export default defineVxeComponent({
337
385
  suffix || renderEmptyElement($xePasswordInput)
338
386
  ]);
339
387
  };
388
+ watch(() => props.modelValue, (val) => {
389
+ reactData.inputValue = val;
390
+ });
391
+ const rDvFlag = ref(0);
392
+ watch(computeFormReadonly, () => {
393
+ rDvFlag.value++;
394
+ });
395
+ watch(computeDomValue, () => {
396
+ rDvFlag.value++;
397
+ });
398
+ watch(rDvFlag, () => {
399
+ updateDomValue();
400
+ nextTick(() => {
401
+ updateDomValue();
402
+ });
403
+ });
404
+ onMounted(() => {
405
+ updateDomValue();
406
+ });
340
407
  $xePasswordInput.renderVN = renderVN;
341
408
  return $xePasswordInput;
342
409
  },
@@ -23,6 +23,11 @@
23
23
  --vxe-ui-password-input-current-height: var(--vxe-ui-input-height-mini);
24
24
  }
25
25
 
26
+ .vxe-password-input--readonly {
27
+ color: var(--vxe-ui-font-color);
28
+ display: inline-flex;
29
+ }
30
+
26
31
  .vxe-password-input--wrapper {
27
32
  flex-grow: 1;
28
33
  overflow: hidden;
@@ -1 +1 @@
1
- .vxe-password-input{--vxe-ui-password-input-current-font-size:var(--vxe-ui-font-size-default);--vxe-ui-password-input-current-height:var(--vxe-ui-input-height-default)}.vxe-password-input.size--xlarge{--vxe-ui-password-input-current-font-size:var(--vxe-ui-font-size-xlarge);--vxe-ui-password-input-current-height:var(--vxe-ui-input-height-xlarge)}.vxe-password-input.size--large{--vxe-ui-password-input-current-font-size:var(--vxe-ui-font-size-large);--vxe-ui-password-input-current-height:var(--vxe-ui-input-height-large)}.vxe-password-input.size--medium{--vxe-ui-password-input-current-font-size:var(--vxe-ui-font-size-medium);--vxe-ui-password-input-current-height:var(--vxe-ui-input-height-medium)}.vxe-password-input.size--small{--vxe-ui-password-input-current-font-size:var(--vxe-ui-font-size-small);--vxe-ui-password-input-current-height:var(--vxe-ui-input-height-small)}.vxe-password-input.size--mini{--vxe-ui-password-input-current-font-size:var(--vxe-ui-font-size-mini);--vxe-ui-password-input-current-height:var(--vxe-ui-input-height-mini)}.vxe-password-input--wrapper{flex-grow:1;overflow:hidden}.vxe-password-input--inner{display:block;width:100%;height:100%;outline:0;margin:0;font-size:inherit;font-family:inherit;line-height:inherit;padding:0 .5em;color:var(--vxe-ui-font-color);border:0;border-radius:var(--vxe-ui-base-border-radius);background-color:var(--vxe-ui-layout-background-color);box-shadow:none}.vxe-password-input--inner[disabled]{cursor:not-allowed;color:var(--vxe-ui-font-disabled-color);background-color:var(--vxe-ui-input-disabled-background-color)}.vxe-password-input--inner::-moz-placeholder{color:var(--vxe-ui-input-placeholder-color)}.vxe-password-input--inner::placeholder{color:var(--vxe-ui-input-placeholder-color)}.vxe-password-input--inner::-webkit-autofill{background-color:var(--vxe-ui-layout-background-color)}.vxe-password-input.is--disabled{background-color:var(--vxe-ui-input-disabled-background-color)}.vxe-password-input.is--disabled .vxe-password-input--clear-icon,.vxe-password-input.is--disabled .vxe-password-input--control-icon,.vxe-password-input.is--disabled .vxe-password-input--prefix,.vxe-password-input.is--disabled .vxe-password-input--suffix{cursor:not-allowed}.vxe-password-input.is--disabled .vxe-password-input--prefix,.vxe-password-input.is--disabled .vxe-password-input--suffix{background-color:var(--vxe-ui-input-disabled-background-color)}.vxe-password-input{display:inline-flex;flex-direction:row;position:relative;border-radius:var(--vxe-ui-base-border-radius);width:180px;border:1px solid var(--vxe-ui-input-border-color)}.vxe-password-input.is--active{border:1px solid var(--vxe-ui-font-primary-color)}.vxe-password-input.show--clear:hover .vxe-password-input--clear-icon{display:block}.vxe-password-input--prefix,.vxe-password-input--suffix{display:flex;flex-direction:row;align-items:center;flex-shrink:0;background-color:var(--vxe-ui-layout-background-color)}.vxe-password-input--prefix{border-radius:var(--vxe-ui-base-border-radius) 0 0 var(--vxe-ui-base-border-radius)}.vxe-password-input--suffix{border-radius:0 var(--vxe-ui-base-border-radius) var(--vxe-ui-base-border-radius) 0}.vxe-password-input--clear-icon,.vxe-password-input--control-icon,.vxe-password-input--prefix-icon,.vxe-password-input--suffix-icon{color:var(--vxe-ui-input-placeholder-color)}.vxe-password-input--prefix-icon{padding-left:.5em}.vxe-password-input--clear-icon,.vxe-password-input--control-icon,.vxe-password-input--suffix-icon{padding-right:.5em}.vxe-password-input--clear-icon,.vxe-password-input--control-icon{height:100%;cursor:pointer}.vxe-password-input--clear-icon{display:none}.vxe-password-input--clear-icon:hover{color:var(--vxe-ui-font-color)}.vxe-password-input--clear-icon:active{color:var(--vxe-ui-font-primary-color)}.vxe-password-input--number-btn{height:50%;display:flex;align-items:center;justify-content:center}.vxe-password-input--number-btn:hover{color:var(--vxe-ui-font-color)}.vxe-password-input--number-btn:active{color:var(--vxe-ui-font-primary-color)}.vxe-password-input--number-icon{display:flex;flex-direction:column;height:100%}.vxe-password-input--number-icon .vxe-password-input--number-btn.is--disabled{cursor:no-drop;color:var(--vxe-ui-font-disabled-color)}.vxe-password-input--count{flex-shrink:0;color:var(--vxe-ui-input-count-color);background-color:var(--vxe-ui-layout-background-color);padding-right:.6em}.vxe-password-input--count.is--error{color:var(--vxe-ui-input-count-error-color)}.vxe-password-input.is--left .vxe-password-input--inner{text-align:left}.vxe-password-input.is--center .vxe-password-input--inner{text-align:center}.vxe-password-input.is--right .vxe-password-input--inner{text-align:right}.vxe-password-input--panel{display:none;position:absolute;left:0;padding:4px 0;color:var(--vxe-ui-font-color);font-size:var(--vxe-ui-font-size-default);text-align:left}.vxe-password-input--panel:not(.is--transfer){min-width:100%}.vxe-password-input--panel.is--transfer{position:fixed}.vxe-password-input--panel.ani--leave{display:block;opacity:0;transform:scaleY(.5);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center top;backface-visibility:hidden;transform-style:preserve-3d}.vxe-password-input--panel.ani--leave[placement=top]{transform-origin:center bottom}.vxe-password-input--panel.ani--enter{opacity:1;transform:scaleY(1)}.vxe-password-input{font-size:var(--vxe-ui-password-input-current-font-size);height:var(--vxe-ui-password-input-current-height);line-height:var(--vxe-ui-password-input-current-height)}
1
+ .vxe-password-input{--vxe-ui-password-input-current-font-size:var(--vxe-ui-font-size-default);--vxe-ui-password-input-current-height:var(--vxe-ui-input-height-default)}.vxe-password-input.size--xlarge{--vxe-ui-password-input-current-font-size:var(--vxe-ui-font-size-xlarge);--vxe-ui-password-input-current-height:var(--vxe-ui-input-height-xlarge)}.vxe-password-input.size--large{--vxe-ui-password-input-current-font-size:var(--vxe-ui-font-size-large);--vxe-ui-password-input-current-height:var(--vxe-ui-input-height-large)}.vxe-password-input.size--medium{--vxe-ui-password-input-current-font-size:var(--vxe-ui-font-size-medium);--vxe-ui-password-input-current-height:var(--vxe-ui-input-height-medium)}.vxe-password-input.size--small{--vxe-ui-password-input-current-font-size:var(--vxe-ui-font-size-small);--vxe-ui-password-input-current-height:var(--vxe-ui-input-height-small)}.vxe-password-input.size--mini{--vxe-ui-password-input-current-font-size:var(--vxe-ui-font-size-mini);--vxe-ui-password-input-current-height:var(--vxe-ui-input-height-mini)}.vxe-password-input--readonly{color:var(--vxe-ui-font-color);display:inline-flex}.vxe-password-input--wrapper{flex-grow:1;overflow:hidden}.vxe-password-input--inner{display:block;width:100%;height:100%;outline:0;margin:0;font-size:inherit;font-family:inherit;line-height:inherit;padding:0 .5em;color:var(--vxe-ui-font-color);border:0;border-radius:var(--vxe-ui-base-border-radius);background-color:var(--vxe-ui-layout-background-color);box-shadow:none}.vxe-password-input--inner[disabled]{cursor:not-allowed;color:var(--vxe-ui-font-disabled-color);background-color:var(--vxe-ui-input-disabled-background-color)}.vxe-password-input--inner::-moz-placeholder{color:var(--vxe-ui-input-placeholder-color)}.vxe-password-input--inner::placeholder{color:var(--vxe-ui-input-placeholder-color)}.vxe-password-input--inner::-webkit-autofill{background-color:var(--vxe-ui-layout-background-color)}.vxe-password-input.is--disabled{background-color:var(--vxe-ui-input-disabled-background-color)}.vxe-password-input.is--disabled .vxe-password-input--clear-icon,.vxe-password-input.is--disabled .vxe-password-input--control-icon,.vxe-password-input.is--disabled .vxe-password-input--prefix,.vxe-password-input.is--disabled .vxe-password-input--suffix{cursor:not-allowed}.vxe-password-input.is--disabled .vxe-password-input--prefix,.vxe-password-input.is--disabled .vxe-password-input--suffix{background-color:var(--vxe-ui-input-disabled-background-color)}.vxe-password-input{display:inline-flex;flex-direction:row;position:relative;border-radius:var(--vxe-ui-base-border-radius);width:180px;border:1px solid var(--vxe-ui-input-border-color)}.vxe-password-input.is--active{border:1px solid var(--vxe-ui-font-primary-color)}.vxe-password-input.show--clear:hover .vxe-password-input--clear-icon{display:block}.vxe-password-input--prefix,.vxe-password-input--suffix{display:flex;flex-direction:row;align-items:center;flex-shrink:0;background-color:var(--vxe-ui-layout-background-color)}.vxe-password-input--prefix{border-radius:var(--vxe-ui-base-border-radius) 0 0 var(--vxe-ui-base-border-radius)}.vxe-password-input--suffix{border-radius:0 var(--vxe-ui-base-border-radius) var(--vxe-ui-base-border-radius) 0}.vxe-password-input--clear-icon,.vxe-password-input--control-icon,.vxe-password-input--prefix-icon,.vxe-password-input--suffix-icon{color:var(--vxe-ui-input-placeholder-color)}.vxe-password-input--prefix-icon{padding-left:.5em}.vxe-password-input--clear-icon,.vxe-password-input--control-icon,.vxe-password-input--suffix-icon{padding-right:.5em}.vxe-password-input--clear-icon,.vxe-password-input--control-icon{height:100%;cursor:pointer}.vxe-password-input--clear-icon{display:none}.vxe-password-input--clear-icon:hover{color:var(--vxe-ui-font-color)}.vxe-password-input--clear-icon:active{color:var(--vxe-ui-font-primary-color)}.vxe-password-input--number-btn{height:50%;display:flex;align-items:center;justify-content:center}.vxe-password-input--number-btn:hover{color:var(--vxe-ui-font-color)}.vxe-password-input--number-btn:active{color:var(--vxe-ui-font-primary-color)}.vxe-password-input--number-icon{display:flex;flex-direction:column;height:100%}.vxe-password-input--number-icon .vxe-password-input--number-btn.is--disabled{cursor:no-drop;color:var(--vxe-ui-font-disabled-color)}.vxe-password-input--count{flex-shrink:0;color:var(--vxe-ui-input-count-color);background-color:var(--vxe-ui-layout-background-color);padding-right:.6em}.vxe-password-input--count.is--error{color:var(--vxe-ui-input-count-error-color)}.vxe-password-input.is--left .vxe-password-input--inner{text-align:left}.vxe-password-input.is--center .vxe-password-input--inner{text-align:center}.vxe-password-input.is--right .vxe-password-input--inner{text-align:right}.vxe-password-input--panel{display:none;position:absolute;left:0;padding:4px 0;color:var(--vxe-ui-font-color);font-size:var(--vxe-ui-font-size-default);text-align:left}.vxe-password-input--panel:not(.is--transfer){min-width:100%}.vxe-password-input--panel.is--transfer{position:fixed}.vxe-password-input--panel.ani--leave{display:block;opacity:0;transform:scaleY(.5);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center top;backface-visibility:hidden;transform-style:preserve-3d}.vxe-password-input--panel.ani--leave[placement=top]{transform-origin:center bottom}.vxe-password-input--panel.ani--enter{opacity:1;transform:scaleY(1)}.vxe-password-input{font-size:var(--vxe-ui-password-input-current-font-size);height:var(--vxe-ui-password-input-current-height);line-height:var(--vxe-ui-password-input-current-height)}