{"version":3,"file":"runtime.mjs","sources":["../../../../packages/components/src/subject/runtime.ts"],"sourcesContent":["import { serializeSubjectsWithPageIndex } from './pagination'\nimport { SubjectError } from './subject-shared'\n\nexport const SUBJECT_ELEMENT_SELECTOR = [\n  'qxs-subject-single',\n  'qxs-blank-fill',\n  'qxs-text-fill',\n  'qxs-scale',\n  'qxs-page-end',\n].join(', ')\n\nexport type SubjectElement = HTMLElement & {\n  toJSON?: () => Promise<any>\n  validate?: () => SubjectError[]\n}\n\nexport function collectSubjectElements(root: ParentNode): SubjectElement[] {\n  return Array.from(root.querySelectorAll<SubjectElement>(SUBJECT_ELEMENT_SELECTOR))\n}\n\nexport function validateSubjectElements(elements: Iterable<SubjectElement>): { valid: boolean, errors: SubjectError[] } {\n  const errors: SubjectError[] = []\n\n  for (const element of elements) {\n    if (typeof element.validate !== 'function') {\n      continue\n    }\n    const nextErrors = element.validate()\n    if (Array.isArray(nextErrors) && nextErrors.length) {\n      errors.push(...nextErrors)\n    }\n  }\n\n  return {\n    valid: errors.length === 0,\n    errors,\n  }\n}\n\nexport async function serializeSubjectElements(elements: Iterable<SubjectElement>): Promise<any[]> {\n  const results: any[] = []\n  const errors: SubjectError[] = []\n\n  for (const element of elements) {\n    if (typeof element.toJSON !== 'function') {\n      continue\n    }\n    try {\n      results.push(await element.toJSON())\n    }\n    catch (error: any) {\n      if (error instanceof SubjectError) {\n        errors.push(error)\n      }\n      else {\n        errors.push(new SubjectError(error?.message || '未知错误', 'UNKNOWN', 'unknown'))\n      }\n    }\n  }\n\n  if (errors.length) {\n    throw errors\n  }\n\n  return serializeSubjectsWithPageIndex(results)\n}\n"],"names":["SUBJECT_ELEMENT_SELECTOR","collectSubjectElements","root","validateSubjectElements","elements","errors","element","nextErrors","serializeSubjectElements","results","error","SubjectError","serializeSubjectsWithPageIndex"],"mappings":"sHAGO,MAAMA,EAA2B,CACtC,qBACA,iBACA,gBACA,YACA,cACF,EAAE,KAAK,IAAI,EAOJ,SAASC,EAAuBC,EAAoC,CACzE,OAAO,MAAM,KAAKA,EAAK,iBAAiCF,CAAwB,CAAC,CACnF,CAEO,SAASG,EAAwBC,EAAgF,CACtH,MAAMC,EAAyB,CAAA,EAE/B,UAAWC,KAAWF,EAAU,CAC9B,GAAI,OAAOE,EAAQ,UAAa,WAC9B,SAEF,MAAMC,EAAaD,EAAQ,SAAA,EACvB,MAAM,QAAQC,CAAU,GAAKA,EAAW,QAC1CF,EAAO,KAAK,GAAGE,CAAU,CAE7B,CAEA,MAAO,CACL,MAAOF,EAAO,SAAW,EACzB,OAAAA,CAAA,CAEJ,CAEA,eAAsBG,EAAyBJ,EAAoD,CACjG,MAAMK,EAAiB,CAAA,EACjBJ,EAAyB,CAAA,EAE/B,UAAWC,KAAWF,EACpB,GAAI,OAAOE,EAAQ,QAAW,WAG9B,GAAI,CACFG,EAAQ,KAAK,MAAMH,EAAQ,OAAA,CAAQ,CACrC,OACOI,EAAY,CACbA,aAAiBC,EACnBN,EAAO,KAAKK,CAAK,EAGjBL,EAAO,KAAK,IAAIM,EAAaD,GAAO,SAAW,OAAQ,UAAW,SAAS,CAAC,CAEhF,CAGF,GAAIL,EAAO,OACT,MAAMA,EAGR,OAAOO,EAA+BH,CAAO,CAC/C"}