{"version":3,"sources":["polyfills.ts"],"sourcesContent":["function showOpenFilePickerPolyfill(options) {\n    return new Promise((resolve) => {\n        const input = document.createElement(\"input\");\n        input.type = \"file\";\n        input.multiple = options.multiple;\n        input.accept = options.types\n            .map((type) => type.accept)\n            .flatMap((inst) => Object.keys(inst).flatMap((key) => inst[key]))\n            .join(\",\");\n\n        input.addEventListener(\"change\", () => {\n            resolve(\n                [...input.files].map((file) => {\n                    return {\n                        getFile: async () =>\n                            new Promise((resolve) => {\n                                resolve(file);\n                            }),\n                    };\n                })\n            );\n        });\n\n        input.click();\n    });\n}\n\nif (typeof globalThis.showOpenFilePicker !== 'function') {\n    globalThis.showOpenFilePicker = showOpenFilePickerPolyfill\n}\n\n/* Polyfill for SaFaRi https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/groupBy */\nObject.groupBy ??= function groupBy (iterable, callbackfn) {\n    const obj = Object.create(null)\n    let i = 0\n    for (const value of iterable) {\n      const key = callbackfn(value, i++)\n      key in obj ? obj[key].push(value) : (obj[key] = [value])\n    }\n    return obj\n}\nMap.groupBy ??= function groupBy (iterable, callbackfn) {\n    const map = new Map()\n    let i = 0\n    for (const value of iterable) {\n        const key = callbackfn(value, i++), list = map.get(key)\n        list ? list.push(value) : map.set(key, [value])\n    }\n    return map\n}\n\n\n/**\n * A polyfill for `ReadableStream.protototype[Symbol.asyncIterator]`,\n * aligning as closely as possible to the specification.\n *\n * @see https://streams.spec.whatwg.org/#rs-asynciterator\n * @see https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream#async_iteration\n */\nReadableStream.prototype.values ??= function({ preventCancel = false } = {}) {\n    const reader = this.getReader();\n    return {\n      async next() {\n        try {\n          const result = await reader.read();\n          if (result.done) {\n            reader.releaseLock();\n          }\n          return result;\n        } catch (e) {\n          reader.releaseLock();\n          throw e;\n        }\n      },\n      async return(value) {\n        if (!preventCancel) {\n          const cancelPromise = reader.cancel(value);\n          reader.releaseLock();\n          await cancelPromise;\n        } else {\n          reader.releaseLock();\n        }\n        return { done: true, value };\n      },\n      [Symbol.asyncIterator]() {\n        return this;\n      }\n    };\n  };\n\n  \nReadableStream.prototype[Symbol.asyncIterator] ??= ReadableStream.prototype.values;\n\ndeclare global {\n    interface ReadableStream<R = any> {\n        values(options?: { preventCancel?: boolean }): AsyncIterable<R>;\n        [Symbol.asyncIterator](): AsyncIterableIterator<R>;\n    }\n}"],"names":["showOpenFilePickerPolyfill","options","Promise","resolve","input","document","createElement","type","multiple","accept","types","map","flatMap","inst","Object","keys","key","join","addEventListener","files","file","getFile","click","globalThis","showOpenFilePicker","groupBy","iterable","callbackfn","obj","create","i","value","push","Map","list","get","set","ReadableStream","prototype","values","preventCancel","reader","getReader","next","result","read","done","releaseLock","e","return","cancelPromise","cancel","Symbol","asyncIterator"],"mappings":"AAAA,SAASA,2BAA2BC,OAAO;IACvC,OAAO,IAAIC,QAAQ,CAACC;QAChB,IAAMC,QAAQC,SAASC,aAAa,CAAC;QACrCF,MAAMG,IAAI,GAAG,QACbH,MAAMI,QAAQ,GAAGP,QAAQO,QAAQ,EACjCJ,MAAMK,MAAM,GAAGR,QAAQS,KAAK,CACvBC,GAAG,CAAC,CAACJ,OAASA,KAAKE,MAAM,EACzBG,OAAO,CAAC,CAACC,OAASC,OAAOC,IAAI,CAACF,MAAMD,OAAO,CAAC,CAACI,MAAQH,IAAI,CAACG,IAAI,GAC9DC,IAAI,CAAC,MAEVb,MAAMc,gBAAgB,CAAC,UAAU;YAC7Bf,QACI;mBAAIC,MAAMe,KAAK;aAAC,CAACR,GAAG,CAAC,CAACS,OACX,CAAA;oBACHC,SAAS,UACL,IAAInB,QAAQ,CAACC;4BACTA,QAAQiB;wBACZ;gBACR,CAAA;QAGZ,IAEAhB,MAAMkB,KAAK;IACf;AACJ;AAE6C,cAAzC,OAAOC,WAAWC,kBAAkB,IACpCD,CAAAA,WAAWC,kBAAkB,GAAGxB,0BAAyB,GAI7Dc,OAAOW,OAAO,KAAK,SAASA,QAASC,QAAQ,EAAEC,UAAU;IACrD,IAAMC,MAAMd,OAAOe,MAAM,CAAC,OACtBC,IAAI;IACR,KAAK,IAAMC,SAASL,SAAU;QAC5B,IAAMV,MAAMW,WAAWI,OAAOD;QAC9Bd,OAAOY,MAAMA,GAAG,CAACZ,IAAI,CAACgB,IAAI,CAACD,SAAUH,GAAG,CAACZ,IAAI,GAAG;YAACe;SAAM;IACzD;IACA,OAAOH;AACX,GACAK,IAAIR,OAAO,KAAK,SAASA,QAASC,QAAQ,EAAEC,UAAU;IAClD,IAAMhB,MAAM,IAAIsB,OACZH,IAAI;IACR,KAAK,IAAMC,SAASL,SAAU;QAC1B,IAAMV,MAAMW,WAAWI,OAAOD,MAAMI,OAAOvB,IAAIwB,GAAG,CAACnB;QACnDkB,OAAOA,KAAKF,IAAI,CAACD,SAASpB,IAAIyB,GAAG,CAACpB,KAAK;YAACe;SAAM;IAClD;IACA,OAAOpB;AACX,GAUA0B,eAAeC,SAAS,CAACC,MAAM,KAAK,SAAS,EAAEC,gBAAgB,CAAA,CAAK,EAAE,GAAG,CAAC,CAAC;IACvE,IAAMC,SAAS,IAAI,CAACC,SAAS;IAC7B,OAAO;QACL,MAAMC;YACJ,IAAI;gBACF,IAAMC,SAAS,MAAMH,OAAOI,IAAI;gBAIhC,OAHID,OAAOE,IAAI,IACbL,OAAOM,WAAW,IAEbH;YACT,EAAE,OAAOI,GAAG;gBAEV,MADAP,OAAOM,WAAW,IACZC;YACR;QACF;QACA,MAAMC,QAAOlB,KAAK;YAChB,IAAKS,eAKHC,OAAOM,WAAW;iBALA;gBAClB,IAAMG,gBAAgBT,OAAOU,MAAM,CAACpB;gBACpCU,OAAOM,WAAW,IAClB,MAAMG;YACR;YAGA,OAAO;gBAAEJ,MAAM,CAAA;gBAAMf;YAAM;QAC7B;QACA,CAACqB,OAAOC,aAAa,CAAC;YACpB,OAAO,IAAI;QACb;IACF;AACF,GAGFhB,eAAeC,SAAS,CAACc,OAAOC,aAAa,CAAC,KAAKhB,eAAeC,SAAS,CAACC,MAAM","sourceRoot":"/lib/datex-core-js-legacy-0.3.15/utils/","file":"polyfills.ts"}