{"version":3,"file":"options.js","names":[],"sources":["esm/platform/image-picker/options.js"],"sourcesContent":["function resolveMediaTypes(mediaTypes, verb) {\n  const list = Array.isArray(mediaTypes) ? mediaTypes : [mediaTypes ?? \"images\"];\n  if (list.length === 0) {\n    throw new Error(`ImagePicker.${verb}: mediaTypes must list at least one media type`);\n  }\n  for (const mediaType of list) {\n    if (mediaType !== \"images\" && mediaType !== \"videos\") {\n      throw new Error(\n        `ImagePicker.${verb}: mediaTypes must be 'images' or 'videos', got '${String(mediaType)}'`\n      );\n    }\n  }\n  return [...new Set(list)];\n}\nfunction resolveSelectionLimit(selectionLimit, verb) {\n  const limit = selectionLimit ?? 1;\n  if (!Number.isInteger(limit) || limit < 0) {\n    throw new Error(\n      `ImagePicker.${verb}: selectionLimit must be a nonnegative integer, got '${String(selectionLimit)}'`\n    );\n  }\n  return limit;\n}\nfunction resolveImagePickerOptions(options = {}, verb = \"launchLibrary\") {\n  const mediaTypes = resolveMediaTypes(options.mediaTypes, verb);\n  const selectionLimit = resolveSelectionLimit(options.selectionLimit, verb);\n  const allowsEditing = options.allowsEditing ?? false;\n  if (typeof allowsEditing !== \"boolean\") {\n    throw new Error(`ImagePicker.${verb}: allowsEditing must be a boolean`);\n  }\n  if (allowsEditing) {\n    if (selectionLimit !== 1) {\n      throw new Error(\n        `ImagePicker.${verb}: allowsEditing needs a single pick: set selectionLimit to 1`\n      );\n    }\n    if (mediaTypes.length !== 1 || mediaTypes[0] !== \"images\") {\n      throw new Error(\n        `ImagePicker.${verb}: allowsEditing only supports images: set mediaTypes to 'images'`\n      );\n    }\n  }\n  let aspect;\n  if (options.aspect !== void 0) {\n    const [x, y] = options.aspect;\n    if (!Array.isArray(options.aspect) || options.aspect.length !== 2 || typeof x !== \"number\" || typeof y !== \"number\" || !Number.isFinite(x) || !Number.isFinite(y) || x <= 0 || y <= 0) {\n      throw new Error(`ImagePicker.${verb}: aspect must be [x, y] of positive numbers`);\n    }\n    aspect = { x, y };\n  }\n  const quality = options.quality ?? 1;\n  if (typeof quality !== \"number\" || Number.isNaN(quality) || quality < 0 || quality > 1) {\n    throw new Error(`ImagePicker.${verb}: quality must be a number from 0 to 1`);\n  }\n  const videoMaxDuration = options.videoMaxDuration ?? 0;\n  if (typeof videoMaxDuration !== \"number\" || Number.isNaN(videoMaxDuration) || videoMaxDuration < 0) {\n    throw new Error(`ImagePicker.${verb}: videoMaxDuration must be a nonnegative number`);\n  }\n  const videoQuality = options.videoQuality ?? \"high\";\n  if (videoQuality !== \"high\" && videoQuality !== \"medium\" && videoQuality !== \"low\") {\n    throw new Error(\n      `ImagePicker.${verb}: videoQuality must be 'high', 'medium' or 'low', got '${String(options.videoQuality)}'`\n    );\n  }\n  return { mediaTypes, selectionLimit, allowsEditing, aspect, quality, videoMaxDuration, videoQuality };\n}\nfunction resolveCameraOptions(options = {}) {\n  return resolveImagePickerOptions(options, \"launchCamera\");\n}\nexport {\n  resolveCameraOptions,\n  resolveImagePickerOptions\n};\n//# sourceMappingURL=options.js.map\n"],"mappings":";AAAA,SAAS,kBAAkB,YAAY,MAAM;CAC3C,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,aAAa,CAAC,cAAc,QAAQ;CAC7E,IAAI,KAAK,WAAW,GAAG;EACrB,MAAM,IAAI,MAAM,eAAe,KAAK,+CAA+C;CACrF;CACA,KAAK,MAAM,aAAa,MAAM;EAC5B,IAAI,cAAc,YAAY,cAAc,UAAU;GACpD,MAAM,IAAI,MACR,eAAe,KAAK,kDAAkD,OAAO,SAAS,EAAE,EAC1F;EACF;CACF;CACA,OAAO,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC;AAC1B;AACA,SAAS,sBAAsB,gBAAgB,MAAM;CACnD,MAAM,QAAQ,kBAAkB;CAChC,IAAI,CAAC,OAAO,UAAU,KAAK,KAAK,QAAQ,GAAG;EACzC,MAAM,IAAI,MACR,eAAe,KAAK,uDAAuD,OAAO,cAAc,EAAE,EACpG;CACF;CACA,OAAO;AACT;AACA,SAAS,0BAA0B,UAAU,CAAC,GAAG,OAAO,iBAAiB;CACvE,MAAM,aAAa,kBAAkB,QAAQ,YAAY,IAAI;CAC7D,MAAM,iBAAiB,sBAAsB,QAAQ,gBAAgB,IAAI;CACzE,MAAM,gBAAgB,QAAQ,iBAAiB;CAC/C,IAAI,OAAO,kBAAkB,WAAW;EACtC,MAAM,IAAI,MAAM,eAAe,KAAK,kCAAkC;CACxE;CACA,IAAI,eAAe;EACjB,IAAI,mBAAmB,GAAG;GACxB,MAAM,IAAI,MACR,eAAe,KAAK,6DACtB;EACF;EACA,IAAI,WAAW,WAAW,KAAK,WAAW,OAAO,UAAU;GACzD,MAAM,IAAI,MACR,eAAe,KAAK,iEACtB;EACF;CACF;CACA,IAAI;CACJ,IAAI,QAAQ,WAAW,KAAK,GAAG;EAC7B,MAAM,CAAC,GAAG,KAAK,QAAQ;EACvB,IAAI,CAAC,MAAM,QAAQ,QAAQ,MAAM,KAAK,QAAQ,OAAO,WAAW,KAAK,OAAO,MAAM,YAAY,OAAO,MAAM,YAAY,CAAC,OAAO,SAAS,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,KAAK,KAAK,KAAK,KAAK,GAAG;GACrL,MAAM,IAAI,MAAM,eAAe,KAAK,4CAA4C;EAClF;EACA,SAAS;GAAE;GAAG;EAAE;CAClB;CACA,MAAM,UAAU,QAAQ,WAAW;CACnC,IAAI,OAAO,YAAY,YAAY,OAAO,MAAM,OAAO,KAAK,UAAU,KAAK,UAAU,GAAG;EACtF,MAAM,IAAI,MAAM,eAAe,KAAK,uCAAuC;CAC7E;CACA,MAAM,mBAAmB,QAAQ,oBAAoB;CACrD,IAAI,OAAO,qBAAqB,YAAY,OAAO,MAAM,gBAAgB,KAAK,mBAAmB,GAAG;EAClG,MAAM,IAAI,MAAM,eAAe,KAAK,gDAAgD;CACtF;CACA,MAAM,eAAe,QAAQ,gBAAgB;CAC7C,IAAI,iBAAiB,UAAU,iBAAiB,YAAY,iBAAiB,OAAO;EAClF,MAAM,IAAI,MACR,eAAe,KAAK,yDAAyD,OAAO,QAAQ,YAAY,EAAE,EAC5G;CACF;CACA,OAAO;EAAE;EAAY;EAAgB;EAAe;EAAQ;EAAS;EAAkB;CAAa;AACtG;AACA,SAAS,qBAAqB,UAAU,CAAC,GAAG;CAC1C,OAAO,0BAA0B,SAAS,cAAc;AAC1D"}