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