@use "sass:math";
@use "sass:map";
@use "./base";
@use "./tag";

// ===== suggest ====
$suggest-size-list: base.$form-control-size-list !default;
$suggest-suffix-size: (
  xs: base.$font-size-sm,
  sm: base.$font-size-sm,
  md: base.$font-size-md,
  lg: base.$font-size-lg,
  xl: base.$font-size-lg,
) !default;
$suggest-suffix-size-caret: (
  xs: 8px,
  sm: 8px,
  md: 10px,
  lg: 12px,
  xl: 12px,
) !default;

$multi-suggest-size-list: (sm, md, lg, xl) !default;
$multi-suggest-selected-item-font-size: base.$font-size-sm !default;
$multi-suggest-selected-item-remove-btn-size: tag.$tag-remove-btn-size !default;
$multi-suggest-selected-item-padding-horizontal: base.padding(2) !default;

$multi-suggest-selected-item-margin: tag.$tag-sibling-distance-base !default;
$multi-suggest-selected-item-bg-color: map.get(tag.$tag-bg-color, normal) !default;

$multi-suggest-selection-padding-right: base.padding(8) !default;
$multi-suggest-selection-item-font-size: (
  xs: map.get(tag.$tag-font-size, xs),
  sm: map.get(tag.$tag-font-size, xs),
  md: map.get(tag.$tag-font-size, sm),
  lg: map.get(tag.$tag-font-size, md),
  xl: map.get(tag.$tag-font-size, lg),
) !default;
$multi-suggest-selection-item-height: (
  xs: map.get(tag.$tag-height, xs),
  sm: map.get(tag.$tag-height, xs),
  md: map.get(tag.$tag-height, sm),
  lg: map.get(tag.$tag-height, md),
  xl: map.get(tag.$tag-height, lg),
) !default;
$multi-suggest-selection-item-border-radius: (
  xs: map.get(tag.$tag-border-radius, xs),
  sm: map.get(tag.$tag-border-radius, xs),
  md: map.get(tag.$tag-border-radius, sm),
  lg: map.get(tag.$tag-border-radius, md),
  xl: map.get(tag.$tag-border-radius, lg),
) !default;

$multi-suggest-selected-stats-text-color: base.$color-text-hint !default;
$multi-suggest-stats-margin: base.padding(2) !default;

// @todo 临时方案，待重构
// 静态修饰只能满足某个数量级的 maxNumber 需要，比如  10/80 宽度够， 100/999 宽度就不够了
// 理论上是这个边距是随 selected-stats 数字宽度变化的动态值，以下这个取值法算是魔法取值
@function _get-stats-right($size: base.$base-size) {
  @return base.$form-control-box-padding-horizontal + map.get($suggest-suffix-size-caret, $size) + $multi-suggest-stats-margin + math.div($multi-suggest-stats-margin, 2);
}
$multi-suggest-selected-stats-padding-right-max-number: (
  xs: base.padding(8),
  sm: base.padding(9),
  md: base.padding(10),
  lg: base.padding(11),
  xl: base.padding(12)
) !default;
@function get-selected-stats-padding-right-max-number($size) {
  @return map.get($multi-suggest-selected-stats-padding-right-max-number, $size) + _get-stats-right($size);
}
@function get-selected-stats-padding-right-with-count($size) {
  @return math.div(map.get($multi-suggest-selected-stats-padding-right-max-number, $size), 2) + _get-stats-right($size);
}
