{"version":3,"file":"fieldTransformations-DY2-qceq.js","sources":["../../src/utils/fieldTransformations.js"],"sourcesContent":["const mockCountrylistFromJson = (fields) => {\n  if (!fields) {\n    return {};\n  }\n  if (!fields.countryList) {\n    return fields;\n  }\n  try {\n    const json = fields.countryList.value;\n    const parsed = JSON.parse(json);\n    const Elements = parsed.values.map((element) => ({\n      fields: {\n        Title: {\n          value: element.title,\n        },\n        Value: {\n          value: element.value,\n        },\n      },\n    }));\n    const defaultOption = {};\n    if (parsed.default) {\n      defaultOption['Default Option'] = {\n        fields: {\n          Value: {\n            value: parsed.default,\n          },\n        },\n      };\n    }\n    return {\n      debugZoomLevels: fields.debugZoomLevels,\n      countryList: {\n        fields: {\n          ...defaultOption,\n          Elements,\n        },\n      },\n    };\n  } catch (e) {\n    // eslint-disable-next-line no-console\n    console.log('Could not create mock countrylist from fields', e, fields);\n    return null;\n  }\n};\n\nconst getSelectList = (fields, fieldsName, fallbackValue, sortAlphabetically) => {\n  if (IS_SHOWROOM) {\n    if (\n      fields?.[fieldsName] &&\n      typeof fields[fieldsName].value === 'string' &&\n      !fields[fieldsName].fields\n    ) {\n      fields[fieldsName] = mockCountrylistFromJson(fields)[fieldsName];\n    }\n  }\n  if (!(fields?.[fieldsName] && fields[fieldsName].fields?.Elements)) {\n    return [null, fallbackValue];\n  }\n\n  let selectList;\n  if (fieldsName === 'targetGroupSectorList') {\n    fields[fieldsName].fields.Elements.forEach((element) => {\n      if (!element.fields) {\n        console.error('\"fields\" are not defined');\n        return;\n      }\n\n      if (!element.fields.Title) {\n        console.error('\"Title\" is not defined (field: \"targetGroupSectorList\")', element);\n      }\n      if (!element.fields.Value) {\n        console.error('\"Value\" is not defined (field: \"targetGroupSectorList\")', element);\n      }\n      if (!element.fields.Image) {\n        console.error('\"Image\" is not defined (field: \"targetGroupSectorList\")', element);\n      }\n    });\n\n    selectList = fields[fieldsName].fields.Elements.map((element) => ({\n      title: element.fields.Title.value || element.fields.Value.value,\n      name: element.fields.Title.value || element.fields.Value.value,\n      value: element.fields.Value.value,\n      image: element.fields.Image ? element.fields.Image.value : undefined,\n      newsletter: element.fields.Newsletter ? element.fields.Newsletter.id : '',\n    }));\n  } else {\n    selectList = fields[fieldsName].fields.Elements.map((element) => ({\n      title: element.fields.Title.value || element.fields.Value.value,\n      name: element.fields.Title.value || element.fields.Value.value,\n      value: element.fields.Value.value,\n    }));\n  }\n\n  const defaultField = fields[fieldsName].fields['Default Option'];\n  let defaultOption;\n  let defaultValue;\n\n  if (defaultField) {\n    defaultValue = defaultField.fields.Value.value;\n    defaultOption = selectList.find((el) => el.value === defaultValue);\n  } else {\n    defaultOption = null;\n  }\n\n  if (sortAlphabetically) {\n    selectList.sort((a, b) => {\n      if (a.name < b.name) {\n        return -1;\n      }\n      if (a.name > b.name) {\n        return 1;\n      }\n      return 0;\n    });\n  }\n\n  return [defaultOption, selectList, defaultValue];\n};\n\nconst getApiSelectList = (data, fieldsName, fallbackValue, sortAlphabetically) => {\n  if (IS_SHOWROOM) {\n    if (data?.[fieldsName] && typeof data[fieldsName] === 'string' && !data[fieldsName]) {\n      data[fieldsName] = mockCountrylistFromJson(data)[fieldsName];\n    }\n  }\n  if (!(data?.[fieldsName] && data[fieldsName]?.Elements)) {\n    return [null, fallbackValue];\n  }\n\n  let selectList;\n  if (fieldsName === 'TargetGroupSectorList') {\n    data[fieldsName].Elements.forEach((element) => {\n      if (!element) {\n        console.error('\"fields\" are not defined');\n        return;\n      }\n\n      if (!element.Title) {\n        console.error('\"Title\" is not defined (field: \"TargetGroupSectorList\")', element);\n      }\n      if (!element.Value) {\n        console.error('\"Value\" is not defined (field: \"TargetGroupSectorList\")', element);\n      }\n    });\n\n    selectList = data[fieldsName].Elements?.map((element) => ({\n      title: element.Title || element.Value,\n      name: element.Title || element.Value,\n      value: element.Value,\n      newsletter: element.Newsletter || '',\n    }));\n  } else {\n    selectList = data[fieldsName].Elements?.map((element) => ({\n      title: element.Title || element.Value,\n      name: element.Title || element.Value,\n      value: element.Value,\n    }));\n  }\n\n  const defaultField = data[fieldsName]['Default_Option'];\n  let defaultOption;\n  let defaultValue;\n\n  if (defaultField) {\n    defaultValue = defaultField.Value;\n    defaultOption = selectList.find((el) => el.value === defaultValue);\n  } else {\n    defaultOption = null;\n  }\n\n  if (sortAlphabetically) {\n    selectList.sort((a, b) => {\n      if (a.name < b.name) {\n        return -1;\n      }\n      if (a.name > b.name) {\n        return 1;\n      }\n      return 0;\n    });\n  }\n\n  return [defaultOption, selectList, defaultValue];\n};\n\nconst mockChannel = (fields, $fischer) => {\n  if (!IS_SHOWROOM) {\n    // eslint-disable-next-line no-console\n    console.log('Called dev-tool outside of showroom!');\n    return;\n  }\n  if (fields?.mockChannel?.value) {\n    const locale = fields.mockChannel.value;\n    $fischer.setCatalogSetting('locale', locale);\n    $fischer.showroomOverrides.setContext('language', locale.replace('_', '-'));\n  }\n  if (fields?.mockBaseSiteId) {\n    const baseSiteId = fields.mockBaseSiteId.value;\n    $fischer.setShopSetting('baseSiteId', baseSiteId);\n  }\n};\n\nconst getSplitted = (obj) => {\n  let result = [];\n\n  if (!obj?.value) {\n    return result;\n  }\n\n  if (obj.value.indexOf('{0}') !== -1) {\n    result = obj.value.split('{0}');\n  } else {\n    result.push(obj.value);\n  }\n\n  return result;\n};\n\nconst getPreparedPlaceholderValue = (fields, fieldName, placeholderValue) => {\n  const obj = fields[fieldName];\n  let value = '';\n\n  if (obj?.value?.indexOf('{0}') !== -1) {\n    value = getSplitted(obj)[0] + placeholderValue + getSplitted(obj)[1];\n  } else if (obj?.value) {\n    value = obj.value;\n  }\n\n  return value;\n};\n\nexport {\n  getSelectList,\n  getApiSelectList,\n  mockCountrylistFromJson,\n  mockChannel,\n  getPreparedPlaceholderValue,\n  getSplitted,\n};\n"],"names":["getSelectList","fields","fieldsName","fallbackValue","sortAlphabetically","_a","selectList","element","defaultField","defaultOption","defaultValue","el","a","b","getApiSelectList","data","_b","_c","getSplitted","obj","result","getPreparedPlaceholderValue","fieldName","placeholderValue","value"],"mappings":"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"}