import { CheckmarkDoneSuccessCorrect16GreenIcon, XmarkFailed16RedIcon, NoticeTriangleFill16YellowIcon, Loading16GradientBlueIcon } from '@cloudtower/icons-react';
import { cx } from '@linaria/core';
import { styled } from '@linaria/react';
import Icon from '../Icon/index.js';
import { StatusColorMap } from './progress.const.js';
import { DescriptionStyle } from './progress.style.js';
import { Typo } from '../Typo/index.js';
import OverflowTooltip from '../../coreX/OverflowTooltip/index.js';
import cs from 'classnames';
import React__default from 'react';

var __defProp = Object.defineProperty;
var __defProps = Object.defineProperties;
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {
  enumerable: true,
  configurable: true,
  writable: true,
  value
}) : obj[key] = value;
var __spreadValues = (a, b) => {
  for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]);
  if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) {
    if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]);
  }
  return a;
};
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
var __objRest = (source, exclude) => {
  var target = {};
  for (var prop in source) if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0) target[prop] = source[prop];
  if (source != null && __getOwnPropSymbols) for (var prop of __getOwnPropSymbols(source)) {
    if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop)) target[prop] = source[prop];
  }
  return target;
};
const _exp = /*#__PURE__*/() => ({
  color
}) => color || "";
const IconFieldText = /*#__PURE__*/styled('div')({
  name: "IconFieldText",
  class: "E_i14c7jc8",
  propsAsIs: false,
  vars: {
    "i14c7jc8-0": [_exp()]
  }
});
const StatusIconMap = {
  success: /* @__PURE__ */React__default.createElement(CheckmarkDoneSuccessCorrect16GreenIcon, null),
  failed: /* @__PURE__ */React__default.createElement(XmarkFailed16RedIcon, null),
  paused: /* @__PURE__ */React__default.createElement(NoticeTriangleFill16YellowIcon, null),
  active: /* @__PURE__ */React__default.createElement(Icon, {
    src: Loading16GradientBlueIcon,
    isRotate: true
  })
};
const IconFieldWrapper = /*#__PURE__*/styled('div')({
  name: "IconFieldWrapper",
  class: "E_i1ibuolf",
  propsAsIs: false
});
const IconField = _a => {
  var _b = _a,
    {
      src,
      children,
      status,
      className
    } = _b,
    restProps = __objRest(_b, ["src", "children", "status", "className"]);
  const iconNode = status ? StatusIconMap[status] : src ? /* @__PURE__ */React__default.createElement(Icon, {
    src
  }) : null;
  const color = status && status !== "active" ? StatusColorMap[status] : void 0;
  return /* @__PURE__ */React__default.createElement(IconFieldWrapper, __spreadProps(__spreadValues({}, restProps), {
    className: cx("progress-status-field", className)
  }), iconNode, /* @__PURE__ */React__default.createElement(IconFieldText, {
    color
  }, children));
};
const Info = ({
  children,
  type,
  multiLines
}) => {
  const isTitle = type === "title";
  return /* @__PURE__ */React__default.createElement(OverflowTooltip, {
    className: cs({
      "progress-title": isTitle,
      [Typo.Label.l2_bold]: isTitle,
      "progress-desc": !isTitle,
      [DescriptionStyle]: !isTitle
    }),
    multiLines,
    content: children
  });
};

export { IconField, Info, StatusIconMap };
