{"version":3,"file":"getCheckedBoxes.mjs","sources":[""],"sourcesContent":["import { isObjPrototypeOf } from \"./isObjPrototypeOf\";\n\ntype TCheckedObj = NodeList | HTMLCollection | Node | Element;\n\n/**\n * Получает кликнутые input[type=\"checkbox\"] и input[type=\"radio\"] из элемента\n * @param obj{NodeList|HTMLCollection|Node|Element} исходный элемент либо коллекция элементов\n * @param filter{String=} фильтрующий селектор\n * @returns {HTMLInputElement[]} Возвращает массив отмеченных `checkbox`/`radio`, дополнительно отфильтрованных по `filter` (если он задан).\n * @example\n * import { getCheckedBoxes } from \"@delement/ui/utils\";\n *\n * const checked = getCheckedBoxes(document.querySelector(\"form\") as HTMLFormElement, \"[name='roles']\");\n */\nexport const getCheckedBoxes = (obj: TCheckedObj, filter: string = \"\"): HTMLInputElement[] => {\n  const checkedBoxes: HTMLInputElement[] = [];\n  const checkboxes = (isObjPrototypeOf(NodeList.prototype, obj) || isObjPrototypeOf(HTMLCollection.prototype, obj))\n    ? Array.from(obj as NodeList | HTMLCollection)\n    : Array.from((obj as Element).querySelectorAll(\"input[type=\\\"checkbox\\\"], input[type=\\\"radio\\\"]\"));\n\n  checkboxes.forEach((checkbox) => {\n    if (checkbox instanceof HTMLInputElement && checkbox.checked) {\n      if (filter) {\n        try {\n          if (!checkbox.matches(filter)) {\n            return;\n          }\n        } catch (err) {\n          console.error(`[getCheckedBoxes] Invalid filter selector \"${filter}\"`, err);\n          return;\n        }\n      }\n      checkedBoxes.push(checkbox);\n    }\n  });\n\n  return checkedBoxes;\n};\n"],"names":["getCheckedBoxes","obj","filter","checkedBoxes","checkboxes","isObjPrototypeOf","NodeList","prototype","HTMLCollection","Array","from","querySelectorAll","forEach","checkbox","HTMLInputElement","checked","matches","err","console","error","push"],"mappings":";;;;;;;;;;GAcO,MAAMA,gBAAkB,CAACC,IAAkBC,OAAiB,MACjE,MAAMC,aAAmC,GACzC,MAAMC,WAAcC,iBAAiBC,SAASC,UAAWN,MAAQI,iBAAiBG,eAAeD,UAAWN,KACxGQ,MAAMC,KAAKT,KACXQ,MAAMC,KAAMT,IAAgBU,iBAAiB,gDAEjDP,WAAWQ,QAASC,WAClB,GAAIA,oBAAoBC,kBAAoBD,SAASE,QAAS,CAC5D,GAAIb,OACF,IACE,IAAKW,SAASG,QAAQd,QACpB,MAEJ,CAAE,MAAOe,KACPC,QAAQC,MAAM,8CAA8CjB,UAAWe,KACvE,MACF,CAEFd,aAAaiB,KAAKP,SACpB,IAGF,OAAOV"}