{"version":3,"file":"background.mjs","sources":["../../../src/utils/helper/background.ts"],"sourcesContent":["import {\r\n  BackgroundAttribute,\r\n  BackgroundPositionXProp,\r\n  BackgroundPositionYProp,\r\n  BackgroundRepeatProp,\r\n  BackgroundSizeProp,\r\n} from '../../types';\r\n\r\n/**\r\n * 背景模型数据\r\n */\r\nconst IMAGE_POSITION = [\r\n  {\r\n    key: 'left-top',\r\n    backgroundRepeat: 'no-repeat',\r\n    backgroundPositionX: 'left',\r\n    backgroundPositionY: 'top',\r\n    backgroundSize: 'auto',\r\n  },\r\n  {\r\n    key: 'center-top',\r\n    backgroundRepeat: 'no-repeat',\r\n    backgroundPositionX: 'center',\r\n    backgroundPositionY: 'top',\r\n    backgroundSize: 'auto',\r\n  },\r\n  {\r\n    key: 'right-top',\r\n    backgroundRepeat: 'no-repeat',\r\n    backgroundPositionX: 'right',\r\n    backgroundPositionY: 'top',\r\n    backgroundSize: 'auto',\r\n  },\r\n  {\r\n    key: 'left-center',\r\n    backgroundRepeat: 'no-repeat',\r\n    backgroundPositionX: 'left',\r\n    backgroundPositionY: 'center',\r\n    backgroundSize: 'auto',\r\n  },\r\n  {\r\n    key: 'center-center',\r\n    backgroundRepeat: 'no-repeat',\r\n    backgroundPositionX: 'center',\r\n    backgroundPositionY: 'center',\r\n    backgroundSize: 'auto',\r\n  },\r\n  {\r\n    key: 'right-center',\r\n    backgroundRepeat: 'no-repeat',\r\n    backgroundPositionX: 'right',\r\n    backgroundPositionY: 'center',\r\n    backgroundSize: 'auto',\r\n  },\r\n  {\r\n    key: 'left-bottom',\r\n    backgroundRepeat: 'no-repeat',\r\n    backgroundPositionX: 'left',\r\n    backgroundPositionY: 'bottom',\r\n    backgroundSize: 'auto',\r\n  },\r\n  {\r\n    key: 'center-bottom',\r\n    backgroundRepeat: 'no-repeat',\r\n    backgroundPositionX: 'center',\r\n    backgroundPositionY: 'bottom',\r\n    backgroundSize: 'auto',\r\n  },\r\n  {\r\n    key: 'right-bottom',\r\n    backgroundRepeat: 'no-repeat',\r\n    backgroundPositionX: 'right',\r\n    backgroundPositionY: 'bottom',\r\n    backgroundSize: 'auto',\r\n  },\r\n];\r\n// 图片平铺\r\nconst IMAGE_PAVING_EFFECT = [\r\n  {\r\n    label: '默认',\r\n    key: 'default',\r\n    backgroundRepeat: 'repeat',\r\n    backgroundPositionX: 'center',\r\n    backgroundPositionY: 'center',\r\n    backgroundSize: 'auto',\r\n  },\r\n  {\r\n    label: '缩放平铺',\r\n    key: 'zoom-tile',\r\n    backgroundRepeat: 'no-repeat',\r\n    backgroundPositionX: 'center',\r\n    backgroundPositionY: 'top',\r\n    backgroundSize: '100%',\r\n  },\r\n  {\r\n    label: '上',\r\n    key: 'top',\r\n    backgroundRepeat: 'repeat-x',\r\n    backgroundPositionX: 'center',\r\n    backgroundPositionY: 'top',\r\n    backgroundSize: 'auto',\r\n  },\r\n  {\r\n    label: '中-横向',\r\n    key: 'in-horizontal',\r\n    backgroundRepeat: 'repeat-x',\r\n    backgroundPositionX: 'center',\r\n    backgroundPositionY: 'center',\r\n    backgroundSize: 'auto',\r\n  },\r\n  {\r\n    label: '下',\r\n    key: 'bottom',\r\n    backgroundRepeat: 'repeat-x',\r\n    backgroundPositionX: 'center',\r\n    backgroundPositionY: 'bottom',\r\n    backgroundSize: 'auto',\r\n  },\r\n  {\r\n    label: '左',\r\n    key: 'left',\r\n    backgroundRepeat: 'repeat-y',\r\n    backgroundPositionX: 'left',\r\n    backgroundPositionY: 'top',\r\n    backgroundSize: 'auto',\r\n  },\r\n  {\r\n    label: '中-纵向',\r\n    key: 'in-vertical',\r\n    backgroundRepeat: 'repeat-y',\r\n    backgroundPositionX: 'center',\r\n    backgroundPositionY: 'top',\r\n    backgroundSize: 'auto',\r\n  },\r\n  {\r\n    label: '右',\r\n    key: 'right',\r\n    backgroundRepeat: 'repeat-y',\r\n    backgroundPositionX: 'right',\r\n    backgroundPositionY: 'top',\r\n    backgroundSize: 'auto',\r\n  },\r\n];\r\n// 图片缩放\r\nconst IMAGE_SCALING_STRETCH = [\r\n  {\r\n    backgroundRepeat: 'no-repeat',\r\n    backgroundPositionX: 'left',\r\n    backgroundPositionY: 'center',\r\n    backgroundSize: '100% 100%',\r\n  },\r\n];\r\n// 图片填充\r\nconst IMAGE_SCALING_FILL = [\r\n  {\r\n    backgroundRepeat: 'no-repeat',\r\n    backgroundPositionX: 'center',\r\n    backgroundPositionY: 'center',\r\n    backgroundSize: 'cover',\r\n  },\r\n];\r\n// 图片等比\r\nconst IMAGE_SCALING_CONTAIN = [\r\n  {\r\n    backgroundRepeat: 'no-repeat',\r\n    backgroundPositionX: 'center',\r\n    backgroundPositionY: 'center',\r\n    backgroundSize: 'contain',\r\n  },\r\n];\r\n\r\nconst sizeOptions = ['auto', '100%', '100% 100%', 'cover', 'contain'];\r\n\r\nconst repeatOption = {\r\n  default: 3,\r\n  'zoom-tile': 5,\r\n  top: 11,\r\n  'in-horizontal': 1,\r\n  bottom: 12,\r\n  left: 21,\r\n  'in-vertical': 2,\r\n  right: 22,\r\n  'left-top': 13,\r\n  'center-top': 8,\r\n  'right-top': 14,\r\n  'left-center': 6,\r\n  'center-center': 0,\r\n  'right-center': 7,\r\n  'left-bottom': 15,\r\n  'center-bottom': 9,\r\n  'right-bottom': 16,\r\n};\r\n\r\n/**\r\n * 组合平铺信息\r\n * @param backgroundRepeat\r\n * @param backgroundPositionX\r\n * @param backgroundPositionY\r\n * @param backgroundSize\r\n */\r\nconst composeRepeatInfo = ({\r\n  backgroundRepeat,\r\n  backgroundPositionX,\r\n  backgroundPositionY,\r\n  backgroundSize,\r\n}: Partial<BackgroundAttribute>) =>\r\n  [backgroundRepeat, backgroundPositionX, backgroundPositionY, backgroundSize].join(',');\r\n\r\n/**\r\n * 解析平铺信息\r\n * @param repeatInfoComposed\r\n */\r\nconst parseRepeatInfo = (repeatInfoComposed: string) =>\r\n  //backgroundRepeat, backgroundPositionX, backgroundPositionY, backgroundSize\r\n  repeatInfoComposed.split(',') as [\r\n    backgroundRepeat: BackgroundRepeatProp,\r\n    backgroundPositionX: BackgroundPositionXProp,\r\n    backgroundPositionY: BackgroundPositionYProp,\r\n    backgroundSize: BackgroundSizeProp,\r\n  ];\r\n\r\n/**\r\n * 解析图片路径\r\n * @param backgroundImage\r\n */\r\nfunction parseBackgroundImageUrl(backgroundImage: string) {\r\n  let ret = '';\r\n  if (backgroundImage) {\r\n    const found = backgroundImage.match(/url\\(\\s*['|\"\"]?\\s*(\\S+)\\s*['|\"\"]?\\s*\\)/);\r\n    if (found && found[1]) {\r\n      ret = found[1];\r\n    }\r\n  }\r\n  return ret;\r\n}\r\n// 解析渐变色\r\nfunction parseBackgroundImageGradient(backgroundImage: string) {\r\n  let ret = '';\r\n  if (backgroundImage) {\r\n    const found = backgroundImage.match(/linear-gradient\\(\\s*.+\\s*\\)/);\r\n    if (found && found[0]) {\r\n      ret = found[0];\r\n    }\r\n  }\r\n  return ret;\r\n}\r\nfunction concatBackgroundColor(color: string) {\r\n  return /linear-gradient\\(/.test(color) ? '' : color;\r\n}\r\nfunction concatBackgroundImage(imageUrl: string, color: string) {\r\n  return [imageUrl ? 'url(' + imageUrl + ')' : '', /linear-gradient\\(/.test(color) ? color : '']\r\n    .filter(function (x) {\r\n      return x;\r\n    })\r\n    .join(',');\r\n}\r\n\r\nexport default {\r\n  IMAGE_POSITION,\r\n  IMAGE_PAVING_EFFECT,\r\n  IMAGE_SCALING_STRETCH,\r\n  IMAGE_SCALING_FILL,\r\n  IMAGE_SCALING_CONTAIN,\r\n  sizeOptions,\r\n  repeatOption,\r\n  composeRepeatInfo,\r\n  parseRepeatInfo,\r\n  parseBackgroundImageUrl,\r\n  parseBackgroundImageGradient,\r\n  concatBackgroundColor,\r\n  concatBackgroundImage,\r\n};\r\n"],"names":[],"mappings":"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"}