{"version":3,"file":"getCheckedItems.mjs","sources":[""],"sourcesContent":["import type { IChecker } from \"../../checker/config/types\";\r\nimport type { TCheckerGroupItemsProp, TCheckerGroupItem, ICheckerGroupItemsGroup } from \"../config/types\";\r\n\r\ninterface IGetCheckedItemsParams {\r\n  type?: \"checkbox\" | \"radio\";\r\n  name?: string;\r\n  value?: string;\r\n  checked?: boolean;\r\n}\r\n\r\n/**\r\n * Получает элементы с состоянием `checked`\r\n * @returns\r\n */\r\nexport const getCheckedItems = (\r\n  items: TCheckerGroupItemsProp = [],\r\n  params: IGetCheckedItemsParams\r\n): TCheckerGroupItemsProp => {\r\n  const {\r\n    type = \"checkbox\",\r\n    name = \"\",\r\n    value = \"\",\r\n    checked = false,\r\n  } = params;\r\n\r\n  const getIsCheckedItem = (item: IChecker): boolean => {\r\n    if (type === \"checkbox\") {\r\n      if (name === item.name) {\r\n        return checked;\r\n      }\r\n      return !!item.isChecked;\r\n    }\r\n    return value === item.value;\r\n  };\r\n\r\n  const getIsGroup = (group: TCheckerGroupItem): group is ICheckerGroupItemsGroup => {\r\n    return \"items\" in group && Array.isArray(group.items) && !!group.items.length;\r\n  };\r\n\r\n  const getIsCheckedGroup = (group: TCheckerGroupItem): TCheckerGroupItem => {\r\n    const isNested = getIsGroup(group);\r\n\r\n    if (isNested) {\r\n      return {\r\n        ...group,\r\n        items: group.items.map((item) => {\r\n          return getIsCheckedGroup(item);\r\n        }),\r\n      };\r\n    } else {\r\n      return {\r\n        ...group,\r\n        isChecked: getIsCheckedItem(group),\r\n      };\r\n    }\r\n  };\r\n\r\n  return [ ...items ].map((item = {}) => {\r\n    return getIsCheckedGroup(item);\r\n  });\r\n};\r\n"],"names":["getCheckedItems","items","params","type","name","value","checked","getIsCheckedItem","item","isChecked","getIsGroup","group","Array","isArray","length","getIsCheckedGroup","isNested","map"],"mappings":";;;;AAcO,MAAMA,gBAAkB,CAC7BC,MAAgC,GAChCC,UAEA,MAAMC,KACJA,KAAO,WAAUC,KACjBA,KAAO,GAAEC,MACTA,MAAQ,GAAEC,QACVA,QAAU,OACRJ,OAEJ,MAAMK,iBAAoBC,OACxB,GAAIL,OAAS,WAAY,CACvB,GAAIC,OAASI,KAAKJ,KAChB,OAAOE,QAET,QAASE,KAAKC,SAChB,CACA,OAAOJ,QAAUG,KAAKH,OAGxB,MAAMK,WAAcC,OACX,UAAWA,OAASC,MAAMC,QAAQF,MAAMV,UAAYU,MAAMV,MAAMa,OAGzE,MAAMC,kBAAqBJ,QACzB,MAAMK,SAAWN,WAAWC,OAE5B,GAAIK,SACF,MAAO,IACFL,MACHV,MAAOU,MAAMV,MAAMgB,IAAKT,MACfO,kBAAkBP,aAI7B,MAAO,IACFG,MACHF,UAAWF,iBAAiBI,SAKlC,MAAO,IAAKV,OAAQgB,IAAI,CAACT,KAAO,CAAA,IACvBO,kBAAkBP"}