{"version":3,"file":"multiple.mjs","sources":["../../../../../../packages/components/select/style/multiple.ts"],"sourcesContent":["import type { CSSInterpolation, CSSObject } from '@antdv/theme';\nimport type { SelectToken } from '.';\nimport { mergeToken, resetIcon } from '@antdv/theme';\n\nconst FIXED_ITEM_MARGIN = 2;\n\nfunction getSelectItemStyle({\n  controlHeightSM,\n  controlHeight,\n  lineWidth: borderWidth,\n}: SelectToken) {\n  const selectItemDist = (controlHeight - controlHeightSM) / 2 - borderWidth;\n  const selectItemMargin = Math.ceil(selectItemDist / 2);\n  return [selectItemDist, selectItemMargin];\n}\n\nfunction genSizeStyle(token: SelectToken, suffix?: string): CSSObject {\n  const { componentCls, iconCls } = token;\n\n  const selectOverflowPrefixCls = `${componentCls}-selection-overflow`;\n\n  const selectItemHeight = token.controlHeightSM;\n  const [selectItemDist] = getSelectItemStyle(token);\n\n  const suffixCls = suffix ? `${componentCls}-${suffix}` : '';\n\n  return {\n    [`${componentCls}-multiple${suffixCls}`]: {\n      fontSize: token.fontSize,\n\n      /**\n       * Do not merge `height` & `line-height` under style with `selection` & `search`, since chrome\n       * may update to redesign with its align logic.\n       */\n      // =========================== Overflow ===========================\n      [selectOverflowPrefixCls]: {\n        'position': 'relative',\n        'display': 'flex',\n        'flex': 'auto',\n        'flexWrap': 'wrap',\n        'maxWidth': '100%',\n\n        '&-item': {\n          flex: 'none',\n          alignSelf: 'center',\n          maxWidth: '100%',\n          display: 'inline-flex',\n        },\n      },\n\n      // ========================= Selector =========================\n      [`${componentCls}-selector`]: {\n        'display': 'flex',\n        'flexWrap': 'wrap',\n        'alignItems': 'center',\n        // Multiple is little different that horizontal is follow the vertical\n        'padding': `${selectItemDist - FIXED_ITEM_MARGIN}px ${FIXED_ITEM_MARGIN * 2}px`,\n        'borderRadius': token.borderRadius,\n\n        [`${componentCls}-show-search&`]: {\n          cursor: 'text',\n        },\n\n        [`${componentCls}-disabled&`]: {\n          background: token.colorBgContainerDisabled,\n          cursor: 'not-allowed',\n        },\n\n        '&:after': {\n          display: 'inline-block',\n          width: 0,\n          margin: `${FIXED_ITEM_MARGIN}px 0`,\n          lineHeight: `${selectItemHeight}px`,\n          content: '\"\\\\a0\"',\n        },\n      },\n\n      [`\n        &${componentCls}-show-arrow ${componentCls}-selector,\n        &${componentCls}-allow-clear ${componentCls}-selector\n      `]: {\n        paddingInlineEnd: token.fontSizeIcon + token.controlPaddingHorizontal,\n      },\n\n      // ======================== Selections ========================\n      [`${componentCls}-selection-item`]: {\n        'position': 'relative',\n        'display': 'flex',\n        'flex': 'none',\n        'boxSizing': 'border-box',\n        'maxWidth': '100%',\n        'height': selectItemHeight,\n        'marginTop': FIXED_ITEM_MARGIN,\n        'marginBottom': FIXED_ITEM_MARGIN,\n        'lineHeight': `${selectItemHeight - token.lineWidth * 2}px`,\n        'background': token.colorFillSecondary,\n        'border': `${token.lineWidth}px solid ${token.colorSplit}`,\n        'borderRadius': token.borderRadiusSM,\n        'cursor': 'default',\n        'transition': `font-size ${token.motionDurationSlow}, line-height ${token.motionDurationSlow}, height ${token.motionDurationSlow}`,\n        'userSelect': 'none',\n        'marginInlineEnd': FIXED_ITEM_MARGIN * 2,\n        'paddingInlineStart': token.paddingXS,\n        'paddingInlineEnd': token.paddingXS / 2,\n\n        [`${componentCls}-disabled&`]: {\n          color: token.colorTextDisabled,\n          borderColor: token.colorBorder,\n          cursor: 'not-allowed',\n        },\n\n        // It's ok not to do this, but 24px makes bottom narrow in view should adjust\n        '&-content': {\n          display: 'inline-block',\n          marginInlineEnd: token.paddingXS / 2,\n          overflow: 'hidden',\n          whiteSpace: 'pre', // fix whitespace wrapping. custom tags display all whitespace within.\n          textOverflow: 'ellipsis',\n        },\n\n        '&-remove': {\n          ...resetIcon(),\n\n          'display': 'inline-block',\n          'color': token.colorIcon,\n          'fontWeight': 'bold',\n          'fontSize': 10,\n          'lineHeight': 'inherit',\n          'cursor': 'pointer',\n\n          [`> ${iconCls}`]: {\n            verticalAlign: '-0.2em',\n          },\n\n          '&:hover': {\n            color: token.colorIconHover,\n          },\n        },\n      },\n\n      // ========================== Input ==========================\n      [`${selectOverflowPrefixCls}-item + ${selectOverflowPrefixCls}-item`]: {\n        [`${componentCls}-selection-search`]: {\n          marginInlineStart: 0,\n        },\n      },\n\n      [`${componentCls}-selection-search`]: {\n        'display': 'inline-flex',\n        'position': 'relative',\n        'maxWidth': '100%',\n        'marginInlineStart': token.inputPaddingHorizontalBase - selectItemDist,\n\n        [`\n          &-input,\n          &-mirror\n        `]: {\n          height: selectItemHeight,\n          fontFamily: token.fontFamily,\n          lineHeight: `${selectItemHeight}px`,\n          transition: `all ${token.motionDurationSlow}`,\n        },\n\n        '&-input': {\n          width: '100%',\n          minWidth: 4.1, // fix search cursor missing\n        },\n\n        '&-mirror': {\n          position: 'absolute',\n          top: 0,\n          insetInlineStart: 0,\n          insetInlineEnd: 'auto',\n          zIndex: 999,\n          whiteSpace: 'pre', // fix whitespace wrapping caused width calculation bug\n          visibility: 'hidden',\n        },\n      },\n\n      // ======================= Placeholder =======================\n      [`${componentCls}-selection-placeholder `]: {\n        position: 'absolute',\n        top: '50%',\n        insetInlineStart: token.inputPaddingHorizontalBase,\n        insetInlineEnd: token.inputPaddingHorizontalBase,\n        transform: 'translateY(-50%)',\n        transition: `all ${token.motionDurationSlow}`,\n      },\n    },\n  };\n}\n\nexport default function genMultipleStyle(token: SelectToken): CSSInterpolation {\n  const { componentCls } = token;\n\n  const smallToken = mergeToken<SelectToken>(token, {\n    controlHeight: token.controlHeightSM,\n    controlHeightSM: token.controlHeightXS,\n    borderRadius: token.borderRadiusSM,\n    borderRadiusSM: token.borderRadiusXS,\n  });\n  const [, smSelectItemMargin] = getSelectItemStyle(token);\n\n  return [\n    genSizeStyle(token),\n    // ======================== Small ========================\n    // Shared\n    genSizeStyle(smallToken, 'sm'),\n\n    // Padding\n    {\n      [`${componentCls}-multiple${componentCls}-sm`]: {\n        [`${componentCls}-selection-placeholder`]: {\n          insetInlineStart: token.controlPaddingHorizontalSM - token.lineWidth,\n          insetInlineEnd: token.controlPaddingHorizontalSM - token.lineWidth,\n        },\n\n        // https://github.com/ant-design/ant-design/issues/29559\n        [`${componentCls}-selection-search`]: {\n          marginInlineStart: smSelectItemMargin,\n        },\n      },\n    },\n\n    // ======================== Large ========================\n    // Shared\n    genSizeStyle(\n      mergeToken<any>(token, {\n        fontSize: token.fontSizeLG,\n        controlHeight: token.controlHeightLG,\n        controlHeightSM: token.controlHeight,\n        borderRadius: token.borderRadiusLG,\n        borderRadiusSM: token.borderRadius,\n      }),\n      'lg',\n    ),\n  ];\n}\n"],"names":["mergeToken"],"mappings":"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"}