@use 'sass:map'; @use 'mixins/mixins' as *; @use 'mixins/utils' as *; @use 'mixins/var' as *; @use 'common/var' as *; @mixin mixed-input-border($color) { box-shadow: 0 0 0 1px $color inset; } @include b(input-tag) { @include set-component-css-var('input-tag', $input-tag); @include css-var-from-global('input-tag-mini-height', 'component-size'); @include set-css-var-value( ('input-tag', 'gap'), map.get($input-tag-gap, default) ); @include set-css-var-value( ('input-tag', 'padding'), map.get($input-tag-padding, default) ); @include set-css-var-value( ('input-tag', 'inner-padding'), map.get($input-tag-inner-padding, default) ); @include set-css-var-value( ('input-tag', 'line-height'), map.get($tag-height, default) ); } @include b(input-tag) { display: flex; align-items: center; box-sizing: border-box; cursor: pointer; font-size: getCssVar('input-tag-font-size'); padding: getCssVar('input-tag-padding'); width: getCssVar('input-tag-width'); min-height: getCssVar('input-tag-mini-height'); line-height: getCssVar('input-tag-line-height'); border-radius: getCssVar('border-radius-base'); background-color: getCssVar('fill-color', 'blank'); transition: getCssVar('transition', 'duration'); transform: translate3d(0, 0, 0); @include mixed-input-border(#{getCssVar('border-color')}); @include when(focused) { @include mixed-input-border(#{getCssVar('color-primary')}); } @include when(hovering) { &:not(.is-focused) { @include mixed-input-border(#{getCssVar('border-color-hover')}); } } @include when(disabled) { cursor: not-allowed; background-color: getCssVar('fill-color', 'light'); @include mixed-input-border(#{getCssVar('input-tag-disabled-border')}); &:hover { @include mixed-input-border(#{getCssVar('input-tag-disabled-border')}); } &.is-focus { @include mixed-input-border(#{getCssVar('input-focus-border-color')}); } @include e(inner) { @include e(input) { cursor: not-allowed; } .#{$namespace}-tag { cursor: not-allowed; } } } @include e(prefix) { display: flex; align-items: center; flex-shrink: 0; padding: 0 getCssVar('input-tag-inner-padding'); color: var( #{getCssVarName('input-icon-color')}, map.get($input, 'icon-color') ); } @include e(suffix) { display: flex; align-items: center; flex-shrink: 0; padding: 0 getCssVar('input-tag-inner-padding'); gap: 8px; color: var( #{getCssVarName('input-icon-color')}, map.get($input, 'icon-color') ); } @include e(input-tag-list) { position: relative; display: flex; flex-wrap: wrap; align-items: center; flex: 1; min-width: 0; gap: map.get($input-tag-gap, 'default'); @include when(near) { margin-left: map.get($select-near-margin-left, 'default'); } .#{$namespace}-tag { cursor: pointer; border-color: transparent; &.#{$namespace}-tag--plain { border-color: getCssVar('tag', 'border-color'); } .#{$namespace}-tag__content { min-width: 0; } } } @include e(inner) { position: relative; display: flex; flex-wrap: wrap; align-items: center; flex: 1; max-width: 100%; min-width: 0; gap: getCssVar('input-tag-gap'); @include when(left-space) { margin-left: getCssVar('input-tag-inner-padding'); } @include when(right-space) { margin-right: getCssVar('input-tag-inner-padding'); } @include when(draggable) { .#{$namespace}-tag { cursor: move; user-select: none; } } @include e(drop-indicator) { position: absolute; top: 0; width: 1px; height: var(--el-input-tag-line-height); background-color: getCssVar('color-primary'); } .#{$namespace}-tag { max-width: 100%; cursor: pointer; border-color: transparent; &.#{$namespace}-tag--plain { border-color: getCssVar('tag', 'border-color'); } .#{$namespace}-tag__content { min-width: 0; line-height: normal; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } } } @include e(input-wrapper) { flex: 1; } @include e(input) { border: none; outline: none; padding: 0; color: getCssVar('input-tag-text-color'); font-size: inherit; font-family: inherit; line-height: inherit; appearance: none; width: 100%; background-color: transparent; &::placeholder { color: getCssVar('input-tag-placeholder-color'); } } @include e(input-calculator) { position: absolute; left: 0; top: 0; max-width: 100%; visibility: hidden; white-space: pre; overflow: hidden; } @each $size in (large, small) { @include m($size) { @include set-css-var-value( ('input-tag', 'gap'), map.get($input-tag-gap, $size) ); @include set-css-var-value( ('input-tag', 'padding'), map.get($input-tag-padding, $size) ); @include set-css-var-value( ('input-tag', 'padding-left'), map.get($input-tag-inner-padding, $size) ); @include set-css-var-value( ('input-tag', 'font-size'), map.get($input-font-size, $size) ); @if $size == small { @include set-css-var-value( ('input-tag', 'line-height'), map.get($tag-height, $size) ); @include css-var-from-global( 'input-tag-mini-height', ('component-size', $size) ); } } } }