{"version":3,"file":"index.cjs","sources":["../../../../../../packages/components/image/style/index.ts"],"sourcesContent":["import type { CSSObject, FullToken, GenerateStyle } from '@antdv/theme';\nimport { genComponentStyleHook, mergeToken, textEllipsis } from '@antdv/theme';\nimport { initFadeMotion, initZoomMotion } from '@antdv/theme/style/motion';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport { genModalMaskStyle } from '../../modal/style';\n\nexport interface ComponentToken {\n  /**\n   * @desc 预览浮层 z-index\n   * @descEN z-index of preview popup\n   */\n  zIndexPopup: number\n  /**\n   * @desc 预览操作图标大小\n   * @descEN Size of preview operation icon\n   */\n  previewOperationSize: number\n  /**\n   * @desc 预览操作图标颜色\n   * @descEN Color of preview operation icon\n   */\n  previewOperationColor: string\n  /**\n   * @desc 预览操作图标悬浮颜色\n   * @descEN Color of hovered preview operation icon\n   */\n  previewOperationHoverColor: string\n  /**\n   * @desc 预览操作图标禁用颜色\n   * @descEN Disabled color of preview operation icon\n   */\n  previewOperationColorDisabled: string\n}\n\nexport interface ImageToken extends FullToken<'Image'> {\n  previewCls: string\n  modalMaskBg: string\n  imagePreviewSwitchSize: number\n}\n\nexport type PositionType = 'static' | 'relative' | 'fixed' | 'absolute' | 'sticky' | undefined;\n\nexport function genBoxStyle(position?: PositionType): CSSObject {\n  return {\n    position: position || 'absolute',\n    inset: 0,\n  };\n}\n\nexport function genImageMaskStyle(token: ImageToken): CSSObject {\n  const { iconCls, motionDurationSlow, paddingXXS, marginXXS, prefixCls, colorTextLightSolid }\n    = token;\n  return {\n    position: 'absolute',\n    inset: 0,\n    display: 'flex',\n    alignItems: 'center',\n    justifyContent: 'center',\n    color: colorTextLightSolid,\n    background: new TinyColor('#000').setAlpha(0.5).toRgbString(),\n    cursor: 'pointer',\n    opacity: 0,\n    transition: `opacity ${motionDurationSlow}`,\n\n    [`.${prefixCls}-mask-info`]: {\n      ...textEllipsis,\n      padding: `0 ${paddingXXS}px`,\n      [iconCls]: {\n        marginInlineEnd: marginXXS,\n        svg: {\n          verticalAlign: 'baseline',\n        },\n      },\n    },\n  };\n}\n\nexport function genPreviewOperationsStyle(token: ImageToken): CSSObject {\n  const {\n    previewCls,\n    modalMaskBg,\n    paddingSM,\n    marginXL,\n    margin,\n    paddingLG,\n    previewOperationColorDisabled,\n    previewOperationHoverColor,\n    motionDurationSlow,\n    iconCls,\n    colorTextLightSolid,\n  } = token;\n\n  const operationBg = new TinyColor(modalMaskBg).setAlpha(0.1);\n  const operationBgHover = operationBg.clone().setAlpha(0.2);\n\n  return {\n    [`${previewCls}-footer`]: {\n      position: 'fixed',\n      bottom: marginXL,\n      left: {\n        _skip_check_: true,\n        value: 0,\n      },\n      width: '100%',\n      display: 'flex',\n      flexDirection: 'column',\n      alignItems: 'center',\n      color: token.previewOperationColor,\n    },\n    [`${previewCls}-progress`]: {\n      marginBottom: margin,\n    },\n    [`${previewCls}-close`]: {\n      'position': 'fixed',\n      'top': marginXL,\n      'right': {\n        _skip_check_: true,\n        value: marginXL,\n      },\n      'display': 'flex',\n      'color': colorTextLightSolid,\n      'backgroundColor': operationBg.toRgbString(),\n      'borderRadius': '50%',\n      'padding': paddingSM,\n      'outline': 0,\n      'border': 0,\n      'cursor': 'pointer',\n      'transition': `all ${motionDurationSlow}`,\n\n      '&:hover': {\n        backgroundColor: operationBgHover.toRgbString(),\n      },\n\n      [`& > ${iconCls}`]: {\n        fontSize: token.previewOperationSize,\n      },\n    },\n    [`${previewCls}-operations`]: {\n      'display': 'flex',\n      'alignItems': 'center',\n      'padding': `0 ${paddingLG}px`,\n      'backgroundColor': operationBg.toRgbString(),\n      'borderRadius': 100,\n\n      '&-operation': {\n        'marginInlineStart': paddingSM,\n        'padding': paddingSM,\n        'cursor': 'pointer',\n        'transition': `all ${motionDurationSlow}`,\n        'userSelect': 'none',\n\n        [`&:not(${previewCls}-operations-operation-disabled):hover > ${iconCls}`]: {\n          color: previewOperationHoverColor,\n        },\n\n        '&-disabled': {\n          color: previewOperationColorDisabled,\n          cursor: 'not-allowed',\n        },\n\n        '&:first-of-type': {\n          marginInlineStart: 0,\n        },\n\n        [`& > ${iconCls}`]: {\n          fontSize: token.previewOperationSize,\n        },\n      },\n    },\n  };\n}\n\nexport function genPreviewSwitchStyle(token: ImageToken): CSSObject {\n  const {\n    modalMaskBg,\n    iconCls,\n    previewOperationColorDisabled,\n    previewCls,\n    zIndexPopup,\n    motionDurationSlow,\n  } = token;\n\n  const operationBg = new TinyColor(modalMaskBg).setAlpha(0.1);\n  const operationBgHover = operationBg.clone().setAlpha(0.2);\n\n  return {\n    [`${previewCls}-switch-left, ${previewCls}-switch-right`]: {\n      'position': 'fixed',\n      'insetBlockStart': '50%',\n      'zIndex': zIndexPopup + 1,\n      'display': 'flex',\n      'alignItems': 'center',\n      'justifyContent': 'center',\n      'width': token.imagePreviewSwitchSize,\n      'height': token.imagePreviewSwitchSize,\n      'marginTop': -token.imagePreviewSwitchSize / 2,\n      'color': token.previewOperationColor,\n      'background': operationBg.toRgbString(),\n      'borderRadius': '50%',\n      'transform': 'translateY(-50%)',\n      'cursor': 'pointer',\n      'transition': `all ${motionDurationSlow}`,\n      'userSelect': 'none',\n\n      '&:hover': {\n        background: operationBgHover.toRgbString(),\n      },\n\n      '&-disabled': {\n        '&, &:hover': {\n          color: previewOperationColorDisabled,\n          background: 'transparent',\n          cursor: 'not-allowed',\n          [`> ${iconCls}`]: {\n            cursor: 'not-allowed',\n          },\n        },\n      },\n      [`> ${iconCls}`]: {\n        fontSize: token.previewOperationSize,\n      },\n    },\n\n    [`${previewCls}-switch-left`]: {\n      insetInlineStart: token.marginSM,\n    },\n\n    [`${previewCls}-switch-right`]: {\n      insetInlineEnd: token.marginSM,\n    },\n  };\n}\n\nexport const genImagePreviewStyle: GenerateStyle<ImageToken> = (token: ImageToken) => {\n  const { motionEaseOut, previewCls, motionDurationSlow, componentCls } = token;\n\n  return [\n    {\n      [`${componentCls}-preview-root`]: {\n        [previewCls]: {\n          height: '100%',\n          textAlign: 'center',\n          pointerEvents: 'none',\n        },\n\n        [`${previewCls}-body`]: {\n          ...genBoxStyle(),\n          overflow: 'hidden',\n        },\n\n        [`${previewCls}-img`]: {\n          'maxWidth': '100%',\n          'maxHeight': '70%',\n          'verticalAlign': 'middle',\n          'transform': 'scale3d(1, 1, 1)',\n          'cursor': 'grab',\n          'transition': `transform ${motionDurationSlow} ${motionEaseOut} 0s`,\n          'userSelect': 'none',\n          'pointerEvents': 'auto',\n\n          '&-wrapper': {\n            ...genBoxStyle(),\n            'transition': `transform ${motionDurationSlow} ${motionEaseOut} 0s`,\n\n            // https://github.com/ant-design/ant-design/issues/39913\n            // TailwindCSS will reset img default style.\n            // Let's set back.\n            'display': 'flex',\n            'justifyContent': 'center',\n            'alignItems': 'center',\n\n            '& > *': {\n              pointerEvents: 'auto',\n            },\n\n            '&::before': {\n              display: 'inline-block',\n              width: 1,\n              height: '50%',\n              marginInlineEnd: -1,\n              content: '\"\"',\n            },\n          },\n        },\n\n        [`${previewCls}-moving`]: {\n          [`${previewCls}-preview-img`]: {\n            'cursor': 'grabbing',\n\n            '&-wrapper': {\n              transitionDuration: '0s',\n            },\n          },\n        },\n      },\n    },\n    // Override\n    {\n      [`${componentCls}-preview-root`]: {\n        [`${previewCls}-wrap`]: {\n          zIndex: token.zIndexPopup,\n        },\n      },\n    },\n\n    // Preview operations & switch\n    {\n      [`${componentCls}-preview-operations-wrapper`]: {\n        position: 'fixed',\n        zIndex: token.zIndexPopup + 1,\n      },\n      '&': [genPreviewOperationsStyle(token), genPreviewSwitchStyle(token)],\n    },\n  ];\n};\n\nconst genImageStyle: GenerateStyle<ImageToken> = (token: ImageToken) => {\n  const { componentCls } = token;\n  return {\n    // ============================== image ==============================\n    [componentCls]: {\n      position: 'relative',\n      display: 'inline-block',\n      [`${componentCls}-img`]: {\n        width: '100%',\n        height: 'auto',\n        verticalAlign: 'middle',\n      },\n      [`${componentCls}-img-placeholder`]: {\n        backgroundColor: token.colorBgContainerDisabled,\n        backgroundImage:\n          'url(\\'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTQuNSAyLjVoLTEzQS41LjUgMCAwIDAgMSAzdjEwYS41LjUgMCAwIDAgLjUuNWgxM2EuNS41IDAgMCAwIC41LS41VjNhLjUuNSAwIDAgMC0uNS0uNXpNNS4yODEgNC43NWExIDEgMCAwIDEgMCAyIDEgMSAwIDAgMSAwLTJ6bTguMDMgNi44M2EuMTI3LjEyNyAwIDAgMS0uMDgxLjAzSDIuNzY5YS4xMjUuMTI1IDAgMCAxLS4wOTYtLjIwN2wyLjY2MS0zLjE1NmEuMTI2LjEyNiAwIDAgMSAuMTc3LS4wMTZsLjAxNi4wMTZMNy4wOCAxMC4wOWwyLjQ3LTIuOTNhLjEyNi4xMjYgMCAwIDEgLjE3Ny0uMDE2bC4wMTUuMDE2IDMuNTg4IDQuMjQ0YS4xMjcuMTI3IDAgMCAxLS4wMi4xNzV6IiBmaWxsPSIjOEM4QzhDIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L3N2Zz4=\\')',\n        backgroundRepeat: 'no-repeat',\n        backgroundPosition: 'center center',\n        backgroundSize: '30%',\n      },\n      [`${componentCls}-mask`]: {\n        ...genImageMaskStyle(token),\n      },\n      [`${componentCls}-mask:hover`]: {\n        opacity: 1,\n      },\n      [`${componentCls}-placeholder`]: {\n        ...genBoxStyle(),\n      },\n    },\n  };\n};\n\nconst genPreviewMotion: GenerateStyle<ImageToken> = (token) => {\n  const { previewCls } = token;\n\n  return {\n    [`${previewCls}-root`]: initZoomMotion(token, 'zoom'),\n    '&': initFadeMotion(token, true),\n  };\n};\n\n// ============================== Export ==============================\nexport default genComponentStyleHook(\n  'Image',\n  (token) => {\n    const previewCls = `${token.componentCls}-preview`;\n\n    const imageToken = mergeToken<ImageToken>(token, {\n      previewCls,\n      modalMaskBg: new TinyColor('#000').setAlpha(0.45).toRgbString(), // FIXME: Shared Token\n      imagePreviewSwitchSize: token.controlHeightLG,\n    });\n\n    return [\n      genImageStyle(imageToken),\n      genImagePreviewStyle(imageToken),\n      genModalMaskStyle(mergeToken<ImageToken>(imageToken, { componentCls: previewCls })),\n      genPreviewMotion(imageToken),\n    ];\n  },\n  token => ({\n    zIndexPopup: token.zIndexPopupBase + 80,\n    previewOperationColor: new TinyColor(token.colorTextLightSolid).setAlpha(0.65).toRgbString(),\n    previewOperationHoverColor: new TinyColor(token.colorTextLightSolid)\n      .setAlpha(0.85)\n      .toRgbString(),\n    previewOperationColorDisabled: new TinyColor(token.colorTextLightSolid)\n      .setAlpha(0.25)\n      .toRgbString(),\n    previewOperationSize: token.fontSizeIcon * 1.5, // FIXME: fontSizeIconLG\n  }),\n);\n"],"names":["TinyColor","textEllipsis","initZoomMotion","initFadeMotion","genComponentStyleHook","mergeToken","genModalMaskStyle"],"mappings":"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"}