{"version":3,"file":"getInitialValue.mjs","sources":[""],"sourcesContent":["import { getLabel } from \"./getLabel\";\r\nimport { selectEmptyOptions } from \"../config/constants\";\r\nimport type { TOptionType, TSelectValue, TSelectUserValue } from \"../config/types\";\r\n\r\ntype TGetInitialValueParams = {\r\n  value?: TSelectUserValue;\r\n  isMulti?: boolean;\r\n  options?: TOptionType[];\r\n};\r\n\r\n/**\r\n * Computes the initial value for the select component.\r\n * Converts raw value(s) into the shape expected by `react‑select`.\r\n * @returns {TSelectUserValue}\r\n */\r\nexport const getInitialValue = ({\r\n  value,\r\n  isMulti = false,\r\n  options = selectEmptyOptions,\r\n}: TGetInitialValueParams): TSelectValue<typeof isMulti> => {\r\n\r\n  // value isn't provided\r\n  if (!value) {\r\n    return null;\r\n  }\r\n\r\n  if (isMulti) {\r\n\r\n    // [ \"str\", \"str\" ]\r\n    if (Array.isArray(value) && value.every((item) => typeof item === \"string\")) {\r\n      return value.map((text) => ({\r\n        label: getLabel(options, text),\r\n        value: text,\r\n      }));\r\n    }\r\n\r\n    // \"str\"\r\n    if (typeof value === \"string\") {\r\n      return [\r\n        {\r\n          label: getLabel(options, value),\r\n          value,\r\n        },\r\n      ];\r\n    }\r\n\r\n    // valid array\r\n    if (Array.isArray(value) && value.every((item) => typeof item === \"object\" && \"label\" in item && \"value\" in item && typeof item.label === \"string\" && typeof item.value === \"string\")) {\r\n      return value as TSelectValue<true>;\r\n    }\r\n\r\n    // Invalid value\r\n    return null;\r\n  }\r\n\r\n  // Single string value\r\n  if (typeof value === \"string\" && value.length) {\r\n    return { label: getLabel(options, value), value };\r\n  }\r\n\r\n  // Single IOptionType object (already in correct format)\r\n  if (typeof value === \"object\" && value !== null && !Array.isArray(value) && \"value\" in value) {\r\n    return value as TOptionType;\r\n  }\r\n\r\n  // Invalid value for single select\r\n  console.debug(`[Select] Value has incorrect format and become \"null\"`);\r\n  return null;\r\n};\r\n"],"names":["getInitialValue","value","isMulti","options","selectEmptyOptions","Array","isArray","every","item","map","text","label","getLabel","length","console","debug"],"mappings":";;;;;GAeO,MAAMA,gBAAkB,EAC7BC,YACAC,gBAAU,MACVC,gBAAUC;;AAIV,IAAKH,MACH,OAAO,KAGT,GAAIC,QAAS;;AAGX,GAAIG,MAAMC,QAAQL,QAAUA,MAAMM,MAAOC,aAAgBA,OAAS,UAChE,OAAOP,MAAMQ,IAAKC,OAAI,CACpBC,MAAOC,SAAST,QAASO,MACzBT,MAAOS;QAKX;UAAWT,QAAU,SACnB,MAAO,CACL,CACEU,MAAOC,SAAST,QAASF,OACzBA;cAMN;GAAII,MAAMC,QAAQL,QAAUA,MAAMM,MAAOC,aAAgBA,OAAS,UAAY,UAAWA,MAAQ,UAAWA,aAAeA,KAAKG,QAAU,iBAAmBH,KAAKP,QAAU,UAC1K,OAAOA;gBAIT;OAAO,IACT;sBAGA;UAAWA,QAAU,UAAYA,MAAMY,OACrC,MAAO,CAAEF,MAAOC,SAAST,QAASF,OAAQA;wDAI5C;UAAWA,QAAU,UAAYA,QAAU,OAASI,MAAMC,QAAQL,QAAU,UAAWA,MACrF,OAAOA;kCAITa;QAAQC,MAAM,yDACd,OAAO"}