@sapphire-ion/framework 1.2.20 → 1.2.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,11 +2,9 @@ import { ActionSheetController } from '@ionic/angular';
2
2
  import { FilePicker } from '@capawesome/capacitor-file-picker';
3
3
  import { Camera, CameraResultType, CameraSource } from '@capacitor/camera';
4
4
  import { Injectable } from '@angular/core';
5
- import { Capacitor } from '@capacitor/core';
6
5
  import moment from 'moment';
7
6
  import { Buffer } from 'buffer';
8
7
  import mime from 'mime';
9
- import { Filesystem } from '@capacitor/filesystem';
10
8
  import * as i0 from "@angular/core";
11
9
  import * as i1 from "@ionic/angular";
12
10
  export class UtilsService {
@@ -133,22 +131,15 @@ export class Utils {
133
131
  }
134
132
  static async GetPhoto(params) {
135
133
  const quality = params?.quality || 70;
134
+ const source = params?.source || CameraSource.Camera;
136
135
  const ph = await Camera.getPhoto({
137
136
  resultType: CameraResultType.Uri,
138
- source: CameraSource.Camera,
137
+ source: source,
139
138
  quality: quality
140
139
  });
141
- if (Capacitor.isNativePlatform()) {
142
- const file = await Filesystem.readFile({ path: ph.path });
143
- const b64 = file.data;
144
- const blob = await Utils.Base64ToBlob(b64, Utils.FindMimeFromNameOrExtension(ph.path));
145
- return blob;
146
- }
147
- else {
148
- const response = await fetch(ph.webPath);
149
- const blob = await response.blob();
150
- return blob;
151
- }
140
+ const file = await fetch(ph.webPath);
141
+ const blob = await file.blob();
142
+ return { blob, fileName: ph.path.split('/').at(-1) };
152
143
  }
153
144
  static FindMimeFromNameOrExtension(pathOrExtension) {
154
145
  return mime.getType(pathOrExtension) || 'application/octet-stream';
@@ -176,4 +167,4 @@ function EncodeBase64(obj) {
176
167
  }
177
168
  }
178
169
  export const INT_MAX = 2_147_483_646;
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvdXRpbHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBK0IsTUFBTSxtQ0FBbUMsQ0FBQztBQUM1RixPQUFPLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hDLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUE7OztBQU9sRCxNQUFNLE9BQU8sWUFBWTtJQUV2QixZQUFvQixxQkFBNEM7UUFBNUMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtJQUNoRSxDQUFDO0lBRUQsd0VBQXdFO0lBQ3hFLEtBQUssQ0FBQyxVQUFVLENBQUMsYUFBcUM7UUFDcEQsSUFBSyxVQUtKO1FBTEQsV0FBSyxVQUFVO1lBQ2IsK0NBQVUsQ0FBQTtZQUNWLCtDQUFVLENBQUE7WUFDViwyQ0FBVSxDQUFBO1lBQ1YsMkNBQVUsQ0FBQTtRQUNaLENBQUMsRUFMSSxVQUFVLEtBQVYsVUFBVSxRQUtkO1FBRUQsTUFBTSxTQUFTLEdBQXNCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBYyxJQUFJLEVBQUUsUUFBUSxFQUFRLElBQUksRUFBRSxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUE7UUFDbEgsTUFBTSxTQUFTLEdB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QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvblNoZWV0QnV0dG9uLCBBY3Rpb25TaGVldENvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IEZpbGVQaWNrZXIsIFBpY2tGaWxlc1Jlc3VsdCwgUGlja2VkRmlsZSB9IGZyb20gJ0BjYXBhd2Vzb21lL2NhcGFjaXRvci1maWxlLXBpY2tlcic7XHJcbmltcG9ydCB7IENhbWVyYSwgQ2FtZXJhUmVzdWx0VHlwZSwgQ2FtZXJhU291cmNlIH0gZnJvbSAnQGNhcGFjaXRvci9jYW1lcmEnO1xyXG5pbXBvcnQgeyBPdmVybGF5RXZlbnREZXRhaWwgfSBmcm9tICdAaW9uaWMvY29yZSc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ2FwYWNpdG9yIH0gZnJvbSAnQGNhcGFjaXRvci9jb3JlJztcclxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xyXG5pbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInO1xyXG5pbXBvcnQgbWltZSBmcm9tICdtaW1lJztcclxuaW1wb3J0IHsgRmlsZXN5c3RlbSB9IGZyb20gJ0BjYXBhY2l0b3IvZmlsZXN5c3RlbSdcclxuXHJcbmltcG9ydCB7IElucHV0RmlsZUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1maWxlL2lucHV0LWZpbGUuY29uZmlndXJhdGlvbic7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVdGlsc1NlcnZpY2V7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYWN0aW9uU2hlZXRDb250cm9sbGVyOiBBY3Rpb25TaGVldENvbnRyb2xsZXIpIHtcclxuICB9XHJcblxyXG4gIC8qKiBSZXRvcm5hIHVtIGFycmF5IGRlIGFycXVpdm9zIGRlIGFjb3JkbyBjb20gbyB0aXBvIGRlIGNvbmZpZ3V0YcOnw6NvICovXHJcbiAgYXN5bmMgU2VsZWN0RmlsZShjb25maWd1cmF0aW9uOiBJbnB1dEZpbGVDb25maWd1cmF0aW9uKTogUHJvbWlzZTxGaWxlPntcclxuICAgIGVudW0gU2VsZWN0VHlwZSB7XHJcbiAgICAgIGNhbWVyYSA9IDEsXHJcbiAgICAgIGdhbGVyeSA9IDIsXHJcbiAgICAgIGZpbGUgICA9IDMsXHJcbiAgICAgIGRlbnkgICA9IDQsXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgYnRuQ2FtZXJhOiBBY3Rpb25TaGVldEJ1dHRvbiA9IHsgdGV4dDogJ0PDom1lcmEnICAgICAgICAgICAgLCBpY29uOiAnY2FtZXJhJyAgICAgICwgZGF0YTogU2VsZWN0VHlwZS5jYW1lcmEgfVxyXG4gICAgY29uc3QgYnRuR2FsZXJ5OiBBY3Rpb25TaGVldEJ1dHRvbiA9IHsgdGV4dDogJ0dhbGVyaWEnICAgICAgICAgICAsIGljb246ICdpbWFnZScgICAgICAgLCBkYXRhOiBTZWxlY3RUeXBlLmdhbGVyeSB9XHJcbiAgICBjb25zdCBidG5GaWxlICA6IEFjdGlvblNoZWV0QnV0dG9uID0geyB0ZXh0OiAnU2VsZWNpb25hciBBcnF1aXZvJywgaWNvbjogJ2RvY3VtZW50JyAgICAsIGRhdGE6IFNlbGVjdFR5cGUuZmlsZSAgIH1cclxuICAgIGNvbnN0IGJ0bkRlbnkgIDogQWN0aW9uU2hlZXRCdXR0b24gPSB7IHRleHQ6ICdDYW5jZWxhcicgICAgICAgICAgLCBpY29uOiAnY2xvc2UtY2lyY2xlJywgZGF0YTogU2VsZWN0VHlwZS5kZW55LCByb2xlOiAnY2FuY2VsJywgfTtcclxuXHJcbiAgICBjb25zdCBpc0FwcCA9ICghZG9jdW1lbnQuVVJMLnN0YXJ0c1dpdGgoJ2h0dHAnKSB8fCBkb2N1bWVudC5VUkwuc3RhcnRzV2l0aCgnaHR0cDovL2xvY2FsaG9zdDo4MDgwJykpO1xyXG5cclxuICAgIHZhciBsc3RCdG46IGFueVtdID0gW107XHJcbiAgICBpZihpc0FwcCl7IFxyXG4gICAgICBsc3RCdG4ucHVzaChidG5DYW1lcmEpOyBcclxuICAgICAgbHN0QnRuLnB1c2goYnRuR2FsZXJ5KTtcclxuICAgIH1cclxuICAgIGxzdEJ0bi5wdXNoKGJ0bkZpbGUpO1xyXG4gICAgbHN0QnRuLnB1c2goYnRuRGVueSk7XHJcblxyXG4gICAgdmFyIHJlczogT3ZlcmxheUV2ZW50RGV0YWlsPGFueT47XHJcbiAgICBpZihsc3RCdG4ubGVuZ3RoID4gMil7XHJcbiAgICAgIGNvbnN0IGFjdGlvblNoZWV0ID0gYXdhaXQgdGhpcy5hY3Rpb25TaGVldENvbnRyb2xsZXIuY3JlYXRlKHsgYnV0dG9uczogbHN0QnRuIH0pO1xyXG4gICAgICBhY3Rpb25TaGVldC5wcmVzZW50KCk7XHJcbiAgICAgIHJlcyA9IGF3YWl0IGFjdGlvblNoZWV0Lm9uRGlkRGlzbWlzcygpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHJlcyA9IHsgcm9sZTogJ2NvbmZpcm0nLCBkYXRhOiBsc3RCdG5bMF0uZGF0YSB9O1xyXG4gICAgfVxyXG5cclxuICAgIFxyXG4gICAgaWYoWydiYWNrZHJvcCcsICdjYW5jZWwnXS5pbmNsdWRlcyhyZXMucm9sZSkpeyByZXR1cm47IH1cclxuXHJcbiAgICBpZihbU2VsZWN0VHlwZS5jYW1lcmEsIFNlbGVjdFR5cGUuZ2FsZXJ5XS5pbmNsdWRlcyhyZXMuZGF0YSkpeyBcclxuICAgICAgY29uc3QgU291cmNlID0gcmVzLmRhdGEgPT0gU2VsZWN0VHlwZS5jYW1lcmEgPyBDYW1lcmFTb3VyY2UuQ2FtZXJhIDogQ2FtZXJhU291cmNlLlBob3Rvc1xyXG4gICAgICAvL2NvbnN0IHBob3RvID0gYXdhaXQgQ2FtZXJhLmdldFBob3RvKHsgcmVzdWx0VHlwZTogQ2FtZXJhUmVzdWx0VHlwZS5VcmksIHNvdXJjZTogU291cmNlLCBxdWFsaXR5OiAxMDAgfSk7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJbIFRPRE8gXVwiKVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1lbHNle1xyXG4gICAgICBjb25zdCByZXM6IFByb21pc2U8UGlja0ZpbGVzUmVzdWx0PiA9IEZpbGVQaWNrZXIucGlja0ZpbGVzKHsgdHlwZXM6IGNvbmZpZ3VyYXRpb24udHlwZXMsIGxpbWl0OiAxIH0pO1xyXG4gICAgICBjb25zdCBmaWxlczogUGlja2VkRmlsZVtdID0gKGF3YWl0IHJlcykuZmlsZXM7XHJcbiAgICAgIHJldHVybiBmaWxlcy5tYXAocCA9PiA8RmlsZT5wLmJsb2IpWzBdO1xyXG4gICAgfVxyXG4gIH0gXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBVdGlscyB7XHJcbiAgLyoqIENvbnZlcnRlIGRlIHVuaXggcGFyYSBEYXRlIG9iamVjdCAqL1xyXG4gIHN0YXRpYyBVTklYVG9EYXRlKHVuaXhfdGltZXN0YW1wOiBudW1iZXIpOiBEYXRlIHtcclxuICAgIHZhciBkYXRlID0gbmV3IERhdGUodW5peF90aW1lc3RhbXAgKiAxMDAwKTtcclxuICAgIHJldHVybiBkYXRlO1xyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiBAcGFyYW0gRGF0ZVN0ciAtIERhdGUgb24gSVNPIGZvcm1hdCwgZS5nOiBcclxuICAgKiBbIDIwMTAtMTAtMDVUMTQ6NDg6MDAuMDAwWiBdXHJcbiAgICogQHJldHVybnMgRGF0ZSBvbiBmb3JtYXQgREQvTU0vWVlZWVxyXG4gICovXHJcbiAgc3RhdGljIERhdGVJU09Ub0RETU1ZWVlZSEhNTShpc286IHN0cmluZywgb25JbnZhbGlkRGF0ZVN0cmluZzogc3RyaW5nID0gJy0nKTogc3RyaW5ne1xyXG4gICAgaWYoIWlzbyl7IHJldHVybiBvbkludmFsaWREYXRlU3RyaW5nOyB9XHJcbiAgICByZXR1cm4gbW9tZW50KGlzbykuZm9ybWF0KFwiREQvTU0vWVlZWSBISDptbVwiKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAgICogQHBhcmFtIGlzbyAtIERhdGUgb24gSVNPIGZvcm1hdCwgZS5nOiBcclxuICAgICAqIFsgMjAxMC0xMC0wNVQxNDo0ODowMC4wMDBaIF1cclxuICAgICAqIEByZXR1cm5zIERhdGUgb24gZm9ybWF0IEREL01NL1lZWVlcclxuICAgICovXHJcbiAgc3RhdGljIERhdGVJU09Ub0RETU1ZWVlZKGlzbzogc3RyaW5nLCBvbkludmFsaWREYXRlU3RyaW5nOiBzdHJpbmcgPSAnLScpOiBzdHJpbmd7XHJcbiAgICBpZighaXNvKXsgcmV0dXJuIG9uSW52YWxpZERhdGVTdHJpbmc7IH1cclxuICAgIHJldHVybiBtb21lbnQoaXNvKS5mb3JtYXQoXCJERC9NTS9ZWVlZXCIpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIEdlbmVyYXRlR1VJRCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICdpZC14eHh4eHh4eC14eHh4LTR4eHgteXh4eC14eHh4eHh4eHh4eHgnLnJlcGxhY2UoL1t4eV0vZywgZnVuY3Rpb24oYykge1xyXG4gICAgICB2YXIgciA9IE1hdGgucmFuZG9tKCkgKiAxNiB8IDAsXHJcbiAgICAgIHYgPSBjID09PSAneCcgPyByIDogKHIgJiAweDMgfCAweDgpO1xyXG4gICAgICByZXR1cm4gdi50b1N0cmluZygxNik7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKiBcclxuICAgKiBAcGFyYW0gZmlsZTogYmFzZTY0IHwgQmxvYlxyXG4gICAqL1xyXG4gIHN0YXRpYyBhc3luYyBEb3dubG9hZEZpbGUoZmlsZTogc3RyaW5nIHwgQmxvYiwgZmlsZU5hbWU6IHN0cmluZyl7XHJcbiAgICB2YXIgYmxvYjogQmxvYiA9IG51bGw7XHJcbiAgICBpZighKGZpbGUgaW5zdGFuY2VvZiBCbG9iKSl7XHJcbiAgICAgIGJsb2IgPSBhd2FpdCBVdGlscy5CYXNlNjRUb0Jsb2IoZmlsZSwgVXRpbHMuRmluZE1pbWVGcm9tTmFtZU9yRXh0ZW5zaW9uKGZpbGVOYW1lKSk7XHJcbiAgICB9XHJcbiAgICBlbHNleyBcclxuICAgICAgYmxvYiA9IGZpbGU7IFxyXG4gICAgfVxyXG5cclxuICAgIHZhciBmaWxlVVJMID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICAgIGNvbnN0IGxpbmtFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XHJcbiAgICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJocmVmXCIsIGZpbGVVUkwpO1xyXG4gICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKFwidGFyZ2V0XCIsIFwiX2JsYW5rXCIpO1xyXG4gICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKFwiZG93bmxvYWRcIiwgZmlsZU5hbWUpO1xyXG5cclxuICAgIGxldCBtZSA9IG5ldyBNb3VzZUV2ZW50KFwiY2xpY2tcIiwge1xyXG4gICAgICB2aWV3OiB3aW5kb3csXHJcbiAgICAgIGJ1YmJsZXM6IHRydWUsXHJcbiAgICAgIGNhbmNlbGFibGU6IGZhbHNlLFxyXG4gICAgfSk7XHJcblxyXG4gICAgbGlua0VsZW1lbnQuZGlzcGF0Y2hFdmVudChtZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGFzeW5jIEJsb2JUb0Jhc2U2NChibG9iOiBCbG9iKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIGNvbnN0IGFiID0gYXdhaXQgYmxvYi5hcnJheUJ1ZmZlcigpO1xyXG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKGFiKS50b1N0cmluZyhcImJhc2U2NFwiKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgQmFzZTY0VG9CbG9iKGJhc2U2NDogc3RyaW5nLCBtaW1lVHlwZTogc3RyaW5nKTogUHJvbWlzZTxCbG9iPiB7XHJcbiAgICByZXR1cm4gbmV3IEJsb2IoW0J1ZmZlci5mcm9tKGJhc2U2NCwgXCJiYXNlNjRcIildLCB7IHR5cGU6IG1pbWVUeXBlIH0pXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGFzeW5jIEdldFBob3RvKHBhcmFtcz86IHtcclxuICAgIHF1YWxpdHk/OiBudW1iZXJcclxuICB9KTogUHJvbWlzZTxCbG9iPntcclxuICAgIGNvbnN0IHF1YWxpdHkgPSBwYXJhbXM/LnF1YWxpdHkgfHwgNzA7XHJcbiAgICBjb25zdCBwaCAgID0gYXdhaXQgQ2FtZXJhLmdldFBob3RvKHsgXHJcbiAgICAgIHJlc3VsdFR5cGU6IENhbWVyYVJlc3VsdFR5cGUuVXJpLCBcclxuICAgICAgc291cmNlOiBDYW1lcmFTb3VyY2UuQ2FtZXJhLCBcclxuICAgICAgcXVhbGl0eTogcXVhbGl0eVxyXG4gICAgfSk7XHJcbiAgICBpZihDYXBhY2l0b3IuaXNOYXRpdmVQbGF0Zm9ybSgpKXtcclxuICAgICAgY29uc3QgZmlsZSA9IGF3YWl0IEZpbGVzeXN0ZW0ucmVhZEZpbGUoeyBwYXRoOiBwaC5wYXRoIH0pO1xyXG4gICAgICBjb25zdCBiNjQ6IHN0cmluZyA9IGZpbGUuZGF0YSBhcyBzdHJpbmc7XHJcbiAgICAgIGNvbnN0IGJsb2IgICAgID0gYXdhaXQgVXRpbHMuQmFzZTY0VG9CbG9iKGI2NCBhcyBzdHJpbmcsIFV0aWxzLkZpbmRNaW1lRnJvbU5hbWVPckV4dGVuc2lvbihwaC5wYXRoKSk7XHJcbiAgICAgIHJldHVybiBibG9iO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChwaC53ZWJQYXRoKTtcclxuICAgICAgY29uc3QgYmxvYiA9IGF3YWl0IHJlc3BvbnNlLmJsb2IoKTtcclxuICAgICAgcmV0dXJuIGJsb2I7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgRmluZE1pbWVGcm9tTmFtZU9yRXh0ZW5zaW9uKHBhdGhPckV4dGVuc2lvbjogc3RyaW5nKXtcclxuICAgIHJldHVybiBtaW1lLmdldFR5cGUocGF0aE9yRXh0ZW5zaW9uKSB8fCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJztcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBTZWFyY2g8VCA9IGFueT4oaXRlbXM6IFRbXSwgU2VhcmNoOiBzdHJpbmcsIGJpbmRMYWJlbDogKChvYmo6IFQpID0+IHN0cmluZykpOiBUW10ge1xyXG4gIHJldHVybiBpdGVtcy5maWx0ZXIocCA9PiBiaW5kTGFiZWwocCk/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoU2VhcmNoLnRvTG93ZXJDYXNlKCkpKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFRpbWVvdXQodGltZW91dDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPntcclxuICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIHRpbWVvdXQpKTtcclxufVxyXG5cclxuLy9bIEJhc2UgNjQgXVxyXG5mdW5jdGlvbiBEZWNvZGVCYXNlNjQ8VD4oYjY0OiBzdHJpbmcpOiBUe1xyXG4gIHJldHVybiBKU09OLnBhcnNlKEJ1ZmZlci5mcm9tKGI2NCwgJ2Jhc2U2NCcpLnRvU3RyaW5nKCd1dGYtOCcpKTtcclxufVxyXG5cclxuZnVuY3Rpb24gRGVjb2RlQmFzZTY0QXNTdHJpbmcoYjY0OiBzdHJpbmcpIHtcclxuICByZXR1cm4gQnVmZmVyLmZyb20oYjY0LCAnYmFzZTY0JykudG9TdHJpbmcoJ3V0Zi04Jyk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIEVuY29kZUJhc2U2NChvYmo6IGFueSB8IHN0cmluZyk6IHN0cmluZ3tcclxuICBpZih0eXBlb2Ygb2JqID09IFwib2JqZWN0XCIpe1xyXG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KG9iaikpLnRvU3RyaW5nKCdiYXNlNjQnKTtcclxuICB9XHJcbiAgZWxzZVxyXG4gIGlmKHR5cGVvZiBvYmogPT0gXCJzdHJpbmdcIil7XHJcbiAgICByZXR1cm4gQnVmZmVyLmZyb20ob2JqKS50b1N0cmluZygnYmFzZTY0Jyk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgSU5UX01BWCA9IDJfMTQ3XzQ4M182NDY7Il19
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvdXRpbHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBK0IsTUFBTSxtQ0FBbUMsQ0FBQztBQUM1RixPQUFPLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDaEMsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDOzs7QUFReEIsTUFBTSxPQUFPLFlBQVk7SUFFdkIsWUFBb0IscUJBQTRDO1FBQTVDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7SUFDaEUsQ0FBQztJQUVELHdFQUF3RTtJQUN4RSxLQUFLLENBQUMsVUFBVSxDQUFDLGFBQXFDO1FBQ3BELElBQUssVUFLSjtRQUxELFdBQUssVUFBVTtZQUNiLCtDQUFVLENBQUE7WUFDViwrQ0FBVSxDQUFBO1lBQ1YsMkNBQVUsQ0FBQTtZQUNWLDJDQUFVLENBQUE7UUFDWixDQUFDLEVBTEksVUFBVSxLQUFWLFVBQVUsUUFLZDtRQUVELE1BQU0sU0FBUyxHQUFzQixFQUFFLElBQUksRUFBRSxRQUFRLEVBQWMsSUFBSSxFQUFFLFFBQVEsRUFBUSxJQUFJLEVBQUUsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFBO1FBQ2xILE1BQU0sU0FBUyxHQUFzQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQWEsSUFBSSxFQUFFLE9BQU8sRUFBUyxJQUFJLEVBQUUsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFBO1FB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QUFDdkYsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQUMsT0FBZTtJQUNyQyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQzlELENBQUM7QUFFRCxhQUFhO0FBQ2IsU0FBUyxZQUFZLENBQUksR0FBVztJQUNsQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDbEUsQ0FBQztBQUVELFNBQVMsb0JBQW9CLENBQUMsR0FBVztJQUN2QyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN0RCxDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsR0FBaUI7SUFDckMsSUFBRyxPQUFPLEdBQUcsSUFBSSxRQUFRLEVBQUMsQ0FBQztRQUN6QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3RCxDQUFDO1NBRUQsSUFBRyxPQUFPLEdBQUcsSUFBSSxRQUFRLEVBQUMsQ0FBQztRQUN6QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvblNoZWV0QnV0dG9uLCBBY3Rpb25TaGVldENvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IEZpbGVQaWNrZXIsIFBpY2tGaWxlc1Jlc3VsdCwgUGlja2VkRmlsZSB9IGZyb20gJ0BjYXBhd2Vzb21lL2NhcGFjaXRvci1maWxlLXBpY2tlcic7XHJcbmltcG9ydCB7IENhbWVyYSwgQ2FtZXJhUmVzdWx0VHlwZSwgQ2FtZXJhU291cmNlIH0gZnJvbSAnQGNhcGFjaXRvci9jYW1lcmEnO1xyXG5pbXBvcnQgeyBPdmVybGF5RXZlbnREZXRhaWwgfSBmcm9tICdAaW9uaWMvY29yZSc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ2FwYWNpdG9yIH0gZnJvbSAnQGNhcGFjaXRvci9jb3JlJztcclxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xyXG5pbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInO1xyXG5pbXBvcnQgbWltZSBmcm9tICdtaW1lJztcclxuaW1wb3J0IHsgRmlsZXN5c3RlbSB9IGZyb20gJ0BjYXBhY2l0b3IvZmlsZXN5c3RlbSdcclxuXHJcbmltcG9ydCB7IElucHV0RmlsZUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1maWxlL2lucHV0LWZpbGUuY29uZmlndXJhdGlvbic7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVdGlsc1NlcnZpY2V7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYWN0aW9uU2hlZXRDb250cm9sbGVyOiBBY3Rpb25TaGVldENvbnRyb2xsZXIpIHtcclxuICB9XHJcblxyXG4gIC8qKiBSZXRvcm5hIHVtIGFycmF5IGRlIGFycXVpdm9zIGRlIGFjb3JkbyBjb20gbyB0aXBvIGRlIGNvbmZpZ3V0YcOnw6NvICovXHJcbiAgYXN5bmMgU2VsZWN0RmlsZShjb25maWd1cmF0aW9uOiBJbnB1dEZpbGVDb25maWd1cmF0aW9uKTogUHJvbWlzZTxGaWxlPntcclxuICAgIGVudW0gU2VsZWN0VHlwZSB7XHJcbiAgICAgIGNhbWVyYSA9IDEsXHJcbiAgICAgIGdhbGVyeSA9IDIsXHJcbiAgICAgIGZpbGUgICA9IDMsXHJcbiAgICAgIGRlbnkgICA9IDQsXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgYnRuQ2FtZXJhOiBBY3Rpb25TaGVldEJ1dHRvbiA9IHsgdGV4dDogJ0PDom1lcmEnICAgICAgICAgICAgLCBpY29uOiAnY2FtZXJhJyAgICAgICwgZGF0YTogU2VsZWN0VHlwZS5jYW1lcmEgfVxyXG4gICAgY29uc3QgYnRuR2FsZXJ5OiBBY3Rpb25TaGVldEJ1dHRvbiA9IHsgdGV4dDogJ0dhbGVyaWEnICAgICAgICAgICAsIGljb246ICdpbWFnZScgICAgICAgLCBkYXRhOiBTZWxlY3RUeXBlLmdhbGVyeSB9XHJcbiAgICBjb25zdCBidG5GaWxlICA6IEFjdGlvblNoZWV0QnV0dG9uID0geyB0ZXh0OiAnU2VsZWNpb25hciBBcnF1aXZvJywgaWNvbjogJ2RvY3VtZW50JyAgICAsIGRhdGE6IFNlbGVjdFR5cGUuZmlsZSAgIH1cclxuICAgIGNvbnN0IGJ0bkRlbnkgIDogQWN0aW9uU2hlZXRCdXR0b24gPSB7IHRleHQ6ICdDYW5jZWxhcicgICAgICAgICAgLCBpY29uOiAnY2xvc2UtY2lyY2xlJywgZGF0YTogU2VsZWN0VHlwZS5kZW55LCByb2xlOiAnY2FuY2VsJywgfTtcclxuXHJcbiAgICBjb25zdCBpc0FwcCA9ICghZG9jdW1lbnQuVVJMLnN0YXJ0c1dpdGgoJ2h0dHAnKSB8fCBkb2N1bWVudC5VUkwuc3RhcnRzV2l0aCgnaHR0cDovL2xvY2FsaG9zdDo4MDgwJykpO1xyXG5cclxuICAgIHZhciBsc3RCdG46IGFueVtdID0gW107XHJcbiAgICBpZihpc0FwcCl7IFxyXG4gICAgICBsc3RCdG4ucHVzaChidG5DYW1lcmEpOyBcclxuICAgICAgbHN0QnRuLnB1c2goYnRuR2FsZXJ5KTtcclxuICAgIH1cclxuICAgIGxzdEJ0bi5wdXNoKGJ0bkZpbGUpO1xyXG4gICAgbHN0QnRuLnB1c2goYnRuRGVueSk7XHJcblxyXG4gICAgdmFyIHJlczogT3ZlcmxheUV2ZW50RGV0YWlsPGFueT47XHJcbiAgICBpZihsc3RCdG4ubGVuZ3RoID4gMil7XHJcbiAgICAgIGNvbnN0IGFjdGlvblNoZWV0ID0gYXdhaXQgdGhpcy5hY3Rpb25TaGVldENvbnRyb2xsZXIuY3JlYXRlKHsgYnV0dG9uczogbHN0QnRuIH0pO1xyXG4gICAgICBhY3Rpb25TaGVldC5wcmVzZW50KCk7XHJcbiAgICAgIHJlcyA9IGF3YWl0IGFjdGlvblNoZWV0Lm9uRGlkRGlzbWlzcygpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHJlcyA9IHsgcm9sZTogJ2NvbmZpcm0nLCBkYXRhOiBsc3RCdG5bMF0uZGF0YSB9O1xyXG4gICAgfVxyXG5cclxuICAgIFxyXG4gICAgaWYoWydiYWNrZHJvcCcsICdjYW5jZWwnXS5pbmNsdWRlcyhyZXMucm9sZSkpeyByZXR1cm47IH1cclxuXHJcbiAgICBpZihbU2VsZWN0VHlwZS5jYW1lcmEsIFNlbGVjdFR5cGUuZ2FsZXJ5XS5pbmNsdWRlcyhyZXMuZGF0YSkpeyBcclxuICAgICAgY29uc3QgU291cmNlID0gcmVzLmRhdGEgPT0gU2VsZWN0VHlwZS5jYW1lcmEgPyBDYW1lcmFTb3VyY2UuQ2FtZXJhIDogQ2FtZXJhU291cmNlLlBob3Rvc1xyXG4gICAgICAvL2NvbnN0IHBob3RvID0gYXdhaXQgQ2FtZXJhLmdldFBob3RvKHsgcmVzdWx0VHlwZTogQ2FtZXJhUmVzdWx0VHlwZS5VcmksIHNvdXJjZTogU291cmNlLCBxdWFsaXR5OiAxMDAgfSk7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJbIFRPRE8gXVwiKVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1lbHNle1xyXG4gICAgICBjb25zdCByZXM6IFByb21pc2U8UGlja0ZpbGVzUmVzdWx0PiA9IEZpbGVQaWNrZXIucGlja0ZpbGVzKHsgdHlwZXM6IGNvbmZpZ3VyYXRpb24udHlwZXMsIGxpbWl0OiAxIH0pO1xyXG4gICAgICBjb25zdCBmaWxlczogUGlja2VkRmlsZVtdID0gKGF3YWl0IHJlcykuZmlsZXM7XHJcbiAgICAgIHJldHVybiBmaWxlcy5tYXAocCA9PiA8RmlsZT5wLmJsb2IpWzBdO1xyXG4gICAgfVxyXG4gIH0gXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBVdGlscyB7XHJcbiAgLyoqIENvbnZlcnRlIGRlIHVuaXggcGFyYSBEYXRlIG9iamVjdCAqL1xyXG4gIHN0YXRpYyBVTklYVG9EYXRlKHVuaXhfdGltZXN0YW1wOiBudW1iZXIpOiBEYXRlIHtcclxuICAgIHZhciBkYXRlID0gbmV3IERhdGUodW5peF90aW1lc3RhbXAgKiAxMDAwKTtcclxuICAgIHJldHVybiBkYXRlO1xyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiBAcGFyYW0gRGF0ZVN0ciAtIERhdGUgb24gSVNPIGZvcm1hdCwgZS5nOiBcclxuICAgKiBbIDIwMTAtMTAtMDVUMTQ6NDg6MDAuMDAwWiBdXHJcbiAgICogQHJldHVybnMgRGF0ZSBvbiBmb3JtYXQgREQvTU0vWVlZWVxyXG4gICovXHJcbiAgc3RhdGljIERhdGVJU09Ub0RETU1ZWVlZSEhNTShpc286IHN0cmluZywgb25JbnZhbGlkRGF0ZVN0cmluZzogc3RyaW5nID0gJy0nKTogc3RyaW5ne1xyXG4gICAgaWYoIWlzbyl7IHJldHVybiBvbkludmFsaWREYXRlU3RyaW5nOyB9XHJcbiAgICByZXR1cm4gbW9tZW50KGlzbykuZm9ybWF0KFwiREQvTU0vWVlZWSBISDptbVwiKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAgICogQHBhcmFtIGlzbyAtIERhdGUgb24gSVNPIGZvcm1hdCwgZS5nOiBcclxuICAgICAqIFsgMjAxMC0xMC0wNVQxNDo0ODowMC4wMDBaIF1cclxuICAgICAqIEByZXR1cm5zIERhdGUgb24gZm9ybWF0IEREL01NL1lZWVlcclxuICAgICovXHJcbiAgc3RhdGljIERhdGVJU09Ub0RETU1ZWVlZKGlzbzogc3RyaW5nLCBvbkludmFsaWREYXRlU3RyaW5nOiBzdHJpbmcgPSAnLScpOiBzdHJpbmd7XHJcbiAgICBpZighaXNvKXsgcmV0dXJuIG9uSW52YWxpZERhdGVTdHJpbmc7IH1cclxuICAgIHJldHVybiBtb21lbnQoaXNvKS5mb3JtYXQoXCJERC9NTS9ZWVlZXCIpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIEdlbmVyYXRlR1VJRCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICdpZC14eHh4eHh4eC14eHh4LTR4eHgteXh4eC14eHh4eHh4eHh4eHgnLnJlcGxhY2UoL1t4eV0vZywgZnVuY3Rpb24oYykge1xyXG4gICAgICB2YXIgciA9IE1hdGgucmFuZG9tKCkgKiAxNiB8IDAsXHJcbiAgICAgIHYgPSBjID09PSAneCcgPyByIDogKHIgJiAweDMgfCAweDgpO1xyXG4gICAgICByZXR1cm4gdi50b1N0cmluZygxNik7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKiBcclxuICAgKiBAcGFyYW0gZmlsZTogYmFzZTY0IHwgQmxvYlxyXG4gICAqL1xyXG4gIHN0YXRpYyBhc3luYyBEb3dubG9hZEZpbGUoZmlsZTogc3RyaW5nIHwgQmxvYiwgZmlsZU5hbWU6IHN0cmluZyl7XHJcbiAgICB2YXIgYmxvYjogQmxvYiA9IG51bGw7XHJcbiAgICBpZighKGZpbGUgaW5zdGFuY2VvZiBCbG9iKSl7XHJcbiAgICAgIGJsb2IgPSBhd2FpdCBVdGlscy5CYXNlNjRUb0Jsb2IoZmlsZSwgVXRpbHMuRmluZE1pbWVGcm9tTmFtZU9yRXh0ZW5zaW9uKGZpbGVOYW1lKSk7XHJcbiAgICB9XHJcbiAgICBlbHNleyBcclxuICAgICAgYmxvYiA9IGZpbGU7IFxyXG4gICAgfVxyXG5cclxuICAgIHZhciBmaWxlVVJMID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICAgIGNvbnN0IGxpbmtFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XHJcbiAgICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJocmVmXCIsIGZpbGVVUkwpO1xyXG4gICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKFwidGFyZ2V0XCIsIFwiX2JsYW5rXCIpO1xyXG4gICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKFwiZG93bmxvYWRcIiwgZmlsZU5hbWUpO1xyXG5cclxuICAgIGxldCBtZSA9IG5ldyBNb3VzZUV2ZW50KFwiY2xpY2tcIiwge1xyXG4gICAgICB2aWV3OiB3aW5kb3csXHJcbiAgICAgIGJ1YmJsZXM6IHRydWUsXHJcbiAgICAgIGNhbmNlbGFibGU6IGZhbHNlLFxyXG4gICAgfSk7XHJcblxyXG4gICAgbGlua0VsZW1lbnQuZGlzcGF0Y2hFdmVudChtZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGFzeW5jIEJsb2JUb0Jhc2U2NChibG9iOiBCbG9iKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIGNvbnN0IGFiID0gYXdhaXQgYmxvYi5hcnJheUJ1ZmZlcigpO1xyXG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKGFiKS50b1N0cmluZyhcImJhc2U2NFwiKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgQmFzZTY0VG9CbG9iKGJhc2U2NDogc3RyaW5nLCBtaW1lVHlwZTogc3RyaW5nKTogUHJvbWlzZTxCbG9iPiB7XHJcbiAgICByZXR1cm4gbmV3IEJsb2IoW0J1ZmZlci5mcm9tKGJhc2U2NCwgXCJiYXNlNjRcIildLCB7IHR5cGU6IG1pbWVUeXBlIH0pXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGFzeW5jIEdldFBob3RvKHBhcmFtcz86IHtcclxuICAgIHF1YWxpdHk/OiBudW1iZXIsXHJcbiAgICBzb3VyY2U/OiBDYW1lcmFTb3VyY2VcclxuICB9KTogUHJvbWlzZTx7XHJcbiAgICBibG9iOiBCbG9iXHJcbiAgICBmaWxlTmFtZTogc3RyaW5nXHJcbiAgfT57XHJcbiAgICBjb25zdCBxdWFsaXR5ID0gcGFyYW1zPy5xdWFsaXR5IHx8IDcwO1xyXG4gICAgY29uc3Qgc291cmNlICA9IHBhcmFtcz8uc291cmNlIHx8IENhbWVyYVNvdXJjZS5DYW1lcmE7XHJcbiAgICBjb25zdCBwaCAgID0gYXdhaXQgQ2FtZXJhLmdldFBob3RvKHsgXHJcbiAgICAgIHJlc3VsdFR5cGU6IENhbWVyYVJlc3VsdFR5cGUuVXJpLCBcclxuICAgICAgc291cmNlIDogc291cmNlLFxyXG4gICAgICBxdWFsaXR5OiBxdWFsaXR5XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGZpbGUgPSBhd2FpdCBmZXRjaChwaC53ZWJQYXRoKTtcclxuICAgIGNvbnN0IGJsb2IgPSBhd2FpdCBmaWxlLmJsb2IoKTtcclxuICAgIHJldHVybiB7IGJsb2IsIGZpbGVOYW1lOiBwaC5wYXRoLnNwbGl0KCcvJykuYXQoLTEpIH07XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgRmluZE1pbWVGcm9tTmFtZU9yRXh0ZW5zaW9uKHBhdGhPckV4dGVuc2lvbjogc3RyaW5nKXtcclxuICAgIHJldHVybiBtaW1lLmdldFR5cGUocGF0aE9yRXh0ZW5zaW9uKSB8fCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJztcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBTZWFyY2g8VCA9IGFueT4oaXRlbXM6IFRbXSwgU2VhcmNoOiBzdHJpbmcsIGJpbmRMYWJlbDogKChvYmo6IFQpID0+IHN0cmluZykpOiBUW10ge1xyXG4gIHJldHVybiBpdGVtcy5maWx0ZXIocCA9PiBiaW5kTGFiZWwocCk/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoU2VhcmNoLnRvTG93ZXJDYXNlKCkpKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFRpbWVvdXQodGltZW91dDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPntcclxuICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIHRpbWVvdXQpKTtcclxufVxyXG5cclxuLy9bIEJhc2UgNjQgXVxyXG5mdW5jdGlvbiBEZWNvZGVCYXNlNjQ8VD4oYjY0OiBzdHJpbmcpOiBUe1xyXG4gIHJldHVybiBKU09OLnBhcnNlKEJ1ZmZlci5mcm9tKGI2NCwgJ2Jhc2U2NCcpLnRvU3RyaW5nKCd1dGYtOCcpKTtcclxufVxyXG5cclxuZnVuY3Rpb24gRGVjb2RlQmFzZTY0QXNTdHJpbmcoYjY0OiBzdHJpbmcpIHtcclxuICByZXR1cm4gQnVmZmVyLmZyb20oYjY0LCAnYmFzZTY0JykudG9TdHJpbmcoJ3V0Zi04Jyk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIEVuY29kZUJhc2U2NChvYmo6IGFueSB8IHN0cmluZyk6IHN0cmluZ3tcclxuICBpZih0eXBlb2Ygb2JqID09IFwib2JqZWN0XCIpe1xyXG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KG9iaikpLnRvU3RyaW5nKCdiYXNlNjQnKTtcclxuICB9XHJcbiAgZWxzZVxyXG4gIGlmKHR5cGVvZiBvYmogPT0gXCJzdHJpbmdcIil7XHJcbiAgICByZXR1cm4gQnVmZmVyLmZyb20ob2JqKS50b1N0cmluZygnYmFzZTY0Jyk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgSU5UX01BWCA9IDJfMTQ3XzQ4M182NDY7Il19
@@ -4,11 +4,9 @@ import { FilePicker } from '@capawesome/capacitor-file-picker';
4
4
  import { CameraSource, Camera, CameraResultType } from '@capacitor/camera';
5
5
  import * as i0 from '@angular/core';
6
6
  import { Injectable, InjectionToken, NgModule, Inject, inject, signal, model, Component, Input, Pipe, input, computed, effect, contentChildren, output, forwardRef, ContentChildren, EventEmitter, Output, HostListener, ViewChild, Directive, ElementRef, TemplateRef, ChangeDetectionStrategy, ContentChild, ViewChildren, HostBinding, ViewContainerRef } from '@angular/core';
7
- import { Capacitor } from '@capacitor/core';
8
7
  import moment from 'moment';
9
8
  import { Buffer } from 'buffer';
10
9
  import mime from 'mime';
11
- import { Filesystem } from '@capacitor/filesystem';
12
10
  import { BehaviorSubject, firstValueFrom, from, switchMap, Subject, takeUntil, distinctUntilChanged, debounceTime, lastValueFrom, Observable, tap, finalize, share, catchError } from 'rxjs';
13
11
  import * as i1$1 from '@angular/common/http';
14
12
  import { HttpClient, HttpEventType, HttpHeaders } from '@angular/common/http';
@@ -442,22 +440,15 @@ class Utils {
442
440
  }
443
441
  static async GetPhoto(params) {
444
442
  const quality = params?.quality || 70;
443
+ const source = params?.source || CameraSource.Camera;
445
444
  const ph = await Camera.getPhoto({
446
445
  resultType: CameraResultType.Uri,
447
- source: CameraSource.Camera,
446
+ source: source,
448
447
  quality: quality
449
448
  });
450
- if (Capacitor.isNativePlatform()) {
451
- const file = await Filesystem.readFile({ path: ph.path });
452
- const b64 = file.data;
453
- const blob = await Utils.Base64ToBlob(b64, Utils.FindMimeFromNameOrExtension(ph.path));
454
- return blob;
455
- }
456
- else {
457
- const response = await fetch(ph.webPath);
458
- const blob = await response.blob();
459
- return blob;
460
- }
449
+ const file = await fetch(ph.webPath);
450
+ const blob = await file.blob();
451
+ return { blob, fileName: ph.path.split('/').at(-1) };
461
452
  }
462
453
  static FindMimeFromNameOrExtension(pathOrExtension) {
463
454
  return mime.getType(pathOrExtension) || 'application/octet-stream';