{"version":3,"file":"_randomFormatDuration.mjs","names":[],"sources":["../../src/internal/_randomFormatDuration.ts"],"sourcesContent":["import { _randomInteger } from \"./_randomInteger\";\nimport {\n  _ILengthProps,\n  _randomLengthPick,\n  _randomLengthWindow,\n} from \"./_randomStringLength\";\nimport { __randomNumeric } from \"./private/__randomComposition\";\n\nexport const _randomFormatDuration = (props?: _ILengthProps): string => {\n  if (props?.minLength === undefined && props?.maxLength === undefined) {\n    const period: string = durate([\n      [\"Y\", random(0, 100)],\n      [\"M\", random(0, 12)],\n      [\"D\", random(0, 31)],\n    ]);\n    const time: string = durate([\n      [\"H\", random(0, 24)],\n      [\"M\", random(0, 60)],\n      [\"S\", random(0, 60)],\n    ]);\n    if (period.length + time.length === 0) return \"PT0S\";\n    return `P${period}${time.length ? \"T\" : \"\"}${time}`;\n  }\n  // A single designator carries an unbounded digit count, so `P<n>Y` expresses\n  // every length from three upward and `P1Y` is the shortest duration there is.\n  const length: number = _randomLengthPick(\n    _randomLengthWindow(props, { minimum: MINIMUM, spread: 6 }),\n  );\n  return `P${__randomNumeric(length - MINIMUM + 1)}Y`;\n};\n\nconst MINIMUM = \"P1Y\".length;\n\nconst durate = (elements: [string, number][]) =>\n  elements\n    .filter(([_unit, value]) => value !== 0)\n    .map(([unit, value]) => `${value}${unit}`)\n    .join(\"\");\nconst random = (minimum: number, maximum: number) =>\n  _randomInteger({\n    type: \"integer\",\n    minimum,\n    maximum,\n  });\n"],"mappings":";;;;AAQA,MAAa,yBAAyB,UAAkC;CACtE,IAAI,OAAO,cAAc,KAAA,KAAa,OAAO,cAAc,KAAA,GAAW;EACpE,MAAM,SAAiB,OAAO;GAC5B,CAAC,KAAK,OAAO,GAAG,GAAG,CAAC;GACpB,CAAC,KAAK,OAAO,GAAG,EAAE,CAAC;GACnB,CAAC,KAAK,OAAO,GAAG,EAAE,CAAC;EACrB,CAAC;EACD,MAAM,OAAe,OAAO;GAC1B,CAAC,KAAK,OAAO,GAAG,EAAE,CAAC;GACnB,CAAC,KAAK,OAAO,GAAG,EAAE,CAAC;GACnB,CAAC,KAAK,OAAO,GAAG,EAAE,CAAC;EACrB,CAAC;EACD,IAAI,OAAO,SAAS,KAAK,WAAW,GAAG,OAAO;EAC9C,OAAO,IAAI,SAAS,KAAK,SAAS,MAAM,KAAK;CAC/C;CAMA,OAAO,IAAI,gBAHY,kBACrB,oBAAoB,OAAO;EAAE,SAAS;EAAS,QAAQ;CAAE,CAAC,CAE5B,IAAI,UAAU,CAAC,EAAE;AACnD;AAEA,MAAM,UAAU;AAEhB,MAAM,UAAU,aACd,SACG,QAAQ,CAAC,OAAO,WAAW,UAAU,CAAC,CAAC,CACvC,KAAK,CAAC,MAAM,WAAW,GAAG,QAAQ,MAAM,CAAC,CACzC,KAAK,EAAE;AACZ,MAAM,UAAU,SAAiB,YAC/B,eAAe;CACb,MAAM;CACN;CACA;AACF,CAAC"}